asp.net - example - cultureinfo c# español
¿Qué necesito saber para globalizar una aplicación asp.net? (7)
Estoy escribiendo una aplicación asp.net que tendrá que ser localizado en varias regiones además de América del Norte. ¿Qué debo hacer para prepararme para esta globalización? ¿Cuáles son sus principales recursos de 1 a 2 para aprender a escribir una aplicación preparada para el mundo?
Aprende sobre el espacio de nombres System.Globalization:
Además, un buen libro es NET Internationalization: la guía del desarrollador para crear aplicaciones globales de Windows y Web
Asegúrese de estar compilando con Code Analysis activado, y preste atención a las advertencias de Globalización que le brinda. Mantenga los datos en un formato invariante ( CultureInfo.InvariantCulture ) hasta que lo muestre al usuario (luego utilice CultureInfo.CurrentCulture ).
Es este un problema difícil. Vivo en Canadá, así que el multilingüismo es un gran problema. En todos mis años de desarrollo de software, nunca he visto una solución que me haya gustado. He visto muchas soluciones que funcionaron y terminaron el trabajo, pero siempre se han sentido como un gran obstáculo. Me gustaría ir con @harriyott y asegurarme de que ninguna de tus cadenas esté en el código. Un archivo de recursos funciona bien para aplicaciones de escritorio. Sin embargo, en ASP.Net, recomendaría usar la base de datos. @John Christensen también tiene algunos buenos consejos.
Sería bueno actualizar un poco en Unicodes si se dirige a otras culturas, idiomas.
Un par de cosas que he aprendido:
Absoluta y brutalmente minimiza la cantidad de imágenes que tienes que contienen texto. Hacerlo hará que su vida sea un billón por ciento más fácil ya que no tendrá que obtener un nuevo conjunto de imágenes para cada lenguaje en blanco.
Tenga mucho cuidado con el posicionamiento CSS que depende de que las cosas permanezcan siempre del mismo tamaño. Si esas cosas contienen texto, no permanecerán del mismo tamaño, y luego tendrá que regresar y arreglar sus diseños.
Si usa tipos de caracteres en sus tablas sql, asegúrese de que cualquiera de los que puedan recibir entrada internacional sea unicode (nchar, nvarchar, ntext). Para el caso, simplemente estandarizaría el uso de las versiones Unicode.
Si está creando consultas SQL dinámicamente, asegúrese de incluir el prefijo N antes de cualquier texto entre comillas si existe la posibilidad de que el texto sea unicode. Si terminas poniendo basura en una tabla SQL, verifica si está ahí.
Asegúrese de que todas sus páginas web declaren definitivamente que están en formato Unicode. Ver el artículo de Joel, mencionado anteriormente.
Vas a utilizar mucho los archivos de recursos para este proyecto. Eso está bien: ASP.NET 2.0 tiene un gran soporte para tal. Deberá consultar las carpetas App_LocalResources y App_GlobalResources, así como GetLocalResourceObject, GetGlobalResourceObject y el concepto de meta: resourceKey. El Capítulo 30 de Professional ASP.NET 2.0 tiene un gran contenido al respecto. La versión 3.5 del libro también puede tener un buen contenido allí, pero yo no soy el propietario.
Piensa en las fuentes. Muchas de las fuentes estándar que quizás desee utilizar no son aptas para unicodo. Siempre he tenido suerte con Arial Unicode MS, MS Gothic, MS Mincho. Sin embargo, no estoy seguro de cuán multiplataforma son estos. Además, tenga en cuenta que no todas las fuentes admiten toda la definición de caracteres Unicode. De nuevo, prueba, prueba, prueba.
Comienza a pensar ahora cómo vas a obtener traducciones en este sistema. Ve a hablar con quien sea tu proveedor de traducción sobre cómo quieren que los datos pasen de una traducción a otra. Piense en el hecho de que, a través de sus archivos de recursos locales, es probable que repita algunas cadenas comúnmente utilizadas a través del sistema. ¿Lo normalizas en archivos de recursos globales, o tienes algún tipo de capa de base de datos donde solo se genera una copia de cada texto utilizado? En nuestro proyecto reciente, utilizamos archivos de recursos que se generaron a partir de una tabla de base de datos que contenía todas las traducciones y la versión original en inglés de los archivos de recursos.
Prueba. En general, voy a probar en alemán, polaco y un idioma asiático (japonés, chino, coreano). El alemán y el polaco son prolijos y casi garantizados para extender las áreas de texto, los idiomas asiáticos usan un conjunto de caracteres totalmente diferente que prueba tu compatibilidad con Unicode.
Yo sugeriría:
- Coloque todas las cadenas en la base de datos o en los archivos de recursos.
- Permita espacio adicional para el texto traducido, ya que algunos (por ejemplo, alemán) son más caros.
Consideraría seriamente leer el siguiente artículo de proyecto de código:
Globalización y localización desmitificadas en ASP.NET 2.0
Cubre todo, desde Culturas y Locales, configurando los hilos cultura actual, archivos de recursos, codificaciones, ¡lo que sea!
Y, por supuesto, está lleno de bellas imágenes y ejemplos :-). ¡Buena suerte!