【问题标题】:Language change stop working语言更改停止工作
【发布时间】:2018-07-30 12:30:13
【问题描述】:

我正面临应用程序内语言更改选项的问题。

我在我的应用中实现了 2 种语言 1) 英语和 2) 希伯来语 根据选择,我正在尝试转换应用语言,但不知何故它停止工作。

以下是我使用的语言代码。

public void changelanguage(String languageToLoad, Context context) {

        Locale locale = new Locale(languageToLoad);
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        context.getResources().updateConfiguration(config,
                context.getResources().getDisplayMetrics());

    }

对于希伯来语,我使用“iw”一词进行比较。

下面是logcat的日志:

07-30 20:12:26.146 23878-26997/paycalldailer.paycall.co.il V/FA: 不活动,与服务断开连接 07-30 20:12:30.330 23878-23878/paycalldailer.paycall.co.il I/System.out:语言标志 GC::1 07-30 20:12:30.341 23878-23878/paycalldailer.paycall.co.il I/系统输出: 光标::android.content.ContentResolver$CursorWrapperInner@3acb7a4 07-30 20:12:30.341 23878-23878/paycalldailer.paycall.co.il I/System.out:这是 07-30 20:12:30.363 23878-23878/paycalldailer.paycall.co.il I/System.out:更改语言: 电话:07-30 20:12:30.412 23878-26997/paycalldailer.paycall.co.il V/FA: 记录用户参与度,女士:9327 07-30 20:12:30.413 23878-26997/paycalldailer.paycall.co.il V/FA:使用测量 服务 07-30 20:12:30.413 23878-26997/paycalldailer.paycall.co.il V/FA:连接到远程服务 07-30 20:12:30.417 23878-26997/paycalldailer.paycall.co.il V/FA:活动暂停,时间: 38061307 07-30 20:12:30.423 23878-26997/paycalldailer.paycall.co.il D/FA: 记录事件 (FE): user_engagement(_e), 捆绑[{firebase_event_origin(_o)=auto, 参与时间_毫秒(_et)=9327, firebase_screen_class(_sc)=更改语言, firebase_screen_id(_si)=-841994326498933721}] 07-30 20:12:30.440 23878-26997/paycalldailer.paycall.co.il V/FA:使用测量 服务 07-30 20:12:30.440 23878-26997/paycalldailer.paycall.co.il V/FA:连接尝试已在进行中 07-30 20:12:30.489 23878-23878/paycalldailer.paycall.co.il V/FA: onActivityCreated 07-30 20:12:30.529 23878-23878/paycalldailer.paycall.co.il I/AppCompatViewInflater: app:theme 现已弃用。请移至 使用 android:theme 代替。

请建议我哪里错了。它突然停止工作。

【问题讨论】:

  • 当它停止工作时你的输出有异常吗?
  • @Flyzzx 没有,没有得到任何异常
  • @Flyzzx,刚刚通过打印语言和更改语言进行了检查。那么问题可能是 UI 没有根据语言反映任何解决方案吗?
  • 当您的应用停止工作时,您能否发布输出(来自 Anroid Studio 的控制台)?
  • @Flyzzx 已添加日志请查看

标签: android localization android-resources


【解决方案1】:

您是否在您的应用程序中使用任何网络视图? 因为使用 webview 将本地语言重置为默认语言会导致已知问题。

参见。 Android Nougat 7.1 resets Locale after launching WebView

【讨论】:

  • 是的,我在我的应用程序中使用 webview,但几天前它工作正常,突然停止工作,没有对代码做任何更改,现在它在 7.0 版本以下也不能工作。实际上语言更改工作正常,但不会反映在 UI 上
  • 我遇到了同样的问题,当我实例化我的 web 视图时,之前设置的本地语言将恢复为默认语言。起初我没有注意到它,但我很确定它与您的问题有关。解决方法是在 webview 初始化后重置语言。相信我,我花了好几个星期才明白这个问题是从哪里来的,但我仍然不明白它为什么会存在......
猜你喜欢
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 2011-06-18
  • 1970-01-01
相关资源
最近更新 更多