OTranslateService

For translations, Ontimize Web use OTranslateService which is a service and a pipe to handle any dynamic and static content you can help you make your app available in multiples languages.

Define the translations

Once you’ve installed ontimize-web-ngx, you can put your translations in a json file (locale_id.json) in src/assets/i18n folder. There must be at least one language translation file for the resulting translation. OTranslateService understands nested JSON objects.

{
    "HOME": {
        "HELLO": "hello"
    }
}

You can then access the value by using the dot notation, in this case HOME.HELLO.

Init the OTranslateService for your application.


import { Subscription } from 'rxjs';
import { Component } from '@angular/core';
import { OTranslateService } from "ontimize-web-ngx";

@Component({
    selector: 'app',
    template: `
        ...
    `
})
export class AppComponent {

  private translateServiceSubscription :Subscription;

  constructor(translate: OTranslateService) {
    this.translateServiceSubscription = this.translateService.onLanguageChanged.subscribe(() => {
      // your code
    });

  });


  public ngOnDestroy(): void {
    if (this.translateServiceSubscription) {
      this.translateServiceSubscription.unsubscribe();
    }
  }
}

Having the following entry in the bundle file:

  {
    ...
    "EXAMPLE": "Example bundle text: {0}, {1}", 
    ...
  }

User can add in the html file:

    {{ 'EXAMPLE' | oTranslate : { values: ['foo', 'bar'] }}}"

And get the following result:

      'Example bundle text: foo, bar'