Traduire une application .NET en allemand
Déposez vos fichiers .resx : Manuce traduit les valeurs en allemand et vous rend le même fichier, que vous enregistrez sous <code>Resources.de.resx</code> dans le projet. Les clés, les espaces réservés comme <code>{0}</code> et les ressources non textuelles ne bougent pas. Un rapport indique ce qui a été laissé tel quel et pourquoi.
Combien ça coûte
Pour les fichiers de langue d'une application .NET 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 .NET
Un texte allemand est souvent 20 à 35 % plus long que son équivalent anglais, et l'écart se concentre sur les libellés courts. L'allemand forme des mots composés là où le français aligne plusieurs mots : « Paramètres du compte » devient Kontoeinstellungen, « Réinitialisation du mot de passe » devient Kennwortzurücksetzung. Un bouton dimensionné pour « Envoyer » peut devoir accueillir Übermitteln, et un en-tête de colonne peut doubler de largeur.
- WinForms : les contrôles à taille fixe tronquent le texte sans prévenir. Activez
AutoSizeou prévoyez de la marge. - WPF et MAUI : les grilles en largeur automatique absorbent mieux l'allongement ;
TextWrappingouTextTrimmingévitent les débordements dans les cellules étroites. - Majuscules : tous les noms prennent une majuscule (Datei speichern, « Enregistrer le fichier »). Un
ToLower()appliqué dans le code à un libellé détruit cette règle et produit une faute visible.
Le registre compte aussi. En logiciel professionnel, on vouvoie avec Sie : Möchten Sie die Änderungen speichern? Une application grand public peut choisir du, mais le choix doit être constant d'un écran à l'autre.
Variables, ordre des mots et pluriels
En allemand, le verbe part souvent en fin de proposition. « Supprimer {0} ? » devient {0} löschen? ou Möchten Sie {0} wirklich löschen? : la variable change de place. Si votre code assemble une phrase par concaténation ("Supprimer " + nom + " ?"), la traduction ne pourra jamais être correcte. Mettez la phrase entière dans une seule valeur .resx et passez par string.Format, en gardant des espaces réservés numérotés que le traducteur peut déplacer.
Les catégories de pluriel de l'allemand sont one et other, comme en anglais, mais zéro tombe dans other : 0 Dateien, 1 Datei, 2 Dateien. Le format .resx n'a pas de mécanisme de pluriel : prévoyez deux clés, par exemple FileCount_One et FileCount_Other, et choisissez la bonne dans le code.
Les nombres et les dates ne doivent pas vivre dans le .resx. L'allemand écrit 1.234,56 et 31.12.2025 : laissez CultureInfo("de-DE") les formater. Un format de date écrit en dur dans une valeur, comme MM/dd/yyyy, n'est pas traduit et restera à l'américaine ; préférez les formats standard comme d. Enfin, les guillemets allemands s'écrivent „…“ : vérifiez qu'ils ne cassent pas une chaîne échappée dans votre code.
Ce que Manuce rend exactement
Dans un fichier .resx, Manuce traduit le contenu des éléments data/value. Les commentaires servent de contexte au moteur : « bouton, 15 caractères maximum » ou « vouvoiement » y sont lus. Les ressources non textuelles (images, icônes, propriétés de taille ou de position d'un formulaire WinForms localisable) restent intactes.
Le fichier rendu est le même : indentation, ordre des clés, guillemets, commentaires, fins de ligne, encodage et BOM conservés ; seules les valeurs changent. Ne sont pas traduits : les clés, les valeurs vides, les URL, les adresses email, les nombres, les couleurs, les formats de date, les identifiants et tout ce que vous avez marqué comme non traduisible.
Chaque valeur traduite est comparée à la source : si {0}, {1:N2} ou une balise manque ou a été altérée et que l'écart persiste, la valeur source est gardée et le rapport le signale. Vous savez donc quelles chaînes restent à traiter à la main.
Ce que Manuce ne fait pas : il ne compile pas votre projet et ne teste pas l'affichage, donc il ne voit pas une troncature dans un bouton. Les textes écrits en dur dans le code C# ou le XAML ne sont pas dans le .resx et ne seront pas traduits. Et si l'application embarque des conditions générales (AGB) ou une politique de confidentialité (Datenschutzerklärung), sachez que Manuce ne produit pas de traduction assermentée.
Préparer les fichiers et vérifier le résultat
Avant le dépôt :
- Sortez du code et du XAML tous les textes visibles vers des fichiers .resx ; c'est le seul contenu traduit.
- Ajoutez des commentaires sur les chaînes ambiguës. « Open » peut donner Öffnen (verbe, bouton) ou Offen (état d'un ticket) : sans contexte, le moteur doit deviner.
- Indiquez la limite de longueur des libellés serrés et le registre choisi (Sie ou du).
- Marquez comme non traduisibles les noms de produit et de module.
Après la livraison :
- Enregistrez le fichier sous
Resources.de.resx, à côté du fichier neutre. La compilation produit l'assembly satellitede\VotreApp.resources.dll. - Lancez l'application avec
CultureInfo.CurrentUICulture = new CultureInfo("de-DE")et parcourez chaque écran à la recherche de textes coupés. - Vérifiez les touches d'accès WinForms :
&Fichierdevient&Datei, et deux commandes d'un même menu ne doivent pas partager la même lettre. - Lisez le rapport et reprenez les chaînes laissées en source.
En pratique
- Rassemblez les fichiers .resx neutres et commentez les chaînes ambiguës ou limitées en longueur.
- Déposez les fichiers : le devis s'affiche, calculé sur les mots des valeurs, et un extrait gratuit permet de juger le registre.
- Récupérez le fichier traduit et le rapport, puis enregistrez-le sous Resources.de.resx.
- Compilez, lancez l'application en culture de-DE et corrigez troncatures et chaînes signalées.
Questions fréquentes
Faut-il nommer le fichier .de ou .de-DE ?
<code>Resources.de.resx</code> sert à toutes les cultures allemandes (Allemagne, Autriche, Suisse) grâce au mécanisme de repli de .NET. Pour la Suisse, où l'on écrit « ss » au lieu de « ß », un fichier <code>Resources.de-CH.resx</code> peut ne contenir que les quelques chaînes qui diffèrent.
Mes espaces réservés {0} et mes balises sont-ils protégés ?
Oui : chaque valeur traduite est comparée à la source pour les variables et les balises. Leur position peut changer, ce qui est normal en allemand, mais elles doivent toutes être présentes. En cas d'écart persistant, la valeur source est conservée et le rapport l'indique.
Les formulaires WinForms localisables seront-ils redimensionnés ?
Non. Les propriétés non textuelles comme la taille ou la position des contrôles restent intactes ; seules les valeurs de texte sont traduites. C'est à vous d'agrandir les contrôles trop étroits pour l'allemand, d'où l'intérêt de tester chaque écran.
Combien de mots seront comptés ?
Seuls les mots des valeurs sont comptés ; les clés et les balises sont exclues. Le devis s'affiche dès le dépôt du fichier, calculé sur le nombre exact de mots.
Comment imposer le vouvoiement Sie ?
Indiquez-le dans les commentaires du .resx, qui servent de contexte à la traduction. L'extrait gratuit, traduit au niveau choisi avant paiement, permet de vérifier le registre sur un passage réel de votre fichier.
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.