`
xxqn
  • 浏览: 75437 次
  • 性别: Icon_minigender_1
  • 来自: 广东韶关
社区版块
存档分类
最新评论

javascript国际化终极方法

阅读更多
    最近本人被如何使用在JSF中使用JAVASCRIPT框架的国际化资源问题一度困扰。国际化问题常常困扰着我们,特别是像我这样在使用jsf的同行们,在这里跟大家探讨一下如何更好实现项目的国际化。
    jsf在发布的时候就已经充分考虑了国际化的实现,其实现方法是将国际化部分从页面中分离出去单独实现,jsf页面最好只保留iso-8859-1编码格式的页面代码,由于存在这样的缺省情况,编辑器不使用其他代码来编辑JSF页面是正确的,只是对于我们这些母语不是西文的中国同行带来了一些不变,所以网上有许多关于如何在页面上直接实现中文支持的方法,多不太理想,也许不知道什么时候又会重新出现不支持的问题。我个人不认为突破jsf原有的国际化方案是明智的选择,既然采用jsf就尽量采用规范的做法,基本不会出问题。
    也许大家对jsf的国际化可能比较熟悉了,这里我简略的说一下。
    国际化缩写为"il8n",jsf使用Java的国际化处理方式:使用ResourceBundle
    首先创建ResourceBundle文件,例如我们的项目需要国际化,创建一个名为"test.bundle1"的国际化资源文件,其实是一组文件,包括一个缺省资源文件以及各个语言版本的资源文件,各国的资源文件由该国文字书写,然后经由工具native2ascii(或者IDE的相关插件)把各个语言资源文件转换为统一的Unicode的编码字串,例如“密码修改”编码输出显式的编码字符串"\u66F4\u6539\u8D26\u6237",jsf根据客户端的本地格式选配相应的资源文件嵌入页面。
    这些Unicode编码字符串可以被所有通用的浏览器支持,不管你的原始页面使用什么代码写的,混合其中Unicode编码总可以被正确解释,包括在javascript中的Unicode编码文字。
    最近想在客户端直接使用javascripe,以提高项目的用户体验,为此选用了一些框架,例如jquery、dojo等都遇到国际化问题,一直未能解决,致使开发停滞不前。这些框架应该讲国际化还是做得不错的,国际化资源均是UTF-8编码的,在许多情况下没有问题,但是通过jsf容器发布出去就遇到了iso-8859-1编码问题,页面以iso-8859-1的编码读UTF-8的javsscript资源文件肯定是乱码啦。
    找出原因以后,参照jsf国际化的原理处理同样可以将javascript国际化问题完善解决掉。以dojo为例,它的资源文件均是UTF-8的,使用
  
native2ascii -encoding UTF-8 in.js out.js
可以转换单个文件,使用ant脚本可以批量处理
   
<target name="native2ascii">
	   <native2ascii encoding="UTF-8" src="E:\dojo\dojo-release-1.1.0" dest="E:\dojo\native"
	    includes="**/*.js" />
	  </target>

    希望浏览本文的各位仁兄可从中获益。
分享到:
评论
6 楼 xinxian 2012-11-12  
bs lz,哎……
5 楼 thinkintime 2008-10-14  
看不出终极在哪,LZ以后不要把标题搞得那么大好不好
4 楼 xxqn 2008-09-09  
本文讨论的不是本地化,而是国际化,融合dojo的国际化以及jsf国际化的内容以更加方便使用。
3 楼 mike98 2008-09-04  
老兄,你这是本地化,不是国际化,只能中文用了,英文或其它文字又怎么办呢?
2 楼 xxqn 2008-04-15  
采用dojo 这样的javacript框架,里面有许多器件都是已经国际化了的,拿来使用必然存在国际化问题,我们不可能另外重写一套方案来替代框架提供的国际化方案,这样成本太高了,也不现实。
javacript有其固有的效率问题,其实java的国际化也同样有效率问题,只是Java效率比javascript高许多而已,提供的方案也比较统一规范,所以我们不太感觉性能问题。
dojo在使用中确实还存在着许多问题,我现在也只是正在学习阶段,还不能给出太多评价。不过javascript框架可以充分利用客户端的cpu资源,只要客户端浏览器能够承受就应该没问题,优点是大大减少网络数据传输,减小服务器端的压力,对于大型分布式网络系统应用应该更加有利的。
另外dojo性能应该比ext好。
1 楼 jelly 2008-04-15  
我们的项目没有用js做国际化,而是用java的国际化。js的国际化会不会有效率的问题,使用dojo之后的效率问题好令人头疼啊!

相关推荐

    JavaScript面对国际化编程时的一些建议

    对于JavaScript而言,国际化编程意味着在处理日期、数字、货币、文本排序等方面能够提供本地化的支持。JavaScript的国际化编程涉及以下几个主要方面: 1. 日期和时间格式:不同地区有着不同的日期和时间表示习惯,...

    i18n JavaScript国际化翻译 jquery.i18n.properties.js

    i18n JavaScript国际化翻译需要引用的js 可参考国际化翻译 https://blog.csdn.net/qq_36992948/article/details/120062824

    JavaScript格式化工具

    注意:需要转换的js文件里面不能有注释,有的话,它转换不了。 在网上下载一些js文件,但是打开后,就像一段话一样,好长,好长,没有任何格式,想看一下就不成。

    js使用i18n实现页面国际化的方法

    本文将详细探讨如何使用JavaScript(简称js)中的i18n库实现页面国际化。 首先,需要理解i18n的含义。"i18n"是一个行业术语,代表“internationalization”,是指软件或文档在设计阶段就考虑了不同地区和语言的用户...

    JavaScript数字格式化

    该文档为javascript的数字格式化方法,可用于保留小数位,强制添0等操作

    javascript方法和技巧大全

    ### JavaScript方法和技巧详解 #### 一、基本概念与语法结构 **JavaScript**是一种轻量级的编程语言,被广泛应用于网页开发中,用于增强网页的交互性与动态效果。以下是一些基本的语法和使用技巧。 ##### 1. 嵌入...

    file input 按钮国际化

    在IT行业中,"国际化"(Internationalization)是一个重要的概念,特别是在开发支持多语言的应用程序时。这个过程涉及设计和构建应用程序的方式,使得它可以适应不同地区的文化、语言和格式要求。"file input 按钮...

    基于Javascript的大数据大屏可视化设计源码

    本资源提供了一套基于Javascript的大数据大屏可视化设计源码,包含107个文件,其中包括48个JavaScript脚本文件,27个PNG图片文件,以及8个CSS样式文件。此外,还包括5个JSON配置文件,5个EJS模板文件,以及3个HTML...

    Javascript/Vue/React/ReactNative的国际化解决方案

    JavaScript作为浏览器端的主要脚本语言,本身并不直接提供国际化功能,但有多个库如`Intl` API和社区维护的i18n库如`i18next`、`format.js`等可以用来实现国际化。`Intl` API是ECMAScript的一个内置对象,提供了基本...

    JavaScript 方法和技巧大全

    ”JavaScript”&gt; JavaScript code goes here 2 隐藏脚本代码 ”JavaScript”&gt; &lt;!-document.write(“Hello”); // --&gt; 在不支持 JavaScript 的浏览器中将不执行相关代码 3。浏览器不支持的时候显示 &lt;noscript&gt;...

    STRUTS2+JavaScript 的分页,而且国际化

    接下来,我们将深入探讨STRUTS2如何与JavaScript结合实现分页以及国际化。 首先,让我们关注"STRUTS2+JavaScript 的分页"。STRUTS2通过Action类和结果类型来控制页面跳转和数据处理。在分页场景下,Action类通常会...

    JavaScript数据可视化编程

    使用JavaScript实现不同常规的可视化 使用FLOTR2进行 数据可视化 编程

    罗素和诺维格的《人工智能-一种现代方法》中的算法的 Javascript 可视化.zip

    罗素和诺维格的《人工智能——一种现代方法》中的算法的 Javascript 可视化aima-javascriptRussell And Norvig 的“人工智能 — 现代方法”中的概念可视化,以及算法的 Javascript 代码。与 aima-python、aima-java ...

    cefsharp JavaScript调用C#方法并返回参数

    在IT领域,CEFSharp是一个非常重要的库,它允许开发者在.NET环境中嵌入Chromium...通过理解和应用上述步骤,开发者可以在.NET应用中构建出高度定制化的浏览器体验,同时充分利用JavaScript的便利性和C#的强大功能。

    基于Javascript的voerka-i18n一健国际化全流程解决方案设计源码

    voerka-i18n是一个基于Javascript开发的一键国际化全流程解决方案,包含654个文件,其中包括174个JavaScript文件、123个Markdown文件、117个TypeScript文件、103个JSON文件、35个PNG图片文件、17个Vue文件、13个HTML...

    JavaScript中文转码国际化

    用JavaScript脚本在网页实现的中文Unicode码转换

    javascript精确计算日期处理金额格式化

    在JavaScript开发中,日期处理和金额格式化是两个常见的需求,尤其在财务或者数据分析相关的应用中更为重要。JavaScript原生提供了Date对象来处理日期,但其功能相对有限,因此开发者通常会利用各种库来增强其功能,...

    JavaScript bom操作 window对象的方法 示例代码

    JavaScript bom操作 window对象的方法 示例代码JavaScript bom操作 window对象的方法 示例代码JavaScript bom操作 window对象的方法 示例代码JavaScript bom操作 window对象的方法 示例代码JavaScript bom操作 ...

    h5国际化demo[i18n实现]

    在IT行业中,"国际化"(Internationalization,通常缩写为i18n)是指设计和开发软件或网站,使其能够适应不同地区的语言和文化习俗。H5(HTML5)是现代网页开发的标准,它提供了丰富的功能和接口,使得实现国际化变...

    基于JavaScript的青藏高原城市化和生态环境迫切化大屏数据可视化系统源码.zip

    基于JavaScript的青藏高原城市化和生态环境迫切化大屏数据可视化系统源码.zip 基于JavaScript的青藏高原城市化和生态环境迫切化大屏数据可视化系统源码.zip 基于JavaScript的青藏高原城市化和生态环境迫切化大屏数据...

Global site tag (gtag.js) - Google Analytics