具有 1 个资源文件的 uwp 本地化,适用于一种语言的所有变体
uwp localization with 1 resource file for all variants of a language
我知道 uwp 中的本地化是如何工作的,我目前有 en-US 和 es-es 资源文件。
我想问的是我可以只使用 1 个资源文件,即 en 吗,这会影响所有英语变体吗?像 en-us , en-as 和所有其他人?然后是 Spanish 的 1 个文件,即:es 等等。
所有语言变体之间只有很少的差异,在我的应用程序中几乎可以忽略不计。我注意到我的应用程序的大部分用户仅来自 西班牙 和 美国。我想那是因为我现在只支持这两种语言。所以我想支持西班牙语的所有变体和英语的所有变体,但只有 2 个文件,这行得通还是我需要为每个变体提供 1 个文件?
是的,您可以通过使用短语言名称来处理单个文件。在您的情况下,英语应为 Resources.en.resx,西班牙语应为 Resources.es.resx。您可以参考 here 语言标签。
首先尝试检查当前应用程序语言是否为任何英语变体(en-US、en-AS 等),如果是,则用您想要的语言覆盖它。
If ( CurretLanguage == "en-US" || CurrentLanguage == "en-AS" || ...)
{
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = "en-US";
}
我知道 uwp 中的本地化是如何工作的,我目前有 en-US 和 es-es 资源文件。
我想问的是我可以只使用 1 个资源文件,即 en 吗,这会影响所有英语变体吗?像 en-us , en-as 和所有其他人?然后是 Spanish 的 1 个文件,即:es 等等。
所有语言变体之间只有很少的差异,在我的应用程序中几乎可以忽略不计。我注意到我的应用程序的大部分用户仅来自 西班牙 和 美国。我想那是因为我现在只支持这两种语言。所以我想支持西班牙语的所有变体和英语的所有变体,但只有 2 个文件,这行得通还是我需要为每个变体提供 1 个文件?
是的,您可以通过使用短语言名称来处理单个文件。在您的情况下,英语应为 Resources.en.resx,西班牙语应为 Resources.es.resx。您可以参考 here 语言标签。
首先尝试检查当前应用程序语言是否为任何英语变体(en-US、en-AS 等),如果是,则用您想要的语言覆盖它。
If ( CurretLanguage == "en-US" || CurrentLanguage == "en-AS" || ...)
{
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = "en-US";
}