Форум: "Основная";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];
ВнизКак локализовать приложение? Найти похожие ветки
← →
Alxd (2003-01-02 22:46) [0]Нужно локализовать приложение так же, как это сделано в FlashGet, т.е. *rus.ini файл будет содержать все текстовые строки и сообщения используемые программой.
Все осложняется тем, что программа состоит из двух модулей. Один написан на VC, а другой на D6 (так надо, по другому никак).
Решение вижу примерно следующее:
1. написать весь код локализации в D6.dll.
2. экспортировать функции из d6.dll в vc.dll (условно).
3. использовать экспортируемые функции по всей программе, где надо.
ОДНАКО! Как все это сделать? С чего начать или от чего оттолкнуться?
← →
Cobalt (2003-01-02 23:42) [1]К чему все эти ухищрения? Чем вам не нравится простой ini-файл? Другое дело, что надо проверять его на ошибки.
В каждой ДЛЛ-ке делаешь ф-ию "ChangeLanguage(FileName:PChar)", и в пользовательском интерфейсе вызываешь её для Дельфовой и Сишной ДЛЛ-ки. Ну и, конечно, не забывай закрывать файл после чтения :)
← →
Alxd (2003-01-03 21:35) [2]Спасибо. Но.
Не столько ухищрения, сколько попытка не писать дублирующий код.
Просто я хотел бы описать функции работы с файлом ini (он меня вполне устраивает) в d6.dll. В Delphi работать с ini проще.
А из vc.dll вызывать только экспортируемые функции.
Еще одно забыл добавить, обращения к локализующим функциям будут довольно частые, поэтому способ каждый раз читать из файла данные неподходит. Надо где-то разместить эти данные заранее.
Опять же решение TMemIniFile, однако при попытке сделать следующее в d6.dll:
function expLangMessage(Index: integer; var pOutput: PChar): boolean; cdecl;
begin
Result:=PChar(LangMemIni.ReadString("msMessages", IntToStr(Index), ""));
end;
после первого вызова вроде порядок, а потом ошибка работы с указателем (Invalid pointer). Короче - неопределенно все.
Может кто-то уже писал что-то подобное? Чтоб сквозная локализация была?!
← →
Alxd (2003-01-04 12:21) [3]Ошибка в описании функции в сообщении выше. Извиняюсь.
function expLangMessage(Index: integer): PChar;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c