Postupy: nastavení jazykové verze a jazykové verze uživatelského rozhraní pro globalizaci webové stránky ASP.NET

 

V webovou stránku ASP.NET, můžete nastavit dvě hodnoty jazykové verze Culture a UICulture Vlastnosti.Culture Hodnota určuje výsledky funkcí závislých na jazykové verzi, jako jsou data, čísla a formátování měny a tak dále.UICulture Hodnota určuje, které prostředky jsou načteny na stránku.

Poznámka

Culture a UICulture Vlastnosti jsou nastaveny na používání řetězců standard sítě Internet, které identifikují jazyk (například en pro angličtinu, es pro španělštinu, a de pro němčinu) a jazykové verze (například US pro Spojené státy GB pro Velkou Británii MX pro Mexiko, a DE pro Německo). Některé příklady jsou en-US pro angličtina/Spojené státy en-GB pro angličtina/Velkou Británii a es-MX pro španělština/Mexiko. Další informace naleznete v tématu CultureInfo.

Nastavení dvou jazykové verze, není nutné mít stejnou hodnotu. V závislosti na vaší aplikace může být důležité je nastavit samostatně. Příkladem je web aukce.UICulture Vlastnost může měnit pro každý webový prohlížeč, zatímco Culture zůstává konstantní. Ceny jsou tedy vždy zobrazené ve stejné měně a formátování.

Culture Hodnotu lze nastavit na konkrétní jazykové verze, jako en-US nebo en-GB. Tím se zabrání požadavku k určení správného symbolu měny pro en, kde en-US a en-GB mají odlišné symboly měny.

Uživatelé mohou ve svých prohlížečích nastavit jazykové verze uživatelského rozhraní a jazykovou verzi. Například v aplikaci Microsoft Internet Explorer na Nástroje nabídky, mohou uživatelé kliknout Možnosti Internetu, na Obecné klikněte na jazyk, a poté nastavit jejich jazykové předvolby. Pokud enableClientBasedCulture atribut globalizace element v souboru Web.config je nastaven na hodnotu true, ASP.NET můžete nastavit jazykové verze uživatelského rozhraní a jazykovou verzi pro webovou stránku automaticky na základě hodnot, které jsou odeslány prohlížečem.

Není doporučeno spoléhat výhradně na nastavení prohlížeče k určení jazykové verze uživatelského rozhraní pro stránku. Uživatelé často používají prohlížeče, které nejsou nastaveny dle jejich požadavků (například v internetové kavárně). By měl poskytují způsob, jak uživatelům explicitně zvolit jazyka nebo jazyka a jazykové verze (CultureInfo název) pro stránku.

Chcete-li deklarativně nastavit jazykové verze a jazykové verze uživatelského rozhraní pro webovou stránku ASP.NET

  • Chcete-li nastavit jazykové verze uživatelského rozhraní a jazykovou verzi pro všechny stránky, přidejte globalization části souboru Web.config a poté nastavte uiculture a culture atributy, jak je znázorněno v následujícím příkladu:

    <globalization uiCulture="es" culture="es-MX" />
    
  • Chcete-li nastavit jazykové verze uživatelského rozhraní a jazykovou verzi pro jednotlivé stránky, nastavte Culture a UICulture atributy @ Page směrnice, jak je znázorněno v následujícím příkladu:

    <%@ Page UICulture="es" Culture="es-MX" %>
    
  • Nastavení jazykové verze uživatelského rozhraní a jazykovou verzi na první jazyk, který je určen v aktuální nastavení prohlížeče technologie ASP.NET, nastavte UICulture a Culture k auto. Alternativně můžete tuto hodnotu nastavit na **auto:**culture_info_name, kde culture_info_name je název jazykové verze. Seznam názvů jazykových verzí naleznete v tématu CultureInfo. Je toto nastavení můžete provést buď @ Page směrnice nebo v souboru Web.config.

Programové nastavení jazykové verze a jazykové verze uživatelského rozhraní pro webovou stránku ASP.NET

  1. Přepsat InitializeCulture Metoda pro stránku.

  2. V metodě přepsané určete, který jazyk a jazykovou verzi na stránce nastaveno.

    Poznámka

    InitializeCulture Metoda je volána velmi brzy v životním cyklu stránky, dříve, než jsou vytvořeny ovládací prvky nebo vlastnosti jsou nastavena pro stránku. Proto načíst hodnoty, které jsou předány na stránku z ovládacích prvků, musíte je získat přímo z požadavku pomocí Form kolekce.

  3. Nastavení jazykové verze uživatelského rozhraní a jazykovou verzi v jednom z následujících způsobů:

    Následující příklad kódu ukazuje ASP.NET webovou stránku, která umožní uživatelům vybrat jejich preferovaný jazyk z rozevíracího seznamu. Stránka importuje dva obory názvů, chcete-li pohodlnější pracovat s vlákny a globalizace třídami.

    Projekt webu Visual Studio se zdrojovým kódem je k dispozici pro toto téma: Stáhnout.

    <%@ Page Language="VB" uiculture="auto" %>
    <%@ Import Namespace="System.Threading" %>
    <%@ Import Namespace="System.Globalization" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 
      1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    
    <script runat="server">
        Protected Overrides Sub InitializeCulture()
            If Request.Form("ListBox1") IsNot Nothing Then
                Dim selectedLanguage As String = _
                    Request.Form("ListBox1")
                UICulture = Request.Form("ListBox1")
                Culture = Request.Form("ListBox1")
                Thread.CurrentThread.CurrentCulture = _
                    CultureInfo.CreateSpecificCulture(selectedLanguage)
                Thread.CurrentThread.CurrentUICulture = New _
                    CultureInfo(selectedLanguage)
            End If
            MyBase.InitializeCulture()
        End Sub
    </script>
    <html>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ListBox ID="ListBox1" runat="server">
                <asp:ListItem Value="en-US" 
                    Selected="True">English</asp:ListItem>
                <asp:ListItem Value="es-MX">Español</asp:ListItem>
                <asp:ListItem Value="de-DE">Deutsch</asp:ListItem>
            </asp:ListBox><br />
            <asp:Button ID="Button1" runat="server" 
                Text="Set Language" 
                meta:resourcekey="Button1" />
            <br />
            <asp:Label ID="Label1" runat="server" 
                Text="" 
                meta:resourcekey="Label1" />
            </div>
        </form>
    </body>
    </html>
    
    <%@ Page Language="C#" uiculture="auto" %>
    <%@ Import Namespace="System.Threading" %>
    <%@ Import Namespace="System.Globalization" %>
    <script runat="server">
    protected override void InitializeCulture()
    {
        if (Request.Form["ListBox1"] != null)
        {
            String selectedLanguage = Request.Form["ListBox1"];
            UICulture = selectedLanguage ;
            Culture = selectedLanguage ;
    
            Thread.CurrentThread.CurrentCulture = 
                CultureInfo.CreateSpecificCulture(selectedLanguage);
            Thread.CurrentThread.CurrentUICulture = new 
                CultureInfo(selectedLanguage);
        }
        base.InitializeCulture();
    }
    </script>
    <html>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ListBox ID="ListBox1" runat="server">
                <asp:ListItem Value="en-US" 
                    Selected="True">English</asp:ListItem>
                <asp:ListItem Value="es-MX">Español</asp:ListItem>
                <asp:ListItem Value="de-DE">Deutsch</asp:ListItem>
            </asp:ListBox><br />
            <asp:Button ID="Button1" runat="server" 
                Text="Set Language" 
                meta:resourcekey="Button1" />
            <br />
            <asp:Label ID="Label1" runat="server" 
                Text="" 
                meta:resourcekey="Label1" />
            </div>
        </form>
    </body>
    </html>
    

Viz také

ASP.NET Globalization and Localization