MFen 1.745 -> 1.748

Obtained from:	The FreeBSD Simplified Chinese Project
This commit is contained in:
Xin LI 2006-08-26 13:38:20 +00:00
parent 3153806937
commit 053e8201e9
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=28552

View file

@ -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&nbsp;</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>