<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 第?20?章?國際化 **目錄** [](ch20.html#id3091130) [I18N 簡介](ch20s02.html) [locale 變量](ch20s02.html#id3090533) [locale 值](ch20s02.html#id3091286) [字符集](ch20s02.html#id3091389) [其它](ch20s02.html#id3091435) [設置 locale](ch20s03.html) [生成 locale](ch20s03.html#id3091569) [locale 策略](ch20s04.html) [中文圖形界面](ch20s04.html#id3091648) [英文界面+中文輸入](ch20s04.html#id3091700) [關于輸入法的設置](ch20s04.html#id3091717) ## I18N 簡介 習慣上,`internationalization`(國際化)簡寫為`I18N`,中間的數字為省略的字母個數。 在 Linux 系統中,通過定義一組環境變量來設置程序的語言環境,以實現對`I18N`的支持,這種機制稱為:`locale`(本地化) ### locale 變量 | | | | --- | --- | | LANG | 低優先級全局 locale 變量 | 如果下面的變量未賦值,默認使用此變量的值 | | LC_COLLATE | 比較和排序習慣 | 會影響目錄列表的分類顯示等 | | LC_CTYPE | 定義系統的字符處理特性 | 哪些字符能被視為字母、數字,等等;與中文輸入關系密切 | | LC_MESSAGES | 提示信息,錯誤信息, 狀態信息, 標題, 標簽, 按鈕和菜單等 | | LC_MONETARY | 定義貨幣單位和貨幣型數值的格式 | | LC_NUMERIC | 定義非貨幣型數值的格式 | 影響到千位分隔符和小數分隔符等 | | LC_TIME | 定義日期和時間的格式 | | LC_NAME | 姓名書寫方式 | | LC_ADDRESS | 地址書寫方式 | | LC_TELEPHONE | 電話號碼書寫方式 | | LC_MEASUREMENT | 度量衡表達方式 | | LC_PAPER | 定義默認的紙張尺寸 | | LC_IDENTIFICATION | 對 locale 自身包含信息的概述 | | LC_ALL | 高優先級全局 locale 變量 | 為此變量賦值會強行覆蓋上面變量的值,不推薦 | * 假如未設置以上變量,系統將采用 POSIX 作為 lcoale,也就是 C locale ### locale 值 `locale` 變量的值有三個要素:語言代碼 (Language Code)、 地域代碼 (Country Code) 和字符集(Encoding)[[35](ch20s02.html#ftn.id3091303)]: ``` 語言代碼[_地域代碼[.字符集]] ``` 例如: | 語言/國家代碼 | 描述 | | --- | --- | | en_US.ISO-8859-1 | 美國英語 | | en_US.UTF-8 | | zh_CN.UTF-8 | 簡體中文 | | zh_TW.UTF-8 | 繁體中文 | ### 字符集 眾所周知,計算機中的信息,是以數字形式表示的,字符也不例外。字符以數字編號的形式存儲,使用時,根據這個編號,在字符集中找到相應的字符 字符集是字符在系統內的編碼方式,也就是通常所說的內碼[[36](ch20s02.html#ftn.id3091405)]。不同的字符集有不同的編碼方式, 例如“碼”字,它的 GB2312編碼 為 426B;UTF-8編碼 為 E7A081 。如果錯誤的以 GB2312編碼 來檢索 E7A081,將會產生類似 “锘跨爜” 的亂碼 只要系統中安裝了中文字體,通過字符集的支持,便可以正常顯示中文,而無需設置 locale;locale 可以使操作界面顯示中文,并可以使用中文輸入等 ### 其它 另外還有一個本地化變量叫做 LINGUAS。它會影響到基于 gettext 的程序[[37](ch20s02.html#ftn.id3091444)];它還能決定某些特殊軟件包的本地化,比如kde-i18n和openoffice。這個變量的值為一組以空格分隔的語言代碼: ``` LINGUAS="zh en" ``` * * * > [[35](ch20s02.html#id3091303)] 中文 Windows 系統中使用的字符集為 `GB2132`,而 `UTF-8` 是大勢所趨,它能夠顯示比 GB2312 更多的字符 > [[36](ch20s02.html#id3091405)] 參見`/usr/share/i18n/charmaps`文件 > [[37](ch20s02.html#id3091444)] 通過編譯時安裝本地化文件的方式實現`I18N`,編譯時需要Native Language Support(NLS)支持 ## 設置 locale 設置 `locale` 其實就是設置環境變量。在 `/etc/environment`[[38](ch20s03.html#ftn.id3091511)]文件中設置全局環境變量: ``` LANG="zh_CN.UTF-8" ``` 在`~/.profile`或`~/.bashrc`中設置用戶環境變量: ``` export LANG="zh_CN.UTF-8" ``` 完成后可以使用**locale**命令檢驗 ### 生成 locale 如果你設置了一個不可用的 locale,請使用 localedef 生成該 locale ``` localedef -c -i en_US -f ISO-8859-15 en_US.ISO-8859-15 ``` 可能你在系統中只要用到一個或者兩個 locale。你可以在 `/etc/locale.gen` 中指定所需的的 locale。添加 locale 到 `/etc/locale.gen`: ``` en_GB ISO-8859-1 en_GB.UTF-8 UTF-8 de_DE ISO-8859-1 de_DE@euro ISO-8859-15 ``` 下一步是執行locale-gen。它會生成`/etc/locale.gen`文件中指定的所有 locale。 * * * > [[38](ch20s03.html#id3091511)] 在 gentoo 中使用專門的文件 `/etc/env.d/02locale` 設置 locale ## locale 策略 ### 中文圖形界面 由于 Linux 的控制臺不能方便的顯示中文,所以最實用的方案是“英文控制臺+中文圖形界面” 為了能夠正常處理中文,需要使用locale-gen生成中文 locale,在`/etc/locale.gen`文件中添加如下內容: ``` zh_CN.UTF-8 UTF-8 zh_CN.GB18030 GB18030 zh_CN.GBK GBK zh_CN GB2312 ``` 然后在 gdm 啟動菜單中選擇中文,或者寫入配置文件`~/.dmrc` ``` [Desktop] Session=openbox Language=zh_CN.UTF-8 ``` ### 英文界面+中文輸入 使用如下設定: ``` LANG="en_US.UTF-8" LC_CTYPE="zh_CN.UTF-8" ``` ### 關于輸入法的設置 在`~/.profile`或`~/.bashrc`中設置用戶環境變量: **例?20.1.?輸入法配置 `.profile`** ``` export XMODIFIERS="@im=fcitx" export GTK_IM_MODULE=xim export QT_IM_MODULE=xim fcitx& ``` > [![1](https://box.kancloud.cn/2015-10-12_561bcb76795ae.png)](ch20s04.html#i18n-im1) 使用fcitx輸入法 > [![2](https://box.kancloud.cn/2015-10-12_561bcb768596e.png)](ch20s04.html#i18n-im2) GTK2 程序輸入法引擎。fcitx 使用xim引擎 > [![3](https://box.kancloud.cn/2015-10-12_561bcb94ee26f.png)](ch20s04.html#i18n-im3) QT 輸入法引擎。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看