108 lines
3.3 KiB
TypeScript
108 lines
3.3 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import {InjectionToken} from '../di/injection_token';
|
|
|
|
/**
|
|
* Provide this token to set the locale of your application.
|
|
* It is used for i18n extraction, by i18n pipes (DatePipe, I18nPluralPipe, CurrencyPipe,
|
|
* DecimalPipe and PercentPipe) and by ICU expressions.
|
|
*
|
|
* See the [i18n guide](guide/i18n#setting-up-locale) for more information.
|
|
*
|
|
* ### Example
|
|
*
|
|
* ```typescript
|
|
* import { LOCALE_ID } from '@angular/core';
|
|
* import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
* import { AppModule } from './app/app.module';
|
|
*
|
|
* platformBrowserDynamic().bootstrapModule(AppModule, {
|
|
* providers: [{provide: LOCALE_ID, useValue: 'en-US' }]
|
|
* });
|
|
* ```
|
|
*
|
|
* @experimental i18n support is experimental.
|
|
*/
|
|
export const LOCALE_ID = new InjectionToken<string>('LocaleId');
|
|
|
|
/**
|
|
* Use this token at bootstrap to provide the content of your translation file (`xtb`,
|
|
* `xlf` or `xlf2`) when you want to translate your application in another language.
|
|
*
|
|
* See the [i18n guide](guide/i18n#merge) for more information.
|
|
*
|
|
* ### Example
|
|
*
|
|
* ```typescript
|
|
* import { TRANSLATIONS } from '@angular/core';
|
|
* import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
* import { AppModule } from './app/app.module';
|
|
*
|
|
* // content of your translation file
|
|
* const translations = '....';
|
|
*
|
|
* platformBrowserDynamic().bootstrapModule(AppModule, {
|
|
* providers: [{provide: TRANSLATIONS, useValue: translations }]
|
|
* });
|
|
* ```
|
|
*
|
|
* @experimental i18n support is experimental.
|
|
*/
|
|
export const TRANSLATIONS = new InjectionToken<string>('Translations');
|
|
|
|
/**
|
|
* Provide this token at bootstrap to set the format of your {@link TRANSLATIONS}: `xtb`,
|
|
* `xlf` or `xlf2`.
|
|
*
|
|
* See the [i18n guide](guide/i18n#merge) for more information.
|
|
*
|
|
* ### Example
|
|
*
|
|
* ```typescript
|
|
* import { TRANSLATIONS_FORMAT } from '@angular/core';
|
|
* import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
* import { AppModule } from './app/app.module';
|
|
*
|
|
* platformBrowserDynamic().bootstrapModule(AppModule, {
|
|
* providers: [{provide: TRANSLATIONS_FORMAT, useValue: 'xlf' }]
|
|
* });
|
|
* ```
|
|
*
|
|
* @experimental i18n support is experimental.
|
|
*/
|
|
export const TRANSLATIONS_FORMAT = new InjectionToken<string>('TranslationsFormat');
|
|
|
|
/**
|
|
* Use this enum at bootstrap as an option of `bootstrapModule` to define the strategy
|
|
* that the compiler should use in case of missing translations:
|
|
* - Error: throw if you have missing translations.
|
|
* - Warning (default): show a warning in the console and/or shell.
|
|
* - Ignore: do nothing.
|
|
*
|
|
* See the [i18n guide](guide/i18n#missing-translation) for more information.
|
|
*
|
|
* ### Example
|
|
* ```typescript
|
|
* import { MissingTranslationStrategy } from '@angular/core';
|
|
* import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
* import { AppModule } from './app/app.module';
|
|
*
|
|
* platformBrowserDynamic().bootstrapModule(AppModule, {
|
|
* missingTranslation: MissingTranslationStrategy.Error
|
|
* });
|
|
* ```
|
|
*
|
|
* @experimental i18n support is experimental.
|
|
*/
|
|
export enum MissingTranslationStrategy {
|
|
Error = 0,
|
|
Warning = 1,
|
|
Ignore = 2,
|
|
}
|