转换CurrentCulture后,resx文件无法更改

时间:2015-06-02 09:01:06

标签: c# asp.net culture

我是asp.net的新手。我试图建立一个语言切换器来切换当前的文化,在#ar; SA"和" en-US"。这是我到目前为止所做的:

1-我在App_GlobalResources文件夹下创建了三个resx文件,一个名为MyProject.Resource.ar-SA.resx用于阿拉伯文化,另一个名为MyProject.Resource.en-US.resx用于英语文化。第三个文件是名为{的默认resx文件{1}}

2-在母版页中,我在MyProject.Resource.resx事件中为每个页面调用此函数:

Page_Load

3-在 public void SwitchLanguage() { string pageURL = this.Request.RawUrl; int startInd = pageURL.IndexOf('?'); if (startInd != -1) pageURL = pageURL.Remove(startInd); languageHyperlink.NavigateUrl = pageURL; // check whether the language change parameter has been passed var language = Request.QueryString["language"]; if (string.IsNullOrEmpty(language)) { language = "en-US"; languageHyperlink.NavigateUrl += "?language=ar-SA"; } else if (language == "ar-SA") { languageHyperlink.NavigateUrl += "?language=en-US"; } // having the language a thand, let us set it. var l_culture = new System.Globalization.CultureInfo(language); Thread.CurrentThread.CurrentUICulture = l_culture; Thread.CurrentThread.CurrentCulture = l_culture; } 简单地通过使用默认resx文件的名称来渲染值

MasterPage.aspx

导航网址如下所示:

<asp:Literal ID="Literal6" runat="server" Text="<%$Resources:MyProject.Resource, AWARDS%>"></asp:Literal>

现在我期待asp应该检索当前文化的正确值,但每当我改变文化时都没有任何反应,它仍然保持原样(en-US)。

是否有人知道解决方案是什么?

我一直在寻找这个问题的解决方案2天!!

0 个答案:

没有答案