ManuceTraduire un fichierTraduire une application Android en anglais

Traduire une application Android en anglais

Déposez le fichier res/values/strings.xml de votre application\u00a0: Manuce rend le même fichier, valeurs en anglais, clés, commentaires et attributs intacts, prêt à placer dans res/values-en. Les plurals reçoivent les quantités one et other, les apostrophes sont échappées comme Android l’exige, et un rapport liste les chaînes laissées telles quelles.

Déposer mon fichier Voir les tarifs

Combien ça coûte

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

Essentiel
12 €

Comprendre, usage interne.

Professionnel
36 €

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

Premium
70 €

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 un strings.xml passe en anglais

L’anglais est en général 10 à 15\u00a0% plus court que le français\u00a0: vos boutons et onglets respirent davantage, mais les pièges sont ailleurs.

  • Les apostrophes. L’anglais en est plein\u00a0: Don’t show again, You’re offline, Can’t connect. Dans un strings.xml, une apostrophe droite non échappée fait échouer la compilation des ressources. Manuce écrit Don\\'t show again, comme Android l’attend.
  • La ponctuation. L’espace insécable française avant les deux-points et le point d’interrogation disparaît\u00a0: Erreur\u00a0: %1$s devient Error: %1$s. Les guillemets « » laissent place aux guillemets anglais.
  • La casse. Un libellé comme Paramètres du compte peut devenir Account settings ou Account Settings selon votre charte. Vérifiez la cohérence sur l’ensemble des menus.
  • Le tutoiement et le vouvoiement n’existent pas en anglais\u00a0: Vérifiez votre connexion et Vérifie ta connexion donnent tous deux Check your connection.

Pluriels\u00a0: one, other et le piège du zéro

L’anglais n’a que deux catégories de pluriel CLDR\u00a0: one et other. Manuce écrit les quantités que réclame la langue cible\u00a0:

<item quantity=\"one\">%d file deleted</item>
<item quantity=\"other\">%d files deleted</item>

Attention au zéro\u00a0: en français, la catégorie one couvre 0 et 1 («\u00a00 fichier supprimé\u00a0»), alors qu’en anglais 0 tombe dans other\u00a0: «\u00a00 files deleted\u00a0». Le comportement change donc entre les deux langues sans que votre code bouge.

  • Android n’utilise quantity=\"zero\" que pour les langues qui ont cette catégorie\u00a0; en anglais, il est ignoré. Pour afficher «\u00a0No files\u00a0», prévoyez une chaîne distincte et testez le cas 0 dans le code.
  • N’utilisez pas plurals pour des choix qui ne dépendent pas d’un nombre, et passez bien la quantité deux fois à getQuantityString si la chaîne contient %d.

Anglais britannique ou américain\u00a0: choisir le bon dossier

Android distingue les variantes par dossier\u00a0: res/values-en pour l’anglais en général, res/values-en-rGB ou res/values-en-rUS pour une variante. Si une chaîne manque dans values-en-rGB, le système la cherche dans values-en.

Les différences touchent surtout l’orthographe\u00a0: Colour/Color, Cancelled/Canceled, Licence/License (nom), Personalise/Personalize. Une solution simple\u00a0: un values-en complet dans la variante de votre marché principal, et un petit fichier de variante qui ne contient que les chaînes qui diffèrent.

Pour les dates, ne mettez pas de format en dur dans les chaînes\u00a0: le 03/04 se lit 3\u00a0avril au Royaume-Uni et 4\u00a0mars aux États-Unis. Laissez DateFormat formater selon la langue de l’appareil. Manuce ne traduit pas les formats de date présents dans le fichier.

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

Vous recevez le même fichier, dans le même format\u00a0: indentation, ordre des clés, guillemets, commentaires, fins de ligne, encodage et BOM conservés. Seules les valeurs changent. Sont traités les string, string-array et plurals.

  • translatable=\"false\" est respecté\u00a0: app_name ou une clé d’API ainsi marquée restent intacts.
  • Ne sont pas traduits\u00a0: les clés, les valeurs vides, les URL, les adresses email, les nombres, les couleurs, les formats de date, les identifiants.
  • Chaque valeur traduite est comparée à la source\u00a0: %1$s, %2$d ou une balise <b> doivent s’y retrouver. En cas d’écart persistant, la valeur source est gardée et le rapport le signale.

Manuce ne traduit que ce que contient le fichier déposé\u00a0: les textes écrits en dur dans un layout ou dans le code Kotlin ou Java, la fiche Google Play et les images contenant du texte n’en font pas partie. Le prix porte sur les mots des valeurs, clés et balises exclues.

Préparer le fichier, puis vérifier dans l’application

Avant le dépôt\u00a0:

  • Lancez l’inspection lint HardcodedText et déplacez dans strings.xml les libellés restés dans les layouts.
  • Marquez translatable=\"false\" tout ce qui ne doit pas bouger\u00a0: nom de marque, schéma d’URL, valeur technique.
  • Remplacez les chaînes assemblées par concaténation (\"Bonjour \" + nom) par une seule chaîne avec variable (Bonjour %1$s)\u00a0: l’ordre des mots anglais peut différer.

Après la livraison\u00a0:

  • Placez le fichier dans res/values-en/strings.xml, compilez, puis lancez lint MissingTranslation.
  • Lisez le rapport\u00a0: chaque chaîne laissée en français y figure avec la raison.
  • Passez un appareil en anglais et testez les plurals avec 0, 1 et 2, ainsi que les écrans aux boutons serrés.

En pratique

  1. Rassemblez tous les textes de l’interface dans res/values/strings.xml et marquez les valeurs non traduisibles.
  2. Déposez le fichier sur Manuce, lisez le devis et l’extrait gratuit en anglais.
  3. Récupérez le strings.xml traduit et son rapport dans votre espace client.
  4. Placez-le dans res/values-en, compilez et testez l’application sur un appareil réglé en anglais.

Questions fréquentes

Dans quel dossier mettre le fichier traduit\u00a0?

Dans res/values-en/strings.xml si votre langue par défaut, dans res/values, est le français. Pour une variante précise, utilisez res/values-en-rGB ou res/values-en-rUS\u00a0; Android se rabat sur values-en pour les chaînes absentes.

Mes variables %1$s et %d seront-elles préservées\u00a0?

Oui. Chaque valeur traduite est comparée à la source, variables et balises comprises. Si l’écart persiste, la valeur française est conservée et le rapport l’indique, pour que la compilation et l’affichage ne cassent pas.

Que deviennent les apostrophes dans les textes anglais\u00a0?

Elles sont échappées à la manière d’Android, par exemple Don\\'t ou You\\'re. Vous n’avez rien à corriger à la main avant de compiler.

Le nom de l’application sera-t-il traduit\u00a0?

Pas s’il porte translatable=\"false\"\u00a0: Manuce respecte cet attribut. Si vous voulez un nom anglais différent, laissez la chaîne traduisible ou écrivez-la vous-même dans values-en.

Manuce traduit-il aussi la fiche Google Play\u00a0?

Pas via ce fichier\u00a0: la description du Play Store ne fait pas partie de strings.xml. Seules les valeurs contenues dans le fichier déposé sont traduites.

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