From fe1cfbce2fa4e718d6d4c2e7b3a1483c1877b841 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Thu, 29 Jun 2017 17:09:54 -0400 Subject: [PATCH] LP#1708291: introduce egI18N egI18N is a module that will serve as a grab-bag of functions related to I18N and L10N. The initial function it provides takes a acpl IDL object and returns a formatted name qualified by the org unit, with the underlying template accessible to the translation subsystem. Signed-off-by: Galen Charlton --- Open-ILS/src/templates/staff/base_js.tt2 | 2 ++ Open-ILS/web/js/ui/default/staff/Gruntfile.js | 1 + .../web/js/ui/default/staff/services/coresvc.js | 7 ++++--- Open-ILS/web/js/ui/default/staff/services/i18n.js | 22 ++++++++++++++++++++++ .../web/js/ui/default/staff/test/karma.conf.js | 1 + 5 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 Open-ILS/web/js/ui/default/staff/services/i18n.js diff --git a/Open-ILS/src/templates/staff/base_js.tt2 b/Open-ILS/src/templates/staff/base_js.tt2 index 82b662e432..88f9d15689 100644 --- a/Open-ILS/src/templates/staff/base_js.tt2 +++ b/Open-ILS/src/templates/staff/base_js.tt2 @@ -43,6 +43,7 @@ + @@ -87,6 +88,7 @@ s.OP_CHANGE_PERM_MESSAGE = "[% l('Another staff member with the above permission may authorize this specific action. Please notify your library administrator if you need this permission. If you feel you have received this exception in error, please inform your friendly Evergreen developers or helpdesk staff of the above permission.') %]"; s.PERM_OP_CHANGE_SUCCESS = "[% l('Permission Override Login Succeeded') %]"; s.PERM_OP_CHANGE_FAILURE = "[% l('Permission Override Login Failed') %]"; + s.LOCATION_NAME_OU_QUALIFIED = "[% l('{{location_name}} ({{owning_lib_shortname}})') %]"; }]); diff --git a/Open-ILS/web/js/ui/default/staff/Gruntfile.js b/Open-ILS/web/js/ui/default/staff/Gruntfile.js index e5941960fa..502f74dbda 100644 --- a/Open-ILS/web/js/ui/default/staff/Gruntfile.js +++ b/Open-ILS/web/js/ui/default/staff/Gruntfile.js @@ -168,6 +168,7 @@ module.exports = function(grunt) { 'services/ui.js', 'services/date.js', 'services/op_change.js', + 'services/i18n.js' ], dest: 'build/js/<%= pkg.name %>.<%= pkg.version %>.min.js' }, diff --git a/Open-ILS/web/js/ui/default/staff/services/coresvc.js b/Open-ILS/web/js/ui/default/staff/services/coresvc.js index f75477047a..c1218cc80a 100644 --- a/Open-ILS/web/js/ui/default/staff/services/coresvc.js +++ b/Open-ILS/web/js/ui/default/staff/services/coresvc.js @@ -10,10 +10,10 @@ angular.module('egCoreMod') .factory('egCore', ['egIDL','egNet','egEnv','egOrg','egPCRUD','egEvent','egAuth', 'egPerm','egHatch','egPrint','egStartup','egStrings','egAudio', - 'egDate', + 'egDate','egI18N', function(egIDL , egNet , egEnv , egOrg , egPCRUD , egEvent , egAuth , egPerm , egHatch , egPrint , egStartup , egStrings , egAudio , - egDate) { + egDate , egI18N) { return { idl : egIDL, @@ -29,7 +29,8 @@ function(egIDL , egNet , egEnv , egOrg , egPCRUD , egEvent , egAuth , startup : egStartup, strings : egStrings, audio : egAudio, - date : egDate + date : egDate, + i18n : egI18N }; }]); diff --git a/Open-ILS/web/js/ui/default/staff/services/i18n.js b/Open-ILS/web/js/ui/default/staff/services/i18n.js new file mode 100644 index 0000000000..2c521d0630 --- /dev/null +++ b/Open-ILS/web/js/ui/default/staff/services/i18n.js @@ -0,0 +1,22 @@ +/** + * egI18N : service for I18N and L10N functions + * + * This is a grab-bag of stuff related to I18N. + * + */ + +angular.module('egCoreMod') +.factory('egI18N', ['egStrings', + function(egStrings) { + return { + ou_qualified_location_name : function(loc) { + return egStrings.$replace( + egStrings.LOCATION_NAME_OU_QUALIFIED, + { + location_name : loc.name(), + owning_lib_shortname : loc.owning_lib().shortname() + } + ); + } + } +}]); diff --git a/Open-ILS/web/js/ui/default/staff/test/karma.conf.js b/Open-ILS/web/js/ui/default/staff/test/karma.conf.js index 87d673130d..900cb67ddf 100644 --- a/Open-ILS/web/js/ui/default/staff/test/karma.conf.js +++ b/Open-ILS/web/js/ui/default/staff/test/karma.conf.js @@ -45,6 +45,7 @@ module.exports = function(config){ 'services/grid.js', 'services/op_change.js', 'services/navbar.js', 'services/date.js', + 'services/i18n.js', // load app scripts 'app.js', 'circ/**/*.js', -- 2.11.0