C# 将.NET语言环境转换为jQuery语言环境-当本地资源中不存在国家变体(例如“US”或“MX”)时

C# 将.NET语言环境转换为jQuery语言环境-当本地资源中不存在国家变体(例如“US”或“MX”)时,c#,jquery,.net,locale,globalization,C#,Jquery,.net,Locale,Globalization,我注意到jQuery有一个Spanish语言环境,即es。当您将浏览器更改为西班牙语区域设置时,它可以是es、es-US、es-MX等,因为只有一个jQuery西班牙语文件,所以它仅在区域设置为es时加载该文件。有没有一种方法可以将.NET使用CultureInfo对象返回给您的区域设置转换为jQuery所需的区域设置 下面是一个更好地解释我的情况的场景。如果我将浏览器语言更改为es,CultureInfo.CurrentCulture返回es,但是,jQuery不包含区域设置es,它只包含es

我注意到
jQuery
有一个
Spanish
语言环境,即
es
。当您将浏览器更改为
西班牙语区域设置
时,它可以是
es、es-US、es-MX等
,因为只有一个jQuery西班牙语文件,所以它仅在区域设置为
es
时加载该文件。有没有一种方法可以将.NET使用
CultureInfo
对象返回给您的区域设置转换为jQuery所需的区域设置


下面是一个更好地解释我的情况的场景。如果我将浏览器语言更改为
es
CultureInfo.CurrentCulture
返回
es
,但是,jQuery不包含区域设置
es
,它只包含
es
,但在某些情况下它确实有类似
en US
en GB
的内容,那么最好的方法是什么呢。我应该重命名语言环境文件还是进行某种转换?

生活在比利时,我们在法语、荷兰语、英语以及这些文化的组合方面也有类似的问题

对于我的datepicker设置,我想到了使用
html
标记作为区域占位符,从
CultureInfo.CurrentCulture
或服务器端馈送

<html lang="nl-BE" />
在我掌握了糟糕的实施技巧之后,客户要求更改
fr BE
的日期,我最终在jqueryui:s中创建了一个自定义区域性文件 这是最简单的解决办法


我相信这一切都取决于你的文化习惯的设置。如果jQuery UI提供的数据/翻译足以满足要求,我就不会创建自定义区域性。

如果请求了
es US
但不存在,jQuery不会自动加载
es
区域设置吗?@Dirk-我尝试过,但它似乎没有这样做。我将浏览器语言设置为
es
,并且
CurrentCulture
返回了
es-es
,因此使其工作的唯一方法是使用
es-es
jquery脚本。
// var cfg.options -> $.extend to this.settings
options: {
    ...
    defaultCulture: 'en-GB',
    validCultures: ['en-GB', 'fr', 'fr-BE', 'nl-BE', 'nl'],
    ...
},

getCulture: function () {
    var settings = this.settings,
        cache = settings.cache,
        dynamicProp = settings.dynamicProp,
        options = settings.options,
        culture = $(cache.currentCulture).prop(dynamicProp.culture), // $('html').prop('lang')
        language;

    if ($.inArray(culture, options.validCultures) === -1) {
        language = culture.split('-')[0];
        culture = $.inArray(language, options.validCultures) === -1 ? options.defaultCulture : language;
    }

    return culture;
},