本地化产品属性值
发布日期: 2016年11月
适用于: Dynamics CRM 2015
产品的名称可能为不同区域进行本地化。 通过 Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 2015 更新,您可以对某些产品属性提供本地化的标签,以便用户将看到与其语言首选项匹配的本地化的名称。 该主题介绍开发人员如何与此功能进行交互。 有关如何使用应用程序中此功能的分步说明,请参阅帮助和培训:将产品名称和属性翻译成多种语言。
在本主题中
支持本地化属性值的属性
检索本地化属性值
使用本地化值的查询
与本地化属性一同创建或更新记录
翻译可本地化的属性
卸载一个语言
支持本地化属性值的属性
以下列表包含支持可本地化的值的属性:
Product.Name
DynamicProperty.Name
DynamicPropertyOptionSetItem.DynamicPropertyOptionName
DynamicPropertyOptionSetItem.DynamicPropertyOptionDescription
StringAttributeMetadata 和 MemoAttributeMetadata 类包含只读 IsLocalizable 布尔属性,对于所有的属性(上述表中的 4 个属性除外)该布尔属性为 false。
检索本地化属性值
不需要执行任何不同操作来检索与用户的语言首选项匹配的本地化值。 如果用户的首选语言的本地化值已存在,将会被返回。 如果本地化的值不存在,组织基本语言的值将被返回。 此行为维护向后兼容;您当前的使用产品名称属性的任何代码将使用任意本地化值继续工作。 如果属性值的本地化尚未完成,用户可能看到其他语言的值。
若要检索特定可本地化的属性的任何本地化的标签,请使用 RetrieveLocLabelsRequest 消息。
使用本地化值的查询
当您在使用本地化属性值的条件下查询实体时,将首先使用您的首选语言评估该条件,如果没有该属性的本地化的值,则将还原为基本语言。 本地化的属性值的查询结果将是您的首选语言(若存在)。 否则,结果将使用基本语言值。
与本地化属性一同创建或更新记录
本地化属性的记录是只读的,除非您的首选语言是组织的基本语言。 使用组织基本语言,您只能创建本地化属性值的记录。 如果您为本地化属性更新了基本语言值,则属性的任何本地化值不会改变(除非您清除了基本语言的值)。 如果您设置基本语言值为空或者一个空字符串,则该属性的所有本地化值也将被清除。
若要添加或更新任何特定本地化属性的本地化标签,请使用 SetLocLabelsRequest 消息或导入已翻译的值。 本地化属性的任何更改将出现在记录的审核历史记录中。 本地化值的语言代码标示符 (LCID) 将出现在审核历史记录中。
翻译可本地化的属性
以编程方式本地化可本地化的属性流程与翻译本地化解决方案的标签流程相似。详细信息:翻译自定义实体和属性文本
不同于翻译元数据值,导出和导入本地化属性值的用户没有系统管理安全角色。 销售经理安全角色具有翻译本地化属性所需的权限。 翻译本地化属性值的人员只能导出有权查看和更新的记录。
若要以编程方式翻译本地化属性,您必须首先使用 ExportFieldTranslationRequest 来导出当前本地化的标签定义。ExportFieldTranslationResponse.ExportTranslationFile 属性包含压缩 crmFieldTranslations.zip 文件的 byte[],该文件可以使用 Microsoft Office Excel 打开的 [Content_types].xml 文件和 crmFieldTranslations.xml 文件。 “本地化标签”工作表包含组织每个配置语言的 LCID 值的列。 具有基本语言值的列将被填充,并且每种配置语言的列包含任何先前本地化的值。 此文件可以通过翻译器编辑,以为本地化属性提供本地化标签。
提示
如果您想要仅对基本语言名称进行批量更新,您也可以编辑基本语言值。
为了提供本地化标签而编辑完 crmFieldTranslations.xml 文件后,将其与( [Content_types].xml 文件一起压缩并设置该文件为 ImportFieldTranslationRequest 的 TranslationFile 属性。
在导出翻译的属性值时,修改该值
导出的翻译包括的值由与支持本地化属性值的实体关联的自定义视图控制。 在自定义用户界面中,仅产品实体显示该视图。 这些视图的名称是“导出字段翻译”。 下表为这些视图提供 SavedQueryId。
实体 |
SavedQueryId |
默认 FetchXml |
---|---|---|
product |
9cfe2a9f-13c4-e311-8f2e-00155d9d2505 |
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"> <entity name="product"> <attribute name="name" /> </entity></fetch> |
dynamicproperty |
4833cf48-1ac4-e311-8f2e-00155d9d2505 |
<fetch version="1.0" output-format="xml-platform" mapping="logical"> <entity name="dynamicproperty"> <attribute name="name" /> </entity></fetch> |
dynamicpropertyoptionsetitem |
d64cce30-1fc4-e311-8f2e-00155d9d2505 |
<fetch version="1.0" output-format="xml-platform" mapping="logical"> <entity name="dynamicpropertyoptionsetitem"> <attribute name="dynamicpropertyoptionname" /> <attribute name="dynamicpropertyoptiondescription" /> </entity></fetch> |
您可以编辑这些视图的 FetchXml 属性,以筛选出您不需要的属性值。 例如,您可能想要排除存档的记录或只包含在特定日期后更新的记录。
监控字段翻译导入作业的进程
系统作业实体包含以下视图,可以监视字段翻译导入作业的进程:
所有字段翻译导入作业
已完成的字段翻译导入作业
正在进行的字段翻译导入作业
我的字段翻译导入作业
未开始的字段翻译导入作业
导入翻译作业时,以下情况会导致错误:
消息 |
说明 |
---|---|
警告:为工作表 {0},行 {1} 导入文件时,您不具有一行或多行的写入权限。 |
在导入文件的行中,运行导入操作的人员可能没有编写权限。 其他行的流程将继续。 |
警告:当前工作表 {0},行 {1},列 {2} 中基本语言翻译字符串为空。 |
基本语言的值不能通过导入翻译清除。 其他行的流程将继续 |
警告:工作表 {1} 中,行 {0} 的单元格数量与行 1 的单元格数量不匹配。 |
电子表格中的所有行必须包含相同的单元格数。 其他行的流程将继续。 |
警告:在工作表 {0} 中,行 {1} 列 A 中发现一个无效实体名称。 |
系统中没有有效实体使用工作表中的名称。 其他行的流程将继续。 |
警告:在工作表 {0} 中,行 {1} 列 C 中发现一个无效对象列名称。 |
系统中没有有效可本地化的属性使用工作表中的名称。 其他行的流程将继续。 |
警告:在工作表 {0} 中,行 {1} 列 B 中发现一个无效对象 Id。 |
组织中没有记录与此行中的项目匹配。 其他行的流程将继续。 |
错误:工作表 {0} 中找不到行。 |
导入工作表为空。 |
错误:工作表 {0} 显示的组织 ID 与当前的组织 ID 不匹配。 |
您只能将翻译导入回导出的同一组织。 |
警告:在工作表 {0} 中,列 {1} 中发现一个无效语言代码。 |详细信息:{2} |
列中的 LCID 不是有效的整数或语言的语言包未安装。 列中的翻译被忽略。 可在区域设置 ID (LCID) 图表中找到有效区域设置 ID 值。 |
错误:在工作表 {0} 中,列 {1} 中发现重复语言代码。 |
每列必须有不同的语言代码。 |
错误:翻译文件无效。 压缩文件必须在其根目录下包含下列文件:CrmFieldTranslations.xml 和 [Content_Types].xml。 |
要导入的压缩 (zip) 文件必须仅包含错误描述的文件。 |
错误:翻译文件无效或不符合所需的架构。 |
压缩 (zip) 文件包含的 CrmFieldTranslations.xml file 必须是从系统导出并只编辑提供本地化值的文件。 其他更改可能使文件无效。 |
卸载一个语言
为某种语言所卸载的所有本地化标签将在系统中保持不变,以便语言重新安装时,他们仍然存在。
另请参阅
产品目录实体
翻译自定义实体和属性文本
帮助和培训:将产品名称和属性翻译为多种语言
© 2017 Microsoft。 保留所有权利。 版权