1. Haga la interfaz como antes, solo preste atención al uso de etiquetas para todo el texto que requiera una interfaz multilingüe
2. Después de terminar, seleccione el archivo en el Explorador de soluciones y seleccione Herramientas->Generar recurso local
3. Verá que se genera un directorio, App_LocalResources, y hay un archivo resx adicional en este directorio. Por ejemplo, si su archivo aspx es default.aspx, generará un archivo llamado default.aspx.resx.
4. Abra este archivo y eche un vistazo. Todo el texto de la etiqueta ha ido aquí
. Abra el archivo aspx original y mire la fuente. Encontrará que el código fuente ha cambiado:
<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default2" title="Página sin título" Culture="auto" meta: Resourcekey="PageResource1" UICulture="auto" %>
…………
<asp:Localize ID="Localize1" runat="servidor" meta:resourcekey="Localize1Resource1"></asp:Localize>
6. Tenga en cuenta aquí: meta:resourcekey="PageResource1" y meta:resourcekey="Localize1Resource1" Esto significa que el texto aquí se lee del recurso.
7. Bien, ahora cree el archivo de recursos para otro idioma. Es muy simple, copie Default.aspx.resx, péguelo y luego cámbiele el nombre a Default.aspx.fr-fr.resx. Tenga en cuenta que fr-fr es el nombre del idioma que desea utilizar. Si miras un DVDrip, deberías pensar que es muy similar a un archivo de subtítulos, ¿verdad?
8. Algunas personas dicen ¿cómo sé el nombre de ese idioma? Es muy simple, abra IE, herramientas->opciones de Internet->idiomas->agregar, está en el medio del cuadro.
9. Ahora comience a editar el texto de otros recursos. Abra Default.aspx.fr-fr.resx, compare el contenido original y cámbielo al francés.
10. En este punto, hemos completado la primera etapa. ASP.Net elegirá el idioma mostrado según la preferencia de idioma del usuario. ¿Cambiar la configuración en IE, cambiar el lugar que acabamos de mencionar a fr-fr, abrir esta página y echar un vistazo? Si es francés, felicidades. Si no, regresa y hazlo de nuevo...
11. Bien, a continuación queremos permitir que los usuarios elijan su propio idioma en lugar de hacerlo automáticamente. Utilizamos cookies para almacenar las opciones del usuario. A nivel de Aplicación, leemos esta cookie y configuramos la cultura y cultura apropiadas. Por supuesto, cuando ingresamos por primera vez, todavía tenemos que leer la configuración del navegador, que se puede obtener en Request.UserLanguages.
Idiomas admitidos privados como cadena() = {"en-us", "fr-fr"}
Const pública LANGUAGE_COOKIE_NAME como cadena = "Idioma de usuario"
Sub Application_AcquireRequestState(ByVal remitente como objeto, ByVal y como EventArgs)
Dim languageCookie Como HttpCookie = Request.Cookies(LANGUAGE_COOKIE_NAME)
Dim language Como String = String.Empty
Si (languageCookie no es nada), entonces
atenuar userLanguages como String() = Request.UserLanguages
atenuar el índice como entero
para i como entero = 0 Para userLanguages.Length - 1
índice = Array.IndexOf(SupportedLanguages, userLanguages(i))
Si índice >= 0 Entonces
idioma = SupportedLanguages(índice)
Salir para
finalizar si
es siguiente
Si idioma = String.Empty Entonces _
idioma = SupportedLanguages(0)
Response.Cookies.Add(New HttpCookie(LANGUAGE_COOKIE_NAME, idioma))
De lo contrario
idioma = languageCookie.Value
End If
Cultura tenue As CultureInfo = New CultureInfo (idioma)
System.Threading.Thread.CurrentThread.CurrentUICulture = cultura
End Sub
12. Luego necesitamos tener una página que permita a los usuarios seleccionar el idioma. Por ejemplo, usamos dos botones para hacerlo. Después de hacer clic en este botón, queremos configurar esta cookie en el idioma apropiado:
Sub protegido Button2_Click (ByVal remitente como objeto, ByVal e As System.EventArgs) Maneja Button2.Click
SetLanguage ("fr-fr")
End Sub
Sub protegido SetLanguage(ByVal idioma como cadena)
Response.Cookies(Global.ASP.global_asax.LANGUAGE_COOKIE_NAME).Value = idioma
Cultura tenue As CultureInfo = New CultureInfo(idioma)
System.Threading.Thread.CurrentThread.CurrentUICulture = cultura
Server.Transfer( Solicitud.Ruta)
Fin Sub
Tenga en cuenta Server.Transfer(Request.Path) al final, esto es para volver a leer la página para que la página también muestre el idioma recién seleccionado.
13. Finalmente tenemos que quitar la selección automática de ASP.Net. Eliminar de Default.aspx:
Cultura="auto" UICultura="auto"
14. ¡Ábrelo y echa un vistazo!