|
如何对扩展 help.html 文件内的字符串进行本地化? |
|
|
|
Written by Goofy
|
|
Saturday, 26 January 2008 |
|
如何对扩展 help.html 文件内的字符串进行本地化? 如果您愿意阅读这篇文章,这说明您是一位善于为他人着想的开发者,您已经为您的扩展建立了文档,而这些文档对于让您的扩展更加友好地展现在用户面前来说的确是个好主意。 想必在您的扩展也包含了 help.html 或 howto.html 之类的文件吧,如果您把这些文件放在语言文件夹里面,那将有助于翻译人员翻译后广为传播。 现在的问题是: - 如果在每种语言包内都加入 help.html 文件,那么扩展的体积变得很庞大(试想一下 BabelZilla 上有某些扩展包含了超过 25 种的语言包);
- 翻译人员也并非开发者,很难想象他们都善于在纷繁复杂的 html 代码中轻易查找到标签和属性并对其中的字符串进行翻译。 同时,在编辑 html 文档的时候也常会出现各种的编码错误。
解决的方法有: - 将您的 html 文件转换为 help.xhtml 文件并置于 content 文件夹下;
- 然后将 xhtml 文件中的所有字符串进行实体化并放置于 locale/help.dtd 文件中。
让我们以 Roman Mashirov 的 outliner 扩展 为例试着操作一下: 首先,新建一个 help.dtd 文件或使用语言文件夹已有的 .dtd 文件,然后将 .html 文件移至 content 文件夹下。接着按以下步骤进行操作: 将 html 文件转换为 xhtml 文件
您需要先删除 <head> 标签之前的所有内容,然后粘贴下面这部分的代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" [ <!ENTITY % helpDTD SYSTEM "chrome://outliner/locale/help.dtd" > %helpDTD; ]> <html xmlns="http://www.w3.org/1999/xhtml"> | 当然,您可以按您的要求更改扩展名及 dtd 的文件名。 ENTITY 部分十分重要,因为它用于告诉扩展应该到哪里去查找字符串 。 | 检查您 xhtml 文件的有效性 由于 xhtml 语法和普通的 html 相比对标签正确性的要求更高,因此您务必要保证每个标签都包含右侧尖括号,否则会出现解析错误。要检查 xhtml 文件的正确性,您只要在 Firefox 中打开该文件,如果该文件包含有错误,那么浏览器将显示一些有用的调试信息,如:在 x 行出现错误、找到 <span>、期望是 </br>等。 同时您需要注意那些必须替换为相应十进制等效值的 html 实体,例如: & copy; --> © & amp; --->& & nbsp; ---> 
将字符串转换为可本地化的实体 现在您只需要按从 content/*.xul 移动字符串到 locale/*.dtd 中那样进行相同的操作,当您每次遇到要显示在用户界面的字符串时,您可以: 1. 用自定义的实体替代 | 例如下面部分: | |
您只需修改为: | <h1>Outliner Help</h1> <p>This is Outliner extension for Mozilla, or at least some day it will be. For now this is just notekeeper with notes arranged in tree.</p>
| | <h1>&page.title;</h1> <p>&this.is.outliner;</p> |
2. 将实体及要显示在用户界面的内容置于 dtd 文件内 <!ENTITY page.title "Outliner Help"> <!ENTITY this.is.outliner "This is Outliner extension for Mozilla, or at least some day it will be. For now this is just notekeeper with notes arranged in tree."> |
稍作调整 - 别忘了在调用此帮助的文件(一般是 .js 文件)中修改相应的帮助文件路径;
chrome://outliner/locale/help.html ---> chrome://outliner/content/help.xhtml
- 如果文档中包含有链接的图像、javascript 或css,别忘了同样要改为新的路径;
- 为了版面显示得更美观,您可能需要在一些地方添加必要的空格;
- 如果需要的话,您可以在此下载 修改前的 outliner 扩展 以及 修改后的扩展。
 a Goofy mini-howto
|
|
Last Updated ( Sunday, 10 February 2008 )
|