15

XLIFFタグを使用して変数をラップするGoogleアプリとコードサンプルを見てきました。これを行うことには、特に。などの非記述形式の引数を置き換える場合に、いくつかの大きな利点があります%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また、属性が使用され、次のようなグラフィックプレビューが表示されることも期待できます。

Bluetoothで1337のスコアを共有してください!

現在、文字列リソースでXLIFFタグを使用するメリットはありますか?

4

3 に答える 3

14

Android Studioで、バージョン0.3のサポートを追加しました: https ://android-review.googlesource.com/#/c/67724/

于 2013-10-10T23:23:06.660 に答える
6

明確にするために、Android文字列リソースでのXLIFFタグの使用は、次のURLで完全に文書化されています。

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>
于 2014-08-19T21:27:37.990 に答える
1

ソースからAOSPをビルドすることに手が込んだので、CommonsWareは正しいです。ビルドプロセスはまったく異なり、実際、多くのAOSPアプリにはXLIFFタグが含まれています。これがADTと統合されていないのは残念ですが、現状のままです。

于 2013-01-05T00:51:37.827 に答える