2019年1月12日土曜日

The Guild II:Renaissance + MegaModPack 0.95用日本語化

あけましておめでとうございます。
なんでいまさらThe Guild II:Renaissance + MegaModPack 0.95なのか。
それは、以前0.8用の翻訳に手を付けてしまったからです。。。
自業自得です。
そういえば0.8用の翻訳も正月早々にやったんでした。

で、超めんどくせーと思いながらMegaModPack 0.82とMegaModPack 0.95の追加・変更されたテキストを翻訳してみることにしました。

とりあえず差分を比較してみた結果、追加607件、変更221件、削除72件、合計900件もの変更がありました・・・

結局翻訳は手動でやるしかないわけで、追加変更分を涙目になりながら翻訳シートを埋めてみたのがこちらです。ま、ほとんど機械翻訳なんですけどね。
後期中年者から初期老齢者の境目になるとコピペ900回とかかなりツラい。
Weblioさん、Google Translateさん、いつもありがとうございます。
Google Translateさん、奇妙な造語をするクセ、なんとかしてください。

しっかし、あれですな。
久しぶりにシートを眺めると、機械翻訳のままのところ、本当にひどい。
以前からわかっちゃいるけど、訳文、18,000行くらいあるしね。一人じゃ無理だし、そもそも全然需要がないからいいよね。

で、成果物はこちら0.82用との絡みでファイル名をText095.dbtに変えてあります。ダウンロードしたらText.dbtにリネームして使ってください。
ついでに、気に入らない翻訳があったら是非直すのにご協力いただければ幸甚です・・・まぁねえよな

そんなわけで本年もよろしくお願いいたします。


おまけ:
シートから直接dbtを作るスクリプト
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python3 
 
# 
# MegaModPack0.95用翻訳「元」シートから0.095用のText.dbt を生成するpython3 script. 
# input:  
#       1. 0.95用シートのtsv 
#          tg2tsv_095.tsv 
# output: 
#       0.95用のText.dbt 
#           Text095.dbt 
# 
 
import re 
 
def make_dbt(): 
  regpattern = r"^\"*(\d+)\"*\t\"*(.*)\"*\t\"*(.*)\"*\t\"*(.*)\"*\t\"*(.*)\"*\t\"*(.*)\"*\t\"*(.*)\"*\t\"*(.*)\"*\r*\n$" 
  reg = re.compile( regpattern ) 
   
  with open( r"tg2tsv_095.tsv", "r", encoding="utf-8" ) as fin: 
    dic = dict() 
    for line in fin: 
      m = reg.match( line ) 
      if not m : 
        continue 
      index = m.group(1) 
      id = m.group(2) 
      en082 = m.group(3) 
      ja082 = m.group(4) 
      vanilla = m.group(5) 
      en095 = m.group(6) 
      ja095 = m.group(7) 
      type= m.group(8) 
      if ja095 == "" and en095 != "" : 
        raise TypeError('Japanese translation is not completed!!') 
      dic[ int(index) ]  = [ index , id, ja095 ] 
 
  keys =  sorted(dic.keys()) 
  isfirst = True 
  with open( r"Text095.dbt", "w", encoding="utf-16" ) as fout: 
    for key in keys: 
      if isfirst == True : 
        isfirst=False 
        fout.write("//Table File\n//by RUNEFORGE Game Studio\n//Translated by ttgcameback.blogspot.com\n\nTable Description:\n\"id\" INT  0   |\"label\" STRING  0   |\"english\" STRING  0   |\n\nData:") 
        fout.write("\n") 
      arr = dic[key] 
      line = arr[0]  
      line +="   \"" 
      line += arr[1] 
      line +="\"   \"" 
      line += arr[2] 
      line += "\"   |\n" 
      fout.write(line) 
 
make_dbt()