芬兰语 HOWTO

Ari M�kel�


                                
                        

版本历史
版本 v.2.0.292005-01-05修订者:am
许可证更改为双 GPL 和 GFDL。Debian 中的芬兰语 OpenOffice。语言校正。更详细地解释了“为什么使用 fi-latin[19] 而不是 fi?”。
版本 v.2.0.282004-11-23修订者:am
修复了指向 lyhyt2e.ps 的损坏链接。
版本 v.2.0.272004-11-19修订者:am
如何在 tex 中使用逗号而不是点来表示浮点数。
版本 v.2.0.262004-10-19修订者:am
“斯堪的纳维亚字母在程序 foo 中不起作用。我该怎么办?”
版本 v.2.0.252004-08-26修订者:am
SuSE 和 UTF-8。
版本 v.2.0.242004-08-11修订者:am
更清晰的 fi-latin[19] 章节。移除了过时的 euro.inc.gz。修复了损坏的 Euro Character mini-HOWTO 链接。更好地解释了 LC_ALL。
版本 v.2.0.232004-03-10修订者:am
更新了 tcsh 章节。
版本 v.2.0.222004-03-03修订者:am
从 Debian /etc/environment 中移除了 “export”。
版本 v.2.0.212003-11-24修订者:am
为 book 元素添加 lang="fi" 属性。语言校正。
版本 v.2.0.202003-01-09修订者:am
Debian 需要 xfonts-.*-transcoded 软件包才能正常工作。
版本 v.2.0.192002-12-29修订者:am
在 UTF-8 章节中添加了 RH 8.1 beta 和 recode 示例。
版本 v.2.0.182002-11-27修订者:am
loadkeys 不再使用确切的文件名,而是使用 fi-latin1。现在提到了 fi-latin9 键盘映射。在 locales 章节中添加了 LC_PAPER。
版本 v.2.0.172002-11-27修订者:am
修复了 emacs 欧元支持。
版本 v.2.0.162002-11-27修订者:am
Red Hat 8 UTF-8 支持。
版本 v.2.0.152002-05-09修订者:am
添加了 DocBook XSL 标签 - 因为我想在 arska.org Finnish HOWTO 页面上尝试 AxKit。
版本 v.2.0.142002-05-03修订者:am
更清晰地描述了 X 中的死键。
版本 v.2.0.132002-04-09修订者:am
更清晰地描述了 LC_MESSAGES。修复了 locales 表格中的 XML 结构错误。修复了遗忘的 bookinfo 日期。
版本 v2.0.122002-04-06修订者:am
更多 irc 相关内容。在 readline 章节中添加了 set convert-meta off。将 Debian 特定信息更新至 Debian 3.0。更多键盘映射相关内容。移除了 Red Hat 5.2 相关内容。将示例 locales 更改为 fi_FI@euro。在 Euro 章节中添加了 KDE、Gnome 和 Emacs。在 elm 章节中添加了 fi_FI@euro。在 locales 章节中添加了 Debian 3.0 的 locales 方法。
版本 v2.0.112002-02-24修订者:am
更多欧元支持链接,更新了 KDE 链接。为 bash 添加了 “convert-meta off”。
版本 v2.0.102001-10-04修订者:am
修复了控制台上的 emacsen。
版本 v2.0.92001-10-04修订者:am
将 elm-ME+ 标题的标题从 elm 修复为 elm-ME+
版本 v2.0.82001-09-26修订者:am
更正了错误的 revhistory 顺序。
版本 v2.0.72001-09-26修订者:am
修复了欧元支持中的一个错别字。
版本 v2.0.62001-09-26修订者:am
添加了欧元支持。
版本 v2.0.52001-09-14修订者:am
修复了 locale 示例。修复了一些错别字。修复了一些标记错误。添加了 irc 和 elm-me+
版本 v2.0.42001-07-18修订者:am
完全重写。

摘要

本文档描述了如何为芬兰用户本地化 GNU/Linux,旨在取代 Pekka Taipale 的原始 Finnish-HOWTO,该文档已有一段时间未更新。本文档源自原始 Finnish HOWTO,更重要的是源自 Niels Kristian Bech Jensen 的 Danish-HOWTO。

HOWTO 的语言是芬兰语。非芬兰语用户应查阅 Danish HOWTO,该文档不是丹麦语而是英语。


目录
1. 引言
1.1. 什么是 HOWTO?
1.2. 在哪里可以找到 Finnish HOWTO 的最新版本?
1.3. 本文档不涵盖什么?
1.4. 关于版权和复制
1.5. 关于文本表示
1.6. 致谢
2. 键盘设置
2.1. 字符集
3. UTF-8
3.1. 将文本文件转换为 UTF-8
3.2. Red Hat 和 UTF-8
3.3. Debian GNU/Linux 和 UTF-8
3.4. SuSE 和 UTF-8
4. 字体
4.1. Debian 和 X Window System 的字体
5. 屏幕和程序设置
5.1. “斯堪的纳维亚字母不起作用。我该怎么办?”
5.2. Locale 设置
5.3. 欧元符号
5.4. 可以在 GNU/Linux 中显示的字符
5.5. 程序特定的字符集设置
5.6. 其他平台上的文本文件格式
6. glibc2 及更高版本中的 Locale 支持
6.1. 通用设置
6.2. Debian 和 locales
表格列表
6-1. Locales

第 1 章 引言

1.1. 什么是 HOWTO?

本文档的目的是提供在安装后对 GNU/Linux 设置进行芬兰语本地化的说明。出发点是作者使用的 Debian GNU/Linux(撰写时版本为 3.0),但对于其他发行版的用户来说,该文档也可能很有用,尽管不同发行版之间,特别是各种启动脚本的名称和位置差异很大。

自 Pekka Taipale 的原始 Finnish-HOWTO 以来,GNU/Linux 发生了很大变化:它的安装变得更加容易,并且设置也比以前更频繁地正确,但并非总是如此,了解 GNU/Linux 的语言设置如何工作也绝非坏事。

GNU/Linux 在服务器使用中变得越来越普遍,因此更重要的是要注意/etc目录下的配置文件与用户主目录中的配置文件之间的区别。旨在对所有人有效的设置应该放在/etc- 目录下。


1.2. 在哪里可以找到 Finnish HOWTO 的最新版本?

HOWTO 的官方主页是 http://arska.org/finnish-howto/,尽管 Linux Documentation Project 也分发它,但它通常比官方主页上的版本旧得多。


1.3. 本文档不涵盖什么?

关于 locales,本文档不涵盖使用 C 库版本 5 或更早版本的 GNU/Linux 系统。主要发行版使用 C 库版本 6,它更广为人知的名称是 glibc2。(Debian 和 Red Hat 在 Debian GNU/Linux 2.0 和 Red Hat Linux 5.0 版本中切换了 C 库。)

本文档不涵盖 XFree86 3.2 之前的版本。


1.4. 关于版权和复制

本文档可以根据 GNU Free Documentation License 版本 1.1 的条款进行修改和分发,或者根据 GNU General Public License 版本 2 或任何后续版本的条款进行修改和分发。本文档的来源特别包括 Niels Kristian Bech Jensen 的 Danish-HOWTO 和一定程度上 Pekka Taipale 的 Finnish HOWTO v. 1.1f

作者不对可能的错误负责,但欢迎将更正和改进建议发送至.


1.5. 关于文本表示

本文档是用 DocBook 的 XML 版本编写的,并从中生成了其他版本。


1.6. 致谢

感谢所有通过邮件和新闻组 sfnet.atk.linux 向我提出意见的人们。


第 2 章 键盘设置

在控制台中,键盘设置使用 loadkeys 命令设置,在 X Window System 中使用 xmodmap 命令设置。


2.1. 字符集

芬兰语本地化的 GNU/Linux 使用国际 ISO-8859-1Latin-1 字符集或 ISO-8859-15Latin-9 字符集。定义这一点并非总是必要的,但许多重要的程序都需要设置它。

ISO-8859-15 字符集,它支持 euro 符号,有时也称为 Latin-0


2.1.1. 加载键盘映射

2.1.1.1. 在控制台中

可以使用命令 loadkeys fi-latin1 加载键盘映射,或者如果 kbd 版本为 1.08 或更高版本,也可以使用命令 loadkeys fi-latin9

在某些发行版中,键盘映射的名称具有.map.gz后缀而不是.kmap.gz后缀。不同发行版之间键盘映射的位置有所不同。例如,可以使用命令 find /usr -name '*latin1.*map*' -print 找到键盘映射

应该注意的是,正确的键盘映射是 fi-latin1fi-latin9,而不是 fi,后者是旧的 7 位键盘映射。

在 Debian GNU/Linux 中,loadkeys 在启动期间从脚本/etc/init.d/keymap.sh运行。可以使用命令 /usr/sbin/install-keymap 更改键盘映射。

在 Red Hat 中,启动期间通常执行/etc/rc.d/init.d/keytable脚本。此脚本读取/etc/sysconfig/keyboard文件,其中定义了要使用的键盘映射。当键盘是芬兰语时,该文件包含以下行

	KEYTABLE=fi-latin1


2.1.1.2. XFree86 3

XFree86 3.2 及更高版本中/etc/X11/XF86Config文件的 Keyboard section 部分应包含以下行

	Section "Keyboard"
	   Protocol        "Standard"
	   XkbRules        "xfree86"
	   XkbModel        "pc102"
	   XkbLayout       "fi"
	   XkbVariant      "nodeadkeys"
	EndSection

这些设置以及许多其他设置可以根据您自己的喜好进行修改,下面是一个 Debian GNU/Linux 2.2(撰写本文时仍为开发版本)“Keyboard Section:”的示例

	Section "Keyboard"
	   Protocol        "Standard"
	   AutoRepeat      500 30
	   LeftAlt         Meta
	   RightAlt        Meta
	   ScrollLock      Compose
	   RightCtl        Control
	   XkbKeycodes     "xfree86"
	   XkbTypes        "default"
	   XkbCompat       "default"
	   XkbSymbols      "us(pc101)"
	   XkbGeometry     "pc"
	   XkbRules        "xfree86"
	   XkbModel        "pc102"
	   XkbLayout       "fi"
	EndSection

更多信息,请参见 XF86Config 文件的手册页。


2.1.1.3. XFree86 4

在 XFree 版本 4 中,键盘设置略有不同,以下是一个示例

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "keyboard"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xfree86"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "fi"
        Option          "XkbVariant"    "nodeadkeys"
EndSection

2.1.2. 死键

死键是指按下后不会在屏幕上打印任何内容,直到按下另一个键为止的键。例如,tilde, ~ 就是这样一个键。需要死键来书写由多个字符组成的字符,例如


第 3 章 UTF-8

UTF-8 是 Unicode 的一种形式,您可以使用它来书写世界上几乎所有口语,并且它为符号(如国际象棋棋子)预留了空间,甚至可以使用它来书写托尔金的 Tengwar 字母。

尽管 UTF-8 在过渡阶段为非英语使用者带来了一些问题,但它是全球本地化工作的绝对先决条件。


3.1. 将文本文件转换为 UTF-8

可以使用 recode 命令转换文本文件,例如像这样

$ recode Latin1..UTF-8 foo.dtd


3.2. Red Hat 和 UTF-8

Red Hat 在其 8 系列中采用了 UTF-8 字符集。下面显示的修正是很容易的,但实际上是错误的纠正问题的方法:与其切换到 UTF-8,不如返回到单字节字符集。纠正此问题的正确方法是将 locales 保留为 UTF-8 locales,除非是邮件和新闻组。


3.2.1. Red Hat 8.0

在撰写本文时,Red Hat 8.0 是唯一默认使用 UTF-8 locales 的发行版。为了使其在正常的桌面使用中完美运行,需要对文件/etc/sysconfig/i18n进行以下更改

LANG="fi_FI@euro"
SUPPORTED="en_US:en:fi_FI@euro:fi_FI:fi"
SYSFONT="lat0-16"
SYSFONTACM="iso15"


3.2.2. Red Hat 8.1 beta Phoebe

Phoebe 所需的设置与 Red Hat 8.0 的略有不同

LANG="C"
SUPPORTED="en_US:en:fi_FI@euro:fi_FI:fi"
SYSFONT="lat0-16"


3.3. Debian GNU/Linux 和 UTF-8

想要将 UTF-8 与 Debian 一起使用的用户应参考文档 Step by step introduction to switching your debian installation to utf-8 encoding


3.4. SuSE 和 UTF-8

SuSE 在 9.1 版本中默认切换到 UTF-8。如果要更改它,可以使用 YaST 执行以下操作:Yast2 -> System -> Sysconfig editor -> Search -> RC_LANG。


第 4 章 字体

4.1. Debian 和 X Window System 的字体

在 Debian 3.0 版本中,芬兰语书写所需的字符集已移至名称中包含单词 transcoded 的字体软件包中。需要安装它们或其中的一部分,以便 Gnome 应用程序等能够正常工作。

$ apt-cache search transcoded | egrep font
xfonts-base-transcoded - standard fonts for X (transcoded from ISO 10646-1)
xfonts-75dpi - 75 dpi fonts for X
xfonts-100dpi-transcoded - 100 dpi fonts for X (transcoded from ISO 10646-1)
xfonts-base - standard fonts for X
xfonts-100dpi - 100 dpi fonts for X
xfonts-75dpi-transcoded - 75 dpi fonts for X (transcoded from ISO 10646-1)


第 5 章 屏幕和程序设置

某些程序需要“8-bit-clean”编译才能使用斯堪的纳维亚字符正常工作。某些程序还需要其他设置。


5.1. “斯堪的纳维亚字母不起作用。我该怎么办?”

  • 检查您的 locale 设置。如果使用命令 LC_ALL=fi_FI 程序名称 启动程序,程序是否正常工作?检查命令 locale 的输出。

  • 如果您使用的程序是命令行程序,并且您的命令解释器是 bash(Linux 的默认设置),请检查 readline 库 的设置。

  • 检查您使用的程序是否在 那些程序 中,对于这些程序,正确的 locale 是不够的。


5.2. Locale 设置

在 Debian 中,locale 设置在文件/etc/environment中设置,在 Red Hat 中,locale 设置在文件/etc/sysconfig/i18n


5.2.1. Debian

LANG=C
LC_CTYPE=fi_FI@euro
LC_PAPER=fi_FI@euro
LESSCHARSET=latin1

5.2.2. Red Hat

LANG=C
LC_CTYPE=fi_FI@euro
LC_PAPER=fi_FI@euro
LESSCHARSET=latin1
export LANG LC_CTYPE LESSCHARSET 

5.3. 欧元符号

新的字符集 ISO-8859-15latin9,为了最大程度地混淆,通常也称为 latin0,是为了取代 ISO-8859-1 (latin1) 而创建的,它提供了欧盟共同货币欧元和美分符号。

欧元符号可以通过组合键 AltGr-e 找到。美分符号可以在 X 中通过组合键 AltGr-Shift-e 找到,而在控制台中,正确的组合键是 AltGr-c。但是,美分通常不使用。

本章特别侧重于 Debian,但其说明也应使其他发行版能够工作,但这需要比平时更多的创造力。


5.3.1. 欧元和 locales

glibc 2.2 及更高版本支持欧元。正确的 locale 值是 fi_FI@euro


5.3.2. 控制台中的欧元

根据发行版,您需要加载支持欧元的控制台字体,可以使用命令 setfont (RH 衍生发行版) 或 consolechars (Debian 衍生发行版)。

在 Debian 中,修改文件/etc/console-tools/config以删除注释标记SCREEN_FONT:

SCREEN_FONT=lat0-16

在 Red Hat 中,在文件中设置/etc/sysconfig/i18n

SYSFONT=lat0-16
SYSFONTACM=iso15


5.3.3. X Window System 中的欧元

在正常设置下,AltGr-e 会生成一个通用的货币符号,看起来像一只四条腿的蜘蛛。当应用程序使用的字体更改为 ISO-8859-15 字体时,它将被欧元符号替换。在 Debian 中,可以通过将以下行添加到文件/etc/X11/app-defaults/XTerm例如,行

.XTerm.VT100.font: -jmk-neep alt-medium-r-*-*-*-120-*-*-*-*-iso8859-15

如果 AltGr-e 不起作用,请将以下行添加到文件/etc/X11/Xmodmap

keycode 26 = e E EuroSign


5.3.4. KDE

在 KControl 中,将字体设置更改为 ISO-8859-15 字符集。


5.3.5. GTK 和 Gnome

在 Gnome Control Center 中,将字体设置更改为 ISO-8859-15 字符集。

执行此操作的更好方法是使用以下命令更改 GTK+ 的配置

cd /etc/gtk
ln -s gtkrc.iso-8859-15 gtkrc

5.3.6. Emacs

Emacs 21 及更高版本通过以下 elisp 设置支持欧元

 (set-language-environment "Latin-9")

5.4. 可以在 GNU/Linux 中显示的字符

命令 dumpkeys -l | less 显示可用的字符。


5.5. 程序特定的字符集设置

许多程序需要特殊设置才能工作。例如,使用 GNU readline 库的库在启动时读取/etc/inputrc- 或~/.inputrc文件。例如,bashMySQL 的命令行客户端使用此库。

但是,在进行程序特定的设置之前,应该先调整 locales 以使其正常工作。问题通常已经通过这种方式消失了。


5.5.1. bash

文件/etc/inputrc~/.inputrc以下行

	set input-meta on
	set output-meta on

某些系统还需要设置

	  set convert-meta off

5.5.2. elm

文件~/.elm/elmrc以下行

	charset = iso-8859-1
	displaycharset = iso-8859-1
	textencoding = 8bit

这不一定适用于所有 elm 版本。可以使用 metamail 软件包在 elm 中获得部分 MIME 支持。


5.5.3. elm-ME+

将以下行添加到文件/etc/elm-me/elm.mimecharsets以下行

fi_FI ISO-8859-1
fi_FI@euro ISO-8859-15

5.5.4. emacs

当前的 Emacs 在 X Window System 中可以正常工作,前提是 locale 设置正确。但是,在控制台中或使用 -nw 选项启动时,情况并非如此,而是~/.emacs文件中需要添加以下行

(set-input-mode nil nil 'foo)

5.5.4.1. Gnus

如果 GNU EmacsXEmacs 的更新版本已编译包含 多语言增强功能 (MULE) 并且系统 locale 设置配置正确,则 Gnus 在字符集方面可以正常工作,而无需进行更改。

否则,请将以下内容添加到文件~/.gnus:

         (setq gnus-default-posting-charset 'iso-8859-1)
         (setq message-default-charset 'iso-8859-1)

5.5.4.2. vm

将以下行添加到文件~/.vm

	(setq vm-mime-8bit-text-transfer-encoding '8bit)


5.5.5. irc 及其衍生程序

将以下行添加到文件/etc/irc/script/local行或在命令行中写入它们

set EIGHT_BIT_CHARACTERS on 
set TRANSLATION LATIN_1 


5.5.6. groff

使用命令 groff -Tlatin1 <input-tiedosto> 启动 groff


5.5.7. joe

使用命令 joe -asis 启动 joe 或添加到文件~/.joerc

	-asis

5.5.8. kermit

不完整,但非常有效~/kermrc:

        set terminal bytesize 8
        set command bytesize 8
        set file bytesize 8
        set language finnish
        set file character-set latin1-iso
        set transfer character-set latin1-iso
        set terminal character-set latin1-iso	

如果远程主机是 DOS 或 OS/2 操作系统,则必须更改设置。


5.5.9. less

设置环境变量LESSCHARSET=latin1如果系统支持 locales,则这不是必需的。在这种情况下,也可以设置环境变量LANG, LC_CTYPELC_ALL的值。


5.5.10. ls

只要设置了 locale 环境变量,ls 就可以正常工作。LC_CTYPE, LANGLC_ALL已设置。


5.5.11. links

将以下行添加到文件~/.links/.links.cfg

	terminal2 "linux" 0 0 0 0 ISO-8859-1

5.5.12. lynx

文件~/.lynxrc以下行

	character_set=ISO Latin 1

也可以在文件/etc/lynx.cfg或 lynx 的 Options 菜单中设置。


5.5.13. man

请参阅 5.5.6 节 groff。


5.5.14. metamail

设置环境变量MM_CHARSET=ISO-8859-1


5.5.15. nn

文件~/.nn/init以下行

	set data-bits 8

5.5.16. OpenOffice Debian GNU/Linux 中

只要将 locales 设置为芬兰语,安装软件包 openoffice.org-l10n-fi 即可获得芬兰语 OpenOffice。


5.5.17. pine

文件~/.pinerc以下行

	character-set=ISO-8859-1

也可以在 pine 的 Setup | Config 菜单中设置。pine 的新闻设置是

	enable-8bit-esmtp-negotiation
	enable-8bit-nntp-posting

5.5.18. rlogin

使用命令 rlogin -8 foo.bar.fi 启动 rlogin


5.5.19. sendmail

将以下行添加到文件/etc/sendmail.mc

	define(`confEIGHT_BIT_HANDLING', `mimefy')dnl

或添加到/etc/sendmail.cf的行

	O EightBitMode=mimefy

5.5.20. tcsh

将以下行添加到文件/etc/csh.login~/.login

	setenv LC_CTYPE fi_FI@euro

5.5.21. telnet

将以下行添加到文件~/.telnetrc每台远程主机一行

	hostname set outbinary true

5.5.22. TeX/LaTeX

首先运行 texconfig。选择 hyphenation -> latex 并取消注释 finnish 一词的前面,然后保存您所做的更改。EDITOR环境变量应该设置正确,以便您可以使用熟悉的编辑器。之后,您仍然需要在文档中进行以下定义,以便元音变音和芬兰语断字能够工作。

	\usepackage[latin1]{inputenc}
	\usepackage[T1]{fontenc}
	\usepackage[finnish]{babel}


5.5.22.1. 小数点逗号

新闻组文章 给出了以下说明,使用它可以使小数点逗号正常工作。

\documentclass{article}
\usepackage{t1enc}
\usepackage{a4}
\usepackage[finnish]{babel}
\DeclareMathSymbol{,}{\mathpunct}{letters}{"3B}
\DeclareMathSymbol{.}{\mathord}{letters}{"3B}
\DeclareMathSymbol{\decimal}{\mathord}{letters}{"3A}

\begin{document}
   Ajatellaan, ett� $f(x, y, z) = 3.333$. Mit�s sitten?
\end{document}


5.5.22.2. LaTeX 说明

更多信息,请参见文档 Pitk�npuoleinen johdanto LaTeX2e:n k�ytt��n


5.5.23. tin

添加~/.tin/headers文件中的行

	Mime-Version: 1.0
	Content-Type: text/plain; charset=iso-8859-1
	Content-Transfer-Encoding: 8bit

5.6. 其他平台上的文本文件格式

例如,可以使用代码页 850 使用 recode 程序将 ISO-8859-1 文本文件更改为 DOS 文本文件。例如,DOS 文件 foo.txt 使用命令 recode cp850:latin1 foo.txt 更改为 unix 文本文件。recode 可作为 Debian GNU/Linux 的软件包和所有 GNU ftp 存档使用。


第 6 章 glibc2 及更高版本中的 Locale 支持

6.1. 通用设置

可以通过设置正确的 locale 设置来避免程序特定的键盘设置中的许多问题。

可以使用多种方法更改 locale 设置,locale 的手册页更详细地描述了这些方法。常用的设置是将环境变量LANG, LC_ALLLC_CTYPE的值设置为

	fi_FI

或设置为

	fi_FI@euro

表 6-1. Locales

Locale 环境变量用法
LC_COLLATE字符串排序。
LC_CTYPE字符分类和转换。
LC_MESSAGES如果程序支持翻译并且其他 locale 环境变量与 LC_MESSAGES 环境变量不冲突,则翻译程序。
LC_MONETARY货币值
LC_NUMERIC非货币数值的格式化
LC_TIME日期和时间格式化
LC_PAPER纸张尺寸定义
LC_ALL定义所有上述环境变量。其他 locale 环境变量将被忽略。
LANG定义所有上述环境变量,但可以单独定义单个 locale 环境变量。

这是一个模型示例

LANG=C
LC_CTYPE=fi_FI@euro
LESSCHARSET=latin1

6.2. Debian 和 locales

为了节省空间,Debian 安装不会自动生成所有 locales,而是在安装过程中选择它们或在安装后通过添加到文件/etc/locale.gen

fi_FI ISO-8859-1
fi_FI@euro ISO-8859-15

并在之后运行命令 locale-gen 来生成它们。

如果不希望在 Debian 中手动维护 locales,可以使用命令 dpkg-reconfigure locales