voz visual traductor traducir para multilenguaje mejor libros ingles hacer español cámara crear con como codigo celular app aplicación aplicaciones aplicacion c# .net localization

visual - como hacer un traductor de ingles a español en c#



¿Cómo mejor puedo localizar una aplicación completa en muchos idiomas diferentes? (5)

El enfoque recomendado de Microsoft es usar ensambles satelitales, como se describe en Empaquetado y despliegue de recursos . Si está utilizando un ResourceManager para cargar recursos, .NET cargará los recursos correctos para la CurrentUICulture. Esto se establece de manera predeterminada en la configuración de idioma de la IU actual del usuario en Windows.

Es posible localizar formularios de Windows a través de Visual Studio o una herramienta externa, WinRes.exe. Este artículo describe WinRes y cómo usar Visual Studio para localizar el formulario.

Estoy usando Visual Studio (2005 y más). Estoy buscando probar hacer una aplicación donde el usuario pueda cambiar el idioma para todos los menús, formatos de entrada y demás. ¿Cómo podría seguir haciendo esto, ya que supongo que hay alguna característica completa dentro de .Net que pueda ayudarme con esto?

Necesito tener en cuenta lo siguiente (y llenarme si omito algunas cosas obvias)

  • Cuerdas (menús, textos)
  • Datos de entrada (análisis de flotantes, fechas, etc.)
  • Debería ser fácil agregar soporte para otro idioma

La receta clásica es: diseñar la aplicación sin idioma nativo sino un servicio de localización, y desarrollar una inicialización en un idioma (por ejemplo, inglés). Así que construyes la aplicación y la localizas en inglés todas las noches; sin el paso de localización no sería utilizable. Haga eso bien, y los recursos para la localización de la muestra inicial pueden ser reemplazados por los de cualquier otro idioma. Tenga en cuenta los scripts no romanos desde el principio. Es mucho más limpio tener una aplicación sin idioma que siempre requiere localización en lugar de una aplicación específica del idioma que necesita que se restará su idioma nativo y se agregará un reemplazo.


No soy un experto con .NET de ninguna manera, pero la localización nunca es tan simple como "intercambiar valores de cadena" o "cambiar los formatos de fecha". Hay mucho más que se debe tener en cuenta, como el diseño, la colocación del texto adecuado.

Tome los chinos, por ejemplo. La forma de leer es de arriba a abajo, no de izquierda a derecha. Si está bien localizado, la aplicación debe tener esto en cuenta.

http://msdn.microsoft.com/en-us/library/y99d1cd3(VS.80).aspx parece ser un buen comienzo si se trata de Windows Forms.


Para las cadenas, debe separar las cadenas de su código (tener una XML / DLL que transforme las ID de cadenas en cadenas reales es una forma de hacerlo). Sin embargo, debe asegurarse de que admite caracteres de doble byte para algunos idiomas (esto es relevante si usa C / C ++).

Para los datos de entrada, lo que desea es tener locale diferente. En Java esto es relativamente fácil, y si usas C # probablemente también sea bastante fácil. En C / C ++ realmente no lo sé. La idea básica es que los analizadores de entrada deberían ser diferentes en función de la configuración regional seleccionada en ese momento. Por lo tanto, cada campo (campo de texto, cuadro de texto, etc.) debe tener un analizador abstracto que luego se implementa por una clase diferente según la configuración regional (de derecha a izquierda, doble byte, etc.).

Consulte la implementación de Java para obtener detalles sobre cómo lo hicieron. Es bastante funcional.


Definitivamente debe utilizar .NET ResourceManager y el formato x archivo resx, sin embargo, existen varios enfoques para utilizarlo.

Realmente depende de lo que quieres lograr. Para mí, quería un solo archivo de recursos xml (para cada idioma compatible) que cualquier persona podría modificar. Creé una clase auxiliar que cargó el archivo de recursos global en ResourceManager (una sola vez) y tuve una función auxiliar que me proporciona el recurso requerido para un nombre dado. La única desventaja en este enfoque fue que no pude aprovechar el enlace dinámico de recursos a las propiedades.

Encontré esto mejor y más fácil de administrar que los archivos de recursos múltiples o incrustados para cada formulario. Además, exactamente el mismo enfoque se puede usar en una aplicación ASP.NET. También encontré que este enfoque significa que la externalización de la traducción de recursos y el envío de paquetes de idiomas a los clientes es mucho más manejable.