2011-11-19 116 views
3

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

我将不胜感激,如果有人可以链接到它可以显示如何使用的主题之一为英语和其他阿拉伯语沿做到这一步一步的资源..

我使用ASP.Net 4.0。

我很感谢在这方面的任何帮助,如果有人能为我提供一个两页的例子,那就太棒了。

回答

6

你可以试试这样...

很容易使用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

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

我会标记你的答案正确,因为你已经展示了一个很好的例子。谢谢 – Student

+0

你如何处理阿拉伯文 - dir = rtl? – NinethSense

+1

嘿,当我运行它给出错误>>无法加载文件或程序集'App_GlobalResources'或其依赖项之一。该系统找不到指定的文件。 – John

相关问题