Macro

NSLocalizedStringWithDefaultValue

Returns a localized version of a string identified by a key in the table that you specify, which Xcode autogenerates when exporting localizations. あなたが指定する表の中のあるキーによって識別される、ある文字列のローカライズ版を返します、それはXcodeがローカライゼーションのエクスポート時に自動生成します。

Declaration 宣言

#define NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment)

Parameters パラメータ

key

The key for a string in the specified table. 指定された表の中のある文字列に対するキー。

tableName

The name of the table containing the key-value pairs. Also, the suffix for the strings file (a file with the .strings extension) to store the localized string. The default table in Localizable.strings is used when tableName is nil or an empty string. キー値ペアを含んでいる表の名前。または、ローカライズされた文字列を格納するためのstringsファイル(.strings拡張子をもつファイル)に対する接尾辞。Localizable.strings の中の省略時の表は、tableNamenilまたは空文字列の時に使われます。

bundle

The bundle containing the table’s strings file. The main bundle is used when bundle is nil. 表のもつstringsファイルを含んでいるバンドル。メインバンドルは、bundlenilの時に使われます。

value

The localized string for the development locale. For other locales, return this value if key is nil or if a localized string for key isn’t found in the table. 開発ロケール用にローカライズされた文字列。他のロケールに対して、この値を返してください、もしkeynilであるまたはkeyに対するローカライズされた文字列が表の中に見つけられないならば。

comment

The comment to place above the key-value pair in the strings file. This parameter provides the translator with some context about the localized string’s presentation to the user. stringsファイルにおいてキー値ペアの上方に置くことになるコメント。このパラメータは、ローカライズされた文字列のユーザへの提示についての何らかの文脈をトランスレータに提供します。

Return Value 戻り値

The result of sending localizedStringForKey:value:table: to bundle, passing the specified key, value, and tableName. localizedStringForKey:value:table:bundleに渡すことの結果、指定されたkeyvalue、そしてtableNameを渡しています。

Discussion 議論

Use this macro to automatically generate a strings file named [tableName].strings located in bundle from your code when exporting localizations from Xcode or the genstrings utility. The initial value for key in the strings file is value. You can specify Unicode characters in key using \\Uxxxx—see the -u option for the genstrings utility. このマクロを使って、[tableName].stringsと名前をつけられ、bundleに位置するstringsファイルを、あなたのコードから自動的に生成してください、ローカライゼーションそれらをXcodeまたはgenstringsユーティリティからエクスポートする時にです。stringsファイルの中のkeyに対する初期値は、valueです。あなたは、Unicode文字をkeyにおいて\\Uxxxxを使って指定できます — genstringsユーティリティの-uオプションを見てください。

For information about inserting plural nouns and units into localized strings, see Localizing Strings That Contain Plurals. 複数の名詞と単位をローカライズされたstringsへと挿入することについての情報として、Localizing Strings That Contain Pluralsを見てください。

As of OS X 10.11 and iOS 9, NSBundle is thread-safe. As such, you can safely call NSLocalizedStringWithDefaultValue from any execution context. OS X 10.11とiOS 9時点で、NSBundleはスレッド安全です。そういうことで、あなたはNSLocalizedStringWithDefaultValueをどんな実行文脈からでも安全に呼び出し可能です。


NSLocalizedStringFromTableInBundle(
    @"loading-screen.venus-flytrap-fact", 
    @"Localized",
    [NSBundle mainBundle],
    @"Did you know that venus flytraps have flowers"
        @" atop very long stems?\nThe long stem keeps"
        @" insects a safe distance away from their"
        @" digestive leaves below.",
    @"An interesting fact about venus flytraps shown"
        @" on the loading screen.");

Choose Meaningful Keys 意味に満ちたキーを選ぶ

Words can often have multiple different meanings depending on the context in which they’re used. For example, the word “Book” can be a noun referring to a printed literary work or a verb for the action of making a reservation. Words with different meanings that share the same spelling are heteronyms. 単語は、そこにおいてそれが使われる文脈に依存して、しばしば複数の異なる意味を持ちます。例えば、単語 “Book” は、印刷された著作物を示す名詞または予約をする行為に対する動詞でありえます。同じ綴りを共有し異なる意味をもつ単語は、同綴異音異義語です。

Different languages often have different heteronyms. 異なる言語は、しばしば異なる同綴異音異義語を持ちます。 “Book” in English is a heteronym, but it isn’t in French, where the noun translates to “Livre,” whereas the verb translates to “Réserver.” For this reason, it’s important to translate each phrase appropriately for its semantics and not its phrasing. Assign unique keys to each string, and add a comment describing the context where it’s visible to the user. 特有なキーを各文字列に割り当ててください、そしてそれがユーザの目に触れるところの文脈を記述しているコメントを加えてください。


NSLocalizedStringWithDefaultValue(
    @"book-tag-title", nil, nil, @"Book",
    @"noun: A label attached to literary items in the library.");


NSLocalizedStringWithDefaultValue(
    @"book-button-title", nil, nil, @"Book",
    @"verb: Title of the button that makes a reservation.");

For the previous example, the table for the French locale in fr.lproj/Localized.strings includes the following lines: 前の例に対して、fr.lproj/Localized.stringsの中のフランス語ロケールに対する対応表は、以下の行を含みます:


/* noun: A label attached to literary items in the library. */
"book-tag-title" = "Livre";


/* verb: Title of the button that makes a reservation. */
"book-button-title" = "Réserver";

See Also 参照

Localization ローカライゼーション

Related Documentation 関連文書