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で取得できる。
1 | if(Application.systemLanguage == SystemLanguage.Japanese) { |
以上を組み合わせてLocalizeManager的なのをシングルトンで作って、テキストが必要になったらkey指定して取得する感じ。
確認バージョン
Unity 4.6