冬眠期間

クマの冬眠期間中にみんなでワイワイする(したい)ブログ

【MineCraft】modの日本語化

簡単かつ力技でmodの日本語化する方法を紹介します。

突然ですが、私は馬鹿です。尋常じゃないくらい馬鹿です。一応大学出てますが通称Fランで、偏差値も数字ではないBF(ボーダーフリー)の大学なので、そこらの高卒の方々よりも馬鹿です。

具体例をあげると、世界地図はおろか、日本地図が読めない(自分が住んでる地方はわかりますが、他地方になるとどの県がどこにあるかわからない)ですし、英語も、This is a penレベルです。

無理やり長所を上げると、興味や関心を持ったことはとことん追求します。学校で習うような、国数英理社にはこれっぽっちも興味がわかず壊滅的(一応中学生レベルならどうにかなりますが・・・)で、自分の好きなことだけ勉強してきたからです。

 

まぁ何が言いたいかというと、日本語に翻訳されてないmodの解説ができないです!

なので、modを日本語化しちゃおうということです。

ただ、今回やる方法は片っ端からgoogle翻訳にかけちゃう力技のような作業なので、いつかツール化しようと考えてます。たしかgoogleAPIに翻訳用のライブラリがあったような気がしますし、最悪、レスポンスから結果だけ取得って方法もできなくないと思ってます。

 

長々と馬鹿アピールもできたので、以下が方法です。

※必ずバックアップを作ってから作業を行い、自己責任でお願いします!!データが破損した等の不利益はこちらでは責任負いかねます!!

 

①日本語化したいmod(jar形式のファイル)を任意の場所に配置して解凍する(解凍ができない場合は拡張子を.zipに変更してから再度解凍)

正常に解凍できれば、modファイル名と同じフォルダができるはずです。

f:id:beowolf5963:20190508104052p:plain

②「./解凍したmodのフォルダ/assets/作者がつけたフォルダ名/lang」もしくは「.lang」でlangファイルを見つける。

③ほとんどのmod作者は海外 or 共通言語が英語なので、英語版のファイル「en_us.lang」というファイルを適当なテキストエディタで開く。

f:id:beowolf5963:20190508104950p:plain

細かい字ですがこんな感じの中身になっています。見たことない人はギョッとするかもしれませんがこちらのファイル、なにか規則的に記載されています。「~=~」と必ず「=」で値が区切られていますね。技術者でもない限り全く役に立たない知識ですが、このファイルを読み込んで、動的にメッセージを取得するような仕組みになっています。

④「=」で分割してExcel or googleスプレッドシートとかに貼り付ける

f:id:beowolf5963:20190508110030p:plain

上記のように=で分割したので、B列が左辺、C列が右辺というふうに分割できました。

こちらの手順は自分のやりやすい方法で大丈夫です。とりあえず個人的に表計算ソフトのほうが扱いやすいので使用しただけなので。

 

⑤右辺の値を片っ端からgoogle翻訳にかける

上記の通りで右辺の値をgoogle翻訳にコピペして、翻訳結果をガンガンもとのExcel等に貼り戻す作業です。google翻訳はMAX5000文字なので、大きいmodの場合、翻訳量を調整しながら複数回行ってください。

翻訳における注意点として、

1.左辺は翻訳しないでください。プログラム的にキーとして扱われる値なので、これが違うと正しくmodが動きませんので。

 

2.necronomicon.text.materials.abyssalnite.1(左辺)=Abyssalnite is a new ore found in Darklands biomes. It is stronger than diamonds, and can be used to create tools, weapons and armor. Can be found below Y = 32. When mined, it drops ore blocks to smelt for ingots. The ingots are purple, much like the ore itself.(右辺)

このように右辺の中でも=が使割れていることもあるため、分割する際は考慮する。

 

3.JavaのFormatが使われている場合

%2$s

わからない人はわからないでしょうが、こちらJavaのFormatクラスで用いられる記法です。これを翻訳すると、

%2 $ s

こんな感じで「%」が全角に「$」の前後に半角スペースが入った状態で翻訳されます。こちらもプログラム的に動かなくなるので、翻訳したときに翻訳前後で同じか確認してください。

少しでもJavaに興味があるならこちらをご参照ください。なんでこういう書き方してるかわかります。わからなければ聞いてください。

⑥翻訳したものを右辺と左辺を「=」で結合し直してテキストファイルに貼り付けて、「ja_jp.lang」というファイル名で文字コードを「UTF-8にしてファイルをlangフォルダに格納する。sjis等で保存すると文字化けまつりになります。

⑦「./解凍したmodのフォルダ/」でファイルを全選択して再度zipに圧縮する

f:id:beowolf5963:20190508111943p:plain

上記のようにmod名のフォルダの中身を全選択して圧縮してください。

⑧圧縮したファイルの拡張子を「jar」に変えて、マイクラホームのmodフォルダに置く

zipもjarも所詮は圧縮されただけのファイルなので拡張子を手で戻しても問題ありません。

 

以上の手順でマイクラを起動すると、

f:id:beowolf5963:20190508112318p:plain

このように日本語化された状態で表示されます。右上の「3のうち1をターンアップ」というのは、英語版langファイルの「Turn-up %1$s of %2$s」を翻訳して「%2$sのうち%1$sをターンアップ」になったので、若干気持ち悪い感じが出ていますね笑

まぁ別に使う上で気になるだけで誤変換してるわけではないので一旦放っておきます。やってて気持ち悪い翻訳されてるなとかあればlangファイルで気になる文章を検索して、修正も可能なのでいい感じに翻訳していただければなと。

最初にも書きましたが手でやるのは馬鹿らしいのでツール化したいですね・・・。exeをどっかのサーバに上げるのかgithubでコードを公開するのかは全く決めてませんが、いつか自動化します。

 

以上が日本語化(脳筋)の手順になります。なにかの一助になれば幸いです。