翻訳マップ
attribute::LocaleStrMap
は、クライアントに返す localizedStrings
を決定するためにサーバーが使用するルールを定義します。 これは入力 locales
のリスト(locale=
で指定された値に一致)で構成され、それぞれに内部ロケール ID (locId
)が 0 個以上あります。 以下に例を挙げます。
attribute::LocaleStrMap= en,E|nl,N|de,D|,
空の locId
値は、defaultString
が返される必要があることを示します(使用可能な場合)。
詳しくは、attribute::LocaleStrMap
の説明を参照してください。
翻訳プロセス
上記の翻訳マップの例とリクエスト /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
不明なロケール
上記の例では、attribute::LocaleStrMap
には、空の locale
値を持つエントリがあります。 サーバーはこのエントリを使用して、翻訳マップで明示的に指定されていないすべての locale=
値を処理します。
翻訳マップの例では、このような場合に defaultString
が返されるように指定しています(使用可能な場合)。 したがって、この翻訳マップがリクエスト /is/image/myCat/myItem?req=&locale=ja
ージに適用される場合は、次のように返されます。
val1=111 str1=Default1 val2=value2 str2= str3=Default3
例
言語ファミリ
複数の 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
の組み合わせの出力を示します。
stringElement | locale | 出力文字列 |
---|---|---|
^loc=E^English^loc=D^German |
en, en_us, en_uk de, de_at, de_de その他すべて |
英語 ドイツ語 - |
^loc=E^English^loc=UKE^UK-English^loc=D^German^loc=DAT^オーストリア |
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 その他すべて |
英語 米国 – 英語 ドイツ語 - |