strings multi localize localizable language generate app localization xcode4

localization - multi - Localized Strings XCode 4... Copiar archivo.strings Error Validation failed



multi language swift (12)

¿Cómo puedo definir cadenas localizadas en XCode 4?

Supuse que solo podía agregar idiomas a InfoPlist.strings usando la propiedad "Localización" (Inspector de archivos, panel derecho).

... y luego ingrese la "clave" = "valor" s en cada versión localizada.

Pero no puedo construir el proyecto. Me sale este error:

Copiar archivo .strings Error Validation: no se pudieron leer los datos porque se han dañado.

La conversión de la codificación de texto a UTF 16 no soluciona el problema. Tampoco abandona Xcode y lo vuelve a iniciar.

Q1: ¿cómo remedio estos errores de compilación?

Por alguna casualidad, una vez logré obtener una aplicación de prueba para ejecutar agregando un InfoPlist.strings (francés) e (inglés). No recibí el error en el archivo de cadenas francesas, pero lo hice con el inglés. Así que dejé el inglés solo y simplemente puse un parámetro en el francés. Sin embargo, en el simulador, configurado en francés, el parámetro no se recogió. Se revertió al valor predeterminado especificado en NSLocalizedString ()

P2: ¿Cómo puedo hacer que funcione incluso si se solucionan los errores de compilación?


En mi caso, plutil -lint Localizable.strings no ayudó porque el mensaje de error que produjo fue " Unexpected character " at line 1 "cuando el error real era un lugar de un " en la línea 2340.


En mi caso, se trató de un problema de "citar" copia de un sitio web, que no fue aceptado.

Debería haber detectado que el resaltado de sintaxis no funciona, pero acabo de leer la fuente "signo de comillas, clave, signo de comillas, signo de igualdad, signo de comillas, valor, signo de comillas ... sí, está bien".


Es una pena que el corrector de sintaxis de XCode no pueda resolver esto.

También puede copiar el texto en Text Wrangler (algo que hago después de recibir un archivo de un traductor) para verificar las cadenas entre comillas o ejecutar una comprobación de expresiones regulares para los puntos y comas. La coloración de sintaxis en Text Wrangler mostrará cadenas mal citadas (o mal escapadas) donde el editor de cadenas de XCode no lo hace actualmente.


He tenido el mismo problema. Tenía un archivo de localización de aproximadamente 60 páginas, y tenía solo un "demasiado", me tomó un tiempo descubrir que


Mi amigo me hizo una traducción en Windows. Descubrí que cambiar la codificación no ayuda, entonces lo que hice: comenté todas las cadenas, y luego comenté algunas y presioné cmd-B para descubrir qué cadenas tenían problemas. Luego reescribí las cadenas de problemas de forma manual y luego funcionó.


Podría ser tan simple como un punto y coma faltante al final de la línea.


Sí, solo pesqué 500 traducciones

tenga en cuenta que KISS en la segunda cuerda está entre comillas dobles que están DENTRO de otro error de DOBLE COTIZACIÓN

"Before using KISS Remixer, you must agree to the terms and conditions of use." = "Vor der Nutzung des Remixers "KISS" müssen Sie die Allgemeinen Geschäftsbedingungen akzeptieren.";

Esto esta bien

"Before using KISS Remixer, you must agree to the terms and conditions of use." = "Vor der Nutzung des Remixers KISS müssen Sie die Allgemeinen Geschäftsbedingungen akzeptieren.";

como es esto (reemplace con comillas simples DENTRO DEL DOBLE)

"Before using KISS Remixer, you must agree to the terms and conditions of use." = "Vor der Nutzung des Remixers ''KISS'' müssen Sie die Allgemeinen Geschäftsbedingungen akzeptieren.";

CONSEJO USE una BÚSQUEDA BINARIA para encontrar la línea ofensiva.

  1. obtener archivos localizados de traductor.
  2. copie todos los Loclaizable.strings en las carpetas localizadas de su proyecto.
  3. Abre XCODE
  4. Limpiar todo en el dispositivo iOS / todos los simuladores
  5. Construir
  6. Copiar archivo .strings Error Validation: no se pudieron leer los datos porque se han dañado.
  7. Abra el navegador de registro
  8. Ver cuál de las traducciones está corrupta.
  9. Abrí Localizable.strings en TextWrangler En la parte inferior de la barra de herramientas, el traductor había enviado el archivo UTF-16 como

UTF-16 Little Endian lo cambió de nuevo a solo ''UTF-16'' 10. Cleaned build / Build MISMO ERROR

En alguna parte del archivo está

¿Falta el punto y coma?

/* popup message */ "Save mix" = "Enregistrer le mixage"; /* popup message */ "Save mix" = "Enregistrer le mixage"

"Extra" comillas dobles "entre comillas dobles"

INCORRECTO

/* popup message */ "Save mix" = "Enregistrer le "mix" age"

DERECHO

/* popup message */ "Save mix" = "Enregistrer le mixage"

TAMBIÉN DERECHO

/* popup message */ "Save mix" = "Enregistrer le ''mix''age"

  • recuerde que puede haber más de un error en un archivo que encontré "KISS" en comillas dobles en dos lugares

Si usa la comilla doble "" en su localización, no olvide escapes utilizando una barra diagonal inversa.


Tengo el mismo problema para un gran archivo localizado de una hora y aplicar todos los pasos anteriores no resolverá mi problema, finalmente lo que he hecho es develar, localizar el archivo en algunos rangos (partes), decir parte-a, b , c ... y cortar esas cadenas del archivo, y mantenerlas en un archivo de texto, construir el proyecto de nuevo, a menos que y hasta que llegue al punto, donde solo quedó la parte-k, encontré que por error presioné f en mi teclado ... ¡seguro! solucionado Sé que esto no es una solución, pero puede ayudar a alguien como yo :)


Tuve el mismo problema al encontrar los errores dentro del archivo de localización ...

Simplemente use la herramienta plutil en el terminal para convertir el archivo y obtendrá un mensaje de error con el número de línea.

plutil -lint Localizable.strings

Respuesta

plutil [74058: 707] CFPropertyListCreateFromXMLData (): analizador plist antiguo: falta el punto y coma en el diccionario en la línea 422. Se abandonará el análisis. Interrumpa _CFPropertyListMissingSemicolon para depurar. Localizable.strings: carácter inesperado "en la línea 1


Uno debería verificar la sintaxis así

"Recharge_Data" = "Data";

1) "" debería estar allí en el lugar apropiado.

2) = debe ser verificado.

3); debería estar allí al final de la declaración.


Verifica la codificación de tu archivo. Esto a menudo es causado por caracteres extendidos (como caracteres acentuados) y una codificación que no es UTF. En particular, hay un error en XCode 4 que si copia caracteres acentuados en un archivo de cadenas de Safari, se guardará como Western Mac OS Roman.