Warung Bebas

Tuesday, April 27, 2010

命令提示字元介面語言一鍵轉換——Englishize Cmd

(Read in English)




englishize-cmd-1-result
「雙語的命令提示字元:上為應用 Englishize Cmd 之後(變成英文界面),下為恢復後(至原來的語言)。」



[2012-04-08] 更新:1.4a 版推出。修正了 "_lang_codes.txt"。自 v1.4 開始支持更多系統語言。
(如果你用的語言不受支持,請告知)



功能一覽





  1. 在英文和中文(或其他語言)間切換視窗指令介面


  2. 方便偏好英語介面的視窗系統管理員


  3. 無需登出;設定後即時生效。


  4. 包括還原工具。設定和回復都只是一按那麼簡單。


  5. 字元相容性比改變 DOS codepage 的方式更佳。


  6. 支援大部份語言和程式。用者可隨意增減。


  7. 需要系統管理員權限。它會自動詢問是否提升權限。(經網絡除外)


  8. 支援 Windows Vista/7 或以後。





為何需要





englishize-cmd-2-shortcut
「437 = 英文代碼」



最近有人在討論區問如何在中文 Windows 以英語顯示內置的命令列工具,因為對一些專業的系統管理員來說,命令列介面還是英文好用。人們分享各種方式,如改變 DOS codepage;在運行命令前輸入「chcp 437」 (437 = 英文代碼)。或者,創建一個捷徑指向 cmd.exe 和將其屬性內的「當前內碼表」設定設置為 437。




不過這兩種方法會令中文字元不能顯示(變為問號 ????)。另外前者每次都要輸入「chcp 437」(儘管可以在「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\AutoRun」註冊表項內設定成自動這樣做),而後者則只限用於捷徑。為解決此問題,以下介紹的作法使用另一種原理。




對於命令列程式來說,中文或其他非英語版本的 Windows Vista 和 7 其實跟來就有英語和一種非英語的 MUI(多語言使用者介面),例如中文台灣(zh-TW)。這意味著如果我們不喜歡被本地化成中文的命令列介面,或者會有某種簡單作法能將其轉為英語而無需在區域選項(Regional Options)內切換然後重新登入。這種作法就算不是 Ultimate/Enterprise 版本也應沒關係。




englishize-cmd-3-ipconfig-2
「轉換字元的方法會令中文字變成問號。」




原理



經過 Sysinternals Process Monitor 進程監視器的調查,我注意到,每當 Windows 無法在 zh-TW 目錄下找到相應的 .exe.mui 檔案,它就會自動使用 en-US 目錄下的 .exe.mui 檔案。所以一個想法來:為什麼不重新命名(刪除都可,但不建議)zh-TW 下的 .exe.mui,以使到它自動回落,使用 en-US 下的 MUI?現在我可以證實這技巧是可行的,只是過程殊不簡單 -- 決定哪些系統檔可被重新命名、取消保護這些檔(因為它們都受 WRP 資源保護)、重新命名每一個命令列程式等等。於是對 Englishize Cmd 的需求來了。Englishize Cmd 是一個簡單的可自訂程式(批次處理指令檔)用以自動化這個繁厭的過程,方便以後在兩種語言間互相切換。




englishize-cmd-4-startup
「上:Englishize.bat;下:Restore.bat」


說明



「Englishize Cmd」帶有 4 個檔案




  1. 「Englishize.bat」將命令列工具從非英語變成英語。



  2. 「Restore.bat」恢復一切,回到原來的語言。



  3. englishize-cmd-5-docs
    「左:_files_to_process.txt;右:_lang_codes.txt。一些檔案並不存在。」



  4. 「_lang_codes.txt」是個可修改的列表,其中包含所有非英語語言的代碼。它包括大多數語言(如中、法、俄),但萬一你的語言不存在,把它添加然後 Englishize Cmd 便可支援你的系統。


  5. 「_files_to_process.txt」是個可修改的檔案名列表,其中包含所有會被轉換 MUI 的命令列程式。所有 Windows Vista 和 7 的命令列程式預設都已包括(實際上它包含更多沒有的命令,但這也沒關係,因為對不存在的命令它是起不了任何作用的。)如果不希望某些命令轉成英文,運行「Englishize.bat」之前就要將他們從這個名單中刪除。此外,雖然這份清單只包括命令列程式,你也可以添加 GUI(圖形化使用者介面)程式,例如把小畫家(mspaint.exe)加到「_files_to_process.txt」。這裡有一個問題,中文 Windows 僅得命令列程式是同時附帶英語和中文的 MUI,GUI 程式則預設只有中文,所以 en-US 下的 mspaint.exe.mui 預設是不存在的。直到用戶安裝英文 MUI,通過 Windows Update 或 Vistalizator(對於非-Ultimate/Enterprise Windows 用戶),GUI 程式方可被支援。






englishize-cmd-6-during-process-2
「有趣的是,在運行 Englishize.bat 時有一刻是會同時顯示兩種語言。」



Englishize Cmd 影片示範





Englishize Cmd 在設計時考慮到安全;為了避免造成系統問題,它不容許在 en-US 目錄找不到對應 MUI 時處理那個檔案。




建議



你有任何建議或臭蟲要報告嗎?請於下面回覆。




版本歷程 / 下載

















































版本 日期 更新內容 MD5
1.4a 20120408修正了上一版的 "_lang_codes.txt"。不應加上 en-XX 語言否則會連英文都會被停用。6793d377acd497643a9c762d3fed6c81
1.4 20120407改良了 "_lang_codes.txt"。現在應該支持所有系統語言。(如果你用的語言不受支持,請告知)dc458d3e02d72956a61021bb0d90c2ff
1.3 20100428增加提升權限詢問、視窗版本檢查2312bb99d93915a7645237dbb1de2191
1.2 20100420改善讀我檔案和一些程式碼b25aa93e43577b3209f4aa57d9966e60
1.1 20100416增加系統管理員身份檢查d4082b73326963ecf17f4801106bc371
1.0
20100401首個公開發行d8f0e80c6c6fc9f03629aab911f102ee




下載最新版 Englishize Cmd [或這裡]




歡迎用以下方式儲存或分享本文:

















Share

















0 comments em “命令提示字元介面語言一鍵轉換——Englishize Cmd”

Post a Comment

 

wander-sick Copyright © 2012 Fast Loading -- Powered by Blogger