[Delphi] Интерфейс на нескольких языках

yolki

Как наиболее оптимально сделать такую вещь?
Какие есть компоненты?
Программа небольшая: десяток пунктов меню, контролов, кнопочек
полсотни информационных сообщений (MessageBox-ы, файл протокола)

0000

На www.sources.ru в Дельфи форуме есть FAQ от Vit'а (5 метров) [можно и on-line на форуме]- там вроде какая то понтовая технология была написана. А вообще можно все с нужного (по языку) ini-файла читать. Кажется так.

yolki

Спасибо, гляну.
По поводу ини-файлов - это как у фара - .lng файлы - это я знаю.
Вот только как бы это на лету переписывать у всех контролов.. и чтобы правильно. надо какие-то идентификторы на контролы вешать - тэги чтоли использовать.. а если у меня тэг уже используется? - в общем, надо думать.

viktor954

Есть такая функция, GetControlByName и GetControlByID (что-то вроде того - точно не помню, но ТОЧНО ЕСТЬ)
Делаешь текстовый файлик КОНТРОЛ=ТЕКСТ
Ну и дальше понятно...

margadon

А нельзя длл-ку подкачать с ресурсами? И её менять, если надо сменить язык?
Альтернативно, можно распарсить xml-файлик... (так многоязычность во флеше делается)

Flack_bfsp

А нельзя длл-ку подкачать с ресурсами? И её менять, если надо сменить язык?
В Дельфе, начиная, кажется, с 5й, так и делается. Там специальный ресурс-длл-визард для этой цели.

yolki

О! это уже интересно. как им пользоваться? что-то я в хелпах не могу сообразить - половина ссылок идут в никуда (The topic you requested is either not available or not linked to help system.. blablabla)

Flack_bfsp

Я им сам никогда не пользовался. Но думаю, там всё просто. Меню Файл-Нью...-Реурс ДЛЛ Визард. Есть ресурс дллки и в примерах. Я глядел и сразу всё понял. Правда, давно это было, поэтому не помню уже, как там что делать.

stm5643616

Я делал совю компоненту локализации большой дельфийской программы. Идея такая: в цикле по компонентам формы определять тип компоненты через RTTI-функции. И если нашел в базе запись про эту компоненту (например, 'Button1.Caption', 'ToolButto1.Hint' то через RTTI-функции устанавливаются им значения на заданном языке из базы. Если не нашел, то записать в базу значение соответствующего property таким, какое оно в design time одинаковое на всех языках.
Оставить комментарий
Имя или ник:
Комментарий: