Android应用程序使用不同语言

时间:2017-03-01 07:18:42

标签: android

我已经用四种语言(en,ar,fr,ru)上传了android应用程序,应用程序名称将从语言到其他语言不同,直到现在一切正常但是如果用户设备语言是英语并且他试图搜索对于阿拉伯语应用程序名称,该应用程序未在搜索中显示。有没有解决这个问题的方法?

1 个答案:

答案 0 :(得分:1)

如果您的选项有限,请在代码中使用并更改。检测输入语言并更改别名 Detect Input Language

private void printInputLanguages() {
   InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
   List<InputMethodInfo> ims = imm.getEnabledInputMethodList();

   for (InputMethodInfo method : ims) {
       List<InputMethodSubtype> submethods = imm.getEnabledInputMethodSubtypeList(method, true);
       for (InputMethodSubtype submethod : submethods) {
          if (submethod.getMode().equals("keyboard")) {
             String currentLocale = submethod.getLocale();
             Log.i(TAG, "Available input method locale: " + currentLocale);
          }
       }
   }
}

然后从Manifest中的Main Activity中删除Action_Main和Launcher类别并将其替换为

<activity-alias android:label="@string/app_name_in_other_language" 
    android:icon="@drawable/icon" 
    android:name=".MainActivity_Lang_Other"
    android:enabled="false"
    android:targetActivity=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>   
</activity-alias>

并且喜欢其他语言然后在主要活动的onCreate()

getPackageManager().setComponentEnabledSetting(
        new ComponentName("package", "package.MainActivity_Lang_Other"), 
            PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

并记住系统需要启用一个别名,因此将其设置为主要语言,例如英语。