2016-05-17 5 views
0

このアプリの入力データを含む、いくつかの入力plistファイルを含むアプリを開発しました。 この入力データは現在ロシア語になっています。iOSのローカリゼーションがネイティブの地域に変更されました

開発中に、私はロシアのAppStoreでロシア語を話すお客様にのみ、このアプリを配布することを意図していました。今私のアプリはAppStoreにあります。しかし今、私はまた、英語を話す顧客のために私のアプリを配布したい。 英語の入力データで翻訳された入力plistを用意しなければならないことを知っています。

私の質問の懸念アプリでより多くのローカライズ..

開発時に私は、Info.plistファイルを変更し、私は「RU」に「ローカライズネイティブ開発地域」に設定します。

私の場合を解決する最も正しい方法は何ですか? "ローカリゼーションのネイティブ開発領域"を "ru"に設定し、英語のローカリゼーションを追加する必要がありますか? "ローカライゼーションのネイティブ開発領域"を "en"に戻し、ロシア語のローカリゼーションを追加する必要がありますか? または、英語とロシア語の2つのローカリゼーションを追加する必要がありますか?この場合、「ローカリゼーションネイティブ開発領域」にどのようなオプションを設定する必要がありますか?

ところで、現在のローカリゼーションに応じてどの入力データplistファイルを読み込むかをプログラムで選択するにはどうすればよいですか?

答えて

2

私はあなたがdocumentationから、地域専用にローカライズネイティブ開発地域を変更すべきだと思う:

CFBundleDevelopmentRegion(文字列 - のiOS、OS Xが)として、バンドルのデフォルト 言語と地域を指定します言語ID。たとえば、英国の場合、 英語の言語IDはen-UKです。それは英語を話すの

Countがもっと世界に、その後のロシアのスピーカーのカウント、ユーザーの 好みの言語のためのリソースを見つけることができない場合、システム は、この値を使用しています。ロケーションシステムが必要なローカリゼーションを見つけることができない場合は、あなたの母国語のファイルを使用します。 しかし、あなたは(たとえばPLIST)をネイティブリソースをロードするためにNSBundleのmethodを使用する場合:

- (NSURL *)URLForResource:(NSString *)name 
      withExtension:(NSString *)extension 
      subdirectory:(NSString *)subpath 
      localization:(NSString *)localizationName 
//The file URL for the resource file or nil if the file could not be located. 

あなたがサポートされていないローカライズのために、このメソッドからゼロのURLを返すことを避けるために、非局在化しplistファイルを追加する必要があります(ファイル同じ名前だがlangディレクトリにはない)。

Here NSBundleがリソースをどのように見つけたかを読むことができます。

+0

Tjhank you! localizationNameでは、コールの英語またはロシア語のローカリゼーションを修正する方法は? –

+0

私の最初の質問の詳細: 私はこれを使用します: NSString * path = [[NSBundle mainBundle] pathForResource:pathName ofType:@ "plist"]; 入力plistファイルのパスを取得します。次に、ファイルの内容をnsdictionaryとオブジェクトに構文解析します。 英語のローカリゼーションがユーザーによって選択されている場合は、このファイルの英語版のパスを取得したいと思います。ロシア語のローカリゼーションを選択した場合は、ロシア語版です。これどうやってするの? –

+0

アプリケーションの場所を設定するか、ローカライゼーションシステムのデフォルト実装を使用します。デフォルトの実装を使用する場合は、enおよびruの言語ディレクトリを追加し、ネイティブ言語をenに変更するだけで、すべてがボックスから機能するはずです。内部言語サブシステム(アプリケーションで言語を変更する)を使用する場合は、ローカライズされた方法(前に示した)を使用してplistをロードし、ローカライズされていないplistファイルを追加する必要があります。 –

関連する問題