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,7 +27,10 @@ | ||
27 | "angular-timeline": "~1.6.2", | 27 | "angular-timeline": "~1.6.2", |
28 | "angular-scroll": "~1.0.0", | 28 | "angular-scroll": "~1.0.0", |
29 | "ngSweetAlert": "angular-sweetalert#~1.1.0", | 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 | "devDependencies": { | 35 | "devDependencies": { |
33 | "angular-mocks": "~1.5.0" | 36 | "angular-mocks": "~1.5.0" |
src/app/components/navbar/navbar.html
@@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
8 | <span class="icon-bar"></span> | 8 | <span class="icon-bar"></span> |
9 | </button> | 9 | </button> |
10 | <a class="navbar-brand" ui-sref="main"> | 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 | </a> | 12 | </a> |
13 | </div> | 13 | </div> |
14 | 14 | ||
@@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
18 | 18 | ||
19 | <ul class="nav navbar-nav navbar-right"> | 19 | <ul class="nav navbar-nav navbar-right"> |
20 | <li ng-show="!ctrl.currentUser"> | 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 | </li> | 22 | </li> |
23 | 23 | ||
24 | <li class="dropdown profile-menu" ng-show="ctrl.currentUser" dropdown> | 24 | <li class="dropdown profile-menu" ng-show="ctrl.currentUser" dropdown> |
@@ -28,14 +28,14 @@ | @@ -28,14 +28,14 @@ | ||
28 | </a> | 28 | </a> |
29 | <ul class="dropdown-menu" dropdown-menu> | 29 | <ul class="dropdown-menu" dropdown-menu> |
30 | <li> | 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 | </li> | 32 | </li> |
33 | <li> | 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 | </li> | 35 | </li> |
36 | <li class="divider"></li> | 36 | <li class="divider"></li> |
37 | <li> | 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 | </li> | 39 | </li> |
40 | </ul> | 40 | </ul> |
41 | </li> | 41 | </li> |
src/app/components/noosfero-blocks/profile-image-block/profile-image-block.html
@@ -2,5 +2,5 @@ | @@ -2,5 +2,5 @@ | ||
2 | <a ui-sref="main.profile.info({profile: ctrl.owner.identifier})"> | 2 | <a ui-sref="main.profile.info({profile: ctrl.owner.identifier})"> |
3 | <noosfero-profile-image [profile]="ctrl.owner"></noosfero-profile-image> | 3 | <noosfero-profile-image [profile]="ctrl.owner"></noosfero-profile-image> |
4 | </a> | 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 | </div> | 6 | </div> |
src/app/index.config.ts
1 | 1 | ||
2 | /** @ngInject */ | 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 | $logProvider.debugEnabled(true); | 10 | $logProvider.debugEnabled(true); |
5 | $locationProvider.html5Mode({ enabled: true }); | 11 | $locationProvider.html5Mode({ enabled: true }); |
6 | RestangularProvider.setBaseUrl("/api/v1"); | 12 | RestangularProvider.setBaseUrl("/api/v1"); |
@@ -14,4 +20,15 @@ export function noosferoModuleConfig($logProvider: ng.ILogProvider, $locationPro | @@ -14,4 +20,15 @@ export function noosferoModuleConfig($logProvider: ng.ILogProvider, $locationPro | ||
14 | $document.scrollToElementAnimated(uiViewElement); | 20 | $document.scrollToElementAnimated(uiViewElement); |
15 | }; | 21 | }; |
16 | }); | 22 | }); |
17 | -} | ||
18 | \ No newline at end of file | 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,7 +17,8 @@ let noosferoApp: any = bundle("noosferoApp", Main, ["ngAnimate", "ngCookies", "n | ||
17 | "ngSanitize", "ngMessages", "ngAria", "restangular", | 17 | "ngSanitize", "ngMessages", "ngAria", "restangular", |
18 | "ui.router", "ui.bootstrap", "toastr", | 18 | "ui.router", "ui.bootstrap", "toastr", |
19 | "angularMoment", "angular.filter", "akoenig.deckgrid", | 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 | NoosferoApp.angularModule = noosferoApp; | 23 | NoosferoApp.angularModule = noosferoApp; |
23 | 24 |
typings.json
@@ -5,6 +5,7 @@ | @@ -5,6 +5,7 @@ | ||
5 | "ambientDependencies": { | 5 | "ambientDependencies": { |
6 | "angular": "github:DefinitelyTyped/DefinitelyTyped/angularjs/angular.d.ts#1c4a34873c9e70cce86edd0e61c559e43dfa5f75", | 6 | "angular": "github:DefinitelyTyped/DefinitelyTyped/angularjs/angular.d.ts#1c4a34873c9e70cce86edd0e61c559e43dfa5f75", |
7 | "angular-mocks": "github:DefinitelyTyped/DefinitelyTyped/angularjs/angular-mocks.d.ts", | 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 | "angular-ui-router": "github:DefinitelyTyped/DefinitelyTyped/angular-ui-router/angular-ui-router.d.ts#655f8c1bf3c71b0e1ba415b36309604f79326ac8", | 9 | "angular-ui-router": "github:DefinitelyTyped/DefinitelyTyped/angular-ui-router/angular-ui-router.d.ts#655f8c1bf3c71b0e1ba415b36309604f79326ac8", |
9 | "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#4de74cb527395c13ba20b438c3a7a419ad931f1c", | 10 | "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#4de74cb527395c13ba20b438c3a7a419ad931f1c", |
10 | "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#dd638012d63e069f2c99d06ef4dcc9616a943ee4", | 11 | "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#dd638012d63e069f2c99d06ef4dcc9616a943ee4", |