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 |