0

我知道使用语言代码后缀为该语言创建一个新的值目录。对于德语:values-de或法语:values-fr然后将我们的string.xml复制到其中并翻译每个条目。这基于电话本地化设置

我知道,我们可以绕过电话设置,让用户使用下面的代码在应用程序中选择他需要的语言。

Locale appLoc = new Locale("en");
Locale.setDefault(appLoc);
Configuration appConfig = new Configuration();
appConfig.locale = appLoc;
getBaseContext().getResources().updateConfiguration(appConfig, getBaseContext().getResources().getDisplayMetrics());

我在我的应用程序中提供了语言选择选项,并让用户为应用程序选择他想要的语言。在 string.xml 之间动态切换(用于不同的语言)。

我的问题是......应用程序内提供的语言选项是否应该通过电话强制支持?因为,考虑到我的手机不支持卡纳达语区域语言,如果用户在我的应用程序中选择卡纳达语作为语言选项。这些值显示为 [][][][](框)。如何为整个应用程序设置字体支持?

我不想在android中的每个视图上都使用字体,如下所示

Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/comicsans.ttf");

for(int i = 0; i <root.getChildCount(); i++) {
    View v = root.getChildAt(i);
    if(v instanceof TextView ) {
        ((TextView)v).setTypeface(tf);
    } else if(v instanceof Button) {
        ((Button)v).setTypeface(tf);
    } else if(v instanceof EditText) {
        ((EditText)v).setTypeface(tf);
    } else if(v instanceof ViewGroup) {
        changeFonts((ViewGroup)v);
    }
}

我们可以使用一些本地设置来配置整个应用程序的字体吗?

4

0 回答 0