Главная страница
    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.44 MB
Время: 0.008 c
1-37137
jen_bond
2002-12-29 12:15
2003.01.13
Перекрывание компанентов


3-36928
Antah
2002-12-17 13:56
2003.01.13
Проблема с запросом SELECT FROM WHERE LIKE


3-36954
Борис
2002-12-16 17:02
2003.01.13
Русские буквы в IB 6


1-37120
Kventin
2003-01-04 13:42
2003.01.13
Проблема с StringReplace


14-37315
Оливейра
2002-12-23 21:27
2003.01.13
Про то, как Антона Палыча забодали спамеры.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский