Skip to content

Commit eddafed

Browse files
filter now accepts an object that can have translateN translatePlural
and translateContext properties and calls the appropriate catalog method This change allows more flexibility to accept functionality like #104
1 parent ff01a32 commit eddafed

4 files changed

Lines changed: 31 additions & 7 deletions

File tree

dist/angular-gettext.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,20 @@ angular.module('gettext').directive('translate', ["gettextCatalog", "$parse", "$
157157
}]);
158158

159159
angular.module('gettext').filter('translate', ["gettextCatalog", function (gettextCatalog) {
160-
return function (input, translateContext ) {
161-
return gettextCatalog.getString(input, undefined, translateContext);
160+
return function (input, options) {
161+
var translateContext;
162+
var translatePlural;
163+
var translateN;
164+
if (angular.isObject(options)){
165+
translateContext = options.translateContext;
166+
translatePlural = options.translatePlural;
167+
translateN = options.translateN;
168+
}
169+
if (translateN && translatePlural){
170+
return gettextCatalog.getPlural(translateN, input,
171+
translatePlural, null, translateContext);
172+
}
173+
return gettextCatalog.getString(input, null, translateContext);
162174
};
163175
}]);
164176

dist/angular-gettext.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/filter.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
angular.module('gettext').filter('translate', function (gettextCatalog) {
2-
return function (input, translateContext ) {
3-
return gettextCatalog.getString(input, undefined, translateContext);
2+
return function (input, options) {
3+
var translateContext;
4+
var translatePlural;
5+
var translateN;
6+
if (angular.isObject(options)){
7+
translateContext = options.translateContext;
8+
translatePlural = options.translatePlural;
9+
translateN = options.translateN;
10+
}
11+
if (translateN && translatePlural){
12+
return gettextCatalog.getPlural(translateN, input,
13+
translatePlural, null, translateContext);
14+
}
15+
return gettextCatalog.getString(input, null, translateContext);
416
};
517
});

test/unit/filter.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ describe("Filter", function () {
3434

3535
it("Should translate known strings according to translate context", function () {
3636
catalog.currentLanguage = "pt-BR";
37-
var el = $compile("<span>{{\"Hello\"|translate:'Bull'}}</span>")($rootScope);
37+
var el = $compile("<span>{{\"Hello\"|translate:{translateContext:'Bull'}}}</span>")($rootScope);
3838
$rootScope.$digest();
3939
assert.equal(el.text(), "Olé");
40-
el = $compile("<span>{{\"Hello\"|translate:'Person'}}</span>")($rootScope);
40+
el = $compile("<span>{{\"Hello\"|translate:{translateContext:'Person'}}}</span>")($rootScope);
4141
$rootScope.$digest();
4242
assert.equal(el.text(), "Olá");
4343
el = $compile("<span>{{\"Hello\"|translate}}</span>")($rootScope);

0 commit comments

Comments
 (0)