Skip to main content
Version: 5.x.x

API

The @tolgee/ngx library exports the following components and all available components from @tolgee/web.

NgxTolgeeModule

This is Tolgee Module. The module exports [TranslatePipe] and [TComponent]. To use Tolgee in your Angular application, you must import the NgxTolgeeModule in your application module.

Example usage:

@NgModule({
imports: [
NgxTolgeeModule,
...
],
providers: [
{
provide: TOLGEE_INSTANCE,
...
},
],
...
})

TOLGEE_INSTANCE

The injection token to provide Tolgee instance.

@NgModule({
imports: [
NgxTolgeeModule,
...
],
providers: [
{
provide: TOLGEE_INSTANCE,
useFactory: () => {
return Tolgee()
.use(LanguageDetector())
.use(FormatIcu())
.use(DevTools())
.init({
staticData: {
en: () => import('../i18n/en.json'),
cs: () => import('../i18n/cs.json'),
},
apiUrl: environment.tolgeeApiUrl,
apiKey: environment.tolgeeApiKey,
fallbackLanguage: 'en',
defaultLanguage: 'en',
});
},
},
],
...
})

TranslateService

Contains methods to translate text used by other components.

property tolgee

The Tolgee instance.

property language

Returns string containing current language.

this.translateService.language // "en"

property languageAsync

Returns Observable<string> emitting current language. When language is changed and loaded, the new value is emitted.

method changeLanguage

Sets current language.

this.translateService.setLang('en');

method translate

Returns Observable emitting current translation for specified parameters and current language. When the current value changes due to an event (e.g. language change), the new value gets emitted.

this.subscription = this.translateService
.translate('this_is_a_key_with_params', { key: 'value' }, 'Default value')
.subscribe((val) => (this.translated = val));

This method accepts the same arguments as Tolgee.t method.

translate(key: string, defaultValue?: string, options?: CombinedOptions): Observable<string>
translate(key: string, options?: CombinedOptions): Observable<string>
translate(props: TranslateProps): Observable<string>

method instant

Returns string providing current translation value depending on the current language.

const translated = this.translateService
.instant('this_is_a_key_with_params', { key: 'value' }, 'Default value')

This method accepts the same arguments as Tolgee.t method.

instant(key: string, defaultValue?: string, options?: CombinedOptions): string
instant(key: string, options?: CombinedOptions): string
instant(props: TranslateProps): string

parameter language

The language to be set.

returns Promise<void> relved when language data is loaded

method on

Listens to Tolgee events.

parameter event

The event to listen to

returns Observable<?> emitting when the event is triggered, providing event-specific data.

Read more in Events API

method start

Runs the Tolgee.run method from the @tolgee/core library outside Angular's NgZone.

TComponent

Component with t attribute selector. Replaces the content of the element with the translated value.

  • Input key - Key to translate
  • Input ns - The namespace of the key
  • Input params - Object of parameters to interpolate
  • Input default - Default value
  • Input isHtml - Whether the input should be treated as HTML.
  • Input noWrap - Disable wrapping
  • Input language - Override current Tolgee language. This way you can switch to different language for separate translation. Load the language manually with tolgee.loadRecord.
<div
t
key="this_is_a_key_with_params"
[params]="{key: 'value', key2: 'value2'}"
></div>

translate pipe

Translates a key with specific parameters or default value. The transform method of translate pipe accepts the same arguments as the tolgee.t method.

Example usages:

{{ 'this_key_does_not_exist' | translate:'This is default'}}
{{ 'this_is_a_key_with_params' | translate:{key: 'value', key2: 'value2'} }}
{{ 'this_is_a_key_with_params' | translate:"Default value":{key: 'value', key2: 'value2'} }}
{{ { key: 'this_is_a_key', defaultValue: 'Jeeey!' } | translate}}

NamespaceResolver

A resolver to load namespaces while loading lazy module. Set data.tolgeeNamespace property to set the namespace to load.