Skip to content

Commit dc81d10

Browse files
authored
Merge pull request #296 from Senyoret1/improve-lang
Improvements for the code that manage the translations
2 parents 9f10f2d + 8462e62 commit dc81d10

15 files changed

+80
-146
lines changed

src/app/app.component.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Component } from '@angular/core';
2-
import { Router, NavigationStart, NavigationEnd, NavigationCancel, NavigationError, Event as RouterEvent } from '@angular/router';
3-
import { TranslateService } from '@ngx-translate/core';
2+
import { Router, NavigationEnd, Event as RouterEvent } from '@angular/router';
43
import { HeaderConfig, FooterConfig } from 'app/app.config';
4+
import { LanguageService } from 'app/services/language/language.service';
55

66
@Component({
77
selector: 'app-root',
@@ -12,13 +12,7 @@ export class AppComponent {
1212
headerConfig = HeaderConfig;
1313
footerConfig = FooterConfig;
1414

15-
constructor(private router: Router, translate: TranslateService) {
16-
17-
// Fallback.
18-
translate.setDefaultLang('en');
19-
// Lang to use.
20-
translate.use('en');
21-
15+
constructor(router: Router, languageService: LanguageService) {
2216
router.events.subscribe((event: RouterEvent) => {
2317
if (event instanceof NavigationEnd) {
2418
window.scrollTo(0, 0);

src/app/components/pages/address-detail/address-detail.component.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,34 @@ <h2 class="-xs-only">{{ 'addressDetail.title' | translate }}</h2>
44
<div class="element-details">
55
<div class="-row -xs-only">
66
<app-qr-code [string]="address" *ngIf="address"></app-qr-code>
7-
<span>{{ 'general.address' | translate }}</span><br class="-xs-only" /> <span>{{ address ? address : loadingMsg }}</span>
7+
<span>{{ 'general.address' | translate }}</span><br class="-xs-only" /> <span>{{ address ? address : (loadingMsg | translate) }}</span>
88
</div>
9-
<div class="-row -tx-number"><span>{{ 'addressDetail.txsNumber' | translate }}</span><br class="-xs-only" /><div> {{ transactions ? transactions.length : loadingMsg }} </div></div>
9+
<div class="-row -tx-number"><span>{{ 'addressDetail.txsNumber' | translate }}</span><br class="-xs-only" /><div> {{ transactions ? transactions.length : (loadingMsg | translate) }} </div></div>
1010
<div class="-row">
1111
<span>{{ 'addressDetail.totalReceived' | translate }}</span><br class="-xs-only" />
1212
<div>
13-
{{ transactions && totalReceived ? ((totalReceived.decimalPlaces(6).toString() | number:'1.0-6') + ' ' + ('general.coinIdentifier' | translate)) : loadingMsg }}
13+
{{ transactions && totalReceived ? ((totalReceived.decimalPlaces(6).toString() | number:'1.0-6') + ' ' + ('general.coinIdentifier' | translate)) : (loadingMsg | translate) }}
1414
<span *ngIf="transactions && pendingBalance && pendingBalance.isGreaterThan(0)">&nbsp;({{ (pendingBalance.decimalPlaces(6).toString() | number:'1.0-6') + ' ' + ('general.pending' | translate) }})</span>
1515
</div>
1616
</div>
1717
<div class="-row">
1818
<span>{{ 'addressDetail.totalSent' | translate }}</span><br class="-xs-only" />
1919
<div>
20-
{{ transactions && totalSent ? ((totalSent.decimalPlaces(6).toString() | number:'1.0-6') + ' ' + ('general.coinIdentifier' | translate)) : loadingMsg }}
20+
{{ transactions && totalSent ? ((totalSent.decimalPlaces(6).toString() | number:'1.0-6') + ' ' + ('general.coinIdentifier' | translate)) : (loadingMsg | translate) }}
2121
<span *ngIf="transactions && pendingBalance && pendingBalance.isLessThan(0)">&nbsp;({{ (pendingBalance.negated().decimalPlaces(6).toString() | number:'1.0-6') + ' ' + ('general.pending' | translate) }})</span>
2222
</div>
2323
</div>
2424
<div class="-row">
2525
<span>{{ 'addressDetail.currentBalance' | translate }}</span><br class="-xs-only" />
2626
<div>
27-
{{ transactions && balance ? ((balance.decimalPlaces(6).toString() | number:'1.0-6') + ' ' + ('general.coinIdentifier' | translate)) : loadingMsg }}
27+
{{ transactions && balance ? ((balance.decimalPlaces(6).toString() | number:'1.0-6') + ' ' + ('general.coinIdentifier' | translate)) : (loadingMsg | translate) }}
2828
<span *ngIf="transactions && pendingBalance && !pendingBalance.isEqualTo(0)">&nbsp;({{ (pendingBalance.isGreaterThan(0) ? '+' : '') + (pendingBalance.decimalPlaces(6).toString() | number:'1.0-6') + ' ' + ('general.pending' | translate) }})</span>
2929
</div>
3030
</div>
3131
<div class="-row">
3232
<span>{{ 'addressDetail.hoursBalance' | translate }}</span><br class="-xs-only" />
3333
<div>
34-
{{ transactions && hoursBalance ? ((hoursBalance.decimalPlaces(0).toString() | number:'1.0-0')) : loadingMsg }}
34+
{{ transactions && hoursBalance ? ((hoursBalance.decimalPlaces(0).toString() | number:'1.0-0')) : (loadingMsg | translate) }}
3535
<span *ngIf="transactions && pendingHoursBalance && !pendingHoursBalance.isEqualTo(0)">&nbsp;({{ (pendingHoursBalance.isGreaterThan(0) ? '+' : '') + (pendingHoursBalance.decimalPlaces(0).toString() | number:'1.0-0') + ' ' + ('general.pending' | translate) }})</span>
3636
</div>
3737
</div>
@@ -42,7 +42,7 @@ <h2 class="-xs-only">{{ 'addressDetail.title' | translate }}</h2>
4242
<app-qr-code [string]="address" *ngIf="address"></app-qr-code>
4343
</div>
4444

45-
<app-loading [longErrorMsg]="longErrorMsg" *ngIf="transactions === undefined"></app-loading>
45+
<app-loading [longErrorMsg]="longErrorMsg | translate" *ngIf="transactions === undefined"></app-loading>
4646

4747
<app-transaction-info *ngFor="let transaction of pageTransactions" [transaction]="transaction"></app-transaction-info>
4848

src/app/components/pages/address-detail/address-detail.component.ts

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { Component, OnInit } from '@angular/core';
44
import { ActivatedRoute, Params } from '@angular/router';
55
import { ApiService } from '../../../services/api/api.service';
66
import { ExplorerService } from '../../../services/explorer/explorer.service';
7-
import { TranslateService } from '@ngx-translate/core';
87
import { BigNumber } from 'bignumber.js';
98
import { Transaction } from 'app/app.datatypes';
109

@@ -25,7 +24,7 @@ export class AddressDetailComponent implements OnInit {
2524
pageTransactions: any[];
2625
pageIndex = 0;
2726
pageSize = 25;
28-
loadingMsg = '';
27+
loadingMsg = 'general.loadingMsg';
2928
longErrorMsg: string;
3029

3130
get pageCount() {
@@ -35,13 +34,8 @@ export class AddressDetailComponent implements OnInit {
3534
constructor(
3635
private api: ApiService,
3736
private explorer: ExplorerService,
38-
private route: ActivatedRoute,
39-
private translate: TranslateService
40-
) {
41-
translate.get('general.loadingMsg').subscribe((res: string) => {
42-
this.loadingMsg = res;
43-
});
44-
}
37+
private route: ActivatedRoute
38+
) { }
4539

4640
ngOnInit() {
4741
this.route.params.pipe(switchMap((params: Params) => {
@@ -81,15 +75,11 @@ export class AddressDetailComponent implements OnInit {
8175
},
8276
error => {
8377
if (error.status >= 400 && error.status < 500) {
84-
this.translate.get(['general.noData', 'addressDetail.withoutTransactions']).subscribe((res: string[]) => {
85-
this.loadingMsg = res['general.noData'];
86-
this.longErrorMsg = res['addressDetail.withoutTransactions'];
87-
});
78+
this.loadingMsg = 'general.noData';
79+
this.longErrorMsg = 'addressDetail.withoutTransactions';
8880
} else {
89-
this.translate.get(['general.shortLoadingErrorMsg', 'general.longLoadingErrorMsg']).subscribe((res: string[]) => {
90-
this.loadingMsg = res['general.shortLoadingErrorMsg'];
91-
this.longErrorMsg = res['general.longLoadingErrorMsg'];
92-
});
81+
this.loadingMsg = 'general.shortLoadingErrorMsg';
82+
this.longErrorMsg = 'general.longLoadingErrorMsg';
9383
}
9484
}
9585
);

src/app/components/pages/block-details/block-details.component.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@ <h2>{{ 'blockDetails.title' | translate }}</h2>
1414
</div>
1515
</div>
1616
<div class="element-details">
17-
<div class="-row"><span>{{ 'blockDetails.height' | translate }}</span><br class="-xs-only" /><div> {{ block ? block.id : loadingMsg }} </div></div>
18-
<div class="-row"><span>{{ 'blockDetails.timestamp' | translate }}</span><br class="-xs-only" /><div> <app-date-formatter *ngIf="block" [date]="block.timestamp"></app-date-formatter> <span *ngIf="!block">{{ loadingMsg }}</span> </div></div>
19-
<div class="-row"><span>{{ 'blockDetails.size' | translate }}</span><br class="-xs-only" /><div> {{ block ? (block.size | number) + ' bytes' : loadingMsg }} </div></div>
20-
<div class="-row"><span>{{ 'blockDetails.hash' | translate }}</span><br class="-xs-only" /><div> <a [routerLink]="'/app/block/' + block.id" class="-link -copy-button-margin" *ngIf="block">{{ block.hash }}</a> <app-copy-button [text]="block.hash" *ngIf="block"></app-copy-button> <span *ngIf="!block">{{ loadingMsg }}</span> </div></div>
21-
<div class="-row"><span>{{ 'blockDetails.parentHash' | translate }}</span><br class="-xs-only" /><div> <a [routerLink]="'/app/block/' + (block.id-1)" class="-link -copy-button-margin" *ngIf="block && block.id != 0">{{ block.parent_hash }}</a> <app-copy-button [text]="block.parent_hash" *ngIf="block && block.id != 0"></app-copy-button> <span *ngIf="block && block.id == 0">{{ 'blockDetails.withoutParent' | translate }}</span> <span *ngIf="!block">{{ loadingMsg }}</span> </div></div>
22-
<div class="-row"><span>{{ 'blockDetails.totalAmount' | translate }}</span><br class="-xs-only" /><div> {{ block ? ((block.transactions | transactionsValue) | number:'1.0-6') + ' ' + ('general.coinIdentifier' | translate) : loadingMsg }} </div></div>
17+
<div class="-row"><span>{{ 'blockDetails.height' | translate }}</span><br class="-xs-only" /><div> {{ block ? block.id : (loadingMsg | translate) }} </div></div>
18+
<div class="-row"><span>{{ 'blockDetails.timestamp' | translate }}</span><br class="-xs-only" /><div> <app-date-formatter *ngIf="block" [date]="block.timestamp"></app-date-formatter> <span *ngIf="!block">{{ loadingMsg | translate }}</span> </div></div>
19+
<div class="-row"><span>{{ 'blockDetails.size' | translate }}</span><br class="-xs-only" /><div> {{ block ? (block.size | number) + ' bytes' : (loadingMsg | translate) }} </div></div>
20+
<div class="-row"><span>{{ 'blockDetails.hash' | translate }}</span><br class="-xs-only" /><div> <a [routerLink]="'/app/block/' + block.id" class="-link -copy-button-margin" *ngIf="block">{{ block.hash }}</a> <app-copy-button [text]="block.hash" *ngIf="block"></app-copy-button> <span *ngIf="!block">{{ loadingMsg | translate }}</span> </div></div>
21+
<div class="-row"><span>{{ 'blockDetails.parentHash' | translate }}</span><br class="-xs-only" /><div> <a [routerLink]="'/app/block/' + (block.id-1)" class="-link -copy-button-margin" *ngIf="block && block.id != 0">{{ block.parent_hash }}</a> <app-copy-button [text]="block.parent_hash" *ngIf="block && block.id != 0"></app-copy-button> <span *ngIf="block && block.id == 0">{{ 'blockDetails.withoutParent' | translate }}</span> <span *ngIf="!block">{{ loadingMsg | translate }}</span> </div></div>
22+
<div class="-row"><span>{{ 'blockDetails.totalAmount' | translate }}</span><br class="-xs-only" /><div> {{ block ? ((block.transactions | transactionsValue) | number:'1.0-6') + ' ' + ('general.coinIdentifier' | translate) : (loadingMsg | translate) }} </div></div>
2323
</div>
2424
</div>
2525

26-
<app-loading [longErrorMsg]="longErrorMsg" *ngIf="block === undefined"></app-loading>
26+
<app-loading [longErrorMsg]="longErrorMsg | translate:{number: blockID}" *ngIf="block === undefined"></app-loading>
2727

2828
<div *ngIf="block">
2929
<app-transaction-info *ngFor="let transaction of block.transactions" [transaction]="transaction"></app-transaction-info>

src/app/components/pages/block-details/block-details.component.ts

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { Component, OnInit } from '@angular/core';
33
import { ActivatedRoute, Params } from '@angular/router';
44
import { ExplorerService } from '../../../services/explorer/explorer.service';
55
import { Block } from '../../../app.datatypes';
6-
import { TranslateService } from '@ngx-translate/core';
76
import { ApiService } from 'app/services/api/api.service';
87

98
@Component({
@@ -13,50 +12,39 @@ import { ApiService } from 'app/services/api/api.service';
1312
})
1413
export class BlockDetailsComponent implements OnInit {
1514
block: Block;
16-
loadingMsg = '';
15+
loadingMsg = 'general.loadingMsg';
1716
longErrorMsg: string;
1817
blockCount: number;
18+
blockID = '';
1919

2020
constructor(
2121
private explorer: ExplorerService,
2222
private route: ActivatedRoute,
23-
private translate: TranslateService,
2423
private api: ApiService,
25-
) {
26-
translate.get('general.loadingMsg').subscribe((res: string) => {
27-
this.loadingMsg = res;
28-
});
29-
}
24+
) { }
3025

3126
ngOnInit() {
3227

3328
this.api.getBlockchainMetadata().pipe(first()).subscribe(blockchain => this.blockCount = blockchain.blocks);
3429

35-
let blockID = '';
3630
this.route.params.pipe(filter(params => +params['id'] !== null),
3731
switchMap((params: Params) => {
38-
blockID = params['id'];
39-
return this.explorer.getBlock(+blockID);
32+
this.blockID = params['id'];
33+
return this.explorer.getBlock(+this.blockID);
4034
})).subscribe((block: Block) => {
4135
if (block != null) {
4236
this.block = block;
4337
} else {
44-
this.translate.get(['general.noData', 'blockDetails.doesNotExist'], {number: blockID}).subscribe((res: string[]) => {
45-
this.loadingMsg = res['general.noData'];
46-
this.longErrorMsg = res['blockDetails.doesNotExist'];
47-
});
38+
this.loadingMsg = 'general.noData';
39+
this.longErrorMsg = 'blockDetails.doesNotExist';
4840
}
4941
}, error => {
5042
if (error.status >= 400 && error.status < 500) {
51-
this.translate.get(['general.noData', 'blockDetails.doesNotExist'], {number: blockID}).subscribe((res: string[]) => {
52-
this.loadingMsg = res['general.noData'];
53-
this.longErrorMsg = res['blockDetails.doesNotExist'];
54-
});
43+
this.loadingMsg = 'general.noData';
44+
this.longErrorMsg = 'blockDetails.doesNotExist';
5545
} else {
56-
this.translate.get(['general.shortLoadingErrorMsg', 'general.longLoadingErrorMsg']).subscribe((res: string[]) => {
57-
this.loadingMsg = res['general.shortLoadingErrorMsg'];
58-
this.longErrorMsg = res['general.longLoadingErrorMsg'];
59-
});
46+
this.loadingMsg = 'general.shortLoadingErrorMsg';
47+
this.longErrorMsg = 'general.longLoadingErrorMsg';
6048
}
6149

6250
});

src/app/components/pages/blocks/blocks.component.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ <h2 class="-not-xs">{{ 'blocks.blocksTitle' | translate }}</h2>
44
<h2 class="-xs-only">{{ 'blocks.statsTitle' | translate }}</h2>
55
</div>
66
<div class="col-sm-6 -details">
7-
<p><span><span class="-label">{{ 'blocks.blockHeight' | translate }}:</span><br class="-xs-only"/> <span class="-value">{{ blockCount > 0 ? (blockCount | number : '1.0-0') : loadingMetadataMsg }}</span></span></p>
8-
<p><span><span class="-label">{{ 'blocks.currentSupply' | translate }}:</span><br class="-xs-only"/> <span class="-value">{{ currentSupply ? (currentSupply | number : '1.0-0') : loadingCoinSupplyMsg }}</span></span></p>
9-
<p><span><span class="-label">{{ 'blocks.totalSupply' | translate }}:</span><br class="-xs-only"/> <span class="-value">{{ totalSupply ? (totalSupply | number : '1.0-0') : loadingCoinSupplyMsg }}</span></span></p>
10-
<p><span><span class="-label">{{ 'blocks.currentCoinhourSupply' | translate }}:</span><br class="-xs-only"/> <span class="-value">{{ currentCoinhourSupply ? (currentCoinhourSupply | number : '1.0-0') : loadingCoinSupplyMsg }}</span></span></p>
11-
<p><span><span class="-label">{{ 'blocks.totalCoinhourSupply' | translate }}:</span><br class="-xs-only"/> <span class="-value">{{ totalCoinhourSupply ? (totalCoinhourSupply | number : '1.0-0') : loadingCoinSupplyMsg }}</span></span></p>
7+
<p><span><span class="-label">{{ 'blocks.blockHeight' | translate }}:</span><br class="-xs-only"/> <span class="-value">{{ blockCount > 0 ? (blockCount | number : '1.0-0') : (loadingMetadataMsg | translate) }}</span></span></p>
8+
<p><span><span class="-label">{{ 'blocks.currentSupply' | translate }}:</span><br class="-xs-only"/> <span class="-value">{{ currentSupply ? (currentSupply | number : '1.0-0') : (loadingCoinSupplyMsg | translate) }}</span></span></p>
9+
<p><span><span class="-label">{{ 'blocks.totalSupply' | translate }}:</span><br class="-xs-only"/> <span class="-value">{{ totalSupply ? (totalSupply | number : '1.0-0') : (loadingCoinSupplyMsg | translate) }}</span></span></p>
10+
<p><span><span class="-label">{{ 'blocks.currentCoinhourSupply' | translate }}:</span><br class="-xs-only"/> <span class="-value">{{ currentCoinhourSupply ? (currentCoinhourSupply | number : '1.0-0') : (loadingCoinSupplyMsg | translate) }}</span></span></p>
11+
<p><span><span class="-label">{{ 'blocks.totalCoinhourSupply' | translate }}:</span><br class="-xs-only"/> <span class="-value">{{ totalCoinhourSupply ? (totalCoinhourSupply | number : '1.0-0') : (loadingCoinSupplyMsg | translate) }}</span></span></p>
1212
<p><a href="https://explorer.skycoin.net/api.html" class="-link">{{ 'blocks.explorerApi' | translate }}</a></p>
1313
<p><a routerLink="/app/unconfirmedtransactions" class="-link">{{ 'blocks.unconfirmedTransactions' | translate }}</a></p>
1414
<p><a routerLink="/app/richlist" class="-link">{{ 'blocks.richList' | translate }}</a></p>
@@ -27,7 +27,7 @@ <h2 class="-xs-only">{{ 'blocks.blocksTitle' | translate }}</h2>
2727
</div>
2828
</div>
2929

30-
<app-loading [longErrorMsg]="longErrorMsg" *ngIf="!blocks.length"></app-loading>
30+
<app-loading [longErrorMsg]="longErrorMsg | translate" *ngIf="!blocks.length"></app-loading>
3131

3232
<a class="-row -link" *ngFor="let block of blocks" [routerLink]="'/app/block/' + block.id">
3333
<div class="row">

src/app/components/pages/blocks/blocks.component.ts

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { ActivatedRoute } from '@angular/router';
44
import { ApiService } from '../../../services/api/api.service';
55
import { Block } from '../../../app.datatypes';
66
import { ExplorerService } from '../../../services/explorer/explorer.service';
7-
import { TranslateService } from '@ngx-translate/core';
87

98
@Component({
109
templateUrl: './blocks.component.html',
@@ -34,11 +33,8 @@ export class BlocksComponent implements OnInit {
3433
private api: ApiService,
3534
private explorer: ExplorerService,
3635
private route: ActivatedRoute,
37-
private translate: TranslateService
3836
) {
39-
translate.get('general.loadingMsg').subscribe((res: string) => {
40-
this.loadingCoinSupplyMsg = this.loadingMetadataMsg = res;
41-
});
37+
this.loadingCoinSupplyMsg = this.loadingMetadataMsg = 'general.loadingMsg';
4238
}
4339

4440
ngOnInit() {
@@ -49,22 +45,18 @@ export class BlocksComponent implements OnInit {
4945
const pageIndex = parseInt(params.get('page'), 10) - 1;
5046
this.navigate(pageIndex);
5147
});
52-
}, error => {
53-
this.translate.get(['general.shortLoadingErrorMsg', 'general.longLoadingErrorMsg']).subscribe((res: string[]) => {
54-
this.loadingMetadataMsg = res['general.shortLoadingErrorMsg'];
55-
this.longErrorMsg = res['general.longLoadingErrorMsg'];
56-
});
48+
}, () => {
49+
this.loadingMetadataMsg = 'general.shortLoadingErrorMsg';
50+
this.longErrorMsg = 'general.longLoadingErrorMsg';
5751
});
5852

5953
this.api.getCoinSupply().pipe(first()).subscribe(response => {
6054
this.currentSupply = response.current_supply;
6155
this.totalSupply = response.total_supply;
6256
this.currentCoinhourSupply = response.current_coinhour_supply;
6357
this.totalCoinhourSupply = response.total_coinhour_supply;
64-
}, error => {
65-
this.translate.get('general.shortLoadingErrorMsg').subscribe((res: string) => {
66-
this.loadingCoinSupplyMsg = res;
67-
});
58+
}, () => {
59+
this.loadingCoinSupplyMsg = 'general.shortLoadingErrorMsg';
6860
});
6961

7062
}

src/app/components/pages/richlist/richlist.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ <h2>{{ 'richlist.title' | translate }}</h2>
99
</div>
1010
</div>
1111

12-
<app-loading [longErrorMsg]="longErrorMsg" *ngIf="!entries.length"></app-loading>
12+
<app-loading [longErrorMsg]="longErrorMsg | translate" *ngIf="!entries.length"></app-loading>
1313

1414
<a class="-row" *ngFor="let entry of entries; let i = index" [routerLink]="'/app/address/' + entry.address">
1515
<div class="row">

0 commit comments

Comments
 (0)