Форум: "Основная";
Текущий архив: 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