在我的mvc4应用程序中我有内部布局视图javascript函数,它只有3个字符串在用户视图中呈现。
我的mvc4应用程序使用cookie值本地化为4种语言,并根据该值设置当前线程。
本地化这3个字符串的最简单的解决方案是什么。
<script type="text/javascript">
var message = "Please enter value in valid range in order to ...";
....
</script>
答案 0 :(得分:0)
最简单的做法是在控制器中“设置”本地化字符串,在变量中,然后构建一个要使用的JavaScript变量:
<script type="text/javascript">
userName = "@Model.UserName";
someSetting = parseInt("@Model.someSetting");
messages = { // Or even an object
InvalidRights: "@Html.Raw(ValidationMessages.UserHasInvalidRights)",
FileRequired: "@Html.Raw(ValidationMessages.FileIsRequired)"
};
</script>
答案 1 :(得分:0)
您还可以使用模型和属性注释中的标准资源文件来帮助我们。
public class MyModel:BaseModel
{
[Required(ErrorMessage = "*")]
[Display(ResourceType = typeof(RES.labels),Name = "lblLanguageCode")]
public string LanguageCode { get; set; }
[Required(ErrorMessage = "*")]
[Display(ResourceType = typeof(RES.labels), Name = "lblCountryCode")]
public string CountryCode{ get; set; }
...
}
您可以返回模型中的任何内容,我只是展示了一种方法,可以很好地连接模型中的翻译。
<script type="text/javascript">
test= '@Model.SomeErrorString';
</script>
答案 2 :(得分:-1)
您可以使用全球资源&#39;功能。
使用此功能,您可以创建一组翻译&#39;文件(称为资源文件),包含Web应用程序所需的所有各种翻译。
以下文章为您提供了执行此操作的示例:http://www.developmentalmadness.com/archive/2009/05/20/aspnet-mvc-globalizationlocalization.aspx
该文章使用较旧的Web窗体视图引擎,但它也可以在Razor View Engine中使用(@符号而不是&lt;%=%&gt;)。
我们假设您添加了一个名为“MyTranslations&#”的资源文件,然后将您的翻译添加到此文件中,您的html现在看起来如下所示:
<script type="text/javascript">
messages = {
AccessDenied: "@Html.Raw(Resources.MyTranslations.AccessIsDenied)",
FieldRequired: "@Html.Raw(Resources.MyTranslations.FieldRequired)"
};
</script>