2

iPhone アプリでプログラムでロケールを変更したい (基本的に、すべての言語が iPhone 自体でサポートされているわけではないため、ユーザーはアプリケーションの言語のみを切り替えることができるはずです)。別の質問で見たOSX アプリでNSLocalizedString に特定の言語を強制的に使用する方法は? [[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"de", nil] forKey:@"AppleLanguages"]; で動作するはずです。-しかし、私にとってはそうではありません... [NSLocale currentLocale]はまだシステム全体のロケールを返し、「メインバンドル」はシステム全体のロケールからのファイルを提供します..

だから..私のアプリケーションにカスタムロケールを設定する方法はありますか? または - 私にとってはどちらで十分ですか - 別のロケールで新しい NSBundle インスタンスを作成しますか?

4

1 に答える 1

2

わかりました、愚かな私..リンクされた質問がすでに回答されているので..そのコードには再起動が必要です..つまり。ユーザーが別の言語呼び出しを選択したとき [[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"de", nil] forKey:@"AppleLanguages"]; - 次にアプリケーションが起動されると、[NSBundle mainBundle] は指定されたロケールの正しいリソースを返します.. ([NSLocale currentLocale] は引き続き iphone 全体のロケールを返します..しかし、これは私にとっては問題ではないと思いますとりあえず...)

于 2010-08-03T14:26:28.167 に答える