You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by jo...@apache.org on 2015/10/05 20:06:09 UTC

[04/52] [abbrv] [partial] struts-examples git commit: Add new rest plugin and angularjs based example application with support for bean validation and multi language support

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta-my.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta-my.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta-my.js
new file mode 100644
index 0000000..3a9287a
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta-my.js
@@ -0,0 +1,110 @@
+'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": [
+      "\u0bae\u0bc1\u0bb1\u0bcd\u0baa\u0b95\u0bb2\u0bcd",
+      "\u0baa\u0bbf\u0bb1\u0bcd\u0baa\u0b95\u0bb2\u0bcd"
+    ],
+    "DAY": [
+      "\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1",
+      "\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+      "\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd",
+      "\u0baa\u0bc1\u0ba4\u0ba9\u0bcd",
+      "\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd",
+      "\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf",
+      "\u0b9a\u0ba9\u0bbf"
+    ],
+    "ERANAMES": [
+      "\u0b95\u0bbf\u0bb1\u0bbf\u0bb8\u0bcd\u0ba4\u0bc1\u0bb5\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd",
+      "\u0b85\u0ba9\u0bcb \u0b9f\u0bcb\u0bae\u0bbf\u0ba9\u0bbf"
+    ],
+    "ERAS": [
+      "\u0b95\u0bbf.\u0bae\u0bc1.",
+      "\u0b95\u0bbf.\u0baa\u0bbf."
+    ],
+    "FIRSTDAYOFWEEK": 0,
+    "MONTH": [
+      "\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf",
+      "\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf",
+      "\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd",
+      "\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd",
+      "\u0bae\u0bc7",
+      "\u0b9c\u0bc2\u0ba9\u0bcd",
+      "\u0b9c\u0bc2\u0bb2\u0bc8",
+      "\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd",
+      "\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd",
+      "\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd",
+      "\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd",
+      "\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd"
+    ],
+    "SHORTDAY": [
+      "\u0b9e\u0bbe",
+      "\u0ba4\u0bbf",
+      "\u0b9a\u0bc6",
+      "\u0baa\u0bc1",
+      "\u0bb5\u0bbf",
+      "\u0bb5\u0bc6",
+      "\u0b9a"
+    ],
+    "SHORTMONTH": [
+      "\u0b9c\u0ba9.",
+      "\u0baa\u0bbf\u0baa\u0bcd.",
+      "\u0bae\u0bbe\u0bb0\u0bcd.",
+      "\u0b8f\u0baa\u0bcd.",
+      "\u0bae\u0bc7",
+      "\u0b9c\u0bc2\u0ba9\u0bcd",
+      "\u0b9c\u0bc2\u0bb2\u0bc8",
+      "\u0b86\u0b95.",
+      "\u0b9a\u0bc6\u0baa\u0bcd.",
+      "\u0b85\u0b95\u0bcd.",
+      "\u0ba8\u0bb5.",
+      "\u0b9f\u0bbf\u0b9a."
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "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": "RM",
+    "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\u00a0",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "ta-my",
+  "pluralCat": function(n, opt_precision) {  if (n == 1) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta-sg.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta-sg.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta-sg.js
new file mode 100644
index 0000000..fc6a77d
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta-sg.js
@@ -0,0 +1,110 @@
+'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": [
+      "\u0bae\u0bc1\u0bb1\u0bcd\u0baa\u0b95\u0bb2\u0bcd",
+      "\u0baa\u0bbf\u0bb1\u0bcd\u0baa\u0b95\u0bb2\u0bcd"
+    ],
+    "DAY": [
+      "\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1",
+      "\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+      "\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd",
+      "\u0baa\u0bc1\u0ba4\u0ba9\u0bcd",
+      "\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd",
+      "\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf",
+      "\u0b9a\u0ba9\u0bbf"
+    ],
+    "ERANAMES": [
+      "\u0b95\u0bbf\u0bb1\u0bbf\u0bb8\u0bcd\u0ba4\u0bc1\u0bb5\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd",
+      "\u0b85\u0ba9\u0bcb \u0b9f\u0bcb\u0bae\u0bbf\u0ba9\u0bbf"
+    ],
+    "ERAS": [
+      "\u0b95\u0bbf.\u0bae\u0bc1.",
+      "\u0b95\u0bbf.\u0baa\u0bbf."
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf",
+      "\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf",
+      "\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd",
+      "\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd",
+      "\u0bae\u0bc7",
+      "\u0b9c\u0bc2\u0ba9\u0bcd",
+      "\u0b9c\u0bc2\u0bb2\u0bc8",
+      "\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd",
+      "\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd",
+      "\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd",
+      "\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd",
+      "\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd"
+    ],
+    "SHORTDAY": [
+      "\u0b9e\u0bbe",
+      "\u0ba4\u0bbf",
+      "\u0b9a\u0bc6",
+      "\u0baa\u0bc1",
+      "\u0bb5\u0bbf",
+      "\u0bb5\u0bc6",
+      "\u0b9a"
+    ],
+    "SHORTMONTH": [
+      "\u0b9c\u0ba9.",
+      "\u0baa\u0bbf\u0baa\u0bcd.",
+      "\u0bae\u0bbe\u0bb0\u0bcd.",
+      "\u0b8f\u0baa\u0bcd.",
+      "\u0bae\u0bc7",
+      "\u0b9c\u0bc2\u0ba9\u0bcd",
+      "\u0b9c\u0bc2\u0bb2\u0bc8",
+      "\u0b86\u0b95.",
+      "\u0b9a\u0bc6\u0baa\u0bcd.",
+      "\u0b85\u0b95\u0bcd.",
+      "\u0ba8\u0bb5.",
+      "\u0b9f\u0bbf\u0b9a."
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "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": "$",
+    "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\u00a0",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "ta-sg",
+  "pluralCat": function(n, opt_precision) {  if (n == 1) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta.js
new file mode 100644
index 0000000..6272624
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ta.js
@@ -0,0 +1,110 @@
+'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": [
+      "\u0bae\u0bc1\u0bb1\u0bcd\u0baa\u0b95\u0bb2\u0bcd",
+      "\u0baa\u0bbf\u0bb1\u0bcd\u0baa\u0b95\u0bb2\u0bcd"
+    ],
+    "DAY": [
+      "\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1",
+      "\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+      "\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd",
+      "\u0baa\u0bc1\u0ba4\u0ba9\u0bcd",
+      "\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd",
+      "\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf",
+      "\u0b9a\u0ba9\u0bbf"
+    ],
+    "ERANAMES": [
+      "\u0b95\u0bbf\u0bb1\u0bbf\u0bb8\u0bcd\u0ba4\u0bc1\u0bb5\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd",
+      "\u0b85\u0ba9\u0bcb \u0b9f\u0bcb\u0bae\u0bbf\u0ba9\u0bbf"
+    ],
+    "ERAS": [
+      "\u0b95\u0bbf.\u0bae\u0bc1.",
+      "\u0b95\u0bbf.\u0baa\u0bbf."
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf",
+      "\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf",
+      "\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd",
+      "\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd",
+      "\u0bae\u0bc7",
+      "\u0b9c\u0bc2\u0ba9\u0bcd",
+      "\u0b9c\u0bc2\u0bb2\u0bc8",
+      "\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd",
+      "\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd",
+      "\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd",
+      "\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd",
+      "\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd"
+    ],
+    "SHORTDAY": [
+      "\u0b9e\u0bbe",
+      "\u0ba4\u0bbf",
+      "\u0b9a\u0bc6",
+      "\u0baa\u0bc1",
+      "\u0bb5\u0bbf",
+      "\u0bb5\u0bc6",
+      "\u0b9a"
+    ],
+    "SHORTMONTH": [
+      "\u0b9c\u0ba9.",
+      "\u0baa\u0bbf\u0baa\u0bcd.",
+      "\u0bae\u0bbe\u0bb0\u0bcd.",
+      "\u0b8f\u0baa\u0bcd.",
+      "\u0bae\u0bc7",
+      "\u0b9c\u0bc2\u0ba9\u0bcd",
+      "\u0b9c\u0bc2\u0bb2\u0bc8",
+      "\u0b86\u0b95.",
+      "\u0b9a\u0bc6\u0baa\u0bcd.",
+      "\u0b85\u0b95\u0bcd.",
+      "\u0ba8\u0bb5.",
+      "\u0b9f\u0bbf\u0b9a."
+    ],
+    "WEEKENDRANGE": [
+      6,
+      6
+    ],
+    "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": "\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": "ta",
+  "pluralCat": function(n, opt_precision) {  if (n == 1) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_te-in.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_te-in.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_te-in.js
new file mode 100644
index 0000000..fccdcfe
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_te-in.js
@@ -0,0 +1,110 @@
+'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": [
+      "\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02"
+    ],
+    "ERANAMES": [
+      "\u0c15\u0c4d\u0c30\u0c40\u0c38\u0c4d\u0c24\u0c41 \u0c2a\u0c42\u0c30\u0c4d\u0c35\u0c02",
+      "\u0c15\u0c4d\u0c30\u0c40\u0c38\u0c4d\u0c24\u0c41 \u0c36\u0c15\u0c02"
+    ],
+    "ERAS": [
+      "\u0c15\u0c4d\u0c30\u0c40\u0c2a\u0c42",
+      "\u0c15\u0c4d\u0c30\u0c40\u0c36"
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "\u0c1c\u0c28\u0c35\u0c30\u0c3f",
+      "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f",
+      "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f",
+      "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d",
+      "\u0c2e\u0c47",
+      "\u0c1c\u0c42\u0c28\u0c4d",
+      "\u0c1c\u0c41\u0c32\u0c48",
+      "\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41",
+      "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d",
+      "\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d",
+      "\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d",
+      "\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"
+    ],
+    "SHORTDAY": [
+      "\u0c06\u0c26\u0c3f",
+      "\u0c38\u0c4b\u0c2e",
+      "\u0c2e\u0c02\u0c17\u0c33",
+      "\u0c2c\u0c41\u0c27",
+      "\u0c17\u0c41\u0c30\u0c41",
+      "\u0c36\u0c41\u0c15\u0c4d\u0c30",
+      "\u0c36\u0c28\u0c3f"
+    ],
+    "SHORTMONTH": [
+      "\u0c1c\u0c28",
+      "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30",
+      "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f",
+      "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f",
+      "\u0c2e\u0c47",
+      "\u0c1c\u0c42\u0c28\u0c4d",
+      "\u0c1c\u0c41\u0c32\u0c48",
+      "\u0c06\u0c17",
+      "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02",
+      "\u0c05\u0c15\u0c4d\u0c1f\u0c4b",
+      "\u0c28\u0c35\u0c02",
+      "\u0c21\u0c3f\u0c38\u0c46\u0c02"
+    ],
+    "WEEKENDRANGE": [
+      6,
+      6
+    ],
+    "fullDate": "d, MMMM y, EEEE",
+    "longDate": "d MMMM, y",
+    "medium": "d MMM, y h:mm:ss a",
+    "mediumDate": "d MMM, y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd-MM-yy h:mm a",
+    "shortDate": "dd-MM-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",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "te-in",
+  "pluralCat": function(n, opt_precision) {  if (n == 1) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_te.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_te.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_te.js
new file mode 100644
index 0000000..a3c493f
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_te.js
@@ -0,0 +1,110 @@
+'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": [
+      "\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02",
+      "\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02"
+    ],
+    "ERANAMES": [
+      "\u0c15\u0c4d\u0c30\u0c40\u0c38\u0c4d\u0c24\u0c41 \u0c2a\u0c42\u0c30\u0c4d\u0c35\u0c02",
+      "\u0c15\u0c4d\u0c30\u0c40\u0c38\u0c4d\u0c24\u0c41 \u0c36\u0c15\u0c02"
+    ],
+    "ERAS": [
+      "\u0c15\u0c4d\u0c30\u0c40\u0c2a\u0c42",
+      "\u0c15\u0c4d\u0c30\u0c40\u0c36"
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "\u0c1c\u0c28\u0c35\u0c30\u0c3f",
+      "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f",
+      "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f",
+      "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d",
+      "\u0c2e\u0c47",
+      "\u0c1c\u0c42\u0c28\u0c4d",
+      "\u0c1c\u0c41\u0c32\u0c48",
+      "\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41",
+      "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d",
+      "\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d",
+      "\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d",
+      "\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"
+    ],
+    "SHORTDAY": [
+      "\u0c06\u0c26\u0c3f",
+      "\u0c38\u0c4b\u0c2e",
+      "\u0c2e\u0c02\u0c17\u0c33",
+      "\u0c2c\u0c41\u0c27",
+      "\u0c17\u0c41\u0c30\u0c41",
+      "\u0c36\u0c41\u0c15\u0c4d\u0c30",
+      "\u0c36\u0c28\u0c3f"
+    ],
+    "SHORTMONTH": [
+      "\u0c1c\u0c28",
+      "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30",
+      "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f",
+      "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f",
+      "\u0c2e\u0c47",
+      "\u0c1c\u0c42\u0c28\u0c4d",
+      "\u0c1c\u0c41\u0c32\u0c48",
+      "\u0c06\u0c17",
+      "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02",
+      "\u0c05\u0c15\u0c4d\u0c1f\u0c4b",
+      "\u0c28\u0c35\u0c02",
+      "\u0c21\u0c3f\u0c38\u0c46\u0c02"
+    ],
+    "WEEKENDRANGE": [
+      6,
+      6
+    ],
+    "fullDate": "d, MMMM y, EEEE",
+    "longDate": "d MMMM, y",
+    "medium": "d MMM, y h:mm:ss a",
+    "mediumDate": "d MMM, y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd-MM-yy h:mm a",
+    "shortDate": "dd-MM-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",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "te",
+  "pluralCat": function(n, opt_precision) {  if (n == 1) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo-ke.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo-ke.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo-ke.js
new file mode 100644
index 0000000..04178e1
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo-ke.js
@@ -0,0 +1,128 @@
+'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": [
+      "Taparachu",
+      "Ebongi"
+    ],
+    "DAY": [
+      "Nakaejuma",
+      "Nakaebarasa",
+      "Nakaare",
+      "Nakauni",
+      "Nakaung\u2019on",
+      "Nakakany",
+      "Nakasabiti"
+    ],
+    "ERANAMES": [
+      "Kabla ya Christo",
+      "Baada ya Christo"
+    ],
+    "ERAS": [
+      "KK",
+      "BK"
+    ],
+    "FIRSTDAYOFWEEK": 0,
+    "MONTH": [
+      "Orara",
+      "Omuk",
+      "Okwamg\u2019",
+      "Odung\u2019el",
+      "Omaruk",
+      "Omodok\u2019king\u2019ol",
+      "Ojola",
+      "Opedel",
+      "Osokosokoma",
+      "Otibar",
+      "Olabor",
+      "Opoo"
+    ],
+    "SHORTDAY": [
+      "Jum",
+      "Bar",
+      "Aar",
+      "Uni",
+      "Ung",
+      "Kan",
+      "Sab"
+    ],
+    "SHORTMONTH": [
+      "Rar",
+      "Muk",
+      "Kwa",
+      "Dun",
+      "Mar",
+      "Mod",
+      "Jol",
+      "Ped",
+      "Sok",
+      "Tib",
+      "Lab",
+      "Poo"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "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": "teo-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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo-ug.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo-ug.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo-ug.js
new file mode 100644
index 0000000..8a6e1a7
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo-ug.js
@@ -0,0 +1,128 @@
+'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": [
+      "Taparachu",
+      "Ebongi"
+    ],
+    "DAY": [
+      "Nakaejuma",
+      "Nakaebarasa",
+      "Nakaare",
+      "Nakauni",
+      "Nakaung\u2019on",
+      "Nakakany",
+      "Nakasabiti"
+    ],
+    "ERANAMES": [
+      "Kabla ya Christo",
+      "Baada ya Christo"
+    ],
+    "ERAS": [
+      "KK",
+      "BK"
+    ],
+    "FIRSTDAYOFWEEK": 0,
+    "MONTH": [
+      "Orara",
+      "Omuk",
+      "Okwamg\u2019",
+      "Odung\u2019el",
+      "Omaruk",
+      "Omodok\u2019king\u2019ol",
+      "Ojola",
+      "Opedel",
+      "Osokosokoma",
+      "Otibar",
+      "Olabor",
+      "Opoo"
+    ],
+    "SHORTDAY": [
+      "Jum",
+      "Bar",
+      "Aar",
+      "Uni",
+      "Ung",
+      "Kan",
+      "Sab"
+    ],
+    "SHORTMONTH": [
+      "Rar",
+      "Muk",
+      "Kwa",
+      "Dun",
+      "Mar",
+      "Mod",
+      "Jol",
+      "Ped",
+      "Sok",
+      "Tib",
+      "Lab",
+      "Poo"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "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": "UGX",
+    "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": "teo-ug",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo.js
new file mode 100644
index 0000000..b3a750c
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_teo.js
@@ -0,0 +1,128 @@
+'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": [
+      "Taparachu",
+      "Ebongi"
+    ],
+    "DAY": [
+      "Nakaejuma",
+      "Nakaebarasa",
+      "Nakaare",
+      "Nakauni",
+      "Nakaung\u2019on",
+      "Nakakany",
+      "Nakasabiti"
+    ],
+    "ERANAMES": [
+      "Kabla ya Christo",
+      "Baada ya Christo"
+    ],
+    "ERAS": [
+      "KK",
+      "BK"
+    ],
+    "FIRSTDAYOFWEEK": 0,
+    "MONTH": [
+      "Orara",
+      "Omuk",
+      "Okwamg\u2019",
+      "Odung\u2019el",
+      "Omaruk",
+      "Omodok\u2019king\u2019ol",
+      "Ojola",
+      "Opedel",
+      "Osokosokoma",
+      "Otibar",
+      "Olabor",
+      "Opoo"
+    ],
+    "SHORTDAY": [
+      "Jum",
+      "Bar",
+      "Aar",
+      "Uni",
+      "Ung",
+      "Kan",
+      "Sab"
+    ],
+    "SHORTMONTH": [
+      "Rar",
+      "Muk",
+      "Kwa",
+      "Dun",
+      "Mar",
+      "Mod",
+      "Jol",
+      "Ped",
+      "Sok",
+      "Tib",
+      "Lab",
+      "Poo"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "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": "UGX",
+    "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": "teo",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg-cyrl-tj.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg-cyrl-tj.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg-cyrl-tj.js
new file mode 100644
index 0000000..c25e8f7
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg-cyrl-tj.js
@@ -0,0 +1,115 @@
+'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": [
+      "\u043f\u0435. \u0447\u043e.",
+      "\u043f\u0430. \u0447\u043e."
+    ],
+    "DAY": [
+      "\u042f\u043a\u0448\u0430\u043d\u0431\u0435",
+      "\u0414\u0443\u0448\u0430\u043d\u0431\u0435",
+      "\u0421\u0435\u0448\u0430\u043d\u0431\u0435",
+      "\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0435",
+      "\u041f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435",
+      "\u04b6\u0443\u043c\u044a\u0430",
+      "\u0428\u0430\u043d\u0431\u0435"
+    ],
+    "MONTH": [
+      "\u042f\u043d\u0432\u0430\u0440",
+      "\u0424\u0435\u0432\u0440\u0430\u043b",
+      "\u041c\u0430\u0440\u0442",
+      "\u0410\u043f\u0440\u0435\u043b",
+      "\u041c\u0430\u0439",
+      "\u0418\u044e\u043d",
+      "\u0418\u044e\u043b",
+      "\u0410\u0432\u0433\u0443\u0441\u0442",
+      "\u0421\u0435\u043d\u0442\u044f\u0431\u0440",
+      "\u041e\u043a\u0442\u044f\u0431\u0440",
+      "\u041d\u043e\u044f\u0431\u0440",
+      "\u0414\u0435\u043a\u0430\u0431\u0440"
+    ],
+    "SHORTDAY": [
+      "\u042f\u0448\u0431",
+      "\u0414\u0448\u0431",
+      "\u0421\u0448\u0431",
+      "\u0427\u0448\u0431",
+      "\u041f\u0448\u0431",
+      "\u04b6\u043c\u044a",
+      "\u0428\u043d\u0431"
+    ],
+    "SHORTMONTH": [
+      "\u042f\u043d\u0432",
+      "\u0424\u0435\u0432",
+      "\u041c\u0430\u0440",
+      "\u0410\u043f\u0440",
+      "\u041c\u0430\u0439",
+      "\u0418\u044e\u043d",
+      "\u0418\u044e\u043b",
+      "\u0410\u0432\u0433",
+      "\u0421\u0435\u043d",
+      "\u041e\u043a\u0442",
+      "\u041d\u043e\u044f",
+      "\u0414\u0435\u043a"
+    ],
+    "fullDate": "EEEE, y MMMM dd",
+    "longDate": "y MMMM d",
+    "medium": "y MMM d HH:mm:ss",
+    "mediumDate": "y MMM d",
+    "mediumTime": "HH:mm:ss",
+    "short": "yy/MM/dd HH:mm",
+    "shortDate": "yy/MM/dd",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Som",
+    "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\u00a0-",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "tg-cyrl-tj",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg-cyrl.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg-cyrl.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg-cyrl.js
new file mode 100644
index 0000000..7c0b60f
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg-cyrl.js
@@ -0,0 +1,115 @@
+'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": [
+      "\u043f\u0435. \u0447\u043e.",
+      "\u043f\u0430. \u0447\u043e."
+    ],
+    "DAY": [
+      "\u042f\u043a\u0448\u0430\u043d\u0431\u0435",
+      "\u0414\u0443\u0448\u0430\u043d\u0431\u0435",
+      "\u0421\u0435\u0448\u0430\u043d\u0431\u0435",
+      "\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0435",
+      "\u041f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435",
+      "\u04b6\u0443\u043c\u044a\u0430",
+      "\u0428\u0430\u043d\u0431\u0435"
+    ],
+    "MONTH": [
+      "\u042f\u043d\u0432\u0430\u0440",
+      "\u0424\u0435\u0432\u0440\u0430\u043b",
+      "\u041c\u0430\u0440\u0442",
+      "\u0410\u043f\u0440\u0435\u043b",
+      "\u041c\u0430\u0439",
+      "\u0418\u044e\u043d",
+      "\u0418\u044e\u043b",
+      "\u0410\u0432\u0433\u0443\u0441\u0442",
+      "\u0421\u0435\u043d\u0442\u044f\u0431\u0440",
+      "\u041e\u043a\u0442\u044f\u0431\u0440",
+      "\u041d\u043e\u044f\u0431\u0440",
+      "\u0414\u0435\u043a\u0430\u0431\u0440"
+    ],
+    "SHORTDAY": [
+      "\u042f\u0448\u0431",
+      "\u0414\u0448\u0431",
+      "\u0421\u0448\u0431",
+      "\u0427\u0448\u0431",
+      "\u041f\u0448\u0431",
+      "\u04b6\u043c\u044a",
+      "\u0428\u043d\u0431"
+    ],
+    "SHORTMONTH": [
+      "\u042f\u043d\u0432",
+      "\u0424\u0435\u0432",
+      "\u041c\u0430\u0440",
+      "\u0410\u043f\u0440",
+      "\u041c\u0430\u0439",
+      "\u0418\u044e\u043d",
+      "\u0418\u044e\u043b",
+      "\u0410\u0432\u0433",
+      "\u0421\u0435\u043d",
+      "\u041e\u043a\u0442",
+      "\u041d\u043e\u044f",
+      "\u0414\u0435\u043a"
+    ],
+    "fullDate": "EEEE, y MMMM dd",
+    "longDate": "y MMMM d",
+    "medium": "y MMM d HH:mm:ss",
+    "mediumDate": "y MMM d",
+    "mediumTime": "HH:mm:ss",
+    "short": "yy/MM/dd HH:mm",
+    "shortDate": "yy/MM/dd",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u20ac",
+    "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\u00a0-",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "tg-cyrl",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg.js
new file mode 100644
index 0000000..6a15c5c
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tg.js
@@ -0,0 +1,115 @@
+'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": [
+      "\u043f\u0435. \u0447\u043e.",
+      "\u043f\u0430. \u0447\u043e."
+    ],
+    "DAY": [
+      "\u042f\u043a\u0448\u0430\u043d\u0431\u0435",
+      "\u0414\u0443\u0448\u0430\u043d\u0431\u0435",
+      "\u0421\u0435\u0448\u0430\u043d\u0431\u0435",
+      "\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0435",
+      "\u041f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435",
+      "\u04b6\u0443\u043c\u044a\u0430",
+      "\u0428\u0430\u043d\u0431\u0435"
+    ],
+    "MONTH": [
+      "\u042f\u043d\u0432\u0430\u0440",
+      "\u0424\u0435\u0432\u0440\u0430\u043b",
+      "\u041c\u0430\u0440\u0442",
+      "\u0410\u043f\u0440\u0435\u043b",
+      "\u041c\u0430\u0439",
+      "\u0418\u044e\u043d",
+      "\u0418\u044e\u043b",
+      "\u0410\u0432\u0433\u0443\u0441\u0442",
+      "\u0421\u0435\u043d\u0442\u044f\u0431\u0440",
+      "\u041e\u043a\u0442\u044f\u0431\u0440",
+      "\u041d\u043e\u044f\u0431\u0440",
+      "\u0414\u0435\u043a\u0430\u0431\u0440"
+    ],
+    "SHORTDAY": [
+      "\u042f\u0448\u0431",
+      "\u0414\u0448\u0431",
+      "\u0421\u0448\u0431",
+      "\u0427\u0448\u0431",
+      "\u041f\u0448\u0431",
+      "\u04b6\u043c\u044a",
+      "\u0428\u043d\u0431"
+    ],
+    "SHORTMONTH": [
+      "\u042f\u043d\u0432",
+      "\u0424\u0435\u0432",
+      "\u041c\u0430\u0440",
+      "\u0410\u043f\u0440",
+      "\u041c\u0430\u0439",
+      "\u0418\u044e\u043d",
+      "\u0418\u044e\u043b",
+      "\u0410\u0432\u0433",
+      "\u0421\u0435\u043d",
+      "\u041e\u043a\u0442",
+      "\u041d\u043e\u044f",
+      "\u0414\u0435\u043a"
+    ],
+    "fullDate": "EEEE, y MMMM dd",
+    "longDate": "y MMMM d",
+    "medium": "y MMM d HH:mm:ss",
+    "mediumDate": "y MMM d",
+    "mediumTime": "HH:mm:ss",
+    "short": "yy/MM/dd HH:mm",
+    "shortDate": "yy/MM/dd",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Som",
+    "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\u00a0-",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "tg",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_th-th.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_th-th.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_th-th.js
new file mode 100644
index 0000000..93c1cce
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_th-th.js
@@ -0,0 +1,110 @@
+'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": [
+      "\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07",
+      "\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"
+    ],
+    "DAY": [
+      "\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c",
+      "\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c",
+      "\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23",
+      "\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18",
+      "\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35",
+      "\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c",
+      "\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"
+    ],
+    "ERANAMES": [
+      "\u0e1b\u0e35\u0e01\u0e48\u0e2d\u0e19\u0e04\u0e23\u0e34\u0e2a\u0e15\u0e4c\u0e28\u0e31\u0e01\u0e23\u0e32\u0e0a",
+      "\u0e04\u0e23\u0e34\u0e2a\u0e15\u0e4c\u0e28\u0e31\u0e01\u0e23\u0e32\u0e0a"
+    ],
+    "ERAS": [
+      "\u0e1b\u0e35\u0e01\u0e48\u0e2d\u0e19 \u0e04.\u0e28.",
+      "\u0e04.\u0e28."
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21",
+      "\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c",
+      "\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21",
+      "\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19",
+      "\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21",
+      "\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19",
+      "\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21",
+      "\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21",
+      "\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19",
+      "\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21",
+      "\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19",
+      "\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"
+    ],
+    "SHORTDAY": [
+      "\u0e2d\u0e32.",
+      "\u0e08.",
+      "\u0e2d.",
+      "\u0e1e.",
+      "\u0e1e\u0e24.",
+      "\u0e28.",
+      "\u0e2a."
+    ],
+    "SHORTMONTH": [
+      "\u0e21.\u0e04.",
+      "\u0e01.\u0e1e.",
+      "\u0e21\u0e35.\u0e04.",
+      "\u0e40\u0e21.\u0e22.",
+      "\u0e1e.\u0e04.",
+      "\u0e21\u0e34.\u0e22.",
+      "\u0e01.\u0e04.",
+      "\u0e2a.\u0e04.",
+      "\u0e01.\u0e22.",
+      "\u0e15.\u0e04.",
+      "\u0e1e.\u0e22.",
+      "\u0e18.\u0e04."
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "fullDate": "EEEE\u0e17\u0e35\u0e48 d MMMM G y",
+    "longDate": "d MMMM G y",
+    "medium": "d MMM y HH:mm:ss",
+    "mediumDate": "d MMM y",
+    "mediumTime": "HH:mm:ss",
+    "short": "d/M/yy HH:mm",
+    "shortDate": "d/M/yy",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u0e3f",
+    "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": "th-th",
+  "pluralCat": function(n, opt_precision) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_th.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_th.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_th.js
new file mode 100644
index 0000000..d9c21b2
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_th.js
@@ -0,0 +1,110 @@
+'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": [
+      "\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07",
+      "\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"
+    ],
+    "DAY": [
+      "\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c",
+      "\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c",
+      "\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23",
+      "\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18",
+      "\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35",
+      "\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c",
+      "\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"
+    ],
+    "ERANAMES": [
+      "\u0e1b\u0e35\u0e01\u0e48\u0e2d\u0e19\u0e04\u0e23\u0e34\u0e2a\u0e15\u0e4c\u0e28\u0e31\u0e01\u0e23\u0e32\u0e0a",
+      "\u0e04\u0e23\u0e34\u0e2a\u0e15\u0e4c\u0e28\u0e31\u0e01\u0e23\u0e32\u0e0a"
+    ],
+    "ERAS": [
+      "\u0e1b\u0e35\u0e01\u0e48\u0e2d\u0e19 \u0e04.\u0e28.",
+      "\u0e04.\u0e28."
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21",
+      "\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c",
+      "\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21",
+      "\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19",
+      "\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21",
+      "\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19",
+      "\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21",
+      "\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21",
+      "\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19",
+      "\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21",
+      "\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19",
+      "\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"
+    ],
+    "SHORTDAY": [
+      "\u0e2d\u0e32.",
+      "\u0e08.",
+      "\u0e2d.",
+      "\u0e1e.",
+      "\u0e1e\u0e24.",
+      "\u0e28.",
+      "\u0e2a."
+    ],
+    "SHORTMONTH": [
+      "\u0e21.\u0e04.",
+      "\u0e01.\u0e1e.",
+      "\u0e21\u0e35.\u0e04.",
+      "\u0e40\u0e21.\u0e22.",
+      "\u0e1e.\u0e04.",
+      "\u0e21\u0e34.\u0e22.",
+      "\u0e01.\u0e04.",
+      "\u0e2a.\u0e04.",
+      "\u0e01.\u0e22.",
+      "\u0e15.\u0e04.",
+      "\u0e1e.\u0e22.",
+      "\u0e18.\u0e04."
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "fullDate": "EEEE\u0e17\u0e35\u0e48 d MMMM G y",
+    "longDate": "d MMMM G y",
+    "medium": "d MMM y HH:mm:ss",
+    "mediumDate": "d MMM y",
+    "mediumTime": "HH:mm:ss",
+    "short": "d/M/yy HH:mm",
+    "shortDate": "d/M/yy",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u0e3f",
+    "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": "th",
+  "pluralCat": function(n, opt_precision) {  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti-er.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti-er.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti-er.js
new file mode 100644
index 0000000..26948d7
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti-er.js
@@ -0,0 +1,128 @@
+'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": [
+      "\u1295\u1309\u1206 \u1230\u12d3\u1270",
+      "\u12f5\u1215\u122d \u1230\u12d3\u1275"
+    ],
+    "DAY": [
+      "\u1230\u1295\u1260\u1275",
+      "\u1230\u1291\u12ed",
+      "\u1230\u1209\u1235",
+      "\u1228\u1261\u12d5",
+      "\u1213\u1219\u1235",
+      "\u12d3\u122d\u1262",
+      "\u1240\u12f3\u121d"
+    ],
+    "ERANAMES": [
+      "\u12d3/\u12d3",
+      "\u12d3/\u121d"
+    ],
+    "ERAS": [
+      "\u12d3/\u12d3",
+      "\u12d3/\u121d"
+    ],
+    "FIRSTDAYOFWEEK": 0,
+    "MONTH": [
+      "\u1325\u122a",
+      "\u1208\u12ab\u1272\u1275",
+      "\u1218\u130b\u1262\u1275",
+      "\u121a\u12eb\u12dd\u12eb",
+      "\u130d\u1295\u1266\u1275",
+      "\u1230\u1290",
+      "\u1213\u121d\u1208",
+      "\u1290\u1213\u1230",
+      "\u1218\u1235\u12a8\u1228\u121d",
+      "\u1325\u1245\u121d\u1272",
+      "\u1215\u12f3\u122d",
+      "\u1273\u1215\u1233\u1235"
+    ],
+    "SHORTDAY": [
+      "\u1230\u1295\u1260\u1275",
+      "\u1230\u1291\u12ed",
+      "\u1230\u1209\u1235",
+      "\u1228\u1261\u12d5",
+      "\u1213\u1219\u1235",
+      "\u12d3\u122d\u1262",
+      "\u1240\u12f3\u121d"
+    ],
+    "SHORTMONTH": [
+      "\u1325\u122a",
+      "\u1208\u12ab\u1272",
+      "\u1218\u130b\u1262",
+      "\u121a\u12eb\u12dd",
+      "\u130d\u1295\u1266",
+      "\u1230\u1290",
+      "\u1213\u121d\u1208",
+      "\u1290\u1213\u1230",
+      "\u1218\u1235\u12a8",
+      "\u1325\u1245\u121d",
+      "\u1215\u12f3\u122d",
+      "\u1273\u1215\u1233"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "fullDate": "EEEE\u1361 dd MMMM \u1218\u12d3\u120d\u1272 y G",
+    "longDate": "dd MMMM y",
+    "medium": "dd-MMM-y h:mm:ss a",
+    "mediumDate": "dd-MMM-y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd/MM/yy h:mm a",
+    "shortDate": "dd/MM/yy",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Nfk",
+    "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": "ti-er",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti-et.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti-et.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti-et.js
new file mode 100644
index 0000000..1be479a
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti-et.js
@@ -0,0 +1,128 @@
+'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": [
+      "\u1295\u1309\u1206 \u1230\u12d3\u1270",
+      "\u12f5\u1215\u122d \u1230\u12d3\u1275"
+    ],
+    "DAY": [
+      "\u1230\u1295\u1260\u1275",
+      "\u1230\u1291\u12ed",
+      "\u1220\u1209\u1235",
+      "\u1228\u1261\u12d5",
+      "\u1283\u1219\u1235",
+      "\u12d3\u122d\u1262",
+      "\u1240\u12f3\u121d"
+    ],
+    "ERANAMES": [
+      "\u12d3/\u12d3",
+      "\u12d3/\u121d"
+    ],
+    "ERAS": [
+      "\u12d3/\u12d3",
+      "\u12d3/\u121d"
+    ],
+    "FIRSTDAYOFWEEK": 0,
+    "MONTH": [
+      "\u1303\u1295\u12e9\u12c8\u122a",
+      "\u134c\u1265\u1229\u12c8\u122a",
+      "\u121b\u122d\u127d",
+      "\u12a4\u1355\u1228\u120d",
+      "\u121c\u12ed",
+      "\u1301\u1295",
+      "\u1301\u120b\u12ed",
+      "\u12a6\u1308\u1235\u1275",
+      "\u1234\u1355\u1274\u121d\u1260\u122d",
+      "\u12a6\u12ad\u1270\u12cd\u1260\u122d",
+      "\u1296\u126c\u121d\u1260\u122d",
+      "\u12f2\u1234\u121d\u1260\u122d"
+    ],
+    "SHORTDAY": [
+      "\u1230\u1295\u1260\u1275",
+      "\u1230\u1291\u12ed",
+      "\u1220\u1209\u1235",
+      "\u1228\u1261\u12d5",
+      "\u1283\u1219\u1235",
+      "\u12d3\u122d\u1262",
+      "\u1240\u12f3\u121d"
+    ],
+    "SHORTMONTH": [
+      "\u1303\u1295\u12e9",
+      "\u134c\u1265\u1229",
+      "\u121b\u122d\u127d",
+      "\u12a4\u1355\u1228",
+      "\u121c\u12ed",
+      "\u1301\u1295",
+      "\u1301\u120b\u12ed",
+      "\u12a6\u1308\u1235",
+      "\u1234\u1355\u1274",
+      "\u12a6\u12ad\u1270",
+      "\u1296\u126c\u121d",
+      "\u12f2\u1234\u121d"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "fullDate": "EEEE\u1363 dd MMMM \u1218\u12d3\u120d\u1272 y G",
+    "longDate": "dd MMMM y",
+    "medium": "dd-MMM-y h:mm:ss a",
+    "mediumDate": "dd-MMM-y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd/MM/yy h:mm a",
+    "shortDate": "dd/MM/yy",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Birr",
+    "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": "ti-et",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti.js
new file mode 100644
index 0000000..872204c
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_ti.js
@@ -0,0 +1,128 @@
+'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": [
+      "\u1295\u1309\u1206 \u1230\u12d3\u1270",
+      "\u12f5\u1215\u122d \u1230\u12d3\u1275"
+    ],
+    "DAY": [
+      "\u1230\u1295\u1260\u1275",
+      "\u1230\u1291\u12ed",
+      "\u1220\u1209\u1235",
+      "\u1228\u1261\u12d5",
+      "\u1283\u1219\u1235",
+      "\u12d3\u122d\u1262",
+      "\u1240\u12f3\u121d"
+    ],
+    "ERANAMES": [
+      "\u12d3/\u12d3",
+      "\u12d3/\u121d"
+    ],
+    "ERAS": [
+      "\u12d3/\u12d3",
+      "\u12d3/\u121d"
+    ],
+    "FIRSTDAYOFWEEK": 0,
+    "MONTH": [
+      "\u1303\u1295\u12e9\u12c8\u122a",
+      "\u134c\u1265\u1229\u12c8\u122a",
+      "\u121b\u122d\u127d",
+      "\u12a4\u1355\u1228\u120d",
+      "\u121c\u12ed",
+      "\u1301\u1295",
+      "\u1301\u120b\u12ed",
+      "\u12a6\u1308\u1235\u1275",
+      "\u1234\u1355\u1274\u121d\u1260\u122d",
+      "\u12a6\u12ad\u1270\u12cd\u1260\u122d",
+      "\u1296\u126c\u121d\u1260\u122d",
+      "\u12f2\u1234\u121d\u1260\u122d"
+    ],
+    "SHORTDAY": [
+      "\u1230\u1295\u1260\u1275",
+      "\u1230\u1291\u12ed",
+      "\u1220\u1209\u1235",
+      "\u1228\u1261\u12d5",
+      "\u1283\u1219\u1235",
+      "\u12d3\u122d\u1262",
+      "\u1240\u12f3\u121d"
+    ],
+    "SHORTMONTH": [
+      "\u1303\u1295\u12e9",
+      "\u134c\u1265\u1229",
+      "\u121b\u122d\u127d",
+      "\u12a4\u1355\u1228",
+      "\u121c\u12ed",
+      "\u1301\u1295",
+      "\u1301\u120b\u12ed",
+      "\u12a6\u1308\u1235",
+      "\u1234\u1355\u1274",
+      "\u12a6\u12ad\u1270",
+      "\u1296\u126c\u121d",
+      "\u12f2\u1234\u121d"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "fullDate": "EEEE\u1363 dd MMMM \u1218\u12d3\u120d\u1272 y G",
+    "longDate": "dd MMMM y",
+    "medium": "dd-MMM-y h:mm:ss a",
+    "mediumDate": "dd-MMM-y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd/MM/yy h:mm a",
+    "shortDate": "dd/MM/yy",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Birr",
+    "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": "ti",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tig-er.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tig-er.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tig-er.js
new file mode 100644
index 0000000..0f137e0
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tig-er.js
@@ -0,0 +1,115 @@
+'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": [
+      "\u1240\u12f0\u121d \u1230\u122d\u121d\u12d5\u120d",
+      "\u1213\u1246 \u1235\u122d\u121d\u12d5\u120d"
+    ],
+    "DAY": [
+      "\u1230\u1295\u1260\u1275 \u12d3\u1263\u12ed",
+      "\u1230\u1296",
+      "\u1273\u120b\u1238\u1296",
+      "\u12a3\u1228\u122d\u1263\u12d3",
+      "\u12a8\u121a\u123d",
+      "\u1305\u121d\u12d3\u1275",
+      "\u1230\u1295\u1260\u1275 \u1295\u12a2\u123d"
+    ],
+    "MONTH": [
+      "\u1303\u1295\u12e9\u12c8\u122a",
+      "\u134c\u1265\u1229\u12c8\u122a",
+      "\u121b\u122d\u127d",
+      "\u12a4\u1355\u1228\u120d",
+      "\u121c\u12ed",
+      "\u1301\u1295",
+      "\u1301\u120b\u12ed",
+      "\u12a6\u1308\u1235\u1275",
+      "\u1234\u1355\u1274\u121d\u1260\u122d",
+      "\u12a6\u12ad\u1270\u12cd\u1260\u122d",
+      "\u1296\u126c\u121d\u1260\u122d",
+      "\u12f2\u1234\u121d\u1260\u122d"
+    ],
+    "SHORTDAY": [
+      "\u1230/\u12d3",
+      "\u1230\u1296",
+      "\u1273\u120b\u1238",
+      "\u12a3\u1228\u122d",
+      "\u12a8\u121a\u123d",
+      "\u1305\u121d\u12d3",
+      "\u1230/\u1295"
+    ],
+    "SHORTMONTH": [
+      "\u1303\u1295\u12e9",
+      "\u134c\u1265\u1229",
+      "\u121b\u122d\u127d",
+      "\u12a4\u1355\u1228",
+      "\u121c\u12ed",
+      "\u1301\u1295",
+      "\u1301\u120b\u12ed",
+      "\u12a6\u1308\u1235",
+      "\u1234\u1355\u1274",
+      "\u12a6\u12ad\u1270",
+      "\u1296\u126c\u121d",
+      "\u12f2\u1234\u121d"
+    ],
+    "fullDate": "EEEE\u1361 dd MMMM \u12ee\u121d y G",
+    "longDate": "dd MMMM y",
+    "medium": "dd-MMM-y h:mm:ss a",
+    "mediumDate": "dd-MMM-y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd/MM/yy h:mm a",
+    "shortDate": "dd/MM/yy",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Nfk",
+    "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": "tig-er",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tig.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tig.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tig.js
new file mode 100644
index 0000000..493fd39
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tig.js
@@ -0,0 +1,115 @@
+'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": [
+      "\u1240\u12f0\u121d \u1230\u122d\u121d\u12d5\u120d",
+      "\u1213\u1246 \u1235\u122d\u121d\u12d5\u120d"
+    ],
+    "DAY": [
+      "\u1230\u1295\u1260\u1275 \u12d3\u1263\u12ed",
+      "\u1230\u1296",
+      "\u1273\u120b\u1238\u1296",
+      "\u12a3\u1228\u122d\u1263\u12d3",
+      "\u12a8\u121a\u123d",
+      "\u1305\u121d\u12d3\u1275",
+      "\u1230\u1295\u1260\u1275 \u1295\u12a2\u123d"
+    ],
+    "MONTH": [
+      "\u1303\u1295\u12e9\u12c8\u122a",
+      "\u134c\u1265\u1229\u12c8\u122a",
+      "\u121b\u122d\u127d",
+      "\u12a4\u1355\u1228\u120d",
+      "\u121c\u12ed",
+      "\u1301\u1295",
+      "\u1301\u120b\u12ed",
+      "\u12a6\u1308\u1235\u1275",
+      "\u1234\u1355\u1274\u121d\u1260\u122d",
+      "\u12a6\u12ad\u1270\u12cd\u1260\u122d",
+      "\u1296\u126c\u121d\u1260\u122d",
+      "\u12f2\u1234\u121d\u1260\u122d"
+    ],
+    "SHORTDAY": [
+      "\u1230/\u12d3",
+      "\u1230\u1296",
+      "\u1273\u120b\u1238",
+      "\u12a3\u1228\u122d",
+      "\u12a8\u121a\u123d",
+      "\u1305\u121d\u12d3",
+      "\u1230/\u1295"
+    ],
+    "SHORTMONTH": [
+      "\u1303\u1295\u12e9",
+      "\u134c\u1265\u1229",
+      "\u121b\u122d\u127d",
+      "\u12a4\u1355\u1228",
+      "\u121c\u12ed",
+      "\u1301\u1295",
+      "\u1301\u120b\u12ed",
+      "\u12a6\u1308\u1235",
+      "\u1234\u1355\u1274",
+      "\u12a6\u12ad\u1270",
+      "\u1296\u126c\u121d",
+      "\u12f2\u1234\u121d"
+    ],
+    "fullDate": "EEEE\u1361 dd MMMM \u12ee\u121d y G",
+    "longDate": "dd MMMM y",
+    "medium": "dd-MMM-y h:mm:ss a",
+    "mediumDate": "dd-MMM-y",
+    "mediumTime": "h:mm:ss a",
+    "short": "dd/MM/yy h:mm a",
+    "shortDate": "dd/MM/yy",
+    "shortTime": "h:mm a"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "Nfk",
+    "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": "tig",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tl.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tl.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tl.js
new file mode 100644
index 0000000..59b7a10
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tl.js
@@ -0,0 +1,128 @@
+'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": [
+      "Linggo",
+      "Lunes",
+      "Martes",
+      "Miyerkules",
+      "Huwebes",
+      "Biyernes",
+      "Sabado"
+    ],
+    "ERANAMES": [
+      "BC",
+      "AD"
+    ],
+    "ERAS": [
+      "BC",
+      "AD"
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "Enero",
+      "Pebrero",
+      "Marso",
+      "Abril",
+      "Mayo",
+      "Hunyo",
+      "Hulyo",
+      "Agosto",
+      "Setyembre",
+      "Oktubre",
+      "Nobyembre",
+      "Disyembre"
+    ],
+    "SHORTDAY": [
+      "Lin",
+      "Lun",
+      "Mar",
+      "Miy",
+      "Huw",
+      "Biy",
+      "Sab"
+    ],
+    "SHORTMONTH": [
+      "Ene",
+      "Peb",
+      "Mar",
+      "Abr",
+      "May",
+      "Hun",
+      "Hul",
+      "Ago",
+      "Set",
+      "Okt",
+      "Nob",
+      "Dis"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "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": "\u20b1",
+    "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": "tl",
+  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, opt_precision);  if (vf.v == 0 && (i == 1 || i == 2 || i == 3) || vf.v == 0 && i % 10 != 4 && i % 10 != 6 && i % 10 != 9 || vf.v != 0 && vf.f % 10 != 4 && vf.f % 10 != 6 && vf.f % 10 != 9) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn-bw.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn-bw.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn-bw.js
new file mode 100644
index 0000000..bc05b8e
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn-bw.js
@@ -0,0 +1,128 @@
+'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": [
+      "Tshipi",
+      "Mosopulogo",
+      "Labobedi",
+      "Laboraro",
+      "Labone",
+      "Labotlhano",
+      "Matlhatso"
+    ],
+    "ERANAMES": [
+      "BCE",
+      "CE"
+    ],
+    "ERAS": [
+      "BCE",
+      "CE"
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "Ferikgong",
+      "Tlhakole",
+      "Mopitlo",
+      "Moranang",
+      "Motsheganang",
+      "Seetebosigo",
+      "Phukwi",
+      "Phatwe",
+      "Lwetse",
+      "Diphalane",
+      "Ngwanatsele",
+      "Sedimonthole"
+    ],
+    "SHORTDAY": [
+      "Tsh",
+      "Mos",
+      "Bed",
+      "Rar",
+      "Ne",
+      "Tla",
+      "Mat"
+    ],
+    "SHORTMONTH": [
+      "Fer",
+      "Tlh",
+      "Mop",
+      "Mor",
+      "Mot",
+      "See",
+      "Phu",
+      "Pha",
+      "Lwe",
+      "Dip",
+      "Ngw",
+      "Sed"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "fullDate": "y MMMM d, EEEE",
+    "longDate": "y MMMM d",
+    "medium": "y MMM d HH:mm:ss",
+    "mediumDate": "y MMM d",
+    "mediumTime": "HH:mm:ss",
+    "short": "y-MM-dd HH:mm",
+    "shortDate": "y-MM-dd",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "P",
+    "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": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "tn-bw",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn-za.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn-za.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn-za.js
new file mode 100644
index 0000000..cecb7ee
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn-za.js
@@ -0,0 +1,128 @@
+'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": [
+      "Tshipi",
+      "Mosopulogo",
+      "Labobedi",
+      "Laboraro",
+      "Labone",
+      "Labotlhano",
+      "Matlhatso"
+    ],
+    "ERANAMES": [
+      "BCE",
+      "CE"
+    ],
+    "ERAS": [
+      "BCE",
+      "CE"
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "Ferikgong",
+      "Tlhakole",
+      "Mopitlo",
+      "Moranang",
+      "Motsheganang",
+      "Seetebosigo",
+      "Phukwi",
+      "Phatwe",
+      "Lwetse",
+      "Diphalane",
+      "Ngwanatsele",
+      "Sedimonthole"
+    ],
+    "SHORTDAY": [
+      "Tsh",
+      "Mos",
+      "Bed",
+      "Rar",
+      "Ne",
+      "Tla",
+      "Mat"
+    ],
+    "SHORTMONTH": [
+      "Fer",
+      "Tlh",
+      "Mop",
+      "Mor",
+      "Mot",
+      "See",
+      "Phu",
+      "Pha",
+      "Lwe",
+      "Dip",
+      "Ngw",
+      "Sed"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "fullDate": "y MMMM d, EEEE",
+    "longDate": "y MMMM d",
+    "medium": "y MMM d HH:mm:ss",
+    "mediumDate": "y MMM d",
+    "mediumTime": "HH:mm:ss",
+    "short": "y-MM-dd HH:mm",
+    "shortDate": "y-MM-dd",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "R",
+    "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": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "tn-za",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn.js
new file mode 100644
index 0000000..f249556
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tn.js
@@ -0,0 +1,128 @@
+'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": [
+      "Tshipi",
+      "Mosopulogo",
+      "Labobedi",
+      "Laboraro",
+      "Labone",
+      "Labotlhano",
+      "Matlhatso"
+    ],
+    "ERANAMES": [
+      "BCE",
+      "CE"
+    ],
+    "ERAS": [
+      "BCE",
+      "CE"
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "Ferikgong",
+      "Tlhakole",
+      "Mopitlo",
+      "Moranang",
+      "Motsheganang",
+      "Seetebosigo",
+      "Phukwi",
+      "Phatwe",
+      "Lwetse",
+      "Diphalane",
+      "Ngwanatsele",
+      "Sedimonthole"
+    ],
+    "SHORTDAY": [
+      "Tsh",
+      "Mos",
+      "Bed",
+      "Rar",
+      "Ne",
+      "Tla",
+      "Mat"
+    ],
+    "SHORTMONTH": [
+      "Fer",
+      "Tlh",
+      "Mop",
+      "Mor",
+      "Mot",
+      "See",
+      "Phu",
+      "Pha",
+      "Lwe",
+      "Dip",
+      "Ngw",
+      "Sed"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "fullDate": "y MMMM d, EEEE",
+    "longDate": "y MMMM d",
+    "medium": "y MMM d HH:mm:ss",
+    "mediumDate": "y MMM d",
+    "mediumTime": "HH:mm:ss",
+    "short": "y-MM-dd HH:mm",
+    "shortDate": "y-MM-dd",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "R",
+    "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": "\u00a4-",
+        "negSuf": "",
+        "posPre": "\u00a4",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "tn",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_to-to.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_to-to.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_to-to.js
new file mode 100644
index 0000000..568ba87
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_to-to.js
@@ -0,0 +1,128 @@
+'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": [
+      "S\u0101pate",
+      "M\u014dnite",
+      "T\u016bsite",
+      "Pulelulu",
+      "Tu\u02bbapulelulu",
+      "Falaite",
+      "Tokonaki"
+    ],
+    "ERANAMES": [
+      "ki mu\u02bba",
+      "ta\u02bbu \u02bbo S\u012bs\u016b"
+    ],
+    "ERAS": [
+      "KM",
+      "TS"
+    ],
+    "FIRSTDAYOFWEEK": 0,
+    "MONTH": [
+      "S\u0101nuali",
+      "F\u0113pueli",
+      "Ma\u02bbasi",
+      "\u02bbEpeleli",
+      "M\u0113",
+      "Sune",
+      "Siulai",
+      "\u02bbAokosi",
+      "Sepitema",
+      "\u02bbOkatopa",
+      "N\u014dvema",
+      "T\u012bsema"
+    ],
+    "SHORTDAY": [
+      "S\u0101p",
+      "M\u014dn",
+      "T\u016bs",
+      "Pul",
+      "Tu\u02bba",
+      "Fal",
+      "Tok"
+    ],
+    "SHORTMONTH": [
+      "S\u0101n",
+      "F\u0113p",
+      "Ma\u02bba",
+      "\u02bbEpe",
+      "M\u0113",
+      "Sun",
+      "Siu",
+      "\u02bbAok",
+      "Sep",
+      "\u02bbOka",
+      "N\u014dv",
+      "T\u012bs"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "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": "T$",
+    "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\u00a0",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "to-to",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_to.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_to.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_to.js
new file mode 100644
index 0000000..81ee575
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_to.js
@@ -0,0 +1,128 @@
+'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": [
+      "S\u0101pate",
+      "M\u014dnite",
+      "T\u016bsite",
+      "Pulelulu",
+      "Tu\u02bbapulelulu",
+      "Falaite",
+      "Tokonaki"
+    ],
+    "ERANAMES": [
+      "ki mu\u02bba",
+      "ta\u02bbu \u02bbo S\u012bs\u016b"
+    ],
+    "ERAS": [
+      "KM",
+      "TS"
+    ],
+    "FIRSTDAYOFWEEK": 0,
+    "MONTH": [
+      "S\u0101nuali",
+      "F\u0113pueli",
+      "Ma\u02bbasi",
+      "\u02bbEpeleli",
+      "M\u0113",
+      "Sune",
+      "Siulai",
+      "\u02bbAokosi",
+      "Sepitema",
+      "\u02bbOkatopa",
+      "N\u014dvema",
+      "T\u012bsema"
+    ],
+    "SHORTDAY": [
+      "S\u0101p",
+      "M\u014dn",
+      "T\u016bs",
+      "Pul",
+      "Tu\u02bba",
+      "Fal",
+      "Tok"
+    ],
+    "SHORTMONTH": [
+      "S\u0101n",
+      "F\u0113p",
+      "Ma\u02bba",
+      "\u02bbEpe",
+      "M\u0113",
+      "Sun",
+      "Siu",
+      "\u02bbAok",
+      "Sep",
+      "\u02bbOka",
+      "N\u014dv",
+      "T\u012bs"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "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": "T$",
+    "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\u00a0",
+        "negSuf": "",
+        "posPre": "\u00a4\u00a0",
+        "posSuf": ""
+      }
+    ]
+  },
+  "id": "to",
+  "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-examples/blob/a183bf5c/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tr-cy.js
----------------------------------------------------------------------
diff --git a/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tr-cy.js b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tr-cy.js
new file mode 100644
index 0000000..ea48475
--- /dev/null
+++ b/rest-angular/src/main/webapp/js/lib/angular/i18n/angular-locale_tr-cy.js
@@ -0,0 +1,110 @@
+'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": [
+      "\u00d6\u00d6",
+      "\u00d6S"
+    ],
+    "DAY": [
+      "Pazar",
+      "Pazartesi",
+      "Sal\u0131",
+      "\u00c7ar\u015famba",
+      "Per\u015fembe",
+      "Cuma",
+      "Cumartesi"
+    ],
+    "ERANAMES": [
+      "Milattan \u00d6nce",
+      "Milattan Sonra"
+    ],
+    "ERAS": [
+      "M\u00d6",
+      "MS"
+    ],
+    "FIRSTDAYOFWEEK": 0,
+    "MONTH": [
+      "Ocak",
+      "\u015eubat",
+      "Mart",
+      "Nisan",
+      "May\u0131s",
+      "Haziran",
+      "Temmuz",
+      "A\u011fustos",
+      "Eyl\u00fcl",
+      "Ekim",
+      "Kas\u0131m",
+      "Aral\u0131k"
+    ],
+    "SHORTDAY": [
+      "Paz",
+      "Pzt",
+      "Sal",
+      "\u00c7ar",
+      "Per",
+      "Cum",
+      "Cmt"
+    ],
+    "SHORTMONTH": [
+      "Oca",
+      "\u015eub",
+      "Mar",
+      "Nis",
+      "May",
+      "Haz",
+      "Tem",
+      "A\u011fu",
+      "Eyl",
+      "Eki",
+      "Kas",
+      "Ara"
+    ],
+    "WEEKENDRANGE": [
+      5,
+      6
+    ],
+    "fullDate": "d MMMM y EEEE",
+    "longDate": "d MMMM y",
+    "medium": "d MMM y HH:mm:ss",
+    "mediumDate": "d MMM y",
+    "mediumTime": "HH:mm:ss",
+    "short": "d MM y HH:mm",
+    "shortDate": "d MM y",
+    "shortTime": "HH:mm"
+  },
+  "NUMBER_FORMATS": {
+    "CURRENCY_SYM": "\u20ac",
+    "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": "\u00a0\u00a4",
+        "posPre": "",
+        "posSuf": "\u00a0\u00a4"
+      }
+    ]
+  },
+  "id": "tr-cy",
+  "pluralCat": function(n, opt_precision) {  if (n == 1) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);