Aprenda a configurar la internacionalización en Java, traducir archivos .properties y automatizar su flujo de trabajo de localización en Java.
Cómo funciona la internacionalización de Java
El sistema de i18n de Java se basa en dos elementos:
.propertiesarchivos que almacenan sus cadenas traducidas- La clase
ResourceBundleque carga el archivo correcto en tiempo de ejecución según la configuración regional del usuario
Cuando se ejecuta su aplicación, ResourceBundle comprueba la configuración regional del usuario y carga automáticamente el archivo correspondiente. Si falta una traducción, recurre al archivo predeterminado para que nada falle.
Llamar a una cadena en el código es sencillo:
ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.FRENCH);
String greeting = bundle.getString("welcome.message");Ese es todo el mecanismo. El resto del trabajo de localización se realiza en los propios archivos .properties, por lo que estructurarlos correctamente es importante.
Configuración de su paquete de recursos
Un paquete de recursos es un conjunto de archivos .properties que comparten un nombre base común. El nombre base es la parte del nombre del archivo anterior al sufijo de configuración regional, y es lo que ResourceBundle.getBundle() utiliza para encontrar el archivo correcto en tiempo de ejecución.
messages.properties # default (usually English)
messages_fr.properties # French
messages_de.properties # German
messages_es.properties # Spanish
Aquí, messages es el nombre base. Puede asignarle cualquier nombre, pero debe reflejar lo que contiene el archivo. Las aplicaciones más grandes suelen utilizar varios paquetes de recursos para mantener todo organizado:
src/main/resources/
messages.properties
errors.properties
emails.propertiesJava espera un patrón de nomenclatura específico: basename_language.properties o basename_language_COUNTRY.properties para variantes regionales.
messages_fr.properties # French
messages_fr_CA.properties # French (Canada)
messages_pt_BR.properties # Portuguese (Brazil)Los códigos de idioma siguen la norma ISO 639-1 y los códigos de país siguen la norma ISO 3166-1. Si utiliza un formato incorrecto, ResourceBundle no encontrará el archivo en tiempo de ejecución.
Estructuración de archivos .properties de Java
Cada línea de un archivo .properties es un par clave-valor separado por =.
welcome.message = Welcome to our application
error.login.invalid_credentials = Invalid username or password
form.submit.button = SubmitAdemás de utilizar pares clave-valor, es importante saber que la forma en que escribe su archivo de origen afecta directamente a la calidad de sus traducciones. Ciertas prácticas recomendadas siempre se aplican, independientemente de si está traduciendo manualmente o utilizando una herramienta de traducción de IA como PTC.
1
Utilice claves claras y descriptivas
Las claves deben dejar claro dónde y cómo se utiliza una cadena. Esto es importante cuando gestiona cientos de cadenas en varios archivos.
Uso incorrecto de claves:
btn1 = Submit
msg2 = ErrorUso correcto de claves:
form.submit.button = Submit
error.login.invalid_credentials = Invalid username or password2
Utilice placeholders para contenido dinámico
Escriba la frase completa en su archivo .properties y utilice marcadores de posición numerados para el contenido variable en lugar de concatenar cadenas en el código.
Incorrecto (en código):
"Hello, " + username + "! You have " + count + " new messages."
Correcto (en archivo .properties):
dashboard.greeting = Hello, {0}! You have {1} new messages.Muchos idiomas cambian el orden de las palabras y las reglas de concordancia, por lo que dividir las frases en fragmentos hace imposible una traducción correcta.
3
Gestión de la pluralización con ChoiceFormat
Algunas cadenas cambian según un valor numérico. En lugar de escribir claves separadas para singular y plural, utilice un patrón ChoiceFormat directamente en su archivo .properties:
messages.count = {0,choice,0#no messages|1#one message|1<{0} messages}
Java procesa este patrón en tiempo de ejecución y devuelve la forma correcta según el valor pasado.
4
Escape de caracteres especiales
Caracteres como =, :, # y \ tienen un significado especial en los archivos .properties:
=o:separa las claves de los valores#o!inicia un comentario\introduce secuencias de escape (como\npara nueva línea)
Si necesita utilizar estos caracteres en una cadena, escápelos con una barra invertida.
support.link = Visit us at https\://support.example.com5
Guarde los archivos en UTF-8
Guarde siempre .properties los archivos en UTF-8. De lo contrario, los caracteres no ASCII se corrompen y las traducciones se vuelven ilegibles.
6
Mantenga todo el texto visible para el usuario fuera de su código
Si una cadena es visible para los usuarios, pertenece a un .properties archivo. Las cadenas codificadas no se traducirán y su aplicación terminará mostrando una mezcla de idiomas.
Otras consideraciones sobre la localización de Java
No todo lo que necesita localizarse se encuentra en un archivo .properties. Las fechas, horas, números y valores de moneda se formatean en el código en tiempo de ejecución, y hacerlo correctamente es tan importante como sus cadenas traducidas.
Java proporciona clases integradas para esto:
DateTimeFormatterpara formato de fecha y hora según la configuración regionalNumberFormatpara números, porcentajes y valores de moneda
Dado que esta guía se centra en los archivos .properties y su traducción, no los cubriremos en profundidad aquí. La documentación oficial de Java para DateTimeFormatter y NumberFormat es un buen punto de partida.
Traducción de archivos .properties de Java
Como muestran los ejemplos anteriores, internacionalizar correctamente una aplicación Java requiere esfuerzo. Estructurar correctamente los paquetes de recursos, gestionar los placeholders y la pluralización, todo debe estar correcto antes de que la traducción pueda siquiera comenzar. PTC está diseñado para encargarse a partir de ese punto.
¿Por qué PTC?
PTC es un sistema de traducción con IA diseñado para equipos de software. Comprende su producto, su terminología y su audiencia. Con PTC, obtendrá:
- Traducciones conscientes del contexto — PTC lee su estructura de archivos y descripciones para traducir cadenas con precisión, no literalmente
- Preservación de placeholders y formatos — sus patrones
{0},{1}y cadenasChoiceFormatse mantienen intactos - Precios de pago por uso — sin cuotas de suscripción mensuales y una calculadora de precios para que conozca sus costes antes de comprometerse
- Integración con Git y CI/CD — conecte su repositorio y mantenga las traducciones sincronizadas automáticamente
- Prueba gratuita — 20.000 palabras en dos idiomas, sin necesidad de tarjeta de crédito
Primeros pasos
- Regístrese para una prueba gratuita
- Cargue su archivo
.propertiesde origen y configure las rutas de salida de la traducción - Seleccione sus idiomas de destino
- Añada una breve descripción de su aplicación y su audiencia
- Descargue sus archivos traducidos desde la pestaña Archivos de recursos y añádalos a
src/main/resources
La configuración completa lleva unos 5 minutos. Para una guía detallada, consulte la Guía de inicio rápido.
Un flujo de trabajo de traducción continua para proyectos Java
Traducir su archivo .properties una vez es sencillo. ¿Qué pasa con mantener las traducciones actualizadas a medida que evoluciona su aplicación? Cada vez que añade una nueva cadena, actualiza el texto existente o elimina una clave, sus archivos traducidos deben reflejar ese cambio.
Hacer esto manualmente significa exportar archivos, enviarlos para traducción, esperar y reintegrarlos cada vez, por lo que la mayoría de los equipos terminan automatizándolo.
PTC ofrece dos formas de automatizar el proceso de traducción:
Integración de Git
Conecte su repositorio de GitHub, GitLab o Bitbucket a PTC y este supervisará su archivo de origen .properties para detectar cambios. Cuando se añada o actualice una cadena, PTC la traducirá automáticamente y entregará los archivos de traducción actualizados mediante una pull request. Sus traducciones se mantienen sincronizadas sin pasos manuales.
Integración de CI/CD
Si prefiere mantener todo dentro de su proceso de compilación existente, la API de PTC le permite cargar su archivo de origen y recuperar traducciones como parte de su trabajo de CI. Cada compilación produce traducciones actualizadas automáticamente.
Ambos enfoques significan que añadir un nuevo idioma más adelante es solo un cambio de configuración, no un nuevo proceso manual.

¿Listo para localizar su aplicación Java?
Sus archivos .properties son la base de su flujo de trabajo de localización de Java. Estructúrelos correctamente, mantenga sus traducciones sincronizadas y su aplicación podrá admitir nuevos idiomas sin ralentizar su ciclo de lanzamiento.
Si aún no ha probado PTC, la prueba gratuita es un buen punto de partida. 20.000 palabras, dos idiomas, sin necesidad de tarjeta de crédito.


Traducción de Java con IA
Obtenga traducciones contextualizadas en minutos
Cargue archivos o automatice mediante la API o la integración de Git