asp.net本地化问题

asp.net本地化问题,asp.net,localization,culture,Asp.net,Localization,Culture,我有两个资源文件: Resource1.resx和Resource1.es mx.resx 默认系统区域性为en US -->仍获得英文版本(在浏览器中设置语言没有帮助) 将Resource1.es mx.resx重命名为Resource1.es.resx-->works,西班牙语 ,在浏览器中设置西班牙语,资源Resource1.es mx.resx-->西班牙语 你能给我解释一下第一种情况下会发生什么吗?为什么是英语?您是否尝试过UICulture=“es mx”?我相信,但我不是100%确

我有两个资源文件:
Resource1.resx
Resource1.es mx.resx
默认系统区域性为
en US

  • -->仍获得英文版本(在浏览器中设置语言没有帮助)
  • Resource1.es mx.resx
    重命名为
    Resource1.es.resx
    -->works,西班牙语
  • ,在浏览器中设置西班牙语,资源
    Resource1.es mx.resx
    -->西班牙语

  • 你能给我解释一下第一种情况下会发生什么吗?为什么是英语?

    您是否尝试过
    UICulture=“es mx”
    ?我相信,但我不是100%确定,如果在资源文件中指定了区域设置的第二部分,那么它只在两个部分都指定的情况下使用。

    为什么是英语?没有西班牙国家中立的资源,您专门要求它们。因此,它又回到了中性资源(在您的案例中恰好是英语)

    您应该以另一种方式进行:命名resources file
    Resource1.es.resx
    ,并请求特定的UICulture:
    UICulture=“es MX”
    ,如果必须的话。在这种情况下,如果找不到特定国家的资源,它将退回到西班牙国家中立资源(es)。
    我不知道您的用例,但硬编码文化并不是一个好主意。。。你真的应该考虑在这里使用auto