1

多言語をサポートするために、英語(en)とスペイン語(es)の2つの言語をサポートするアプリを開発しました。developer.androidのリンクhttp://developer.android.com/training/basics/supporting-devices/languages.htmlをフォローしました。 スペイン語の画像をdrawableフォルダーdrawable-es-rES-hdpi、drawable-es-rES-ldpi、drawable-es-rES-mdpi、およびすべてのスペイン語関連テキストをvalues-esフォルダーのstrings.xmlに配置しました。

アプリの設定から言語を英語からスペイン語に変更すると、すべてのテキストが英語からスペイン語に変更されますが、アプリはスペイン語の描画可能なフォルダーから画像をフェッチしていません(この問題はHDPIデバイスとすべてのテキストで発生し、画像が変更されますSamsung Galaxy ACE(Res:320 X 480)などのMDPIデバイスで正常に動作します。

OS 4.1.2、解像度480X800のデバイスGoogleNexusでこの問題に直面しています。

誰かがそのような問題に直面したことがありますか?私を助けてください。

4

1 に答える 1

2

ついに私は解決策を得ました。

私は言語のみでローカルオブジェクトを作成していました。ジンジャーブレッドまでは、英語<->スペイン語のすべてのテキストと画像を変更しますが、ジェリービーンズの画像は変更しません:英語とスペイン語の両方の古いローカルオブジェクト:

ロケールlocale2=new Locale(appLanguageStr)

作業中のローカルオブジェクト

ロケールlocale2=new Locale(appLanguageStr、countrycode);

これは、ジンジャーブレッドとジェリービーンズの両方で私のために働く最後の方法です:

public void updateAppsLanguage(String appLanguageStr) 
{
    Locale locale2 = null;
    if(appLanguageStr.equalsIgnoreCase("English"))
    {
        appLanguageStr = "en";
        locale2 = new Locale(appLanguageStr); 
    }
    else if(appLanguageStr.equalsIgnoreCase("Spanish"))
    {
        appLanguageStr = "es";
        locale2 = new Locale(appLanguageStr, "esp"); 
    }

    Locale.setDefault(locale2);
    Configuration config2 = new Configuration();
    config2.locale = locale2;
    getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());
    //Refresh the current page 
    finish();
    Intent intent = new Intent(this,AppSetting.class);
    startActivity(intent);
}
于 2012-12-06T07:53:21.737 に答える