ASP.NET MVC5+EF6+EasyUI 后台管理系统(89)-国际化,本地化,多语言应用

开篇

早年写过一篇多语言的应用 :   本地化(多语言)   讲述了如何建立多语言的资源文件,并利用资源文件来得到页面和请求的语言属性html

本次补充这篇文章,的缘由是在实际项目中,有多种须要多语言的状况前端

好比:日志要根据当前语言显示数据库

而有些情景比较复杂,咱们可能的key是提取自数据中,或者说一些错误的提示和模型界面字段的显示后端

下面咱们回顾和新增一些实际应用post

1.多语言使用

多语言基础使用,请跳转开篇早年写的链接中 本地化(多语言) ui

多语言使用的命名空间是 using System.Threading;url

因此在后端.cs页面或者前端视图,你都必须引用 System.Threadingspa

2.得到当前多语言的名称

string info = System.Threading.Thread.CurrentThread.CurrentCulture.Name;

可得到资源文件的语言名称 en-US  /  zh-CN  / zh-TW翻译

3.改变当前请求的语言

好比用户请求的时语言是zh-CN,即中文,经过下面3行代码可设置改变当前的请求语言3d

CultureInfo culture = CultureInfo.GetCultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;

示例代码

public ActionResult Create(string name)
{
    int a=1;

    CultureInfo culture = CultureInfo.GetCultureInfo("en-US");
    Thread.CurrentThread.CurrentCulture = culture;
    Thread.CurrentThread.CurrentUICulture = culture;

     return View(Resource.建立成功);
}

不使用时候,返回:建立成功  使用时返回:Insert Succeed

3.使用方式

因为资源文件的后端代码也是一个类,Key是属性,使用使用很是简单

string value1 = Resource.Key00001;
string value2 = Resource.Key00002;

4.使用场景一

举个栗子:

好比我要写段日志:其中 姓名 与电话是变量

  张三成功建立了一条客户信息,客户名称:李四,客户电话:13800138000

那么你可使用格式化的方式来填充显示的内容,日志中,只要存储值就可

string.Format(Resource.Key0001, "李四", "138XXXXXXXX");

5.经过Key反射出值

若是你不喜欢上面的情景,那么可使用下面一个方法,将key和值一块儿存到数据库

举个例子:表数据-   Key00002:张三

那么能够资管管理器提取Key来反射

ResourceManager resMan = new ResourceManager(typeof(Resource));
string val = resMan.GetString("Key000002");

6.MVC中模型属性的注解

注解主要用于2个地方

  • 1.模型验证中的错误提示
  • 2.DisplayFor 界面显示

咱们来看一个例子:

4个key中前面2个是错误提示

那么咱们的模型就是这么作

[Display(Name = "Key00003", ResourceType = typeof(Resource))]
[Required(ErrorMessageResourceType = typeof(Resource), ErrorMessageResourceName = "Key00001")]
 public string Name { get; set; }

那么将得到一个非空经过翻译的提示和一个前端显示翻译的处理,这个MVC的支持仍是最简单完美的

@Html.LabelFor(model => model.Name)
得到字段
@Html.ValidationMessageFor(model => model.Name)
错误提示

 

最后

若是你的系统有不少国家在使用,或者说一个系统有不少不一样地区的人在使用

那么这篇文章的知识点很是实用,由于经过处理

可使一些本来在数据库的数据的固定通用部分也能获得完美的翻译

相关文章
相关标签/搜索