本文转自:https://www.cnblogs.com/FredTang/archive/2013/01/23/2873231.html

最近领导要求实现PMSWeb应用程序的多区域语言的支持,所以在网搜集相关的信息,写出了解决方案文档,欢迎各位批评指正,谢谢!废话少说,进入正题:

多语言解决方案(2013年1月 济南)

目  录

1.      开发目的... 1

2.      实现的效果... 1

3.      方案1说明(Asp.Net内置公共资源文件+ExtJS)... 1

3.1.       概述... 1

3.2.       实现步骤... 1

3.3.       本方案总结... 4

4.      方案2(XML+JS)... 5

4.1.       概述:... 5

4.2.       实现步骤:... 5

4.3.       本方案总结... 7

1.    开发目的

为了使PMS系统适应国际化项目管理的正常运行,根据当前用户本地的语言、数据的习惯格式进行对系统进行本地化显示,满足用户的需求。

2.    实现的效果

PMS系统平台根据用户在登录时所选择的语言种类,对界面进行本地化显示。用户选择中文时,系统界面展示的语言为中文,如果用户选择英文时,则展示为英文。本地化内容具体包括:界面显示、提示信息、数据格式(日期、货币)。

3.    方案1说明(Asp.Net内置公共资源文件+ExtJS)

3.1.  概述

方案1采用.Net Framework2.0 公共资源文件(.resx)+ExtJS实现。为每个区域用户分别添加该区域的语言描述文件(默认语言.resx,中文.resx,英文.resx)。语言描述文件内容主要包括:关键字名称(key_name), 关键字值(key_value),其中关键字名称是唯一的。系统根据当前用户选择的区域语言,在相应的区域语言描述文件中获取界面显示信息。

3.2.  实现步骤

1)       获取当前用户的区域信息

用户在登录时选择语言种类。

PMS读取当前操作系统安装语言作为默认语言。

2)   建立区域语言资源文件

根据用户群体的需求,创建区域语言资源文件。

具体实现步骤:

  • 在解决方案管理器中添加Asp.Net 文件夹“App_GlobalResources

在文件夹中添加资源文件,例如 lang.resx。

添加所要描述的键名称、键值。此文件为默认文件。

添加其他种类语言的描述文件,例如 英文(lang.en-US.resx)、中文(lang.zh-CN.resx),它们与默认文件的键名称相同,键值不同。如下图所示:


  
  
  

3)             设置Asp.Net 控件的文本显示方式,

设置举例如下:

标签控件(引用公共资源文件):

<asp:Label ID="lbl_global" runat ="server" Width ="600px" Text ="<%$Resources:lang,Message %>"></asp:Label>

按钮控件(引用本地资源文件):

<asp:Button ID="btnMessage" runat="server" OnClick="btnMessage_Click" Text="Message" meta:resourcekey="btnMessageResource1" />

  

隐藏按钮(引用公共资源文件)

<asp:HiddenField ID="hidLang" runat ="server"   value="<%=Resources.lang.Message %>"/>

  

JavaScript变量引用

var strLang="<%=Resources.lang.Message%>";

实现效果界面展示:

3.3.  本方案总结

优点:本方案实现简单,操作方便,安全性高。

对各种浏览器适应性高。

缺点: 部署后不易维护,需要重新编译。

数据信息无法分类,难护分类。

4.    方案2(XML+JS)

实现方案说明:

4.1.  概述:

本方案主要将区域语言描述数据存放在XML文件中,根据在XML文件中自定义的节点标志变量及标志变量的值,通过Javascript对XML文件进行读取操作。

4.2.  实现步骤:

Ø  设置区域语言初始标志

在Web.Config中,添加如下信息:

<appSettings>
 
    <add key="Flag" value="1" /> <!-- 0:中文; 1:英文-->
 
  </appSettings>

  

Ø  系统获取区域语言标志

由于Javascript无法访问web.config文件,所以需要在Global.asax文件中Application_Start事件添加如下处理:

从Web.config 读取区域语言标志变量

将标志变量写入在指定的XML文件中,例如web.xml文件。

Ø  提取界面显示、提示信息区域语言描述信息,分别存入相对应的XML文件中,如中文.XML,英文.XML。格式如下所示:

英文:

<?xml version="1.0" encoding="utf-8" ?>

<langShow>

  <formShow>    

    <add key="Add" value="Add"></add>

    <add key="Delete" value="Delete"></add>

    <add key="ShowInfo" value="This is a test!"></add>

  </formShow>

  <alertmsg>

    <add key="FileNotExist" value="File isn't exist!"></add>

    <add key="DelInfo" value="Are you sure to delete this file?"></add>

  </alertmsg>  

</langShow>

中文:

<?xml version="1.0" encoding="utf-8" ?>

<langShow>

  <formShow>     

    <add key="Add" value="添加"></add>    

    <add key="Delete" value="删除"></add>

    <add key="ShowInfo" value="这是一个测试用例"></add>

  </formShow>

  <alertmsg>

    <add key="FileNotExist" value="文件不存!"></add>

    <add key="DelInfo" value="请确认是否删除该文件?"></add>    

  </alertmsg>

</langShow>

Ø  根据区域标志,通过Javascript在对应的上述文件中读取显示信息。

界面效果显示如下图所示:

4.3.  本方案总结

优点:

资源文件维护方便,不用重新编译。

数据信息可以分类,便于维护。

缺点:

安全性差,用户可以直接打开资源文件。

适应性差。系统需要辨别不同的浏览器(IE,Firefox..)。

代码下载:

.Net 内置公共资源.zip  js_xml_multiLang.zip

[转]Asp.Net 网站多语言解决方案的更多相关文章

  1. CGI、ASP、PHP、JSP、 ASP.NET网站开发语言比较

    一.主流网站开发语言的简介及优缺点. 现在主流的网站开发语言主要包括cgi.asp.php.asp.net.jsp等. HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持. (一)  ...

  2. ASP.NET MVC 多语言解决方案

    1:打开VS,新建ASP.NET MVC4项目 2:创建一个放本地化资源的文件夹并命名为"Language",右键选择添加新项,选择资源文件并命名为"Com" ...

  3. ASP.NET 网站支持多语言

    ASP.NET网站支持多语言 (本地资源文件和全局资源文件的调用及需注意的地方总结)   一.   本地资源文件(App_LocalResources): ①.     本地资源的生成及调用 1.本地 ...

  4. EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象

    EF+LINQ事物处理   在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...

  5. VS2010 Chart控件(一)Chart控件在ASP.NET网站中的应用示例详解(C#语言)

    步骤如下: 1. Chart控件(一)Chart控件在ASP.NET网站中的应用示例详解(C#语言)" title="VS2010 Chart控件(一)Chart控件在ASP.NE ...

  6. ASP.NET MVC 多语言实现——URL路由

    考虑实现一个完整的基于asp.net mvc的多语言解决方案,从路由到model再到view最后到数据库设计(先挖好坑,后面看能填多少). 我所见过的多语言做得最好的网站莫过于微软的msdn了,就先从 ...

  7. 搭建调用 WebService 的 ASP.NET 网站 (VS2010, C#)

    [系统环境]Windows 7 / 2008r2 [软件环境]Visual Studio 2010 [开发语言]C# [感谢]本文是在 <C#开发和调用Web Service> 一文的基础 ...

  8. asp.net网站服务器搭建之从零开始

    asp.net网站服务器搭建之从零开始 一 IIS(Internet Information Services)安装:  1.选择"控制面板".  2.点"添加或删除程序 ...

  9. ASP.NET网站优化(转自一位博友的文章,写的非常好)

    不修改代码就能优化ASP.NET网站性能的一些方法 阅读目录 开始 配置OutputCache 启用内容过期 解决资源文件升级问题 启用压缩 删除无用的HttpModule 其它优化选项 本文将介绍一 ...

随机推荐

  1. 设计模式之代理模式(Proxy Pattern)_远程代理解析

    一.什么是代理模式? 顾名思义,代理就是第三方,比如明星的经纪人,明星的事务都交给经纪人来处理,明星只要告诉经纪人去做什么,经纪人自然会想办法去做,做完之后再把结果告诉明星就好了 本来是调用者与被调用 ...

  2. JAVA 从头开始<二>

    一.JAVA_HOME 1.环境变量如果经常变更,就要经常操作到Path,可能会一不小心把什么东西给删了 2.最好新建一个环境变量 3.如果使用新环境变量 ①原来的写法 ②现在的写法 新建环境变量JA ...

  3. Asp.net MVC4 记录在线用户数及登录时长

    Global.asax.cs文件 public class MvcApplication : System.Web.HttpApplication { /// <summary> /// ...

  4. SharePoint列表数据清除

    --获取站点对象 $spWeb =get-spweb http://123.sinochem.com --获取具体列表对象 $spList =$spWeb.GetListFromUrl("h ...

  5. 如何做好iOS应用安全?这有一把行之有效的“三板斧”

    本文由  网易云发布. iOS应用面临很多破解问题,常见的有IAP内购破解.山寨版本.破解版本等:大众应用上,微信抢红包.微信多开等:而在iOS游戏上,越来越泛滥的外挂问题也不断困扰着游戏厂商. 网易 ...

  6. flume在windows环境下的使用

     Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理, ...

  7. Struts2乱码问题的解决办法

    乱码问题的起因在于数据在web系统的各个层中间传递的时候编码不同,比如页面使用GB18030而中间层使用UTF-8.由于struts2默认使用的就是UTF-8编码,所以在页面如果使用的是其他的编码格式 ...

  8. ThinkPHP5.0手把手实现手机阿里云短信验证

    阿里云短信服务介绍阿里云短信服务就是以前的阿里大于,不过现在融合得到阿里云平台了.首先,你需要注册一个阿里云账号,这个自行解决. 仅用于测试使用官方送的代金券够用了.相关配置1.开通阿里云Access ...

  9. 进程控制块(PCB)

    用来描述和控制进程的运行的一个数据结构--进程控制块PCB(Process Control Block),是进程实体的一部分,是操作系统中最重要的记录型数据结构. PCB是进程存在的唯一标志 系统能且 ...

  10. grafana 运行

    1,下载好项目,然后进入到目录 键入: ./bin/grafana-server web 运行 https://www.waitig.com/grafana-config-and-run.html 2 ...