How To Translate in Angular 8 Application

How To Translate in Angular 8 Application

In this article, we will discuss Internationalization in Angular 8 using ngx-translate library.

In this article, we will discuss Internationalization in Angular 8 using ngx-translate library.

NGX-Translate is an internationalization library for Angular. Internationalization is the process of translating an application into multiple languages. Using this library, we can translate our application language into multiple languages. This will work with not only static data, but dynamic data as well.

Prerequisites

  • Basic knowledge of Angular.
  • Node and NPM installed.
  • Visual Studio Code.

If you're new to Angular, then you can follow this tutorial on getting started. 

Angular is a TypeScript-based, open source web application framework developed by Google. Angular is a platform for building mobile, desktop, and web applications.

You may also like: To Writing Clean code in Angular - What do you need to do?.

TypeScript

TypeScript is an open source programming language developed and maintained by Microsoft. TypeScript is a superset of JavaScript that compiles to plain JavaScript.

Development Environment Required Software,

  1. Node.js is an open source, cross-platform JavaScript runtime environment that executes JavaScript code outside of a browser. See Node.js' website for download and installation. 
  2. Angular CLI is a command line interface tool that we use to initialize, develop, and maintain Angular applications. Download this with the following command: npm install -g @angular/cli 
  3. Visual Studio Code — optional download link here

Step 1

Create a new Angular project by using the following command. First, we need to set a path for creating a new angular app.

 ng new MultilanguageApp 

This is image title

Creating a new Angular project

Now, open this project in Visual Studio Code. To open this in Visual Studio Code, choose the project path and run below command.

 code . 

Step 2

Now, install the ngx-translate library by using the following commands. We can install bootstrap and jquery for design.

npm install @ngx-translate/core --save

npm install @ngx-translate/http-loader --save

npm install [email protected] jquery –save

Example of how to run the previous commands:

This is image title

Output of previous commands

After installing the bootstrap package, we have to add reference of the CSS file on the styles.css file. To do this, fun the following command:

 @import "~bootstrap/dist/css/bootstrap.css"; 

Step 3

Import the necessary modules into app.module.ts.

This is image title

Installing necessary modules

Step 4

Now, expand the src folder and right-click on the Assets folder. Add a new folder under it and rename that to "i18" and add JSON files to this folder (based on how many languages you want to translate. I'm showing an example of two language English and French so I'm creating two files).

  1. en.json 
  2. fr.json 

The JSON file is a combination of a key-value pair.

Examples:

This is image title

Example of JSON file

This is image title

Example of key-value pairs

Step 5

Open the en.json file and paste the following code

{  
    "Addemployee": "Add-employee",  
    "Name": "Name",  
    "Email": "Email",  
    "PhoneNo": "Phone No",  
    "Submit": "Submit",  
    "Cancel": "Cancel",  
    "Home": "Home",  
    "Employee": "Employee",  
    "EmployeeList": "Employee List"  
}  

Step 6

Open fr.json file and paste the following code.

{  
    "Addemployee": "Ajouter employé",  
    "Name": "prénom",  
    "Email": "Email",  
    "PhoneNo": "Pas de téléphone",  
    "Submit": "Soumettre",  
    "Cancel": "Annuler",  
    "Home": "Accueil",  
    "Employee": "Employée",  
    "EmployeeList": "Liste des employés"  
}  

Step 7

Open the app.component.html file and paste the following code.






    Welcome to {{ title }}!  


      {{ lang }}  





      {{ 'Home' | translate }}  
      {{ 'Employee' | translate }}  
      {{ 'EmployeeList' | translate }}  
      [EmployeeList(Reload)](employeelist "EmployeeList(Reload)") -->  





Ex.

This is image title

Declaring key and translating text

Step 8

Open the app.component.ts file and paste the following code.

import { Component } from '@angular/core';  
import { TranslateService } from '@ngx-translate/core';  

@Component({  
  selector: 'app-root',  
  templateUrl: './app.component.html',  
  styleUrls: ['./app.component.css']  
})  
export class AppComponent {  
  title = 'MultilanguageApp';  

  constructor(  
    public translate: TranslateService) {  
    translate.addLangs(['en', 'fr']);  
    if (localStorage.getItem('locale')) {  
      const browserLang = localStorage.getItem('locale');  
      translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');  
    } else {  
      localStorage.setItem('locale', 'en');  
      translate.setDefaultLang('en');  
    }  
  }  
  changeLang(language: string) {  
    localStorage.setItem('locale', language);  
    this.translate.use(language);  
  }  
} 

Ex.

This is image title

Import service on constructor

Step 9

Run this command for hosting the application with default port 4200.

This is image title

Running the command on port 4200

Output Window

This is image title

Final output

Summary

In this article, we discussed ngx-translate with a demo example.

NGX-Translate is an internationalization library for Angular. Internationalization is the process of translating our application into multiple languages. In my next article, I will discuss an Angular i18n language translator and Paypal subscription payment integration using Angular 8. Any feedback related to this article is most welcome!

Thank for reading! Please share if you liked it!

angular angular-js web-development

What's new in Bootstrap 5 and when Bootstrap 5 release date?

How to Build Progressive Web Apps (PWA) using Angular 9

What is new features in Javascript ES2020 ECMAScript 2020

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Random Password Generator Online

HTML Color Picker online | HEX Color Picker | RGB Color Picker

Important reasons for developers to adopt Angular JS development

In the current scenarios, e-commerce companies are very keen to create an online impact. The web and app development market are at its peak of popularity. There is a high demand for web and app developers with a growing number of websites. Angular...

Top Web Application Developer

You can also contact a web application development company for your business but then why not to contact the best web application development company that can turn up your business and customer satisfaction ratio to sky touching heights.

Top Vue.js Developers in USA

Vue.js is an extensively popular JavaScript framework with which you can create powerful as well as interactive interfaces. Vue.js is the best framework when it comes to building a single web and mobile apps.

Hire React Js Developer from Expert React JS Development Company

Are you looking to [hire React JS developer](https://www.mobiwebtech.com/react-js-development-company/ "hire React JS developer") from a prestigious and reliable React JS development company? Visit at Mobiweb Technologies here we have a big team...