He agregado varios idiomas usando el breve artículo a continuación.C# Creando una configuración para varios idiomas
Cuando se agrega para el idioma alemán se obtienen las siguientes archivos: formMain.resx formMain.de-DE.resx formMain.Designer.cs formMain.cs
En primer archivo que tendrá recursos para un lenguaje neutral, como cadenas, imágenes, ...
Así que ahora necesita agregar también recursos para las cadenas utilizadas en el código. Agregue un nuevo archivo de recursos y asígnele el nombre formMain.Strings.resx Luego ingresaré un nombre, un par de valores para cada cadena que deba traducirse. Cuando agrega un archivo de recursos, se escribe automáticamente porque otro archivo con el nombre formMain.Strings.Designer.cs se regenera automáticamente cada vez que se cierra el diseñador de resx.
Agregue otro recurso con el nombre formMain.Strings.de-DE.resx. Agregue las mismas claves de nombre del recurso anterior, y simplemente cambie el valor con las correspondientes palabras alemanas. Ahora, para acceder al recurso creado desde la fuente, será así.
MessageBox.Show (formMain_Strings.SameStringName);
Sin embargo, he cambiado mi idioma a tailandés. Todo funciona bien cuando ejecuto mi aplicación en VS.
Sin embargo, tan pronto como agregue un proyecto de configuración e instale en la máquina del cliente, no cambiará el idioma a tailandés y solo mantendrá el idioma predeterminado.
Así que he agregado los archivos de recursos y th-TH dll a la configuración del proyecto. Y todavía tengo el mismo problema.
Packaging file 'Lang.Strings.resx'...
Packaging file 'MultiLanguage.resources.dll'...
Packaging file 'MultiLanguage.exe'...
Packaging file 'Lang.Strings.th-TH.resx'...
Como todo funciona bien cuando se ejecuta en visual studio. ¿Hay algo que deba hacer para que se ejecute una vez que se haya instalado? Todas las propiedades para cada uno de los archivos que tengo mantienen el valor predeterminado.
Muchas gracias,
=========
static void Main()
{
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo("th-TH");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
Si me lo permite, será mejor que abandone el Proyecto de configuración tan pronto como sea humanamente posible y que cambie al Windows Installer XML (WiX). Envié un producto usando un proyecto de instalación una vez. Nunca más. Nunca más. – Promit
Acabo de echarle un vistazo rápido a WiX y tampoco incluye el dll de recursos localizados en el paquete de instalación. Parece que los recursos localizados en cualquier tipo de proyecto de configuración simplemente no funcionan (estoy trabajando en un proyecto de VC++ aquí). – galmok