i18ntk
Version:
i18n Tool Kit - Zero-dependency internationalization toolkit for setup, scanning, analysis, validation, auto translation, fixing, reporting, and runtime translation loading.
60 lines (58 loc) • 3.89 kB
TypeScript
/** @deprecated Use i18ntk/runtime, /runtime/node, /runtime/static, or /runtime/fetch. */
import type { InitOptions, RuntimeEvent, RuntimeInstance, TranslateParams, TranslationOptions } from './index';
export interface EnhancedOptions extends InitOptions {
defaultLanguage?: string;
encryption?: { enabled?: boolean; key?: string };
cache?: { enabled?: boolean; maxSize?: number; ttl?: number };
security?: { validateInputs?: boolean; sanitizeOutput?: boolean; maxKeyLength?: number; maxValueLength?: number };
}
export class ValidationError extends Error { code: 'I18NTK_RUNTIME_VALIDATION'; details: Record<string, unknown>; }
export class I18nEnhancedRuntime {
constructor(options?: EnhancedOptions);
translate(key: string, params?: TranslateParams, options?: TranslationOptions): Promise<string>;
t(key: string, params?: TranslateParams, options?: TranslationOptions): Promise<string>;
translateBatch(keys: string[], params?: TranslateParams | TranslateParams[], options?: TranslationOptions): Promise<string[]>;
translateEncrypted(key: string, params?: TranslateParams, options?: TranslationOptions): Promise<string | EncryptedPayload>;
translateBatchEncrypted(keys: string[], params?: TranslateParams | TranslateParams[], options?: TranslationOptions): Promise<Array<string | EncryptedPayload>>;
updateConfig(options: Partial<EnhancedOptions>): Promise<this>;
getConfig(): EnhancedOptions;
setLanguage(locale: string): void;
getLanguage(): string;
getAvailableLanguages(): string[];
refresh(locale?: string): void;
clearCache(locale?: string): void;
has(key: string, options?: TranslationOptions): boolean;
subscribe(listener: (event: RuntimeEvent) => void): () => void;
on(type: string, listener: (event: RuntimeEvent) => void): this;
off(type: string, listener: (event: RuntimeEvent) => void): this;
addNamespace(name: string, translations: Record<string, Record<string, unknown>>): void;
removeNamespace(name: string): void;
getNamespace(name: string): Record<string, Record<string, unknown>> | null;
listNamespaces(): string[];
addPlugin(plugin: { name: string; transform?(value: string): string }): () => void;
removePlugin(name: string): void;
getDiagnostics(): Array<Record<string, unknown>>;
getMetrics(): Record<string, number>;
resetMetrics(): void;
getCacheInfo(): import('./index').RuntimeCacheInfo;
setEncryptionKey(key: string): void;
getEncryptionStatus(): boolean;
encryptData(value: string): Promise<EncryptedPayload>;
decryptData(payload: EncryptedPayload): Promise<string>;
createTypedTranslator(): { t: I18nEnhancedRuntime['translate']; translate: I18nEnhancedRuntime['translate'] };
getTranslationMetadata(key: string): { text: string; language: string; key: string; params: Record<string, unknown>; encrypted: boolean };
sanitizeTranslation(text: unknown): string;
dispose(): void;
cleanup(): void;
}
export interface EncryptedPayload { encrypted: string; iv: string; authTag: string; }
export function initI18nRuntime(options?: EnhancedOptions): Promise<I18nEnhancedRuntime>;
export const initRuntime: typeof initI18nRuntime;
export function getDefaultRuntime(): I18nEnhancedRuntime;
export function translate(key: string, params?: TranslateParams, options?: TranslationOptions): Promise<string>;
export const t: typeof translate;
export const tTyped: typeof translate;
export function translateBatch(keys: string[], params?: TranslateParams | TranslateParams[], options?: TranslationOptions): Promise<string[]>;
export function translateEncrypted(key: string, params?: TranslateParams, options?: TranslationOptions): Promise<string | EncryptedPayload>;
export function translateBatchEncrypted(keys: string[], params?: TranslateParams | TranslateParams[], options?: TranslationOptions): Promise<Array<string | EncryptedPayload>>;
export function generateEncryptionKey(): string;