diff options
author | Xin LI <delphij@FreeBSD.org> | 2006-08-26 13:38:20 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2006-08-26 13:38:20 +0000 |
commit | 053e8201e969812065f48d897e2459925dd47d8e (patch) | |
tree | 335fa506d0e827aadd14c08ab39f20c436c72c78 /zh_CN.GB2312/books/porters-handbook | |
parent | 3153806937585c8d1d3dacdcb697679e8c959869 (diff) |
Notes
Diffstat (limited to 'zh_CN.GB2312/books/porters-handbook')
-rw-r--r-- | zh_CN.GB2312/books/porters-handbook/book.sgml | 94 |
1 files changed, 89 insertions, 5 deletions
diff --git a/zh_CN.GB2312/books/porters-handbook/book.sgml b/zh_CN.GB2312/books/porters-handbook/book.sgml index 7f749ba7f0..4f46a52ef6 100644 --- a/zh_CN.GB2312/books/porters-handbook/book.sgml +++ b/zh_CN.GB2312/books/porters-handbook/book.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.745 + Original Revision: 1.748 $FreeBSD$ --> @@ -3540,7 +3540,7 @@ ${PREFIX}/man/ja/man4/baz.4.gz</programlisting> 包括 323、 40、 41 和 50。</entry> </row> - <row> + <row id="knobs-without-nls"> <entry><makevar>WITHOUT_NLS</makevar></entry> <entry>表示不需要国际化支持, 这可以节省编译所消耗的时间。 @@ -3556,9 +3556,8 @@ ${PREFIX}/man/ja/man4/baz.4.gz</programlisting> <row> <entry><makevar>WITH_OPENSSL_PORT</makevar></entry> - <entry>使用从 <filename role="package">security/openssh</filename> - 中安装的 OpenSSL 版本, 并覆盖原先随基本系统安装的 - OpenSSL 版本。</entry> + <entry>使用通过 <filename role="package">security/openssl</filename> + 安装, 并代替原先随基本系统安装的 OpenSSL 版本。</entry> </row> <row> @@ -4379,6 +4378,91 @@ PORTVERSION= 1.0</programlisting> </sect2> </sect1> + <sect1 id="using-gettext"> + <title>使用 GNU <literal>gettext</literal></title> + + <sect2> + <title>基本用法</title> + + <para>如果您的 port 需要使用 <literal>gettext</literal>, + 只要将 <makevar>USE_GETTEXT</makevar> 设置为 <literal>yes</literal>, + 您的 port 就会增加对 <filename + role="package">devel/gettext</filename> 的依赖。 + <makevar>USE_GETTEXT</makevar> 也可以指定为所需的 + <literal>libintl</literal> 库的版本, + 它是 <literal>gettext</literal> 的基本组成部分, + 尽管如此, <emphasis>强烈建议您不要</emphasis> 使用这个功能: + 您的 port 应能与目前版本的 + <filename role="package">devel/gettext</filename> 配合工作。</para> + + <para>在 port 中相当常见的情况下, 会需要同时使用 + <literal>gettext</literal> 和 <command>configure</command>。 + 一般而言, GNU <command>configure</command> 能够自动定位到 <literal>gettext</literal>。 + 如果它没有成功地完成这项工作, 则可以通过类似下面这样的 + <envar>CPPFLAGS</envar> 和 <envar>LDFLAGS</envar> 将 + <literal>gettext</literal> 的位置告诉它:</para> + + <programlisting>USE_GETTEXT= yes +GNU_CONFIGURE= yes +CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ + LDFLAGS="-L${LOCALBASE}/lib"</programlisting> + </sect2> + + <sect2> + <title>可选用法</title> + + <para>一些软件产品提供了禁用 NLS 的能力, + 例如, 在 <command>configure</command> 时, 指定 + <option>--disable-nls</option> 参数。 如果您 port + 的软件支持这种配置, 则应根据 <link + linkend="knobs-without-nls"><makevar>WITHOUT_NLS</makevar></link> + 的设置来有条件地使用 <literal>gettext</literal>。 + 对于比较简单和不太复杂的 port, 您可以使用下列结构:</para> + + <programlisting>GNU_CONFIGURE= yes + +.if !defined(WITHOUT_NLS) +USE_GETTEXT= yes +PLIST_SUB+= NLS="" +.else +CONFIGURE_ARGS+= --disable-nls +PLIST_SUB+= NLS="@comment " +.endif</programlisting> + + <para>您要做的下一件事是合理地安排装箱单文件, + 使其根据用户配置来决定是否将消息编录 (message catalog) + 文件放入最终的装箱单。 前面已经介绍了在 <filename>Makefile</filename> + 中所需的写法, 这种做法在 <link linkend="plist-sub">高级 + <filename>pkg-plist</filename> 用法</link> 这节中进行了介绍。 + 简单地说, 在 <filename>pkg-plist</filename> + 中出现的 <literal>%%NLS%%</literal> 均会在禁用 NLS 时自动替换为 + <quote><literal>@comment </literal></quote>, + 反之则替换为空串。 这样, 在最终的装箱单中带 <literal>%%NLS%%</literal> 的行, + 在 NLS 关闭的情况下就会变为注释, 反之, 这些前缀就会自动删掉。 + 现在需要做的事情就是把 <literal>%%NLS%%</literal> 插到 <filename>pkg-plist</filename> + 中的消息编录文件的那些行开头, 例如:</para> + + <programlisting>%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo +%%NLS%%share/locale/no/LC_MESSAGES/foobar.mo</programlisting> + + <para>在比较复杂的情形中, 您可能需要使用更高级的技术, 例如 <link + linkend="plist-dynamic">动态生成装箱单</link> 等。</para> + </sect2> + + <sect2> + <title>处理消息编录目录</title> + + <para>在安装消息编录文件时还有一个需要注意的地方。 这些文件会放到 + <filename><makevar>LOCALBASE</makevar>/share/locale</filename> + 下与语言对应的目录中, 这些目录一般您的 port 不需要创建和删除。 + 最常用的语言的目录已经在 <filename>/etc/mtree/BSD.local.dist</filename> + 中列出; 也就是说, 它们是基本系统的一部分。 其他一些语言的目录, 则由 <filename + role="package">devel/gettext</filename> 控制。 + 您最好查看一下 <filename>pkg-plist</filename>, + 以确定是否正在安装某种不常用语言的文件。</para> + </sect2> + </sect1> + <sect1 id="using-perl"> <title>使用 <literal>perl</literal></title> |