Partilhar via


Como: conjunto a cultura e UI Culture for ASP.NET Web página globalização

Em um página da Web o ASP.NET, você pode definir como dois valores da cultura, o Culture e UICulture Propriedades.O valor Culture determina os resultados das funções dependentes de cultura, como a formatação da data, do número e da moeda, e assim por diante.O valor UICulture determina quais recursos são carregados para a página.

Observação:

As propriedades Culture e UICulture são definidas usando sequências de caracteres padrão da Internet que identificam o idioma (por exemplo, en para inglês, es para espanhol e de para alemão) e a cultura (por exemplo, US para o Estados Unidos, GB para Grã-Bretanha, MX para México e DE para Alemanha).Alguns exemplos são en-US para inglês / Estados Unidos, en-GB para inglês/Grã-Bretanha e es-MX para espanhol/Mexico.Para obter mais informações, consulte CultureInfo.

As duas configurações de cultura não tem que ter o mesmo valor.Dependendo seu aplicativo, talvez seja importante defini-las separadamente.Um exemplo é um site Web de leilão.A propriedade UICulture pode mudar para cada navegador da Web, enquanto a Culture permanece constante.Portanto, os preços são sempre exibidos na mesma moeda e formatação.

O valor Culture pode ser definido para culturas específicas apenas, como en-US ou en-GB.Isso impede que o requisito para identificar o símbolo correto da moeda a ser usado para en, onde en-US e en-GB têm símbolos diferentes de moeda.

Os usuários podem definir a cultura da interface do usuário e a cultura em seus navegadores.Por exemplo, no Microsoft Internet Explorer, no menu Tools, os usuários podem clicar em Internet Options, na guia General, clicar em Language e, em seguida, definir sua preferência de idioma.Se o atributo enableClientBasedCulture do elemento G lobalization no arquivo Web.config é definido como true, o ASP.NET pode definir a cultura da interface do usuário e a cultura para uma página da Web automaticamente, com base nos valores que são enviados por um navegador.

Não é recomendável confiar exclusivamente nas configurações do navegador para determinar a cultura da interface do usuário para uma página.Os usuários frequentemente usam navegadores que não estão definidos para suas preferências (por exemplo, em um cybercafe).Você deve fornecer um método para os usuários escolherem explicitamente um idioma ou idioma e cultura (nome CultureInfo) para a página.

Para definir a cultura e cultura da interface de usuário para uma página da Web ASP.NET declarativamente

  • Para definir a interface do usuário cultura e da cultura para todas as páginas, adicione uma globalization seção para o arquivo web.config e, em seguida, definir o uiculture e culture atributos, como mostrado no exemplo o seguir:

    <globalization uiCulture="es" culture="es-MX" />
    
  • Para definir a cultura de interface do usuário e a cultura para uma página individual, defina os atributos Culture e UICulture da diretiva @ Page, conforme mostrado no exemplo o seguir:

    <%@ Page UICulture="es" Culture="es-MX" %>
    
  • Para o ASP.NET definir a cultura de interface do usuário e a cultura para o primeiro idioma que é especificado nas configurações do navegador atual, defina UICulture e Culture para auto.Como alternativa, você pode definir esse valor para auto:culture_info_name, onde culture_info_name é um nome de cultura.Para obter uma lista dos nomes de cultura, consulte CultureInfo.Você pode fazer essa configuração tanto no arquivo Web.config ou na diretiva @ Page.

CPara definir a cultura e a cultura de interface de usuário para uma página da Web ASP.NET de formaprogramável

  1. Substituir o método InitializeCulture para a página.

  2. No método substituído, determine qual o idioma e a cultura para definir a página.

    Observação:

    O método InitializeCulture é denominado muito cedo no ciclo de vida da página, antes que os controles sejam criados ou as propriedades sejam definidas para a página.Portanto, para ler valores que são passados para a página de controles, você deve obtê-los diretamente da solicitação usando a coleção Form.

  3. Defina a cultura de interface do usuário e a cultura de uma das seguintes maneiras:

    • Definir o Culture e UICulture Propriedades de-la para a sequência de idioma e cultura (por exemplo, en-US) .Essas propriedades são internas à página e só podem ser usadas em uma página.

    • Defina as propriedades CurrentUICulture e CurrentCulture do encadeamento atual para a cultura de interface de usuário e cultura, respectivamente.A propriedade CurrentUICulture leva um idioma e uma sequência de informações de cultura.Para definir a propriedade CurrentCulture, você cria uma instância da classe CultureInfo e chama o método CreateSpecificCulture.

    O exemplo de código a seguir mostra uma página da Web do ASP.NET que permite que os usuários selecionem seu idioma preferencial de uma lista drop-down.A página importa dois namespaces para torná-lo mais conveniente trabalhar com classes de segmentação e globalização.

    <%@ 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 >
        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" >
        <div>
            <asp:ListBox ID="ListBox1" >
                <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"  
                Text="Set Language" 
                meta:resourcekey="Button1" />
            <br />
            <asp:Label ID="Label1"  
                Text="" 
                meta:resourcekey="Label1" />
            </div>
        </form>
    </body>
    </html>
    
    <%@ Page Language="C#" uiculture="auto" %>
    <%@ Import Namespace="System.Threading" %>
    <%@ Import Namespace="System.Globalization" %>
    <script >
    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" >
        <div>
            <asp:ListBox ID="ListBox1" >
                <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"  
                Text="Set Language" 
                meta:resourcekey="Button1" />
            <br />
            <asp:Label ID="Label1"  
                Text="" 
                meta:resourcekey="Label1" />
            </div>
        </form>
    </body>
    </html>
    

Consulte também

Outros recursos

Globalização e Localização no ASP.NET