テキスト文字列ローカライゼーション

テキスト文字列ローカライゼーションを使用すると、画像カタログに、同じ文字列値に対して複数のロケール固有の表現を含めることができます。

サーバーは、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)が利用可能になり、ほとんどの場合、一般的なドイツ語​localizedStringsDでマーク)が返されます。

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

その他

英語

米国英語

ドイツ語

-

このページ