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
2
3
4
5
if(Application.systemLanguage == SystemLanguage.Japanese) {
lang = "ja";
} else {
lang = "en";
}

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

確認バージョン

Unity 4.6

Unityカテゴリの記事
Color SpaceがLinearのときUIの透明度が正しくならない
History Inspectorの紹介
History Inspectorの紹介
敵AIとビジュアルスクリプティング
Chronosを使った感想
コンポーネントの順番をスクリプトから並び替える
Smart Inspectorの紹介
Kris' Favorite Assets が便利
キー操作でUIのナビゲーションをループさせる
TextMeshProのSprite Assetを更新する
UnityPhysicsDebugDraw2D が便利
色管理を考える
細かいTips
ビルドスクリプトを書く
AnimatorのCulling Modeでハマった話
Vectrosityを使ってUGUI上で線や円のアニメーションをする
スプレッドシートからjsonデータを読み込む
ビジュアルノベルアセットFungusにコマンドを追加してカスタマイズする
Skinned Mesh Renderer の Boundsについて
シーンごとにビルド結果の容量を出す
シーンビューにクオリティ設定のスライダーを出すエディタ拡張
ビルド結果のFile headersが大きい理由
フリーのビジュアルノベルアセットFungusを使ってRPGのイベントを作る
Move To View を改良する
フリーのビジュアルノベルアセットのFungusが便利
Visual Studio で保存時にフォーマットする
スプレッドシートからデータを読み込む
Easy Save2 で シリアライズされたクラスを保存する
ShaderでSpriteの色相をシフトする
Sprite、Texture の 色相をシフトする
uGUIのButtonをクリック時にハイライトのままになる
uGUIのCanvas Groupを使って透過処理をしたり、操作を制限する
自作のコンフィグ画面に必要なもの
uGUIでトグルなボタンを作る
uGUI で動的にボタンを作る
Easy Save2 を使ってみる
LoadLevelAdditive で共通シーンを加算
画面全体に色をかける
Any State でどこからでも遷移できるようにする
iTween のStop ではまる
sprite の multiple で 境界がおかしくなる
2D画面に線を引く Line Renderer
Renderer の Materials を スクリプトから設定する
背景をスクロールさせる