Android应用开发者localization checklist建议对不应翻译的文字使用占位符标记。那部分我明白了。
它还建议"始终添加一个id属性来解释占位符的用途"。那部分我不明白。当我查看Android开源项目中的示例时,我看到许多使用此类ID的情况,例如:
<string name="photo_view_count"><xliff:g id="current_pos">%d</xliff:g> of <xliff:g id="count">%d</xliff:g></string>
(来自/frameworks/opt/photoviewer/res/values/strings.xml)
该字符串中定义的ID(&#34; current_pos&#34;&#34; count&#34;)未在底层Java代码中的任何位置引用,但是,目的是什么?这纯粹是对翻译人员的帮助,应该解释占位符价值是什么?
如果代码中实际引用了这些ID,我可以看到识别具有ID的每个占位符的目的,因为这样可以使翻译人员切换占位符的顺序。但那并没有发生。有问题的ID在翻译版本中甚至是大写的(&#34; CURRENT_POS&#34;和&#34; COUNT&#34;) - 我认为这是本案例中使用的翻译工具的功能。