Daisy |
Отправлено: 04.12.2005, 18:51 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
Подскажите, пожалуйста.
Не пойму, можно ли и, если можно, то как можно переключать язык приложения в процессе работы программы, а не на этапе компиляции и не в зависимости от языка Windows.
Ресурсы храню в файле .dfm.
Хочется, чтобы можно было выбрать язык из меню программы или хотя бы в формочке при запуске приложения.
|
|
Gal |
Отправлено: 05.12.2005, 13:15 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 124
|
Посмотри подобные программы!
В них есть внешние файлы содержащие ту или инию кодировку,
и в зависимости какой язык ты выбираещь происходит чтение из того или иного файла |
|
Daisy |
Отправлено: 06.12.2005, 10:29 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
Мне не понятно, как это сделать средствами Билдера, если ресурсы. Resource DLL Wizard, перевод. А дальше нужна компиляция для разных языков отдельно. |
|
Guest |
Отправлено: 06.12.2005, 11:01 |
|
Не зарегистрирован
|
к примеру создаещь два ини файла в одно английский в другом русский
пример
На русском
[Menu]
Item1="Файл"
Item2="Открыть"
...
На английском
[Menu]
Item1="Files"
Item2="Open"
...
в меню есть пункты выбора языка-Выбиращь русский открыващь ини файл на русском и в меню Caption items присваиваещ. значения прочитанные из файла. вотпримерно так в двух словах |
|
Daisy |
Отправлено: 07.12.2005, 11:03 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
Ура. Все получилось. Спасибо.
Русский, английски — все нормально.
Извините, что туплю. Но ещё вопрос.
А может либыть ини-файл юникодом? Немецкие умляюты и всякие гачеки (ščě) не хотят из него читаться. |
|
Gal |
Отправлено: 07.12.2005, 11:10 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 124
|
Ну в принципет я с юникодом не работал, но думаю для этой цели лучше использовать не ini файл , а xml, в нем в первой строке указывается кодировка. |
|
Gedeon |
Отправлено: 07.12.2005, 12:50 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
QUOTE (Daisy @ 07/12/2005, 11:03) | А может либыть ини-файл юникодом? Немецкие умляюты и всякие гачеки (ščě) не хотят из него читаться. |
Ини файл может хранить все, что угодно, и, читается он скорее всего правильно, а вот отобразиться не может, для отображения юникода нужны другие компоненты, ищите по форуму, я приводил ссылку, да тип переменной надеюсь WideChar используете.
|
|
Daisy |
Отправлено: 07.12.2005, 16:30 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
[CODE] TIniFile *iniRussian;
iniRussian = new TIniFile(ChangeFileExt(Application->ExeName, ".INI"));
pMenuSettings = iniRussian -> ReadString("Menu","mSet", "ms");
delete iniRussian;
.....
Label1->Caption = IntToStr(pMenuSettings.Length());
[CODE]
// Отображается число символов вне зависимотсти от ASCII или UNICODE. Или ансистринг надо как-то настроить, чтоб он читал уникод? |
|
Gedeon |
Отправлено: 07.12.2005, 16:57 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Используйте WideString вместо АнсиСтринг, и еще я не уверен что борландовский TIniFile умеет читать юникод, тогда используйте апи, ну или все же лучше xml
|
|
Daisy |
Отправлено: 07.12.2005, 17:11 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
А ну да, WideString конечно же
Спасибо большое. Буду копать. |
|