1. Faça a interface como antes, apenas preste atenção em usar rótulos para todos os textos que requerem uma interface multilíngue
2. Após terminar, selecione o arquivo no Solution Explorer e selecione Ferramentas->Gerar Recurso Local
3. Você descobrirá que um diretório, App_LocalResources, é gerado; há um arquivo resx adicional neste diretório. Por exemplo, se o seu arquivo aspx for default.aspx, ele gerará um arquivo chamado default.aspx.resx.
4. Abra este arquivo e dê uma olhada. Todo o texto do rótulo foi colocado aqui
. Abra o arquivo aspx original e observe a fonte. Você descobrirá que o código-fonte foi alterado:
<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default2" title="Página sem título" Culture="auto" meta: resourcekey="PageResource1" UICulture="auto" %>
…………
<asp:Localize ID="Localize1" runat="server" meta:resourcekey="Localize1Resource1"></asp:Localize>
6. Observe aqui: meta:resourcekey="PageResource1" e meta:resourcekey="Localize1Resource1" Isso significa que o texto aqui é lido do recurso.
7. OK, agora crie o arquivo de recurso para outro idioma. É muito simples, copie Default.aspx.resx e cole-o e renomeie-o para Default.aspx.fr-fr.resx. Observe que fr-fr é o nome do idioma que você deseja usar. Se você assiste a um DVDrip, deve pensar que ele é muito parecido com um arquivo de legenda, certo?
8. Algumas pessoas dizem como posso saber o nome desse idioma? É muito simples, IE aberto, ferramentas-> opções de internet-> idiomas-> adicionar, está no meio da caixa.
9. Agora comece a editar o texto de outros recursos. Abra Default.aspx.fr-fr.resx, compare o conteúdo original e altere o conteúdo para francês.
10. Neste ponto, concluímos a primeira etapa. ASP.Net escolherá o idioma exibido com base na preferência de idioma do usuário. Alterar as configurações do IE, alterar o local que acabamos de mencionar para fr-fr, abrir esta página e dar uma olhada? Se for francês, parabéns. Se não, volte e faça de novo...
11. OK, a seguir, queremos permitir que os usuários escolham seu próprio idioma em vez de automaticamente. Usamos cookies para armazenar as escolhas do usuário. Ao nível da Aplicação, lemos este cookie e definimos a cultura e cultura apropriadas. Claro, quando entramos pela primeira vez, ainda temos que ler as configurações do navegador, que podem ser obtidas em Request.UserLanguages.
Idiomas privados suportados como String() = {"en-us", "fr-fr"}
Const pública LANGUAGE_COOKIE_NAME As String = "UserLanguage"
Sub Application_AcquireRequestState(ByVal remetente As Object, ByVal e As EventArgs)
Dim idiomaCookie As HttpCookie = Request.Cookies(LANGUAGE_COOKIE_NAME)
Dim idioma As String = String.Empty
Se (idiomaCookie não é nada) Então
Dim userLanguages As String() = Request.UserLanguages
Dim index As Integer
For i As Integer = 0 To userLanguages.Length - 1
index = Array.IndexOf(SupportedLanguages, userLanguages(i))
Se índice >= 0 Então
idioma = SupportedLanguages(index)
Sair para
End If
Next
If idioma = String.Empty Então _
idioma = SupportedLanguages(0)
Response.Cookies.Add(New HttpCookie(LANGUAGE_COOKIE_NAME, idioma))
Else
idioma = idiomaCookie.Value
End If
Dim cultura As CultureInfo = New CultureInfo(idioma)
System.Threading.Thread.CurrentThread.CurrentUICulture = cultura
End Sub
12. Então precisamos de uma página que permita aos usuários selecionar o idioma. Por exemplo, usamos dois botões para fazer isso. Após clicar neste botão, queremos definir este cookie para o idioma apropriado:
Sub protegido Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Lida com Button2.Click
SetLanguage("fr-fr")
End Sub
Sub SetLanguage protegido (ByVal idioma como String)
Response.Cookies (Global.ASP.global_asax.LANGUAGE_COOKIE_NAME).Value = idioma
Dim culture As CultureInfo = New CultureInfo (idioma)
System.Threading.Thread.CurrentThread.CurrentUICulture = cultura
Server.Transfer ( Request.Path)
End Sub
Observe o Server.Transfer(Request.Path) no final, isso é para reler a página para que a página também exiba o idioma recém-selecionado.
13. Finalmente temos que remover a seleção automática do ASP.Net. Remover de Default.aspx:
Cultura="auto" UICulture="auto"
14. Abra e dê uma olhada!