当语言相似时,我可以在asp.net中使用多语言网站(dir = ltr,例如英语,西班牙语,法语)。我想知道当一种语言dir = ltr(英语)和其他语言dir = rtl(阿拉伯语)时如何做同样的事情。
我很感激,如果有人可以链接到一个资源,可以逐步显示如何执行此操作,以及主题一个用于英语,另一个用于阿拉伯语。
我正在使用ASP.Net 4.0。
我很感激这方面的任何帮助,如果有人能为我提供一个很好的两页例子。
答案 0 :(得分:6)
你可以这样试试......
使用ASP.NET开发支持多语言的网站很容易。只是一步一步地说。
Default.aspx
文件看起来像那样
<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>
Default.aspx.cs代码
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);
}