Asp.Net MVC使用Resource.resx 资源文件 切换语言
时间:2019-10-31
本文章向大家介绍Asp.Net MVC使用Resource.resx 资源文件 切换语言,主要包括Asp.Net MVC使用Resource.resx 资源文件 切换语言使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1,在项目中添加 App_GlobalResources(全局文件资源) 文件夹。
2,在资源文件夹上面右击,Add ——>New Item 添加需要的语言资源文件。
3,向里面添加了2个资源文件,Resource.resx是英文资源,Resource.zh-cn.resx是中文资源文件
4,这里写一个登陆页面中切换语音,在资源文件中添加相应的语言内容,Name是key,Value是要显示的内容
保持2个资源文件中的key是一样的,才好在英文和中文之间切换
5,前端页面中引用 @using Resources
@{ Layout = null; } <!DOCTYPE html> @using Resources <html> <head> <meta name="viewport" content="width=device-width" /> <title>Login</title> <link href="~/Content/bootstrap.css" rel="stylesheet" /> </head> <body> <div> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">@Resource.userName</label> <!-----调用在资源文件中写的key-----> <div class="col-sm-10"> <input type="email" class="form-control" id="inputEmail3" name="inputEmail3" placeholder="Email"> </div> </div> <div class="form-group"> <label for="inputPassword3" class="col-sm-2 control-label">@Resource.password</label> <div class="col-sm-10"> <input type="password" class="form-control" id="inputPassword3" name="inputPassword3" placeholder="Password"> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <div class="checkbox"> <label> <input type="checkbox"> Remember me </label> </div> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-default">@Resource.login</button> </div><br /> <!--------这里切换语音调用 Language控制器中的 Change方法,传递相应的语言参数过去---------> <div class="col-sm-offset-2 col-sm-10"> @Html.ActionLink("English", "Change", "Language", new { LanguageAbb = "en" }, null) @Html.ActionLink("简体中文", "Change", "Language", new { LanguageAbb = "zh-cn" }, null) </div> </div> </div> </body> </html>
6,Language控制器中的change方法代码如下
public ActionResult Change(string LanguageAbb) { if (LanguageAbb != null) { Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguageAbb); Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageAbb); } string login = Resources.Resource.login; //也可以在c#中调用资源文件的内容 //可以更新用户的语言设置到数据库 //if (true) //{ // var userID = GetUserID(); // var user = db.AspNetUsers.FirstOrDefault(x => x.ID == userID); // if (user != null) // { // user.Language = LanguageAbb; // db.SaveChanges(); // } //} //更新用户语言 HttpCookie cookie = new HttpCookie("Language"); cookie.Value = LanguageAbb; Response.Cookies.Add(cookie); return Redirect(Request.UrlReferrer.ToString()); }
7,在页面请求时设置语言,向Global.asax.cs 中添加方法
protected void Application_BeginRequest(object sender, EventArgs e) { HttpCookie cookie = HttpContext.Current.Request.Cookies["Language"]; if (cookie != null && cookie.Value != null) { System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cookie.Value); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(cookie.Value); } else { System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("aa"); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("aa"); } }
8,最终运行登录界面切换语音
9,如果要在js文件中引用资源文件的内容,可以在前端页面的js里设置全局变量
//然后在其他的js文件中直接引用全局变量 window.l_this_field_cannot_be_empty = '@Resource.prompt_statement'; alert(window["l_this_field_cannot_be_empty"]); console.log('@Resource.prompt_statement');
原文地址:https://www.cnblogs.com/footmark/p/11766540.html
- 数据库收缩数据文件的尝试(三)(r11笔记第22天)
- 再议-Golang语言MessageBox用法实例
- linux下通过go语言获得系统进程cpu使用情况的方法
- Golang语言版ssh口令破解工具 --必须亲自敲代码,否则看了白看
- MySQL中insert语句没有响应的问题分析(r11笔记第21天)
- MySQL级联复制中的数据同步(第二篇)(r11笔记第21天)
- Golang语言 - 以任意类型的slices作为输入参数
- HDUOJ-------The Hardest Problem Ever
- Golang语言--【社区推荐阅读】 fmt用法
- 一个SQL性能问题的优化探索(一)(r11笔记第33天)
- HDUOJ-----1074 Integer Inquiry
- PXE无人值守安装Linux
- HDUOJ-----Robot Motion
- 对康托展开的一些心得...
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ASP.NET Core 奇技淫巧之接口代理转发
- 基于CDH(Cloudera Distribution Hadoop)的大数据平台搭建
- troubleshoot之:用control+break解决线程死锁问题
- Docker 三剑客之docker-compose
- 腾讯云 Severless-Express 项目开发和灰度发布最佳实践
- 在Docker中使用Redis
- 基于实际业务场景下的Flume部署
- troubleshoot之:使用JFR解决内存泄露
- 一个ABAP和JavaScript这两种编程语言的横向比较
- WebRTC & Android 开发学习环境搭建~
- word模板和XML数据源是如何合并生成最后的word文档的详细过程
- Angular路由跳转时,如何传递信息
- Angular里的购物车页面实现
- CentOS7部署WeADMIN监控主机交换机和URL(无坑版)
- JsonPath实践(一)