`

Tapestry页面国际化实现方式——权衡效率

阅读更多
Tapestry国际化实现方式
——权衡效率
在Tapestry开发中,页面国际化实现有两种方式:
第一种,用多份properties文件,在此我们以英文版与中文版来阐述这个问题,比如有Foo.html这个页面,那么Foo.properties、Foo_zh_CN.properties文件构成了以上两种页面版本。Properties文件我们可以用相关的工具将所有的非ASCII码转换成Unicode编码存储(PropertiesEditor插件),这种方式可以让你的项目部署少点中文编码问题,可以把整个项目从页面层到数据库层都用UTF-8编码。另外可以不用编码转换工具,直接在Foo_zh_CN.properties里写中文,在项目的application文件里配置如下代码
<meta key="org.apache.tapestry.messages-encoding_zh_CN" value="GB2312"/>
<meta key="org.apache.tapestry.messages-encoding" value="UTF-8"/>
即可实现国际化问题。
 
第二种,用多份html文件,如Foo.html、Foo_zh_CN.html就直接构成了两种语言版本,而对所有的非ASCII码(如中文)可以直接写在.html文件里了,不用出现繁杂的国际化信息插入标签,可以节省不少开发时间,就算以后要新增版本了,就直接新增一个.html文件,里面的语言文字替换就直接在html文件里替换了。有的人可能会说,直接用第一种方式,更改不是更方便吗,对着properties文件就可以改了,在html文件里还要找改在哪里。这种想法似乎挺有道理,但我们必须清楚的是我们可以用任何一个可视化HTML编辑器可视化地编辑要替换的文字,而且效果很直接,也就是说,在这种方式下如果新增一个语言版本,就直接用可视化的编辑器编辑了!本人在此推崇这种方式,主要归结于这种方式开发效率要高,美工修改页面更直接(修改properties文件不能以静态的方式体现出来,必须要在WEB容器中运行后才可以看到真正的效果,而且还有一点就是两种语言版本,如果直接翻译文字,相同意思的文字,占的宽度并不一样,这样对于美工看页面效果也是一大难题了)。Tapestry的作者也提到过如果非ASCII码的文字多了,就用这种方式了。这种方式的实现还要依赖于以下配置:.application文件中<meta key="org.apache.tapestry.template-encoding" value="GB2312"/>,.html文件中
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,除了页面层,其他层仍可以采用UTF-8的编码, Tapestry会在这两种编码之间进行转换,不需要别外写代码或配置转换层级之间的编码。
分享到:
评论
4 楼 tapestry 2007-02-20  
第二种方式有多个语言版本的html,如果美工要改页面的某一个部分的话,同时要改各个语言版本的,也是有弊端的,可以说是各有利弊吧。
3 楼 Linuxboy 2007-02-18  
Tapestry5如何实现国际化呢?
我现在知道唯一的方法是设定页面:Foo_zh.html,建立一个Foo_zh.properties文件,指定默认的locale为zh,来显示中文。
有没有办法可以直接在html模板中使用中文并显现中文的动态内容呢?
2 楼 dengyin2000 2007-02-17  
tapestry页面默认是使用UTF-8, 你可以写英文 也可以写中文的。
1 楼 LucasLee 2007-02-17  
的确有这个问题。

不过即使用HTML也不能完全解决美工担心的问题,因为有些内容还是动态生成的。
所以我觉得最好还是设计时,不要与内容的大小有太大关联。

相关推荐

    tapestry页面编辑组件

    tapestry页面编辑组件,可以实现文本框,单选框,多选框和下拉框等的自动生成,并返回改变后的数据。

    深入浅出tapestry

    本书以循序渐进的方式,从Tapestry框架技术的基本概念入手,讲解Tapestry框架在J2EE Web应用程序中的整体架构实现。使读者在学习如何使用Tapestry框架技术的同时,还能够获得在J2EE Web应用程序中应用Tapestry框架的...

    深入浅出Tapestry

    资源名称:深入浅出Tapestry内容简介:本书以循序渐进的方式,从Tapestry框架技术的基本概念入手,讲解Tapestry框架在J2EE Web应用程序中的整体架构实现。使读者在学习如何使用Tapestry框架技术的同时,还能够获得在...

    tapestry技术

    tapestry技术 Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。...Tapestry支持本地化,其错误报告也很详细。Tapestry主要利用javabean和xml技术进行开发。

    Tapestry5最新中文入门实例教程

    本文利用Tapestry 5开发一个简单的具有创建/读/更新/删除功能的应用,在创建这个应用的过程中,本文体会到Tapestry带来的开发效率的提升。从多方面来讲解 Tapestry应用,比如应用的页面导航(page navigation)、...

    Tapestry开发指南

    Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。...其中jwc的意思是Java Web...Tapestry支持本地化,其错误报告也很详细。Tapestry主要利用javabean和xml技术进行开发。

    tapestry教程资料文档合集

    Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...

    tapestry官方中文文档

    Tapestry 4 官方文档中文版本,现在中文资料比较少,和大家共享一下

    tapestry 实例

    tapestry 实例tapestry 实例tapestry 实例tapestry 实例

    tapestry5以上的帮助事例,帮助文档与spring衔接文档

    Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...

    Tapestry5.0.16_API文档

    Tapestry5.0.16文档和大家一起学习

    tapestry3开发指南,带tapestry3所有jar包

    tapestry3开发指南,带tapestry3所有jar包

    关于Tapestry的一些个人总结

    Tapestry简述: Tapestry是一个servle的扩展,它运行于servlet容器(Tomcat)或包含servlet容器的服务器(如Jboss) 通过使用Tapestry,开发者完全不需要使用JSP技术,... Tapestry实现了视图逻辑和业务逻辑的彻底分离。

    Tapestry4开发指南

    Tapestry4开发指南

    Tapestry+5.1+实例教程

    Tapestry 不必关心链接!不必关心请求(http request)到了哪里!...Tapestry构建于底层的request-resonse模式,基于Servlet技术,抽象出面向组件开发的模型。Tapestry关心的是:页面、组件、事件、对象、方法、属性!

    Tapestry5开发文档手册.doc

    这个框架能够提供输入验证(input validation)、本地化/国际化(localization/internationalization)、状态/持续性(state/persitency)管理、URL构建/参数映射(parameter mapping)等功能。

    tapestry5.2.6 jar包

    tapestry5.2.6 最新jar包,Tapestry框架是一个位于java servlet容器和Tapestry应用程序之间的层

    tapestry-src-5.1.0.5.zip

    包含: tapestry 的源代码, tapestry集成spring2.0 tapestry快速启动 tapestry upload tapestry hibernate tapestry annotations

    Maven + Tapestry5.3.8 + Spring4.0.5 + Oracle10g

    这是Tapestry5.3.8 版本的一个大Demo,集合Spring4.0, 采用Maven 项目管理工具,没有集合Hibernate。 之所以说是个大Demo,是因为这项目中包含的内容并不少,包含: 1)解决了Tapestry5.3.8中文Bug问题 2)Tapestry...

Global site tag (gtag.js) - Google Analytics