Gettext является широко используемым пакетом, предназначенным для локализации сообщений.
Пакет "gettext" состоит из двух основных частей - утилит для извлечения и форматирования сообщений и библиотеки доступа к сообщениям.
CLIP использует некоторые утилиты "gettext" для подготовки файлов сообщений, но применяет свой собственный код для доступа к сообщениям во время выполнения .
CLIP имеет ряд утилит для облегчения работы с сообщениями.
Подготовка локализованных сообщений:
Извлечение сообщений и создание .pot (po-template) файлов.
Для извлечения сообщений из C текстов может быть использована утилита xgettext пакета gettext .
CLIP автоматически извлекает сообщения, заключенные в скобки [], и записывает их в файл $CLIPROOT/locale/pot/<modulename>/<filename>.pot .
<modulename> определяется CLIP из имени каталога, в котором расположен исходный файл, либо может быть задан переменной окружения CLIP_MODULE.
<filename> определяется по имени компилируемого файла.
Используйте скрипт clip_msgmerge для слияния .pot файлов из каталога $CLIPROOT/locale.pot с переведенными .po файлами в каталоге $CLIPROOT/locale.po.
clip_msgmerge сливает файлы для всех локалей в каталоге $CLIPROOT/locale.po/<locale>. Для добавления новой локали нужно только создать нужный каталог, например $CLIPROOT/locale.po/ru_RU.KOI8-R для локали ru_RU.KOI8-R.
Вы можете отредактировать созданные.po файлы в любом текстовом редакторе, либо использовать специализированный редактор .po-файлов, например kbabel из KDE.
Задание кодировки в .po файле. | |
---|---|
Пожалуйста проверьте поле "Content-Type: text/plain; charset=ASCII" в начале .po файла. Вы должны установать правильное значение кодировки, используемой в файле (например, "Content-Type: text/plain; charset=KOI8-R"). Это очень важно для правильной обработки сообщений. |
И, наконец, запустите скрипт clip_msgfmt чтобы отформатировать сообщения в .mo файл в каталоге $CLIPROOT/locale.mo
Теперь библиотека времени выполнения CLIP сможет извлечь необходимые сообщения из этих файлов и подставить в нужное место программы.
Пред. | Начало | След. |
Локализация CLIP | Уровень выше | Написание и перевод документации CLIP |