Cambiar el idioma de las cadenas en la actividad de Android

Estoy haciendo una aplicación con multilenguaje. Entiendo el concepto de string.xml para tener el idioma de la aplicación establecido en lo que es el predeterminado para el teléfono. ¿Hay alguna manera de anular esto? Por ejemplo, si tengo un teléfono español que uso en España, pero todavía quiero tener la aplicación en inglés?

Puede cambiar el idioma (locale) de su aplicación mediante programación con una función simple. Sólo tiene que implementar un método similar al que tiene a continuación, que recibe una cadena como parámetro (como 'en' para inglés, 'es' para español), donde puede configurar la configuración regional para su aplicación y actualizar su actividad actual para reflejar los cambios. La configuración regional que aplicó no cambiará hasta que la cambie manualmente de nuevo.

public void setLocale(String lang) { myLocale = new Locale(lang); Resources res = getResources(); DisplayMetrics dm = res.getDisplayMetrics(); Configuration conf = res.getConfiguration(); conf.locale = myLocale; res.updateConfiguration(conf, dm); Intent refresh = new Intent(this, AndroidLocalize.class); startActivity(refresh); finish(); } 

Asegúrese de importar los siguientes paquetes:

 import java.util.Locale; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.util.DisplayMetrics; import android.content.res.Resources; import android.content.res.Configuration; 

Agregue también en el manifiesto dentro de su etiqueta de actividad android:configChanges="locale|orientation"

EDITAR como se mencionó correctamente no es lo que preguntó el OP, todavía lo dejaré aquí por si alguien acaba aquí tratando de resolver lo que respondí.

Desde la página de desarrolladores de Android:

Cómo crear recursos alternativos

Una gran parte de la localización de una aplicación proporciona texto alternativo para diferentes idiomas. En algunos casos, también proporcionará gráficos, sonidos, diseños y otros recursos específicos de la configuración regional.

Una aplicación puede especificar muchos res // directorios, cada uno con calificadores diferentes. Para crear un recurso alternativo para una configuración regional diferente, utilice un calificador que especifique un idioma o una combinación de idioma y región. (El nombre de un directorio de recursos debe cumplir con el esquema de nomenclatura descrito en Proporcionar recursos alternativos, o bien no se compilará.)

Ejemplo:

Suponga que el idioma predeterminado de su aplicación es el inglés. Suponga también que desea localizar todo el texto de su aplicación en francés y la mayor parte del texto de su aplicación (todo excepto el título de la aplicación) en japonés. En este caso, puede crear tres archivos strings.xml alternativos, cada uno almacenado en un directorio de recursos específico de la configuración regional:

 res/values/strings.xml Contains English text for all the strings that the application uses, including text for a string named title. res/values-fr/strings.xml Contain French text for all the strings, including title. res/values-ja/strings.xml Contain Japanese text for all the strings except title. 

Si su código Java se refiere a R.string.title, esto es lo que sucederá en tiempo de ejecución:

 If the device is set to any language other than French, Android will load title from the res/values/strings.xml file. If the device is set to French, Android will load title from the res/values-fr/strings.xml file. 

Tenga en cuenta que si el dispositivo está configurado en japonés, Android buscará título en el archivo res / values-ja / strings.xml. Pero como no se incluye ninguna cadena en ese archivo, Android volverá al valor predeterminado y cargará el título en inglés desde el archivo res / values ​​/ strings.xml.

aquí está también el acoplamiento original para la referencia: http://developer.android.com/guide/topics/resources/localization.html

  • Configuración de idioma turco e inglés: traducir caracteres turcos a equivalentes latinos
  • Obtener el nombre del idioma en ese idioma desde el código de idioma
  • ¿Cómo puedo obtener mi código de país del dispositivo android sin usar GPS?
  • Android: cambia la programación del sistema del dispositivo mediante programación
  • Obtener locales disponibles para tts
  • ¿Cómo mostrar la casilla de verificación a la izquierda cuando cambie el idioma de la aplicación de Android al árabe?
  • Aplicación de Android con ActionBar NullPointerException con configuración regional no predeterminada
  • Número en árabe en texto árabe en Android
  • ¿Por qué podría Resources.getString () devolver intermitentemente cadenas de la configuración regional equivocada?
  • Android: Cómo obtener una cadena en una configuración específica SIN cambiar la configuración actual
  • Lenguaje hindi
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.