【jqGrid for ASP.NET MVC Documentation】.学习笔记.3.本地化语言包
1 引用本地化语言包
在 js/i18n 文件夹中,提供了大量预定义的语言包。它包括为所有字符串定义的,包括消息,标题,分页信息,搜索/添加/删除 的对话框 文本等。
在jQuery库文件后,在jqGrid 脚本文件前 引用语言包。
1 <head id="Head1" runat="server"> 2 <!-- The jQuery UI theme that will be used by the grid -->> 3 <link rel="stylesheet" type="text/css" media="screen" href="/themes/redmond/jquery-ui-1.7.1.custom.css"/> 4 <!-- The jQuery UI theme extension jqGrid needs -->> 5 <link rel="stylesheet" type="text/css" media="screen" href="/themes/ui.jqgrid.css"/> 6 <!-- jQuery runtime minified -->> 7 <script src="/js/jquery-1.3.2.min.js" type="text/javascript"></script> 8 <!-- The localization file we need, English in this case -->> 9 <script src="/js/i18n/grid.locale-en.js" type="text/javascript"></script>10 <!-- The jqGrid client-side javascript -->> 11 <script src="/js/jquery.jqGrid.min.js" type="text/javascript"></script>12 </head>
2 修改创建语言包
1 $.jgrid = { 2 defaults : { 3 recordtext: "View {0} - {1} of {2}", 4 emptyrecords: "No records to view", 5 loadtext: "Loading...", 6 pgtext : "Page {0} of {1}" 7 }, 8 search : { 9 caption: "Search...", 10 Find: "Find", 11 Reset: "Reset", 12 odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with', 13 'does not begin with','is in','is not in','ends with', 14 'does not end with','contains','does not contain'], 15 groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], 16 matchText: " match", 17 rulesText: " rules" 18 }, 19 ...
1 formatter : { 2 integer : {thousandsSeparator: " ", defaultValue: '0'}, 3 number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, 4 currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, 5 date : { 6 dayNames: [ 7 "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat", 8 "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" 9 ], 10 monthNames: [ 11 "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", 12 "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" 13 ], 14 ...
通过修改 这些文本,可以达到自定义的目的。
3 以代码的方式,重写语言默认的文本
可以在 Model 和 Controller 中以代码的方式,改变 edit dialog 的文本。
改变之前,默认为:
1 edit : { 2 editCaption: "Edit Record", 3 bSubmit: "Submit", 4 bCancel: "Cancel" 5 }
在 Controller 中改变
JQGridModel.EditDialogSettings.Caption = "My New Caption"; JQGridModel.EditDialogSettings.SubmitText = "My Submit Text"; JQGridModel.EditDialogSettings.CancelText = "My Cancel Text";
4 以代码的方式,改变语言包
在这种情况下,与其直接将文件添加懂啊header,不如使用 viewData 替代。
1 <head id="Head1" runat="server">2 ... 3 <script type="text/javascript" src="http://www.trirand.net/aspnetmvc/Scripts/jquery-1.3.2.min.js"></script>4 <script type="text/javascript" src='<%= ViewData["localeScript"] %>'></script> 5 <script type="text/javascript" src="http://www.trirand.net/aspnetmvc/Scripts/jqgrid/jquery.jqGrid.min.js"></script> 6 ... 7 </head>
这会默认使用 英语。我们可以在服务端代码中修改。如Controller:
1 // locale can be passed as a GET parameter from a dropdownlist for example 2 public ActionResult FunctionalityLocalization(string locale) 3 { 4 string jsLocale = locale ??"grid.locale-en.js"; 5 6 ViewData["localesList"] = GetLocales(jsLocale); 7 ViewData["localeScript"] ="http://www.trirand.net/aspnetmvc/Scripts/jqgrid/i18n/"+ jsLocale; 8 9 // Pass the custmomized grid model to the View10 return View(GetGridModel()); 11 } 12 13 public SelectList GetLocales(string selectedValue) 14 { 15 List<SelectListItem> countries =new List<SelectListItem>(); 16 countries.Add(new SelectListItem { Text ="English", Value ="grid.locale-en.js" }); 17 countries.Add(new SelectListItem { Text ="German", Value ="grid.locale-de.js" }); 18 countries.Add(new SelectListItem { Text ="French", Value ="grid.locale-fr.js" }); 19 returnnew SelectList(countries, "Value", "Text", selectedValue); 20 }
学习本是一个不断模仿、练习、创新的过程。对于自己,博文只是总结。在总结的过程发现问题,解决问题。对于他人,在此过程如果还能附带帮助他人,那就再好不过了。 感谢您的阅读。如果文章对您有用,那么请打赏我一杯咖啡,也可以轻轻点个推荐,以资鼓励。
微信打赏
支付宝打赏