簡體   English   中英

多語言應用程序,Microsoft Visual Studio?

[英]Multi-lingual application, Microsoft Visual Studio?

我開發了一個Web應用程序,它是一個動態網站。 我可以為我的網站放置多語言選項嗎?

如果是,那是否有任何插件? 如何進一步開發多語言應用程序?

我們有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. 全球化架構
  2. [ASP.NET MVC中使用的jQuery全球化技巧]在ASP.NET中也可能會有所幫助。
  3. 我的問題在這里定義了實現多語言代碼的方式
  4. 如何在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)
    {
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM