feat(i18n): add basic structure for i18n

feat807-i18n
Anthony Lapenna 2017-08-17 21:36:50 +02:00
parent 1a28e1091c
commit f9308406af
8 changed files with 33 additions and 6 deletions

View File

@ -30,6 +30,7 @@ func NewFileHandler(assetPath string) *FileHandler {
"/js": true, "/js": true,
"/images": true, "/images": true,
"/fonts": true, "/fonts": true,
"/i18n": true,
}, },
} }
return h return h

View File

@ -13,6 +13,7 @@ angular.module('portainer', [
'LocalStorageModule', 'LocalStorageModule',
'angular-jwt', 'angular-jwt',
'angular-google-analytics', 'angular-google-analytics',
'pascalprecht.translate',
'portainer.templates', 'portainer.templates',
'portainer.filters', 'portainer.filters',
'portainer.rest', 'portainer.rest',
@ -64,7 +65,7 @@ angular.module('portainer', [
'userSettings', 'userSettings',
'volume', 'volume',
'volumes']) 'volumes'])
.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', 'localStorageServiceProvider', 'jwtOptionsProvider', 'AnalyticsProvider', '$uibTooltipProvider', '$compileProvider', function ($stateProvider, $urlRouterProvider, $httpProvider, localStorageServiceProvider, jwtOptionsProvider, AnalyticsProvider, $uibTooltipProvider, $compileProvider) { .config(['$stateProvider', '$urlRouterProvider', '$httpProvider', 'localStorageServiceProvider', 'jwtOptionsProvider', 'AnalyticsProvider', '$uibTooltipProvider', '$compileProvider', '$translateProvider', function ($stateProvider, $urlRouterProvider, $httpProvider, localStorageServiceProvider, jwtOptionsProvider, AnalyticsProvider, $uibTooltipProvider, $compileProvider, $translateProvider) {
'use strict'; 'use strict';
var environment = '@@ENVIRONMENT'; var environment = '@@ENVIRONMENT';
@ -99,6 +100,14 @@ angular.module('portainer', [
'outsideClick': 'outsideClick' 'outsideClick': 'outsideClick'
}); });
$translateProvider.useSanitizeValueStrategy('sanitize');
$translateProvider
.useStaticFilesLoader({
'prefix': 'i18n/',
'suffix': '.json'
});
$translateProvider.preferredLanguage('en');
$stateProvider $stateProvider
.state('root', { .state('root', {
abstract: true, abstract: true,

View File

@ -13,7 +13,7 @@
<table class="table"> <table class="table">
<tbody> <tbody>
<tr> <tr>
<td>Name</td> <td>{{ 'DASHBOARD.NODE_NAME' | translate }}</td>
<td>{{ infoData.Name }}</td> <td>{{ infoData.Name }}</td>
</tr> </tr>
<tr> <tr>

5
assets/i18n/en.json Normal file
View File

@ -0,0 +1,5 @@
{
"DASHBOARD": {
"NODE_NAME": "Name"
}
}

5
assets/i18n/fr.json Normal file
View File

@ -0,0 +1,5 @@
{
"DASHBOARD": {
"NODE_NAME": "Nom"
}
}

View File

@ -3,7 +3,7 @@
"version": "1.14.0", "version": "1.14.0",
"homepage": "https://github.com/portainer/portainer", "homepage": "https://github.com/portainer/portainer",
"authors": [ "authors": [
"Anthony Lapenna <anthony.lapenna at gmail dot com>" "Anthony Lapenna <anthony.lapenna at portainer dot com>"
], ],
"description": "A web interface for the Docker Remote API.", "description": "A web interface for the Docker Remote API.",
"keywords": [ "keywords": [
@ -37,6 +37,7 @@
"angular-local-storage": "~0.5.2", "angular-local-storage": "~0.5.2",
"angular-jwt": "~0.1.8", "angular-jwt": "~0.1.8",
"angular-google-analytics": "~1.1.9", "angular-google-analytics": "~1.1.9",
"angular-translate": "~2.15.2",
"bootstrap": "~3.3.6", "bootstrap": "~3.3.6",
"filesize": "~3.3.0", "filesize": "~3.3.0",
"jquery": "1.11.1", "jquery": "1.11.1",
@ -49,7 +50,8 @@
"bootbox.js": "bootbox#^4.4.0", "bootbox.js": "bootbox#^4.4.0",
"angular-multi-select": "~4.0.0", "angular-multi-select": "~4.0.0",
"toastr": "~2.1.3", "toastr": "~2.1.3",
"xterm.js": "~2.8.1" "xterm.js": "~2.8.1",
"angular-translate-loader-static-files": "~2.15.2"
}, },
"resolutions": { "resolutions": {
"angular": "1.5.11" "angular": "1.5.11"

View File

@ -105,7 +105,8 @@ module.exports = function (grunt) {
{dest: '<%= distdir %>/fonts/', src: '*.{ttf,woff,woff2,eof,svg}', expand: true, cwd: 'bower_components/font-awesome/fonts/'}, {dest: '<%= distdir %>/fonts/', src: '*.{ttf,woff,woff2,eof,svg}', expand: true, cwd: 'bower_components/font-awesome/fonts/'},
{dest: '<%= distdir %>/fonts/', src: '*.{ttf,woff,woff2,eof,svg}', expand: true, cwd: 'bower_components/rdash-ui/dist/fonts/'}, {dest: '<%= distdir %>/fonts/', src: '*.{ttf,woff,woff2,eof,svg}', expand: true, cwd: 'bower_components/rdash-ui/dist/fonts/'},
{dest: '<%= distdir %>/images/', src: '**', expand: true, cwd: 'assets/images/'}, {dest: '<%= distdir %>/images/', src: '**', expand: true, cwd: 'assets/images/'},
{dest: '<%= distdir %>/ico', src: '**', expand: true, cwd: 'assets/ico'} {dest: '<%= distdir %>/ico', src: '**', expand: true, cwd: 'assets/ico'},
{dest: '<%= distdir %>/i18n', src: '**', expand: true, cwd: 'assets/i18n'}
] ]
} }
}, },

View File

@ -59,6 +59,8 @@ angular:
- bower_components/angular-ui-router/release/angular-ui-router.js - bower_components/angular-ui-router/release/angular-ui-router.js
- bower_components/angular-utils-pagination/dirPagination.js - bower_components/angular-utils-pagination/dirPagination.js
- bower_components/ng-file-upload/ng-file-upload.js - bower_components/ng-file-upload/ng-file-upload.js
- bower_components/angular-translate/angular-translate.js
- bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js
minified: minified:
- bower_components/angular/angular.min.js - bower_components/angular/angular.min.js
- bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js - bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js
@ -71,4 +73,6 @@ angular:
- bower_components/angular-ui-select/dist/select.min.js - bower_components/angular-ui-select/dist/select.min.js
- bower_components/angular-ui-router/release/angular-ui-router.min.js - bower_components/angular-ui-router/release/angular-ui-router.min.js
- bower_components/angular-utils-pagination/dirPagination.js - bower_components/angular-utils-pagination/dirPagination.js
- bower_components/ng-file-upload/ng-file-upload.min.js - bower_components/ng-file-upload/ng-file-upload.min.js
- bower_components/angular-translate/angular-translate.min.js
- bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js