# Propuesta solución de traducciones para plataformas desarrolladas por Mi Águila ## Control de Versiones | Versión | Fecha | Autor | Revisor | Descripción del Cambio | |--|--|--|--|--| |1.0|20210428|yitsy.mosqueda|Sergio Nustes ,Jed Horne|Emisión| ## 1 Introducción A fin de cumplir con los planes de negocios propuestos por Mi Águila, que incluyen la expansión del producto hacia varias ciudades de Latinoamérica, se evidencia la necesidad de que la plataforma soporte múltiples lenguajes y dialectos que le acerquen al cliente final. Por tal motivo, se hace necesario diseñar una herramienta propia o utilizar una de terceros en aras de solventar los requerimientos que se presenten. ## 2 Motivación Si bien los frameworks que se utilizan en Mi Águila tienen soporte para internacionalización, se hace difícil unificar y revisar las traducciones de cada plataforma, de igual manera el proceso se ralentiza ya que los revisores necesitan tener conocimiento técnico de cada framework o reportar al equipo de desarrollo para que realice los cambios. Diseñar y desarrollar una herramienta propia de este tipo conlleva desplegar personal y los costes serian mayores que integrar una herramienta externa. Sin embargo es fundamental considerar algunos puntos al momento de elegir una herramienta externa: 1. Debe integrarse a otras que ya son empleadas por los equipos de desarrollo (Github, Slack) 2. Cuente con la documentación adecuada y soporte los archivos ya utilizados en la traducción de las aplicaciones creadas. Los archivos usados actualmente por plataforma son: * Django (backoffice) - .po * iOS nativo - .strings * Android nativo - .xml * Flutter - Actualmente se trabaja con Google sheet por lo que puede exportarse en formatos .csv, .xls o .xlsx Adicionalmente Flutter trabaja con archivos .arb * Web - Actualmente no se está trabajando con internacionalización pero se considera trabajar con .json 3. Permita administrar múltiples idiomas base (para el caso de América Latina se deben soportar Español, Portugués e Inglés) además de los dialectos (ES_CO, ES_MX, PT_BR, etc) ## 2.1 Lluvia de Ideas En este sentido se valoraron las siguientes herramientas online: 1.- **Lokalise** (https://lokalise.com) 2.- **Locize** (http://locize.com) - Es un servicio de localización del framework i18next (https://www.i18next.com) 3.- **Smartling** (https://www.smartling.com/) 4.- **Phrase** (https://phrase.com/) Dichas herramientas fueron evaluadas en cuanto a: **Soporte de archivos, Integraciones, Costos, Documentación, Administración de idiomas y Facilidad de edición.** **Soporte de archivos:** Siendo uno de los objectivos principales que la herramienta soportara los archivos que ya están siendo utilizados se desconsideran desde este punto Locize y Smartling: ![](https://i.imgur.com/KQMc1ZF.png) **Integraciones:** Tanto Lokalise como Phrase ofrecen integraciones con las principales herramientas de que utilizan los equipos de desarrollo de Mi Aguila como Github, Slack o Figma y en general con las principales herramientas y servicios del mercado, el acceso a estas integraciones pueden varias por planes. https://lokalise.com/product/integrations https://phrase.com/integrations/ **Costos:** Ambas soluciones difieren en costos, sin embargo considero más atractivos los planes de Lokalise para trabajo en equipos ya que se ofrecen planes para equipos de 10 usuarios y proyectos ilimitados desde su Plan Start a diferencia de Phrase cuyo plan Basic ofrece solamente 1 proyecto y el costo es por usuario. https://lokalise.com/pricing https://phrase.com/pricing/ **Documentación:** Ambas propuestas ofrecen una Prueba gratuita de uso de la plataforma por 14 días, buen soporte al usuario y amplia documentación en inglés del servicio en sus respectivos sitios web, sin embargo Lokalise cuenta con más referencias de tutoriales en Google y Youtube. **Administración de idiomas:** Ambas soluciones soportan múltiples idiomas y dialectos. **Facilidad de edición:** Si bien ambas propuestas soportan múltiples idiomas la interfaz de Lokalise es más intuitiva y permite interactuar con un mismo “key” en varios idiomas al mismo tiempo. ![](https://i.imgur.com/muknDAV.png) ![](https://i.imgur.com/Itu7mhG.png) ## 3 Propuesta de implementación Partiendo del comparativo anterior, se propone Lokalise como herramienta para el manejo de traducciones, considerando que con esta propuesta pueden integrarse las aplicaciones con las que cuenta Mi Águila actualmente, así como utilizar traductores/revisores externos al equipo de desarrollo de requerirse, asignar tareas y flujos de trabajo. Entre sus múltiples funciones se incluye la de brindar opciones a traducciones usando traductores automáticos o la posibilidad de contratar traductores en línea. ![](https://i.imgur.com/OCWC42P.png) Además las llaves cargadas pueden exportarse en múltiples formatos y ser utilizadas en otras aplicaciones. ![](https://i.imgur.com/CC7EFkb.png) Cada proyecto puede integrarse con un repositorio y rama dentro del mismo, vincular los archivos de traducción a cada idioma y que dichos archivos se actualicen automáticamente cuando se realiza un push en la rama de Github, además crea ramas con los cambios en el repositorio desde Lokalise cuando se exporta una traducción. ![](https://i.imgur.com/GDJpUKG.png) Dentro de la documentación se incluyen ejemplos de integraciones con varias herramientas como Django, Docker, Android, etc. https://docs.lokalise.com/en/collections/652240-integrations#developer-tools ![](https://i.imgur.com/gMLsgUj.png) Otra ventaja es el periodo de pruebas de 14 días que permite valorar el alcance de la herramienta y elegir el plan que más se adecue a la realidad de la empresa. ## 4 Métricas Métricas evaluadas: ![](https://i.imgur.com/2won9cL.png) ## 5 Riesgos e inconvenientes El riesgo principal es que el equipo no ha trabajado con esta herramienta anteriormente, lo que puede conllevar a errores de uso de la herramienta o mal manejo de las integraciones. ## 6 Alternativas Como alternativa se propone Phrase. ## 7 Impacto potencial y dependencias El principal impacto sería sobre las plataformas que ya están creadas, los usuarios finales podrían notar cambios inherentes a las traducciones modificadas. ## 8 Preguntas sin resolver Mayormente fue evaluada la interfaz de usuario y la integración con Django, se podrían evaluar durante el período de prueba la integración con otras plataformas. ## 9 Ideas futuras Lokalise cuenta con otras funcionalidades que sería interesante revisar como Lokalise API y Lokalise CLI. ## 10 Conclusión Las soluciones desarrolladas por Mi Aguila necesitan ofrecer soporte multilenguaje para posicionarse como competidores en los mercados internacionales. En este marco, Lokalise se presenta como una opción viable para cumplir con estos objetivos a corto plazo.