アセット翻訳のためテキスト翻訳サービスを使ってみた


ちょっと前に Unity Asset の Caronte FX ってのを買いました。値段は非常に高いですが面白いアプローチと Unity との親和性とかで将来性を感じて先行投資の意味で購入してみました(Sale 時ですが)。ただ、このアセット、付属のサンプルやチュートリアルが中途半端で、ドキュメントも古く現在のバージョンの一部しか語っていません(使って覚えろや!って感じです)。

CaronteFX


仕方なく使って覚えている最中なのですが、ドキュメントが(2年前で意味が)無いのでソースコードというかエディタ上のものが唯一のドキュメントな感じです。幸いにもツールチップには説明があるのでそれだけが頼りです。当たり前ですが英語です。翻訳したいが量が量だしなぁ…と思いソースコード内の ToolTip 要素を片っ端から自動翻訳するアプリでも作るかと思っていたら、なんと文字列が外部リソースになっていました。すばらしい!

XML になっているので下図のように定義されています。(ちょっと前に作った XML Viewer です。XML -> DataSet -> DevExpress GridControl といった感じで実装されてるだけです)
XmlViewer

やっと本題です。[name] に ToolTip の文字を含んでいるのをひたすら翻訳サービスで訳してもらえればいいかなと。それ以外の「見出し」は直訳されると気持ち悪いことに無いそうなので英単語のままでいいかと。

翻訳サービス

  • Google 翻訳
  • Google Cloud Translation API
  • Bing 翻訳
  • Azure Translator Text API

ざっくりサービスはこんか感じかな? とりあえずタダでできそうな Google 翻訳サクッと作ってみました…が、WEB ではなくクライアントアプリでのほぼ間がない要求と応答の連続で「攻撃?」とみなされたのか途中からアプリからの要求を一切受けてくれなくなりました。まぁタダ乗りでしたしね金払えってことなんでしょうね。きっぱり諦めました。

そうなると有料のクラウドサービスになるわけで、ざっくり Google Cloud Translation API だと 20 $/1M(char)。Azure だと 10$/1M(char)。 うーん、しかも Azure では F0 という無料プランで 2M(char)/1月 とかあるし… オーバーしても私は MSDN 会員だから月ごとに使えるクレジットあるし…ぶっちゃけ Azure の方が使い慣れているので Azure でやってみました。

TranlatorConsole SampleAzure Token を見れば十分だったのでサクッと Google 翻訳版から差し替えて作ってみました。
Monitoring
文字単位ってことは英語とかは文字数多いので日本語に比べれば不利ですよね。只で使えるのが 2,000.00 千(文字)なので自分だけのアプリだったら十分枠内ですね。うーんいつも思うけど確かに日本語的には単位正しいんだけど、68.73K とか 2.00M と書かれたほうが見やすい(瞬時に判断できるといいう意味で)と思うのは職業のせいだろうか…? 千ってなに?脳内で K に逆変換してるよね~

Azure Translator Text API

XmlViewer2

Google 翻訳

XmlViewer Google

うーん、やっぱり Google 翻訳の方が日本語としては良さそうに見えますね。Microsoft 系は直訳っぽく日本特有の表現が不足しています。「外来語は直訳するくらいならカタカナにしてしまえば日本人は納得する」とかw。 Azure でもある程度はされていますが「まだまだだね」って感じです。今後に期待です?。

ま、実際の英語を訳する時間に比べれば、機械翻訳された文章の校正の時間の方が圧倒的に早いので問題ありませんよね。

文字リソースのXML は英語しかなく、切り替え方法もまだ提供されていないようなので、手っ取り早く英語の方の XML(cr_strings_en.xml)を置き換えます。うーん。Unity Editor が High DPI に未だに対応していないのでホントに文字が読みづらいですね(ただ引き伸ばしているだけですもんね~)。

Result

うん。十分ですね~。これで勉強がはかどるハズ!

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)