`
morry
  • 浏览: 130917 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Griffon 国际化

阅读更多

更多内容请到我的博客:http://www.mikameng.com

 

上一篇博客是 griffon桌面开发之hello world , 界面上的显示是英文的, 现在咱们来做一下汉化。

Griffon是基于MVC架构, 在griffon-app\i18n下是我们放多语言资源文件的地方, 就像web开发一样, 都有多语言资源文件。


1. 安装多语言插件 i18n

 

   默认是不支持多语言的,只有安装了此插件才启用。在项目根目录输入 griffon install-plugin i18n 即可安装多语言支持。 请参照 http://griffon.codehaus.org/I18n+Plugin


2. 添加中文资源文件

    在griffon-app\i18n 新建文件messages_zh_CN.properties,此文件里存放和项目有关的中文资源。注意资源文件里的中文要转为Unicode编码。

转码可以用java自带的native2ascii命令:  native2ascii  源文件 目标文件 ; 先将需要转的内容放到源文件里,执行命令后目标文件里就是转换后的编码。 将此内容复制到messages_zh_CN.properties文件里。

 

转码处理前:

 

app.title=Hello Word入门
userName=用户名
email=邮箱
phone=电话
close=关闭
save=保存

 

Unicode编码 处理后:

app.title=Hello Word\u5165\u95e8
userName=\u7528\u6237\u540d
email=\u90ae\u7bb1
phone=\u7535\u8bdd
close=\u5173\u95ed
save=\u4fdd\u5b58

 

将处理后的内容放到中文资源messages_zh_CN.properties里。

 

3.  更改界面View, 根据需要自动加载资源文件

 

      i18n plugin会自动创建messageSource实例, 我们通过messageSource实例去获得多语言内容,从而将内容显示在界面上。 使用方式如下: ${messageSource.getMessage('key')}

 

更改后界面如下:

package helloword

 import griffon.util.GriffonNameUtils as GNU 
//application(title: 'HelloWord',
application(title: "${messageSource.getMessage('app.title')}" ,,
  pack: true,
  locationByPlatform:true,
  iconImage: imageIcon('/griffon-icon-48x48.png').image,
  iconImages: [imageIcon('/griffon-icon-48x48.png').image,
               imageIcon('/griffon-icon-32x32.png').image,
               imageIcon('/griffon-icon-16x16.png').image]) {
    panel(border:emptyBorder(10)) {

            borderLayout()
           
            panel(constraints: CENTER){
                    migLayout()
                                    
            label ("${messageSource.getMessage('userName')}" , constraints: 'left')
            textField(columns: 20, constraints: 'growx, wrap', text: bind('userName', target:model, mutual: true))

            label ("${messageSource.getMessage('email')}" , constraints: 'left')
            textField(columns: 20, constraints: 'growx, wrap', text: bind('email', target:model, mutual: true))

                label ("${messageSource.getMessage('phone')}" , constraints: 'left')
            textField(columns: 20, constraints: 'growx, wrap', text: bind('phone', target:model, mutual: true))
        }
           
            panel(constraints: SOUTH){
                    migLayout()                   
       
                    button( "${messageSource.getMessage('save')}" , actionPerformed: controller.save,  constraints: 'left')
                    button( "${messageSource.getMessage('close')}" , actionPerformed: controller.close, constraints: 'growx,wrap')
            }

}
           
}

 

4. 运行程序,看下效果。 命令: griffon run-app

 

 

更多内容请到我的博客:http://www.mikameng.com


版权声明: 原创作品,允许转载,转载时请务必以超链接形式标明文章出处 、作者信息和本声明。否则将追究法律责任。

 

 

  • 大小: 6.6 KB
0
0
分享到:
评论

相关推荐

    griffon桌面开发之hello world

    // 初始化代码可以放在这里 } void startup(ApplicationContext context) { println 'Hello World!' } void shutdown() { // 关闭应用时执行的代码 } } ``` 4. **运行应用**:在终端中,定位到项目根目录...

    [Griffon] Griffon 实战 (英文版)

    [Manning Publications] Griffon 实战 (英文版) [Manning Publications] Griffon in Action (E-Book) ☆ 出版信息:☆ [作者信息] Andres Almiray , Danno Ferrin , James Shingler [出版机构] Manning ...

    Griffon学习笔记1 - HelloWorld

    11. **scripts**:这个目录可能包含了Griffon的生命周期脚本,用于控制应用的初始化、运行、停止等操作。 通过这个HelloWorld项目,初学者可以了解Griffon的基本结构、命令行工具的使用,以及如何组织源代码。后续...

    [Groovy] Groovy, Grails, Griffon 入门教程 (英文版)

    [Apress] Groovy, Grails, Griffon 入门教程 (英文版) [Apress] Beginning Groovy, Grails and Griffon (E-Book) ☆ 出版信息:☆ [作者信息] Vishal Layka, Christopher M. Judd, Joseph Faisal Nusairat, Jim ...

    Griffon In Action

    在Griffon中,构建器模式可以让开发者更简洁地定义和组装应用程序的组件,从而实现灵活的配置和初始化过程。 Griffon框架还支持多线程应用开发,使得开发者能够利用Java强大的并发模型来创建能够充分利用多核处理器...

    Griffon in Action

    - **生命周期管理**: Griffon提供了生命周期管理机制,确保MVC组在整个应用程序生命周期中的正确初始化和销毁。 **6. 多线程应用(Multithreaded Applications)** - **并发性**: Griffon支持多线程编程,允许开发者...

    Griffon学习笔记2 - 显示数据列表

    **Griffon学习笔记2 - 显示数据列表** Griffon是一款基于Groovy和Java的桌面应用程序框架,它提供了一种简洁的方式来构建GUI应用,同时利用了Java平台的广泛库支持。这篇学习笔记主要关注如何在Griffon应用中展示...

    griffon_overlay:GriffOn Yi的个人覆盖

    griffon_overlay是GriffOn Yi对Gentoo生态系统的一种独特贡献,它利用Shell语言编写的ebuild文件为用户提供个人化的软件包选择。理解并正确使用overlay和ebuild文件,可以极大地丰富Gentoo用户的软件体验,同时也能...

    Griffon Cryptanalysis Package-开源

    一种易于使用的GUI,用于对数字前密码进行密码分析。 对于历史研究人员,狂热的偏执狂或以加密为乐的人很有用。 未来的发行版将朝着更现代的方向发展。

    Python库 | griffon-client-0.1.3.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:griffon-client-0.1.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    源于Griffon's IT Library的xrdp安装脚本,适用ubuntu23.10版本

    源于Griffon's IT Library(https://c-nergy.be/blog)的xrdp安装脚本,适用ubuntu23.10版本

    griffon-vm:Griffon数据科学虚拟机

    **Griffon数据科学虚拟机** 是一个专为数据科学家设计的强大工具,它集成了多种技术和平台,使得在数据处理、分析和可视化方面的工作变得更加高效和便捷。这个虚拟机包含了多个关键组件,如MySQL数据库、Ruby编程...

    griffon-plugin-bridge

    格里芬插件桥用法Project Griffon UI通过@adobe/griffon-plugin-bridge npm包使用网桥,而插件视图通过加载CDN托管脚本来使用网桥通信层包括三个不同部分: 父级(lib / parent.js):这是Project Griffon UI通过...

    griffon-IDE:Griffon IDE源

    格里芬-爱德华 安装来源 ..../install-griffon 卸载 : scons -c安装 要安装FTP和SFTP(SSH),请安装sshfs curlftpfs: apt-get install curlftpfs sshfs 图书馆要求: gtk + -3.0 vte-2.91 webkitg

    griffon-javafxports-sample

    基本的Griffon JavaFX / Java项目 您刚刚创建了一个基本的Griffon应用程序,其中JavaFX作为UI工具包,而Java作为主要语言。 该项目具有以下文件结构 . ├── build.gradle ├── griffon-app │ ├── conf │ ...

    griffon:JVM的下一代桌面应用程序开发平台

    受启发,Griffon利用了约定而非配置,模块化和选择自由等概念。 该框架的核心是用Java 100%编写的,允许开发人员仅使用Java编写自己的应用程序。 也可以使用其他编程语言,例如Groovy和Kotlin,在这种情况下,可以...

    Griffon IDE-开源

    Griffon 是 HTML 脚本开发人员、BASH、Perl、PHP、C 语言的文本编辑器......它允许在几次点击中生成源代码,避免陷阱 BASH 语法... IDE 的其他基本功能也存在。 由于其可拆卸的可组织标签系统,Griffon 与小屏幕兼容。

    griffon_sock

    griffon_sock GriffOn Yi的袜子代理程序。

    griffon-forge-addon:狮鹫锻造插件

    狮鹫锻造插件 :idprefix: id_(选择一个,不要修改,然后添加第二句话和简短的描述,开头是 - "The griffon-forge-addon addon enabled blah blah... )这个插件提供独立的功能,并导出服务以供使用在其他插件中。此...

Global site tag (gtag.js) - Google Analytics