diff --git a/Gruntfile.js b/Gruntfile.js --- a/Gruntfile.js +++ b/Gruntfile.js @@ -19,6 +19,7 @@ module.exports = function(grunt) { '<%= dirs.js.src %>/mousetrap.js', '<%= dirs.js.src %>/moment.js', '<%= dirs.js.src %>/appenlight-client-0.4.1.min.js', + '<%= dirs.js.src %>/i18n_utils.js', // Plugins '<%= dirs.js.src %>/plugins/jquery.pjax.js', diff --git a/rhodecode/public/js/src/i18n_utils.js b/rhodecode/public/js/src/i18n_utils.js new file mode 100644 --- /dev/null +++ b/rhodecode/public/js/src/i18n_utils.js @@ -0,0 +1,36 @@ +// # Copyright (C) 2016-2016 RhodeCode GmbH +// # +// # This program is free software: you can redistribute it and/or modify +// # it under the terms of the GNU Affero General Public License, version 3 +// # (only), as published by the Free Software Foundation. +// # +// # This program is distributed in the hope that it will be useful, +// # but WITHOUT ANY WARRANTY; without even the implied warranty of +// # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// # GNU General Public License for more details. +// # +// # You should have received a copy of the GNU Affero General Public License +// # along with this program. If not, see . +// # +// # This program is dual-licensed. If you wish to learn more about the +// # RhodeCode Enterprise Edition, including its added features, Support services, +// # and proprietary license terms, please see https://rhodecode.com/licenses/ + +i18nLog = Logger.get('i18n'); + +var _gettext = function (s) { + if (_TM.hasOwnProperty(s)) { + return _TM[s]; + } + i18nLog.error( + 'String `' + s + '` was requested but cannot be ' + + 'found in translation table'); + return s +}; + +var _ngettext = function (singular, plural, n) { + if (n === 1) { + return _gettext(singular) + } + return _gettext(plural) +};