diff --git a/www/app/controllers/application.js b/www/app/controllers/application.js
index b5a7ab3..6d6ccdc 100644
--- a/www/app/controllers/application.js
+++ b/www/app/controllers/application.js
@@ -1,4 +1,6 @@
-import Ember from 'ember';
+
+import { computed } from '@ember/object';
+import $ from 'jquery';
import config from '../config/environment';
export default Ember.Controller.extend({
@@ -34,16 +36,16 @@ export default Ember.Controller.extend({
ethinr: Ember.computed('stats', {
get() {
- return parseFloat(this.get('model.exchangedata.price_inr'));
+ return parseFloat(this.get('model.exchangedata.price_inr'));
}
}),
- ethusd: Ember.computed('stats', {
+ ethusd: Ember.computed('stats', {
get() {
- return parseFloat(this.get('model.exchangedata.current_price'));
+ return parseFloat(this.get('model.exchangedata.current_price'));
}
}),
-
+
blockTime: Ember.computed('model.nodes', {
get() {
var node = this.get('bestNode');
@@ -53,10 +55,10 @@ export default Ember.Controller.extend({
return config.APP.BlockTime;
}
}),
-
+
hashrate: Ember.computed('difficulty', {
get() {
- var blockTime = this.get('blockTime');
+ var blockTime = this.get('blockTime');
return this.getWithDefault('difficulty', 0) / blockTime;
}
}),
@@ -103,5 +105,23 @@ export default Ember.Controller.extend({
var epochOffset = (60000 - (this.getWithDefault('height', 1) % 30000)) * 1000 * this.get('blockTime');
return Date.now() + epochOffset;
}
+ }),
+ languages: computed('model', {
+ get() {
+ return this.get('model.languages');
+ }
+ }),
+
+ selectedLanguage: computed({
+ get() {
+ var langs = this.get('languages');
+ var lang = $.cookie('lang');
+ for (var i = 0; i < langs.length; i++) {
+ if (langs[i].value == lang) {
+ return langs[i].name;
+ }
+ }
+ return lang;
+ }
})
});
diff --git a/www/app/index.html b/www/app/index.html
index 4089090..3a2fa6a 100644
--- a/www/app/index.html
+++ b/www/app/index.html
@@ -8,7 +8,6 @@
ETC Mining Pool
-
{{content-for "head"}}
= 0) {
+ if (locale === 'en') {
+ locale = 'en-us';
+ }
+ } else {
+ locale = 'en-us';
+ }
+ return locale;
+}
+
+
export default Ember.Route.extend({
intl: Ember.inject.service(),
-
+ selectedLanguage: null,
+ languages: null,
beforeModel() {
- this.get('intl').setLocale('en-us');
+ let locale = this.get('selectedLanguage');
+ if (!locale) {
+ // read cookie
+ locale = Ember.$.cookie('lang');
+ // pick a locale
+ locale = selectLocale(locale);
+
+ this.get('intl').setLocale(locale);
+ Ember.$.cookie('lang', locale);
+ console.log('INFO: locale selected - ' + locale);
+ this.set('selectedLanguage', locale);
+ }
+ let intl = this.get('intl');
+ this.set('languages', [
+ { name: intl.t('lang.english'), value: 'en-us' },
+ { name: intl.t('lang.arabic'), value: 'ar-sa' }
+ ]);
+ },
+
+ actions: {
+ selectLanguage: function (lang) {
+ let selected = lang;
+ if (typeof selected === 'undefined') {
+ return true;
+ }
+ let locale = selectLocale(selected);
+ this.get('intl').setLocale(locale);
+ this.set('selectedLanguage', locale);
+ Ember.$.cookie('lang', locale);
+ let languages = this.get('languages');
+ for (var i = 0; i < languages.length; i++) {
+ if (languages[i].value == locale) {
+ Ember.$('#selectedLanguage').html(languages[i].name + '');
+ break;
+ }
+ }
+
+
+ return true;
+ }
},
- model: function() {
+ model: function () {
var url = config.APP.ApiUrl + 'api/stats';
- return Ember.$.getJSON(url).then(function(data) {
+ return Ember.$.getJSON(url).then(function (data) {
return Ember.Object.create(data);
});
- },
+ },
- setupController: function(controller, model) {
+ setupController: function (controller, model) {
this._super(controller, model);
Ember.run.later(this, this.refresh, 5000);
+ model.languages = this.get('languages');
}
-});
+});
\ No newline at end of file
diff --git a/www/translations/ar-sa.yaml b/www/translations/ar-sa.yaml
new file mode 100644
index 0000000..0b9f1e6
--- /dev/null
+++ b/www/translations/ar-sa.yaml
@@ -0,0 +1,5 @@
+lang:
+ arabic: عربي
+ english: English
+menu:
+ home: الرئيسية
\ No newline at end of file
diff --git a/www/translations/en-us.yaml b/www/translations/en-us.yaml
index 8d7a308..203d223 100644
--- a/www/translations/en-us.yaml
+++ b/www/translations/en-us.yaml
@@ -1,4 +1,3 @@
-
errors:
header: Stats API Temporarily Down
message: Usually it's just a temporal issue and mining is not affected.
@@ -25,6 +24,7 @@ menu:
language: language
lang:
+ arabic: عربي
english: English
home: