Traduire une application Android en allemand
Déposez votre res/values/strings.xml : Manuce traduit les string, string-array et plurals en allemand et vous rend le même fichier, prêt à placer dans res/values-de/. Les variables comme %1$s sont contrôlées une à une, et un rapport indique les chaînes laissées telles quelles. Il vous restera à vérifier vos mises en page, car l'allemand prend nettement plus de place.
Combien ça coûte
Pour les fichiers de langue d'une application Android totalisant environ 2 000 mots, vers l’allemand :
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'allemand change dans une interface Android
Le premier effet se voit à l'écran. Un texte allemand est souvent 20 à 35 % plus long que son équivalent anglais, et il est généralement plus long que le français. Surtout, l'allemand forme des mots composés qui ne se coupent pas à l'espace : « Gestion des abonnements » devient Abonnementverwaltung, « Notifications push » devient Push-Benachrichtigungen. Un libellé court en français peut doubler en largeur.
Les zones qui souffrent le plus dans une application Android :
- les onglets et la barre de navigation inférieure, où chaque libellé dispose d'une largeur fixe ;
- les titres de barre d'outils, tronqués dès qu'une icône d'action s'ajoute ;
- les boutons de largeur fixe en dp, où Einstellungen speichern ne tient plus sur une ligne ;
- les notifications et widgets, dont l'espace est très limité.
Trois règles d'écriture changent aussi. Tous les noms prennent une majuscule (Konto löschen, « Supprimer le compte »). L'allemand ne met pas d'espace avant « ? », « ! » ou « : » : « Mot de passe oublié ? » devient Passwort vergessen?. Enfin, les guillemets allemands s'écrivent „ainsi“.
Reste le registre. En contexte professionnel, l'allemand vouvoie avec Sie (Möchten Sie fortfahren?) ; beaucoup d'applications grand public préfèrent le tutoiement du (Möchtest du fortfahren?). Ce choix doit être tenu dans toute l'application, des boutons aux messages d'erreur.
Pluriels, variables et ordre des mots
L'allemand n'a que deux catégories de pluriel CLDR : one et other. Le piège vient de la source française : en français, zéro prend le singulier (« 0 message ») ; en allemand, one ne couvre que 1, et zéro passe au pluriel (0 Nachrichten). Un bloc correct ressemble à ceci :
<item quantity="one">%d Nachricht</item><item quantity="other">%d Nachrichten</item>
Côté code, il faut appeler getQuantityString() et non choisir la chaîne avec un if (n == 1), sinon la règle allemande ne s'applique pas.
L'ordre des mots est l'autre difficulté. Dans une subordonnée ou au passé composé, le verbe allemand part en fin de phrase : « %1$s a invité %2$s » devient %1$s hat %2$s eingeladen. Avec des variables positionnelles (%1$s, %2$d), la traduction peut les déplacer sans casse. Avec des %s non numérotés, l'ordre est figé et la phrase allemande devient bancale.
Deux pratiques sont à proscrire avant traduction :
- la concaténation dans le code, du type
getString(R.string.supprime) + " " + nom: l'allemand ne peut pas réordonner deux chaînes séparées ; - la réutilisation d'un adjectif pour plusieurs noms : « Nouveau » se dit neuer, neue ou neues selon le genre du nom allemand. Prévoyez une chaîne par contexte.
Ce que Manuce rend exactement, et ce qu'il ne fait pas
Manuce traite res/values/strings.xml :
- les éléments
string,string-arrayetpluralssont traduits ; les quantités de plurals que réclame l'allemand sont écrites ; - les chaînes marquées
translatable="false"sont respectées ; - les apostrophes et caractères spéciaux sont échappés à la manière d'Android, par exemple
geht\'s; - ne sont pas traduits : clés, valeurs vides, URL, adresses email, nombres, couleurs, formats de date, identifiants ;
- chaque valeur traduite est comparée à la source, variables et balises comprises ; si un écart persiste, la valeur source est gardée et le rapport le signale.
Le fichier rendu est le même : indentation, ordre des clés, guillemets, commentaires, fins de ligne, encodage et BOM sont conservés, seules les valeurs changent. Vous recevez aussi un rapport : chaînes traduites, chaînes laissées telles quelles et pourquoi. Le prix porte sur les mots des valeurs, clés et balises exclues ; l'allemand est au tarif de base (coefficient ×1).
Ce que Manuce ne fait pas :
- il ne modifie pas vos layouts : un bouton trop étroit pour Abonnementverwaltung reste à corriger de votre côté ;
- il ne formate pas les nombres : l'allemand écrit 1.234,56, mais c'est à votre code de formater selon la locale, par exemple avec
NumberFormat; - la fiche Google Play ne figure pas dans
strings.xml: elle n'est pas couverte par ce traitement ; - il ne produit pas de traduction assermentée.
Préparer le fichier et vérifier l'application en allemand
Avant le dépôt :
- marquez
translatable="false"sur ce qui ne doit pas bouger : nom de marque dansapp_name, schémas de liens profonds, clés techniques ; - numérotez les variables (
%1$splutôt que%s) dès qu'une chaîne en contient plusieurs ; - ajoutez des commentaires de contexte au-dessus des chaînes ambiguës, par exemple
<!-- Bouton, place limitée -->: ils restent dans le fichier et guideront votre relecteur germanophone ; - testez dès maintenant la pseudo-locale
en-XA, qui allonge et accentue les textes : elle révèle les écrans qui casseront en allemand.
Après livraison :
- placez le fichier dans
res/values-de/strings.xml, à côté de votreres/values/d'origine ; - lisez le rapport : une chaîne restée en français signale souvent une variable mal formée dans la source ;
- passez l'appareil en allemand et parcourez les écrans sur un petit téléphone ; corrigez les débordements avec
wrap_content,maxLinesetellipsize="end", ou l'ajustement automatique de taille desTextView; - vérifiez l'unité du registre : un Sie dans une boîte de dialogue au milieu d'écrans en du se remarque tout de suite.
En pratique
- Marquez translatable="false" sur les chaînes à conserver et numérotez les variables multiples.
- Déposez res/values/strings.xml : le devis s'affiche, et l'extrait gratuit vous montre le registre et le style allemands.
- Récupérez le fichier traduit et son rapport, puis placez-le dans res/values-de/strings.xml.
- Testez l'application en allemand sur un petit écran et corrigez les libellés qui débordent.
Questions fréquentes
L'allemand sera-t-il au vouvoiement ou au tutoiement ?
En contexte professionnel, l'allemand vouvoie avec Sie, et c'est le registre attendu pour une application métier. Beaucoup d'applications grand public tutoient avec du. L'extrait gratuit vous permet de voir le registre obtenu avant de payer ; vérifiez ensuite qu'il est tenu dans tout le fichier.
Que deviennent mes plurals pour zéro ?
L'allemand utilise les catégories one et other, et one ne couvre que 1 : zéro prend donc la forme other, « 0 Nachrichten ». Il faut que votre code passe par getQuantityString() pour que cette règle s'applique. Un test manuel avec 0, 1 et 2 suffit à le vérifier.
Le nom de mon application sera-t-il traduit ?
Si app_name porte translatable="false", il est laissé tel quel. Sinon, il est traité comme une valeur ordinaire. Marquez-le avant le dépôt si c'est un nom de marque.
Ma fiche Google Play est-elle traduite avec le fichier ?
Non : la description et les notes de version de la fiche Play ne se trouvent pas dans strings.xml. Seul le contenu du fichier déposé est traduit. Pensez à prévoir leur traduction à part.
Que se passe-t-il si une variable est perdue dans la traduction ?
Chaque valeur traduite est comparée à la source, variables et balises comprises. Si l'écart persiste, la valeur source est conservée et le rapport l'indique. Vous gardez ainsi un fichier qui compile, avec la liste des chaînes à reprendre.
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’allemand, 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.