strings - string.format android
¿Cuál es el propósito de usar traducibles en cadenas de Android? (5)
Este atributo señala que este atributo será el mismo para todas las configuraciones regionales. ¿Por qué es útil?
- Los archivos de localización son más legibles para humanos y ahorran tiempo.
- Le dice a la herramienta Lint que todo está bien y que Android no necesita buscar la traducción de este recurso.
Explicación completa: http://tools.android.com/recent/non-translatablestrings
Por lo general, esto significa que si no pone este atributo, siempre debe localizar este recurso; de lo contrario, comunique a las personas y al compilador que esto es único para todos los entornos locales especificando este atributo.
PD: Confía en mí, cuando tu proyecto crece, es extremadamente grande, es muy útil. Por ejemplo, actualmente estoy trabajando en un proyecto de teclado y ahorra mucho tiempo.
¿Qué significa el atributo translatable
, como translatable="false"
?
Esto es solo una conjetura no verificada: también puede ayudar al compilador de Android a generar código más eficiente para las partes donde se usa esa cadena, ya que podría potencialmente eliminar todos los identificadores de recursos de esa cadena (y su búsqueda dinámica en el recurso xmls) y simplemente en línea su valor.
No veo ninguna referencia a eso en los documentos oficiales, sin embargo, es probable que solo sea un indicador para los humanos que buscan en el archivo que esa entidad de cadena en particular no debería ser traducida.
Si tiene una aplicación de Android que desea internacionalizar, una táctica común es enviar su archivo strings.xml a los traductores. Entonces ese atributo sería solo una bandera para ellos.
Nunca he oído hablar de ese atributo, pero aparentemente (ahora) hay una razón para usarlo: vea esta publicación de ADT-Dev google group.
Por cierto, lo probé y funciona para corregir los errores de Android Lint.
Si está admitiendo varios idiomas, y hay algunas cadenas que no deberían traducirse (lo que significa lo mismo en todos los idiomas), entonces puede usar traducible = "falso"
Por ejemplo: Números <string name="account_setup_imap" translatable="false">IMAP</string>