aboutsummaryrefslogtreecommitdiff
path: root/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'en_US.ISO8859-1/books/handbook/l10n/chapter.sgml')
-rw-r--r--en_US.ISO8859-1/books/handbook/l10n/chapter.sgml918
1 files changed, 0 insertions, 918 deletions
diff --git a/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml b/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml
deleted file mode 100644
index 64a4d62951..0000000000
--- a/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml
+++ /dev/null
@@ -1,918 +0,0 @@
-<!--
- The FreeBSD Documentation Project
-
- $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/l10n/chapter.sgml,v 1.38 2000/06/26 05:08:54 kevlo Exp $
--->
-
-<chapter id="l10n">
- <title>Localization - I18N/L10N Usage and Setup</title>
-
- <para><emphasis>Contributed by &a.ache;</emphasis></para>
-
- <para><emphasis>Rewritten by Michael Chin-Yuan Wu
- <email>keichii@mail.utexas.edu</email>, 6 March 2000.</emphasis></para>
-
- <sect1>
- <title>Synopsis</title>
-
- <para>This section of the handbook discusses the internationalization
- and localization of FreeBSD to different countries and different
- settings. If the users wish to use languages other than the system
- default English, he/she will have to setup the system accordingly.
- Please note that language support for each language varies in level.
- Hence, the user should contact the respective FreeBSD local group
- that is responsible for each language.</para>
-
- <para>The author realizes that he may have been incomplete in the
- description of the i18n process in FreeBSD. Due to the various
- levels of i18n implementation in both the system and application
- levels, we advise you to refer to individual documentation, man
- pages, READMEs, and so forth.</para>
-
- <para>Should you have any questions or suggestions regarding this
- chapter, please email the author.</para>
- </sect1>
-
- <sect1>
- <title>The Basics</title>
-
- <sect2>
- <title>What is i18n/l10n?</title>
-
- <para>Developers shortened internationalization into the term i18n,
- counting the number of letters between the first and the last
- letters of internationalization. l10n uses the same naming
- scheme, coming from "localization". Combined
- together, i18n/l10n methods, protocols, and applications allow
- users to use languages of their choice.</para>
-
- <para>I18n applications are programmed using i18n kits under
- libraries. It allows for developers to write a simple file and
- translate displayed menus and texts to each language. We strongly
- encourage programmers to follow this convention.</para>
- </sect2>
-
- <sect2>
- <title>Why should I use i18n/l10n?</title>
-
- <para>I18n/l10n is used whenever you wish to either view, input, or
- process data in non-English languages.</para>
- </sect2>
-
- <sect2>
- <title>What languages are supported in the i18n effort?</title>
-
- <para>I18n and l10n are not FreeBSD specific. Currently, one can
- choose from most of the major languages of the World, including
- but not limited to: Chinese, German, Japanese, French, Russian,
- and others.</para>
- </sect2>
- </sect1>
-
- <sect1 id="using-localization">
- <title>Using Localization</title>
-
- <para>In all its splendor, i18n is not FreeBSD-specific and is a
- convention. We encourage you to help FreeBSD in following this
- convention.</para>
-
- <para>Localization settings are based on three main terms:
- Language Code, Country Code, and Encoding. Locale names are
- constructed from these parts as follows:</para>
-
- <programlisting>
-<replaceable>LanguageCode</replaceable>_<replaceable>CountryCode</replaceable>.<replaceable>Encoding</replaceable></programlisting>
-
- <sect2>
- <title>Language and Country Codes</title>
-
- <para>In order to localize a FreeBSD system to a specific language
- (or any other i18n-supporting UNIX's), the user needs to find out
- the codes for the specify country and language (country
- codes tell applications what variation of given
- language to use). In addition, web
- browsers, SMTP/POP servers, web servers, etc. make decisions based on
- them. The following are examples of language/country codes:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Language/Country Code</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>en_US</entry>
- <entry>English - United States</entry>
- </row>
-
- <row>
- <entry>ru_RU</entry>
- <entry>Russian for Russia</entry>
- </row>
-
- <row>
- <entry>zh_TW</entry>
- <entry>Traditional Chinese for Taiwan</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- </sect2>
-
- <sect2>
- <title>Encodings</title>
-
- <para>Some languages use non-ASCII encodings that are 8-bit, wide
- or multibyte characters, see &man.multibyte.3; for more
- details. Older applications do not recognize them
- and mistake them for control characters. Newer applications
- usually do recognize 8-bit characters. Depending on the
- implementation, users may be required to compile an application
- with wide or multibyte characters support, or configure it correctly.
- To be able to input and process wide or multibyte characters, the <ulink
- url="../ports/">FreeBSD Ports collection</ulink> has provided
- each language with different programs. Refer to the i18n
- documentation in the respective FreeBSD Port.</para>
-
- <para>Specifically, the user needs to look at the application
- documentation to decide on how to configure it correctly or to
- pass correct values into the configure/Makefile/compiler.</para>
-
- <para>Some things to keep in mind are:</para>
-
- <itemizedlist>
- <listitem>
- <para>Language specific single C chars character sets
- (see &man.multibyte.3;), i.e.,
- ISO_8859-1, KOI8-R, CP437.</para>
- </listitem>
-
- <listitem>
- <para>Wide or multibyte encodings, f.e. EUC, Big5.</para>
- </listitem>
- </itemizedlist>
-
- <para>You can check the active list of character sets at the
- <ulink
- url="ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets">IANA Registry</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>I18n applications</title>
-
- <para>In the FreeBSD Ports and Package system, i18n applications
- have been named with <literal>i18n</literal> in their names for
- easy identification. However, they do not always support the
- language needed.</para>
- </sect2>
-
- <sect2 id="setting-locale">
- <title>Setting Locale</title>
-
- <para>Theoretically, one only needs to export the value of his/her
- locale name as <envar>LANG</envar> in the login shell and is
- usually done through the user's
- <filename>~/.login_conf</filename> or the user login shell
- configuration (<filename>~/.profile</filename>,
- <filename>~/.bashrc</filename>, <filename>~/.cshrc</filename>).
- This should set all of the locale subsets (such as
- <envar>LC_CTYPE</envar>, <envar>LC_CTIME</envar>, etc.). Please
- refer to language-specific FreeBSD documentation for more
- information.</para>
-
- <para>You should set the following two values in your configuration
- files:</para>
-
- <itemizedlist>
- <listitem>
- <para><envar>LANG</envar> for POSIX &man.setlocale.3; family
- functions</para>
- </listitem>
-
- <listitem>
- <para><envar>MM_CHARSET</envar> for applications' MIME character
- set</para>
- </listitem>
- </itemizedlist>
-
- <para>This includes the user shell config, the specific application
- config, and the X11 config.</para>
-
- <sect3>
- <title>Setting Locale Methods</title>
-
- <para>There are two methods for setting locale, and both are
- described below. The first (recommended one) is by assigning
- the environment variables in <link linkend="login-class">login
- class</link>, and the second is by adding the environment
- variable assignments to the system's shell <link
- linkend="startup-file">startup file</link>.</para>
-
- <sect4 id="login-class">
- <title>Login Classes Method</title>
-
- <para>This method allows environment variables needed for locale
- name and MIME character sets to be assigned once for every
- possible shell instead of adding specific shell assignments to
- each shell's startup file. <link linkend="usr-setup">User
- Level Setup</link> can be done by an user himself and <link
- linkend="adm-setup">Administrator Level Setup</link> require
- superuser privileges.</para>
-
- <sect5 id="usr-setup">
- <title>User Level Setup</title>
-
- <para>Here is a minimal example of a
- <filename>.login_conf</filename> file in user's home
- directory which has both variables set for Latin-1
- encoding:</para>
-
- <programlisting>
-me:My Account:\
- :charset=ISO-8859-1:\
- :lang=de_DE.ISO_8859-1:</programlisting>
-
- <para>See <link linkend="adm-setup">Administrator Level
- Setup</link> and &man.login.conf.5; for more details.</para>
- </sect5>
-
- <sect5 id="adm-setup">
- <title>Administrator Level Setup</title>
-
- <para>Check that <filename>/etc/login.conf</filename> have the
- correct language user's class. Make sure these settings
- appear in <filename>/etc/login.conf</filename>:</para>
-
- <programlisting>
-<replaceable>language_name</replaceable>:<replaceable>accounts_title</replaceable>:\
- :charset=<replaceable>MIME_charset</replaceable>:\
- :lang=<replaceable>locale_name</replaceable>:\
- :tc=default:</programlisting>
-
- <para>So sticking with our previous example using Latin-1, it
- would look like this:</para>
-
- <programlisting>
-german:German Users Accounts:\
- :charset=ISO-8859-1:\
- :lang=de_DE.ISO_8859-1:\
- :tc=default:</programlisting>
-
- <para>Changing Login Classes with &man.vipw.8;</para>
-
- <para>Use <command>vipw</command> to add new users, and make
- the entry look like this:</para>
-
- <programlisting>
-user:password:1111:11:<replaceable>language</replaceable>:0:0:User Name:/home/user:/bin/sh</programlisting>
-
- <para>Changing Login Classes with &man.adduser.8;</para>
-
- <para>Use <command>adduser</command> to add new users, and do
- the following:</para>
-
- <itemizedlist>
- <listitem>
- <para>Set <literal>defaultclass =
- <replaceable>language</replaceable></literal> in
- <filename>/etc/adduser.conf</filename>. Keep in mind
- you must enter a <literal>default</literal> class for
- all users of other languages in this case.</para>
- </listitem>
-
- <listitem>
- <para>An alternative variant is answering the specified
- language each time that
-<screen><prompt>Enter login class: default []: </prompt></screen>
- appears from &man.adduser.8;</para>
- </listitem>
-
- <listitem>
- <para>Another alternative is to use the following for each
- user of a different language that you wish to
- add:</para>
-
- <screen>&prompt.root; <userinput>adduser -class <replaceable>language</replaceable></userinput></screen>
- </listitem>
- </itemizedlist>
-
- <para>Changing Login Classes with &man.pw.8;</para>
-
- <para>If you use &man.pw.8; for adding new users, call it in
- this form:</para>
-
- <screen>&prompt.root; <userinput>pw useradd <replaceable>user_name</replaceable> -L <replaceable>language</replaceable></userinput></screen>
- </sect5>
- </sect4>
-
- <sect4 id="startup-file">
- <title>Shell Startup File Method</title>
-
- <note>
- <para>This method is not recommended because it requires a
- different setup for each possible login program chosen. Use
- the <link linkend="login-class">Login Class Method</link>
- instead.</para>
- </note>
-
- <para>To add the locale name and MIME character set, just set
- the two environment variables shown below in the
- <filename>/etc/profile</filename> and/or
- <filename>/etc/csh.login</filename> shell startup files. We
- will use the German language as an example below:</para>
-
- <para>In <filename>/etc/profile</filename>:</para>
-
- <programlisting>
-<envar>LANG=de_DE.ISO_8859-1; export LANG</envar>
-<envar>MM_CHARSET=ISO-8859-1; export MM_CHARSET</envar></programlisting>
-
- <para>Or in <filename>/etc/csh.login</filename>:</para>
-
- <programlisting>
-<envar>setenv LANG de_DE.ISO_8859-1</envar>
-<envar>setenv MM_CHARSET ISO-8859-1</envar></programlisting>
-
- <para>Alternatively, you can add the above instructions to
- <filename>/usr/share/skel/dot.profile</filename> (similar to
- what was used in <filename>/etc/profile</filename> above), or
- <filename>/usr/share/skel/dot.login</filename> (similar to
- what was used in <filename>/etc/csh.login</filename>
- above).</para>
-
- <para>For X11:</para>
-
- <para>In <filename>$HOME/.xinitrc</filename>:</para>
-
- <programlisting>
-<envar>LANG=de_DE.ISO_8859-1; export LANG</envar></programlisting>
-
- <para>Or:</para>
-
- <programlisting>
-<envar>setenv LANG de_DE.ISO_8859-1</envar></programlisting>
-
- <para>Depending on your shell (see above).</para>
- </sect4>
- </sect3>
- </sect2>
-
- <sect2 id="setting-console">
- <title>Console Setup</title>
-
- <para>For all single C chars character sets, set the correct
- console fonts in <filename>/etc/rc.conf</filename> for the
- language in question with:</para>
-
- <programlisting>
-font8x16=<replaceable>font_name</replaceable>
-font8x14=<replaceable>font_name</replaceable>
-font8x8=<replaceable>font_name</replaceable></programlisting>
-
- <para>The <replaceable>font_name</replaceable> here is taken from
- the <filename>/usr/share/syscons/fonts</filename> directory,
- without the <filename>.fnt</filename> suffix.</para>
-
- <para>Also be sure to set the correct keymap and screenmap for your
- single C chars character set through
- <filename>/stand/sysinstall</filename>.
- Once inside sysinstall, choose <literal>Configure</literal>, then
- <literal>Console</literal>. Alternatively, you can add the
- following to <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>
-scrnmap=<replaceable>screenmap_name</replaceable>
-keymap=<replaceable>keymap_name</replaceable>
-keychange="<replaceable>fkey_number sequence</replaceable>"</programlisting>
-
- <para>The <replaceable>screenmap_name</replaceable> here is taken
- from the <filename>/usr/share/syscons/scrnmaps</filename>
- directory, without the <filename>.scm</filename> suffix. A
- screenmap with a corresponding mapped font is usually needed as a
- workaround for expanding bit 8 to bit 9 on a VGA adapter's font
- character matrix in pseudographics area, i.e., to move letters out
- of that area if screen font uses a bit 8 column.</para>
-
- <para>If you have the following settings, insert the
- kernel config specified in the paragraph after the list.</para>
-
- <itemizedlist>
- <listitem>
- <para>Console uses a screen font that utilizes 8-bit column font
- character.</para>
- </listitem>
-
- <listitem>
- <para>The moused daemon is enabled by setting the following in
- your <filename>/etc/rc.conf</filename>:</para>
-
-<programlisting>moused_enable="YES"</programlisting>
- </listitem>
- </itemizedlist>
-
- <para>A workaround for expanding 8-bit to 9-bit on a VGA adapter
- is usually needed for the above settings. This workaround
- disables 8-bit to 9-bit expansion of the font character with the
- mouse cursor the sc0 console driver. To enable the workaround,
- insert the following line into the kernel config.</para>
-
- <programlisting>
-options SC_MOUSE_CHAR=0x03</programlisting>
-
- <para>The <replaceable>keymap_name</replaceable> here is taken from
- the <filename>/usr/share/syscons/keymaps</filename> directory,
- without the <filename>.kbd</filename> suffix.</para>
-
- <para>The <literal>keychange</literal> is usually needed to program
- function keys to match the selected terminal type because
- function key sequences can not be defined in the key map.</para>
-
- <para>Also be sure to set the correct console terminal type in
- <filename>/etc/ttys</filename> for all <literal>ttyv*</literal>
- entries. Current pre-defined correspondences are:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Character Set</entry>
- <entry>Terminal Type</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>ISO-8859-1 or ISO-8859-15</entry>
- <entry><literal>cons25l1</literal></entry>
- </row>
-
- <row>
- <entry>ISO-8859-2</entry>
- <entry><literal>cons25l2</literal></entry>
- </row>
-
- <row>
- <entry>KOI8-R</entry>
- <entry><literal>cons25r</literal></entry>
- </row>
-
- <row>
- <entry>CP437 (hardware default)</entry>
- <entry><literal>cons25</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>For wide or multibyte characters languages, use the correct
- FreeBSD port in your
- <filename>/usr/ports/<replaceable>language</replaceable></filename>
- directory. Some ports appear as console while the system sees it
- as serial vtty's, hence you must reserve enough vtty's for both
- X11 and the pseudo-serial console. Here is a partial list of
- applications for using other languages in console:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Language</entry>
- <entry>Location</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Traditional Chinese (BIG-5)</entry>
- <entry><filename>/usr/ports/chinese/big5con</filename></entry>
- </row>
-
- <row>
- <entry>Japanese</entry>
- <entry><filename>/usr/ports/japanese/ja-kon2-*</filename> or
- <filename>/usr/ports/japanese/Mule_Wnn</filename></entry>
- </row>
-
- <row>
- <entry>Korean</entry>
- <entry><filename>/usr/ports/korean/ko-han</filename></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2>
- <title>X11 Setup</title>
-
- <para>Although X11 is not part of the FreeBSD Project, we have
- included some information here for FreeBSD users. For more
- details, refer to the <ulink url="http://www.xfree86.org/">XFree86
- web site</ulink> or whichever X11 Server you use.</para>
-
- <para>In <filename>~/.Xresources</filename>, you can additionally
- tune application specific i18n settings (e.g., fonts, menus,
- etc.).</para>
-
- <sect3>
- <title>Displaying Fonts</title>
-
- <para>Install the X11 True Type-Common server (XTT-common) and
- install the language truetype fonts. Setting the correct
- locale should allow you to view your selected language in menus
- and such.</para>
- </sect3>
-
- <sect3>
- <title>Inputting Non-English Characters</title>
-
- <para>The X11 Input Method (XIM) Protocol is a new standard for
- all X11 clients. All X11 applications should be written as XIM
- clients that take input from XIM Input servers. There are
- several XIM servers available for different languages.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Printer Setup</title>
-
- <para>Some single C chars character sets are usually hardware
- coded into printers. Wide or multibyte
- character sets require special setup and we recommend using
- <application>apsfilter</application>. You may also convert the
- document to Postscript or PDF formats using language specific
- converters.</para>
- </sect2>
-
- <sect2>
- <title>Kernel and File Systems</title>
-
- <para>The FreeBSD FFS filesystem is 8-bit clean, so it can be used
- with any single C chars character set (see &man.multibyte.3;),
- but there is no character set
- name stored in the filesystem; i.e., it is raw 8-bit and does not
- know anything about encoding order. Officially, FFS does not
- support any form of wide or multibyte character sets yet. However, some
- wide or multibyte character sets have independent patches for FFS
- enabling such support. They are only temporary unportable
- solutions or hacks and we have decided to not include them in the
- source tree. Refer to respective languages' web sites for more
- informations and the patch files.</para>
-
- <para>The FreeBSD MS-DOS filesystem has the configurable ability to
- convert between MS-DOS, Unicode character sets and chosen
- FreeBSD filesystem character sets. See &man.mount.msdos.8; for
- details.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Advanced Topics</title>
-
- <para>If you wish to compile i18n applications or program i18n
- compliant applications, please read this section.</para>
-
- <sect2>
- <title>Compiling i18n Programs</title>
-
- <para>Many FreeBSD Ports have been ported with i18n support. Some
- of them are marked with -i18n in the port name. These and many
- other programs have built in support for i18n and need no special
- consideration.</para>
-
- <para>However, some applications such as MySQL need to be have the
- <filename>Makefile</filename> configured with the specific
- charset. This is usually done in the
- <filename>Makefile</filename> or done by passing a value to
- configure in the source.</para>
- </sect2>
-
- <sect2>
- <title>Programming i18n Compliant Applications</title>
-
- <para>To make your application more useful for speakers of other
- languages, we hope that you will program i18n compliant. The GNU
- gcc compiler, GUI Libraries like QT and GTK support i18n through
- special handling of strings. Making a program i18n compliant is
- very easy. It allows contributors to port your application to
- other languages quickly. Refer to library specific i18n
- documentation for more details.</para>
-
- <para>To the contrary of common perception, i18n compliant code is
- easy to write. Usually, it only involves wrapping your strings
- with library specific functions. In addition, please be sure to
- allow for wide or multibyte characters support.</para>
-
- <sect3>
- <title>A Call to Unify the i18n effort</title>
-
- <para>It has come to our attention that the individual i18n/l10n
- efforts for each country has been repeating each others'
- efforts. Many of us have been reinventing the wheel repeatedly
- and inefficiently. We hope that the various major groups in
- i18n could congregate into a group effort similar to the Core
- Team's responsibility.</para>
-
- <para>Currently, we hope that, when you write or port i18n
- programs, you would send it out to each country's related
- FreeBSD mailing lists for testing. In the future, we hope to
- create applications that work in all the languages
- out-of-the-box without dirty hacks.</para>
- </sect3>
-
- <sect3>
- <title>Perl and Python</title>
-
- <para>Perl and Python have i18n and wide characters handling
- libraries. Please use them for i18n compliance.</para>
-
- <para>In older FreeBSD versions,
- Perl may gives warning about not having a wide characters locale
- that is already installed in your system. You can set the
- environmental variable <envar>LD_PRELOAD</envar> to
- <filename>/usr/lib/libxpg4.so</filename> in your shell.</para>
-
- <para>In <literal>sh</literal>-based shells:</para>
-
- <programlisting>
-<envar>LD_PRELOAD=/usr/lib/libxpg4.so</envar></programlisting>
-
- <para>In <literal>C</literal>-based shells:</para>
-
- <programlisting>
-<envar>setenv LD_PRELOAD /usr/lib/libxpg4.so</envar></programlisting>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="lang-setup">
- <title>Localizing FreeBSD to Specific Languages</title>
-
- <sect2 id="ru-localize">
- <title>Russian Language (KOI8-R encoding)</title>
-
- <para><emphasis>Originally contributed by
- &a.ache;.</emphasis></para>
-
- <para>For more information about KOI8-R encoding, see the <ulink
- url="http://nagual.pp.ru/~ache/koi8.html">KOI8-R References
- (Russian Net Character Set)</ulink>.</para>
-
- <sect3>
- <title>Locale Setup</title>
-
- <para>Put the following lines into your
- <filename>~/.login_conf</filename> file:</para>
-
- <programlisting>
-me:My Account:\
- :charset=KOI8-R:\
- :lang=ru_RU.KOI8-R:</programlisting>
-
- <para>See earlier in this chapter for examples of setting up the
- <link linkend="setting-locale">locale</link>.</para>
- </sect3>
-
- <sect3>
- <title>Console Setup</title>
-
- <itemizedlist>
- <listitem>
- <para>Add the following to your kernel configuration
- file:</para>
-
- <programlisting>
-options SC_MOUSE_CHAR=0x03</programlisting>
- </listitem>
-
- <listitem>
- <para>Use following settings in
- <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>
-keymap="ru.koi8-r"
-keychange="61 ^[[K"
-scrnmap="koi8-r2cp866"
-font8x16="cp866b-8x16"
-font8x14="cp866-8x14"
-font8x8="cp866-8x8"</programlisting>
-
- <para>Note that the <literal>^[</literal> here stands for a
- real Escape character (\033) entered directly in
- <filename>/etc/rc.conf</filename>, not for sequence of two
- characters '^' and '['.</para>
- </listitem>
-
- <listitem>
- <para>For each <literal>ttyv*</literal> entry in
- <filename>/etc/ttys</filename>, use
- <literal>cons25r</literal> as the terminal type.</para>
- </listitem>
- </itemizedlist>
-
- <para>See earlier in this chapter for examples of setting up the
- <link linkend="setting-console">console</link>.</para>
- </sect3>
-
- <sect3>
- <title>Printer Setup</title>
-
- <para>Since most printers with Russian characters come with
- hardware code page CP866, a special output filter is needed for
- KOI8-R -&gt; CP866 conversion. Such a filter is installed by
- default as <filename>/usr/libexec/lpr/ru/koi2alt</filename>.
- A Russian printer <filename>/etc/printcap</filename> entry
- should look like:</para>
-
- <programlisting>
-lp|Russian local line printer:\
- :sh:of=/usr/libexec/lpr/ru/koi2alt:\
- :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:</programlisting>
-
- <para>See &man.printcap.5; for a detailed description.</para>
- </sect3>
-
- <sect3>
- <title>MS-DOS FS and Russian Filenames</title>
-
- <para>The following example &man.fstab.5; entry enables support
- for Russian filenames in mounted MS-DOS filesystems:</para>
-
- <programlisting>
-/dev/ad0s2 /dos/c msdos rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0</programlisting>
-
- <para>See &man.mount.msdos.8; for a detailed description of the
- <option>-W</option> and <option>-L</option> options.</para>
- </sect3>
-
- <sect3>
- <title>X11 Setup</title>
-
- <orderedlist>
- <listitem>
- <para>Do <link linkend="setting-locale">non-X locale
- setup</link> first as described.</para>
-
- <note>
- <para><anchor id="russian-note">The Russian KOI8-R locale
- may not work with old XFree86 releases (lower than 3.3).
- The XFree86 port from
- <filename>/usr/ports/x11/XFree86</filename> already is the
- most recent XFree86 version, so it will work if you
- install XFree86 from the port. This should not be an
- issue unless you are using an old version of
- FreeBSD.</para>
- </note>
- </listitem>
-
- <listitem>
- <para>Go to the
- <filename>/usr/ports/russian/X.language</filename> directory
- and issue the following command:</para>
-
- <screen>&prompt.root; <userinput>make install</userinput></screen>
-
- <para>The above port installs the latest version of the KOI8-R
- fonts. XFree86 3.3 already has some KOI8-R fonts, but these
- are scaled better.</para>
-
- <para>Check the <literal>"Files"</literal> section
- in your <filename>/etc/XF86Config</filename> file.
- The following
- lines must be added <emphasis>before</emphasis> any other
- <literal>FontPath</literal> entries:</para>
-
- <programlisting>
-FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
-FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
-FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"</programlisting>
-
- <para>If you use a high resolution video mode, swap the 75 dpi
- and 100 dpi lines.</para>
- </listitem>
-
- <listitem>
- <para>To activate a Russian keyboard, add the following to the
- <literal>"Keyboard"</literal> section of your
- <filename>XF86Config</filename> file:</para>
-
- <programlisting>
-XkbLayout "ru"
-XkbOptions "grp:caps_toggle"</programlisting>
-
- <para>Also make sure that <literal>XkbDisable</literal> is
- turned off (commented out) there.</para>
-
- <para>The RUS/LAT switch will be <literal>CapsLock</literal>.
- The old <literal>CapsLock</literal> function is still
- available via <literal>Shift+CapsLock</literal> (in LAT mode
- only).</para>
-
- <para>If you have <quote>Windows</quote> keys on your keyboard,
- and notice that some non-alphabetical keys are mapped
- incorrectly in RUS mode, add the following line in your
- <filename>XF86Config</filename> file:</para>
-
- <programlisting>
-XkbVariant "winkeys"</programlisting>
-
- <note>
- <para>The Russian XKB keyboard may not work with old XFree86
- versions, see the <link linkend="russian-note">above
- note</link> for more information. The Russian XKB
- keyboard may also not work with non-localized
- applications as well. Minimally localized applications
- should call a <literal>XtSetLanguageProc (NULL, NULL,
- NULL);</literal> function early in the program.
- See <ulink
- url="http://nagual.pp.ru/~ache/koi8/xwin.html">
- KOI8-R for X-Window</ulink> for more instructions on
- localizing X11 applications.</para>
- </note>
- </listitem>
- </orderedlist>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Traditional Chinese Localization for Taiwan</title>
-
- <para>The FreeBSD-Taiwan Project has an i18n/l10n tutorial for
- FreeBSD at <ulink url="http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/index.html">http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/index.html</ulink>
- using many <filename>/usr/ports/chinese/*</filename> applications.
- The editor for the <literal>zh-l10n-tut</literal> is Clive Lin
- <email>Clive@CirX.org</email>. You can also cvsup the following
- collections at <hostid
- role="fqdn">freebsd.sinica.edu.tw</hostid>:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Collection</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>outta-port tag=.</entry>
- <entry>Beta-quality Ports Collection for Chinese</entry>
- </row>
-
- <row>
- <entry>zh-l10n-tut tag=.</entry>
- <entry>Localizing FreeBSD Tutorial in BIG-5 Traditional
- Chinese</entry>
- </row>
-
- <row>
- <entry>zh-doc tag=.</entry>
- <entry>FreeBSD Documentation Translation to BIG-5 Traditional
- Chinese</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Chuan-Hsing Shen <email>s874070@mail.yzu.edu.tw</email> has
- created the <ulink url="http://cnpa.yzu.edu.tw/~cfc/">Chinese
- FreeBSD Collection (CFC)</ulink> using FreeBSD-Taiwan's
- <literal>zh-l10n-tut</literal>. The packages and the script files
- are available at <ulink url="ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/">ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>German Language Localization (For All ISO 8859-1
- Languages)</title>
-
- <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email> wrote a
- tutorial how to use umlauts on a FreeBSD machine. The tutorial
- is written in German and available at <ulink
- url="http://www.de.FreeBSD.org/de/umlaute/">http://www.de.FreeBSD.org/de/umlaute/</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>Japanese and Korean Language Localization</title>
-
- <para>For Japanese, refer to <ulink
- url="http://www.jp.FreeBSD.org/">http://www.jp.FreeBSD.org/</ulink>,
- and for Korean, refer to <ulink
- url="http://www.kr.FreeBSD.org/">http://www.kr.FreeBSD.org/</ulink>.</para>
- </sect2>
-
- <sect2>
- <title>Non-English FreeBSD Documentation</title>
-
- <para>Some FreeBSD contributors have translated parts of FreeBSD to
- other languages. They are available through links on the <ulink
- url="../">main site</ulink> or in
- <filename>/usr/share/doc</filename>.</para>
- </sect2>
- </sect1>
-</chapter>