Traduire une application Java (Spring) en anglais
Envoyez vos fichiers <code>messages.properties</code> : Manuce traduit les valeurs en anglais et vous rend le même fichier, avec clés, commentaires, encodage et échappements intacts. Les apostrophes de MessageFormat et les variables <code>{0}</code> sont contrôlées, et un rapport liste ce qui n'a pas été traduit, avec la raison.
Combien ça coûte
Pour les fichiers de langue d'une application Java (Spring) totalisant environ 2 000 mots, vers l’anglais :
Comprendre, usage interne.
Prêt à transmettre, par le spécialiste technique.
Relecture croisée. Pour ce qui engage.
Prix pour une langue, mise en page d'origine comprise. TVA non applicable, article 293 B du CGI. Le devis exact, calculé sur le nombre de mots de votre fichier, s'affiche avant paiement.
Ce que l'anglais change dans un fichier messages_en.properties
En passant du français à l'anglais, les libellés raccourcissent en général de 10 à 15 % : Enregistrer les modifications devient Save changes. Les boutons et les colonnes de tableau ne débordent donc pas. D'autres détails demandent en revanche une décision de votre part.
- Ponctuation : l'anglais ne met pas d'espace avant les deux-points ni avant le point d'interrogation.
Adresse e-mail :devientEmail address:. Si votre source contient des espaces insécables écrites\u00a0ou\u202f, vérifiez qu'il n'en reste aucune devant la ponctuation anglaise. - Majuscules : choisissez entre le sentence case (
Save changes) et le title case (Save Changes) pour les boutons et les titres, puis tenez-vous-en à un seul style. - Variante :
colouroucolor,organisationouorganization. Java cherche d'abordmessages_en_US.properties, puis retombe surmessages_en.propertiespour les clés absentes. Un fichier_encomplet, accompagné au besoin d'un petit fichier_en_USne contenant que les clés qui diffèrent, suffit. - Dates : un motif comme
date.pattern=dd/MM/yyyyn'est pas traduit. Pour un public américain, c'est à vous de le passer enMM/dd/yyyy.
Apostrophes, {0} et pluriels : les pièges de MessageFormat
Spring passe par MessageFormat les messages qui reçoivent des arguments. Dans ce cadre, l'apostrophe simple sert de caractère d'échappement et doit être doublée : user.notFound=L''utilisateur {0} n''existe pas. Par défaut, un message sans argument n'est pas analysé de cette façon et garde ses apostrophes simples.
L'anglais élide moins que le français, mais il emploie beaucoup de contractions et de génitifs : {0}''s profile, You don''t have access to {0}. Une apostrophe non doublée dans un message avec argument fait disparaître le texte qui la suit, ou laisse {0} affiché tel quel à l'écran.
Pour les pluriels, l'anglais n'a que deux catégories, one et other, mais la frontière n'est pas la même qu'en français. On écrit « 0 fichier » en français et 0 files en anglais. Une construction comme {0,choice,0#aucun fichier|1#un fichier|1<{0} fichiers} doit garder ses bornes et ses séparateurs ; seuls les textes entre eux changent. Relisez ces chaînes en priorité : une branche mal découpée ne provoque pas toujours d'erreur visible.
Ce que Manuce vous rend, et ce qu'il ne fait pas
Vous déposez messages.properties (ou messages_fr.properties) et vous récupérez le même fichier, dans le même format, avec les valeurs en anglais. Il est prêt à être enregistré sous messages_en.properties dans votre projet.
- L'indentation, l'ordre des clés, les commentaires
#, les fins de ligne, l'encodage et le BOM sont conservés ; seules les valeurs changent. - Les échappements
\uXXXXsont conservés s'ils sont utilisés, les lignes de continuation terminées par\sont respectées et les apostrophes de MessageFormat sont gérées. - Chaque valeur traduite est comparée à la source. Si
{0},{1}ou une balise<b>manque et que l'écart persiste, la valeur française est gardée et le rapport le signale. - Ne sont pas traduits : les clés, les valeurs vides, les URL, les adresses e-mail, les nombres, les couleurs, les formats de date, les identifiants et tout ce que vous marquez comme non traduisible.
- Un rapport accompagne le fichier : chaînes traduites, chaînes laissées telles quelles et pourquoi.
Manuce traite les fichiers de messages, pas votre code. Un texte écrit en dur dans un gabarit Thymeleaf ou dans le message d'une exception Java ne figure pas dans ces fichiers et ne sera donc pas traduit. Le prix porte sur les mots des valeurs, clés et balises exclues : checkout.button.confirm ne compte pas.
Préparer les fichiers et vérifier le résultat
- Rassemblez tout : en plus de
messages.properties, pensez àValidationMessages.propertiessi vous personnalisez les messages de Bean Validation. Leurs paramètres{min}et{max}doivent survivre à la traduction. - Repérez le fichier par défaut : si
messages.propertiesest en français et qu'il n'existe aucun fichier_en, un visiteur anglophone verra du français. Selon votre configuration, Spring peut aussi se rabattre d'abord sur la locale du serveur. - Encodage : Spring Boot lit par défaut les fichiers de messages en UTF-8. Si votre projet a gardé l'ISO-8859-1 et des
\u00e9, le fichier rendu conserve cet encodage et ces échappements : rien à reconvertir. - Test : affichez l'application avec une locale
en, par l'en-têteAccept-Languageou par le paramètre prévu par votreLocaleResolver. Cherchez les{0}non remplacés et les textes restés en français. - Relecture : commencez par les messages
choice, ceux qui contiennent''et les chaînes signalées dans le rapport.
L'extrait gratuit permet de vérifier la variante d'orthographe et le style des majuscules avant de payer. Pour une interface vue par des clients, le niveau Professionnel convient mieux que l'Essentiel, prévu pour un usage interne.
En pratique
- Récupérez messages.properties (et ValidationMessages.properties le cas échéant) dans src/main/resources.
- Déposez le fichier : le devis s'affiche aussitôt, calculé sur les mots des valeurs, avec un extrait gratuit.
- Vérifiez sur l'extrait la variante (colour ou color) et le style des majuscules, puis lancez la traduction.
- Enregistrez le fichier rendu sous messages_en.properties et lisez le rapport.
- Testez l'application en locale en et adaptez vous-même les formats de date si votre public est américain.
Questions fréquentes
Dois-je remplacer mon messages.properties français ?
Non. Gardez-le et ajoutez messages_en.properties à côté. Spring cherche d'abord le fichier de la locale demandée, puis se rabat sur les autres fichiers pour les clés manquantes.
La traduction sera-t-elle en anglais britannique ou américain ?
Vérifiez-le sur l'extrait gratuit avant de payer, en regardant des mots comme colour ou organisation. Si vous visez les deux publics, un fichier _en complet et un fichier _en_US limité aux clés qui diffèrent suffisent, car Java retombe sur _en pour le reste.
Les apostrophes doublées ('') resteront-elles correctes ?
Oui, les apostrophes de MessageFormat sont gérées. Les contractions anglaises comme don''t ou {0}''s sont doublées dans les messages qui reçoivent des arguments. Relisez tout de même les messages choice, où une erreur ne se voit pas toujours.
Les clés sont-elles traduites ou facturées ?
Ni l'un ni l'autre. Les clés restent identiques pour que votre code continue de les trouver, et le prix ne porte que sur les mots des valeurs, clés et balises exclues.
Mon fichier utilise des \u00e9 et de l'ISO-8859-1. Que devient-il ?
L'encodage, le BOM éventuel et les échappements \uXXXX utilisés sont conservés. En anglais, les accents deviennent rares, mais le fichier reste lisible par votre projet sans conversion.
Le spécialiste qui s’en charge
Ce sujet est confié à Dédale, le spécialiste technique. Voir comment il travaille.
Le même fichier, vers une autre langue
Vers l’anglais, d’autres fichiers
À lire aussi
Testez sur votre fichier, gratuitement
Un extrait de votre fichier traduit au niveau choisi, avant tout paiement. Vous jugez, puis vous décidez.