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

我已经为我需要的语言添加了 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) {



                        }

                    }

                });

噜噜哒
浏览 112回答 1
1回答

白衣非少年

在某处找到了解决方案。由于 Android Bundle 问题,该应用未在生产中进行翻译。普通的 apk 工作正常。在 gradle 文件中添加了以下行,它工作正常。bundle{      language{          enableSplit = false      }  }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java