通过Android Studio中运行时,在Android的应用程序语言的变化发生,但是当应用从Play商店下载不工作

问题描述 投票:0回答:1

我已经添加了的strings.xml文件,我需要的语言。我用一个警告对话框中切换我的Android应用程序的语言。

当我在我的手机上或通过Android Studio中我的虚拟设备上运行的应用程序,他没有任何问题的语言变化的工作,但是当我打包应用程序,并上传到Play商店,他们不工作。

当应用程序从Play商店中下载,只有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) {


                        switch(which){
                            case 0:
                                languageChoice = "en";
                                languageChoiceId = 0;

                                break;
                            case 1:
                                languageChoice = "mr";
                                languageChoiceId = 1;

                                break;
                            case 2:
                                languageChoice = "hi";
                                languageChoiceId = 2;

                                break;
                            default:
                                languageChoice = "en";
                                languageChoiceId = 0;

                        }
                    }
                });

                builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {SharedPreferences pref = MainActivity.this.getSharedPreferences("languageSelectionMode", MODE_PRIVATE);
                        SharedPreferences.Editor editor = pref.edit();
            editor.putInt("languageSelectionId", languageChoiceId);
            editor.apply();
                        setLocale(languageChoice);

                    }
java android
1个回答
0
投票

找到了解决办法的地方。该应用程序是没有转化生产,因为Android的捆绑问题。普通APK是工作的罚款。

新增的gradle在文件中的以下行,它工作正常。

bundle{
      language{
          enableSplit = false
      }
  }
© www.soinside.com 2019 - 2024. All rights reserved.