Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.13;
Скачать: CL | DM;

Вниз

Как локализовать приложение?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
4-37456
Ich Hasse
2002-11-22 14:59
2003.01.13
Мультимедиа таймер как установить?


1-37095
Mozart
2003-01-03 13:44
2003.01.13
Кодировка файла...


14-37297
FLIZ
2002-12-22 01:08
2003.01.13
Про кодерров и прогерров :-)))


7-37392
Ricky-Ticky-Tavy
2002-10-25 14:50
2003.01.13
Строковые идентификаторы винчестеров (или IDE-устройств)


1-37003
vlad
2002-12-31 17:16
2003.01.13
MDI & CHILD