Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.07;
Скачать: CL | DM;

Вниз

Многоязычность интерфейса   Найти похожие ветки 

 
Gerbert   (2008-10-06 08:55) [0]

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


 
КПК   (2008-10-06 09:08) [1]

храни капшены и хинту в ини файлах например russian.lng потом подгружай во время создания форм...


 
123-ий ©   (2008-10-06 10:00) [2]

я в xml храню. сейчас пишу прогу, которая анализирует .dfm файл, дерет от туда капшены и формирует соответственный xml файл. Также напишу юнит для загрузки этих капшнов из xml в форму. Надо будет - выложу.


 
Gerbert   (2008-10-06 10:07) [3]


> Надо будет - выложу.


Был бы очень принзнателен.


 
123-ий ©   (2008-10-06 10:11) [4]

ну так как закончу так сразу


 
Desdechado ©   (2008-10-06 16:36) [5]

Integrated Translation Environment
Так как перевод может затрагивать не только надписи, но и прочие ресурсы (картинки с надписями или нацсимволикой, звуки и речь, даже размеры элементов управления).


 
@!!ex ©   (2008-10-06 16:37) [6]

Велосипедисты. :)
Уже давно есть тулзы для мультиязычности в Delphi.


 
clickmaker ©   (2008-10-06 17:37) [7]

В FARe, к примеру, все строки хранятся в файлах lng
Собственно, вариантов не так уж и много. А точнее, всего 2: DLL с ресурсами и текстовик. Все остальное - вариации на тему


 
Eraser ©   (2008-10-06 17:46) [8]

http://matrix.kladovka.net.ru/download.php?getfilename=uploads/other/multilang.zip
если немного напильником доработать, то вполне сносный велосипед получится.

> Integrated Translation Environment

вещь безусловно хорошая, но черезчур трудозатратная и имеет существенный недостаток - нельзя передать файл для перевода третьим лицам.


 
Правильный$Вася   (2008-10-06 17:48) [9]


> В FARe, к примеру, все строки хранятся в файлах lng

а там больше ничего и нет: ни картинок, ни звуков, ни окон
и арабского фара я тоже не видел


 
clickmaker ©   (2008-10-06 17:50) [10]

> а там больше ничего и нет: ни картинок, ни звуков

насчет звуков - это да, упущение. Их очень там не хватает.
Написать Рошалу, что-ли...


 
Правильный$Вася   (2008-10-06 18:08) [11]


> clickmaker ©   (06.10.08 17:50) [10]

тогда пусть лучше озвучивает интерфейс и справку при наведении мыши ;)
причем каким-нибудь словочитающим движком, чтоб инсталлятор не распухал


 
Eraser ©   (2008-10-06 18:53) [12]

AFAIK фар сейчас - open source )


 
Anatoly Podgoretsky ©   (2008-10-06 20:16) [13]

> Eraser  (06.10.2008 17:46:08)  [8]

Для кого то трудо затраты, а для кого то экономия ресурсов, и ресурсов компьютера тоже.


 
Правильный$Вася   (2008-10-06 20:38) [14]


> Eraser ©   (06.10.08 18:53) [12]

есть от него юникодный fork в свободном виде
а коммерческий никто не отменял, вроде


 
isasa ©   (2008-10-06 20:52) [15]

Anatoly Podgoretsky ©   (06.10.08 20:16) [13]

> Eraser  (06.10.2008 17:46:08)  [8]

Для кого то трудо затраты, а для кого то экономия ресурсов, и ресурсов компьютера тоже.


Мы много языков знаем. Мы все переведем сами, не? :)


 
Правильный$Вася   (2008-10-06 20:56) [16]


>  Мы все переведем сами, не? :)

бюро перевода сделает


 
isasa ©   (2008-10-06 21:01) [17]

Правильный$Вася   (06.10.08 20:56) [16]

бюро перевода сделает


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


 
Anatoly Podgoretsky ©   (2008-10-06 21:17) [18]

> isasa  (06.10.2008 20:52:15)  [15]

Зачем нам самим, мы ни петь, ни рисовать не умеем, но есть люди.


 
Anatoly Podgoretsky ©   (2008-10-06 21:25) [19]

> isasa  (06.10.2008 21:01:17)  [17]

Это ресурсы, значит не затруднит сбросить в текстовый файл, большинством редакторами ресурсов, при том прямо в Юникоде если нужно.


 
isasa ©   (2008-10-06 21:36) [20]

Anatoly Podgoretsky ©   (06.10.08 21:25) [19]

Это ресурсы, значит не затруднит сбросить в текстовый файл, большинством редакторами ресурсов, при том прямо в Юникоде если нужно.


Это я понимаю.
Интересно сохранить связку key_id - original_text - translated_text, что бы потом не читать и не вникать в суть.
"Теряем время" (с)


 
Anatoly Podgoretsky ©   (2008-10-06 21:45) [21]

> isasa  (06.10.2008 21:36:20)  [20]

В файл сохраняется, для строк ИД + строка (в формате StringTable)
Переводчик добавит к ней строка 2

Кроме того, кто постоянно с этим работает, вполне в состоянии сделать несложную программу с удобным, для переводчика, интерфейсом. Не исключается и персональная база и интерфейс в виде обычной сетки на три колонки. И инструментарий по гонянию информации туда и обратно в программу. Но это если есть желание и достаточно большой объем работы.


 
Anatoly Podgoretsky ©   (2008-10-06 21:46) [22]

> isasa  (06.10.2008 21:36:20)  [20]

По аналогии с реестром, никто же не работает с текстовым экспортированым файлом, а используют regedit.


 
isasa ©   (2008-10-06 21:58) [23]

Anatoly Podgoretsky ©   (06.10.08 21:45) [21]

В файл сохраняется, для строк ИД + строка (в формате StringTable)
Переводчик добавит к ней строка 2


"Так бы сразу и сказал" (с) Джентельмены удачи.

Я пользую Excel и выгрузку "с разделителем запятая". Потом цепляем к dll ресурса и вперед ... :)


 
Anatoly Podgoretsky ©   (2008-10-07 01:46) [24]

> isasa  (06.10.2008 21:58:23)  [23]

Моя сказала, что ресурсы и переводчик не являются непреодолимой преградой.



Страницы: 1 вся ветка

Текущий архив: 2008.12.07;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.012 c
2-1225354834
SKIPtr
2008-10-30 11:20
2008.12.07
Коректно закрыть вкладку


3-1211208539
aleksej
2008-05-19 18:48
2008.12.07
колесо мыши и dbgrid


2-1225276588
031178
2008-10-29 13:36
2008.12.07
Как сравнить время


15-1223089379
TUser
2008-10-04 07:02
2008.12.07
Что такое компьютер?


2-1225057267
NavigatorNeba
2008-10-27 00:41
2008.12.07
Место на компонентах под Label, не реагирует на onClick.