From d1967e91080b15a1956bc785d86ba76ba964620b Mon Sep 17 00:00:00 2001
From: George Gelashvili and Sarah McAlear
 <pair+ggelashvili+smcalear@pivotal.io>
Date: Mon, 27 Mar 2017 11:10:15 -0400
Subject: [PATCH] Changed untemplated translate to be picked up with the rest

- by renaming translate.js to gettext.js
---
 docs/en_US/translations.rst                        |   6 +-
 web/babel.cfg                                      |   2 +
 web/pgadmin/about/templates/about/about.js         |   8 +-
 .../dashboard/templates/dashboard/js/dashboard.js  | 132 ++--
 web/pgadmin/messages.pot                           | 753 +++++++++------------
 web/pgadmin/misc/__init__.py                       |   2 +-
 .../{js => vendor/snap.svg}/snap.svg-min.js        |   0
 .../explain/{js => vendor/snap.svg}/snap.svg.js    |   0
 .../templates/preferences/preferences.js           |  22 +-
 .../settings/templates/settings/settings.js        |   8 +-
 web/pgadmin/static/js/{translate.js => gettext.js} |   2 +-
 web/pgadmin/static/js/selection/clipboard.js       |   6 +-
 .../{translate_spec.js => gettext_spec.js}         |  12 +-
 13 files changed, 404 insertions(+), 549 deletions(-)
 rename web/pgadmin/misc/static/explain/{js => vendor/snap.svg}/snap.svg-min.js (100%)
 rename web/pgadmin/misc/static/explain/{js => vendor/snap.svg}/snap.svg.js (100%)
 rename web/pgadmin/static/js/{translate.js => gettext.js} (94%)
 rename web/regression/javascript/{translate_spec.js => gettext_spec.js} (72%)

diff --git a/docs/en_US/translations.rst b/docs/en_US/translations.rst
index baa49c33..0cf0f2ca 100644
--- a/docs/en_US/translations.rst
+++ b/docs/en_US/translations.rst
@@ -30,12 +30,12 @@ Jinja:
     
 .. code-block:: javascript
 
-    define(['sources/translate', ...], function(t, ...){
+    define(['sources/gettext', ...], function(gettext, ...){
         ...
 
         var alert = alertify.prompt(
-            t('Password Change'),
-            t('New password for %(userName)s', {userName: 'jsmith' }),
+            gettext('Password Change'),
+            gettext('New password for %(userName)s', {userName: 'jsmith' }),
             ...
         )
     })
diff --git a/web/babel.cfg b/web/babel.cfg
index c2980839..6c99f391 100644
--- a/web/babel.cfg
+++ b/web/babel.cfg
@@ -2,4 +2,6 @@
 [jinja2: **/templates/**.html]
 [jinja2: **/templates/**.js]
 [jinja2: **/templates/**.sql]
+[ignore: **/vendor/**.js]
+[javascript: **/static/**.js]
 extensions=jinja2.ext.autoescape,jinja2.ext.with_
diff --git a/web/pgadmin/about/templates/about/about.js b/web/pgadmin/about/templates/about/about.js
index 489018aa..662469a1 100644
--- a/web/pgadmin/about/templates/about/about.js
+++ b/web/pgadmin/about/templates/about/about.js
@@ -1,6 +1,6 @@
 define(
-  ['jquery', 'alertify', 'pgadmin', 'sources/translate'],
-  function($, alertify, pgAdmin, t) {
+  ['jquery', 'alertify', 'pgadmin', 'sources/gettext'],
+  function($, alertify, pgAdmin, gettext) {
     pgAdmin = pgAdmin || window.pgAdmin || {};
 
     /* Return back, this has been called more than once */
@@ -18,7 +18,7 @@ define(
               },
               setup: function() {
                 return {
-                  buttons:[{ text: t("OK"), key: 27, className: "btn btn-primary" }],
+                  buttons:[{ text: gettext("OK"), key: 27, className: "btn btn-primary" }],
                   options: {
                     modal: false,
                     resizable: true,
@@ -41,7 +41,7 @@ define(
         var content = '';
         $.get("{{ url_for('about.index') }}",
             function(data) {
-              alertify.aboutDialog(t("About %(appname)s", {appname: "{{ config.APP_NAME }}"}), data).resizeTo(800, 450);
+              alertify.aboutDialog(gettext("About %(appname)s", {appname: "{{ config.APP_NAME }}"}), data).resizeTo(800, 450);
             });
       }
     };
diff --git a/web/pgadmin/dashboard/templates/dashboard/js/dashboard.js b/web/pgadmin/dashboard/templates/dashboard/js/dashboard.js
index 1f8585f2..35ed1021 100644
--- a/web/pgadmin/dashboard/templates/dashboard/js/dashboard.js
+++ b/web/pgadmin/dashboard/templates/dashboard/js/dashboard.js
@@ -1,8 +1,8 @@
 define([
-    'require', 'jquery', 'pgadmin', 'underscore', 'backbone', 'sources/translate', 'flotr2', 'wcdocker',
+    'require', 'jquery', 'pgadmin', 'underscore', 'backbone', 'sources/gettext', 'flotr2', 'wcdocker',
     'pgadmin.browser', 'bootstrap'
     ],
-function(r, $, pgAdmin, _, Backbone, t) {
+function(r, $, pgAdmin, _, Backbone, gettext) {
 
   var wcDocker = window.wcDocker,
   pgBrowser = pgAdmin.Browser;
@@ -41,7 +41,7 @@ function(r, $, pgAdmin, _, Backbone, t) {
                         },
                         error: function (xhr, status) {
                             $(div).html(
-                                '<div class="alert alert-danger pg-panel-message" role="alert">' + t('An error occurred whilst loading the dashboard.') + '</div>'
+                                '<div class="alert alert-danger pg-panel-message" role="alert">' + gettext('An error occurred whilst loading the dashboard.') + '</div>'
                             );
                         }
                     });
@@ -101,7 +101,7 @@ function(r, $, pgAdmin, _, Backbone, t) {
                                 },
                                 error: function (xhr, status) {
                                     $(div).html(
-                                        '<div class="alert alert-danger pg-panel-message" role="alert">' + t('An error occurred whilst loading the dashboard.') + '</div>'
+                                        '<div class="alert alert-danger pg-panel-message" role="alert">' + gettext('An error occurred whilst loading the dashboard.') + '</div>'
                                     );
                                 }
                             });
@@ -209,11 +209,11 @@ function(r, $, pgAdmin, _, Backbone, t) {
                         // If we get a 428, it means the server isn't connected
                         if (xhr.status == 428) {
                             if (_.isUndefined(msg) || _.isNull(msg)) {
-                              msg = t('Please connect to the selected server to view the graph.');
+                              msg = gettext('Please connect to the selected server to view the graph.');
                             }
                             cls = 'info';
                         } else {
-                            msg = t('An error occurred whilst rendering the graph.');
+                            msg = gettext('An error occurred whilst rendering the graph.');
                             cls = 'danger';
                         }
 
@@ -331,11 +331,11 @@ function(r, $, pgAdmin, _, Backbone, t) {
                     // If we get a 428, it means the server isn't connected
                     if (xhr.status == 428) {
                         if (_.isUndefined(msg) || _.isNull(msg)) {
-                            msg = t('Please connect to the selected server to view the table.');
+                            msg = gettext('Please connect to the selected server to view the table.');
                         }
                         cls = 'info';
                     } else {
-                        msg = t('An error occurred whilst rendering the table.');
+                        msg = gettext('An error occurred whilst rendering the table.');
                         cls = 'danger';
                     }
 
@@ -400,37 +400,37 @@ function(r, $, pgAdmin, _, Backbone, t) {
 
             var server_activity_columns = [{
                 name: "pid",
-                label: t('PID'),
+                label: gettext('PID'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "datname",
-                label: t('Database'),
+                label: gettext('Database'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "usename",
-                label: t('User'),
+                label: gettext('User'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "application_name",
-                label: t('Application'),
+                label: gettext('Application'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "client_addr",
-                label: t('Client'),
+                label: gettext('Client'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "backend_start",
-                label: t('Backend start'),
+                label: gettext('Backend start'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "state",
-                label: t('State'),
+                label: gettext('State'),
                 editable: false,
                 cell: "string"
             }];
@@ -439,7 +439,7 @@ function(r, $, pgAdmin, _, Backbone, t) {
                 server_activity_columns = server_activity_columns.concat(
                 [{
                     name: "waiting",
-                    label: t('Waiting?'),
+                    label: gettext('Waiting?'),
                     editable: false,
                     cell: "string"
                 }]);
@@ -447,12 +447,12 @@ function(r, $, pgAdmin, _, Backbone, t) {
                 server_activity_columns = server_activity_columns.concat(
                 [{
                     name: "wait_event",
-                    label: t('Wait Event'),
+                    label: gettext('Wait Event'),
                     editable: false,
                     cell: "string"
                 },{
                     name: "blocking_pids",
-                    label: t('Blocking PIDs'),
+                    label: gettext('Blocking PIDs'),
                     editable: false,
                     cell: "string"
                 }]);
@@ -460,121 +460,121 @@ function(r, $, pgAdmin, _, Backbone, t) {
 
             var server_locks_columns = [{
                 name: "pid",
-                label: t('PID'),
+                label: gettext('PID'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "datname",
-                label: t('Database'),
+                label: gettext('Database'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "locktype",
-                label: t('Lock type'),
+                label: gettext('Lock type'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "relation",
-                label: t('Target relation'),
+                label: gettext('Target relation'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "page",
-                label: t('Page'),
+                label: gettext('Page'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "tuple",
-                label: t('Tuple'),
+                label: gettext('Tuple'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "virtualxid",
-                label: t('vXID (target)'),
+                label: gettext('vXID (target)'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "transactionid",
-                label: t('XID (target)'),
+                label: gettext('XID (target)'),
                 editable: false,
                 cell: "string"
             },{
                 name: "classid",
-                label: t('Class'),
+                label: gettext('Class'),
                 editable: false,
                 cell: "string"
             },{
                 name: "objid",
-                label: t('Object ID'),
+                label: gettext('Object ID'),
                 editable: false,
                 cell: "string"
             },{
                 name: "virtualtransaction",
-                label: t('vXID (owner)'),
+                label: gettext('vXID (owner)'),
                 editable: false,
                 cell: "string"
             },{
                 name: "mode",
-                label: t('Mode'),
+                label: gettext('Mode'),
                 editable: false,
                 cell: "string"
             },{
                 name: "granted",
-                label: t('Granted?'),
+                label: gettext('Granted?'),
                 editable: false,
                 cell: "string"
             }];
 
             var server_prepared_columns = [{
                 name: "git",
-                label: t('Name'),
+                label: gettext('Name'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "database",
-                label: t('Database'),
+                label: gettext('Database'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "Owner",
-                label: t('Owner'),
+                label: gettext('Owner'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "transaction",
-                label: t('XID'),
+                label: gettext('XID'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "prepared",
-                label: t('Prepared at'),
+                label: gettext('Prepared at'),
                 editable: false,
                 cell: "string"
             }];
 
             var server_config_columns = [{
                 name: "name",
-                label: t('Name'),
+                label: gettext('Name'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "category",
-                label: t('Category'),
+                label: gettext('Category'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "setting",
-                label: t('Setting'),
+                label: gettext('Setting'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "unit",
-                label: t('Unit'),
+                label: gettext('Unit'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "short_desc",
-                label: t('Description'),
+                label: gettext('Description'),
                 editable: false,
                 cell: "string"
             }];
@@ -677,32 +677,32 @@ function(r, $, pgAdmin, _, Backbone, t) {
 
             var database_activity_columns = [{
                 name: "pid",
-                label: t('PID'),
+                label: gettext('PID'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "usename",
-                label: t('User'),
+                label: gettext('User'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "application_name",
-                label: t('Application'),
+                label: gettext('Application'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "client_addr",
-                label: t('Client'),
+                label: gettext('Client'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "backend_start",
-                label: t('Backend start'),
+                label: gettext('Backend start'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "state",
-                label: t('State'),
+                label: gettext('State'),
                 editable: false,
                 cell: "string"
             }];
@@ -711,7 +711,7 @@ function(r, $, pgAdmin, _, Backbone, t) {
                 database_activity_columns = database_activity_columns.concat(
                 [{
                     name: "waiting",
-                    label: t('Waiting?'),
+                    label: gettext('Waiting?'),
                     editable: false,
                     cell: "string"
                 }]);
@@ -719,12 +719,12 @@ function(r, $, pgAdmin, _, Backbone, t) {
                 database_activity_columns = database_activity_columns.concat(
                 [{
                     name: "wait_event",
-                    label: t('Wait Event'),
+                    label: gettext('Wait Event'),
                     editable: false,
                     cell: "string"
                 },{
                     name: "blocking_pids",
-                    label: t('Blocking PIDs'),
+                    label: gettext('Blocking PIDs'),
                     editable: false,
                     cell: "string"
                 }]);
@@ -732,84 +732,84 @@ function(r, $, pgAdmin, _, Backbone, t) {
 
             var database_locks_columns = [{
                 name: "pid",
-                label: t('PID'),
+                label: gettext('PID'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "locktype",
-                label: t('Lock type'),
+                label: gettext('Lock type'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "relation",
-                label: t('Target relation'),
+                label: gettext('Target relation'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "page",
-                label: t('Page'),
+                label: gettext('Page'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "tuple",
-                label: t('Tuple'),
+                label: gettext('Tuple'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "virtualxid",
-                label: t('vXID (target)'),
+                label: gettext('vXID (target)'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "transactionid",
-                label: t('XID (target)'),
+                label: gettext('XID (target)'),
                 editable: false,
                 cell: "string"
             },{
                 name: "classid",
-                label: t('Class'),
+                label: gettext('Class'),
                 editable: false,
                 cell: "string"
             },{
                 name: "objid",
-                label: t('Object ID'),
+                label: gettext('Object ID'),
                 editable: false,
                 cell: "string"
             },{
                 name: "virtualtransaction",
-                label: t('vXID (owner)'),
+                label: gettext('vXID (owner)'),
                 editable: false,
                 cell: "string"
             },{
                 name: "mode",
-                label: t('Mode'),
+                label: gettext('Mode'),
                 editable: false,
                 cell: "string"
             },{
                 name: "granted",
-                label: t('Granted?'),
+                label: gettext('Granted?'),
                 editable: false,
                 cell: "string"
             }];
 
             var database_prepared_columns = [{
                 name: "git",
-                label: t('Name'),
+                label: gettext('Name'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "Owner",
-                label: t('Owner'),
+                label: gettext('Owner'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "transaction",
-                label: t('XID'),
+                label: gettext('XID'),
                 editable: false,
                 cell: "string"
             }, {
                 name: "prepared",
-                label: t('Prepared at'),
+                label: gettext('Prepared at'),
                 editable: false,
                 cell: "string"
             }];
diff --git a/web/pgadmin/messages.pot b/web/pgadmin/messages.pot
index 128b0d94..d0817c33 100644
--- a/web/pgadmin/messages.pot
+++ b/web/pgadmin/messages.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2017-03-09 09:21+0000\n"
+"POT-Creation-Date: 2017-03-27 11:07-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 1.3\n"
 
-#: pgadmin/__init__.py:357 pgadmin/__init__.py:397
+#: pgadmin/__init__.py:379 pgadmin/__init__.py:419
 #, python-format
 msgid "Auto-detected %s installation with the data directory at %s"
 msgstr ""
@@ -27,12 +27,12 @@ msgstr ""
 msgid "About %(appname)s"
 msgstr ""
 
-#: pgadmin/about/__init__.py:66
+#: pgadmin/about/__init__.py:64
 #: pgadmin/browser/server_groups/servers/templates/servers/servers.js:42
 msgid "Server"
 msgstr ""
 
-#: pgadmin/about/__init__.py:68
+#: pgadmin/about/__init__.py:66
 msgid "Desktop"
 msgstr ""
 
@@ -66,21 +66,23 @@ msgstr ""
 msgid "Current User"
 msgstr ""
 
-#: pgadmin/browser/__init__.py:36
+#: pgadmin/browser/__init__.py:37
 #: pgadmin/browser/templates/browser/js/browser.js:104
 msgid "Browser"
 msgstr ""
 
-#: pgadmin/browser/__init__.py:193
+#: pgadmin/browser/__init__.py:194
 msgid "Show system objects?"
 msgstr ""
 
-#: pgadmin/browser/__init__.py:194 pgadmin/tools/sqleditor/__init__.py:79
-#: pgadmin/tools/sqleditor/__init__.py:128
+#: pgadmin/browser/__init__.py:195 pgadmin/tools/debugger/__init__.py:67
+#: pgadmin/tools/sqleditor/__init__.py:79
+#: pgadmin/tools/sqleditor/__init__.py:90
+#: pgadmin/tools/sqleditor/__init__.py:136
 msgid "Display"
 msgstr ""
 
-#: pgadmin/browser/__init__.py:422 pgadmin/browser/collection.py:227
+#: pgadmin/browser/__init__.py:423 pgadmin/browser/collection.py:227
 #: pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/__init__.py:109
 #: pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/__init__.py:688
 msgid "Nodes"
@@ -100,21 +102,21 @@ msgstr ""
 msgid "Connection to the server has been lost."
 msgstr ""
 
-#: pgadmin/browser/server_groups/__init__.py:124
+#: pgadmin/browser/server_groups/__init__.py:125
 msgid "The specified server group cannot be deleted."
 msgstr ""
 
-#: pgadmin/browser/server_groups/__init__.py:136
-#: pgadmin/browser/server_groups/__init__.py:167
-#: pgadmin/browser/server_groups/__init__.py:205
+#: pgadmin/browser/server_groups/__init__.py:137
+#: pgadmin/browser/server_groups/__init__.py:168
+#: pgadmin/browser/server_groups/__init__.py:206
 msgid "The specified server group could not be found."
 msgstr ""
 
-#: pgadmin/browser/server_groups/__init__.py:231
+#: pgadmin/browser/server_groups/__init__.py:232
 msgid "Server group already exists"
 msgstr ""
 
-#: pgadmin/browser/server_groups/__init__.py:263
+#: pgadmin/browser/server_groups/__init__.py:264
 msgid "No server group name was specified"
 msgstr ""
 
@@ -202,8 +204,8 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py:206
 #: pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py:211
 #: pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py:407
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:409
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:343
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:407
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:341
 #: pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py:326
 #: pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py:267
 #: pgadmin/browser/server_groups/servers/databases/schemas/packages/__init__.py:321
@@ -211,7 +213,7 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py:329
 #: pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py:508
 #: pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py:422
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1409
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1411
 #: pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py:560
 #: pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py:493
 #: pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py:573
@@ -274,20 +276,20 @@ msgstr ""
 
 #: pgadmin/browser/server_groups/servers/__init__.py:894
 #: pgadmin/browser/server_groups/servers/pgagent/templates/pga_job/js/pga_job.js:185
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1763
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1899
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2438
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2739
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2808
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2879
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2929
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2984
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3192
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3300
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3398
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3443
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3496
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3535
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1704
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1840
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2379
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2690
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2759
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2830
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2880
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2935
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3047
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3155
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3253
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3298
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3351
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3390
 msgid ""
 "Not connected to the server or the connection to the server has been "
 "closed."
@@ -327,31 +329,31 @@ msgstr ""
 msgid "EDB Advanced Server"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/types.py:48
+#: pgadmin/browser/server_groups/servers/types.py:51
 #: pgadmin/help/__init__.py:84
 msgid "Paths"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/types.py:56
+#: pgadmin/browser/server_groups/servers/types.py:59
 msgid "{0} Binary Path"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/types.py:57
+#: pgadmin/browser/server_groups/servers/types.py:60
 msgid "Binary paths"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/types.py:59
+#: pgadmin/browser/server_groups/servers/types.py:63
 msgid ""
 "Path to the directory containing the {0} utility programs (pg_dump, "
 "pg_restore etc)."
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/types.py:110
+#: pgadmin/browser/server_groups/servers/types.py:115
 #, python-format
 msgid "Could not find the utility for the operation '%s'"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/types.py:124
+#: pgadmin/browser/server_groups/servers/types.py:129
 msgid "PostgreSQL"
 msgstr ""
 
@@ -392,8 +394,8 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py:482
 #: pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py:724
 #: pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py:544
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:528
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:467
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:526
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:465
 #: pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py:439
 #: pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py:799
 #: pgadmin/browser/server_groups/servers/databases/schemas/packages/__init__.py:390
@@ -401,7 +403,7 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py:386
 #: pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py:485
 #: pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py:638
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1556
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1558
 #: pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py:632
 #: pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py:595
 #: pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py:694
@@ -523,9 +525,7 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/js/tablespaces.js:326
 #: pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/sql/default/stats.sql:5
 #: pgadmin/browser/server_groups/servers/templates/servers/servers.js:628
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:533
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:560
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:800
+#: pgadmin/browser/server_groups/templates/server_groups/server_groups.js:38
 msgid "Name"
 msgstr ""
 
@@ -716,8 +716,6 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/databases/schemas/views/templates/view/js/view.js:109
 #: pgadmin/browser/server_groups/servers/databases/templates/databases/js/databases.js:308
 #: pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/js/tablespaces.js:340
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:543
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:805
 #: pgadmin/tools/backup/templates/backup/js/backup.js:201
 #: pgadmin/tools/restore/templates/restore/js/restore.js:159
 msgid "Owner"
@@ -1189,8 +1187,6 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/9.6_plus/stats.sql:29
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:3
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:28
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:416
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:688
 msgid "User"
 msgstr ""
 
@@ -1253,11 +1249,11 @@ msgstr ""
 #: pgadmin/tools/maintenance/templates/maintenance/js/maintenance.js:53
 #: pgadmin/tools/maintenance/templates/maintenance/js/maintenance.js:80
 #: pgadmin/tools/maintenance/templates/maintenance/js/maintenance.js:93
-#: pgadmin/tools/sqleditor/__init__.py:114
-#: pgadmin/tools/sqleditor/__init__.py:120
-#: pgadmin/tools/sqleditor/__init__.py:140
-#: pgadmin/tools/sqleditor/__init__.py:147
-#: pgadmin/tools/sqleditor/__init__.py:154
+#: pgadmin/tools/sqleditor/__init__.py:122
+#: pgadmin/tools/sqleditor/__init__.py:128
+#: pgadmin/tools/sqleditor/__init__.py:148
+#: pgadmin/tools/sqleditor/__init__.py:155
+#: pgadmin/tools/sqleditor/__init__.py:162
 msgid "Options"
 msgstr ""
 
@@ -1287,6 +1283,7 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/js/functions.js:223
 #: pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/js/trigger_functions.js:159
 #: pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbfunc/js/edbfunc.js:83
+#: pgadmin/templates/security/login_user.html:12
 msgid "Language"
 msgstr ""
 
@@ -1646,17 +1643,14 @@ msgstr ""
 
 #: pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py:880
 msgid ""
-"\n"
-"    Could not find the foreign table in the database.\n"
-"    It may have been removed by another user or\n"
-"    shifted to the another schema.\n"
-"    "
+"Could not find the foreign table in the database. It may have been "
+"removed by another user or shifted to the another schema."
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py:1236
-#: pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py:1277
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2792
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2841
+#: pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py:1233
+#: pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py:1274
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2797
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2846
 #: pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py:1211
 msgid "-- Please create column(s) first..."
 msgstr ""
@@ -1738,6 +1732,7 @@ msgid "FTS Configurations"
 msgstr ""
 
 #: pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py:323
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py:630
 msgid "Could not find the FTS Configuration node."
 msgstr ""
 
@@ -1761,21 +1756,14 @@ msgstr ""
 msgid "FTS Configuration dropped"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py:630
-msgid ""
-"\n"
-"                    Could not find the FTS Configuration node.\n"
-"                "
-msgstr ""
-
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py:855
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py:853
 msgid ""
 "ERROR: Could not generate reversed engineered query for the FTS "
 "Configuration!\n"
 "{0}"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py:864
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py:862
 msgid ""
 "ERROR: Could not generate reversed engineered query for FTS Configuration"
 " node!"
@@ -1837,43 +1825,33 @@ msgid "FTS Dictionaries"
 msgstr ""
 
 #: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:335
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:613
 msgid "Could not find the FTS Dictionary node."
 msgstr ""
 
 #: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:372
-msgid ""
-"\n"
-"                Could not find the FTS Dictionary node in the database "
-"node.\n"
-"                "
+msgid "Could not find the FTS Dictionary node in the database node."
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:488
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:486
 msgid "Could not find the FTS Dictionary node to update."
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:531
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:529
 msgid "The specified FTS dictionary could not be found.\n"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:550
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:548
 msgid "FTS Dictionary dropped"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:615
-msgid ""
-"\n"
-"                    Could not find the FTS Dictionary node.\n"
-"                "
-msgstr ""
-
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:731
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:727
 msgid ""
 "Could not generate reversed engineered query for the FTS Dictionary.\n"
 "{0}"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:739
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py:735
 msgid "Could not generate reversed engineered query for FTS Dictionary node."
 msgstr ""
 
@@ -1910,36 +1888,33 @@ msgid "FTS Parsers"
 msgstr ""
 
 #: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:280
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:550
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:548
 msgid "Could not find the FTS Parser node."
 msgstr ""
 
 #: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:306
-msgid ""
-"\n"
-"                Could not find the FTS Parser node in the database node.\n"
-"                "
+msgid "Could not find the FTS Parser node in the database node."
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:424
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:422
 msgid "Could not find the FTS Parser node to update."
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:470
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:468
 msgid "The specified FTS parser could not be found.\n"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:490
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:488
 msgid "FTS Parser dropped"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:774
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:772
 msgid ""
 "Could not generate reversed engineered query for the FTS Parser.\n"
 "{0}"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:781
+#: pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py:779
 msgid "Could not generate reversed engineered query for FTS Parser node"
 msgstr ""
 
@@ -2101,8 +2076,6 @@ msgid "Trigger Functions"
 msgstr ""
 
 #: pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/js/functions.js:44
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:521
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:788
 msgid "Mode"
 msgstr ""
 
@@ -2598,66 +2571,66 @@ msgstr ""
 msgid "Target object cannot be empty."
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:54
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:56
 #: pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/js/table.js:13
 #: pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/js/schema.js:392
 #: pgadmin/browser/server_groups/servers/databases/templates/databases/js/databases.js:425
 msgid "Tables"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:369
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:371
 msgid "Could not find the table."
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1559
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1561
 msgid "The specified table could not be found.\n"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1576
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1578
 msgid "Table dropped"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1624
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1626
 msgid "Table truncated"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1673
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1675
 msgid "Trigger(s) have been enabled"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1674
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1676
 msgid "Trigger(s) have been disabled"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1706
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1708
 msgid "Table statistics have been reset"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1820
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1822
 msgid "-- incomplete definition for {0} constraint"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1880
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1911
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1882
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:1913
 msgid "-- incomplete definition for foreign_key constraint"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2005
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2007
 msgid "-- incomplete definition for check_constraint"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2081
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2083
 msgid "-- incomplete definition for exclusion_constraint"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2289
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2291
 #: pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py:804
 #: pgadmin/browser/server_groups/servers/databases/schemas/tables/indexes/__init__.py:818
 #: pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/__init__.py:872
 msgid "-- incomplete definition"
 msgstr ""
 
-#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2298
+#: pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py:2300
 msgid "-- incomplete definition for {0}"
 msgstr ""
 
@@ -4268,9 +4241,6 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/9.6_plus/stats.sql:30
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:4
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:29
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:411
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:471
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:538
 msgid "Database"
 msgstr ""
 
@@ -4935,6 +4905,7 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/pgagent/steps/templates/pga_jobstep/js/pga_jobstep.js:94
 #: pgadmin/browser/server_groups/servers/pgagent/templates/pga_job/js/pga_job.js:93
 #: pgadmin/browser/server_groups/servers/templates/servers/servers.js:626
+#: pgadmin/browser/server_groups/templates/server_groups/server_groups.js:35
 msgid "ID"
 msgstr ""
 
@@ -5552,6 +5523,10 @@ msgstr ""
 msgid "Please specify the value for all the security providers."
 msgstr ""
 
+#: pgadmin/browser/server_groups/servers/roles/templates/role/js/role.js:255
+msgid "Select members"
+msgstr ""
+
 #: pgadmin/browser/server_groups/servers/roles/templates/role/js/role.js:316
 msgid "Login/Group Role"
 msgstr ""
@@ -5675,7 +5650,7 @@ msgid "Move objects to another tablespace"
 msgstr ""
 
 #: pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/js/tablespaces.js:176
-#: pgadmin/browser/templates/browser/index.html:156
+#: pgadmin/browser/templates/browser/index.html:158
 #: pgadmin/tools/user_management/__init__.py:41
 #: pgadmin/tools/user_management/templates/user_management/js/user_management.js:384
 msgid "Users"
@@ -5685,9 +5660,7 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/js/tablespaces.js:258
 #: pgadmin/browser/server_groups/servers/templates/servers/servers.js:896
 #: pgadmin/browser/server_groups/servers/templates/servers/servers.js:922
-#: pgadmin/preferences/templates/preferences/preferences.js:357
-#: pgadmin/preferences/templates/preferences/preferences.js:381
-#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:262
+#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:265
 #: pgadmin/tools/import_export/templates/import_export/js/import_export.js:376
 #: pgadmin/tools/import_export/templates/import_export/js/import_export.js:396
 #: pgadmin/tools/maintenance/templates/maintenance/js/maintenance.js:272
@@ -5707,7 +5680,6 @@ msgstr ""
 #: pgadmin/misc/file_manager/templates/file_manager/js/file_manager.js:409
 #: pgadmin/misc/file_manager/templates/file_manager/js/file_manager.js:509
 #: pgadmin/misc/file_manager/templates/file_manager/js/file_manager.js:631
-#: pgadmin/preferences/templates/preferences/preferences.js:359
 #: pgadmin/tools/backup/templates/backup/js/backup.js:452
 #: pgadmin/tools/backup/templates/backup/js/backup.js:665
 #: pgadmin/tools/datagrid/templates/datagrid/index.html:244
@@ -5832,7 +5804,7 @@ msgid "Confirm Password"
 msgstr ""
 
 #: pgadmin/browser/server_groups/servers/templates/servers/servers.js:407
-#: pgadmin/browser/templates/browser/index.html:153
+#: pgadmin/browser/templates/browser/index.html:155
 #: pgadmin/templates/security/change_password.html:10
 msgid "Change Password"
 msgstr ""
@@ -5895,8 +5867,6 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/9.6_plus/stats.sql:31
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:5
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:30
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:431
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:703
 msgid "Backend start"
 msgstr ""
 
@@ -5906,8 +5876,6 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/9.6_plus/stats.sql:41
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:15
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:40
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:426
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:698
 msgid "Client"
 msgstr ""
 
@@ -5917,8 +5885,6 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/9.6_plus/stats.sql:42
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:16
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:41
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:421
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:693
 msgid "Application"
 msgstr ""
 
@@ -5926,8 +5892,6 @@ msgstr ""
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/9.2_plus/stats.sql:42
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:17
 #: pgadmin/browser/server_groups/servers/templates/servers/sql/default/stats.sql:42
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:445
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:717
 msgid "Waiting?"
 msgstr ""
 
@@ -5986,41 +5950,41 @@ msgstr ""
 msgid "The ID cannot be changed."
 msgstr ""
 
-#: pgadmin/browser/templates/browser/index.html:94
+#: pgadmin/browser/templates/browser/index.html:95
 msgid "Loading {0} v{1}..."
 msgstr ""
 
-#: pgadmin/browser/templates/browser/index.html:100
+#: pgadmin/browser/templates/browser/index.html:102
 msgid "Toggle navigation"
 msgstr ""
 
-#: pgadmin/browser/templates/browser/index.html:117
+#: pgadmin/browser/templates/browser/index.html:119
 msgid "File"
 msgstr ""
 
-#: pgadmin/browser/templates/browser/index.html:122
+#: pgadmin/browser/templates/browser/index.html:124
 #: pgadmin/browser/templates/browser/js/node.js:982
 msgid "Edit"
 msgstr ""
 
-#: pgadmin/browser/templates/browser/index.html:127
+#: pgadmin/browser/templates/browser/index.html:129
 msgid "Object"
 msgstr ""
 
-#: pgadmin/browser/templates/browser/index.html:132
+#: pgadmin/browser/templates/browser/index.html:134
 msgid "Management"
 msgstr ""
 
-#: pgadmin/browser/templates/browser/index.html:137
+#: pgadmin/browser/templates/browser/index.html:139
 msgid "Tools"
 msgstr ""
 
-#: pgadmin/browser/templates/browser/index.html:142 pgadmin/help/__init__.py:90
+#: pgadmin/browser/templates/browser/index.html:144 pgadmin/help/__init__.py:90
 #: pgadmin/help/__init__.py:99
 msgid "Help"
 msgstr ""
 
-#: pgadmin/browser/templates/browser/index.html:159
+#: pgadmin/browser/templates/browser/index.html:161
 msgid "Logout"
 msgstr ""
 
@@ -6153,12 +6117,10 @@ msgid "No statistics are available for the selected object."
 msgstr ""
 
 #: pgadmin/browser/templates/browser/js/messages.js:25
-#: pgadmin/preferences/templates/preferences/preferences.js:193
 msgid "True"
 msgstr ""
 
 #: pgadmin/browser/templates/browser/js/messages.js:26
-#: pgadmin/preferences/templates/preferences/preferences.js:194
 msgid "False"
 msgstr ""
 
@@ -6341,12 +6303,10 @@ msgid "Block I/O statistics refresh rate"
 msgstr ""
 
 #: pgadmin/dashboard/__init__.py:140
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:337
 msgid "Please connect to the selected server to view the table."
 msgstr ""
 
 #: pgadmin/dashboard/__init__.py:145
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:225
 msgid "Please connect to the selected server to view the graph."
 msgstr ""
 
@@ -6481,117 +6441,6 @@ msgstr ""
 msgid "Community Support"
 msgstr ""
 
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:44
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:117
-msgid "An error occurred whilst loading the dashboard."
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:229
-msgid "An error occurred whilst rendering the graph."
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:341
-msgid "An error occurred whilst rendering the table."
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:406
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:466
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:683
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:738
-msgid "PID"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:436
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:708
-msgid "State"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:453
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:725
-msgid "Wait Event"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:458
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:730
-msgid "Blocking PIDs"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:476
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:743
-msgid "Lock type"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:481
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:748
-msgid "Target relation"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:486
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:753
-msgid "Page"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:491
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:758
-msgid "Tuple"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:496
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:763
-msgid "vXID (target)"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:501
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:768
-msgid "XID (target)"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:506
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:773
-msgid "Class"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:511
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:778
-msgid "Object ID"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:516
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:783
-msgid "vXID (owner)"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:526
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:793
-msgid "Granted?"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:548
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:810
-msgid "XID"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:553
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:815
-msgid "Prepared at"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:565
-msgid "Category"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:570
-msgid "Setting"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:575
-msgid "Unit"
-msgstr ""
-
-#: pgadmin/dashboard/templates/dashboard/js/dashboard.js:580
-msgid "Description"
-msgstr ""
-
 #: pgadmin/dashboard/templates/dashboard/sql/default/activity.sql:9
 msgid "yes"
 msgstr ""
@@ -6685,6 +6534,28 @@ msgid ""
 " with the major.minor version number."
 msgstr ""
 
+#: pgadmin/misc/__init__.py:49
+#: pgadmin/tools/backup/templates/backup/js/backup.js:70
+#: pgadmin/tools/backup/templates/backup/js/backup.js:74
+#: pgadmin/tools/backup/templates/backup/js/backup.js:78
+#: pgadmin/tools/backup/templates/backup/js/backup.js:243
+#: pgadmin/tools/backup/templates/backup/js/backup.js:247
+#: pgadmin/tools/backup/templates/backup/js/backup.js:250
+#: pgadmin/tools/backup/templates/backup/js/backup.js:253
+#: pgadmin/tools/backup/templates/backup/js/backup.js:256
+#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:179
+#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:183
+#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:186
+#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:189
+#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:207
+#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:222
+msgid "Miscellaneous"
+msgstr ""
+
+#: pgadmin/misc/__init__.py:59 pgadmin/misc/__init__.py:60
+msgid "User language"
+msgstr ""
+
 #: pgadmin/misc/bgprocess/__init__.py:50
 msgid "seconds"
 msgstr ""
@@ -6715,7 +6586,7 @@ msgid "Too many logs generated!"
 msgstr ""
 
 #: pgadmin/misc/bgprocess/processes.py:76
-#: pgadmin/misc/bgprocess/processes.py:518
+#: pgadmin/misc/bgprocess/processes.py:555
 msgid "Could not find a process with the specified ID."
 msgstr ""
 
@@ -6727,7 +6598,7 @@ msgstr ""
 msgid "The process has already finished and can not be restarted."
 msgstr ""
 
-#: pgadmin/misc/bgprocess/processes.py:439
+#: pgadmin/misc/bgprocess/processes.py:476
 msgid "Status for the background process '{0}' could not be loaded."
 msgstr ""
 
@@ -6810,21 +6681,17 @@ msgid "Format"
 msgstr ""
 
 #: pgadmin/preferences/__init__.py:55
-#: pgadmin/preferences/templates/preferences/preferences.js:354
-#: pgadmin/preferences/templates/preferences/preferences.js:366
+#: pgadmin/preferences/templates/preferences/preferences.js:359
 msgid "Preferences"
 msgstr ""
 
-#: pgadmin/preferences/templates/preferences/preferences.js:202
-msgid "Show"
+#: pgadmin/preferences/__init__.py:112 pgadmin/preferences/__init__.py:118
+#: pgadmin/preferences/__init__.py:127 pgadmin/preferences/__init__.py:133
+msgid "label"
 msgstr ""
 
-#: pgadmin/preferences/templates/preferences/preferences.js:203
-msgid "Hide"
-msgstr ""
-
-#: pgadmin/preferences/templates/preferences/preferences.js:331
-msgid "Category is not selected."
+#: pgadmin/preferences/__init__.py:129
+msgid "help_str"
 msgstr ""
 
 #: pgadmin/settings/__init__.py:43
@@ -6837,14 +6704,12 @@ msgstr ""
 msgid "This URL can not be called directly."
 msgstr ""
 
-#: pgadmin/settings/templates/settings/settings.js:26
-msgid "Reset layout"
+#: pgadmin/static/js/selection/clipboard.js:53
+msgid "Error"
 msgstr ""
 
-#: pgadmin/settings/templates/settings/settings.js:27
-msgid ""
-"Are you sure you want to reset the current layout? This will cause the "
-"application to reload and any un-saved data will be lost."
+#: pgadmin/static/js/selection/clipboard.js:54
+msgid "Oops, unable to copy to clipboard"
 msgstr ""
 
 #: pgadmin/templates/security/change_password.html:2
@@ -6872,11 +6737,11 @@ msgstr ""
 msgid "%(appname)s Login"
 msgstr ""
 
-#: pgadmin/templates/security/login_user.html:9
+#: pgadmin/templates/security/login_user.html:10
 msgid "Login"
 msgstr ""
 
-#: pgadmin/templates/security/login_user.html:12
+#: pgadmin/templates/security/login_user.html:23
 #, python-format
 msgid "Forgotten your <a href=\"%(url)s\">password</a>?"
 msgstr ""
@@ -6890,8 +6755,8 @@ msgstr ""
 msgid "Reset Password"
 msgstr ""
 
-#: pgadmin/tools/__init__.py:51 pgadmin/tools/datagrid/__init__.py:58
-#: pgadmin/tools/sqleditor/__init__.py:164
+#: pgadmin/tools/__init__.py:57 pgadmin/tools/datagrid/__init__.py:59
+#: pgadmin/tools/sqleditor/__init__.py:172
 msgid "This URL cannot be requested directly."
 msgstr ""
 
@@ -6932,14 +6797,14 @@ msgstr ""
 msgid "Running command:"
 msgstr ""
 
-#: pgadmin/tools/backup/__init__.py:239 pgadmin/tools/backup/__init__.py:337
-#: pgadmin/tools/restore/__init__.py:198
+#: pgadmin/tools/backup/__init__.py:242 pgadmin/tools/backup/__init__.py:343
+#: pgadmin/tools/restore/__init__.py:201
 msgid "Could not find the specified server."
 msgstr ""
 
-#: pgadmin/tools/backup/__init__.py:252 pgadmin/tools/backup/__init__.py:350
+#: pgadmin/tools/backup/__init__.py:255 pgadmin/tools/backup/__init__.py:356
 #: pgadmin/tools/maintenance/__init__.py:206
-#: pgadmin/tools/restore/__init__.py:212
+#: pgadmin/tools/restore/__init__.py:215
 msgid "Please connect to the server first."
 msgstr ""
 
@@ -6957,23 +6822,6 @@ msgstr ""
 msgid "Role name"
 msgstr ""
 
-#: pgadmin/tools/backup/templates/backup/js/backup.js:70
-#: pgadmin/tools/backup/templates/backup/js/backup.js:74
-#: pgadmin/tools/backup/templates/backup/js/backup.js:78
-#: pgadmin/tools/backup/templates/backup/js/backup.js:243
-#: pgadmin/tools/backup/templates/backup/js/backup.js:247
-#: pgadmin/tools/backup/templates/backup/js/backup.js:250
-#: pgadmin/tools/backup/templates/backup/js/backup.js:253
-#: pgadmin/tools/backup/templates/backup/js/backup.js:256
-#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:179
-#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:183
-#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:186
-#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:189
-#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:207
-#: pgadmin/tools/import_export/templates/import_export/js/import_export.js:222
-msgid "Miscellaneous"
-msgstr ""
-
 #: pgadmin/tools/backup/templates/backup/js/backup.js:72
 #: pgadmin/tools/backup/templates/backup/js/backup.js:249
 #: pgadmin/tools/restore/templates/restore/js/restore.js:199
@@ -7211,7 +7059,7 @@ msgid "Please set binary path for PostgreSQL Server from preferences."
 msgstr ""
 
 #: pgadmin/tools/backup/templates/backup/js/backup.js:617
-msgid "Please set binary path for EDB Advanced Server from preferences."
+msgid "Please set binary path for EDB Postgres Advanced Server from preferences."
 msgstr ""
 
 #: pgadmin/tools/backup/templates/backup/js/backup.js:731
@@ -7220,7 +7068,7 @@ msgstr ""
 msgid "Please provide filename"
 msgstr ""
 
-#: pgadmin/tools/datagrid/__init__.py:210
+#: pgadmin/tools/datagrid/__init__.py:223
 msgid "Server disconnected, Please connect and try again"
 msgstr ""
 
@@ -7270,7 +7118,7 @@ msgid "Paste Row"
 msgstr ""
 
 #: pgadmin/tools/datagrid/templates/datagrid/index.html:107
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2288
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2229
 msgid "Delete Row(s)"
 msgstr ""
 
@@ -7325,12 +7173,12 @@ msgid "Timing"
 msgstr ""
 
 #: pgadmin/tools/datagrid/templates/datagrid/index.html:195
-#: pgadmin/tools/sqleditor/__init__.py:113
+#: pgadmin/tools/sqleditor/__init__.py:121
 msgid "Auto commit?"
 msgstr ""
 
 #: pgadmin/tools/datagrid/templates/datagrid/index.html:201
-#: pgadmin/tools/sqleditor/__init__.py:119
+#: pgadmin/tools/sqleditor/__init__.py:127
 msgid "Auto rollback?"
 msgstr ""
 
@@ -7364,129 +7212,142 @@ msgstr ""
 msgid "Error fetching SQL for script: \"%s\""
 msgstr ""
 
-#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:75
+#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:78
 msgid "Query Tool"
 msgstr ""
 
-#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:85
+#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:88
 msgid "View All Rows"
 msgstr ""
 
-#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:90
+#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:93
 msgid "View First 100 Rows"
 msgstr ""
 
-#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:95
+#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:98
 msgid "View Last 100 Rows"
 msgstr ""
 
-#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:100
+#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:103
 msgid "View Filtered Rows..."
 msgstr ""
 
-#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:104
+#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:107
 msgid "View Data"
 msgstr ""
 
-#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:412
+#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:433
 msgid " untitled"
 msgstr ""
 
-#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:461
+#: pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js:501
 msgid "Query Tool Initialize Error"
 msgstr ""
 
+#: pgadmin/tools/debugger/__init__.py:46
+#: pgadmin/tools/debugger/templates/debugger/js/debugger.js:90
+msgid "Debugger"
+msgstr ""
+
+#: pgadmin/tools/debugger/__init__.py:66 pgadmin/tools/sqleditor/__init__.py:89
+msgid "Open in New Browser Tab"
+msgstr ""
+
 #: pgadmin/tools/debugger/__init__.py:68
+msgid "If set to True, the Debugger will be opened in a new browser tab."
+msgstr ""
+
+#: pgadmin/tools/debugger/__init__.py:78
 #: pgadmin/tools/import_export/__init__.py:141
 #: pgadmin/tools/maintenance/__init__.py:143
 msgid "This URL can not be called directly!"
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:186
+#: pgadmin/tools/debugger/__init__.py:196
 msgid "Functions with a colon in the name cannot be debugged."
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:189
+#: pgadmin/tools/debugger/__init__.py:199
 msgid "EDB Advanced Server wrapped functions cannot be debugged."
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:195
+#: pgadmin/tools/debugger/__init__.py:205
 msgid "Could not fetch debugger plugin information."
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:200
+#: pgadmin/tools/debugger/__init__.py:210
 msgid ""
 "The debugger plugin is not enabled. Please add the plugin to the "
 "shared_preload_libraries setting in the postgresql.conf file and restart "
 "the database server."
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:206
-#: pgadmin/tools/debugger/__init__.py:213
+#: pgadmin/tools/debugger/__init__.py:216
+#: pgadmin/tools/debugger/__init__.py:223
 msgid "Failed to find the pldbgapi extension in this database."
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:217
+#: pgadmin/tools/debugger/__init__.py:227
 msgid ""
 "The debugger plugin is not enabled. Please create the pldbgapi extension "
 "in this database."
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:221
+#: pgadmin/tools/debugger/__init__.py:231
 msgid "The function/procedure cannot be debugged"
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:553
-#: pgadmin/tools/debugger/__init__.py:590
-#: pgadmin/tools/debugger/__init__.py:612
+#: pgadmin/tools/debugger/__init__.py:569
+#: pgadmin/tools/debugger/__init__.py:606
+#: pgadmin/tools/debugger/__init__.py:628
 msgid "Not connected to server Or connection with the server has been closed."
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:774
-#: pgadmin/tools/debugger/__init__.py:778
-#: pgadmin/tools/debugger/__init__.py:806
-#: pgadmin/tools/debugger/__init__.py:852
-#: pgadmin/tools/debugger/__init__.py:874
-#: pgadmin/tools/debugger/__init__.py:909
-#: pgadmin/tools/debugger/__init__.py:934
-#: pgadmin/tools/debugger/__init__.py:1003
-#: pgadmin/tools/debugger/__init__.py:1046
-#: pgadmin/tools/debugger/__init__.py:1067
-#: pgadmin/tools/debugger/__init__.py:1098
-#: pgadmin/tools/debugger/__init__.py:1119
-#: pgadmin/tools/debugger/__init__.py:1156
-#: pgadmin/tools/debugger/__init__.py:1179
-#: pgadmin/tools/debugger/__init__.py:1206
-#: pgadmin/tools/debugger/__init__.py:1355
-#: pgadmin/tools/debugger/__init__.py:1442
-#: pgadmin/tools/debugger/__init__.py:1464
-#: pgadmin/tools/debugger/__init__.py:1479
-#: pgadmin/tools/sqleditor/__init__.py:206
-#: pgadmin/tools/sqleditor/__init__.py:351
-#: pgadmin/tools/sqleditor/__init__.py:886
+#: pgadmin/tools/debugger/__init__.py:790
+#: pgadmin/tools/debugger/__init__.py:794
+#: pgadmin/tools/debugger/__init__.py:822
+#: pgadmin/tools/debugger/__init__.py:868
+#: pgadmin/tools/debugger/__init__.py:890
+#: pgadmin/tools/debugger/__init__.py:925
+#: pgadmin/tools/debugger/__init__.py:950
+#: pgadmin/tools/debugger/__init__.py:1019
+#: pgadmin/tools/debugger/__init__.py:1062
+#: pgadmin/tools/debugger/__init__.py:1083
+#: pgadmin/tools/debugger/__init__.py:1114
+#: pgadmin/tools/debugger/__init__.py:1135
+#: pgadmin/tools/debugger/__init__.py:1172
+#: pgadmin/tools/debugger/__init__.py:1195
+#: pgadmin/tools/debugger/__init__.py:1222
+#: pgadmin/tools/debugger/__init__.py:1410
+#: pgadmin/tools/debugger/__init__.py:1473
+#: pgadmin/tools/debugger/__init__.py:1495
+#: pgadmin/tools/debugger/__init__.py:1511
+#: pgadmin/tools/sqleditor/__init__.py:214
+#: pgadmin/tools/sqleditor/__init__.py:359
+#: pgadmin/tools/sqleditor/__init__.py:890
 #: pgadmin/tools/sqleditor/command.py:176
 #: pgadmin/tools/sqleditor/command.py:390
 msgid "Not connected to server or connection with the server has been closed."
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:845
+#: pgadmin/tools/debugger/__init__.py:861
 msgid "Target Aborted."
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:1149
+#: pgadmin/tools/debugger/__init__.py:1165
 msgid "Value deposited successfully"
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:1151
+#: pgadmin/tools/debugger/__init__.py:1167
 msgid "Error while setting the value"
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:1380
-#: pgadmin/tools/debugger/__init__.py:1424
+#: pgadmin/tools/debugger/__init__.py:1435
+#: pgadmin/tools/debugger/__init__.py:1455
 msgid "Execution Completed."
 msgstr ""
 
-#: pgadmin/tools/debugger/__init__.py:1385
+#: pgadmin/tools/debugger/__init__.py:1440
 msgid "Execution completed with error"
 msgstr ""
 
@@ -7534,10 +7395,6 @@ msgstr ""
 msgid "Set breakpoint"
 msgstr ""
 
-#: pgadmin/tools/debugger/templates/debugger/js/debugger.js:90
-msgid "Debugger"
-msgstr ""
-
 #: pgadmin/tools/debugger/templates/debugger/js/debugger_ui.js:89
 msgid "Please enter a value for the parameter."
 msgstr ""
@@ -7551,7 +7408,7 @@ msgid "Local variables"
 msgstr ""
 
 #: pgadmin/tools/debugger/templates/debugger/js/direct.js:1504
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:265
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:200
 msgid "Messages"
 msgstr ""
 
@@ -7602,8 +7459,8 @@ msgstr ""
 msgid "Please connect to the server first..."
 msgstr ""
 
-#: pgadmin/tools/import_export/__init__.py:228
-#: pgadmin/tools/import_export/__init__.py:235
+#: pgadmin/tools/import_export/__init__.py:232
+#: pgadmin/tools/import_export/__init__.py:239
 msgid "Please specify a valid file"
 msgstr ""
 
@@ -7850,7 +7707,7 @@ msgstr ""
 msgid "Restoring the backup on the server '{0}'..."
 msgstr ""
 
-#: pgadmin/tools/restore/__init__.py:187
+#: pgadmin/tools/restore/__init__.py:190
 msgid "File couldn't be found!"
 msgstr ""
 
@@ -7915,35 +7772,39 @@ msgid ""
 "number of seconds specified."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:89
+#: pgadmin/tools/sqleditor/__init__.py:91
+msgid "If set to True, the Query Tool will be opened in a new browser tab."
+msgstr ""
+
+#: pgadmin/tools/sqleditor/__init__.py:97
 msgid "Verbose output?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:90
-#: pgadmin/tools/sqleditor/__init__.py:96
-#: pgadmin/tools/sqleditor/__init__.py:102
-#: pgadmin/tools/sqleditor/__init__.py:108
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:255
+#: pgadmin/tools/sqleditor/__init__.py:98
+#: pgadmin/tools/sqleditor/__init__.py:104
+#: pgadmin/tools/sqleditor/__init__.py:110
+#: pgadmin/tools/sqleditor/__init__.py:116
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:190
 msgid "Explain"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:95
+#: pgadmin/tools/sqleditor/__init__.py:103
 msgid "Show costs?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:101
+#: pgadmin/tools/sqleditor/__init__.py:109
 msgid "Show buffers?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:107
-msgid "Show timing"
+#: pgadmin/tools/sqleditor/__init__.py:115
+msgid "Show timing?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:125
+#: pgadmin/tools/sqleditor/__init__.py:133
 msgid "Font size"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:129
+#: pgadmin/tools/sqleditor/__init__.py:137
 msgid ""
 "The font size to use for the SQL text boxes and editors. The value "
 "specified is in \"em\" units, in which 1 is the default relative font "
@@ -7952,52 +7813,52 @@ msgid ""
 "maximum 10."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:137
+#: pgadmin/tools/sqleditor/__init__.py:145
 msgid "Tab size"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:141
+#: pgadmin/tools/sqleditor/__init__.py:149
 msgid "The number of spaces per tab. Minimum 2, maximum 8."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:146
+#: pgadmin/tools/sqleditor/__init__.py:154
 msgid "Use spaces?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:148
+#: pgadmin/tools/sqleditor/__init__.py:156
 msgid ""
 "Specifies whether or not to insert spaces instead of tabs when the tab "
 "key is used."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:153
+#: pgadmin/tools/sqleditor/__init__.py:161
 msgid "Line wrapping?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:155
+#: pgadmin/tools/sqleditor/__init__.py:163
 msgid "Specifies whether or not to wrap SQL code in editor."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:190
-#: pgadmin/tools/sqleditor/__init__.py:288
-#: pgadmin/tools/sqleditor/__init__.py:849
+#: pgadmin/tools/sqleditor/__init__.py:198
+#: pgadmin/tools/sqleditor/__init__.py:296
+#: pgadmin/tools/sqleditor/__init__.py:853
 msgid "Transaction ID not found in the session."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:358
-#: pgadmin/tools/sqleditor/__init__.py:889
+#: pgadmin/tools/sqleditor/__init__.py:366
+#: pgadmin/tools/sqleditor/__init__.py:893
 msgid "Either Transaction object or Session object not found."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:608
+#: pgadmin/tools/sqleditor/__init__.py:609
 msgid "No primary key found for this object, so unable to save records."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:1250
+#: pgadmin/tools/sqleditor/__init__.py:1254
 msgid "File type not supported"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/__init__.py:1385
+#: pgadmin/tools/sqleditor/__init__.py:1389
 msgid "Transaction status check failed."
 msgstr ""
 
@@ -8013,173 +7874,165 @@ msgstr ""
 msgid "Data cannot be saved for the current object."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:245
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:180
 msgid "Data Output"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:275
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:210
 msgid "History"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:307
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1679
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:243
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1620
 msgid ""
 "The data has been modified, but not saved. Are you sure you wish to "
 "discard the changes?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:311
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:247
 msgid ""
 "The query has been modified, but not saved. Are you sure you wish to "
 "discard the changes?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:460
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1363
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1678
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2508
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:397
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1303
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1619
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2455
 msgid "Unsaved changes"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1364
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2509
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1304
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2456
 msgid "Are you sure you wish to discard the current changes?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1386
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1326
 msgid "Clear history"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1387
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1327
 msgid "Are you sure you wish to clear the history?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1703
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1644
 msgid "Initializing query execution."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1710
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3273
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1651
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3128
 msgid "Waiting for the query execution to complete..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1827
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1768
 #, python-format
 msgid "Query returned successfully in %s."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1863
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1967
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1804
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1908
 msgid "Loading data from the database server and rendering..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1974
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1915
 #, python-format
 msgid "Total query runtime: %s."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1975
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1916
 #, python-format
 msgid "%s rows retrieved."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2053
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:1994
 msgid "Retrieving information about the columns returned..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2279
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2220
 msgid "Row(s) deleted"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2283
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2224
 msgid "Operation failed"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2284
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2225
 msgid ""
 "There are unsaved changes in grid, Please save them first to avoid "
 "inconsistency in data"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2289
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2230
 msgid "Are you sure you wish to delete selected row(s)?"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2351
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2292
 msgid "Saving the updated data..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2407
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2348
 #, python-format
 msgid "%s."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2543
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2490
 msgid "Loading the file..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2591
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2538
 msgid "Saving the queries in the file..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2602
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2549
 msgid "File saved successfully."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2709
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2660
 msgid "Loading the existing filter options..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2779
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2849
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2730
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2800
 msgid "Applying the new filter..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2902
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2853
 msgid "Removing the filter..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2953
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:2904
 msgid "Applying the filter..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3051
-msgid "Error"
-msgstr ""
-
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3052
-msgid "Oops, unable to copy to clipboard"
-msgstr ""
-
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3165
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3020
 msgid "Setting the limit on the result..."
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3239
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3094
 msgid "Initializing the query execution!"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3600
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3606
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3455
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3461
 msgid "Error occurred while setting verbose option in explain"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3638
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3644
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3493
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3499
 msgid "Error occurred while setting costs option in explain"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3675
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3681
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3530
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3536
 msgid "Error occurred while setting buffers option in explain"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3711
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3717
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3566
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3572
 msgid "Error occurred while setting timing option in explain"
 msgstr ""
 
-#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3795
+#: pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js:3650
 msgid "Error occurred while getting query tool options "
 msgstr ""
 
@@ -8309,43 +8162,43 @@ msgstr ""
 msgid "Service Unavailable"
 msgstr ""
 
-#: pgadmin/utils/preferences.py:152
+#: pgadmin/utils/preferences.py:153
 msgid "Invalid value for a boolean option."
 msgstr ""
 
-#: pgadmin/utils/preferences.py:162
+#: pgadmin/utils/preferences.py:163
 msgid "Invalid value for an integer option."
 msgstr ""
 
-#: pgadmin/utils/preferences.py:173
+#: pgadmin/utils/preferences.py:174
 msgid "Invalid value for a numeric option."
 msgstr ""
 
-#: pgadmin/utils/preferences.py:179
+#: pgadmin/utils/preferences.py:180
 msgid "Invalid value for a date option."
 msgstr ""
 
-#: pgadmin/utils/preferences.py:185
+#: pgadmin/utils/preferences.py:186
 msgid "Invalid value for a datetime option."
 msgstr ""
 
-#: pgadmin/utils/preferences.py:188
+#: pgadmin/utils/preferences.py:194
 msgid "Invalid value for an options option."
 msgstr ""
 
-#: pgadmin/utils/preferences.py:507
+#: pgadmin/utils/preferences.py:513
 msgid "Could not fine the specified module."
 msgstr ""
 
-#: pgadmin/utils/preferences.py:512
+#: pgadmin/utils/preferences.py:518
 msgid "Module '{0}' is no longer in use."
 msgstr ""
 
-#: pgadmin/utils/preferences.py:525
+#: pgadmin/utils/preferences.py:531
 msgid "Module '{0}' does not have category with id '{1}'"
 msgstr ""
 
-#: pgadmin/utils/preferences.py:539
+#: pgadmin/utils/preferences.py:545
 msgid "Could not find the specified preference."
 msgstr ""
 
diff --git a/web/pgadmin/misc/__init__.py b/web/pgadmin/misc/__init__.py
index 80ecd431..fcc513de 100644
--- a/web/pgadmin/misc/__init__.py
+++ b/web/pgadmin/misc/__init__.py
@@ -29,7 +29,7 @@ class MiscModule(PgAdminModule):
         }, {
             'name': 'snap.svg',
             'path': url_for(
-                'misc.static', filename='explain/js/' + (
+                'misc.static', filename='explain/vendor/snap.svg/' + (
                     'snap.svg' if config.DEBUG else 'snap.svg-min'
                 )),
             'preloaded': False
diff --git a/web/pgadmin/misc/static/explain/js/snap.svg-min.js b/web/pgadmin/misc/static/explain/vendor/snap.svg/snap.svg-min.js
similarity index 100%
rename from web/pgadmin/misc/static/explain/js/snap.svg-min.js
rename to web/pgadmin/misc/static/explain/vendor/snap.svg/snap.svg-min.js
diff --git a/web/pgadmin/misc/static/explain/js/snap.svg.js b/web/pgadmin/misc/static/explain/vendor/snap.svg/snap.svg.js
similarity index 100%
rename from web/pgadmin/misc/static/explain/js/snap.svg.js
rename to web/pgadmin/misc/static/explain/vendor/snap.svg/snap.svg.js
diff --git a/web/pgadmin/preferences/templates/preferences/preferences.js b/web/pgadmin/preferences/templates/preferences/preferences.js
index 453d2072..07a21482 100644
--- a/web/pgadmin/preferences/templates/preferences/preferences.js
+++ b/web/pgadmin/preferences/templates/preferences/preferences.js
@@ -1,9 +1,9 @@
 define(
   ['jquery', 'alertify', 'pgadmin', 'underscore', 'backform', 'pgadmin.browser',
-   'sources/translate', 'pgadmin.backform'],
+   'sources/gettext', 'pgadmin.backform'],
 
   // This defines the Preference/Options Dialog for pgAdmin IV.
-  function($, alertify, pgAdmin, _, Backform, pgBrowser, t) {
+  function($, alertify, pgAdmin, _, Backform, pgBrowser, gettext) {
     pgAdmin = pgAdmin || window.pgAdmin || {};
 
     /*
@@ -191,8 +191,8 @@ define(
                     return 'input';
                 case 'boolean':
                   p.options = {
-                      onText: t('True'),
-                      offText: t('False'),
+                      onText: gettext('True'),
+                      offText: gettext('False'),
                       onColor: 'success',
                       offColor: 'default',
                       size: 'mini'
@@ -200,8 +200,8 @@ define(
                   return 'switch';
                 case 'node':
                     p.options = {
-                      onText: t('Show'),
-                      offText: t('Hide'),
+                      onText: gettext('Show'),
+                      offText: gettext('Hide'),
                       onColor: 'success',
                       offColor: 'default',
                       size: 'mini'
@@ -333,7 +333,7 @@ define(
                 "<div class='pg-el-xs-3 preferences_tree aciTree'></div>"
               ).append(
                 "<div class='pg-el-xs-9 preferences_content'>" +
-                t('Category is not selected.') +
+                gettext('Category is not selected.') +
                 "</div>"
               );
 
@@ -359,16 +359,16 @@ define(
                     attrs:{name:'dialog_help', type:'button', label: '{{ _('Preferences') }}',
                     url: '{{ url_for('help.static', filename='preferences.html') }}'}
                   },{
-                    text: t('OK'), key: 13, className: "btn btn-primary fa fa-lg fa-save pg-alertify-button"
+                    text: gettext('OK'), key: 13, className: "btn btn-primary fa fa-lg fa-save pg-alertify-button"
                   },{
-                    text: t('Cancel'), className: "btn btn-danger fa fa-lg fa-times pg-alertify-button"
+                    text: gettext('Cancel'), className: "btn btn-danger fa fa-lg fa-times pg-alertify-button"
                   }
                 ],
                 focus: { element: 0 },
                 options: {
                   padding: !1,
                   overflow: !1,
-                  title: t('Preferences'),
+                  title: gettext('Preferences'),
                   closableByDimmer: false,
                   modal:false,
                   pinnable: false
@@ -383,7 +383,7 @@ define(
                   return;
                }
 
-              if (e.button.text == t('OK')){
+              if (e.button.text == gettext('OK')){
                 preferences.updateAll();
               }
             },
diff --git a/web/pgadmin/settings/templates/settings/settings.js b/web/pgadmin/settings/templates/settings/settings.js
index 1c70b90d..50a6391d 100644
--- a/web/pgadmin/settings/templates/settings/settings.js
+++ b/web/pgadmin/settings/templates/settings/settings.js
@@ -1,8 +1,8 @@
 define(
-  ['jquery', 'alertify', 'pgadmin', 'underscore', 'backform', 'sources/translate', 'pgadmin.backform'],
+  ['jquery', 'alertify', 'pgadmin', 'underscore', 'backform', 'sources/gettext', 'pgadmin.backform'],
 
   // This defines the Preference/Options Dialog for pgAdmin IV.
-  function($, alertify, pgAdmin, _, Backform, t) {
+  function($, alertify, pgAdmin, _, Backform, gettext) {
     pgAdmin = pgAdmin || window.pgAdmin || {};
 
     /*
@@ -23,8 +23,8 @@ define(
       // and reload the window
       show: function() {
         var obj = this;
-        alertify.confirm(t('Reset layout'),
-          t('Are you sure you want to reset the current layout? This will cause the application to reload and any un-saved data will be lost.'),
+        alertify.confirm(gettext('Reset layout'),
+          gettext('Are you sure you want to reset the current layout? This will cause the application to reload and any un-saved data will be lost.'),
           function() {
             var reloadingIndicator = $('<div id="reloading-indicator"></div>');
             $('body').append(reloadingIndicator);
diff --git a/web/pgadmin/static/js/translate.js b/web/pgadmin/static/js/gettext.js
similarity index 94%
rename from web/pgadmin/static/js/translate.js
rename to web/pgadmin/static/js/gettext.js
index ac1164ee..780b60f3 100644
--- a/web/pgadmin/static/js/translate.js
+++ b/web/pgadmin/static/js/gettext.js
@@ -9,7 +9,7 @@ define(["translations"], function (translations) {
    * @param {String} text
    * @param {Object} substitutions
    */
-  return function translate(text, substitutions) {
+  return function gettext(text, substitutions) {
 
     var rawTranslation = translations[text] ? translations[text] : text;
 
diff --git a/web/pgadmin/static/js/selection/clipboard.js b/web/pgadmin/static/js/selection/clipboard.js
index 386ca0be..9e20da7e 100644
--- a/web/pgadmin/static/js/selection/clipboard.js
+++ b/web/pgadmin/static/js/selection/clipboard.js
@@ -1,4 +1,4 @@
-define(['sources/translate', 'alertify'], function (t, alertify) {
+define(['sources/gettext', 'alertify'], function (gettext, alertify) {
   var clipboard = {
     copyTextToClipboard: function (text) {
       var textArea = document.createElement("textarea");
@@ -50,8 +50,8 @@ define(['sources/translate', 'alertify'], function (t, alertify) {
         document.execCommand('copy');
       } catch (err) {
         alertify.alert(
-          t('Error'),
-          t('Oops, unable to copy to clipboard'));
+          gettext('Error'),
+          gettext('Oops, unable to copy to clipboard'));
       }
 
       document.body.removeChild(textArea);
diff --git a/web/regression/javascript/translate_spec.js b/web/regression/javascript/gettext_spec.js
similarity index 72%
rename from web/regression/javascript/translate_spec.js
rename to web/regression/javascript/gettext_spec.js
index 6b223c81..2ce98a23 100644
--- a/web/regression/javascript/translate_spec.js
+++ b/web/regression/javascript/gettext_spec.js
@@ -7,20 +7,20 @@
 //
 //////////////////////////////////////////////////////////////////////////
 
-define(["sources/translate", "translations"], function (translate, translations) {
+define(["sources/gettext", "translations"], function (gettext, translations) {
   describe("translate", function () {
     describe("when there is no translation", function () {
       it("returns the original string", function () {
-        expect(translate("something to be translated")).toEqual("something to be translated");
+        expect(gettext("something to be translated")).toEqual("something to be translated");
       });
 
       describe("when there are substitutions", function () {
         it("interpolates a substitution", function () {
-          expect(translate("translate text for %(person)s", {"person": "Sarah"})).toEqual("translate text for Sarah")
+          expect(gettext("translate text for %(person)s", {"person": "Sarah"})).toEqual("translate text for Sarah")
         });
 
         it("interpolates multiple substitutions", function () {
-          expect(translate("translate '%(text)s' for %(person)s",
+          expect(gettext("translate '%(text)s' for %(person)s",
             {
               "text": "constitution",
               "person": "Sarah"
@@ -38,12 +38,12 @@ define(["sources/translate", "translations"], function (translate, translations)
       });
 
       it("returns the translation", function () {
-        expect(translate("something to be translated")).toEqual("etwas zum uebersetzen");
+        expect(gettext("something to be translated")).toEqual("etwas zum uebersetzen");
       });
 
       describe("when there is a substitution", function () {
         it("interpolates the substitution", function () {
-          expect(translate("another translation for %(person)s", {"person": "Sarah"}))
+          expect(gettext("another translation for %(person)s", {"person": "Sarah"}))
             .toEqual("eine weitere Uebersetzung fuer Sarah");
         });
       });
-- 
2.12.0

