Zephyrnet-Logo

Wie ich i18n in Angular mit ngx-translate | einrichte Codementor

Datum:

Internationalisierung (i18n) ist ein wesentlicher Aspekt der modernen Webentwicklung und ermöglicht es Anwendungen, ein globales Publikum zu erreichen, indem sie mehrere Sprachen und Gebietsschemas unterstützen. Angular, ein beliebtes JavaScript-Framework, bietet robuste Tools und Bibliotheken, um die i18n-Implementierung zu erleichtern. In diesem Artikel werden wir untersuchen, wie ich i18n in Angular mithilfe der ngx-translate-Bibliothek einrichte, einer vielseitigen Lösung, die den Prozess der Übersetzung und Lokalisierung von Angular-Anwendungen vereinfacht.

Schritt 1: Installieren Sie ngx-translate

Um zu beginnen, müssen wir die ngx-translate-Bibliothek installieren. Öffnen Sie ein Terminalfenster und navigieren Sie zu Ihrem Angular-Projektverzeichnis. Führen Sie den folgenden Befehl aus:

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

Dieser Befehl installiert sowohl die Kernbibliothek ngx-translate als auch den http-loader, der zum Laden von Übersetzungsdateien erforderlich ist.

Schritt 2: Konfigurieren Sie ngx-translate

Als nächstes müssen wir ngx-translate in unserem Angular-Projekt konfigurieren. Im app.module.ts Datei, importieren Sie die erforderlichen Module und konfigurieren Sie den Übersetzungslader. Fügen Sie den folgenden Code zum Abschnitt „Importe“ hinzu:

import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpClient, HttpClientModule } from '@angular/common/http'; export function HttpLoaderFactory(http: HttpClient) { return new TranslateHttpLoader(http);
} @NgModule({ imports: [ HttpClientModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: HttpLoaderFactory, deps: [HttpClient] } }) ], })
export class AppModule { }

Im obigen Code importieren wir die notwendigen Module aus ngx-translate und HttpClientModule aus @angular/common/http. Wir definieren auch die HttpLoaderFactory Funktion, die zum Laden von Übersetzungsdateien über den http-Loader verwendet wird.

Schritt 3: Übersetzungsdateien erstellen

Erstellen wir nun die Übersetzungsdateien für die unterstützten Sprachen. Im Inneren src/assets/i18n Erstellen Sie im Verzeichnis eine separate JSON-Datei für jede Sprache, die Sie unterstützen möchten. Erstellen Sie zum Beispiel en.json für Englisch, es.json für Spanisch und so weiter. Diese Dateien sollten Schlüssel-Wert-Paare enthalten, wobei die Schlüssel die Übersetzungsschlüssel darstellen und die Werte den übersetzten Text enthalten. Hier ein Beispiel für den Aufbau:


{ "welcome": "Welcome to my app!", "greeting": "Hello, {name}!"
}

{ "welcome": "¡Bienvenido a mi aplicación!", "greeting": "¡Hola, {name}!"
}

Schritt 4: Implementieren Sie die Übersetzung in der Anwendung

Nachdem wir nun ngx-translate eingerichtet und die Übersetzungsdateien erstellt haben, können wir mit der Verwendung von Übersetzungen in unseren Angular-Komponenten beginnen. Nehmen wir an, wir haben eine Komponente namens AppComponent. In dem app.component.ts Datei importieren Sie die erforderlichen ngx-translate-Module:

import { Component } from '@angular/core';
import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'app-root', template: ` <h1>{{ 'welcome' | translate }}</h1> <p>{{ 'greeting' | translate: { name: 'John' } }}</p> `
})
export class AppComponent { constructor(private translate: TranslateService) { translate.setDefaultLang('en'); }
}

Im obigen Code importieren wir die TranslateService von ngx-translate und injizieren Sie es in das AppComponent. Durch die Verwendung der translate Rohr, wir können leicht

Übersetzen Sie den gewünschten Text durch Übergabe des Übersetzungsschlüssels. Wir können auch dynamische Werte mit übergeben translate Das zweite Argument von Pipe.

Schritt 5: Sprache wechseln

Abschließend implementieren wir einen Sprachumschalter, damit Benutzer zwischen verschiedenen Sprachoptionen wechseln können. Erstellen Sie eine Sprachumschalterkomponente (z. B. LanguageSwitcherComponent) und fügen Sie den folgenden Code hinzu:

import { Component } from '@angular/core';
import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'app-language-switcher', template: ` <select (change)="switchLanguage($event.target.value)"> <option value="en">English</option> <option value="es">Español</option> </select> `
})
export class LanguageSwitcherComponent { constructor(private translate: TranslateService) { } switchLanguage(language: string) { this.translate.use(language); }
}

Im obigen Code importieren wir die TranslateService und injizieren Sie es in die LanguageSwitcherComponentdem „Vermischten Geschmack“. Seine switchLanguage Methode ist an die gebunden change Ereignis eines <select> Element, mit dem Benutzer eine Sprache auswählen können. Bei der Sprachauswahl wird die switchLanguage Die Methode legt die ausgewählte Sprache mithilfe der fest translate.use() Funktion.

In diesem Artikel haben wir untersucht, wie man i18n in Angular mithilfe der ngx-translate-Bibliothek einrichtet. Wenn Sie diese Schritte befolgen, können Sie ganz einfach Sprachübersetzung und Lokalisierung zu Ihren Angular-Anwendungen hinzufügen. ngx-translate bietet einen umfassenden und unkomplizierten Ansatz für den Umgang mit i18n und ermöglicht es Ihnen, ein breiteres globales Publikum zu erreichen. Beginnen Sie also mit der Übersetzung Ihrer Anwendung und machen Sie sie Benutzern weltweit zugänglich!

spot_img

Neueste Intelligenz

spot_img