Cómo localizar la IU con Translations Editor

La herramienta Translations Editor ofrece una vista unificada y editable de todos los recursos de cadenas predeterminados y traducidos .

Para obtener una introducción a la traducción de tu app en diferentes idiomas, lee Cómo brindar compatibilidad con diferentes idiomas y culturas.

Figura 1: Texto de la app que se muestra antes de la traducción en Translations Editor

Recursos de strings

Los recursos de strings de un proyecto se ubican en archivos strings.xml. Tu proyecto cuenta con un archivo strings.xml predeterminado que contiene recursos de strings en el idioma predeterminado de tu app, que es el que esperas que hable la mayoría de los usuarios. También puedes tener archivos strings.xml traducidos que contengan recursos de strings para otros idiomas que quieras que admita tu app.

Una vez que completes el archivo strings.xml predeterminado, podrás agregar las traducciones tú mismo o contratar un servicio profesional para que lo haga. De cualquier manera, deberías aprovechar las funciones de Android Studio que te permiten administrar y probar texto localizable. Para obtener información sobre servicios de traducción profesional, consulta Servicios de traducción.

Cómo abrir Translations Editor

Puedes acceder a Translations Editor desde los siguientes lugares en Android Studio.

Cómo acceder desde la vista Android

  1. En el panel Project > Android del lado izquierdo, selecciona ModuleName > res > values.
  2. Haz clic con el botón derecho en el archivo strings.xml y selecciona Open Translations Editor.

    En Translations Editor, se muestran los pares clave-valor del archivo strings.xml.

    Nota: Cuando tienes archivos strings.xml traducidos, tu proyecto tiene varias carpetas values correspondientes con sufijos que indican el idioma, por ejemplo, values-es para español. El archivo strings.xml predeterminado siempre está en la values (sin sufijo) folder.

En la figura 1, se muestra el texto predeterminado de una app simple (en este caso, en inglés) en Translations Editor antes de la traducción. El contenido de los archivos strings.xml traducidos aparecerá a la derecha de la columna Untranslatable con una columna por idioma, como se muestra en la Figura 2.

Cómo acceder desde strings.xml

Puedes acceder a Translations Editor desde cualquiera de tus archivos strings.xml.

  1. En el panel Project > Android del lado izquierdo, selecciona ModuleName > res > values.
  2. Haz doble clic en strings.xml para abrirlo y editarlo.
  3. En strings.xml, haz clic en el vínculo Open editor, en la esquina superior derecha.

Cómo configurar filas no traducibles

En Translations Editor, puedes seleccionar la opción Untranslatable para indicar que no quieres que se traduzca el texto de esta fila. Es posible que ese texto sea específico del producto, como nombres y marcas comerciales, o bien terminología técnica que no tiene traducción.

Cuando seleccionas Untranslatable, se agrega translatable="false" en la línea correspondiente del archivo predeterminado strings.xml. En el siguiente ejemplo, EasyApp en la línea superior no se traduce porque es el nombre del producto.

<resources>
    <string name="app_name" translatable="false">EasyApp</string>
    <string name="action_settings">Settings</string>
    <string name="easy_app">I am a Simple App!</string>
    <string name="next_page">Next Page</string>
    <string name="second_page_message">I am the Second Page!</string>
    <string name="title_activity_second">SecondActivity</string>
</resources>

Cómo agregar y borrar idiomas

El Translations Editor admite el código de idioma BCP 47 y combina los códigos de región (país) y configuración regional en una única selección para las localizaciones de destino. Una configuración regional no solo define el idioma, sino también los formatos que deben usarse en cada país para información como la fecha y hora, la moneda y los decimales.

Para agregar un idioma, haz lo siguiente:

  1. En Translations Editor, haz clic en el ícono del globo terráqueo .
  2. En la lista desplegable, selecciona el idioma que quieras agregar. Se mostrará el nuevo idioma en el Translations Editor, y se agregará al proyecto una carpeta values-* con un archivo `strings.xml`. Por ejemplo, values-es para español.

Para borrar un idioma, haz lo siguiente:

Para borrar un idioma en el Translations Editor, borra todos los valores de la columna (consulta Cómo editar, agregar y borrar texto), o bien borra la carpeta del proyecto de ese idioma de la siguiente manera:

  1. En el panel Project > Android del lado izquierdo, selecciona ModuleName > res.
  2. Haz clic con el botón derecho en la carpeta values-* del idioma que quieras borrar. Por ejemplo, values-hi para hindi.
  3. En la lista de idiomas, selecciona Delete para borrar la carpeta y su strings.xml archivo.

Cómo editar, agregar y borrar texto

Puedes operar en las opciones de texto directamente en el archivo strings.xml o mediante Translations Editor. En esta sección, se describe el enfoque de Translations Editor. En el Translations Editor, puedes editar, agregar o borrar texto por medio de la vista de lista o del campo Translation en la parte inferior de Translations Editor.

Figura 2: Vista de lista en la parte superior y campo Translation en la parte inferior

Vista de lista

Para editar o agregar texto, haz lo siguiente:

  1. Haz doble clic en la celda en la que quieras editar o agregar texto.
  2. Puedes usar el teclado para copiar y pegar el texto, o bien, si tienes un teclado que admite signos diacríticos escribir directamente en la vista de lista.
  3. Presiona Tab o coloca el cursor fuera del campo.

Para borrar texto, haz lo siguiente:

  1. Haz doble clic en la celda que quieras borrar.
  2. En la vista de lista, selecciona el texto y presiona Delete.
  3. Presiona Tab o coloca el cursor fuera del campo.

Campo Translation

Para editar o agregar texto, haz lo siguiente:

  1. En la vista de lista, haz clic en la celda en la que deseas editar o agregar texto.
  2. En el campo Translation, usa el teclado para copiar y pegar el texto o, si tienes un teclado que admite signos diacríticos, escribe directamente en el campo Translation.
  3. Presiona Tab o coloca el cursor fuera del campo.

Para borrar texto, haz lo siguiente:

  1. Haz clic en la celda que quieras borrar.
  2. En el campo Translation, selecciona el texto y presiona Delete.

Cómo agregar y borrar claves

En la columna Key de Translations Editor, se enumeran los identificadores únicos para cada elemento de datos en tus archivos strings.xml. Puedes agregar y borrar claves por medio de Translations Editor. Cuando borras una clave, Translations Editor también borra todas sus traducciones asociadas. Para ello, usa la opción "Safe Delete refactoring", que te informa si el texto de la clave se usa en otra parte y te da la opción de realizar las modificaciones necesarias antes de borrarla. Esta opción garantiza que tu código igualmente se compile luego de que borres la clave.

Para agregar una clave, haz lo siguiente:

  1. En el Translations Editor, haz clic en Add Key .
  2. En el diálogo, ingresa un nombre de clave, un valor predeterminado y la ubicación del archivo strings.xml predeterminado.

    Figura 3: Agrega una clave

Para borrar una clave, haz lo siguiente:

  1. En Translations Editor, selecciona la clave que quieras borrar.
  2. Haz clic en Remove Keys .
  3. En el diálogo Delete, elige si quieres borrarla de manera segura y si deseas buscarla en los comentarios y las strings. Luego, haz clic en OK.

    Figura 4: Diálogo Delete

    Si no hay referencias (usos) a la clave borrada o si todas las referencias pueden contraerse de forma segura, entonces se borrará la clave. De lo contrario, Translations Editor mostrará el diálogo Usages Detected con información sobre los problemas detectados.

    Figura 5: Diálogo Delete

  4. Selecciona View Usages para revisar el contenido que se borrará. En el diálogo Find Safe Delete Conflicts , se muestran todos los usos que no deberían borrarse porque no es seguro, a fin de que puedas editar el código correspondiente.

    Figura 6: Usos que no deberían borrarse porque no es seguro

  5. Haz clic con el botón derecho en un uso para ver el menú contextual y selecciona Jump to Source a fin de realizar los cambios necesarios.
  6. En el panel Find Safe Delete Conflicts, selecciona Rerun Safe Delete para asegurarte de que no haya otros usos que debas revisar.
  7. Una vez que borres los usos, haz clic en Do Refactor para borrar la clave.

Cómo corregir errores

En la Figura 7, se muestra el contenido de los archivos strings.xml en inglés, francés y español de Translations Editor. El texto en rojo indica las líneas que tienen errores.

Figura 7: El texto en color rojo indica una condición de error que debes corregir.

Si quieres corregir un error, coloca el cursor sobre el texto rojo para ver una explicación del problema y su solución.

Cuando realices modificaciones en Translations Editor, se actualizarán los archivos subyacentes strings.xml con estos cambios. Cuando lo hagas en un archivo strings.xml, la columna correspondiente en Translations Editor se actualizará con los cambios.

Ejemplo de correcciones en Translations Editor:

  • En la Figura 7, la fila app_name se marcó como Untranslatable, pero se proporcionó una traducción al español. Para corregir el error, deberás borrar la traducción.
  • En la Figura 7, falta la traducción al francés en la fila next_page. Usa tu teclado para copiar Page Suivante en la celda a fin de corregir el error. La operación de copiar y pegar con el teclado copia el texto con los signos diacríticos en la celda.

Cómo administrar y probar el texto localizable

Android Studio y la plataforma de Android ofrecen varias funciones para ayudarte a administrar y probar el texto localizable de tu app. Estas funciones tienen opciones que te ayudan a resolver problemas con secuencias de comandos de derecha a izquierda (RTL), como en árabe o hebreo. Probar el texto localizable te permite realizar los ajustes necesarios en el texto de la IU y su diseño antes de que confirmes tus mensajes en el repositorio fuente que luego se enviarán para su traducción.

Compatibilidad con idiomas RTL

Jetpack Compose controla los diseños de derecha a izquierda (RTL) de forma nativa. Los modificadores de diseño y las APIs se basan en conceptos direccionales como start y end en lugar de direcciones absolutas como left y right. Cuando el idioma del sistema cambia a una configuración regional RTL, Compose duplica automáticamente estos diseños.

Para que tu app reconozca la configuración regional RTL y active esta duplicación, debes habilitarla con el archivo de manifiesto de la app.

Para habilitar la compatibilidad con RTL, haz lo siguiente:

  1. Abre el archivo AndroidManifest.xml.
  2. Agrega el atributo android:supportsRtl="true" al <application> elemento:
<manifest ... >
    <application
        ...
        android:supportsRtl="true">
    </application>
</manifest>

Para obtener más información sobre cómo Compose controla el diseño de texto, la duplicación y las configuraciones RTL personalizadas, consulta Cómo trabajar con idiomas RTL.

Cómo establecer la dirección del texto de forma manual

En Jetpack Compose, no se usa una ventana Properties visual para forzar el diseño o las direcciones de texto. Compose controla automáticamente la duplicación RTL según la configuración regional del sistema.

Sin embargo, si necesitas anular manualmente la dirección de un elemento de texto específico (por ejemplo, mostrar una cadena LTR en un diseño RTL), puedes pasar un objeto TextDirection a tu TextStyle.

Entre los valores admitidos, se incluyen los siguientes:

Para obtener más información sobre el estilo de texto y la configuración de direcciones de texto manuales en Compose, consulta Cómo aplicar estilo al texto.

Cómo usar cadenas localizadas en tu app

Una vez que agregues y traduzcas tus cadenas con Translations Editor, se actualizarán automáticamente los archivos res/values/strings.xml subyacentes y podrás usar los recursos localizados directamente en tu IU.

Para obtener información sobre cómo mostrar texto localizado, controlar RTL de forma nativa y usar @Preview para probar diferentes configuraciones regionales y pseudoconfiguraciones regionales, consulta la sección Cadenas de Recursos en Compose.

Pseudoconfiguraciones regionales

Una pseudoconfiguración regional es una configuración regional ficticia diseñada para adoptar las características de los idiomas que generan problemas con la IU, el diseño, la dirección RTL y otros problemas que surgen cuando se traduce una app. Estas proporcionan traducciones instantáneas y automáticas para todos los mensajes localizables que pueden leerse en inglés. De esta manera, es posible captar mensajes que no se pueden traducir en el código fuente.

Para obtener más información sobre cómo usar pseudoconfiguraciones regionales, consulta Cómo probar tu app con pseudoconfiguraciones regionales.

Recursos adicionales

Contenido de Views