Когда-то решали подобную проблему, но пришли к автоматическую генерации xml файлов с ресурсами. Так все получается нативно на R классах с возможностью иметь локализированые версии строк. Правда у нас не было требования менять строки без релиза. Если бы было, то смотрел бы в сторону подмены контекста и ресурсов, вроде когда-то читал статью, в которой так делали.
Ещё добавлю на подумать: некоторые строки могут различаться на разных платформах, поэтому бывает полезно иметь отдельный пулл строк для каждой из них. Это могут быть строки с подстановками (%@/%s), HTML форматированием, ну и просто платформозависимые фичи, например на iOS не нужно объяснить пользователю зачем нам location permission при работе с Bluetooth.
Проблема очень старая. В одном из последних мажорных обновлений её немного исправили, но не до конца. Мыло осталось, но не настолько ужасное как было до этого. У меня воспроизводилась всегда там, где нужен был скейл 125% (мониторы 2560х1440 и 15'' ноутбуки с FHD), другие пока не попадались. Пример
Когда-то решали подобную проблему, но пришли к автоматическую генерации xml файлов с ресурсами. Так все получается нативно на R классах с возможностью иметь локализированые версии строк. Правда у нас не было требования менять строки без релиза. Если бы было, то смотрел бы в сторону подмены контекста и ресурсов, вроде когда-то читал статью, в которой так делали.
Ещё добавлю на подумать: некоторые строки могут различаться на разных платформах, поэтому бывает полезно иметь отдельный пулл строк для каждой из них. Это могут быть строки с подстановками (%@/%s), HTML форматированием, ну и просто платформозависимые фичи, например на iOS не нужно объяснить пользователю зачем нам location permission при работе с Bluetooth.
Пример
А шрифты, небось, до сих пор мылятся на hidpi экранах в некоторых местах (в частности окно управления, там где диспетчер устройств, дисков и т.д.)