Traducir archivos Java .properties
Un archivo .properties es un conjunto de líneas key=value donde los valores contienen argumentos {0} para MessageFormat. KAERIS traduce los valores, conserva tus comentarios y el orden de las claves, y escribe el archivo en ASCII puro para que Java lo lea en cualquier lugar.
KAERIS ha traducido esta página y revisado cada línea traduciéndola de vuelta. Un hablante nativo aún no la ha revisado. Original en inglés
Cómo se construye un archivo .properties
key=value, key: value o key value, comentarios con # o !, continuación de línea con barra invertida al final. Las versiones antiguas de Java leen los bundles como ISO-8859-1, por lo que el texto no latino se escribe como \uXXXX, que todas las versiones leen.
# Login form login.title=Sign in to {0} login.attempts=You have {0} attempts left cart.total=Total: {0,number,currency} about.url=https\://example.com/about help.text=Need help?\nWrite to [email protected]
Qué tener en cuenta en las traducciones .properties
Argumentos de MessageFormat
{0},{1}y los tipados como{0,number,currency}deben permanecer intactos. En la ejecución real abajo{0,number,currency}se devolvió tipado; un argumento cambiado o perdido sería reportado.Codificación
La salida es ASCII: una “ö” alemana o un carácter japonés se escriben como una secuencia de escape
\u, que todas las versiones de Java leen.Comillas en MessageFormat
En MessageFormat de Java una comilla simple inicia una sección citada, por lo que un patrón que usa argumentos necesita
''para un apóstrofe. Verifica las cadenas con apóstrofes en la aplicación tras traducir.Secuencias de escape y URLs
\nen un valor permanece como salto de línea. Un\:en una URL se escribe de nuevo como dos puntos normales, que también es válido.
Una ejecución real: traducido al alemán y verificado
Una ejecución real, 27 de octubre de 2026, sin ediciones manuales: kaeris translate messages.properties --langs de con kaeris 0.2.35, 3.3 segundos, modelo openai/gpt-4.1-mini (el modelo de reserva del servicio respondió este trabajo). Abajo, el archivo alemán que generó y lo que kaeris check dice sobre él.
# Generated by KAERIS i18n Tool - de # Login form login.title=Anmelden bei {0} login.attempts=Sie haben noch {0} Versuche cart.total=Gesamt: {0,number,currency} about.url=https://example.com/about help.text=Brauchen Sie Hilfe?\nSchreiben Sie an [email protected]
$ kaeris check --source messages.properties --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
Lo que KAERIS hace con él
Comentarios y orden conservados
Las líneas de comentarios, líneas en blanco y el orden de las claves se vuelven a emitir alrededor de los valores traducidos, y se añade un encabezado de una línea con el idioma.
Argumentos contados
Un
{0}perdido o un tipo cambiado se detecta sin modelo.Chequeo gratuito para este formato
El chequeo gratuito en /check lee este formato y funciona sin clave ni cuenta. El comando de terminal
kaeris checktambién lo lee: soporta los 13 formatos desde kaeris 0.2.35, con las mismas reglas y sin enviar nada a ningún lado.
Ejecuta en tres pasos
Instala el CLI
Ejecuta
pip install kaeris.Traducir el bundle
Ejecute
kaeris translate messages.properties --langs de,ja.Verificar el resultado
Suba el archivo fuente y el bundle traducido en la página de verificación gratuita.
pip install kaeris kaeris translate src/main/resources/messages.properties --langs de,ja --verify
Preguntas
¿Escribe en UTF-8 o con escapes \u?
Escapes. El archivo de salida es ASCII, con caracteres no ASCII escritos como \uXXXX.
¿Se conservan mis comentarios?
Sí. Las líneas de comentarios y en blanco del origen se escriben de nuevo en su lugar, y se añade una línea de encabezado con el nombre del idioma.
¿Es gratis?
Sí, sin cuenta: 10.000 caracteres por archivo y hasta 8 idiomas por ejecución. Una clave API gratuita eleva el límite de archivos a 50.000 caracteres. La licencia vitalicia cuesta $79 una vez, con tu propia clave OpenRouter; los planes mensuales empiezan en $19. Precios
¿Puedo ejecutarlo desde la terminal o en CI?
Sí. pip install kaeris, luego kaeris translate messages.properties --langs de,ja. El GitHub Action ejecuta la misma traducción en un pull request. Documentación CLI · GitHub Action
Seguir adelante
Referencia CLI · Referencia de verificación · Traducir en el navegador · Verificación gratuita · Convertir formatos · Pseudo-localización
Otros formatos: JSON · YAML · .po · ARB · XLIFF · .strings · .xcstrings · .resx · CSV · Markdown · Fluent · Android XML