@astroscope/i18n 0.1.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 (194) hide show
  1. package/README.md +262 -0
  2. package/dist/babel-plugin-FUTQRKLT.js +121 -0
  3. package/dist/babel-plugin-K2K4ZPM5.js +118 -0
  4. package/dist/chunk-22ZZFFC2.js +159 -0
  5. package/dist/chunk-2PSXD3JJ.js +144 -0
  6. package/dist/chunk-3VI62RLT.js +176 -0
  7. package/dist/chunk-4A5BKHFN.js +16 -0
  8. package/dist/chunk-4DAQPWXI.js +36 -0
  9. package/dist/chunk-4OGX6AF5.js +10 -0
  10. package/dist/chunk-4PHYKXO3.js +227 -0
  11. package/dist/chunk-4UBFISFY.js +376 -0
  12. package/dist/chunk-5DERF6DV.js +266 -0
  13. package/dist/chunk-5KGNHFTC.js +344 -0
  14. package/dist/chunk-5PP4D2VK.js +23 -0
  15. package/dist/chunk-6BW3PN23.js +14 -0
  16. package/dist/chunk-6ESQ4JQI.js +263 -0
  17. package/dist/chunk-A7MPXMOP.js +202 -0
  18. package/dist/chunk-AWZ2SQDW.js +149 -0
  19. package/dist/chunk-AYY2YIBQ.js +52 -0
  20. package/dist/chunk-BMNEJFTD.js +56 -0
  21. package/dist/chunk-BSXQGEUK.js +16 -0
  22. package/dist/chunk-BSYTJFGF.js +21 -0
  23. package/dist/chunk-BVPXEGTT.js +12 -0
  24. package/dist/chunk-C4DJYWF6.js +193 -0
  25. package/dist/chunk-C5EJYE2P.js +245 -0
  26. package/dist/chunk-CLNOQHMS.js +254 -0
  27. package/dist/chunk-E5MCIRSU.js +144 -0
  28. package/dist/chunk-E7ZJS7WX.js +162 -0
  29. package/dist/chunk-EMM6LRO2.js +8 -0
  30. package/dist/chunk-ESFGCYYH.js +24 -0
  31. package/dist/chunk-FAKBSLNW.js +24 -0
  32. package/dist/chunk-FHBVI3TL.js +372 -0
  33. package/dist/chunk-FI5KZ5IO.js +17 -0
  34. package/dist/chunk-H5R6YMOL.js +233 -0
  35. package/dist/chunk-H62K3FGA.js +236 -0
  36. package/dist/chunk-HDG2R6XT.js +211 -0
  37. package/dist/chunk-HGXU5QAK.js +344 -0
  38. package/dist/chunk-HHRMR3TM.js +17 -0
  39. package/dist/chunk-HS4HVBAD.js +127 -0
  40. package/dist/chunk-IPJWKKHJ.js +324 -0
  41. package/dist/chunk-ITTL4V7J.js +24 -0
  42. package/dist/chunk-IWUBCMOK.js +128 -0
  43. package/dist/chunk-JJBBY2GR.js +14 -0
  44. package/dist/chunk-JJEDOJBR.js +193 -0
  45. package/dist/chunk-JTUKXNIJ.js +23 -0
  46. package/dist/chunk-K7YULG4A.js +14 -0
  47. package/dist/chunk-KNDYKTHE.js +31 -0
  48. package/dist/chunk-KNONI6DP.js +89 -0
  49. package/dist/chunk-LMTEO22Y.js +17 -0
  50. package/dist/chunk-LRLZEX4D.js +147 -0
  51. package/dist/chunk-MFKPLUAN.js +241 -0
  52. package/dist/chunk-MIWXQOO3.js +316 -0
  53. package/dist/chunk-MJRTAWPR.js +261 -0
  54. package/dist/chunk-MZEPQCXX.js +249 -0
  55. package/dist/chunk-NHHTSFA7.js +237 -0
  56. package/dist/chunk-NTTXM7AG.js +23 -0
  57. package/dist/chunk-NZFAVJXR.js +192 -0
  58. package/dist/chunk-OFNFSDW3.js +13 -0
  59. package/dist/chunk-PG3XDNGF.js +227 -0
  60. package/dist/chunk-PVEVTPNK.js +139 -0
  61. package/dist/chunk-QAO4BXS4.js +244 -0
  62. package/dist/chunk-QCTULQQK.js +34 -0
  63. package/dist/chunk-QFAAGCP5.js +177 -0
  64. package/dist/chunk-QKND2KCA.js +163 -0
  65. package/dist/chunk-QZEGY6RJ.js +151 -0
  66. package/dist/chunk-RAE2L6FT.js +193 -0
  67. package/dist/chunk-S3ABJBU3.js +255 -0
  68. package/dist/chunk-SVDVCPCV.js +236 -0
  69. package/dist/chunk-T35ZUWTL.js +153 -0
  70. package/dist/chunk-T6WV5DW6.js +156 -0
  71. package/dist/chunk-TGUXVDA3.js +82 -0
  72. package/dist/chunk-TYMO7K3A.js +173 -0
  73. package/dist/chunk-V4RBFLQL.js +23 -0
  74. package/dist/chunk-V4XWJXXZ.js +23 -0
  75. package/dist/chunk-VQCY3OKK.js +258 -0
  76. package/dist/chunk-WLGOJPDJ.js +15 -0
  77. package/dist/chunk-WUEPDJIL.js +259 -0
  78. package/dist/chunk-X3L7WZLY.js +254 -0
  79. package/dist/chunk-XDD62ZM3.js +255 -0
  80. package/dist/chunk-XFXXEDRD.js +36 -0
  81. package/dist/chunk-XKYOR5UK.js +8 -0
  82. package/dist/chunk-Y26535SI.js +239 -0
  83. package/dist/chunk-Y3PQX5TX.js +152 -0
  84. package/dist/chunk-Y4BE2V6F.js +347 -0
  85. package/dist/chunk-Z4IZYDIA.js +24 -0
  86. package/dist/chunk-Z52G4CYY.js +14 -0
  87. package/dist/chunk-ZGLUYWVM.js +128 -0
  88. package/dist/client/directives/idle.d.ts +9 -0
  89. package/dist/client/directives/idle.js +15 -0
  90. package/dist/client/directives/load.d.ts +9 -0
  91. package/dist/client/directives/load.js +15 -0
  92. package/dist/client/directives/media.d.ts +9 -0
  93. package/dist/client/directives/media.js +15 -0
  94. package/dist/client/directives/only.d.ts +9 -0
  95. package/dist/client/directives/only.js +15 -0
  96. package/dist/client/directives/utils.d.ts +10 -0
  97. package/dist/client/directives/utils.js +7 -0
  98. package/dist/client/directives/visible.d.ts +9 -0
  99. package/dist/client/directives/visible.js +15 -0
  100. package/dist/client/import-with-i18n.d.ts +16 -0
  101. package/dist/client/import-with-i18n.js +8 -0
  102. package/dist/client/t.d.ts +20 -0
  103. package/dist/client/t.js +37 -0
  104. package/dist/client-directives/idle.d.ts +9 -0
  105. package/dist/client-directives/idle.js +15 -0
  106. package/dist/client-directives/load.d.ts +9 -0
  107. package/dist/client-directives/load.js +15 -0
  108. package/dist/client-directives/media.d.ts +9 -0
  109. package/dist/client-directives/media.js +15 -0
  110. package/dist/client-directives/only.d.ts +9 -0
  111. package/dist/client-directives/only.js +15 -0
  112. package/dist/client-directives/utils.d.ts +9 -0
  113. package/dist/client-directives/utils.js +7 -0
  114. package/dist/client-directives/visible.d.ts +9 -0
  115. package/dist/client-directives/visible.js +15 -0
  116. package/dist/extraction/index.d.ts +34 -0
  117. package/dist/extraction/index.js +9 -0
  118. package/dist/i18n-3cZHoHwP.d.ts +86 -0
  119. package/dist/i18n-BGfrSNM8.d.ts +56 -0
  120. package/dist/i18n-BHU81LMA.d.ts +55 -0
  121. package/dist/i18n-BagoeH4_.d.ts +62 -0
  122. package/dist/i18n-BeL84090.d.ts +77 -0
  123. package/dist/i18n-BeRWDfHi.d.ts +55 -0
  124. package/dist/i18n-Bfs2PVcf.d.ts +79 -0
  125. package/dist/i18n-BrL7p3aN.d.ts +99 -0
  126. package/dist/i18n-CNQNCFU0.d.ts +55 -0
  127. package/dist/i18n-CX_uU8V2.d.ts +80 -0
  128. package/dist/i18n-Cr1QZCwe.d.ts +64 -0
  129. package/dist/i18n-CzTRxGeX.d.ts +80 -0
  130. package/dist/i18n-DUOFiC7g.d.ts +77 -0
  131. package/dist/i18n-DcF47BHS.d.ts +77 -0
  132. package/dist/i18n-DifWvtaO.d.ts +60 -0
  133. package/dist/i18n-DumSqX1t.d.ts +55 -0
  134. package/dist/i18n-fWTJw12h.d.ts +80 -0
  135. package/dist/import-with-i18n.d.ts +23 -0
  136. package/dist/import-with-i18n.js +7 -0
  137. package/dist/index.d.ts +68 -0
  138. package/dist/index.js +151 -0
  139. package/dist/init.d.ts +2 -0
  140. package/dist/init.js +8 -0
  141. package/dist/internal.d.ts +11 -0
  142. package/dist/internal.js +9 -0
  143. package/dist/middleware-entrypoint-C0Drh9E_.d.ts +29 -0
  144. package/dist/middleware-entrypoint-mEl66IUy.d.ts +29 -0
  145. package/dist/middleware-entrypoint.d.ts +5 -0
  146. package/dist/middleware-entrypoint.js +30 -0
  147. package/dist/server/middleware-entrypoint.d.ts +2 -0
  148. package/dist/server/middleware-entrypoint.js +28 -0
  149. package/dist/server/t.d.ts +17 -0
  150. package/dist/server/t.js +59 -0
  151. package/dist/t-BY_C9lZ1.d.ts +30 -0
  152. package/dist/t-CG3yDiEa.d.ts +30 -0
  153. package/dist/t-CHsBfrPr.d.ts +30 -0
  154. package/dist/t-DQpXaDhP.d.ts +30 -0
  155. package/dist/t.client.d.ts +11 -0
  156. package/dist/t.client.js +35 -0
  157. package/dist/t.server.d.ts +22 -0
  158. package/dist/t.server.js +12 -0
  159. package/dist/types-8uKCwFda.d.ts +24 -0
  160. package/dist/types-BC6K-pID.d.ts +110 -0
  161. package/dist/types-BUV7BZML.d.ts +55 -0
  162. package/dist/types-BWGB322F.d.ts +46 -0
  163. package/dist/types-B_-RxW4A.d.ts +7 -0
  164. package/dist/types-BaaSiz9n.d.ts +7 -0
  165. package/dist/types-Bgl2V5xo.d.ts +102 -0
  166. package/dist/types-BwhB6IT4.d.ts +111 -0
  167. package/dist/types-Bzp6KxsI.d.ts +50 -0
  168. package/dist/types-C6rOJFY2.d.ts +24 -0
  169. package/dist/types-C7lD-Woj.d.ts +50 -0
  170. package/dist/types-CLWZeQhD.d.ts +54 -0
  171. package/dist/types-COXt613w.d.ts +19 -0
  172. package/dist/types-CUlkbl9-.d.ts +50 -0
  173. package/dist/types-CVv7GGPj.d.ts +46 -0
  174. package/dist/types-CiIDN2sW.d.ts +64 -0
  175. package/dist/types-Cr86qjYl.d.ts +58 -0
  176. package/dist/types-CxnObiEO.d.ts +7 -0
  177. package/dist/types-D44mFUjA.d.ts +97 -0
  178. package/dist/types-D85m9UTC.d.ts +137 -0
  179. package/dist/types-DWhsmSPP.d.ts +102 -0
  180. package/dist/types-DdprXGJ1.d.ts +46 -0
  181. package/dist/types-DhVJ2ZIo.d.ts +43 -0
  182. package/dist/types-DnbOuM1L.d.ts +7 -0
  183. package/dist/types-DsNK_9sI.d.ts +24 -0
  184. package/dist/types-DvWBr9Xp.d.ts +17 -0
  185. package/dist/types-DwkIalh6.d.ts +24 -0
  186. package/dist/types-OYRgjtE_.d.ts +110 -0
  187. package/dist/types-SV8S05GX.d.ts +7 -0
  188. package/dist/types-TYn9WnxY.d.ts +46 -0
  189. package/dist/types-aXCBbdhq.d.ts +55 -0
  190. package/dist/types-gn4aNKGx.d.ts +54 -0
  191. package/dist/types-nippsMkm.d.ts +54 -0
  192. package/package.json +105 -0
  193. package/src/components/I18nScript.astro +37 -0
  194. package/src/components/index.ts +2 -0
@@ -0,0 +1,24 @@
1
+ import { a as TranslationMeta } from './types-CLWZeQhD.js';
2
+
3
+ /**
4
+ * Extracted metadata for a single translation key
5
+ */
6
+ type ExtractedKey = {
7
+ key: string;
8
+ meta: TranslationMeta;
9
+ file: string;
10
+ line: number;
11
+ };
12
+ /**
13
+ * Chunk-to-keys mapping produced by Vite plugin
14
+ */
15
+ type ChunkManifest = Record<string, string[]>;
16
+ /**
17
+ * Full extraction manifest
18
+ */
19
+ type ExtractionManifest = {
20
+ keys: ExtractedKey[];
21
+ chunks: ChunkManifest;
22
+ };
23
+
24
+ export type { ChunkManifest as C, ExtractionManifest as E, ExtractedKey as a };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Variable definition for CMS/documentation
3
+ */
4
+ type VariableDef = {
5
+ fallback?: string | undefined;
6
+ description?: string | undefined;
7
+ };
8
+ /**
9
+ * Metadata for a translation key - extracted at build time, synced to CMS
10
+ */
11
+ type TranslationMeta = {
12
+ fallback: string;
13
+ variables?: Record<string, VariableDef> | undefined;
14
+ description?: string | undefined;
15
+ };
16
+ /**
17
+ * Compiled translation ready for runtime use
18
+ */
19
+ type CompiledTranslation = (values?: Record<string, unknown> | undefined) => string;
20
+ /**
21
+ * Map of translation keys to compiled functions
22
+ */
23
+ type CompiledTranslations = Record<string, CompiledTranslation>;
24
+ /**
25
+ * Raw translation strings from CMS (before compilation)
26
+ */
27
+ type RawTranslations = Record<string, string>;
28
+ /**
29
+ * Translate function signature
30
+ *
31
+ * @param key - Translation key (e.g., 'checkout.title')
32
+ * @param meta - Fallback string or full metadata object
33
+ * @param values - Runtime values for interpolation
34
+ *
35
+ * @example
36
+ * t('checkout.title', 'Order Summary')
37
+ *
38
+ * @example
39
+ * t('cart.items', '{count, plural, one {# item} other {# items}}', { count: itemCount })
40
+ *
41
+ * @example
42
+ * t('cart.total', { fallback: 'Total: {amount}', description: 'Cart total' }, { amount: '$49.99' })
43
+ */
44
+ type TranslateFunction = (key: string, meta: TranslationMeta | string, values?: Record<string, unknown> | undefined) => string;
45
+ /**
46
+ * Normalize meta argument to TranslationMeta object
47
+ */
48
+ declare function normalizeMeta(meta: TranslationMeta | string): TranslationMeta;
49
+
50
+ export { type CompiledTranslations as C, type RawTranslations as R, type TranslateFunction as T, type VariableDef as V, type TranslationMeta as a, type CompiledTranslation as b, normalizeMeta as n };
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Variable definition for documentation
3
+ */
4
+ type VariableDef = {
5
+ fallback?: string | undefined;
6
+ description?: string | undefined;
7
+ };
8
+ /**
9
+ * Metadata for a translation key - extracted at build time
10
+ */
11
+ type TranslationMeta = {
12
+ fallback: string;
13
+ variables?: Record<string, VariableDef> | undefined;
14
+ description?: string | undefined;
15
+ };
16
+ /**
17
+ * Compiled translation ready for runtime use
18
+ */
19
+ type CompiledTranslation = (values?: Record<string, unknown> | undefined) => string;
20
+ /**
21
+ * Map of translation keys to compiled functions
22
+ */
23
+ type CompiledTranslations = Record<string, CompiledTranslation>;
24
+ /**
25
+ * Raw translation strings (before compilation)
26
+ */
27
+ type RawTranslations = Record<string, string>;
28
+ /**
29
+ * Client-side i18n state injected into window.__i18n__
30
+ */
31
+ type I18nClientState = {
32
+ locale: string;
33
+ hashes: Record<string, string>;
34
+ translations: Record<string, string>;
35
+ };
36
+ /**
37
+ * Translate function signature
38
+ *
39
+ * @param key - Translation key (e.g., 'checkout.title')
40
+ * @param meta - Fallback string or full metadata object
41
+ * @param values - Runtime values for interpolation
42
+ *
43
+ * @example
44
+ * t('checkout.title', 'Order Summary')
45
+ *
46
+ * @example
47
+ * t('cart.items', '{count, plural, one {# item} other {# items}}', { count: itemCount })
48
+ *
49
+ * @example
50
+ * t('cart.total', { fallback: 'Total: {amount}', description: 'Cart total' }, { amount: '$49.99' })
51
+ */
52
+ type TranslateFunction = (key: string, meta: TranslationMeta | string, values?: Record<string, unknown> | undefined) => string;
53
+
54
+ export type { CompiledTranslations as C, I18nClientState as I, RawTranslations as R, TranslateFunction as T, TranslationMeta as a };
@@ -0,0 +1,19 @@
1
+ type I18nClientState = {
2
+ /**
3
+ * Current locale
4
+ */
5
+ locale: string;
6
+ /**
7
+ * Mapping of chunk keys to the translation content hash
8
+ */
9
+ hashes: Record<string, string>;
10
+ /**
11
+ * Mapping of loaded translation keys to translated strings
12
+ */
13
+ translations: Record<string, string>;
14
+ };
15
+ declare global {
16
+ interface Window {
17
+ __i18n__: I18nClientState;
18
+ }
19
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Variable definition for CMS/documentation
3
+ */
4
+ type VariableDef = {
5
+ fallback?: string;
6
+ description?: string;
7
+ };
8
+ /**
9
+ * Metadata for a translation key - extracted at build time, synced to CMS
10
+ */
11
+ type TranslationMeta = {
12
+ fallback: string;
13
+ variables?: Record<string, VariableDef>;
14
+ description?: string;
15
+ };
16
+ /**
17
+ * Compiled translation ready for runtime use
18
+ */
19
+ type CompiledTranslation = (values?: Record<string, unknown>) => string;
20
+ /**
21
+ * Map of translation keys to compiled functions
22
+ */
23
+ type CompiledTranslations = Record<string, CompiledTranslation>;
24
+ /**
25
+ * Raw translation strings from CMS (before compilation)
26
+ */
27
+ type RawTranslations = Record<string, string>;
28
+ /**
29
+ * Translate function signature
30
+ *
31
+ * @param key - Translation key (e.g., 'checkout.title')
32
+ * @param meta - Fallback string or full metadata object
33
+ * @param values - Runtime values for interpolation
34
+ *
35
+ * @example
36
+ * t('checkout.title', 'Order Summary')
37
+ *
38
+ * @example
39
+ * t('cart.items', '{count, plural, one {# item} other {# items}}', { count: itemCount })
40
+ *
41
+ * @example
42
+ * t('cart.total', { fallback: 'Total: {amount}', description: 'Cart total' }, { amount: '$49.99' })
43
+ */
44
+ type TranslateFunction = (key: string, meta: TranslationMeta | string, values?: Record<string, unknown>) => string;
45
+ /**
46
+ * Normalize meta argument to TranslationMeta object
47
+ */
48
+ declare function normalizeMeta(meta: TranslationMeta | string): TranslationMeta;
49
+
50
+ export { type CompiledTranslations as C, type RawTranslations as R, type TranslateFunction as T, type VariableDef as V, type TranslationMeta as a, type CompiledTranslation as b, normalizeMeta as n };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Variable definition for CMS/documentation
3
+ */
4
+ type VariableDef = {
5
+ fallback?: string | undefined;
6
+ description?: string | undefined;
7
+ };
8
+ /**
9
+ * Metadata for a translation key - extracted at build time, synced to CMS
10
+ */
11
+ type TranslationMeta = {
12
+ fallback: string;
13
+ variables?: Record<string, VariableDef> | undefined;
14
+ description?: string | undefined;
15
+ };
16
+ /**
17
+ * Compiled translation ready for runtime use
18
+ */
19
+ type CompiledTranslation = (values?: Record<string, unknown> | undefined) => string;
20
+ /**
21
+ * Map of translation keys to compiled functions
22
+ */
23
+ type CompiledTranslations = Record<string, CompiledTranslation>;
24
+ /**
25
+ * Raw translation strings from CMS (before compilation)
26
+ */
27
+ type RawTranslations = Record<string, string>;
28
+ /**
29
+ * Translate function signature
30
+ *
31
+ * @param key - Translation key (e.g., 'checkout.title')
32
+ * @param meta - Fallback string or full metadata object
33
+ * @param values - Runtime values for interpolation
34
+ *
35
+ * @example
36
+ * t('checkout.title', 'Order Summary')
37
+ *
38
+ * @example
39
+ * t('cart.items', '{count, plural, one {# item} other {# items}}', { count: itemCount })
40
+ *
41
+ * @example
42
+ * t('cart.total', { fallback: 'Total: {amount}', description: 'Cart total' }, { amount: '$49.99' })
43
+ */
44
+ type TranslateFunction = (key: string, meta: TranslationMeta | string, values?: Record<string, unknown> | undefined) => string;
45
+
46
+ export type { CompiledTranslations as C, RawTranslations as R, TranslationMeta as T, TranslateFunction as a };
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Variable definition for documentation
3
+ */
4
+ type VariableDef = {
5
+ fallback?: string | undefined;
6
+ description?: string | undefined;
7
+ };
8
+ /**
9
+ * Metadata for a translation key - extracted at build time
10
+ */
11
+ type TranslationMeta = {
12
+ fallback: string;
13
+ variables?: Record<string, VariableDef> | undefined;
14
+ description?: string | undefined;
15
+ };
16
+ /**
17
+ * Compiled translation ready for runtime use
18
+ */
19
+ type CompiledTranslation = (values?: Record<string, unknown> | undefined) => string;
20
+ /**
21
+ * Map of translation keys to compiled functions
22
+ */
23
+ type CompiledTranslations = Record<string, CompiledTranslation>;
24
+ /**
25
+ * Raw translation strings (before compilation)
26
+ */
27
+ type RawTranslations = Record<string, string>;
28
+ /**
29
+ * Client-side i18n state injected into window.__i18n__
30
+ */
31
+ type I18nClientState = {
32
+ locale: string;
33
+ hashes: Record<string, string>;
34
+ translations: Record<string, string>;
35
+ };
36
+ /**
37
+ * Translate function signature
38
+ *
39
+ * In development, the second argument is required (fallback string or meta object).
40
+ * In production, fallbacks are stripped by the Babel plugin, so the second argument
41
+ * becomes optional or contains only interpolation values.
42
+ *
43
+ * @param key - Translation key (e.g., 'checkout.title')
44
+ * @param metaOrValues - Fallback string, meta object, or interpolation values (production)
45
+ * @param values - Runtime values for interpolation (when meta is provided)
46
+ *
47
+ * @example
48
+ * // Development (with fallback)
49
+ * t('checkout.title', 'Order Summary')
50
+ * t('cart.items', '{count, plural, one {# item} other {# items}}', { count: itemCount })
51
+ * t('cart.total', { fallback: 'Total: {amount}' }, { amount: '$49.99' })
52
+ *
53
+ * @example
54
+ * // Production (fallbacks stripped)
55
+ * t('checkout.title')
56
+ * t('cart.items', { count: itemCount })
57
+ * t('cart.total', { amount: '$49.99' })
58
+ */
59
+ type TranslateFunction = {
60
+ (key: string, meta: TranslationMeta | string, values?: Record<string, unknown> | undefined): string;
61
+ (key: string, values?: Record<string, unknown> | undefined): string;
62
+ };
63
+
64
+ export type { CompiledTranslations as C, I18nClientState as I, RawTranslations as R, TranslationMeta as T, TranslateFunction as a };
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Shared types used by both server and client
3
+ */
4
+ /**
5
+ * Variable definition with optional example for CMS/documentation
6
+ */
7
+ type VariableDef = {
8
+ example?: string;
9
+ description?: string;
10
+ };
11
+ /**
12
+ * Metadata for a translation key - extracted at build time, synced to CMS
13
+ */
14
+ type TranslationMeta = {
15
+ example: string;
16
+ variables?: Record<string, VariableDef>;
17
+ description?: string;
18
+ };
19
+ /**
20
+ * Compiled translation ready for runtime use
21
+ */
22
+ type CompiledTranslation = (values?: Record<string, unknown>) => string;
23
+ /**
24
+ * Map of translation keys to compiled functions
25
+ */
26
+ type CompiledTranslations = Record<string, CompiledTranslation>;
27
+ /**
28
+ * Raw translation strings from CMS (before compilation)
29
+ */
30
+ type RawTranslations = Record<string, string>;
31
+ /**
32
+ * Translate function signature
33
+ *
34
+ * @param key - Translation key (e.g., 'checkout.title')
35
+ * @param meta - Metadata with example and variable definitions (extracted at build time)
36
+ * @param values - Runtime values for interpolation
37
+ * @returns Translated string
38
+ *
39
+ * @example
40
+ * // Simple
41
+ * t('checkout.title', { example: 'Bestellübersicht' })
42
+ *
43
+ * @example
44
+ * // With variables
45
+ * t('checkout.tax', {
46
+ * example: 'Enthält {name} MwSt.',
47
+ * variables: { name: { example: '19%' } }
48
+ * }, { name: taxRate })
49
+ *
50
+ * @example
51
+ * // Pluralization (ICU)
52
+ * t('cart.items', {
53
+ * example: '{count, plural, one {# item} other {# items}}'
54
+ * }, { count: itemCount })
55
+ */
56
+ type TranslateFunction = (key: string, meta: TranslationMeta, values?: Record<string, unknown>) => string;
57
+
58
+ export type { CompiledTranslations as C, RawTranslations as R, TranslationMeta as T, VariableDef as V, CompiledTranslation as a, TranslateFunction as b };
@@ -0,0 +1,7 @@
1
+ import { I as I18nClientState } from './types-CiIDN2sW.js';
2
+
3
+ declare global {
4
+ interface Window {
5
+ __i18n__: I18nClientState;
6
+ }
7
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Variable definition with optional example for CMS/documentation
3
+ */
4
+ type VariableDef = {
5
+ example?: string;
6
+ description?: string;
7
+ };
8
+ /**
9
+ * Metadata for a translation key - extracted at build time, synced to CMS
10
+ */
11
+ type TranslationMeta = {
12
+ example: string;
13
+ variables?: Record<string, VariableDef>;
14
+ description?: string;
15
+ };
16
+ /**
17
+ * Compiled translation ready for runtime use
18
+ */
19
+ type CompiledTranslation = (values?: Record<string, unknown>) => string;
20
+ /**
21
+ * Map of translation keys to compiled functions
22
+ */
23
+ type CompiledTranslations = Record<string, CompiledTranslation>;
24
+ /**
25
+ * Raw translation strings from CMS (before compilation)
26
+ */
27
+ type RawTranslations = Record<string, string>;
28
+ /**
29
+ * Extracted metadata for a single translation key
30
+ */
31
+ type ExtractedKey = {
32
+ key: string;
33
+ meta: TranslationMeta;
34
+ file: string;
35
+ line: number;
36
+ };
37
+ /**
38
+ * Chunk-to-keys mapping produced by Vite plugin
39
+ */
40
+ type ChunkManifest = Record<string, string[]>;
41
+ /**
42
+ * Full extraction manifest
43
+ */
44
+ type ExtractionManifest = {
45
+ keys: ExtractedKey[];
46
+ chunks: ChunkManifest;
47
+ };
48
+ /**
49
+ * Fallback behavior when translation is missing
50
+ */
51
+ type FallbackBehavior = 'key' | 'example' | 'throw' | ((key: string, meta?: TranslationMeta) => string);
52
+ /**
53
+ * CMS adapter interface
54
+ */
55
+ type CmsAdapter = {
56
+ /**
57
+ * Fetch translations for given locale and keys
58
+ */
59
+ fetch: (locale: string, keys: string[]) => Promise<RawTranslations>;
60
+ /**
61
+ * Sync extracted keys to CMS (push metadata)
62
+ */
63
+ sync?: (manifest: ExtractionManifest) => Promise<void>;
64
+ };
65
+ /**
66
+ * User's i18n.ts exports
67
+ */
68
+ type I18nUserConfig = {
69
+ /**
70
+ * CMS adapter for fetching/syncing translations
71
+ */
72
+ cms: CmsAdapter;
73
+ /**
74
+ * Optional chunk manifest for per-chunk loading
75
+ * In production, this should be loaded from build output
76
+ */
77
+ chunkManifest?: ChunkManifest;
78
+ };
79
+ /**
80
+ * Request-scoped i18n context
81
+ */
82
+ type I18nContext = {
83
+ locale: string;
84
+ translations: CompiledTranslations;
85
+ fallback: FallbackBehavior;
86
+ meta: Record<string, TranslationMeta>;
87
+ };
88
+ /**
89
+ * Global i18n config (from virtual module)
90
+ */
91
+ type I18nConfig = {
92
+ locales: string[];
93
+ defaultLocale: string;
94
+ fallback: FallbackBehavior;
95
+ };
96
+
97
+ export type { CmsAdapter as C, ExtractedKey as E, FallbackBehavior as F, I18nUserConfig as I, RawTranslations as R, TranslationMeta as T, VariableDef as V, ChunkManifest as a, CompiledTranslation as b, CompiledTranslations as c, ExtractionManifest as d, I18nContext as e, I18nConfig as f };
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Variable definition with optional example for CMS/documentation
3
+ */
4
+ type VariableDef = {
5
+ example?: string;
6
+ description?: string;
7
+ };
8
+ /**
9
+ * Metadata for a translation key - extracted at build time, synced to CMS
10
+ */
11
+ type TranslationMeta = {
12
+ example: string;
13
+ variables?: Record<string, VariableDef>;
14
+ description?: string;
15
+ };
16
+ /**
17
+ * Compiled translation ready for runtime use
18
+ */
19
+ type CompiledTranslation = (values?: Record<string, unknown>) => string;
20
+ /**
21
+ * Map of translation keys to compiled functions
22
+ */
23
+ type CompiledTranslations = Record<string, CompiledTranslation>;
24
+ /**
25
+ * Raw translation strings from CMS (before compilation)
26
+ */
27
+ type RawTranslations = Record<string, string>;
28
+ /**
29
+ * Extracted metadata for a single translation key
30
+ */
31
+ type ExtractedKey = {
32
+ key: string;
33
+ meta: TranslationMeta;
34
+ file: string;
35
+ line: number;
36
+ };
37
+ /**
38
+ * Chunk-to-keys mapping produced by Vite plugin
39
+ */
40
+ type ChunkManifest = Record<string, string[]>;
41
+ /**
42
+ * Full extraction manifest
43
+ */
44
+ type ExtractionManifest = {
45
+ keys: ExtractedKey[];
46
+ chunks: ChunkManifest;
47
+ };
48
+ /**
49
+ * Fallback behavior when translation is missing
50
+ */
51
+ type FallbackBehavior = 'key' | 'example' | 'throw' | ((key: string, meta?: TranslationMeta) => string);
52
+ /**
53
+ * CMS adapter interface
54
+ */
55
+ type CmsAdapter = {
56
+ /**
57
+ * Fetch translations for given locale and keys
58
+ */
59
+ fetch: (locale: string, keys: string[]) => Promise<RawTranslations>;
60
+ /**
61
+ * Sync extracted keys to CMS (push metadata)
62
+ */
63
+ sync?: (manifest: ExtractionManifest) => Promise<void>;
64
+ };
65
+ /**
66
+ * User's i18n.ts exports
67
+ */
68
+ type I18nUserConfig = {
69
+ /**
70
+ * CMS adapter for fetching/syncing translations
71
+ */
72
+ cms: CmsAdapter;
73
+ /**
74
+ * Optional chunk manifest for per-chunk loading
75
+ * In production, this should be loaded from build output
76
+ */
77
+ chunkManifest?: ChunkManifest;
78
+ };
79
+ /**
80
+ * Request-scoped i18n context
81
+ */
82
+ type I18nContext = {
83
+ locale: string;
84
+ translations: CompiledTranslations;
85
+ fallback: FallbackBehavior;
86
+ meta: Record<string, TranslationMeta>;
87
+ };
88
+ /**
89
+ * Global i18n config (from virtual module)
90
+ */
91
+ type I18nConfig = {
92
+ locales: string[];
93
+ defaultLocale: string;
94
+ fallback: FallbackBehavior;
95
+ };
96
+ /**
97
+ * Client-side i18n state stored on window.__i18n__
98
+ * Fallback is handled server-side; client just uses example from t() call if missing
99
+ */
100
+ type I18nClientState = {
101
+ locale: string;
102
+ hashes: Record<string, string>;
103
+ translations: Record<string, string>;
104
+ };
105
+ /**
106
+ * Translate function signature
107
+ *
108
+ * @param key - Translation key (e.g., 'checkout.title')
109
+ * @param meta - Metadata with example and variable definitions (extracted at build time)
110
+ * @param values - Runtime values for interpolation
111
+ * @returns Translated string
112
+ *
113
+ * @example
114
+ * // Simple
115
+ * t('checkout.title', { example: 'Bestellübersicht' })
116
+ *
117
+ * @example
118
+ * // With variables
119
+ * t('checkout.tax', {
120
+ * example: 'Enthält {name} MwSt.',
121
+ * variables: { name: { example: '19%' } }
122
+ * }, { name: taxRate })
123
+ *
124
+ * @example
125
+ * // Pluralization (ICU)
126
+ * t('cart.items', {
127
+ * example: '{count, plural, one {# item} other {# items}}'
128
+ * }, { count: itemCount })
129
+ */
130
+ type TranslateFunction = (key: string, meta: TranslationMeta, values?: Record<string, unknown>) => string;
131
+ declare global {
132
+ interface Window {
133
+ __i18n__?: I18nClientState;
134
+ }
135
+ }
136
+
137
+ export type { CmsAdapter as C, ExtractedKey as E, FallbackBehavior as F, I18nUserConfig as I, RawTranslations as R, TranslationMeta as T, VariableDef as V, ChunkManifest as a, CompiledTranslation as b, CompiledTranslations as c, ExtractionManifest as d, I18nContext as e, I18nConfig as f, TranslateFunction as g };