Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.49 MB
Время: 0.009 c
1-73181
Sergn
2002-05-13 21:33
2002.05.23
Отлавливать в RichEdit события drag-drop текста


4-73478
SPeller
2002-03-21 08:06
2002.05.23
Обновление окна. Что при этом происходит ?


4-73462
sergey_1
2002-03-25 08:04
2002.05.23
Как получить код возврата консольного прилолжения


4-73466
zondor
2002-03-25 15:03
2002.05.23
API - Cvjazj s drugimi Prilozenijami


3-73046
Ura
2002-04-25 13:32
2002.05.23
Транзакции в IB





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский