@ngx-universal/translate-loader
v5.0.0
Published
Loader for ngx-translate that provides translations to browser/server platforms
Downloads
1,551
Maintainers
Readme
@ngx-universal/translate-loader
Loader for ngx-translate that provides application settings to browser/server platforms
Please support this project by simply putting a Github star. Share this library with friends on Twitter and everywhere else you can.
NOTICE
This 5.x.x branch is intented to work with
@angular v5.x.x
. If you're developing on a later release of Angular thanv5.x.x
, then you should probably choose the appropriate version of this library by visiting the master branch.
Table of contents:
Prerequisites
This library depends on Angular v4.0.0
. Older versions contain outdated dependencies, might produce errors.
Also, please ensure that you are using Typescript v2.5.3
or higher.
Getting started
Installation
You can install @ngx-universal/translate-loader
using npm
npm install @ngx-universal/translate-loader --save
Note: You should have already installed [@ngx-translate/core].
Examples
- ng-seed/universal is an officially maintained seed project, showcasing common patterns and best practices for
@ngx-universal/translate-loader
.
Related packages
The following packages may be used in conjunction with @ngx-universal/translate-loader
:
- [@ngx-translate/core]
- @ngx-translate/http-loader
Adding @ngx-universal/translate-loader
to your project (SystemJS)
Add map
for @ngx-universal/translate-loader
in your systemjs.config
'@ngx-universal/translate-loader': 'node_modules/@ngx-universal/translate-loader/bundles/translate-loader.umd.min.js'
Settings
Setting up @ngx-translate
to use UniversalTranslateLoader
UniversalTranslateLoader
requires a browserLoader
(ex: TranslateHttpLoader
) and settings (path prefix and suffix)
for the built-in fs-loader
to load translations on both platforms.
- Import
TranslateModule
using the mapping'@ngx-translate/core'
and appendTranslateModule.forRoot({...})
within the imports property of app.module. - Import
UniversalTranslateLoader
using the mapping'@ngx-universal/translate-loader'
.
Note: Considering the app.module is the core module in Angular application.
app.module.ts
...
import { HttpClient } from '@angular/common/http';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { UniversalTranslateLoader } from '@ngx-universal/translate-loader';
...
export function translateFactory(platformId: any, http: HttpClient): TranslateLoader {
const browserLoader = new TranslateHttpLoader(http);
return new UniversalTranslateLoader(platformId, browserLoader, './public/assets/i18n');
}
@NgModule({
declarations: [
AppComponent,
...
],
...
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (translateFactory),
deps: [PLATFORM_ID, Http]
}
}),
...
],
...
bootstrap: [AppComponent]
})
export class AppModule {
constructor(@Inject(PLATFORM_ID) private readonly platformId: any) {
}
}
UniversalTranslateLoader
has four parameters:
- platformId:
any
: the platform identifier (should be injected to module constructor by thePLATFORM_ID
token) - browserLoader:
TranslateLoader
: the loader which will run on thebrowser
platform (ex:TranslateHttpLoader
) - prefix:
string
: path prefix (by default'/assets/i18n/'
) - suffix:
string
: file extension/path suffix (by default'.json'
)
:+1: Well!
@ngx-universal/translate-loader
will now provide translations to browser/server platforms.
License
The MIT License (MIT)
Copyright (c) 2018 Burak Tasci