Verificador de Localizable.strings

Suelta dos o más archivos .strings y mira qué falta, qué está duplicado, qué nunca llegó a traducirse y qué líneas no se pueden leer. No se sube nada: suelen ser archivos de producción y se quedan en esta página.

Arrastra tu carpeta .lproj o tus archivos .strings aquí o haz clic para elegir

La regla del valor duplicado

Dos claves con el mismo valor en inglés son el fallo que siempre vuelve. Quien traduce ve la misma cadena dos veces, la traduce dos veces y obtiene dos resultados distintos; o peor: un idioma que necesita palabras distintas para cada contexto recibe la misma para los dos y nadie se entera hasta que se queja alguien nativo. La comprobación ignora mayúsculas y puntuación final, porque «Done» y «Done.» son el mismo problema disfrazado.

Idéntico no es lo mismo que sin traducir

Un valor que coincide con el archivo base suele significar que nadie se ha ocupado de él. A veces es lo correcto: un nombre de marca, una unidad, una abreviatura que se queda igual en todos los idiomas. La herramienta los marca y deja que decidas tú, porque la alternativa es pasar por alto huecos reales o dar la lata con cada OK.

Las líneas erróneas se muestran, no se ignoran en silencio

La gramática de .strings es pequeña, pero sus casos límite son reales: comentarios de bloque, comillas escapadas dentro de los valores, un punto y coma que falta, una comilla tipográfica pegada desde una hoja de cálculo. Un analizador que se salta en silencio lo que no entiende te dirá que el archivo está bien cuando en realidad falta una clave sin que nadie se entere. Cada línea que no se puede parsear aparece con su número, para que vayas a mirarla.

UTF-16 también

Xcode lleva años escribiendo archivos .strings en UTF-16, y muchos repositorios todavía los contienen. Por eso se busca primero una marca de orden de bytes y se descodifica en consecuencia, para que un archivo UTF-16 no llegue como un muro de bytes nulos y cien errores de análisis.

Preguntas frecuentes

¿Admite .xcstrings?

Todavía no. El catálogo de cadenas es JSON con otra forma, y merece un tratamiento propio en vez de una capa de traducción que funcione a medias.

¿Qué archivo debe ser la base?

La que sirva de referencia, normalmente el idioma de desarrollo. Todo se compara con ella, así que una clave que no está en la base pero sí en otro archivo se marca como sobrante y no como ausente.

¿Qué cuenta como problema?

Una clave que falta, un valor duplicado, un valor idéntico a la base o una línea que no se puede leer. El contador suma todo eso en todos los archivos.

¿Se suben mis archivos?

No. Se leen con el lector de archivos del navegador y se comparan aquí. En esta herramienta importa más que en otras, porque son archivos de producto reales.

Hecho por el equipo de GO AI, que tropezaba con esto una y otra vez. Todas las herramientas gratuitas