TapTapTap!!!(47)~多言語化対応を行う2~

TapTapTap!!!(46)~多言語化対応を行う~では海外のユーザにも使用できるよう多言語化対応を行ったが、多言語化を行うにあたって上手くいかない点が出てきた。今回はうまく行かなかった点について修正を行う。

1.現状把握

前回の対応で以下のような画面となり、言語ファイルをうまく読み込めていないことがわかった。現象としてはファイルの読み込みが行えず、すべてのテキストが “Localized text not found”となってしまっている。今回はこれに対する修正を行う。

多言語化の失敗

2.修正方法

修正方法については以下のサイトが参考となった。今回、多言語化を行うにあたって「StreamingAssets」フォルダを用いて行ったが、この中にあるデータは直接操作を行うことができないとのことだ。操作するためには「WWW」クラスを用いてアクセスしなければならないとのことなので「WWW」クラスを用いるよう修正を行う。

3.修正内容

修正したスクリプトは以下の通り。前回作成した「LocalizationManager 」クラス内で json ファイルを参照していた部分に「WWW」クラスの処理を加えている。これによって、言語ファイルが正しく読み込めるようになるはずだ。

[cce_csharp]/// <summary>
/// 言語ファイルの読込
/// </summary>
/// <param name="fileName">言語ファイル名</param>
public void LoadLocalizedText(string fileName)
{
    MyLogger.GetInstance().StartLog(this.GetType().Name, MethodBase.GetCurrentMethod().Name);
    localizedText = new Dictionary<string, string>();
    string filePath = Path.Combine(Application.streamingAssetsPath, fileName);
    WWW www = new WWW(filePath);
    MyLogger.GetInstance().DebugLog(this.GetType().Name, MethodBase.GetCurrentMethod().Name, "load file Path : " + filePath);
    if (www.text != null)
    {
        string dataAsJson = www.text;
        LocalizationData loadedData = JsonUtility.FromJson<LocalizationData>(dataAsJson);
        for (int i = 0; i < loadedData.items.Length; i++)
        {
           localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
        }
        MyLogger.GetInstance().DebugLog(this.GetType().Name, MethodBase.GetCurrentMethod().Name, "Data loaded, dictionary contains: " + localizedText.Count + " entries");
    }
    else
    {
     MyLogger.GetInstance().WorningLog(this.GetType().Name, MethodBase.GetCurrentMethod().Name, "Data loaded, dictionary contains: " + localizedText.Count + " entries");
    }
    isReady = true;
    MyLogger.GetInstance().EndLog(this.GetType().Name, MethodBase.GetCurrentMethod().Name);
}[/cce_csharp]

4.Google Play コンソールにアップロードし動作確認を行う

Google Play コンソール上では問題なく動作していることが確認できたので、後はじっきで問題なく動作が行われるか確認を行う。相も変わらずテスターさんを募集しておりますので、テスターをご希望いただける方はお問い合わせまたは以下のフォームからご連絡ください。

%d人のブロガーが「いいね」をつけました。