ASP.NET MVC 本地化

发布于 2024-11-07 16:44:53 字数 453 浏览 0 评论 0原文

我读了一些关于 ASP.NET MVC 应用程序的文章,但我只找到了关于静态文本的文章。当下拉菜单的内容也必须随语言变化时,应采取哪种策略?

我有一个 IList() ,其中 MyClass

public MyClass(){
        public int Id { get; set; }
        public string Code { get; set; }
        public string EN { get; set; }
        public string FR { get; set; }
        public string ES { get; set; }
}

取决于我的 UI 语言,我必须使用 EN(英语)、FR(法语)、.. 值。

谢谢,

I read some post about ASP.NET MVC application, but I found only article on static text. Which is the strategy when the content of a dropdown must change with the language too ?

I have a IList<MyClass>() where MyClass is

public MyClass(){
        public int Id { get; set; }
        public string Code { get; set; }
        public string EN { get; set; }
        public string FR { get; set; }
        public string ES { get; set; }
}

depending the language of my UI, I have to use EN (English), FR (French), .. values.

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

月隐月明月朦胧 2024-11-14 16:44:53

您可以使用这种方法:

public class LocalizableModel
{
    private Dictionary<string,string> labels = new Dictionary<string,string> ();
    public string LocalizedLabel
    {
        get { return this.labels[Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName]; }
    }
}

在 Global.asax 中

protected void Session_Start(Object Sender, EventArgs e)
{
    // set the correct culture, using cookie, querystring, whatever
    System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(1033);            
}

You could use this approach :

public class LocalizableModel
{
    private Dictionary<string,string> labels = new Dictionary<string,string> ();
    public string LocalizedLabel
    {
        get { return this.labels[Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName]; }
    }
}

And in Global.asax

protected void Session_Start(Object Sender, EventArgs e)
{
    // set the correct culture, using cookie, querystring, whatever
    System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(1033);            
}
陪你到最终 2024-11-14 16:44:53

在我们的例子中,我建议使用 EF Code-First (http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx)商业模式。我这个最简单

使用元数据属性来本地化属性名称和验证消息 (http://afana.me/post/aspnet-mvc-internationalization.aspx)。

使用数据库存储的字典将实体代码映射到人类可读的本地化名称。

如果您需要简单的列表,请使用本地化的字符串资源来定义逗号分隔的列表,并使用 string.Split() 来创建项目列表。

In our case I suggest to use EF Code-First (http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx) for your business models. I'ts simplest.

Use metadata attributes to localize property names and validation messages (http://afana.me/post/aspnet-mvc-internationalization.aspx).

Use database stored dictionaries to map entities codes to human readable localized names.

If you need simple lists, use localized string resources to define comma separated list and string.Split() to make a list of items.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文