ManuceTraduire un fichierTraduire une application Angular en italien

Traduire une application Angular en italien

Pour traduire une application Angular en italien, on traduit le fichier produit par <code>ng extract-i18n</code>, le messages.xlf. Manuce remplit les cibles en italien, conserve les balises d'interpolation et vous rend le même fichier XLIFF, prêt à devenir votre messages.it.xlf. Un rapport indique les chaînes traduites et celles laissées telles quelles, avec la raison.

Déposer mon fichier Voir les tarifs

Combien ça coûte

Pour les fichiers de langue d'une application Angular totalisant environ 2 500 mots, vers l’italien :

Essentiel
15 €

Comprendre, usage interne.

Professionnel
45 €

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

Premium
88 €

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.

Du messages.xlf au messages.it.xlf

Angular ne traduit pas à l'exécution : les textes marqués i18n dans les gabarits et $localize dans le code sont extraits par ng extract-i18n dans un fichier messages.xlf, en XLIFF 1.2 ou 2.0. Chaque unité contient une source, et c'est la cible qui doit être remplie en italien.

Exemple en XLIFF 1.2 :

  • source : Bonjour <x id="INTERPOLATION" equiv-text="{{ name }}"/>, vous avez un nouveau message
  • cible : Buongiorno <x id="INTERPOLATION" equiv-text="{{ name }}"/>, ha un nuovo messaggio

La balise <x/> (ou <ph/> en XLIFF 2.0) représente la variable : elle doit rester intacte, sinon la compilation de la version italienne échoue ou affiche un texte tronqué. C'est précisément ce que Manuce contrôle sur chaque valeur.

Ce que l'italien change dans vos chaînes Angular

Le registre. Une interface en italien s'adresse à l'utilisateur soit avec le Lei formel (« Inserisca la password », « Ha dimenticato la password ? »), soit avec le tu (« Inserisci la password »). Le Lei est le choix courant pour une application professionnelle, bancaire ou administrative. Ce qui compte, c'est de ne pas mélanger les deux d'un écran à l'autre.

Les articles devant une variable. L'article italien dépend du mot qui suit : il file, l'account, lo smartphone. Une chaîne comme Supprimer le {{ item }} ne peut pas se traduire correctement si la variable change de nom. Mieux vaut une source du type Élément à supprimer : {{ item }}.

Le genre. « Benvenuto » ou « Benvenuta » ? Avec un prénom en variable, prévoyez une expression ICU select, ou une tournure neutre comme « Le diamo il benvenuto ».

Les pluriels. Le CLDR donne à l'italien les catégories one, many et other. La catégorie many ne concerne que des cas particuliers, comme les grands nombres en notation compacte (« 1 milione di… »). Pour la plupart des messages, une expression ICU comme {count, plural, =0 {Nessun messaggio} one {1 messaggio} other {… messaggi}} suffit. Les branches existantes sont traduites, mais l'expression n'est pas restructurée.

L'orthographe. L'italien distingue è (accent grave) et perché (accent aigu). La majuscule s'écrit È et non « E' ». Les jours et les mois prennent une minuscule (lunedì, marzo). Les libellés ne mettent pas de majuscule à chaque mot : on écrit « Impostazioni account » et non « Impostazioni Account ».

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

Vous recevez le même fichier, dans le même format. L'indentation, l'ordre des unités, les guillemets, les commentaires, les fins de ligne, l'encodage et le BOM sont conservés : seules les cibles changent. Chaque valeur traduite est comparée à sa source (variables, balises). En cas d'écart persistant, la valeur source est gardée et le rapport le signale. Vous savez donc quelles chaînes restent en français et pourquoi.

Ne sont pas traduits : les identifiants (@@submitButton), les valeurs vides, les URL, les adresses email, les nombres, les couleurs, les formats de date et tout ce qui est marqué non traduisible. Le prix porte sur les mots des valeurs, balises et clés exclues.

Ce que Manuce ne fait pas :

  • Il ne traduit pas un texte écrit en dur dans un gabarit sans attribut i18n : ce texte n'est pas dans le fichier.
  • Il ne modifie ni angular.json ni la configuration de la locale it.
  • Il ne teste pas l'affichage dans l'application.
  • Il ne produit pas de traduction assermentée. Si vos conditions générales en italien doivent avoir une valeur juridique, faites-les valider à part.

Pour des libellés visibles par vos utilisateurs italiens, le niveau Professionnel est celui qui est prévu pour un texte prêt à transmettre.

Préparer l'extraction et vérifier la version italienne

Avant l'extraction :

  • Ajoutez un sens et une description aux chaînes ambiguës, par exemple i18n="bouton|Envoi du formulaire de contact@@sendButton". Le traducteur ne voit pas l'écran : « Envoyer » peut devenir « Invia », alors que « Ouvrir » peut se traduire par « Apri » ou « Aperto » selon le contexte.
  • Fixez des identifiants personnalisés (@@…) : une modification mineure du texte source ne fera alors pas perdre la traduction.
  • Vérifiez que les messages du code TypeScript passent bien par $localize.

Après la livraison :

  • Lisez le rapport et traitez les chaînes laissées en source.
  • Recherchez dans le fichier les apostrophes droites placées après un E majuscule (« E' »).
  • Contrôlez les boutons étroits. Si votre source est en anglais, l'italien est souvent plus long : « Settings » devient « Impostazioni ».
  • Les dates, les nombres et les devises ne viennent pas de la traduction mais des données de la locale it : virgule décimale, point des milliers, mois en minuscules. Vérifiez qu'elles sont bien chargées pour les pipes date, number et currency.

En pratique

  1. Lancez ng extract-i18n pour obtenir messages.xlf (XLIFF 1.2 ou 2.0).
  2. Déposez le fichier sur Manuce, choisissez l'italien et lisez le devis calculé sur les mots des valeurs.
  3. Consultez l'extrait gratuit pour juger le registre, puis lancez la traduction.
  4. Récupérez le fichier traduit et le rapport, puis enregistrez le fichier sous messages.it.xlf dans votre projet.
  5. Compilez la locale it et vérifiez les écrans, les pluriels et les formats de date.

Questions fréquentes

Le Lei ou le tu pour mon application ?

Le Lei est l'usage attendu pour une application professionnelle, administrative ou financière. Le tu se rencontre dans les applications grand public au ton familier. Indiquez votre choix dans la description de vos chaînes et gardez-le partout.

Les balises x et ph de mon fichier XLIFF seront-elles conservées ?

Oui. Chaque cible est comparée à sa source. Si une variable ou une balise manque et que l'écart persiste, la valeur source est gardée et le rapport l'indique, pour que la compilation ne casse pas.

Dois-je ajouter une branche many à mes expressions ICU de pluriel ?

Ce n'est généralement pas nécessaire. En italien, la catégorie many ne concerne que des cas particuliers, comme les grands nombres en notation compacte. Les branches =0, one et other couvrent la plupart des messages. Manuce traduit les branches présentes sans en ajouter.

Pourquoi certains textes de mon application restent-ils en français ?

Ils ne figurent sans doute pas dans le messages.xlf : texte écrit en dur sans attribut i18n, ou chaîne TypeScript sans $localize. Marquez-les, relancez l'extraction et déposez le nouveau fichier.

Les identifiants et les URL sont-ils comptés dans le prix ?

Non. Le prix porte uniquement sur les mots des valeurs. Les clés, identifiants et balises sont exclus. Les URL, adresses email et nombres ne sont pas traduits.

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