GetUserDefaultLocaleName 获取当前登录会话的区域设置:
- 在
MicrosoftGame.config中声明的语言。 - 在包布局文件中声明的语言。
- 设备上所选的语言。
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-FR。MicrosoftGame.config:
XPackageGetUserLocale返回en-US(Resources中的第一项)。GetUserDefaultLocaleName返回fr-FR。
小结
GetUserDefaultLocaleName—— 主机上所设置的值,不考虑游戏声明的语言。XPackageGetUserLocale—— 应加载哪种语言,使用以下逻辑:- 如果用户的区域设置存在于
MicrosoftGame.config中,则返回它。 - 否则在清单中查找相同语言的区域设置(基于用户区域设置的最佳回退)。
- 否则返回
Resources中的第一个区域设置。 - 如果没有列出任何语言,则返回主机语言。
- 如果用户的区域设置存在于
另请参阅
相关 API 文档
- XGameRuntime features reference ——
XGameRuntimeLocale获取当前活跃的区域设置 - XPackage API reference —— 支持区域设置的包资源查询
