pass translations to frontend as a json object

This commit is contained in:
Andrew Dolgov
2021-02-26 09:21:17 +03:00
parent fd9cd52929
commit 56b10fea18
7 changed files with 70 additions and 47 deletions
+16
View File
@@ -17,6 +17,15 @@ const App = {
hotkey_actions: {},
is_prefs: false,
LABEL_BASE_INDEX: -1024,
_translations: {},
l10n: {
ngettext: function(msg1, msg2, n) {
return self.__((parseInt(n) > 1) ? msg2 : msg1);
},
__: function(msg) {
return App._translations[msg] ? App._translations[msg] : msg;
}
},
FormFields: {
attributes_to_string: function(attributes) {
return Object.keys(attributes).map((k) =>
@@ -525,6 +534,13 @@ const App = {
PluginHost.run(PluginHost.HOOK_PARAMS_LOADED, this._initParams);
}
const translations = reply['translations'];
if (translations) {
console.log('reading translations...');
App._translations = translations;
}
this.initSecondStage();
},
Error: {
+15 -1
View File
@@ -1,8 +1,22 @@
'use strict';
/* global dijit, __, App, dojo, __csrf_token */
/* global dijit, App, dojo, __csrf_token */
/* eslint-disable no-new */
/* exported __ */
function __(msg) {
if (typeof App != "undefined") {
return App.l10n.__(msg);
} else {
return msg;
}
}
/* exported ngettext */
function ngettext(msg1, msg2, n) {
return __((parseInt(n) > 1) ? msg2 : msg1);
}
/* exported $ */
function $(id) {
console.warn("FIXME: please use App.byId() or document.getElementById() instead of $():", id);