Index: chrome/content/ui/i18n.js |
=================================================================== |
--- a/chrome/content/ui/i18n.js |
+++ b/chrome/content/ui/i18n.js |
@@ -15,81 +15,10 @@ |
* along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
*/ |
-var i18n; |
- |
-if (typeof ext != "undefined") |
- i18n = ext.i18n; |
-else if (typeof chrome != "undefined") |
- // TODO: This check only exist for backwards compatibility, while the Safari |
- // port isn't merged into the adblockpluschrome repo. So this branch should |
- // be removed when the Safari port was merged. |
- i18n = chrome.i18n; |
-else |
-{ |
- // Using Firefox' approach on i18n instead |
- |
- // Randomize URI to work around bug 719376 |
- var pageName = location.pathname.replace(/.*\//, '').replace(/\..*?$/, ''); |
- var stringBundle = Services.strings.createBundle("chrome://adblockplus/locale/" + pageName + |
- ".properties?" + Math.random()); |
- |
- function getI18nMessage(key) |
- { |
- return { |
- "message": stringBundle.GetStringFromName(key) |
- }; |
- } |
- |
- i18n = (function() |
- { |
- function getText(message, args) |
- { |
- var text = message.message; |
- var placeholders = message.placeholders; |
- |
- if (!args || !placeholders) |
- return text; |
- |
- for (var key in placeholders) |
- { |
- var content = placeholders[key].content; |
- if (!content) |
- continue; |
- |
- var index = parseInt(content.slice(1), 10); |
- if (isNaN(index)) |
- continue; |
- |
- var replacement = args[index - 1]; |
- if (typeof replacement === "undefined") |
- continue; |
- |
- text = text.split("$" + key + "$").join(replacement); |
- } |
- return text; |
- } |
- |
- return { |
- getMessage: function(key, args) |
- { |
- try{ |
- var message = getI18nMessage(key); |
- return getText(message, args); |
- } |
- catch(e) |
- { |
- Cu.reportError(e); |
- return "Missing translation: " + key; |
- } |
- } |
- }; |
- })(); |
-} |
- |
// Inserts i18n strings into matching elements. Any inner HTML already in the element is |
// parsed as JSON and used as parameters to substitute into placeholders in the i18n |
// message. |
-i18n.setElementText = function(element, stringName, arguments) |
+ext.i18n.setElementText = function(element, stringName, arguments) |
{ |
function processString(str, element) |
{ |
@@ -110,7 +39,7 @@ |
while (element.lastChild) |
element.removeChild(element.lastChild); |
- processString(i18n.getMessage(stringName, arguments), element); |
+ processString(ext.i18n.getMessage(stringName, arguments), element); |
} |
// Loads i18n strings |
@@ -129,7 +58,7 @@ |
className = className.animVal; |
var stringName = className.split(/\s/)[0].substring(5); |
- i18n.setElementText(node, stringName, arguments); |
+ ext.i18n.setElementText(node, stringName, arguments); |
} |
} |