Multi-language support. English by default

This commit is contained in:
Gustavo Maximiliano Cortez 2014-09-05 16:56:47 -03:00
parent 08024c1c77
commit 302e75228d
8 changed files with 53 additions and 5 deletions

5
.gitignore vendored
View File

@ -45,6 +45,11 @@ js/copayMain.js
css/copay.min.css
css/vendors.min.css
# translation
po/*
!po/*.po
js/translations.js
webapp
browser-extensions/chrome/copay-chrome-extension
browser-extensions/chrome/copay-chrome-extension.zip

View File

@ -8,6 +8,7 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-angular-gettext');
// Project Configuration
grunt.initConfig({
@ -105,7 +106,8 @@ module.exports = function(grunt) {
'lib/angular-qrcode/qrcode.js',
'lib/ng-idle/angular-idle.min.js',
'lib/angular-foundation/mm-foundation.min.js',
'lib/angular-foundation/mm-foundation-tpls.min.js'
'lib/angular-foundation/mm-foundation-tpls.min.js',
'lib/angular-gettext/dist/angular-gettext.min.js'
],
dest: 'lib/angularjs-all.js'
},
@ -117,6 +119,7 @@ module.exports = function(grunt) {
'js/routes.js',
'js/services/*.js',
'js/controllers/*.js',
'js/translations.js',
'js/mobile.js', // PLACEHOLDER: CORDOVA SRIPT
'js/init.js'
],
@ -146,10 +149,28 @@ module.exports = function(grunt) {
'lib/vendors.js': ['lib/vendors.js']
}
}
},
nggettext_extract: {
pot: {
files: {
'po/template.pot': ['index.html', 'views/*.html', 'views/**/*.html']
}
},
},
nggettext_compile: {
all: {
options: {
module: 'copayApp'
},
files: {
'js/translations.js': ['po/*.po']
}
},
}
});
grunt.registerTask('default', ['shell:dev', 'concat', 'cssmin']);
grunt.registerTask('prod', ['shell:prod', 'concat', 'cssmin', 'uglify']);
grunt.registerTask('default', ['shell:dev', 'nggettext_compile', 'concat', 'cssmin']);
grunt.registerTask('prod', ['shell:prod', 'nggettext_compile', 'concat', 'cssmin', 'uglify']);
grunt.registerTask('translate', ['nggettext_extract']);
};

View File

@ -11,6 +11,7 @@
"angular-route": "~1.2.14",
"angular-qrcode": "~3.1.0",
"angular-mocks": "~1.2.14",
"angular-gettext": "~1.1.0",
"mocha": "~1.18.2",
"chai": "~1.9.1",
"crypto-js": "http://crypto-js.googlecode.com/files/CryptoJS%20v3.1.2.zip",

View File

@ -1,5 +1,6 @@
'use strict';
var defaultConfig = {
defaultLanguage: 'en',
// DEFAULT network (livenet or testnet)
networkName: 'testnet',
forceNetwork: false,

View File

@ -24,6 +24,7 @@ var copayApp = window.copayApp = angular.module('copayApp', [
'mm.foundation',
'monospaced.qrcode',
'ngIdle',
'gettext',
'copayApp.filters',
'copayApp.services',
'copayApp.controllers',

View File

@ -9,6 +9,22 @@ angular.module('copayApp.controllers').controller('SettingsController', function
$scope.insightPort = config.blockchain.port;
$scope.insightSecure = config.blockchain.schema === 'https';
$scope.forceNetwork = config.forceNetwork;
$scope.defaultLanguage = config.defaultLanguage || 'en';
$scope.availableLanguages = [{
name: 'English',
isoCode: 'en',
}, {
name: 'Spanish',
isoCode: 'es',
}];
for (var ii in $scope.availableLanguages) {
if ($scope.defaultLanguage === $scope.availableLanguages[ii].isoCode) {
$scope.selectedLanguage = $scope.availableLanguages[ii];
break;
}
}
$scope.unitOpts = [{
name: 'Satoshis (100,000,000 satoshis = 1BTC)',
@ -90,7 +106,8 @@ angular.module('copayApp.controllers').controller('SettingsController', function
alternativeName: $scope.selectedAlternative.name,
alternativeIsoCode: $scope.selectedAlternative.isoCode,
version: copay.version
version: copay.version,
defaultLanguage: $scope.selectedLanguage.isoCode
}));
// Go home reloading the application

View File

@ -79,7 +79,8 @@ angular
$idleProvider.warningDuration(20); // in seconds
$keepaliveProvider.interval(2); // in seconds
})
.run(function($rootScope, $location, $idle) {
.run(function($rootScope, $location, $idle, gettextCatalog) {
gettextCatalog.currentLanguage = config.defaultLanguage;
$idle.watch();
$rootScope.$on('$routeChangeStart', function(event, next, current) {
if (!localStorage || localStorage.length < 1) {

View File

@ -60,6 +60,7 @@
"bitcore": "0.1.35",
"grunt-mocha-test": "0.8.2",
"grunt-shell": "0.6.4",
"grunt-angular-gettext": "^0.2.15",
"istanbul": "0.2.10",
"karma": "0.12.9",
"karma-chrome-launcher": "0.1.3",