Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.043 c
14-1095295675
Soft
2004-09-16 04:47
2004.10.03
Там они пообедали фруктами, посмотрели кино и застрелились.


8-1089800195
Гость
2004-07-14 14:16
2004.10.03
Как проиграть музыку через DerectX?


6-1090501569
Григорьев Антон
2004-07-22 17:06
2004.10.03
Странное поведение неблокирующего TCP-сокета


14-1095244960
Delphin
2004-09-15 14:42
2004.10.03
Программа, для записи происходящего на экране


14-1094967972
Knight
2004-09-12 09:46
2004.10.03
А у меня винда дома упала... :(





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