UNPKG

ai-i18n-translator

Version:

AI-powered i18n auto-translation tool with pluggable extractors, translators, and organizers

63 lines (55 loc) 2 kB
// Extract parameter names from translation strings with {{param}} format type ExtractParams<T extends string> = T extends `${infer _Start}{{${infer Param}}}${infer Rest}` ? Param | ExtractParams<Rest> : never; // Ensure all required parameters are provided type RequiredParams<T extends string> = ExtractParams<T> extends never ? {} : { [K in ExtractParams<T>]: string | number }; // Translation options with optional metadata export interface TranslationOptions { description?: string; plural?: boolean | object; ns?: string; [key: string]: any; } // Combined options type that enforces required parameters type OptionsWithParams<T extends string> = RequiredParams<T> & TranslationOptions; export interface TranslationMetadata { key: string; description?: string; plural?: object; ns?: string; } export interface WrapperInstance { t2: <T extends string>( key: T, ...args: ExtractParams<T> extends never ? [options?: TranslationOptions] : [options: OptionsWithParams<T>] ) => string; exportKeysForTranslation: () => Record<string, TranslationMetadata[]>; clearExtractedKeys: () => void; getExtractedKeys: () => TranslationMetadata[]; } export function initWithI18next(tFunction: Function): any; export function t2<T extends string>( key: T, ...args: ExtractParams<T> extends never ? [options?: TranslationOptions] : [options: OptionsWithParams<T>] ): string; export function exportKeysForTranslation(): Record<string, TranslationMetadata[]>; export function clearExtractedKeys(): void; export function getExtractedKeys(): TranslationMetadata[]; export function createWrapper(tFunction: Function): WrapperInstance; declare const _default: { initWithI18next: typeof initWithI18next; t2: typeof t2; exportKeysForTranslation: typeof exportKeysForTranslation; clearExtractedKeys: typeof clearExtractedKeys; getExtractedKeys: typeof getExtractedKeys; createWrapper: typeof createWrapper; }; export default _default;