diff --git a/web/pgadmin/__init__.py b/web/pgadmin/__init__.py index 8850796e3..93a25394d 100644 --- a/web/pgadmin/__init__.py +++ b/web/pgadmin/__init__.py @@ -59,6 +59,13 @@ class PgAdmin(Flask): stylesheets.extend(getattr(module, "stylesheets", [])) return stylesheets + @property + def messages(self): + messages = dict() + for module in self.submodules: + messages.update(getattr(module, "messages", dict())) + return messages + @property def javascripts(self): scripts = [] diff --git a/web/pgadmin/browser/templates/browser/js/messages.js b/web/pgadmin/browser/templates/browser/js/messages.js index f3e60df67..2af0752bf 100644 --- a/web/pgadmin/browser/templates/browser/js/messages.js +++ b/web/pgadmin/browser/templates/browser/js/messages.js @@ -7,7 +7,7 @@ function(_, S, pgAdmin) { if (pgBrowser.messages) return pgBrowser.messages; - pgBrowser.messages = { + var messages = pgBrowser.messages = { 'SERVER_LOST': '{{ _('Connection to the server has been lost!') }}', 'CLICK_FOR_DETAILED_MSG': '%s

' + '{{ _('Click here for details.')|safe }}', 'GENERAL_CATEGORY': '{{ _("General")|safe }}', @@ -27,6 +27,9 @@ function(_, S, pgAdmin) { 'NOTE_CTRL_LABEL': "{{ _("Note") }}", }; + {% for key, val in current_app.messages.iteritems() %}messages['{{ key|safe }}'] = '{{ val|safe }}'; + {% endfor %} + return pgBrowser.messages; }); diff --git a/web/pgadmin/utils/__init__.py b/web/pgadmin/utils/__init__.py index 6d1eaa74e..010750939 100644 --- a/web/pgadmin/utils/__init__.py +++ b/web/pgadmin/utils/__init__.py @@ -66,6 +66,14 @@ class PgAdminModule(Blueprint): """ return [] + def get_own_messages(self): + """ + Returns: + dict: the i18n messages used by this module, not including any + messages needed by the submodules. + """ + return dict() + def get_own_javascripts(self): """ Returns: @@ -96,6 +104,14 @@ class PgAdminModule(Blueprint): stylesheets.extend(module.stylesheets) return stylesheets + @property + def messages(self): + res = self.get_own_messages() + + for module in self.submodules: + res.update(module.messages) + return res + @property def javascripts(self): javascripts = self.get_own_javascripts()