http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kl.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kl.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kl.js
new file mode 100644
index 0000000..d96f37a
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kl.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "ulloqeqqata-tungaa",
+      "ulloqeqqata-kingorna"
+    ],
+    "DAY": [
+      "sabaat",
+      "ataasinngorneq",
+      "marlunngorneq",
+      "pingasunngorneq",
+      "sisamanngorneq",
+      "tallimanngorneq",
+      "arfininngorneq"
+    ],
+    "ERANAMES": [
+      "Kristusip inunngornerata siornagut",
+      "Kristusip inunngornerata kingornagut"
+    ],
+    "ERAS": [
+      "Kr.in.si.",
+      "Kr.in.king."
+    ],
+    "MONTH": [
+      "januari",
+      "februari",
+      "martsi",
+      "aprili",
+      "maji",
+      "juni",
+      "juli",
+      "augustusi",
+      "septemberi",
+      "oktoberi",
+      "novemberi",
+      "decemberi"
+    ],
+    "SHORTDAY": [
+      "sab",
+      "ata",
+      "mar",
+      "pin",
+      "sis",
+      "tal",
+      "arf"
+    ],
+    "SHORTMONTH": [
+      "jan",
+      "feb",
+      "mar",
+      "apr",
+      "maj",
+      "jun",
+      "jul",
+      "aug",
+      "sep",
+      "okt",
+      "nov",
+      "dec"
+    ],
+    "fullDate": "EEEE dd MMMM y",
+    "longDate": "dd MMMM y",
+    "medium": "MMM dd, y h:mm:ss a",
+    "mediumDate": "MMM dd, y",
+    "mediumTime": "h:mm:ss a",
+    "short": "y-MM-dd h:mm a",
+    "shortDate": "y-MM-dd",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "kr",
+    "DECIMAL_SEP": ",",
+    "GROUP_SEP": ".",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "kl",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kln-ke.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kln-ke.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kln-ke.js
new file mode 100644
index 0000000..935a650
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kln-ke.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "Beet",
+      "Kemo"
+    ],
+    "DAY": [
+      "Betutab tisap",
+      "Betut netai",
+      "Betutab aeng\u2019",
+      "Betutab somok",
+      "Betutab ang\u2019wan",
+      "Betutab mut",
+      "Betutab lo"
+    ],
+    "ERANAMES": [
+      "Amait kesich Jesu",
+      "Kokakesich Jesu"
+    ],
+    "ERAS": [
+      "AM",
+      "KO"
+    ],
+    "MONTH": [
+      "Mulgul",
+      "Ng\u2019atyato",
+      "Kiptamo",
+      "Iwat kut",
+      "Ng\u2019eiyet",
+      "Waki",
+      "Roptui",
+      "Kipkogaga",
+      "Buret",
+      "Epeso",
+      "Kipsunde netai",
+      "Kipsunde nebo aeng"
+    ],
+    "SHORTDAY": [
+      "Tis",
+      "Tai",
+      "Aen",
+      "Som",
+      "Ang",
+      "Mut",
+      "Loh"
+    ],
+    "SHORTMONTH": [
+      "Mul",
+      "Nga",
+      "Kip",
+      "Iwa",
+      "Nge",
+      "Wak",
+      "Rop",
+      "Kog",
+      "Bur",
+      "Epe",
+      "Tai",
+      "Aen"
+    ],
+    "fullDate": "EEEE, d MMMM y",
+    "longDate": "d MMMM y",
+    "medium": "d MMM y h:mm:ss a",
+    "mediumDate": "d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd/MM/y h:mm a",
+    "shortDate": "dd/MM/y",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Ksh",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "kln-ke",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kln.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kln.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kln.js
new file mode 100644
index 0000000..3fc23fa
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kln.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "Beet",
+      "Kemo"
+    ],
+    "DAY": [
+      "Betutab tisap",
+      "Betut netai",
+      "Betutab aeng\u2019",
+      "Betutab somok",
+      "Betutab ang\u2019wan",
+      "Betutab mut",
+      "Betutab lo"
+    ],
+    "ERANAMES": [
+      "Amait kesich Jesu",
+      "Kokakesich Jesu"
+    ],
+    "ERAS": [
+      "AM",
+      "KO"
+    ],
+    "MONTH": [
+      "Mulgul",
+      "Ng\u2019atyato",
+      "Kiptamo",
+      "Iwat kut",
+      "Ng\u2019eiyet",
+      "Waki",
+      "Roptui",
+      "Kipkogaga",
+      "Buret",
+      "Epeso",
+      "Kipsunde netai",
+      "Kipsunde nebo aeng"
+    ],
+    "SHORTDAY": [
+      "Tis",
+      "Tai",
+      "Aen",
+      "Som",
+      "Ang",
+      "Mut",
+      "Loh"
+    ],
+    "SHORTMONTH": [
+      "Mul",
+      "Nga",
+      "Kip",
+      "Iwa",
+      "Nge",
+      "Wak",
+      "Rop",
+      "Kog",
+      "Bur",
+      "Epe",
+      "Tai",
+      "Aen"
+    ],
+    "fullDate": "EEEE, d MMMM y",
+    "longDate": "d MMMM y",
+    "medium": "d MMM y h:mm:ss a",
+    "mediumDate": "d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd/MM/y h:mm a",
+    "shortDate": "dd/MM/y",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Ksh",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "kln",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_km-kh.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_km-kh.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_km-kh.js
new file mode 100644
index 0000000..ddf1d29
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_km-kh.js
@@ -0,0 +1,105 @@
+'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": [
+      "\u1796\u17d2\u179a\u17b9\u1780",
+      "\u179b\u17d2\u1784\u17b6\u1785"
+    ],
+    "DAY": [
+      "\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799",
+      "\u1785\u1793\u17d2\u1791",
+      "\u17a2\u1784\u17d2\u1782\u17b6\u179a",
+      "\u1796\u17bb\u1792",
+      "\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd",
+      "\u179f\u17bb\u1780\u17d2\u179a",
+      "\u179f\u17c5\u179a\u17cd"
+    ],
+    "ERANAMES": [
+      
"\u1798\u17bb\u1793\u200b\u1782\u17d2\u179a\u17b7\u179f\u17d2\u178f\u179f\u1780\u179a\u17b6\u1787",
+      
"\u1782\u17d2\u179a\u17b7\u179f\u17d2\u178f\u179f\u1780\u179a\u17b6\u1787"
+    ],
+    "ERAS": [
+      "\u1798\u17bb\u1793 \u1782.\u179f.",
+      "\u1782.\u179f."
+    ],
+    "MONTH": [
+      "\u1798\u1780\u179a\u17b6",
+      "\u1780\u17bb\u1798\u17d2\u1797\u17c8",
+      "\u1798\u17b8\u1793\u17b6",
+      "\u1798\u17c1\u179f\u17b6",
+      "\u17a7\u179f\u1797\u17b6",
+      "\u1798\u17b7\u1790\u17bb\u1793\u17b6",
+      "\u1780\u1780\u17d2\u1780\u178a\u17b6",
+      "\u179f\u17b8\u17a0\u17b6",
+      "\u1780\u1789\u17d2\u1789\u17b6",
+      "\u178f\u17bb\u179b\u17b6",
+      "\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6",
+      "\u1792\u17d2\u1793\u17bc"
+    ],
+    "SHORTDAY": [
+      "\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799",
+      "\u1785\u1793\u17d2\u1791",
+      "\u17a2\u1784\u17d2\u1782\u17b6\u179a",
+      "\u1796\u17bb\u1792",
+      "\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd",
+      "\u179f\u17bb\u1780\u17d2\u179a",
+      "\u179f\u17c5\u179a\u17cd"
+    ],
+    "SHORTMONTH": [
+      "\u1798\u1780\u179a\u17b6",
+      "\u1780\u17bb\u1798\u17d2\u1797\u17c8",
+      "\u1798\u17b8\u1793\u17b6",
+      "\u1798\u17c1\u179f\u17b6",
+      "\u17a7\u179f\u1797\u17b6",
+      "\u1798\u17b7\u1790\u17bb\u1793\u17b6",
+      "\u1780\u1780\u17d2\u1780\u178a\u17b6",
+      "\u179f\u17b8\u17a0\u17b6",
+      "\u1780\u1789\u17d2\u1789\u17b6",
+      "\u178f\u17bb\u179b\u17b6",
+      "\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6",
+      "\u1792\u17d2\u1793\u17bc"
+    ],
+    "fullDate": "EEEE d MMMM y",
+    "longDate": "d MMMM y",
+    "medium": "d MMM y h:mm:ss a",
+    "mediumDate": "d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "d/M/yy h:mm a",
+    "shortDate": "d/M/yy",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Riel",
+    "DECIMAL_SEP": ",",
+    "GROUP_SEP": ".",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "km-kh",
+  "pluralCat": function(n, opt_precision) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_km.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_km.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_km.js
new file mode 100644
index 0000000..e26fe8d
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_km.js
@@ -0,0 +1,105 @@
+'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": [
+      "\u1796\u17d2\u179a\u17b9\u1780",
+      "\u179b\u17d2\u1784\u17b6\u1785"
+    ],
+    "DAY": [
+      "\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799",
+      "\u1785\u1793\u17d2\u1791",
+      "\u17a2\u1784\u17d2\u1782\u17b6\u179a",
+      "\u1796\u17bb\u1792",
+      "\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd",
+      "\u179f\u17bb\u1780\u17d2\u179a",
+      "\u179f\u17c5\u179a\u17cd"
+    ],
+    "ERANAMES": [
+      
"\u1798\u17bb\u1793\u200b\u1782\u17d2\u179a\u17b7\u179f\u17d2\u178f\u179f\u1780\u179a\u17b6\u1787",
+      
"\u1782\u17d2\u179a\u17b7\u179f\u17d2\u178f\u179f\u1780\u179a\u17b6\u1787"
+    ],
+    "ERAS": [
+      "\u1798\u17bb\u1793 \u1782.\u179f.",
+      "\u1782.\u179f."
+    ],
+    "MONTH": [
+      "\u1798\u1780\u179a\u17b6",
+      "\u1780\u17bb\u1798\u17d2\u1797\u17c8",
+      "\u1798\u17b8\u1793\u17b6",
+      "\u1798\u17c1\u179f\u17b6",
+      "\u17a7\u179f\u1797\u17b6",
+      "\u1798\u17b7\u1790\u17bb\u1793\u17b6",
+      "\u1780\u1780\u17d2\u1780\u178a\u17b6",
+      "\u179f\u17b8\u17a0\u17b6",
+      "\u1780\u1789\u17d2\u1789\u17b6",
+      "\u178f\u17bb\u179b\u17b6",
+      "\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6",
+      "\u1792\u17d2\u1793\u17bc"
+    ],
+    "SHORTDAY": [
+      "\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799",
+      "\u1785\u1793\u17d2\u1791",
+      "\u17a2\u1784\u17d2\u1782\u17b6\u179a",
+      "\u1796\u17bb\u1792",
+      "\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd",
+      "\u179f\u17bb\u1780\u17d2\u179a",
+      "\u179f\u17c5\u179a\u17cd"
+    ],
+    "SHORTMONTH": [
+      "\u1798\u1780\u179a\u17b6",
+      "\u1780\u17bb\u1798\u17d2\u1797\u17c8",
+      "\u1798\u17b8\u1793\u17b6",
+      "\u1798\u17c1\u179f\u17b6",
+      "\u17a7\u179f\u1797\u17b6",
+      "\u1798\u17b7\u1790\u17bb\u1793\u17b6",
+      "\u1780\u1780\u17d2\u1780\u178a\u17b6",
+      "\u179f\u17b8\u17a0\u17b6",
+      "\u1780\u1789\u17d2\u1789\u17b6",
+      "\u178f\u17bb\u179b\u17b6",
+      "\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6",
+      "\u1792\u17d2\u1793\u17bc"
+    ],
+    "fullDate": "EEEE d MMMM y",
+    "longDate": "d MMMM y",
+    "medium": "d MMM y h:mm:ss a",
+    "mediumDate": "d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "d/M/yy h:mm a",
+    "shortDate": "d/M/yy",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Riel",
+    "DECIMAL_SEP": ",",
+    "GROUP_SEP": ".",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "km",
+  "pluralCat": function(n, opt_precision) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kn-in.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kn-in.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kn-in.js
index 73d66f5..6ece2bf 100644
--- 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kn-in.js
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kn-in.js
@@ -4,11 +4,11 @@ var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", 
FEW: "few", MANY: "
 $provide.value("$locale", {
   "DATETIME_FORMATS": {
     "AMPMS": [
-      "am",
-      "pm"
+      "\u0caa\u0cc2\u0cb0\u0ccd\u0cb5\u0cbe\u0cb9\u0ccd\u0ca8",
+      "\u0c85\u0caa\u0cb0\u0cbe\u0cb9\u0ccd\u0ca8"
     ],
     "DAY": [
-      "\u0cb0\u0cb5\u0cbf\u0cb5\u0cbe\u0cb0",
+      "\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0",
       "\u0cb8\u0ccb\u0cae\u0cb5\u0cbe\u0cb0",
       "\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0",
       "\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0",
@@ -16,50 +16,58 @@ $provide.value("$locale", {
       "\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0",
       "\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0"
     ],
+    "ERANAMES": [
+      "\u0c95\u0ccd\u0cb0\u0cbf\u0cb8\u0ccd\u0ca4 
\u0caa\u0cc2\u0cb0\u0ccd\u0cb5",
+      "\u0c95\u0ccd\u0cb0\u0cbf\u0cb8\u0ccd\u0ca4 \u0cb6\u0c95"
+    ],
+    "ERAS": [
+      "\u0c95\u0ccd\u0cb0\u0cbf.\u0caa\u0cc2",
+      "\u0c95\u0ccd\u0cb0\u0cbf.\u0cb6"
+    ],
     "MONTH": [
-      "\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0",
-      "\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0",
+      "\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf",
+      "\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf",
       "\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd",
-      "\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd",
-      "\u0cae\u0cc6",
+      "\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd",
+      "\u0cae\u0cc7",
       "\u0c9c\u0cc2\u0ca8\u0ccd",
       "\u0c9c\u0cc1\u0cb2\u0cc8",
       "\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd",
-      "\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd",
+      "\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd",
       "\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd",
       "\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd",
       "\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd"
     ],
     "SHORTDAY": [
-      "\u0cb0.",
-      "\u0cb8\u0ccb.",
-      "\u0cae\u0c82.",
-      "\u0cac\u0cc1.",
-      "\u0c97\u0cc1.",
-      "\u0cb6\u0cc1.",
-      "\u0cb6\u0ca8\u0cbf."
+      "\u0cad\u0cbe\u0ca8\u0cc1",
+      "\u0cb8\u0ccb\u0cae",
+      "\u0cae\u0c82\u0c97\u0cb3",
+      "\u0cac\u0cc1\u0ca7",
+      "\u0c97\u0cc1\u0cb0\u0cc1",
+      "\u0cb6\u0cc1\u0c95\u0ccd\u0cb0",
+      "\u0cb6\u0ca8\u0cbf"
     ],
     "SHORTMONTH": [
-      "\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0",
-      "\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0",
+      "\u0c9c\u0ca8",
+      "\u0cab\u0cc6\u0cac\u0ccd\u0cb0",
       "\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd",
-      "\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd",
-      "\u0cae\u0cc6",
+      "\u0c8f\u0caa\u0ccd\u0cb0\u0cbf",
+      "\u0cae\u0cc7",
       "\u0c9c\u0cc2\u0ca8\u0ccd",
       "\u0c9c\u0cc1\u0cb2\u0cc8",
-      "\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd",
-      "\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd",
-      "\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd",
-      "\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd",
-      "\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd"
+      "\u0c86\u0c97",
+      "\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82",
+      "\u0c85\u0c95\u0ccd\u0c9f\u0ccb",
+      "\u0ca8\u0cb5\u0cc6\u0c82",
+      "\u0ca1\u0cbf\u0cb8\u0cc6\u0c82"
     ],
-    "fullDate": "EEEE d MMMM y",
-    "longDate": "d MMMM y",
-    "medium": "d MMM y hh:mm:ss a",
-    "mediumDate": "d MMM y",
+    "fullDate": "EEEE, MMMM d, y",
+    "longDate": "MMMM d, y",
+    "medium": "MMM d, y hh:mm:ss a",
+    "mediumDate": "MMM d, y",
     "mediumTime": "hh:mm:ss a",
-    "short": "d-M-yy hh:mm a",
-    "shortDate": "d-M-yy",
+    "short": "M/d/yy hh:mm a",
+    "shortDate": "M/d/yy",
     "shortTime": "hh:mm a"
   },
   "NUMBER_FORMATS": {
@@ -70,7 +78,6 @@ $provide.value("$locale", {
       {
         "gSize": 3,
         "lgSize": 3,
-        "macFrac": 0,
         "maxFrac": 3,
         "minFrac": 0,
         "minInt": 1,
@@ -82,18 +89,17 @@ $provide.value("$locale", {
       {
         "gSize": 3,
         "lgSize": 3,
-        "macFrac": 0,
         "maxFrac": 2,
         "minFrac": 2,
         "minInt": 1,
-        "negPre": "(\u00a4",
-        "negSuf": ")",
+        "negPre": "\u00a4-",
+        "negSuf": "",
         "posPre": "\u00a4",
         "posSuf": ""
       }
     ]
   },
   "id": "kn-in",
-  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  if (i == 0 || n 
== 1) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
 });
-}]);
\ No newline at end of file
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kn.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kn.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kn.js
index fa7c925..a977040 100644
--- 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kn.js
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kn.js
@@ -4,11 +4,11 @@ var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", 
FEW: "few", MANY: "
 $provide.value("$locale", {
   "DATETIME_FORMATS": {
     "AMPMS": [
-      "am",
-      "pm"
+      "\u0caa\u0cc2\u0cb0\u0ccd\u0cb5\u0cbe\u0cb9\u0ccd\u0ca8",
+      "\u0c85\u0caa\u0cb0\u0cbe\u0cb9\u0ccd\u0ca8"
     ],
     "DAY": [
-      "\u0cb0\u0cb5\u0cbf\u0cb5\u0cbe\u0cb0",
+      "\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0",
       "\u0cb8\u0ccb\u0cae\u0cb5\u0cbe\u0cb0",
       "\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0",
       "\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0",
@@ -16,50 +16,58 @@ $provide.value("$locale", {
       "\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0",
       "\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0"
     ],
+    "ERANAMES": [
+      "\u0c95\u0ccd\u0cb0\u0cbf\u0cb8\u0ccd\u0ca4 
\u0caa\u0cc2\u0cb0\u0ccd\u0cb5",
+      "\u0c95\u0ccd\u0cb0\u0cbf\u0cb8\u0ccd\u0ca4 \u0cb6\u0c95"
+    ],
+    "ERAS": [
+      "\u0c95\u0ccd\u0cb0\u0cbf.\u0caa\u0cc2",
+      "\u0c95\u0ccd\u0cb0\u0cbf.\u0cb6"
+    ],
     "MONTH": [
-      "\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0",
-      "\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0",
+      "\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf",
+      "\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf",
       "\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd",
-      "\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd",
-      "\u0cae\u0cc6",
+      "\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd",
+      "\u0cae\u0cc7",
       "\u0c9c\u0cc2\u0ca8\u0ccd",
       "\u0c9c\u0cc1\u0cb2\u0cc8",
       "\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd",
-      "\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd",
+      "\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd",
       "\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd",
       "\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd",
       "\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd"
     ],
     "SHORTDAY": [
-      "\u0cb0.",
-      "\u0cb8\u0ccb.",
-      "\u0cae\u0c82.",
-      "\u0cac\u0cc1.",
-      "\u0c97\u0cc1.",
-      "\u0cb6\u0cc1.",
-      "\u0cb6\u0ca8\u0cbf."
+      "\u0cad\u0cbe\u0ca8\u0cc1",
+      "\u0cb8\u0ccb\u0cae",
+      "\u0cae\u0c82\u0c97\u0cb3",
+      "\u0cac\u0cc1\u0ca7",
+      "\u0c97\u0cc1\u0cb0\u0cc1",
+      "\u0cb6\u0cc1\u0c95\u0ccd\u0cb0",
+      "\u0cb6\u0ca8\u0cbf"
     ],
     "SHORTMONTH": [
-      "\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0",
-      "\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0",
+      "\u0c9c\u0ca8",
+      "\u0cab\u0cc6\u0cac\u0ccd\u0cb0",
       "\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd",
-      "\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd",
-      "\u0cae\u0cc6",
+      "\u0c8f\u0caa\u0ccd\u0cb0\u0cbf",
+      "\u0cae\u0cc7",
       "\u0c9c\u0cc2\u0ca8\u0ccd",
       "\u0c9c\u0cc1\u0cb2\u0cc8",
-      "\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd",
-      "\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd",
-      "\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd",
-      "\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd",
-      "\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd"
+      "\u0c86\u0c97",
+      "\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82",
+      "\u0c85\u0c95\u0ccd\u0c9f\u0ccb",
+      "\u0ca8\u0cb5\u0cc6\u0c82",
+      "\u0ca1\u0cbf\u0cb8\u0cc6\u0c82"
     ],
-    "fullDate": "EEEE d MMMM y",
-    "longDate": "d MMMM y",
-    "medium": "d MMM y hh:mm:ss a",
-    "mediumDate": "d MMM y",
+    "fullDate": "EEEE, MMMM d, y",
+    "longDate": "MMMM d, y",
+    "medium": "MMM d, y hh:mm:ss a",
+    "mediumDate": "MMM d, y",
     "mediumTime": "hh:mm:ss a",
-    "short": "d-M-yy hh:mm a",
-    "shortDate": "d-M-yy",
+    "short": "M/d/yy hh:mm a",
+    "shortDate": "M/d/yy",
     "shortTime": "hh:mm a"
   },
   "NUMBER_FORMATS": {
@@ -70,7 +78,6 @@ $provide.value("$locale", {
       {
         "gSize": 3,
         "lgSize": 3,
-        "macFrac": 0,
         "maxFrac": 3,
         "minFrac": 0,
         "minInt": 1,
@@ -82,18 +89,17 @@ $provide.value("$locale", {
       {
         "gSize": 3,
         "lgSize": 3,
-        "macFrac": 0,
         "maxFrac": 2,
         "minFrac": 2,
         "minInt": 1,
-        "negPre": "(\u00a4",
-        "negSuf": ")",
+        "negPre": "\u00a4-",
+        "negSuf": "",
         "posPre": "\u00a4",
         "posSuf": ""
       }
     ]
   },
   "id": "kn",
-  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  if (i == 0 || n 
== 1) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
 });
-}]);
\ No newline at end of file
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko-kp.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko-kp.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko-kp.js
new file mode 100644
index 0000000..0db9d92
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko-kp.js
@@ -0,0 +1,105 @@
+'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": [
+      "\uc624\uc804",
+      "\uc624\ud6c4"
+    ],
+    "DAY": [
+      "\uc77c\uc694\uc77c",
+      "\uc6d4\uc694\uc77c",
+      "\ud654\uc694\uc77c",
+      "\uc218\uc694\uc77c",
+      "\ubaa9\uc694\uc77c",
+      "\uae08\uc694\uc77c",
+      "\ud1a0\uc694\uc77c"
+    ],
+    "ERANAMES": [
+      "\uae30\uc6d0\uc804",
+      "\uc11c\uae30"
+    ],
+    "ERAS": [
+      "\uae30\uc6d0\uc804",
+      "\uc11c\uae30"
+    ],
+    "MONTH": [
+      "1\uc6d4",
+      "2\uc6d4",
+      "3\uc6d4",
+      "4\uc6d4",
+      "5\uc6d4",
+      "6\uc6d4",
+      "7\uc6d4",
+      "8\uc6d4",
+      "9\uc6d4",
+      "10\uc6d4",
+      "11\uc6d4",
+      "12\uc6d4"
+    ],
+    "SHORTDAY": [
+      "\uc77c",
+      "\uc6d4",
+      "\ud654",
+      "\uc218",
+      "\ubaa9",
+      "\uae08",
+      "\ud1a0"
+    ],
+    "SHORTMONTH": [
+      "1\uc6d4",
+      "2\uc6d4",
+      "3\uc6d4",
+      "4\uc6d4",
+      "5\uc6d4",
+      "6\uc6d4",
+      "7\uc6d4",
+      "8\uc6d4",
+      "9\uc6d4",
+      "10\uc6d4",
+      "11\uc6d4",
+      "12\uc6d4"
+    ],
+    "fullDate": "y\ub144 M\uc6d4 d\uc77c EEEE",
+    "longDate": "y\ub144 M\uc6d4 d\uc77c",
+    "medium": "y. M. d. a h:mm:ss",
+    "mediumDate": "y. M. d.",
+    "mediumTime": "a h:mm:ss",
+    "short": "yy. M. d. a h:mm",
+    "shortDate": "yy. M. d.",
+    "shortTime": "a h:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u20a9KP",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "ko-kp",
+  "pluralCat": function(n, opt_precision) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko-kr.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko-kr.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko-kr.js
index 8de6031..5e00a46 100644
--- 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko-kr.js
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko-kr.js
@@ -16,6 +16,14 @@ $provide.value("$locale", {
       "\uae08\uc694\uc77c",
       "\ud1a0\uc694\uc77c"
     ],
+    "ERANAMES": [
+      "\uae30\uc6d0\uc804",
+      "\uc11c\uae30"
+    ],
+    "ERAS": [
+      "\uae30\uc6d0\uc804",
+      "\uc11c\uae30"
+    ],
     "MONTH": [
       "1\uc6d4",
       "2\uc6d4",
@@ -55,8 +63,8 @@ $provide.value("$locale", {
     ],
     "fullDate": "y\ub144 M\uc6d4 d\uc77c EEEE",
     "longDate": "y\ub144 M\uc6d4 d\uc77c",
-    "medium": "yyyy. M. d. a h:mm:ss",
-    "mediumDate": "yyyy. M. d.",
+    "medium": "y. M. d. a h:mm:ss",
+    "mediumDate": "y. M. d.",
     "mediumTime": "a h:mm:ss",
     "short": "yy. M. d. a h:mm",
     "shortDate": "yy. M. d.",
@@ -70,7 +78,6 @@ $provide.value("$locale", {
       {
         "gSize": 3,
         "lgSize": 3,
-        "macFrac": 0,
         "maxFrac": 3,
         "minFrac": 0,
         "minInt": 1,
@@ -82,18 +89,17 @@ $provide.value("$locale", {
       {
         "gSize": 3,
         "lgSize": 3,
-        "macFrac": 0,
         "maxFrac": 2,
         "minFrac": 2,
         "minInt": 1,
-        "negPre": "(\u00a4",
-        "negSuf": ")",
+        "negPre": "\u00a4-",
+        "negSuf": "",
         "posPre": "\u00a4",
         "posSuf": ""
       }
     ]
   },
   "id": "ko-kr",
-  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+  "pluralCat": function(n, opt_precision) {  return PLURAL_CATEGORY.OTHER;}
 });
-}]);
\ No newline at end of file
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko.js
index 51efdc5..b3be04d 100644
--- 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko.js
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ko.js
@@ -16,6 +16,14 @@ $provide.value("$locale", {
       "\uae08\uc694\uc77c",
       "\ud1a0\uc694\uc77c"
     ],
+    "ERANAMES": [
+      "\uae30\uc6d0\uc804",
+      "\uc11c\uae30"
+    ],
+    "ERAS": [
+      "\uae30\uc6d0\uc804",
+      "\uc11c\uae30"
+    ],
     "MONTH": [
       "1\uc6d4",
       "2\uc6d4",
@@ -55,8 +63,8 @@ $provide.value("$locale", {
     ],
     "fullDate": "y\ub144 M\uc6d4 d\uc77c EEEE",
     "longDate": "y\ub144 M\uc6d4 d\uc77c",
-    "medium": "yyyy. M. d. a h:mm:ss",
-    "mediumDate": "yyyy. M. d.",
+    "medium": "y. M. d. a h:mm:ss",
+    "mediumDate": "y. M. d.",
     "mediumTime": "a h:mm:ss",
     "short": "yy. M. d. a h:mm",
     "shortDate": "yy. M. d.",
@@ -70,7 +78,6 @@ $provide.value("$locale", {
       {
         "gSize": 3,
         "lgSize": 3,
-        "macFrac": 0,
         "maxFrac": 3,
         "minFrac": 0,
         "minInt": 1,
@@ -82,18 +89,17 @@ $provide.value("$locale", {
       {
         "gSize": 3,
         "lgSize": 3,
-        "macFrac": 0,
         "maxFrac": 2,
         "minFrac": 2,
         "minInt": 1,
-        "negPre": "(\u00a4",
-        "negSuf": ")",
+        "negPre": "\u00a4-",
+        "negSuf": "",
         "posPre": "\u00a4",
         "posSuf": ""
       }
     ]
   },
   "id": "ko",
-  "pluralCat": function (n) {  return PLURAL_CATEGORY.OTHER;}
+  "pluralCat": function(n, opt_precision) {  return PLURAL_CATEGORY.OTHER;}
 });
-}]);
\ No newline at end of file
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kok-in.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kok-in.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kok-in.js
new file mode 100644
index 0000000..754cfc1
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kok-in.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u092e.\u092a\u0942.",
+      "\u092e.\u0928\u0902."
+    ],
+    "DAY": [
+      "\u0906\u0926\u093f\u0924\u094d\u092f\u0935\u093e\u0930",
+      "\u0938\u094b\u092e\u0935\u093e\u0930",
+      "\u092e\u0902\u0917\u0933\u093e\u0930",
+      "\u092c\u0941\u0927\u0935\u093e\u0930",
+      "\u0917\u0941\u0930\u0941\u0935\u093e\u0930",
+      "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930",
+      "\u0936\u0928\u093f\u0935\u093e\u0930"
+    ],
+    "ERANAMES": [
+      
"\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u092a\u0942\u0930\u094d\u0935",
+      "\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u0936\u0916\u093e"
+    ],
+    "ERAS": [
+      
"\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u092a\u0942\u0930\u094d\u0935",
+      "\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u0936\u0916\u093e"
+    ],
+    "MONTH": [
+      "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940",
+      "\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940",
+      "\u092e\u093e\u0930\u094d\u091a",
+      "\u090f\u092a\u094d\u0930\u093f\u0932",
+      "\u092e\u0947",
+      "\u091c\u0942\u0928",
+      "\u091c\u0941\u0932\u0948",
+      "\u0913\u0917\u0938\u094d\u091f",
+      "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930",
+      "\u0913\u0915\u094d\u091f\u094b\u092c\u0930",
+      "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930",
+      "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"
+    ],
+    "SHORTDAY": [
+      "\u0930\u0935\u093f",
+      "\u0938\u094b\u092e",
+      "\u092e\u0902\u0917\u0933",
+      "\u092c\u0941\u0927",
+      "\u0917\u0941\u0930\u0941",
+      "\u0936\u0941\u0915\u094d\u0930",
+      "\u0936\u0928\u093f"
+    ],
+    "SHORTMONTH": [
+      "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940",
+      "\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940",
+      "\u092e\u093e\u0930\u094d\u091a",
+      "\u090f\u092a\u094d\u0930\u093f\u0932",
+      "\u092e\u0947",
+      "\u091c\u0942\u0928",
+      "\u091c\u0941\u0932\u0948",
+      "\u0913\u0917\u0938\u094d\u091f",
+      "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930",
+      "\u0913\u0915\u094d\u091f\u094b\u092c\u0930",
+      "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930",
+      "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"
+    ],
+    "fullDate": "EEEE d MMMM y",
+    "longDate": "d MMMM y",
+    "medium": "dd-MM-y h:mm:ss a",
+    "mediumDate": "dd-MM-y",
+    "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,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 2,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4\u00a0-",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "kok-in",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kok.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kok.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kok.js
new file mode 100644
index 0000000..9b97b03
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kok.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "\u092e.\u092a\u0942.",
+      "\u092e.\u0928\u0902."
+    ],
+    "DAY": [
+      "\u0906\u0926\u093f\u0924\u094d\u092f\u0935\u093e\u0930",
+      "\u0938\u094b\u092e\u0935\u093e\u0930",
+      "\u092e\u0902\u0917\u0933\u093e\u0930",
+      "\u092c\u0941\u0927\u0935\u093e\u0930",
+      "\u0917\u0941\u0930\u0941\u0935\u093e\u0930",
+      "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930",
+      "\u0936\u0928\u093f\u0935\u093e\u0930"
+    ],
+    "ERANAMES": [
+      
"\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u092a\u0942\u0930\u094d\u0935",
+      "\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u0936\u0916\u093e"
+    ],
+    "ERAS": [
+      
"\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u092a\u0942\u0930\u094d\u0935",
+      "\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u0936\u0916\u093e"
+    ],
+    "MONTH": [
+      "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940",
+      "\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940",
+      "\u092e\u093e\u0930\u094d\u091a",
+      "\u090f\u092a\u094d\u0930\u093f\u0932",
+      "\u092e\u0947",
+      "\u091c\u0942\u0928",
+      "\u091c\u0941\u0932\u0948",
+      "\u0913\u0917\u0938\u094d\u091f",
+      "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930",
+      "\u0913\u0915\u094d\u091f\u094b\u092c\u0930",
+      "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930",
+      "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"
+    ],
+    "SHORTDAY": [
+      "\u0930\u0935\u093f",
+      "\u0938\u094b\u092e",
+      "\u092e\u0902\u0917\u0933",
+      "\u092c\u0941\u0927",
+      "\u0917\u0941\u0930\u0941",
+      "\u0936\u0941\u0915\u094d\u0930",
+      "\u0936\u0928\u093f"
+    ],
+    "SHORTMONTH": [
+      "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940",
+      "\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940",
+      "\u092e\u093e\u0930\u094d\u091a",
+      "\u090f\u092a\u094d\u0930\u093f\u0932",
+      "\u092e\u0947",
+      "\u091c\u0942\u0928",
+      "\u091c\u0941\u0932\u0948",
+      "\u0913\u0917\u0938\u094d\u091f",
+      "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930",
+      "\u0913\u0915\u094d\u091f\u094b\u092c\u0930",
+      "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930",
+      "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"
+    ],
+    "fullDate": "EEEE d MMMM y",
+    "longDate": "d MMMM y",
+    "medium": "dd-MM-y h:mm:ss a",
+    "mediumDate": "dd-MM-y",
+    "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,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 2,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4\u00a0-",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "kok",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks-arab-in.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks-arab-in.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks-arab-in.js
new file mode 100644
index 0000000..bded78c
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks-arab-in.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "AM",
+      "PM"
+    ],
+    "DAY": [
+      "\u0627\u064e\u062a\u06be\u0648\u0627\u0631",
+      "\u0698\u0654\u0646\u065b\u062f\u0631\u0655\u0631\u0648\u0627\u0631",
+      "\u0628\u0648\u065a\u0645\u0648\u0627\u0631",
+      "\u0628\u0648\u062f\u0648\u0627\u0631",
+      "\u0628\u0631\u065b\u066e\u06ea\u0633\u0648\u0627\u0631",
+      "\u062c\u064f\u0645\u06c1",
+      "\u0628\u0679\u0648\u0627\u0631"
+    ],
+    "ERANAMES": [
+      "\u0642\u0628\u0655\u0644 \u0645\u0633\u06cc\u0656\u062d",
+      "\u0639\u06cc\u0656\u0633\u0648\u06cc \u0633\u0646\u06c1\u0655"
+    ],
+    "ERAS": [
+      "\u0628\u06cc \u0633\u06cc",
+      "\u0627\u06d2 \u0688\u06cc"
+    ],
+    "MONTH": [
+      "\u062c\u0646\u0624\u0631\u06cc",
+      "\u0641\u0631\u0624\u0631\u06cc",
+      "\u0645\u0627\u0631\u0655\u0686",
+      "\u0627\u067e\u0631\u06cc\u0644",
+      "\u0645\u06cc\u0654",
+      "\u062c\u0648\u0657\u0646",
+      "\u062c\u0648\u0657\u0644\u0627\u06cc\u06cc",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0657\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "SHORTDAY": [
+      "\u0622\u062a\u06be\u0648\u0627\u0631",
+      "\u0698\u0654\u0646\u065b\u062f\u0655\u0631\u0648\u0627\u0631",
+      "\u0628\u0648\u065a\u0645\u0648\u0627\u0631",
+      "\u0628\u0648\u062f\u0648\u0627\u0631",
+      "\u0628\u0631\u065b\u066e\u06ea\u0633\u0648\u0627\u0631",
+      "\u062c\u064f\u0645\u06c1",
+      "\u0628\u0679\u0648\u0627\u0631"
+    ],
+    "SHORTMONTH": [
+      "\u062c\u0646\u0624\u0631\u06cc",
+      "\u0641\u0631\u0624\u0631\u06cc",
+      "\u0645\u0627\u0631\u0655\u0686",
+      "\u0627\u067e\u0631\u06cc\u0644",
+      "\u0645\u06cc\u0654",
+      "\u062c\u0648\u0657\u0646",
+      "\u062c\u0648\u0657\u0644\u0627\u06cc\u06cc",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0657\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "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": "\u20b9",
+    "DECIMAL_SEP": "\u066b",
+    "GROUP_SEP": "\u066c",
+    "PATTERNS": [
+      {
+        "gSize": 2,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 2,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4\u00a0-",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "ks-arab-in",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks-arab.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks-arab.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks-arab.js
new file mode 100644
index 0000000..e8a7b92
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks-arab.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "AM",
+      "PM"
+    ],
+    "DAY": [
+      "\u0627\u064e\u062a\u06be\u0648\u0627\u0631",
+      "\u0698\u0654\u0646\u065b\u062f\u0631\u0655\u0631\u0648\u0627\u0631",
+      "\u0628\u0648\u065a\u0645\u0648\u0627\u0631",
+      "\u0628\u0648\u062f\u0648\u0627\u0631",
+      "\u0628\u0631\u065b\u066e\u06ea\u0633\u0648\u0627\u0631",
+      "\u062c\u064f\u0645\u06c1",
+      "\u0628\u0679\u0648\u0627\u0631"
+    ],
+    "ERANAMES": [
+      "\u0642\u0628\u0655\u0644 \u0645\u0633\u06cc\u0656\u062d",
+      "\u0639\u06cc\u0656\u0633\u0648\u06cc \u0633\u0646\u06c1\u0655"
+    ],
+    "ERAS": [
+      "\u0628\u06cc \u0633\u06cc",
+      "\u0627\u06d2 \u0688\u06cc"
+    ],
+    "MONTH": [
+      "\u062c\u0646\u0624\u0631\u06cc",
+      "\u0641\u0631\u0624\u0631\u06cc",
+      "\u0645\u0627\u0631\u0655\u0686",
+      "\u0627\u067e\u0631\u06cc\u0644",
+      "\u0645\u06cc\u0654",
+      "\u062c\u0648\u0657\u0646",
+      "\u062c\u0648\u0657\u0644\u0627\u06cc\u06cc",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0657\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "SHORTDAY": [
+      "\u0622\u062a\u06be\u0648\u0627\u0631",
+      "\u0698\u0654\u0646\u065b\u062f\u0655\u0631\u0648\u0627\u0631",
+      "\u0628\u0648\u065a\u0645\u0648\u0627\u0631",
+      "\u0628\u0648\u062f\u0648\u0627\u0631",
+      "\u0628\u0631\u065b\u066e\u06ea\u0633\u0648\u0627\u0631",
+      "\u062c\u064f\u0645\u06c1",
+      "\u0628\u0679\u0648\u0627\u0631"
+    ],
+    "SHORTMONTH": [
+      "\u062c\u0646\u0624\u0631\u06cc",
+      "\u0641\u0631\u0624\u0631\u06cc",
+      "\u0645\u0627\u0631\u0655\u0686",
+      "\u0627\u067e\u0631\u06cc\u0644",
+      "\u0645\u06cc\u0654",
+      "\u062c\u0648\u0657\u0646",
+      "\u062c\u0648\u0657\u0644\u0627\u06cc\u06cc",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0657\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "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": "\u20ac",
+    "DECIMAL_SEP": "\u066b",
+    "GROUP_SEP": "\u066c",
+    "PATTERNS": [
+      {
+        "gSize": 2,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 2,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4\u00a0-",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "ks-arab",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks.js
new file mode 100644
index 0000000..5fd476d
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ks.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "AM",
+      "PM"
+    ],
+    "DAY": [
+      "\u0627\u064e\u062a\u06be\u0648\u0627\u0631",
+      "\u0698\u0654\u0646\u065b\u062f\u0631\u0655\u0631\u0648\u0627\u0631",
+      "\u0628\u0648\u065a\u0645\u0648\u0627\u0631",
+      "\u0628\u0648\u062f\u0648\u0627\u0631",
+      "\u0628\u0631\u065b\u066e\u06ea\u0633\u0648\u0627\u0631",
+      "\u062c\u064f\u0645\u06c1",
+      "\u0628\u0679\u0648\u0627\u0631"
+    ],
+    "ERANAMES": [
+      "\u0642\u0628\u0655\u0644 \u0645\u0633\u06cc\u0656\u062d",
+      "\u0639\u06cc\u0656\u0633\u0648\u06cc \u0633\u0646\u06c1\u0655"
+    ],
+    "ERAS": [
+      "\u0628\u06cc \u0633\u06cc",
+      "\u0627\u06d2 \u0688\u06cc"
+    ],
+    "MONTH": [
+      "\u062c\u0646\u0624\u0631\u06cc",
+      "\u0641\u0631\u0624\u0631\u06cc",
+      "\u0645\u0627\u0631\u0655\u0686",
+      "\u0627\u067e\u0631\u06cc\u0644",
+      "\u0645\u06cc\u0654",
+      "\u062c\u0648\u0657\u0646",
+      "\u062c\u0648\u0657\u0644\u0627\u06cc\u06cc",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0657\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "SHORTDAY": [
+      "\u0622\u062a\u06be\u0648\u0627\u0631",
+      "\u0698\u0654\u0646\u065b\u062f\u0655\u0631\u0648\u0627\u0631",
+      "\u0628\u0648\u065a\u0645\u0648\u0627\u0631",
+      "\u0628\u0648\u062f\u0648\u0627\u0631",
+      "\u0628\u0631\u065b\u066e\u06ea\u0633\u0648\u0627\u0631",
+      "\u062c\u064f\u0645\u06c1",
+      "\u0628\u0679\u0648\u0627\u0631"
+    ],
+    "SHORTMONTH": [
+      "\u062c\u0646\u0624\u0631\u06cc",
+      "\u0641\u0631\u0624\u0631\u06cc",
+      "\u0645\u0627\u0631\u0655\u0686",
+      "\u0627\u067e\u0631\u06cc\u0644",
+      "\u0645\u06cc\u0654",
+      "\u062c\u0648\u0657\u0646",
+      "\u062c\u0648\u0657\u0644\u0627\u06cc\u06cc",
+      "\u0627\u06af\u0633\u062a",
+      "\u0633\u062a\u0645\u0628\u0631",
+      "\u0627\u06a9\u062a\u0648\u0657\u0628\u0631",
+      "\u0646\u0648\u0645\u0628\u0631",
+      "\u062f\u0633\u0645\u0628\u0631"
+    ],
+    "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": "\u20b9",
+    "DECIMAL_SEP": "\u066b",
+    "GROUP_SEP": "\u066c",
+    "PATTERNS": [
+      {
+        "gSize": 2,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 2,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4\u00a0-",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "ks",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksb-tz.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksb-tz.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksb-tz.js
new file mode 100644
index 0000000..f9d1c6d
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksb-tz.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "makeo",
+      "nyiaghuo"
+    ],
+    "DAY": [
+      "Jumaapii",
+      "Jumaatatu",
+      "Jumaane",
+      "Jumaatano",
+      "Alhamisi",
+      "Ijumaa",
+      "Jumaamosi"
+    ],
+    "ERANAMES": [
+      "Kabla ya Klisto",
+      "Baada ya Klisto"
+    ],
+    "ERAS": [
+      "KK",
+      "BK"
+    ],
+    "MONTH": [
+      "Januali",
+      "Febluali",
+      "Machi",
+      "Aplili",
+      "Mei",
+      "Juni",
+      "Julai",
+      "Agosti",
+      "Septemba",
+      "Oktoba",
+      "Novemba",
+      "Desemba"
+    ],
+    "SHORTDAY": [
+      "Jpi",
+      "Jtt",
+      "Jmn",
+      "Jtn",
+      "Alh",
+      "Iju",
+      "Jmo"
+    ],
+    "SHORTMONTH": [
+      "Jan",
+      "Feb",
+      "Mac",
+      "Apr",
+      "Mei",
+      "Jun",
+      "Jul",
+      "Ago",
+      "Sep",
+      "Okt",
+      "Nov",
+      "Des"
+    ],
+    "fullDate": "EEEE, d MMMM y",
+    "longDate": "d MMMM y",
+    "medium": "d MMM y h:mm:ss a",
+    "mediumDate": "d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd/MM/y h:mm a",
+    "shortDate": "dd/MM/y",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "TSh",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "\u00a4",
+        "posPre": "",
+        "posSuf": "\u00a4"
+      }
+    ]
+  },
+  "id": "ksb-tz",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksb.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksb.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksb.js
new file mode 100644
index 0000000..f4b6b7d
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksb.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "makeo",
+      "nyiaghuo"
+    ],
+    "DAY": [
+      "Jumaapii",
+      "Jumaatatu",
+      "Jumaane",
+      "Jumaatano",
+      "Alhamisi",
+      "Ijumaa",
+      "Jumaamosi"
+    ],
+    "ERANAMES": [
+      "Kabla ya Klisto",
+      "Baada ya Klisto"
+    ],
+    "ERAS": [
+      "KK",
+      "BK"
+    ],
+    "MONTH": [
+      "Januali",
+      "Febluali",
+      "Machi",
+      "Aplili",
+      "Mei",
+      "Juni",
+      "Julai",
+      "Agosti",
+      "Septemba",
+      "Oktoba",
+      "Novemba",
+      "Desemba"
+    ],
+    "SHORTDAY": [
+      "Jpi",
+      "Jtt",
+      "Jmn",
+      "Jtn",
+      "Alh",
+      "Iju",
+      "Jmo"
+    ],
+    "SHORTMONTH": [
+      "Jan",
+      "Feb",
+      "Mac",
+      "Apr",
+      "Mei",
+      "Jun",
+      "Jul",
+      "Ago",
+      "Sep",
+      "Okt",
+      "Nov",
+      "Des"
+    ],
+    "fullDate": "EEEE, d MMMM y",
+    "longDate": "d MMMM y",
+    "medium": "d MMM y h:mm:ss a",
+    "mediumDate": "d MMM y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd/MM/y h:mm a",
+    "shortDate": "dd/MM/y",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "TSh",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "\u00a4",
+        "posPre": "",
+        "posSuf": "\u00a4"
+      }
+    ]
+  },
+  "id": "ksb",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksf-cm.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksf-cm.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksf-cm.js
new file mode 100644
index 0000000..531bf19
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksf-cm.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "s\u00e1r\u00faw\u00e1",
+      "c\u025b\u025b\u0301nko"
+    ],
+    "DAY": [
+      "s\u0254\u0301nd\u01dd",
+      "l\u01ddnd\u00ed",
+      "maad\u00ed",
+      "m\u025bkr\u025bd\u00ed",
+      "j\u01dd\u01ddd\u00ed",
+      "j\u00famb\u00e1",
+      "samd\u00ed"
+    ],
+    "ERANAMES": [
+      "di Y\u025b\u0301sus ak\u00e1 y\u00e1l\u025b",
+      "c\u00e1m\u025b\u025bn k\u01dd k\u01ddb\u0254pka Y"
+    ],
+    "ERAS": [
+      "d.Y.",
+      "k.Y."
+    ],
+    "MONTH": [
+      "\u014bw\u00ed\u00ed a nt\u0254\u0301nt\u0254",
+      "\u014bw\u00ed\u00ed ak\u01dd b\u025b\u0301\u025b",
+      "\u014bw\u00ed\u00ed ak\u01dd r\u00e1\u00e1",
+      "\u014bw\u00ed\u00ed ak\u01dd nin",
+      "\u014bw\u00ed\u00ed ak\u01dd t\u00e1an",
+      "\u014bw\u00ed\u00ed ak\u01dd t\u00e1af\u0254k",
+      "\u014bw\u00ed\u00ed ak\u01dd t\u00e1ab\u025b\u025b",
+      "\u014bw\u00ed\u00ed ak\u01dd t\u00e1araa",
+      "\u014bw\u00ed\u00ed ak\u01dd t\u00e1anin",
+      "\u014bw\u00ed\u00ed ak\u01dd nt\u025bk",
+      "\u014bw\u00ed\u00ed ak\u01dd nt\u025bk di b\u0254\u0301k",
+      "\u014bw\u00ed\u00ed ak\u01dd nt\u025bk di b\u025b\u0301\u025b"
+    ],
+    "SHORTDAY": [
+      "s\u0254\u0301n",
+      "l\u01ddn",
+      "maa",
+      "m\u025bk",
+      "j\u01dd\u01dd",
+      "j\u00fam",
+      "sam"
+    ],
+    "SHORTMONTH": [
+      "\u014b1",
+      "\u014b2",
+      "\u014b3",
+      "\u014b4",
+      "\u014b5",
+      "\u014b6",
+      "\u014b7",
+      "\u014b8",
+      "\u014b9",
+      "\u014b10",
+      "\u014b11",
+      "\u014b12"
+    ],
+    "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": "d/M/y HH:mm",
+    "shortDate": "d/M/y",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "FCFA",
+    "DECIMAL_SEP": ",",
+    "GROUP_SEP": "\u00a0",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "\u00a0\u00a4",
+        "posPre": "",
+        "posSuf": "\u00a0\u00a4"
+      }
+    ]
+  },
+  "id": "ksf-cm",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksf.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksf.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksf.js
new file mode 100644
index 0000000..3caef8b
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksf.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "s\u00e1r\u00faw\u00e1",
+      "c\u025b\u025b\u0301nko"
+    ],
+    "DAY": [
+      "s\u0254\u0301nd\u01dd",
+      "l\u01ddnd\u00ed",
+      "maad\u00ed",
+      "m\u025bkr\u025bd\u00ed",
+      "j\u01dd\u01ddd\u00ed",
+      "j\u00famb\u00e1",
+      "samd\u00ed"
+    ],
+    "ERANAMES": [
+      "di Y\u025b\u0301sus ak\u00e1 y\u00e1l\u025b",
+      "c\u00e1m\u025b\u025bn k\u01dd k\u01ddb\u0254pka Y"
+    ],
+    "ERAS": [
+      "d.Y.",
+      "k.Y."
+    ],
+    "MONTH": [
+      "\u014bw\u00ed\u00ed a nt\u0254\u0301nt\u0254",
+      "\u014bw\u00ed\u00ed ak\u01dd b\u025b\u0301\u025b",
+      "\u014bw\u00ed\u00ed ak\u01dd r\u00e1\u00e1",
+      "\u014bw\u00ed\u00ed ak\u01dd nin",
+      "\u014bw\u00ed\u00ed ak\u01dd t\u00e1an",
+      "\u014bw\u00ed\u00ed ak\u01dd t\u00e1af\u0254k",
+      "\u014bw\u00ed\u00ed ak\u01dd t\u00e1ab\u025b\u025b",
+      "\u014bw\u00ed\u00ed ak\u01dd t\u00e1araa",
+      "\u014bw\u00ed\u00ed ak\u01dd t\u00e1anin",
+      "\u014bw\u00ed\u00ed ak\u01dd nt\u025bk",
+      "\u014bw\u00ed\u00ed ak\u01dd nt\u025bk di b\u0254\u0301k",
+      "\u014bw\u00ed\u00ed ak\u01dd nt\u025bk di b\u025b\u0301\u025b"
+    ],
+    "SHORTDAY": [
+      "s\u0254\u0301n",
+      "l\u01ddn",
+      "maa",
+      "m\u025bk",
+      "j\u01dd\u01dd",
+      "j\u00fam",
+      "sam"
+    ],
+    "SHORTMONTH": [
+      "\u014b1",
+      "\u014b2",
+      "\u014b3",
+      "\u014b4",
+      "\u014b5",
+      "\u014b6",
+      "\u014b7",
+      "\u014b8",
+      "\u014b9",
+      "\u014b10",
+      "\u014b11",
+      "\u014b12"
+    ],
+    "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": "d/M/y HH:mm",
+    "shortDate": "d/M/y",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "FCFA",
+    "DECIMAL_SEP": ",",
+    "GROUP_SEP": "\u00a0",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "\u00a0\u00a4",
+        "posPre": "",
+        "posSuf": "\u00a0\u00a4"
+      }
+    ]
+  },
+  "id": "ksf",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksh-de.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksh-de.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksh-de.js
new file mode 100644
index 0000000..57e4fe9
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksh-de.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "Uhr v\u00f6rmiddaachs",
+      "Uhr nommendaachs"
+    ],
+    "DAY": [
+      "Sunndaach",
+      "Moondaach",
+      "Dinnsdaach",
+      "Metwoch",
+      "Dunnersdaach",
+      "Friidaach",
+      "Samsdaach"
+    ],
+    "ERANAMES": [
+      "v\u00fcr Chrestus",
+      "noh Chrestus"
+    ],
+    "ERAS": [
+      "v. Chr.",
+      "n. Chr."
+    ],
+    "MONTH": [
+      "Jannewa",
+      "F\u00e4browa",
+      "M\u00e4\u00e4z",
+      "Aprell",
+      "M\u00e4i",
+      "Juuni",
+      "Juuli",
+      "Oujo\u00df",
+      "Sept\u00e4mber",
+      "Oktoober",
+      "Nov\u00e4mber",
+      "Dez\u00e4mber"
+    ],
+    "SHORTDAY": [
+      "Su.",
+      "Mo.",
+      "Di.",
+      "Me.",
+      "Du.",
+      "Fr.",
+      "Sa."
+    ],
+    "SHORTMONTH": [
+      "Jan",
+      "F\u00e4b",
+      "M\u00e4z",
+      "Apr",
+      "M\u00e4i",
+      "Jun",
+      "Jul",
+      "Ouj",
+      "S\u00e4p",
+      "Okt",
+      "Nov",
+      "Dez"
+    ],
+    "fullDate": "EEEE, 'd\u00e4' d. MMMM y",
+    "longDate": "d. MMMM y",
+    "medium": "d. MMM. y HH:mm:ss",
+    "mediumDate": "d. MMM. y",
+    "mediumTime": "HH:mm:ss",
+    "short": "d. M. y HH:mm",
+    "shortDate": "d. M. y",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u20ac",
+    "DECIMAL_SEP": ",",
+    "GROUP_SEP": "\u00a0",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "\u00a0\u00a4",
+        "posPre": "",
+        "posSuf": "\u00a0\u00a4"
+      }
+    ]
+  },
+  "id": "ksh-de",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksh.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksh.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksh.js
new file mode 100644
index 0000000..65cfbc2
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_ksh.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "Uhr v\u00f6rmiddaachs",
+      "Uhr nommendaachs"
+    ],
+    "DAY": [
+      "Sunndaach",
+      "Moondaach",
+      "Dinnsdaach",
+      "Metwoch",
+      "Dunnersdaach",
+      "Friidaach",
+      "Samsdaach"
+    ],
+    "ERANAMES": [
+      "v\u00fcr Chrestus",
+      "noh Chrestus"
+    ],
+    "ERAS": [
+      "v. Chr.",
+      "n. Chr."
+    ],
+    "MONTH": [
+      "Jannewa",
+      "F\u00e4browa",
+      "M\u00e4\u00e4z",
+      "Aprell",
+      "M\u00e4i",
+      "Juuni",
+      "Juuli",
+      "Oujo\u00df",
+      "Sept\u00e4mber",
+      "Oktoober",
+      "Nov\u00e4mber",
+      "Dez\u00e4mber"
+    ],
+    "SHORTDAY": [
+      "Su.",
+      "Mo.",
+      "Di.",
+      "Me.",
+      "Du.",
+      "Fr.",
+      "Sa."
+    ],
+    "SHORTMONTH": [
+      "Jan",
+      "F\u00e4b",
+      "M\u00e4z",
+      "Apr",
+      "M\u00e4i",
+      "Jun",
+      "Jul",
+      "Ouj",
+      "S\u00e4p",
+      "Okt",
+      "Nov",
+      "Dez"
+    ],
+    "fullDate": "EEEE, 'd\u00e4' d. MMMM y",
+    "longDate": "d. MMMM y",
+    "medium": "d. MMM. y HH:mm:ss",
+    "mediumDate": "d. MMM. y",
+    "mediumTime": "HH:mm:ss",
+    "short": "d. M. y HH:mm",
+    "shortDate": "d. M. y",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u20ac",
+    "DECIMAL_SEP": ",",
+    "GROUP_SEP": "\u00a0",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "\u00a0\u00a4",
+        "posPre": "",
+        "posSuf": "\u00a0\u00a4"
+      }
+    ]
+  },
+  "id": "ksh",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kw-gb.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kw-gb.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kw-gb.js
new file mode 100644
index 0000000..1fa6a58
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kw-gb.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "a.m.",
+      "p.m."
+    ],
+    "DAY": [
+      "De Sul",
+      "De Lun",
+      "De Merth",
+      "De Merher",
+      "De Yow",
+      "De Gwener",
+      "De Sadorn"
+    ],
+    "ERANAMES": [
+      "RC",
+      "AD"
+    ],
+    "ERAS": [
+      "RC",
+      "AD"
+    ],
+    "MONTH": [
+      "Mys Genver",
+      "Mys Whevrel",
+      "Mys Merth",
+      "Mys Ebrel",
+      "Mys Me",
+      "Mys Efan",
+      "Mys Gortheren",
+      "Mye Est",
+      "Mys Gwyngala",
+      "Mys Hedra",
+      "Mys Du",
+      "Mys Kevardhu"
+    ],
+    "SHORTDAY": [
+      "Sul",
+      "Lun",
+      "Mth",
+      "Mhr",
+      "Yow",
+      "Gwe",
+      "Sad"
+    ],
+    "SHORTMONTH": [
+      "Gen",
+      "Whe",
+      "Mer",
+      "Ebr",
+      "Me",
+      "Efn",
+      "Gor",
+      "Est",
+      "Gwn",
+      "Hed",
+      "Du",
+      "Kev"
+    ],
+    "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/y HH:mm",
+    "shortDate": "dd/MM/y",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a3",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "kw-gb",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts/blob/d586fd50/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kw.js
----------------------------------------------------------------------
diff --git 
a/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kw.js
 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kw.js
new file mode 100644
index 0000000..87ce319
--- /dev/null
+++ 
b/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/i18n/angular-locale_kw.js
@@ -0,0 +1,123 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: 
"many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "a.m.",
+      "p.m."
+    ],
+    "DAY": [
+      "De Sul",
+      "De Lun",
+      "De Merth",
+      "De Merher",
+      "De Yow",
+      "De Gwener",
+      "De Sadorn"
+    ],
+    "ERANAMES": [
+      "RC",
+      "AD"
+    ],
+    "ERAS": [
+      "RC",
+      "AD"
+    ],
+    "MONTH": [
+      "Mys Genver",
+      "Mys Whevrel",
+      "Mys Merth",
+      "Mys Ebrel",
+      "Mys Me",
+      "Mys Efan",
+      "Mys Gortheren",
+      "Mye Est",
+      "Mys Gwyngala",
+      "Mys Hedra",
+      "Mys Du",
+      "Mys Kevardhu"
+    ],
+    "SHORTDAY": [
+      "Sul",
+      "Lun",
+      "Mth",
+      "Mhr",
+      "Yow",
+      "Gwe",
+      "Sad"
+    ],
+    "SHORTMONTH": [
+      "Gen",
+      "Whe",
+      "Mer",
+      "Ebr",
+      "Me",
+      "Efn",
+      "Gor",
+      "Est",
+      "Gwn",
+      "Hed",
+      "Du",
+      "Kev"
+    ],
+    "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/y HH:mm",
+    "shortDate": "dd/MM/y",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u00a3",
+    "DECIMAL_SEP": ".",
+    "GROUP_SEP": ",",
+    "PATTERNS": [
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 3,
+        "minFrac": 0,
+        "minInt": 1,
+        "negPre": "-",
+        "negSuf": "",
+        "posPre": "",
+        "posSuf": ""
+      },
+      {
+        "gSize": 3,
+        "lgSize": 3,
+        "maxFrac": 2,
+        "minFrac": 2,
+        "minInt": 1,
+        "negPre": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "kw",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, 
opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  
return PLURAL_CATEGORY.OTHER;}
+});
+}]);

Reply via email to