@hua-labs/i18n-core 1.0.0

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 (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +636 -0
  3. package/dist/components/MissingKeyOverlay.d.ts +33 -0
  4. package/dist/components/MissingKeyOverlay.d.ts.map +1 -0
  5. package/dist/components/MissingKeyOverlay.js +138 -0
  6. package/dist/components/MissingKeyOverlay.js.map +1 -0
  7. package/dist/core/debug-tools.d.ts +37 -0
  8. package/dist/core/debug-tools.d.ts.map +1 -0
  9. package/dist/core/debug-tools.js +241 -0
  10. package/dist/core/debug-tools.js.map +1 -0
  11. package/dist/core/i18n-resource.d.ts +59 -0
  12. package/dist/core/i18n-resource.d.ts.map +1 -0
  13. package/dist/core/i18n-resource.js +153 -0
  14. package/dist/core/i18n-resource.js.map +1 -0
  15. package/dist/core/lazy-loader.d.ts +82 -0
  16. package/dist/core/lazy-loader.d.ts.map +1 -0
  17. package/dist/core/lazy-loader.js +193 -0
  18. package/dist/core/lazy-loader.js.map +1 -0
  19. package/dist/core/translator-factory.d.ts +50 -0
  20. package/dist/core/translator-factory.d.ts.map +1 -0
  21. package/dist/core/translator-factory.js +117 -0
  22. package/dist/core/translator-factory.js.map +1 -0
  23. package/dist/core/translator.d.ts +202 -0
  24. package/dist/core/translator.d.ts.map +1 -0
  25. package/dist/core/translator.js +912 -0
  26. package/dist/core/translator.js.map +1 -0
  27. package/dist/hooks/useI18n.d.ts +39 -0
  28. package/dist/hooks/useI18n.d.ts.map +1 -0
  29. package/dist/hooks/useI18n.js +531 -0
  30. package/dist/hooks/useI18n.js.map +1 -0
  31. package/dist/hooks/useTranslation.d.ts +55 -0
  32. package/dist/hooks/useTranslation.d.ts.map +1 -0
  33. package/dist/hooks/useTranslation.js +58 -0
  34. package/dist/hooks/useTranslation.js.map +1 -0
  35. package/dist/index.d.ts +162 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +191 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/types/index.d.ts +162 -0
  40. package/dist/types/index.d.ts.map +1 -0
  41. package/dist/types/index.js +191 -0
  42. package/dist/types/index.js.map +1 -0
  43. package/dist/utils/default-translations.d.ts +20 -0
  44. package/dist/utils/default-translations.d.ts.map +1 -0
  45. package/dist/utils/default-translations.js +123 -0
  46. package/dist/utils/default-translations.js.map +1 -0
  47. package/package.json +60 -0
  48. package/src/components/MissingKeyOverlay.tsx +223 -0
  49. package/src/core/debug-tools.ts +298 -0
  50. package/src/core/i18n-resource.ts +180 -0
  51. package/src/core/lazy-loader.ts +255 -0
  52. package/src/core/translator-factory.ts +137 -0
  53. package/src/core/translator.tsx +1194 -0
  54. package/src/hooks/useI18n.tsx +595 -0
  55. package/src/hooks/useTranslation.tsx +62 -0
  56. package/src/index.ts +298 -0
  57. package/src/types/index.ts +443 -0
  58. package/src/utils/default-translations.ts +129 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useI18n.js","sourceRoot":"","sources":["../../src/hooks/useI18n.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * 간단한 번역 훅 (원본 SDK와 호환)
3
+ *
4
+ * @example
5
+ * ```tsx
6
+ * import { useTranslation } from '@hua-labs/i18n-core';
7
+ *
8
+ * function MyComponent() {
9
+ * const { t, currentLanguage, setLanguage, isLoading, error } = useTranslation();
10
+ *
11
+ * return (
12
+ * <div>
13
+ * <h1>{t('welcome')}</h1>
14
+ * <p>Current language: {currentLanguage}</p>
15
+ * <button onClick={() => setLanguage('en')}>Switch to English</button>
16
+ * </div>
17
+ * );
18
+ * }
19
+ * ```
20
+ */
21
+ export declare function useTranslation(): {
22
+ t: (key: string, language?: string) => string;
23
+ tWithParams: (key: string, params?: import("../types").TranslationParams, language?: string) => string;
24
+ currentLanguage: string;
25
+ setLanguage: (language: string) => void;
26
+ getRawValue: (key: string, language?: string) => unknown;
27
+ isLoading: boolean;
28
+ error: import("../types").TranslationError | null;
29
+ supportedLanguages: import("../types").LanguageConfig[];
30
+ debug: {
31
+ getCurrentLanguage: () => string;
32
+ getSupportedLanguages: () => string[];
33
+ getLoadedNamespaces: () => string[];
34
+ getAllTranslations: () => Record<string, Record<string, unknown>>;
35
+ isReady: () => boolean;
36
+ getInitializationError: () => import("../types").TranslationError | null;
37
+ clearCache: () => void;
38
+ reloadTranslations: () => Promise<void>;
39
+ getCacheStats: () => {
40
+ size: number;
41
+ hits: number;
42
+ misses: number;
43
+ };
44
+ };
45
+ isInitialized: boolean;
46
+ };
47
+ /**
48
+ * 언어 변경 전용 훅
49
+ */
50
+ export declare function useLanguageChange(): {
51
+ currentLanguage: string;
52
+ changeLanguage: (language: string) => void;
53
+ supportedLanguages: import("../types").LanguageConfig[];
54
+ };
55
+ //# sourceMappingURL=useTranslation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation.d.ts","sourceRoot":"","sources":["../../src/hooks/useTranslation.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;EAe7B;AAED;;GAEG;AACH,wBAAgB,iBAAiB;;+BAGG,MAAM;;EAczC"}
@@ -0,0 +1,58 @@
1
+ "use client";
2
+ import { useI18n } from './useI18n';
3
+ /**
4
+ * 간단한 번역 훅 (원본 SDK와 호환)
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * import { useTranslation } from '@hua-labs/i18n-core';
9
+ *
10
+ * function MyComponent() {
11
+ * const { t, currentLanguage, setLanguage, isLoading, error } = useTranslation();
12
+ *
13
+ * return (
14
+ * <div>
15
+ * <h1>{t('welcome')}</h1>
16
+ * <p>Current language: {currentLanguage}</p>
17
+ * <button onClick={() => setLanguage('en')}>Switch to English</button>
18
+ * </div>
19
+ * );
20
+ * }
21
+ * ```
22
+ */
23
+ export function useTranslation() {
24
+ const { t, tWithParams, currentLanguage, setLanguage, getRawValue, isLoading, error, supportedLanguages, debug, isInitialized } = useI18n();
25
+ return {
26
+ t,
27
+ tWithParams,
28
+ currentLanguage,
29
+ setLanguage,
30
+ getRawValue,
31
+ isLoading,
32
+ error,
33
+ supportedLanguages,
34
+ debug,
35
+ isInitialized,
36
+ };
37
+ }
38
+ /**
39
+ * 언어 변경 전용 훅
40
+ */
41
+ export function useLanguageChange() {
42
+ const { currentLanguage, setLanguage, supportedLanguages } = useI18n();
43
+ const changeLanguage = (language) => {
44
+ const supported = supportedLanguages.find(lang => lang.code === language);
45
+ if (supported) {
46
+ setLanguage(language);
47
+ }
48
+ else {
49
+ console.warn(`Language ${language} is not supported`);
50
+ }
51
+ };
52
+ return {
53
+ currentLanguage,
54
+ changeLanguage,
55
+ supportedLanguages,
56
+ };
57
+ }
58
+ //# sourceMappingURL=useTranslation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation.js","sourceRoot":"","sources":["../../src/hooks/useTranslation.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAE5I,OAAO;QACL,CAAC;QACD,WAAW;QACX,eAAe;QACf,WAAW;QACX,WAAW;QACX,SAAS;QACT,KAAK;QACL,kBAAkB;QAClB,KAAK;QACL,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC;IAEvE,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC1C,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC1E,IAAI,SAAS,EAAE,CAAC;YACd,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,YAAY,QAAQ,mBAAmB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,eAAe;QACf,cAAc;QACd,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * @hua-labs/i18n-core - 핵심 기능 전용 엔트리포인트
3
+ *
4
+ * 이 모듈은 기본적인 번역 기능만 필요한 경우 사용합니다.
5
+ * 플러그인, 고급 기능, 디버깅 도구 없이 순수한 번역 기능만 제공합니다.
6
+ */
7
+ import React from 'react';
8
+ import { I18nProvider, useI18n } from './hooks/useI18n';
9
+ import { useTranslation, useLanguageChange } from './hooks/useTranslation';
10
+ import { Translator, ssrTranslate, serverTranslate } from './core/translator';
11
+ import { I18nConfig } from './types';
12
+ declare global {
13
+ interface Window {
14
+ __I18N_DEBUG_MODE__?: boolean;
15
+ __I18N_DEBUG_MISSING_KEYS__?: Record<string, string[]>;
16
+ __I18N_DEBUG_ERRORS__?: Array<{
17
+ timestamp: string;
18
+ language: string;
19
+ namespace: string;
20
+ error: string;
21
+ stack?: string;
22
+ }>;
23
+ __I18N_PERFORMANCE_DATA__?: Record<string, number[]>;
24
+ __I18N_PERFORMANCE_ALERTS__?: Array<{
25
+ id: string;
26
+ type: 'warning' | 'error' | 'info';
27
+ severity: 'low' | 'medium' | 'high' | 'critical';
28
+ message: string;
29
+ metric: string;
30
+ value: number;
31
+ threshold: number;
32
+ timestamp: number;
33
+ resolved: boolean;
34
+ }>;
35
+ __I18N_ANALYTICS_DATA__?: {
36
+ missingKeys?: Set<string> | string[];
37
+ performance?: {
38
+ totalTime: number;
39
+ averageTime: number;
40
+ calls: number;
41
+ };
42
+ usage?: {
43
+ keys?: Map<string, number> | Record<string, number>;
44
+ languages?: Map<string, number> | Record<string, number>;
45
+ namespaces?: Map<string, number> | Record<string, number>;
46
+ };
47
+ errors?: Array<{
48
+ timestamp: number;
49
+ error: string;
50
+ context: string;
51
+ }>;
52
+ };
53
+ }
54
+ }
55
+ /**
56
+ * 핵심 기능용 설정 함수
57
+ *
58
+ * @example
59
+ * ```tsx
60
+ * // app/layout.tsx (Next.js App Router)
61
+ * import { createCoreI18n } from '@hua-labs/i18n-core';
62
+ *
63
+ * export default function RootLayout({ children }) {
64
+ * return (
65
+ * <html>
66
+ * <body>
67
+ * {createCoreI18n({
68
+ * defaultLanguage: 'ko',
69
+ * fallbackLanguage: 'en',
70
+ * namespaces: ['common', 'auth']
71
+ * })({ children })}
72
+ * </body>
73
+ * </html>
74
+ * );
75
+ * }
76
+ * ```
77
+ */
78
+ export declare function createCoreI18n(options?: {
79
+ defaultLanguage?: string;
80
+ fallbackLanguage?: string;
81
+ namespaces?: string[];
82
+ debug?: boolean;
83
+ loadTranslations?: (language: string, namespace: string) => Promise<Record<string, string>>;
84
+ /**
85
+ * 번역 파일 로딩 방식 설정
86
+ * - 'api': API route를 통해 동적 로드 (기본값, 권장)
87
+ * - 'static': 정적 파일 경로에서 로드
88
+ * - 'custom': loadTranslations 함수 사용
89
+ */
90
+ translationLoader?: 'api' | 'static' | 'custom';
91
+ /**
92
+ * API route 경로 (translationLoader가 'api'일 때 사용)
93
+ * 기본값: '/api/translations'
94
+ */
95
+ translationApiPath?: string;
96
+ /**
97
+ * SSR에서 전달된 초기 번역 데이터 (네트워크 요청 없이 사용)
98
+ * 형식: { [language]: { [namespace]: { [key]: value } } }
99
+ */
100
+ initialTranslations?: Record<string, Record<string, Record<string, string>>>;
101
+ /**
102
+ * 자동 언어 동기화 활성화 여부
103
+ * 기본값: false (Zustand 어댑터 등 외부에서 직접 처리하는 경우)
104
+ */
105
+ autoLanguageSync?: boolean;
106
+ }): ({ children }: {
107
+ children: React.ReactNode;
108
+ }) => React.FunctionComponentElement<{
109
+ config: I18nConfig & {
110
+ autoLanguageSync?: boolean;
111
+ };
112
+ children: React.ReactNode;
113
+ }>;
114
+ /**
115
+ * 가장 기본적인 Provider (최소한의 설정)
116
+ */
117
+ export declare function CoreProvider({ children }: {
118
+ children: React.ReactNode;
119
+ }): React.FunctionComponentElement<{
120
+ config: I18nConfig & {
121
+ autoLanguageSync?: boolean;
122
+ };
123
+ children: React.ReactNode;
124
+ }>;
125
+ /**
126
+ * 언어별 Provider (언어만 지정)
127
+ */
128
+ export declare function createLanguageProvider(language: string): ({ children }: {
129
+ children: React.ReactNode;
130
+ }) => React.FunctionComponentElement<{
131
+ config: I18nConfig & {
132
+ autoLanguageSync?: boolean;
133
+ };
134
+ children: React.ReactNode;
135
+ }>;
136
+ /**
137
+ * 네임스페이스별 Provider (네임스페이스만 지정)
138
+ */
139
+ export declare function createNamespaceProvider(namespaces: string[]): ({ children }: {
140
+ children: React.ReactNode;
141
+ }) => React.FunctionComponentElement<{
142
+ config: I18nConfig & {
143
+ autoLanguageSync?: boolean;
144
+ };
145
+ children: React.ReactNode;
146
+ }>;
147
+ /**
148
+ * 커스텀 로더 Provider (사용자 정의 번역 로더 사용)
149
+ */
150
+ export declare function createCustomLoaderProvider(loadTranslations: (language: string, namespace: string) => Promise<Record<string, string>>): ({ children }: {
151
+ children: React.ReactNode;
152
+ }) => React.FunctionComponentElement<{
153
+ config: I18nConfig & {
154
+ autoLanguageSync?: boolean;
155
+ };
156
+ children: React.ReactNode;
157
+ }>;
158
+ export { useTranslation, useLanguageChange, useI18n };
159
+ export { I18nProvider };
160
+ export { Translator, ssrTranslate, serverTranslate };
161
+ export type { I18nConfig };
162
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,2BAA2B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvD,qBAAqB,CAAC,EAAE,KAAK,CAAC;YAC5B,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;QACH,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,2BAA2B,CAAC,EAAE,KAAK,CAAC;YAClC,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;YACnC,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;YACjD,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;YACf,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC,CAAC;QACH,uBAAuB,CAAC,EAAE;YACxB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;YACrC,WAAW,CAAC,EAAE;gBACZ,SAAS,EAAE,MAAM,CAAC;gBAClB,WAAW,EAAE,MAAM,CAAC;gBACpB,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;YACF,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACpD,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACzD,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aAC3D,CAAC;YACF,MAAM,CAAC,EAAE,KAAK,CAAC;gBACb,SAAS,EAAE,MAAM,CAAC;gBAClB,KAAK,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC,CAAC;SACJ,CAAC;KACH;CACF;AAQD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5F;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAChD;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7E;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,IAsIkC,cAAc;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE;;wBArO9D,CAAA;;;GAwOf;AAKD;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE;;wBAhPxD,CAAA;;;GAkPf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,kBAlBN;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE;;wBArO9D,CAAA;;;GAyPf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,kBAzBX;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE;;wBArO9D,CAAA;;;GAgQf;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAjC3C;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE;;wBArO9D,CAAA;;;GAyQf;AAGD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;AAGrD,YAAY,EAAE,UAAU,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,191 @@
1
+ /**
2
+ * @hua-labs/i18n-core - 핵심 기능 전용 엔트리포인트
3
+ *
4
+ * 이 모듈은 기본적인 번역 기능만 필요한 경우 사용합니다.
5
+ * 플러그인, 고급 기능, 디버깅 도구 없이 순수한 번역 기능만 제공합니다.
6
+ */
7
+ import React from 'react';
8
+ import { I18nProvider, useI18n } from './hooks/useI18n';
9
+ import { useTranslation, useLanguageChange } from './hooks/useTranslation';
10
+ import { Translator, ssrTranslate, serverTranslate } from './core/translator';
11
+ // 기본 언어 설정
12
+ const defaultLanguages = [
13
+ { code: 'ko', name: 'Korean', nativeName: '한국어' },
14
+ { code: 'en', name: 'English', nativeName: 'English' },
15
+ ];
16
+ /**
17
+ * 핵심 기능용 설정 함수
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * // app/layout.tsx (Next.js App Router)
22
+ * import { createCoreI18n } from '@hua-labs/i18n-core';
23
+ *
24
+ * export default function RootLayout({ children }) {
25
+ * return (
26
+ * <html>
27
+ * <body>
28
+ * {createCoreI18n({
29
+ * defaultLanguage: 'ko',
30
+ * fallbackLanguage: 'en',
31
+ * namespaces: ['common', 'auth']
32
+ * })({ children })}
33
+ * </body>
34
+ * </html>
35
+ * );
36
+ * }
37
+ * ```
38
+ */
39
+ export function createCoreI18n(options) {
40
+ const { defaultLanguage = 'ko', fallbackLanguage = 'en', namespaces = ['common'], debug = false, loadTranslations, translationLoader = 'api', translationApiPath = '/api/translations', initialTranslations, autoLanguageSync = false // 기본값 false (Zustand 어댑터 등 외부에서 직접 처리)
41
+ } = options || {};
42
+ // API route 기반 로더 (기본값, 권장)
43
+ const apiRouteLoader = async (language, namespace) => {
44
+ try {
45
+ // 클라이언트 사이드에서만 동적 로드
46
+ if (typeof window !== 'undefined') {
47
+ const apiUrl = `${translationApiPath}/${language}/${namespace}`;
48
+ const response = await fetch(apiUrl);
49
+ if (response.ok) {
50
+ const data = await response.json();
51
+ if (debug) {
52
+ console.log(`✅ Loaded translation from API: ${language}/${namespace}`);
53
+ }
54
+ return data;
55
+ }
56
+ else if (response.status === 404) {
57
+ if (debug) {
58
+ console.warn(`⚠️ Translation not found in API: ${language}/${namespace}`);
59
+ }
60
+ }
61
+ }
62
+ // SSR 또는 API 실패 시 기본 번역 반환
63
+ return getDefaultTranslations(language, namespace);
64
+ }
65
+ catch (error) {
66
+ if (debug) {
67
+ console.warn(`Failed to load translation from API: ${language}/${namespace}`, error);
68
+ }
69
+ return getDefaultTranslations(language, namespace);
70
+ }
71
+ };
72
+ // 정적 파일 로더 (하위 호환성)
73
+ const staticFileLoader = async (language, namespace) => {
74
+ try {
75
+ let data = null;
76
+ // 클라이언트 사이드에서만 동적 로드 시도
77
+ if (typeof window !== 'undefined') {
78
+ const possiblePaths = [
79
+ `/translations/${language}/${namespace}.json`,
80
+ `../translations/${language}/${namespace}.json`,
81
+ `./translations/${language}/${namespace}.json`,
82
+ `translations/${language}/${namespace}.json`,
83
+ `../../translations/${language}/${namespace}.json`,
84
+ ];
85
+ for (const path of possiblePaths) {
86
+ try {
87
+ const response = await fetch(path);
88
+ if (response.ok) {
89
+ data = await response.json();
90
+ if (debug) {
91
+ console.log(`✅ Loaded translation from static path: ${path}`);
92
+ }
93
+ break;
94
+ }
95
+ }
96
+ catch (pathError) {
97
+ continue;
98
+ }
99
+ }
100
+ }
101
+ if (data) {
102
+ return data;
103
+ }
104
+ return getDefaultTranslations(language, namespace);
105
+ }
106
+ catch (error) {
107
+ if (debug) {
108
+ console.warn(`Failed to load translation file: ${language}/${namespace}.json`);
109
+ }
110
+ return getDefaultTranslations(language, namespace);
111
+ }
112
+ };
113
+ // 기본 파일 로더 선택
114
+ const defaultFileLoader = translationLoader === 'api'
115
+ ? apiRouteLoader
116
+ : translationLoader === 'static'
117
+ ? staticFileLoader
118
+ : loadTranslations || apiRouteLoader;
119
+ const config = {
120
+ defaultLanguage,
121
+ fallbackLanguage,
122
+ supportedLanguages: defaultLanguages,
123
+ namespaces,
124
+ loadTranslations: translationLoader === 'custom' && loadTranslations
125
+ ? loadTranslations
126
+ : defaultFileLoader,
127
+ initialTranslations, // SSR 번역 데이터 전달
128
+ debug,
129
+ missingKeyHandler: (key, language, namespace) => {
130
+ if (debug) {
131
+ console.warn(`Missing translation key: ${key}`);
132
+ // Debug SDK와 연동하여 누락 키 추적
133
+ if (typeof window !== 'undefined' && window.__I18N_DEBUG_MISSING_KEYS__) {
134
+ const missingKeys = window.__I18N_DEBUG_MISSING_KEYS__;
135
+ const keyPath = `${language || 'unknown'}:${namespace || 'unknown'}`;
136
+ missingKeys[keyPath] = missingKeys[keyPath] || [];
137
+ if (!missingKeys[keyPath].includes(key)) {
138
+ missingKeys[keyPath].push(key);
139
+ }
140
+ }
141
+ return `[MISSING: ${key}]`;
142
+ }
143
+ return key.split('.').pop() || key;
144
+ },
145
+ errorHandler: (error, language, namespace) => {
146
+ if (debug) {
147
+ console.error(`Translation error for ${language}:${namespace}:`, error);
148
+ }
149
+ },
150
+ // autoLanguageSync는 기본적으로 false (Zustand 어댑터 등 외부에서 직접 처리하는 경우)
151
+ // 필요시 options에서 명시적으로 true로 설정 가능
152
+ autoLanguageSync: options?.autoLanguageSync ?? false
153
+ };
154
+ // Provider 컴포넌트 반환
155
+ return function CoreI18nProvider({ children }) {
156
+ return React.createElement(I18nProvider, { config, children });
157
+ };
158
+ }
159
+ // 기본 번역 데이터는 공통 유틸리티에서 가져옴
160
+ import { getDefaultTranslations } from './utils/default-translations';
161
+ /**
162
+ * 가장 기본적인 Provider (최소한의 설정)
163
+ */
164
+ export function CoreProvider({ children }) {
165
+ return createCoreI18n()({ children });
166
+ }
167
+ /**
168
+ * 언어별 Provider (언어만 지정)
169
+ */
170
+ export function createLanguageProvider(language) {
171
+ return createCoreI18n({ defaultLanguage: language });
172
+ }
173
+ /**
174
+ * 네임스페이스별 Provider (네임스페이스만 지정)
175
+ */
176
+ export function createNamespaceProvider(namespaces) {
177
+ return createCoreI18n({ namespaces });
178
+ }
179
+ /**
180
+ * 커스텀 로더 Provider (사용자 정의 번역 로더 사용)
181
+ */
182
+ export function createCustomLoaderProvider(loadTranslations) {
183
+ return createCoreI18n({ loadTranslations });
184
+ }
185
+ // 핵심 훅들 export
186
+ export { useTranslation, useLanguageChange, useI18n };
187
+ // Provider export
188
+ export { I18nProvider };
189
+ // 핵심 클래스/함수들 export
190
+ export { Translator, ssrTranslate, serverTranslate };
191
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}