Angular Translation Files Tutorial πŸŒπŸ”„

beginner
7 min

Angular Translation Files Tutorial πŸŒπŸ”„

Welcome back to CodeYourCraft! Today, we're going to delve into a fascinating aspect of Angular - Translation Files. This lesson is designed for both beginners and intermediate learners, so let's get started! 🎯

What are Translation Files? πŸ“

Translation Files, also known as i18n files (i18n stands for internationalization), are used to localize the content of an Angular application. This means translating the application's text into different languages.

Why do we need Translation Files? πŸ’‘

Translation Files are crucial for making your applications accessible to a global audience. By providing translations, you can reach more users and create a better user experience.

Setting up Translation Files πŸ“

Angular provides Angular Language Service for managing translations. To start, we need to install it:

bash
ng add @ngx-translate/core ng add @ngx-translate/http-loader

Creating Translation Files πŸ“

Translation files are usually in .json format. Let's create a translation file for our application in the src/assets/i18n directory:

json
// src/assets/i18n/en.json { "Welcome": "Welcome", "Home": "Home", "About": "About" }

Using Translation Files πŸ’‘

To use the translation file, we need to inject TranslateService and use its methods:

typescript
import { Component } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'app-root', template: ` <h1>{{ 'Welcome' | translate }}</h1> <nav> <a routerLink="home">Home</a> <a routerLink="about">About</a> </nav> ` }) export class AppComponent { constructor(private translate: TranslateService) { this.translate.setDefaultLang('en'); } }

Loading Multiple Languages πŸ“

To load multiple languages, we need to update our app.module.ts:

typescript
import { BrowserModule } from '@angular/platform-browser'; import { NgModule, LOCALE_ID } from '@angular/core'; import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; import { TranslateModule, TranslateLoader, TranslateService } from '@ngx-translate/core'; import { TranslateHttpLoader } from '@ngx-translate/http-loader'; import { AppComponent } from './app.component'; import { HomeComponent } from './home/home.component'; import { AboutComponent } from './about/about.component'; import { registerLocaleData } from '@angular/common'; import localeEn from '@angular/common/locales/en'; import localeFr from '@angular/common/locales/fr'; registerLocaleData(localeEn); registerLocaleData(localeFr); @NgModule({ declarations: [ AppComponent, HomeComponent, AboutComponent ], imports: [ BrowserModule, HttpClientModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useClass: TranslateHttpLoader } }) ], providers: [ TranslateService, { provide: LOCALE_ID, useValue: 'en' }, ], bootstrap: [AppComponent] }) export class AppModule { }

Changing Language πŸ’‘

To change the language, we can use the changeLanguage method of TranslateService:

typescript
import { Component } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'app-header', template: ` <button (click)="changeLanguage('fr')">FranΓ§ais</button> ` }) export class HeaderComponent { constructor(private translate: TranslateService) { } changeLanguage(language: string) { this.translate.use(language); } }
Quick Quiz
Question 1 of 1

Which Angular service is used to manage translations?

That's all for today! In the next lesson, we'll dive deeper into Angular's translation capabilities. Until then, keep coding and learning! πŸ’»πŸ’ͺ