Traduire une application Laravel en anglais
Déposez le fichier <code>lang/fr.json</code> de votre application Laravel : Manuce rend le même fichier avec les valeurs en anglais, clés, paramètres <code>:name</code> et mise en forme intacts, prêt à enregistrer sous <code>lang/en.json</code>. Un rapport liste les chaînes traduites et celles laissées telles quelles, avec la raison.
Combien ça coûte
Pour les fichiers de langue d'une application Laravel totalisant environ 2 500 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 qui change quand une interface Laravel passe à l’anglais
L’anglais raccourcit en général le texte de 10 à 15 % par rapport au français : les boutons et colonnes de vos vues Blade débordent rarement. Les vrais points d’attention sont ailleurs.
- Britannique ou américain. Décidez avant de commander : colour ou color, cancelled ou canceled, organisation ou organization. Le choix se reflète aussi dans le nom du fichier si vous distinguez les variantes (
en_GB.json,en_US.json) ou si vous gardez un simpleen.json. - Pluriels. L’anglais n’a que deux catégories, one et other, comme le français, mais elles ne se répartissent pas pareil : en français, zéro prend le singulier (« 0 article »), en anglais le pluriel (« 0 items »). Avec la forme courte
article|articles, Laravel applique la règle de la locale active. Avec des intervalles explicites comme{0} Aucun article|{1} :count article|[2,*] :count articles, ce sont vos bornes qui décident : elles restent valables en anglais. - Ponctuation. L’espace avant les deux-points disparaît :
Total :devientTotal:. Les guillemets « » deviennent “ ” ou ‘ ’. - Majuscules. L’usage américain met souvent une majuscule à chaque mot des titres et boutons (Save Changes), l’usage britannique s’en tient plus volontiers à la première (Save changes). Indiquez la convention de votre interface pour rester cohérent avec les messages déjà en anglais.
Paramètres, clés et balises : là où une application casse
Dans un fichier JSON Laravel, la clé est souvent la phrase source elle-même, appelée dans le code par __('Bienvenue sur votre espace'). Cette clé n’est pas traduite : seule la valeur change, et l’appel continue de fonctionner une fois la locale passée en anglais.
Les paramètres de remplacement doivent revenir à l’identique, y compris leur casse, car Laravel distingue :name, :Name (première lettre en majuscule) et :NAME (tout en majuscules). Leur place, en revanche, peut bouger avec la syntaxe anglaise :
"Bonjour :name, vous avez :count messages"→"Hello :name, you have :count messages""Commande n° :id expédiée le :date"→"Order :id shipped on :date"
Les valeurs contenant du HTML, par exemple Lisez les <a href=":url">conditions</a>, gardent leurs balises et leur attribut :url. Chaque valeur traduite est comparée à la source sur ces variables et balises ; si un écart persiste, Manuce garde la valeur source plutôt que de livrer une chaîne qui casserait la page, et le rapport le signale.
Un cas propre à l’anglais : si vos clés sont déjà des phrases anglaises (__('Save changes')), Laravel affiche la clé quand la traduction manque. Le fichier en.json n’est alors utile que pour les clés en français ou abstraites, comme dashboard.empty_state.
Ce que Manuce rend, et ce qu’il ne fait pas
Vous recevez le même fichier, dans le même format : indentation, ordre des clés, guillemets, fins de ligne, encodage et éventuel BOM sont conservés ; seules les valeurs changent. Un git diff entre fr.json et le fichier livré ne montre donc que des lignes de valeurs.
Ne sont pas traduits : les clés, les valeurs vides, les URL, les adresses email, les nombres, les couleurs, les formats de date (un d/m/Y reste d/m/Y), les identifiants et tout ce que vous avez marqué non traduisible. Le rapport livré liste les chaînes traduites et celles laissées telles quelles, avec la raison.
Le devis porte sur les mots des valeurs uniquement, clés et balises exclues : dans un fichier où chaque clé répète la phrase française, vous ne payez pas deux fois.
Limites à connaître :
- Les fichiers en tableaux PHP (
lang/fr/messages.php) ne sont pas pris en charge ; il faut les convertir en JSON. - Les textes écrits en dur dans les vues Blade ou les contrôleurs ne sont pas dans le fichier de langue et ne seront donc pas traduits.
- Manuce ne produit pas de traduction assermentée : pour des conditions générales ayant une valeur juridique, faites relire le texte anglais par un juriste.
Préparer le fichier et vérifier après livraison
Avant le dépôt. Si vos chaînes sont réparties dans lang/fr/*.php, aplatissez-les dans un JSON : 'welcome' => 'Bienvenue' du fichier messages.php devient "messages.welcome": "Bienvenue". Laravel cherche d’abord la clé complète dans le fichier JSON de la locale, ce qui permet en général de garder vos appels __('messages.welcome') ; testez-le sur une page avant de généraliser. Les messages de validation, d’authentification et de pagination fournis par le framework existent déjà en anglais : inutile de les faire traduire, seules vos propres chaînes comptent.
Après la livraison.
- Enregistrez le fichier sous
lang/en.json(ouen_GB.json) et vérifiez la locale et la locale de repli dans la configuration de l’application. - Affichez les écrans qui utilisent
trans_choiceavec 0, 1 et 2 éléments pour contrôler les pluriels. - Les formats de date restent ceux de la source : si vous visez un public américain, passez vous-même
d/m/Yenm/d/Y. - Lisez le rapport et reprenez à la main les chaînes gardées en français.
En pratique
- Rassemblez vos chaînes dans lang/fr.json, en convertissant au besoin les fichiers PHP en JSON.
- Déposez le fichier, précisez anglais britannique ou américain et consultez le devis et l’extrait gratuit.
- Choisissez le niveau, payez, puis récupérez le fichier traduit et son rapport dans votre espace client.
- Enregistrez-le sous lang/en.json, réglez la locale et testez pluriels, paramètres et liens.
Questions fréquentes
Mes traductions sont dans lang/fr/messages.php : puis-je les envoyer telles quelles ?
Non, les fichiers en tableaux PHP ne sont pas pris en charge. Convertissez-les en un fichier JSON en reprenant les clés sous la forme messages.welcome. Vous recevrez ce JSON traduit, au même format.
Faut-il faire traduire validation.php, auth.php et passwords.php ?
Pour l’anglais, non : Laravel fournit ces messages en anglais d’origine. Seules les chaînes propres à votre application, et les messages de validation que vous avez personnalisés, sont à traduire.
Les paramètres comme :name ou :count risquent-ils d’être modifiés ?
Chaque valeur traduite est comparée à la source sur ses variables et balises. Si un écart persiste, la valeur française est gardée et le rapport l’indique, pour que vous la repreniez à la main plutôt que de découvrir une erreur en production.
Anglais britannique ou américain : lequel choisir ?
Celui de votre public principal. Le choix touche l’orthographe (colour, color) et l’usage des majuscules dans les boutons. Les formats de date de votre fichier ne sont pas traduits : adaptez-les vous-même si vous visez les États-Unis.
Combien de temps faut-il pour un fichier de quelques milliers de mots ?
Pour un fichier de langue courant, la traduction est livrée en quelques minutes. Le devis s’affiche au dépôt, calculé sur les mots des valeurs seulement, sans les clés ni les balises.
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.