diff --git a/package.json b/package.json index 88476a91cf..8dd1110d1a 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,8 @@ "@ngrx/router-store": "^1.2.5", "@ngrx/store": "^2.2.1", "@ngrx/store-devtools": "^3.2.2", + "@ngx-translate/core": "^6.0.1", + "@ngx-translate/http-loader": "^0.0.3", "@types/jsonschema": "0.0.5", "angular2-express-engine": "2.1.0-rc.1", "angular2-platform-node": "2.1.0-rc.1", @@ -100,7 +102,6 @@ "jsonschema": "^1.1.1", "methods": "1.1.2", "morgan": "1.7.0", - "ng2-translate": "4.2.0", "preboot": "4.5.2", "reflect-metadata": "^0.1.10", "rxjs": "5.0.0-beta.12", diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts index d56be1a807..d91ce06ea4 100644 --- a/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -10,7 +10,7 @@ import { DebugElement } from "@angular/core"; import { By } from '@angular/platform-browser'; -import { TranslateModule, TranslateLoader } from "ng2-translate"; +import { TranslateModule, TranslateLoader } from "@ngx-translate/core"; import { Store, StoreModule } from "@ngrx/store"; // Load the implementations that should be tested @@ -34,8 +34,10 @@ describe('App component', () => { beforeEach(async(() => { return TestBed.configureTestingModule({ imports: [CommonModule, StoreModule.provideStore({}), TranslateModule.forRoot({ - provide: TranslateLoader, - useClass: MockTranslateLoader + loader: { + provide: TranslateLoader, + useClass: MockTranslateLoader + } })], declarations: [AppComponent], // declare the test component providers: [ diff --git a/src/app/app.component.ts b/src/app/app.component.ts index b27fdd354b..a95563b669 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -6,7 +6,7 @@ import { OnDestroy, OnInit, HostListener } from "@angular/core"; -import { TranslateService } from "ng2-translate"; +import { TranslateService } from "@ngx-translate/core"; import { HostWindowState } from "./shared/host-window.reducer"; import { Store } from "@ngrx/store"; import { HostWindowResizeAction } from "./shared/host-window.actions"; diff --git a/src/app/core/footer/footer.component.spec.ts b/src/app/core/footer/footer.component.spec.ts index 1a4b26510b..6015104003 100644 --- a/src/app/core/footer/footer.component.spec.ts +++ b/src/app/core/footer/footer.component.spec.ts @@ -10,7 +10,7 @@ import { DebugElement } from "@angular/core"; import { By } from '@angular/platform-browser'; -import { TranslateModule, TranslateLoader } from "ng2-translate"; +import { TranslateModule, TranslateLoader } from "@ngx-translate/core"; import { Store, StoreModule } from "@ngrx/store"; // Load the implementations that should be tested @@ -30,8 +30,10 @@ describe('Footer component', () => { beforeEach(async(() => { return TestBed.configureTestingModule({ imports: [CommonModule, StoreModule.provideStore({}), TranslateModule.forRoot({ - provide: TranslateLoader, - useClass: MockTranslateLoader + loader: { + provide: TranslateLoader, + useClass: MockTranslateLoader + } })], declarations: [FooterComponent], // declare the test component providers: [ diff --git a/src/app/header/header.component.spec.ts b/src/app/header/header.component.spec.ts index ab0e591bc9..8ec11a5bdb 100644 --- a/src/app/header/header.component.spec.ts +++ b/src/app/header/header.component.spec.ts @@ -5,7 +5,7 @@ import { Store, StoreModule } from "@ngrx/store"; import { HeaderState } from "./header.reducer"; import Spy = jasmine.Spy; import { HeaderToggleAction } from "./header.actions"; -import { TranslateModule } from "ng2-translate"; +import { TranslateModule } from "@ngx-translate/core"; import { NgbCollapseModule } from "@ng-bootstrap/ng-bootstrap"; import { Observable } from "rxjs"; diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 1b7b0ad20e..2167f7706c 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -4,7 +4,7 @@ import { RouterModule } from '@angular/router'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; -import { TranslateModule } from 'ng2-translate/ng2-translate'; +import { TranslateModule } from '@ngx-translate/core'; import { ApiService } from './api.service'; diff --git a/src/app/shared/testing/mock-translate-loader.ts b/src/app/shared/testing/mock-translate-loader.ts index a780766b25..e739dcead3 100644 --- a/src/app/shared/testing/mock-translate-loader.ts +++ b/src/app/shared/testing/mock-translate-loader.ts @@ -1,4 +1,4 @@ -import { TranslateLoader } from "ng2-translate"; +import { TranslateLoader } from "@ngx-translate/core"; import { Observable } from "rxjs"; export class MockTranslateLoader implements TranslateLoader { diff --git a/src/platform/modules/browser.module.ts b/src/platform/modules/browser.module.ts index b3d809e852..7f4081788f 100755 --- a/src/platform/modules/browser.module.ts +++ b/src/platform/modules/browser.module.ts @@ -6,7 +6,8 @@ import { UniversalModule, isBrowser, isNode } from 'angular2-universal/browser'; import { IdlePreload, IdlePreloadModule } from '@angularclass/idle-preload'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; -import { TranslateLoader, TranslateModule, TranslateStaticLoader } from 'ng2-translate'; +import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; +import { TranslateHttpLoader } from "@ngx-translate/http-loader"; import { AppModule, AppComponent } from '../../app/app.module'; import { SharedModule } from '../../app/shared/shared.module'; @@ -27,8 +28,9 @@ import { GLOBAL_CONFIG, GlobalConfig, EnvConfig } from '../../config'; // import * as LRU from 'modern-lru'; -export function createTranslateLoader(http: Http) { - return new TranslateStaticLoader(http, './assets/i18n', '.json'); +// AoT requires an exported function for factories +export function HttpLoaderFactory(http: Http) { + return new TranslateHttpLoader(http); } export function getLRU(lru?: any) { @@ -51,9 +53,11 @@ export const UNIVERSAL_KEY = 'UNIVERSAL_CACHE'; bootstrap: [AppComponent], imports: [ TranslateModule.forRoot({ - provide: TranslateLoader, - useFactory: (createTranslateLoader), - deps: [Http] + loader: { + provide: TranslateLoader, + useFactory: HttpLoaderFactory, + deps: [Http] + } }), NgbModule.forRoot(), diff --git a/src/platform/modules/node.module.ts b/src/platform/modules/node.module.ts index f8772ad3a3..492e117521 100755 --- a/src/platform/modules/node.module.ts +++ b/src/platform/modules/node.module.ts @@ -5,7 +5,8 @@ import { RouterModule } from '@angular/router'; import { UniversalModule, isBrowser, isNode } from 'angular2-universal/node'; // for AoT we need to manually split universal packages import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; -import { TranslateLoader, TranslateModule, TranslateStaticLoader } from 'ng2-translate'; +import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; +import { TranslateHttpLoader } from "@ngx-translate/http-loader"; import { AppModule, AppComponent } from '../../app/app.module'; import { SharedModule } from '../../app/shared/shared.module'; @@ -22,8 +23,9 @@ import { Meta } from '../angular2-meta'; import { GLOBAL_CONFIG, EnvConfig } from '../../config'; -export function createTranslateLoader(http: Http) { - return new TranslateStaticLoader(http, './assets/i18n', '.json'); +// AoT requires an exported function for factories +export function HttpLoaderFactory(http: Http) { + return new TranslateHttpLoader(http); } export function getLRU() { @@ -42,9 +44,11 @@ export const UNIVERSAL_KEY = 'UNIVERSAL_CACHE'; bootstrap: [AppComponent], imports: [ TranslateModule.forRoot({ - provide: TranslateLoader, - useFactory: (createTranslateLoader), - deps: [Http] + loader: { + provide: TranslateLoader, + useFactory: HttpLoaderFactory, + deps: [Http] + } }), NgbModule.forRoot(), diff --git a/webpack.config.ts b/webpack.config.ts index c51f1d2ce1..4da3f45b15 100644 --- a/webpack.config.ts +++ b/webpack.config.ts @@ -112,7 +112,7 @@ export var serverConfig = { ], }, externals: includeClientPackages( - /@angularclass|@angular|angular2-|ng2-|ng-|@ng-|angular-|@ngrx|ngrx-|@angular2|ionic|@ionic|-angular2|-ng2|-ng/ + /@angularclass|@angular|angular2-|ng2-|ng-|@ng-|angular-|@ngrx|ngrx-|@ngx-|@angular2|ionic|@ionic|-angular2|-ng2|-ng/ ), node: { global: true, diff --git a/yarn.lock b/yarn.lock index f4c40f1e12..97fa8f8cf6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -113,6 +113,14 @@ magic-string "^0.16.0" source-map "^0.5.6" +"@ngx-translate/core@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@ngx-translate/core/-/core-6.0.1.tgz#7c7a80077feb994fc815b67a72065af04d394efe" + +"@ngx-translate/http-loader@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@ngx-translate/http-loader/-/http-loader-0.0.3.tgz#8346c8d2d6f630254601029668f17abe2afe8a9b" + "@types/body-parser@0.0.33": version "0.0.33" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-0.0.33.tgz#33ca1498fc37e51c5df0c81cae34569e7041e025" @@ -3656,10 +3664,6 @@ nested-error-stacks@^1.0.0: dependencies: inherits "~2.0.1" -ng2-translate@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/ng2-translate/-/ng2-translate-4.2.0.tgz#83bc8feca329b5fc56a636e36073241c6280c659" - ngrx-store-freeze@^0.1.9: version "0.1.9" resolved "https://registry.yarnpkg.com/ngrx-store-freeze/-/ngrx-store-freeze-0.1.9.tgz#b20f18f21fd5efc4e1b1e05f6f279674d0f70c81"