Firefox扩展开发笔记 - 关于locale的使用(一)
2009-11-11 16:51
288 查看
原创声明:
本文章为原创,欢迎转载,但请给出本文链接,多谢合作。
本文链接:http://blog.csdn.net/epinszteinic/archive/2009/11/11/4799036.aspx
最近正在学做firefox的扩展。做语言国际化的时候,虽然官方有教程
,但是写的不够详细,着实让我费了好大劲。。。
把自己的经验写下来,作为官方教程的一个补充吧。
国际化有两种,一种是定义dtd,一种是使用properties文件。
首先介绍如何使用dtd。
dtd文件是用于xul文件(用户界面描述文件 -- 请允许我用这个词来翻译)里面。
如何进行配置才能正常使用?下面是步骤:
①构造文件夹:
你的应用 -- content
|- locale
.. |- en-US
|- zh-CN
|- ja-JP
..
②为你的dtd文件取个名字吧,在心里取好就行,或者写在纸上。我们暂时给它取个名字叫:abc.dtd
这个文件里面要怎么写,放在哪里?不要着急,下面接着写。需要明确的是,locale里的每个子文件夹里都有一个abc.dtd。
③在chrome.manifest文件里,添加声明。
locale news_common_viewer en-US locale/en-US/
locale news_common_viewer zh-CN locale/zh-CN/
locale news_common_viewer ja-JP locale/ja-JP/
...
④在要使用这个dtd的xul文件里声明使用,否则会报错。
如何加声明?代码片段(红字,位置也要注意,一般放在<?xml>的声明下面就可以):
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://myext/content/myext.css"?>
<!DOCTYPE window SYSTEM "chrome://myext/locale/abc.dtd">
<overlay id="xxx" ....以下省略>
Q:为什么是locale/abc.dtd,而不是locale/en-US/abc.dtd,locale/zh-CN/abc.dtd呢?
A:因为firefox会根据当前firefox的语言设置来自动去en-US、zh-CN、ja-JP这些文件夹里面找abc.dtd,所以声明的时候不需要en-US这些目录。因此,每个子目录里面,都会有一个abc.dtd。
⑤然后是用不同的语言编写每一个abc.dtd就可以了。
dtd的内容格式如下:
<!ENTITY key "value">
其中,key可以很长,可以用「.」分割,value为任意字符串文字。
举个例子:
<!ENTITY ok_btn.val "提交">
<!ENTITY ok_btn.accesskey "f">
⑥写完dtd以后,就可以在xul文件里面使用了,以下是代码片段:
<popup id="pop1">
<menu id="pop_menu1" label="&ok_btn.val;
" accesskey="&ok_btn.accesskey;
" insertafter="context-reload">
...省略
</popup>
使用格式:「&」号,然后是key,然后是「;」号
dtd文件的使用就介绍到这里,下一篇是properties文件的使用。
测试环境: | |
Windows Vista | |
Firefox 3.5.5 |
相关文章推荐
- Firefox扩展开发笔记 - 关于locale的使用(二)
- firefox 扩展开发笔记(三):高级ui交互编程
- php扩展开发笔记(7) 错误使用 php_base64_decode 导致内存溢出
- ios开发笔记--关于delegate(委托)的使用心得
- FireFox插件和扩展开发(二)——编写和使用XPCOM组件
- ios开发笔记--关于delegate(委托)的使用心得
- 关于尝试开发PHP的MYSQL扩展的使用
- 关于李三影【Unity 游戏开发教程】装备系统 - 01. JSON数据创建与使用要做笔记的地方
- firefox扩展开发(六) : 关于event对象
- Firefox扩展开发笔记 - ajax返回乱码字符的处理
- firefox附加组件开发者指南(二)——开发扩展过程中使用的技术
- 关于如何使用Jeesite快速开发笔记
- 关于使用AIR开发移动APP 的技术解决方案 笔记
- 常见浏览器扩展开发笔记(chrome firefox 360 baidu qq sougou liebao uc opera)
- 安卓开发笔记——关于开源项目SlidingMenu的使用介绍(仿QQ5.0侧滑菜单)
- Firefox扩展开发笔记 - 如何给扩展打包,xpi格式
- 安卓开发笔记——关于AsyncTask的使用
- Firefox扩展开发: Hello World!
- iOS开发-UI控件:关于使用UISearchDisplayController
- iOS开发中,关于什么时候使用点语法的解答