Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C# работа с ресурсами, локализация

307
01 ноября 2008 года
Artem_3A
863 / / 11.04.2008
Преподаватель дал задание написать программу с поддержкой двух языков. Создаю ресур следующим образом
Код:
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();


Загружаю

Код:
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");


при попытке что либо извлечь из ресурса вылетает непонятное исключение...
Подскажите в чем дело тут и как это исправить корректней...


__________________________________________________________
Или хотя бы дайте пару ссылок на работающие примеры! Всем откликнувшимся заранее большое спасибо!
288
03 ноября 2008 года
nikitozz
1.2K / / 09.03.2007
Что хоть за исключение?
5
03 ноября 2008 года
hardcase
4.5K / / 09.08.2005
Попробуйте вот так (см. аттач).
Создаю на каждый язык свою сборку, каждая сборка имеет одинаковую структуру ресурсов. Также создаю собственный класс для загрузки ресурсов из сборок (ResourceManager). Форма привязывает текст каждого контрола к соответствующему текстовому ресурсу, это в принципе можно автоматизировать через отражение, чтобы не перечислять все контролы (а их может быть много).
40K
04 ноября 2008 года
Iscander1
11 / / 04.11.2008
У меня такой вопрос:-Можно ли в программе написанной на С++ в меню добавить строку Language и несколько вариантов языков указав к каждому из них путь к папке с языковыми DLLками.Я абсолютно не разбираюсь в программировании.Достаточно давно занимаюсь переводами интерфейса программ.Возникла необходимость сделать программу многоязычной.Сами переводы готовы и по отдельности работают,а вот как сделать чтобы из меню программы они переключались, я пока не знаю.Попробовал воспользоваться Microsoft Visual Studio 8 - менюшки получились а вот как заставить их читать нужные файлы из определенной папки я не знаю.Литературы перелопатил много ,но конкретно по моей проблеме так ничего и не нашол.Везде объясняется как создавать новое а вот как редактировать уже созданное - ничего нет.Если кто подскажет или хотя бы даст ссылки на определенную литературу - буду очень благодарен.
5
04 ноября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Iscander1
У меня такой вопрос:-Можно ли в программе написанной на С++ в меню добавить строку Language и несколько вариантов языков указав к каждому из них путь к папке с языковыми DLLками.

Можно.

Цитата: Iscander1
Я абсолютно не разбираюсь в программировании.Достаточно давно занимаюсь переводами интерфейса программ.Возникла необходимость сделать программу многоязычной.

Вопрос не в той ветке. Если хотите получить адекватный ответ - создайте новый топик.

1.9K
07 ноября 2008 года
tva94
115 / / 01.05.2007
вопрос по прмеру - а можно ли те ресурсы редактировать в длл"ках??
5
07 ноября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: tva94
вопрос по прмеру - а можно ли те ресурсы редактировать в длл"ках??


Попробуй :) Но по-моему нельзя. Что-то мне подсказывает, что когда сборка подписывается, подписываются и ресурсы лежащие в ней.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог