Я добавил несколько языков, используя короткую статью ниже.
Когда вы добавите, например, немецкий язык, у вас будут следующие файлы:
formMain.resx
formMain.de-DE.resx
formMain.Designer.cs
formMain.cs
В первом файле у вас будут ресурсы для нейтрального языка, такие как строки, изображения, ..
Так что теперь вам нужно добавить также ресурсы для строк, используемых в коде. Добавьте новый файл ресурсов и назовите его formMain.Strings.resx
Затем я введу имя, пару значений для каждой строки, которая должна быть переведена. Когда вы добавляете файл ресурсов, он автоматически набирается, потому что другой файл с именем formMain.Strings.Designer.cs автоматически регенерируется при каждом закрытии конструктора resx.
Добавить еще один ресурс с именем formMain.Strings.de-DE.resx. Добавьте тот же ключ Name из предыдущего ресурса и просто измените значение с соответствующими немецкими словами. Теперь получить доступ к созданному ресурсу из источника будет так:
MessageBox.Show (formMain_Strings.SameStringName);
Однако я перешел на тайский язык. Все отлично работает, когда я запускаю свое приложение в VS.
Однако, как только я добавлю проект установки и установлю на клиентский компьютер, он не изменит язык на тайский и просто сохранит язык по умолчанию.
Итак, я добавил файлы ресурсов и файлы th-TH в настройки проекта. И у меня все та же проблема.
Packaging file 'Lang.Strings.resx'...
Packaging file 'MultiLanguage.resources.dll'...
Packaging file 'MultiLanguage.exe'...
Packaging file 'Lang.Strings.th-TH.resx'...
Поскольку все работает нормально при работе в visual studio. Есть ли что-то, что мне нужно сделать, чтобы запустить его после его установки. Все свойства каждого файла, который у меня есть, остаются по умолчанию.
Большое спасибо,
=========
static void Main()
{
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo("th-TH");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}