Skip to main content
使用 GetUserDefaultLocaleName 获取当前登录会话的区域设置:
游戏通常并不关心确切的区域设置 —— 它们关心的是应该加载哪些语言资源。请选择游戏包中与用户所选设置“最接近”的语言。有三项输入很重要:
  1. MicrosoftGame.config 中声明的语言。
  2. 在包布局文件中声明的语言。
  3. 设备上所选的语言。
使用 XPackageGetUserLocale 始终获得最接近的受支持语言:

示例

1. 用户区域设置与受支持资源匹配

用户选择法语 / 法国 (fr-FR)MicrosoftGame.config:
  • XPackageGetUserLocale 返回 fr-FR
  • GetUserDefaultLocaleName 返回 fr-FR

2. 用户区域设置未在清单中,但存在相同语言

用户选择英语 / 英国 (en-GB)MicrosoftGame.config:
  • XPackageGetUserLocale 返回 en-US(在同一语言内的回退)。
  • GetUserDefaultLocaleName 返回 en-GB(始终是主机上的值)。

3. 用户语言完全不存在

用户区域设置为 fr-FRMicrosoftGame.config:
  • XPackageGetUserLocale 返回 en-US(Resources 中的第一项)。
  • GetUserDefaultLocaleName 返回 fr-FR

小结

  • GetUserDefaultLocaleName —— 主机上所设置的值,不考虑游戏声明的语言。
  • XPackageGetUserLocale —— 应加载哪种语言,使用以下逻辑:
    1. 如果用户的区域设置存在于 MicrosoftGame.config 中,则返回它。
    2. 否则在清单中查找相同语言的区域设置(基于用户区域设置的最佳回退)。
    3. 否则返回 Resources 中的第一个区域设置。
    4. 如果没有列出任何语言,则返回主机语言。

另请参阅

相关 API 文档

最后修改于 2026年8月6日