begin process at 2008 08 08 21:00:22
1 223 607 membres
365 nouveaux aujourd'hui
14 230 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GESTION TRÈS SIMPLE DES LANGUES (CULTURE) EN ASP.NET 2.0


Information sur la source

Catégorie :ASP.Net Source .NET ( DotNet ) Classé sous : langue, culture, ressource Niveau : Débutant Date de création : 17/04/2006 Date de mise à jour : 17/04/2006 18:44:20 Vu / téléchargé: 16 650 / 1 446

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

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

  • 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
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
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

17 avril 2006 13:05:16 :
Ajout de l’extrait de mon code.
17 avril 2006 18:44:20 :
Une petite faute.
  • signaler à un administrateur
    Commentaire de N1Nbus49 le 16/05/2006 07:34:29

    Bien comme source assurement.
    Par contre juste une précision, non pas que je te prenne pour un idiot, mais €1 > $1..non?
    Il serait interressant de savoir si il peut faire la conversion tout seul :)
    En tout cas, bonne source

  • signaler à un administrateur
    Commentaire de walterskinner le 16/05/2006 22:09:10

    Effectivement, c’est encore pire si je traduis la page en UK. 1€ n’est pas égale à £1.
    En fait le but est de traduire automatiquement la présentation du site. Reste au programmeur de faire en sorte que la partie métier (Les prix, les descriptions d’articles, …) soit traduit suivant la langue.
    En tout cas merci d’avoir laissé un message. Cela fait plaisir de voir qu’il a intéressé quelqu’un :o)
    A bientôt...

  • signaler à un administrateur
    Commentaire de Nexto le 14/06/2006 21:30:43

    Bsoir, pas mal dutout ta source simple et bien clair...

    Mais je me demande toujours comment faire aussi un site multilingue mais en passant la langue via une url ex: Default.aspx?lang=fr... Ta une idée ? :p (et qu'il garde en mêmoire le ?lang=fr lorsqu'on change de page...).

    merci

    A++
    Fabien S. (Alias: fabienfs)

  • signaler à un administrateur
    Commentaire de maisoui le 16/07/2006 21:00:18

    salut, merci pour ton code, c'est vraiment très clair et très pratique.
    J'ai essayé d'intégrer ça dans un de mes projets où j'ai utilisé une "master page" et là, ça pose difficulté. On ne peut apparament pas définir de "culture" pour une master page.
    Est-ce que je dois copier le code dans chaque page indépendante?

  • signaler à un administrateur
    Commentaire de mcviper le 30/08/2006 21:01:42

    salut, esque quelq'un aurait une idée pour modifier ou crée une nouvelle culture le but est d'avoir les dates en format 'fr' jour/mois et des montant en format 'en', merci.

  • signaler à un administrateur
    Commentaire de kiki15 le 31/01/2007 16:46:55

    Bonjour,
    je voulais savoir ce que cela donnerai en c#, sa serais super interressant..

    Merci

  • signaler à un administrateur
    Commentaire de qrf_vince le 31/07/2007 09:52:23

    Bonjour,

    Juste une petite précision sur l'emploi de Culture et UICulture.
    Contrairement à ce qui est écrit dans la description, Culture sert au format des dates, des montants,... et UICulture pour déterminer quelles ressources il faut charger.
    http://msdn2.microsoft.com/en-us/library/bz9tc508(VS.71).aspx
    A part ça, ton code est très utile :)

    A++
    VinCe

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS