2

アプリのラベルのローカライズを変更する必要があります。英語とヒンディー語用に 2 つの文字列フォルダーを作成しました。ローカリゼーションを変更すると、正常に機能し、すべてのラベルがヒンディー語で表示されます。

private void setLanguage(Boolean changeLang) {
    if (changeLang) {
        Locale.setDefault(new Locale("hi", "IN"));
        Configuration config = new Configuration();
        config = viewDashboard.getBaseContext().getResources().getConfiguration();
        config.locale = new Locale("hi", "IN");
        viewDashboard
                .getBaseContext()
                .getResources()
                .updateConfiguration(
                        config,
                        viewDashboard.getBaseContext().getResources()
                                .getDisplayMetrics());

    } else {
        Locale.setDefault(new Locale("en", "EN"));
        Configuration config = new Configuration();
        config = viewDashboard.getBaseContext().getResources().getConfiguration();
        config.locale = new Locale("en", "EN");
        viewDashboard
                .getBaseContext()
                .getResources()
                .updateConfiguration(
                        config,
                        viewDashboard.getBaseContext().getResources()
                                .getDisplayMetrics());

    }
}

しかし、日付ピッカーの言語も必要のないヒンディー語に変更します。同様に、ヒンディー語フォントを表示するテキストビューもほとんどありません。つまり、日付ピッカーから日付を設定したり、計算後に合計金額を表示したり、ダイアログ ボックスの [OK] と [キャンセル] を使用したくないヒンディー語に変換したりします。私の質問は、プログラムでローカリゼーションを変更した後、日付ピッカーとダイアログ ボックスのボタン ラベルがヒンディー語に変換されないようにするにはどうすればよいかということです。

4

1 に答える 1

0

私はこのようにそれをやったので、それはあなたにとって完全に役立つと思います.このメソッドに2つのパラメータを渡すだけです.1つは言語であり、もう1つはこのメソッドを呼び出すアクティビティです.

public static void setLocale(String language, Activity activity)
{
    Locale locale= new Locale(language);
    Locale.setDefault(locale);

    Configuration config = new Configuration();
    config.locale = locale;

    thisActivity = activity;

    thisActivity.getBaseContext().getResources().updateConfiguration(config, thisActivity.getBaseContext().getResources().getDisplayMetrics());
}
于 2013-07-17T04:36:59.543 に答える