Если для вашего порта требуется
gettext
, добавьте
USES= gettext
, и ваш порт унаследует
зависимость от devel/gettext.
Раздел 15.1, <<Значения USES
>> содержит перечень других
значений для использования gettext
.
Довольно распространенным случаем является использование
в порте gettext
и
configure
. Как правило, GNU
configure
способен находить
gettext
автоматически. Если он все же не
сможет это сделать, то подсказки для размещения
gettext
можно передать через переменные
окружения CPPFLAGS
и
LDFLAGS
:
USES= gettext CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib GNU_CONFIGURE= yes
Конечно же, этот код можно записать в более компактном
виде, если передавать флаги в configure
не
требуется:
USES= gettext GNU_CONFIGURE= yes
Некоторые программные продукты позволяют отключать NLS,
к примеру, передавая параметр --disable-nls
сценарию configure
. В этом случае ваш
порт должен использовать gettext
, в
зависимости от значения NLS
. Для портов
небольшой или средней сложности вы можете полагаться на
следующую идиому:
GNU_CONFIGURE= yes .include <bsd.port.options.mk> .if ${PORT_OPTIONS:MNLS} USES+= gettext PLIST_SUB+= NLS="" .else CONFIGURE_ARGS+= --disable-nls PLIST_SUB+= NLS="@comment " .endif .include <bsd.port.mk>
Следующий пункт в вашем списке дел разобраться, чтобы
файлы каталога сообщения включались в список упаковки по
условию. Часть, входящая в Makefile
,
уже обеспечена этой идиомой. Остальное объясняется в главе
продвинутые практики
pkg-plist
. Вкратце, каждое
вхождение %%NLS%%
в
pkg-plist
будет заменено на
<<@comment
>>, если NLS
выключен, или пустой строкой, если включен. В результате
строки, предваряемые %%NLS%%
, станут
комментариями в итоговом листе упаковки, если NLS выключен;
иначе, префикс будет просто удален. Всё, что вам нужно, это
вставить %%NLS%%
перед каждым путем к
файлу каталога сообщений в pkg-plist
.
Например:
%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo %%NLS%%share/locale/no/LC_MESSAGES/foobar.mo
В особо сложных случаях вам понадобиться использовать более продвинутые техники, чем данный рецепт, такие как динамические списки упаковки.
Существует момент, который следует учитывать при
установке файлов каталогов сообщений. Целевые каталоги для
размещения, расположенные под
LOCALBASE/share/locale
, редко когда
должны создаваться и удаляться портом. Для наиболее
популярных языков имеются собственные каталоги, перечисленные
в PORTSDIR/Templates/BSD.local.dist
.
Каталоги для множества других языков управляются с помощью
порта devel/gettext. Обратите
внимание на его pkg-plist
и посмотрите,
куда данный порт собирается установить файлы каталогов
сообщений для единственного в своем роде языка.
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.