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

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

サーバは、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::UserDatamyCat/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は属性::LocaleStrMap に存在しないので、この locId に関連付けられたサブ文字列は返されません。

en, en_uk

en_us

de, de_at, de_de

その他

英語

米国英語

ドイツ語

-

このページ