38

私のプロジェクトでは「ローカリゼーション ネイティブ開発地域」が英語に設定されているため、ベース ファイルには私の英語の単語が含まれていると思います。

更新 - 私の質問を明確にするために:

ここに画像の説明を入力

4

3 に答える 3

15

これが正しいかどうかは完全にはわかりませんが、あなたの質問 TTBOMK に答えようと思います。

コードで fromを使用しているとNSLocalizedString(key, comment)します。最初の引数が実際には、翻訳された (または翻訳される) 文字列自体ではなく、文字列のキーであることがはっきりとわかります。したがって、「コードを書く」とき、実際には基本言語で文字列を書くことはありません。コードに文字列プレースホルダーを追加しているかのように考える必要があります。

後で、Localizable.stringsサポートしたい各言語のファイルをkey = value;. Localizable.stringsUI を少なくとも 1 つの人間が読める言語で表示するには、プレースホルダー キーごとに適切な文字列値を含むファイルを少なくとも 1 つ用意する必要があります。

例:コードに要素が含まれている場合、要素を含むファイルをNSLocalizedString(@“ConfirmationButtonTitle", @“Yada yada”)持つことは完全に理にかなっています。ファイルを作成しない場合、またはキーを含むファイルがない場合、ボタンのタイトルは に戻ります。これはプレースホルダー キーの名前であるためです。Localizable.strings”ConfirmationButtonTitle” = “Tap here to confirm”;Localizable.stringsLocalizable.stringsConfirmationButtonTitleConfirmationButtonTitle

そうは言っても、ほとんどの人は、さまざまな理由から、キーに文字列値とまったく同じ名前を付けることを好みます。これは間違いなく便利であり、非常に一般的な慣行ですが、人々の心の中で対立を引き起こす可能性があります.

したがって、代わりに前のNSLocalizedString例のようなものを作成する場合、デフォルト/ベースファイルにはおそらく のような要素が含まれます。NSLocalizedString(@“Tap here to confirm", @“Yada yada”)Localizable.strings“Tap here to confirm” = “Tap here to confirm”;

ここで起こっていることは、自分自身を繰り返しているということではなく、ベース言語の文字列値とまったく同じようにキーに名前を付けているということです。それだけです。

編集

基本言語の概念は常にありますが、私が理解しているように、Xcode 5 ではこれがさらに強調されています。それは良いことです。Localizable.stringsベース言語が英語の場合、英語用のファイルを用意する必要はありません。

于 2013-11-12T13:53:49.580 に答える