Форум "Delphi"
Паскаль, Делфи
#0 Go © 30.06.06 13:45:32 - 03.08.06 12:08:31 локализацияА чем Вы пользуетесь для локализации приложений написаных на делфях!? Хотелось бы услышать побольше мнений ;)
|
|
#1 Старый маразматик © 30.06.06 14:06:39
ничем, поскоку нету необходимости. а так, как сделать, так можно обычный ини-файл, данные из него в глобальные переменные, у аж их подсовывать куда нужно. ничего особо военного, токо с размерами контролов потом может несчастье приключицца, ежели слово влазить не будет |
|
#2 Go © 30.06.06 14:23:38
довольно большой проект, изначально не был расчитан на перевод Судя по литературе есть 2 основных направления -> - сохранение в отдельных файлах(текстовые, ресурсные).. а потом при загрузке форм и тд. восстановление (тут минус бОльшие затраты времени) - перевод в исходниках, есть куча разных компонент (но иметь отдельную компиляцию для каждого языка по моему это как минимум не красиво) |
|
#3 Старый маразматик © 30.06.06 15:15:08
> тут минус бОльшие затраты времени гы. ты будешь удивленна, но мегабайтный файл читаеца с диска за буквально секунду. так шо затраты времени в процессе работы программы незначительны. вопрос в том, чтобы всем кнопочкам, менюшкам и прочим лабелам назначить соотвецтвие с текстовухой. мне вот видицца объект, в котором вся эта лабуда будет перечислена, например по имени контрола... кстати, это дело можно автоматизировать, не ручками же всю эту хрень писать? обход всех контролов на формах с записью имен и капшинов в файл. потом только немного подправить, и усе готово |
|
> довольно большой проект, изначально не был расчитан на перевод Есть софтина (для дельфей), не вспомню названия, пробегается по файлам проекта (pas, dpr и т.п.), вытягивает строковые константы и пихает в ресурсы или в ini (с автоматической правкой исходников на обращение к ресурсам). После этого остаётся только сделать перевод ресурсов или ini на нужные языки и обеспещить переключение на нужные ресурсы в зависимости от выбора пользователя. |
|
#5 Go © 30.06.06 17:23:09
#4 VictorT © 30.06.06 17:38:59 да я несколько софтин таких нашла, но все они предусматривают отдельную компиляцию проекта, а мне кажется что это не хорошо... или я не права!? #3 Старый маразматик © 30.06.06 17:15:08 тут ведь не только чтение файла. Чтение файла только один раз при открытии, все грузится в определенную структуру. Зато каждый раз при создании очередной формы нужно пробегать по компонентам и заменять то что попадется, то есть теоретически открытие каждой формы будет чуть дольше, хотя возможно это *дольше* и не будет заметно человеческому глазу.. |
|
> да я несколько софтин таких нашла, но все они предусматривают > отдельную компиляцию проекта, Нет, я видел, именно, как я написал выше, т.е. переделывают проект, в котором изначально не предусматривалась локализация, на проект, который можно локализовывать без перекомпиляции. Собственно, я даже помню, у кого именно видел, он пользовался этой софтиной. Я ему кинул ссылку на эту ветку, пока не ответил. |
|
XML со языковыми ресурсами в больший проектах, INI -- в маленьких. |
|
#8 Ketmar © 05.07.06 21:22:59
тупой текстовый файл, в котором перечислены имена компонентиков и поля, а также на что заменять. плюс -- в том же файле хранятся просто сообщения, текст которых получается при помощи вызова типа MLD_GetMessageText(mtssageName, locid). модуль работы с файом локализаций -- самописный. |
|
#9 ID © 27.07.06 15:29:07
www.deloc.narod.ru - ОТЛИЧНАЯ ПРОГРАММА. Пользуюсь, очень доволен. Есть примеры реализации. Язык интерфейса меняется "не лету", без перезагрузки программы. |
|
#10 Ketmar © 27.07.06 17:45:19
а там исходники дают (лень качать). если нет -- фтопку. |
|
#11 Mystic © 27.07.06 21:14:15
Можно еще пользоваться встроеными средствами локализации, которые создают нужную копию ресурсов -- Локализация стандартных сообщений об ошибках. Например, приходится писать -- Размещение контролов на форме. Иногда русская надпись сожержит много больше букв, чем английская и налазит на другие контролы. |
|
#12 ID © 28.07.06 12:39:36
а там исходники дают (лень качать). если нет -- фтопку. Есть исходики модуля, который подключается к проекту. Кроме этого модуля есть некая софтина, которая генерит файлик локализации на основании откомпилированого проекта. Если лень прочитать с сайта разработчика, то брошу цитату из описания программы 1. Назначение. -------------- Программа ДеЛок (Делфийный локализатор) предназначена для локализации интерфейса Ваших делфийных программ на любое количество языков. Локализируются строки, объявленные в секции resourcestring, а также строковые свойства форм и компонентов. 2. Особенности -------------- Программа абсолютно бесплатна для локализации любых программ (включая коммерческие). Простой, удобный и понятный интерфейс. Минимум добавлений в исходный код Вашей программы. Экспорт и импорт сделанных Вами переводов из одних проектов в другие. Фильтрация списка локализируемых свойств и строк. Перевод всех строковых свойств компонент, включая свойства наследников TStrings и TCollection. Переключение языков "на лету". |
|
#13 Ketmar © 28.07.06 15:55:05
сайт я читал. я понял, что ПОЛНЫХ исходников не дают. фтопку. |
|
#14 ID © 28.07.06 16:28:36
фтопку всегда можно успеть бросить :) |
|
#15 Go © 28.07.06 19:14:53
посмотрела... спасибо но свое все равно луТше и проСЧе.. |
|
#16 ID © 31.07.06 10:19:42
#15 Go © 28.07.06 21:14:53 А кокой вариант лучше? Если переделывать весь проект на работу с текстовыми файлами или создавать клон проекта и переводить его на другой язык, то я не согласен, что это лучше. К примеру совой проект с помощю DeLoc я перевел на два языка за пол часа, при чем проект не был изначально задуман как многоязыковый. |
|
#17 Go © 31.07.06 14:30:28
Пользуясь своей *штуковиной*, все необходимые приготовления для перевода проекта заняли минут 10 + сам перевод ( А почему этот вариант для меня лучше !? - так потому что мною написаный |
|
> знаю кого *долбать* в случае чего |
|
#19 ID © 02.08.06 17:27:04
#17 Go © 31.07.06 16:30:28 можно ли своей *штуковиной* переводить интерфейс "на лету" ? Если не секрет, по подробней о ней, об алгоритме работы этой штуковины Можно ли этой штуковиной перевести сообщения выдаваемые компонентами, которые есть в проекте, но исходников которых нет? |
|
#20 ID © 02.08.06 17:39:20
... мне в проекте для локализации пришлось добавить всего лишь несколько строк для каждого языка (текстовые сообщения имею привычку описывать с помощью констант, по этому заменил const на resourcestring) а помошью DeLoc сформировал файл локализации Если я меняю интерфейс программы в дальнейшем, то для до-локализации необходимо лишь перегенерировать файл локализации, что занимает пол секунды |
|
#21 ZeroDivide © 02.08.06 21:42:30
Написал свою приблуду. Доволен. Удобно :) Работы, ну максимум на 2 дня и... неделю до этого, на поиски наилучшего способа локализации. |
|
> неделю до этого, на поиски наилучшего способа локализации. а что за способ? поделись |
Написать ответ |
|
