久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Debian配置語(yǔ)言環(huán)境

2024-01-16 266

Debian系統(tǒng)中,配置語(yǔ)言環(huán)境是實(shí)現(xiàn)程序國(guó)際化行為的關(guān)鍵步驟,主要通過(guò)設(shè)置環(huán)境變量 “$LANG” 來(lái)實(shí)現(xiàn)?,F(xiàn)代的GNOME和KDE等軟件都是多語(yǔ)言的,它們通過(guò)處理UTF-8數(shù)據(jù)來(lái)實(shí)現(xiàn)國(guó)際化,并通過(guò)gettext(1)架構(gòu)提供翻譯信息來(lái)本地化。

程序支持國(guó)際化的行為,通過(guò)配置環(huán)境變量 $LANG 來(lái)支持本地化,同時(shí)依賴 libc 庫(kù)提供的特性,并要求安裝 locales 或 locales-all 軟件包。這些軟件包提供了本地化所需的語(yǔ)言環(huán)境、字符編碼等方面的支持。

對(duì)于現(xiàn)代軟件如 GNOME 和 KDE,它們通常處理 UTF-8 編碼的數(shù)據(jù)以支持國(guó)際化,并通過(guò) gettext(1) 架構(gòu)提供翻譯信息以進(jìn)行本地化。翻譯信息可以由獨(dú)立的本地化軟件包來(lái)提供。

在 Debian 桌面 GUI 系統(tǒng)中,可以通過(guò) GUI 對(duì)話框設(shè)置語(yǔ)言環(huán)境為 “LANG=xx_YY.UTF-8″,其中 xx 是 ISO 639 語(yǔ)言代碼,YY 是 ISO 3166 國(guó)家地區(qū)代碼。這些值會(huì)影響程序的行為,從而實(shí)現(xiàn)本地化支持。

一、語(yǔ)言環(huán)境的基本原理

最簡(jiǎn)單的文本數(shù)據(jù)表達(dá)是 ASCII,它對(duì)英語(yǔ)是足夠的,少于 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)被用來(lái)支持多語(yǔ)言。Unicode 字符集可以用 21 位碼點(diǎn)范圍來(lái)顯示幾乎所有人類已知的字符(例如,十六進(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 語(yǔ)言環(huán)境不會(huì)有任何丟失。

在 UTF-8 語(yǔ)言環(huán)境下兼容的應(yīng)用程序,可以顯示和編輯外語(yǔ)文本數(shù)據(jù),在所要求的字體和輸入法安裝和啟用后。例如在”LANG=fr_FR.UTF-8″語(yǔ)言環(huán)境下,gedit(1) (GNOME 桌面的文本編輯器) 能夠顯示和編輯中文字符文本數(shù)據(jù),而顯示的菜單是法語(yǔ)。

新標(biāo)準(zhǔn)的 “en_US.UTF-8″和老標(biāo)準(zhǔn)的”C”/”POSIX”語(yǔ)言環(huán)境都使用標(biāo)準(zhǔn)的 US 英文消息,它們?cè)谂判虻确矫嬗屑?xì)微的不同。在維護(hù)老的”C”本地行為時(shí),如果不僅想處理 ASCII 字符,同時(shí)還想優(yōu)雅的處理 UTF-8 編碼的字符,在 Debian 上使用非標(biāo)準(zhǔn)的 “C.UTF-8″語(yǔ)言環(huán)境。

一些程序在支持 I8N 后會(huì)消耗更多的內(nèi)存。這是因?yàn)樗鼈優(yōu)榱怂俣葍?yōu)化,而在內(nèi)部使用 UTF-32(UCS4) 來(lái)支持 Unicode,并且每個(gè)獨(dú)立于語(yǔ)言環(huán)境所選的 ASCII 字符數(shù)據(jù)都會(huì)消耗 4 個(gè)字節(jié)。再一次地,使用 UTF-8 語(yǔ)言環(huán)境并不會(huì)使損失什么。

二、語(yǔ)言環(huán)境的重新配置

為了讓系統(tǒng)訪問(wèn)某一語(yǔ)言環(huán)境,語(yǔ)言環(huán)境數(shù)據(jù)必須從語(yǔ)言環(huán)境數(shù)據(jù)庫(kù)中編譯。locales 軟件包 沒(méi)有 包含預(yù)先編譯的語(yǔ)言環(huán)境數(shù)據(jù)。需要按下面的方法配置:

# dpkg-reconfigure locales

該過(guò)程包含 2 個(gè)步驟。

1、選擇所有需要的語(yǔ)言環(huán)境數(shù)據(jù)編譯為二進(jìn)制形式。(請(qǐng)確認(rèn)至少包含一個(gè) UTF-8 語(yǔ)言環(huán)境 )

2、通過(guò)創(chuàng)建 “/etc/default/locale” 來(lái)設(shè)置系統(tǒng)默認(rèn)的語(yǔ)言環(huán)境值給 PAM 使用。

設(shè)置在 “/etc/default/locale” 里的系統(tǒng)范圍的默認(rèn)語(yǔ)言環(huán)境,可以被 GUI(圖形用戶界面)應(yīng)用程序的 GUI 配置覆蓋。

注意:所使用的確切傳統(tǒng)編碼系統(tǒng)可以通過(guò) “/usr/share/i18n/SUPPORTED” 來(lái)確認(rèn)。因此, “LANG=en_US” 是 “LANG=en_US.ISO-8859-1″。

locales-all 軟件包有所有預(yù)編譯的語(yǔ)言環(huán)境數(shù)據(jù),但是不創(chuàng)建”/etc/default/locale”,可能還需要安裝 locales 軟件包。

一些 Debian 系發(fā)行版的 locales 軟件包,包含有所有語(yǔ)言環(huán)境的預(yù)先編譯好的語(yǔ)言環(huán)境數(shù)據(jù)。為了模擬這樣的系統(tǒng)環(huán)境,需要同時(shí)在 Debian 安裝 locales 和 locales-all 軟件包。

三、文件名編碼

對(duì)于跨平臺(tái)的數(shù)據(jù)交換,需要使用特殊的編碼掛載文件系統(tǒng).舉個(gè)例子,不使用選項(xiàng)時(shí),mount(8) 假設(shè) vfat 文件系統(tǒng) 使用 CP437. 需要給文件名提供明確的掛載選項(xiàng)來(lái)使用UTF-8 或 CP932.

在 GNOME 這類的現(xiàn)代桌面環(huán)境下,當(dāng)自動(dòng)掛載一個(gè)熱拔插 U 盤(pán)時(shí),可以提供這樣的掛載選項(xiàng)。右擊桌面上的圖標(biāo),點(diǎn)擊 “Drive” , “Setting”, 輸入 “utf8” 到 “Mount options:”. 當(dāng)這個(gè) U 盤(pán)下次掛載時(shí),UTF-8 就可以了。

如果在升級(jí)一個(gè)系統(tǒng),或者從老的非 UTF-8 系統(tǒng)遷移磁盤(pán),非 ASCII 字符的文件名也許是使用老舊的 ISO-8859-1 或 eucJP 來(lái)編碼. 請(qǐng)尋求文本轉(zhuǎn)換工具把他們轉(zhuǎn)換到 UTF-8.

在默認(rèn)情況下,Samba 對(duì)新的客戶端(Windows NT, 200x, XP)使用 Unicode,但對(duì)老的客戶端(DOS 和 Windows 9x/Me)使用 CP850.可以在 “/etc/samba/smb.conf” 文件里面,使用”dos charset” 來(lái)改變老客戶端的這個(gè)默認(rèn)編碼。比如說(shuō),CP932 表示為日語(yǔ)。

四、本地化信息和翻譯文檔

在 Debian 系統(tǒng)中顯示的許多文檔和文本信息有翻譯存在,比如錯(cuò)誤信息、標(biāo)準(zhǔn)程序輸出、菜單和手冊(cè)頁(yè)。GNU gettext(1) 命令工具鏈?zhǔn)谴蟛糠址g活動(dòng)的后端工具。

舉個(gè)例子,可以安裝 manpages-LANG 包來(lái)獲得本地化 man 手冊(cè)頁(yè)信息。從 “/usr/share/man/it/” 來(lái)讀取 programname 意大利語(yǔ)的 man 手冊(cè)頁(yè) ,執(zhí)行下面的操作。

LANG=it_IT.UTF-8 man programname

通過(guò) $LANGUAGE 環(huán)境變量,GNU gettext 能夠適應(yīng)翻譯語(yǔ)言的優(yōu)先級(jí)列表。例如:

$ export LANGUAGE="pt:pt_BR:es:it:fr"

五、語(yǔ)言環(huán)境的影響

使用 sort(1) 和 ls(1) 時(shí),字符的排序順序受本地語(yǔ)言的影響。導(dǎo)出 LANG=en_US.UTF-8 會(huì)按字典 A->a->B->b…->Z->z 的順序排序,而導(dǎo)出 LANG=C.UTF-8 會(huì)按 ASCII 二進(jìn)制 A->B->…->Z->a->b…的順序排序。

ls(1) 的日期格式受 locale 影響 ;

date(1) 的日期格式受本地語(yǔ)言影響。例如

$ unset LC_ALL
$ LANG=en_US.UTF-8 date
Thu Dec 24 08:30:00 PM JST 2023
$ LANG=en_GB.UTF-8 date
Thu 24 Dec 20:30:10 JST 2023
$ LANG=es_ES.UTF-8 date
jue 24 dic 2023 20:30:20 JST
$ LC_TIME=en_DK.UTF-8 date
2023-12-24T20:30:30 JST

不同語(yǔ)言環(huán)境下數(shù)字標(biāo)點(diǎn)的顯示方式是不同的。在英語(yǔ)語(yǔ)言環(huán)境中,一千點(diǎn)一會(huì)顯示為 “1,000.1”,而在德語(yǔ)語(yǔ)言環(huán)境中,它會(huì)顯示為 “1.000,1”。這種差異在電子表格等程序中尤其明顯。

除了 “LANG” 環(huán)境變量,還可以通過(guò)設(shè)置 “LANG”環(huán)境變量,還可以通過(guò)設(shè)置”LC_*” 變量來(lái)覆蓋每個(gè)細(xì)節(jié)特征。而 “LC_ALL” 變量則可以進(jìn)一步覆蓋所有其他相關(guān)變量。然而,除非有強(qiáng)烈的理由需要?jiǎng)?chuàng)建復(fù)雜的配置,否則建議避免使用這些變量,并只使用 “LC
A
?
LL”變量則可以進(jìn)一步覆蓋所有其他相關(guān)變量。然而,除非有強(qiáng)烈的理由需要?jiǎng)?chuàng)建復(fù)雜的配置,否則建議避免使用這些變量,并只使用”LANG” 變量來(lái)設(shè)置一個(gè)統(tǒng)一的 UTF-8 語(yǔ)言環(huán)境。

這樣做的好處是簡(jiǎn)化配置并確保整個(gè)系統(tǒng)都采用一致的語(yǔ)言環(huán)境,避免不必要的復(fù)雜性和混亂。同時(shí),保持統(tǒng)一的 UTF-8 語(yǔ)言環(huán)境也有助于確保文字、字符編碼和本地化的正確處理。

  • 廣告合作

  • QQ群號(hào):4114653

溫馨提示:
1、本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。郵箱:2942802716#qq.com(#改為@)。 2、本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)裁,轉(zhuǎn)載請(qǐng)注明出處“站長(zhǎng)百科”和原文地址。