Installation
The recommended way to add Transloco to your project is by running the add schematics:
ng add @jsverse/transloco
For more information, see the ng-add documentation page.
As part of the installation process, you'll be presented with questions; Once you answer them, everything you need will automatically be created.
Let's take a closer look at the updates made and the generated files:
The command will add the provideTransloco
and provideHttpClient
to your app providers:
import { ApplicationConfig, isDevMode } from '@angular/core';
import { provideHttpClient } from '@angular/common/http';
import { provideTransloco } from '@jsverse/transloco';
import { TranslocoHttpLoader } from './transloco-loader';
export const appConfig: ApplicationConfig = {
providers: [
provideHttpClient(),
provideTransloco({
config: {
availableLangs: ['en', 'es'],
defaultLang: 'en',
// Remove this option if your application doesn't support changing language in runtime.
reRenderOnLangChange: true,
prodMode: !isDevMode(),
},
loader: TranslocoHttpLoader,
}),
],
};
Transloco loader
A default http loader implementation to fetch the translation files:
import { inject, Injectable } from '@angular/core';
import { Translation, TranslocoLoader } from '@jsverse/transloco';
import { HttpClient } from '@angular/common/http';
@Injectable({ providedIn: 'root' })
export class TranslocoHttpLoader implements TranslocoLoader {
private http = inject(HttpClient);
getTranslation(lang: string) {
return this.http.get<Translation>(`/assets/i18n/${lang}.json`);
}
}
Translation JSON files
Transloco creates boilerplate files for the requested languages with an empty JSON:
{}
Transloco Global Config
This config is used by tools & plugins such as the scoped lib extractor and the keys manager.
import { TranslocoGlobalConfig } from '@jsverse/transloco-utils';
const config: TranslocoGlobalConfig = {
rootTranslationsPath: 'src/assets/i18n/',
langs: ['en', 'es'],
keysManager: {},
};
export default config;
And that's it! Now we are ready to use it in our project.
Last updated
Was this helpful?