2011-06-24 17 views
30

Duplicar posible:
Change language programatically in Android¿Cómo puedo cambiar el idioma de mi solicitud

Soy nuevo en Android. En mi aplicación, el usuario puede seleccionar un idioma de tres idiomas. Según el idioma seleccionado por el usuario, el idioma de la aplicación debe cambiar. ¿Cómo puedo hacer esto?

+0

Utilice esta opción para cambiar el idioma por programación: 'código ' Locale locale = new Locale (" en_US "); Locale.setDefault (locale); Configuration config = new Configuration(); config.locale = locale; context.getApplicationContext(). GetResources(). UpdateConfiguration (config, null); setContentView (R.layout.activity_main); 'código ' –

Respuesta

6

Puede establecer la configuración regional.

Resources res = context.getResources(); 
    // Change locale settings in the app. 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    android.content.res.Configuration conf = res.getConfiguration(); 
    conf.locale = new Locale(language_code.toLowerCase()); 
    res.updateConfiguration(conf, dm); 

Si tiene contenido específico del idioma, puede cambiar esa base en la configuración. para más detalle que puede ver y Locale this also

49

Utilice esta opción para cambiar el idioma de programación:

Locale locale = new Locale("en_US"); 
Locale.setDefault(locale); 
Configuration config = new Configuration(); 
config.locale = locale; 
context.getApplicationContext().getResources().updateConfiguration(config, null); 

Escribir el código del país de la lengua en lugar de "en_US" por cualquier idioma que desee. Por ejemplo, para japonés, ja_JP; para árabe, ar. Consulte this link para obtener una lista.

Y hacer una carpeta en res/values-ja para el japonés o el árabe res/values-ar ..

Y hacer un archivo string.xml, y poner todos los idiomas que desee en su diseño. Se buscará el idioma por defecto de la carpeta de los valores de otro modo si desea manualmente, a continuación, se ha podido recuperar de su carpeta externo values-ar, etc.

Un ejemplo de res/values-ar para árabe:

<?xml version="1.0" encoding="UTF-8"?> 
    <resources> 
    <string name="label">حسب</string> 
    <string name="name">بحث</string> 
    <string name="search">بحث :</string> 
</resource> 
+0

¿dónde llamar a su código? – MBH

+0

Llámalo donde lo necesites. – Hulk

+1

lo llamará una vez para aplicarlo a toda la aplicación? o todas y cada una de las actividades? – MBH

Cuestiones relacionadas