你可以试试这样...
很容易使用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时间调用和使用语言的网页,你的网站解决方案资源管理器看起来像下面的图片...
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