values studio recurso multiple languages android xliff

studio - Cómo utilizar Android xliff: g



string value android (1)

Error tipográfico menor en su ejemplo, debería haber una etiqueta de cierre:

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

El atributo id solo se utiliza para identificar lo que representa el parámetro de sustitución (en su caso, representa la cantidad). Es como usted dijo, una nota, y en realidad no se usa programáticamente.

Dicho esto, en Android Studio, si tiene habilitado el plegado de código para cadenas, sustituirá en la ID cuando muestre la cadena contraída. Verías algo como esto:

// This... mTextView.setText(getString(R.string.order_quantity, 2)); // Will show as this when folded: mTextView.setText("Cantidad: {quantity}");

En cuanto a tu segunda pregunta, ¿por qué no usar concatenación de cadenas? En otros idiomas, la sustitución no puede ir al final de la cadena. Podrías tener algo como:

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

Así que, como puede ver, en este caso, simplemente agregar las cadenas no le dará un resultado válido.

¿Puede alguien explicar el xliff:g para cadenas / localización?

Entiendo que se xliff:g que xliff:g no debe traducir nada dentro de las <> cosas, pero estoy confundido de cómo exactamente usaría esto en el código.

Un ejemplo que tengo en mi caso es la práctica de las traducciones al español que tengo:

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

Ahora estoy tratando de que las cadenas localizadas con xliff:g funcionen. ¿Qué es id aquí y para qué sirve? ¿Y cómo se llama?

Además, ¿qué es el %d y qué hace? ¿Cuál es el punto de example ? Además, ¿cómo llamaría eso al código, si es que lo hace?

¿Por qué alguien no puede simplemente hacer el siguiente código para insertar el siguiente xml:

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

en java como tal:

getString(R.string.quant) + quantity

¿De esa manera concactena la variable de cantidad en el getString ?