Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net核心本地化全球化_.net_Localization_Core_Globalization - Fatal编程技术网

.net核心本地化全球化

.net核心本地化全球化,.net,localization,core,globalization,.net,Localization,Core,Globalization,在较新的.net核心asp.net mvc中 有人可以向我保证,如果此代码更改了应用程序所有用户或当前用户的区域性 var cultureInfo = new CultureInfo("en-US"); CultureInfo.DefaultThreadCurrentCulture = cultureInfo; CultureInfo.DefaultThreadCurrentUICulture = cultureInfo; 我想显示一个组合,其中包含应用程序接受的不同文化,并在组合中选择时更改

在较新的.net核心asp.net mvc中 有人可以向我保证,如果此代码更改了应用程序所有用户或当前用户的区域性

var cultureInfo = new CultureInfo("en-US");
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
我想显示一个组合,其中包含应用程序接受的不同文化,并在组合中选择时更改文化,但如果在其中一个组合中更改时在中打开应用程序,例如在chrome和firefox中,另一个组合中的文化似乎会更改,这很可怕


提前感谢。

默认情况下,这设置为计算机的区域性,因此它自动适用于所有用户

如果您确实希望允许用户在其浏览器中设置自己的区域性,您希望使用查询字符串定义区域性,或者您希望执行自定义请求区域性提供程序(在下一节中概述)以允许代码基于其他参数设置自定义区域性,那么您需要提供支持的区域性列表

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<RequestLocalizationOptions>(options =>
    {
        options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("en-US");
        //By default the below will be set to whatever the server culture is. 
        options.SupportedCultures = new List<CultureInfo> { new CultureInfo("en-US"),new CultureInfo("en-NZ") };

        options.RequestCultureProviders = new List<IRequestCultureProvider>();
    });

    services.AddMvc();
} 
public void配置服务(IServiceCollection服务)
{
配置(选项=>
{
options.DefaultRequestCulture=new Microsoft.AspNetCore.Localization.RequestCulture(“en-US”);
//默认情况下,以下值将设置为服务器区域性的任何值。
options.SupportedCultures=新列表{new CultureInfo(“en-US”)、new CultureInfo(“en-NZ”)};
options.RequestCultureProviders=新列表();
});
services.AddMvc();
} 

有关详细信息:-

您可以使用以下代码

启动。配置服务

CultureInfo[] supportedCultures = new[]
       {
        new CultureInfo("ar"),
        new CultureInfo("fa"),
        new CultureInfo("en")
    };

    services.Configure<RequestLocalizationOptions>(options =>
    {
        options.DefaultRequestCulture = new RequestCulture("ar");
        options.SupportedCultures = supportedCultures;
        options.SupportedUICultures = supportedCultures;
        options.RequestCultureProviders = new List<IRequestCultureProvider>
            {
                new QueryStringRequestCultureProvider(),
                new CookieRequestCultureProvider()
            };

    });
更改语言:

[HttpPost]
public IActionResult SetLanguage(string culture, string returnUrl)
{
    Response.Cookies.Append(
        CookieRequestCultureProvider.DefaultCookieName,
        CookieRequestCultureProvider.MakeCookieValue(new     RequestCulture(culture)),
    new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
    );

    return LocalRedirect(returnUrl);
}
更多详情:

[HttpPost]
public IActionResult SetLanguage(string culture, string returnUrl)
{
    Response.Cookies.Append(
        CookieRequestCultureProvider.DefaultCookieName,
        CookieRequestCultureProvider.MakeCookieValue(new     RequestCulture(culture)),
    new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
    );

    return LocalRedirect(returnUrl);
}