6.7.使用 GNU gettext
6.7.1. 基本用法
如果 port 需要使用 gettext
, 则应设置 USES= gettext
, 这样 port 将从 devel/gettext 中继承对 libintl.so 的依赖。其他关于 gettext
使用的值, 在 USES=gettext
中列出。\
一个相当常见的情况是使用 gettext
和 configure
的 port。一般来说, GNU configure
应该能够自动定位 gettext
。
如果它失败了,可以在 CPPFLAGS
和 LDFLAGS
中使用 localbase
传递 gettext
的位置提示,如下所示:
6.7.2. 可选的使用方法
一些软件产品允许禁用 NLS
。例如, 通过传递 --disable-nls
来配置。在这种情况下, Port 必须根据 NLS
选项的状态, 有条件地使用 gettext
。对于低到中等复杂度的 Port , 可以使用这个习惯:
或者使用旧的方式来使用选项:
下一个要做的事情是安排,使消息目录文件有条件地包括在打包列表中。这项任务中的 Makefile 部分已经由成语提供。在关于高级 pkg-plist 实践的一节里有解释。简而言之, 在 pkg-plist 中出现的 %%NLS%%
将被替换为 @comment
(如果 NLS 被禁用的话), 或者被替换为空字符串 (如果 NLS 被启用的话)。因此, 如果关闭了 NLS, 在最终的装箱单中, 以 %%NLS%%为前缀的行将成为单纯的注释; 否则, 前缀将被省略。然后在 **pkg-plist** 中的每个消息目录文件的路径前插入
%%NLS%%`。举例来说:
在高复杂度的情况下,可能需要更先进的技术,如动态打包列表的生成。
6.7.3. 处理信息目录目录
关于安装消息目录文件, 有一点需要注意。它们的目标目录, 位于 LOCALBASE/share/locale 之下, 绝不能由 port 创建和删除。最流行的语言在 PORTSDIR/Templates/BSD.local.dist 中列出了它们各自的目录。其他许多语言的目录由 devel/gettext port 来管理。请查阅它的 pkg-plist, 看看这个 port 是否要为某种独特的语言安装一个消息目录文件。
最后更新于