多語言支持



贊助商連結


琥珀
2007-05-15, 06:40 PM
原本是和戰零様討論的內容,不過覺得內容很有幫助,故張貼出來分享給大家。

7-Zip 的語言介面,可以正確顯示多少種語言?順便提供檔案 USP10.DLL 的版本號?


7-Zip 的語言介面,可以正確顯示多少種語言?順便提供檔案 USP10.DLL 的版本號?
就目前為止來說,發現大都可以正常顯示出來全部語言。
USP10.dll 版本號是1.0420.2600.2180,幾乎從XP SP2 RTM後沒有更改過。
http://img510.imageshack.us/img510/2907/7zunicodexj5.png

另外順便問琥珀另一個問題。
http://img299.imageshack.us/img299/4511/batlivemailtorl9.png
關於要如何讓CMD支授 URL 16進位的 %xx 字元呢?
發現利用bat呼叫幾乎 %x 的字元會被忽略掉。

雖然可以利用 & = ? 字元來替代,不過 Live HotMail利用這些 ASCII的字元的話會無法正確辨識到造成無法成功傳送郵件地址在新郵件上。
http://img299.imageshack.us/img299/731/livemailtotransferls3.png

自己正在尋求最新+最適合 200x 的 USP10.DLL 檔案。Vista 的 USP10.DLL 檔案,不適合 200x 系統,因為中文字會變小。

琥珀的意思是,利用 7-Zip 提供的語言清單,在 70 種語言當中,顯示正常的有多少?找了一些新版本的系統字型和 USP10.DLL 檔案,結果還是有一種語言不能顯示,變成方塊。

英文版的日文假名,預設是採用哪一種字型?看起來像是宋體。還是因為非 Unicode 程式的語言設置為中文中國?

start "" "http://www.google.com.tw/search?complete=1&hl=zh-TW&q=%E3%81%B2%E3%81%90%E3%82%89%E3%81%97%E3%83%87%E3%82%A4%E3%83%96%E3%83%AC%E3%82%A4%E3%82%AF&meta=&aq=t&oq=%E3%81%B2" 這樣是可以。


自己正在尋求最新+最適合 200x 的 USP10.DLL 檔案。Vista 的 USP10.DLL 檔案,不適合 200x 系統,因為中文字會變小。

琥珀的意思是,利用 7-Zip 提供的語言清單,在 70 種語言當中,顯示正常的有多少?找了一些新版本的系統字型和 USP10.DLL 檔案,結果還是有一種語言不能顯示,變成方塊。

英文版的日文假名,預設是採用哪一種字型?看起來像是宋體。還是因為非 Unicode 程式的語言設置為中文中國?
就戦零的主系統7-zip全部語言都可以正常顯示出來。
不過剛發現自己安裝的虛擬XP有兩種語言 Georgian 和 Tamil 就無法正常顯示出來。應該是缺少了字形的關係。琥珀是哪一個語言無法顯示呢? 會不會是缺了該字形?
英文版預設應該是用 MSGOTHIC.TTC。不過語系設成了中國,7-zip的日語顯示好像沒有宋體的現象?
http://img523.imageshack.us/img523/6007/7zlanguageku4.png (此圖是戦零主系統的7-zip)


start "" "http://www.google.com.tw/search?complete=1&hl=zh-TW&q=%E3%81%B2%E3%81%90%E3%82%89%E3%81%97%E3%83%87%E3%82%A4%E3%83%96%E3%83%AC%E3%82%A4%E3%82%AF&meta=&aq=t&oq=%E3%81%B2" 這樣是可以。
好像還不行。琥珀有修改過登錄值以讓 CMD 可以支授 %xx 字元嗎?
而且得出來的結果很怪,完全不符合排序... XD
http://img523.imageshack.us/img523/8557/batgoogleqwp1.png

是 Bangla 這個語言。方便用 4.45 版本?

新標準的日文字型,在之前的系統上,感覺不好看。在 cmd 下指定的 MS Gothic 字型,也一樣不好看。

剛剛搜尋時,突然又想找 gdiplus.dll 的最新版了。目前得到的版本是 6.0.3275.0,如果有找到更新版,可以提供出來。

琥珀想把這個問題張貼出來討論,也許其他人對這個研究更有興趣。

7-Zip 使用登錄 MS Shell Dlg 指定的英文字型,適合 95/98/ME/NT/2000/XP/2003 系統。

但是,對於 2000/XP/2003 系統來說,用 MS Shell Dlg 2 指定的 Tahoma 字型,顯示效果更好。因此,琥珀就修改登錄,把 MS Shell Dlg 也改為 Tahoma 字型,這樣 7-Zip 和 Foobar2000 就會調用 Tahoma 字型了。比較阿拉伯文和法文的顯示就知道了。


是 Bangla 這個語言。方便用 4.45 版本?

新標準的日文字型,在之前的系統上,感覺不好看。在 cmd 下指定的 MS Gothic 字型,也一樣不好看。

剛剛搜尋時,突然又想找 gdiplus.dll 的最新版了。目前得到的版本是 6.0.3275.0,如果有找到更新版,可以提供出來。

琥珀想把這個問題張貼出來討論,也許其他人對這個研究更有興趣。
剛找了7-Zip 4.45來測試,是可以正常顯示。
不過字體就小到嚇死人,幾乎用EmEditor也是如此。
http://img511.imageshack.us/img511/4658/7zbanglahd9.png

字體放大18號就可以看清楚在寫什麼了。
http://img511.imageshack.us/img511/6378/emeditorbanglanh9.png

琥珀幾乎很喜歡將新系統的好物搬到舊系統上。不過請問下這樣搞不會造成系統當機、不穩定?

昨天搜尋到的資料。方便的話,試試修改的版本,比較文字大小。
http://poorhackerz.googlepages.com/vrinda_hack.htm

只有 XP SP2 有新增支援?不知道 2003 SP2 有沒有?實驗的 Vista 系統已經刪除,不知有無新版本的 Vrinda 檔案?

移植的檔案不多。都是先找 2000 原本就有的檔案,然後再找 XP/2003/Vista 的新版本。像是字型、命令行程式,只要顯示、執行上巨觀看起來沒問題,就會使用新版。如果字型不好看,或是程式執行失敗,就放棄使用。

其實 XP/2003 的移植失敗,只是因為有些檔案需要系統核心檔案的配合,或是需要新的 API、函數指令,才會造成舊版無法使用。真正改變最大的確實是 Vista,不僅是 Win32 GUI/CLI 程式,就連字型也不太好看。所以自己優先找 2003 的字型,或是微軟下載中心提供的字型更新,比較檔案大小,然後用 cabarc 製作壓縮檔,直接取代原本 2000 SP4+ 光碟的檔案,燒錄出自己專用的更新光碟。

說了這麼多,自己連 XP/2003 的原始檔案都沒有取得,只是抓微軟的 XP/2003 的 SP2 套件來檢查比較,覺得有些累。如果戰零有時間的話,就找出比 XP SP0 還新的字型,或是新系統才有的字型,這樣 2000 可以正常顯示的文字就能和 XP/2003 SP2 一樣多了。


昨天搜尋到的資料。方便的話,試試修改的版本,比較文字大小。
http://poorhackerz.googlepages.com/vrinda_hack.htm

只有 XP SP2 有新增支援?不知道 2003 SP2 有沒有?實驗的 Vista 系統已經刪除,不知有無新版本的 Vrinda 檔案?

移植的檔案不多。都是先找 2000 原本就有的檔案,然後再找 XP/2003/Vista 的新版本。像是字型、命令行程式,只要顯示、執行上巨觀看起來沒問題,就會使用新版。如果字型不好看,或是程式執行失敗,就放棄使用。

其實 XP/2003 的移植失敗,只是因為有些檔案需要系統核心檔案的配合,或是需要新的 API、函數指令,才會造成舊版無法使用。真正改變最大的確實是 Vista,不僅是 Win32 GUI/CLI 程式,就連字型也不太好看。所以自己優先找 2003 的字型,或是微軟下載中心提供的字型更新,比較檔案大小,然後用 cabarc 製作壓縮檔,直接取代原本 2000 SP4+ 光碟的檔案,燒錄出自己專用的更新光碟。

說了這麼多,自己連 XP/2003 的原始檔案都沒有取得,只是抓微軟的 XP/2003 的 SP2 套件來檢查比較,覺得有些累。如果戰零有時間的話,就找出比 XP SP0 還新的字型,或是新系統才有的字型,這樣 2000 可以正常顯示的文字就能和 XP/2003 SP2 一樣多了。

裝在自己的虛擬系統上測試,是比起微軟的 Vrindra.ttf 好很多。
不過還是覺得對於這個國家的字體看了會有很吃力的感覺?
http://img526.imageshack.us/img526/7522/7zbanglav2fv5.png

http://img511.imageshack.us/img511/4658/7zbanglahd9.png

因為身邊也沒有2003 SP2的關係,所以這方面不大清楚了。
近來硬碟空間開始不足,所以也在最近刪除掉了虛擬用的Vista。
而且現在的Vista是採用 WIM 格式來封裝的,要抽出某檔案比較麻煩。聽說可以用ImageX做出解壓縮,不過為了這個小程式卻要下載1GB的檔案... (下載中)
估計以後的XP SP3應該也會用此方法來封裝? 琥珀有興趣的話可以考慮改用WIM來做封裝看?
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=c7d4bc6d-15f3-4284-9123-679830d629f2

Vista的字體會難看可能極大原因是要配合Clear Type才可以顯示出效果。沒有Clear Type的話,效果應該會大打折扣。
然後新版GDIPLUS.dll移植在2000後也沒有問題?

以前有試過安裝2K在VMware上,不過不懂為什麼2K進入系統後會當機。裝了幾次也是一樣的狀況...
雖然現在有了VirtualBox,不過還沒試。
有時閒的話可能會考慮裝2000、XP、Vista來做更多虛擬測試。

WIM 格式,猜測微軟只會支援 Vista 以後的系統,反正舊系統應該也用不到。說不定可以建議 Igor 增加對 WIM 格式的支持,成為全球壓縮軟體的首創!

驗證 gdiplus.dll 是否可用,琥珀是拿需要此檔案的軟體來測試。先將檔案放到 system32 下,然後執行程式,如果沒問題就算通過。

自己是覺得,ClearType 還是不適合小文字,特別是中文。理由還是一樣,不喜歡看到朦朧的文字,然後中文、英文、多語言的文字,一整串看下來,很糟糕。或許是自己的視覺標準比較特殊吧?不然就不會一直反對 ClearType 入侵中文、多語言的系統。

剛剛找到了資料,戰零應該可以方便處理。
http://www.microsoft.com/typography/fonts/product.aspx?PID=145

用現有的 XP SP2+ 系統,列出這些字型檔案的大小。自己只要比對一下,就能知道哪些字型可以放到 2000 上。目前確定有兩個字型是 2000 所沒有的,是 kartika.ttf 和 vrinda.ttf 這兩個。

下載 XP SP2 英文版,確實可以找到這兩個新檔案。只是對 LAYOUT.INF 裡面的檔案複製清單語法不熟悉,不知道要如何才能讓 2000 的文字模式安裝階段,自動複製、註冊字型,不用事後到控制台的字型,手動安裝。

找了Vista版的Vrinda.ttf來測試。在Notepad顯示上覺得還不錯,不過在7-zip還是覺得很小...
http://img205.imageshack.us/img205/6417/vrindavistayc7.png

以下是三個版本的Vrinda.ttf比較圖,幾乎琥珀提供的Vrinda優化版檔案比較大了一點,XP的那個可以徹底忽略了...
http://img205.imageshack.us/img205/7785/vrindacomparetv2.png


WIM 格式,猜測微軟只會支援 Vista 以後的系統,反正舊系統應該也用不到。
WIM只是一個封裝,不管新舊系統都可以拿來用。其實概念很類似Ghost罷了。之前找過Windows FLP來測試(聽說是XP的精簡版),發現也是採用WIM來安裝的。所以大概猜測今後微軟可能會陸續採用WIM了吧?

小研究一下WIM,發現非常方便。利用ImageX.exe可以自由抓取或更新其映像檔,而且利用mount或mountrw可以直接由explorer來操作讀寫。
因為沒有採用以前的獨立文件壓縮的方式,而是一整個映像解壓複製,安裝所需時間會快上很多。
WIM的另一個好處是還可以包含多個映像集於在同一個WIM裏面,而且單一執行個體技術可以一個複本空間儲存某個檔案的不同版本。

琥珀有興趣的話可以到這裡 (http://www.yousendit.com/transfer.php?action=download&ufid=ED17C76E0AB2249E)下載 ImageX.exe,並順便附上Vista版的 Vrinda.ttf。


說不定可以建議 Igor 增加對 WIM 格式的支持,成為全球壓縮軟體的首創!
恩,從 Winrar 開始再轉到 7-zip 後,一直以來幾乎已經習慣用右鍵 > 直接開啟映像檔。
可以支授WIM的確會帶來很多方便。如果連光碟映像檔如.img、nrg等可以支授更好。
其實戦零更希望7-zip可以抽出光碟映像的開機檔又可以自由寫入ISO文件然後又支授multi volume的話是最棒的了!
當然如果做到這個地步解壓縮軟體就不像解壓縮軟體了...


自己是覺得,ClearType 還是不適合小文字,特別是中文。理由還是一樣,不喜歡看到朦朧的文字,然後中文、英文、多語言的文字,一整串看下來,很糟糕。或許是自己的視覺標準比較特殊吧?不然就不會一直反對 ClearType 入侵中文、多語言的系統。
不清楚Vista的ClearType是怎樣,不過XP的ClearType幾乎對英文字母以外的字就無效果了。
不過因為沒有液晶螢幕的關係,所以ClearType自己也是一直關閉起來沒什麼用過。


下載 XP SP2 英文版,確實可以找到這兩個新檔案。只是對 LAYOUT.INF 裡面的檔案複製清單語法不熟悉,不知道要如何才能讓 2000 的文字模式安裝階段,自動複製、註冊字型,不用事後到控制台的字型,手動安裝。
剛找了一些文章,有解釋到Layout.inf的語法。
http://www.msfn.org/board/Decompress_Windows_setup_files_t44003.html&st=0&p=307015&#entry307015
http://iths.cn/bbs/rj.php?do=page.php&id=3867

格式大意是講 文件名 = [1為原安裝、100為補丁安裝],,[檔案原大小],,,,[_x為驗證文件大小],[安裝位置],[0,0為解壓安裝、 3,3為從別的inf 呼叫解壓安裝]

自己抓了XP SP2的Layout.inf 和 INTL.inf 來參考。INTL.inf 應該是 International (國際)吧?裏面幾乎都是語言訊息相關安裝。
恩,後面的 ,,1,22 就不懂是做為什麼用途了...


Layout.inf

[SourceDisksNames.x86]
1 = %cdname%,%cdtagfilei%,,\i386
100 = %spcdname%,%spcdtagfilei%,,\i386,1

[WinntDirectories]
22 = Fonts

[SourceDisksFiles]
kartika.ttf = 100,,121452,,,,,22,0,0,,1,22
vrinda.ttf = 100,,252820,,,,,22,0,0,,1,22




INTL.inf

[SourceDisksFiles]
Kartika.ttf = 100,,,,,,,0,0
Vrinda.ttf = 100,,,,,,,0,0

[Indian_Fonts]
Kartika.ttf
Vrinda.ttf

[Indian_Fonts_Remove]
Kartika.ttf
Vrinda.ttf

[Indian.Fonts.Reg]
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts","Kartika (TrueType)",,Kartika.ttf
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts","Vrinda (TrueType)",,Vrinda.ttf


或許也可以瞭解到微軟為什麼放棄用 inf 來安裝視窗了。
除了這樣的方式慢之外,管理和更新也非常辛苦。
所以現在採用WIM來直接安裝或許因為方便管理的關係吧?

剛好這兩個檔案,自己也研究了很久,雖然可以模仿,不過 2000 和 XP 的內容還是有些不同,所以放棄更改,改為手動安裝字型。

想知道,是否在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts 這個地方手動註冊,字型複製到 Fonts 目錄,就等同於「安裝新字型」的效果?微軟的 fontinst.exe、fontinst.inf 似乎不支援 2000,所以也放棄。

晚上花了很多時間研究 WIM 格式,以及 imagex 的各種功能,覺得 WIM 集成了許多特性。此格式是壓縮檔,也是映像檔,可以允許多個映像,有點類似 ISO 的特性,只是目的並不是要燒錄光碟。可選擇掛載,或是完整解開。可以中途刪除、加入檔案,儲存為 WIM 格式,類似 UltraISO 的編輯 ISO 檔案。

不過,在 2000 上掛載 WIM 檔案總是顯示錯誤,不知戰零能正常使用嗎?如果用 /apply 解 install.wim 檔案到目錄,要花很久時間,而且目錄屬性被設定為隱藏,還有加上複雜的權限。選了繼承、取得所有權、重新散佈可繼承權限,亂七八糟改了設定後,才終於 rd /s /q 目錄,不然都是拒絕存取,或是仍然有部分子目錄不能刪除。光是散佈權限,就花了好幾分鐘的時間,可見檔案之多。所以 Vista 的預設檔案安全確實變嚴格了。

主要還是要看微軟的態度。如果新軟體只打算支援新系統,琥珀就不是這麼推薦 WIN 格式了。就程式技術上,功能確實是很強。不過,WIM 格式,有沒有支援 Unicode 是個問題。似乎是用 LZX 演算法壓縮,然後有類似 XML 的語法結構。

如果 Vista 的英文字型,其 glyph 沒有變動,只有新增 code point,就不用這麼辛苦比較了,直接拿 Vista 的最快了。像是 verdana、tahoma 字型,目前已經使用新版,但是文字外觀 (glyph) 感覺和之前相同,所以就能放心使用新版。至於中日韓的新字型,就要考慮了。


剛好這兩個檔案,自己也研究了很久,雖然可以模仿,不過 2000 和 XP 的內容還是有些不同,所以放棄更改,改為手動安裝字型。
剛找來2K光碟來看,語法確實有些不同。
其實主要可以瞭解到這幾行的語法定義相信要掌握起來應該不難。
不過2K幾乎都是根據 Lang\語言 目錄而安裝的,不像XP是將大部分字形都集中在I386下。


[SourceDisksNames]
Layout.inf

_x = %wkscd%,\cdrom_ip.5,,""
_1 = %wkscd%,\cdrom_ip.5,,""
_2 = %wkscd%,\cdrom_ip.5,,""
_3 = %wkscd%,\cdrom_ip.5,,""
_4 = %wkscd%,\cdrom_ip.5,,""
1_ = %wkscd%,\cdrom_ip.5,,""
2_ = %wkscd%,\cdrom_ip.5,,""
3_ = %wkscd%,\cdrom_ip.5,,""
4_ = %wkscd%,\cdrom_ip.5,,""

[SourceDisksNames.x86]
1 = %wkscd%,\cdrom_ip.5,,\i386
2 = %spcd%,\cdromsp4.tst,,\i386,1
_1 = %wks1%,\disk101,,""
_2 = %wks2%,\disk102,,""
_3 = %wks3%,\disk103,,""
_4 = %wks4%,\disk104,,""
1_ = %wks1%,\disk101,,""
2_ = %wks2%,\disk102,,""
3_ = %wks3%,\disk103,,""
4_ = %wks4%,\disk104,,""
7 = %wkscd%,\cdrom_ip.5,,\i386\lang\jpn
8 = %wkscd%,\cdrom_ip.5,,\i386\lang\kor
9 = %wkscd%,\cdrom_ip.5,,\i386\lang\cht
10 = %wkscd%,\cdrom_ip.5,,\i386\lang\chs
11 = %wkscd%,\cdrom_ip.5,,\i386\lang\ara
12 = %wkscd%,\cdrom_ip.5,,\i386\lang\heb
13 = %wkscd%,\cdrom_ip.5,,\i386\lang\tha
14 = %wkscd%,\cdrom_ip.5,,\i386\lang
15 = %wkscd%,\cdrom_ip.5,,\i386\lang\ind
107 = %spcd%,\cdromsp4.tst,,\i386\lang\jpn,1
109 = %spcd%,\cdromsp4.tst,,\i386\lang\cht,1
110 = %spcd%,\cdromsp4.tst,,\i386\lang\chs,1
108 = %spcd%,\cdromsp4.tst,,\i386\lang\kor,1


自己大膽的假設,那兩個 kartika 和 Vrinda 應該可以套用在2K的 INTL.inf的15,,,,,,,2,1 下。
在不大量改變結構的話,只是貼加下去應該不會有什麼大問題的。


INTL.inf

[SourceDisksFiles]
kartika.ttf = 15,,,,,,,2,1
vrinda.ttf = 15,,,,,,,2,1

[Indian_Fonts]
kartika.ttf
vrinda.ttf

[Indian_Fonts_Remove]
kartika.ttf
vrinda.ttf

[Indian.Fonts.Reg]
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts","Kartika (TrueType)",,kartika.ttf
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts","Vrinda (TrueType)",,vrinda.ttf



想知道,是否在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts 這個地方手動註冊,字型複製到 Fonts 目錄,就等同於「安裝新字型」的效果?微軟的 fontinst.exe、fontinst.inf 似乎不支援 2000,所以也放棄。
幾乎應該是這樣,目前的發現應該沒有漏掉。



不過,在 2000 上掛載 WIM 檔案總是顯示錯誤,不知戰零能正常使用嗎?如果用 /apply 解 install.wim 檔案到目錄,要花很久時間,而且目錄屬性被設定為隱藏,還有加上複雜的權限。選了繼承、取得所有權、重新散佈可繼承權限,亂七八糟改了設定後,才終於 rd /s /q 目錄,不然都是拒絕存取,或是仍然有部分子目錄不能刪除。光是散佈權限,就花了好幾分鐘的時間,可見檔案之多。所以 Vista 的預設檔案安全確實變嚴格了。

主要還是要看微軟的態度。如果新軟體只打算支援新系統,琥珀就不是這麼推薦 WIN 格式了。就程式技術上,功能確實是很強。不過,WIM 格式,有沒有支援 Unicode 是個問題。似乎是用 LZX 演算法壓縮,然後有類似 XML 的語法結構。

戦零直接用 /mount /mountrw 是沒有任何問題。
照琥珀這樣所說,可能 imagex 的掛載對2K無法完全支授吧?
剛發現到這帖 (http://www.popthemes.com/blogview.asp?logID=209),imagex的不足應該是真的無法掛載在2K上吧,要創建的話應該還是可以的。

用 /apply 的話確實是花了點時間,大概5~7分鐘左右。
主目錄屬性確實是被設定為 系統資料夾,權限真的很亂七八糟。
Vista的文件真的很多,光是安裝後就已經需要接近7GB的空間了。
不過不懂是不是Vista的API不同的關係,幾乎拿Vista的EXE程式執行在XP上會出現 "not a valid win32 application"。
看來2K/XP以後的未來也是很明了。

其實是想要追求完美。結果應該會成功,只是心情會不好。

查詢資料,微軟說不支援在 2000 上的掛載,所以只好放棄。

不行。琥珀要破解 wimfltr.sys 檔案,強迫 2000 認識它。

微軟什麼都不會,只會叫大家看 life cycle。琥珀鳴泣之時,殺!

http://meta.wikimedia.org/wiki/List_of_Wikipedias

遙遠的目標,能正常顯示這裡列出的文字。還是有很多不支援,或是中間缺一個正常文字。

贊助商連結


warzero
2007-05-16, 10:31 AM
阿哈哈,見笑了。
雖然裏面的內容討論是越扯越遠.... -_-|||

琥珀
2007-05-17, 03:58 PM
Bangla Unicode Setup Guide (http://banglacricket.com/tools/bangla/index.php)
Sinhala Enabling Pack for XP (http://www.mrt.ac.lk/sinhala/SinhalaXP0.4.zip)
Windows Bangla Fix (http://poorhackerz.googlepages.com/index.htm)

目前最新的 usp10.dll 是 Windows Longhorn Beta 3 附帶的版本,1.626.6001.16510。
2000/XP/2003 可以使用 1.601.5022.8 這個版本。雖然比 2007 Office/Vista 提供的稍舊,但以作業系統全域上的考量,此版本相對合用。