Function 関数

NSLocalizedString(_:tableName:bundle:value:comment:)

Returns a localized string from a table that Xcode generates for you when exporting localizations. ローカライズ文字列をある表から返します、それはXcodeがあなたに代わってローカライゼーションのエクスポート時に自動生成するものです。

Declaration 宣言

func NSLocalizedString(_ key: String, tableName: String? = nil, bundle: Bundle = Bundle.main, value: String = "", comment: String) -> String

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. This defaults to the table in Localizable.strings 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 if one isn’t specified. 表のもつstringsファイルを含んでいるバンドル。それが指定されないならば、メインバンドルが使われます。

value

The localized string for the development locale. For other locales, return this value if key isn’t found in the table. 開発ロケール用にローカライズされた文字列。他のロケールに対して、この値が返されます、もし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 localizedString(forKey:value:table:) to bundle, passing the specified key, value, and tableName. localizedString(forKey:value:table:)bundleに送信することの結果、指定されたkeyvalue、そしてtableNameを渡しています。

Discussion 議論

Use this function to automatically generate a strings files named [tableName].strings located in bundle from your code when exporting localizations from Xcode or the genstrings utility. この関数を使って、[tableName].stringsと名前をつけられ、bundleに位置するstringsファイルを、あなたのコードから自動的に生成してください、ローカライゼーションそれらをXcodeまたはgenstringsユーティリティからエクスポートする時に。

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

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” is a heteronym in English, but not in French, where the noun translates to “Livre,” and 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 appears to the user. 異なる言語は、しばしば異なる同綴異音異義語を持ちます。“Book” は英語では同綴異音異義語です、しかしフランス語ではそうではありません、そこではその名詞は “Livre” に翻訳されます、そして動詞は “Réserver” に翻訳されます。この理由のために、重要なのは各語句をそれの意味に適切に翻訳することです、それの語句的にではなく。固有のキーを各文字列に割り当ててください、そしてそれがユーザに現れるところの文脈を記述しているコメントを加えてください。


NSLocalizedString("book-tag-title",
                  value: "Book",
                  comment: "noun: A label attached to literary items in the library.")


NSLocalizedString("book-button-title",
                  value: "Book",
                  comment: "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";

Avoid String Interpolation 文字列補間を避ける

Xcode doesn’t evaluate interpolated strings and string variables when generating strings files from code. Attempting to localize interpolated strings causes Xcode to export something that resembles the original code expression instead of its expected value at runtime. Translators then translate that exported value—leaving international users with a localized string containing code. Xcodeは、補間文字列および文字列変数を、stringsファイルをコードから生成する時に評価しません。補間された文字列をローカライズする試みは、Xcodeが元のコード式に似ている何かを、それの期待される値の代わりにエクスポートすることを引き起こします。トランスレータは、それからそのエクスポートされた値を翻訳します — 各国のユーザはコードを含んでいるあるローカライズされた文字列のままにして。

The following code with an interpolated string literal has the translator localize the phrase, “The dominant color is (dominantColor)”: 以下のコードは補間された文字列リテラルをもち、トランスレータに語句、“The dominant color is (dominantColor)” をローカライズさせます:


NSLocalizedString("dominant-color-caption",
                  value: "The dominant color is \(dominantColor)."
                  comment: "Image caption identifying the color that stands-out the most.")

/* Image caption identifying the color that stands-out the most. */
"dominant-color-caption" = "The dominant color is (dominantColor).";

Instead, to dynamically insert values within localized strings, set value to a format string, and use localizedStringWithFormat(_:_:) to insert those values. そうではなく、動的に値それらをローカライズ済文字列内に挿入するには、ある書式設定文字列へとvalueを設定してください、そしてlocalizedStringWithFormat(_:_:)を使ってそれら値を挿入してください。


let format = NSLocalizedString("dominant-color-caption",
                               value: "The dominant color is %@.",
                               comment: "Image caption identifying the color that stands-out the most.")
let localizedString = String.localizedStringWithFormat(format, favoriteColor)

/* Image caption identifying the color that stands-out the most. */
"dominant-color-copation" = "The dominant color is %@.";

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

Avoid Multiline String Literals 複数の文字列リテラルを避ける

Using multiline string literals for strings with newlines can result in unexpected behavior when exporting localizations. Xcode inserts a new line before and after the body of text in the strings file, which translators preserve in their localizations. 複数の文字列リテラルをstringsに対して改行いくつかで使うことは、ローカライゼーションをエクスポートする時に予期されない挙動という結果になりえます。Xcodeは、ある新しい行をstringsファイルの中のテキストの内容の前と後ろに挿入します、そしてそれはトランスレータがそれらのローカライゼーションにおいて保全します。


NSLocalizedString("loading-screen.venus-flytrap-fact",
                  value: """
Did you know that venus flytraps have flowers atop very long stems?
The long stem keeps insects a safe distance away from their digestive leaves below.
""",
                  comment: "An interesting fact about venus flytraps shown on the loading screen.")

The previous code sample adds the following entry into Localized.strings when Xcode exports localizations: 前のコード見本は、以下の登録項目をLocalized.stringsに加えます、Xcodeがローカライゼーションをエクスポートする時に:


/* An interesting fact about venus flytraps shown on the loading screen. */
"loading-screen.venus-flytrap-fact" = "\nDid 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.\n";

You can preserve the aesthetics of mirroring newlines in a string in their code representation by using string concatenation with +(_:_:). あなたは、それらのコード表現においてある文字列中の改行を忠実に描写することに関して美的感覚を保つことが、+(_:_:)での文字列連結を使うことによって可能です。


NSLocalizedString("loading-screen.venus-flytrap-fact",
                  value: "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.",
                  comment: "An interesting fact about venus flytraps shown on the loading screen.")

/* An interesting fact about venus flytraps shown on the loading screen. */
"loading-screen.venus-flytrap-fact" = "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.";

However, because comments aren’t localized, you can safely use multiline string literals with comment. しかしながら、コメントはローカライズされないため、あなたは安全に複数行文字列リテラルをcommentで使用できます。


NSLocalizedString("balloon-image-caption", value: "A bazillion balloons!", comment: """
Caption for an image of a lot of balloons.
The word "bazillion" is intentionally used to invoke a sense of childish excitement.
""")

/*
Caption for an image of a lot of balloons.
The word "bazillion" is intentionally used to invoke a sense of childish excitement.
*/
"balloon-image-caption" = "A bazillion balloons!";

See Also 参照

Localization ローカライゼーション

Related Documentation 関連文書