ProductPromotion
Logo

Angular.JS

made by https://0x3d.site

GitHub - rbalet/ngx-translate-multi-http-loader: A loader for ngx-translate that loads translations with http calls
A loader for ngx-translate that loads translations with http calls - rbalet/ngx-translate-multi-http-loader
Visit Site

GitHub - rbalet/ngx-translate-multi-http-loader: A loader for ngx-translate that loads translations with http calls

GitHub - rbalet/ngx-translate-multi-http-loader: A loader for ngx-translate that loads translations with http calls

@ngx-translate/multi-http-loader

A loader for ngx-translate that loads translations using http.

npm version NPM npm bundle size npm

Angular 14 example: https://stackblitz.com/edit/ngx-translate-multi-http-loader-sample-2clau3?file=src/app/app.module.ts

Angular 6 example: https://stackblitz.com/edit/ngx-translate-multi-http-loader-sample

Get the complete changelog here: https://github.com/rbalet/ngx-translate-multi-http-loader/releases

breaking change: v9.0.0

  • This library is now using httpBackend instead of the httpClient, to avoid being delayed by interceptor, which was creating errors while loading.
  • From the v9, the library will only be using a list of string[] so prefix & suffix aren't needed anymore and .json gonna be the default suffix.

Installation

We assume that you already installed ngx-translate.

Now you need to install the npm module for MultiTranslateHttpLoader:

npm install ngx-translate-multi-http-loader

Choose the version corresponding to your Angular version:

Angular @ngx-translate/core ngx-translate-multi-http-loader
>= 16 15.x+ >= 15.x+
15 14.x+ 9.x+
14 14.x+ 8.x+
13 14.x+ 7.x+
6 10.x+ 1.x+

Usage

The MultiTranslateHttpLoader uses HttpBackend to load translations, therefore :

  1. Create and export a new HttpLoaderFactory function
  2. Import the HttpClientModule from @angular/common/http
  3. Setup the TranslateModule to use the MultiTranslateHttpLoader
import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {HttpClientModule, HttpBackend} from '@angular/common/http';
import {TranslateModule, TranslateLoader} from '@ngx-translate/core';
import {MultiTranslateHttpLoader} from 'ngx-translate-multi-http-loader';
import {AppComponent} from './app';

// AoT requires an exported function for factories
export function HttpLoaderFactory(_httpBackend: HttpBackend) {
    return new MultiTranslateHttpLoader(_httpBackend, ['/assets/i18n/core/', '/assets/i18n/vendors/']); // /i18n/core/ on angular >= v18 with the new public logic
}

@NgModule({
    imports: [
        BrowserModule,
        HttpClientModule,
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: HttpLoaderFactory,
                deps: [HttpBackend]
            }
        })
    ],
    bootstrap: [AppComponent]
})
export class AppModule { }

The MultiTranslateHttpLoader takes a list of string[] or TranslationResource[].

String[]

For example ['/assets/i18n/core/', '/assets/i18n/vendors/'],
will load your translations files for the lang "en" from : /assets/i18n/core/en.json and /assets/i18n/vendors/en.json

Custom suffix

For now this loader only support the json format.

Instead of an array of string[],
you may pass a list of parameters:

  • prefix: string = '/assets/i18n/'
  • suffix: string = '.json'
  • optional: boolean = true
export function HttpLoaderFactory(_httpBackend: HttpBackend) {
    return new MultiTranslateHttpLoader(_httpBackend, [
        {prefix: './assets/i18n/core/', suffix: '.json'},
        {prefix: './assets/i18n/vendors/'}, // , "suffix: '.json'" being the default value
        {prefix: './assets/i18n/non-existent/', optional: true}, // Wont create any log
    ]);
}

The loader will merge all translation files from the server

Possible error & Bugfix

values.at is not a function

  1. Install core-js
  2. In polyfills.ts, add import 'core-js/modules/es.array.at'

Authors and acknowledgment

BuyMeACoffee

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory