你可以試試這樣...
很容易使用ASP.NET開發支持多語言的網站。只需按照這個步驟。
- 1.Take一個新的網站
- 2.增加從ASP.NET文件夾
- 3.Take一個* .resx文件(Strings.resx)
- 4.輸入名稱「App_GlobalResources文件」和值
- 5.針對不同的語言和名稱創建不同的* .resx文件,如Strings.en-US.resx(用於美國英語),Strings.fr-FR.resx(用於 法語)。讓儘可能多的語言文件,你需要
- 6.Now時間調用和使用語言的網頁,你的網站解決方案資源管理器看起來像下面的圖片...
![enter image description here](https://i.stack.imgur.com/D3qKy.png)
Default.aspx
文件看起來像該Default.aspx.cs
的
<asp:Label ID=」lblName」 runat=」server」 Text=」Label」></asp:Label>
<asp:Label ID=」lblDesc」 runat=」server」 Text=」Label」></asp:Label>
<asp:Label ID=」lblComments」 runat=」server」 Text=」Label」></asp:Label>
<asp:LinkButton ID=」lnkEnglish」 runat=」server」 OnClick=」lnkEnglish_Click」>English</asp:LinkButton>
<asp:LinkButton ID=」lnkFrench」 runat=」server」 OnClick=」lnkFrench_Click」>French</asp:LinkButton>
代碼
private ResourceManager rm;
protected void Page_Load(object sender, EventArgs e)
{
CultureInfo ci;
if (!IsPostBack)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo(「en-US」);
rm = new ResourceManager(「Resources.Strings」, Assembly.Load(「App_GlobalResources」));
ci = Thread.CurrentThread.CurrentCulture;LoadData(ci);
}
else
{
rm = new ResourceManager(「Resources.Strings」,Assembly.Load(「App_GlobalResources」));
ci = Thread.CurrentThread.CurrentCulture;LoadData(ci);
}
}
protected void lnkEnglish_Click(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo(「en-US」);
LoadData(Thread.CurrentThread.CurrentCulture);
}
protected void lnkFrench_Click(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo(「fr-FR」);
LoadData(Thread.CurrentThread.CurrentCulture);
}
public void LoadData(CultureInfo ci)
{
lblName.Text = rm.GetString(「EventName」, ci);
lblDesc.Text = rm.GetString(「EventDescription」, ci);
lblComments.Text = rm.GetString(「EventComments」,ci);
}
我會標記你的答案正確,因爲你已經展示了一個很好的例子。謝謝 – Student
你如何處理阿拉伯文 - dir = rtl? – NinethSense
嘿,當我運行它給出錯誤>>無法加載文件或程序集'App_GlobalResources'或其依賴項之一。該系統找不到指定的文件。 – John