姐在说ireport国际化之前,想吐吐槽
我这几天真是够够的了,妈的,自从摊上报表这堆事倒是没觉得什么,相反,觉得很兴奋,因为报表一直不是姐的强项,话说,姐也没啥强项,但是真的最近做报表国际化恶心死我了,网上的信息真的是实在太特码少了,而且转来转去都是那么一篇文章还是06年的,ireport版本都更新到5.0.1了,那厮还是1.0.^的例子,不堪回首,泪流满面,嘎,下面转入正题:
1.首先要明白何为I18n
internationalization (第一位为i 最后一位为n中间有18个字符),话说背下这个单词真不易
2,.国际化的目的
话说,你做一个软件,大鼻子们可看不懂咱们天朝的汉字,报表的信息必须也对应着translate into english 当然ireport对国际化的支持是相当好的,翻译成日语、法语、阿拉伯语;完全看需求
3.步骤
3-1.定义不同语言版本的.properities信息
(1)绑定bundle:每一个.jasper对象的属性面板中都有一个Resource bundle属性,在这和区域内可以填写.properities的名称(取名字也是一个问题)
(2).properities命名:给出2个例子吧!
1.比如我默认想让报表显示中文,我给设置中文的属性起名为localereport.properities (这个名ireport会自动识别为默认语言)起名规则官网说的很详细
给设置英文的属性起名为localereport_en.properities(英文版本)localereport_fr.properities (法语)
在ireport中.properities文件要和报表文件放在一个文件夹下,这样ireport才可以读取(取名不一定要这样取名)
(3).properity文件内容
说了这么长时间.properity,那么这里面是什么东西呢?
上例子localereport.properities 中我们写的是reportI18n.titile = 这是一个国际化报表的标题
localereport_en.properities 中我们写的是reportI18n.titile = this is a title for I18N report
大家看到了着就是 key = value 的游戏了
3-2.如何应用.properities中的内容呢?
(1)我先说一种,从组件面板中拖入一个文本文件,一定不是静态文本【Static】,将$F【field】改成$R【reportI18n.titile】,如果此时ireport的locale为中文环境的话,占位符预览的位置会为这是一个国际化报表的标题;如果是英文环境的话占位符预览的位置为 this is a title for I18N report
3-3在ireport中调整local
如图所示,选择你想选的locale测试是否好用
3-4 结果
今天累了,明天补充点图