socialnetworknews-web

A open-source Paper.li clone
git clone git://archive.git.mtrnord.blog/SocialNetworkNews/socialnetworknews-web.git
Log | Files | Refs | README | LICENSE

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:
Mpackage.json | 2++
Msrc/app/app.component.ts | 9+++++++++
Msrc/app/app.module.ts | 21+++++++++++++++++----
Myarn.lock | 27+++++++++++++++++++++------
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"