Les visiteurs de site Web indiquent la langue qu il utilise dans leur nagivateur.
Nous pouvons la connaître avec Request.ServerVariables("HTTP_ACCEPT_LANGUAGE").
Entre les tables windows langue et culture les valeurs sont presques communes.
Pourtant il faut indiquer des culture non neutre aux instructions:
Thread.CurrentThread.CurrentCulture
Thread.CurrentThread.CurrentUICulture
Et les langages inclut des cultures neutres.
Exemple:
Fr Français neutre
Fr-Be français belge non-neutre
Description du résultat:
La premiere ligne indique l'heure sur le poste client, l'heure de Greenwish (GMT), et leur d'un serveur
à fuseau horaire GMT-7. C'est un javascript, donc il est mis à jour coté client.
Sur la deuxieme ligne, une liste déroulante permet de choisir la langue d'affichage du premier tableau.
La langue d'affichage du deuxième tableau est celle indiquée en premier dans la liste
des préférences de langage de votre navigateur(outils/options/langues).
Source / Exemple :
1) créer une Webform nommée "Webform1.aspx"
2) dans sa page HTML remplacer tout le code sauf la premiere ligne par:
------------------------------------
<!-- votre première ligne -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//FR">
<HTML>
<HEAD>
<TITLE>Francois Rossello</TITLE>
<META http-equiv="content-language" content="fr">
<META http-equiv="Content-Type" content="text/html;charset=window-1252">
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Expires" content="0">
<META name="LANGUAGE" content="fr">
<META name="HTTP.LANGUAGE" content="FRENCH">
<META name="description" content="">
<META name="KEYWORDS" content="">
<META name="AUTHOR" content="Francois Rossello">
<META name="reply-to" content="frossello@frossello.Com">
<META name="publisher" content="Francois Rossello">
<META name="copyright" content="Francois Rossello">
<META content="JavaScript" name="vs_defaultClientScript">
<META content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<META name="robots" content="index,follow">
<META name="revisit-after" content="10">
</HEAD>
<body bgColor="#ffffff" MS_POSITIONING="GridLayout" topMargin="0" rightMargin="0">
<FONT face='Trebuchet MS' size='2'>
<div align="center">
Dates et heures
<form id="Form1" method="post" runat="server">
<table>
<TBODY>
<tr>
<td>
Client <INPUT id="txtClientTime" size="10" name="txtClientTime"> GMT <INPUT id="txtGMTTime" type="text" size="10" name="Text1">
Server <INPUT id="txtServerTime" type="text" size="10" name="Text2">
</td>
</tr>
</TBODY>
</table>
<br>
<asp:Label id="Label1" runat="server">Langue affichage</asp:Label>
<asp:DropDownList id="cbo_Culture" runat="server" AutoPostBack="True"></asp:DropDownList>
<a HREF='#' onclick="JavaScript:window.open('DateHeure_culture.aspx','Logo','width=790,height=540,top=0,left=0,scrollbars=yes,resizable=yes');return(false)">
<INPUT type="submit" id="Btn_Culture" name="Button1" runat="server" value="Table des cultures">
</a>
<%Show_Date%>
</form>
</div>
<script language="javascript">
function clock() {
cTime= new Date();
cHours = cTime.getHours();
cMinutes = cTime.getMinutes();
cSecondes = cTime.getSeconds();
cUTCHours = cTime.getUTCHours();
cUTCMinutes = cTime.getUTCMinutes();
cUTCSecondes = cTime.getUTCSeconds();
cTime.setHours(cTime.getUTCHours()-7)
cServerHours = cTime.getHours();
cServerMinutes = cTime.getMinutes();
cServerSecondes = cTime.getSeconds();
document.Form1.txtClientTime.value=((cHours<10)?'0':'') + cHours + ':' + ((cMinutes<10)?'0':'') + cMinutes + ':' + ((cSecondes<10)?'0':'') + cSecondes;
document.Form1.txtGMTTime.value=((cUTCHours<10)?'0':'') + cUTCHours + ':' + ((cUTCMinutes<10)?'0':'') + cUTCMinutes + ':' + ((cUTCSecondes<10)?'0':'') + cUTCSecondes;
document.Form1.txtServerTime.value=((cServerHours<10)?'0':'') + cServerHours + ':' + ((cServerMinutes<10)?'0':'') + cServerMinutes + ':' + ((cServerSecondes<10)?'0':'') + cServerSecondes;
setTimeout('clock()',1000);
}
clock();
</script>
</FONT>
</body>
</HTML>
------------------------------------
3) dans son fichier .vb replacer tout le code par:
------------------------------------
Imports System.Threading
Imports System.Globalization
Public Class DateHeure_LCID
Inherits System.Web.UI.Page
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents Btn_Culture As System.Web.UI.HtmlControls.HtmlInputButton
Protected WithEvents Form1 As System.Web.UI.HtmlControls.HtmlForm
Protected WithEvents cbo_Culture As System.Web.UI.WebControls.DropDownList
#Region " Code généré par le Concepteur Web Form "
'Cet appel est requis par le Concepteur Web Form.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN : cet appel de méthode est requis par le Concepteur Web Form
'Ne le modifiez pas en utilisant l'éditeur de code.
InitializeComponent()
End Sub
#End Region
Public Sub Show_Date()
Dim cFR As New System.Globalization.CultureInfo("fr-FR")
' DATE ET HEURE : GMT, SERVEUR,, VISITEUR, FRANCE
Response.Write("<TABLE CELLPADDING=4 CELLSPACING=4 BORDER=2 NOWRAP>")
Response.Write("<TR>")
Response.Write("<TD >Libellé</TD>")
Response.Write("<TD>LCID</TD>")
Response.Write("<TD>")
Response.Write("Valeur")
Response.Write("</TD>")
Response.Write("</TR>")
Response.Write("<TR>")
Response.Write("<TD >GMT Maintenant</TD>")
Response.Write("<TD>" & Session.LCID & "</TD>")
Response.Write("<TD>")
Response.Write(System.DateTime.UtcNow.ToString("D") & " à " & System.DateTime.UtcNow.ToString("t"))
Response.Write("</TD>")
Response.Write("</TR>")
Response.Write("<TR>")
Response.Write("<TD>Serveur Maintenant</TD>")
Response.Write("<TD>" & Session.LCID & "</TD>")
Response.Write("<TD>" & Format(System.DateTime.Now, "D") & " à " & Format(System.DateTime.Now, "t"))
Response.Write("</TD>")
Response.Write("</TR>")
Response.Write("<TR>")
Response.Write("<TD>Serveur Fuseau</TD>")
Response.Write("<TD>" & Session.LCID & "</TD>")
Response.Write("<TD>GMT " & System.DateTime.Now.ToLocalTime.Subtract(System.DateTime.Now).Hours)
Response.Write("</TD>")
Response.Write("</TR>")
'Session.LCID = 1036
'Response.Write("<TR>")
'Response.Write("<TD>France court</TD>")
'Response.Write("<TD>" & Session.LCID & "</TD>")
'Response.Write("<TD>" & System.DateTime.Now.ToUniversalTime.AddHours(2).ToString)
'Response.Write("</TD>")
'Response.Write("</TR>")
'Session.LCID = 1033
Session.LCID = 1036
Response.Write("<TR>")
Response.Write("<TD>Français date longue</TD>")
Response.Write("<TD>" & Session.LCID & "</TD>")
Response.Write("<TD>" & System.DateTime.Now.ToUniversalTime.AddHours(2).ToString("f"))
Response.Write("</TD>")
Response.Write("</TR>")
Session.LCID = 1033
Response.Write("<TR>")
Response.Write("<TD>")
Response.Write("Région courante")
Response.Write("</TD>")
Response.Write("<TD>")
Response.Write(" ")
Response.Write("</TD>")
Response.Write("<TD>")
Response.Write(System.Globalization.RegionInfo.CurrentRegion())
Response.Write("</TD>")
Response.Write("</TR>")
Response.Write("<TR>")
Response.Write("<TD>")
Response.Write("Culture courante")
Response.Write("</TD>")
Response.Write("<TD>")
Response.Write(" ")
Response.Write("</TD>")
Response.Write("<TD>")
Response.Write(Thread.CurrentThread.CurrentUICulture)
Response.Write("</TD>")
Response.Write("</TR>")
Response.Write("</TABLE>")
Set_Language()
Response.Write("Culture configurée par défaut sur le serveur : " & Thread.CurrentThread.CurrentUICulture.ToString & "")
' DATE ET HEURE : GMT, SERVEUR,, VISITEUR, FRANCE
Response.Write("<TABLE CELLPADDING=4 CELLSPACING=4 BORDER=2 NOWRAP>")
Response.Write("<TR>")
Response.Write("<TD >GMT Maintenant</TD>")
Response.Write("<TD>" & Session.LCID & "</TD>")
Response.Write("<TD>")
Response.Write(System.DateTime.UtcNow.ToString("D") & " à " & System.DateTime.UtcNow.ToString("t"))
Response.Write("</TD>")
Response.Write("</TR>")
Response.Write("<TR>")
Response.Write("<TD>Serveur Maintenant</TD>")
Response.Write("<TD>" & Session.LCID & "</TD>")
Response.Write("<TD>" & Format(System.DateTime.Now, "D") & " à " & Format(System.DateTime.Now, "t"))
Response.Write("</TD>")
Response.Write("</TR>")
Response.Write("<TR>")
Response.Write("<TD>Serveur Fuseau</TD>")
Response.Write("<TD>" & Session.LCID & "</TD>")
Response.Write("<TD>GMT " & System.DateTime.Now.ToLocalTime.Subtract(System.DateTime.Now).Hours)
Response.Write("</TD>")
Response.Write("</TR>")
'Session.LCID = 1036
'Response.Write("<TR>")
'Response.Write("<TD>France court</TD>")
'Response.Write("<TD>" & Session.LCID & "</TD>")
'Response.Write("<TD>" & System.DateTime.Now.ToUniversalTime.AddHours(2).ToString)
'Response.Write("</TD>")
'Response.Write("</TR>")
'Session.LCID = 1033
Session.LCID = 1036
Response.Write("<TR>")
Response.Write("<TD>Français date longue</TD>")
Response.Write("<TD>" & Session.LCID & "</TD>")
Response.Write("<TD>" & System.DateTime.Now.ToUniversalTime.AddHours(2).ToString("f"))
Response.Write("</TD>")
Response.Write("</TR>")
Session.LCID = 1033
Response.Write("<TR>")
Response.Write("<TD>")
Response.Write("Région courante")
Response.Write("</TD>")
Response.Write("<TD>")
Response.Write(" ")
Response.Write("</TD>")
Response.Write("<TD>")
Response.Write(System.Globalization.RegionInfo.CurrentRegion())
Response.Write("</TD>")
Response.Write("</TR>")
Response.Write("<TR>")
Response.Write("<TD>")
Response.Write("Culture courante")
Response.Write("</TD>")
Response.Write("<TD>")
Response.Write(" ")
Response.Write("</TD>")
Response.Write("<TD>")
Response.Write(Thread.CurrentThread.CurrentUICulture)
Response.Write("</TD>")
Response.Write("</TR>")
Response.Write("</TABLE>")
'Response.Write("<script language=javascript>parent.contents.history.go(0)</script>")
End Sub
Private Sub Set_Language()
Dim strTMP As String
Dim lngPOS As Long
strTMP = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE").ToString()
lngPOS = InStr(strTMP, ",", CompareMethod.Text)
If lngPOS > 0 Then strTMP = Mid(strTMP, 1, lngPOS - 1)
lngPOS = InStr(strTMP, ";", CompareMethod.Text)
If lngPOS > 0 Then strTMP = Mid(strTMP, 1, lngPOS - 1)
If Len(strTMP) = 2 Then
Select Case strTMP
Case "fr"
strTMP = "fr-FR"
Case "ar"
strTMP = "ar-KW"
Case "en"
strTMP = "en-US"
Case "ca"
strTMP = "ca-ES"
Case "zh-CHS", "zh-CHT"
strTMP = "zh-CN"
Case "ca"
strTMP = "ca-ES"
Case "cs"
strTMP = "cs-CZ"
Case "da"
strTMP = "da-DK"
Case "el"
strTMP = "el-GR"
Case "en"
strTMP = "en-US"
Case "he"
strTMP = "he-IL"
Case "ja"
strTMP = "ja-JP"
Case "ko"
strTMP = "ko-KR"
Case "no"
strTMP = "nb-NO"
Case "sq"
strTMP = "sq-AL"
Case "sv"
strTMP = "sv-SE"
Case "ur"
strTMP = "ur-PK"
Case "uk"
strTMP = "uk-UA"
Case "be"
strTMP = "be-BY"
Case "et"
strTMP = "et-EE"
Case "fa"
strTMP = "fa-IR"
Case "vi"
strTMP = "vi-VN"
Case "hy"
strTMP = "hy-AM"
Case "az"
strTMP = "az-AZ-Cyrl"
Case "eu"
strTMP = "eu-ES"
Case "af"
strTMP = "af-ZA"
Case "ka"
strTMP = "ka-GE"
Case "hi"
strTMP = "hi-IN"
Case "ms"
strTMP = "ms-MY"
Case "kk"
strTMP = "kk-KZ"
Case "ky"
strTMP = "ky-KZ"
Case "sw"
strTMP = "sw-KE"
Case "uz"
strTMP = "uz-UZ_Latn"
Case "tt"
strTMP = "tt-RU"
Case "pa"
strTMP = "pa-IN"
Case "gu"
strTMP = "gu-IN"
Case "ta"
strTMP = "ta-IN"
Case "te"
strTMP = "te-IN"
Case "kn"
strTMP = "kn-IN"
Case "mr"
strTMP = "mr-IN"
Case "sa"
strTMP = "sa-IN"
Case "gl"
strTMP = "gl-ES"
Case "kok"
strTMP = "kok-IN"
Case "syr"
strTMP = "syr-SI"
Case "div"
strTMP = "div-MV"
Case Else
strTMP = strTMP & "-" & UCase(strTMP)
End Select
End If
'Response.Write("LANGAGE: " & strTMP & "<BR>")
Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo(strTMP)
Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo(strTMP)
End Sub
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Request.QueryString("SHOWMENU") = 1 Then Server.Execute("../visiteur/top.aspx?dest=none")
Dim maCulture As System.Globalization.CultureInfo
0:
If cbo_Culture.Items.Count = 0 Then
cbo_Culture.Items.Clear()
For Each maCulture In System.Globalization.CultureInfo.GetCultures(Globalization.CultureTypes.AllCultures)
If Not maCulture.IsNeutralCulture Then
cbo_Culture.Items.Add(maCulture.Name)
End If
Next
End If
End Sub
Private Sub cbo_Culture_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbo_Culture.SelectedIndexChanged
Dim strTMP As String
Dim lngPOS As Long
strTMP = cbo_Culture.SelectedItem.Text
lngPOS = InStr(strTMP, ",", CompareMethod.Text)
If lngPOS > 0 Then strTMP = Mid(strTMP, 1, lngPOS - 1)
If Len(strTMP) = 2 Then strTMP = strTMP & "-" & UCase(strTMP)
'Response.Write("LANGAGE: " & strTMP & "<BR>")
Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo(strTMP)
Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo(strTMP)
End Sub
End Class
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.