テキスト文字列ローカライゼーションを使用すると、画像カタログに、同じ文字列値に対して複数のロケール固有の表現を含めることができます。
サーバーは、locale=
で指定されたロケールに一致する表現をクライアントに返すので、クライアント側のローカライゼーションを回避し、ISテキストリクエストで適切なlocale=
値を送信するだけでロケールを切り替えられます。
テキスト文字列ローカライゼーションは、次のカタログフィールドにローカライゼーショントークン ^loc= *
locId*^
を含むすべての文字列要素に適用されます。
カタログフィールド | フィールド内の文字列要素 |
---|---|
catalog::ImageSet |
変換可能な文字列を含むサブ要素(区切り文字「,」、「;」、「:」、フィールドの開始/終了」、またはその両方の組み合わせで区切られます)。 ローカライズ可能なフィールドの先頭の 0xrrggbb カラー値は、ローカライゼーションから除外され、変更せずに渡されます。 |
catalog::Map |
coords= および shape= 属性の値を除く、単一または重複で引用符で囲まれた任意の属性値。 |
catalog::ターゲット |
ターゲットの値。*.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
されるルールを定義します。これは、(locale=
で指定された値と一致する)入力locales
のリストで構成され、それぞれに内部ロケール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
for 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が attribute::LocaleStrMap に存在しないので、この locId に関連付けられたサブ文字列は返されません。 |
en, en_uk en_us de, de_at, de_de その他 |
英語 米国英語 ドイツ語 - |