2016-01-25 31 views
16

xliff:gを文字列/ローカライズについて説明してください。Android xliffの使い方:g

私はxliff:g<>のものの中身を翻訳するはずではないことを理解していますが、これをコードでどのように正確に使うのは混乱しています。

私は私の場合には持っている例は、私が持ってい練習スペイン語の翻訳です:

<string name="order_quantity">Cantidad: <xliff:g id="quantity" example="2">%d/xliff:g</string> 

私は今、仕事にxliff:gとローカライズされた文字列を取得しようとしています。 ここでidとは何ですか、それは何ですか?そして、それは何と呼びますか?

また%dとは何ですか? exampleのポイントは何ですか?また、それをコードにするにはどうすればいいでしょうか?そのようなJavaに

<string name="quant">Quantity: </string> 

getString(R.string.quant) + quantity 

それはgetStringに数量変数をconcactenatesので、そのように

はなぜ誰かがちょうど次のXMLを挿入するために、次のコードを実行できません? id属性がちょうど置換パラメータが何を表すかを識別するために使用される

<string name="order_quantity">Cantidad: <xliff:g id="quantity" example="2">%d</xliff:g></string> 

は(あなたのケースでは、それは数量を表します):あなたの例では

答えて

24

マイナータイプミスは、終了タグがあるはずです。これはあなたが言ったように、メモであり、プログラムでは実際には使用されません。

Android Studioでは、文字列に対してコード折りたたみが有効になっていると、折りたたまれた文字列が表示されたときにIDで置換されます。あなたの2番目の質問は、なぜだけでなく、文字列の連結を使用するためとして、

// This... 
mTextView.setText(getString(R.string.order_quantity, 2)); 

// Will show as this when folded: 
mTextView.setText("Cantidad: {quantity}"); 

:あなたはこのような何かを参照してくださいね?他の言語では、文字列の最後に置換がないことがあります。

values/strings.xml 
    <string name="order_quantity">%d items</string> 

values-es/strings.xml 
    <string name="order_quantity">Cantidad: %d</string> 

ですから、この場合には、単に一緒に文字列を追加すると、あなたに有効な結果を得られないだろうと見ることができます:あなたはのようなものを持つことができます。

+0

ごめんなさい。私はそれを手入力しました。それは実際のXMLで正しいです:p –

+0

また、私はXMLではなく、Javaを連結するつもりです。したがって、基本的に変換された文字列をxmlに入れて、javaの値を連結します。 –

+0

この例でも、私の例では、置換パラメータが異なる位置にあるため(例:3つのアイテムとアイテム:3)、これは機能しません。 – kcoppock

関連する問題