Je vais expliquer ici comment traduire une application Web écrite avec ASP.net 2.0. Dans le monde .net, cela se dit aussi localisation.
La traduction d'une application Web est très facile avec ASP.net 2.0. Des mécanismes sont intégrés pour prendre en compte automatiquement la langue du navigateur et permettre de créer facilement des pages traduites.
Prenons l'exemple de cette page index.aspx:
<body>
<h1>Mon titre</h1>
<asp:Button Text="Cliquez ici" runat="server"/>
</body>
Pour la traduire, j'ai besoin d'avoir des contrôles runat="server". Je vais donc remplacer mon texte statique par un contrôle Literal (le plus léger du genre). J'obtiens alors:
<body>
<h1><asp:Literal runat="server" Text="Mon titre" /></h1>
<asp:Button Text="Cliquez ici" runat="server"/>
</body>
Les traductions sont stockées en ASP.net dans des fichiers ressources (je simplifie volontairement) ayant pour extension resx. Je vais donc créer un fichier ressource, qui doit être dans le répertoire "App_LocalResources".
Visual Studio 2005 automatise en partie cette création. Il me suffit de passer en mode Design (menu "Affichage/Concepteur") et de cliquer dans le menu "Outils/Générer la ressource locale".
Je me retrouve avec un fichier index.aspx.resx qui contient les éléments à traduire. Ce sont les traductions qui seront utilisées lorsqu'aucune traduction ne sera disponible. Par exemple, s'il existe des traductions en anglais et en espagnol, si quelqu'un demande l'allemand il aura le texte situé dans index.aspx.resx.
Pour rajouter une langue, il me suffit de dupliquer ce fichier. Par exemple, si je veux traduire en anglais, je vais créer index.aspx.en.resx ("en" pour anglais), recopier le contenu de index.aspx.resx dedans, et traduire les libellés.
C'est tout! Pour nous, Visual Studio a ajouté dans l'en-tête de la page l'attribut UICulture="auto". Cela indique à ASP.net d'automatiquement détecter la langue préférée des utilisateurs (envoyée dans les en-têtes HTTP) et de fournir automatiquement la version la plus adaptée de ma page.
Testons la page avec un navigateur qui demande de l'anglais. Elle est bien en anglais:
Maintenant, demandons de l'allemand. Elle est bien en français (la ressource par défaut):
Facile, n'est-ce pas?
Comments
Si vous êtes intéressés de traduire logiciels pour Internet, pour PC, pour mobiles ou tout autre type de logiciels, je vous recommandons chaleureusement le nouvel instrument numérique ”l10n” que mon équipe a récemment créé – et qui a toutes les chances de rendre vos activités de bureau bien plus faciles et rapides.
http://poeditor.com/
POEditor est intuitif, basé sur travail en collaboration. Il comprend de nombreuses fonctions qui puissent vous soutenir lors du processus de gestion de traductions, que vous pourriez découvrir sur notre page Internet.Vous pouvez importer depuis multiples types de fichiers de localisation (pot, po, xls, xlsx, strings, xml, resx, properties) ou se servir directement de notre REST API.
N’hésitez pas de l’essayer et/ou le proposer aux développeurs ou, en général, a ceux qui en seraient intéressés.