1
0
Эх сурвалжийг харах

chapter07: Translate /etc/profile instruction for sysv

Xi Ruoyao 7 жил өмнө
parent
commit
1f77bf3b1b
1 өөрчлөгдсөн 125 нэмэгдсэн , 64 устгасан
  1. 125 64
      chapter07/profile.xml

+ 125 - 64
chapter07/profile.xml

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
   <!ENTITY % general-entities SYSTEM "../general.ent">
@@ -8,134 +8,186 @@
 <sect1 id="ch-scripts-profile" revision="sysv">
   <?dbhtml filename="profile.html"?>
 
-  <title>The Bash Shell Startup Files</title>
+  <title>Bash Shell 启动文件</title>
 
   <indexterm zone="ch-scripts-profile">
     <primary sortas="e-/etc/profile">/etc/profile</primary>
   </indexterm>
 
-  <para>The shell program <command>/bin/bash</command> (hereafter referred to
+  <!--para>The shell program <command>/bin/bash</command> (hereafter referred to
   as <quote>the shell</quote>) uses a collection of startup files to help
   create an environment to run in. Each file has a specific use and may affect
   login and interactive environments differently. The files in the <filename
   class="directory">/etc</filename> directory provide global settings. If an
   equivalent file exists in the home directory, it may override the global
-  settings.</para>
-
-  <para>An interactive login shell is started after a successful login, using
+  settings.</para-->
+  <para>Shell 程序 <command>/bin/bash</command> (之后简称 shell)
+  使用一组启动文件,以帮助创建运行环境。每个文件都有专门的用途,
+  可能以不同方式影响登录和交互环境。
+  <filename class="directory">/etc</filename> 目录中的文件提供全局设定,
+  如果在用户主目录中有对应的文件存在,它可能覆盖全局设定。</para>
+
+  <!--para>An interactive login shell is started after a successful login, using
   <command>/bin/login</command>, by reading the <filename>/etc/passwd</filename>
   file. An interactive non-login shell is started at the command-line (e.g.,
   <prompt>[prompt]$</prompt><command>/bin/bash</command>). A non-interactive
   shell is usually present when a shell script is running. It is non-interactive
   because it is processing a script and not waiting for user input between
-  commands.</para>
-
-  <para>For more information, see <command>info bash</command> under the
-  <emphasis>Bash Startup Files and Interactive Shells</emphasis> section.</para>
-
-  <para>The files <filename>/etc/profile</filename> and
+  commands.</para-->
+  <para>在使用 <command>/bin/login</command> 成功登录后,
+  它读取 <filename>/etc/passwd</filename> 中的 shell 命令行,
+  启动一个交互式登录 shell。通过命令行(如
+  <prompt>[prompt]$</prompt><command>/bin/bash</command>)
+  可以启动一个交互式非登录 shell。非交互 shell 通常在 shell 脚本运行时存在,
+  它处理脚本,在执行命令时不需要等待用户输入,因此是非交互的。</para>
+
+  <!--para>For more information, see <command>info bash</command> under the
+  <emphasis>Bash Startup Files and Interactive Shells</emphasis> section.</para-->
+  <para>阅读 <command>info bash</command> 中
+  <emphasis>Bash Startup Files and Interactive Shells</emphasis> 一节,
+  了解更多信息。</para>
+
+  <!--para>The files <filename>/etc/profile</filename> and
   <filename>~/.bash_profile</filename> are read when the shell is
-  invoked as an interactive login shell.</para>
+  invoked as an interactive login shell.</para-->
+  <para>文件 <filename>/etc/profile</filename> 和
+  <filename>~/.bash_profile</filename> 在 shell 作为交互登录 shell
+  时被读取。</para>
 
-  <para>The base <filename>/etc/profile</filename> below sets some
+  <!--para>The base <filename>/etc/profile</filename> below sets some
   environment variables necessary for native language support. Setting
-  them properly results in:</para>
+  them properly results in:</para-->
+  <para>下面给出的基本 <filename>/etc/profile</filename>
+  设定本地语言支持需要的环境变量,正确设定它们有以下好处:</para>
 
   <itemizedlist>
     <listitem>
-      <para>The output of programs translated into the native language</para>
+      <para>程序输出被翻译成本地语言</para>
     </listitem>
     <listitem>
-      <para>Correct classification of characters into letters, digits and other
-      classes. This is necessary for <command>bash</command> to properly accept
-      non-ASCII characters in command lines in non-English locales</para>
+      <para>字符被正确分类为字母、数字和其他类别,
+      这对于使 <command>bash</command> 正确接受命令行中的非 ASCII
+      本地字符来说是必要的</para>
     </listitem>
     <listitem>
-      <para>The correct alphabetical sorting order for the country</para>
+      <para>根据所在地区惯例排序字母</para>
     </listitem>
     <listitem>
-      <para>Appropriate default paper size</para>
+      <para>适用于所在地区的默认纸张尺寸</para>
     </listitem>
     <listitem>
-      <para>Correct formatting of monetary, time, and date values</para>
+      <para>正确格式化货币、时间和日期值</para>
     </listitem>
   </itemizedlist>
 
-  <para>Replace <replaceable>&lt;ll&gt;</replaceable> below with the two-letter code
-  for the desired language (e.g., <quote>en</quote>) and
-  <replaceable>&lt;CC&gt;</replaceable> with the two-letter code for the appropriate
-  country (e.g., <quote>GB</quote>). <replaceable>&lt;charmap&gt;</replaceable> should
-  be replaced with the canonical charmap for your chosen locale. Optional
-  modifiers such as <quote>@euro</quote> may also be present.</para>
-
-  <para>The list of all locales supported by Glibc can be obtained by running
-  the following command:</para>
+  <note><title>译注</title>
+	  <para>译者强烈反对在 <filename>/etc/profile</filename>
+		  中指定中文 locale。由于字符终端的局限性,它根本无法显示中文字符。
+		  使用中文 locale 将导致许多程序输出中文消息,
+		  结果在字符终端中都显示为问号。建议在
+		  <filename>/etc/locale.conf</filename> 中指定英文 locale ,
+		  在 BLFS 中安装了图形环境后再将
+		  <literal>LANG=zh_CN.UTF-8</literal> 写入
+		  <filename>.xprofile</filename> 等图形界面配置文件,
+		  这样即可在字符终端中使用英文 locale ,而在图形界面中使用中文。
+	  </para>
+  </note>
+
+  <para>将下面的 <replaceable>&lt;ll&gt;</replaceable>
+  	  替换为所需语言的双字符代号(例如 <quote>en</quote>),
+  	  <replaceable>&lt;CC&gt;</replaceable> 替换为国家或地区的双字符代号
+	  (例如 <quote>GB</quote>),
+	  <replaceable>&lt;charmap&gt;</replaceable> 替换为您选定的 locale
+	  的标准字符映射。另外,还可以加入 <quote>@euro</quote>
+	  之类的可选修饰符。</para>
+
+  <para>Glibc 支持的所有 locale 可以用以下命令列出:</para>
 
 <screen role="nodump"><userinput>locale -a</userinput></screen>
 
-  <para>Charmaps can have a number of aliases, e.g., <quote>ISO-8859-1</quote>
-  is also referred to as <quote>iso8859-1</quote> and <quote>iso88591</quote>.
-  Some applications cannot handle the various synonyms correctly (e.g., require
-  that <quote>UTF-8</quote> is written as <quote>UTF-8</quote>, not
-  <quote>utf8</quote>), so it is safest in most
-  cases to choose the canonical name for a particular locale. To determine
-  the canonical name, run the following command, where <replaceable>&lt;locale
-  name&gt;</replaceable> is the output given by <command>locale -a</command> for
-  your preferred locale (<quote>en_GB.iso88591</quote> in our example).</para>
+  <para>字符映射可能有多个别名,例如 <quote>ISO-8859-1</quote>
+	  也可以称为 <quote>iso8859-1</quote> 和 <quote>iso88591</quote>。
+	  某些程序不能正确处理一些别名(例如,只识别 <quote>UTF-8</quote>,
+	  不能识别 <quote>utf8</quote>),因此在多数情况下,为了保险起见,
+	  最好使用 locale 的规范名称。为了确定规范名称,执行下列命令,
+	  将 <replaceable>&lt;locale name&gt;</replaceable> 替换成
+	  <command>locale -a</command> 对于您希望的 locale 的输出
+	  (以 <quote>en_GB.iso88591</quote> 为例)。</para>
 
 <screen role="nodump"><userinput>LC_ALL=<replaceable>&lt;locale name&gt;</replaceable> locale charmap</userinput></screen>
 
-  <para>For the <quote>en_GB.iso88591</quote> locale, the above command
-  will print:</para>
+  <para>对于 <quote>en_GB.iso88591</quote> locale,以上命令输出:</para>
 
 <screen><computeroutput>ISO-8859-1</computeroutput></screen>
 
-  <para>This results in a final locale setting of <quote>en_GB.ISO-8859-1</quote>.
-  It is important that the locale found using the heuristic above is tested prior
-  to it being added to the Bash startup files:</para>
+  <para>这样就最终确定 locale 应设置为 <quote>en_GB.ISO-8859-1</quote>。
+	  在将以上启发方法获得的 locale 添加到 Bash 启动文件之前,
+	  一定要进行下列测试:</para>
 
 <screen role="nodump"><userinput>LC_ALL=&lt;locale name&gt; locale language
 LC_ALL=&lt;locale name&gt; locale charmap
 LC_ALL=&lt;locale name&gt; locale int_curr_symbol
 LC_ALL=&lt;locale name&gt; locale int_prefix</userinput></screen>
 
-  <para>The above commands should print the language name, the character
+  <!--para>The above commands should print the language name, the character
   encoding used by the locale, the local currency, and the prefix to dial
   before the telephone number in order to get into the country. If any of the
   commands above fail with a message similar to the one shown below, this means
   that your locale was either not installed in Chapter&nbsp;6 or is not supported by
-  the default installation of Glibc.</para>
+  the default installation of Glibc.</para-->
+  <para>以上命令应该输出语言名称、选定 locale 使用的字符编码、
+	  本地货币符号以及所在国家或地区的国际电话区号。
+	  如果以上某个命令失败并输出类似下面这样的消息,
+	  意味着您的 locale 在第 6 章中没有安装,或者不被 Glibc 的默认安装支持。
+  </para>
 
 <screen><computeroutput>locale: Cannot set LC_* to default locale: No such file or directory</computeroutput></screen>
 
-  <para>If this happens, you should either install the desired locale using the
+  <!--para>If this happens, you should either install the desired locale using the
   <command>localedef</command> command, or consider choosing a different locale.
   Further instructions assume that there are no such error messages from
-  Glibc.</para>
+  Glibc.</para-->
+  <para>如果出现了这种消息,您应该用 <command>localedef</command>
+	  命令安装所需的 locale ,或重新选择一个不同的 locale 。
+	  后文假设 Glibc 没有输出类似错误消息。</para>
 
   <!-- FIXME: the xlib example will became obsolete real soon -->
-  <para>Some packages beyond LFS may also lack support for your chosen locale. One
+  <!--para>Some packages beyond LFS may also lack support for your chosen locale. One
   example is the X library (part of the X Window System), which outputs the
   following error message if the locale does not exactly match one of the character
-  map names in its internal files:</para>
+  map names in its internal files:</para-->
+  <para>某些 LFS 以外的软件包可能缺乏对您选择的 locale 的支持,
+	  例如 X 库(X 窗口系统的一部分),它在您的 locale
+	  与它内部文件中的字符映射表名不完全匹配时,会输出以下错误消息:</para>
 
 <screen><computeroutput>Warning: locale not supported by Xlib, locale set to C</computeroutput></screen>
 
-  <para>In several cases Xlib expects that the character map will be listed in
+  <!--para>In several cases Xlib expects that the character map will be listed in
   uppercase notation with canonical dashes. For instance, "ISO-8859-1" rather
   than "iso88591". It is also  possible to find an appropriate specification by
   removing the charmap part of the locale specification.  This can be checked
   by running the <command>locale charmap</command> command in both locales.
   For example, one would have to change "de_DE.ISO-8859-15@euro" to
-  "de_DE@euro" in order to get this locale recognized by Xlib.</para>
-
-  <para>Other packages can also function incorrectly (but may not necessarily
+  "de_DE@euro" in order to get this locale recognized by Xlib.</para-->
+  <para>某些情况下 Xlib 期望字符映射以带有规范连字符的大写形式给出,
+	  例如应该使用 <quote>ISO-8859-1</quote> 而不是
+	  <quote>iso88591</quote>。
+	  有时也可以通过去除 locale 规范中的字符映射部分找到合适的规范,
+	  可以通过运行 <command>locale charmap</command> 确认。
+	  例如,您需要将 <quote>de_DE.ISO-8859-15@euro</quote>
+	  替换成 <quote>de_DE@euro</quote>,以获得 Xlib 能够识别的 locale。
+  </para>
+
+  <!--para>Other packages can also function incorrectly (but may not necessarily
   display any error messages) if the locale name does not meet their expectations.
   In those cases, investigating how other Linux distributions support your locale
-  might provide some useful information.</para>
+  might provide some useful information.</para-->
+  <para>其他软件包在 locale 名不符合它们的期望时可能工作不正常
+	  (但未必输出错误消息)。在这种情况下,探索一下其他 Linux
+	  发行版是如何支持您的 locale 的,可以得到一些有用的信息。</para>
 
-  <para>Once the proper locale settings have been determined, create the
-  <filename>/etc/profile</filename> file:</para>
+  <para>在确定了正确的 locale 设置后,创建
+  <filename>/etc/profile</filename> 文件:</para>
 
 <screen><userinput>cat &gt; /etc/profile &lt;&lt; "EOF"
 <literal># Begin /etc/profile
@@ -145,7 +197,7 @@ export LANG=<replaceable>&lt;ll&gt;_&lt;CC&gt;.&lt;charmap&gt;&lt;@modifiers&gt;
 # End /etc/profile</literal>
 EOF</userinput></screen>
 
-  <para>The <quote>C</quote> (default) and <quote>en_US</quote> (the recommended
+  <!--para>The <quote>C</quote> (default) and <quote>en_US</quote> (the recommended
   one for United States English users) locales are different. <quote>C</quote>
   uses the US-ASCII 7-bit character set, and treats bytes with the high bit set
   as invalid characters. That's why, e.g., the <command>ls</command> command
@@ -153,10 +205,19 @@ EOF</userinput></screen>
   mail with such characters from Mutt or Pine results in non-RFC-conforming
   messages being sent (the charset in the outgoing mail is indicated as <quote>unknown
   8-bit</quote>). So you can use the <quote>C</quote> locale only if you are sure that
-  you will never need 8-bit characters.</para>
-
-  <para>UTF-8 based locales are not supported well by some programs.
-  Work is in progress to document and, if possible, fix such problems, see
-  <ulink url="&blfs-book;introduction/locale-issues.html"/>.</para>
+  you will never need 8-bit characters.</para-->
+  <para><quote>C</quote> (默认 locale)和 <quote>en_US</quote>
+	  (推荐美式英语用户使用的 locale)是不同的。
+	  <quote>C</quote> locale 使用 US-ASCII 7 位字符集,并且将最高位为 1
+	  的字节视为无效字符。因此,<command>ls</command>
+	  等命令会将它们替换为问号。另外,如果试图用 Mutt 或 Pine
+	  发送包含这些字符的邮件,会发出不符合 RFC 标准的消息
+	  (发出邮件的字符集会被标为 <quote>未知 8 位</quote>)。
+	  因此,您只能在确信自己永远不会使用 8 位字符时才能使用
+	  <quote>C</quote> locale。</para>
+
+  <para>许多程序不能很好地支持基于 UTF-8 的 locale,
+  	  我们正在努力记录并(如果可能的话)修复它们,参阅
+  	  <ulink url="&blfs-book;introduction/locale-issues.html"/>。</para>
 
 </sect1>