顯示具有 locale 標籤的文章。 顯示所有文章
顯示具有 locale 標籤的文章。 顯示所有文章

2008年8月31日 星期日

hal auto utf8 of usb storage devices with fat32 alike (vfat)


使用 hal 來達成熱插拔的方式是不錯,但是如果沒有設定過的話,隨身碟自動掛載後中日文字都會變成亂碼一片,雖然可以從指令介面下手修正這個問題: ##ReadMore##

[root]# mount /dev/sdc1 /media/disk -o iocharset=utf8但不能直接用 file manager 看到的點入直接用就是不順心,在爬了這篇文章後就憑著直覺修改成功了。

修改方式

建立 /usr/share/hal/fdi/policy/10osvendor/10-vfat.fdi 輸入以下內容: <device> <match key="volume.fstype" string="vfat"> <merge key="volume.policy.mount_option.iocharset=utf8" type="bool">true</merge> </match> </device> 其實就是一條規則:如果裝置的檔案系統是 vfat (fat32/fat16, etc.) 就加入這條 "iocharset=utf8" 的選項,詳細的規則編寫法可以參考那篇 wiki ,它的處理方式和 fontconfig 差不多,不會很難上手才是。

  • 如果發現上面 code 的角括號被換成亂碼,請看原始碼來複製貼上 (firefox issue with ReadMore plugin)

2008年7月2日 星期三

Locale of Jap gaming in wine


is kinda dirty and tiring work.
可以說是一連串的 iso mount 加上 locale codepage (檔案名稱及程式)大混戰,可說是過往至今的複習,換來的是更清楚如何不靠模擬器+M$ win 的技巧,感覺還算值得 ##ReadMore##

Mounting Image

iso:

[user]$
[user]$
[user]$
mount -t iso9660 -o loop ISOImage.iso mountpoint/
mount -t iso9660 -o loop,utf8 ISOImage.iso mountpoint/
mount -t iso9660 -o loop,iocharset=sjis-win ISOImage.iso mountpoint/
mdf/mds 基本上差不多,只需要代入 mdf 檔名:
[user]$
[user]$
[user]$
mount -o loop MDFImage.mdf mountpoint/
mount -o loop,utf8 MDFImage.mdf mountpoint/
mount -o loop,iocharset=sjis-win MDFImage.mdf mountpoint/
上面要用哪一行端看你的光碟長怎樣,無法全一而足;
  • 如果你是單純英文檔案結構的話只要第一行
  • 有日文檔名又要正確掛載的話就得猜編碼,通常比較新的 DVD 都會用 unicode, 也就是第二行
  • 老式CD 的話可能要用非 unicode 選項,使用第三行,但這次的安裝測試是第二種 case 故此法未驗證
如果出現 fail 有可能是權限不足,請以 root 身份執行 mount
或是 loop 裝置未開啟: [root]# modprobe loop 如果還是不行的話就可能是 codepage 的問題了,請用 [user]$ iconv -l 來找可能的 codepage 當作參數代入 Case2 的 sjis-win 中置換,有可能的幾個分別是 ujis, shift-jis 之類的吧

Installtion

[user]$ [user]$ LC_ALL=ja_JP wine path/to/setup.exe LC_ALL=ja_JP.ujis wine path/to/setup.exe

通常這兩個就可以順利執行安裝程式,但有時會碰到找不到日文檔名的檔案的清況,這時候請

  1. 把整個 cd tree (或那個檔案,看你的安裝程式) 複制一份到另一個地方
  2. 在複製出來的目錄下執行: convmv -f utf8 -t ujis -r * --notest 便會再次將原本的 utf8 編碼目錄結構轉回日文碼,使之執行安裝程式,便應可正確安裝日文檔名程式
  3. wine 程式下安裝出來的目錄下後再次執行 convmv -f ujis -t utf8 -r * --notest 即可把日文碼轉回看得懂的 utf8

Execution

[user]$ [user]$ LC_ALL=ja_JP wine path/to/executive.exe LC_ALL=ja_JP.ujis wine path/to/executive.exe
基本上和安裝一樣