Форум: "Потрепаться";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];
ВнизПоддержка программой нескольких языков Найти похожие ветки
← →
Kozhanov (2002-04-15 11:24) [0]Господа, я уже задавал этот вопрос, но вразумительных ответов,
к сожалению, не получил. Задаю его ещё раз :
Просьба поделиться опытом в области поддержки
программой нескольких языков,которые можно переключать в
runtime. Как лучше это организовать и где лучше всего
хранить данные ?
← →
gek (2002-04-15 11:31) [1]Да опиши все в файле ресурсов и потом смотри какой язык необходим
← →
Kozhanov (2002-04-15 11:39) [2]> gek
Спасибо за быстрый отклик.
Вот только у меня нет опыта в создании строковых ресурсов.
Опишите (в двух словах) как это делается и как при таком подходе
нужно организовывать переключение языков.
← →
Anatoly Podgoretsky (2002-04-15 11:42) [3]Лучше купить готовый локализатор, это будет действительно просто и удобно.
← →
Виктор Щербаков (2002-04-15 11:45) [4]
> Вот только у меня нет опыта в создании строковых ресурсов.
Самый простой способ - с помощью ключевого слова ResourceString
← →
Kozhanov (2002-04-15 11:46) [5]> Anatoly Podgoretsky
Дайте, пожалуйста, ссылки.
← →
Andrews (2002-04-15 11:53) [6]Ну организовать можно посредством работы с INI-файлами, меняешь имя файла в run-time, весь остальной код остается неизменным, создать такой файл можно в любом TXT-редакторе, а как работать с INI-файлами смотри в хелпе все очень просто...
← →
Kozhanov (2002-04-15 11:53) [7]> Виктор Щербаков
Про ResourceString я знаю. Мне не понятна вот какая вещь :
Скажем есть простая форма (для простоты - модальная), там есть две кнопки "сохранить" и "отмена" и нужно поддержать 2 языка
наш великий и могучий и английский, так вот
если
использовать ResourceString, то видимо нужно будет написать
ResourceString
SEngSaveCaption = "Save" ;
SEngCancelCaption = "Cancel" ;
SRusSaveCaption = "Сохранить" ;
SRusCancelCaption = "Отмена" ;
И как в таком случае переключаться, наверное, только с помощью
if или case или можно как-то хитрее ?
← →
Anatoly Podgoretsky (2002-04-15 11:55) [8]Kozhanov © (15.04.02 11:46)
Сходи на Торри
← →
Kozhanov (2002-04-15 11:58) [9]> Andrews
Спасибо !
Ваша идея пока самая достойная, хотя и простая (я серьёзно).
А какие могут быть ещё варианты ?
← →
Kozhanov (2002-04-15 12:00) [10]> Anatoly Podgoretsky
И что там следует искать.
Вы имели ввиду какой-то конкретный soft или как ?
← →
Виктор Щербаков (2002-04-15 12:00) [11]Если бы не требование переключения языков в RunTime, то можно было бы воспользоваться стандартным средством ITE. Создание ресурсов в нём автоматизировано.
← →
Kozhanov (2002-04-15 12:05) [12]> Виктор Щербаков
Ха !
В том то всё и дело что нужно всё делать в RunTime, иначе я
бы не мучил Вас распросами.
А что Вы думаете про идею Andrews ?
← →
Andrews (2002-04-15 12:07) [13]var
Lang : TIniFile;
Interface : Boolean;
begin
...
if Interface then
Lang := TIniFile.Create(ExtractFileDir(ParamStr(0)) + "\Rus.ini")
else Lang := TIniFile.Create(ExtractFileDir(ParamStr(0)) + "\Eng.ini")
...
SSaveCaption := CDBEditorIni.ReadString("Main", "SSaveCaption","Save");
SCancelCaption := CDBEditorIni.ReadString("Main", "SCancelCaption","Cancel");
...
← →
Виктор Щербаков (2002-04-15 12:26) [14]
> А что Вы думаете про идею Andrews ?
Если других вариантов нет, то можно и так. Но могут появиться сложности. Если число элементов управления фиксированно, то всё ОК, а если они создаются динамически? В случае смены языка нужно будет найти ВСЕ объекты, нуждающиеся в смене значения определенных свойств (Caption, Text etc). Кроме этого, при добавлении каждого элемента управления (в дизайне) нужно будет добавлять код чтения из ini-файла.
← →
ION T (2002-04-15 12:50) [15]Когда-то писал тестовый проект для кого-то:
http://iont.virtualave.net/pub/delphi/translator.zip
Там просто используется текстовик со строками типа
Form1.Label1.Caption=HrenZnaetShto
Простое применение RTTI. Вообще что-то подобное я использовал в моем UPX Shell-e, только там ещё есть обработка сообшений (ну, чтоб на таскбаре писать например)
← →
Anatoly Podgoretsky (2002-04-15 12:58) [16]Kozhanov © (15.04.02 12:00)
Конкретные компоненты для локализации программ, точного раздела не подскажу
← →
lipskiy (2002-04-15 12:59) [17]Есть точно компоненты для поддержки многоязычного интерфейса. Кажется, видел их описание в почтовой рассылке этого сайта. Если очень надо - отмыль, посмотрю дома, может даже я качал себе. А так вообще поищи в сети, есть они точно, что нибудь типа multilanguage..., хотя не уверен в таком названии.
← →
Anatoly Podgoretsky (2002-04-15 13:10) [18]Один из лучших от Сергея Коржа
← →
Kozhanov (2002-04-15 13:26) [19]Господа, всем ОГРОМНОЕ СПАСИБО за помощь !
Особенно сэру Andrews :)
> lipskiy
Если найдёте компоненты, то скинте мне на мыло, адрес в моей
анкете
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c