Generalidades

Internacionaliza tu aplicación (II).Internacionalizando tu aplicación (I) | Por Javier Martinez | Mar 2022

Bienvenidos a la segunda parte de esta serie, donde explico como resolver el problema Cómo administrar archivos de cadenas para aplicaciones multilingüesSi no has leído el primer artículo, te animo a que hagas clic aquí.

En esta ocasión nos centraremos en los diferentes componentes que componen la solución.

Visión de conjunto

Internacionaliza tu aplicacion IIInternacionalizando tu aplicacion I Por Javier

En la imagen de arriba, puedes admirar tres capas verticales, de arriba a abajo: Android e iOS Representa una cadena específica de plataforma, arriba tenemos cadena de productos Representa una única fuente de verdad para las cadenas existentes y, por último, pero no menos importante, Weblate, que representa una herramienta para que los gerentes de productos administren las cadenas de productos. Vamos a desglosarlo poco a poco.

Cadena de producto (.po)

Esto representa el componente más importante del diagrama y es un miembro nuevo en el bloque.esto es monolingue .correos documento Representa una nueva fuente única de verdad. Para cadenas de productos.

Pero que es .correos archivo, ¿cómo se ve? .correos archivo de ÑU obtener texto Biblioteca de internacionalización (i18n)En otras palabras, es uno de los formatos existentes para obtener localización de texto en Internet y es de código abierto, lo que lo hace compatible con muchas herramientas en el mercado, incluido Weblate (del que hablaremos más adelante en el artículo).

Usamos enfoque monolingüe, lo que significa que hay tantos archivos .po como idiomas que desea traducir. Básicamente lo mismo que Android o iOS.

Veamos cómo se ve el archivo .po en dos idiomas diferentes (EN y ES).

Desde la línea 1 hasta la línea 14, puede encontrar el título generado automáticamente. Son interpretados por la herramienta del lector, no tenemos que preocuparnos por ellos.A partir de la línea 16, puede ver cómo .correos El archivo realmente funciona.Es tan fácil como lo mismo msgid diferente en los dos archivos msgstr Como dije, es el mismo mecanismo que usamos con archivos XML en Android o archivos de propiedades (.strings) en iOS.

Es importante considerar que esta no es la única manera de lograr la solución objetivo, Elige el formato que mejor se adapte a tus necesidades como elegimos obtener texto.

Android e iOS

En Android, la solución para la localización de texto es obvia porque la proporciona directamente el marco, los conocidos archivos xml.

Por otro lado, el mecanismo framework proporcionado por iOS para traducir aplicaciones es a través de NSLocalizedString , que realmente no es la mejor solución porque no es seguro.Mirar Esta Interesante artículo para conocer más sobre los localizadores estándar de iOS.

Con todo, decidimos confiar en rápido hacer para hacer el trabajo. No explicaré cómo funciona, ya que está más allá del alcance de este artículo.

Tanto el texto de Android como el de iOS serán generados automáticamente por el marco de cadenas (más información a continuación) del archivo .po.

disco de red

disco de red es una de las herramientas que nos permite administrar cadenas de proyectos desde una hermosa interfaz de usuario web.

La herramienta es de código abierto (opción SAS disponible) por lo que podemos instalarla en nuestro servidor.

Si eres desarrollador, no dedicarás mucho tiempo a esta herramienta, pero si eres product manager (o traductor), la cosa cambia radicalmente. disco de red (o cualquier otro soporte obtener texto) será su sitio de referencia para ver y modificar cualquier cadena existente en su proyecto.

Nuestro caso de uso real es: el equipo principal agrega algunas cadenas nuevas (en el archivo .po) para crear una funcionalidad nueva y elegante, y luego, si no implementamos esta solución, es posible que no traduzcamos esas cadenas (nadie nos lo dijo). sobre ellos, no tiene tiempo para verificar las funciones una por una si se agregan nuevas cadenas). En este preciso momento, Weblate se activa y envía una notificación por correo electrónico al gerente de producto/traductor para informarle que hay nuevas cadenas en espera de traducción.Ahora el gerente de producto/traductor traduce todas estas cadenas sin traducir (a través de una herramienta web simple) y De repente, estas cadenas se incluyen en la próxima versión de la aplicación. (Aquí hay algo de magia de integración continua, que explicaré en una publicación futura).

Todo sin la interacción del desarrollador.

Nuevamente, elija la herramienta de traducción que mejor se adapte a sus necesidades.

marco de cuerda

El marco de cuerdas es la guinda del pastel para toda la solución.Este marco es solo un conjunto de diferentes scripts que toman como entrada una única fuente de verdad (recuerde, nuestro .correos files), capaz de generar archivos de cadenas para diferentes plataformas. es decir, genera un xml. Archivos para Android y archivos .string para iOS. Dado el archivo .po en el ejemplo anterior, estos serán resultados dependientes de la plataforma.

Androide:

IOS:

Para crear el marco de cadena, elegimos Python. Siéntase libre de usar el lenguaje de secuencias de comandos que mejor se adapte a sus necesidades. Pista: Las expresiones regulares serán tu mejor amigo en este trabajo.

Mi sugerencia final es crear un nuevo proyecto git para alojar el marco de modo que pueda compartirse entre diferentes aplicaciones o módulos.

LEER  Google se ve afectado por demandas antimonopolio presentadas en 36 estados y Washington, D.C.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba