ゲーム開発で多言語対応(ローカライズ)のやり方とすべき理由を解説!

Unity

ローカライズってなんやねん!

皆さんローカライズって聞いたことがあるでしょうか?


私は初めてこの言葉を聞いた時
「あぁ、あれね」って思いました。


…すいません、うそです。全然分かりませんでした。


まぁ正直聞きなれない言葉ですよね。

ローカライズとは例えば日本人がアメリカとか別の地域に住む方に
向けてアプリや製品を使えるようにすることです。

つまり特定の地域の法律・文化に合わせてゲームの内容を修正するような
ことをローカライズという
んだそうです。


これを聞くとなかなか難しそうな作業ですよね。


でももしローカライズ出来れば日本以外の地域の人が
自分の作ったアプリを使ってくれる可能性が出てきます。

これ出来たら結構すごくないですか?

日本だけを対象にしてたら最大で1億2千万人の人がアプリの対象者になりますよね。

それがもしアメリカにローカライズ出来たとすると更にアメリカの人口約3億人
が追加で私のアプリの対象者になるんです。


つまり私のアプリ対象者が約1億人から約4億人に4倍も跳ね上がるわけです


しかし上記の通りローカライズはなかなか難しい…。

アメリカに住んだことがある人であれば
その地域の特徴とかも分かるかもしれないのですが
住んだことない人間がその地域の特徴に合わせて
アプリを修正するというのは私はなかなか難しそうだなと判断しました。


そこで私はとりあえず
ローカライズ≒多言語対応
と考えております。


日本語を英語にするぐらいであれば
まだ出来なくはないかなと思うんですね。

「いやいや、それも難しいよ」って思っている方!
大丈夫です、今の世の中意外といけるもんなので
そこらへんを解説していこうと思います!

ではいきましょー!

そもそもどの言語で翻訳する?

正直最初に考えるのはどの言語に翻訳するのか?
ということですよね。

とりあえずパッと思いつくのは世界で一番使われている言語に
翻訳すればよさそうってことじゃないでしょうか



10人しか使わない言語に翻訳しても10人しか対象者が増えませんが
何億人も使っている言語であればその分だけ私のアプリ対象者が
増えることになるからですね。費用対効果がいいってことです。


とするとなんとなく英語じゃない?って思いませんか?


でも本当にそうでしょうか。
とりあえずそこから調べてみました。

世界の人口ランキング

世界で一番人口の多い国の母国語が世界で一番使われているんじゃないか
という気がしませんか?


私はそんな気がしたのでまずは世界の人口が多い国が
どこなのかを調べてみました。


データは以下から参照させていただきました。

世界人口ランキング・国別順位(2021年版)



2018年のデータとのことでちょっと古いですが
数年でそんなに変化はないかと思いますので参考になるかとおもいます。

順位人口
1位中国14億3千万人
2位インド13億5千万人
3位アメリカ3億2千万人
4位インドネシア2億6千万人
5位パキスタン2億1千万人
6位ブラジル2億人
7位ナイジェリア1億9千万人
8位バングラディシュ1億6千万人
9位ロシア1億4千万人
10位日本1億2千万人

こう見ると中国とインドが圧倒的に多いですよね。


中国はアメリカの人口の4倍以上にもなってます。


そうすると英語より中国語に翻訳した方がよくないかと
思いそうになりますよね!


しかし実はそうでもないようなんです。

実際に使用している人数で出す

Image by Michael Gaida from Pixabay

世界で一番人口が多いのは中国ですがその母国語である
標準中国語を使っている人数でみると実は世界一ではなくなるんだそうです。


実際私も仕事で中国の方と関わったことがあって
中国について聞いてみたのですが中国は土地が広いこともあり
それぞれの地域で全然違った言葉を使うんだそうです。

Photo by 丁亦然 on Unsplash



つまり「中国語」と一括りにされていますが
「中国語」もかなり種類があるんだそうで
その中で一番使われているのが「標準中国語」です。


「標準中国語」は政府や北京に住んでいる人などが一般的に使っているようなのですが
「標準中国語」を使っている人からすると全然違う「中国語」を
使っている人が何を言っているか全く分からなかったりもするそうです。




つまり中国人全体で考えると「標準中国語」を使っている人は部分的なんだそうです。


ということで母国語として限定するのはちょっとズレてるようなんですね。

母国語で調べるのではなく実際に生活で使用している言語での人数でみるのがよいようです。
そうした統計が既に存在しており2017年にstatistaというところが統計データを出しています。

Most spoken languages in the world | Statista
How many people speak English? This statistic shows the most spoken languages in the world. There were around 1.3 billion native Chinese speakers a the time of ...

結果は以下のようになったそうです。

順位言語使用人数
1位英語13億9千万人
2位標準中国語11億5千万人
3位スペイン語6億6千万人

日常生活で英語を使う、もしくは第二母国語として
英語を使う人が世界で一番多いということです。

更に別の統計データもあります。
インターネット上で最も使われている言語はなんなのか
割合を出したんだそうです。
これにしても実は英語が最も高く54.4%でした。

参考資料は以下です。

Infographic: Languages Most Used On the Web vs. IRL
The chart shows how languages are represented in real life versus across the web’s top 10 million most popular sites.



現実世界でもインターネット上でも
一番多く使われているのは統計的に
英語なんですって。

こうやってみるとやはり英語に翻訳するのがよさそうですね!

英語分からん人間が日本語を英語に翻訳する方法

では本題です。

どうやって日本語を英語に翻訳するか?
私はDeepL翻訳

DeepL翻訳:世界一高精度な翻訳ツール
テキストや文書ファイルを瞬時に翻訳します。個人でもチームでも、高精度の翻訳をご活用いただけます。毎日、何百万もの人々がDeepLを使って翻訳しています。

とGoogle翻訳

Google 翻訳
Google の無料サービスなら、単語、フレーズ、ウェブページを英語から 100 以上の他言語にすぐに翻訳できます。

の二つを組み合わせて翻訳しています。


これであれば英語があまり分からない私でも
なんとか翻訳できました。


まずなぜこの2つの翻訳機を使っているかですが
Google翻訳はあのGoogleが開発した翻訳機なので
まぁ間違いないだろうということで使わさせて頂いています。



で、DeepL翻訳については色々と話題になっていたからです。


DeepL翻訳を知らない方に説明すると
こちらはAIにより翻訳を行わせているのですが、その翻訳が結構自然なんですって。


会話みたいに自然な翻訳をしてくれることで話題になっていて
すごい!って記事が出ていたり著名人がこれいいよ!って言っていたり
していたんです。それがあったので使っています。



ってことでこの2つをどうやって使っていくのか順を追って
説明していきます。



まず最初にどちらでもいいのですが片方に日本語を入れて翻訳させます。
今回はまずDeepLに日本語を入れますね。

例えば
「ボタンを押してみますか?」
と入力します。
すると
「Would you like to press a button?」
って翻訳されました。


次にこの翻訳が自分の思った通りになっているか検証します。


DeepLで翻訳したのでGoogle翻訳にこの英語を入力して
更に日本語に変換してみます。


すると
「ボタンを押しますか?」
に変換されました!


これは私の意図通りの翻訳なのでOKです。


つまりなぜ2つ翻訳機を使うかというと
1つを翻訳用、1つを翻訳の検証用という風に使い分けているんです。


で、意図通りに翻訳してくれたらそこで終わりなのですが
そうではないこともあります。


例えば以下です。
「タンスを開けてみますか?」
これをDeepLで翻訳したら以下のようになりました。
「Would you like me to open the wardrobe?」

ではこの英文をGoogle翻訳で日本語にしてみましょう。
すると
「ワードローブを開けてくれませんか?」
という風に翻訳されました。


ワードローブは洋服だんすらしいので
これはいいとしましょう。


しかし、日本語の感じが私の意図とはちょっと違っています。


ドラクエのようなイメージで
「タンスを開けてみますか?」
という質問文にしたかったのに
(あなたが私に)ワードローブを開けてくれませんか?
という風に登場人物が2人いるように思えちゃう文章になっちゃっています。


これはダメですね。
ということで
「タンスを開けてみますか?」
に何が足りなかったのか考えてみると
主語が抜けていました。



翻訳する側からすると
私がタンスを開けるのか、あなたがタンスを開けるのか
どっちなんだよってなっちゃった訳です。


ということで日本語では省略されがちな主語を以下のように
ちゃんとつけてあげます。


「あなたはタンスを開けてみますか?」
これでDeepLで翻訳させてみます。
すると以下になりました。
「Do you want to open the wardrobe?」

ではこの英文をGoogle翻訳で検証してみましょう。
「ワードローブを開けますか?」
になりました!
私の意図通りです!

Unityで日本語と英語を切り替える方法

では最後に翻訳した英語をゲーム上で表示する方法を記載します。

例えばスマホの使用言語が日本語の場合はテキストに日本語を表示して
そうでなければ英語を表示したい場合どうするか?というと
以下のようにスクリプト上で変更することができます。

    public bool IsJapanese()
    {
        if (Application.systemLanguage == SystemLanguage.Japanese)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

上記でIsJapanese()というメソッドを作っておいて
以下のようにテキストの文言を変更してあげます。

if (IsJapanese()){
    gameObject.GetComponent<Text>().text = "日本語だよ";
} else {
    gameObject.GetComponent<Text>().text = "This is in English.";
}

わざわざメソッド化しなくてもいいのですが
いちいちif文を

if (Application.systemLanguage == SystemLanguage.Japanese)

って毎度書くのがめんどくさかったので私はそうしました。

おわりに

Image by Valiphotos from Pixabay

いかがでしたでしょうか。


翻訳機の性能が上がってもちゃんとした文章にしないと
自分の意図とは違う英文になっちゃうこともあるのが
難しいところではありますが、それでも翻訳機が無かった頃に
比べれば断然簡単になっているはずです。


そして翻訳を行えば自分のアプリ対象者が何倍にもなってくれる
という可能性を秘めているので、やらないのはもったいないですね!


ローカライズは難しいですがせめて多言語対応は
しておきましょう!というお話しでした。

タイトルとURLをコピーしました