テキスト文字列のローカライズ text-string-localization
テキスト文字列のローカリゼーションを使用すると、画像カタログに、同じ文字列値に対してロケール固有の複数の表現を含めることができます。
サーバーは、locale=
で指定されたロケールに一致する表現をクライアントに返します。これにより、クライアント側でのローカリゼーションが回避され、IS テキスト要求で適切な locale=
値を送信するだけでロケールを切り替えることができます。
範囲 section-a03f48e3bc0e4ab281909a2bd441a3c2
テキスト文字列のローカリゼーションは、次のカタログフィールドにローカリゼーショントークン ^loc= *
locId*^
を含むすべての文字列要素に適用されます。
翻訳可能な文字列を含むすべてのサブ要素(区切り文字「,」「;」「:」やフィールドの開始/終了の任意の組み合わせで区切られる)。
ローカライズ可能なフィールドの先頭にある 0xrggbb color 値は、ローカライズから除外され、変更なしで渡されます。
文字列構文 section-d12320edf300409f8e17565b143acafc
画像カタログ内のローカライゼーションが有効な string
要素は、1 つ以上のローカライズされた文字列で構成され、各文字列の前にはローカライゼーショントークンが付きます。
locId
は ASCII である必要があり、「^」を含めることはできません。
「^」は、HTTP エンコーディングの有無に関わらず、部分文字列のどこにでも存在する可能性があります。 サーバーは、localizationToken
^loc=locId^
パターン全体を照合して、サブ文字列を区切ります。
stringElements
には 1 つ以上の localizationToken
が含まれていないので、ローカライズの対象にはなりません。
翻訳マップ section-f7ce3df91b724adf95cee44eac4915d4
attribute::LocaleStrMap
は、クライアントに返す localizedStrings
を決定するためにサーバーが使用するルールを定義します。 これは入力 locales
のリスト(locale=
で指定された値に一致)で構成され、それぞれに内部ロケール ID (locId
)が 0 個以上あります。 以下に例を挙げます。
attribute::LocaleStrMap= en,E|nl,N|de,D|,
空の locId
値は、defaultString
が返される必要があることを示します(使用可能な場合)。
詳しくは、attribute::LocaleStrMap
の説明を参照してください。
翻訳プロセス section-a2a8a3e5850f4f7c9d2318267afe98a2
上記の翻訳マップの例とリクエスト /is/image/myCat/myItem?req=&locale=nl
を指定すると、サーバーはまず、ロケールマップで「nl
」を探します。 一致するエントリ nl,N
は、stringElement
ごとに、^loc=N^
でマークされた localizedString
を返す必要があることを示しています。 この localizationToken
が stringElement
に存在しない場合は、空の値が返されます。
例えば、myCat/myItem
の catalog::UserData
に次の改行が含まれているとします(わかりやすくするために挿入されます)。
val1=111?? str1=Default1^loc=N^Dutch1^loc=D^German1?? val2=value2?? str2=^loc=E^English2^loc=N^Dutch2^loc=D^German2?? str3=Default3^loc=N^Dutch3^loc=D^German3
サーバーは、サンプルのリクエストに応答して次を返します。
val1=111 str1=Dutch1 val2=value2 str2=Dutch2 str3=Dutch3
不明なロケール section-26dfeefbd60345de94bbfeaaf7741223
上記の例では、attribute::LocaleStrMap
には、空の locale
値を持つエントリがあります。 サーバーはこのエントリを使用して、翻訳マップで明示的に指定されていないすべての locale=
値を処理します。
翻訳マップの例では、このような場合に defaultString
が返されるように指定しています(使用可能な場合)。 したがって、この翻訳マップがリクエスト /is/image/myCat/myItem?req=&locale=ja
ージに適用される場合は、次のように返されます。
val1=111 str1=Default1 val2=value2 str2= str3=Default3
例 section-ae6ff7fb90754b839f04ed08aadffa3f
言語ファミリ
複数の locId
値を翻訳マップの各 locale
に関連付けることができます。 その理由は、選択した stringElements
ーザーに対して国固有または地域固有のバリエーション(例:米国英語と英国英語)をサポートし、共通の基本ロケール(例:国際英語)を使用してほとんどのコンテンツを処理できるためです。
例えば、米国固有の英語(*
locId* EUS
)と英国固有の英語(*
locId* EUK
)のサポートが追加され、時折の代替スペルがサポートされます。 EUK または EUS が存在しない場合は、E にフォールバックします。同様に、オーストリア固有のドイツ語版(DAT
)を必要に応じて使用できるようにし、その際に一般的なドイツ語 localizedStrings
(D
でマーク)を常に返すことができます。
attribute::LocaleStrMap
は次のようになります。
en,E|en_us,EUS,E|en_uk,EUK,E|de,D|de_at,DAT,D|de_de,D
次の表に、代表的な stringElement
と locale
の組み合わせの出力を示します。
en, en_us, en_uk
de, de_at, de_de
その他すべて
英語
ドイツ語
-
en, en_us
en_uk
de, de_de
de_at
その他すべて
英語
英国 – 英語
ドイツ語
オーストリア
-
^ loc=en^English^loc=USE^US-English^loc=D^German^loc=DDE^Deutsch
この例では、 locIdDDE は attribute::LocaleStrMap に存在 ないので、この locId に関連付けられた部分文字列は返されません。
en, en_uk
en_us
de, de_at, de_de
その他すべて
英語
米国 – 英語
ドイツ語
-