module("tinymce.util.I18n", {
teardown: function() {
tinymce.util.I18n.rtl = false;
}
});
test("Translate strings", function() {
tinymce.util.I18n.add("code", {
"text": "text translation",
"value:{0}{1}": "value translation:{0}{1}",
"text{context:something}": "text translation with context",
"value:{0}{1}{context:something}": "value translation:{0}{1} with context"
});
equal(tinymce.util.I18n.translate("text"), "text translation");
equal(tinymce.util.I18n.translate("untranslated text"), "untranslated text");
equal(tinymce.util.I18n.translate(["untranslated value:{0}{1}", "a", "b"]), "untranslated value:ab");
equal(tinymce.util.I18n.translate(["value:{0}{1}", "a", "b"]), "value translation:ab");
equal(tinymce.util.I18n.translate("untranslated text{context:context}"), "untranslated text");
equal(tinymce.util.I18n.translate(["untranslated value:{0}{1}{context:something}", "a", "b"]), "untranslated value:ab");
equal(tinymce.util.I18n.translate(["value:{0}{1}{context:something}", "a", "b"]), "value translation:ab with context");
});
test("Switch language", function() {
for (var key in tinymce.util.I18n.data) {
delete tinymce.util.I18n.data[key];
}
tinymce.util.I18n.add("code1", {
"text": "translation1"
});
equal(tinymce.util.I18n.getCode(), "code1");
strictEqual(tinymce.util.I18n.rtl, false);
deepEqual(tinymce.util.I18n.data, {
"code1": {
"text": "translation1"
}
});
tinymce.util.I18n.add("code2", {
"_dir": "rtl",
"text": "translation2"
});
equal(tinymce.util.I18n.getCode(), "code2");
strictEqual(tinymce.util.I18n.rtl, true);
deepEqual(tinymce.util.I18n.data, {
"code1": {
"text": "translation1"
},
"code2": {
"_dir": "rtl",
"text": "translation2"
}
});
});
|