Problemas de globalización en ASP y ASP.NET


Columna de voz de soporte de ASP.NET


Para personalizar esta columna a sus necesidades, le invitamos a que envíe sus ideas acerca de temas que le interesen y los problemas que desea ver en el futuro tratarse de artículos de Knowledge Base y columnas de voz de soporte. Puede enviar sus ideas y comentarios mediante el Preguntar para el formulario. También hay un vínculo al formulario en la parte inferior de esta columna.

Introducción


Bienvenido. Esto es Sukesh Khare con el equipo de soporte para desarrolladores de Microsoft ASP.NET. Esta es la primera vez que he creado una columna de voz de soporte. Espero creación más dichas columnas en los próximos meses.

Para la columna de este mes, voy a explicar los problemas de globalización en páginas Active Server (ASP) y ASP.NET, los problemas que nos enfrentamos en ASP, qué cosas han cambiado en ASP.NET 1 x y qué pasa con ASP.NET 2.0 en la parte frontal de la globalización.

Nota: Si te encuentras con un término que no entienda, consulte la sección glosario en la parte inferior de esta columna.

Problemas de globalización en ASP

Antes de ASP.NET, no había ningún soporte estructurado para el desarrollo de aplicaciones para usuarios globales. Durante las fases tempranas del desarrollo de ASP, los desarrolladores como yo mismo encontró sólo dispersos compatibilidad de globalización en los sistemas operativos, exploradores, ASP y sistemas back-end. Sin embargo, rara vez se observó cualquier conectividad automática en estas aplicaciones. Afortunadamente, se hicieron entendido conceptos tales como juegos de caracteres, páginas de códigos, lenguajes de explorador y fuentes que podríamos aprovechar para el desarrollo de aplicaciones para usuarios globales.

Sería demasiado difícil separar en categorías todas de la globalización problemas que aquellos de nosotros en ASP.NET han visto. En su lugar, podrá mostrar una serie de conceptos que se refieren a una variedad de esos problemas.

Páginas de códigos y juegos de caracteres

Todos sabemos que los caracteres en la pantalla del equipo son sólo una serie de bytes. La serie de bytes puede ser creada e interpretada en cualquier número de formas. Si la interpretación utiliza una codificación diferente a la que se creó la matriz de bytes con codificación, la interpretación se mostrará como basura. Juegos de caracteres (caracteres) están codificando formatos que normalmente son utilizados por los exploradores. La propiedad Codepage , que es más aplicable para las conversiones del lado del servidor, es simplemente una tabla de conversión que especifica cómo se codifican los caracteres.

Los exploradores codifican los datos del formulario post según el juego de caracteres actual. Si el conjunto actual de caracteres es "windows-1256," la transmisión de bytes al servidor también se codifica como "windows-1256."

Cuando se interpreta el ASP, las colecciones Querystring y de formulario no se crean hasta que se hace referencia en el código. Cuando se construyen, se transforman los datos de cadena a Unicode según la página de códigos actual. (De forma predeterminada, ASP y ASP.NET procesan contenido con formato Unicode). Es muy importante definir la página de códigos correcta antes de hacer referencia a las colecciones; de lo contrario, la representación Unicode en la memoria no será correcta.

Para establecer una página de códigos, utilice Session.Codepage o Response.Codepage. El Response.Codepage sólo está disponible en versiones de Microsoft Internet Information Services (IIS) 5.1 o posterior. Para obtener información acerca de los valores de entero (que corresponden al conjunto de caracteres) que debemos configurar estas propiedades a, visite el siguiente sitio Web de Microsoft:
Reconocimiento del juego de caracteres
http://msdn2.microsoft.com/en-us/library/Aa752010.aspx
Por ejemplo, para establecer la página de códigos para el idioma árabe, utilice el código siguiente:
Session.Codepage = 1256
Response.Codepage sólo afectará a la respuesta actual. Sin embargo, Session.Codepage afectarán a todas las respuestas hechas por el usuario actual. Cuando la página de códigos se establece mediante una de estas propiedades y se crean las colecciones Querystring y de formulario , este cambio en la página de códigos actual hace que el método Response.Write transformar el Unicode en la memoria a la página de códigos actual. Para obtener más información acerca de este tema, visite el siguiente sitio Web de MSDN:
Establecer la página de códigos para la cadena de conversiones (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspx
Lo que importa cuando se trata de los problemas relacionados con juegos de caracteres y páginas de códigos es ese juego de caracteres del cliente y debe coincidir con la página de códigos del servidor.

Aceptar idiomas

Si un programador ASP desea saber qué idiomas que un usuario ha establecido en su explorador, el desarrollador puede utilizar la variable Request.ServerVariables ("HTTP_ACCEPT_LANGUAGE") para buscar la lista de idiomas que al usuario le gustaría leer la respuesta, (por ejemplo, inglés, alemán o hindú) y el orden de preferencia que le gustaría ver estos lenguajes en el usuario. En ASP.NET, la información similar está presente en la propiedad Request.UserLanguages como una matriz.
Para obtener más información acerca de cómo utilizar esta información en el código ASP, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
229690 cómo establecer el identificador de configuración regional de ASP por la configuración de idioma del explorador

Mostrar caracteres multibyte establece en Internet Explorer

El único formato de codificación que puede mostrar un juego de caracteres de múltiples bytes es Unicode (UTF-8). Con UTF-8, podemos mostrar cirílico, indio y japonés todo en la misma página. Si no se utiliza UTF-8, podemos mostrar sólo uno de estos idiomas a la vez. Para establecer el juego de caracteres del explorador, utilice la propiedad Response.CharSet .

Caracteres de varios bytes estáticos en una página

Para mostrar caracteres de varios bytes almacenados directamente en la página, primero debemos guardar la página con una codificación específica. UTF-8 será mejor, pero también funcionan una página de códigos específica (coincide con la página de códigos de los caracteres).

Guardar un archivo ASP mediante Microsoft Visual InterDev no ayuda en este caso, puesto que Visual InterDev sólo se pueden guardar en inglés de ANSI o Unicode. Cualquier página ASP que se guardan como Unicode no es compatible con ASP.

En Microsoft Visual Studio. NET, puede guardar un archivo en cualquier codificación. Hay dos formas de hacerlo. El valor predeterminado es cierto guardar el archivo utilizando la página de códigos actual del usuario. Una forma adicional para guardar un archivo con una codificación es la siguiente:
En el menú archivo , haga clic en Guardar archivo como. En
Cuadro de diálogo Guardar archivo como cuadro, haga clic en la flecha de lista desplegable en la
Botón de Guardar . Al hacer clic en la flecha, las opciones son
Guardar y Guardar con codificación. Al hacer clic en
Guardar con codificación, el cuadro de diálogo Opciones avanzadas para guardar aparece donde puede seleccionar el tipo de codificación que desea aplicar en una lista de las páginas de códigos que están instaladas en el equipo.


Nota: Esto cambia la codificación para guardar la operación, pero es de sólo una vez. La próxima acción de guardar se establecerá volver al valor predeterminado.

Para cambiar la página de códigos predeterminada, haga clic en Opciones avanzadas para guardar en el
Menú archivo . En el cuadro de diálogo Opciones avanzadas para guardar , puede establecer la codificación predeterminada para guardar las operaciones a la página de códigos de su elección.

Estos métodos están relacionadas con cómo se guarda el archivo en disco. Sin embargo, para controlar la salida de ASP, como ya se explicó, debemos establecer el Session.CodePage y las propiedades Response.CharSet . Con IIS 5.1 y versiones posteriores, también nosotros podemos utilizar la propiedad Response.CodePage .

Página de códigos de forma predeterminada en el servidor

La configuración regional predeterminada y la página de códigos predeterminada de la página dependen de la configuración del registro para el. Usuario por defecto. Podemos encontrar la clave en el subárbol del registro HKEY_USERS\ internacional. DEFAULT\Control Panel\International. También podemos cambiar el comportamiento de la configuración regional seleccionada por IIS. Para obtener más información, consulte la sección "IIS 5.0" en el siguiente artículo de Knowledge Base:
306044 formato de comportamiento de fecha y hora es diferente cuando se tiene acceso desde páginas Active Server

Si el usuario ha iniciado sesión tiene la misma configuración regional establecida como la predeterminada del sistema o de la clave anterior, la configuración del usuario tiene prioridad.

Ejemplo: Configuración regional predeterminada tiene fecha formato de conjunto como 11.1.2004 mientras el usuario ha iniciado la sesión (con el mismo conjunto de configuración regional) tiene el formato de fecha como 11/1/2004. La configuración de 1/11/2004 surtirá efecto para ASP.

(Para ASP.NET, esto puede variar. En algunas instalaciones, el usuario ASPNET tendrá su propio perfil que se mostrará en HKEY_USERS cuando se carga. En otros casos, utilizará el. Perfil predeterminado. También nos podemos utilizar el atributo de página de códigos en la declaración < % @ % >. Esto debe utilizarse cuando el archivo se guarda con una codificación diferente, a continuación, el valor predeterminado, como la página de códigos 932 (japonés)).

¿Problemas de la página de códigos frente a problemas de conversión de fuente: cuál es cuál?

En ocasiones, puede que vea un carácter de signo de interrogación (?) o un cuadro donde un carácter se supone aparece.
Problemas de conversión de página de códigos
Cuando un carácter se reemplaza por un carácter de signo de interrogación (?), esto es una indicación de que se ha producido un problema de conversión de página de códigos. El signo de interrogación (?) es un carácter predeterminado para la conversión de página de códigos y básicamente significa que el sistema operativo no sabe cómo controlar el valor del carácter y convertirlo. Reemplaza el valor del carácter con un signo de interrogación (?). Esto puede significar que el carácter tiene un valor no válido para la página de códigos o que la página de códigos que se necesita para que la conversión no está instalado.
Problemas de conversión de fuentes
Cuando un carácter se reemplaza por un cuadro, esto es una indicación de que se ha producido un problema de conversión de la fuente. Esto se produce en el cliente cuando el cliente no tiene la fuente correcta instalada para mostrar correctamente este carácter. Por ejemplo, cuando es un carácter en el juego de caracteres japonés y el cliente no tiene instaladas las fuentes japonesas, los caracteres japoneses se muestran como un cuadro.

A continuación, hablaré acerca de cómo cambiar las cosas en ASP.NET 1.x y cómo esos cambios afectan a los problemas de globalización en el contexto de ASP.NET.

Problemas de globalización en ASP.NET 1.x:

Con ASP.NET, se introdujeron tres grandes cosas:
  • La etiqueta < globalization > en el archivo web.config
    La etiqueta < globalization > nos lleva fuera de los conceptos incoherentes de páginas de códigos y conjuntos de caracteres y nos permite controlar la mayor parte de las variantes dentro de ASP.NET.
  • El espacio de nombres System.Globalization
    El espacio de nombres de globalización nos proporciona la potencia de programación de la globalización.
  • El concepto de archivos de recursos se ha mejorado considerablemente.
    No tratamos con archivos de recursos en la forma en que utilizamos en ASP. Ahora, los archivos de recursos están en forma de archivos XML cuando diseñamos y desarrollarlos y existen como ensambla en tiempo de ejecución.
La etiqueta de configuración de la globalización:

Dos opciones importantes en la etiqueta son los siguientes:
<globalization             requestEncoding="utf-8" 
responseEncoding="utf-8" />
Sigue a otras áreas de configuración posible:
fileEncodingEspecifica la codificación predeterminada para analizar archivos .aspx, .asmx y .asax. Los archivos Unicode y UTF-8 guardados con el prefijo byte order mark (con firma) se reconocerán automáticamente, independientemente del valor de fileEncoding.
Referencia culturalEspecifica la referencia cultural predeterminada para procesar las solicitudes Web entrantes (aplicables en los métodos de las clases del espacio de nombres System.Globalization).
uiCultureEspecifica la referencia cultural predeterminada para procesar las búsquedas de recursos dependientes de la configuración regional (ensamblados satélite).
Para obtener más información sobre las cadenas de referencia cultural (valores de culture y uiculture), visite el siguiente sitio Web de Microsoft:Estas configuraciones se aplican por ASP.NET una vez finalizada la respuesta y antes de que la solicitud se entrega a la aplicación. Para responseEncoding, se establece el búfer en el que se crea para almacenar los resultados para esta codificación. Todo lo que entra en este búfer se codificará según la configuración como se inserta en el búfer.

Para requestEncoding, el runtime leerá la solicitud y se interpretan según la configuración de esta sección. Ésta es una configuración que puede causar problemas, sin embargo. La tabla siguiente muestra el diseño de bits de una secuencia de bytes UTF-8 válido.

Si el valor del carácter que se encuentra en el bit 7 de ASCII estándar, no se modifica el valor del byte. Si el valor está por encima de 127, debe seguir las reglas siguientes. El conjunto inicial de bits muestra el número de caracteres que se encuentran en la secuencia. Cada byte después de la primera debe comenzar con el primer bit establecido en 1.

Diseño de bytes UTF-8:
Bytesbitsrepresentación
170vvvvvvv
211110vvvvv 10vvvvvv
3161110vvvv 10vvvvvv 10vvvvvv
42111110vvv 10vvvvvv 10vvvvvv 10vvvvvv
Aquí es donde entra el problema. Si el explorador codifica la solicitud según una codificación de un solo byte (por ejemplo, iso-8859-1), los valores por encima del 127 no será válidos de acuerdo con el diseño anterior. Cuando se leen en el búfer UTF-8, los caracteres no válidos simplemente se quitan de la salida.

Cambios de codificación en tiempo de ejecución

En el evento Application_BeginRequest , podemos modificar el valor de requestEncoding y que surta efecto antes de procesar la solicitud. Para la respuesta, el evento Page_PreRender es la última oportunidad de modificar la codificación de la salida. También nota que Response.Write se colocar caracteres en este búfer tan pronto como lo llamamos, así que asegúrese de tener el conjunto de codificación adecuado antes de utilizar Response.Write.

¿Datos originales están no Unicode: cómo todavía hacen que Internet Explorer interprete los juegos de caracteres de varios bytes?

También podemos hacer que ASP.NET se comportan como ASP, si es necesario. Para que esto suceda, necesitamos configurar requestEncoding y responseEncoding en windows-1252 (una más completa codificación de iso-8859-1) y utilice la propiedad Response.Charset para mostrar el texto correctamente. Esto funciona porque windows-1252 es un esquema de codificación de un solo byte y no modifica los bytes que se agregan al búfer. Por lo tanto, los caracteres de doble byte se envían como una serie de bytes individuales. A continuación, le podemos indicar a Internet Explorer cómo interpretar los bytes mediante la propiedad Response.Charset . Esta situación puede ser necesaria si los datos originales no se almacenan como Unicode o UTF-8, como un valor devuelto desde un objeto COM, o si los datos se almacenan en Microsoft SQL Server en un campo no N (como varchar).

Problemas de globalización de SQL Server y ASP.NET

Entrada de datos Unicode a SQL Server
La mejor manera de almacenar los datos en SQL Server consiste en utilizar Unicode. Siempre que utilicemos INSERT, UPDATE, etc., si incluso hay menos posibilidades de datos Unicode, necesitamos agregar una N delante del valor. Esto indica que la base de datos que el valor es Unicode. Un buen ejemplo de esto es que los objetos de ADO. Para ello automáticamente si utilizamos el objeto Recordset para agregar nuevos registros.

El siguiente es un ejemplo:
INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"

Fecha y hora de entrada a SQL Server
Generalmente, contamos con el conocimiento acerca de la referencia cultural y configuración regional de fecha y hora que se interpreta dentro de nuestra aplicación de ASP.NET. Sin embargo, mientras empujando y tirando de los datos de fecha y hora a y desde orígenes externos, se corre el riesgo de interpretar erróneamente los formatos de fecha y hora. Esto es debido a que no siempre podemos garantizar la cultura y la configuración regional del origen externo sean los mismos que en nuestra aplicación. En SQL Server esto puede resolverse mediante el ' actual idioma' atributo connectionstring de la conexión está establecida para la base de datos SQL. Podemos proporcionar la misma configuración de idioma en connectionstring como es la referencia cultural en nuestra aplicación. Esto nos protege contra el riesgo de error de interpretación, porque SQL Server siempre acepta y envía los datos de fecha y hora de acuerdo con la configuración mencionada anteriormente.

Espacio de nombres System.Globalization

Este espacio de nombres es el núcleo de la globalización y localización en el.NET Framework. La clase principal utilizada en este espacio de nombres es la clase CultureInfo . Contiene información específica de la referencia cultural, como el formato de fecha y hora, formatos de número, información de comparación e información de texto. Para obtener más información acerca de la clase CultureInfo , visite el siguiente sitio Web de MSDN:

Referencias culturales neutras y referencias culturales específicas

Una referencia cultural neutra es una referencia cultural que está asociada a un idioma pero no a una región o país específicos. Una referencia cultural específica está asociada con un idioma y un país determinado.

Ejemplo: "DE" (referencia cultural neutra) es para el idioma alemán, pero es "de-AT" (referencia cultural específica) para el idioma alemán tal como se habla en Austria. Las referencias culturales neutras no se puede utilizar para dar formato.

Conciencia de subproceso y la referencia cultural actual de clases de.NET Framework

Todas las clases y métodos de la biblioteca de.NET Framework donde esperaríamos que la salida es dependiente de la referencia cultural tienen dos comportamientos incorporados:
  • Nos permiten especificar el código de referencia cultural al proporcionar los argumentos que el resultado se basa en la referencia cultural especificada. Esto es opcional.
  • Si esto se pierde (normalmente es), las clases son lo suficientemente inteligentes como para mantener una comprobación de la propiedad Thread.CurrentThread.CurrentCulture y trabajo de acuerdo con que.
Podemos modificar el valor de esta propiedad con código similar al siguiente:
    Dim ci As CultureInfo        ci = New CultureInfo("de-AT")
Thread.CurrentThread.CurrentCulture = ci
En este ejemplo de código, "de" representa el idioma alemán y "AT" representa Austria. Por lo tanto, en este caso, el DateTime.Now(). ToString método devuelve la fecha y la hora en un formato que corresponde la manera en que la fecha y la hora se expresan en el idioma alemán en Austria.

El marco de trabajo (como se indica a continuación) garantiza que siempre se inicializa la propiedad CurrentCulture :
  1. Todo lo que se establece en mediante programación.
  2. En caso de que no se establece explícitamente por el programador, se selecciona la propiedad de los archivos de configuración (etiqueta < globalization >).
  3. Si la propiedad no se encuentra allí, es la referencia cultural en el que se ejecuta el servidor Web. Suele ser la referencia cultural neutra que corresponda al idioma del sistema operativo.

Archivos de recursos

.Resx, archivos de recursos y archivos que tienen el atributo de Acción de generación establecido en EmbeddedResource y que se agregan a un proyecto ASP.NET en Visual Studio. NET, todas las se compila automáticamente e incrustados en el ensamblado de la aplicación como parte de su manifiesto. Esto puede incluso hacerse manualmente mediante la utilidad de generador de archivos de recursos (RESGEN) desde un símbolo del sistema de Visual Studio .NET. Para obtener más información, visite el siguiente sitio Web de MSDN:Se trata de un concepto general que se aplica cada vez que se necesita administrar los recursos de la aplicación que están relacionados con la globalización. Sin embargo, cuando estamos implementando la globalización, debemos usar ensamblados satélite.

Ensamblados satélite

Ensamblados satélite pueden utilizarse en un proyecto ASP.NET, asegúrese de que lo siguiente es cierto:
  1. Todos los elementos de la interfaz de usuario de todos los archivos aspx deben estar equipados con id y runat = atributos del servidor.
  2. Creamos archivos .resx independientes. Cada uno de ellos debe corresponder a cada referencia cultural que deseamos que nuestra aplicación para admitir.
  3. Debemos decidir un nombre común para todos estos archivos, por ejemplo, 'Strings'.
  4. Se nombre a los archivos .resx independiente con el siguiente .resx de nomenclatura convención códigoIdioma regioncode de commonfirstname.(por ejemplo: Strings.de-AT.resx, Strings.en-GB.resx).
  5. Deberíamos tener el archivo de recursos
    commonfirstname.resx (Strings.resx) que todas las cadenas como queremos que se muestran en el caso predeterminado.
  6. Escribir código para detectar la referencia cultural del usuario y establezca la propiedad Thread.CurrentThread.CurrentUICulture para hacer coincidir a él.
  7. Escribir código para cargar los recursos mediante la clase ResourceManager .
  8. Escribir código para extraer cadenas desde el objeto cargado y asignarlos a los elementos de la interfaz de usuario.
Cuando haya realizado estos pasos, Visual Studio.NET compilará Strings.resx e incrustarlo en el ensamblado de aplicación (MyGlobalizationTestProjectName.dll). Sin embargo, para todos los demás archivos .resx, generará archivos dll independientes que no tienen código ejecutable, pero sólo los datos de recursos. En realidad se denominan ensamblados satélite. Además, Visual Studio .NET coloca éstos en la estructura de carpetas similar al siguiente:
MyGlobalizationTestProjectName        |------- bin
|------en-US
MyGlobalizationTestProjectName.resources.dll
|------ja-JP
MyGlobalizationTestProjectName.resources.dll
|------de-AT
MyGlobalizationTestProjectName.resources.dll

Diferencia entre CurrentCulture y CurrentUICulture

Mientras que los métodos de clases en el espacio de nombres System.Globalization dependen de la propiedad Thread.CurrentThread.CurrentCulture dar su resultado, la clase ResourceManager que carga el ensamblado de recursos depende de la propiedad Thread.CurrentThread.CurrentUICulture para cargar el ensamblado satélite adecuado. El siguiente es un ejemplo de código C#:
using System.Globalization;using System.Threading;
using System.Resources;

//Load resources.
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e)

{

if (!IsPostBack)

{
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
}

}

Orden en el que ASP.NET selecciona ensamblados satélite:

Una vez configurados del subproceso CurrentUICulture, ASP.NET selecciona automáticamente los recursos que coinciden, en el orden siguiente:
  • Si se encuentra un ensamblado satélite con la cultura coincidente, se utilizan los recursos de ese ensamblado.
  • Si se encuentra un ensamblado satélite con una referencia cultural neutra que coincida con el de CurrentUICulture, se utilizan los recursos de ese ensamblado.
  • Si no se encuentra una coincidencia de CurrentUICulture, se utilizan los recursos de reserva que se almacenan en el ensamblado ejecutable.
Nota: Esto se basa en el proceso de reserva de recursos más general. Para obtener más información, visite el siguiente sitio Web de MSDN:

Crear manualmente ensamblados satélite:

Este uso de ensamblados satélite es donde Visual Studio .NET se crea los ensamblados. Visual Studio .NET no ensamblados de nombre seguro de forma predeterminada, sin embargo. Si desea cambiar estas opciones, deberá crear manualmente ensamblados satélite. Para obtener más información, visite el siguiente sitio Web de MSDN:.

¿Qué sucede con ASP.NET 2.0 en la parte frontal de la globalización?

El uso generalizado de ASP.NET y los tipos de problemas que vemos con respecto a las características de globalización en ASP.NET 2.0 siguen siendo cierta distancia por delante. Sin embargo, sería aconsejable seguir un breve vistazo a qué dirección se dirige la metodología de globalización para aplicaciones web.

Compatibilidad de globalización en ASP.NET 2.0 ha experimentado un cambio radical y los desarrolladores de Web le ha dado la capacidad de facilitar la localización de aplicaciones Web como para aplicaciones basadas en Windows. La siguiente es una lista de características que son la base de la metodología de globalización en ASP.NET 2.0:

Recursos inflexibles En el núcleo de la versión 2.0 de.NET Framework versión es la compatibilidad para los recursos inflexibles que proporcionan a los desarrolladores con Intellisense y simplifica el código necesario para obtener acceso a recursos en tiempo de ejecución.

Administrar el Editor de recursos Visual Studio .NET 2.0 incluye un nuevo editor de recursos con mayor funcionalidad para la creación y administración de entradas de recursos incluye cadenas, imágenes, archivos externos y otros tipos complejos.

Generación de recursos para formularios Web Forms Los desarrolladores de formularios Windows Forms ya han disfrutado de las ventajas de la internacionalización automático. Visual Studio .NET 2005 ahora soportará internacionalización rápida generando automáticamente los recursos para los formularios Web Forms, controles de usuario y páginas maestras.

Compatibilidad en tiempo de ejecución mejorada Instancias de ResourceManager son fácilmente accesibles al código del servidor a través de interfaces de programación sean más accesibles y administrados por el tiempo de ejecución.

Expresiones de localización Moderno expresiones declarativas de páginas Web compatible con entradas de asignación de recursos para controlar propiedades, propiedades HTML o áreas de contenido estáticas. Estas expresiones también son extensibles, lo que proporciona otras maneras de controlar el proceso de asociar el contenido localizado en la salida HTML.

Selección automática de referencia cultural Administración de selección de la referencia cultural para cada solicitud Web puede se vinculan automáticamente a las preferencias del explorador.

Modelo de proveedor de recursos Un nuevo modelo de proveedor de recursos permite a los programadores recursos del host en orígenes de datos alternativos como archivos sin formato y tablas de base de datos, mientras que el modelo de programación para tener acceso a esos recursos permanece coherente.

Para obtener más información acerca de la metodología de globalización en ASP.NET 2.0, visite el siguiente sitio Web de MSDN:
Características ASP.NET 2.0 de localización: Un nuevo enfoque a la localización de aplicaciones Web
http://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

Conclusión

Eso es todo por ahora acerca de los problemas de globalización en ASP y ASP.NET. Espero que este artículo le ayudará a algunos clientes a solucionar sus problemas de globalización en ASP y ASP.NET antes de ponerse en contacto con Microsoft Support optan por. Terminaré con el siguiente pensado:

"Donde quiera y cuando está desarrollando, piense en los millones de personas pueden capacitar a todo el mundo. ¡Hacer que las soluciones de uso internacional! Tecnologías y herramientas de Microsoft facilitan internacionalización."

Capturamos el mes que viene otra vez con otro tema interesante.

Gracias por su tiempo.
Para obtener más información acerca de los problemas de globalización en ASP y ASP.NET, consulte los siguientes sitios Web de Microsoft:
Go Global: Localización de aplicaciones Web dinámicas con IIS 5.0 y SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx
Go Global: Diseñar el sitio de Web basado en ASP para apoyar la globalización.
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx
315616 cómo detectar el idioma de un cliente en un páginas Active Server Page en IIS
http://support.microsoft.com/?id=315616
Gráfico ID(LCID) de configuración regional
http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx
Recursos y localización con el SDK de.NET Framework
http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx
Elemento de configuración de ASP.NET < globalization >
http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx
Las instrucciones de implementación para los clientes de Web - globalización y localización y diseño
http://msdn2.microsoft.com/en-us/library/ms978628.aspx
Sitio oficial de Microsoft: Portal de informática y desarrollo Global
http://msdn.microsoft.com/en-us/goglobal/bb688096
Desarrollar aplicaciones de uso internacional
http://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx
Arquitectura de globalización para ASP.NET
http://msdn2.microsoft.com/en-us/library/aa478974.aspx
Toolkit de localización empresarial - para desarrollar aplicaciones ASP.NET de Microsoft localizados
http://msdn2.microsoft.com/en-us/library/aa479334.aspx
839861 System.Resources.MissingManifestResourceException una excepción se produce cuando intenta tener acceso a un recurso localizado

Glosario

ANSI Acrónimo de American National Standards Institute. En este contexto, representa una página de códigos específico de un determinado idioma o juego de caracteres. Más a menudo hace referencia a la página de códigos inglés (windows-1252).

ASCII Un esquema de codificación de 1 byte (o 7 bits). Sólo los caracteres en el intervalo 0-127 están estandarizados. El intervalo 128-255 es extensiones a ASCII y no forma parte del estándar. Un ejemplo de esto es la diferencia entre el rango superior de la tabla ASCII de OEM y la tabla ASCII de VB.

Juego de caracteres Configuración utilizado principalmente para Internet Explorer y exploradores que indica al explorador cómo interpretar los datos de caracteres. Ejemplo: Response.charSet = "iso-8859-1".

Página de códigos Tabla de conversión que especifica cómo se codifican los caracteres (generalmente se utiliza para los servidores).

Globalización La globalización es un proceso de diseño y creación de una aplicación para que se puedan satisfacer los requerimientos únicos de una cultura, región o necesidades lingüísticas y nacionales. En otras palabras diseñar una aplicación de manera que puede estar localizado más adelante es la globalización.

Cultura o configuración regional Idioma y región específicos o preferencias de formatos incluidos, fecha y formatos de calendario, formatos de hora, formatos de moneda, y minúsculas, ordenación y comparación de cadenas, formatos de dirección, formatos de número, los tamaños de papel, unidad de medida, escribir la dirección, etc. del teléfono.

Identificador de configuración regional (LCID) Un valor DWORD que especifica el identificador de idioma y el Id. Puede usar para especificar los formatos de región específica para ex fecha/hora etc. se debe aplicar formato según.

Localizabilidad Capacidad de una aplicación para presentar el contenido para el idioma o configuración regional solicitada.

Localización Localización es el proceso de traducir una interfaz de usuario a idiomas específicos o configuraciones regionales.

Juego de caracteres multibyte Un conjunto de caracteres de que los caracteres se componen de dos o más bytes, como el japonés. UTF-8 también entra en esta categoría. (Unicode es técnicamente en esta categoría, pero en Windows, tiene su propia categoría).

Unicode Un esquema de codificación de 2 bytes. Windows utiliza Unicode internamente. Ninguna API específicamente para Unicode está indicado por una "W" al final del nombre de la función. También se conoce como tipo wide char; no se puede utilizar directamente desde las aplicaciones web.

UTF-8 Una codificación de caracteres en un carácter puede ser representado por 1-6 bytes. En Windows, el intervalo es 1-3 bytes. No se admite en NT4 para las aplicaciones web.
Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
Soporte de UTF8 175392


Conjunto de caracteres anchos Un alias de Unicode. También se conoce como DBCS (juego de caracteres de doble byte), UCS-2, UTF-16.
Como siempre, no dude en enviar ideas sobre temas que desea examinarse en futuras columnas o en Knowledge Base utilizando la
Preguntar para el formulario.