UNPKG

i18n-llm-translate

Version:

Automatically translates namespace-based JSON translation files across multiple languages from any source language

56 lines (55 loc) 2 kB
export type TranslateOptionsNamesMappingLanguagesCallback = (languageCode: string, options: TranslateOptions) => string; /** * Parameters: {language} * Default value: {language} */ export type TranslateOptionsNamesMappingLanguagesBasicConfig = { base?: string; targets?: string; }; export type TranslateOptionsNamesMappingLanguages = TranslateOptionsNamesMappingLanguagesCallback | TranslateOptionsNamesMappingLanguagesBasicConfig; export interface TranslateOptionsNamesMapping { languages?: TranslateOptionsNamesMappingLanguages; /** * Default: .translations-cache */ jsonCache?: string; } export interface TranslateOptions { languagesDirectoryPath: string; baseLanguageCode: string; targetLanguageCodes: string[]; namesMapping?: TranslateOptionsNamesMapping; applicationContextEntries: string[]; cleanup?: boolean; debug?: boolean; } export interface TranslateEngineTranslateResult { [key: string]: Record<string, any>; } export interface TranslateEngine { name: string; translate(translations: Record<string, any>, options: TranslateOptions): Promise<TranslateEngineTranslateResult>; translateMissed(missingTranslations: TranslateNamespaceMissingTranslations, options: TranslateOptions): Promise<TranslateEngineTranslateResult>; } export interface TranslationsByLanguage { [languageCode: string]: Record<string, any>; } export interface TranslateNamespaceMissingTranslations { /** * Only these which are missed in target languages */ baseLanguageTranslations: Record<string, any>; targetLanguageTranslationsKeys: TranslationsByLanguage; } export interface TranslateNamespace { jsonFileName: string; baseLanguageTranslations: Record<string, any>; targetLanguages: { dirty: boolean; languageCode: string; translations: Record<string, any>; }[]; write(): Promise<void>; getMissingTranslations(): TranslateNamespaceMissingTranslations | undefined; }