Gestion très simple des langues (culture) en asp.net 2.0

Description

Ce code montre quelques exemples très simples de gestion des langues (Cultures) dans un site en ASP.NET.

Grace aux valeurs Culture et UICulture vous pouvez choisir si la langue est sélectionnée automatiquement (auto) ou imposée (par exemple fr-FR pour Français) :
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" Culture="auto:fr-FR" UICulture="auto:fr-FR" %>

- UICulture indique la langue des contrôles et des formats d?affichages.
Par exemple, un montant apparaîtra comme cela pour la France 65 545,42 ? et $65,545.42 pour les USA. Un contrôle Calendar apparaitra en Français ou autre suivant la langue.
- La variable Culture définie la langue utilisée pour les fichiers de ressources.

Le répertoire App_LocalResources contient les fichiers de ressources (traductions) pour une page définie.
Le répertoire App_GlobalResources contient les fichiers de ressources (traductions) utilisable par n?importe quel page de votre site.

Par exemple, Default.aspx.resx contient les traductions par défaut de la page Default.aspx et Default.aspx.en.resx contient la langue anglaise.

Pour tester le code, vous pouvez changer la langue de préférence dans Internet Exeplorer.
Pour cela, cliquer sur le bouton « Langues? » de la boite « Otions Internet ».

Voici un petit exemple pour un contrôle label :
<asp:Label ID="Label1" runat="server" Text="Label" meta:resourceKey="Label1"></asp:Label>
La propriété meta:resourceKey indique le nom de la ressource à utiliser.

Voici le contenu du fichier de ressource par défaut (Default.aspx.resx) : Image 1
Voici le contenu du fichier de ressource anglais (Default.aspx.en.resx) : Image 2

Voici, j?espère avoir été clair et que ce code pourra servir à quelqu?un.

J?attends vos commentaires.

Bon code,

Walter

PS : Cet exemple est inspiré d?un WebCast américain publié par Microsoft.

Source / Exemple :


Imports System.Threading
Imports System.Globalization

Partial Class _Default
    Inherits System.Web.UI.Page

    ' Cette SUB substitue la procédure d?initialisation de la culture.
    Protected Overrides Sub InitializeCulture()

        ' Récupère la valeur de la liste déroulante.
        Dim lang As String = Request("Langage1")

        ' Si la variable n?est pas vide, on définie la nouvelle langue.
        If lang IsNot Nothing OrElse lang <> "" Then

            ' Définie la culture de l'interface utilisateur.
            Thread.CurrentThread.CurrentUICulture = New CultureInfo(lang)

            ' Définie la culture de l'utilisateur.
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang)

        End If

    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        ' Définie une variable qui contient une somme.
        Dim money As Decimal = 65545.42

        ' Place la somme dans le label en formatant celui-ci au format money.
        ' Suivant la culture (et non la UICulture), il sera affiché en euro, dollar, ?
        lbMontant.Text = String.Format("{0:c}", money)

    End Sub

End Class

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.