テキスト文字列のローカライゼーションを使用すると、画像カタログに同じ文字列値に対して、複数のロケール固有の表現を含めることができます。
サーバは、locale=
で指定されたロケールに一致する表現をクライアントに返すので、クライアント側のローカライゼーションを回避し、ISテキスト要求で適切なlocale=
値を送信するだけで、アプリケーションがロケールを切り替えることができます。
テキスト文字列のローカライゼーションは、次のカタログフィールドのローカリゼーショントークン ^loc= *
locId*^
を含むすべての文字列要素に適用されます。
カタログフィールド | フィールド内の文字列要素 |
---|---|
catalog::ImageSet |
翻訳可能な文字列を含むサブ要素(区切り文字「,」「;」「:」やフィールドの開始/終了の組み合わせで区切られます)。 ローカライズ可能フィールドの先頭の 0xrrggbb カラー値は、ローカライゼーションから除外され、変更なしで渡されます。 |
catalog::Map |
coords= および shape= 属性の値を除く、一重引用符または二重引用符で囲まれた属性値。 |
catalog::Targets |
ターゲットの値。*.label とターゲット。*.userdata プロパティを追加します。 |
catalog::UserData |
プロパティの値。 |
画像カタログ内のローカライゼーション対応のstring
要素は、1つ以上のローカライズされた文字列で構成され、各要素の前にローカライゼーショントークンが付きます。
stringElement |
[ defaultString ]*{ localizationToken localizedString } |
localizationToken |
^loc= locStr ^ |
locId |
この localizationToken に続く localizedString の内部ロケールID。 |
localizedString |
ローカライズされた文字列。 |
defaultString |
不明なロケールに使用する文字列。 |
locId
はASCIIにする必要があり、「^」を含めることはできません。
「^」は、HTTPエンコードの有無に関わらず、サブ文字列の任意の場所に配置できます。 サーバーは、localizationToken
^loc=locId^
パターン全体を区切ってサブ文字列に一致させます。
stringElements
少なくとも1つを含まないもの localizationToken
は、ローカライゼーションでは考慮されません。
attribute::LocaleStrMap
は、クライアントに返すルールを決定するためにサ localizedStrings
ーバーで使用されるルールを定義します。入力locales
のリスト(locale=
で指定された値と一致)で構成され、それぞれに内部ロケールID(locId
)が1つも含まれません。 例:
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
に存在しない場合は、空の値が返されます。
例えば、catalog::UserData
(myCat/myItem
の場合)に次の文字が含まれているとします(明確にするために改行を挿入)。
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
言語ファミリ
翻訳マップの各locale
に複数のlocId
値を関連付けることができます。 これにより、一般的な基本ロケール(例:国際英語)を使用したほとんどのコンテンツを処理しながら、選択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^Austrian |
en, en_us en_uk de, de_de de_at その他 |
英語 英国 — 英語 ドイツ語 オーストリアの - |
^loc=en^English^loc=USE^US-English^loc=D^German^loc=DDE^Deutsch この例では、 locId DDEは属性::LocaleStrMap に存在しないので、この locId に関連付けられたサブ文字列は返されません。 |
en, en_uk en_us de, de_at, de_de その他 |
英語 米国英語 ドイツ語 - |