既定の言語の設定

PlayFab は、ゲーム デベロッパーに代わってローカライズされた文字列を格納するためのサポートを開始しました。 さらに、希望する言語の正しい文字列でプレーヤーを提供するために必要なロジックを追加しました。

これを完了するには、2 つの新しい言語設定を実施します。1 つはタイトルに関連付けられ、もう 1 つはプレーヤーのエンティティ プロフィールごとに格納されます。

  1. タイトルの既定の言語: タイトルのプライマリ言語がサポートされていることを示します。 設定すると、少なくともローカライズされた文字列を使用する機能に使用するために、あなたのタイトルがこの言語をサポートしている必要があります。
  2. プレイヤーの言語: プレイヤーの優先言語を示します。 これは、タイトルごとに設定できます。

PlayFab のロジックはこれらの 2 つの設定を使用して、ローカライズされた文字列をその言語を優先するプレーヤーと一致させます。 言語設定のないプレーヤーは、タイトルの指定された既定の言語で文字列を受け取ります。

注意

タイトルがサポートしていない言語を優先するプレーヤータイトルの既定の言語で文字列を受信します。

このチュートリアルでは、タイトルの既定の言語とプレイヤーの優先言語の設定方法について説明します。

要件

このチュートリアルでは、PlayFab の使用について次の知識があると仮定しています。

  • プレイヤーの作成方法についての基本的知識。 これが必要なのは、優先言語ロジックを呼び出す前に、プレイヤーがユーザー名とパスワードを持って 既に存在している 必要があるからです。

  • Game Manager のクイックスタートを読了していること。 ゲーム マネージャーに慣れていない場合は、ここで言語情報を確認できます。

  • プレーヤー プロフィールに追加された優先言語を確認する必要があるので、プレーヤー プロフィールの操作方法についての知識があること。

  • プレイヤー プロフィールの取得 チュートリアルのプレイヤーのプロフィールの取得方法についての情報をご確認ください。

セクション 1 – プレイヤーの優先言語

プレイヤーの優先言語を設定する前に、収集方法を説明します。 次の 2 つの方法があります。

  • 依頼: ゲームのメニューにオプションを追加します。
  • 直観: 提供されているプラットフォーム API (たとえば、Android の Locale.getDefault.getLanguage()) を呼び出して、プレイヤーのデバイスの言語を使用します。

注意

多くの言語があると、タイトルがすべてをサポートしない場合があります。 必須ではありませんが、タイトルを将来も扱えるように、プレイヤーが実際に優先している言語を格納することをお勧めします。 あとでその言語のサポートを追加する場合、PlayFab の論理が自動的に (既定以外の) 新しい文字列の提供を開始します。

手順 1 - 言語の設定

PlayFab を使用すると、サポートする言語の特定の一覧から選択できます。 GetLanguageList() メソッドを呼び出して言語コードを表示できます。

注意

SetProfileLanguage API を使用する場合、言語文字列は ISO 639-1 形式 ("en"、"es"、"ja" など) で指定する必要があります。 現在、コード "zh" はサポートされていません。

まず、プレーヤーのプロフィールが更新され、プレーヤーがあなたのタイトルからコンテンツを取得する際に使用したい言語を含むようになります。

C# コードの例

void SetProfileLanguage(string language, int? profileExpectedVersion, EntityKey entity)
{
    var request = new SetProfileLanguageRequest
    {
        Language = language,
        ExpectedVersion = profileExpectedVersion,
        Entity = entity
    };
    PlayFabProfilesAPI.SetProfileLanguage(request, res =>
    {
        Debug.Log("The language on the entity's profile has been updated.");
    }, FailureCallback);
}

void FailureCallback(PlayFabError error)
{
    Debug.LogWarning("Something went wrong with your API call. Here's some debug information:");
    Debug.LogError(error.GenerateErrorReport());
}

手順 2 - 言語が更新されたことの確認

プレイヤーの概要に移動します。 ゲーム マネージャーで、[プレーヤー]>[概要] に移動します。 連絡先情報セクションが優先言語で更新されていることを確認します。

言語は、次の画像で表示される [言語] ドロップダウン メニューでも更新できます。

ゲーム マネージャー - プレイヤー - 概要 - 連絡先メール - 言語

次に、プレーヤーの [PlayStream] に移動すると、[更新済みのエンティティ言語] イベントが表示されます。

ゲーム マネージャー - プレイヤー - PlayStream - 更新されたエンティティ言語のイベント

イベントの情報アイコンを選択し、次の例のような JSON を表示します。

{
    "EventName": "entity_language_updated",
    "Source": "PlayFab",
    "Language": "en",
    "EntityChain": "title_player_account!4CDA57A14A596E70/<YourTitleId>/C9458B4D3A115F4B/36163DA3783B0C8A/",
    "EntityLineage": {
        "NamespaceId": "4CDA57A14A596E70",
        "TitleId": "YourTitleId",
        "MasterPlayerAccountId": "C9458B4D3A115F4B",
        "TitlePlayerAccountId": "36163DA3783B0C8A",
        "CharacterId": null,
        "GroupId": null
    },
    "EventNamespace": "com.playfab",
    "EventId": "f643e22a2a76462aaeaa3469afa31434",
    "EntityType": "title_player_account",
    "EntityId": "36163DA3783B0C8A",
    "SourceType": "BackEnd",
    "Timestamp": "2018-08-24T18:49:47.8755292Z",
    "History": null,
    "CustomTags": null,
    "Reserved": null
}

セクション 2 - タイトルの既定の言語の設定

次に、タイトルの既定の言語を設定します。 すべてのローカライズ機能は、翻訳済みのすべてのバージョンのコンテンツに1つの言語を関連付けるようになりました。

タイトルには既定の言語が必要です。 これにより、任意のプレイヤーの優先言語が設定されていないか、サポートされていない場合、プレイヤーはコンテンツの既定の言語バージョンを受信できます。

最初に、次に示すように、左側のメニューの [設定] を選択します。

ゲームのマネージャー - 設定 - 一般 - 既定の言語

新しい [タイトルの既定] ヘッダーの [一般] タブで、[既定の言語] ドロップダウンを見つけます。 追加されたローカライズ機能のいずれかが使用される前に、既定の言語を設定する必要があります。

完了したら、[保存] ボタンを選択します。 更新が成功した場合は、メッセージ通知が表示されます。

ダッシュボードに戻る場合は、次に示すように、[PlayStream] イベント リストの [タイトル API 設定の変更] イベントが表示されます。

PlayStream - タイトル API の設定が変更されます

イベントの情報アイコンを選択し、次の例のような JSON を表示します。

{
    "EventName": "title_api_settings_changed",
    "PreviousSettingsValues": {
        "DefaultLanguage": null
    },
    "SettingsValues": {
        "DefaultLanguage": "en"
    },
    "UserId": "EAF83D52E282C291",
    "DeveloperId": null,
    "EventNamespace": "com.playfab",
    "EntityType": "title",
    "Source": "PlayFab",
    "EventId": "108849a5e1424051b42256bc75b2e34b",
    "EntityId": "YourTitleId",
    "SourceType": "BackEnd",
    "Timestamp": "2018-08-24T21:51:02.2215614Z",
    "History": null,
    "CustomTags": null,
    "Reserved": null
}

セクション 3 - タイトルの既定の言語の更新

優先言語のないプレーヤーや、あなたのサポート言語と一致しない言語を選択しているプレーヤーと通信する場合に、タイトルに既定を設定すると、PlayFab にその言語を使うよう指示することになりますので、ご注意ください。

タイトルの既定はフォールバック言語として使用されるため、PlayFab では、すべての通信があなたの既定の言語をサポートすることを想定しています。

注意

タイトルの既定はいつでも変更できますが、PlayFab では、新しく使用しようとしている言語を現在の通信テンプレートがサポートする必要があります。

タイトルの既定の言語を更新する場合、インターフェイスが表示する [編集] リンクが表示されます。

タイトルの既定 - 既定の言語

このリンクに従うと、以前と同じドロップダウンが表示されます。 ただし、メール テンプレートで完全にサポートされていない既定の言語を保存しようとすると、次のような 1 つ以上のエラー メッセージが表示されます。

ゲーム マネージャー - 一般 - 既定の言語の編集

エラーがある場合、提供されたリンクに従ってコンテンツを更新し、不足している言語をサポートできるようにします。 すべてのエラーを解決すると、既定の言語の変更が受け入れられます。

まとめ

このチュートリアルでは、タイトルの既定の言語とプレイヤーの優先言語の設定方法について確認しました。

このチュートリアルに関するご質問やフィードバックがある場合は、フォーラムまたはスラック チャネルを利用してご連絡ください。