WienerWiener
  • はじめに
  • 競合比較
  • 価格・入手
  • FAQ
  • 向いているケース
  • ライセンス
  • Unity Asset版とStandalone版の違い
  • 簡易難読化・改ざん検知
  • 整合性検知・デバッグ
  • ローカライズ
  • バージョン管理
  • Google Sheets入力
  • Excel
  • YAML
  • 設定ファイル
  • データフォーマット
  • マスターデータコンバート
  • ValueOnlyフォーマット
  • スタートアップ
  • サンプル
  • Converter
  • YAML Editor
  • Setting Editor
  • 日本語
  • English
  • はじめに
  • 競合比較
  • 価格・入手
  • FAQ
  • 向いているケース
  • ライセンス
  • Unity Asset版とStandalone版の違い
  • 簡易難読化・改ざん検知
  • 整合性検知・デバッグ
  • ローカライズ
  • バージョン管理
  • Google Sheets入力
  • Excel
  • YAML
  • 設定ファイル
  • データフォーマット
  • マスターデータコンバート
  • ValueOnlyフォーマット
  • スタートアップ
  • サンプル
  • Converter
  • YAML Editor
  • Setting Editor
  • 日本語
  • English
  • サンプル

    • サンプル
    • 220万セルサンプルデータをコンバートする
    • アイテムマスターを作成する
    • ホットリロードを体験する
    • ユニットマスターを作成する
    • 報酬マスターを作成する
    • 装備マスターを作成する
    • ローカライズを体験する
    • 既存のYAMLにキーを追加する

ローカライズを体験する

サンプル開始前の準備

  • Unityスタートアップが完了している
  • アイテムマスターを作成するが完了している
  • ユニットマスターを作成するが完了している
  • 報酬マスターを作成するが完了している
  • 装備マスターを作成するが完了している

概要

このサンプルでは、次の内容を扱います。

  • SettingEditorでローカライズを有効にする
  • YamlEditorでローカライズ対象のフィールドを設定する
  • 翻訳データを出力して日本語の翻訳を入力する
  • C#コードから言語を切り替えてローカライズ結果を確認する

ローカライズ機能の詳細はローカライズを参照してください。
リンク先を読まなくても、このサンプルの手順だけでローカライズの流れを体験できます。

手順は次の通りです。

  1. SettingEditorでローカライズを有効にする
  2. YamlEditorでローカライズ対象を設定する
  3. コンバート
  4. 翻訳データを編集する
  5. 再コンバート
  6. 動作確認

SettingEditorの設定

SettingEditorを開く

メニューバーから Tools > Wiener > Open Setting Editor で起動します。

Image from alias

ローカライズを有効にする

csv

localization.enableをtrueにします。
Saveボタンを押します

Image from alias

Google Sheets

Googleドライブにアクセスして、ローカライズ用のGoogleSheetsを作り、共有設定の役割を編集者(書き込み権限)にしてください。

Image from alias

localization.enableをtrueにします。
input.pathにスプレッドシートのURLを指定します。
input.sheetにスプレッドシートのシート名を指定します。
Saveボタンを押します

Image from alias

注意

正式にローカライズを行う場合、develop_settings.yaml,develop_binary_settings.yaml,production_settings.yamlの全ての設定ファイルを書き換える必要があります

YAMLの設定

YamlEditorを使用してYAMLを編集します。

YamlEditorを開く

Tools > Wiener > Open Yaml Editorを選択してYamlEditorを開きます。

Image from alias

item.yamlを編集

item.yamlを開きます。
headerのlocalizationにチェックを入れて、id_keyにIdを指定します。

Image from alias

fieldsのNameとDescriptionのlocalizeにチェックを入れます。

Image from alias
Image from alias

unit.yamlを編集

unit.yamlを開きます。
headerのlocalizationにチェックを入れて、id_keyにIdを指定します。

Image from alias

fieldsのNameのlocalizeにチェックを入れます。

Image from alias

equipment.yamlを編集

equipment.yamlを開きます。
headerのlocalizationにチェックを入れて、id_keyにIdを指定します。

Image from alias

fieldsのNameのlocalizeにチェックを入れて、Save Allを押下します。

Image from alias

コンバート

コンバータを開く

Tools > Wiener > Open Converterを選択してコンバータを開きます。

Image from alias

コンバート実行

Run Developを押下してコンバートを実行し、エラーが出ないことを確認します。

Google Sheets APIの権限エラーが出た場合

Run Develop実行時に、認証情報でGoogle Sheets APIの利用権限がまだ有効化されていない場合、次のような403エラーが出ることがあります。

Google Sheets HTTP request failed.
Status: 403 Forbidden
Google Sheets API has not been used in project xxxxxxxxxxxx before or it is disabled.
Enable it by visiting https://console.developers.google.com/apis/api/sheets.googleapis.com/overview?project=xxxxxxxxxxxx then retry.

この場合は、エラーメッセージ内のURLにブラウザでアクセスし、Google Sheets APIの有効化と必要な書き込み権限の承認を行ってください。承認直後は反映まで数分かかることがあるため、少し待ってから再度Run Developを実行してください。

Image from alias

翻訳データの確認

コンバートが完了すると、settingsファイルで指定した場所に翻訳データが書き出されます。

サンプルではAssets/Wiener/Data/localize/translations.csvに出力された前提で進めます。

言語列を追加

C列の先頭に日本語のjaを追加します。

Image from alias

翻訳データを入力

ja列に翻訳データを入力します。 コピーして入力する場合は、最後にある翻訳TSVデータを使用してください。

Image from alias

再コンバート

Run Developを押下して再度コンバートを実行し、エラーが出ないことを確認します。

Image from alias

動作確認

以下のSample.csスクリプトを作成してシーンに配置し、言語を切り替えると文字列が変わることを確認してください。

Sample.cs

using System.Linq;
using UnityEngine;
using Wiener;
using WienerLib;

public class Sample : MonoBehaviour
{
    void Start()
    {
        var wm = new WienerManager();
        var textAsset = Resources.Load("basic") as TextAsset;
        var result = wm.LoadBasicPack(textAsset.bytes);
        if (result != Result.Success)
        {
            Debug.LogError($"Failed to load basic pack: {result}");
            return;
        }

        Debug.Log("---- first language");
        OutputLanguage(wm);

        Debug.Log("---- Changing language to 'ja'...");
        wm.SetLanguage("ja");
        OutputLanguage(wm);

        Debug.Log("---- reset language");
        wm.ResetLanguage();
        OutputLanguage(wm);
    }

    void OutputLanguage(WienerManager wm)
    {
        foreach (var item in wm.Item.Values.Skip(1).Take(2))
        {
            Debug.Log($"Item: Name: {item.Name}, Description: {item.Description}");
        }
        foreach (var unit in wm.Unit.Values.Take(2))
        {
            Debug.Log($"Unit: Name: {unit.Name}");
        }
        foreach (var equipment in wm.Equipment.Values.Skip(1).Take(2))
        {
            Debug.Log($"Equipment: Name: {equipment.Name}");
        }
    }
}

実行結果

Image from alias

翻訳TSVデータ

翻訳データを入力する場合は、次のTSVをコピーして使用できます。

Key	Source	ja
Equipment.Name.0	Invalid	無効
Equipment.Name.2000000001	Bronze Sword	銅の剣
Equipment.Name.2000000002	Iron Helm	鉄の兜
Equipment.Name.2000000003	Knight Armor	騎士の鎧
Equipment.Name.2000000004	Power Gloves	力の手袋
Equipment.Name.2000000005	Swift Boots	俊敏のブーツ
Equipment.Name.2000000006	Dragon Charm	竜のお守り
Equipment.Name.2000000007	Excalibur	エクスカリバー
Item.Description.0	Invalid	無効
Item.Description.1000000001	Restores a small amount of HP	HPを少し回復します
Item.Description.1000000002	Restores HP	HPを回復します
Item.Description.1000000003	Restores a large amount of HP	HPを大きく回復します
Item.Description.1010000001	Slightly increases Power	攻撃力を少し上げます
Item.Description.1010000002	Increases Power	攻撃力を上げます
Item.Description.1010000003	Greatly increases Power	攻撃力を大きく上げます
Item.Description.1020000001	Can be sold at shops for a high price	店で高く売れます
Item.Description.1020000002	Can be sold at shops for a high price	店で高く売れます
Item.Name.0	Invalid	無効
Item.Name.1000000001	Potion (S)	ポーション(小)
Item.Name.1000000002	Potion (M)	ポーション(中)
Item.Name.1000000003	Potion (L)	ポーション(大)
Item.Name.1010000001	Power Up (S)	パワーアップ(小)
Item.Name.1010000002	Power Up (M)	パワーアップ(中)
Item.Name.1010000003	Power Up (L)	パワーアップ(大)
Item.Name.1020000001	Koban	小判
Item.Name.1020000002	Oban	大判
Unit.Name.1000000001	Hero	勇者
Unit.Name.1000000002	Skilled Warrior	熟練の戦士
Unit.Name.1000000003	Heroine	ヒロイン
Unit.Name.1000000004	Villager A	村人A
Unit.Name.1000000005	Soldier King	兵士王
最終更新:: 2026/06/30 17:43
Contributors: artisan-sawasaka
Prev
装備マスターを作成する
Next
既存のYAMLにキーを追加する