如何用英语和阿拉伯语做ASP.net网站

时间:2011-11-19 13:10:08

标签: asp.net c#-4.0 localization multilingual

当语言相似时,我可以在asp.net中使用多语言网站(dir = ltr,例如英语,西班牙语,法语)。我想知道当一种语言dir = ltr(英语)和其他语言dir = rtl(阿拉伯语)时如何做同样的事情。

我很感激,如果有人可以链接到一个资源,可以逐步显示如何执行此操作,以及主题一个用于英语,另一个用于阿拉伯语。

我正在使用ASP.Net 4.0。

我很感激这方面的任何帮助,如果有人能为我提供一个很好的两页例子。

1 个答案:

答案 0 :(得分:6)

你可以这样试试......

使用ASP.NET开发支持多语言的网站很容易。只是一步一步地说。

  • 1.建立一个新网站
  • 2.从ASP.NET文件夹添加“App_GlobalResources”
  • 3.获取* .resx文件(Strings.resx)
  • 4.输入姓名和值
  • 5.为不同语言制作不同的* .resx文件,并命名为Strings.en-US.resx(美国英语),Strings.fr-FR.resx(for 法国)。制作所需的语言文件
  • 6.现在从网页调用和使用语言的时间您的网站解决方案资源管理器将如下图所示...

enter image description here

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);
}