2011-09-09 14 views
1

Androidアプリケーションは、さまざまなロケールのサポートに関して高度にカスタマイズ可能です。私の場合、私のアプリケーションは現在6つのロケールをサポートしており、すべてが円滑に機能します。ユーザーが電話ロケールを選択すると、アプリケーションは別のロケールに切り替わり、すべてのメニューがローカル言語になります。Androidアプリケーションの特定のロケールをプログラムで抑制する方法

ここで私は様々なチャネル、価格設定ポリシーなどを使用してさまざまな国でアプリケーションを配布しようとしているため、アプリケーションで特定のロケールをプログラムで抑制することが望まれます。したがって、アプリケーションが中国語 - ユーザーがロケールを英語またはフランス語に切り替えることができなかったとするためのものであれば。

ほとんどの単純な方法は、アプリケーションから他のロケールリソースを削除することです。わかりました。しかし、ソース管理の観点からは、それほど快適ではないので、アプリケーションの一部のロケールを辞退/抑制するためのプログラム的な方法がある方が好きです。

アイデア?その中

+0

は、アプリケーション全体からロケールを設定することができ意味....あなたの選択した言語コードを渡すmothods? あなたのロケールを選択するすべてのデータは選択された言語にありますか? すべてがプログラム的に欲しいですか? –

+0

@MiteshTechMe:投稿を慎重に読みましたか?そうでない場合 - 私が知っている限り、 – barmaley

+0

をもう一度お読みください、あなたはマニュアルに行く必要があります。 MiteshTechMeのコードを使用して、アプリケーション内の(サポートされていない)ロケールをリセットすることができます(他のロケールを抑制することができます)。 – Samuel

答えて

9

使用このコードを...

private void callSwitchLang(String langCode) { 
    Locale locale = new Locale(langCode); 
    Locale.setDefault(locale); 
    Configuration config = new Configuration(); 
    config.locale = locale; 
    getBaseContext().getResources().updateConfiguration(config, 
      getBaseContext().getResources().getDisplayMetrics()); 
onCreate(null); 
} 

uは

+0

あなたの応答に** onCreate(null); **とは何ですか? – Samuel

+0

onCreate(null);あなたのアプリケーションをリセットするために使用しています... あなたがonCreate(null)を呼び出すとき;アプリケーションに選択された言語をアプリケーションに変更するより... –

+0

は勘違いをしていたので、ライフサイクルを通してのハックです。私はこのアプローチを知っていましたが、onCreate(null)は新しいものでした。ありがとう!あなたの応答のために。 – Samuel

関連する問題