Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Многоязычная программа [D6, WinXP]


Knoxville ©   (2005-01-23 20:31:00) 

Подскажите пожалуйста где лучше хранить все языки программы (рус, укр, анг) и как их правильно загружать? Я хранил языки отдельных ini замаскированых под *.lng, но при загрузке большого кол-ва текста выдавалась ошибка (access violation вроде-бы).
Спасибо всем!


atruhin   (2005-01-24 08:59:00) [1]

В EhLib есть очень удобный компонент PropStorageEh позволяет сделать это автоматически, выбираешь какие свойства компонентов сохранить и все. После этого полученный ini файл переводиш на любой язык. Загружать будет сам компонент по автомату


Anonimus   (2005-01-23 22:09:00) [2]

ЗЫ забыл. Перебираешь все компоненты в цикле, а если  текущий компонент может содержать дочерние - то рекурсия. Ни и для TreeView & подобных - своя обработка.

Сорри если немного путано. :) Вечер уже.


Anonimus   (2005-01-23 22:07:00) [3]

Копай в сторону Application.Components. Пишешь прогу на каком угодно языке (англ, рус....) Далее юзаешь Component.Name, If <ComponentName> Is <ComponentType> then <ComponentName> as <ComponentType> do <ComponentName>.<Text/Caption/Hint/....> := ....
Муторное дело. Мож кто знает готовый компонент.

Я для начала экспортировал тексты со всех компонентов в текстовый файлик, потом потом загружал оригинальный/переведенный файл. Посмотри как Опера сделана. А вообще при таком подходе можно пару процедур универсальных сделать и горя в последствии не знать. Тока со сторонними компонентами траблы будут....


Поручик   (2005-01-23 21:47:00) [4]


> Я делал, так...

Я так и представлял, только в тумане =)


Knight   (2005-01-23 21:31:00) [5]


> [5] Поручик ©   (23.01.05 21:21)
> Я автопилоту не доверяю, как это в ручную делается?

Я делал, так... создавал набор переменных типа
BTN_OK, MF_MM_ADD_ITEM и т.п.
а потом подгружал значения из выбранной dll-ки
если таковой не было, то присваивал по-умолчанию значения на английском...
А вообще... как придумаешь, так и делается... %)


KilkennyCat   (2005-01-23 21:28:00) [6]

Если не ошибаюсь, у RxLib есть пример.


Поручик   (2005-01-23 21:21:00) [7]

Я автопилоту не доверяю, как это в ручную делается?


Поручик   (2005-01-23 21:21:00) [8]

в VC++ нету Project>languages>add


Knight   (2005-01-23 21:10:00) [9]

А объясните коротко использование - Project/Languages/Add...


Поручик   (2005-01-23 21:03:00) [10]

А где можно почитать про принцип работы, смутно это представляется


Knoxville   (2005-01-23 20:45:00) [11]

А с XML как работать?


Юрий Зотов   (2005-01-23 20:39:00) [12]

Хранить - где угодно (ini, xml, dll, IStorage и пр.).
Как загружать - зависит от того, где хранится.
Access Violation - дело было не в бобине, как говорят шоферы...


Наверх

Титульная страница Поиск, карта сайта Написать письмо