visual traductor recursos para net mvc multilenguaje leer hacer crear como codigo asp archivo aplicaciones c# .net winforms localization

traductor - resources c# resx



Cómo hacer una aplicación multilingüe en winforms (3)

Tengo una aplicación y necesito usar dos idiomas (por ejemplo, inglés y árabe) en esa aplicación, pero no sé cómo puedo hacer eso. ¿Alguien me puede ayudar para esto? Necesito algunos ejemplos en C # Windows Forms.


Faltan algunas partes en la respuesta de wwjih123.

En VS2017

1-En primer lugar, cree recursos en la carpeta raíz de proyectos (No en la carpeta Recursos). Nómbrelo como lang_en, lang_tr, lang_fr, etc.

2-luego la ventana de propiedades del objeto deja la acción Build como recurso incorporado

3-dentro del archivo lang_tr.resx agregue una nueva cadena lbl_error y valor "Hata" en turco (lo que quiera)

4- dentro de la clase define variables como:

ResourceManager res_man; // declare Resource manager to access to specific cultureinfo

Inicialización de clase de 5 en después de InitializeComponent ();

Console.WriteLine("You are speaking {0}", System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName); res_man = new ResourceManager("MyApp.lang_"+ System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName, Assembly.GetExecutingAssembly()); lblError.Text = res_man.GetString("lbl_error");

si su idioma ui es turco, cargará automáticamente el lang_tr.resx, si está en inglés se cargará el archivo lang_en.resx, etc.

buena suerte


Usar un archivo de recursos puede ser más fácil en algunos casos.

  1. Agregue un nuevo archivo de recursos al proyecto en Visual Studio. p.ej. en.resx para inglés fr.resx para francés.

  2. Abra el archivo de recursos, en las cadenas, asigne un nombre a su cadena y coloque diferentes traducciones en la celda de valor. Por ejemplo: el valor de la next station en en.resx es la next station pero en fr.resx puede ser la Prochaine station . ejemplo a continuación:

  3. En el código, use public static ResourceManager rm = new ResourceManager("WindowsFormsApp1.en_local", Assembly.GetExecutingAssembly()); para seleccionar el recurso de idioma.

  4. Cuando necesite enviar cualquier cadena a la aplicación, use la función GetString() , por ejemplo label1.Text = rm.GetString("welcome");


Uso de propiedad de forma Localizable y de Language

Form clase de Form tiene propiedades Localizable y de Language . Si establece la propiedad Localizable en true, puede agregar controles para formar el idioma predeterminado y establecer propiedades para el idioma predeterminado. Luego puede seleccionar otros idiomas y cambiar las propiedades de esos idiomas. De esta manera, el valor o las propiedades localizables se almacenarán en archivos de recursos separados para diferentes culturas.

Nota: Una propiedad se considera localizable si está decorada con el atributo Localizable(true) . Por ejemplo, la propiedad BackColor no es localizable, pero la propiedad Text es localizable.

Localización de mensajes e imágenes utilizando archivos de recursos de Resx

El proyecto tiene un archivo Rseources.Resx en la carpeta Properties que puede usar para localizar imágenes y mensajes. También puede agregar archivos de recursos .resx al proyecto. Por ejemplo, puede crear un archivo Strings.resx y agregarle algunas claves y valores de cadena, luego copiarlo como strings.en.resx y strings.fa.resx y editar valores para esos idiomas. Luego puede usar esos valores de recursos, por ejemplo:

MessageBox.Show(Properties.Resources.AreYouSure);

AreYouSure el valor de AreYouSure del archivo Resources.Resx con el lenguaje de cultura de UI actual.

Si no se encuentra una clave de recurso para una cultura o la cultura especificada no se encuentra para el archivo de recursos, se utilizará el valor de la clave en cultura neutral del archivo Resx .

Cambiar el idioma en tiempo de ejecución

Puede establecer la cultura de una aplicación en Persian usando:

System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("fa"); System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("fa");

Debe poner el código anterior al inicio de su aplicación o antes de mostrar un formulario.

Más información

Para más información y ejemplo: