文本字符串本地化 text-string-localization

文本字符串本地化允许图像目录包含同一字符串值的多个特定于区域设置的表示形式。

服务器将与locale=指定的区域设置匹配的表示返回到客户端,从而避免客户端本地化,并允许应用程序通过发送相应的locale=值和IS文本请求来切换区域设置。

范围 section-a03f48e3bc0e4ab281909a2bd441a3c2

文本字符串本地化应用于以下目录字段中包含本地化令牌 ^loc= *locId*^的所有字符串元素:

目录字段
字段中的字符串元素
目录::图像集

包含可翻译字符串的任何子元素(由分隔符“,”“;”“:”和/或字段的开始/结束位置的任何组合分隔)。

可本地化字段开头的 0xrrggbb 颜色值从本地化中排除,无需修改即可传递。

目录::映射
任何单引号或双引号属性值,但坐标= 和形状= 属性的值除外。
目录::目标
任何目标的值。*.label 和目标*.userdata 属性。
目录::UserData
任何属性的值。

字符串语法 section-d12320edf300409f8e17565b143acafc

图像目录中启用了本地化的​ string ​元素由一个或多个本地化字符串组成,每个字符串前面都有一个本地化令牌。

stringElement
[ defaultString ]*{ localizationToken localizedString }
本地化令牌
^loc= locStr ^
locId
localizedString 的内部区域设置ID位于此 localizedToken 之后。
localizedString
本地化的字符串。
默认字符串
用于未知区域设置的字符串。

locId ​必须是ASCII格式,不能包括“^”。

“^”可能出现在具有或不具有HTTP编码的子字符串中的任何位置。 服务器将整个​ localizationToken ^loc=locId^模式匹配为分隔子字符串。

stringElements ​不包含至少一个​ localizationToken,不考虑进行本地化。

翻译图 section-f7ce3df91b724adf95cee44eac4915d4

attribute::LocaleStrMap定义服务器用于确定哪个​ localizedStrings ​返回到客户端的规则。 它包含输入​ locales ​的列表(与使用locale=指定的值匹配),每个列表均不含一个或多个内部区域设置ID ( locId)。 例如:

attribute::LocaleStrMap= en,E|nl,N|de,D|,

空​ locId ​值表示应返回​ defaultString(如果可用)。

有关详细信息,请参阅attribute::LocaleStrMap的说明。

翻译过程 section-a2a8a3e5850f4f7c9d2318267afe98a2

给定上面的示例翻译映射和请求/is/image/myCat/myItem?req=&locale=nl,服务器首先在区域设置映射中查找“nl”。 匹配的条目nl,N指示对于每个​ stringElement,应返回标记为^loc=N^的​ localizedString。 如果​ stringElement ​中不存在此​ localizationToken,则返回空值。

假设myCat/myItemcatalog::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

未知区域设置 section-26dfeefbd60345de94bbfeaaf7741223

在上例中,attribute::LocaleStrMap有一个包含空​ locale ​值的条目。 服务器使用此条目处理翻译映射中未明确指定的所有locale=值。

示例翻译映射指定在这种情况下,应返回​ defaultString(如果可用)。 因此,如果将此翻译映射应用于请求/is/image/myCat/myItem?req=&locale=ja,则会返回以下内容:

val1=111 str1=Default1 val2=value2 str2= str3=Default3

示例 section-ae6ff7fb90754b839f04ed08aadffa3f

语言系列

多个​ 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
区域设置
输出字符串
^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^Audiential

en, en_us

en_uk

de, de_de

de_at

所有其他

英文

UK — 英语

德文

奥地利语

-

^ 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

所有其他

英文

美式英语

德文

-

recommendation-more-help
a26166cd-f2f4-45ce-996d-96a0f0d6cf49