Added Dynamic Locale Support - MIFOSX-1037

This commit is contained in:
Gaurav Saini 2014-07-28 11:51:38 +05:30
parent 5c61d38f8e
commit af343721ff
11 changed files with 706 additions and 5 deletions

99
app/i18n/angular-locale_en.js vendored Normal file
View File

@ -0,0 +1,99 @@
'use strict';
angular.module("ngLocale", [], ["$provide", function($provide) {
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"AM",
"PM"
],
"DAY": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"MONTH": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"SHORTDAY": [
"Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat"
],
"SHORTMONTH": [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"
],
"fullDate": "EEEE, MMMM d, y",
"longDate": "MMMM d, y",
"medium": "MMM d, y h:mm:ss a",
"mediumDate": "MMM d, y",
"mediumTime": "h:mm:ss a",
"short": "M/d/yy h:mm a",
"shortDate": "M/d/yy",
"shortTime": "h:mm a"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "$",
"DECIMAL_SEP": ".",
"GROUP_SEP": ",",
"PATTERNS": [
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 3,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "",
"posPre": "",
"posSuf": ""
},
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "(\u00a4",
"negSuf": ")",
"posPre": "\u00a4",
"posSuf": ""
}
]
},
"id": "en",
"pluralCat": function (n) { if (n == 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}
});
}]);

99
app/i18n/angular-locale_es.js vendored Normal file
View File

@ -0,0 +1,99 @@
'use strict';
angular.module("ngLocale", [], ["$provide", function($provide) {
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"a.m.",
"p.m."
],
"DAY": [
"domingo",
"lunes",
"martes",
"mi\u00e9rcoles",
"jueves",
"viernes",
"s\u00e1bado"
],
"MONTH": [
"enero",
"febrero",
"marzo",
"abril",
"mayo",
"junio",
"julio",
"agosto",
"septiembre",
"octubre",
"noviembre",
"diciembre"
],
"SHORTDAY": [
"dom",
"lun",
"mar",
"mi\u00e9",
"jue",
"vie",
"s\u00e1b"
],
"SHORTMONTH": [
"ene",
"feb",
"mar",
"abr",
"may",
"jun",
"jul",
"ago",
"sep",
"oct",
"nov",
"dic"
],
"fullDate": "EEEE, d 'de' MMMM 'de' y",
"longDate": "d 'de' MMMM 'de' y",
"medium": "dd/MM/yyyy HH:mm:ss",
"mediumDate": "dd/MM/yyyy",
"mediumTime": "HH:mm:ss",
"short": "dd/MM/yy HH:mm",
"shortDate": "dd/MM/yy",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u20ac",
"DECIMAL_SEP": ",",
"GROUP_SEP": ".",
"PATTERNS": [
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 3,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "",
"posPre": "",
"posSuf": ""
},
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},
"id": "es",
"pluralCat": function (n) { if (n == 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}
});
}]);

99
app/i18n/angular-locale_fr.js vendored Normal file
View File

@ -0,0 +1,99 @@
'use strict';
angular.module("ngLocale", [], ["$provide", function($provide) {
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"AM",
"PM"
],
"DAY": [
"dimanche",
"lundi",
"mardi",
"mercredi",
"jeudi",
"vendredi",
"samedi"
],
"MONTH": [
"janvier",
"f\u00e9vrier",
"mars",
"avril",
"mai",
"juin",
"juillet",
"ao\u00fbt",
"septembre",
"octobre",
"novembre",
"d\u00e9cembre"
],
"SHORTDAY": [
"dim.",
"lun.",
"mar.",
"mer.",
"jeu.",
"ven.",
"sam."
],
"SHORTMONTH": [
"janv.",
"f\u00e9vr.",
"mars",
"avr.",
"mai",
"juin",
"juil.",
"ao\u00fbt",
"sept.",
"oct.",
"nov.",
"d\u00e9c."
],
"fullDate": "EEEE d MMMM y",
"longDate": "d MMMM y",
"medium": "d MMM y HH:mm:ss",
"mediumDate": "d MMM y",
"mediumTime": "HH:mm:ss",
"short": "dd/MM/yy HH:mm",
"shortDate": "dd/MM/yy",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u20ac",
"DECIMAL_SEP": ",",
"GROUP_SEP": "\u00a0",
"PATTERNS": [
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 3,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "",
"posPre": "",
"posSuf": ""
},
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "(",
"negSuf": "\u00a0\u00a4)",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},
"id": "fr",
"pluralCat": function (n) { if (n >= 0 && n <= 2 && n != 2) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}
});
}]);

99
app/i18n/angular-locale_hi.js vendored Normal file
View File

@ -0,0 +1,99 @@
'use strict';
angular.module("ngLocale", [], ["$provide", function($provide) {
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"am",
"pm"
],
"DAY": [
"\u0930\u0935\u093f\u0935\u093e\u0930",
"\u0938\u094b\u092e\u0935\u093e\u0930",
"\u092e\u0902\u0917\u0932\u0935\u093e\u0930",
"\u092c\u0941\u0927\u0935\u093e\u0930",
"\u092c\u0943\u0939\u0938\u094d\u092a\u0924\u093f\u0935\u093e\u0930",
"\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930",
"\u0936\u0928\u093f\u0935\u093e\u0930"
],
"MONTH": [
"\u091c\u0928\u0935\u0930\u0940",
"\u092b\u0930\u0935\u0930\u0940",
"\u092e\u093e\u0930\u094d\u091a",
"\u0905\u092a\u094d\u0930\u0948\u0932",
"\u092e\u0908",
"\u091c\u0942\u0928",
"\u091c\u0941\u0932\u093e\u0908",
"\u0905\u0917\u0938\u094d\u0924",
"\u0938\u093f\u0924\u092e\u094d\u092c\u0930",
"\u0905\u0915\u094d\u0924\u0942\u092c\u0930",
"\u0928\u0935\u092e\u094d\u092c\u0930",
"\u0926\u093f\u0938\u092e\u094d\u092c\u0930"
],
"SHORTDAY": [
"\u0930\u0935\u093f.",
"\u0938\u094b\u092e.",
"\u092e\u0902\u0917\u0932.",
"\u092c\u0941\u0927.",
"\u092c\u0943\u0939.",
"\u0936\u0941\u0915\u094d\u0930.",
"\u0936\u0928\u093f."
],
"SHORTMONTH": [
"\u091c\u0928\u0935\u0930\u0940",
"\u092b\u0930\u0935\u0930\u0940",
"\u092e\u093e\u0930\u094d\u091a",
"\u0905\u092a\u094d\u0930\u0948\u0932",
"\u092e\u0908",
"\u091c\u0942\u0928",
"\u091c\u0941\u0932\u093e\u0908",
"\u0905\u0917\u0938\u094d\u0924",
"\u0938\u093f\u0924\u092e\u094d\u092c\u0930",
"\u0905\u0915\u094d\u0924\u0942\u092c\u0930",
"\u0928\u0935\u092e\u094d\u092c\u0930",
"\u0926\u093f\u0938\u092e\u094d\u092c\u0930"
],
"fullDate": "EEEE, d MMMM y",
"longDate": "d MMMM y",
"medium": "dd-MM-yyyy h:mm:ss a",
"mediumDate": "dd-MM-yyyy",
"mediumTime": "h:mm:ss a",
"short": "d-M-yy h:mm a",
"shortDate": "d-M-yy",
"shortTime": "h:mm a"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u20b9",
"DECIMAL_SEP": ".",
"GROUP_SEP": ",",
"PATTERNS": [
{
"gSize": 2,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 3,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "",
"posPre": "",
"posSuf": ""
},
{
"gSize": 2,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "\u00a4\u00a0-",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
}
]
},
"id": "hi",
"pluralCat": function (n) { if (n == 0 || n == 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}
});
}]);

99
app/i18n/angular-locale_ka.js vendored Normal file
View File

@ -0,0 +1,99 @@
'use strict';
angular.module("ngLocale", [], ["$provide", function($provide) {
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"\u10d3\u10d8\u10da\u10d8\u10e1",
"\u10e1\u10d0\u10e6\u10d0\u10db\u10dd\u10e1"
],
"DAY": [
"\u10d9\u10d5\u10d8\u10e0\u10d0",
"\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8",
"\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8",
"\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8",
"\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8",
"\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8",
"\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8"
],
"MONTH": [
"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8",
"\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8",
"\u10db\u10d0\u10e0\u10e2\u10d8",
"\u10d0\u10de\u10e0\u10d8\u10da\u10d8",
"\u10db\u10d0\u10d8\u10e1\u10d8",
"\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8",
"\u10d8\u10d5\u10da\u10d8\u10e1\u10d8",
"\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd",
"\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8",
"\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8",
"\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8",
"\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8"
],
"SHORTDAY": [
"\u10d9\u10d5\u10d8",
"\u10dd\u10e0\u10e8",
"\u10e1\u10d0\u10db",
"\u10dd\u10d7\u10ee",
"\u10ee\u10e3\u10d7",
"\u10de\u10d0\u10e0",
"\u10e8\u10d0\u10d1"
],
"SHORTMONTH": [
"\u10d8\u10d0\u10dc",
"\u10d7\u10d4\u10d1",
"\u10db\u10d0\u10e0",
"\u10d0\u10de\u10e0",
"\u10db\u10d0\u10d8",
"\u10d8\u10d5\u10dc",
"\u10d8\u10d5\u10da",
"\u10d0\u10d2\u10d5",
"\u10e1\u10d4\u10e5",
"\u10dd\u10e5\u10e2",
"\u10dc\u10dd\u10d4",
"\u10d3\u10d4\u10d9"
],
"fullDate": "EEEE, dd MMMM, y",
"longDate": "d MMMM, y",
"medium": "d MMM, y HH:mm:ss",
"mediumDate": "d MMM, y",
"mediumTime": "HH:mm:ss",
"short": "dd.MM.yy HH:mm",
"shortDate": "dd.MM.yy",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "GEL",
"DECIMAL_SEP": ",",
"GROUP_SEP": "\u00a0",
"PATTERNS": [
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 3,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "",
"posPre": "",
"posSuf": ""
},
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},
"id": "ka",
"pluralCat": function (n, opt_precision) { if (n == 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}
});
}]);

99
app/i18n/angular-locale_pt.js vendored Normal file
View File

@ -0,0 +1,99 @@
'use strict';
angular.module("ngLocale", [], ["$provide", function($provide) {
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"AM",
"PM"
],
"DAY": [
"domingo",
"segunda-feira",
"ter\u00e7a-feira",
"quarta-feira",
"quinta-feira",
"sexta-feira",
"s\u00e1bado"
],
"MONTH": [
"janeiro",
"fevereiro",
"mar\u00e7o",
"abril",
"maio",
"junho",
"julho",
"agosto",
"setembro",
"outubro",
"novembro",
"dezembro"
],
"SHORTDAY": [
"dom",
"seg",
"ter",
"qua",
"qui",
"sex",
"s\u00e1b"
],
"SHORTMONTH": [
"jan",
"fev",
"mar",
"abr",
"mai",
"jun",
"jul",
"ago",
"set",
"out",
"nov",
"dez"
],
"fullDate": "EEEE, d 'de' MMMM 'de' y",
"longDate": "d 'de' MMMM 'de' y",
"medium": "dd/MM/yyyy HH:mm:ss",
"mediumDate": "dd/MM/yyyy",
"mediumTime": "HH:mm:ss",
"short": "dd/MM/yy HH:mm",
"shortDate": "dd/MM/yy",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "R$",
"DECIMAL_SEP": ",",
"GROUP_SEP": ".",
"PATTERNS": [
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 3,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "",
"posPre": "",
"posSuf": ""
},
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "(\u00a4",
"negSuf": ")",
"posPre": "\u00a4",
"posSuf": ""
}
]
},
"id": "pt",
"pluralCat": function (n) { if (n == 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}
});
}]);

99
app/i18n/angular-locale_zh-cn.js vendored Normal file
View File

@ -0,0 +1,99 @@
'use strict';
angular.module("ngLocale", [], ["$provide", function($provide) {
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"\u4e0a\u5348",
"\u4e0b\u5348"
],
"DAY": [
"\u661f\u671f\u65e5",
"\u661f\u671f\u4e00",
"\u661f\u671f\u4e8c",
"\u661f\u671f\u4e09",
"\u661f\u671f\u56db",
"\u661f\u671f\u4e94",
"\u661f\u671f\u516d"
],
"MONTH": [
"1\u6708",
"2\u6708",
"3\u6708",
"4\u6708",
"5\u6708",
"6\u6708",
"7\u6708",
"8\u6708",
"9\u6708",
"10\u6708",
"11\u6708",
"12\u6708"
],
"SHORTDAY": [
"\u5468\u65e5",
"\u5468\u4e00",
"\u5468\u4e8c",
"\u5468\u4e09",
"\u5468\u56db",
"\u5468\u4e94",
"\u5468\u516d"
],
"SHORTMONTH": [
"1\u6708",
"2\u6708",
"3\u6708",
"4\u6708",
"5\u6708",
"6\u6708",
"7\u6708",
"8\u6708",
"9\u6708",
"10\u6708",
"11\u6708",
"12\u6708"
],
"fullDate": "y\u5e74M\u6708d\u65e5EEEE",
"longDate": "y\u5e74M\u6708d\u65e5",
"medium": "yyyy-M-d ah:mm:ss",
"mediumDate": "yyyy-M-d",
"mediumTime": "ah:mm:ss",
"short": "yy-M-d ah:mm",
"shortDate": "yy-M-d",
"shortTime": "ah:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u00a5",
"DECIMAL_SEP": ".",
"GROUP_SEP": ",",
"PATTERNS": [
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 3,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "",
"posPre": "",
"posSuf": ""
},
{
"gSize": 3,
"lgSize": 3,
"macFrac": 0,
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "(\u00a4",
"negSuf": ")",
"posPre": "\u00a4",
"posSuf": ""
}
]
},
"id": "zh-cn",
"pluralCat": function (n) { return PLURAL_CATEGORY.OTHER;}
});
}]);

View File

@ -1,6 +1,6 @@
(function (module) {
mifosX.controllers = _.extend(module, {
MainController: function (scope, location, sessionManager, translate, $rootScope, localStorageService, keyboardManager, $idle) {
MainController: function (scope, location, sessionManager, translate, $rootScope, localStorageService, keyboardManager, $idle, tmhDynamicLocale) {
//hides loader
scope.domReady = true;
@ -115,10 +115,12 @@
for (var i in mifosX.models.Langs) {
if (mifosX.models.Langs[i].code == temp.code) {
scope.optlang = mifosX.models.Langs[i];
tmhDynamicLocale.set(mifosX.models.Langs[i].code);
}
}
} else {
scope.optlang = scope.langs[0];
tmhDynamicLocale.set(scope.langs[0].code);
}
translate.uses(scope.optlang.code);
@ -221,6 +223,7 @@
scope.changeLang = function (lang) {
translate.uses(lang.code);
localStorageService.add('Language', lang);
tmhDynamicLocale.set(lang.code);
};
sessionManager.restore(function (session) {
@ -242,6 +245,7 @@
'$rootScope',
'localStorageService',
'keyboardManager', '$idle',
'tmhDynamicLocale',
mifosX.controllers.MainController
]).run(function ($log) {
$log.info("MainController initialized");

View File

@ -30,7 +30,8 @@
'chosen.jquery.min': "../scripts/modules/chosen.jquery.min",
'frAngular': '../scripts/modules/KeyboardManager',
'modified.datepicker': '../scripts/modules/datepicker',
'Q': '../bower_components/q/q'
'Q': '../bower_components/q/q',
'tmh.dynamicLocale': '../bower_components/angular-dynamic-locale/tmhDynamicLocale'
},
shim: {
'angular': { exports: 'angular' },
@ -57,6 +58,7 @@
'frAngular': {deps: ['angular']},
'modified.datepicker': {deps: ['angular']},
'Q': {deps: ['angular']},
'tmh.dynamicLocale': {deps: ['angular']},
'mifosX': {
deps: [
'angular',
@ -81,7 +83,8 @@
'ngCsv',
'chosen.jquery.min',
'frAngular',
'Q'
'Q',
'tmh.dynamicLocale'
],
exports: 'mifosX'
}

View File

@ -2,7 +2,7 @@ var mifosX = (function (module) {
module.ng = {
config: angular.module('config_params', ['configurations']),
services: angular.module('MifosX_Services', ['ngResource']),
application: angular.module('MifosX_Application', ['MifosX_Services', 'config_params', 'webStorageModule', 'ui.bootstrap' , 'pascalprecht.translate', 'nvd3ChartDirectives', 'notificationWidget', 'angularFileUpload', 'modified.datepicker', 'ngRoute', 'ngSanitize', 'LocalStorageModule', 'ngIdle', 'ngCsv', 'frAngular'])
application: angular.module('MifosX_Application', ['MifosX_Services', 'config_params', 'webStorageModule', 'ui.bootstrap' , 'pascalprecht.translate', 'nvd3ChartDirectives', 'notificationWidget', 'angularFileUpload', 'modified.datepicker', 'ngRoute', 'ngSanitize', 'LocalStorageModule', 'ngIdle', 'ngCsv', 'frAngular', 'tmh.dynamicLocale'])
};
return module;
}(mifosX || {}));

View File

@ -23,7 +23,8 @@
"angular-sanitize": "v1.0.8",
"ckeditor": "",
"ng-idle":"",
"q":"v1.0.1"
"q":"v1.0.1",
"angular-dynamic-locale":""
},
"devDependencies": {
"jasmine": "1.3.1"