翻译标签文本
标准表包括采用多种不同语言提供的标签的默认文本。 但是,当自定义窗体(例如添加或更改列)或创建自定义表时,您可能需要采用不同的语言显示这些组件的标签。 您可以为您的应用导入自定义表的已翻译标签文本,以便采用基本语言之外的其他语言显示标签文本。
翻译窗体的标签文本时,将在自定义窗体时修改窗体的基本语言。 当您执行此操作时,将会创建对标签的活动非托管更改。 因此,如果您在没有修改组件(例如列)的基本语言翻译的情况下导出该翻译文件,则不会导出该列的对象 ID。 这是因为导出没有看到对该列的基本语言标签所做的任何修改。
高级别流程
- 从包含您要翻译标签文本的表的解决方案中导出翻译。 然后,打开翻译 XML 文件并添加已翻译的文本。 详细信息:将自定义的表和列文本翻译为其他语言
- 导入翻译。 详细信息:将已翻译的表和列文本重新导入到应用中
翻译窗体标签文本的常见问题
层中不显示窗体标签翻译
当您查看组件的解决方案层时,可能不显示导入的翻译。 确保查看解决方案层时,<标签> 级别中有翻译。 请注意,“displayname“标记为属性级别,因此不会翻译标签。 ”DisplayName“标记实际上是窗体标签的,因此将翻译窗体的标签。 有关查看解决方案层的详细信息,请参阅解决方案层。
不会专门显示基本语言的窗体标签翻译
如果希望应用显示自定义组件的翻译后标签文本,请使用翻译导出和导入功能。 不应在管理包括基本语言在内的所有标签时使用。
在导出翻译时,如果未对基本语言标签进行任何更改,将不通过 CrmTranslations.xml 导出任何翻译。
在导入翻译时,如果在 CrmTranslations.xml 中更改了基本语言列中的任何标签,则更改无效。
如果问题特定于基本语言,请执行以下操作:
- 使用更改的每个标签的窗体设计器更改基本语言的翻译。
- 使用翻译导出和导入功能添加其他预配语言的翻译。
- 将活动的非托管解决方案导出为托管解决方案。
- 将此解决方案导入到目标环境中。
在导出为非托管解决方案时将显示窗体标签翻译描述,而导出为托管时则显示为空白
这可能是因为标签无翻译。 将发生以下行为:
- 将为非托管解决方案填充以下显示名称:<label description="example" languagecode="1033">
- 托管解决方案为空,显示为不存在,并回退为显示名称:<label description="" languagecode="1033">