2019年7月16日 星期二

Age of Wonders III 魔幻紀元三 Linux 繁體中文化

最近Steam上面的魔幻紀元三提供免費下載
剛好這個遊戲有支援Linux,加上我虛弱的硬體勉強可以負荷
就下載來玩看看

基本上是個不錯玩的奇幻策略遊戲
不過沒有中文就看得很痛苦....

剛好這個遊戲有人提供了簡中的Mod
作者提供的安裝介紹
https://steamcommunity.com/sharedfiles/filedetails/?l=schinese&id=743408511
但作者自己沒有嘗試過在Linux下安裝
剩下的就是自己摸索了~
備註一下,我的OS是Linux mint,debian家族或ubuntu家族應該差不多,fedora或是其他的distribution就得自行參考一下


  1. 在Steam平台上安裝Age of Wonders III
  2. 從遊戲頁面當中點選Workshop

  3. 在上方的搜尋bar當中搜尋Chinese,就會出現這個Mod,訂閱這個Mod

  4. 啟動遊戲,在啟動器頁面切換至User Contect分頁,點選Update,就會出現前面訂閱的漢化包,這時可以先關閉遊戲啟動器

  5. 開啟/home//.local/share/AoW3/UserContent/汉化包V1 [76561198136587593]
    就會出現作者說的zip壓縮檔
  6. 接著,Linux的遊戲目錄路徑則是
    /home//.local/share/Steam/steamapps/common/AoW3
    將目錄下的Language目錄壓縮打包備份
    將前一個步驟中下載的zip壓縮檔解壓縮,覆蓋Language目錄
  7. 重新開啟遊戲,這時的啟動器已經變成簡中的版本

  8. 進入遊戲同樣是簡中,但因為是漢化的緣故,可以看到有部份字串顯示怪怪的,可能是遊戲更新了而漢化包沒有更新


    基本上不影響遊戲性
  9. 先感謝這位老兄提供漢化包,只可惜,我簡中雖然看得懂大部分,看比較短的文章或是技術性文章還ok,看這種類似奇幻文學的東西就看的十分痛苦....
    所以接著處理繁體中文化的部份
  10. 這個漢化包當中,針對Language的部份不清楚是怎麼處理的
    沒有進一步研究他的結構或是多國語言處理方式...(我只是想玩遊戲...)
    但是在逛漢化包的過程中發現了Font目錄
    /home//.local/share/Steam/steamapps/common/AoW3/Language/English/Title/Fonts
    打開來看則是四個檔案大小一致的true type font,ttf檔案
    推測應該是漢化包自帶的中文字型,避免遊戲中沒有正確的中文字型造成方格字問題
  11. 從字型下手,將中文字型更換為簡體轉繁體字型
    (不修改原來的字碼,而是直接修改字體,將字體中的簡體字直接替換成繁體字)
    基本上可以覆蓋90%以上的簡體字
  12. 替換時發現,如果字體的檔案大小太大,進行遊戲時會有一些異常現象,例如對話框或是選單消失的狀況
  13. 實際測試,這一包字型可以直接使用
    重灌狂人 - 將 [簡體中文] 的軟體介面瞬間變成 [繁體中文] 版!
    備份: https://drive.google.com/open?id=1U2kZf67-N7AQAms8v0S3PtTeiu8KXc9o
  14. 下載字體後,替換第10點路徑中的四個字型檔案,檔名維持原來檔名
  15. 更換字體後開啟遊戲
    Launcher還是同樣維持簡中,但不要緊...
    遊戲已經變成繁體中文了...




2018年8月31日 星期五

Remove utorrent torrent from command line

refer:
skyy99 post on utorrent forum
https://forum.utorrent.com/topic/66811-script-to-remove-finished-torrents/

The original post does not work, cuz it utorrent would check cookies, so I've fix it first
After fix the script, the script could fetch correct list and remove torrent and data correctly.

Second, I need find the oldest torrent, but the list structure is hard to sorting
So I try the dummy way ( But it save some coffee time for me :p )
Just find the oldest torrent and remove it.

Cuz I need the script for free the space automation,
So if the space still occupy, just need call it again. :p

It's dirty, but worked!


# Get the auth token.
user="********"
password="********"
server="127.0.0.1"
port="8080"
#removeAction="remove" # Change to removedata to remove torrent+data
removeAction="removedata"
Label="LabelText"
# Don't change anything below this line (unless you know what you're doing)

resp1=`wget --save-cookies cookies.txt --keep-session-cookies --http-user=$user --http-password=$password -q -O - \
 http://$server:$port/gui/token.html`
token=`echo -e "$resp1" | awk -F'[<>]' '/
]*id=[\"'"'"']*token[\"'"'"'][^>]*>([^<]*)<\/div>/ { print $5 }'` # Get the list of finished torrents resp2=`wget --load-cookies cookies.txt --http-user=$user --http-password=$password -q -O - \ http://$server:$port/gui/?list=1\&token=$token` # Substring it to the start of the torrents list. ndx=`echo -e "$resp2" | tr "\n" " " | awk '{ndx=match($0, /,"torrents": \[/); print ndx }'` sstr=${resp2:ndx} oldest=`date +"%s"` # Look at each line and identify the torrent listing. rx='^\[\"[^"]*\",[0-9]' IFS=" " for line in $sstr do if [[ "$line" =~ $rx ]]; then lineTokens=(`echo -e "$line" | sed -e 's/\[//g;s/\]//g;s/"//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' `) TokenLabel=$[${#lineTokens[*]}-15] if [[ "${#lineTokens[*]}" -ge "26" && "${lineTokens[1]}" == "136" && "${lineTokens[$TokenLabel]}" == "$Label" ]]; then if [[ $oldest -gt ${lineTokens[22]} ]]; then oldest=${lineTokens[22]} fi fi fi done for line in $sstr do # If this line matches a torrent item in the torrents property... if [[ "$line" =~ $rx ]]; then # Tokenize the fields. lineTokens=(`echo -e "$line" | sed -e 's/\[//g;s/\]//g;s/"//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' `) dlNdx=$[${#lineTokens[*]}-15] TokenCount=${#lineTokens[*]} TokenLabel=$[${#lineTokens[*]}-15] TokenStatus=$[${#lineTokens[*]}-7] TokenCompleted=$[${#lineTokens[*]}-4] # Double check that this is a torrent listing and that it's finished. #echo $line #echo "${#lineTokens[*]} ${lineTokens[$TokenLabel]} ${lineTokens[$TokenStatus]} ${lineTokens[$TokenCompleted]}" #if [[ "${#lineTokens[*]}" -ge "18" && "${lineTokens[1]}" == "136" && "${lineTokens[$dlNdx]}" == "1000" ]]; then if [[ "$TokenCount" -ge "26" && "${lineTokens[1]}" == "136" && "${lineTokens[$TokenLabel]}" == "$Label" ]]; then # Make the call to remove the torrent. if [ "${lineTokens[$TokenCompleted]}" == "$oldest" ]; then echo "Torrent $removeAction: ${lineTokens[0]}" resp3=`wget --load-cookies cookies.txt --http-user=$user --http-password=$password -q -O - \ http://$server:$port/gui/?action=$removeAction\&token=$token\&hash=${lineTokens[0]}` if [[ "$resp3" == "" ]]; then echo "Error removing torrent: ${lineTokens[2]} (id: ${lineTokens[0]})" fi fi fi fi done rm cookies.txt

2017年6月29日 星期四

transfer to new domain, blog.mosquito.work

有天心血來潮,確認一下我的domain mosquito.tk還有多久到期...
大約剩下500天不到,可以renew了
正想續約的時候發現價格不太對
以前3年不到25塊美金,5年好像也是25塊美金
怎麼現在變一年要將近10塊美金了Σ(゚д゚)

因為我的domain還綁著G Suite,以前的Google apps
而免費版的G Suite不能更換domain
所以內心交戰許久...

最後考量了很久
G Suite也是沒在用,只有用mail當mail agent收公司信
但實際上,另外申請一個gmail就可以取代原來的功能

原來的domain是ccTLD,搜尋時依照區域排序的原則也會被擺到後面去
(.tk是托克勞的地區頂級域名)

就決定重新找一個看的順眼的domain...

搜尋了一下,網路上的domain代銷商很多,而且domain的價格很亂
找到了一個可以直接列出所有domain比價網站
https://www.domcomp.com/

同時也注意到現在除了傳統gTLD,國家及地區的ccTLD以外,還多了些特別的TLD
同樣屬於gTLD,但是比較特別XDDD

原先想挑mosquito.black
但.black好貴阿...註冊要11塊多鎂,續約要18塊多鎂
本著勤儉持家的精神,買了一個domain就會用很久,既然會用很久,那挑便宜的也是合情合理

最後決定挑mosquito.work
最便宜的代銷商是porkbun(肉包?)
沒有踩到什麼關鍵字所以是照一般價格
註冊1.83 USD,續約6.67USD
如果踩到什麼關鍵字或是選擇的名稱比較短,通常會有一個特別的價錢
(特別貴的價錢...)

自己的domain還挑了一個.work
是有沒有這麼愛工作?!
想想,反正我的blog常常寫一些惡搞的dirty work
.work似乎也不錯:p

搬家、設定處理的差不多了
處理最久的部份應該是轉gmail...工作七年的mail數量很驚人阿

舊的domain會繼續維持轉址,直到過期再整個撤掉吧
從08年還在唸大學的時期就租的domain,到現在也將近9個年頭了
歷史的眼淚XDDDD