@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.
- package/README.md +57 -597
- package/dist/chunk-F4PDBJLO.mjs +973 -0
- package/dist/chunk-F4PDBJLO.mjs.map +1 -0
- package/dist/index.d.mts +249 -0
- package/dist/index.d.ts +117 -30
- package/dist/index.js +1818 -177
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +845 -0
- package/dist/index.mjs.map +1 -0
- package/dist/server-4TeBq6hp.d.mts +367 -0
- package/dist/server-4TeBq6hp.d.ts +367 -0
- package/dist/server.d.mts +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.js +977 -0
- package/dist/server.js.map +1 -0
- package/dist/server.mjs +3 -0
- package/dist/server.mjs.map +1 -0
- package/package.json +42 -19
- package/src/__tests__/debug-tools.test.ts +359 -0
- package/src/__tests__/default-translations.test.ts +179 -0
- package/src/__tests__/i18n-resource.test.ts +137 -0
- package/src/__tests__/lazy-loader.test.ts +109 -0
- package/src/__tests__/missing-key-overlay.test.tsx +339 -0
- package/src/__tests__/translator-factory.test.ts +120 -0
- package/src/__tests__/translator.test.ts +442 -0
- package/src/__tests__/types.test.ts +211 -0
- package/src/__tests__/useI18n.test.tsx +181 -0
- package/src/__tests__/useTranslation.test.tsx +110 -0
- package/src/components/MissingKeyOverlay.tsx +1 -1
- package/src/core/lazy-loader.ts +2 -2
- package/src/core/translator.tsx +151 -62
- package/src/hooks/useI18n.tsx +96 -115
- package/src/hooks/useTranslation.tsx +12 -10
- package/src/index.ts +102 -5
- package/src/server.ts +9 -0
- package/src/types/index.ts +67 -12
- package/LICENSE +0 -21
- package/dist/components/MissingKeyOverlay.d.ts +0 -33
- package/dist/components/MissingKeyOverlay.d.ts.map +0 -1
- package/dist/components/MissingKeyOverlay.js +0 -138
- package/dist/components/MissingKeyOverlay.js.map +0 -1
- package/dist/core/debug-tools.d.ts +0 -37
- package/dist/core/debug-tools.d.ts.map +0 -1
- package/dist/core/debug-tools.js +0 -241
- package/dist/core/debug-tools.js.map +0 -1
- package/dist/core/i18n-resource.d.ts +0 -59
- package/dist/core/i18n-resource.d.ts.map +0 -1
- package/dist/core/i18n-resource.js +0 -153
- package/dist/core/i18n-resource.js.map +0 -1
- package/dist/core/lazy-loader.d.ts +0 -82
- package/dist/core/lazy-loader.d.ts.map +0 -1
- package/dist/core/lazy-loader.js +0 -193
- package/dist/core/lazy-loader.js.map +0 -1
- package/dist/core/translator-factory.d.ts +0 -50
- package/dist/core/translator-factory.d.ts.map +0 -1
- package/dist/core/translator-factory.js +0 -117
- package/dist/core/translator-factory.js.map +0 -1
- package/dist/core/translator.d.ts +0 -202
- package/dist/core/translator.d.ts.map +0 -1
- package/dist/core/translator.js +0 -912
- package/dist/core/translator.js.map +0 -1
- package/dist/hooks/useI18n.d.ts +0 -39
- package/dist/hooks/useI18n.d.ts.map +0 -1
- package/dist/hooks/useI18n.js +0 -531
- package/dist/hooks/useI18n.js.map +0 -1
- package/dist/hooks/useTranslation.d.ts +0 -55
- package/dist/hooks/useTranslation.d.ts.map +0 -1
- package/dist/hooks/useTranslation.js +0 -58
- package/dist/hooks/useTranslation.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -162
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -191
- package/dist/types/index.js.map +0 -1
- package/dist/utils/default-translations.d.ts +0 -20
- package/dist/utils/default-translations.d.ts.map +0 -1
- package/dist/utils/default-translations.js +0 -123
- package/dist/utils/default-translations.js.map +0 -1
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
import { I18nConfig, TranslationNamespace, TranslationError } from '../types';
|
|
2
|
-
export interface TranslatorInterface {
|
|
3
|
-
translate(key: string, language?: string): string;
|
|
4
|
-
setLanguage(lang: string): void;
|
|
5
|
-
getCurrentLanguage(): string;
|
|
6
|
-
initialize(): Promise<void>;
|
|
7
|
-
isReady(): boolean;
|
|
8
|
-
debug(): unknown;
|
|
9
|
-
getRawValue(key: string, language?: string): unknown;
|
|
10
|
-
}
|
|
11
|
-
export declare class Translator implements TranslatorInterface {
|
|
12
|
-
private cache;
|
|
13
|
-
private loadedNamespaces;
|
|
14
|
-
private loadingPromises;
|
|
15
|
-
private allTranslations;
|
|
16
|
-
private isInitialized;
|
|
17
|
-
private initializationError;
|
|
18
|
-
private config;
|
|
19
|
-
private currentLang;
|
|
20
|
-
private cacheStats;
|
|
21
|
-
private onTranslationLoadedCallbacks;
|
|
22
|
-
private onLanguageChangedCallbacks;
|
|
23
|
-
private notifyTimer;
|
|
24
|
-
private recentlyNotified;
|
|
25
|
-
/**
|
|
26
|
-
* 번역 로드 완료 콜백 등록
|
|
27
|
-
*/
|
|
28
|
-
onTranslationLoaded(callback: () => void): () => void;
|
|
29
|
-
/**
|
|
30
|
-
* 언어 변경 콜백 등록
|
|
31
|
-
*/
|
|
32
|
-
onLanguageChanged(callback: (language: string) => void): () => void;
|
|
33
|
-
/**
|
|
34
|
-
* 언어 변경 이벤트 발생
|
|
35
|
-
*/
|
|
36
|
-
private notifyLanguageChanged;
|
|
37
|
-
/**
|
|
38
|
-
* 번역 로드 완료 이벤트 발생 (디바운싱 적용)
|
|
39
|
-
*/
|
|
40
|
-
private notifyTranslationLoaded;
|
|
41
|
-
constructor(config: I18nConfig);
|
|
42
|
-
/**
|
|
43
|
-
* 모든 번역 데이터를 미리 로드 (hua-api 스타일)
|
|
44
|
-
*/
|
|
45
|
-
initialize(): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* 초기화되지 않은 상태에서 번역 시도
|
|
48
|
-
*/
|
|
49
|
-
private translateBeforeInitialized;
|
|
50
|
-
/**
|
|
51
|
-
* 다른 로드된 언어에서 번역 찾기 (언어 변경 중 깜빡임 방지)
|
|
52
|
-
*/
|
|
53
|
-
private findInOtherLanguages;
|
|
54
|
-
/**
|
|
55
|
-
* 폴백 언어에서 번역 찾기
|
|
56
|
-
*/
|
|
57
|
-
private findInFallbackLanguage;
|
|
58
|
-
/**
|
|
59
|
-
* 번역 키를 번역된 텍스트로 변환
|
|
60
|
-
*/
|
|
61
|
-
translate(key: string, language?: string): string;
|
|
62
|
-
/**
|
|
63
|
-
* 네임스페이스에서 키 찾기
|
|
64
|
-
*/
|
|
65
|
-
private findInNamespace;
|
|
66
|
-
/**
|
|
67
|
-
* 중첩된 객체에서 값을 가져오기
|
|
68
|
-
*/
|
|
69
|
-
private getNestedValue;
|
|
70
|
-
/**
|
|
71
|
-
* 문자열 값인지 확인하는 타입 가드
|
|
72
|
-
*/
|
|
73
|
-
private isStringValue;
|
|
74
|
-
/**
|
|
75
|
-
* 원시 값 가져오기 (배열, 객체 포함)
|
|
76
|
-
*/
|
|
77
|
-
getRawValue(key: string, language?: string): unknown;
|
|
78
|
-
/**
|
|
79
|
-
* 매개변수 보간
|
|
80
|
-
*/
|
|
81
|
-
private interpolate;
|
|
82
|
-
/**
|
|
83
|
-
* 매개변수가 있는 번역
|
|
84
|
-
*/
|
|
85
|
-
translateWithParams(key: string, params?: Record<string, unknown>, language?: string): string;
|
|
86
|
-
/**
|
|
87
|
-
* 언어 설정
|
|
88
|
-
*/
|
|
89
|
-
setLanguage(language: string): void;
|
|
90
|
-
/**
|
|
91
|
-
* 언어 데이터 로드
|
|
92
|
-
*/
|
|
93
|
-
private loadLanguageData;
|
|
94
|
-
/**
|
|
95
|
-
* 현재 언어 가져오기
|
|
96
|
-
*/
|
|
97
|
-
getCurrentLanguage(): string;
|
|
98
|
-
/**
|
|
99
|
-
* 지원되는 언어 목록 가져오기
|
|
100
|
-
*/
|
|
101
|
-
getSupportedLanguages(): string[];
|
|
102
|
-
/**
|
|
103
|
-
* 초기화 완료 여부 확인
|
|
104
|
-
*/
|
|
105
|
-
isReady(): boolean;
|
|
106
|
-
/**
|
|
107
|
-
* 초기화 오류 가져오기
|
|
108
|
-
*/
|
|
109
|
-
getInitializationError(): TranslationError | null;
|
|
110
|
-
/**
|
|
111
|
-
* 캐시 클리어
|
|
112
|
-
*/
|
|
113
|
-
clearCache(): void;
|
|
114
|
-
/**
|
|
115
|
-
* 캐시 엔트리 설정
|
|
116
|
-
*/
|
|
117
|
-
private setCacheEntry;
|
|
118
|
-
/**
|
|
119
|
-
* 캐시 엔트리 가져오기
|
|
120
|
-
*/
|
|
121
|
-
private getCacheEntry;
|
|
122
|
-
/**
|
|
123
|
-
* 번역 오류 생성
|
|
124
|
-
*/
|
|
125
|
-
private createTranslationError;
|
|
126
|
-
/**
|
|
127
|
-
* 오류 로깅
|
|
128
|
-
*/
|
|
129
|
-
private logError;
|
|
130
|
-
/**
|
|
131
|
-
* 재시도 작업
|
|
132
|
-
*/
|
|
133
|
-
private retryOperation;
|
|
134
|
-
/**
|
|
135
|
-
* 안전한 번역 로드
|
|
136
|
-
*/
|
|
137
|
-
private safeLoadTranslations;
|
|
138
|
-
/**
|
|
139
|
-
* 디버그 정보
|
|
140
|
-
*/
|
|
141
|
-
debug(): {
|
|
142
|
-
isInitialized: boolean;
|
|
143
|
-
currentLanguage: string;
|
|
144
|
-
loadedNamespaces: string[];
|
|
145
|
-
cacheStats: {
|
|
146
|
-
hits: number;
|
|
147
|
-
misses: number;
|
|
148
|
-
};
|
|
149
|
-
cacheSize: number;
|
|
150
|
-
allTranslations: Record<string, Record<string, TranslationNamespace>>;
|
|
151
|
-
initializationError: TranslationError | null;
|
|
152
|
-
config: I18nConfig;
|
|
153
|
-
};
|
|
154
|
-
/**
|
|
155
|
-
* SSR에서 하이드레이션
|
|
156
|
-
*/
|
|
157
|
-
hydrateFromSSR(translations: Record<string, Record<string, TranslationNamespace>>): void;
|
|
158
|
-
/**
|
|
159
|
-
* 비동기 번역 (고급 기능)
|
|
160
|
-
*/
|
|
161
|
-
translateAsync(key: string, params?: Record<string, unknown>): Promise<string>;
|
|
162
|
-
/**
|
|
163
|
-
* 동기 번역 (고급 기능)
|
|
164
|
-
*/
|
|
165
|
-
translateSync(key: string, params?: Record<string, unknown>): string;
|
|
166
|
-
/**
|
|
167
|
-
* 키 파싱 (네임스페이스:키 또는 네임스페이스.키 형식 지원)
|
|
168
|
-
* 우선순위: : > . (첫 번째 구분자 사용)
|
|
169
|
-
*/
|
|
170
|
-
private parseKey;
|
|
171
|
-
/**
|
|
172
|
-
* 번역 데이터 로드 (고급 기능)
|
|
173
|
-
*/
|
|
174
|
-
private loadTranslationData;
|
|
175
|
-
/**
|
|
176
|
-
* 실제 번역 데이터 로드
|
|
177
|
-
*/
|
|
178
|
-
private _loadTranslationData;
|
|
179
|
-
}
|
|
180
|
-
export declare function ssrTranslate({ translations, key, language, fallbackLanguage, missingKeyHandler }: {
|
|
181
|
-
translations: Record<string, Record<string, TranslationNamespace>>;
|
|
182
|
-
key: string;
|
|
183
|
-
language?: string;
|
|
184
|
-
fallbackLanguage?: string;
|
|
185
|
-
missingKeyHandler?: (key: string) => string;
|
|
186
|
-
}): string;
|
|
187
|
-
export declare function serverTranslate({ translations, key, language, fallbackLanguage, missingKeyHandler, options }: {
|
|
188
|
-
translations: Record<string, unknown>;
|
|
189
|
-
key: string;
|
|
190
|
-
language?: string;
|
|
191
|
-
fallbackLanguage?: string;
|
|
192
|
-
missingKeyHandler?: (key: string) => string;
|
|
193
|
-
options?: {
|
|
194
|
-
cache?: Map<string, string>;
|
|
195
|
-
metrics?: {
|
|
196
|
-
hits: number;
|
|
197
|
-
misses: number;
|
|
198
|
-
};
|
|
199
|
-
debug?: boolean;
|
|
200
|
-
};
|
|
201
|
-
}): string;
|
|
202
|
-
//# sourceMappingURL=translator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"translator.d.ts","sourceRoot":"","sources":["../../src/core/translator.tsx"],"names":[],"mappings":"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"}
|