[英]Easiest way to localize string in javascript
在我的mvc4應用程序中,我具有內部布局視圖javascript函數,該函數只有3個在用戶視圖內部呈現的字符串。
我的mvc4應用使用cookie值本地化為4種語言,並基於該值設置了當前線程。
定位這3個字符串的最簡單解決方案是什么。
<script type="text/javascript">
var message = "Please enter value in valid range in order to ...";
....
</script>
最簡單的方法是在控制器中的變量中“設置”本地化的字符串,然后從中構建要使用的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>
您還可以在模型和屬性注釋中使用標准資源文件以提供幫助。
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>
您可以使用“全局資源”功能。
使用此功能,您可以創建一組“翻譯”文件(稱為資源文件),其中包含Web應用程序所需的所有各種翻譯。
以下文章提供了執行此操作的示例: http : //www.developmentalmadness.com/archive/2009/05/20/aspnet-mvc-globalizationlocalization.aspx
該文章使用了較舊的Web Form View Engine,但它也可以在Razor View Engine中使用(@符號代替<%=%>)。
假設您添加了一個名為“ MyTranslations”的資源文件,然后將翻譯添加到了該文件中,那么您的html現在將類似於以下內容:
<script type="text/javascript">
messages = {
AccessDenied: "@Html.Raw(Resources.MyTranslations.AccessIsDenied)",
FieldRequired: "@Html.Raw(Resources.MyTranslations.FieldRequired)"
};
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.