Локализация приложений

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Локализация приложений

Сообщение divinusproject » 26.05.2006 11:47:20

Какие средства есть в Lazarus'е для локализации интерфейса приложений?
divinusproject
новенький
 
Сообщения: 49
Зарегистрирован: 16.05.2006 08:25:02
Откуда: Барнаул

Сообщение Sergei I. Gorelkin » 26.05.2006 16:54:00

Кроме поддержки GNU Gettext там вряд ли что есть... но ее хватает за глаза. Рекомендую, тем не менее, dxgettext в связке с poEdit.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1397
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение tria » 26.05.2006 17:45:41

Тот же вопрос я задавал на мастерах делфи.
После обсуждений пришел к выводу - лучше сделать самому и ни от кого не зависеть.
Реализация у меня:
Массив strings, который подымается из файла.
В свойствах Captions пишу номер строки из массива.
При создании форм вызывается процедурина, которая перебирает все контролы формы и меняет номера на строки из массива.
Все это пишется за пол дня.
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10

Сообщение Replicator » 26.05.2006 18:01:08

Хорошая мысль. Можно еще, чтобы с преобразованием типов не возиться, номер строки записывать не в caption, а в tag.
Replicator
постоялец
 
Сообщения: 154
Зарегистрирован: 30.04.2006 17:14:45
Откуда: Outer Heaven

Сообщение Sergei I. Gorelkin » 26.05.2006 20:01:27

Философский вопрос: Если мы зависим от пары десятков мегабайт кода LCL, что изменится с появлением зависимости еще от сотни килобайт модуля gnugettext? ;)
Если нумеровать строки - после того, как их количество в программе превысит некоторый порог, все просто расползется по швам... А что делать с сообщениями RTL, FCL и LCL?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1397
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Replicator » 26.05.2006 20:26:44

Все зависит от разрабатываемого приложения. Где-то даже удобнее сделать так, как предложено выше. Где-то надо использовать gnugettext. Нужно просто взвесить все + и -
Replicator
постоялец
 
Сообщения: 154
Зарегистрирован: 30.04.2006 17:14:45
Откуда: Outer Heaven

Сообщение ViruZ » 08.02.2008 14:56:26

А как заставить работать dxgettext с Лазарем? У меня при попытке скомпилировать проект вылетает ошибка компиляции:
Код: Выделить всё
gnugettext.pas(939,39) Error: Identifier not found "ResourceStringTableCount"
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Сообщение Sergei I. Gorelkin » 08.02.2008 17:52:59

Есть опасение, что только путем доработки напильником, ибо написано оно под какую-то из первых версий FPC и с тех пор не менялось. (См. исходники packages/fcl-base/src/gettext.pp и rtl/objpas/objpas.pp на предмет того, что там теперь вместо ResourceStringTableCount).

Я сам это место вообще закомментировал, а resourcestrings 'перевожу' вызовом TranslateResourceStrings из "родного" gettext. Оно, конечно, коряво, и идея все это хозяйство доработать уже давно обитает в моей голове...
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1397
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Alexx2000 » 08.02.2008 18:30:57

Сейчас же в Лазарусе можно включить поддержку i18n в настройках проекта. При этом по указанному пути будет автоматически генерироваться *.po файл, содержащий все resourcestring'и и строки всех форм.

А дальше работать с юнитами Translations, DefaultTranslator, GetText.

Я все это дело в Double Commander настроил, теперь все формы автоматом переводятся. Удобно :)
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 487
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Сообщение AMD » 09.02.2008 02:14:36

Alexx2000 писал(а):Сейчас же в Лазарусе можно включить поддержку i18n в настройках проекта. При этом по указанному пути будет автоматически генерироваться *.po файл, содержащий все resourcestring'и и строки всех форм.

А дальше работать с юнитами Translations, DefaultTranslator, GetText.

Я все это дело в Double Commander настроил, теперь все формы автоматом переводятся. Удобно :)


Где это включается?
AMD
постоялец
 
Сообщения: 189
Зарегистрирован: 23.01.2008 22:25:25
Откуда: Кишинев

Сообщение Padre_Mortius » 09.02.2008 10:35:53

В свойствах проекта
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 99

Рейтинг@Mail.ru