为了账号安全,请及时绑定邮箱和手机立即绑定

通过 Android Studio 运行时,Android 应用程序中的语言发生变化

通过 Android Studio 运行时,Android 应用程序中的语言发生变化

噜噜哒 2022-05-21 13:55:19
我已经为我需要的语言添加了 strings.xml 文件。我使用警报对话框来切换我的 android 应用程序的语言。当我通过 Android Studio 在我的手机或我的虚拟设备上运行他的应用程序时,语言更改工作没有任何问题,但是当我打包应用程序并将其上传到 Play 商店时,它们不起作用。从 playstore 下载应用程序时,只有 timepicker 被翻译成其他语言,没有其他文本。我编写了一个 setLocale 函数来更改从 OnCreate 和语言选择器函数调用的应用程序的语言。我将语言存储在共享首选项中,以便在关闭应用程序时保留该选项。OnCreate(){  SharedPreferences pref = MainActivity.this.getSharedPreferences("languageSelectionMode", MODE_PRIVATE);        languagetoLoad = pref.getString("languageSelectionNameTemp","en");}setLocale(languagetoLoad);这是 setLocale 函数 public void setLocale(String lang) {        if (!"".equals(lang) && !config.locale.getLanguage().equals(lang)) {            Locale locale = new Locale(lang);            Locale.setDefault(locale);            Configuration conf = new Configuration(config);            conf.locale = locale;            getBaseContext().getResources().updateConfiguration(conf, getBaseContext().getResources().getDisplayMetrics());            SharedPreferences pref = MainActivity.this.getSharedPreferences("languageSelectionMode", MODE_PRIVATE);            SharedPreferences.Editor editor = pref.edit();            editor.putString("languageSelectionNameTemp",lang);            editor.apply();            finish();            overridePendingTransition(0, 0);            startActivity(getIntent());            overridePendingTransition(0, 0);        }我更改语言的功能。SharedPreferences pref = MainActivity.this.getSharedPreferences("languageSelectionMode", MODE_PRIVATE);                int languageLoaded =  pref.getInt("languageSelectionId",0);                //Convert ListArray to Array ..... profileNames.toArray()                builder.setSingleChoiceItems(languageArray, languageLoaded, new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        }                    }                });
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

在某处找到了解决方案。由于 Android Bundle 问题,该应用未在生产中进行翻译。普通的 apk 工作正常。


在 gradle 文件中添加了以下行,它工作正常。


bundle{

      language{

          enableSplit = false

      }

  }


查看完整回答
反对 回复 2022-05-21
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信