我见过一些Google应用程序和代码示例,它们使用XLIFF标记来包装变量。我认为这样做有很大的好处,特别是在替换非描述性格式参数(如%1$s )方面。
不幸的是,XLIFF似乎没有很好地集成到ADT中。例如,以以下字符串资源为例:
<resources
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"
xmlns:tools="http://schemas.android.com/tools">
<string name="share_with_application">
Share your score of <xliff:g id="score" example="1337">%1$s</xliff:g>
with <xliff:g id="application_name" example="Bluetooth">%2$s</xliff:g>!
</string>
</resources>

在上面的示例中,字符串在第一个<xliff>标记之后被截断。人们还会期望使用example属性,从而产生一个图形预览,显示:
与蓝牙分享你的1337分!
目前在我的字符串资源中使用XLIFF标记有什么好处吗?
发布于 2013-10-10 23:23:06
我们刚刚在Android中为0.3版本的https://android-review.googlesource.com/#/c/67724/添加了对此的支持
发布于 2014-08-19 21:27:37
为了明确起见,在Android字符串资源中使用XLIFF标记的详细文档为
https://developer.android.com/distribute/tools/localization-checklist.html#manage-strings
即使在Eclipse构建中,这些字符串也能正常工作(支持在构建应用程序的aapt工具中)。
但是,正如问题中所示,ADT中包含的图形布局工具不考虑xliff标记,只是在第一个标记子字符串之后截断字符串。
Android中的图形工具能够很好地处理这些字符串,了解并使用xliff标记。
实际上,我发现完整的<xliff:g>在我的源代码中相当冗长,所以我调整了namepsace声明,允许我只使用<x:g>:
<resources xmlns:x="urn:oasis:names:tc:xliff:document:1.2">
<string name="greeting">Hello <x:g id="name">%1$s</x:g>!</string>
</resources>发布于 2013-01-05 00:51:37
现在我已经弄懂了从源代码构建AOSP的问题,CommonsWare是正确的:构建过程完全不同,而且很多AOSP应用程序都包含XLIFF标记。遗憾的是,这并没有与ADT集成,但它确实如此。
https://stackoverflow.com/questions/11331809
复制相似问题