首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多语言应用程序,Microsoft Visual Studio?

多语言应用程序,Microsoft Visual Studio?
EN

Stack Overflow用户
提问于 2011-10-18 12:34:51
回答 1查看 335关注 0票数 0

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

如果是,有没有什么插件呢?如何进一步开发多语言应用程序?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-18 12:54:57

我们有DropdownList控件。在它的SelectedIndexChanged事件上,它回发,然后我们更改站点文化,然后它加载各自的资源文件……

DropDownList ASP.NET代码

代码语言:javascript
运行
复制
<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>

所有网页继承的公共类

代码语言:javascript
运行
复制
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);
    }
}

扩展方法(仅供参考)

代码语言:javascript
运行
复制
public static Boolean IsNullOrEmpty(this String original)
{
    return string.IsNullOrEmpty(original);
}

在开始实施之前,请查看以下链接:

  1. Globalization Architecture
  2. jQuery also.
  3. My question here defines the way to implement multi-language code
  4. How to create and use Global language resources in ASP.NET

中使用的ASP.NET MVC中使用的ASP.NET全球化技巧

这使得所有要使用的页面都继承了languagebase类,如下所示:

代码语言:javascript
运行
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7802471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档