2

アプリケーションの 1 つのアクティビティですべてのテキストを変更すると問題が発生します...次のコードを使用して言語を変更しています:

else if (LANGUAGE.equals("Russian"))
        {
            Resources res = this.getResources();
            // Change locale settings in the app.
            DisplayMetrics dm = res.getDisplayMetrics();
            android.content.res.Configuration conf = res.getConfiguration();
            conf.locale = new Locale("ru-rRU");
            res.updateConfiguration(conf, dm);
}

AndroidManifest で、次の文字列を追加しました。

<activity
        android:name="com.vladimir.expert_suise.ThirdScreen"
        android:label="@string/title_activity_third_screen" 
        android:configChanges="locale">
    </activity>

携帯電話でアプリを起動しても、言語は変更されません =( ここにスクリーンショットがあります -言語を変更する必要がある画面

私のコードの何が問題なのですか?(

PS i も values-ru-rRU フォルダーを作成し、そこに翻訳された string.xml ファイルを挿入しました

4

2 に答える 2

1

まず、values-ru-rRUをvalues-ruに変更します。

このメソッドを使用してリソースを取得できます

public Resources getCustomResource(String lang){
        Locale locale = new Locale(lang); 
        Resources standardResources = activity.getResources();
        AssetManager assets = standardResources.getAssets();
        DisplayMetrics metrics = standardResources.getDisplayMetrics();
        Configuration config = new Configuration(standardResources.getConfiguration());
        config.locale = locale;
        Resources res = new Resources(assets, metrics, config);
        return res;
    }

このようにコードで使用できます

else if (LANGUAGE.equals("Russian"))
    {
        Resources res = getCustomResource("ru");

}

これがお役に立てば幸いです。

于 2013-03-08T21:15:44.360 に答える