test2
2015年3月30日 星期一
2014年4月2日 星期三
2014年3月12日 星期三
簡繁互轉:批次更改資料夾及檔案名稱
Linux找不到我需要的簡轉繁批次更改資料夾及檔案名稱這種功能的程式,想說簡繁互轉有opencc能用,在來就是用zsh寫個shell script應該不會很難才是。
初步很簡單就寫好了,可是,我忽略了資料夾遇到了有多層目錄的結構,前面的名稱改了但讀進的資料不能跟著改不然會出錯。
帅哥/刚才/叫我吗 要修改成 帥哥/剛才/叫我嗎,修改順序為第一層 帅哥/帥哥,出現錯誤在第二層中他是讀到舊的 帅哥/刚才 ,但是 帅哥 已經變成繁體字的 帥哥,那麼接下來的結構都會出現錯誤。
今過幾天思考到底要怎麼處理,結果給我想到了,我將有層次目錄結構分讀取資料分兩段讀取轉換,我用 dh 保留路徑的頭,dt保留路徑的尾巴,遇到這情形到第二層目錄先將 dh 轉為 ch讓他讀到繁體的,最後整體會變成 ch/ct這樣搬移時就沒問題了。
以下是我的原始碼大家研究一下囉,請記得要裝opencc即zsh呀否則無法正確執行;程式會自動轉換當前資料夾內所有子資料夾及檔案,所以請先切換到要目地在執行哦。
opencc 我是用 -c zhs2zhtw_vp.ini 簡體轉繁體,大陸的朋友要繁體轉簡體的話要用 -c zhtw2zhcn_s.ini 哦。
將原始碼存檔之後給執行權限執行即可。
最後附上我實際轉換過程的log 有興趣的可以下載回去看一下。
初步很簡單就寫好了,可是,我忽略了資料夾遇到了有多層目錄的結構,前面的名稱改了但讀進的資料不能跟著改不然會出錯。
帅哥/刚才/叫我吗 要修改成 帥哥/剛才/叫我嗎,修改順序為第一層 帅哥/帥哥,出現錯誤在第二層中他是讀到舊的 帅哥/刚才 ,但是 帅哥 已經變成繁體字的 帥哥,那麼接下來的結構都會出現錯誤。
今過幾天思考到底要怎麼處理,結果給我想到了,我將有層次目錄結構分讀取資料分兩段讀取轉換,我用 dh 保留路徑的頭,dt保留路徑的尾巴,遇到這情形到第二層目錄先將 dh 轉為 ch讓他讀到繁體的,最後整體會變成 ch/ct這樣搬移時就沒問題了。
以下是我的原始碼大家研究一下囉,請記得要裝opencc即zsh呀否則無法正確執行;程式會自動轉換當前資料夾內所有子資料夾及檔案,所以請先切換到要目地在執行哦。
opencc 我是用 -c zhs2zhtw_vp.ini 簡體轉繁體,大陸的朋友要繁體轉簡體的話要用 -c zhtw2zhcn_s.ini 哦。
將原始碼存檔之後給執行權限執行即可。
#!/bin/zsh
test -e "conv.log" && rm "conv.log"
touch "conv.log"
for direct in **/*(/)
do
dh="$direct:h"
dt="$direct:t"
ch="$(echo "$dh"|opencc -c zhs2zhtw_vp.ini)"
ct="$(echo "$dt"|opencc -c zhs2zhtw_vp.ini)"
if [ "$dt" != "$ct" ]
then
if [ "$dh" != "." ]
then
echo "$dh/$dt" "$ch/$ct" >> "conv.log"
mv "$ch/$dt" "$ch/$ct"
else
echo "$dt" "$ct" >> "conv.log"
mv "$dt" "$ct"
fi
fi
done
for files in **/*(.)
do
convfile="$(echo "$files" | opencc -c zhs2zhtw_vp.ini)"
if [ "$files" != "$convfile" ]
then
echo "$files" "$convfile" >> "conv.log"
mv "$files" "$convfile"
fi
done
最後附上我實際轉換過程的log 有興趣的可以下載回去看一下。
Firefox.v26後有在用userChromeJS記得更新userChrome.js
忘了Firefox26、27開始,我的偏好設定內的分頁都固定在那無法調整,在網址列按☆號加入書籤按兩下不會彈出修改內容的小視窗,經過努力不懈我不會說我套件裝超多的情況下終於抓到是userChromeJS的問題。
但是userChromeJS好久以前就沒更新了,就在今天找其它的腳本發現只要將userChrome-26.js抓下替換userChrome.js以上的問題就解決了。
"userChrome-26.js,適合 FF26,在24下會讓 xul 的腳本沒法加載。"
https://github.com/ywzhaiqi/userChromeJS/blob/master/userChrome-26.js
如果你需要一些userChromeJS的腳本也可以到ywzhaiqi挖寶哦。
但是userChromeJS好久以前就沒更新了,就在今天找其它的腳本發現只要將userChrome-26.js抓下替換userChrome.js以上的問題就解決了。
"userChrome-26.js,適合 FF26,在24下會讓 xul 的腳本沒法加載。"
https://github.com/ywzhaiqi/userChromeJS/blob/master/userChrome-26.js
如果你需要一些userChromeJS的腳本也可以到ywzhaiqi挖寶哦。
2013年11月20日 星期三
Vim 中文用戶手冊(繁體字)2、自動下載最新版並轉換文字(簡轉繁)與其他方式安裝
即上一篇Vim 中文用戶手冊(繁體字) 所提供的手動轉換法,此次轉而提供利用Shell Script來自動下載最新版並自動轉換文字(簡轉繁)。
如果要更快的話就用+Chu-Siang Lai 提供 chusiang/vimcdoc-tw的方法安裝,需要Pathogen或NeoBundle或Vundle這三種直接安裝他轉換好的檔案,安裝方法他寫的很詳細我這就不贅述了。
vimcdoc-cn-to-tw.zsh
wget -cq https://googledrive.com/host/0B6LhE5E9oFV3Njc3MTI3M2QtOTlhNi00ODlhLWI3MDItODJhY2VkMGYxMDk5/vimcdoc-cn-to-tw.zsh
chmod +x vimcdoc-cn-to-tw.zsh
./vimcdoc-cn-to-tw.zsh
執行畫面 |
source code
#!/bin/zsh
which zsh >/dev/null || (echo 請安裝zsh;exit)
which opencc >/dev/null || (echo 請安裝opencc;exit)
tmpdir=$(mktemp -d)
cd /tmp/
printf "%s\n" 下載檔案中請稍後
wget -4cq -O vimcdoc.tar http://sourceforge.net/projects/vimcdoc/files/latest/download
printf "%s\n" 解壓檔案中請稍後
tar -xf vimcdoc.tar
cd vimcdoc-*
vimcdocdir=$PWD
name=$PWD:t
printf "%s\n" 修改檔案中請稍後
mv help_cn.vim help_tw.vim
mv doc/tags-cn doc/tags-tw
sed -i 's/help_cn.vim/help_tw.vim/g ; s/tags-cn/tags-tw/g' vimcdoc.sh
sed -i 's/set helplang=cn/set helplang=tw/' vimcdoc.vim
sed -i '/help.*Cn/s/Cn /Tw /g' help_tw.vim
printf "%s\n" "CN to TW中請稍後"
find . -type d -exec env d="$tmpdir" sh -c ' exec mkdir -p -- "$d/$1"' '{}' '{}' \;
for i in **/*(.); opencc -c zhs2zhtw_vp.ini -i $i -o $tmpdir/$i 2>&1
rm -r $vimcdocdir
mv $tmpdir $vimcdocdir
chmod +x $vimcdocdir/vimcdoc.sh
cd -
printf "%s\n" 轉換完成,壓縮檔案中請稍後
tar cf ~/$name.tar $name
printf "%s\n" 壓縮完成存放至~/$name.tar 此檔可直接分享給別他人安裝:
printf "%s\n" 要立即安裝請進入$vimcdocdir
printf "%s\n" 安裝步驟請看原文:Vim 中文用戶手冊(繁體字) http://playubuntu.blogspot.tw/2013/10/vim.html
Vim 中文用戶手冊(繁體字)
感謝Vim Chinese Documentation將英文翻譯成中文(簡體字),但對於簡體字不太熟悉,又不想靠類似transcoding Simplified and Traditional這種plugin每次看都要簡體轉繁體一次,索性直接將簡體中文的用戶手冊轉成繁體一次搞定方便觀看。
以下將運用Opencc簡轉繁、ZshShell請先安裝好。
2013-11-21 opencc改用zhs2zhtw_vp.ini設定值from Simplified to variants and phrases of Taiwan比較接近台灣用語。
2013-10-24 接著將安還有個檔案需要改 此處漏掉了也要修改vimcdoc.vim導致helplang會保持著cn而用戶手冊語言沒有改變,原文以更正。
原因如下:
首先下載最版本的tarball,解壓縮得到vimcdoc-1.9.0(目前版號是1.9.0更新的版本版號會不一樣)。
請開啟終端機並切換至vimcdoc-1.9.0目錄並開啟Zsh Shell。
再來將幾個檔案更名cn->tw
接著將安裝檔案內容修改cn->tw
現在/tmp/建立vimcdoc-1.9.0對應的目錄結構
開始用opencc中文化(cn->tw)存放至/tmp/vimcdoc-1.9.0
切換至存放處,將安裝檔加入執行權限,最後執行安裝
開啟vim設定檔
加入以下兩行後存檔
作用:將中文用戶手冊加入rtp(搜索運行時文件所用的目錄)及指定helplang為tw。
P.S1 set rtp+=是增加路徑,+號要記得寫哦,只有=號會出類似plugin找不到那些問題。
P.S2 加入rtp位置有可能不一樣,請看安裝時他將檔案安裝到那裡不要照抄我的。
最後重開vim在指令模式輸入:help就會看到繁體中文的用戶手冊了。
如果想將繁體的用戶手冊安裝程式保留,記得將檔案重/tmp搬出來呀,否則重新開機檔案就不見囉。
以下將運用Opencc簡轉繁、ZshShell請先安裝好。
2013-11-21 opencc改用zhs2zhtw_vp.ini設定值from Simplified to variants and phrases of Taiwan比較接近台灣用語。
2013-10-24 接著將安還有個檔案需要改 此處漏掉了也要修改vimcdoc.vim導致helplang會保持著cn而用戶手冊語言沒有改變,原文以更正。
原因如下:
其中設置Vim 幫助的默認語言的步驟,即是在vimcdoc.vim 中,因為plugin 比vimrc 加載要晚(參考), 所以在vimrc 中的設置會被vimcdoc.vim 覆蓋掉。
Vim 中文幫助文檔
首先下載最版本的tarball,解壓縮得到vimcdoc-1.9.0(目前版號是1.9.0更新的版本版號會不一樣)。
Vim Chinese Documentation |
請開啟終端機並切換至vimcdoc-1.9.0目錄並開啟Zsh Shell。
cd /path/vimcdoc-1.9.0
zsh
更改檔名與更改檔案內容
再來將幾個檔案更名cn->tw
mv help_cn.vim help_tw.vim
mv doc/tags-cn doc/tags-tw
接著將安裝檔案內容修改cn->tw
sed -i 's/help_cn.vim/help_tw.vim/g ; s/tags-cn/tags-tw/g' vimcdoc.sh
sed -i 's/set helplang=cn/set helplang=tw/' vimcdoc.vim
構建原始目錄
現在/tmp/建立vimcdoc-1.9.0對應的目錄結構
find . -type d -exec env d="/tmp/$PWD:t" sh -c ' exec mkdir -p -- "$d/$1"' '{}' '{}' \;
中文化
開始用opencc中文化(cn->tw)存放至/tmp/vimcdoc-1.9.0
for i in **/*(.); opencc -c zhs2zhtw_vp.ini -i $i -o /tmp/$PWD:t/$i
安裝
切換至存放處,將安裝檔加入執行權限,最後執行安裝
cd /tmp/$PWD:t
chmod +x vimcdoc.sh
./vimcdoc.sh -i
設定
開啟vim設定檔
vim $HOME/.vimrc
加入以下兩行後存檔
set rtp+=/home/hepha/.vim
set helplang=tw
作用:將中文用戶手冊加入rtp(搜索運行時文件所用的目錄)及指定helplang為tw。
P.S1 set rtp+=是增加路徑,+號要記得寫哦,只有=號會出類似plugin找不到那些問題。
P.S2 加入rtp位置有可能不一樣,請看安裝時他將檔案安裝到那裡不要照抄我的。
install -m 644 vimcdoc.vim /home/hepha/.vim/plugin/vimcdoc.vim
最後重開vim在指令模式輸入:help就會看到繁體中文的用戶手冊了。
如果想將繁體的用戶手冊安裝程式保留,記得將檔案重/tmp搬出來呀,否則重新開機檔案就不見囉。
mv /tmp/vimcdoc-1.9.0 /you/path
translatePDF 簡體中文文字版PDF轉換為繁體中文PDF
translatePDF是一個能將簡體中文文字版的PDF轉換為繁體中文的軟體,本來想將VIM簡體中文的PDF轉成繁體中文,可是無法順利轉換
Font not translated: /F32 /KWSWHA+gbsnu66
Font not translated: /F49 /IFENFK+gbsnu30
Font not translated: /F48 /LWKBKD+gbsnu53
...more
原因如下: PDF 簡體/正體轉換 github 及 TODO
- 處理更多不同類型中文編碼,比方 latex 產生的 pdf 目前都無法處理。PDF 放中文的方式有很多種,目前只能處理其中一種情況而已,只是許多所謂文字版的簡體 pdf 都是這種情況
經回報後以修正python print error
這裡特別做過記錄使用時遇到的一個問題:
python ./tpdfrw.py File "./tpdfrw.py", line 37 print sys.exc_info() ^ SyntaxError: invalid syntax
經由G+上的朋友+Xuetian Weng 指點:python2 的print可以用,print XXXX,python3 的 print要用,print(XXXX)。如果想要了解python2、python3的差異請看What's New In Python 3.0 — Python v3.0.1 documentation。
安裝
For Ubuntu
目前沒用Ubuntu我只是照抄的。
需安裝:
pdfrw, opencc, pdftk, chardet, fontTools,
droid-sans-fallback.ttf
fontTools 可用 pip 安裝,其他可用 apt-get 安裝。
For Arch
yaourt -S opencc pdftk-bin python2-fonttools python-chardet python2-chardet python2-pdfrw
下載主程式
git clone https://github.com/tjwei/translatePDF.git
cd translatePDF
chmod +x ./tpdfrw.py
修複前面所說的Bug
vim ./tpdfrw.py
在檔案最上頭插入一行
#!/usr/bin/env python2
使用
./tpdfrw.py --opencc-config zhs2zhtw_vp.ini --default-ttf /usr/share/fonts/wenquanyi/wqy-microhei/wqy-microhei.ttc input output
--opencc-config:OpenCC支持地區用詞轉換了
--default-ttf 預設是用DroidSansFallback.ttf 要改用其它字型請用此參數
參考資料:
訂閱:
文章 (Atom)