@hua-labs/i18n-core 2.0.0 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +57 -597
  2. package/dist/chunk-F4PDBJLO.mjs +973 -0
  3. package/dist/chunk-F4PDBJLO.mjs.map +1 -0
  4. package/dist/index.d.mts +249 -0
  5. package/dist/index.d.ts +117 -30
  6. package/dist/index.js +1818 -177
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.mjs +845 -0
  9. package/dist/index.mjs.map +1 -0
  10. package/dist/server-4TeBq6hp.d.mts +367 -0
  11. package/dist/server-4TeBq6hp.d.ts +367 -0
  12. package/dist/server.d.mts +1 -0
  13. package/dist/server.d.ts +1 -0
  14. package/dist/server.js +977 -0
  15. package/dist/server.js.map +1 -0
  16. package/dist/server.mjs +3 -0
  17. package/dist/server.mjs.map +1 -0
  18. package/package.json +42 -19
  19. package/src/__tests__/debug-tools.test.ts +359 -0
  20. package/src/__tests__/default-translations.test.ts +179 -0
  21. package/src/__tests__/i18n-resource.test.ts +137 -0
  22. package/src/__tests__/lazy-loader.test.ts +109 -0
  23. package/src/__tests__/missing-key-overlay.test.tsx +339 -0
  24. package/src/__tests__/translator-factory.test.ts +120 -0
  25. package/src/__tests__/translator.test.ts +442 -0
  26. package/src/__tests__/types.test.ts +211 -0
  27. package/src/__tests__/useI18n.test.tsx +181 -0
  28. package/src/__tests__/useTranslation.test.tsx +110 -0
  29. package/src/components/MissingKeyOverlay.tsx +1 -1
  30. package/src/core/lazy-loader.ts +2 -2
  31. package/src/core/translator.tsx +151 -62
  32. package/src/hooks/useI18n.tsx +96 -115
  33. package/src/hooks/useTranslation.tsx +12 -10
  34. package/src/index.ts +102 -5
  35. package/src/server.ts +9 -0
  36. package/src/types/index.ts +67 -12
  37. package/LICENSE +0 -21
  38. package/dist/components/MissingKeyOverlay.d.ts +0 -33
  39. package/dist/components/MissingKeyOverlay.d.ts.map +0 -1
  40. package/dist/components/MissingKeyOverlay.js +0 -138
  41. package/dist/components/MissingKeyOverlay.js.map +0 -1
  42. package/dist/core/debug-tools.d.ts +0 -37
  43. package/dist/core/debug-tools.d.ts.map +0 -1
  44. package/dist/core/debug-tools.js +0 -241
  45. package/dist/core/debug-tools.js.map +0 -1
  46. package/dist/core/i18n-resource.d.ts +0 -59
  47. package/dist/core/i18n-resource.d.ts.map +0 -1
  48. package/dist/core/i18n-resource.js +0 -153
  49. package/dist/core/i18n-resource.js.map +0 -1
  50. package/dist/core/lazy-loader.d.ts +0 -82
  51. package/dist/core/lazy-loader.d.ts.map +0 -1
  52. package/dist/core/lazy-loader.js +0 -193
  53. package/dist/core/lazy-loader.js.map +0 -1
  54. package/dist/core/translator-factory.d.ts +0 -50
  55. package/dist/core/translator-factory.d.ts.map +0 -1
  56. package/dist/core/translator-factory.js +0 -117
  57. package/dist/core/translator-factory.js.map +0 -1
  58. package/dist/core/translator.d.ts +0 -202
  59. package/dist/core/translator.d.ts.map +0 -1
  60. package/dist/core/translator.js +0 -912
  61. package/dist/core/translator.js.map +0 -1
  62. package/dist/hooks/useI18n.d.ts +0 -39
  63. package/dist/hooks/useI18n.d.ts.map +0 -1
  64. package/dist/hooks/useI18n.js +0 -531
  65. package/dist/hooks/useI18n.js.map +0 -1
  66. package/dist/hooks/useTranslation.d.ts +0 -55
  67. package/dist/hooks/useTranslation.d.ts.map +0 -1
  68. package/dist/hooks/useTranslation.js +0 -58
  69. package/dist/hooks/useTranslation.js.map +0 -1
  70. package/dist/index.d.ts.map +0 -1
  71. package/dist/types/index.d.ts +0 -162
  72. package/dist/types/index.d.ts.map +0 -1
  73. package/dist/types/index.js +0 -191
  74. package/dist/types/index.js.map +0 -1
  75. package/dist/utils/default-translations.d.ts +0 -20
  76. package/dist/utils/default-translations.d.ts.map +0 -1
  77. package/dist/utils/default-translations.js +0 -123
  78. package/dist/utils/default-translations.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"translator.js","sourceRoot":"","sources":["../../src/core/translator.tsx"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import { I18nConfig, I18nContextType, TranslationParams, TranslationError } from '../types';
2
- /**
3
- * I18n Provider 컴포넌트
4
- */
5
- export declare function I18nProvider({ config, children }: {
6
- config: I18nConfig & {
7
- autoLanguageSync?: boolean;
8
- };
9
- children: React.ReactNode;
10
- }): import("react/jsx-runtime").JSX.Element;
11
- /**
12
- * I18n 훅
13
- */
14
- export declare function useI18n(): I18nContextType;
15
- /**
16
- * 간단한 번역 훅 (hua-api 스타일)
17
- */
18
- export declare function useTranslation(): {
19
- t: (key: string, language?: string) => string;
20
- tWithParams: (key: string, params?: TranslationParams, language?: string) => string;
21
- currentLanguage: string;
22
- setLanguage: (language: string) => void;
23
- isLoading: boolean;
24
- error: TranslationError | null;
25
- supportedLanguages: import("../types").LanguageConfig[];
26
- };
27
- /**
28
- * 언어 변경 훅
29
- */
30
- export declare function useLanguageChange(): {
31
- currentLanguage: string;
32
- changeLanguage: (language: string) => void;
33
- supportedLanguages: import("../types").LanguageConfig[];
34
- };
35
- export declare function usePreloadTranslations(): {
36
- preload: (namespaces: string[]) => Promise<void>;
37
- };
38
- export declare function useAutoLoadNamespace(namespace: string): void;
39
- //# sourceMappingURL=useI18n.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useI18n.d.ts","sourceRoot":"","sources":["../../src/hooks/useI18n.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,UAAU,CAAC;AAMlB;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,QAAQ,EACT,EAAE;IACD,MAAM,EAAE,UAAU,GAAG;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACpD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CA2cA;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,eAAe,CAiCzC;AAED;;GAEG;AACH,wBAAgB,cAAc;;;;;;;;EAY7B;AAED;;GAEG;AACH,wBAAgB,iBAAiB;;+BAiBe,MAAM;;EAcrD;AAGD,wBAAgB,sBAAsB;0BAGW,MAAM,EAAE;EAQxD;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,QAGrD"}
@@ -1,531 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useState, useEffect, useCallback, useContext, createContext, useMemo } from 'react';
4
- import { TranslatorFactory } from '../core/translator-factory';
5
- import { validateI18nConfig } from '../types';
6
- import { getDefaultTranslations } from '../utils/default-translations';
7
- // React Context
8
- const I18nContext = createContext(null);
9
- /**
10
- * I18n Provider 컴포넌트
11
- */
12
- export function I18nProvider({ config, children }) {
13
- const [currentLanguage, setCurrentLanguageState] = useState(config.defaultLanguage);
14
- const [isLoading, setIsLoading] = useState(true);
15
- const [isInitialized, setIsInitialized] = useState(false);
16
- const [error, setError] = useState(null);
17
- // 번역 로드 완료 시 리렌더링을 위한 상태
18
- const [translationVersion, setTranslationVersion] = useState(0);
19
- // config.defaultLanguage가 변경되면 currentLanguage도 업데이트
20
- // 단, 초기화 전에만 적용 (초기화 후에는 외부에서 언어 변경 가능)
21
- useEffect(() => {
22
- if (!isInitialized && config.defaultLanguage !== currentLanguage) {
23
- setCurrentLanguageState(config.defaultLanguage);
24
- }
25
- }, [config.defaultLanguage, currentLanguage, isInitialized]);
26
- // Translator 인스턴스 초기화 (메모이제이션)
27
- const translator = useMemo(() => {
28
- if (!validateI18nConfig(config)) {
29
- throw new Error('Invalid I18nConfig provided to I18nProvider');
30
- }
31
- return TranslatorFactory.create(config);
32
- }, [config]);
33
- // 초기화는 한 번만 수행
34
- useEffect(() => {
35
- if (isInitialized) {
36
- // 이미 초기화되어 있으면 언어만 변경
37
- // 단, translator의 현재 언어와 다를 때만 변경 (무한 루프 방지)
38
- const translatorLang = translator.getCurrentLanguage();
39
- if (translatorLang !== currentLanguage) {
40
- // translator의 언어를 currentLanguage로 변경
41
- // 이는 외부에서 setLanguage를 호출했을 때 발생하는 정상적인 동기화
42
- if (config.debug) {
43
- console.log(`🔄 [USEI18N] Syncing translator language: ${translatorLang} -> ${currentLanguage} (already initialized)`);
44
- }
45
- translator.setLanguage(currentLanguage);
46
- }
47
- return;
48
- }
49
- if (config.debug) {
50
- console.log('🔄 [USEI18N] useEffect triggered:', {
51
- hasTranslator: !!translator,
52
- currentLanguage,
53
- debug: config.debug,
54
- isInitialized
55
- });
56
- }
57
- const initializeTranslator = async () => {
58
- try {
59
- setIsLoading(true);
60
- setError(null);
61
- if (config.debug) {
62
- console.log('🚀 [USEI18N] Starting translator initialization...');
63
- }
64
- translator.setLanguage(currentLanguage);
65
- // 모든 번역 데이터 미리 로드
66
- await translator.initialize();
67
- setIsInitialized(true);
68
- if (config.debug) {
69
- console.log('✅ [USEI18N] Translator initialization completed successfully');
70
- }
71
- }
72
- catch (err) {
73
- const initError = err;
74
- setError(initError);
75
- if (config.debug) {
76
- console.error('❌ [USEI18N] Failed to initialize translator:', initError);
77
- }
78
- // 에러가 발생해도 초기화 완료로 표시 (기본 번역 사용)
79
- setIsInitialized(true);
80
- }
81
- finally {
82
- setIsLoading(false);
83
- }
84
- };
85
- initializeTranslator();
86
- }, [translator, currentLanguage, config.debug, isInitialized]);
87
- // 번역 로드 완료 이벤트 감지 (리렌더링 트리거)
88
- useEffect(() => {
89
- if (!translator || !isInitialized) {
90
- return;
91
- }
92
- const unsubscribe = translator.onTranslationLoaded(() => {
93
- // 번역이 로드되면 상태를 업데이트하여 리렌더링 트리거
94
- setTranslationVersion(prev => prev + 1);
95
- if (config.debug) {
96
- console.log('🔄 [USEI18N] Translation loaded, triggering re-render');
97
- }
98
- });
99
- return unsubscribe;
100
- }, [translator, isInitialized, config.debug]);
101
- // Translator의 언어 변경 감지 (외부에서 translator.setLanguage() 호출 시 동기화)
102
- useEffect(() => {
103
- if (!translator || !isInitialized) {
104
- return;
105
- }
106
- // 언어 변경 이벤트 구독
107
- const unsubscribe = translator.onLanguageChanged((newLanguage) => {
108
- if (newLanguage !== currentLanguage) {
109
- if (config.debug) {
110
- console.log(`🔄 [USEI18N] Language changed event: ${currentLanguage} -> ${newLanguage}`);
111
- }
112
- setCurrentLanguageState(newLanguage);
113
- setTranslationVersion(prev => prev + 1); // 리렌더링 트리거
114
- }
115
- });
116
- return unsubscribe;
117
- }, [translator, isInitialized, currentLanguage, config.debug]);
118
- // 자동 언어 전환 이벤트 처리
119
- useEffect(() => {
120
- if (!config.autoLanguageSync || typeof window === 'undefined') {
121
- return;
122
- }
123
- const handleLanguageChange = (event) => {
124
- const newLanguage = event.detail;
125
- if (typeof newLanguage === 'string' && newLanguage !== currentLanguage) {
126
- if (config.debug) {
127
- console.log('🌐 Auto language sync:', newLanguage);
128
- }
129
- setLanguage(newLanguage);
130
- }
131
- };
132
- // hua-i18n-sdk 언어 전환 이벤트 감지
133
- window.addEventListener('huaI18nLanguageChange', handleLanguageChange);
134
- // 일반적인 언어 변경 이벤트도 감지
135
- window.addEventListener('i18nLanguageChanged', handleLanguageChange);
136
- return () => {
137
- window.removeEventListener('huaI18nLanguageChange', handleLanguageChange);
138
- window.removeEventListener('i18nLanguageChanged', handleLanguageChange);
139
- };
140
- }, [config.autoLanguageSync, currentLanguage]);
141
- // 언어 변경 함수 (메모이제이션)
142
- const setLanguage = useCallback(async (language) => {
143
- if (!translator) {
144
- return;
145
- }
146
- // 현재 언어와 동일하면 스킵 (무한 루프 방지)
147
- const currentLang = translator.getCurrentLanguage();
148
- if (currentLang === language) {
149
- if (config.debug) {
150
- console.log(`⏭️ [USEI18N] Language unchanged, skipping: ${language}`);
151
- }
152
- return;
153
- }
154
- if (config.debug) {
155
- if (config.debug) {
156
- console.log(`🔄 [USEI18N] setLanguage called: ${currentLang} -> ${language}`);
157
- }
158
- }
159
- setIsLoading(true);
160
- try {
161
- // 언어 변경 (translate 함수에서 이전 언어의 번역을 임시로 반환하므로 깜빡임 방지)
162
- translator.setLanguage(language);
163
- setCurrentLanguageState(language);
164
- // 새로운 언어의 번역 데이터가 이미 로드되어 있는지 확인
165
- // 로드되지 않은 네임스페이스는 자동으로 로드됨 (translator 내부에서 처리)
166
- // 언어 변경 시 리렌더링 트리거 (번역 로드 완료 이벤트가 자동으로 발생)
167
- await new Promise(resolve => setTimeout(resolve, 0)); // 다음 틱에서 리렌더링
168
- if (config.debug) {
169
- console.log(`✅ [USEI18N] Language changed to ${language}`);
170
- }
171
- }
172
- catch (error) {
173
- if (config.debug) {
174
- console.error(`❌ [USEI18N] Failed to change language to ${language}:`, error);
175
- }
176
- }
177
- finally {
178
- setIsLoading(false);
179
- }
180
- }, [translator, config.debug]);
181
- // parseKey 함수를 메모이제이션하여 성능 최적화
182
- const parseKey = useCallback((key) => {
183
- const parts = key.split(':');
184
- if (parts.length >= 2) {
185
- return { namespace: parts[0], key: parts.slice(1).join(':') };
186
- }
187
- return { namespace: 'common', key };
188
- }, []);
189
- // SSR 번역에서 찾기
190
- const findInSSRTranslations = useCallback((key, targetLang) => {
191
- if (!config.initialTranslations) {
192
- return null;
193
- }
194
- const { namespace, key: actualKey } = parseKey(key);
195
- // 현재 언어의 SSR 번역 확인
196
- const ssrTranslations = config.initialTranslations[targetLang]?.[namespace];
197
- if (ssrTranslations && ssrTranslations[actualKey]) {
198
- const value = ssrTranslations[actualKey];
199
- if (typeof value === 'string') {
200
- return value;
201
- }
202
- }
203
- // 폴백 언어의 SSR 번역 확인
204
- const fallbackLang = config.fallbackLanguage || 'en';
205
- if (targetLang !== fallbackLang) {
206
- const fallbackTranslations = config.initialTranslations[fallbackLang]?.[namespace];
207
- if (fallbackTranslations && fallbackTranslations[actualKey]) {
208
- const value = fallbackTranslations[actualKey];
209
- if (typeof value === 'string') {
210
- return value;
211
- }
212
- }
213
- }
214
- return null;
215
- }, [config.initialTranslations, config.fallbackLanguage, parseKey]);
216
- // 기본 번역에서 찾기
217
- const findInDefaultTranslations = useCallback((key, targetLang) => {
218
- const { namespace, key: actualKey } = parseKey(key);
219
- const defaultTranslations = getDefaultTranslations(targetLang, namespace);
220
- const fallbackTranslations = getDefaultTranslations(config.fallbackLanguage || 'en', namespace);
221
- return defaultTranslations[actualKey] || fallbackTranslations[actualKey] || null;
222
- }, [config.fallbackLanguage, parseKey]);
223
- // hua-api 스타일의 간단한 번역 함수 (메모이제이션)
224
- // translationVersion과 currentLanguage에 의존하여 번역 로드 및 언어 변경 시 리렌더링 트리거
225
- const t = useCallback((key, language) => {
226
- // translationVersion과 currentLanguage를 참조하여 번역 로드 및 언어 변경 시 리렌더링 트리거
227
- // 의존성 배열에 포함되어 있어서 값이 변경되면 함수가 재생성됨
228
- void translationVersion;
229
- void currentLanguage;
230
- if (!translator) {
231
- return key;
232
- }
233
- const targetLang = language || currentLanguage;
234
- // 1단계: translator.translate() 시도
235
- try {
236
- const result = translator.translate(key, language);
237
- if (result && result !== key && result !== '') {
238
- return result;
239
- }
240
- }
241
- catch (error) {
242
- // translator.translate() 실패 시 다음 단계로 진행
243
- }
244
- // 2단계: SSR 번역 데이터에서 찾기
245
- const ssrResult = findInSSRTranslations(key, targetLang);
246
- if (ssrResult) {
247
- return ssrResult;
248
- }
249
- // 3단계: 기본 번역 데이터에서 찾기
250
- const defaultResult = findInDefaultTranslations(key, targetLang);
251
- if (defaultResult) {
252
- return defaultResult;
253
- }
254
- // 모든 단계에서 번역을 찾지 못한 경우
255
- if (config.debug) {
256
- return key; // 개발 환경에서는 키를 표시하여 디버깅 가능
257
- }
258
- return ''; // 프로덕션에서는 빈 문자열 반환하여 미싱 키 노출 방지
259
- }, [translator, config.debug, currentLanguage, config.fallbackLanguage, translationVersion, findInSSRTranslations, findInDefaultTranslations]);
260
- // 파라미터가 있는 번역 함수 (메모이제이션)
261
- const tWithParams = useCallback((key, params, language) => {
262
- if (!translator || !isInitialized) {
263
- return key;
264
- }
265
- return translator.translateWithParams(key, params, language);
266
- }, [translator, isInitialized]);
267
- // 기존 비동기 번역 함수 (하위 호환성)
268
- const tAsync = useCallback(async (key, params) => {
269
- if (!translator) {
270
- if (config.debug) {
271
- console.warn('Translator not initialized');
272
- }
273
- return key;
274
- }
275
- setIsLoading(true);
276
- try {
277
- const result = await translator.translateAsync(key, params);
278
- return result;
279
- }
280
- catch (error) {
281
- if (config.debug) {
282
- console.error('Translation error:', error);
283
- }
284
- return key;
285
- }
286
- finally {
287
- setIsLoading(false);
288
- }
289
- }, [translator, config.debug]);
290
- // 기존 동기 번역 함수 (하위 호환성)
291
- const tSync = useCallback((key, namespace, params) => {
292
- if (!translator) {
293
- if (config.debug) {
294
- console.warn('Translator not initialized');
295
- }
296
- return key;
297
- }
298
- return translator.translateSync(key, params);
299
- }, [translator, config.debug]);
300
- // 원시 값 가져오기 (배열, 객체 포함)
301
- const getRawValue = useCallback((key, language) => {
302
- if (!translator || !isInitialized) {
303
- return undefined;
304
- }
305
- return translator.getRawValue(key, language);
306
- }, [translator, isInitialized]);
307
- // 개발자 도구 (메모이제이션)
308
- const debug = useMemo(() => ({
309
- getCurrentLanguage: () => {
310
- try {
311
- return translator?.getCurrentLanguage() || currentLanguage;
312
- }
313
- catch {
314
- return currentLanguage;
315
- }
316
- },
317
- getSupportedLanguages: () => {
318
- try {
319
- return translator?.getSupportedLanguages() || config.supportedLanguages?.map(l => l.code) || [];
320
- }
321
- catch {
322
- return config.supportedLanguages?.map(l => l.code) || [];
323
- }
324
- },
325
- getLoadedNamespaces: () => {
326
- try {
327
- const debugInfo = translator?.debug();
328
- if (debugInfo && debugInfo.loadedNamespaces) {
329
- return Array.from(debugInfo.loadedNamespaces);
330
- }
331
- // 번역 데이터가 있으면 네임스페이스 추정
332
- if (debugInfo && debugInfo.allTranslations) {
333
- const namespaces = new Set();
334
- Object.values(debugInfo.allTranslations).forEach((langData) => {
335
- if (langData && typeof langData === 'object') {
336
- Object.keys(langData).forEach(namespace => {
337
- namespaces.add(namespace);
338
- });
339
- }
340
- });
341
- return Array.from(namespaces);
342
- }
343
- return [];
344
- }
345
- catch (error) {
346
- return [];
347
- }
348
- },
349
- getAllTranslations: () => {
350
- try {
351
- return translator?.debug()?.allTranslations || {};
352
- }
353
- catch (error) {
354
- return {};
355
- }
356
- },
357
- isReady: () => {
358
- try {
359
- return translator?.isReady() || isInitialized;
360
- }
361
- catch {
362
- return isInitialized;
363
- }
364
- },
365
- getInitializationError: () => {
366
- try {
367
- return translator?.getInitializationError() || error;
368
- }
369
- catch {
370
- return error;
371
- }
372
- },
373
- clearCache: () => {
374
- try {
375
- translator?.clearCache();
376
- }
377
- catch {
378
- // 무시
379
- }
380
- },
381
- getCacheStats: () => {
382
- try {
383
- const debugInfo = translator?.debug();
384
- if (debugInfo && debugInfo.cacheStats) {
385
- return {
386
- size: debugInfo.cacheSize || 0,
387
- hits: debugInfo.cacheStats.hits || 0,
388
- misses: debugInfo.cacheStats.misses || 0
389
- };
390
- }
391
- return { size: 0, hits: 0, misses: 0 };
392
- }
393
- catch (error) {
394
- return { size: 0, hits: 0, misses: 0 };
395
- }
396
- },
397
- reloadTranslations: async () => {
398
- if (translator) {
399
- setIsLoading(true);
400
- setError(null);
401
- try {
402
- await translator.initialize();
403
- }
404
- catch (err) {
405
- setError(err);
406
- }
407
- finally {
408
- setIsLoading(false);
409
- }
410
- }
411
- },
412
- }), [translator, currentLanguage, error, isInitialized, config.supportedLanguages]);
413
- const value = useMemo(() => ({
414
- currentLanguage,
415
- setLanguage,
416
- t,
417
- tWithParams,
418
- tAsync,
419
- tSync,
420
- getRawValue,
421
- isLoading,
422
- error,
423
- supportedLanguages: config.supportedLanguages,
424
- debug,
425
- isInitialized, // 추가: 초기화 상태 직접 노출
426
- translationVersion, // 번역 로드 완료 시 리렌더링 트리거
427
- }), [currentLanguage, setLanguage, t, tWithParams, tAsync, tSync, getRawValue, isLoading, error, config.supportedLanguages, debug, isInitialized, translationVersion]);
428
- // 의존성 배열은 이미 최적화되어 있음
429
- // t, tWithParams, tAsync, tSync, getRawValue는 모두 useCallback으로 메모이제이션됨
430
- return (_jsx(I18nContext.Provider, { value: value, children: children }));
431
- }
432
- /**
433
- * I18n 훅
434
- */
435
- export function useI18n() {
436
- const context = useContext(I18nContext);
437
- if (!context) {
438
- // Provider 밖에서 호출되면 기본값 반환
439
- return {
440
- currentLanguage: 'ko',
441
- setLanguage: () => { },
442
- t: (key) => key,
443
- tWithParams: (key) => key,
444
- tAsync: async (key) => key,
445
- tSync: (key) => key,
446
- getRawValue: () => undefined,
447
- isLoading: false,
448
- error: null,
449
- supportedLanguages: [
450
- { code: 'ko', name: 'Korean', nativeName: '한국어' },
451
- { code: 'en', name: 'English', nativeName: 'English' },
452
- ],
453
- isInitialized: false,
454
- debug: {
455
- getCurrentLanguage: () => 'ko',
456
- getSupportedLanguages: () => ['ko', 'en'],
457
- getLoadedNamespaces: () => [],
458
- getAllTranslations: () => ({}),
459
- isReady: () => false,
460
- getInitializationError: () => null,
461
- clearCache: () => { },
462
- getCacheStats: () => ({ size: 0, hits: 0, misses: 0 }),
463
- reloadTranslations: async () => { },
464
- },
465
- };
466
- }
467
- return context;
468
- }
469
- /**
470
- * 간단한 번역 훅 (hua-api 스타일)
471
- */
472
- export function useTranslation() {
473
- const { t, tWithParams, currentLanguage, setLanguage, isLoading, error, supportedLanguages } = useI18n();
474
- return {
475
- t,
476
- tWithParams,
477
- currentLanguage,
478
- setLanguage,
479
- isLoading,
480
- error,
481
- supportedLanguages,
482
- };
483
- }
484
- /**
485
- * 언어 변경 훅
486
- */
487
- export function useLanguageChange() {
488
- const context = useContext(I18nContext);
489
- // Provider 밖에서 호출되면 기본값 반환
490
- if (!context) {
491
- return {
492
- currentLanguage: 'ko',
493
- changeLanguage: () => { },
494
- supportedLanguages: [
495
- { code: 'ko', name: 'Korean', nativeName: '한국어' },
496
- { code: 'en', name: 'English', nativeName: 'English' },
497
- ],
498
- };
499
- }
500
- const { currentLanguage, setLanguage, supportedLanguages } = context;
501
- const changeLanguage = useCallback((language) => {
502
- const supported = supportedLanguages.find(lang => lang.code === language);
503
- if (supported) {
504
- setLanguage(language);
505
- }
506
- else {
507
- console.warn(`Language ${language} is not supported`);
508
- }
509
- }, [setLanguage, supportedLanguages]);
510
- return {
511
- currentLanguage,
512
- changeLanguage,
513
- supportedLanguages,
514
- };
515
- }
516
- // 기존 훅들 (하위 호환성을 위해 유지)
517
- export function usePreloadTranslations() {
518
- const context = useContext(I18nContext);
519
- const preload = useCallback(async (namespaces) => {
520
- if (!context)
521
- return;
522
- // 이미 초기화되어 있으므로 별도 로딩 불필요
523
- console.warn('usePreloadTranslations is deprecated. Translations are now preloaded automatically.');
524
- }, [context]);
525
- return { preload };
526
- }
527
- export function useAutoLoadNamespace(namespace) {
528
- // 이미 초기화되어 있으므로 별도 로딩 불필요
529
- console.warn('useAutoLoadNamespace is deprecated. All namespaces are now loaded automatically.');
530
- }
531
- //# sourceMappingURL=useI18n.js.map