Lingo.dev + .strings (Xcode)

Lingo.dev CLI traduce archivos .strings de Xcode preservando la estructura clave-valor, comentarios y convenciones de localización de iOS. La CLI funciona con proyectos y flujos de trabajo de Xcode más antiguos, mantiene el contexto del desarrollador e instrucciones en comentarios, preserva los especificadores de formato de iOS como %@ y %d, maneja correctamente las codificaciones UTF-16 y UTF-8, y se integra con los flujos estándar de localización de iOS.

Configuración rápida

Configuración para archivos strings heredados de Xcode:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xcode-strings": {
      "include": ["Resources/[locale].lproj/Localizable.strings"]
    }
  }
}

Recordatorio: [locale] es un marcador de posición que debe permanecer literalmente en la configuración, ya que se reemplaza con el locale real durante la ejecución de la CLI.

Traducir archivos Strings

npx lingo.dev@latest i18n

Preserva el formato de archivos strings, comentarios de desarrolladores y convenciones específicas de iOS mientras traduce los valores.

Estructura de archivos Strings

Pares clave-valor básicos

/* Navegación principal */
"nav.home" = "Inicio";
"nav.settings" = "Ajustes";
"nav.profile" = "Perfil";

/* Autenticación */
"auth.login" = "Iniciar sesión";
"auth.logout" = "Cerrar sesión";
"auth.register" = "Registrarse";

Especificadores de formato

/* Mensajes de usuario con marcadores de posición */
"welcome.user" = "¡Bienvenido de nuevo, %@!";
"items.count" = "Tienes %d artículos en tu carrito";
"download.progress" = "Descargando... %.1f%% completado";

Strings multilínea

/* Contenido extenso */
"terms.agreement" = "Al usar esta aplicación, aceptas nuestros términos de servicio y política de privacidad. Por favor, léelos cuidadosamente antes de continuar.";

"help.description" = "Esta función te ayuda a gestionar tus tareas de manera eficiente. Puedes crear, editar y organizar tus elementos de trabajo.";

Características específicas de iOS

Comentarios de localización

/* Aparece en la barra de pestañas en la parte inferior */
"tab.home" = "Inicio";

/* Texto del botón para enviar un formulario */
"button.submit" = "Enviar";

/* Mensaje de error cuando la red no está disponible */
"error.network" = "Por favor, comprueba tu conexión a internet";

Los comentarios del desarrollador proporcionan contexto para los traductores.

Caracteres especiales

/* Cadenas con comillas y caracteres especiales */
"message.quote" = "Ella dijo, \"¡Hola!\"";
"path.file" = "Documents\\MyFile.txt";
"symbol.copyright" = "© 2024 Company Name";

Se preserva el escape adecuado para comillas y barras invertidas.

Integración con Storyboard

/* Localizaciones de Storyboard */
"A8K-3L-9X7.text" = "Bienvenido";
"B9M-4N-0Y8.placeholder" = "Introduce tu nombre";
"C0P-5Q-1Z9.title" = "Ajustes";

Las claves generadas por Interface Builder se manejan correctamente.

Configuración avanzada

Múltiples archivos de cadenas

"xcode-strings": {
  "include": [
    "Resources/[locale].lproj/Localizable.strings",
    "Resources/[locale].lproj/InfoPlist.strings"
  ]
}

Bloquear claves del sistema

"xcode-strings": {
  "include": ["Resources/[locale].lproj/Localizable.strings"],
  "lockedKeys": ["CFBundleName", "CFBundleDisplayName"]
}