Index: i18n.js |
=================================================================== |
--- a/i18n.js |
+++ b/i18n.js |
@@ -65,21 +65,30 @@ |
// Loads i18n strings |
function loadI18nStrings() |
{ |
- var nodes = document.querySelectorAll("[class^='i18n_']"); |
- for(var i = 0; i < nodes.length; i++) |
+ function addI18nStringsToElements(containerElement) |
{ |
- var node = nodes[i]; |
- var arguments = JSON.parse("[" + node.textContent + "]"); |
- if (arguments.length == 0) |
- arguments = null; |
+ var elements = containerElement.querySelectorAll("[class^='i18n_']"); |
+ for(var i = 0; i < elements.length; i++) |
+ { |
+ var node = elements[i]; |
+ var arguments = JSON.parse("[" + node.textContent + "]"); |
+ if (arguments.length == 0) |
+ arguments = null; |
- var className = node.className; |
- if (className instanceof SVGAnimatedString) |
- className = className.animVal; |
- var stringName = className.split(/\s/)[0].substring(5); |
+ var className = node.className; |
+ if (className instanceof SVGAnimatedString) |
+ className = className.animVal; |
+ var stringName = className.split(/\s/)[0].substring(5); |
- ext.i18n.setElementText(node, stringName, arguments); |
+ ext.i18n.setElementText(node, stringName, arguments); |
+ } |
} |
+ addI18nStringsToElements(document); |
+ // Content of Template is not rendered on runtime so we need to add |
+ // translation strings for each Template documentFragment content individually |
+ var templates = document.querySelectorAll("template"); |
+ for (var i = 0; i < templates.length; i++) |
+ addI18nStringsToElements(templates[i].content); |
} |
// Provides a more readable string of the current date and time |
@@ -95,5 +104,20 @@ |
return [timeString, d.toLocaleDateString()]; |
} |
+// Formats date string to ["YYYY-MM-DD", "mm:ss"] format |
+function i18n_formatDateTime(when) |
+{ |
+ var date = new Date(when); |
+ var dateParts = [date.getFullYear(), date.getMonth() + 1, date.getDate(), |
+ date.getHours(), date.getMinutes()]; |
+ |
+ var dateParts = dateParts.map(function(datePart) |
+ { |
+ return datePart < 10 ? "0" + datePart : datePart; |
+ }); |
+ |
+ return [dateParts.splice(0, 3).join("-"), dateParts.join(":")]; |
+} |
+ |
// Fill in the strings as soon as possible |
window.addEventListener("DOMContentLoaded", loadI18nStrings, true); |