嗯,我只会使用自定义ID,以防您需要更多(不同)的一个字符串的翻译。如果您希望获得更多的人员易读性和一些翻译环境,则文档建议使用它们。如果您使用工具来管理您的翻译,我不会担心维护太多(例如,xliffmerge)。
xi18n
工具已经做了字符串相等匹配,所以如果它找到更多相等的字符串,它将它们填充到一个单独的<trans-unit>
下。你要为本机提供一个(目标)翻译字符串,它将用来代替所有的源字符串。 ID不应该在本地化工具的多次运行之间更改,因为它们基于字符串本身的内容。
所以我的建议是不要担心身份证和重复使用太多。如果你只写了字符串,它们将会匹配在一起,并且翻译对于所有字符都是一样的。如果您使用自定义ID,则必须记住使用它们并手动维护其翻译。
源字符串发生变化的情况(当然)是您必须注意的事情。
为了完整起见,我们有一个简单的案例研究: 假设您的应用中有两个相同的字符串必须具有相同的翻译。您运行xi18n
,生成messages.xlf
,将其合并到已翻译的文件中(例如messages.cs.xlf
),翻译<trans-unit>
并构建和部署您的应用程序。 现在,有人来了,希望你改变其中的一个字符串。这里可能出现两种情况 - 源字符串必须更改(并重新翻译),或者只有翻译必须更改(源字符串保持不变)。 在第一种情况下,您转到您的代码,更新源字符串并再次运行本地化过程。一个新的<trans-unit>
将被创建 - 你提供了一个新的翻译,建立应用程序,你就完成了。 在第二种情况下,您转到代码并将自定义ID(描述和含义也建议)放到必须进行新翻译的字符串上。您运行本地化过程 - 将生成一个新的<trans-unit>
(使用自定义ID)。您可以按照习惯进行翻译,构建和部署。