angular-gettext
Advanced tools
Comparing version 0.0.4 to 0.0.5
@@ -92,2 +92,12 @@ angular.module('gettext', []); | ||
]); | ||
angular.module('gettext').filter('translate', [ | ||
'gettextCatalog', | ||
'$interpolate', | ||
'$parse', | ||
function (gettextCatalog, $interpolate, $parse) { | ||
return function (input) { | ||
return gettextCatalog.getString(input); | ||
}; | ||
} | ||
]); | ||
angular.module('gettext').factory('gettextPlurals', function () { | ||
@@ -94,0 +104,0 @@ return function (langCode, n) { |
@@ -1,1 +0,1 @@ | ||
angular.module("gettext",[]),angular.module("gettext").factory("gettextCatalog",["gettextPlurals",function(a){var b;return b=function(){function b(){this.debug=!1,this.strings={},this.currentLanguage="en"}var c;return c=function(a,b){return a?"[MISSING]: "+b:b},b.prototype.setStrings=function(a,b){var c,d,e;this.strings[a]||(this.strings[a]={}),e=[];for(c in b)d=b[c],"string"==typeof d?e.push(this.strings[a][c]=[d]):e.push(this.strings[a][c]=d);return e},b.prototype.getString=function(a){var b,d;return(null!=(b=this.strings[this.currentLanguage])?null!=(d=b[a])?d[0]:void 0:void 0)||c(this.debug,a)},b.prototype.getPlural=function(b,d,e){var f,g,h;return f=a(this.currentLanguage,b),g=(null!=(h=this.strings[this.currentLanguage])?h[d]:void 0)||[],g[f]||c(this.debug,1===b?d:e)},b}(),new b}]),angular.module("gettext").directive("translate",["gettextCatalog","$interpolate","$parse",function(a,b,c){return{compile:function(d,e){var f,g;return f=function(a,b){throw new Error("You should add a "+a+" attribute whenever you add a "+b+" attribute.")},e.translatePlural&&!e.translateN&&f("translate-n","translate-plural"),e.translateN&&!e.translatePlural&&f("translate-plural","translate-n"),g=d.html(),function(f){var h,i;return h=c(e.translateN),i=function(){var c,i,j;return i=d.html(),j=e.translatePlural?a.getPlural(h(f),g,e.translatePlural):a.getString(g),c=b(j)(f),i!==c?d.html(c):void 0},f.$watch(i)}}}}]),angular.module("gettext").factory("gettextPlurals",function(){return function(a,b){switch(a){case"ay":case"bo":case"cgg":case"dz":case"fa":case"id":case"ja":case"jbo":case"ka":case"kk":case"km":case"ko":case"ky":case"lo":case"ms":case"my":case"sah":case"su":case"th":case"tt":case"ug":case"vi":case"wo":case"zh":return 0;case"is":return 1!=b%10||11==b%100?1:0;case"jv":return 0!=b?1:0;case"mk":return 1==b||1==b%10?0:1;case"ach":case"ak":case"am":case"arn":case"br":case"fil":case"fr":case"gun":case"ln":case"mfe":case"mg":case"mi":case"oc":case"tg":case"ti":case"tr":case"uz":case"wa":case"zh":return b>1?1:0;case"lv":return 1==b%10&&11!=b%100?0:0!=b?1:2;case"lt":return 1==b%10&&11!=b%100?0:b%10>=2&&(10>b%100||b%100>=20)?1:2;case"be":case"bs":case"hr":case"ru":case"sr":case"uk":return 1==b%10&&11!=b%100?0:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?1:2;case"mnk":return 0==b?0:1==b?1:2;case"ro":return 1==b?0:0==b||b%100>0&&20>b%100?1:2;case"pl":return 1==b?0:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?1:2;case"cs":case"sk":return 1==b?0:b>=2&&4>=b?1:2;case"sl":return 1==b%100?1:2==b%100?2:3==b%100||4==b%100?3:0;case"mt":return 1==b?0:0==b||b%100>1&&11>b%100?1:b%100>10&&20>b%100?2:3;case"gd":return 1==b||11==b?0:2==b||12==b?1:b>2&&20>b?2:3;case"cy":return 1==b?0:2==b?1:8!=b&&11!=b?2:3;case"kw":return 1==b?0:2==b?1:3==b?2:3;case"ga":return 1==b?0:2==b?1:7>b?2:11>b?3:4;case"ar":return 0==b?0:1==b?1:2==b?2:b%100>=3&&10>=b%100?3:b%100>=11?4:5;default:return 1!=b?1:0}}}); | ||
angular.module("gettext",[]),angular.module("gettext").factory("gettextCatalog",["gettextPlurals",function(a){var b;return b=function(){function b(){this.debug=!1,this.strings={},this.currentLanguage="en"}var c;return c=function(a,b){return a?"[MISSING]: "+b:b},b.prototype.setStrings=function(a,b){var c,d,e;this.strings[a]||(this.strings[a]={}),e=[];for(c in b)d=b[c],"string"==typeof d?e.push(this.strings[a][c]=[d]):e.push(this.strings[a][c]=d);return e},b.prototype.getString=function(a){var b,d;return(null!=(b=this.strings[this.currentLanguage])?null!=(d=b[a])?d[0]:void 0:void 0)||c(this.debug,a)},b.prototype.getPlural=function(b,d,e){var f,g,h;return f=a(this.currentLanguage,b),g=(null!=(h=this.strings[this.currentLanguage])?h[d]:void 0)||[],g[f]||c(this.debug,1===b?d:e)},b}(),new b}]),angular.module("gettext").directive("translate",["gettextCatalog","$interpolate","$parse",function(a,b,c){return{compile:function(d,e){var f,g;return f=function(a,b){throw new Error("You should add a "+a+" attribute whenever you add a "+b+" attribute.")},e.translatePlural&&!e.translateN&&f("translate-n","translate-plural"),e.translateN&&!e.translatePlural&&f("translate-plural","translate-n"),g=d.html(),function(f){var h,i;return h=c(e.translateN),i=function(){var c,i,j;return i=d.html(),j=e.translatePlural?a.getPlural(h(f),g,e.translatePlural):a.getString(g),c=b(j)(f),i!==c?d.html(c):void 0},f.$watch(i)}}}}]),angular.module("gettext").filter("translate",["gettextCatalog","$interpolate","$parse",function(a){return function(b){return a.getString(b)}}]),angular.module("gettext").factory("gettextPlurals",function(){return function(a,b){switch(a){case"ay":case"bo":case"cgg":case"dz":case"fa":case"id":case"ja":case"jbo":case"ka":case"kk":case"km":case"ko":case"ky":case"lo":case"ms":case"my":case"sah":case"su":case"th":case"tt":case"ug":case"vi":case"wo":case"zh":return 0;case"is":return 1!=b%10||11==b%100?1:0;case"jv":return 0!=b?1:0;case"mk":return 1==b||1==b%10?0:1;case"ach":case"ak":case"am":case"arn":case"br":case"fil":case"fr":case"gun":case"ln":case"mfe":case"mg":case"mi":case"oc":case"tg":case"ti":case"tr":case"uz":case"wa":case"zh":return b>1?1:0;case"lv":return 1==b%10&&11!=b%100?0:0!=b?1:2;case"lt":return 1==b%10&&11!=b%100?0:b%10>=2&&(10>b%100||b%100>=20)?1:2;case"be":case"bs":case"hr":case"ru":case"sr":case"uk":return 1==b%10&&11!=b%100?0:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?1:2;case"mnk":return 0==b?0:1==b?1:2;case"ro":return 1==b?0:0==b||b%100>0&&20>b%100?1:2;case"pl":return 1==b?0:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?1:2;case"cs":case"sk":return 1==b?0:b>=2&&4>=b?1:2;case"sl":return 1==b%100?1:2==b%100?2:3==b%100||4==b%100?3:0;case"mt":return 1==b?0:0==b||b%100>1&&11>b%100?1:b%100>10&&20>b%100?2:3;case"gd":return 1==b||11==b?0:2==b||12==b?1:b>2&&20>b?2:3;case"cy":return 1==b?0:2==b?1:8!=b&&11!=b?2:3;case"kw":return 1==b?0:2==b?1:3==b?2:3;case"ga":return 1==b?0:2==b?1:7>b?2:11>b?3:4;case"ar":return 0==b?0:1==b?1:2==b?2:b%100>=3&&10>=b%100?3:b%100>=11?4:5;default:return 1!=b?1:0}}}); |
{ | ||
"name": "angular-gettext", | ||
"version": "0.0.4", | ||
"version": "0.0.5", | ||
"description": "Gettext support for Angular.js", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -68,2 +68,10 @@ # angular-gettext - gettext utilities for angular.js | ||
## Using the `translate` filter | ||
There's also a filter available. This filter does not support plural strings: | ||
```html | ||
<input type="text" placeholder="{{'Username'|translate}}" /> | ||
``` | ||
## Extracting strings | ||
@@ -107,2 +115,13 @@ | ||
## Highlighting untranslated strings | ||
You can enable a debugging mode to clearly indicate untranslated strings: | ||
```js | ||
angular.module('myApp').run(function (gettextCatalog) { | ||
gettextCatalog.debug = true; | ||
}); | ||
This will prepend `[MISSING]:` to each untranslated string. | ||
## Contributing | ||
@@ -109,0 +128,0 @@ All code lives in the `src` folder and is written in CoffeeScript. Try to stick to the style conventions used in existing code. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
40583
20
321
153