【前言】:在实施国际化项目时,Custom Label为我们提供了多语言的便利,为了优化翻译流程和加速多语言部署的进程,通常我们期待能将开发创建的那些Label导出来,然后通过Excel给到翻译专家,翻译完后再使用高效工具批量导入系统。
【数据导出】:
这里提供2种方法,其核心都是借助工具本身的"Use Tooling API",通过下面SOQL语句导出Label:
SELECT Id, Name, Category, Language, Value FROM CustomLabel ORDER BY Name DESC
这里提供2种途径:
#1. Developer Console的Query Editor;
#2. Salesforce Inspector - Data Export;
效果预览:
缺点:当启用多语言后,我们仅能导出单种语言,不能导出所有语言;另外,无法导出Short Description.
【数据导入】:
提到导入有2个话题:
A. 批量导入新建的label;
B. 对现有label批量导入翻译的文本;
对于A - 不能使用Data Loader这类工具批量导入,需要手动创建;
对于B - 可以使用Translation Workbench的Export / Import来解决,本文将重点覆盖这一流程。
Demo设计如下:
目标:假如系统启用了三种语言en_US / zh_CN / zh_TW,现有2个custom label - label1, label2,需要批量将其翻译成中文;
Baby Steps:
1. 在Translation Workbench下选择Export导出可被翻译的元数据:
这时有3种导出类型和2种导出选择:以Bilingual为例
#1 Export as STF - 一种可以被加载进excel处理的数据格式
#2 Export as XLIFF - xml格式,本文将覆盖这一选择
获取到xml文件后,我们不妨看下翻译的基本套路:
模板如下:
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2"><file original="Salesforce" source-language="zh_CN" target-language="zh_CN" translation-type="metadata" datatype="xml"><body><trans-unit id="CustomLabel.label1" maxwidth="1000" size-unit="char"><source>label1</source><target>标签1</target><note>label1</note></trans-unit><trans-unit id="CustomLabel.label2" maxwidth="1000" size-unit="char"><source>label2</source><target>标签2</target><note>label2</note></trans-unit></body></file>
</xliff>
2. 翻译:对上述xml我们只需要关注如下部分:
a. 待翻译的语言 - language code,如en_US / zh_CN / zh_TW;
b. 提取body中待翻译的元数据类型 - 下载后有很多待翻译的元数据,这时我们最好剔除那些不在翻译范围内的元数据(经测试导入时仅作更新,对于移除的元数据的原有翻译不会有影响),否则未加target的部分会报错;
c. 翻译的本质就是加targe节点并放入翻译的文字;
3. 导入:将翻译好的xml导入进系统即可:
系统处理成功后将发送邮件通知:如有错误,将附上log文本
4. 效果预览:
【错误集锦】:
#1. xml方式导入,xml中不包含target节点的项:所以需要移除未被翻译的元数据
#2. 导出文件失败:多试几次 - 官方建议
#3. 使用第一种方式导出为STF后,导入时的错误:可以通过删除不需要的元数据来解决
想不明白的是导出的基础文件中就包含了重复的元数据:
【补充】:对于需要大规模翻译的文本,构建xml并不是一种高效的方法,所以还是有必要介绍使用.stf处理翻译问题的成功关键因素。
#1. 导出.stf文件后,移除不必要的元素,保留需要翻译的元素,如下图:
#2. 将.stf文件加载进Excel进行翻译,如下:
#3. 翻译好后将数据另存为tab分割的txt格式:
#4. 修改拓展名后将必要信息加进去,保存后就可以用作导入了。
【批量删除】:
Removing mass Salesforce metadata by integration destructiveChangesPre.xml and Workbench
【参考资料】:Export Data Translation Files | Source Translation Files | Bilingual Translation Files | Import Translated Files | Common Errors with Exporting and Importing Translation Files