commit 04e3d04d14e894ae1ab8a437853a0509dcf95950
parent fd958941243711d9a924104a8a6e0ff39444b52a
Author: MTRNord <mtrnord1@gmail.com>
Date: Mon, 2 Apr 2018 19:42:09 +0200
Prepare Translations (a lot to do)
Diffstat:
4 files changed, 49 insertions(+), 10 deletions(-)
diff --git a/package.json b/package.json
@@ -28,7 +28,9 @@
"@angular/platform-server": "^5.2.4",
"@angular/router": "^5.0.0",
"@angular/service-worker": "^5.2.4",
+ "@biesbjerg/ngx-translate-po-http-loader": "^3.0.1",
"@nguniversal/module-map-ngfactory-loader": "^5.0.0-beta.8",
+ "@ngx-translate/core": "^10.0.1",
"chart.js": "^2.7.2",
"core-js": "^2.4.1",
"express": "^4.16.2",
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
@@ -1,5 +1,6 @@
import {Component} from '@angular/core';
import {SpinnerComponent} from './spinner/spinner.component';
+import {TranslateService} from '@ngx-translate/core';
@Component({
selector: 'app-root',
@@ -8,4 +9,12 @@ import {SpinnerComponent} from './spinner/spinner.component';
})
export class AppComponent {
public spinner = SpinnerComponent;
+
+ constructor(private translate: TranslateService) {
+ // this language will be used as a fallback when a translation isn't found in the current language
+ translate.setDefaultLang('en');
+
+ // the lang to use, if the lang isn't available, it will use the current loader to get them
+ translate.use('en');
+ }
}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
@@ -1,8 +1,12 @@
import { BrowserModule } from '@angular/platform-browser';
import {ErrorHandler, NgModule} from '@angular/core';
-import { HttpClientModule } from '@angular/common/http';
+import {HttpClient, HttpClientModule} from '@angular/common/http';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AvatarModule } from 'ngx-avatar';
+import * as Raven from 'raven-js';
+import {ToastrModule} from 'ngx-toastr';
+import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
+import {NgHttpLoaderModule} from 'ng-http-loader/ng-http-loader.module';
import { AppComponent } from './app.component';
import { MainComponent } from './main/main.component';
@@ -20,11 +24,9 @@ import {MatButtonModule} from '@angular/material/button';
import { ApiService } from './api.service';
-import * as Raven from 'raven-js';
-import {ToastrModule} from 'ngx-toastr';
-import {NgHttpLoaderModule} from 'ng-http-loader/ng-http-loader.module';
import {Lightbox} from './utils/lightbox';
import {LinkifyPipe} from './utils/linkifier';
+import {TranslatePoHttpLoader} from '@biesbjerg/ngx-translate-po-http-loader';
Raven
.config('https://b760c9f9035c472998ada3a02dcc81d3@sentry.io/294520', {
@@ -44,6 +46,10 @@ export class RavenErrorHandler implements ErrorHandler {
}
}
+export function createTranslateLoader(http: HttpClient) {
+ return new TranslatePoHttpLoader(http, 'assets/i18n', '.po');
+}
+
@NgModule({
declarations: [
AppComponent,
@@ -67,6 +73,13 @@ export class RavenErrorHandler implements ErrorHandler {
ToastrModule.forRoot(),
MatCardModule,
MatButtonModule,
+ TranslateModule.forRoot({
+ loader: {
+ provide: TranslateLoader,
+ useFactory: createTranslateLoader,
+ deps: [HttpClient]
+ }
+ }),
],
providers: [
ApiService,
diff --git a/yarn.lock b/yarn.lock
@@ -200,6 +200,12 @@
dependencies:
tslib "^1.7.1"
+"@biesbjerg/ngx-translate-po-http-loader@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@biesbjerg/ngx-translate-po-http-loader/-/ngx-translate-po-http-loader-3.0.1.tgz#bc06dfc723e294f18d3d0546de3a63da5f24fb58"
+ dependencies:
+ gettext-parser "1.3.0"
+
"@ngtools/json-schema@1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.2.0.tgz#06e5ecd29e9a37d260a447dd873ea2becd228c4f"
@@ -225,6 +231,12 @@
version "5.0.0-beta.8"
resolved "https://registry.yarnpkg.com/@nguniversal/module-map-ngfactory-loader/-/module-map-ngfactory-loader-5.0.0-beta.8.tgz#6507143f6f5afaf159c78bd178e07133db33ef09"
+"@ngx-translate/core@^10.0.1":
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/@ngx-translate/core/-/core-10.0.1.tgz#9f3a3ed077e847dd0d2951a664da6ee348a06d22"
+ dependencies:
+ tslib "^1.9.0"
+
"@schematics/angular@0.3.2":
version "0.3.2"
resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.3.2.tgz#be209a032a3e4577992d94fbaa14bd4bfde485e2"
@@ -2102,7 +2114,7 @@ encodeurl@~1.0.1, encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
-encoding@^0.1.11:
+encoding@^0.1.11, encoding@^0.1.12:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
dependencies:
@@ -2621,10 +2633,6 @@ follow-redirects@1.0.0:
dependencies:
debug "^2.2.0"
-font-awesome@^4.7.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
-
for-in@^0.1.3:
version "0.1.8"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"
@@ -2822,6 +2830,13 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
+gettext-parser@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-1.3.0.tgz#61465851c266f8521ba69e61ef505aa54f635d0a"
+ dependencies:
+ encoding "^0.1.12"
+ safe-buffer "^5.1.1"
+
glob-base@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
@@ -6704,7 +6719,7 @@ tsickle@^0.27.2:
source-map "^0.6.0"
source-map-support "^0.5.0"
-tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1:
+tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"