新聞中心
目錄

公司主營業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出元謀免費(fèi)做網(wǎng)站回饋大家。
- 8.1. 語言環(huán)境
-
- 8.1.1. UTF-8 語言環(huán)境的基本原理
- 8.1.2. 語言環(huán)境的重新配置
- 8.1.3. 文件名編碼
- 8.1.4. 本地化信息和翻譯文檔
- 8.1.5. 語言環(huán)境的影響
- 8.2. 鍵盤輸入
-
- 8.2.1. Linux 控制臺(tái)和 X 窗口的鍵盤輸入
- 8.2.2. Wayland 鍵盤輸入
- 8.2.3. IBus 支持的輸入法
- 8.2.4. 一個(gè)日語的例子
- 8.3. 顯示輸出
- 8.4. 東亞環(huán)境下寬度有歧義的字符
一個(gè)應(yīng)用軟件的 多語言化 (M17N)或本地語言支持,通過 2 個(gè)步驟完成。
-
國際化 (I18N): 使一個(gè)軟件能夠處理多個(gè)語言環(huán)境。
-
本地化 (L10N):使一個(gè)軟件處理一個(gè)特定的語言環(huán)境。
| 提示 | |
|---|---|
|
在 multilingualization(多語言化)、internationalization(國際化)和 localization(本地化)中,有17, 18, 或 10 個(gè)字母在"m" 和 "n", "i" 和 "n", 或 "l" 和 "n"中間,它們相應(yīng)表示為 M17N, I18N 和 L10N。細(xì)節(jié)參見 i18n 介紹 。 |
8.1. 語言環(huán)境
程序支持國際化的行為,是通過配置環(huán)境變量 "$LANG"來支持本地化。語言環(huán)境的實(shí)際支持,依賴 libc 庫提供的特性,并要求安裝 locales 或 locales-all 軟件包。 locales 軟件包需要被適當(dāng)?shù)某跏蓟?/p>
如果 locales 或 locales-all 軟件包均沒有安裝,支持語言環(huán)境的特性丟失,系統(tǒng)使用 US 英語消息,并按 ASCII 處理數(shù)據(jù)。這個(gè)行為和 "$LANG" 被設(shè)置為 "LANG="、"LANG=C" 或 "LANG=POSIX" 相同。
GNOME 和 KDE 等現(xiàn)代軟件是多語言的。他們通過處理 UTF-8 數(shù)據(jù)來實(shí)現(xiàn)國際化,并通過 gettext(1) 架構(gòu)提供翻譯信息來本地化。翻譯信息可以由獨(dú)立的本地化軟件包來提供。
目前的 Debian 桌面 GUI(圖形用戶界面)系統(tǒng)通常在 GUI 環(huán)境中設(shè)置語言環(huán)境為 "LANG=xx_YY.UTF-8"。這里,"xx" 是 ISO 639 語言代碼 ,"YY" 是 ISO 3166 國家地區(qū)代碼。這些值由配置桌面的 GUI 對(duì)話框來設(shè)置,并改變程序的行為。參見 第 1.5.2 節(jié) ““$LANG”變量”
8.1.1. UTF-8 語言環(huán)境的基本原理
最簡單的文本數(shù)據(jù)表達(dá)是 ASCII,它對(duì)英語是足夠的,少于 127 個(gè)字符(使用 7 位描述)。
即使純英文文本也可能包含非 ASCII 字符,例如微微卷曲的左右引號(hào)在 ASCII 中是不可用的。
“double quoted text” is not "double quoted ASCII" ‘single quoted text’ is not 'single quoted ASCII'
為了支持更多字符,許多字符集和編碼系統(tǒng)被用來支持多語言。(參見 表 11.2 “編碼值和用法的列表”)。
Unicode 字符集可以用 21 位碼點(diǎn)范圍來顯示幾乎所有人類已知的字符(例如,十六進(jìn)制的 0 到 10FFFF)。
文本編碼系統(tǒng) UTF-8 將 Unicode 碼點(diǎn)適配到一個(gè)合理的 8 位數(shù)據(jù)流,并大部分兼容 ASCII 數(shù)據(jù)處理系統(tǒng)。這個(gè)使 UTF-8 作為現(xiàn)代推薦的選擇。UTF 表示 Unicode 轉(zhuǎn)換格式(Unicode Transformation Format)。當(dāng) ASCII 純文本數(shù)據(jù)轉(zhuǎn)換為 UTF-8 數(shù)據(jù),它有和原始 ASCII 完全一樣的內(nèi)容和大小。所以配置 UTF-8 語言環(huán)境不會(huì)有任何丟失。
在 UTF-8 語言環(huán)境下兼容的應(yīng)用程序,你可以顯示和編輯外語文本數(shù)據(jù),在所要求的字體和輸入法安裝和啟用后。例如在"LANG=fr_FR.UTF-8"語言環(huán)境下,gedit(1) (GNOME 桌面的文本編輯器) 能夠顯示和編輯中文字符文本數(shù)據(jù),而顯示的菜單是法語。
| 提示 | |
|---|---|
|
新標(biāo)準(zhǔn)的 " |
| 注意 | |
|---|---|
|
一些程序在支持 I8N 后會(huì)消耗更多的內(nèi)存。這是因?yàn)樗鼈優(yōu)榱怂俣葍?yōu)化,而在內(nèi)部使用 UTF-32(UCS4) 來支持 Unicode,并且每個(gè)獨(dú)立于語言環(huán)境所選的 ASCII 字符數(shù)據(jù)都會(huì)消耗 4 個(gè)字節(jié)。再一次地,使用 UTF-8 語言環(huán)境并不會(huì)使你損失什么。 |
8.1.2. 語言環(huán)境的重新配置
為了讓系統(tǒng)訪問某一語言環(huán)境,語言環(huán)境數(shù)據(jù)必須從語言環(huán)境數(shù)據(jù)庫中編譯。
locales 軟件包 沒有 包含預(yù)先編譯的語言環(huán)境數(shù)據(jù)。你需要按下面的方法配置:
# dpkg-reconfigure locales
該過程包含 2 個(gè)步驟。
-
選擇所有需要的語言環(huán)境數(shù)據(jù)編譯為二進(jìn)制形式。(請(qǐng)確認(rèn)至少包含一個(gè) UTF-8 語言環(huán)境 )
-
通過創(chuàng)建 “
/etc/default/locale” 來設(shè)置系統(tǒng)默認(rèn)的語言環(huán)境值給 PAM 使用(參見 第 4.5 節(jié) “PAM 和 NSS”)。
設(shè)置在 "/etc/default/locale" 里的系統(tǒng)范圍的默認(rèn)語言環(huán)境,可以被 GUI(圖形用戶界面)應(yīng)用程序的 GUI 配置覆蓋。
| 注意 | |
|---|---|
|
所使用的確切傳統(tǒng)編碼系統(tǒng)可以通過 “ |
locales-all 軟件包有所有預(yù)編譯的語言環(huán)境數(shù)據(jù),但是不創(chuàng)建"/etc/default/locale"。
8.1.3. 文件名編碼
對(duì)于跨平臺(tái)的數(shù)據(jù)交換(參見 第 10.1.7 節(jié) “可移動(dòng)存儲(chǔ)設(shè)備”),你需要使用特殊的編碼掛載文件系統(tǒng).舉個(gè)例子,不使用選項(xiàng)時(shí),mount(8) 假設(shè) vfat 文件系統(tǒng) 使用 CP437. 你需要給文件名提供明確的掛載選項(xiàng)來使用UTF-8 或 CP932.
| 注意 | |
|---|---|
|
在 GNOME 這類的現(xiàn)代桌面環(huán)境下,當(dāng)自動(dòng)掛載一個(gè)熱拔插 U 盤時(shí),你可以提供這樣的掛載選項(xiàng)。右擊桌面上的圖標(biāo),點(diǎn)擊 "Drive" , "Setting", 輸入 "utf8" 到 "Mount options:". 當(dāng)這個(gè) U 盤下次掛載時(shí),UTF-8 就可以了。 |
| 注意 | |
|---|---|
|
如果你在升級(jí)一個(gè)系統(tǒng),或者從老的非 UTF-8 系統(tǒng)遷移磁盤,非 ASCII 字符的文件名也許是使用老舊的 ISO-8859-1 或 eucJP 來編碼. 請(qǐng)尋求文本轉(zhuǎn)換工具把他們轉(zhuǎn)換到 UTF-8. 參見 第 11.1 節(jié) “文本數(shù)據(jù)轉(zhuǎn)換工具”. |
在默認(rèn)情況下,Samba 對(duì)新的客戶端(Windows NT, 200x, XP)使用 Unicode,但對(duì)老的客戶端(DOS 和 Windows 9x/Me)使用 CP850.可以在 "/etc/samba/smb.conf" 文件里面,使用"dos charset" 來改變老客戶端的這個(gè)默認(rèn)編碼。比如說,CP932 表示為日語。
8.1.4. 本地化信息和翻譯文檔
在 Debian 系統(tǒng)中顯示的許多文檔和文本信息有翻譯存在,比如錯(cuò)誤信息、標(biāo)準(zhǔn)程序輸出、菜單和手冊(cè)頁。GNU gettext(1) 命令工具鏈?zhǔn)谴蟛糠址g活動(dòng)的后端工具。
aptitude(8) 里,"Tasks" → "Localization" 提供一個(gè)有用的二進(jìn)制包擴(kuò)展列表, 給應(yīng)用程序增加本地化信息和提供翻譯文檔。
舉個(gè)例子,你可以安裝 manpages-LANG 包來獲得本地化 man 手冊(cè)頁信息。從 "/usr/share/man/it/" 來讀取 programname 意大利語的 man 手冊(cè)頁 ,執(zhí)行下面的操作。
LANG=it_IT.UTF-8 man programname
通過 $LANGUAGE 環(huán)境變量,GNU gettext 能夠適應(yīng)翻譯語言的優(yōu)先級(jí)列表。例如:
$ export LANGUAGE="pt:pt_BR:es:it:fr"
獲取更多信息,參見 info gettext ,閱讀 "The LANGUAGE variable" 章節(jié)。
8.1.5. 語言環(huán)境的影響
sort(1) 的字符排序,受 語言環(huán)境的影響. 西班牙語和英語語言環(huán)境排序是不一樣的。
ls(1) 的日期格式受語言環(huán)境影響. "LANG=C ls -l" 和 "LANG=en_US.UTF-8" 的日期格式是不一樣的(參見 第 9.3.4 節(jié) “定制時(shí)間和日期的顯示”).
不同語言環(huán)境的數(shù)字標(biāo)點(diǎn)不一樣.比如說,英語語言環(huán)境中, 一千點(diǎn)一顯示為 "1,000.1",而在德語語言環(huán)境中,它顯示為 "1.000,1". 你可以在電子表格程序里面看到這個(gè)不同。
"$LANG" 環(huán)境變量的每一個(gè)細(xì)節(jié)特征能夠通過設(shè)置 "$LC_*" 變量來覆蓋。這些環(huán)境變量又能夠通過設(shè)置 $LC_ALL"變量而被再次覆蓋。細(xì)節(jié)參見 locale(7) man 手冊(cè)頁。除非你有強(qiáng)烈的理由創(chuàng)建復(fù)雜的配置,請(qǐng)遠(yuǎn)離他們并只使用 "$LANG" 變量來設(shè)置一個(gè) UTF-8 語言環(huán)境。
8.2. 鍵盤輸入
8.2.1. Linux 控制臺(tái)和 X 窗口的鍵盤輸入
Debian 系統(tǒng)可以使用 keyboard-configuration 和 console-setup 軟件包配置多個(gè)國際化鍵盤布局。
# dpkg-reconfigure keyboard-configuration # dpkg-reconfigure console-setup
對(duì)于 Linux 控制臺(tái)和 X 窗口系統(tǒng),這將更新在 "/etc/default/keyboard" 和 "/etc/default/console-setup" 里的配置參數(shù)。這個(gè)也會(huì)配置 Linux 控制臺(tái)字體。許多非 ASCII 字符,包括許多歐洲語言使用的重音字符,可以使用 死鍵、AltGr 鍵 和 組合鍵 來輸入它們。
8.2.2. Wayland 鍵盤輸入
Wayland 桌面系統(tǒng)上的 GNOME, 第 8.2.1 節(jié) “Linux 控制臺(tái)和 X 窗口的鍵盤輸入” 不支持非英語的歐洲語言。IBus 不僅支持亞洲語言,也支持歐洲語言。GNOME 桌面環(huán)境的軟件包依賴關(guān)系通過"gnome-shell"推薦"ibus" 。"ibus" 的代碼已經(jīng)更新集成 setxkbmap 和 XKB 選項(xiàng)功能。對(duì)多語言鍵盤輸入,你需要從 "GNOME Settings" 或 "GNOME Tweaks" 配置 ibus。
| 注意 | |
|---|---|
|
如果 ibus 激活,即使在基于傳統(tǒng)的 X 的桌面環(huán)境下,通過 |
8.2.3. IBus 支持的輸入法
因 GNOME 桌面環(huán)境通過"gnome-shell" 推薦"ibus","ibus"對(duì)于輸入法來說,是一個(gè)好的選擇。
輸入多種語言到應(yīng)用程序的處理流程如下:
Keyboard Application
| ^
| |
+-> Linux kernel -> Input method (ibus) -> Gtk, Qt, X, Wayland
+-- Engine--+
下面是 IBus 和它的引擎軟件包列表。
表 8.1. IBus 和它的引擎軟件包列表
| 軟件包 | 流行度 | 大小 | 支持的語言環(huán)境 |
|---|---|---|---|
| ibus | V:142, I:185 | 1598 | 使用 dbus 的輸入方式框架 |
| ibus-mozc | V:1, I:3 | 1008 | 日文 |
| ibus-anthy | V:0, I:1 | 8825 | 同上 |
| ibus-kkc | V:0, I:0 | 214 | 同上 |
| ibus-skk | V:0, I:0 | 244 | 同上 |
| ibus-libpinyin | V:0, I:2 | 2524 | 中文(zh_CN) |
| ibus-chewing | V:0, I:0 | 422 | 中文 (zh_TW) |
| ibus-hangul | V:0, I:2 | 288 | 韓文 |
| ibus-table | V:0, I:1 | 2009 | IBus 表引擎 |
| ibus-table-thai | I:0 | 47 | 泰文 |
| ibus-unikey | V:0, I:0 | 318 | 越南語 |
| ibus-m17n | V:0, I:1 | 207 | 多語言:印度語、阿拉伯語和其它 |
| 注意 | |
|---|---|
|
對(duì)于中文," |
8.2.4. 一個(gè)日語的例子
我發(fā)現(xiàn)在英語環(huán)境("en_US.UTF-8")下啟動(dòng)日文輸入法非常有用. 下面是在 Wayland 上的 GNOME下使用 IBus 的做法:
-
安裝日文輸入法軟件包
ibus-mozc(或ibus-anthy),以及im-config等推薦的軟件包。 -
選擇 "Settings" → "Keyboard" → "Input Sources" → 在"Input Sources"中單擊 "
+" → "Japanese" → "Japanese mozc (or anthy)", 然后單擊"Add"。如果它沒有被激活。 -
你可以選擇許多輸入源。
-
重新登錄用戶賬戶。
-
右鍵單擊 GUI 工具條圖標(biāo),設(shè)置每一個(gè)輸入源。
-
使用 SUPER-SPACE 在安裝的輸入法之間進(jìn)行切換. (SUPER 鍵通常是 Windows 鍵.)
| 提示 | |
|---|---|
|
如果你希望在日本物理鍵盤(shift- |
-
im-config(8) 的用戶界面菜單入口是 "Input method"。 -
此外,從用戶的 shell 來執(zhí)行 "
im-config" 。 -
如果命令從 root 賬戶或 非 root 賬號(hào)執(zhí)行,
im-config(8) 表現(xiàn)會(huì)有所不同。 -
im-config(8) 讓最佳的輸入法作為系統(tǒng)默認(rèn)而不需要用戶干預(yù)。
8.3. 顯示輸出
Linux 控制臺(tái)只能顯示有限的字符。(你需要使用特殊的終端程序,例如 jfbterm(1),從而在非 GUI 控制臺(tái)中顯示非歐洲語言。)
只要需要的字體安裝并被啟用,GUI(圖形用戶界面)環(huán)境(第 7 章 GUI(圖形用戶界面)系統(tǒng))能夠顯示任意 UTF-8 字符。(原始字體數(shù)據(jù)的編碼會(huì)被處理,并對(duì)用戶來說是透明的。)
8.4. 東亞環(huán)境下寬度有歧義的字符
在東亞語言環(huán)境下,方框繪制、希臘字符和西里爾字符可能會(huì)顯示得比你預(yù)期的樣子更寬,這樣會(huì)導(dǎo)致終端輸出排列不再整齊(參見 Unicode 標(biāo)準(zhǔn)附錄 #11)。
您可以繞過這個(gè)問題:
-
gnome-terminal:首選項(xiàng) → 配置文件 → 配置名 → 兼容性 → 寬度有歧義的字符 → 窄 -
ncurses:設(shè)置環(huán)境變量export NCURSES_NO_UTF8_ACS=0。
文章名稱:【Debian參考手冊(cè)】第?8?章?國際化和本地化
文章路徑:http://fisionsoft.com.cn/article/dhdeeii.html


咨詢
建站咨詢
