文本字符串本地化 text-string-localization
文本字符串本地化允许图像目录包含同一字符串值的多个特定于区域设置的表示形式。
服务器将与locale=
指定的区域设置匹配的表示返回到客户端,从而避免客户端本地化,并允许应用程序通过发送相应的locale=
值和IS文本请求来切换区域设置。
范围 section-a03f48e3bc0e4ab281909a2bd441a3c2
文本字符串本地化应用于以下目录字段中包含本地化令牌 ^loc= *
locId*^
的所有字符串元素:
包含可翻译字符串的任何子元素(由分隔符“,”“;”“:”和/或字段的开始/结束位置的任何组合分隔)。
可本地化字段开头的 0xrrggbb 颜色值从本地化中排除,无需修改即可传递。
字符串语法 section-d12320edf300409f8e17565b143acafc
图像目录中启用了本地化的 string
元素由一个或多个本地化字符串组成,每个字符串前面都有一个本地化令牌。
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/myItem
的catalog::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
组合的输出:
en, en_us, en_uk
de, de_at, de_de
所有其他
英文
德文
-
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
所有其他
英文
美式英语
德文
-