Lingo.dev + .properties (Java)

Lingo.dev CLI traduce archivos .properties de Java preservando la estructura de clave-valor, secuencias de escape y convenciones de localización de Java. La CLI funciona perfectamente con el sistema ResourceBundle de Java, mantiene exactamente el formato del archivo properties, maneja correctamente el escape de Unicode y caracteres especiales, preserva los marcadores {0}, {1} para MessageFormat, y se integra con los procesos de compilación de Maven y Gradle.

Configuración rápida

Configuración para archivos properties de Java:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "properties": {
      "include": ["src/main/resources/messages_[locale].properties"]
    }
  }
}

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

Traducir archivos Properties

npx lingo.dev@latest i18n

Preserva el formato del archivo properties, las secuencias de escape y las convenciones específicas de Java mientras traduce los valores.

Estructura del archivo Properties

Pares clave-valor básicos

welcome.message=Bienvenido a nuestra aplicación
login.button=Iniciar sesión
logout.button=Cerrar sesión
error.invalid.credentials=Nombre de usuario o contraseña inválidos

Organización de espacios de nombres


# Mensajes de autenticación

auth.login.title=Iniciar sesión
auth.login.subtitle=Introduce tus credenciales
auth.register.title=Crear cuenta
auth.forgot.password=¿Olvidaste tu contraseña?

# Elementos de navegación

nav.home=Inicio
nav.dashboard=Panel de control
nav.settings=Configuración

Marcadores de MessageFormat

welcome.user=¡Bienvenido de nuevo, {0}!
items.count=Tienes {0} artículos en tu carrito
validation.min.length=El campo debe tener al menos {0} caracteres
date.format=Hoy es {0,date,short}

Características específicas de Java

Secuencias de escape Unicode

japanese.greeting=\u3053\u3093\u306b\u3061\u306f
euro.symbol=Precio: 100\u20ac

Los escapes Unicode se preservan durante la traducción.

Continuación de línea

long.message=Este es un mensaje muy largo que \
    abarca múltiples líneas para mejor \
    legibilidad en el archivo fuente

Escape de caracteres especiales

file.path=C:\\Users\\Documents\\file.txt
key.with.spaces=clave\ con\ espacios=valor con espacios
special.chars=Contiene signos \= igual y \: dos puntos

Configuración avanzada

Múltiples archivos de propiedades

"properties": {
  "include": [
    "src/main/resources/messages_[locale].properties",
    "src/main/resources/validation_[locale].properties"
  ]
}

Bloquear claves de configuración

"properties": {
  "include": ["src/main/resources/messages_[locale].properties"],
  "lockedKeys": ["app.version", "build.timestamp", "api.endpoint"]
}