關於系統語系和中文輸入法的怪問題 ~~~ [論壇 - Ubuntu 與中文]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

« 1 (2) 3 4 »


回覆: 關於系統語系和中文輸入法的怪問題 ~~~

註冊日期:
2009/12/6 10:32
所屬群組:
已註冊使用者
等級: 71
HP : 1404 / 1756
MP : 4456 / 48105
EXP: 24
離線
Attn: Mason95

如果 你安裝後 沒改變 什麼 locale 預設值 
先執行這個指令 然後 重開機 試試看:

1. 先執行 locale 把目前的設定值 備存起來
sudo locale # 把內容 存起來

2. sudo update-locale LANG=POSIX LANGUAGE=zh_TW:en LC_CTYPE=zh_TW.UTF-8 LC_MESSAGES=zh_TW.UTF-8

3. sudo reboot

4. 重開機後
sudo locale # 把內容 再存起來
看看上面的更新項目 都改變了沒

5. 看看 那一項 希望 還沒實現
把還沒實現的貼上來

2012/2/11 19:17
應用擴展 工具箱
回覆: 關於系統語系和中文輸入法的怪問題 ~~~
會員一級
註冊日期:
2012/1/24 22:53
所屬群組:
已註冊使用者
等級: 2
HP : 0 / 46
MP : 5 / 985
EXP: 86
離線
我以正體中文安裝完後,因為某些需求想要將面板上的選單及所有應用程式的功能表與說明改成英文顯示,所以就到系統設定中的語言支援,將英文從選單中拉到最上層,其他設定並無更動 (我也不會 ), 結果導致無法切換中英文模式, 在輸入法切換選單中仍然可以選擇倉頡或 Bopomofo, 但完全無法輸入中文. (我用的是 iBus)
--------------------------------------------------------
1. 先執行 locale 把目前的設定值 備存起來
sudo locale # 把內容 存起來
--------------------------------------------------------
以下為執行locale 後的結果:

LANG=zh_TW.UTF-8
LANGUAGE=en
LC_CTYPE="zh_TW.UTF-8"
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_COLLATE="zh_TW.UTF-8"
LC_MONETARY="zh_TW.UTF-8"
LC_MESSAGES="zh_TW.UTF-8"
LC_PAPER="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"
LC_ALL=
--------------------------------------------------------
4. 重開機後
sudo locale # 把內容 再存起來
--------------------------------------------------------
以下為執行 sudo update-locale LANG=POSIX..... 之後, 再執行sudo locale後的結果:

LANG=C
LANGUAGE=en
LC_CTYPE=zh_TW.UTF-8
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES=zh_TW.UTF-8
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

目前選單顯示仍為英文, 但還是無法輸入中文

P.S. 順便問個題外話, 如何在回覆的內容中插入圖片?? (希望這個問題不會太蠢 )

2012/2/12 17:28
應用擴展 工具箱
回覆: 關於系統語系和中文輸入法的怪問題 ~~~

註冊日期:
2009/12/6 10:32
所屬群組:
已註冊使用者
等級: 71
HP : 1404 / 1756
MP : 4456 / 48105
EXP: 24
離線
目前選單顯示仍為英文, 但還是無法輸入中文

從 終端機
sudo ibus-setup

ibus-setup

註: 重新設定 輸入方法
兩者結果不大相同
你試試看那個適合

可以重新增加 bopomofo 輸入法

註: 如果沒有出現 這個 ibus 的設定畫面 請你再貼文
也許 這個 需要改改
LANGUAGE=en
順便問個題外話, 如何在回覆的內容中插入圖片??

參考下面這一篇
貼圖在ubuntu-tw

2012/2/12 17:37
應用擴展 工具箱
回覆: 關於系統語系和中文輸入法的怪問題 ~~~
會員二級
註冊日期:
2007/12/25 18:51
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 85
MP : 10 / 2819
EXP: 40
離線
我是直接灌英文版
之後移除ibus裝gcin
gcin裝完後會在終端機裡貼

im-switch -z all_ALL -s gcin

這樣就可以正常輸入了
也許這個方法會有用

2012/2/13 20:11
應用擴展 工具箱
回覆: 關於系統語系和中文輸入法的怪問題 ~~~
版主
註冊日期:
2008/5/13 23:12
來自 Ciudad de Kaohsiung, Taiwán
所屬群組:
網站管理員
已註冊使用者
等級: 15
HP : 0 / 369
MP : 94 / 11798
EXP: 76
離線
實在是好煩人啊,一個這麼單純的問題,還得搞這麼久還是搞不定,我已經把 /etc/environment 裡的內容全部清空了,而在 /etc/default/locale 中的內容如下:

LANG="en_US.UTF-8"
LANGUAGE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_CTYPE="zh_tw.UTF-8"
LC_COLLATE="en_US.UTF-8"

但是重新開機以後,執行 locale 指令的結果仍然是如此:

LANG=zh_TW.UTF-8
LANGUAGE=zh_TW:en
LC_CTYPE=zh_TW.UTF-8
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_COLLATE=zh_TW.UTF-8
LC_MONETARY="zh_TW.UTF-8"
LC_MESSAGES=zh_TW.UTF-8
LC_PAPER="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"
LC_ALL=

而我執行 sudo dpkg -l | grep language-pack-gnome 指令後的結果是如此:

ii language-pack-gnome-en 1:11.10+20120103 GNOME translation updates for language English
ii language-pack-gnome-en-base 1:11.10+20120103 GNOME translations for language English
ii language-pack-gnome-zh-hant 1:11.10+20111006 GNOME translation updates for language Traditional Chinese
ii language-pack-gnome-zh-hant-base 1:11.10+20111006 GNOME translations for language Traditional Chinese

實在是毫無頭緒到底是哪裡出問題啊!?!? 我是用 lightdm 作為啟動登入程式的。

2012/2/14 8:27
The owl of Minerva spreads its wings only with the falling of the dusk.

--- G.W.F. Hegel (1770 - 1831)
應用擴展 工具箱
回覆: 關於系統語系和中文輸入法的怪問題 ~~~

註冊日期:
2009/12/6 10:32
所屬群組:
已註冊使用者
等級: 71
HP : 1404 / 1756
MP : 4456 / 48105
EXP: 24
離線
Attn: Hapsburg

我已經把 /etc/environment 裡的內容全部清空了,而在 /etc/default/locale 中的內容如下:
LANG="en_US.UTF-8"
LANGUAGE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_CTYPE="zh_tw.UTF-8"
LC_COLLATE="en_US.UTF-8"

1. /etc/default/locale 是永久保存的 設定檔 (或者說 開機初始讀取設定檔)

2. 當你安裝這些 語言套件時 (無論是 安裝 ubuntu 時 就預裝 或 事後 再安裝)
這些 語言套件 都會透過執行 locale-gen 指令 去建立或改變 某些 設定檔
(所以 安裝的先後順序 就會影響到 locale 的設定值)

以下是我們常安裝的語言套件
sudo dpkg -l | grep language-pack
ii language-pack-en
ii language-pack-en-base
ii language-pack-kde-en
ii language-pack-kde-en-base
ii language-pack-kde-zh-hant
ii language-pack-kde-zh-hant-base
ii language-pack-zh-hant
ii language-pack-zh-hant-base


3. 當你安裝 桌面 (lightdm 或 gdm kdm xdm 等等) 另外還會產生 某些 桌面或視窗的 locale 設定檔

我執行 sudo dpkg -l | grep language-pack-gnome 指令後的結果是如此:
ii language-pack-gnome-en 1:11.10+20120103 GNOME translation updates for language English
ii language-pack-gnome-en-base 1:11.10+20120103 GNOME translations for language English
ii language-pack-gnome-zh-hant 1:11.10+20111006 GNOME translation updates for language Traditional Chinese
ii language-pack-gnome-zh-hant-base 1:11.10+20111006 GNOME translations for language Traditional Chinese

但你安裝 language-pack-gnome 一序列套件 的時候 就會產生 與 gnome 有關的 locale 設定檔

4. 當你安裝某些 程式套件時 另外還會 產生某些 程式進程的 locale 設定檔

5. 當你登入你的家目錄 還會去讀取 你的家目錄裏的 locale 設定檔

6. 開機過程 同一個 Locale 變數 LC_* 如 LC_MESSAGES 後面讀到的設定值 會去蓋掉 前面的設定值
但是重新開機以後,執行 locale 指令的結果仍然是如此:
LANG=zh_TW.UTF-8
LANGUAGE=zh_TW:en
LC_CTYPE=zh_TW.UTF-8
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_COLLATE=zh_TW.UTF-8
LC_MONETARY="zh_TW.UTF-8"
LC_MESSAGES=zh_TW.UTF-8
LC_PAPER="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"
LC_ALL=

7. 執行 locale 指令 (後面不加任何參數時) 得到的結果是
實作你開機的整個過程 最後得到的結果
所以它是動態的結果
和 /etc/default/locale 不一定相同
(/etc/default/locale 只是開機時 的初始值)

8. 上面的 locale 變數 實作時 有一個優先順序
LANGUAGE > LC_ALL > LC_* > LANG > POSIX :

9. 當 LANGUAGE 設爲 en 時 你後面設定 LC_* 任何 非英文語言 如 中文 zh 都是無效的設定

10. 當 LANGUAGE=zh_TW:en 表示 漢字(臺灣)優先於 en 你後面設定 LC_* 任何 中文 zh 都是優先於 en 只有找不到 中文 zh_TW 項目時 才採用 en 項目

以下的討論 基於 上面 LANGUAGE=zh_TW:en 的設定
10-1. 如果 LC_ALL="zh_TW.UTF-8" 則 無論其它所有的 LC_* 是什麼設定 都被改爲 zh_TW.UTF-8
10-2. 如果 LC_ALL= 某個 LC_單一變數 就被改爲 最近讀到的設定值
10-3. 如果 LC_ALL= 某個 LC_單一變數 都沒有最近讀到的設定值 (包含 /etc/default/locale ) 就會 以 LANG 的設定值 帶入
10-4. 如果 你在 /etc/default/locale
只設定 LANG=zh_TW.UTF-8 LANGUAGE=zh_TW:en 兩項
而且沒有其它 locale 設定檔 存在時
到最後 執行 locale 的結果
所有的 LC_* 都是 "zh_TW.UTF-8" (由 LANG 的值代入)
(但是 LC_ALL=)

11. 如果都沒有設定 就以 POSIX 爲設定值 而 POSIX 就呼叫 C 設定值

12. 希望 上面的說明 幫你解惑

13. 要正確 幫你設定 還需要知道 你還有那些 locale 設定檔 會在 開機或登入的過程 被讀入
這個部分 每個人 情況不一定一樣 所以 你要提供 你到底 還有哪些 locale 設定檔
如果 通通沒有 那就單純一些

14. 先讓你消化一下 下一篇 貼文 再來 幫你找 你到底 還有哪些 locale 設定檔
如果情況單純 我們就根據上面的理解 來幫你更改 locale 設定值

15. 以上綜合 最近看過的 locale 文章 得到的 印象

16. 如果有錯誤 歡迎網友指正

2012/2/14 10:05
應用擴展 工具箱
回覆: 關於系統語系和中文輸入法的怪問題 ~~~

註冊日期:
2009/12/6 10:32
所屬群組:
已註冊使用者
等級: 71
HP : 1404 / 1756
MP : 4456 / 48105
EXP: 24
離線
Attn: Hapsburg

把你的情況 要點記錄如下 如果錯誤 請你更正
#1
安裝 Ubuntu 11.10 的時候,是以正體中文安裝的,所以裏面所有功能介面都是中文的,要將其全部改成英文介面
然而仍然必須要繼續使用 Gcin 來輸入中文
#15
我是用 lightdm 作為啟動登入程式的。

我們按步就班來 讓你比較容易發現 問題在哪一個 locale 設定檔

1. sudo cat /etc/default/locale
把內容貼上來

2. sudo gedit /etc/default/locale
把內容 清空
儲存

3. sudo update-locale LANGUAGE=zh_TW:en LC_ALL= LC_CTYPE=zh_TW.UTF-8 LANG=POSIX
說明:
3-1. LANGUAGE=zh_TW:en # 因爲你還要用 gcin 輸入中文字 所以把 zh_TW 放在 en 前面
3-2. LC_CTYPE=zh_TW.UTF-8 # 因爲你還要用 gcin 輸入中文字
3-3. LC_ALL=, LANG=POSIX # 其它 LC_* 項目 都會變成 POSIX 實際上 就是 呼叫 C

4. sudo cat /etc/default/locale
把內容貼上來 # 這個表示 locale 的開機初始設定值

5. 重開機 登入 lightdm

6. sudo locale # 這個表示 實際有效的 locale 設定
把內容貼上來
並且跟 4. 的結果 比對一下

7. 等你貼上來的內容 再決定 下一步如何進行

2012/2/14 16:51
應用擴展 工具箱
回覆: 關於系統語系和中文輸入法的怪問題 ~~~
版主
註冊日期:
2008/5/13 23:12
來自 Ciudad de Kaohsiung, Taiwán
所屬群組:
網站管理員
已註冊使用者
等級: 15
HP : 0 / 369
MP : 94 / 11798
EXP: 76
離線
嗯,感謝熱心指點,沒想到一個語系設定還搞到這麼複雜 >_<


以下是 sudo cat /etc/default/locale 的結果:
LANG="en_US.UTF-8"
LANGUAGE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_CTYPE="zh_tw.UTF-8"
LC_COLLATE="en_US.UTF-8"


以下是 sudo update-locale LANGUAGE=zh_TW:en LC_ALL= LC_CTYPE=zh_TW.UTF-8 LANG=POSIX 的結果:
*** update-locale: Warning: LANGUAGE (zh_TW:en) is not compatible with LC_ALL (). Disabling it.


以下是 sudo cat /etc/default/locale 的結果:
LC_CTYPE=zh_TW.UTF-8
#LANGUAGE=zh_TW:en
LANG=POSIX
LC_ALL=


以下是 sudo locale 的結果:
LANG=zh_TW.UTF-8
LANGUAGE=zh_TW:en
LC_CTYPE=zh_TW.UTF-8
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_COLLATE=zh_TW.UTF-8
LC_MONETARY="zh_TW.UTF-8"
LC_MESSAGES=zh_TW.UTF-8
LC_PAPER="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"
LC_ALL=


另外請問一下,所謂的 POSIX 引用 C 設定值是什麼意思呢?它是指向哪一種語系啊?

2012/2/14 21:26
The owl of Minerva spreads its wings only with the falling of the dusk.

--- G.W.F. Hegel (1770 - 1831)
應用擴展 工具箱
回覆: 關於系統語系和中文輸入法的怪問題 ~~~

註冊日期:
2009/12/6 10:32
所屬群組:
已註冊使用者
等級: 71
HP : 1404 / 1756
MP : 4456 / 48105
EXP: 24
離線
沒想到一個語系設定還搞到這麼複雜

1. locale 確實是 動態的 複雜一點
說真的 接觸 locale 一段不算短的時間了
雖然最近 稍有概念 但是
還有不少地方 還在摸索

但是 如果只要讓你 "只可使由之 不可使知之"
只要在 你最後讀到的那個 locale 設定檔
寫一個 設定檔
可能一次就解決了 (問題就轉爲 哪個是最後讀到的 locale 設定檔)
但是 下次碰到另一個情況 你可能還是不會設定

想想 將來 如果 你的日本女朋友(如果有的話) 跟你共同使用 ubuntu
你該如何設定 locale

不過 如果你 偏好立刻解決問題 就好
我們 可以試試改變方向
sudo update-locale LANGUAGE=zh_TW:en LC_ALL= LC_CTYPE=zh_TW.UTF-8 LANG=POSIX

抱歉 我疏忽了 應該改爲
2. sudo update-locale LANGUAGE=zh_TW:en LC_ALL LC_CTYPE=zh_TW.UTF-8 LANG=POSIX
註: LC_ALL= 的 "=" 要拿掉

3. 然後再 一次
sudo cat /etc/default/locale

重開機
4. sudo locale
再跟 3. 比較看看

5. 你上次的 sudo locale 與 /etc/default/locale 不一樣
表示 你還有 其它 locale 設定檔 影響 sudo locale 的結果
與 sudo cat /etc/default/locale 不同

6. 以下 先請你確認一下 你有沒有 這些 locale 設定檔
6-1. sudo cat ~/.bashrc
6-2. sudo cat ~/.profile
6-3. sudo cat ~/.gnomerc
6-4. sudo cat ~/.xinitrc
6-5. sudo cat ~/.xsession
6-6. sudo cat ~/.bash_profile
6-7. sudo cat /etc/skel/.bashrc
6-8. sudo cat /etc/skel/.profile
6-9. sudo cat /etc/bash.bashrc
6-10. sudo cat /etc/profile
6-11. sudo cat /etc/environment
6-12. sudo cat /etc/X11/Xsession.d/55gonme-session_gnomerc
6-13. sudo cat /var/cache/lightdm/dmrc/你的username.dmrc # 這是 lightdm 登入設定檔
6-14. sudo cat /var/cache/gdm/你的username/dmrc # 這是 gdm 登入設定檔
6-15. sudo cat /var/lib/locales/supported.d/local

這些是可能的 locale 設定檔
只要 把有 LC_ 開頭 或 LANG 或 LANGUAGE 項目的 才 copy 貼上來
其它項目 不必 copy 貼上來

一個非正規的做法 就是把上面 6-1 到 6-15 這些 locale 設定檔 有 LC_ 開頭 或 LANG 或 LANGUAGE 項目的 前面 加上 # 就可以排除它們的影響

註:
1. 但不是一定有 該檔案 或 locale 設定項目 要看你安裝的套件而定
也不是全部名單 可能還有遺漏
2. 你在開機過程 有讀取的檔案 才會 蓋掉 前面的 locale 設定值
沒有讀取到的 locale 設定檔 就沒有影響
所謂的 POSIX 引用 C 設定值是什麼意思呢?它是指向哪一種語系啊?

請參閱
All systems provide a POSIX locale, also known as the C locale.
C localization functions

2012/2/14 22:47
應用擴展 工具箱
回覆: 關於系統語系和中文輸入法的怪問題 ~~~
會員一級
註冊日期:
2012/1/24 22:53
所屬群組:
已註冊使用者
等級: 2
HP : 0 / 46
MP : 5 / 985
EXP: 86
離線
好奇怪?!我的輸入法又能用了!locale 的設定和我最後一次貼上來的一樣,我也沒有再修改其他的設定,只是試著用鍵盤來切換輸入法(Ctrl+Space),居然就可以用了!不曉得有沒有人知道這是怎麼回事? 也許 HAPSBURG 大大可以試試看。感謝各位大大的熱心

2012/2/16 23:06
應用擴展 工具箱

« 1 (2) 3 4 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.