改善与XLIFF Android的字符串资源(Improving Android string re

2019-07-30 05:46发布

我见过使用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标签?

Answer 1:

我们刚刚添加了这种支持Android Studio中,0.3版本: https://android-review.googlesource.com/#/c/67724/



Answer 2:

只要是明确的,在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>


Answer 3:

现在已经得到了我的手脏从源代码构建AOSP,CommonsWare是正确的:即构建过程是完全不同的,实际上很多AOSP应用程序包含XLIFF标签。 这太糟糕了,这并不与ADT整合,但它是因为它是。



文章来源: Improving Android string resources with XLIFF