Tengo una aplicación web multiidioma . Estoy convirtiendo todos los controles, es decir, etiquetas, menú desplegable, texto y mensajes usando el archivo de recursos .
Problema:
Por ejemplo, la página de registro tiene un menú desplegable de Prefijo: Sr., Sra., Srta., etc. Estos datos de prefijo provienen de una tabla y son configurables, es decir, tenemos una página web de configuración para el mismo.
Hay muchas otras cosas configurables y páginas correspondientes.
Mi pregunta es cómo convertir estos datos a otro idioma y cómo guardar lo mismo, ya que no se puede hacer con el archivo de recursos.
Cualquiera que tenga ideas prácticas me puede orientar.
Si es configurable por el usuario, entonces no es práctico usar archivos de recursos, ya que los usuarios pueden configurar lo que necesiten.
Entonces, si entendí correctamente, creo que la única solución práctica es tener traducciones en una tabla para cada valor que ingresan los usuarios.
Dado que los usuarios pueden ingresar valores en cualquier idioma, puede ser complicado.
Elegiría un idioma obligatorio predeterminado, por ejemplo inglés, de modo que cada vez que los usuarios administren los valores (Título o prefijo en su muestra), deben administrarlos en pares, es decir, su idioma e inglés.
Entonces, si la configuración regional es francés, cuando revisan el índice de títulos, ven dos columnas, una para francés y otra para inglés.
Si es la primera vez que el usuario francés ingresa a la vista, entonces no hay valores en francés, por lo que el usuario debe agregar la traducción al francés para los valores en inglés ya registrados.
Si el usuario agrega un nuevo valor [en francés], también debe ingresar la traducción al inglés.
Parece un poco engorroso y puede que no sea muy práctico, ¡pero es una opción!
Mejor,
PD: ¡Oye, por favor comparte la solución cuando llegues!
Microsoft .NET brinda soporte para trabajar con información específica de la cultura usando la clase CultureInfo en el espacio de nombres System.Globalization. La información cultural se puede configurar tanto a nivel de página como a nivel de aplicación.
<%@ Page language="C#" Culture="fr-FR"%>Para configurar la información cultural en el nivel de la aplicación, use lo siguiente en la sección Globalización del archivo web.config.
<configuration> <system.web> <globalization culture="en-GB" /> </system.web> </configuration>prueba esto,
http://aspalliance.com/articleViewer.aspx?aId=957&pId=-1Por ejemplo, la página de registro tiene un menú desplegable de Prefijo: Sr., Sra., Srta., etc. Estos datos de prefijo provienen de una tabla y son configurables, es decir, tenemos una página web de configuración para el mismo.
Dado que los valores del menú desplegable están en la base de datos, creo que la traducción también debería estar en la base de datos.
La manera fácil es tener un campo para cada idioma en su tabla de titles :
-------------------------- | Id | TitleEn | TitleFr | -------------------------- | 1 | Mr | M | | 2 | Mrs | Mme | | 3 | Miss | Mlle | --------------------------Sin embargo, esto no escalará bien si tiene más idiomas o si desea agregar idiomas en el futuro.
La forma en que lo haría sería agregar una tabla de localized_string como esta:
-------------------------- | Id | Language | String | -------------------------- | 7 | FR | M | | 8 | FR | Mme | | 9 | FR | Mlle | | 7 | EN | Mr | | 8 | EN | Mrs | | 9 | EN | Miss | --------------------------En su tabla de títulos y en cualquier otra tabla donde necesite una cadena_localizada, almacene el Id de la cadena:
---------------------------- | Id | localized_string_id | ---------------------------- | 1 | 7 | | 2 | 8 | | 3 | 9 | ----------------------------De esta manera, puede consultar la cadena localizada en cualquier idioma y puede agregar tantos idiomas como desee sin modificar el esquema de su base de datos.