web-dev-qa-db-ja.com

NSLocalizedString()の2番目のパラメーターは何ですか?

以下の*commentパラメーターとは何ですか?

NSString *NSLocalizedString(NSString *key, NSString *comment)

これを行う場合:

NSLocalizedString(@"Hello_World_Key", @"Hello World")

localizable.stringsの2つのバージョン(英語とスペイン語)があり、それぞれにエントリが必要ですか:

English.lproj/Localization.strings: @"Hello_World_Key" = @"Hello World";

Spanish.lproj/Localization.strings: @"Hello_World_Key" = @"Hola Mundo";

英語は冗長ではありませんか?

119
4thSpace

コメント文字列はアプリケーションによって無視されます。翻訳者の利益のために使用され、キーがアプリケーション内で見つかった場所のコンテキスト使用に意味を追加します。

たとえば、Hello_World_Keyキーは、Hello Worldフレーズはその言語である必要があります(「What's up World」、「Yo World」、「Good Day World」など)。

コメントフィールドに文字列を追加して、この使用法を翻訳者に示唆することができます。翻訳者はアプリケーションをより適切にローカライズできます。

69
Alex Reynolds

2番目のパラメーターは、ソースコードをスキャンして文字列ファイルを作成できるgenstringsコマンドラインユーティリティを使用すると、文字列ファイルに自動的に表示されるコメントです。

このコメントは、ローカライザーにとって便利です。例えば:

NSLocalizedString(@"Save",@"Title of the Save button in the theme saving dialog");

Genstringsを実行すると、Localizable.stringsファイルに次のようなエントリが作成されます。

/* Title of the Save button in the theme saving dialog */
"Save" = "Save";
268
Rob Keniger

これは、開発者が翻訳を理解するためのものです。つまり、対応する文字列ファイルから対応する文字列を取得するためのキーを提供しています。

開発者はコメントパラメータを使用して、キーが何を表すかを理解できます。

0
Shanmugaraja G