MFen 1.745 -> 1.748
Obtained from: The FreeBSD Simplified Chinese Project
This commit is contained in:
parent
3153806937
commit
053e8201e9
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=28552
1 changed files with 89 additions and 5 deletions
|
@ -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>
|
||||
|
||||
|
|
Loading…
Reference in a new issue