アプリを多言語対応しよう
00要約Overview
01物語Story
Situation
1.2 のとおり、まず 2 言語対応を目指す。最初に手をつけるのは、アプリ本体の表示文字列である。
Complication
しかし、画面のコードに文字列を直書きしていると、後から各言語へ置き換えるのは地獄になる。どこに何の文字列があるか探し回ることになり、言語を 1 つ足すたびに全画面を触ることになる。
Question
アプリの表示文字列を、どうすれば低コストで多言語化できる構造にできるか?
02解決Solution
Criteria
- 表示文字列が一か所に集約されていること
- 翻訳を AI にまとめて任せられること
- 後から言語を足すのが容易なこと
Answer
表示文字列を「言語ファイル」として外に出す。コードからは文字列そのものではなくキーで参照し、実際の文言は言語ごとのファイルに持たせる。翻訳は、その言語ファイルを AI に渡して「この言語ファイルを○語に翻訳して」と頼むだけ。最終確認はするが、大部分は AI が仕上げてくれる。
Reason
文字列が一か所に集約されていれば、翻訳も差し替えも一度で済むからである。 コードに散らばっていると、AI もどこを訳せばいいか分からず、言語追加のたびに全画面を触ることになる。言語ファイルにまとめておけば、AI がまとめて訳せて、言語を足すのもファイルを 1 枚増やすだけになる。大事なのは翻訳技術ではなく、多言語化しやすい構造で最初から実装しておくことだ。
ただし、一つ落とし穴がある。キーと値だけを AI に渡すと、その単語がどの画面の何を指すのか分からず、誤訳する。「Home」が家なのか先頭画面なのか、AI には判断できない。だから各文字列に、「どの画面の、何のための言葉か」という文脈をコメントで添えておく。これが訳の精度を大きく左右する。
Options
- 画面に文字列を直書きする — 最初は速いが、多言語化の段になって全画面を触る羽目になる。だから採らなかった。
- 機械翻訳 API を都度呼ぶ — 文脈理解が弱く誤訳が増える上、運用コストもかかる。AI にファイルごと文脈つきで訳させる方が質が高い。
03結果Result
Good
構造さえ整えれば、2 言語対応がそのまま 5 言語・50 言語へスケールする。手順は同じで、増えるのは言語ファイルの枚数だけ。地味で膨大な翻訳を、AI に任せられるようになった。
Bad
AI も、文脈がなければ誤訳する。特に専門用語や、言葉遊びを含む表現は要注意で、最終確認は欠かせない。構造と文脈を用意するのは、あくまで人の仕事である。
Follow-up
アプリ本体が多言語化できたら、次はそれを世に出すためのストア申請情報を多言語化する。続きは 1.2.2 アプリ申請を多言語対応しよう。