Découvrez comment configurer l’internationalisation Java, traduire des fichiers .properties et automatiser votre workflow de localisation Java.
Comment fonctionne l’internationalisation Java
Le système i18n de Java repose sur deux éléments :
.propertiesdes fichiers qui stockent vos chaînes traduites- La classe
ResourceBundlequi charge le bon fichier à l’exécution en fonction des paramètres régionaux de l’utilisateur
Lorsque votre application s’exécute, ResourceBundle vérifie les paramètres régionaux de l’utilisateur et charge automatiquement le fichier correspondant. Si une traduction manque, il revient au fichier par défaut afin que rien ne se casse.
Appeler une chaîne dans le code est simple :
ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.FRENCH);
String greeting = bundle.getString("welcome.message");C’est tout le mécanisme. Le reste du travail de localisation se fait dans les fichiers .properties eux-mêmes, d’où l’importance de bien les structurer.
Configurer votre ResourceBundle
Un resource bundle est un ensemble de fichiers .properties qui partagent un même nom de base. Le nom de base correspond à la partie du nom de fichier avant le suffixe de paramètres régionaux, et c’est ce que ResourceBundle.getBundle() utilise pour trouver le bon fichier à l’exécution.
messages.properties # default (usually English)
messages_fr.properties # French
messages_de.properties # German
messages_es.properties # Spanish
Ici, messages est le nom de base. Vous pouvez l’appeler comme vous le souhaitez, mais il doit refléter le contenu du fichier. Les applications plus importantes utilisent souvent plusieurs resource bundles pour rester organisées :
src/main/resources/
messages.properties
errors.properties
emails.propertiesJava attend un modèle de nommage spécifique : basename_language.properties ou basename_language_COUNTRY.properties pour les variantes régionales.
messages_fr.properties # French
messages_fr_CA.properties # French (Canada)
messages_pt_BR.properties # Portuguese (Brazil)Les codes de langue suivent la norme ISO 639-1 et les codes de pays la norme ISO 3166-1. Si vous utilisez un format incorrect, ResourceBundle ne trouvera pas le fichier à l’exécution.
Structurer les fichiers .properties Java
Chaque ligne d’un fichier .properties est une paire clé-valeur séparée par =.
welcome.message = Welcome to our application
error.login.invalid_credentials = Invalid username or password
form.submit.button = SubmitAu-delà de l’utilisation de paires clé-valeur, il est important de savoir que la manière dont vous rédigez votre fichier source a un impact direct sur la qualité de vos traductions. Certaines bonnes pratiques s’appliquent toujours, que vous traduisiez manuellement ou que vous utilisiez un outil de traduction IA comme PTC.
1
Utiliser des clés claires et descriptives
Les clés doivent indiquer clairement où et comment une chaîne est utilisée. C’est essentiel lorsque vous gérez des centaines de chaînes réparties sur plusieurs fichiers.
Utilisation incorrecte des clés :
btn1 = Submit
msg2 = ErrorUtilisation correcte des clés :
form.submit.button = Submit
error.login.invalid_credentials = Invalid username or password2
Utiliser des placeholders pour le contenu dynamique
Écrivez la phrase complète dans votre fichier .properties et utilisez des espaces réservés numérotés pour le contenu variable, plutôt que de concaténer des chaînes dans le code.
Incorrect (dans le code) :
"Hello, " + username + "! You have " + count + " new messages."
Correct (dans le fichier .properties) :
dashboard.greeting = Hello, {0}! You have {1} new messages.De nombreuses langues modifient l’ordre des mots et les règles d’accord ; découper les phrases en fragments rend une traduction correcte impossible.
3
Gérer le pluriel avec ChoiceFormat
Certaines chaînes varient en fonction d’une valeur numérique. Au lieu d’écrire des clés séparées pour le singulier et le pluriel, utilisez directement un modèle ChoiceFormat dans votre fichier .properties :
messages.count = {0,choice,0#no messages|1#one message|1<{0} messages}
Java traite ce modèle à l’exécution et renvoie la forme appropriée en fonction de la valeur transmise.
4
Échapper les caractères spéciaux
Des caractères comme =, :, #, et \ ont une signification particulière dans les fichiers .properties :
=ou:sépare les clés des valeurs#ou!démarre un commentaire\introduit des séquences d’échappement (comme\npour un saut de ligne)
Si vous devez utiliser ces caractères dans une chaîne, échappez-les avec une barre oblique inverse.
support.link = Visit us at https\://support.example.com5
Enregistrer les fichiers en UTF-8
Toujours enregistrer les fichiers .properties en UTF-8. Sans cela, les caractères non-ASCII sont corrompus et les traductions deviennent illisibles.
6
Gardez tout le texte destiné aux utilisateurs hors de votre code
Si une chaîne est visible par les utilisateurs, elle doit se trouver dans un fichier .properties file. Les chaînes codées en dur ne seront pas traduites, et votre application finira par afficher un mélange de langues.
Autres considérations de localisation Java
Tout ce qui doit être localisé ne se trouve pas dans un fichier .properties. Les dates, heures, nombres et montants monétaires sont formatés dans le code à l’exécution, et il est tout aussi important de les gérer correctement que vos chaînes traduites.
Java fournit des classes intégrées pour cela :
DateTimeFormatterpour le formatage des dates et heures selon les paramètres régionauxNumberFormatpour les nombres, pourcentages et montants monétaires
Étant donné que ce guide se concentre sur les fichiers .properties et leur traduction, nous ne les aborderons pas en profondeur ici. La documentation Java officielle pour DateTimeFormatter et NumberFormat est un bon point de départ.
Traduire des fichiers .properties Java
Une fois votre fichier source prêt, plusieurs options s’offrent à vous pour le faire traduire. Le bon choix dépend de votre budget, de vos délais et du niveau d’automatisation dont vous avez besoin.
| Option | Délais | Coût | Besoins de maintenance |
| Traducteurs professionnels | De quelques jours à quelques semaines | Élevés | Export manuel, envoi, réception et réintégration à chaque mise à jour |
| Scripts de traduction | Quelques minutes | Faibles | Nécessite une relecture – les espaces réservés peuvent se casser, le contexte des traductions peut être incorrect |
| Traduction IA (comme PTC) | Quelques minutes | Faibles | Des traductions tenant compte du contexte se synchronisent automatiquement via Git ou CI/CD |
Avec PTC, des traductions de qualité humaine sont prêtes en quelques minutes, et il n’y a pas d’abonnement — vous ne payez que ce que vous traduisez. Pour commencer, vous bénéficiez de 20 000 mots traduits en deux langues gratuitement, sans carte de crédit requise.
Après l’inscription, un assistant de configuration vous guide à travers les bases : une brève description de votre application, vos langues cibles et votre fichier .properties. L’ensemble du processus prend environ 5 minutes. Pour un aperçu complet, consultez notre guide de démarrage.
Une fois la traduction terminée par PTC, accédez à l’onglet Resource Files et téléchargez un fichier ZIP contenant les fichiers .properties traduits.
Ajoutez ces fichiers dans le dossier src/main/resources de votre projet, à côté de votre fichier source d’origine. À l’exécution, ResourceBundle sélectionne automatiquement le bon fichier en fonction des paramètres régionaux de l’utilisateur. Vous n’avez pas besoin de modifier votre code.
Maintenir les traductions .properties Java synchronisées
Traduire votre fichier .properties une seule fois est simple. Mais comment maintenir les traductions à jour à mesure que votre application évolue ? Chaque fois que vous ajoutez une nouvelle chaîne, mettez à jour un texte existant ou supprimez une clé, vos fichiers traduits doivent refléter ce changement.
Le faire manuellement implique d’exporter les fichiers, de les envoyer en traduction, d’attendre, puis de les réintégrer à chaque fois — c’est pourquoi la plupart des équipes finissent par automatiser.
PTC offre deux façons d’automatiser le processus de traduction :
Intégration Git
Connectez votre dépôt GitHub, GitLab ou Bitbucket à PTC : il surveillera votre fichier source .properties pour détecter les changements. Lorsqu’une chaîne est ajoutée ou mise à jour, PTC la traduit automatiquement et renvoie les fichiers de traduction mis à jour via une pull request. Vos traductions restent synchronisées sans aucune étape manuelle.
Intégration CI/CD
Si vous préférez tout conserver dans votre processus de build existant, l’API de PTC vous permet de téléverser votre fichier source et de récupérer les traductions dans le cadre de votre job CI. Chaque build produit automatiquement des traductions à jour.
Dans les deux cas, ajouter une nouvelle langue plus tard n’est qu’un changement de configuration, pas un nouveau processus manuel.

Prêt à localiser votre application Java ?
Vos fichiers .properties constituent la base de votre workflow de localisation Java. Adoptez la bonne structure, maintenez vos traductions synchronisées, et votre application pourra prendre en charge de nouvelles langues sans ralentir votre cycle de publication.
Si vous n’avez pas encore essayé PTC, l’essai gratuit est un bon point de départ. 20 000 mots, deux langues, sans carte bancaire.


Traduction Java avec l’IA
Obtenez des traductions contextuelles en quelques minutes
Téléchargez des fichiers, ou automatisez via l’API ou l’intégration Git