Crear app Multilenguaje en Android
Siempre es una buena práctica para extraer cadenas de interfaz de usuario de su código de aplicación y mantenerlos en un archivo externo. Android lo hace fácil con un directorio de recursos de cada proyecto Android.
para que nuestras aplicaciones estén disponibles en varios idiomas o sean multilenguaje.
Lo primero que debemos tener en cuenta es evitar insertar "textos en el código" y en vez de eso, hacer uso del archivo strings.xml de la carpeta values.
Vamos a ver un ejemplo sencillo para hacerlo desde un XML, por ejemplo, para un botón sería así:
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/accept" /> <!-- Texto que aparecerá -->
Sin embargo, cuando necesitamos obtener el texto desde el código java no es tan intuitivo, pero igualmente sencillo.
Desde el Activity podemos hacer:
String cadena = getResources().getString(R.string.accept);
Si lo usamos desde una clase distinta al Activity, tendremos que pasar el getResources() hasta esta.
Ahora que tenemos nuestra aplicación preparada para internacionalizarla, así que solo queda meter las traducciones correctamente.
Básicamente, consiste en crear carpetas con sufijos del idioma, en nuestro caso para los textos, tendríamos values con el idioma por defecto (normalmente inglés) y creas otra con el sufijo, en este caso, values-es .
Si queremos añadir más idiomas, pues basta con añadir más carpetas en res/ con la nomenclatura del idioma. Los elementos que sean iguales en todos los idiomas no hace falta que los pongamos.
Lenguaje | Nomenclatura | values/strings.xml |
German | de | values-de/strings.xml |
Chinese | zh | values-zh/strings.xml |
Czech | cs | values-cs/strings.xml |
Dutch | nl | values-nl/strings.xml |
French | fr | values-fr/strings.xml |
Italian | it | values-it/strings.xml |
Japanese | ja | values-ja/strings.xml |
Korean | ko | values-ko/strings.xml |
Polish | pl | values-pl/strings.xml |
Russian | ru | values-ru/strings.xml |
Spanish | es | values-es/strings.xml |
Arabic | ar | values-ar/strings.xml |
Bulgarian | bg | values-bg/strings.xml |
Catalan | ca | values-ca/strings.xml |
Croatian | hr | values-hr/strings.xml |
Danish | da | values-da/strings.xml |
Finnish | fi | values-fi/strings.xml |
Greek | el | values-el/strings.xml |
Hebrew | iw | values-iw/strings.xml |
Hindi | hi | values-hi/strings.xml |
Hungarian | hu | values-hu/strings.xml |
Indonesian | in | values-in/strings.xml |
Latvian | lv | values-lv/strings.xml |
Lithuanian | lt | values-lt/strings.xml |
Norwegian | nb | values-nb/strings.xml |
Portuguese | pt | values-pt/strings.xml |
Romanian | ro | values-ro/strings.xml |
Serbian | sr | values-sr/strings.xml |
Slovak | sk | values-sk/strings.xml |
Slovenian | sl | values-sl/strings.xml |
Swedish | sv | values-sv/strings.xml |
Tagalog | tl | values-tl/strings.xml |
Thai | th | values-th/strings.xml |
Turkish | tr | values-tr/strings.xml |
Ukrainian | uk | values-uk/strings.xml |
Vietnamese | vi | values-vi/strings.xml |
Comentarios
Publicar un comentario
Gracias por compartir tus comentarios con nosotros, si el comentario requiere de alguna respuesta por parte de nosotros, trataremos de responderte lo mas pronto posible.