注:
如果您希望在 Scene7 Publishing System 中设置“本地化支持”选项(如“区域设置映射”字段),请联系 Adobe Scene7 技术支持。或者,向 s7support@adobe.com 发送电子邮件寻求设置帮助。
Scene7 Publishing System (SPS) 的一种常见用法是管理电子商务网站上的产品图像。国际企业面临如下挑战:类似产品的资源在各个国家/地区之间存在一些差异。通常,这些差异仅出现在整体媒体的极少部分。通过复制每个国家/地区的所有资源,并仅覆盖其中的差异可以处理此类差异,但这项工作非常艰巨,而且可能会使单个主要资源发生冲突。从包含不同音轨的国家/地区特定视频,到产品所用电源线的细微但重要的差异,此类资源差异可能会持续存在。S7 使用基本的查找机制。您可以从所需的区域设置开始,定义图像服务器查找资源后缀的顺序。
如何本地化资源
IS(图像服务)请求的区域设置通过以下 IS/IR(图像渲染)命令来识别:
locale=
此命令接受区域设置 ID (locId) 字符串,不区分大小写。区域设置 ID 通常是由 2-6 个字母和“_”组成的字符串。
IS 支持任意可打印的 ASCII 字符串。
locale=
命令具有全局范围,即它会应用于整个请求,包括所有嵌套的 IS 和 IR 请求、引用的模板和图像层。不支持每个请求应用多个区域设置,如每个图层应用不同的区域设置。但是,允许在嵌套的请求中显式覆盖区域设置。
如果未指定
locale=
,则会将
attribute::DefaultLocale
传递到翻译引擎。对
locale=
值会应用有限的输入验证。允许使用空的
locale=
值。由于
locale=
具有全局范围,因此主目录会为整个请求提供
attribute::DefaultLocale
。
使用
locale=
和
attribute::DefaultLocale
的好处包括:
-
针对多个区域设置共享内容。
-
使用通用 ID 访问区域设置特定的内容。
-
在区域设置特定内容的命名约定和管理方面具有相当大的灵活性,如区域设置前缀与后缀或单独目录中的区域设置特定内容。
-
支持直接访问区域设置特定的版本。
-
复合对象(如图像集)可以包含对区域设置特定的潜在内容的泛型引用。
-
支持目录管理的可能需要本地化的所有内容,包括图像、图像集、晕影、材料和查看器配置记录。
-
最大程度地减少对 IPS 数据库和 IS 清单机制的更改。
-
实施 RFC IS-63 时,将添加对静态内容(如视频和外观)的支持。
-
默认区域设置是可配置的。
应用程序方案
应用程序
|
方案
|
查看器本地化
|
在实施静态内容目录后,本地化可完全通过
locale=
参数控制,该参数会附加到对 IS 的所有请求后面。配置记录、外观和启动画面等可以具有区域设置特定的变量,也可以没有。正确内容由 IS 提供,查看器无需知道哪些内容进行了本地化以及其 ID 是什么。
|
图像和视频
|
跨国公司通常同时拥有通用内容和区域设置特定的内容。通过这种机制,对图像或视频的引用可以是泛型引用,并且 IS 会提供区域设置特定的内容(如果可用)。
|
图像集和媒体集
|
在从通用图像集转换为查看器可处理的区域设置特定图像集后,某些区域设置的整个图像集可能会有所不同,如当 eCatalog 完全不同时。
比较常见的情况是,通用图像集中的个别 ID 可能会引用本地化的内容。例如,某设备的大部分照片在所有语言中都是相同的,但控制面板的照片除外。IS 会自动转换 ID,因此无需生成区域设置特定的图像集。
|
实施资源本地化
Scene7 发布和图像服务的界面允许对图像和静态内容进行本地化。
当没有本地化版本时,图像服务器 URL 如下所示:
http://server/is/image/company/image
当有本地化版本时,图像服务器 URL 会在路径中添加
locale=
参数,如下所示:
http://server/is/image/company/image?locale=de_DE
在图像服务器收到 http 调用时,将通过 localeMap 字段解析
locale=
参数,该字段位于“
设置
”>“
应用程序设置
”>“
发布设置
”>“
图像服务器
”>“
本地化支持
”组中。
“区域设置映射”字段包含一个用管道符号 (|) 分隔的条目列表。
每个条目由一个以逗号分隔的值列表组成。第一个值是由
locale=
参数传递的搜索值。其余的值为后缀/替换值,随后将尝试搜索这些值,直到找到现有图像为止。
具体应用后缀值还是应用替换值,取决于“
设置
”>“
应用程序设置
”>“
发布设置
”>“
图像服务器
”>“
本地化支持
”组中的“全局区域设置”。
注:
“全局区域设置”目前只能通过 API 进行设置,而无法在 Scene7 Publishing System 界面中设置。
后缀示例
URL
|
localeMap ID
|
结果
|
http://server/is/image/company/image?locale=de_DE
|
de_DE,_DE,|fr_FR,_FR,
|
请注意,这里没有定义 GlobalLocale。区域设置参数
de_DE
与 localeMap 中的第一个条目匹配。第一个对应值
_DE
将添加为资源
image_DE
的后缀,并尝试在图像服务器上查找该资源。如果在服务器上找到该资源,则会将其返回。否则,使用第二个值“”作为后缀,返回图像本身。
|
替换示例
URL
|
GlobalLocale 和 localeMap ID
|
结果
|
http://server/is/image/company/image-main-01?locale=de_DE
|
GlobalLocale=main
localeMap - de_DE,de,main|fr_FR,fr,main
|
在以上替换示例中,GlobalLocale 被设置为
main
。区域设置参数
de_DE
与 localeMap 中的第一个条目匹配。将查找 GlobalLocale 子字符串,并将其替换为 localeMap 中的第一个对应值 de:
image-de-01
。如果在图像服务器上找到,则会将其返回。否则,替换第二个值,最终生成
image-main-01
。
|
如果 URL 中没有定义区域设置,则图像服务器会采用 DefaultLocale(如果定义)并将其应用到 URL。
如果
locale=
提供的区域设置参数未知或为空,则会扫描 localeMap 查看是否存在空值“开头为 ,”。请务必将此配置为对未知区域设置应用默认区域设置,这一点非常重要。
关于 defaultImage
图像服务器会为请求的区域设置逐个试用选项。如果找不到匹配项,则会对 defaultImage 应用区域设置选项,并返回匹配版本。因此,每个区域设置都应包含一个针对未本地化图像的选项,或者应在 Scene7 Publishing System 中提供本地化的 defaultImage 版本。
用于查找 localeMap 的方案
假定您要支持以下区域设置:
en, en_us, en_uk, de, de_at, de_de, fr
您将这些区域设置分别映射到英语、德语和法语的后缀
_E
、
_G
和
_F
。对于所有示例,通用输入图像 ID 为
myImg
。
用于查找 localeMap 的标准行为
区域设置 ID 会被映射到其对应的后缀。如果在目录中找不到区域设置特定的 ID,则尝试使用通用 ID。请注意映射到通用 ID 的空 locSuffix 值。
attribute::LocaleMap=en,_E,|en_us,_E,|en_uk,_E,|fr,_F,|de,_D,|de_at,_D,|de_de,_D,
locale=
|
要搜索的输出 ID
|
en,en_us, en_uk
|
myImg_E, myImg
|
de,de_de,de_at
|
myImg_D, myImg
|
fr
|
myImg_F, myImg
|
所有其他区域设置
|
-
|
区域设置未知时查找 localeMap
您可以将未知的区域设置映射到特定 ID 或通用 ID。对于我们的示例,可以将未知区域设置映射到英语 ID,或者,如果英语 ID 不存在,则映射到通用 ID。
attribute::LocaleMap=en,_E,|en_us,_E,|en_uk,_E,|fr,_F,|de,_D,|de_at,_D,|de_de,_D,|,_E,
locale=
|
要搜索的输出 ID
|
de,de_de,de_at
|
myImg_D,myImg
|
fr
|
myImg_F,myImg
|
所有其他区域设置
|
myImg_E,myImg
|
您还可以只对未知的区域设置使用专用的 locSuffix(如 U),如果
_U
不存在,则强制映射到默认图像,如下所示:
attribute::LocaleMap=en,_E,|en_us,_E,|en_uk,_E,|fr,_F,|de,_D,|de_at,_D,|de_de,_D,|,U
或者,可以直接映射到通用 ID,如下所示:
attribute::LocaleMap=en,_E,|en_us,_E,|en_uk,_E,|fr,_F,|de,_D,|de_at,_D,|de_de,_D,|,
使用多层查找来找到 localeMap
通常,最好对区域设置(如欧洲、中东和北美)进行分组以应对区域标准,如外观曝光。可以使用多层查找来实现这种效果。
对于本示例,假定您要支持供西方和中东使用的集合。这两个集合都基于通用图像集合,而且都添加或修改某些图像。然后针对特定的区域设置进一步优化这两个集合,如
m1、m2
用于两个中东变量,
w1、w2
和
w3
用于三个西方区域设置,但只对
w1
和
w3
共享图像。未知区域设置仅映射到通用集合,而且无法访问区域设置特定的图像。该映射如下所示:
attribute::LocaleMap=w1,-W,|w2,-W2,-W,|w3,-W,|m1,-M1,-M,|m2,-M2,-M,|,
locale=
|
要搜索的输出 ID
|
w1, w3
|
myImg-W, myImg
|
w2
|
myImg-W2, myImg-W, myImg
|
m1
|
myImg-M1, myImg-M, myImg
|
m2
|
myImg-M2, myImg-M, myImg
|
所有其他区域设置
|
mylmg
|
通过搜索特定 ID 查找 localeMap
有些图像命名约定可能不支持通用图像 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
locale=
|
要搜索的输出 ID
|
fr
|
myImg_22, myImg_23, myImg_1, myImg_2, myImg_3
|
de, de_at, de_de
|
myImg_470, myImg_480, myImg_1, myImg_2,myImg_3
|
所有其他区域设置
|
myImg_1, myImg_2, myImg_3
|
实施本地化支持时的重要注意事项
-
本地化仅限基于 ID 的资源调用,无法用于基于路径的资源调用。因此,在调用具有区域设置的视频时,必须以 company/assetID 的形式调用,而不采用视频的完整路径。这意味着无法使用本地化的 rtmp,因为该方法仅用于基于路径的视频调用。
-
当 localeMap 处于活动状态时,无法使用包含单个视频的“混合媒体集”,否则对媒体集内容的调用会失败。要解决此问题,可以将单个视频添加到自适应视频集。然后,将自适应视频集添加到混合媒体集。
-
某些请求没有本地化,例如针对自适应视频集内容的请求。因此,如果要使用本地化的自适应视频集,则应将自适应视频集放置在混合媒体集中。然后,使用
locale=
参数将视频集调用到混合媒体查看器中。