2011-10-18 34 views
0

我开发了一个Web应用程序,它是一个动态网站。我可以为我的网站放置多语言选项吗?多语言应用程序,Microsoft Visual Studio?

如果是,是否有插件?我怎样才能进一步开发多语言应用程序?

+0

指http://stackoverflow.com/questions/256229/多语种网络应用程序如何做我检测用户语言在ASP网 –

回答

0

我们有DropdownList控件。在其SelectedIndexChanged事件,这回发然后我们改变网站的文化,然后加载相应的资源文件...

DropDownList的ASP.NET代码

<asp:DropDownList ID="ddlLanguage" runat="server" CssClass="select-language" AutoPostBack="true"> 
    <asp:ListItem Value="en-US" Text="English" title="/images/Flag_USA.gif"></asp:ListItem> 
    <asp:ListItem Value="it-IT" Text="Italiano" title="/images/Flag_Italian.gif"></asp:ListItem> 
    <asp:ListItem Value="fr-FR" Text="Française" title="/images/Flag_French.gif"></asp:ListItem> 
</asp:DropDownList> 

通用类的所有继承的网页

using System; 
using System.Web; 
using System.Threading; 
using System.Globalization; 

public class languagebase : System.Web.UI.Page 
{ 
    protected override void InitializeCulture() 
    { 
     try 
     { 
      string LanguageCode = Request["ctl00$ucMenu$ddlLanguage"]; // Language Drop Down Control in Front End 
      if (!LanguageCode.IsNullOrEmpty()) 
      { 
       setCulture(LanguageCode); // Set Culture language from drop down 
       Request.Cookies["LanguageCode"].Value = LanguageCode; // Update REQUEST Cookie language from drop down 
       SetCookies(LanguageCode); // Set Cookie language from drop down 
      } 
     } 
     catch(Exception ex) 
     { 
      setCulture("en-US"); // Set default language 
      Request.Cookies["LanguageCode"].Value = "en-US"; // Update REQUEST Cookie language to default 
      SetCookies("en-US"); // Set default language 
     } 
     base.InitializeCulture(); 
    } 

    private static void setCulture(string LanguageValue) 
    { 
     Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageValue); 
     Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguageValue); 
    } 

    public void SetCookies(string strLanguage) 
    { 
     System.Web.HttpContext.Current.Response.Cookies["LanguageCode"].Value = strLanguage; 
     System.Web.HttpContext.Current.Response.Cookies["LanguageCode"].Expires = DateTime.Now.AddDays(15); 
    } 
} 

扩展方法(只为信息的缘故)

public static Boolean IsNullOrEmpty(this String original) 
{ 
    return string.IsNullOrEmpty(original); 
} 

请开始实施前审查这些链接:

  1. Globalization Architecture
  2. [jQuery的全球化在ASP.NET MVC使用技巧]可以在ASP.NET是有益也。
  3. My question here defines the way to implement multi-language code
  4. How to create and use Global language resources in ASP.NET

这让所有的页面使用来自languagebase类,如下继承:

using System; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Default : languagebase 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 
} 
+0

谢谢你,我会尽力让你知道这一点。 –

+0

它给出了一个错误:找不到合适的方法覆盖 –

+0

在我的答案中的哪个代码点? –