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

Вниз

Чем локализовать интерфейс?   Найти похожие ветки 

 
Gemini   (2004-09-20 12:53) [0]

Подскажите чем воспользоваться для перевода интерфейса программы? Нужен бесплатный компонент, который держит перевод в отдельном текстовом файле желательно вида 1234="Правка". В отличие от BalmsoftPolyglot"а у которого Label.Caption="Правка". Было-бы изумительно если бы с его помощью можно было бы переводить не только компоненты, лежащие на форме, но и скажем сообщения, диалоги. Или такое: в зависимости от вида вызова форме дается разный Caption. Вот чтобы и его перевести.


 
TeNY ©   (2004-09-20 12:59) [1]

Используй ini файлы просто и дёшево


 
Gemini   (2004-09-20 13:01) [2]

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


 
DiamondShark ©   (2004-09-20 13:05) [3]

А ITE чем не нравится?


 
Iconka ©   (2004-09-20 13:05) [4]

Пользуюсь таким способом: в ini файле строки типа  1234="Правка". Оформленно это одним класом который себе в StringList загружает эти строки и создает меню. У каждой формы есть procedure Translate; В которой все что надо переводится (типа Label1.caption := Lokilizer.Values["10"]). Перезагрузка не требуеться. Для формирования сообщений использую Format.


 
GuAV ©   (2004-09-20 13:11) [5]

ITE.
и незачем текст в ini хранить, лучше целиком переведеные DFM, как ITE делает - тогда можно менять положение/размер контролов, т.е. именно "локализовать" а не тупо переводить.


 
Iconka ©   (2004-09-20 13:14) [6]

++ INI:Конечные пользователи без проблем могут перевести на родной язык (актуально для Shareware)
ITE позволяет такое?


 
ghg ©   (2004-09-20 13:28) [7]

>Iconka ©   (20.09.04 13:14) [6]
нет такого он не позволяет.
если хочешь чтобы мог конечный пользователь менять локализацию тогда только из ini (или любого текстового) файла все нужно подгружать.
конечно все имхо


 
icebeerg ©   (2004-09-20 15:26) [8]

hands.dll если не ошобаюсь 8))))


 
Экспериментатор   (2004-09-20 16:17) [9]

Если интересует могу прислать
свой вариант только сохраняет он все в виде типа lbl_Edit.Caption="Правка", есть только один нюанс, но он самый главный - для перевода тебе не надо потом писать типа Label1.caption := "значение взятое из файла перевода"
Для поиска контролов используется функция в которой используются методы RTTI для поиска нужных свойств у объектов (таких как HINT, Caption, Text и т.д. - если нужно что-то еще - это легко добавить).
Достаточно вызвать эту функцию либо в конструкторе, либо ручками после создания формы - это все что нужно сделать.
Сам файл перевода создается автоматически при первом запуске но с пустыми полями, которые естественно не загружаются в форму, если они пустые.
Также в свое время написал редактор файлов перевода - писать было особенно нечего (сделан с использованием компонента Object Inspector из Jedy + фенька для редактора на скорую руку, но достаточно удобен). Для загрузки перевода интерфейса не нужно перезапускать программу. Для поиска файлов перевода есть также пара функций, которая создает меню с пунктами в наименовании которых содержится имя файла перевода без расширения (достаточно просто, но рутина все-таки) - например как в BSPlayer"e.
В общем достаточно функциональная вещь. Единственная морока - это перевод сообщений, но тут все в ваших руках - такой автоматизации как с объектами (контролами) это не поддается, но для этого есть пара функций облегчающих жизнь.
Если нужно, напишите мне -  я пришлю вам все необходимое.

Вообще наверно стоит написать статью с исходным кодом для DelphiMaster. Это тема...


 
Gemini   (2004-09-20 16:48) [10]


> Экспериментатор   (20.09.04 16:17) [9]

 Спасибо. Это BalmsoftPolyglot умеет. Чего в нем не нравится: 1)вываливает в языковой файл названия компонентов; 2) не работает с добавленными мной свойствами; 3) показываю я юзеру какое-нибудь сообщение. Как его перевести Polyglot"om не представляю.
 Похоже буду писать сам что-то вроде того о чем писал Iconka.


 
Экспериментатор   (2004-09-20 16:57) [11]

А почему не нравится если в файле назыания компонентов = потому что их нужно обзывать как нибудь? или еще причина какая?


 
Экспериментатор   (2004-09-20 16:59) [12]

Причем таким способом, каким вы собираетесь делать
тяжковато будет присваивать всем контролам нужные строки.


 
Экспериментатор   (2004-09-20 17:03) [13]

И по поводу добавленных свойств.
Все это можно реализовать в пять секунд.
Работать будет со свистом.


 
DiamondShark ©   (2004-09-20 17:32) [14]

Неистребима в народе тяга к изобретению велосипедов...


 
Gemini   (2004-09-20 17:57) [15]


> DiamondShark ©   (20.09.04 17:32) [14]

Держать переведенные DFM не есть хорошо. Нужно в тексте. Чтобы не все мне переводить, а и конечный юзер мог пособить.


 
DiamondShark ©   (2004-09-20 18:37) [16]


> Gemini   (20.09.04 17:57) [15]

Ну, хозяин -- барин, конечно.
Просто, как мне кажеЦа,
а) не юзерское это дело интерфейс переводить
а.1) если уж у юзера нет других более интересных дел, как переводить интерфейс, он вполне может перевести исходники ресурса

б) локализация -- это, всё-таки, не просто перевод строк. Размеры (а и ногда и расположение) элементов управления, графические элементы -- это тоже предмет локализации.

в) инструмент уже готов и встроен в средство разработки.


 
Iconka ©   (2004-09-20 18:48) [17]


> Размеры (а и ногда и расположение) элементов
> управления, графические элементы -- это тоже предмет
> локализации.

Можно пример?


 
Iconka ©   (2004-09-20 18:54) [18]


> не юзерское это дело интерфейс переводить

А кто ж это будет делать? Тем более за регистрация они с удовольствием этим занимаются. Или у тебя есть знакомый переводчик знающий пару десятков языков?


 
DiamondShark ©   (2004-09-20 20:23) [19]


> Iconka ©   (20.09.04 18:48) [17]
>
> > Размеры (а и ногда и расположение) элементов
> > управления, графические элементы -- это тоже предмет
> > локализации.
>
> Можно пример?

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

Графические элементы.
Американский офис, кнопки форматирования [B] [I] [U]
Русский офис -- [Ж] [К] [Ч],
Иконка, обозначающая операцию "отсортировать" A->Z в американском офисе или А->Я в русском.

Могут быть более тонкие моменты.


 
Iconka ©   (2004-09-21 10:45) [20]

Тогда вывод такой: из описанных двух способов используй который тебе больше подходит.



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

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

Наверх




Память: 0.52 MB
Время: 0.053 c
14-1095319477
xman
2004-09-16 11:24
2004.10.03
компоненты для D6


1-1095262239
Slaviq
2004-09-15 19:30
2004.10.03
Печать через темопринтер BZ-2


4-1093878635
Дима
2004-08-30 19:10
2004.10.03
Как передать в программу нажатие ПРАВОГО Ctrl


14-1095076029
Sergey13
2004-09-13 15:47
2004.10.03
Президент совершил революцию в системе выборов


3-1094535962
Senator
2004-09-07 09:46
2004.10.03
RxDBLookupCombo