UNPKG

@gftdcojp/gftd-orm

Version:

Enterprise-grade real-time data platform with ksqlDB, inspired by Supabase architecture

123 lines 3.88 kB
/** * 翻訳機能用Reactフック */ import { TranslatorClient, TranslationItem, TranslationStats, TranslationProject, TranslationComponent, TranslationLanguage } from '../translator-client'; import { UserPayload } from '../types'; /** * 翻訳フック設定 */ interface UseTranslatorOptions { /** 言語を指定 */ language?: string; /** 名前空間を指定 */ namespace?: string; /** テナント固有の翻訳を使用 */ tenantSpecific?: boolean; /** 自動更新を有効化 */ autoRefresh?: boolean; /** 自動更新間隔(ミリ秒) */ refreshInterval?: number; /** フォールバック言語 */ fallbackLanguage?: string; /** 現在のユーザー情報 */ user?: UserPayload; /** ORM設定 */ ormConfig?: any; } /** * 翻訳機能フック */ export declare function useTranslator(options?: UseTranslatorOptions): { t: (key: string, params?: Record<string, any>, options?: { namespace?: string; fallback?: string; interpolation?: boolean; }) => string; updateTranslation: (key: string, value: string, options?: { language?: string; state?: string; }) => Promise<TranslationItem>; searchTranslations: (query: string, options?: { language?: string; limit?: number; }) => Promise<{ results: TranslationItem[]; count: number; }>; currentLanguage: string; changeLanguage: (lang: string) => Promise<void>; supportedLanguages: string[]; translations: TranslationItem[]; pendingTranslations: TranslationItem[]; stats: TranslationStats | null; progress: number; untranslatedCount: number; loading: boolean; error: string | null; initialized: boolean; canEdit: boolean; canManage: boolean; refresh: (lang?: string) => Promise<void>; refreshStats: (lang?: string) => Promise<void>; client: TranslatorClient | null; debugInfo: { initialized: boolean; translatorClient: boolean; currentLanguage: string; translationsCount: number; stats: TranslationStats | null; supportedLanguages: string[]; canEdit: boolean; canManage: boolean; loading: boolean; error: string | null; }; }; /** * 翻訳管理用フック(管理者向け) */ export declare function useTranslatorAdmin(): { projects: TranslationProject[]; components: TranslationComponent[]; languages: TranslationLanguage[]; loading: boolean; error: string | null; canManage: boolean; fetchProjects: () => Promise<void>; fetchComponents: (projectSlug?: string) => Promise<void>; fetchLanguages: (projectSlug?: string) => Promise<void>; createProject: (project: any) => Promise<TranslationProject>; createComponent: (projectSlug: string, component: any) => Promise<TranslationComponent>; initializeTenantProject: (tenantId: string) => Promise<TranslationProject>; client: TranslatorClient | null; }; /** * 翻訳統計用フック */ export declare function useTranslationStats(language?: string): { stats: TranslationStats | null; progressInfo: { total: number; translated: number; approved: number; fuzzy: number; pending: number; translatedPercent: number; approvedPercent: number; fuzzyPercent: number; pendingPercent: number; wordsTotal: number; wordsTranslated: number; wordsApproved: number; wordsTranslatedPercent: number; wordsApprovedPercent: number; lastChange: string | undefined; lastAuthor: string | undefined; } | null; loading: boolean; error: string | null; refresh: () => Promise<void>; language: string; }; export {}; //# sourceMappingURL=useTranslator.d.ts.map