对象标识转换 object-id-translation
图像服务提供了一种将外部对象ID转换为特定于区域设置的对象(目录)ID的机制。 主要应用程序用于提供特定于区域设置的内容以及在多个区域设置之间共享的内容,而无需客户端应用程序知道特定于区域设置的对象ID。
应用程序只能使用全局对象ID进行编写,并且图像服务会自动替换特定于区域设置的图像和其他内容(如果可用)。
使用 locale 命令在图像服务请求中指定locale=。
范围 section-66fcd5bd467c4eeaa1574583cbe9756d
对图像、SVG和静态内容目录中的条目的所有引用都被视为翻译字体,并且ICC配置文件引用不会进行翻译。 除了 object 和/is/image路径中的/is/static requests之外,这些命令和目录属性还受ID转换的影响: src=、mask=、template=、defaultImage=、attribute::DefaultImage和attribute::Watermark。
ID转换映射 section-9e417b352c314dfe94e831fdd62cddc8
attribute::LocaleMap定义服务器用于确定本地化内容的ID的规则,作为输入提供通用对象ID和locale=值。
attribute::LocaleMap由输入 区域设置 的列表组成(与使用locale=指定的值匹配),每个区域设置后缀都不包含或超过输出区域设置后缀(*locSuffixes*)。
例如,attribute::LocaleMap可能如下所示:
en,_E,|en_us,_E,|en_uk,_E,|fr,_F,|de,_D,|de_at,_D,|de_de,_D,|,_E,
请求/is/image/myCat/myImg?locale=de_de将返回与目录条目myCat/myImg_D关联的图像(假设存在此类目录条目)。
有关详细信息,请参阅attribute::LocaleMap的说明。
翻译过程 section-1f64db17e9f644d88e09853670e14a16
根据以上示例,服务器首先在ID转换映射中查找 locale“de_de”。 然后,它会迭代与此条目关联的 locSuffixes,在本例中为“_D”和“”(后缀为空)。 对于每次迭代,后缀都会附加到图像ID中,并且生成的ID将进行目录中存在的测试。 如果找到,则使用该目录条目,否则测试下一个目录条目。 在本例中,这些条目被选中: myCat/myImg_D和myCat/myImg。 如果未找到匹配项,则服务器会返回错误或默认图像(如果已配置)。
未知区域设置 section-b2f3c83f2dc845d69b5908107b775537
在上例中,attribute::LocaleMap包含一个空的 locale,它定义了用于未知locale=值(即未在翻译映射中显式列出的值)的默认翻译规则。 如果此翻译映射应用于请求/is/image/myCat/myImg?locale=ja,它将解析为myCat/myImg_E(如果存在),否则myCat/myImg。
如果翻译映射未指定默认翻译规则,则将为具有未知locale=值的所有请求返回错误。
示例 section-cc40bb00ee9248bb8cb23e17d7a5984c
多层查找
通常,将区域设置分组(例如,欧洲、中东、北美)以符合区域标准是值得的。 这可以通过多层查找来实现。
对于此示例,我们希望支持收藏集供西方和中东使用。 这两个集合都基于通用图像集合,而且都添加或修改某些图像。然后针对特定区域设置进一步优化这两个集合(针对两个中东变体为m1、m2,针对三个西方区域设置为w1、w2和w3),但针对w1和w3共享图像的情况除外。 未知区域设置仅映射到通用收藏集,无法访问特定于区域设置的图像。
attribute::LocaleMap: w1,-W,|w2,-W2,-W,|w3,-W,|m1,-M1,-M,|m2,-M2,-M,|,
下表说明了考虑的目录条目,以及考虑通用输入ID myImg的目录条目的顺序:
搜索特定ID
某些图像命名惯例在内部可能不支持通用图像ID。 请求中的通用ID必须始终映射到目录中的特定ID;通常,确切的特定ID可能未知。
对于此示例,所有语言的图像可能具有_1、_2或_3后缀。 特定于法语区域设置的图像可能具有_22或_23后缀,而特定于德语区域设置的图像可能具有_470或_480后缀。
attribute::LocaleMap: ,_1,_2,_3|fr,_22,_23,_1,_2,_3|de,_470,_480,_1,_2,_3| de_at,_470,_480,_1,_2,_3| de_de,_470,_480,_1,_2,_3
下表说明了考虑的目录条目,以及考虑通用输入ID myImg的目录条目的顺序:
另请参阅 section-05893816c66a406d89f9bfd6ace8d47a
attribute::LocaleMap , attribute::DefaultLocale, locale=, req=xlate