У меня есть приложение для Android с английским и арабским языками в качестве выбора языка.Моя проблема в том, что мне нужно использовать определенный шрифт для каждого языка.
Как правильно реализовать это?
Моя идея состояла в том, чтобы создать две разные темы в styles.xml
, напримерthis:
<resources>
<!-- English application theme. -->
<style name="EnglishTheme" parent="Theme.AppCompat.Light.NoActionBar">
... all my others attributes ...
<item name="pathBoldFont">fonts/FontEnglish-Bold.ttf</item>
<item name="pathRegularFont">fonts/FontEnglish-Regular.ttf</item>
<item name="pathThinFont">fonts/FontEnglish-Thin.ttf</item>
</style>
<!-- Arabic application theme. -->
<style name="ArabicTheme" parent="Theme.AppCompat.Light.NoActionBar">
... all my others attributes ...
<item name="pathBoldFont">fonts/FontArabic-Bold.ttf</item>
<item name="pathRegularFont">fonts/FontArabic-Regular.ttf</item>
<item name="pathThinFont">fonts/FontArabic-Thin.ttf</item>
</style>
</resources>
Во время выполнения приложения я проверяю язык пользователя и загружаю правильную тему.Но очевидно, что это не очень СУХО, потому что мне приходится дважды писать все остальные атрибуты темы.
Я читал, что это не позволяет программно обновлять атрибуты темы (только шрифты в моем случае), поэтомучто может быть лучшим решением?
К вашему сведению, я использую InflationX / Каллиграфия для своих пользовательских шрифтов.