我正在嘗試在 VB.net 中創建具有多語言選項的頁面。檔案如下:
Page (Folder)
- Sample.aspx
- Sample.aspx.vb
- App_LocalResources
- - Sample.aspx.nl.resx
- - Sample.aspx.nl.resx
web.config 中的文化如下:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" uiCulture="nl" culture="nl" enableClientBasedCulture="true"/>
然后,在 上Sample.aspx.vb,我試圖將文化更改為“EN”,但它仍然顯示“NL”文本。
Protected Overrides Sub OnInit(e As System.EventArgs)
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en")
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en")
End Sub
我也嘗試將它放入 Page_Load 但它不起作用。我試圖打破背后的代碼,似乎文化正在改變,但仍然顯示“NL”文本。我已經在www中搜索過,但沒有找到任何解決方案。
我希望你能幫助我解決這個問題。什么是最好的解決方案?我應該從后面的代碼中設定標簽嗎?
uj5u.com熱心網友回復:
ASP.NET WebForms 處理文化的方式在如何:為 ASP.NET 網頁全球化設定文化和 UI 文化中進行了說明。
首先,可以在web.config頁面級別或在頁面級別設定文化:
<globalization uiCulture="es" culture="es-MX" />
或者
<%@ Page UICulture="es" Culture="es-MX" %>
也可以Accept-Language通過將文化設定為:根據瀏覽器發送的標頭設定文化auto:
<globalization uiCulture="auto" culture="auto" />
最后,要以編程方式修改請求的文化,請覆寫該InitializeCulture方法:
Protected Overrides Sub InitializeCulture()
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en")
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en")
End Sub
當瀏覽器不發送Accept-Language標頭或我們想要應用我們自己的邏輯時,這很有用,例如使用地理定位來確定語言是否Accept-Language缺失
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515498.html
