本文转自: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. ASP.Net Core 2.2 MVC入门到基本使用系列 (三)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  2. select * 和 select 所有字段写出来 ,速度对比!

    从很早时候,听老师说 select * from table  比 select a,b,c,d from table 要慢很多.3年来从未测试.  今天没事测一测, 不测不知道,一测吓一跳. 当然 ...

  3. vs installer 将.net framework 集成到安装包中

    Missing .NET Framework 4.0 in Visual Studio 2017 Prerequisites whenhttps://stackoverflow.com/questio ...

  4. 第五章 企业项目开发--mybatis注解与xml并用

    本章的代码建立在第四章<Java框架整合--切分配置文件>的项目代码之上,链接如下: http://www.cnblogs.com/java-zhao/p/5118184.html 在实际 ...

  5. Linux openvswitch 性能调优-flow-eviction-threshold

    原文:https://www.cnblogs.com/scottieyuyang/p/5683656.html Increasing the flow-eviction threshold The t ...

  6. webpack快速入门——实战技巧:优雅打包第三方类库

    下面说两种方法: 一. 1.引入jQuery,首先安装: cnpm install --save jquery 2.安装好后,在我们的entry.js中引入: import $ from 'jquer ...

  7. jvm(2)类的初始化(一)

    [深入Java虚拟机]之三:类初始化 类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码. 1,下面说的初始化主要是类变量的初始化,实例变量的初始化触发条件不同(一 ...

  8. Xcode 10 如何创建自定义 Snippet

     或者 

  9. ngRoute 与ui.router区别

    angular路由 路由 (route) ,几乎所有的 MVC(VM) 框架都应该具有的特性,因为它是前端构建单页面应用 (SPA) 必不可少的组成部分. 那么,对于 angular 而言,它自然也有 ...

  10. python 爬虫之 正则的一些小例子

    什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑. 正则并不是pyth ...