Skip to content

Commit

Permalink
Added translator mode.
Browse files Browse the repository at this point in the history
  • Loading branch information
Sem committed Nov 8, 2014
1 parent fc689b6 commit e9b7273
Show file tree
Hide file tree
Showing 14 changed files with 77 additions and 25 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ Desktop.ini
!/vendors/angular-mocks/angular-mocks.js
/vendors/angular-translate/*
!/vendors/angular-translate/angular-translate.min.js
/vendors/angular-translate-loader-static-files/*
!/vendors/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js
/vendors/angular-translate-loader-partial/*
!/vendors/angular-translate-loader-partial/angular-translate-loader-partial.min.js
/vendors/mnemonic.js/*
!/vendors/mnemonic.js/mnemonic.js
/vendors/ngprogress/*
Expand Down
2 changes: 1 addition & 1 deletion bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,6 @@
"angular-moment": "~0.7.0",
"big.js": "~2.5.0",
"angular-translate": "~2.2.0",
"angular-translate-loader-static-files": "~2.2.0"
"angular-translate-loader-partial": "~2.2.0"
}
}
3 changes: 3 additions & 0 deletions html/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ <h1 class="hide-for-medium"><a ng-click="titleClick()" id="maintitle"><img id="l

<li title="{{'Identities'|_}}" ng-class="{active:isActive('/identities')}"><a ng-show="identityName" href="#identities"><i class="icon-profile"></i> {{identityName}}</a></li>
</ul>
<ul class="right" ng-show="settings.translator && settings.language !='en'" ng-controller="TranslatorCtrl" ng-init="updateTranslations()">
<li title="{{englishLanguage ? ('Switch to native language ({0})'|_:settings.language) : ('Switch to English'|_)}}"><a ng-click="switchLanguage()"><i ng-class="['fa', englishLanguage ? 'fa-flag-o' : 'fa-flag']"></i></a></li>
</ul>
<ul class="left">
<li ng-class="{active:isActive('/wallet')}"><a ng-click="openWallet()"><i class="icon-wallet"></i> {{'Wallet'|_}}</a></li>
<li ng-class="{active:isActive('/send')}"><a href="#send"><i class="icon-rocket"></i> {{'Send'|_}}</a></li>
Expand Down
2 changes: 1 addition & 1 deletion html/partials/settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ <h5 ng-show="settings.advanced">{{'Mixing'|_}}</h5>
</div>
</div>
<div class="large-5 columns">
<div class="panel setback notifications">
<div class="panel setback notifications" ng-controller="TranslatorCtrl" ng-init="updateAvailableLanguages()">
<h5>{{'Interface'|_}}</h5>
<input id="checkbox-animations" ng-model="settings.animations.enabled" type="checkbox" ng-change="animationsChanged()"><label for="checkbox-animations">{{'Enable animations'|_}}</label><br>
<h5>{{'Notifications'|_}}</h5>
Expand Down
1 change: 1 addition & 0 deletions html/partials/tools.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
</div>
<div class="panel setback seed">
<h4>{{'Advanced settings'|_}}</h4>
<input id="checkbox-tramode" ng-model="settings.translator" ng-change="setAdvanced()" type="checkbox"><label for="checkbox-tramode">{{'Enable translator mode'|_}}</label><br>
<input id="checkbox-devmode" ng-model="settings.advanced" ng-change="setAdvanced()" type="checkbox"><label for="checkbox-devmode">{{'Enable developer mode'|_}}</label><br>
<input ng-show="settings.scanPocketMaster" id="checkbox-scanmaster" ng-model="settings.scanPocketMaster" type="checkbox"><label ng-show="settings.scanPocketMaster" for="checkbox-scanmaster">{{'Scan for pocket master address'|_}}</label><br>
</div>
Expand Down
1 change: 1 addition & 0 deletions html/popup.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ <h6>{{'Welcome to Darkwallet! Let\'s get started:'|_}}
</div>

<!-- Tools -->
<div ng-show="settings.translator && settings.language !='en'" ng-controller="TranslatorCtrl" ng-init="updateTranslations()"></div>
<dl ng-show="settings.advanced" ng-cloak ng-show="connected && identities.length" class="row tabs collapse">
<dd class="" title="Calculator" ng-class="{active:tab==1}" ng-click="tab=1">
<a><span class="fa fa-exchange"></span></a>
Expand Down
4 changes: 2 additions & 2 deletions js/backend/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ require.config({
'mm.foundation': '../vendors/angular-foundation/mm-foundation-tpls.min',
'angular-xeditable': '../vendors/angular-xeditable/dist/js/xeditable.min',
'angular-translate': '../vendors/angular-translate/angular-translate.min',
'angular-translate-loader-static-file': '../vendors/angular-translate-loader-static-files/angular-translate-loader-static-files.min',
'angular-translate-loader-partial': '../vendors/angular-translate-loader-partial/angular-translate-loader-partial.min',
'moment': '../vendors/moment/min/moment-with-locales.min',
'angular-moment': '../vendors/angular-moment/angular-moment.min',
'mnemonicjs': "../vendors/mnemonic.js/mnemonic",
Expand Down Expand Up @@ -64,7 +64,7 @@ require.config({
'angular-translate': {
deps: ['angular']
},
'angular-translate-loader-static-file': {
'angular-translate-loader-partial': {
deps: ['angular', 'angular-translate']
},
'ngProgress': {
Expand Down
10 changes: 5 additions & 5 deletions js/frontend/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ define([
'mm.foundation',
'angular-xeditable',
'angular-translate',
'angular-translate-loader-static-file',
'angular-translate-loader-partial',
'ngProgress',
'toaster',
'frontend/controllers/index',
Expand All @@ -35,11 +35,11 @@ define([
angular.bootstrap(document, ['DarkWallet']);
});
// angular-translate configuration.
app.config(function($translateProvider) {
$translateProvider.useStaticFilesLoader({
prefix: '../i18n/',
suffix: '.json'
app.config(function($translateProvider, $translatePartialLoaderProvider) {
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: "{part}/{lang}.json"
});
$translatePartialLoaderProvider.addPart('../i18n');
$translateProvider.preferredLanguage(AvailableLanguages.preferedLanguage());
});
app.config(function($animateProvider) {
Expand Down
1 change: 1 addition & 0 deletions js/frontend/controllers/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,6 @@ define([
'./tools',
'./signing',
'./exporting',
'./translator',
'./rcv_stealth'
], function () {});
45 changes: 45 additions & 0 deletions js/frontend/controllers/translator.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
'use strict';

define(['./module', 'available_languages'], function (controllers, AvailableLanguages) {

// Controller
controllers.controller('TranslatorCtrl', ['$scope', '$translate', '$translatePartialLoader', '$http', '$timeout', 'notify', '_Filter', function($scope, $translate, $translatePartialLoader, $http, $timeout, notify, _) {

$scope.englishLanguage = false;

$scope.switchLanguage = function() {
var lang = $scope.settings.language;
$translate.use($scope.englishLanguage ? lang : 'en_US');
$scope.englishLanguage = !$scope.englishLanguage;
};

$scope.updateTranslations = function() {
if (!$scope.settings.translator) { return; }
$timeout(function() {
$translate.use($scope.settings.language);
$translatePartialLoader.addPart('https://darkwallet-i18n.herokuapp.com');
$translatePartialLoader.deletePart('../i18n');
$translate.use($scope.settings.language);
$translate.refresh();
notify.note(_('Applying latest {0} translations', $scope.settings.language));
$scope.englishLanguage = false;
});
};

$scope.updateAvailableLanguages = function() {
if (!$scope.settings.translator) { return; }

$http({
method: 'GET',
url: 'https://darkwallet-i18n.herokuapp.com/resource'
}).success(function(data) {
data = data.available_languages.filter(function(language) {
var l = {};
l[language.name] = language.code;
return l;
});
$scope.languages = data;
});
};
}]);
});
11 changes: 6 additions & 5 deletions js/frontend/popup/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@ define([
'angular-animate',
'mm.foundation',
'angular-translate',
'angular-translate-loader-static-file',
'angular-translate-loader-partial',
'frontend/popup/controller',
'frontend/popup/providers',
'frontend/controllers/calculator',
'frontend/controllers/send',
'frontend/controllers/notifications',
'frontend/controllers/ngmodal',
'frontend/controllers/translator',
'frontend/filters/currency',
'frontend/filters/i18n',
'frontend/providers/wallet',
Expand All @@ -35,11 +36,11 @@ define([
'DarkWallet.directives'
]);
// angular-translate configuration.
app.config(function($translateProvider) {
$translateProvider.useStaticFilesLoader({
prefix: '../i18n/',
suffix: '.json'
app.config(function($translateProvider, $translatePartialLoaderProvider) {
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: "{part}/{lang}.json"
});
$translatePartialLoaderProvider.addPart('../i18n');
$translateProvider.preferredLanguage(AvailableLanguages.preferedLanguage());
});
app.config(function($animateProvider) {
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

0 comments on commit e9b7273

Please sign in to comment.