@softkit/i18n
Version:
This library is a simple wrapper based on [nestjs-i18n](https://nestjs-i18n.com/)
36 lines (35 loc) • 1.65 kB
TypeScript
import { Logger } from '@nestjs/common';
import { I18nLoader } from '../loaders';
import { IfAnyOrNever, Path, PathValue } from '../types';
import { I18nOptions, I18nTranslation, I18nValidationError, I18nTranslator } from '../interfaces';
export type TranslateOptions = {
lang?: string;
args?: ({
[k: string]: any;
} | string)[] | {
[k: string]: any;
};
defaultValue?: string;
debug?: boolean;
};
export declare class I18nService<K = Record<string, unknown>> implements I18nTranslator<K> {
protected readonly i18nOptions: I18nOptions;
protected translations: I18nTranslation;
protected supportedLanguages: string[];
private readonly logger;
private readonly loaders;
private pluralRules;
constructor(i18nOptions: I18nOptions, translations: I18nTranslation, supportedLanguages: string[], logger: Logger, loaders: I18nLoader<unknown>[]);
translate<P extends Path<K> = any, R = PathValue<K, P>>(key: P, options?: TranslateOptions): IfAnyOrNever<R, string, R>;
t<P extends Path<K> = any, R = PathValue<K, P>>(key: P, options?: TranslateOptions): IfAnyOrNever<R, string, R>;
getSupportedLanguages(): string[];
getTranslations(): I18nTranslation;
refresh(): Promise<void>;
hbsHelper: <P extends Path<K> = any>(key: P, args: any, options: any) => IfAnyOrNever<PathValue<K, P>, string, PathValue<K, P>>;
resolveLanguage(lang: string): string;
validate(value: any, options?: TranslateOptions): Promise<I18nValidationError[]>;
private getFallbackLanguage;
private translateObject;
private getPluralObject;
private getNestedTranslations;
}