@fullerstack/ngx-i18n ![](https://raw.githubusercontent.com/neekware/fullerstack/main/libs/agx-assets/src/lib/images/tech/fullerstack-x250.png)
A simple translation library for Angular applications
![download-image](https://img.shields.io/npm/dm/@fullerstack/ngx-i18n.svg)
Overview
Description
Dealing with translation can be very hard especially if you don't want to publish different version of your application for each language you support.
In that case ngx-translate
is a great library to use. This packages encapsulates the ngx-translate
library and make it a bit easier to deploy.
@fullerstack/ngx-i18n attempts to streamline the translation of your application, while promoting DRY DRY.
How to install
npm i @fullerstack/ngx-i18n |OR| yarn add @fullerstack/ngx-i18n
How to use
import { ApplicationCfg } from '@fullerstack/ngx-config';
export const environment: ApplicationCfg = {
production: false,
i18n: {
availableLanguages: {
en: {
name: 'English',
locale: '@angular/common/locales/en',
localeExtra: '@angular/common/locales/extra/en',
},
fr: {
name: 'Français',
locale: '@angular/common/locales/fr',
localeExtra: '@angular/common/locales/extra/fr',
},
de: {
name: 'Deutsch',
locale: '@angular/common/locales/de',
localeExtra: '@angular/common/locales/extra/de',
},
},
enabledLanguages: [
'en',
'fr',
],
cacheBustingHash: 'v0.0.1',
},
};
import { ConfigModule } from '@fullerstack/ngx-config';
import { environment } from '../environments/environment';
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
ConfigModule.forRoot(environment),
I18nModule.forRoot(),
],
bootstrap: [AppComponent],
})
export class AppModule {}
import { Component } from '@angular/core';
import { I18nService } from '@fullerstack/ngx-i18n';
@Component({
selector: 'fullerstack-root',
template: `<h1>{{ 'COMMON.WELCOME' | translate }} to {{ title }}!</h1>`,
})
export class AppComponent {
title = 'Fullerstack';
constructor(i18n: I18nService) {}
}
Supported language translations in the /assets/ngx-i18n
directory of your application.
/assets/ngx-i18n/en.json
{
"COMMON.WELCOME": "Welcome",
"COMMON.ABOUT": "About"
}
/assets/ngx-i18n/fr.json
{
"COMMON.WELCOME": "Bienvenue",
"COMMON.ABOUT": "Sur"
}
Advanced usage:
import { Component } from '@angular/core';
import { I18nService } from '@fullerstack/ngx-i18n';
@Component({
selector: 'fullerstack-root',
template: `<h1>{{ 'COMMON.WELCOME' | translate }} to {{ title }}!</h1>`,
})
export class AppComponent {
direction = 'ltr';
title = 'Fullerstack';
constructor(public i18n: I18nService) {
i18n.xlate.get('COMMON.WELCOME').subscribe((res: string) => {
console.log.info(res);
});
if (i18n.isLanguageRTL('he')) {
this.direction = 'rtl';
}
i18n.setCurrentLanguage('fr');
}
}
License
Released under a (MIT) license.
Version
X.Y.Z Version
`MAJOR` version -- making incompatible API changes
`MINOR` version -- adding functionality in a backwards-compatible manner
`PATCH` version -- making backwards-compatible bug fixes