Esta guía le mostrará cómo transformar una aplicación iPhone creada con Xcode en multilingüe.
Tutorial sobre la Localización de Aplicaciones iPhone
- Preparar los recursos para la localización en Xcode
- Localizar los archivos del Interface Builder (Constructor de Interfaz)
- Recolectar los textos incrustados en los archivos de recursos
- Traducir los archivos de recursos
- Importar la traducción a la aplicación iPhone
- Probar la traducción en un dispositivo iPhone
- Detectar y solucionar problemas
- Actualizar la traducción
Introducción
El proceso de localización de una aplicación iPhone abarca los siguientes pasos:
- Preparar sus archivos de recursos para proceder a la localización.
- Recolectar todos los textos utilizados en la aplicación en archivos de recursos.
- Traducir los archivos de recursos.
- Volver a incorporar los archivos de recursos en la aplicación.
Como los iPhones son multilingües por naturaleza, una vez que su aplicación se encuentra disponible en diversos idiomas, el dispositivo la reconoce automáticamente para su utilización. El mismo visualizará los elementos de la interfaz gráfica de usuario (IGU) en el idioma correspondiente, de acuerdo a la configuración establecida en el dispositivo.
Todas la aplicaciones iPhone son creadas utilizando textos Unicode, codificados como UTF-16. El simulador de iPhone soporta este formato y le permitirá acceder a una vista previa de su aplicación traducida.
1. Preparar los recursos para la localización en Xcode
Xcode debe saber que su proyecto incluye archivos de recursos multilingües.
El modo más fácil de localizar un archivo con Xcode es simplemente eliminando el archivo del proyecto y, en Finder, moverlo al directorio de localización. Al extraer el archivo de su proyecto, asegúrese de hacer clic en «Delete References» (eliminar referencias) y no en «Also Move to Trash» (enviar a la papelera). De este modo, no se borrará el archivo pero se eliminará la referencia al mismo.
Si sus archivos de recursos están en inglés, entonces cree una nueva carpeta denominada en.lproj en su carpeta del proyecto. Si dichos archivos se encuentran en otro idioma, reemplace en con el código de dos letras del país correspondiente.
Mueva el archivo de recursos al nuevo directorio de localización, y luego arrástrelo al proyecto Xcode. Xcode ahora reconocerá el recurso como que ha sido localizado en el idioma correspondiente. Repita el procedimiento con los demás archivos de recursos que necesite localizar.
2. Localizar los archivos del Interface Builder (Constructor de Interfaz)
Extraer los segmentos
A fin de extraer los segmentos de sus archivos de recursos del Interface Builder, usted debe ejecutar una herramienta como ibtool, la cual está incluida en el kit de instalación estándar.
Para extraer los archivos, abra el Terminal en el directorio del proyecto y ejecute el siguiente comando:
ibtool --generate-strings-file Example.strings en.lpoj/Example.xib
Éste creará el archivo Example.strings. Ábralo y se encontrará con varias combinaciones de objeto-cadena de comandos.
Revise el documento en detalle y verifique los contenidos. Puede eliminar aquellos segmentos que no necesiten traducción.
Ocúpese de los segmentos dobles
Es posible que el archivo de recursos contenga segmentos dobles, por ejemplo, los títulos de algunos botones en diferentes estados.
Algunos segmentos dobles deben ser traducidos por única vez, sin embargo, hay otros que deben ser modificados. El título de un botón, en diferentes estados, indudablemente debería tener la misma traducción. Sin embargo, hay palabras que funcionan correctamente como sustantivo en algunos contextos y como verbos en otros.
Usted tiene la opción de eliminar los segmentos dobles redundantes (aquellos cuya traducción debe ser idéntica) del archivo de recursos o conservarlos e informárselo al traductor.
El sistema de traducción para iPhone de ICanLocalize puede eliminar de modo automático los segmentos dobles de los archivos de recursos, simplificando la tarea considerablemente.
3. Recolectar los textos incrustados en los archivos de recursos
Generalmente, las aplicaciones iPhone incluyen dos tipos de texto: la interfaz de la aplicación (administrada por el Interface Builder) y segmentos incrustados utilizados dentro del mismo código (inline).
Los segmentos de la interfaz ya se encuentran organizados en un archivo de recursos y debemos asegurarnos de que el código sólo utilice aquellos que se puedan leer por un archivo de estas características.
Un segmento dentro del código (inline) tiene la siguiente apariencia:
@"Hello World!"
Debemos editar los archivos de origen y modificar todos los segmentos dentro del código para que se vean de esta forma:
NSLocalizedString(@"Hello World", @"hello message")
En realidad, «Hello World» es un segmento más bien interno. La función NSLocalizedString produce lo que será visualizado. La misma devuelve el segmento localizado según el idioma de la aplicación. NSLocalizedString lee el archivo Localizable.strings del directorio de localización.
Revise todos sus códigos y determine qué segmentos serán visualizados por el usuario y, por lo tanto, deben ser traducidos. No es necesario localizar aquellos a los cuales el usuario no tendrá acceso, como las claves en un NSDictionary.
Agregar comentarios
¿Notó ese «hello message»?
Dicho mensaje ingresará al archivo de recursos y además será visible para el traductor. Es de gran importancia agregar comentarios donde el texto no sea lo suficientemente explicativo. De este modo, el profesional a cargo de su aplicación sabrá cuál es la función del texto y cómo traducirlo con precisión.
Crear un archivo Localizable.strings
genstrings recolecta de los archivos de origen todos los segmentos que deban ser traducidos y genera el archivo Localizable.strings. Para ejecutarlo, abra el Terminal, acceda al directorio del proyecto e ingrese la siguiente sentencia:
genstrings -o en.lproj *.m
De esta forma se obtienen todas las claves provenientes de las llamadas a NSLocalizedString, compilándolas en un archivo de tipo Localizable.strings situado en el directorio de localización en.lproj. Si sus archivos con extensión .class se encuentran en un directorio diferente, asegúrese de incluirlos al final del comando (por ejemplo, Classes/*.m).
4. Traducir los archivos de recursos
Ahora usted tendrá dos archivos de recursos El archivo de recursos Interface Builder (creado por ibtool) y el de los segmentos incrustados (creado por genstrings).
Ya puede enviar ambos archivos para que sean traducidos por ICanLocalize.
Contamos con una herramienta particular para localizar archivos de recursos iPhone, la cual permite traducir aplicaciones iPhone ahorrándole tiempo en asuntos técnicos. Esta herramienta lee sus archivos de recursos, extrae los textos a traducir y genera nuevos archivos traducidos.
Usted puede cargar los archivos de recursos con su formato original UTF-16, y nuestra herramienta se encarga de extraer pares de etiquetas y segmentos (también comentarios, si los hay). Luego, los traductores sólo trabajarán con los segmentos.
Profesionales altamente capacitados y con una vasta experiencia en la localización de aplicaciones iPhone trabajarán con la traducción de los segmentos. Usted puede establecer una comunicación directa con los traductores que haya seleccionado a fin de asegurarse de que la traducción no sólo sea precisa, sino que también se adapte a la cultura y costumbres de los países a los cuales está destinada.
Primero debe crear una cuenta, lo cual es totalmente gratis. Luego cree un proyecto de traducción iPhone, cargue sus archivos de recursos, indique los idiomas a los cuales debe realizarse la traducción y efectúe el pago de la misma. Una vez finalizado el trabajo, usted podrá descargar los archivos localizados e importarlos a su aplicación.
Incluso mucho tiempo después de finalizado el trabajo, usted puede realizar cualquier actualización o modificación del mismo, siendo un placer para nuestros profesionales tener la posibilidad de asistirlo.
5. Importar la traducción a la aplicación iPhone
Crear el archivo .xib localizado
Luego de haber recibido su archivo de segmentos traducido, abra el Terminal y utilícelo para crear una copia localizada de ese archivo .xib.
En primer lugar, asegúrese de haber creado un directorio para la localización que acaba de recibir, por ejemplo, «fr.lproj». En segundo lugar, mueva el archivo con los segmentos traducidos a ese directorio.
Supongamos que su idioma de origen es el inglés, acceda al directorio de su proyecto, abra el Terminal y ejecute la siguiente instrucción:
ibtool --strings-file fr.lproj/Example.strings en.lproj/Example.xib –write fr.lproj/Example.xib
Este comando copiará el archivo del Interface Builder localizado del inglés en el otro directorio de localización, y reemplazará los valores de todos los objetos por aquellos que se encuentran en el archivo con los segmentos traducidos.
Usted ya cuenta con un archivo .xib localizado, sin embargo, aún no se encuentra apto para su utilización.
Agregar el Archivo Localizado al Xcode
Arrastre el archivo .xib recientemente localizado a su proyecto en Xcode, asegúrese de no hacerlo a la antigua localización. El archivo localizado .xib debe ir en el grupo que contiene las demás localizaciones de este archivo.
Lugar correcto para arrastrar el archivo .xib | Lugar incorrecto para arrastrar el archivo .xib |
Revisar el Archivo Traducido de Interface Builder
Abra el archivo traducido en el Interface Builder y revise todos los detalles. Normalmente el largo de los segmentos sufre modificaciones considerables. Las traducciones del inglés al alemán y al francés suelen ser un 50% más extensas que el texto original. Es probable que tenga que efectuar un pequeño ajuste en el diseño para asegurarse de que todo el texto quede visible.
Si extrajo manualmente los segmentos dobles, es el momento indicado de devolverlos. Es decir, si dos botones tenían un mismo título y usted extrajo uno de ellos del archivo .strings generado anteriormente, ahora debe copiar el título del botón que sí fue traducido.
Es necesario hacerlo sólo si usted editó el archivo .strings antes de enviar el texto a traducir. El sistema ICanLocalize se encarga de eliminar los segmentos dobles de la traducción y los incluye en el archivo de recursos de la traducción.
Su aplicación iPhone ya se encuentra preparada para funcionar de modo multilingüe. ¡Sólo falta un último paso!
6. Probar la traducción en un dispositivo iPhone
Después de haber seguido todos los pasos, usted ya cuenta con una aplicación multilingüe.
Para probarla en un dispositivo, deberá modificar el idioma del mismo. Puede observar la siguiente guía de Apple para aprender a cambiar los idiomas del iPhone.
Usted está a un paso del lanzamiento, sólo recuerde efectuar una prueba.
A continuación le mostramos algunos aspectos a tener en cuenta:
Pitfall | Qué puede suceder | Cómo solucionarlo |
---|---|---|
Segmentos traducidos muy extensos | Los textos traducidos del inglés al alemán, francés, español y otros idiomas europeos suelen ser entre un 120% y un 150% más extensos que el texto original. El porcentaje respecto a los idiomas asiáticos es de 50%-70%. | Debe adaptar la IGU a los segmentos de diferentes tamaños. El sistema de localización para aplicaciones iPhone de ICanLocalize verifica el largo de los segmentos y le advierte cuando los mismos son demasiado largos o demasiado cortos. |
Faltan caracteres de formateo | Muchos segmentos incluyen parámetros de sustitución de datos, por ejemplo, %s para el reemplazo de textos y %d para los números. Otros segmentos incluyen códigos HTML. Si la traducción no respeta el mismo formato, la aplicación fallará. | Nuestro sistema de traducción le permite ingresar secuencias obligatorias con el objeto de garantizar que las traducciones incluyan las mismas secuencias del original. De otro modo, usted debería revisar de modo manual todos los segmentos para asegurarse de que los caracteres de formateo se corresponden. |
Traducción fuera de contexto | Existe la posibilidad de que el traductor no entienda el significado de un segmento con precisión. Ésto sucede con más frecuencia cuando las aplicaciones incluyen segmentos cortos y poco descriptivos. | Envíele al traductor una descripción detallada antes de comenzar el trabajo. Una vez finalizado el mismo, envíe imágenes donde se pueda visualizar la pantalla de la aplicación para poder efectuar una revisión final. Agregue comentarios a los segmentos, lo cual le garantizará un excelente resultado en la traducción. |
Detección y solución de problemas
Si los segmentos de su archivo Localizable.strings se encuentran en el archivo traducido, pero no aparecen en el iPhone, verifique la codificación de caracteres del archivo.
A diferencia del simulador, iPhone sólo reconoce los archivos de segmentos con formato UTF-16. Siempre pruebe las localizaciones en el dispositivo, ya que el simulador y el dispositivo no suelen reaccionar igual en todos los casos.
Los archivos de recursos traducidos que usted descargó de ICanLocalize utilizan codificación UTF-16. Los mismos se encuentran dentro de archivos gzip a fin de que su navegador no los modifique cuando usted los descargue.
Actualizar la traducción cada vez que la aplicación iPhone evoluciona
ICanLocalize facilita la actualización de las traducciones. Cuando la aplicación iPhone evoluciona, se crean segmentos nuevos y los que ya estaban se pueden modificar.
Para actualizar las traducciones, ejecute genstrings nuevamente con el objeto de crear un nuevo archivo Localizable.strings. Luego vuelva a ejecutar ibtool para generar nuevos archivos de segmentos.
Finalmente, cargue los nuevos archivos de recursos al proyecto que se encuentra en ICanLocalize. El sistema detecta aquellos segmentos que sean nuevos o estén modificados y sólo traducirá ese material. Usted sólo abonará por la actualización de esos segmentos.
Nota: Cuando un segmento se modifica, el mismo se debe traducir de cero. A fin de reducir el costo de la actualización de la traducción, le recomendamos que divida los segmentos más largos en varios segmentos cortos. De esta manera, cuando tiene que realizar alguna modificación el fragmento a actualizar será más corto, abaratando el importe total de la traducción. Los segmentos deben ser lo suficientemente extensos como para que sean claros, pero tampoco tan largos a fin de reducir los costos de la actualización.
¿Necesita traducir su aplicación iPhone?
ICanLocalize le ofrece un servicio de traducción profesional optimizado para aplicaciones iPhone. Lo ayudamos a localizar su aplicación en varios idiomas de modo rápido, simple y a un bajo costo.
Expertos profesionales traducirán su aplicación a su lengua madre ayudándolo a incrementar sus ventas en todo el mundo.
Cree su cuenta para comenzar u Obtenga una cotización gratis al instante.
Si los segmentos de su archivo Localizable.strings se encuentran en el archivo traducido, pero no aparecen en el iPhone, verifique la codificación de caracteres del archivo.