MicrosoftGame.config のローカリゼーション

ここでは、パッケージ ゲームの表示文字列をローカライズして、適切なローカライズされた文字列がシェルに表示されるようにする方法について説明します。 これらの手順は、Microsoft Docs の「レガシ アプリケーションまたはレガシ ゲームで Windows 10 リソース管理システムを使用する」の記事に関連しています。このトピックで説明されていない詳細やシナリオは、この記事を参照してください。

注意

上記の記事にはバグが 1 つあり、文字列アセットがマニフェスト ファイルで次のように参照されています。

    ms-resource:Resources/ApplicationDisplayName  

注意

実際の参照はこのようになります (Resources/ が省かれていることに注意してください)。

    ms-resource:ApplicationDisplayName  

ゲームにローカライズされたシェル ビジュアルを含める

パッケージ化を開始した後、次のようなセクションを含む MicrosoftGame.config ファイルが生成されます。これらのセクションでは、OverrideDisplayName="My Game's Display Name" のような属性を使用して、表示されるテキスト コンテンツが指定されます。


  <ExecutableList>
    <Executable Name="MyGame.exe"
                OverrideDisplayName="My Game's Display Name"
                Id="Game"/>
  </ExecutableList>

  <ShellVisuals DefaultDisplayName="PackageName"
                PublisherDisplayName="Publisher Display name"
                StoreLogo="Storelogo.png"
                Square150x150Logo="Logo.png"
                Square44x44Logo="SmallLogo.png"
                Description="My App Description"
                BackgroundColor="#000040"
                SplashScreenImage="SplashScreen.png"/>  

こうした文字列のローカライズ版を使用可能にする場合は、サポートする言語に関連する個別のアプリケーション サブフォルダー内に .resw ファイルを作成します。

  1. resources.resw という名前の XML ファイルを作成し、プロジェクトの Strings サブフォルダー内に置きます。 これは、プロジェクトにとって言語中立のフォールバックになります。
  2. 各言語用に、プロジェクトで新しい Strings サブフォルダーを作成します。 たとえば、英語では Strings\en-us、メキシコで話されているスペイン語では Strings\es-mx です。 言語ごとに、適切な BCP-47 コードを使用してください。
  3. 各 XML ファイルで、次のコンテンツを追加します。強調表示されたテキストは、適切な言語を使用して、アプリに適切なテキストに置き換えてください。 次の例では、単純なサフィックスとして (English) を使用しています。
    <?xml version="1.0" encoding="utf-8"?>
    <root>
        <data name="ApplicationDescription">
            <value>Contoso Demo app with localized resources (English)</value>
        </data>
        <data name="ApplicationDisplayName">
            <value>Contoso Demo Sample (English)</value>
        </data>
    </root>

次に、下に示す ms-resource:ResourceStringName 構文を使用して、OverrideDisplayNameDescription プロパティでこれらの文字列を参照するように MicrosoftGame.config ファイルを更新します。

<ExecutableList>
    <Executable Name="MyGame.exe"
              OverrideDisplayName="ms-resource:ApplicationDisplayName"
              Id="Game"/>
</ExecutableList>

<ShellVisuals DefaultDisplayName="PackageName"
              PublisherDisplayName="Publisher Display name"
              StoreLogo="Storelogo.png"
              Square150x150Logo="Logo.png"
              Square44x44Logo="SmallLogo.png"
              Description="ms-resource:ApplicationDescription"
              BackgroundColor="#000040"
              SplashScreenImage="SplashScreen.png"/>

次に、アプリケーションがサポートするローカライゼーション ターゲットの一覧が MicrosoftGame.config ファイルに含まれていることを確認します。 たとえば、アプリで英語 (米国) とスペイン語 (メキシコ) をサポートする場合、.config ファイルには Game の子要素として以下が含まれます。

<Resources>
    <Resource Language="en-US" />
    <Resource Language="es-MX" />
</Resources>

次に、makepkg localize コマンドを使用して Resource.pri ファイルを生成します。このファイルには、ローカライズされたアセット文字列が含まれます。 生成された Resources.pri ファイルをゲームのルート コンテンツ ディレクトリに配置します。

  1. ゲームのルート コンテンツ ディレクトリで Microsoft Game Development Kit (GDK) ゲーム コマンド プロンプトを開きます。
  2. 以下を実行します。
    makepkg localize /d . /resw Strings

ディレクトリ構造がこの例と一致しない場合、または追加の検証が必要な場合は、追加パラメーターを指定して makepkg localize を実行できます。

  • .resw ファイルを検索するには、/resw を使用してルートへの相対パスを指定します。
  • 生成された Resources.pri ファイルを既定のルート ディレクトリ以外の場所に保存するには、ディレクトリを指定して /pd を使用します。 ターゲット ディレクトリが既に存在している必要があります。
  • リソースを XML ファイルにエクスポートするための場所を指定するには、ディレクトリ名を指定して /t を使用します。この場所は、適切なリソースが含まれていることを確認するために手動で検証できます。

次に例を示します。

    makepkg localize /d . /resw Resources /pd ..\FinalLooseFolder /t ..\TempOutput

これで、resources.pri ファイルがゲームのルート コンテンツ ディレクトリに配置されたので、通常どおりにパッケージを作成できます。

最後に、英語またはメキシコのスペイン語に設定されたシステムにインストールした際に、スタート メニューや、アプリの文字列が表示される他のシステム ページに、ローカライズした文字列が表示されることを確認します。 Microsoft Store アプリのアイコンは、アプリ パッケージ内の情報ではなく、パートナー センターにアップロードされたデータから取得されることに注意してください。

関連項目

MicrosoftGame.config
MicrosoftGame.Config の概要
MicrosoftGame.Config エディター
MicrosoftGame.Config リファレンス (サンプルの MicrosoftGame.config とスキーマ)
パッケージ化の概要