csv読み込んで ローカライズ

はじめに

今まで作ってきたゲームは文がなく、ScoreとかContinueぐらいの一般的な単語しかなかったので、特にローカライズなんてことは考えてなかった。
だが今後のことを考えて、今回整理することにした。
画像などのバイナリデータもローカライズの対象になるのだけど、今回はテキストを切り分けることができれば良い。

このスライドが参考になります。
20140530 Unity に於ける Localization のおはなし

ちなみにGoogleのスプレッドシートと連携してローカライズするアセットがある。
Localization package
GoogleFu

CSVの読み込み

シンプルにCSV読み込んでやりたい。
まず、csvを Resourcesフォルダを作って中に格納する。Resourcesフォルダに入れると Resources.Load(“ファイル名”) でアクセスすることができる。
テキスト アセット / Text Asset

csvの中身はこんな感じ。 key, 日本語, 英語 という列。
[text]
lang,日本語,English
greeting,こんにちわ,Hello
explain,これは寿司です,This is sushi
[/text]

CSVのパース

CSVのパースは、下記のページに正規表現を使った方法が記載されているので、それを参考にすればOK。
読み込んだCSVデータは、keyを元にDictonaryに突っ込めば良い。
CSV形式のファイルをDataTableや配列等として取得する

言語設定による分岐

ユーザの言語設定は、Application.systemLanguageで取得できる。

if(Application.systemLanguage == SystemLanguage.Japanese) {
 lang = "ja";
} else {
 lang = "en";
}

以上を組み合わせてLocalizeManager的なのをシングルトンで作って、テキストが必要になったらkey指定して取得する感じ。

確認バージョン

Unity 4.6