| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This Source Code is subject to the terms of the Mozilla Public License | 2 * This Source Code is subject to the terms of the Mozilla Public License |
| 3 * version 2.0 (the "License"). You can obtain a copy of the License at | 3 * version 2.0 (the "License"). You can obtain a copy of the License at |
| 4 * http://mozilla.org/MPL/2.0/. | 4 * http://mozilla.org/MPL/2.0/. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 // Loads and inserts i18n strings into matching elements. Any inner HTML already
in the | 7 // Loads and inserts i18n strings into matching elements. Any inner HTML already
in the |
| 8 // element is parsed as JSON and used as parameters to substitute into placehold
ers in the | 8 // element is parsed as JSON and used as parameters to substitute into placehold
ers in the |
| 9 // i18n message. | 9 // i18n message. |
| 10 function loadI18nStrings() { | 10 function loadI18nStrings() { |
| 11 var nodes = document.querySelectorAll("[class^='i18n_']"); | 11 var nodes = document.querySelectorAll("[class^='i18n_']"); |
| 12 for(var i = 0; i < nodes.length; i++) { | 12 for(var i = 0; i < nodes.length; i++) { |
| 13 var arguments = JSON.parse("[" + nodes[i].textContent + "]"); | 13 var arguments = JSON.parse("[" + nodes[i].textContent + "]"); |
| 14 var stringName = nodes[i].className.split(/\s/)[0].substring(5); | 14 var className = nodes[i].className; |
| 15 if (className instanceof SVGAnimatedString) |
| 16 className = className.animVal; |
| 17 var stringName = className.split(/\s/)[0].substring(5); |
| 18 var prop = "innerHTML" in nodes[i] ? "innerHTML" : "textContent"; |
| 15 if(arguments.length > 0) | 19 if(arguments.length > 0) |
| 16 nodes[i].innerHTML = chrome.i18n.getMessage(stringName, arguments); | 20 nodes[i][prop] = chrome.i18n.getMessage(stringName, arguments); |
| 17 else | 21 else |
| 18 nodes[i].innerHTML = chrome.i18n.getMessage(stringName); | 22 nodes[i][prop] = chrome.i18n.getMessage(stringName); |
| 19 } | 23 } |
| 20 } | 24 } |
| 21 | 25 |
| 22 function i18n_time(h, m) { | 26 function i18n_time(h, m) { |
| 23 var locale = chrome.i18n.getMessage("@@ui_locale"); | 27 var locale = chrome.i18n.getMessage("@@ui_locale"); |
| 24 if(m < 10) | 28 if(m < 10) |
| 25 m = "0" + m; | 29 m = "0" + m; |
| 26 if(locale == "fr") { | 30 if(locale == "fr") { |
| 27 return h + "h" + m; | 31 return h + "h" + m; |
| 28 } else { | 32 } else { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 41 function i18n_timeDateStrings(when) { | 45 function i18n_timeDateStrings(when) { |
| 42 var d = new Date(when); | 46 var d = new Date(when); |
| 43 var timeString = d.toLocaleTimeString(); | 47 var timeString = d.toLocaleTimeString(); |
| 44 | 48 |
| 45 var now = new Date(); | 49 var now = new Date(); |
| 46 if (d.toDateString() == now.toDateString()) | 50 if (d.toDateString() == now.toDateString()) |
| 47 return [timeString]; | 51 return [timeString]; |
| 48 else | 52 else |
| 49 return [timeString, d.toLocaleDateString()]; | 53 return [timeString, d.toLocaleDateString()]; |
| 50 } | 54 } |
| 55 |
| 56 // Fill in the strings as soon as possible |
| 57 window.addEventListener("DOMContentLoaded", loadI18nStrings, true); |
| OLD | NEW |