ios - tesis - ¿Es posible actualizar las cadenas de un guión gráfico localizado?
tesis sobre youtube pdf (12)
Localicé una parte de mi aplicación con la creación de un storyboard base.lproj y 3 archivos de cadenas para ella. Fue hace un mes y después de eso agregué un nuevo controlador de vista a la aplicación, pero los botones y las etiquetas de este controlador no aparecen en los archivos de cadena.
¿Es posible actualizar estos 3 archivos de cadena adjuntos del guión gráfico o debo agregar nuevas cadenas de traducción mediante programación utilizando NSLocalizableString y Localizable.strings?
Aquí hay un script para extraer cadenas de guiones gráficos y xibs, y fusionarlos con las traducciones existentes.
Para ejecutar la secuencia de comandos automáticamente cuando construye un proyecto, coloque la secuencia de comandos en el directorio raíz de su proyecto y agregue una fase Ejecutar secuencia de comandos con la siguiente línea a las fases de construcción de destino en la configuración de su proyecto.
./mergegenstrings.py PathToSourceDir
O puede ejecutar el script en la Terminal manualmente cuando lo desee.
El script ejecuta ibtool
como respondió Tha Leang. También ejecuta genstrings
para extraer y combinar cadenas marcadas con NSLocalizedString
en su código fuente. El script se basa en un script en esta publicación , que combina cadenas después de ejecutar genstrings
.
Creo que la mejor manera es mediante el uso de localizaciones integradas de exportación / importación:
- En Project Navigator elige tu carpeta de proyectos.
- Seleccione Editor> Exportar para localización,
- Todas las traducciones quedan en sus lugares y XCode agrega cadenas perdidas automáticamente. Además, antes de la importación, puede editar .xliff en XLIFF Editor (por ejemplo, en línea - http://xliff.brightec.co.uk ) y luego no necesita hacer esto en XCode.
- luego Editor> Importar localizaciones y elija el archivo .xliff guardado.
PD: si no desea editar en XLIFF Editor y ha omitido el paso 3, XCode no puede guardar nuevas cadenas. En este caso, abra .xliff en XLIFF Editor, vuelva a guardar sin cambios e importe el nuevo archivo.
Cuando hace clic en su storyboard, Main.storyboard, por ejemplo ... En el lado derecho, puede ver el menú de localización (ver imagen adjunta). Si desmarca y vuelve a marcar un idioma, el archivo se generará nuevamente. Por lo general, copio el contenido, vuelvo a generar el archivo y luego pego el contenido que copié y que ya he traducido.
Esta es la forma en que uso para actualizar el diccionario.
Echa un vistazo a BartyCrouch , resuelve perfectamente tu problema. También es de código abierto , se mantiene activamente y se puede instalar e integrar fácilmente en su proyecto.
Instale BartyCrouch a través de Homebrew :
$ brew install bartycrouch
Actualice de forma incremental sus archivos de guiones de Storyboards / XIBs:
$ bartycrouch interfaces -p "/absolute/path/to/project"
Esto hará exactamente lo que estabas buscando.
Con el fin de mantener sus archivos de guiones de Storyboards / XIBs actualizados a lo largo del tiempo , recomiendo agregar un script de compilación (instrucciones sobre cómo agregar un script de compilación here ):
if which bartycrouch > /dev/null; then
# Incrementally update all Storyboards/XIBs strings files
bartycrouch interfaces -p "$PROJECT_DIR"
# Add new keys to Localizable.strings files from NSLocalizedString in code
bartycrouch code -p "$PROJECT_DIR" -l "$PROJECT_DIR" -a -s
else
echo "warning: BartyCrouch not installed, download it from https://github.com/Flinesoft/BartyCrouch"
fi
Además de actualizar de forma incremental sus archivos Storyboards / XIBs Strings, también se asegurará de que sus archivos Localizable.strings
mantengan actualizados con las claves recién agregadas en el código mediante NSLocalizedString
.
Asegúrese de visitar BartyCrouch en BartyCrouch para obtener información adicional.
El enfoque más sencillo y menos riesgoso es, simplemente copie el ID de objeto del guión gráfico y agregue una nueva clave para la clave en el archivo localizado como se muestra a continuación:
1: Copie la identificación del objeto como se muestra abajo desde el guión gráfico para el componente:
2: Agregar nueva clave en el archivo localizado como a continuación:
"DjF-dn-0ay.text" = "Borrar datos y restablecer";
Nota: este es un enfoque muy menos riesgoso si desea actualizar solo algunos componentes, de lo contrario puede recrear un archivo localizado para el guión gráfico.
Esta es mi manera fácil de actualizar el texto nuevo del guión gráfico o xib a la cadena de localización
1- Utilice este script http://tredje.se/dev/trouble/?x=entry:entry150917-204052
2- Seleccione la cadena de localización que desea actualizar y cambie su cadena de idioma de "Cadena de localización" a "guión gráfico del constructor de interfaces"
3- cambiarlo de nuevo :)
Hecho.
Este no es para todos, pero no requiere herramientas adicionales en el terminal y es fácil para pequeños cambios manuales. (No considere esto cuando desee automatizar su proceso).
Paso 0: Configuración del lenguaje del guión gráfico
- Base (con textos en inglés)
- Inglés (el archivo de cadenas localizable no existe porque el archivo base es inglés)
- otros lenguajes (archivos de cadenas localizables)
Este paso se realiza una sola vez.
Ahora cuando agrego algo al guión gráfico hago lo siguiente
Paso 1: agrega el archivo de cadenas localizables en inglés
simplemente marque la línea de pedido en inglés.
Esto crea un archivo de cadenas localizable en inglés completamente nuevo con todas las líneas.
Paso 2: copia las nuevas líneas de pedido en los archivos de otros idiomas
y traducirlos
Paso 3: desmarque el inglés, elimine el archivo de cadenas localizable correspondiente
el archivo solo era necesario para obtener las nuevas líneas de pedido
Este es un proceso fácil y rápido, todo se hace en el editor de guión gráfico.
Finalmente, mi solución fue (rudimentaria pero efectiva) copiar las traducciones anteriores y pegarlas en un nuevo archivo creado al desmarcar y marcar la casilla Idioma de localización.
Esto sería útil en algunos casos como el mío cuando tiene que cambiar solo uno o dos textos.
Hay una aplicación, una herramienta de línea de comandos de Apple llamada AppleGlot que admite localización incremental. No lo he probado todavía, pero se ve exactamente como la herramienta que buscó (hace algún tiempo).
Hay dos opciones:
Opción 1
Xcode puede "recargar" el archivo convirtiéndolo en un tipo de archivo [Story Builder Cocoa Touch Storyboard] o en un tipo de archivo [Localizable Strings] .
- Seleccione su archivo de guión gráfico base del Project Navigator
- Encuentra la sección de localización en el inspector de archivos
- Si su archivo es actualmente un [Cadenas localizables], cámbielo a [Interface Builder Cocoa Touch Storyboard] o viceversa.
- Xcode debería haber convertido su guión gráfico a la versión actual, al mismo tiempo que conserva sus antiguos esfuerzos de localización. Aquí puede cambiar el archivo de nuevo al tipo de archivo original si lo desea.
opcion 2
Utilice ibtool para extraer las cadenas en su guión gráfico.
- Abra la aplicación Terminal
- Localiza tu directorio Base.lproj
Usa esta línea para extraer las cuerdas:
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings
Después de que ibtool extraiga las cadenas a file_name.strings, puede copiarlo y pegarlo en su archivo .strings original.
Visite para obtener más información: https://conyac.cc/business/columns/localization_guide_ios
Puede agregar manualmente una clave en su archivo de localización. Puede encontrar el objeto clave seleccionándolo en el editor de guión gráfico. Echemos un vistazo a Object-ID
en el inspector de identidad. Se ve como "nwc-b2-19c"
En su actualización de localización o añadir traducción. Por ejemplo :
"nwc-b2-19c.title" = "Translated title";
Tengo un enorme guión gráfico con muchas cuerdas allí. Dos idiomas base inglés y otro árabe. La tarea era agregar algunos campos y etiquetas al guión gráfico y agregar la localización para ellos sin ningún script y NSLocalizableStrings.
Para mí ayudó a continuación:
Primero : Asegúrate de que tienes git para evitar cambios inesperados.
- Vaya a la pantalla de destino en xcode y presione
Editor
->Export For Localization...
Guarde el archivo ar.xliff en algún lugar. - Descargar XLIFF Edtior .
- Abra el archivo ar.xliff y haga los cambios.
- Importar este archivo en xcode. ¡Hecho! Has actualizado el archivo de cadenas del guión gráfico.