Multilizer - мощный шаблонный переводчик-приложение для локализации программного обеспечения и документации. Врядли кому- то в здравом уме придет в голову мысль «А не перевести ли мне свою утилиту на иврит, чтобы потом с такой программой работать?» Совсем другое дело, когда программа «вырастает из коротких штанишек» и на неё появляется спрос в других странах. Тогда, если спрос достаточно большой, можно (и нужно) взяться за локализацию — найти подходящий инструмент, нанять переводчиков (или переводить самому) и работать, работать, работать. Собственно, основные цели поиска решения для локализации, которые были мне поставлены — это найти решение, которое позволит: проводить локализацию руками не- программистовработать с собственными словарями для переводаподдержка XE2ну и, как обычно, решение должно быть удобным в использовании, дешевым, по возможности, простым в освоении и т. А так как я все равно решил пройтись в своем поиске по всем возможным вариантам (а точнее по максимально возможному количеству вариантов), то решил весь найденный материал систематизировать и оформить вот этим самым постом. Здесь Вы сможете узнать и о существующих компонентах Delphi и о библиотеках и о программах — в общем о всем, чего только душа пожелает. В общем, если Вы тоже задались целью отыскать во всем множестве предложений для локализации то, которое придется по душе именно Вам, то читайте далее : )Содержание. TSILang components suite. Разработчик: Si. Components. Официальный сайт: www. Цена: от $2. 59 до $3. Пакет за $2. 59 не содержит исходников (только DCU и OBJ)Наличие ознакомительной версии: имеется. Дата последнего релиза: 0. Поддержка Delphi XE2: имеется Что говорят о своем продукте разработчики: Tsi. Lang. Автоматически находятся и заносятся в список для перевода все необходимые элементы интерфейса пользователя, предоставляются удобные способы сохранения и управления переводами, и конечно, переключение языка интерфейса осуществляется «налету» как во время работы приложения, так и в режиме дизайнера, что позволяет тестировать интерфейс даже без компиляции и запуска приложения. Мой тест. Для тестирования Tsi. Lang я скачал и установил последнюю версию компонентов (6. Button, Label, Open. Dialog, добавил ресурсные строки и константы.
Подробное руководство PDF, Capture.NET, Cartoonist, Castle of Illusion Starring Mickey Mouse, CastleStorm, Castlevania: Lords of Shadow 2, CatchaAll. Доброго времени суток, форумчане. Есть такая программа Multilizer PDF Translator. Достаточно не плохой переводчик PDF документов. Запускаем Tsi. Lang expert из меню Delphi: Tools - > Tsi. Expert. Здесь отображаются все формы проекта, а также компоненты Tsi. Lang, расположенные на этих формах. Теперь выбираем в меню File- > Languages и редактируем список языков для нашего приложения. По умолчанию все языки имею названия типа Language. Language. 2 и т. д. В Tsi. Lang используется два типа файлов проекта: *. Этот тип файла разработчики рекомендуют использовать, т. Преимуществом этого типа файлов является то, что мы можем передать этот файл с утилитой «SIL Editor» другому человеку для перевода. Я сохранил свой проект в файл test. Теперь, находясь в эксперте дважды щелкаем мышкой по названию формы в списке — откроется окно редактора перевода: В левой части окна (в дереве) редактора содержатся группы переводимых свойств компонентов и строк и, соответственно, справа — таблица для перевода. Tsi. Lang может локализовать не только свойства компонентов типа Caption, Hint, Text и т. Начинаем переводить все строки с русского на английский. При переводе каждой строки редактор в отдельном окне показывает нам длину строки оригинала (в пикселях) и длину переведенной строки: В принципе, назначение этого информационного окошка понятно — можно контролировать ситуации, когда переводимый текст не будет вписываться в границы компонента. Хотя, как по мне, так было бы удобно добавить в это окошко ещё и ширину самого компонента — что б было с чем сравнивать ширины строк. После того, как все строки переведены снова сохраняем наш проект. Теперь sil- файл должен содержать примерно такой текст: последовательность символов ~!@#$ — это разделитель, который мы сами можем определить при сохранении файла. В процессе перевода строк в редакторе можно заметить, что Tsi. Lang ни коим образом не учёл, что в pas- файле формы есть и секция resourcestring и const и даже строка текста в обработчике On. Click. Чтобы добавить эти строки к переводу необходимо выбрать в меню эксперта Tsi. Lang: File - > Source - > With Form — чтобы выбрать строки из секции implementation модуля,File - > Source - > With Form — чтобы выбрать все строковые константы и ресурсные строки. В итоге откроется окно с результатами поиска в котором Вы можете добавить строку в список исключений или заменить её на вызов функции Tsi. Lang: Жмем в этом окне кнопку «Modify Source» и получаем такое сообщение: Открываем pas- файл и видим следующую странную картину: Мне показалось странным то, что Tsi. Lang прекрасно определяет строковые константы в pas- файле и даже изменяет самостоятельно исходник, но почему- то «ленится» сам определить var — ну сделали бы доп. Определять VAR для констант со строками» и «Изменять настройки компилятора». Но это ладно — окно с сообщением есть и то хлеб. Вот, что мне действительно не понятно, так это откуда Tsi. Lang нашел в моем проекта непонятные иероглифы? Думал, что это может быть по причине того, что pas- файл сохранен в ANSI, но нет — сменил на UTF8, а проблема с иероглифами осталась. В Tsi. Lang каждый язык имеет свой идентификатор типа integer. Например, в моем случае идентификаторы были такими: Теперь, чтобы интерфейс моей программки переключился на английский язык достаточно где- нибудь вставить вот такой код: si. Lang. Для этого можно воспользоваться все тем же редактором переводов — жмем в редакторе кнопку «Add All», которая предназначена для передачи в словарь всех переводов и получаем вот такое окошко для выбора необходимых опций передачи: выбираем здесь файл словаря, жмем «Ok» и получаем все переведенные строки в свой словарик, который, кстати, выглядит вот так: Впоследствии этот словарь можно будет использовать для автоматических переводов строк в своих программах. Ну и, как я уже говорил выше, для работы с SIL- файлами имеется отдельная утилита под названием SIL Editor, которая предназначена для переводчиков. Для чистоты эксперимента я скопировал папку с SIL Editor на флэшку и запустил программу с виртуалки «Windows XP Mode»: SIL Editor позволяет производить переводу по словарям и вручную, а также, если необходимо, добавлять новые языки в перевод. Другие возможности Tsi. Lang: Импорт словарей из doc- , html- , xls- , csv- , po- файлов. Импорт ресурсных строк из исполняемых файлов. Наличие собственных компонентов — диалоги открытия файлов, метки, списки и т. Ведение статистики по переводам. Довольно большой получился обзор, но инструмент того стоит. Подведем небольшой итог: Достоинства: Просто подключается к проекту — бросили компонент на форму, вызвали 1 метод и интерфейс переведен. Удобный редактор перевода — все строки разложены, что называется «по полочкам», можно быстро ориентироваться по дереву в поиске нужных строк для перевода. Поддерживает как бинарные так и текстовые файлы с переводами. Создали sil- файл, отдали переводчику, потом пересохранили в sib и все готово — и программа быстрее будет работать и никто больше в перевод не залезет. Наличие инструментов для переводчиков (SIL Editor, словари)Недостатки: «Корежит» русские строки в pas- файле. Пусть они и заключаются в комментарии, но, тем не менее, факт на лицо. В процессе работы обнаружились непонятные ошибки при работе со словарями. Например, при переносе переведенных строк в словарь через раз появлялась ошибка выхода за границы диапазона. Небольшие проблемы с окнами Tsi. Lang. Они, конечно, жить не мешают, но тем не менее, не хорошо, когда ты вызываешь словарь, а он какого- то лешего сворачивается в панели управления. В принципе, указанные выше недостатки (за исключением второго) не такие уж и критичные. DKLang Localization Package Разработчик: DKSoftware. Официальный сайт: www. Цена: бесплатно. Дата последнего релиза: 2. Поддержка Delphi XE2: нет. Про это решение для локализации я не могу сказать ничего кроме того, что оно просто есть, т. Широкие возможности пакета Advanced Localizer позволяют быстро и просто локализовать свойства компонентов каждой формы, создавать языковые файлы с текущими значениями свойств компонентов, управлять файлами локализаций, а также назначать компоненты и их свойства, подлежащие локализации. Язык приложений, использующих Advanced Localizer, может быть переключен на другой непосредственно во время работы без последующего перезапуска приложения. Advanced Localizer также предусматривает возможность написания приложений- потомков, использующих языковые файлы, заданные пользователем. Так как «незаменимых» у нас нет, то я провел свой небольшой тест этих компонентов все на том же маленьком приложении в 1 форму. Мой тест. Скачал и установил пакет компонентов в Delphi XE2, открыл проект. В палитре компонентов Delphi появилась новая вкладка — EMS Advanced Localizer. С этой вкладки бросам на форму компоненты: TQLanguage. Source. TQForm. Localizer. У TQForm. Localizer в свойстве Source указываем TQLanguage. Source и приступаем к работе. Первым делом создаем файлы для локализованных строк — делаем два пустых файлика с расширениями *. EMS Localizer) и называем их просто — rus и eng. Можно и не создавать эти файлы — они создадутся автоматически при переводе. Теперь дважды щелкаем мышкой по компоненту TQLanguage. Source для вызова менеджера языковых файлов: Жмем единственную активную кнопку и добавляем файлы: Теперь, по идее разработчиков, в списке менеджера должна появиться новая запись. Вот значения, которые содержатся в свойстве Languages компонента: Однако список визуального редактора девственно чист. Ну да Бог с ним со списком — пробуем перевести наше приложение. Дважды щелкаем по второму компоненту (TQForm. Localizer) для вызова редактора перевода: В редакторе мы можем помимо перевода строк также добавить новый языковой файл, отредактировать имеющийся язык или выбрать язык, используемый по умолчанию. Как можно видеть на рисунке — в редактор попадают только строки, содержащиеся в свойствах компонентов, а ресурсные строки и константы остаются незамеченными, что можно записать в недостатки этих компонентов.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
July 2017
Categories |