如何对包å«åœ¨ .js 文件ä¸çš„å—符串进行本地化? |
|
Written by Goofy
|
Saturday, 26 January 2008 |
如何对包å«åœ¨ .js 文件ä¸çš„å—符串进行本地化?   我们有时候会é‡åˆ°è¿™ç§æƒ…况:扩展的大部分å—符串已包å«åœ¨æœ¬åœ°åŒ–了的è¯è¨€æ–‡ä»¶å¤¹ä¸ï¼Œ 但ä»æœ‰å°‘é‡çš„è¯å¥è¿˜æœªæœ¬åœ°åŒ–。由于它们是å˜åœ¨äºŽ .js 文件ä¸ï¼Œå› æ¤è¿™äº›è¯å¥æ— 法åƒå¹³å¸¸é‚£æ ·é€šè¿‡æ·»åŠ ENTITY 行进行翻译。   å‡å®šæ‚¨åœ¨æŸä¸ª .js 文件ä¸å‘现以下å—符串: if ( password == userPassword ) { oPrefs.setBoolPref("access.authenticated", true); } else { alert ("Invalid password"); ...... function clear() { sure = confirm("Are you sure?"); |   首先,您需è¦åœ¨è¯è¨€æ–‡ä»¶å¤¹é‡Œæ‰¾åˆ°æˆ–创建一个 myextension.properties 文件。 接ç€å¯ä»¥è¾“入您设定的å˜é‡å以åŠè¦æ˜¾ç¤ºåœ¨æœ€ç»ˆç”¨æˆ·é¢å‰çš„è¯å¥ã€‚   例如: WrongPassMessage=Invalid password AreYouSureMessage=Are you sure? (这里 Invalid password å’Œ Are you sure? 就是显示在最终用户é¢å‰çš„å—符串) |   现在返回到刚æ‰éœ€è¦ç¿»è¯‘çš„å—符串所在的 .js æ–‡ä»¶ï¼Œåœ¨æ–‡ä»¶çš„å¼€å¤´åŠ å…¥å¦‚ä¸‹ä¸¤å¥ï¼š var gBundle = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService); var mystrings = gBundle.createBundle("chrome://myextension/locale/myextension.properties");   紧接ç€å£°æ˜Žå˜é‡ï¼Œç”¨äºŽæå– .properties 文件ä¸çš„å˜é‡å到 .js 文件ä¸ï¼š var wrongpassalert = mystrings.GetStringFromName("WrongPassMessage"); var confirmmessage=mystrings.GetStringFromName("AreYouSureMessage"); |   现在您就å¯ä»¥å°† .js ä¸è¦ç¿»è¯‘çš„è¯å¥æ›¿æ¢ä¸ºä¹‹å‰å£°æ˜Žçš„å˜é‡å,例如: if ( password == userPassword ) { oPrefs.setBoolPref("access.authenticated", true); } else { alert (wrongpassalert); function clear() { sure = confirm(confirmmessage); |
|
Last Updated ( Thursday, 07 February 2008 )
|