これまでにリリースしたアプリにおいても、いくつかローカライズしたものがありますが、全ての言語に対応するには億劫になります。
そこで、インターネットで使われている言語やスマートフォンの普及率などを比べてみて、ローカライズした方が良い言語を絞り込んでみました。
ローカライズとは
ローカライズと聞いて、パッと思いつくのは翻訳だろうと思いますが、それだけではありません。
Wikipediaには「コンピュータソフトウェアを現地語環境に適合させること。」と書かれていて、例えば英語、中国語、スペイン語などに翻訳する作業と同時に各国に合わせた状態(法令・慣習に合わせる)に仕上げる必要があります。
日本だけで展開するのは勿体ない
私は日本人で日本語を使っている訳なので、当然、作成するアプリも、まずは日本語表示のものになります。
このままGoogle Play ストアにアップロードして全世界に展開するのも良いですが、日本人があまり有名でもない限り外国語で表記されたアプリを検索しない&ダウンロードしないのと同様のことが外国でも発生しているはずです。
せっかく作成したアプリを日本だけで留めておくことは勿体なさ過ぎるので、是非ともローカライズするようにしましょう。
因みに私がリリースしたアプリの中で、国別のインストール数で日本の比率が最も低いアプリは、43.75%になります。
つまり、このアプリの場合はローカライズするしないで、およそ2倍もの開きがあるということです。
ローカライズするアプリ
今回は、先日リリースしたAndroidアプリの更新日時修正ツールをローカライズします。
いつもなら、string.xmlファイルを言語・国別にコピーした後に各項目を翻訳したらお仕舞いでしたが、このツールの特性上、これだけでは済みませんでした。
何が悪かったかというと、日付と時刻の表記の仕方です。
日本人なら、単純に「YYYY/MM/DD HH:MM:SS」で表記すれば、「これは、年月日と日付」と理解してくれますが、世界だとそうはいきません。
同じ英語を使っているアメリカとイギリスでさえも「MM/DD/YYYY」と「DD/MM/YYYY」と表記が異なります。
言語・国別の表記を簡単に切り替える方法はないものかと調べてみると、android.text.format.DateUtilsを使う方法がありましたが、これには問題がありました。
それは、なんと、秒までの表示に対応していないことです。
引数のフラグを使って、いろいろな表記の切り替えが用意されているのに、どうしてなのか、秒が抜け落ちています。
あと、バージョンによって動きが怪しい気がしました。
Androidで日付表記をお手軽に国際化する – LINE ENGINEERING
試してみた中で、「YYYY/MM/DD HH:MM」までの表示では、以下のような感じになります。
String test = DateUtils.formatDateTime(this, System.currentTimeMillis(), FORMAT_SHOW_YEAR | FORMAT_SHOW_DATE | FORMAT_SHOW_TIME | FORMAT_NUMERIC_DATE); Log.d("TEST", test);
2019/2/20 18:23
あと、時間差も計算してくれますが、FORMAT_NUMERIC_DATEを付けているのにも関わらず、日本語表示になってしまいます。
String test = DateUtils.formatDateRange(this, System.currentTimeMillis(), System.currentTimeMillis() + 341000, FORMAT_SHOW_TIME | FORMAT_NUMERIC_DATE); Log.d("TEST", test);
18時23分~18時28分
結局のところ、どうすることにしたかというとISO 8601という日付と時刻の表記についての国際規格になるべく合わせることにしました。
基本形式(基本表記・標準表記)と拡張形式(拡張表記)の2種類の表記方法があって、どちらも日付と時刻を「T」で区切るというものです。
基本形式では、YYYYMMDDThhmmss+0900
拡張形式では、YYYY-MM-DDThh:mm:ss+09:00
この日付と時刻の組合せで、基本形式と拡張形式との混在は許されず、どちらかに統一しなければなりません。
年月日と日付の並びは日本人にとって分かりやすい形式ですが、日付と時刻の区切りに「T」を挟まなくてはならないという仕様です。
どうして、「T」なのか、スペースとかアンダーバーなどにすれば良かったのにと思います。
実はもう、公開済みのアプリでしたが「YYYY/MM/DD HH:MM:SS」という表記を「YYYY-MM-DD HH:MM:SS」に変更することにしました。
「T」とタイムゾーンについては、省かせてもらうことにしましたが、これなら外国でも間違いが起きづらいと思います。
Exifに書き込まれた日時は、先日調べたとおりに「YYYY:MM:DD HH:MM:SS」という規格なので安心です。
日本発祥の規格なのに、どうして日付の区切りがスラッシュではなく、コロンになったのでしょうか。
スマホやデジカメで撮影した写真に埋め込まれるExifについて – moshimore Knowledge
インターネットで使われている言語
日付と時刻の表記についての説明が長くなってしまったのですが、ローカライズする言語を何にするか考えてみます。
やはり人口が一番多い中国の中国語か、それとも使っている国が多い英語にしておくべきか。
インターネットで使われている言語やスマートフォンの普及率などを比べてみて、ローカライズした方が良い言語を絞り込んでみました。
インターネットで使われている言語は、以下の記事を参考にしました。(2017年12月末までの集計とのことです。)
Top Ten Internet Languages in The World – Internet Statistics
言語 | 人口 | ネット普及率 | ネットユーザー | ネット使用率 |
---|---|---|---|---|
英語 | 1,462,008,909 | 72.2% | 1,055,272,930 | 25.4% |
中国語 | 1,452,593,223 | 55.4% | 804,634,814 | 19.3% |
スペイン語 | 515,759,912 | 65.5% | 337,892,295 | 8.1% |
アラビア語 | 435,636,462 | 50.3% | 219,041,264 | 5.3% |
ポルトガル語 | 286,455,543 | 59.1% | 169,157,589 | 4.1% |
インドネシア語 マレーシア語 |
299,271,514 | 56.4% | 168,755,091 | 4.1% |
フランス語 | 412,394,497 | 32.5% | 134,088,952 | 3.2% |
日本語 | 127,185,332 | 93.3% | 118,626,672 | 2.9% |
ロシア語 | 143,964,709 | 76.1% | 109,552,842 | 2.6% |
ドイツ語 | 96,820,909 | 95.1% | 92,099,951 | 2.2% |
トップ10の言語 | 5,135,270,101 | 62.5% | 3,209,122,400 | 77.2% |
他の言語 | 2,499,488,327 | 38.0% | 950,318,284 | 22.8% |
トータル | 7,634,758,428 | 54.5% | 4,159,440,684 | 100.0% |
続いて、スマートフォンの普及率は、以下の記事を参考にしました。(2018年3月集計とのことです。)
世界40カ国、主要OS・機種シェア状況 【2018年3月】~インバウンドWebプロモーションにシェア状況データを活用する~
国 | 人口 | スマホ普及率 | スマホユーザー |
---|---|---|---|
中国 | 1,415,045,928 | 83% | 1,174,488,120 |
インド | 1,354,051,854 | 40% | 541,620,742 |
アメリカ | 326,766,748 | 78% | 254,878,063 |
インドネシア | 266,794,980 | 60% | 160,076,988 |
ブラジル | 210,867,954 | 67% | 141,281,529 |
ナイジェリア | 195,875,237 | 56% | 109,690,133 |
ロシア | 143,964,709 | 61% | 87,818,472 |
日本 | 127,185,322 | 64% | 81,398,606 |
ベトナム | 96,491,146 | 72% | 69,473,625 |
フィリピン | 106,512,074 | 65% | 69,232,848 |
ローカライズした方が良い言語
インターネットで使われている言語の集計に基づいて、トップテンまでの言語をローカライズする場合は、日本語を含めて以下の10言語になります。
- 英語
- 中国語
- スペイン語
- アラビア語
- ポルトガル語
- インドネシア語
- マレーシア語
- フランス語
- 日本語
- ロシア語
スマートフォンの普及率の集計に基づいて、トップテンまでの言語をローカライズする場合は、日本語を含めて以下の10言語になります。
- 中国(中国語)
- インド(ヒンディー語、英語)
- アメリカ(英語)
- インドネシア(インドネシア語、 マレー語)
- ブラジル(ポルトガル語)
- ナイジェリア(英語)
- ロシア(ロシア語)
- 日本(日本語)
- ベトナム(ベトナム語)
- フィリピン(フィリピン(ピリピノ)語、英語)
インドについては、人口の53%がヒンディー語を使い、続いて、ベンガル語、テルグ語、マラーティー語、タミル語などを使うとのことです。
インドってヒンディー語の国じゃないの?~インドの言葉と歴史~ | ITエンジニア留学 in インド
ローカライズから除外しても良い地域
昨年から話題に上がっている、GDPRの件でアプリ展開を控えておいた方が良い地域があります。
そこに上がっている地域のローカライズは、無駄になってしまうので除外しても良いと思います。
- アイスランド
- アイルランド
- イギリス
- イタリア
- エストニア
- オーストリア
- オランダ
- オランダ領アンティル
- キプロス
- ギリシャ
- クロアチア
- スウェーデン
- スペイン
- スロバキア
- スロベニア
- チェコ
- デンマーク
- ドイツ
- ノルウェー
- ハンガリー
- フィンランド
- フランス
- ブルガリア
- ベルギー
- ポーランド
- ポルトガル
- マルタ
- ラトビア
- リトアニア
- リヒテンシュタイン
- ルーマニア
- ルクセンブルク
アプリのGDPR対応、とりあえず一旦対象国での配信を止めて様子見って人は下記の31ヶ国を配信しないように25日までに各ストアで設定しておく。
対象となるのは広告表示、アナリティクス、ランキングなどの機能があるアプリ。
ちゃんとしとかないと億単位の制裁金の可能性。
まとめるとこんな感じ? pic.twitter.com/cL9lf5P7xb— いたのくまんぼう@Unity入門書発売中! (@Kumanbow) 2018年5月23日
まとめ
ローカライズには翻訳を通したり、日付と時刻の表記を変えてみたりなど、面倒なことも多いですが、せっかく作成したアプリを多くの人にダウンロードしてもらうには、是非とも対応していきたいものです。
今回、調べた中でローカライズした方が良い言語・地域は以下のようになりました。
まずは、英語と中国語に対応していきたいと思います。
おすすめのローカライズ
- 英語(en-US)
- 中国語(zh-CN、zh-TW)
- アラビア語(ar)
- ポルトガル語(pt-BR)
- インドネシア語(id)
- マレーシア語(ms、ms-MY)
- 日本語(ja-JP)
- ロシア語(ru-RU)
- ヒンディー語(hi-IN)
- ベトナム語(vi)
- フィリピン(ピリピノ)語(fil)
以上、【スマホアプリ】ダウンロード数に影響するローカライズした方が良い言語について【言語ランキング】でした。