Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопросы по интернационализации: / 4 сообщений из 4, страница 1 из 1
03.05.2004, 23:10
    #32506165
Discover
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по интернационализации:
Посмотрел в нескольких местах (пара книг по C#, VS.NET, msdn)
Везде указано одно и то же:
Код: plaintext
1.
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");


то есть на основе текущего значения Culture из потока
считывается соотв. resource

Возникают два вопроса:

1. Как можно без перезапуска приложения изменить значения locale
(ведь данные из resource считываются при инциализации)
Вообще-то насколько я понимаю это "проблема" VS.NET,
которая в InitializeComponent вместе с инициализацией
производит и присвоение значений свойств обьектов.

Если сделать так, то работает:
Код: plaintext
1.
Thread.CurrentThread.CurrentUICulture = new CultureInfo("EN");
this.button1.Text = resources.GetString("button1.Text");

но можно ли сделать тоже самое без ручного вмешательства,
ведь для каждой формы не будешь создавать отдльную процедуру
копировать все кроме инициализации обьектов (Control-ов)... и т.д.

2. Можно ли добавлять языки(locale) к программе после компиляции
(или без перекомпиляции)
Понятно что можно опять таки самому разработать механизм из
xml файлов и считывать из них значения.
Есть ли готовые решения ?
...
Рейтинг: 0 / 0
04.05.2004, 23:23
    #32506696
Discover
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по интернационализации:
Что неужели никто не возился с интернационализацией ?
или просто вопросы непонятные,
может много - читать неохото :)
Поделитесь пожалуйста соображениями.
...
Рейтинг: 0 / 0
05.05.2004, 01:40
    #32506736
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по интернационализации:
Что-то я не особо понимаю проблему.
Стандартный подход - создание файла ресурсов, в котором хранятся все варинты языков, глобальный модификатор по которому будет производится выбор ресурса и инициализацию подправить немного в нужных местах. Создать функцию через которую доствать все необходимые мессаги и имена.

Для работы со всем этим хозяйством в реал тайме, т.е. чтобы иметь возможность добавлять языки без перекомпиляции, прдется реализовать свой ресурс(в первом случае он будет идти отдельной сборкой), например XML идеально подходит для этого. ИЗ того же файла читать какие языки присутствуют, грузить все в один класс(коллекцию) и динамически читать.
Все довольно просто.

Конечно это все ИМХО, может у кого есть другие мнения.


Magnus
...
Рейтинг: 0 / 0
05.05.2004, 23:46
    #32508248
Discover
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по интернационализации:
Все довольно ясно - абсолютно согласен.
Я не хочу выглядеть человеком (программистом), который считает что все должны предусмотреть за него. Но вопрос был ?
Код: plaintext
Есть ли готовые решения ?
Не в том смысле реализовал ли кто-нибудь их. А как можно реализовать средствами студии (вопрос 1) или работы с готовыми сборками (вопрос 2).
Делаю выводы по вопросам:
1. Все довольно понятно, с изменением значений свойств отвечающих за метки и т.д. Но VS.NET делает это удобным в одном варианте, если надо переинициализировать их то функция инициализации становится помехой (к примеру если у нас порядка 50 форм, заниматься тем что переносить по 20-30 присвоений в отдельную функцию - ..., как я предполагаю потом еще интересно будет посмотреть на форму в режиме дизайнера :) )

2. Второй вопрос возник из того то приложение может писаться на одном языке а переводом форм будут заниматься другие люди (с учетом специфики региона, то есть они не имеют исходников) Конечно понимаю что разных языках длина строк можут быть различной и т.д. но все же. К примеры нам надо как минимум от 2 до 4 языков.

Опять таки в одном случаю студия делает удобным и за нас создает сборки в другом нам надо самим реализовывать механизм определения множеств переводом (упрощенно связки между названием обьекта+свойством+типом - хранием и определением соответсв. xml файла).

Вывод:
1. VS.NET позволяет лишь создавать приложения с заранеее известным набором языков + менять язык только при перезапуске приложения.
2. С# - позволяет решить эти проблемы.
Поймите правильно и не противопоставляю эти два понятия (и не "убивайте" за такой сравнение).
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопросы по интернационализации: / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]