> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MicrosoftGame.config 本地化

> MicrosoftGame.config 本地化

本主题介绍如何为已打包的游戏本地化显示字符串，以便在 Shell 中显示适当的本地化版本字符串。这些步骤与 Microsoft 文档中的[在旧版应用或游戏中使用 Windows 10 资源管理系统](https://learn.microsoft.com/windows/uwp/app-resources/using-mrt-for-converted-desktop-apps-and-games)一文相关。如有未在本主题中涵盖的更多细节或场景，你可以参考该文章。

<Note>[前面提到的文章](https://learn.microsoft.com/windows/uwp/app-resources/using-mrt-for-converted-desktop-apps-and-games)中描述了一个错误，即字符串资源在清单文件中的引用如下：</Note>

```
    ms-resource:Resources/ApplicationDisplayName  
```

<Note>实际的引用是这样工作的（注意省略了 `Resources/`）：</Note>

```
    ms-resource:ApplicationDisplayName  
```

## 在你的游戏中包含本地化的 Shell 视觉元素

开始打包时，你会有一个 *MicrosoftGame.config* 文件，其中包含类似以下部分，用于指定要显示的属性中包含的文本内容：
`OverrideDisplayName="My Game's Display Name"`。

```xml theme={null}

  <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](https://tools.ietf.org/html/bcp47) 代码。
3. 在每个 XML 文件中，添加以下内容，其中突出显示的文本被替换为你应用程序的适当文本（以适当的语言）。以下示例说明了使用 `(English)` 作为简单后缀。

```xml theme={null}
    <?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>
```

接下来，你应该更新你的 *MicrosoftGame.config* 文件以使用 `ms-resource:ResourceStringName` 语法引用这些资源字符串，如下面在 `OverrideDisplayName` 和 `Description` 属性中所示。

```xml theme={null}
<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` 的子元素。

```xml theme={null}
<Resources>
    <Resource Language="en-US" />
    <Resource Language="es-MX" />
</Resources>
```

接下来，使用 [makepkg localize](/build/core-features/common/packaging/deployment/makepkg) 命令生成一个 *Resource.pri* 文件，该文件将包含这些本地化的资源字符串。将生成的 *Resources.pri* 文件放置到游戏的根内容目录中。

1. 在游戏的根内容目录中打开 Microsoft Game Development Kit (GDK) gaming command prompt。
2. 运行以下命令：

```
    makepkg localize /d . /resw Strings
```

如果你的目录结构与此示例不匹配或需要额外验证，可以使用附加参数运行 `makepkg localize`。

* 使用 `/resw` 指定相对根目录的路径以查找 .resw 文件。
* 使用 `/pd` 加目录路径可将生成的 *Resources.pri* 文件存储到默认根目录以外的位置。目标目录必须已存在。
* 使用 `/t` 加目录名可指定将资源导出到 XML 文件的位置，可手动验证以确保它包含适当的资源。

例如：

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

现在你的游戏根内容目录中有了 *resources.pri* 文件，你可以像往常一样创建包。

最后，在系统设置为英语或墨西哥西班牙语的情况下安装时，验证你的本地化字符串是否显示在"开始"菜单以及其他显示应用字符串的系统页面中。请注意，Microsoft Store 应用中的图标是从上传到合作伙伴中心的数据中获取的，而不是从你的应用包中的信息中获取。

## 另请参阅

[MicrosoftGame.config](/build/core-features/common/game-config/MicrosoftGameConfig-toc)
[MicrosoftGame.config 概述](/build/core-features/common/game-config/MicrosoftGameConfig-Overview)
[MicrosoftGame.config 编辑器](/build/core-features/common/game-config/MicrosoftGameConfig-Editor)
[MicrosoftGame.config 参考（示例 MicrosoftGame.config 和架构）](/reference/system/microsoftgameconfig/microsoftgameconfig-schema)
[打包概述](/build/core-features/common/packaging/overviews/packaging)


## Related topics

- [MicrosoftGame.config](/zh-CN/build/core-features/common/game-config/MicrosoftGameConfig-toc.md)
- [MicrosoftGame.config 概述](/zh-CN/build/core-features/common/game-config/MicrosoftGameConfig-Overview.md)
- [本地化与全球化概览](/zh-CN/build/game-principles/localization.md)
- [MicrosoftGame.config 编辑器与参考](/zh-CN/build/core-features/common/game-config/index.md)
- [打包资源的本地化](/zh-CN/build/game-principles/localization/localization-of-packaged-resources.md)
