Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

ASP.NET columna de voz de soporte técnico

Para personalizar esta columna según sus necesidades, le invitamos a que envíe sus ideas sobre temas que le interesen y los problemas que desea ver tratados en futuros artículos de knowledge base y columnas soporte de voz. Puede enviar sus ideas y comentarios mediante el formulario Solicitarlo. También hay un vínculo al formulario en la parte inferior de esta columna.

Introducción

¡Bienvenido! Este es Sukesh Khare, con el equipo de soporte técnico para desarrolladores de Microsoft ASP.NET. Esta es la primera vez que he creado una columna Voz de soporte técnico. Espero poder crear más columnas de este tipo en los próximos meses.

En la columna de este mes, voy a discutir los problemas de globalización en Páginas de Active Server (ASP) y ASP.NET, los problemas a los que nos enfrentamos en ASP, cómo han cambiado las cosas en ASP.NET 1x y qué ocurre con ASP.NET 2.0 en el frente de la globalización.

Nota Si encuentra un término que no entiende, 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 el desarrollo inicial de ASP, desarrolladores como yo solo encontraron soporte disperso para la globalización en sistemas operativos, exploradores, ASP y sistemas back-end. Sin embargo, rara vez observamos ninguna conectividad automática entre estas aplicaciones. Afortunadamente, hemos entendido conceptos como conjuntos de caracteres, páginas de código, idiomas del 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 las cuestiones de globalización que hemos visto los ASP.NET. En su lugar, mostraré una serie de conceptos relacionados con una variedad de esos problemas.

Conjuntos de caracteres y páginas de códigos

Todos sabemos que los caracteres de la pantalla del equipo son solo una serie de bytes. La serie de bytes se puede crear e interpretar de cualquier manera. Si la interpretación usa una codificación distinta de la codificación con la que se creó la matriz de bytes, la interpretación se mostrará como basura. Los conjuntos de caracteres (conjuntos de caracteres) son formatos de codificación que suelen usar los exploradores. La propiedad Codepage, que es más aplicable a las conversiones del lado servidor, es solo una tabla de conversión que especifica cómo se codifican los caracteres.

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

Cuando se interpreta la ASP, las colecciones Form y Querystring no se crean hasta que se hace referencia a ellas en código. Cuando se crean, los datos de cadena se transforman en Unicode según la página de códigos actual. (De forma predeterminada, asp y ASP.NET procesar contenido mediante formato Unicode). Es muy importante que establezca 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ódigo, usa Session.Codepage o Response.Codepage. La página Response.Codepage solo está disponible en Microsoft Internet Information Services (IIS) 5.1 o versiones posteriores. Para obtener información sobre los valores enteros (que corresponden al juego de caracteres) en los que se establecen estas propiedades, visite el siguiente sitio web de Microsoft:

Reconocimiento de juego
de caractereshttp://msdn2.microsoft.com/en-us/library/Aa752010.aspxPor ejemplo, para establecer la página de códigos para el idioma árabe, use el siguiente código:

Session.Codepage = 1256

Response.Codepage solo afectará a la respuesta actual. Sin embargo, Session.Codepage afectará a todas las respuestas realizadas por el usuario actual. Cuando la página de códigos se establece mediante una de estas propiedades y se crean las colecciones Form y Querystring, este cambio en la página de códigos actual hace que el método Response.Write transforme el Unicode en memoria en la página de códigos actual. Para obtener más información sobre este tema, visite el siguiente sitio web de MSDN:

Establecer la página de códigos para conversiones de cadena (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspxLa línea inferior en lo que respecta a los problemas relacionados con las páginas de códigos y caracteres es que el conjunto de caracteres del cliente y la página de códigos de servidor deben coincidir.

Aceptar idiomas

Si un desarrollador de ASP quiere saber qué idiomas ha establecido un usuario en el explorador, el desarrollador puede usar la variable Request.ServerVariables ("HTTP_ACCEPT_LANGUAGE") para buscar la lista de idiomas en los que el usuario desea leer la respuesta (como inglés, alemán o indio) y el orden de preferencia en el que el usuario desea ver estos idiomas. En ASP.NET, hay información similar en la propiedad Request.UserLanguages como una matriz.
Para obtener más información sobre cómo usar esta información en código ASP, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:

229690 Cómo establecer el id. de configuración regional de ASP según la configuración de idioma del explorador
 

Mostrar juegos de caracteres de varios bytes en Internet Explorer

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

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

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

Guardar un archivo ASP con Microsoft Visual InterDev no ayuda aquí, ya que Visual InterDev solo puede guardarse en inglés ANSI o Unicode. Asp no admite ninguna página ASP guardada como Unicode.

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


Nota Esto cambia la codificación de la operación de almacenamiento, pero es solo para una vez. El siguiente guardado se establecerá de nuevo en el valor predeterminado.

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

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

PÁGINA CODEPAGE predeterminada en el servidor

La configuración regional predeterminada y la página de códigos predeterminados de la página dependen de la configuración del Registro de . Usuario PREDETERMINADO. Podemos encontrar la clave internacional en el subárbol del registro HKEY_USERS\.DEFAULT\Control Panel\International. También podemos cambiar el comportamiento de la configuración regional elegida por IIS.

Si el usuario conectado tiene la misma configuración regional establecida que la clave anterior o el valor predeterminado del sistema, la configuración del usuario tiene prioridad.

Ejemplo: La configuración regional predeterminada tiene el formato de fecha establecido como 11.1.2004, mientras que el usuario con sesión iniciada (con el mismo conjunto de configuración regional) tiene el formato de fecha igual que 11/1/2004. La configuración del 11/11/2004 entrará en vigor para ASP.

(Por ASP.NET, esto puede variar. En algunas instalaciones, el usuario de ASPNET tendrá su propio perfil que se mostrará en HKEY_USERS cuando se cargue. En otros, usará el . Perfil PREDETERMINADO. También podemos usar el atributo codepage en la declaración <%@ %>. Esto se debe usar cuando el archivo se guarda con una codificación diferente y luego el valor predeterminado, como la página de código 932 (japonés)).

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

En ocasiones, es posible que vea un carácter de signo de interrogación (?) o un cuadro donde se supone que debe aparecer un carácter.

Problemas de conversión de páginas de códigos

Cuando un carácter es reemplazado 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áginas 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 manejar el valor del carácter y convertirlo. Reemplaza el valor de carácter por un signo de interrogación (?). Esto podría 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 necesaria para la conversión no está instalada.

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 fuentes. Esto ocurre en el lado cliente cuando el cliente no tiene la fuente correcta instalada para mostrar este carácter correctamente. Por ejemplo, cuando un carácter es del conjunto de caracteres japonés y el cliente no tiene las fuentes japonesas instaladas, el carácter japonés se muestra como un cuadro.

A continuación, hablaré sobre cómo cambiaron 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:

  • Etiqueta de> de globalización <en web.config archivo
    La etiqueta> globalización <nos aleja de los conceptos incoherentes de páginas de códigos y charsets y nos permite controlar la mayoría de las variantes dentro de ASP.NET.

  • El espacio de nombres
    System.Globalization El espacio de nombres Globalization nos proporciona el poder programático de manejar la globalización.

  • Se ha mejorado enormemente el concepto de archivos de recursos.
    No tratamos con archivos de recursos de la manera que solíamos en ASP. Ahora, los archivos de recursos tienen forma de archivos XML cuando los diseñamos y desarrollamos, y existen como ensamblados en tiempo de ejecución.

La etiqueta de configuración Globalización:

Dos opciones de configuración importantes de la etiqueta son las siguientes:

<globalization 
            requestEncoding="utf-8" 
            responseEncoding="utf-8"  />

A continuación se muestran otras áreas de configuración posibles:

fileEncoding

Especifica la codificación predeterminada para el análisis de archivos .aspx, .asmx y .asax. Los archivos Unicode y UTF-8 guardados con el prefijo de marca de orden de byte (con firma) se reconocerán automáticamente, independientemente del valor de fileEncoding.

Cultura

Especifica la referencia cultural predeterminada para procesar solicitudes web entrantes (aplicable en métodos de clases del espacio de nombres System.Globalization).

uiCultura

Especifica la referencia cultural predeterminada para procesar búsquedas de recursos dependientes de la configuración regional (ensamblados satélite).

Para obtener más información sobre las cadenas culturales (valores de cultura y uicultura), visite el siguiente sitio web de Microsoft:

System.Globalization.CultureInfoClass
http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxEstas configuraciones se aplican ASP.NET una vez completada la respuesta y antes de que se entregue la solicitud a la aplicación. Para responseEncoding, el búfer que se crea para almacenar el resultado se establece en esta codificación. Todo lo que vaya a este búfer se codificará de acuerdo con la configuración que se inserta en el búfer.

Para requestEncoding, el runtime leerá la solicitud e la interpretará según la configuración de esta sección. Sin embargo, se trata de una configuración que puede causar problemas. La siguiente tabla muestra el diseño de bits de una secuencia de bytes UTF-8 válida.

Si el valor de carácter se encuentra en el estándar de 7 bits ASCII, el valor de byte no se modifica. Si el valor es superior a 127, debe seguir las reglas siguientes. El conjunto de bits inicial muestra cuántos caracteres hay 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:

Bytes

bits

Representación

1

7

0vvvvv

2

11

110vvv 10vvvv

3

16

1110vvvv 10vvvv 10vvvv

4

21

11110vvv 10vvvv 10vvvv 10vvvv

Aquí es donde viene el problema. Si el explorador codifica la solicitud según una codificación de un solo byte (como iso-8859-1), los valores por encima de 127 no serán válidos según el diseño anterior. Cuando se leen en el búfer UTF-8, los caracteres no válidos simplemente se eliminan de la salida.

Cambios de codificación en tiempo de ejecución

En el evento Application_BeginRequest, podemos modificar el valor de requestEncoding y hacer que surta efecto antes de que se procese la solicitud. Para la respuesta, el evento Page_PreRender es la última oportunidad para modificar la codificación de la salida. Tenga en cuenta también que Response.Write pondrá caracteres en este búfer tan pronto como lo llamemos, así que asegúrese de tener la codificación correcta establecida antes de usar Response.Write.

Los datos originales no son Unicode: ¿Cómo hacer que Internet Explorer interprete los caracteres de varios bytes?

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

problemas de globalización SQL Server y ASP.NET

Entrada de datos Unicode a SQL Server

La mejor manera de almacenar datos en SQL Server es utilizar Unicode. Siempre que usemos INSERT, UPDATE, etc., si hay incluso una menor probabilidad de datos Unicode, tenemos que agregar una N antes del valor. Esto indica a la base de datos que el valor es Unicode. Un buen ejemplo de esto son los objetos ADO. Lo hacen automáticamente si usamos el objeto Recordset para agregar nuevos registros.

A continuación se muestra 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)"
Entrada de fecha y hora para SQL Server

Normalmente tenemos el conocimiento sobre la cultura y la configuración regional de la fecha y hora que se interpreta dentro de nuestra aplicación ASP.NET. Sin embargo, al insertar y extraer los datos de fecha y hora hacia y desde orígenes externos, corremos el riesgo de interpretar incorrectamente los formatos de fecha y hora. Esto se debe a que no siempre podemos garantizar que la cultura y la configuración regional de la fuente externa sean las mismas que en nuestra aplicación. En SQL Server esto se puede resolver mediante el atributo "idioma actual" en la cadena de conexión de la conexión que se establece con la base de datos SQL. Podemos proporcionar la misma configuración de idioma en la cadena de conexión que la cultura en nuestra aplicación. Esto nos protege del riesgo de interpretación incorrecta, ya que SQL Server siempre acepta y envía los datos de fecha y hora con el consentimiento de la configuración mencionada anteriormente.

Espacio de nombres System.Globalization

Este espacio de nombres es el núcleo de la globalización y la localización en .NET Framework. La clase main usada 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 sobre la clase CultureInfo, visite el siguiente sitio web de MSDN:

http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxCultureInfo

Culturas neutrales frente a culturas específicas

Una cultura neutral es una cultura asociada a un idioma, pero no a un país o región específicos. Una cultura específica está asociada tanto con un idioma como con un país o región específicos.

Un ejemplo: "DE" (cultura neutral) es para el idioma alemán, pero "de-AT" (cultura específica) es para el idioma alemán, ya que se habla en Austria. Las referencias culturales neutrales no se pueden usar para aplicar formato.

Conocimiento actual de la conversación y la cultura de las clases de .NET Framework

Todas las clases y métodos de la biblioteca .NET Framework donde se espera que el resultado dependa de la referencia cultural tiene dos comportamientos integrados:

  • Nos permiten especificar el código cultural a la vez que proporciona los argumentos para que el resultado se base en la referencia cultural especificada. Esto es opcional.

  • Si esto no se encuentra (normalmente lo es), las clases son lo suficientemente inteligentes como para mantener una comprobación en la propiedad Thread.CurrentThread.CurrentCulture y trabajar de acuerdo con eso.

Podemos modificar el valor de esta propiedad con un 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, DateTime.Now(). ToString método devolvería la fecha y hora en un formato correspondiente a la forma en que la fecha y la hora se expresan en el idioma alemán en Austria.

El marco de trabajo garantiza (de la siguiente manera) que la propiedad CurrentCulture siempre se inicializa:

  1. Independientemente de cómo se establezca mediante programación.

  2. En caso de que no lo establezca explícitamente el programador, la propiedad se selecciona de los archivos de configuración (<la globalización> etiqueta).

  3. Si falta la propiedad allí, es la referencia cultural en la que se ejecuta el servidor web. Suele ser la cultura neutral que corresponde al idioma del sistema operativo.

Archivos de recursos

Todos los archivos .resx, .resource y los archivos que tienen el atributo Acción de compilación establecido en Recurso incrustado que se agregan a un proyecto de ASP.NET en Visual Studio .NET, se compilan e incrustan automáticamente dentro del ensamblado de la aplicación como parte de su manifiesto. Esto puede incluso hacerse manualmente mediante la utilidad Resource File Generator (RESGEN) a través de un símbolo del sistema de Visual Studio .NET. Para obtener más información, visite el siguiente sitio web de MSDN:

http://msdn2.microsoft.com/en-us/library/ccec7sz1(vs.71).aspxEste es un concepto general que es aplicable siempre que necesitemos administrar recursos de aplicación que no estén relacionados con la globalización. Sin embargo, cuando implementamos la globalización, debemos usar ensamblados satélite.

Ensamblados satélite

Los ensamblados satélite se pueden usar en un proyecto de ASP.NET cuando se asegura de que se cumplen las siguientes condiciones:

  1. Todos los elementos de la interfaz de usuario de todos los archivos aspx deben estar equipados con atributos id y runat=server.

  2. Creamos archivos .resx independientes. Cada una de ellas debe corresponder a cada cultura que queremos que admita nuestra aplicación.

  3. Debemos decidir un nombre común para todos estos archivos, por ejemplo. "Cadenas".

  4. Denominamos los archivos .resx independientes con la convención de nomenclatura commonfirstname. languagecode-regioncode.resx (por ejemplo: Strings.de-AT.resx, Strings.en-GB.resx ).

  5. Deberíamos tener el archivo
    de recursoscommonfirstname.resx (Strings.resx) que tiene todas las cadenas como se desea mostrar en el caso predeterminado.

  6. Escriba código para detectar la referencia cultural del usuario y establezca la propiedad Thread.CurrentThread.CurrentUICulture para que coincida con ella.

  7. Escriba código para cargar los recursos con la clase ResourceManager.

  8. Escribir código para extraer cadenas del objeto cargado y asignarlas a los elementos de la interfaz de usuario.

Cuando haya realizado estos pasos, Visual Studio.NET compilará Strings.resx y lo insertará en el ensamblado de la aplicación (MyGlobalizationTestProjectName.dll). Sin embargo, para todos los demás archivos .resx, generará archivos dll independientes que no tienen código ejecutable, pero solo datos de recursos. En realidad, estos se denominan ensamblados satélite. Además, Visual Studio .NET los coloca en una estructura de carpetas similar a la siguiente:MyGlobalizationTestProjectName
|------- clase
|------en-US

MyGlobalizationTestProjectName.resources.dll |------ja-JP

MyGlobalizationTestProjectName.resources.dll |------de-AT
MyGlobalizationTestProjectName.resources.dll

Diferencia entre CurrentCulture y CurrentUICulture

Aunque los métodos de clases en el system.globalization espacio de nombres dependen de la Thread.CurrentThread.CurrentCulture propiedad para dar su resultado, la clase ResourceManager que carga el ensamblado de recursos depende de la Thread.CurrentThread.CurrentUICulture propiedad 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 ensamblajes satélite:

Cuando haya establecido currentUICulture del subproceso, ASP.NET selecciona automáticamente los recursos que coinciden, en el siguiente orden:

  • Si se encuentra un ensamblado satélite con una referencia cultural coincidente, se usarán los recursos de ese ensamblado.

  • Si se encuentra un ensamblado satélite con una referencia cultural neutral que coincida con currentUICulture, se usarán recursos de ese ensamblado.

  • Si no se encuentra una coincidencia para currentUICulture, se usan los recursos de reserva almacenados 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:

http://msdn2.microsoft.com/en-es/library/sb6a8618(vs.71).aspx

Creación manual de ensamblajes satélite:

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

http://msdn2.microsoft.com/en-es/library/21a15yht(vs.71).aspx .

¿Qué pasa con ASP.NET 2.0 en el frente de la globalización?

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

La compatibilidad con la globalización en ASP.NET 2.0 ha experimentado un cambio radical y a los desarrolladores web se les ha dado la capacidad de hacer que la localización de las aplicaciones web sea tan fácil como sea para las 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 fuertemente tipados En el núcleo de la versión de .NET Framework 2.0 se admite recursos fuertemente tipados que proporcionan IntelliSense a los desarrolladores y simplifican el código necesario para obtener acceso a los recursos en tiempo de ejecución.

El Editor de recursos administrados Visual Studio .NET 2.0 incluye un nuevo editor de recursos con mejor compatibilidad para crear y administrar entradas de recursos, incluidas cadenas, imágenes, archivos externos y otros tipos complejos.

La generación de recursos para los desarrolladores de Web Forms Windows Forms ya ha disfrutado de las ventajas de la internacionalización automática. Visual Studio .NET 2005 admitirá ahora una rápida internacionalización mediante la generación automática de recursos para Web Forms, controles de usuario y páginas maestras.

Compatibilidad mejorada con tiempo de ejecución Las instancias resourceManager se administran mediante el tiempo de ejecución y son fácilmente accesibles para el código de servidor a través de interfaces de programación más accesibles.

Las expresiones declarativas modernas de las expresiones de localización para páginas web admiten entradas de recursos de asignación para controlar propiedades, propiedades HTML o regiones de contenido estático. Estas expresiones también son extensibles, lo que proporciona formas adicionales de controlar el proceso de adjuntar contenido localizado a la salida HTML.

Selección de referencia cultural automática La administración de la selección de referencia cultural para cada solicitud web se puede vincular automáticamente a las preferencias del explorador.

Modelo de proveedor de recursos Un nuevo modelo de proveedor de recursos permite a los desarrolladores hospedar recursos en orígenes de datos alternativos, como archivos sin formato y tablas de bases de datos, mientras que el modelo de programación para acceder a esos recursos sigue siendo coherente.

Para obtener más información sobre la metodología de globalización en ASP.NET 2.0, visite el siguiente sitio web de MSDN:

Características de localización de ASP.NET 2.0: un nuevo enfoque para localizar aplicaciones
webhttp://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 ayude a algunos clientes a solucionar sus problemas de globalización en ASP y ASP.NET antes de que opten por ponerse en contacto con Soporte técnico de Microsoft. Terminaré pensando lo siguiente:

"Donde quieras y siempre que estés desarrollando, piensa en los millones de personas que puedes empoderar en todo el mundo. ¡Prepare sus soluciones para todo el mundo! Las herramientas y tecnologías de Microsoft facilitan la internacionalización".

Volveremos a ponernos al día el próximo mes con otro tema interesante.

Gracias por tu tiempo.

Para obtener más información sobre los problemas de globalización en ASP y ASP.NET, vea los siguientes sitios web de Microsoft:

SetLocale y GetLocale en vbscript
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx

Http://msdn.microsoft.com/en-us/goglobal/bb688110paso a paso
de globalización

Go Global: Localización dinámica Web Apps con IIS 5.0 y SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

Go Global: Diseñar el sitio web basado en ASP para admitirla globalización http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 cómo detectar un idioma de cliente en una página de páginas de Active Server en IIS
http://support.microsoft.com/?id=315616

Gráfico de id. de configuración regional (LCID)
http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx

Espacio de nombres
System.Globalizationhttp://msdn2.microsoft.com/en-us/library/system.globalization(vs.71).aspx

Recursos y localización Mediante el SDK
de .NET Frameworkhttp://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx

Recursos en aplicaciones
ASP.NET http://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx

ASP.NET <la globalización> elemento
de configuración http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx

Directrices de diseño e implementación para clientes web:http://msdn2.microsoft.com/en-us/library/ms978628.aspx de globalización y localización

Sitio oficial de Microsoft: Portal de desarrollo global e informática
http://msdn.microsoft.com/en-us/goglobal/bb688096

Desarrollo de aplicaciones
listas para el mundohttp://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

Kit de herramientas de localización empresarial: para desarrollar aplicaciones
de Microsoft ASP.NETlocalizadas http://msdn2.microsoft.com/en-us/library/aa479334.aspx

Tipografía
de Microsoft http://www.microsoft.com/typography/default.mspx

Glosario

ANSI significa American National Standards Institute. En este contexto, representa una página de códigos específica para un determinado idioma o juego de caracteres. La mayoría de las veces se refiere a la página de códigos en inglés (windows-1252).

ASCII Un esquema de codificación de 1 byte (o 7 bits). Solo se normalizan los caracteres del rango 0-127. 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 del gráfico OEM ASCII y el gráfico VB ASCII.

La configuración CharSet se usa principalmente para Internet Explorer y exploradores que le indica al explorador cómo interpretar los datos de caracteres. Ejemplo: Response.charSet = "iso-8859-1".

Página De códigos Una tabla de conversión que especifica cómo se codifican los caracteres (suele usarse para servidores).

La globalización es un proceso de diseño y creación de una aplicación para que se puedan cumplir los requisitos únicos de una cultura, región o necesidades nacionales/regionales y lingüísticas. En otras palabras, diseñar una aplicación de manera que pueda localizarse posteriormente es la globalización.

Configuración regional/cultura Idioma y región formatos/preferencias específicos incluyendo, formatos de fecha y calendario, formatos de hora, formatos de moneda, mayúsculas y minúsculas, comparación de mayúsculas y minúsculas, formatos de dirección, formatos de número de teléfono, tamaños de papel, unidad de medida, dirección de escritura, etc.

Id. de configuración regional (LCID) Un valor DWORD que especifica el identificador de idioma y el identificador de ordenación. Puede usarse para especificar los formatos de región específicos para la fecha y hora ex, etc.

Capacidad de localizabilidad de una aplicación para presentar contenido para el idioma o la configuración regional exigentes.

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

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

Unicode Un esquema de codificación de 2 bytes. Windows usa Unicode internamente. Cualquier API específicamente para Unicode se indica con una "W" al final del nombre de la función. También conocido como wide char; no se pueden usar directamente desde aplicaciones web.

UTF-8 Una codificación de caracteres en la que un carácter se puede representar en 1-6 bytes. En Windows, el intervalo es de 1 a 3 bytes. No compatible con NT4 para aplicaciones web.



Juego de caracteres anchos Un alias para Unicode. También conocido como DBCS (juego de caracteres de doble byte), UCS-2, UTF-16.

Como siempre, no dude en enviar ideas sobre temas que desee tratar en columnas futuras o en la Knowledge Base mediante el formulario Solicitarlo.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×