多语言asp.net mvc 3的最佳方式

时间:2011-11-16 11:45:52

标签: asp.net-mvc-3 multilingual performance

我正在尝试为学术项目创建一个asp.net mvc3项目,其中一个要求是它必须能够在不同语言之间进行更改。目前我所拥有的是以下内容:

我有一个外部项目,作为语言的存储库,每个视图我都有一个界面,每个视图定义所有“占位符”确定所有可更改的文本。 在任何操作开始时,我获取uri中的语言(类似于/ {lng} / {command} / {action})并使用ViewBag将其传递给视图,一旦在视图内部,我将存储库用于以所选语言获取该视图的接口的当前实现。

我找不到关于这个问题的任何好话题。我只是好奇,如果有更好的方法来做到这一点,效率更高。它是如何在专业水平上完成的。 我对asp.net在一个月前开始学习它的经验不是很熟悉。

此外,如果重要的是我使用剃刀引擎进行视图,并且我们不能在项目的这个阶段使用任何JavaScript。

2 个答案:

答案 0 :(得分:10)

您可以浏览following guide

答案 1 :(得分:2)

我正在使用一个名为Griffin.MvcContrib的项目,该项目具有一些本地化功能。

首先,我使用查询字符串和cookie来切换语言。 (只需在布局<a href="@Url.Action("Index")?lang=en-us">English</a>)中创建一个带有标记的链接

并使用我的属性标记您的控制器:

[LocalizedAttribute]
public class YourController : Controller
{

}

接下来是获取视图,模型和验证消息的本地化。 模型和验证的本地化是described here。至于视图,您只需使用@T()来获取翻译文本:

@Model.Title

<div>@T("This text will get translated")</div>

(您需要将Views \ Web.config中的pageBaseType更改为Griffin.MvcContrib.GriffinWebViewPage

我差不多完成了一个管理区域,任何非技术用户都可以用来管理所有翻译。在此处查看Griffin.MvcContrib.Admin项目:https://github.com/jgauffin/griffin.mvccontrib/tree/localization/source/Griffin.MvcContrib.Admin