Vou usar esta postagem para listar as melhores instruções que encontrei para se desenvolver um website multilinguagem em plataforma .net.
Essa dica funciona muito bem para exibir as páginas aspx traduzidas em tempo real porém não traz as funcionalidades para a camada de negócios.
Camada de Apresentação: http://www.aspsnippets.com/Articles/ASPNet-Multilingual-website-Support-and-display-Multiple-Languages-English-French-in-ASPNet.aspx
Percebi que, apesar de excelente a dica acima funciona somente quando se navega na mesma página, quando o usuário troca de página o programa “esquece” a preferência do usuário e volta para o idioma padrão. Para contornar este problema fiz a seguinte alteração na clase BasePage:
Protected Overrides Sub InitializeCulture()
Dim language As String = “en-us”
‘Detect User’s Language.
If Request.UserLanguages IsNot Nothing Then
‘Set the Language.
language = Request.UserLanguages(0)
End If
‘Check if PostBack is caused by Language DropDownList.
If Request.Form(“__EVENTTARGET”) IsNot Nothing AndAlso Request.Form(“__EVENTTARGET”).Contains(“lstIdioma”) Then
‘Set the Language.
language = Request.Form(Request.Form(“__EVENTTARGET”))
Session(“Culture”) = language
End If
If Session(“Culture”) > “” Then
language = Session(“Culture”)
End If
‘Set the Culture.
Thread.CurrentThread.CurrentCulture = New CultureInfo(language)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(language)
End Sub