2011年10月17日 星期一

Windows CE 多語系切換

這裡要講的是一個以上非英語系的切換. 首先感謝 http://johnny0627.blogspot.com/2011/02/wince.html 這篇裡講到如何實作英語與法語間的切換實作. 不過在下用的 BSP 上有一個問題是, 在 rebuild driver 時會順路把這些 MUI 的 .exe 跟 .dll 清掉, 為了解決這個問題, 我把方法重寫一下. 基本上根本作法跟這篇寫的一樣, 只是有幾個重點:

1.build 時設定非英語語系當主要語系, 否則 "user interface language" 裡不給你選.

2.這裡假設我們要簡中, 英文, 日文這三個語系, 就在 build -> open release directory in build window 裡下指令建立 MUI 所需的檔案: createmui 0409 0411 0804. (1.前面沒有 0x, MSDN 寫說前面要接 0x 如 0x409, 這樣反而會找不到檔案. 2.中間是空格, 有人說是逗點 ',' 我試過後者似乎也可以用) 建立一大票 .exe 跟 .dll, 還有 multiui.bib

3.如引用文章所說, 把 multiui.bib 中 k.core 開頭的敘述都拿掉.

4.參考 BSP 裡擺檔案的路徑與擺法, 如我的 BSP 擺 \windows 是 "$(_FLATRELEASEDIR)\", 那麼就把 bulti.bib 裡的路徑加個... 例如說是 "_mui", 改成 "$(_FLATRELEASEDIR)\_mui\" 這樣.

5.把剛剛建好, 擺在 release 目錄裡的那群 .exe .dll (目錄為 mui) copy 到
(_$platfrom)\FILES\_mui (此時後面的 _mui 就是 4. 講的例子) 裡.

6.這時再修改 (_$platfrom)\FILES\platfrom.bib 中的檔案清單, 把 multiui.bib 中已修改過路徑的內容貼到尾端.

這時整個 BSP 不管怎麼建, 這些檔案都會在, 而且不會因為重 build 就消失, 還要再回 console 裡再下一次指令.

如果沒有成功的話, 可以檢查看看檔案有沒有被綁進去. 首先隨便開一個 folder 如 my document, 選到 "view -> option" 這裡, 如圖:

可以看到這三個item

把勾選全拿掉後

在 windows 目錄下查看是不是有 .0409 這類的檔案:

檔案有確實綁進去的話, 控制臺底下的語言控制選項才會出現.

沒有留言: