HowTo:Agregando un idioma al cliente Mac
From iFolder
Traducción al español:
Jorge Mauricio Hernández Torres <jmauricio@gmail.com>
El cliente de iFolder en Macintosh está escrito en objective-c y utiliza prácticas de Cocoa i18n estándar. Las cadenas a ser traducidas están localizadas en dos ubicaciones. La primera ubicación es el archivo Localizable.strings . Este archivo contiene todas las cadenas utilizadas em el código fuera de un archivo .nib . La seguna ubicación es en los archivos individuaes .nib . Ahora abra cada archivo .nib y cambie las cadenas del inglés al idioma a traducir. Esto debe ser más trabajo del que estamos dispuestos a hacer, asi que hemos construido un build target que extraerá todas las cadenas de cada archivo .nib asi, pueden ser fácilmente traducidas y colocadas en un archivo .nib traducido
El primer paso es abrir el archivo iFolder.xcodeproj en Xcode y localizar el archivo Localizable.strings en la carpeta de Recursos (Resources). Seleccione el archivo y ejecute "Get Info" (cmd-i). Bajo la pestaña General observará una tabla Localizations donde puede agregar el idioma al que desea traducir. No utilice las opciones predefinidas, asegúrese de utilizar las abreviaturas de localización estándar (por ejemplo - Spanish = es). Esto creará una nueva carpeta .lproj en el directorio OSXClient con el he prefijo del idioma local (agregado un idioma español debiera crear es.lproj). Necesita repetir estos pasos para cada archivo .nib localizado en la carpeta Resources. Sabrá que un recurso manipulará su nuevo lenguaje cuando dé un click en la flecha siguiente al recurso y observe aparecer la abreviatura local bajo ella. Asegúrese que además agregue el idioma local al archivo Credits.rtf asi la ventana acerca de.. muestra el idioma traducido y no el inglés. Necesitará editar el Makefile.am localizado en la carpeta OSXClient y agregar el nuevo directorio .lproj a la variable LPROJDIRS asi make lo ubicará.
El próximo paso es generar los archivos .strings para todos los archivos .nib files en preparación para ser traducido. Puede abrir manualmente cada archivo .nib en Interface Builder y agregar las cadenas traducidas pero eso es trabajo excesivo, asi hemos construido un build target para extraer las cadenas de todos los archivos .nib . Ejecute el siguiente comando make cuando esté dentro de la carpeta OSXClient:
make generate-strings
El resultado final será un archivo Localizable.strings actualizado y un archivo .strings para cada archivo .nib localizado en la carpeta English.lproj folder. Ignore los errores sobre gráficos, esto sucede porque tenemos una ubicación común para las gráficas y no son resueltas por la herramienta genstrings . Copie los archivos .strings a su nuevo directorio local (del idioma traducido) .lproj .
El formato de una cadena sencilla en el archivo .strings file se vería así:
/* No comment provided by engineer. */ "Clear Log" = "Clear Log";
Si esta cadena fuese traducida al español se vería así:
/* No comment provided by engineer. */ "Clear Log" = "Registro Claro";
Cuando todas las cadenas son traducidas, puede reinsertarlas en el archivo .nib ejecutando el siguiente comando make desde la carpeta OSXClient:
make update-strings
Este comando llama a la herramienta nib la cual proporciona parámetros para dejar el archivo .nib preservado tal cual, pero actualizadas las cadenas. Puede abrir el archivo .nib y ajustar los widgets para alinearlos con las nuevas cadenas traducidas.
En este punto el producto está traducido a su nuevo idioma y puede ejecutar el siguiente comando para limpiar todos los archivos .strings adicionales los cuales no son requeridos:
make clean-strings
Agregando nuevas cadenas y/o archivos
Si está agregando cadenas al codigo, necesita asegurarse de envolverlas en una funcion NSLocalizedString . Si estuviese agregando la cadena "Checking for new iFolders..." debiese observarse el siguiente código:
NSLocalizedString(@"Checking for new iFolders...", nil)
El segundo parámetro es uno que puede utilizar como desarrollador para proporcionar un comentario a los traductores sobre el uso de la cadena. Son dejados la mayoria como nulos en el cliente iFolder.
Si está agregando un nuevo archivo al proyecto, necesitará agregar ese archivo al src/OSXClient/intlsrcfiles asi se convertirá en parte del proceso i18n. Si está agregando un nuevo archivo .nib, necesitará agregar ese archivo al /src/OSXClient/intlnibfiles así se convierte en parte del proceso i18n.
