ManuceTraduire un fichierTraduire une application Symfony en anglais

Traduire une application Symfony en anglais

Déposez vos fichiers de traduction Symfony (messages.fr.xlf, validators.fr.yaml…) : Manuce vous rend le même fichier, au même format, avec les valeurs traduites en anglais et les clés intactes. Les paramètres %name% et {name} sont vérifiés chaîne par chaîne, et un rapport indique ce qui a été traduit et ce qui a été laissé tel quel.

Déposer mon fichier Voir les tarifs

Combien ça coûte

Pour les fichiers de langue d'une application Symfony totalisant environ 3 000 mots, vers l’anglais :

Essentiel
18 €

Comprendre, usage interne.

Professionnel
54 €

Prêt à transmettre, par le spécialiste technique.

Premium
105 €

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.

Quels fichiers déposer pour une application Symfony

Dans un projet Symfony, les textes de l’interface vivent dans le dossier translations/, un fichier par domaine et par langue : messages.fr.xlf, validators.fr.yaml, security.fr.xlf, ou leurs variantes ICU comme messages+intl-icu.fr.xlf. Manuce prend en charge les deux formats courants, XLIFF et YAML.

  • messages : libellés, boutons, titres, courriels générés par vos gabarits Twig.
  • validators : vos messages de contraintes personnalisés. Les messages des contraintes intégrées de Symfony existent déjà en anglais dans le composant ; inutile de les payer une seconde fois.
  • security : messages d’authentification, souvent déjà fournis eux aussi.

Avant de déposer, lancez php bin/console translation:extract --dump-messages fr ou debug:translation fr pour repérer les chaînes encore écrites en dur dans vos gabarits : Manuce ne traduit que ce qui se trouve dans les fichiers, pas le code Twig ni le PHP.

Du français à l’anglais : ce qui change dans vos chaînes

L’anglais est en général 10 à 15 % plus court que le français : « Enregistrer les modifications » devient « Save changes ». Les débordements de boutons sont donc rares, mais les libellés très courts peuvent paraître abrupts ; vérifiez les menus.

  • Le zéro au pluriel. En français, 0 relève du singulier (« 0 article ») ; en anglais, 0 est au pluriel (« 0 items »). Les catégories CLDR de l’anglais sont one et other. Dans un message ICU, {count, plural, one {# article} other {# articles}} donne {count, plural, one {# item} other {# items}} et Symfony choisit la bonne forme. Avec l’ancienne syntaxe à barres, contrôlez les intervalles explicites comme {0} Aucun article|{1} Un article|]1,Inf[ %count% articles : ils doivent rester cohérents en anglais.
  • La ponctuation. Les espaces insécables françaises avant « : ; ? ! » et les guillemets « » disparaissent : « Mot de passe : » devient « Password: ».
  • Britannique ou américain. colour/color, cancelled/canceled, et la capitale de titre (« Create Your Account », plus fréquente aux États-Unis) contre la capitale de phrase (« Create your account »). Choisissez avant de commencer et contrôlez sur l’extrait gratuit.
  • Les dates. Un format comme d/m/Y stocké dans une valeur n’est pas traduit : pour un public américain, passez-le vous-même en m/d/Y, ou mieux, formatez via le filtre Twig format_date selon la locale.

Ce que Manuce rend exactement, et ce qu’il ne fait pas

Vous récupérez le même fichier : indentation, ordre des clés, guillemets, commentaires, fins de ligne, encodage et BOM conservés. Seules les valeurs changent. Dans user.greeting: 'Bonjour %name%', la clé reste, %name% reste, et seule la valeur devient 'Hello %name%'.

  • Chaque valeur traduite est comparée à la source (paramètres %name% et {name}, balises). En cas d’écart persistant, la valeur source est gardée et le rapport le signale.
  • Ne sont pas traduits : les clés, les valeurs vides, les URL, les adresses électroniques, les nombres, les couleurs, les formats de date, les identifiants et tout ce qui est marqué non traduisible.
  • Le prix porte sur les mots des valeurs uniquement, clés et balises exclues : des clés longues comme checkout.payment.error.card_declined ne coûtent rien.

Manuce ne renomme pas votre configuration, ne touche pas à translation.yaml et ne traduit pas les textes écrits en dur dans le code. Il ne produit pas non plus de traduction assermentée : si vos conditions générales doivent être certifiées, il faut un traducteur expert.

Préparer, puis vérifier avant la mise en production

  1. Marquez ce qui ne doit pas bouger : noms de marque, codes, valeurs techniques.
  2. Après livraison, enregistrez le fichier sous messages.en.xlf (ou .yaml). Pour une variante britannique distincte, un messages.en_GB.yaml peut ne contenir que les écarts, Symfony se repliant sur en pour le reste.
  3. En XLIFF, l’attribut target-language reste celui de la source, puisque le fichier est rendu à l’identique : ajustez-le si un outil de votre chaîne le lit.
  4. Lancez php bin/console lint:yaml translations ou lint:xliff translations : une apostrophe anglaise (« Don’t ») dans une valeur entre guillemets simples doit rester valide.
  5. Ajoutez en à enabled_locales, videz le cache, puis contrôlez debug:translation en pour voir les chaînes manquantes.

Lisez enfin le rapport : chaque chaîne laissée en français y figure avec la raison, ce qui vous dit précisément où regarder.

En pratique

  1. Rassemblez les fichiers du dossier translations/ dans la langue source (messages, validators personnalisés…).
  2. Déposez-les sur Manuce : le devis s’affiche sur le nombre exact de mots des valeurs.
  3. Vérifiez l’extrait gratuit, notamment la variante britannique ou américaine.
  4. Récupérez le fichier traduit et son rapport, renommez-le en messages.en.xlf ou .yaml.
  5. Lancez lint:xliff ou lint:yaml puis debug:translation en avant de déployer.

Questions fréquentes

Mes clés sont en français, par exemple « Connexion » utilisé comme clé : sont-elles traduites ?

Non, les clés ne sont jamais traduites, seules les valeurs le sont. Si vous utilisez le texte source comme clé, votre fichier anglais gardera ces clés françaises, ce qui est normal pour Symfony. Le prix ne les compte pas.

Les pluriels avec %count% fonctionnent-ils en anglais ?

Le paramètre %count% est vérifié comme les autres. L’anglais n’a que deux formes, one et other, et 0 prend la forme plurielle, contrairement au français. Relisez les messages qui utilisent des intervalles explicites comme {0} ou {1}.

Faut-il aussi traduire validators.fr.xlf ?

Seulement pour vos messages de contraintes personnalisés. Les messages des contraintes intégrées sont déjà disponibles en anglais dans Symfony ; ne déposez que vos propres entrées pour ne pas payer de mots inutiles.

Que se passe-t-il si un paramètre comme {username} disparaît à la traduction ?

Chaque valeur traduite est comparée à la source. Si l’écart persiste, la valeur française est conservée telle quelle et le rapport l’indique, pour que votre application ne casse pas sur un paramètre manquant.

Le fichier rendu est-il directement utilisable ?

Oui, c’est le même fichier, au même format, avec la même indentation, le même encodage et les mêmes commentaires. Il vous reste à le nommer avec le suffixe en et à activer la locale dans votre configuration.

Le spécialiste qui s’en charge

Ce sujet est confié à Dédale, le spécialiste technique. Voir comment il travaille.

Testez sur votre fichier, gratuitement

Un extrait de votre fichier traduit au niveau choisi, avant tout paiement. Vous jugez, puis vous décidez.

Déposer mon fichier