9.4. GNU gettext

На верх  Назад  Вперёд

Модуль gettext предоставляет возможности интернационализации приложений при помощи утилит GNU gettext. Этот модуль поставляется с бесплатной библиотекой компонентов – Free Component Library (FCL ), которая может использоваться описанным ниже способом.

Для данного приложения должны быть выполнены следующие шаги:

1.Собрать все файлы строковых ресурсов и объединить их вместе.

2.Вызвать программу rstconv с файлом, полученным в результате выполнения первого пункта, то есть с одним файлом .po, содержащим строковые ресурсы программы.

3.Перевести файл .po, полученный в второго пункта на все требуемые языки.

4.Запустите программу msgfmt, форматирующую все файлы .po. В результате будет получен набор файлов .mo, которые могут распространяться с вашим приложением.

5.Вызовите метод TranslateResourceStrings модуля gettext, передав ему шаблон с местоположением файлов .mo, например,
 
TranslateResourcestrings('intl/restest.%s.mo');
 
где спецификатор %s будет заменён содержимым переменной среды окружения LANG. Это вызов должен выполняться при старте программы.

Пример программы имеется в исходниках FCL-base, в каталоге fcl-base/tests.