Commit 9b46bb137f05f18bab6e7ef44da4cf092bf9d1ee
1 parent
7b837dbc
Exists in
master
and in
33 other branches
Use angular-translate to support i18n
Showing
8 changed files
with
48 additions
and
10 deletions
Show diff stats
bower.json
... | ... | @@ -27,7 +27,10 @@ |
27 | 27 | "angular-timeline": "~1.6.2", |
28 | 28 | "angular-scroll": "~1.0.0", |
29 | 29 | "ngSweetAlert": "angular-sweetalert#~1.1.0", |
30 | - "angular-mocks": "^1.5.0" | |
30 | + "angular-mocks": "^1.5.0", | |
31 | + "angular-translate": "^2.10.0", | |
32 | + "angular-translate-loader-static-files": "^2.10.0", | |
33 | + "angular-translate-handler-log": "^2.10.0" | |
31 | 34 | }, |
32 | 35 | "devDependencies": { |
33 | 36 | "angular-mocks": "~1.5.0" | ... | ... |
src/app/components/navbar/navbar.html
... | ... | @@ -8,7 +8,7 @@ |
8 | 8 | <span class="icon-bar"></span> |
9 | 9 | </button> |
10 | 10 | <a class="navbar-brand" ui-sref="main"> |
11 | - <span class="noosfero-logo"><img src="assets/images/logo-noosfero.png"></span> Noosfero | |
11 | + <span class="noosfero-logo"><img src="assets/images/logo-noosfero.png"></span> {{"noosfero.name" | translate}} | |
12 | 12 | </a> |
13 | 13 | </div> |
14 | 14 | |
... | ... | @@ -18,7 +18,7 @@ |
18 | 18 | |
19 | 19 | <ul class="nav navbar-nav navbar-right"> |
20 | 20 | <li ng-show="!ctrl.currentUser"> |
21 | - <a ng-href="#" ng-click="ctrl.openLogin()">Login</a> | |
21 | + <a ng-href="#" ng-click="ctrl.openLogin()">{{"navbar.login" | translate}}</a> | |
22 | 22 | </li> |
23 | 23 | |
24 | 24 | <li class="dropdown profile-menu" ng-show="ctrl.currentUser" dropdown> |
... | ... | @@ -28,14 +28,14 @@ |
28 | 28 | </a> |
29 | 29 | <ul class="dropdown-menu" dropdown-menu> |
30 | 30 | <li> |
31 | - <a ui-sref="main.profile.info({profile: ctrl.currentUser.person.identifier})"><i class="fa fa-fw fa-user"></i> Profile</a> | |
31 | + <a ui-sref="main.profile.info({profile: ctrl.currentUser.person.identifier})"><i class="fa fa-fw fa-user"></i> {{"navbar.profile" | translate}}</a> | |
32 | 32 | </li> |
33 | 33 | <li> |
34 | - <a target="_self" ui-sref="main.profile.settings({profile: ctrl.currentUser.person.identifier})"><i class="fa fa-fw fa-gear"></i> Settings</a> | |
34 | + <a target="_self" ui-sref="main.profile.settings({profile: ctrl.currentUser.person.identifier})"><i class="fa fa-fw fa-gear"></i> {{"navbar.settings" | translate}}</a> | |
35 | 35 | </li> |
36 | 36 | <li class="divider"></li> |
37 | 37 | <li> |
38 | - <a href="#" ng-click="ctrl.logout()"><i class="fa fa-fw fa-power-off"></i> Log Out</a> | |
38 | + <a href="#" ng-click="ctrl.logout()"><i class="fa fa-fw fa-power-off"></i> {{"navbar.logout" | translate}}</a> | |
39 | 39 | </li> |
40 | 40 | </ul> |
41 | 41 | </li> | ... | ... |
src/app/components/noosfero-blocks/profile-image-block/profile-image-block.html
... | ... | @@ -2,5 +2,5 @@ |
2 | 2 | <a ui-sref="main.profile.info({profile: ctrl.owner.identifier})"> |
3 | 3 | <noosfero-profile-image [profile]="ctrl.owner"></noosfero-profile-image> |
4 | 4 | </a> |
5 | - <a class="settings-link" target="_self" ui-sref="main.profile.settings({profile: ctrl.owner.identifier})">Control panel</a> | |
5 | + <a class="settings-link" target="_self" ui-sref="main.profile.settings({profile: ctrl.owner.identifier})">{{"blocks.profile_image.control_panel" | translate}}</a> | |
6 | 6 | </div> | ... | ... |
src/app/index.config.ts
1 | 1 | |
2 | 2 | /** @ngInject */ |
3 | -export function noosferoModuleConfig($logProvider: ng.ILogProvider, $locationProvider: ng.ILocationProvider, RestangularProvider: restangular.IProvider, $httpProvider: ng.IHttpProvider, $provide: ng.auto.IProvideService) { | |
3 | +export function noosferoModuleConfig($logProvider: ng.ILogProvider, | |
4 | + $locationProvider: ng.ILocationProvider, | |
5 | + RestangularProvider: restangular.IProvider, | |
6 | + $httpProvider: ng.IHttpProvider, | |
7 | + $provide: ng.auto.IProvideService, | |
8 | + $translateProvider: angular.translate.ITranslateProvider) { | |
9 | + | |
4 | 10 | $logProvider.debugEnabled(true); |
5 | 11 | $locationProvider.html5Mode({ enabled: true }); |
6 | 12 | RestangularProvider.setBaseUrl("/api/v1"); |
... | ... | @@ -14,4 +20,15 @@ export function noosferoModuleConfig($logProvider: ng.ILogProvider, $locationPro |
14 | 20 | $document.scrollToElementAnimated(uiViewElement); |
15 | 21 | }; |
16 | 22 | }); |
17 | -} | |
18 | 23 | \ No newline at end of file |
24 | + configTranslation($translateProvider); | |
25 | +} | |
26 | + | |
27 | +function configTranslation($translateProvider: angular.translate.ITranslateProvider) { | |
28 | + $translateProvider.useStaticFilesLoader({ | |
29 | + prefix: '/languages/', | |
30 | + suffix: '.json' | |
31 | + }); | |
32 | + $translateProvider.useMissingTranslationHandlerLog(); | |
33 | + $translateProvider.preferredLanguage('en'); | |
34 | + $translateProvider.useSanitizeValueStrategy('escape'); | |
35 | +} | ... | ... |
src/app/index.ts
... | ... | @@ -17,7 +17,8 @@ let noosferoApp: any = bundle("noosferoApp", Main, ["ngAnimate", "ngCookies", "n |
17 | 17 | "ngSanitize", "ngMessages", "ngAria", "restangular", |
18 | 18 | "ui.router", "ui.bootstrap", "toastr", |
19 | 19 | "angularMoment", "angular.filter", "akoenig.deckgrid", |
20 | - "angular-timeline", "duScroll", "oitozero.ngSweetAlert"]).publish(); | |
20 | + "angular-timeline", "duScroll", "oitozero.ngSweetAlert", | |
21 | + "pascalprecht.translate"]).publish(); | |
21 | 22 | |
22 | 23 | NoosferoApp.angularModule = noosferoApp; |
23 | 24 | ... | ... |
typings.json
... | ... | @@ -5,6 +5,7 @@ |
5 | 5 | "ambientDependencies": { |
6 | 6 | "angular": "github:DefinitelyTyped/DefinitelyTyped/angularjs/angular.d.ts#1c4a34873c9e70cce86edd0e61c559e43dfa5f75", |
7 | 7 | "angular-mocks": "github:DefinitelyTyped/DefinitelyTyped/angularjs/angular-mocks.d.ts", |
8 | + "angular-translate": "github:DefinitelyTyped/DefinitelyTyped/angular-translate/angular-translate.d.ts#19850bf86c876e0c2544842114878ece4664941a", | |
8 | 9 | "angular-ui-router": "github:DefinitelyTyped/DefinitelyTyped/angular-ui-router/angular-ui-router.d.ts#655f8c1bf3c71b0e1ba415b36309604f79326ac8", |
9 | 10 | "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#4de74cb527395c13ba20b438c3a7a419ad931f1c", |
10 | 11 | "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#dd638012d63e069f2c99d06ef4dcc9616a943ee4", | ... | ... |