Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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
C# 强制本地化应使用特定控制器中的特定语言_C#_.net_.net Core_Asp.net Core Localization - Fatal编程技术网

C# 强制本地化应使用特定控制器中的特定语言

C# 强制本地化应使用特定控制器中的特定语言,c#,.net,.net-core,asp.net-core-localization,C#,.net,.net Core,Asp.net Core Localization,我有一个web api项目,有几个控制器,我为它实现了英语和韩语本地化,但希望有一个或两个控制器以英语返回消息,即使语言是韩语,也不希望使用简单的英语消息,希望阅读英语资源 可能吗 我的本地化设置如下所示: services.Configure<RequestLocalizationOptions>(options => { var cultures = new List<CultureInfo> {

我有一个web api项目,有几个控制器,我为它实现了英语和韩语本地化,但希望有一个或两个控制器以英语返回消息,即使语言是韩语,也不希望使用简单的英语消息,希望阅读英语资源

可能吗

我的本地化设置如下所示:

 services.Configure<RequestLocalizationOptions>(options =>
            {
                var cultures = new List<CultureInfo> {
                    new CultureInfo("en"),
                    new CultureInfo("kr")
                };
                options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("en");
                options.SupportedCultures = cultures;
                options.SupportedUICultures = cultures;
            });

            services.AddMvc().AddDataAnnotationsLocalization(options =>
            {
                options.DataAnnotationLocalizerProvider = (type, factory) =>factory.Create(typeof(SharedTranslate));
            });
            services.AddLocalization(o =>
            {
                o.ResourcesPath = "Resources";
            });

在AuthAdminController中检索本地化字符串时,请使用以下代码


第一行设置CurrentUICulture,第三行重置为默认值。

在AuthAdminController中检索本地化字符串时使用以下代码


第一行设置当前UICulture,第三行重置为默认值。

是。您可以设置:Thread.CurrentThread.CurrentCulture=。。。和Thread.CurrentThread.CurrentUICulture=。。。你一个人。类似的东西。@Ergis我将其添加到控制器的构造函数中,但不添加到workSystem.Threading.Thread.CurrentThread.CurrentCulture=new System.Globalization.CultureInfo-US;请分享。@SajjadZare它必须工作。我最近才做的。在返回ViewYes之前,放置一个调试器点并检查Thread.CurrentThread.CurrentCulture的值是多少。您可以设置:Thread.CurrentThread.CurrentCulture=。。。和Thread.CurrentThread.CurrentUICulture=。。。你一个人。类似的东西。@Ergis我将其添加到控制器的构造函数中,但不添加到workSystem.Threading.Thread.CurrentThread.CurrentCulture=new System.Globalization.CultureInfo-US;请分享。@SajjadZare它必须工作。我最近才做的。在返回视图之前,放置调试器点并检查Thread.CurrentThread.CurrentCulture的值
public AuthAdminController(IStringLocalizer<SharedTranslate> localizer,...
//First
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
            //Second
            System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en");
 CultureInfo.CurrentUICulture = new CultureInfo("<<Your language Code>>");
 var localizedString = localizer[resourceKey].Value;
 CultureInfo.CurrentUICulture = new CultureInfo("<<Reset to default one>>");
 return localizedString;