如果您的 port 需要使用 gettext
,
只要将 USE_GETTEXT
设置为 yes
,
您的 port 就会增加对 devel/gettext 的依赖。
USE_GETTEXT
也可以指定为所需的
libintl
库的版本,
它是 gettext
的基本组成部分,
尽管如此, 强烈建议您不要 使用这个功能:
您的 port 应能与目前版本的
devel/gettext 配合工作。
在 port 中相当常见的情况下, 会需要同时使用
gettext
和 configure
。
一般而言, GNU configure
能够自动定位到 gettext
。
如果它没有成功地完成这项工作, 则可以通过类似下面这样的
CPPFLAGS
和 LDFLAGS
将
gettext
的位置告诉它:
当然, 不需要传参数给 configure
时, 代码可以更为简练:
一些软件产品提供了禁用 NLS 的能力,
例如, 在 configure
时, 指定
--disable-nls
参数。 如果您 port
的软件支持这种配置, 则应根据 WITHOUT_NLS
的设置来有条件地使用 gettext
。
对于比较简单和不太复杂的 port, 您可以使用下列结构:
您要做的下一件事是合理地安排装箱单文件,
使其根据用户配置来决定是否将消息编录 (message catalog)
文件放入最终的装箱单。 前面已经介绍了在 Makefile
中所需的写法, 这种做法在 高级
pkg-plist
用法 这节中进行了介绍。
简单地说, 在 pkg-plist
中出现的 %%NLS%%
均会在禁用 NLS 时自动替换为
“@comment
”,
反之则替换为空串。 这样, 在最终的装箱单中带 %%NLS%%
的行,
在 NLS 关闭的情况下就会变为注释, 反之, 这些前缀就会自动删掉。
现在需要做的事情就是把 %%NLS%%
插到 pkg-plist
中的消息编录文件的那些行开头, 例如:
在比较复杂的情形中, 您可能需要使用更高级的技术, 例如 动态生成装箱单 等。
在安装消息编录文件时还有一个需要注意的地方。 这些文件会放到
LOCALBASE/share/locale
下与语言对应的目录中, 这些目录一般您的 port 不需要创建和删除。
最常用的语言的目录已经在 /etc/mtree/BSD.local.dist
中列出; 也就是说, 它们是基本系统的一部分。 其他一些语言的目录, 则由 devel/gettext 控制。
您最好查看一下 pkg-plist
,
以确定是否正在安装某种不常用语言的文件。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.