2016-01-25 27 views
16

Birisi, xliff:g dizeleri/yerelleştirme için açıklayabilir.Android xliff kullanımı: g

xliff:g'un <> öğesinin içindeki herhangi bir şeyi çevirmesi gerekmediğini anlıyorum, ancak kodda bunu tam olarak nasıl kullanacağım konusunda kafam karıştı.

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

Şimdi işe xliff:g dizelerle lokalize almak için çalışıyorum:

Ben benim durumumda olan bir örnek ben vardır olduğunu pratik ispanyolca çeviri olduğunu. id nedir ve ne işe yarar? Ve ne diyor?

Ayrıca %d nedir ve ne yapar? example'un anlamı nedir? Ayrıca, bunu nasıl kodla çağırırım? şöyle java içine

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

:

Neden birisi sadece aşağıdaki kod aşağıdaki xml eklemek uğraşma

getString(R.string.quant) + quantity 

böylece yolu getString içine miktar değişkeni concactenates ? id niteliği sadece ikame parametresi neyi temsil ettiğini tanımlamak için kullanılır

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

(senin durumunda, bu miktar gösterir): sizin örnekte

cevap

24

Minör yazım hatası, bir kapanış etiketi olmalıdır. Söylediğin gibi, bir not ve aslında programlı olarak kullanılmadı.

Bu, Android Studio'da, dizeler için Kod Katlama etkinleştirilmişse, daraltılmış dizeyi gösterdiğinde kimliğin yerini alacak. Böyle bir şey görürsünüz:

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

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

İkinci sorunuza gelince, neden sadece dizgi birleştirmeyi kullanmıyorsunuz? Diğer dillerde, ikame dizenin sonuna gitmeyebilir.

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

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

Yani basitçe size geçerli bir sonuç vermez araya dizeleri ekleyerek, bu durumda olduğunu görebilirsiniz: Bir şey gibi olabilir.

+0

Bunun için üzgünüz. Ben el yazdım. Bu gerçek xml içinde doğru: p –

+0

Ayrıca java, xml birleştirmek anlamına geliyordu. Yani temel olarak xml'de çevrilmiş dize var ve daha sonra javadaki değeri birleştirin. –

+0

Yine, bu benim örneğimde işe yaramadı çünkü ikame parametresi farklı bir konumda (örneğin, 3 öğe vs öğe: 3). – kcoppock