当前位置: 首页 > 编程语言 > C#

Resourcewon'tloadcurrentculture分享

时间:2023-04-10 14:47:10 C#

Resourcewon'tloadcurrentculture已经尝试过ExecuteAsync和Initialize但该应用程序仍然使用英文资源。这就是我设置文化的方式protectedvoidSetCulture(stringcultureName){//验证文化名称cultureName=CultureHelper.GetImplementedCulture(cultureName);//修改当前线程的文化Thread.CurrentThread.CurrentCulture=newSystem.Globalization.CultureInfo(cultureName);Thread.CurrentThread.CurrentUICulture=Thread.CurrentThread.CurrentCulture;}protectedoverridevoidInitialize(HttpControllerContextcontrollerContext){if(controllerContext.Request.Headers.AcceptLanguage!=null&&controllerContext.Request.Headers.AcceptLanguage>0.stringlanguage=controllerContext.Request.Headers.AcceptLanguage.First().Value;SetCulture(language);}base.Initialize(controllerContext);}这里的资源总是英文的。我在Thread.CurrentThread.CurrentCulture上放了一张表,上面写着}我们如何设置当前文化?编辑在Global.asaxprotectedvoidApplication_BeginRequest(Objectsender,EventArgse){HttpRequestcurrentRequest=HttpContext.Current.Request;如果(currentRequest.Headers.AllKeys.Contains("Accept-Language")){stringculture=currentRequest.Headers["Accept-Language"].ToString();设置文化(文化);}}Thread.CurrentThread.CurrentCulture等于fr。不明白为什么资源还是英文的!编辑2我在WebAPI项目的属性中创建了资源文件,现在它可以工作了。所以问题出在resources.dll。我不明白为什么API不能用resources.dll选择好的资源文件。也许resources.fr.resx没有使用dll。我解决了这个问题。使用资源编译项目时,它会为每种文化创建一个包含.dll的文件夹,因此我必须复制这些文件夹。不只是resources.dll,因为那只是默认语言。这就是为什么无论文化如何,我的资源都是英文的。因此,要使用resources.dll,您必须导入该引用复制bin文件夹中的所有文化文件夹和所有.dll注意:您不必为每种文化添加引用,只需添加默认文化。以上为C#学习教程:资源不会加载当前文化分享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: