【问题标题】:Android strings Localisation working partiallyAndroid字符串本地化部分工作
【发布时间】:2022-02-01 10:03:41
【问题描述】:

我正在尝试在我使用 3 种语言的应用中使用本地化,当我切换语言时,并非所有字符串都被翻译,某些字符串仅以英语显示,无论我切换到哪种语言。

这是我正在使用的部分工作的代码:

public void setLocale_language(String lang) {
    Locale myLocale = new Locale(lang);
    Resources res = getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    Configuration config = res.getConfiguration();
    config.locale = myLocale;
    res.updateConfiguration(config, dm);
}

【问题讨论】:

  • 你能包含一些有问题的字符串的代码吗?我猜你使用了错误的Context 来访问它们(比如说,Application 而不是用你的资源覆盖包装的Activity)。
  • @laalto 实际上这些字符串是从xml 布局访问的,就像android:text="@string/clocked_in_users"
  • XML 膨胀还需要一个上下文(通过 LayoutInflater)
  • 我发现了错误):我的Activity 是在扩展FragmentActivity 而不是AppCompatActivity 这就是没有翻译字符串的原因。

标签: java android xml string localization


【解决方案1】:

问题在于活动正在扩展 FragmentActivity 而不是 AppCompatActivity

public class Dashboard extends FragmentActivity 

因此将其更改为AppCompatActivity 解决了这个问题

public class Dashboard extends AppCompatActivity 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2015-08-18
    相关资源
    最近更新 更多