我见过使用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标签?
我们刚刚添加了这种支持Android Studio中,0.3版本: https://android-review.googlesource.com/#/c/67724/
只要是明确的,在Android的字符串资源使用XLIFF标记中的是完全记录
https://developer.android.com/distribute/tools/localization-checklist.html#manage-strings
这样的字符串做工精细,即使在Eclipse构建(支持在AAPT工具构建的应用程序)。
然而,在这个问题说明,包含在ADT的图形设计工具不作为XLIFF标签的任何津贴,仅仅截断的第一个此类标记的子字符串后面的字符串。
Android Studio中的图形工具就用这样的字符串以及应对,了解一下,并利用该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>
现在已经得到了我的手脏从源代码构建AOSP,CommonsWare是正确的:即构建过程是完全不同的,实际上很多AOSP应用程序包含XLIFF标签。 这太糟糕了,这并不与ADT整合,但它是因为它是。