Microsoft AppLocale

Microsoft AppLocale(常簡稱為ApplocaleApploc)是微軟免費提供給Windows使用者的工具程式,可以在以UnicodeUTF-16)為基礎的Windows中執行非Unicode的應用程式,避免亂碼的問題。微軟強調,這個工具只是一個暫時性的解決方案,程式開發人員應以正規方式利用Microsoft Layer for Unicode來建立純正的Unicode應用程式。

Microsoft AppLocale運行於Windows 7

在AppLocale推出之前,要在Windows XP等以Unicode為基礎的系統平台上模擬執行非Unicode應用程式所需要的語言環境時,會透過「控制台」→「地區及語言選項」→「非Unicode程式的語言」來變更系統語言變數,以將應用程式中非Unicode的文字資料轉換成Unicode。但是這個方法在使用上會有限制:

  1. 只有系統管理員可以變更系統地區設定的值。
  2. 變更系統地區設定後必須重新啟動系統才能生效。
  3. 一次只能變更一種系統地區設定。

因此微軟設計了AppLocale這個工具程式來模擬對應的系統地區設定,以便在各種字碼頁與Unicode之間進行轉換。

AppLocale的設計是以Windows XP中所引進的最新應用程式相容性技術為基礎,因此AppLocale只能安裝在Windows XP及之後的作業系統上,例如Windows Server 2003。而Windows 9x系列因為非Unicode基礎的先天設計限制,所以註定不可能使用AppLocale。不過Windows XP前一版的Windows 2000因為也是以Unicode為基礎的系統平台,所以據說有駭客透過一些高明的技巧成功地讓AppLocale在Windows 2000上運行[1]

缺失與不便

AppLocale在使用上為人詬病的問題主要有三:

  1. 造成以Windows Installer封裝的安裝程式在執行時出現亂碼
  2. 透過AppLocale執行應用程式時總是會出現提示注意事項的對話視窗。
  3. 不能在Windows 2000運行。

第一個問題是AppLocale會在「Windows\AppPatch」這個路徑下生成一個叫做「AppLoc.tmp」的檔案,而這個檔案中所記錄的訊息會影響到Windows Installer。解決方法之一是將AppLoc.tmp的檔案內容清空並設為唯讀

不過頭兩個問題已有一個完善的非官方解決方案。網路代號為piaip的程式設計師林弘德對Microsoft AppLocale做了修改,並命名為「pAppLocale」(也常被稱為「piaip AppLocale」)重新發佈,免費提供給需要者下載。

注釋

  1. ^ 要規避掉對作業系統的檢查而在Windows 2000平臺安裝或直接從已安裝好的電腦複製過來並不困難,但是如此並無法正常運行。

現狀

2016年後,AppLocale已不再在微軟官方網站提供下載,原因不明。但用戶仍可在各種第三方渠道下載並使用。

外部連結