ローカリゼーション前提の設計ではなかったために、手作業の地獄を味わう
こうして2021年4月後半、日本語化プロジェクトが立ち上がった。そして、池原氏を待ち受けていたのは地味につらい道のりだった。
ゲームのソースコードを見て、池原氏はがくぜんとした。ミッションはobjective.json(チュートリアルの設定)、description.md(チュートリアルの概要)、walkthrough.md(チュートリアル本体)、validator.js(解答の検証ロジック)、*.pug(Cedricとの会話テキスト)などで構成されているのだが、ミッション名など翻訳が必要な文字列が各ファイルに直接書き込まれていることが分かったのだ。要するに、ローカリゼーション前提で設計されていなかった。
池原氏は、文字列のエクスポート、翻訳やレビュー、ソースコードへの埋め込みという3ステップで作業を進めた。
まずは、ファイルから文字列をエクスポートする。ファイルそのままを翻訳に出すことも考えたが、中のロジックが第三者にすべて見られることは避けたい。
「エクスポーターを作ればよかったのですが、例えば.jsファイルの文字列フォーマットが共通化されていないなど、作成するにも少し時間が必要でした。さらに翻訳に関わるリードタイムを考えたとき、今回はスピードを優先することにして、手作業で書き出すことにしました。ソースコードをすべて見ながら文字列を抜き出すので、かなり心の折れる作業でした」(池原氏)
続いて、文字列を翻訳する。ここでは翻訳会社を利用し、戻ってきた翻訳物を画面表示に適した形に成形。日本向け製品では仕様が異なる部分の表記などを修正するなどで整えた。
最後は、ソースコードに文字列を埋め込む作業だ。自動化もできなかったため、「魂を削りながら」手作業で埋め込む池原氏。
プロジェクトを立ち上げてから約1カ月半。日本語プレビュー版が公開された。まだ4つのミッションしか翻訳されていないが、すでにプレーした人たちからはおおむね好評と池原氏は言う。
もちろん、今後はまだ翻訳されていないミッションも随時追加し、コンテンツを拡充していく予定と池原氏。だが、今の“力業”は効率が悪く、何より池原氏の精神と体力を削り過ぎる。そこで同氏は、コンテンツ強化に向けて「エクスポートツールの構築」「.mdファイルをそのまま翻訳に出す」「国際化ライブラリの導入」の3つの取り組みを開始した。
エクスポートツールについて、現在は.jsonの値、.jsや.pugなどの文字列を自動で抜き出して、その精度を目視で確認しながら微調整する作業を行っている。「現時点で90%程度の精度」と、幸先はいい。.mdファイルについては、そのまま翻訳に出せないか翻訳会社と目下相談中。そして、国際化ライブラリについてはTwilioQuestチームと進め方について議論しているという。「ライブラリのi18nextをもとにゲーム画面やコンテンツ部分の必要な箇所を国際化できないか、検証を始めています」(池原氏)
課題は、各ミッションのフォルダ構造をそのままにローカライズできないかという点だ。「検証してみましたが、おそらく構造を変えなければなりません。なので、少し時間がかかるかもしれません。まずは取り急ぎ、日本語のほか、フランス語やポルトガル語、ドイツ語などについて少しずつ検証を進めている状況です」(池原氏)
今回の事例は、他のアプリケーションのローカリゼーションでも共通する課題だ。日本向けに開発したサービスをグローバル展開することになり、多言語対応したいとなったとき、何かしらの参考になれば幸いと池原氏は言う。
「TwilioQuestのローカリゼーションは、自分ができることを製品開発チームやビジネス側に提案した結果、うまくいった事例。提案し続けることの大切さを実感しました」と、池原氏は振り返る。
「今後もコンテンツを追加していく予定です。ぜひ一度遊んでみてください」(池原氏)