如何对扩展 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
|