2011年12月10日 星期六

在Dolphin中加上7z的壓縮選單

在dolphin中原本只會有「這裡、成ZIP壓縮檔、成RAR壓縮檔、成ZIP壓縮檔、壓縮為...」這幾個選項,而且不知道為什麼ZIP會出現兩次,應該是翻譯的問題,因為第二個ZIP其實是tar.gz,所以我也把翻譯給改掉了。


首先你要先有安裝p7zip-full
sudo apt-get install p7zip-full
這樣你的系統才能支援7z的壓縮
然後就是修改/usr/share/kde4/services/ServiceMenus/ark_addtoservicemenu.desktop這個檔案,檔案所在的位置可能會與你的發行版有所不同,這邊是以kubuntu 11.10的發行版為範例。
sudo kate /usr/share/kde4/services/ServiceMenus/ark_addtoservicemenu.desktop
找到
Actions=compressHere;compressAsZip;compressAsRar;compressAsTar;compressTo;
然後改成這樣
Actions=compressHere;compressAs7z;compressAsZip;compressAsRar;compressAsTar;compressTo;
然後在[Desktop Action compressAsZip]的上面一行貼上下面這段文字

[Desktop Action compressAs7z]
Name=As 7z Archive
Name[ar]=ك أرشيف 7z
Name[ast]=Como archivu comprimíu 7z
Name[bs]=kao 7z arhivu
Name[ca]=Com a arxiu 7z
Name[ca@valencia]=Com a arxiu 7z
Name[cs]=Jako archiv 7z
Name[da]=Som 7z-arkiv
Name[de]=Als 7z-Archiv
Name[el]=Ως αρχειοθήκη 7z
Name[en_GB]=As 7z Archive
Name[es]=Como archivo comprimido 7z
Name[et]=7z-arhiivina
Name[eu]=7z artxibo gisa
Name[fi]=Zip-arkistoksi
Name[fr]=En tant qu'archive 7z
Name[ga]=Mar Chartlann 7z
Name[gl]=Como arquivo 7z
Name[hr]=Kao 7z-arhiva
Name[hu]=7z archívumként
Name[id]=Sebagai Arsip 7z
Name[is]=Sem 7z safnskrá
Name[it]=Come archivio 7z
Name[ja]=7z アーカイブに
Name[kk]=7z архиві қылып
Name[km]=ជា​ប័ណ្ណសារ 7z
Name[ko]=7z 파일로
Name[lt]=7z archyvas
Name[lv]=Kā 7z arhīvu
Name[nb]=Som 7z-arkiv
Name[nds]=As Zip-Archiev
Name[nl]=Als 7z-archief
Name[nn]=Som 7z-arkiv
Name[pa]=ਜ਼ਿਪ ਅਕਾਇਵ ਵਾਂਗ
Name[pl]=Jako archiwum 7z
Name[pt]=Como Pacote 7z
Name[pt_BR]=Como arquivo 7z
Name[ro]=Ca arhivă 7z
Name[ru]=Как архив 7z
Name[sk]=Do 7z archívu
Name[sl]=Kot arhiv 7z
Name[sq]=Si Arkiv 7z
Name[sr]=као ЗИП архиву
Name[sr@ijekavian]=као ЗИП архиву
Name[sr@ijekavianlatin]=kao 7z arhivu
Name[sr@latin]=kao 7z arhivu
Name[sv]=Som 7z-arkiv
Name[th]=เป็นแฟ้มจัดเก็บบีบอัดแบบ 7z
Name[tr]=7z Arşivi Olarak
Name[ug]=7z ئارخىپى
Name[uk]=Як архів 7z
Name[wa]=Come årtchive 7z
Name[x-test]=xxAs 7z Archivexx
Name[zh_CN]=为 7z 归档
Name[zh_TW]=成 7z 壓縮檔
Icon=utilities-file-archiver
Exec=ark --changetofirstpath --add --autofilename 7z %F

再來找到[Desktop Action compressAsTar]這段
你可以看到其他語言都是翻譯成ZIP/TAR
不知道為什麼台灣的翻譯是翻成ZIP
然後我看一下下方的Exec
Exec=ark --changetofirstpath --add --autofilename tar.gz %F
其實是壓縮成tar.gz,所以性我乾脆把
Name[zh_TW]=成 ZIP 壓縮檔
改成
Name[zh_TW]=成 TAR.GZ 壓縮檔
就好了
存檔後關閉要重新啟動kde,你可以重開機或者下這個指令
sudo pkill X

用這個選單做的7z壓縮檔,在windows中用7-zip解壓縮也不會有亂碼,不需要考慮unicode、utf-8還是big5的問題,不過必須注意的是,windows中如果使用winrar,就可能會無法正確解壓縮含有utf8字元的7z的壓縮檔,但是用7-zip就可以,7-zip可以解壓縮rar中含有utf8或unicode字元的壓縮檔,但是winrar無法解壓縮7z中含有utf8或unicode字元的壓縮檔。
如果需要在linux上下指令產生7z的壓縮檔,建議使用7za指令會比7z指令來的好,因為7za在字元上的處理會把UTF16給打開,所以在產生壓縮檔時較不會出現亂碼的問題。
如果你的windows電腦正在使用winrar,建議也可以移除了,使用7-zip不僅免費也很好用。