ResourceWriter resourse = new ResourceWriter("Languages.resources");
resourse.AddResource("Button1Rus", "Добавить");
resourse.AddResource("Button2Rus", "Удалить");
resourse.AddResource("Button3Rus", "Искать");
resourse.AddResource("Button4Rus", "Сортировать");
resourse.AddResource("Button5Rus", "Сохранить");
resourse.AddResource("Button6Rus", "Загрузить");
resourse.AddResource("GroupBox1Rus", "Список");
resourse.AddResource("GroupBox2Rus", "Редактировать");
resourse.AddResource("GroupBox3Rus", "Просмотр");
resourse.AddResource("GroupBox4Rus", "Сериализация");
resourse.AddResource("GroupBox5Rus", "Язык главной формы");
resourse.AddResource("TitleRus", "Библиотека");
resourse.AddResource("Button1Eng", "Add");
resourse.AddResource("Button2Eng", "Delete");
resourse.AddResource("Button3Eng", "Search");
resourse.AddResource("Button4Eng", "Sort");
resourse.AddResource("Button5Eng", "Save");
resourse.AddResource("Button6Eng", "Load");
resourse.AddResource("GroupBox1Eng", "List");
resourse.AddResource("GroupBox2Eng", "Edit");
resourse.AddResource("GroupBox3Eng", "View");
resourse.AddResource("GroupBox4Eng", "Serialize");
resourse.AddResource("GroupBox5Eng", "Language");
resourse.AddResource("TitleEng", "Library");
resourse.Generate();
resourse.Close();
C# работа с ресурсами, локализация
Код:
Загружаю
Код:
ResourceManager res = new ResourceManager("Languages", System.Reflection.Assembly.GetExecutingAssembly());
if (this.radioButton1.Checked)
{
this.button1.Text = res.GetString("Button1Rus");
this.button2.Text = res.GetString("Button2Rus");
this.button3.Text = res.GetString("Button3Rus");
this.button4.Text = res.GetString("Button4Rus");
this.button5.Text = res.GetString("Button5Rus");
this.button6.Text = res.GetString("Button6Rus");
this.groupBox1.Text = res.GetString("GroupBox1Rus");
this.groupBox2.Text = res.GetString("GroupBox2Rus");
this.groupBox3.Text = res.GetString("GroupBox3Rus");
this.groupBox4.Text = res.GetString("GroupBox4Rus");
this.groupBox5.Text = res.GetString("GroupBox5Rus");
this.Text = res.GetString("TetleRus");
return;
}
this.button1.Text = res.GetString("Button1Eng");
this.button2.Text = res.GetString("Button2Eng");
this.button3.Text = res.GetString("Button3Eng");
this.button4.Text = res.GetString("Button4Eng");
this.button5.Text = res.GetString("Button5Eng");
this.button6.Text = res.GetString("Button6Eng");
this.groupBox1.Text = res.GetString("GroupBox1Eng");
this.groupBox2.Text = res.GetString("GroupBox2Eng");
this.groupBox3.Text = res.GetString("GroupBox3Eng");
this.groupBox4.Text = res.GetString("GroupBox4Eng");
this.groupBox5.Text = res.GetString("GroupBox5Eng");
this.Text = res.GetString("TetleEng");
if (this.radioButton1.Checked)
{
this.button1.Text = res.GetString("Button1Rus");
this.button2.Text = res.GetString("Button2Rus");
this.button3.Text = res.GetString("Button3Rus");
this.button4.Text = res.GetString("Button4Rus");
this.button5.Text = res.GetString("Button5Rus");
this.button6.Text = res.GetString("Button6Rus");
this.groupBox1.Text = res.GetString("GroupBox1Rus");
this.groupBox2.Text = res.GetString("GroupBox2Rus");
this.groupBox3.Text = res.GetString("GroupBox3Rus");
this.groupBox4.Text = res.GetString("GroupBox4Rus");
this.groupBox5.Text = res.GetString("GroupBox5Rus");
this.Text = res.GetString("TetleRus");
return;
}
this.button1.Text = res.GetString("Button1Eng");
this.button2.Text = res.GetString("Button2Eng");
this.button3.Text = res.GetString("Button3Eng");
this.button4.Text = res.GetString("Button4Eng");
this.button5.Text = res.GetString("Button5Eng");
this.button6.Text = res.GetString("Button6Eng");
this.groupBox1.Text = res.GetString("GroupBox1Eng");
this.groupBox2.Text = res.GetString("GroupBox2Eng");
this.groupBox3.Text = res.GetString("GroupBox3Eng");
this.groupBox4.Text = res.GetString("GroupBox4Eng");
this.groupBox5.Text = res.GetString("GroupBox5Eng");
this.Text = res.GetString("TetleEng");
при попытке что либо извлечь из ресурса вылетает непонятное исключение...
Подскажите в чем дело тут и как это исправить корректней...
__________________________________________________________
Или хотя бы дайте пару ссылок на работающие примеры! Всем откликнувшимся заранее большое спасибо!
Что хоть за исключение?
Создаю на каждый язык свою сборку, каждая сборка имеет одинаковую структуру ресурсов. Также создаю собственный класс для загрузки ресурсов из сборок (ResourceManager). Форма привязывает текст каждого контрола к соответствующему текстовому ресурсу, это в принципе можно автоматизировать через отражение, чтобы не перечислять все контролы (а их может быть много).
У меня такой вопрос:-Можно ли в программе написанной на С++ в меню добавить строку Language и несколько вариантов языков указав к каждому из них путь к папке с языковыми DLLками.Я абсолютно не разбираюсь в программировании.Достаточно давно занимаюсь переводами интерфейса программ.Возникла необходимость сделать программу многоязычной.Сами переводы готовы и по отдельности работают,а вот как сделать чтобы из меню программы они переключались, я пока не знаю.Попробовал воспользоваться Microsoft Visual Studio 8 - менюшки получились а вот как заставить их читать нужные файлы из определенной папки я не знаю.Литературы перелопатил много ,но конкретно по моей проблеме так ничего и не нашол.Везде объясняется как создавать новое а вот как редактировать уже созданное - ничего нет.Если кто подскажет или хотя бы даст ссылки на определенную литературу - буду очень благодарен.
Цитата: Iscander1
У меня такой вопрос:-Можно ли в программе написанной на С++ в меню добавить строку Language и несколько вариантов языков указав к каждому из них путь к папке с языковыми DLLками.
Можно.
Цитата: Iscander1
Я абсолютно не разбираюсь в программировании.Достаточно давно занимаюсь переводами интерфейса программ.Возникла необходимость сделать программу многоязычной.
Вопрос не в той ветке. Если хотите получить адекватный ответ - создайте новый топик.
вопрос по прмеру - а можно ли те ресурсы редактировать в длл"ках??
Цитата: tva94
вопрос по прмеру - а можно ли те ресурсы редактировать в длл"ках??
Попробуй :) Но по-моему нельзя. Что-то мне подсказывает, что когда сборка подписывается, подписываются и ресурсы лежащие в ней.