@intlayer/docs 5.5.8

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 (1135) hide show
  1. package/LICENSE +202 -0
  2. package/ar/CI_CD.md +149 -0
  3. package/ar/autoFill.md +157 -0
  4. package/ar/concept/content/file.md +1 -0
  5. package/ar/configuration.md +492 -0
  6. package/ar/dictionary/condition.md +213 -0
  7. package/ar/dictionary/content_extention_customization.md +81 -0
  8. package/ar/dictionary/enumeration.md +221 -0
  9. package/ar/dictionary/file.md +209 -0
  10. package/ar/dictionary/function_fetching.md +190 -0
  11. package/ar/dictionary/get_started.md +490 -0
  12. package/ar/dictionary/insertion.md +161 -0
  13. package/ar/dictionary/markdown.md +343 -0
  14. package/ar/dictionary/nesting.md +249 -0
  15. package/ar/dictionary/translation.md +307 -0
  16. package/ar/header.md +7 -0
  17. package/ar/how_works_intlayer.md +219 -0
  18. package/ar/index.md +125 -0
  19. package/ar/interest_of_intlayer.md +132 -0
  20. package/ar/intlayer_CMS.md +328 -0
  21. package/ar/intlayer_cli.md +258 -0
  22. package/ar/intlayer_visual_editor.md +210 -0
  23. package/ar/intlayer_with_angular.md +3 -0
  24. package/ar/intlayer_with_create_react_app.md +1196 -0
  25. package/ar/intlayer_with_express.md +270 -0
  26. package/ar/intlayer_with_lynx+react.md +482 -0
  27. package/ar/intlayer_with_nextjs_14.md +1260 -0
  28. package/ar/intlayer_with_nextjs_15.md +1311 -0
  29. package/ar/intlayer_with_nextjs_page_router.md +1099 -0
  30. package/ar/intlayer_with_react_native+expo.md +539 -0
  31. package/ar/intlayer_with_vite+preact.md +1679 -0
  32. package/ar/intlayer_with_vite+react.md +1582 -0
  33. package/ar/intlayer_with_vite+solid.md +3 -0
  34. package/ar/intlayer_with_vite+svelte.md +3 -0
  35. package/ar/intlayer_with_vite+vue.md +989 -0
  36. package/ar/introduction.md +190 -0
  37. package/ar/mcp_server.md +150 -0
  38. package/ar/packages/@intlayer/api/index.md +31 -0
  39. package/ar/packages/@intlayer/chokidar/index.md +31 -0
  40. package/ar/packages/@intlayer/cli/index.md +1 -0
  41. package/ar/packages/@intlayer/config/index.md +116 -0
  42. package/ar/packages/@intlayer/core/index.md +25 -0
  43. package/ar/packages/@intlayer/design-system/index.md +21 -0
  44. package/ar/packages/@intlayer/dictionary-entry/index.md +21 -0
  45. package/ar/packages/@intlayer/editor/index.md +21 -0
  46. package/ar/packages/@intlayer/editor-react/index.md +21 -0
  47. package/ar/packages/@intlayer/webpack/index.md +35 -0
  48. package/ar/packages/angular-intlayer/index.md +3 -0
  49. package/ar/packages/express-intlayer/index.md +232 -0
  50. package/ar/packages/express-intlayer/t.md +448 -0
  51. package/ar/packages/intlayer/getConfiguration.md +120 -0
  52. package/ar/packages/intlayer/getEnumeration.md +138 -0
  53. package/ar/packages/intlayer/getHTMLTextDir.md +97 -0
  54. package/ar/packages/intlayer/getLocaleLang.md +61 -0
  55. package/ar/packages/intlayer/getLocaleName.md +93 -0
  56. package/ar/packages/intlayer/getLocalizedUrl.md +221 -0
  57. package/ar/packages/intlayer/getMultilingualUrls.md +198 -0
  58. package/ar/packages/intlayer/getPathWithoutLocale.md +50 -0
  59. package/ar/packages/intlayer/getTranslation.md +175 -0
  60. package/ar/packages/intlayer/getTranslationContent.md +175 -0
  61. package/ar/packages/intlayer/index.md +254 -0
  62. package/ar/packages/intlayer-cli/index.md +41 -0
  63. package/ar/packages/intlayer-editor/index.md +113 -0
  64. package/ar/packages/lynx-intlayer/index.md +58 -0
  65. package/ar/packages/next-intlayer/index.md +267 -0
  66. package/ar/packages/next-intlayer/t.md +341 -0
  67. package/ar/packages/next-intlayer/useDictionary.md +248 -0
  68. package/ar/packages/next-intlayer/useIntlayer.md +237 -0
  69. package/ar/packages/next-intlayer/useIntlayerAsync.md +211 -0
  70. package/ar/packages/next-intlayer/useLocale.md +105 -0
  71. package/ar/packages/preact-intlayer/index.md +3 -0
  72. package/ar/packages/react-intlayer/index.md +261 -0
  73. package/ar/packages/react-intlayer/t.md +283 -0
  74. package/ar/packages/react-intlayer/useDictionary.md +268 -0
  75. package/ar/packages/react-intlayer/useIntlayer.md +225 -0
  76. package/ar/packages/react-intlayer/useIntlayerAsync.md +226 -0
  77. package/ar/packages/react-intlayer/useLocale.md +184 -0
  78. package/ar/packages/react-native-intlayer/index.md +57 -0
  79. package/ar/packages/react-scripts-intlayer/index.md +57 -0
  80. package/ar/packages/solid-intlayer/index.md +3 -0
  81. package/ar/packages/svelte-intlayer/index.md +3 -0
  82. package/ar/packages/vite-intlayer/index.md +53 -0
  83. package/ar/packages/vue-intlayer/index.md +3 -0
  84. package/ar/per_locale_file.md +298 -0
  85. package/ar/privacy_notice.md +61 -0
  86. package/ar/roadmap.md +208 -0
  87. package/ar/terms_of_service.md +33 -0
  88. package/ar/vs_code_extension.md +139 -0
  89. package/de/CI_CD.md +149 -0
  90. package/de/angular-intlayer/index.md +3 -0
  91. package/de/autoFill.md +157 -0
  92. package/de/configuration.md +501 -0
  93. package/de/dictionary/condition.md +213 -0
  94. package/de/dictionary/content_extention_customization.md +81 -0
  95. package/de/dictionary/enumeration.md +221 -0
  96. package/de/dictionary/file.md +207 -0
  97. package/de/dictionary/function_fetching.md +190 -0
  98. package/de/dictionary/get_started.md +466 -0
  99. package/de/dictionary/insertion.md +167 -0
  100. package/de/dictionary/markdown.md +345 -0
  101. package/de/dictionary/nesting.md +252 -0
  102. package/de/dictionary/translation.md +287 -0
  103. package/de/header.md +5 -0
  104. package/de/how_works_intlayer.md +216 -0
  105. package/de/index.md +125 -0
  106. package/de/insertion.md +0 -0
  107. package/de/interest_of_intlayer.md +132 -0
  108. package/de/intlayer_CMS.md +334 -0
  109. package/de/intlayer_cli.md +274 -0
  110. package/de/intlayer_visual_editor.md +210 -0
  111. package/de/intlayer_with_angular.md +3 -0
  112. package/de/intlayer_with_create_react_app.md +1200 -0
  113. package/de/intlayer_with_express.md +268 -0
  114. package/de/intlayer_with_lynx+react.md +482 -0
  115. package/de/intlayer_with_nextjs_14.md +1258 -0
  116. package/de/intlayer_with_nextjs_15.md +1306 -0
  117. package/de/intlayer_with_nextjs_page_router.md +1087 -0
  118. package/de/intlayer_with_react_native+expo.md +539 -0
  119. package/de/intlayer_with_vite+preact.md +1701 -0
  120. package/de/intlayer_with_vite+react.md +1584 -0
  121. package/de/intlayer_with_vite+solid.md +3 -0
  122. package/de/intlayer_with_vite+svelte.md +3 -0
  123. package/de/intlayer_with_vite+vue.md +989 -0
  124. package/de/introduction.md +186 -0
  125. package/de/mcp_server.md +150 -0
  126. package/de/packages/@intlayer/api/index.md +31 -0
  127. package/de/packages/@intlayer/chokidar/index.md +31 -0
  128. package/de/packages/@intlayer/cli/index.md +21 -0
  129. package/de/packages/@intlayer/config/index.md +116 -0
  130. package/de/packages/@intlayer/core/index.md +25 -0
  131. package/de/packages/@intlayer/design-system/index.md +21 -0
  132. package/de/packages/@intlayer/dictionary-entry/index.md +21 -0
  133. package/de/packages/@intlayer/editor/index.md +21 -0
  134. package/de/packages/@intlayer/editor-react/index.md +21 -0
  135. package/de/packages/@intlayer/webpack/index.md +35 -0
  136. package/de/packages/angular-intlayer/index.md +31 -0
  137. package/de/packages/express-intlayer/index.md +229 -0
  138. package/de/packages/express-intlayer/t.md +432 -0
  139. package/de/packages/intlayer/getConfiguration.md +120 -0
  140. package/de/packages/intlayer/getEnumeration.md +140 -0
  141. package/de/packages/intlayer/getHTMLTextDir.md +97 -0
  142. package/de/packages/intlayer/getLocaleLang.md +57 -0
  143. package/de/packages/intlayer/getLocaleName.md +93 -0
  144. package/de/packages/intlayer/getLocalizedUrl.md +221 -0
  145. package/de/packages/intlayer/getMultilingualUrls.md +198 -0
  146. package/de/packages/intlayer/getPathWithoutLocale.md +50 -0
  147. package/de/packages/intlayer/getTranslation.md +166 -0
  148. package/de/packages/intlayer/getTranslationContent.md +166 -0
  149. package/de/packages/intlayer/index.md +478 -0
  150. package/de/packages/intlayer-cli/index.md +41 -0
  151. package/de/packages/intlayer-editor/index.md +113 -0
  152. package/de/packages/lynx-intlayer/index.md +58 -0
  153. package/de/packages/next-intlayer/index.md +263 -0
  154. package/de/packages/next-intlayer/t.md +325 -0
  155. package/de/packages/next-intlayer/useDictionary.md +242 -0
  156. package/de/packages/next-intlayer/useIntlayer.md +237 -0
  157. package/de/packages/next-intlayer/useIntlayerAsync.md +211 -0
  158. package/de/packages/next-intlayer/useLocale.md +105 -0
  159. package/de/packages/preact-intlayer/index.md +3 -0
  160. package/de/packages/react-intlayer/index.md +260 -0
  161. package/de/packages/react-intlayer/t.md +277 -0
  162. package/de/packages/react-intlayer/useDictionary.md +260 -0
  163. package/de/packages/react-intlayer/useIntlayer.md +225 -0
  164. package/de/packages/react-intlayer/useIntlayerAsync.md +226 -0
  165. package/de/packages/react-intlayer/useLocale.md +184 -0
  166. package/de/packages/react-native-intlayer/index.md +57 -0
  167. package/de/packages/react-scripts-intlayer/index.md +57 -0
  168. package/de/packages/solid-intlayer/index.md +3 -0
  169. package/de/packages/svelte-intlayer/index.md +3 -0
  170. package/de/packages/vite-intlayer/index.md +53 -0
  171. package/de/packages/vue-intlayer/index.md +3 -0
  172. package/de/per_locale_file.md +298 -0
  173. package/de/privacy_notice.md +61 -0
  174. package/de/roadmap.md +206 -0
  175. package/de/terms_of_service.md +33 -0
  176. package/de/vs_code_extension.md +139 -0
  177. package/en/CI_CD.md +149 -0
  178. package/en/autoFill.md +157 -0
  179. package/en/configuration.md +506 -0
  180. package/en/dictionary/condition.md +213 -0
  181. package/en/dictionary/content_extention_customization.md +81 -0
  182. package/en/dictionary/enumeration.md +221 -0
  183. package/en/dictionary/file.md +198 -0
  184. package/en/dictionary/function_fetching.md +190 -0
  185. package/en/dictionary/get_started.md +504 -0
  186. package/en/dictionary/insertion.md +167 -0
  187. package/en/dictionary/markdown.md +355 -0
  188. package/en/dictionary/nesting.md +249 -0
  189. package/en/dictionary/translation.md +285 -0
  190. package/en/frequent_questions/build_dictionaries.md +37 -0
  191. package/en/frequent_questions/domain_routing.md +92 -0
  192. package/en/frequent_questions/esbuild_error.md +9 -0
  193. package/en/frequent_questions/get_locale_cookie.md +121 -0
  194. package/en/frequent_questions/intlayer_command_undefined.md +135 -0
  195. package/en/frequent_questions/locale_incorect_in_url.md +52 -0
  196. package/en/frequent_questions/static_rendering.md +24 -0
  197. package/en/frequent_questions/unknown_command.md +76 -0
  198. package/en/header.md +5 -0
  199. package/en/how_works_intlayer.md +219 -0
  200. package/en/index.md +139 -0
  201. package/en/interest_of_intlayer.md +133 -0
  202. package/en/intlayer_CMS.md +334 -0
  203. package/en/intlayer_cli.md +309 -0
  204. package/en/intlayer_visual_editor.md +244 -0
  205. package/en/intlayer_with_angular.md +139 -0
  206. package/en/intlayer_with_create_react_app.md +1209 -0
  207. package/en/intlayer_with_express.md +391 -0
  208. package/en/intlayer_with_lynx+react.md +483 -0
  209. package/en/intlayer_with_nextjs_14.md +1298 -0
  210. package/en/intlayer_with_nextjs_15.md +1347 -0
  211. package/en/intlayer_with_nextjs_page_router.md +1126 -0
  212. package/en/intlayer_with_react_native+expo.md +630 -0
  213. package/en/intlayer_with_vite+preact.md +1659 -0
  214. package/en/intlayer_with_vite+react.md +1605 -0
  215. package/en/intlayer_with_vite+solid.md +254 -0
  216. package/en/intlayer_with_vite+svelte.md +254 -0
  217. package/en/intlayer_with_vite+vue.md +1000 -0
  218. package/en/introduction.md +185 -0
  219. package/en/mcp_server.md +150 -0
  220. package/en/packages/@intlayer/api/index.md +31 -0
  221. package/en/packages/@intlayer/chokidar/index.md +31 -0
  222. package/en/packages/@intlayer/cli/index.md +21 -0
  223. package/en/packages/@intlayer/config/index.md +116 -0
  224. package/en/packages/@intlayer/core/index.md +25 -0
  225. package/en/packages/@intlayer/design-system/index.md +21 -0
  226. package/en/packages/@intlayer/dictionary-entry/index.md +21 -0
  227. package/en/packages/@intlayer/editor/index.md +21 -0
  228. package/en/packages/@intlayer/editor-react/index.md +21 -0
  229. package/en/packages/@intlayer/webpack/index.md +35 -0
  230. package/en/packages/angular-intlayer/index.md +31 -0
  231. package/en/packages/express-intlayer/index.md +229 -0
  232. package/en/packages/express-intlayer/t.md +432 -0
  233. package/en/packages/intlayer/getConfiguration.md +120 -0
  234. package/en/packages/intlayer/getEnumeration.md +138 -0
  235. package/en/packages/intlayer/getHTMLTextDir.md +97 -0
  236. package/en/packages/intlayer/getLocaleLang.md +57 -0
  237. package/en/packages/intlayer/getLocaleName.md +93 -0
  238. package/en/packages/intlayer/getLocalizedUrl.md +221 -0
  239. package/en/packages/intlayer/getMultilingualUrls.md +198 -0
  240. package/en/packages/intlayer/getPathWithoutLocale.md +50 -0
  241. package/en/packages/intlayer/getTranslation.md +166 -0
  242. package/en/packages/intlayer/getTranslationContent.md +166 -0
  243. package/en/packages/intlayer/index.md +476 -0
  244. package/en/packages/intlayer-cli/index.md +41 -0
  245. package/en/packages/intlayer-editor/index.md +113 -0
  246. package/en/packages/lynx-intlayer/index.md +60 -0
  247. package/en/packages/next-intlayer/index.md +263 -0
  248. package/en/packages/next-intlayer/t.md +326 -0
  249. package/en/packages/next-intlayer/useDictionary.md +242 -0
  250. package/en/packages/next-intlayer/useIntlayer.md +237 -0
  251. package/en/packages/next-intlayer/useIntlayerAsync.md +211 -0
  252. package/en/packages/next-intlayer/useLocale.md +105 -0
  253. package/en/packages/preact-intlayer/index.md +31 -0
  254. package/en/packages/react-intlayer/index.md +257 -0
  255. package/en/packages/react-intlayer/t.md +277 -0
  256. package/en/packages/react-intlayer/useDictionary.md +260 -0
  257. package/en/packages/react-intlayer/useIntlayer.md +225 -0
  258. package/en/packages/react-intlayer/useIntlayerAsync.md +226 -0
  259. package/en/packages/react-intlayer/useLocale.md +184 -0
  260. package/en/packages/react-native-intlayer/index.md +59 -0
  261. package/en/packages/react-scripts-intlayer/index.md +57 -0
  262. package/en/packages/solid-intlayer/index.md +31 -0
  263. package/en/packages/svelte-intlayer/index.md +31 -0
  264. package/en/packages/vite-intlayer/index.md +53 -0
  265. package/en/packages/vue-intlayer/index.md +31 -0
  266. package/en/per_locale_file.md +297 -0
  267. package/en/privacy_notice.md +61 -0
  268. package/en/roadmap.md +270 -0
  269. package/en/t.md +163 -0
  270. package/en/terms_of_service.md +33 -0
  271. package/en/vs_code_extension.md +129 -0
  272. package/en-GB/CI_CD.md +149 -0
  273. package/en-GB/autoFill.md +0 -0
  274. package/en-GB/configuration.md +490 -0
  275. package/en-GB/dictionary/condition.md +213 -0
  276. package/en-GB/dictionary/content_extention_customization.md +83 -0
  277. package/en-GB/dictionary/enumeration.md +221 -0
  278. package/en-GB/dictionary/file.md +201 -0
  279. package/en-GB/dictionary/function_fetching.md +190 -0
  280. package/en-GB/dictionary/get_started.md +466 -0
  281. package/en-GB/dictionary/insertion.md +167 -0
  282. package/en-GB/dictionary/markdown.md +343 -0
  283. package/en-GB/dictionary/nesting.md +249 -0
  284. package/en-GB/dictionary/translation.md +285 -0
  285. package/en-GB/header.md +1 -0
  286. package/en-GB/how_works_intlayer.md +217 -0
  287. package/en-GB/index.md +142 -0
  288. package/en-GB/interest_of_intlayer.md +123 -0
  289. package/en-GB/intlayer_CMS.md +334 -0
  290. package/en-GB/intlayer_cli.md +239 -0
  291. package/en-GB/intlayer_visual_editor.md +210 -0
  292. package/en-GB/intlayer_with_angular.md +3 -0
  293. package/en-GB/intlayer_with_create_react_app.md +1192 -0
  294. package/en-GB/intlayer_with_express.md +267 -0
  295. package/en-GB/intlayer_with_lynx+react.md +484 -0
  296. package/en-GB/intlayer_with_nextjs_14.md +1267 -0
  297. package/en-GB/intlayer_with_nextjs_15.md +1308 -0
  298. package/en-GB/intlayer_with_nextjs_page_router.md +1087 -0
  299. package/en-GB/intlayer_with_react_native+expo.md +539 -0
  300. package/en-GB/intlayer_with_vite+preact.md +1648 -0
  301. package/en-GB/intlayer_with_vite+react.md +1430 -0
  302. package/en-GB/intlayer_with_vite+solid.md +3 -0
  303. package/en-GB/intlayer_with_vite+svelte.md +3 -0
  304. package/en-GB/intlayer_with_vite+vue.md +993 -0
  305. package/en-GB/introduction.md +201 -0
  306. package/en-GB/mcp_server.md +150 -0
  307. package/en-GB/packages/@intlayer/api/index.md +31 -0
  308. package/en-GB/packages/@intlayer/chokidar/index.md +31 -0
  309. package/en-GB/packages/@intlayer/cli/index.md +21 -0
  310. package/en-GB/packages/@intlayer/config/index.md +116 -0
  311. package/en-GB/packages/@intlayer/core/index.md +25 -0
  312. package/en-GB/packages/@intlayer/design-system/index.md +21 -0
  313. package/en-GB/packages/@intlayer/dictionary-entry/index.md +21 -0
  314. package/en-GB/packages/@intlayer/editor/index.md +21 -0
  315. package/en-GB/packages/@intlayer/editor-react/index.md +21 -0
  316. package/en-GB/packages/@intlayer/webpack/index.md +35 -0
  317. package/en-GB/packages/angular-intlayer/index.md +3 -0
  318. package/en-GB/packages/express-intlayer/index.md +229 -0
  319. package/en-GB/packages/express-intlayer/t.md +432 -0
  320. package/en-GB/packages/intlayer/getConfiguration.md +120 -0
  321. package/en-GB/packages/intlayer/getEnumeration.md +140 -0
  322. package/en-GB/packages/intlayer/getHTMLTextDir.md +97 -0
  323. package/en-GB/packages/intlayer/getLocaleLang.md +57 -0
  324. package/en-GB/packages/intlayer/getLocaleName.md +93 -0
  325. package/en-GB/packages/intlayer/getLocalizedUrl.md +221 -0
  326. package/en-GB/packages/intlayer/getMultilingualUrls.md +198 -0
  327. package/en-GB/packages/intlayer/getPathWithoutLocale.md +50 -0
  328. package/en-GB/packages/intlayer/getTranslation.md +166 -0
  329. package/en-GB/packages/intlayer/getTranslationContent.md +166 -0
  330. package/en-GB/packages/intlayer/index.md +476 -0
  331. package/en-GB/packages/intlayer-cli/index.md +41 -0
  332. package/en-GB/packages/intlayer-editor/index.md +113 -0
  333. package/en-GB/packages/lynx-intlayer/index.md +58 -0
  334. package/en-GB/packages/next-intlayer/index.md +263 -0
  335. package/en-GB/packages/next-intlayer/t.md +326 -0
  336. package/en-GB/packages/next-intlayer/useDictionary.md +242 -0
  337. package/en-GB/packages/next-intlayer/useIntlayer.md +237 -0
  338. package/en-GB/packages/next-intlayer/useIntlayerAsync.md +211 -0
  339. package/en-GB/packages/next-intlayer/useLocale.md +105 -0
  340. package/en-GB/packages/preact-intlayer/index.md +3 -0
  341. package/en-GB/packages/react-intlayer/index.md +257 -0
  342. package/en-GB/packages/react-intlayer/t.md +277 -0
  343. package/en-GB/packages/react-intlayer/useDictionary.md +260 -0
  344. package/en-GB/packages/react-intlayer/useIntlayer.md +225 -0
  345. package/en-GB/packages/react-intlayer/useIntlayerAsync.md +226 -0
  346. package/en-GB/packages/react-intlayer/useLocale.md +184 -0
  347. package/en-GB/packages/react-native-intlayer/index.md +57 -0
  348. package/en-GB/packages/react-scripts-intlayer/index.md +57 -0
  349. package/en-GB/packages/solid-intlayer/index.md +3 -0
  350. package/en-GB/packages/svelte-intlayer/index.md +3 -0
  351. package/en-GB/packages/vite-intlayer/index.md +53 -0
  352. package/en-GB/packages/vue-intlayer/index.md +3 -0
  353. package/en-GB/per_locale_file.md +298 -0
  354. package/en-GB/privacy_notice.md +57 -0
  355. package/en-GB/roadmap.md +206 -0
  356. package/en-GB/terms_of_service.md +33 -0
  357. package/en-GB/vs_code_extension.md +139 -0
  358. package/es/CI_CD.md +149 -0
  359. package/es/autoFill.md +157 -0
  360. package/es/configuration.md +503 -0
  361. package/es/dictionary/condition.md +213 -0
  362. package/es/dictionary/content_extention_customization.md +81 -0
  363. package/es/dictionary/enumeration.md +221 -0
  364. package/es/dictionary/file.md +206 -0
  365. package/es/dictionary/function_fetching.md +190 -0
  366. package/es/dictionary/get_started.md +466 -0
  367. package/es/dictionary/insertion.md +161 -0
  368. package/es/dictionary/markdown.md +338 -0
  369. package/es/dictionary/nesting.md +249 -0
  370. package/es/dictionary/translation.md +287 -0
  371. package/es/header.md +5 -0
  372. package/es/how_works_intlayer.md +217 -0
  373. package/es/index.md +122 -0
  374. package/es/interest_of_intlayer.md +132 -0
  375. package/es/intlayer_CMS.md +334 -0
  376. package/es/intlayer_cli.md +274 -0
  377. package/es/intlayer_visual_editor.md +210 -0
  378. package/es/intlayer_with_angular.md +3 -0
  379. package/es/intlayer_with_create_react_app.md +1192 -0
  380. package/es/intlayer_with_express.md +276 -0
  381. package/es/intlayer_with_lynx+react.md +475 -0
  382. package/es/intlayer_with_nextjs_14.md +1258 -0
  383. package/es/intlayer_with_nextjs_15.md +1308 -0
  384. package/es/intlayer_with_nextjs_page_router.md +1088 -0
  385. package/es/intlayer_with_react_native+expo.md +180 -0
  386. package/es/intlayer_with_vite+preact.md +1637 -0
  387. package/es/intlayer_with_vite+react.md +1592 -0
  388. package/es/intlayer_with_vite+solid.md +3 -0
  389. package/es/intlayer_with_vite+svelte.md +3 -0
  390. package/es/intlayer_with_vite+vue.md +947 -0
  391. package/es/introduction.md +184 -0
  392. package/es/mcp_server.md +150 -0
  393. package/es/packages/@intlayer/api/index.md +31 -0
  394. package/es/packages/@intlayer/chokidar/index.md +31 -0
  395. package/es/packages/@intlayer/cli/index.md +21 -0
  396. package/es/packages/@intlayer/config/index.md +116 -0
  397. package/es/packages/@intlayer/core/index.md +25 -0
  398. package/es/packages/@intlayer/design-system/index.md +21 -0
  399. package/es/packages/@intlayer/dictionary-entry/index.md +21 -0
  400. package/es/packages/@intlayer/editor/index.md +21 -0
  401. package/es/packages/@intlayer/editor-react/index.md +21 -0
  402. package/es/packages/@intlayer/webpack/index.md +35 -0
  403. package/es/packages/angular-intlayer/index.md +3 -0
  404. package/es/packages/express-intlayer/index.md +229 -0
  405. package/es/packages/express-intlayer/t.md +432 -0
  406. package/es/packages/intlayer/getConfiguration.md +120 -0
  407. package/es/packages/intlayer/getEnumeration.md +138 -0
  408. package/es/packages/intlayer/getHTMLTextDir.md +97 -0
  409. package/es/packages/intlayer/getLocaleLang.md +57 -0
  410. package/es/packages/intlayer/getLocaleName.md +93 -0
  411. package/es/packages/intlayer/getLocalizedUrl.md +221 -0
  412. package/es/packages/intlayer/getMultilingualUrls.md +198 -0
  413. package/es/packages/intlayer/getPathWithoutLocale.md +50 -0
  414. package/es/packages/intlayer/getTranslation.md +166 -0
  415. package/es/packages/intlayer/getTranslationContent.md +166 -0
  416. package/es/packages/intlayer/index.md +478 -0
  417. package/es/packages/intlayer-cli/index.md +41 -0
  418. package/es/packages/intlayer-editor/index.md +115 -0
  419. package/es/packages/lynx-intlayer/index.md +58 -0
  420. package/es/packages/next-intlayer/index.md +263 -0
  421. package/es/packages/next-intlayer/t.md +325 -0
  422. package/es/packages/next-intlayer/useDictionary.md +242 -0
  423. package/es/packages/next-intlayer/useIntlayer.md +237 -0
  424. package/es/packages/next-intlayer/useIntlayerAsync.md +211 -0
  425. package/es/packages/next-intlayer/useLocale.md +105 -0
  426. package/es/packages/preact-intlayer/index.md +3 -0
  427. package/es/packages/react-intlayer/index.md +263 -0
  428. package/es/packages/react-intlayer/t.md +277 -0
  429. package/es/packages/react-intlayer/useDictionary.md +270 -0
  430. package/es/packages/react-intlayer/useIntlayer.md +225 -0
  431. package/es/packages/react-intlayer/useIntlayerAsync.md +226 -0
  432. package/es/packages/react-intlayer/useLocale.md +184 -0
  433. package/es/packages/react-native-intlayer/index.md +57 -0
  434. package/es/packages/react-scripts-intlayer/index.md +57 -0
  435. package/es/packages/solid-intlayer/index.md +3 -0
  436. package/es/packages/svelte-intlayer/index.md +5 -0
  437. package/es/packages/vite-intlayer/index.md +53 -0
  438. package/es/packages/vue-intlayer/index.md +3 -0
  439. package/es/per_locale_file.md +293 -0
  440. package/es/privacy_notice.md +61 -0
  441. package/es/roadmap.md +157 -0
  442. package/es/terms_of_service.md +33 -0
  443. package/es/vs_code_extension.md +139 -0
  444. package/fr/CI_CD.md +149 -0
  445. package/fr/autoFill.md +157 -0
  446. package/fr/configuration.md +481 -0
  447. package/fr/dictionary/condition.md +213 -0
  448. package/fr/dictionary/content_extention_customization.md +81 -0
  449. package/fr/dictionary/enumeration.md +221 -0
  450. package/fr/dictionary/file.md +206 -0
  451. package/fr/dictionary/function_fetching.md +190 -0
  452. package/fr/dictionary/get_started.md +466 -0
  453. package/fr/dictionary/insertion.md +161 -0
  454. package/fr/dictionary/markdown.md +335 -0
  455. package/fr/dictionary/nesting.md +249 -0
  456. package/fr/dictionary/translation.md +287 -0
  457. package/fr/header.md +5 -0
  458. package/fr/how_works_intlayer.md +217 -0
  459. package/fr/index.md +122 -0
  460. package/fr/interest_of_intlayer.md +132 -0
  461. package/fr/intlayer_CMS.md +334 -0
  462. package/fr/intlayer_cli.md +274 -0
  463. package/fr/intlayer_visual_editor.md +210 -0
  464. package/fr/intlayer_with_angular.md +3 -0
  465. package/fr/intlayer_with_create_react_app.md +1192 -0
  466. package/fr/intlayer_with_express.md +270 -0
  467. package/fr/intlayer_with_lynx+react.md +466 -0
  468. package/fr/intlayer_with_nextjs_14.md +1258 -0
  469. package/fr/intlayer_with_nextjs_15.md +1308 -0
  470. package/fr/intlayer_with_nextjs_page_router.md +1085 -0
  471. package/fr/intlayer_with_react_native+expo.md +535 -0
  472. package/fr/intlayer_with_vite+preact.md +1621 -0
  473. package/fr/intlayer_with_vite+react.md +1589 -0
  474. package/fr/intlayer_with_vite+solid.md +3 -0
  475. package/fr/intlayer_with_vite+svelte.md +3 -0
  476. package/fr/intlayer_with_vite+vue.md +947 -0
  477. package/fr/introduction.md +190 -0
  478. package/fr/mcp_server.md +152 -0
  479. package/fr/packages/@intlayer/api/index.md +31 -0
  480. package/fr/packages/@intlayer/chokidar/index.md +31 -0
  481. package/fr/packages/@intlayer/cli/index.md +21 -0
  482. package/fr/packages/@intlayer/config/index.md +116 -0
  483. package/fr/packages/@intlayer/core/index.md +25 -0
  484. package/fr/packages/@intlayer/design-system/index.md +21 -0
  485. package/fr/packages/@intlayer/dictionary-entry/index.md +21 -0
  486. package/fr/packages/@intlayer/editor/index.md +21 -0
  487. package/fr/packages/@intlayer/editor-react/index.md +21 -0
  488. package/fr/packages/@intlayer/webpack/index.md +35 -0
  489. package/fr/packages/angular-intlayer/index.md +3 -0
  490. package/fr/packages/express-intlayer/index.md +238 -0
  491. package/fr/packages/express-intlayer/t.md +432 -0
  492. package/fr/packages/intlayer/getConfiguration.md +120 -0
  493. package/fr/packages/intlayer/getEnumeration.md +138 -0
  494. package/fr/packages/intlayer/getHTMLTextDir.md +97 -0
  495. package/fr/packages/intlayer/getLocaleLang.md +57 -0
  496. package/fr/packages/intlayer/getLocaleName.md +93 -0
  497. package/fr/packages/intlayer/getLocalizedUrl.md +221 -0
  498. package/fr/packages/intlayer/getMultilingualUrls.md +198 -0
  499. package/fr/packages/intlayer/getPathWithoutLocale.md +50 -0
  500. package/fr/packages/intlayer/getTranslation.md +166 -0
  501. package/fr/packages/intlayer/getTranslationContent.md +166 -0
  502. package/fr/packages/intlayer/index.md +476 -0
  503. package/fr/packages/intlayer-cli/index.md +41 -0
  504. package/fr/packages/intlayer-editor/index.md +115 -0
  505. package/fr/packages/lynx-intlayer/index.md +58 -0
  506. package/fr/packages/next-intlayer/index.md +266 -0
  507. package/fr/packages/next-intlayer/t.md +325 -0
  508. package/fr/packages/next-intlayer/useDictionary.md +242 -0
  509. package/fr/packages/next-intlayer/useIntlayer.md +237 -0
  510. package/fr/packages/next-intlayer/useIntlayerAsync.md +211 -0
  511. package/fr/packages/next-intlayer/useLocale.md +105 -0
  512. package/fr/packages/preact-intlayer/index.md +3 -0
  513. package/fr/packages/react-intlayer/index.md +257 -0
  514. package/fr/packages/react-intlayer/t.md +277 -0
  515. package/fr/packages/react-intlayer/useDictionary.md +269 -0
  516. package/fr/packages/react-intlayer/useIntlayer.md +234 -0
  517. package/fr/packages/react-intlayer/useIntlayerAsync.md +226 -0
  518. package/fr/packages/react-intlayer/useLocale.md +184 -0
  519. package/fr/packages/react-native-intlayer/index.md +57 -0
  520. package/fr/packages/react-scripts-intlayer/index.md +57 -0
  521. package/fr/packages/solid-intlayer/index.md +3 -0
  522. package/fr/packages/svelte-intlayer/index.md +3 -0
  523. package/fr/packages/vite-intlayer/index.md +53 -0
  524. package/fr/packages/vue-intlayer/index.md +3 -0
  525. package/fr/per_locale_file.md +297 -0
  526. package/fr/privacy_notice.md +57 -0
  527. package/fr/roadmap.md +206 -0
  528. package/fr/terms_of_service.md +33 -0
  529. package/fr/vs_code_extension.md +139 -0
  530. package/hi/CI_CD.md +149 -0
  531. package/hi/autoFill.md +157 -0
  532. package/hi/configuration.md +509 -0
  533. package/hi/dictionary/condition.md +213 -0
  534. package/hi/dictionary/content_extention_customization.md +81 -0
  535. package/hi/dictionary/enumeration.md +221 -0
  536. package/hi/dictionary/file.md +209 -0
  537. package/hi/dictionary/function_fetching.md +188 -0
  538. package/hi/dictionary/get_started.md +490 -0
  539. package/hi/dictionary/insertion.md +167 -0
  540. package/hi/dictionary/markdown.md +344 -0
  541. package/hi/dictionary/nesting.md +249 -0
  542. package/hi/dictionary/translation.md +307 -0
  543. package/hi/header.md +7 -0
  544. package/hi/how_works_intlayer.md +217 -0
  545. package/hi/index.md +125 -0
  546. package/hi/interest_of_intlayer.md +132 -0
  547. package/hi/intlayer_CMS.md +334 -0
  548. package/hi/intlayer_cli.md +274 -0
  549. package/hi/intlayer_visual_editor.md +210 -0
  550. package/hi/intlayer_with_angular.md +3 -0
  551. package/hi/intlayer_with_create_react_app.md +1395 -0
  552. package/hi/intlayer_with_express.md +273 -0
  553. package/hi/intlayer_with_lynx+react.md +456 -0
  554. package/hi/intlayer_with_nextjs_14.md +1283 -0
  555. package/hi/intlayer_with_nextjs_15.md +1319 -0
  556. package/hi/intlayer_with_nextjs_page_router.md +1097 -0
  557. package/hi/intlayer_with_react_native+expo.md +554 -0
  558. package/hi/intlayer_with_vite+preact.md +1538 -0
  559. package/hi/intlayer_with_vite+react.md +1540 -0
  560. package/hi/intlayer_with_vite+solid.md +3 -0
  561. package/hi/intlayer_with_vite+svelte.md +3 -0
  562. package/hi/intlayer_with_vite+vue.md +840 -0
  563. package/hi/introduction.md +190 -0
  564. package/hi/mcp_server.md +150 -0
  565. package/hi/packages/@intlayer/api/index.md +31 -0
  566. package/hi/packages/@intlayer/chokidar/index.md +31 -0
  567. package/hi/packages/@intlayer/cli/index.md +21 -0
  568. package/hi/packages/@intlayer/config/index.md +116 -0
  569. package/hi/packages/@intlayer/core/index.md +25 -0
  570. package/hi/packages/@intlayer/design-system/index.md +21 -0
  571. package/hi/packages/@intlayer/dictionary-entry/index.md +21 -0
  572. package/hi/packages/@intlayer/editor/index.md +21 -0
  573. package/hi/packages/@intlayer/editor-react/index.md +21 -0
  574. package/hi/packages/@intlayer/webpack/index.md +35 -0
  575. package/hi/packages/angular-intlayer/index.md +3 -0
  576. package/hi/packages/express-intlayer/index.md +232 -0
  577. package/hi/packages/express-intlayer/t.md +445 -0
  578. package/hi/packages/intlayer/getConfiguration.md +120 -0
  579. package/hi/packages/intlayer/getEnumeration.md +138 -0
  580. package/hi/packages/intlayer/getHTMLTextDir.md +97 -0
  581. package/hi/packages/intlayer/getLocaleLang.md +57 -0
  582. package/hi/packages/intlayer/getLocaleName.md +93 -0
  583. package/hi/packages/intlayer/getLocalizedUrl.md +221 -0
  584. package/hi/packages/intlayer/getMultilingualUrls.md +198 -0
  585. package/hi/packages/intlayer/getPathWithoutLocale.md +50 -0
  586. package/hi/packages/intlayer/getTranslation.md +175 -0
  587. package/hi/packages/intlayer/getTranslationContent.md +175 -0
  588. package/hi/packages/intlayer/index.md +314 -0
  589. package/hi/packages/intlayer-cli/index.md +41 -0
  590. package/hi/packages/intlayer-editor/index.md +113 -0
  591. package/hi/packages/lynx-intlayer/index.md +58 -0
  592. package/hi/packages/next-intlayer/index.md +270 -0
  593. package/hi/packages/next-intlayer/t.md +337 -0
  594. package/hi/packages/next-intlayer/useDictionary.md +248 -0
  595. package/hi/packages/next-intlayer/useIntlayer.md +237 -0
  596. package/hi/packages/next-intlayer/useIntlayerAsync.md +211 -0
  597. package/hi/packages/next-intlayer/useLocale.md +105 -0
  598. package/hi/packages/preact-intlayer/index.md +3 -0
  599. package/hi/packages/react-intlayer/index.md +261 -0
  600. package/hi/packages/react-intlayer/t.md +283 -0
  601. package/hi/packages/react-intlayer/useDictionary.md +268 -0
  602. package/hi/packages/react-intlayer/useIntlayer.md +225 -0
  603. package/hi/packages/react-intlayer/useIntlayerAsync.md +226 -0
  604. package/hi/packages/react-intlayer/useLocale.md +184 -0
  605. package/hi/packages/react-native-intlayer/index.md +57 -0
  606. package/hi/packages/react-scripts-intlayer/index.md +57 -0
  607. package/hi/packages/solid-intlayer/index.md +3 -0
  608. package/hi/packages/svelte-intlayer/index.md +3 -0
  609. package/hi/packages/vite-intlayer/index.md +53 -0
  610. package/hi/packages/vue-intlayer/index.md +3 -0
  611. package/hi/per_locale_file.md +298 -0
  612. package/hi/privacy_notice.md +61 -0
  613. package/hi/roadmap.md +206 -0
  614. package/hi/terms_of_service.md +33 -0
  615. package/hi/vs_code_extension.md +139 -0
  616. package/index.cjs +1265 -0
  617. package/index.d.ts +100 -0
  618. package/it/CI_CD.md +149 -0
  619. package/it/autoFill.md +157 -0
  620. package/it/configuration.md +503 -0
  621. package/it/dictionary/condition.md +213 -0
  622. package/it/dictionary/content_extention_customization.md +81 -0
  623. package/it/dictionary/enumeration.md +221 -0
  624. package/it/dictionary/file.md +207 -0
  625. package/it/dictionary/function_fetching.md +190 -0
  626. package/it/dictionary/get_started.md +466 -0
  627. package/it/dictionary/insertion.md +161 -0
  628. package/it/dictionary/markdown.md +343 -0
  629. package/it/dictionary/nesting.md +249 -0
  630. package/it/dictionary/translation.md +287 -0
  631. package/it/header.md +7 -0
  632. package/it/how_works_intlayer.md +217 -0
  633. package/it/index.md +125 -0
  634. package/it/interest_of_intlayer.md +132 -0
  635. package/it/intlayer_CMS.md +334 -0
  636. package/it/intlayer_cli.md +274 -0
  637. package/it/intlayer_visual_editor.md +210 -0
  638. package/it/intlayer_with_angular.md +3 -0
  639. package/it/intlayer_with_create_react_app.md +413 -0
  640. package/it/intlayer_with_express.md +267 -0
  641. package/it/intlayer_with_lynx+react.md +482 -0
  642. package/it/intlayer_with_nextjs_14.md +1269 -0
  643. package/it/intlayer_with_nextjs_15.md +1319 -0
  644. package/it/intlayer_with_nextjs_page_router.md +1095 -0
  645. package/it/intlayer_with_react_native+expo.md +261 -0
  646. package/it/intlayer_with_vite+preact.md +1681 -0
  647. package/it/intlayer_with_vite+react.md +1580 -0
  648. package/it/intlayer_with_vite+solid.md +3 -0
  649. package/it/intlayer_with_vite+svelte.md +3 -0
  650. package/it/intlayer_with_vite+vue.md +989 -0
  651. package/it/introduction.md +192 -0
  652. package/it/mcp_server.md +152 -0
  653. package/it/packages/@intlayer/api/index.md +31 -0
  654. package/it/packages/@intlayer/chokidar/index.md +31 -0
  655. package/it/packages/@intlayer/cli/index.md +21 -0
  656. package/it/packages/@intlayer/config/index.md +116 -0
  657. package/it/packages/@intlayer/core/index.md +25 -0
  658. package/it/packages/@intlayer/design-system/index.md +21 -0
  659. package/it/packages/@intlayer/dictionary-entry/index.md +21 -0
  660. package/it/packages/@intlayer/editor/index.md +21 -0
  661. package/it/packages/@intlayer/editor-react/index.md +21 -0
  662. package/it/packages/@intlayer/webpack/index.md +35 -0
  663. package/it/packages/angular-intlayer/index.md +3 -0
  664. package/it/packages/express-intlayer/index.md +229 -0
  665. package/it/packages/express-intlayer/t.md +432 -0
  666. package/it/packages/intlayer/getConfiguration.md +120 -0
  667. package/it/packages/intlayer/getEnumeration.md +138 -0
  668. package/it/packages/intlayer/getHTMLTextDir.md +97 -0
  669. package/it/packages/intlayer/getLocaleLang.md +57 -0
  670. package/it/packages/intlayer/getLocaleName.md +93 -0
  671. package/it/packages/intlayer/getLocalizedUrl.md +221 -0
  672. package/it/packages/intlayer/getMultilingualUrls.md +200 -0
  673. package/it/packages/intlayer/getPathWithoutLocale.md +50 -0
  674. package/it/packages/intlayer/getTranslation.md +166 -0
  675. package/it/packages/intlayer/getTranslationContent.md +166 -0
  676. package/it/packages/intlayer/index.md +479 -0
  677. package/it/packages/intlayer-cli/index.md +41 -0
  678. package/it/packages/intlayer-editor/index.md +113 -0
  679. package/it/packages/lynx-intlayer/index.md +58 -0
  680. package/it/packages/next-intlayer/index.md +267 -0
  681. package/it/packages/next-intlayer/t.md +326 -0
  682. package/it/packages/next-intlayer/useDictionary.md +242 -0
  683. package/it/packages/next-intlayer/useIntlayer.md +237 -0
  684. package/it/packages/next-intlayer/useIntlayerAsync.md +211 -0
  685. package/it/packages/next-intlayer/useLocale.md +105 -0
  686. package/it/packages/preact-intlayer/index.md +3 -0
  687. package/it/packages/react-intlayer/index.md +260 -0
  688. package/it/packages/react-intlayer/t.md +277 -0
  689. package/it/packages/react-intlayer/useDictionary.md +260 -0
  690. package/it/packages/react-intlayer/useIntlayer.md +225 -0
  691. package/it/packages/react-intlayer/useIntlayerAsync.md +226 -0
  692. package/it/packages/react-intlayer/useLocale.md +184 -0
  693. package/it/packages/react-native-intlayer/index.md +57 -0
  694. package/it/packages/react-scripts-intlayer/index.md +57 -0
  695. package/it/packages/solid-intlayer/index.md +5 -0
  696. package/it/packages/svelte-intlayer/index.md +3 -0
  697. package/it/packages/vite-intlayer/index.md +53 -0
  698. package/it/packages/vue-intlayer/index.md +5 -0
  699. package/it/per_locale_file.md +298 -0
  700. package/it/privacy_notice.md +61 -0
  701. package/it/roadmap.md +206 -0
  702. package/it/terms_of_service.md +33 -0
  703. package/it/vs_code_extension.md +139 -0
  704. package/ja/CI_CD.md +149 -0
  705. package/ja/autoFill.md +157 -0
  706. package/ja/configuration.md +507 -0
  707. package/ja/dictionary/condition.md +213 -0
  708. package/ja/dictionary/content_extention_customization.md +81 -0
  709. package/ja/dictionary/enumeration.md +221 -0
  710. package/ja/dictionary/file.md +209 -0
  711. package/ja/dictionary/function_fetching.md +190 -0
  712. package/ja/dictionary/get_started.md +466 -0
  713. package/ja/dictionary/insertion.md +161 -0
  714. package/ja/dictionary/markdown.md +343 -0
  715. package/ja/dictionary/nesting.md +249 -0
  716. package/ja/dictionary/translation.md +287 -0
  717. package/ja/header.md +7 -0
  718. package/ja/how_works_intlayer.md +217 -0
  719. package/ja/index.md +125 -0
  720. package/ja/interest_of_intlayer.md +132 -0
  721. package/ja/intlayer_CMS.md +334 -0
  722. package/ja/intlayer_cli.md +274 -0
  723. package/ja/intlayer_visual_editor.md +213 -0
  724. package/ja/intlayer_with_angular.md +3 -0
  725. package/ja/intlayer_with_create_react_app.md +1186 -0
  726. package/ja/intlayer_with_express.md +267 -0
  727. package/ja/intlayer_with_lynx+react.md +482 -0
  728. package/ja/intlayer_with_nextjs_14.md +1256 -0
  729. package/ja/intlayer_with_nextjs_15.md +1308 -0
  730. package/ja/intlayer_with_nextjs_page_router.md +1085 -0
  731. package/ja/intlayer_with_react_native+expo.md +537 -0
  732. package/ja/intlayer_with_vite+preact.md +1601 -0
  733. package/ja/intlayer_with_vite+react.md +1555 -0
  734. package/ja/intlayer_with_vite+solid.md +3 -0
  735. package/ja/intlayer_with_vite+svelte.md +3 -0
  736. package/ja/intlayer_with_vite+vue.md +990 -0
  737. package/ja/introduction.md +186 -0
  738. package/ja/mcp_server.md +150 -0
  739. package/ja/packages/@intlayer/api/index.md +31 -0
  740. package/ja/packages/@intlayer/chokidar/index.md +31 -0
  741. package/ja/packages/@intlayer/cli/index.md +21 -0
  742. package/ja/packages/@intlayer/config/index.md +116 -0
  743. package/ja/packages/@intlayer/core/index.md +25 -0
  744. package/ja/packages/@intlayer/design-system/index.md +21 -0
  745. package/ja/packages/@intlayer/dictionary-entry/index.md +21 -0
  746. package/ja/packages/@intlayer/editor/index.md +21 -0
  747. package/ja/packages/@intlayer/editor-react/index.md +21 -0
  748. package/ja/packages/@intlayer/webpack/index.md +35 -0
  749. package/ja/packages/angular-intlayer/index.md +3 -0
  750. package/ja/packages/express-intlayer/index.md +229 -0
  751. package/ja/packages/express-intlayer/t.md +432 -0
  752. package/ja/packages/intlayer/getConfiguration.md +120 -0
  753. package/ja/packages/intlayer/getEnumeration.md +140 -0
  754. package/ja/packages/intlayer/getHTMLTextDir.md +97 -0
  755. package/ja/packages/intlayer/getLocaleLang.md +59 -0
  756. package/ja/packages/intlayer/getLocaleName.md +93 -0
  757. package/ja/packages/intlayer/getLocalizedUrl.md +221 -0
  758. package/ja/packages/intlayer/getMultilingualUrls.md +198 -0
  759. package/ja/packages/intlayer/getPathWithoutLocale.md +50 -0
  760. package/ja/packages/intlayer/getTranslation.md +166 -0
  761. package/ja/packages/intlayer/getTranslationContent.md +166 -0
  762. package/ja/packages/intlayer/index.md +479 -0
  763. package/ja/packages/intlayer-cli/index.md +41 -0
  764. package/ja/packages/intlayer-editor/index.md +115 -0
  765. package/ja/packages/lynx-intlayer/index.md +58 -0
  766. package/ja/packages/next-intlayer/index.md +263 -0
  767. package/ja/packages/next-intlayer/t.md +326 -0
  768. package/ja/packages/next-intlayer/useDictionary.md +242 -0
  769. package/ja/packages/next-intlayer/useIntlayer.md +237 -0
  770. package/ja/packages/next-intlayer/useIntlayerAsync.md +211 -0
  771. package/ja/packages/next-intlayer/useLocale.md +105 -0
  772. package/ja/packages/preact-intlayer/index.md +3 -0
  773. package/ja/packages/react-intlayer/index.md +257 -0
  774. package/ja/packages/react-intlayer/t.md +277 -0
  775. package/ja/packages/react-intlayer/useDictionary.md +260 -0
  776. package/ja/packages/react-intlayer/useIntlayer.md +225 -0
  777. package/ja/packages/react-intlayer/useIntlayerAsync.md +226 -0
  778. package/ja/packages/react-intlayer/useLocale.md +184 -0
  779. package/ja/packages/react-native-intlayer/index.md +57 -0
  780. package/ja/packages/react-scripts-intlayer/index.md +57 -0
  781. package/ja/packages/solid-intlayer/index.md +3 -0
  782. package/ja/packages/svelte-intlayer/index.md +3 -0
  783. package/ja/packages/vite-intlayer/index.md +53 -0
  784. package/ja/packages/vue-intlayer/index.md +3 -0
  785. package/ja/per_locale_file.md +298 -0
  786. package/ja/privacy_notice.md +57 -0
  787. package/ja/roadmap.md +206 -0
  788. package/ja/terms_of_service.md +33 -0
  789. package/ja/vs_code_extension.md +139 -0
  790. package/ko/CI_CD.md +149 -0
  791. package/ko/autoFill.md +157 -0
  792. package/ko/configuration.md +507 -0
  793. package/ko/dictionary/condition.md +213 -0
  794. package/ko/dictionary/content_extention_customization.md +81 -0
  795. package/ko/dictionary/enumeration.md +221 -0
  796. package/ko/dictionary/file.md +207 -0
  797. package/ko/dictionary/function_fetching.md +190 -0
  798. package/ko/dictionary/get_started.md +466 -0
  799. package/ko/dictionary/insertion.md +167 -0
  800. package/ko/dictionary/markdown.md +343 -0
  801. package/ko/dictionary/nesting.md +249 -0
  802. package/ko/dictionary/translation.md +287 -0
  803. package/ko/header.md +7 -0
  804. package/ko/how_works_intlayer.md +216 -0
  805. package/ko/index.md +125 -0
  806. package/ko/interest_of_intlayer.md +132 -0
  807. package/ko/intlayer_CMS.md +334 -0
  808. package/ko/intlayer_cli.md +274 -0
  809. package/ko/intlayer_visual_editor.md +210 -0
  810. package/ko/intlayer_with_angular.md +3 -0
  811. package/ko/intlayer_with_create_react_app.md +1186 -0
  812. package/ko/intlayer_with_express.md +267 -0
  813. package/ko/intlayer_with_lynx+react.md +482 -0
  814. package/ko/intlayer_with_nextjs_14.md +1267 -0
  815. package/ko/intlayer_with_nextjs_15.md +1319 -0
  816. package/ko/intlayer_with_nextjs_page_router.md +1097 -0
  817. package/ko/intlayer_with_react_native+expo.md +537 -0
  818. package/ko/intlayer_with_vite+preact.md +1682 -0
  819. package/ko/intlayer_with_vite+react.md +1582 -0
  820. package/ko/intlayer_with_vite+solid.md +3 -0
  821. package/ko/intlayer_with_vite+svelte.md +3 -0
  822. package/ko/intlayer_with_vite+vue.md +988 -0
  823. package/ko/introduction.md +186 -0
  824. package/ko/mcp_server.md +150 -0
  825. package/ko/packages/@intlayer/api/index.md +31 -0
  826. package/ko/packages/@intlayer/chokidar/index.md +31 -0
  827. package/ko/packages/@intlayer/cli/index.md +21 -0
  828. package/ko/packages/@intlayer/config/index.md +116 -0
  829. package/ko/packages/@intlayer/core/index.md +25 -0
  830. package/ko/packages/@intlayer/design-system/index.md +21 -0
  831. package/ko/packages/@intlayer/dictionary-entry/index.md +21 -0
  832. package/ko/packages/@intlayer/editor/index.md +21 -0
  833. package/ko/packages/@intlayer/editor-react/index.md +21 -0
  834. package/ko/packages/@intlayer/webpack/index.md +35 -0
  835. package/ko/packages/angular-intlayer/index.md +5 -0
  836. package/ko/packages/express-intlayer/index.md +229 -0
  837. package/ko/packages/express-intlayer/t.md +432 -0
  838. package/ko/packages/intlayer/getConfiguration.md +120 -0
  839. package/ko/packages/intlayer/getEnumeration.md +138 -0
  840. package/ko/packages/intlayer/getHTMLTextDir.md +97 -0
  841. package/ko/packages/intlayer/getLocaleLang.md +57 -0
  842. package/ko/packages/intlayer/getLocaleName.md +93 -0
  843. package/ko/packages/intlayer/getLocalizedUrl.md +221 -0
  844. package/ko/packages/intlayer/getMultilingualUrls.md +198 -0
  845. package/ko/packages/intlayer/getPathWithoutLocale.md +50 -0
  846. package/ko/packages/intlayer/getTranslation.md +166 -0
  847. package/ko/packages/intlayer/getTranslationContent.md +166 -0
  848. package/ko/packages/intlayer/index.md +480 -0
  849. package/ko/packages/intlayer-cli/index.md +41 -0
  850. package/ko/packages/intlayer-editor/index.md +113 -0
  851. package/ko/packages/lynx-intlayer/index.md +58 -0
  852. package/ko/packages/next-intlayer/index.md +267 -0
  853. package/ko/packages/next-intlayer/t.md +337 -0
  854. package/ko/packages/next-intlayer/useDictionary.md +242 -0
  855. package/ko/packages/next-intlayer/useIntlayer.md +237 -0
  856. package/ko/packages/next-intlayer/useIntlayerAsync.md +211 -0
  857. package/ko/packages/next-intlayer/useLocale.md +105 -0
  858. package/ko/packages/preact-intlayer/index.md +3 -0
  859. package/ko/packages/react-intlayer/index.md +260 -0
  860. package/ko/packages/react-intlayer/t.md +277 -0
  861. package/ko/packages/react-intlayer/useDictionary.md +268 -0
  862. package/ko/packages/react-intlayer/useIntlayer.md +225 -0
  863. package/ko/packages/react-intlayer/useIntlayerAsync.md +226 -0
  864. package/ko/packages/react-intlayer/useLocale.md +184 -0
  865. package/ko/packages/react-native-intlayer/index.md +57 -0
  866. package/ko/packages/react-scripts-intlayer/index.md +57 -0
  867. package/ko/packages/solid-intlayer/index.md +3 -0
  868. package/ko/packages/svelte-intlayer/index.md +3 -0
  869. package/ko/packages/vite-intlayer/index.md +53 -0
  870. package/ko/packages/vue-intlayer/index.md +3 -0
  871. package/ko/per_locale_file.md +300 -0
  872. package/ko/privacy_notice.md +61 -0
  873. package/ko/roadmap.md +206 -0
  874. package/ko/terms_of_service.md +33 -0
  875. package/ko/vs_code_extension.md +139 -0
  876. package/package.json +96 -0
  877. package/pt/CI_CD.md +149 -0
  878. package/pt/autoFill.md +157 -0
  879. package/pt/configuration.md +503 -0
  880. package/pt/dictionary/condition.md +213 -0
  881. package/pt/dictionary/content_extention_customization.md +81 -0
  882. package/pt/dictionary/enumeration.md +221 -0
  883. package/pt/dictionary/file.md +210 -0
  884. package/pt/dictionary/function_fetching.md +190 -0
  885. package/pt/dictionary/get_started.md +490 -0
  886. package/pt/dictionary/insertion.md +161 -0
  887. package/pt/dictionary/markdown.md +339 -0
  888. package/pt/dictionary/nesting.md +249 -0
  889. package/pt/dictionary/translation.md +322 -0
  890. package/pt/header.md +7 -0
  891. package/pt/how_works_intlayer.md +216 -0
  892. package/pt/index.md +125 -0
  893. package/pt/interest_of_intlayer.md +132 -0
  894. package/pt/intlayer_CMS.md +334 -0
  895. package/pt/intlayer_cli.md +274 -0
  896. package/pt/intlayer_visual_editor.md +210 -0
  897. package/pt/intlayer_with_angular.md +3 -0
  898. package/pt/intlayer_with_create_react_app.md +1204 -0
  899. package/pt/intlayer_with_express.md +270 -0
  900. package/pt/intlayer_with_lynx+react.md +467 -0
  901. package/pt/intlayer_with_nextjs_14.md +1269 -0
  902. package/pt/intlayer_with_nextjs_15.md +1319 -0
  903. package/pt/intlayer_with_nextjs_page_router.md +1109 -0
  904. package/pt/intlayer_with_react_native+expo.md +259 -0
  905. package/pt/intlayer_with_vite+preact.md +1663 -0
  906. package/pt/intlayer_with_vite+react.md +1621 -0
  907. package/pt/intlayer_with_vite+solid.md +3 -0
  908. package/pt/intlayer_with_vite+svelte.md +3 -0
  909. package/pt/intlayer_with_vite+vue.md +989 -0
  910. package/pt/introduction.md +193 -0
  911. package/pt/mcp_server.md +150 -0
  912. package/pt/packages/@intlayer/api/index.md +31 -0
  913. package/pt/packages/@intlayer/chokidar/index.md +31 -0
  914. package/pt/packages/@intlayer/cli/index.md +21 -0
  915. package/pt/packages/@intlayer/config/index.md +116 -0
  916. package/pt/packages/@intlayer/core/index.md +25 -0
  917. package/pt/packages/@intlayer/design-system/index.md +21 -0
  918. package/pt/packages/@intlayer/dictionary-entry/index.md +21 -0
  919. package/pt/packages/@intlayer/editor/index.md +21 -0
  920. package/pt/packages/@intlayer/editor-react/index.md +21 -0
  921. package/pt/packages/@intlayer/webpack/index.md +35 -0
  922. package/pt/packages/angular-intlayer/index.md +3 -0
  923. package/pt/packages/express-intlayer/index.md +232 -0
  924. package/pt/packages/express-intlayer/t.md +267 -0
  925. package/pt/packages/intlayer/getConfiguration.md +120 -0
  926. package/pt/packages/intlayer/getEnumeration.md +138 -0
  927. package/pt/packages/intlayer/getHTMLTextDir.md +97 -0
  928. package/pt/packages/intlayer/getLocaleLang.md +57 -0
  929. package/pt/packages/intlayer/getLocaleName.md +93 -0
  930. package/pt/packages/intlayer/getLocalizedUrl.md +221 -0
  931. package/pt/packages/intlayer/getMultilingualUrls.md +198 -0
  932. package/pt/packages/intlayer/getPathWithoutLocale.md +50 -0
  933. package/pt/packages/intlayer/getTranslation.md +175 -0
  934. package/pt/packages/intlayer/getTranslationContent.md +177 -0
  935. package/pt/packages/intlayer/index.md +484 -0
  936. package/pt/packages/intlayer-cli/index.md +41 -0
  937. package/pt/packages/intlayer-editor/index.md +113 -0
  938. package/pt/packages/lynx-intlayer/index.md +58 -0
  939. package/pt/packages/next-intlayer/index.md +270 -0
  940. package/pt/packages/next-intlayer/t.md +341 -0
  941. package/pt/packages/next-intlayer/useDictionary.md +248 -0
  942. package/pt/packages/next-intlayer/useIntlayer.md +237 -0
  943. package/pt/packages/next-intlayer/useIntlayerAsync.md +211 -0
  944. package/pt/packages/next-intlayer/useLocale.md +105 -0
  945. package/pt/packages/preact-intlayer/index.md +3 -0
  946. package/pt/packages/react-intlayer/index.md +261 -0
  947. package/pt/packages/react-intlayer/t.md +289 -0
  948. package/pt/packages/react-intlayer/useDictionary.md +268 -0
  949. package/pt/packages/react-intlayer/useIntlayer.md +225 -0
  950. package/pt/packages/react-intlayer/useIntlayerAsync.md +226 -0
  951. package/pt/packages/react-intlayer/useLocale.md +184 -0
  952. package/pt/packages/react-native-intlayer/index.md +57 -0
  953. package/pt/packages/react-scripts-intlayer/index.md +57 -0
  954. package/pt/packages/solid-intlayer/index.md +3 -0
  955. package/pt/packages/svelte-intlayer/index.md +3 -0
  956. package/pt/packages/vite-intlayer/index.md +53 -0
  957. package/pt/packages/vue-intlayer/index.md +3 -0
  958. package/pt/per_locale_file.md +298 -0
  959. package/pt/privacy_notice.md +61 -0
  960. package/pt/roadmap.md +206 -0
  961. package/pt/terms_of_service.md +33 -0
  962. package/pt/vs_code_extension.md +139 -0
  963. package/ru/CI_CD.md +149 -0
  964. package/ru/autoFill.md +157 -0
  965. package/ru/configuration.md +507 -0
  966. package/ru/dictionary/condition.md +213 -0
  967. package/ru/dictionary/content_extention_customization.md +81 -0
  968. package/ru/dictionary/enumeration.md +221 -0
  969. package/ru/dictionary/file.md +209 -0
  970. package/ru/dictionary/function_fetching.md +188 -0
  971. package/ru/dictionary/get_started.md +311 -0
  972. package/ru/dictionary/insertion.md +161 -0
  973. package/ru/dictionary/markdown.md +339 -0
  974. package/ru/dictionary/nesting.md +249 -0
  975. package/ru/dictionary/translation.md +322 -0
  976. package/ru/environment/angular.md +3 -0
  977. package/ru/header.md +7 -0
  978. package/ru/how_works_intlayer.md +217 -0
  979. package/ru/index.md +125 -0
  980. package/ru/interest_of_intlayer.md +132 -0
  981. package/ru/intlayer_CMS.md +334 -0
  982. package/ru/intlayer_cli.md +274 -0
  983. package/ru/intlayer_visual_editor.md +210 -0
  984. package/ru/intlayer_with_angular.md +3 -0
  985. package/ru/intlayer_with_create_react_app.md +1196 -0
  986. package/ru/intlayer_with_express.md +273 -0
  987. package/ru/intlayer_with_lynx+react.md +482 -0
  988. package/ru/intlayer_with_nextjs_14.md +1274 -0
  989. package/ru/intlayer_with_nextjs_15.md +1318 -0
  990. package/ru/intlayer_with_nextjs_page_router.md +1100 -0
  991. package/ru/intlayer_with_react_native+expo.md +537 -0
  992. package/ru/intlayer_with_vite+preact.md +1663 -0
  993. package/ru/intlayer_with_vite+react.md +1546 -0
  994. package/ru/intlayer_with_vite+solid.md +3 -0
  995. package/ru/intlayer_with_vite+svelte.md +3 -0
  996. package/ru/intlayer_with_vite+vue.md +987 -0
  997. package/ru/introduction.md +190 -0
  998. package/ru/mcp_server.md +152 -0
  999. package/ru/packages/@intlayer/api/index.md +31 -0
  1000. package/ru/packages/@intlayer/chokidar/index.md +31 -0
  1001. package/ru/packages/@intlayer/cli/index.md +23 -0
  1002. package/ru/packages/@intlayer/config/index.md +116 -0
  1003. package/ru/packages/@intlayer/core/index.md +25 -0
  1004. package/ru/packages/@intlayer/design-system/index.md +21 -0
  1005. package/ru/packages/@intlayer/dictionary-entry/index.md +21 -0
  1006. package/ru/packages/@intlayer/editor/index.md +21 -0
  1007. package/ru/packages/@intlayer/editor-react/index.md +21 -0
  1008. package/ru/packages/@intlayer/webpack/index.md +35 -0
  1009. package/ru/packages/angular-intlayer/index.md +3 -0
  1010. package/ru/packages/express-intlayer/index.md +235 -0
  1011. package/ru/packages/express-intlayer/t.md +445 -0
  1012. package/ru/packages/intlayer/getConfiguration.md +120 -0
  1013. package/ru/packages/intlayer/getEnumeration.md +140 -0
  1014. package/ru/packages/intlayer/getHTMLTextDir.md +97 -0
  1015. package/ru/packages/intlayer/getLocaleLang.md +59 -0
  1016. package/ru/packages/intlayer/getLocaleName.md +93 -0
  1017. package/ru/packages/intlayer/getLocalizedUrl.md +221 -0
  1018. package/ru/packages/intlayer/getMultilingualUrls.md +198 -0
  1019. package/ru/packages/intlayer/getPathWithoutLocale.md +50 -0
  1020. package/ru/packages/intlayer/getTranslation.md +177 -0
  1021. package/ru/packages/intlayer/getTranslationContent.md +175 -0
  1022. package/ru/packages/intlayer/index.md +275 -0
  1023. package/ru/packages/intlayer-cli/index.md +41 -0
  1024. package/ru/packages/intlayer-editor/index.md +115 -0
  1025. package/ru/packages/lynx-intlayer/index.md +58 -0
  1026. package/ru/packages/next-intlayer/index.md +267 -0
  1027. package/ru/packages/next-intlayer/t.md +340 -0
  1028. package/ru/packages/next-intlayer/useDictionary.md +248 -0
  1029. package/ru/packages/next-intlayer/useIntlayer.md +237 -0
  1030. package/ru/packages/next-intlayer/useIntlayerAsync.md +211 -0
  1031. package/ru/packages/next-intlayer/useLocale.md +105 -0
  1032. package/ru/packages/preact-intlayer/index.md +3 -0
  1033. package/ru/packages/react-intlayer/index.md +261 -0
  1034. package/ru/packages/react-intlayer/t.md +289 -0
  1035. package/ru/packages/react-intlayer/useDictionary.md +268 -0
  1036. package/ru/packages/react-intlayer/useIntlayer.md +225 -0
  1037. package/ru/packages/react-intlayer/useIntlayerAsync.md +226 -0
  1038. package/ru/packages/react-intlayer/useLocale.md +184 -0
  1039. package/ru/packages/react-native-intlayer/index.md +57 -0
  1040. package/ru/packages/react-scripts-intlayer/index.md +57 -0
  1041. package/ru/packages/solid-intlayer/index.md +3 -0
  1042. package/ru/packages/svelte-intlayer/index.md +3 -0
  1043. package/ru/packages/vite-intlayer/index.md +53 -0
  1044. package/ru/packages/vue-intlayer/index.md +3 -0
  1045. package/ru/per_locale_file.md +298 -0
  1046. package/ru/privacy_notice.md +61 -0
  1047. package/ru/roadmap.md +206 -0
  1048. package/ru/terms_of_service.md +33 -0
  1049. package/ru/vs_code_extension.md +139 -0
  1050. package/zh/CI_CD.md +149 -0
  1051. package/zh/autoFill.md +157 -0
  1052. package/zh/configuration.md +484 -0
  1053. package/zh/dictionary/condition.md +213 -0
  1054. package/zh/dictionary/content_extention_customization.md +81 -0
  1055. package/zh/dictionary/enumeration.md +221 -0
  1056. package/zh/dictionary/file.md +209 -0
  1057. package/zh/dictionary/function_fetching.md +188 -0
  1058. package/zh/dictionary/get_started.md +490 -0
  1059. package/zh/dictionary/insertion.md +161 -0
  1060. package/zh/dictionary/markdown.md +342 -0
  1061. package/zh/dictionary/nesting.md +249 -0
  1062. package/zh/dictionary/translation.md +287 -0
  1063. package/zh/header.md +7 -0
  1064. package/zh/how_works_intlayer.md +217 -0
  1065. package/zh/index.md +125 -0
  1066. package/zh/interest_of_intlayer.md +132 -0
  1067. package/zh/intlayer_CMS.md +334 -0
  1068. package/zh/intlayer_cli.md +274 -0
  1069. package/zh/intlayer_visual_editor.md +210 -0
  1070. package/zh/intlayer_with_angular.md +3 -0
  1071. package/zh/intlayer_with_create_react_app.md +1196 -0
  1072. package/zh/intlayer_with_express.md +267 -0
  1073. package/zh/intlayer_with_lynx+react.md +484 -0
  1074. package/zh/intlayer_with_nextjs_14.md +1286 -0
  1075. package/zh/intlayer_with_nextjs_15.md +1322 -0
  1076. package/zh/intlayer_with_nextjs_page_router.md +1097 -0
  1077. package/zh/intlayer_with_react_native+expo.md +539 -0
  1078. package/zh/intlayer_with_vite+preact.md +1681 -0
  1079. package/zh/intlayer_with_vite+react.md +1577 -0
  1080. package/zh/intlayer_with_vite+solid.md +3 -0
  1081. package/zh/intlayer_with_vite+svelte.md +3 -0
  1082. package/zh/intlayer_with_vite+vue.md +988 -0
  1083. package/zh/introduction.md +186 -0
  1084. package/zh/mcp_server.md +152 -0
  1085. package/zh/packages/@intlayer/api/index.md +31 -0
  1086. package/zh/packages/@intlayer/chokidar/index.md +31 -0
  1087. package/zh/packages/@intlayer/cli/index.md +21 -0
  1088. package/zh/packages/@intlayer/config/index.md +116 -0
  1089. package/zh/packages/@intlayer/core/index.md +25 -0
  1090. package/zh/packages/@intlayer/design-system/index.md +21 -0
  1091. package/zh/packages/@intlayer/dictionary-entry/index.md +21 -0
  1092. package/zh/packages/@intlayer/editor/index.md +21 -0
  1093. package/zh/packages/@intlayer/editor-react/index.md +21 -0
  1094. package/zh/packages/@intlayer/webpack/index.md +35 -0
  1095. package/zh/packages/angular-intlayer/index.md +3 -0
  1096. package/zh/packages/express-intlayer/index.md +229 -0
  1097. package/zh/packages/express-intlayer/t.md +432 -0
  1098. package/zh/packages/intlayer/getConfiguration.md +120 -0
  1099. package/zh/packages/intlayer/getEnumeration.md +140 -0
  1100. package/zh/packages/intlayer/getHTMLTextDir.md +97 -0
  1101. package/zh/packages/intlayer/getLocaleLang.md +57 -0
  1102. package/zh/packages/intlayer/getLocaleName.md +93 -0
  1103. package/zh/packages/intlayer/getLocalizedUrl.md +221 -0
  1104. package/zh/packages/intlayer/getMultilingualUrls.md +198 -0
  1105. package/zh/packages/intlayer/getPathWithoutLocale.md +50 -0
  1106. package/zh/packages/intlayer/getTranslation.md +166 -0
  1107. package/zh/packages/intlayer/getTranslationContent.md +166 -0
  1108. package/zh/packages/intlayer/index.md +360 -0
  1109. package/zh/packages/intlayer-cli/index.md +41 -0
  1110. package/zh/packages/intlayer-editor/index.md +113 -0
  1111. package/zh/packages/lynx-intlayer/index.md +60 -0
  1112. package/zh/packages/next-intlayer/index.md +267 -0
  1113. package/zh/packages/next-intlayer/t.md +338 -0
  1114. package/zh/packages/next-intlayer/useDictionary.md +242 -0
  1115. package/zh/packages/next-intlayer/useIntlayer.md +237 -0
  1116. package/zh/packages/next-intlayer/useIntlayerAsync.md +211 -0
  1117. package/zh/packages/next-intlayer/useLocale.md +105 -0
  1118. package/zh/packages/preact-intlayer/index.md +3 -0
  1119. package/zh/packages/react-intlayer/index.md +257 -0
  1120. package/zh/packages/react-intlayer/t.md +271 -0
  1121. package/zh/packages/react-intlayer/useDictionary.md +260 -0
  1122. package/zh/packages/react-intlayer/useIntlayer.md +225 -0
  1123. package/zh/packages/react-intlayer/useIntlayerAsync.md +226 -0
  1124. package/zh/packages/react-intlayer/useLocale.md +184 -0
  1125. package/zh/packages/react-native-intlayer/index.md +57 -0
  1126. package/zh/packages/react-scripts-intlayer/index.md +57 -0
  1127. package/zh/packages/solid-intlayer/index.md +3 -0
  1128. package/zh/packages/svelte-intlayer/index.md +3 -0
  1129. package/zh/packages/vite-intlayer/index.md +53 -0
  1130. package/zh/packages/vue-intlayer/index.md +3 -0
  1131. package/zh/per_locale_file.md +298 -0
  1132. package/zh/privacy_notice.md +61 -0
  1133. package/zh/roadmap.md +206 -0
  1134. package/zh/terms_of_service.md +33 -0
  1135. package/zh/vs_code_extension.md +139 -0
@@ -0,0 +1,1267 @@
1
+ # Intlayer 및 Next.js 14의 App Router와 함께 국제화(i18n) 시작하기
2
+
3
+ [애플리케이션 템플릿](https://github.com/aymericzip/intlayer-next-14-template)를 GitHub에서 보십시오.
4
+
5
+ ## Intlayer란 무엇인가?
6
+
7
+ **Intlayer**는 현대 웹 애플리케이션에서 다국어 지원을 간소화하기 위해 설계된 혁신적이고 오픈 소스인 국제화(i18n) 라이브러리입니다. Intlayer는 최신 **Next.js 14** 프레임워크와 강력한 **App Router**와 원활하게 통합됩니다. 이 라이브러리는 **서버 컴포넌트**와의 효율적인 렌더링을 위해 최적화되어 있으며, [**Turbopack**](https://nextjs.org/docs/architecture/turbopack) (Next.js >= 15부터 지원)과 완벽히 호환됩니다.
8
+
9
+ Intlayer를 사용하면 다음을 수행할 수 있습니다:
10
+
11
+ - **컴포넌트 수준에서 선언적 사전을 사용하여 번역을 쉽게 관리**합니다.
12
+ - **메타데이터, 라우트 및 콘텐츠를 동적으로 로컬라이즈**합니다.
13
+ - **클라이언트 측 및 서버 측 컴포넌트에서 번역에 액세스**합니다.
14
+ - **TypeScript 지원을 보장**하며, 자동 생성된 타입으로 자동 완성과 오류 감지를 개선합니다.
15
+ - **동적 로케일 감지 및 전환**과 같은 고급 기능을 활용합니다.
16
+
17
+ > Intlayer는 Next.js 12, 13, 14 및 15와 호환됩니다. Next.js Page Router를 사용하는 경우, 이 [가이드](https://github.com/aymericzip/intlayer/blob/main/docs/ko/intlayer_with_nextjs_page_router.md)를 참조하세요. Next.js 15 (Turbopack 포함 또는 미포함)를 사용하는 경우, 이 [가이드](https://github.com/aymericzip/intlayer/blob/main/docs/ko/intlayer_with_nextjs_15.md)를 참조하세요.
18
+
19
+ ---
20
+
21
+ ## Next.js 애플리케이션에서 Intlayer 설정 단계별 가이드
22
+
23
+ ### 1단계: 종속성 설치
24
+
25
+ npm을 사용하여 필요한 패키지를 설치합니다:
26
+
27
+ ```bash packageManager="npm"
28
+ npm install intlayer next-intlayer
29
+ ```
30
+
31
+ ```bash packageManager="pnpm"
32
+ pnpm add intlayer next-intlayer
33
+ ```
34
+
35
+ ```bash packageManager="yarn"
36
+ yarn add intlayer next-intlayer
37
+ ```
38
+
39
+ - **intlayer**
40
+
41
+ 구성 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/ko/dictionary/get_started.md), 트랜스파일링 및 [CLI 명령](https://github.com/aymericzip/intlayer/blob/main/docs/ko/intlayer_cli.md)을 위한 국제화 도구를 제공하는 핵심 패키지입니다.
42
+
43
+ - **next-intlayer**
44
+
45
+ Intlayer를 Next.js와 통합하는 패키지입니다. Next.js 국제화를 위한 컨텍스트 제공자 및 훅을 제공합니다. 또한 Intlayer를 [Webpack](https://webpack.js.org/) 또는 [Turbopack](https://nextjs.org/docs/app/api-reference/turbopack)과 통합하기 위한 Next.js 플러그인과 사용자의 선호 로케일을 감지하고, 쿠키를 관리하며, URL 리디렉션을 처리하는 미들웨어를 포함합니다.
46
+
47
+ ### 2단계: 프로젝트 구성
48
+
49
+ 애플리케이션의 언어를 구성하기 위한 설정 파일을 만듭니다:
50
+
51
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
52
+ import { Locales, type IntlayerConfig } from "intlayer";
53
+
54
+ const config: IntlayerConfig = {
55
+ internationalization: {
56
+ locales: [
57
+ Locales.ENGLISH,
58
+ Locales.FRENCH,
59
+ Locales.SPANISH,
60
+ // 다른 로케일 추가
61
+ ],
62
+ defaultLocale: Locales.ENGLISH,
63
+ },
64
+ };
65
+
66
+ export default config;
67
+ ```
68
+
69
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
70
+ import { Locales } from "intlayer";
71
+
72
+ /** @type {import('intlayer').IntlayerConfig} */
73
+ const config = {
74
+ internationalization: {
75
+ locales: [
76
+ Locales.ENGLISH,
77
+ Locales.FRENCH,
78
+ Locales.SPANISH,
79
+ // 다른 로케일 추가
80
+ ],
81
+ defaultLocale: Locales.ENGLISH,
82
+ },
83
+ };
84
+
85
+ export default config;
86
+ ```
87
+
88
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
89
+ const { Locales } = require("intlayer");
90
+
91
+ /** @type {import('intlayer').IntlayerConfig} */
92
+ const config = {
93
+ internationalization: {
94
+ locales: [
95
+ Locales.ENGLISH,
96
+ Locales.FRENCH,
97
+ Locales.SPANISH,
98
+ // 다른 로케일 추가
99
+ ],
100
+ defaultLocale: Locales.ENGLISH,
101
+ },
102
+ };
103
+
104
+ module.exports = config;
105
+ ```
106
+
107
+ > 이 구성 파일을 통해 로컬라이즈된 URL, 미들웨어 리디렉션, 쿠키 이름, 콘텐츠 선언의 위치 및 확장자, 콘솔에서 Intlayer 로그 비활성화 등을 설정할 수 있습니다. 사용 가능한 매개변수의 전체 목록은 [구성 문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/configuration.md)를 참조하세요.
108
+
109
+ ### 3단계: Next.js 구성에 Intlayer 통합
110
+
111
+ Intlayer를 사용하도록 Next.js 설정을 구성합니다:
112
+
113
+ ```typescript fileName="next.config.mjs"
114
+ import { withIntlayer } from "next-intlayer/server";
115
+
116
+ /** @type {import('next').NextConfig} */
117
+ const nextConfig = {};
118
+
119
+ export default withIntlayer(nextConfig);
120
+ ```
121
+
122
+ > `withIntlayer()` Next.js 플러그인은 Intlayer를 Next.js와 통합하는 데 사용됩니다. 이는 콘텐츠 선언 파일의 빌드를 보장하고 개발 모드에서 이를 모니터링합니다. 또한 [Webpack](https://webpack.js.org/) 또는 [Turbopack](https://nextjs.org/docs/app/api-reference/turbopack) 환경 내에서 Intlayer 환경 변수를 정의합니다. 추가적으로 성능 최적화를 위한 별칭을 제공하며 서버 컴포넌트와의 호환성을 보장합니다.
123
+
124
+ ### 4단계: 로케일 감지를 위한 미들웨어 구성
125
+
126
+ 사용자의 선호 로케일을 감지하기 위한 미들웨어를 설정합니다:
127
+
128
+ ```typescript fileName="src/middleware.ts" codeFormat="typescript"
129
+ export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
130
+
131
+ export const config = {
132
+ matcher:
133
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
134
+ };
135
+ ```
136
+
137
+ ```javascript fileName="src/middleware.mjs" codeFormat="esm"
138
+ export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
139
+
140
+ export const config = {
141
+ matcher:
142
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
143
+ };
144
+ ```
145
+
146
+ ```javascript fileName="src/middleware.cjs" codeFormat="commonjs"
147
+ const { intlayerMiddleware } = require("next-intlayer/middleware");
148
+
149
+ const config = {
150
+ matcher:
151
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
152
+ };
153
+
154
+ module.exports = { middleware: intlayerMiddleware, config };
155
+ ```
156
+
157
+ > `intlayerMiddleware`는 사용자의 선호 로케일을 감지하고 [구성](https://github.com/aymericzip/intlayer/blob/main/docs/ko/configuration.md)에 지정된 적절한 URL로 리디렉션합니다. 추가적으로 사용자의 선호 로케일을 쿠키에 저장할 수 있습니다.
158
+
159
+ > `matcher` 매개변수를 애플리케이션의 라우트에 맞게 조정하세요. 자세한 내용은 [Next.js 문서의 matcher 구성](https://nextjs.org/docs/app/building-your-application/routing/middleware)을 참조하세요.
160
+
161
+ ### 5단계: 동적 로케일 라우트 정의
162
+
163
+ `RootLayout`에서 모든 내용을 제거하고 다음 코드를 추가합니다:
164
+
165
+ ```tsx fileName="src/app/layout.tsx" codeFormat="typescript"
166
+ import type { PropsWithChildren, FC } from "react";
167
+ import "./globals.css";
168
+
169
+ const RootLayout: FC<PropsWithChildren> = ({ children }) => children;
170
+
171
+ export default RootLayout;
172
+ ```
173
+
174
+ ```jsx fileName="src/app/layout.mjx" codeFormat="esm"
175
+ import "./globals.css";
176
+
177
+ const RootLayout = ({ children }) => children;
178
+
179
+ export default RootLayout;
180
+ ```
181
+
182
+ ```jsx fileName="src/app/layout.csx" codeFormat="commonjs"
183
+ require("./globals.css");
184
+
185
+ const RootLayout = ({ children }) => children;
186
+
187
+ module.exports = {
188
+ default: RootLayout,
189
+ generateStaticParams,
190
+ };
191
+ ```
192
+
193
+ > `RootLayout` 컴포넌트를 비워두면 [`lang`](https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/lang) 및 [`dir`](https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/dir) 속성을 `<html>` 태그에 설정할 수 있습니다.
194
+
195
+ 동적 라우팅을 구현하려면 `[locale]` 디렉토리에 새 레이아웃을 추가하여 로케일 경로를 제공합니다:
196
+
197
+ ```tsx fileName="src/app/[locale]/layout.tsx" codeFormat="typescript"
198
+ import type { Next14LayoutIntlayer } from "next-intlayer";
199
+ import { Inter } from "next/font/google";
200
+ import { getHTMLTextDir } from "intlayer";
201
+
202
+ const inter = Inter({ subsets: ["latin"] });
203
+
204
+ const LocaleLayout: Next14LayoutIntlayer = ({
205
+ children,
206
+ params: { locale },
207
+ }) => (
208
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
209
+ <body className={inter.className}>{children}</body>
210
+ </html>
211
+ );
212
+
213
+ export default LocaleLayout;
214
+ ```
215
+
216
+ ```jsx fileName="src/app/[locale]/layout.mjx" codeFormat="esm"
217
+ import { Inter } from "next/font/google";
218
+ import { getHTMLTextDir } from "intlayer";
219
+
220
+ const inter = Inter({ subsets: ["latin"] });
221
+
222
+ const LocaleLayout = ({ children, params: { locale } }) => (
223
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
224
+ <body className={inter.className}>{children}</body>
225
+ </html>
226
+ );
227
+
228
+ export default LocaleLayout;
229
+ ```
230
+
231
+ ```jsx fileName="src/app/[locale]/layout.csx" codeFormat="commonjs"
232
+ const { Inter } = require("next/font/google");
233
+ const { getHTMLTextDir } = require("intlayer");
234
+
235
+ const inter = Inter({ subsets: ["latin"] });
236
+
237
+ const LocaleLayout = ({ children, params: { locale } }) => (
238
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
239
+ <body className={inter.className}>{children}</body>
240
+ </html>
241
+ );
242
+
243
+ module.exports = LocaleLayout;
244
+ ```
245
+
246
+ > `[locale]` 경로 세그먼트는 로케일을 정의하는 데 사용됩니다. 예: `/en-US/about`는 `en-US`를, `/fr/about`는 `fr`을 참조합니다.
247
+
248
+ 그런 다음, 애플리케이션 레이아웃에 `generateStaticParams` 함수를 구현합니다.
249
+
250
+ ```tsx {1} fileName="src/app/[locale]/layout.tsx" codeFormat="typescript"
251
+ export { generateStaticParams } from "next-intlayer"; // 삽입할 줄
252
+
253
+ const LocaleLayout: Next14LayoutIntlayer = ({
254
+ children,
255
+ params: { locale },
256
+ }) => {
257
+ /*... 나머지 코드*/
258
+ };
259
+
260
+ export default LocaleLayout;
261
+ ```
262
+
263
+ ```jsx {1} fileName="src/app/[locale]/layout.mjx" codeFormat="esm"
264
+ export { generateStaticParams } from "next-intlayer"; // 삽입할 줄
265
+
266
+ const LocaleLayout = ({ children, params: { locale } }) => {
267
+ /*... 나머지 코드*/
268
+ };
269
+
270
+ export default LocaleLayout;
271
+ ```
272
+
273
+ ```jsx {1,7} fileName="src/app/[locale]/layout.csx" codeFormat="commonjs"
274
+ const { generateStaticParams } = require("next-intlayer"); // 삽입할 줄
275
+
276
+ const LocaleLayout = ({ children, params: { locale } }) => {
277
+ /*... 나머지 코드*/
278
+ };
279
+
280
+ module.exports = LocaleLayout;
281
+ ```
282
+
283
+ > `generateStaticParams`는 애플리케이션이 모든 로케일에 필요한 페이지를 사전 빌드하도록 보장하여 런타임 계산을 줄이고 사용자 경험을 향상시킵니다. 자세한 내용은 [Next.js 문서의 generateStaticParams](https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic-rendering#generate-static-params)를 참조하세요.
284
+
285
+ ### 6단계: 콘텐츠 선언
286
+
287
+ 번역을 저장하기 위해 콘텐츠 선언을 생성하고 관리합니다:
288
+
289
+ ```typescript fileName="src/app/[locale]/page.content.ts" contentDeclarationFormat="typescript"
290
+ import { t, type Dictionary } from "intlayer";
291
+
292
+ const pageContent = {
293
+ key: "page",
294
+ content: {
295
+ getStarted: {
296
+ main: t({
297
+ en: "Get started by editing",
298
+ fr: "Commencez par éditer",
299
+ es: "Comience por editar",
300
+ ko: "편집을 시작하세요",
301
+ }),
302
+ pageLink: "src/app/page.tsx",
303
+ },
304
+ },
305
+ } satisfies Dictionary;
306
+
307
+ export default pageContent;
308
+ ```
309
+
310
+ ```javascript fileName="src/app/[locale]/page.content.mjs" contentDeclarationFormat="esm"
311
+ import { t } from "intlayer";
312
+
313
+ /** @type {import('intlayer').Dictionary} */
314
+ const pageContent = {
315
+ key: "page",
316
+ content: {
317
+ getStarted: {
318
+ main: t({
319
+ en: "Get started by editing",
320
+ fr: "Commencez par éditer",
321
+ es: "Comience por editar",
322
+ ko: "편집을 시작하세요",
323
+ }),
324
+ pageLink: "src/app/page.tsx",
325
+ },
326
+ },
327
+ };
328
+
329
+ export default pageContent;
330
+ ```
331
+
332
+ ```javascript fileName="src/app/[locale]/page.content.cjs" contentDeclarationFormat="commonjs"
333
+ const { t } = require("intlayer");
334
+
335
+ /** @type {import('intlayer').Dictionary} */
336
+ const pageContent = {
337
+ key: "page",
338
+ content: {
339
+ getStarted: {
340
+ main: t({
341
+ en: "Get started by editing",
342
+ fr: "Commencez par éditer",
343
+ es: "Comience por editar",
344
+ ko: "편집을 시작하세요",
345
+ }),
346
+ pageLink: "src/app/page.tsx",
347
+ },
348
+ },
349
+ };
350
+
351
+ module.exports = pageContent;
352
+ ```
353
+
354
+ ```json fileName="src/app/[locale]/page.content.json" contentDeclarationFormat="json"
355
+ {
356
+ "$schema": "https://intlayer.org/schema.json",
357
+ "key": "page",
358
+ "content": {
359
+ "getStarted": {
360
+ "nodeType": "translation",
361
+ "translation": {
362
+ "en": "Get started by editing",
363
+ "fr": "Commencez par éditer",
364
+ "es": "Comience por editar",
365
+ "ko": "편집을 시작하세요"
366
+ }
367
+ },
368
+ "pageLink": {
369
+ "nodeType": "translation",
370
+ "translation": {
371
+ "en": "src/app/page.tsx",
372
+ "fr": "src/app/page.tsx",
373
+ "es": "src/app/page.tsx",
374
+ "ko": "src/app/page.tsx"
375
+ }
376
+ }
377
+ }
378
+ }
379
+ ```
380
+
381
+ > 콘텐츠 선언은 애플리케이션 어디에서나 정의할 수 있으며, `contentDir` 디렉토리(기본값: `./src`)에 포함되고 콘텐츠 선언 파일 확장자(기본값: `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`)와 일치해야 합니다. 자세한 내용은 [콘텐츠 선언 문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/dictionary/get_started.md)를 참조하세요.
382
+
383
+ ### 7단계: 코드에서 콘텐츠 활용
384
+
385
+ 애플리케이션 전반에서 콘텐츠 사전에 액세스합니다:
386
+
387
+ ```tsx fileName="src/app/[locale]/page.tsx" codeFormat="typescript"
388
+ import { ClientComponentExample } from "@components/ClientComponentExample";
389
+ import { ServerComponentExample } from "@components/ServerComponentExample";
390
+ import { type Next14PageIntlayer, IntlayerClientProvider } from "next-intlayer";
391
+ import { IntlayerServerProvider, useIntlayer } from "next-intlayer/server";
392
+
393
+ const Page: Next14PageIntlayer = ({ params: { locale } }) => {
394
+ const content = useIntlayer("page", locale);
395
+
396
+ return (
397
+ <>
398
+ <p>
399
+ {content.getStarted.main}
400
+ <code>{content.getStarted.pageLink}</code>
401
+ </p>
402
+
403
+ <IntlayerServerProvider locale={locale}>
404
+ <IntlayerClientProvider locale={locale}>
405
+ <ServerComponentExample />
406
+ <ClientComponentExample />
407
+ </IntlayerClientProvider>
408
+ </IntlayerServerProvider>
409
+ </>
410
+ );
411
+ };
412
+
413
+ export default Page;
414
+ ```
415
+
416
+ ```jsx fileName="src/app/[locale]/page.mjx" codeFormat="esm"
417
+ import { ClientComponentExample } from "@components/ClientComponentExample";
418
+ import { ServerComponentExample } from "@components/ServerComponentExample";
419
+ import { IntlayerClientProvider } from "next-intlayer";
420
+ import { IntlayerServerProvider, useIntlayer } from "next-intlayer/server";
421
+
422
+ const Page = ({ params: { locale } }) => {
423
+ const content = useIntlayer("page", locale);
424
+
425
+ return (
426
+ <>
427
+ <p>
428
+ {content.getStarted.main}
429
+ <code>{content.getStarted.pageLink}</code>
430
+ </p>
431
+
432
+ <IntlayerClientProvider locale={locale}>
433
+ <IntlayerServerProvider locale={locale}>
434
+ <ClientComponentExample />
435
+ <ServerComponentExample />
436
+ </IntlayerServerProvider>
437
+ </IntlayerClientProvider>
438
+ </>
439
+ );
440
+ };
441
+ ```
442
+
443
+ ```jsx fileName="src/app/[locale]/page.csx" codeFormat="commonjs"
444
+ const { IntlayerClientProvider } = require("next-intlayer");
445
+ const { IntlayerServerProvider, useIntlayer } = require("next-intlayer/server");
446
+
447
+ const Page = ({ params: { locale } }) => {
448
+ const content = useIntlayer("page", locale);
449
+
450
+ return (
451
+ <>
452
+ <p>
453
+ {content.getStarted.main}
454
+ <code>{content.getStarted.pageLink}</code>
455
+ </p>
456
+
457
+ <IntlayerClientProvider locale={locale}>
458
+ <IntlayerServerProvider locale={locale}>
459
+ <ClientComponentExample />
460
+ <ServerComponentExample />
461
+ </IntlayerServerProvider>
462
+ </IntlayerClientProvider>
463
+ </>
464
+ );
465
+ };
466
+ ```
467
+
468
+ - **`IntlayerClientProvider`**는 클라이언트 측 컴포넌트에 로케일을 제공하는 데 사용됩니다. 이는 레이아웃을 포함한 모든 상위 컴포넌트에 배치할 수 있습니다. 그러나 레이아웃에 배치하는 것이 권장됩니다. Next.js는 레이아웃 코드를 페이지 간에 공유하므로 더 효율적입니다. 레이아웃에서 `IntlayerClientProvider`를 사용하면 각 페이지에 대해 이를 다시 초기화하지 않아도 되므로 성능이 향상되고 애플리케이션 전반에 걸쳐 일관된 로컬라이제이션 컨텍스트를 유지할 수 있습니다.
469
+ - **`IntlayerServerProvider`**는 서버 자식에게 로케일을 제공하는 데 사용됩니다. 이는 레이아웃에 설정할 수 없습니다.
470
+
471
+ > 레이아웃과 페이지는 공통 서버 컨텍스트를 공유할 수 없습니다. 서버 컨텍스트 시스템은 요청별 데이터 저장소(React의 [캐시](https://react.dev/reference/react/cache) 메커니즘을 통해)에 기반하기 때문에 애플리케이션의 다른 세그먼트에 대해 각 "컨텍스트"가 다시 생성됩니다. 공유 레이아웃에 제공자를 배치하면 이 격리가 깨져 서버 컨텍스트 값이 서버 컴포넌트로 올바르게 전파되지 않습니다.
472
+
473
+ ```tsx {4,7} fileName="src/components/ClientComponentExample.tsx" codeFormat="typescript"
474
+ "use client";
475
+
476
+ import type { FC } from "react";
477
+ import { useIntlayer } from "next-intlayer";
478
+
479
+ const ClientComponentExample: FC = () => {
480
+ const content = useIntlayer("client-component-example"); // 관련 콘텐츠 선언 생성
481
+
482
+ return (
483
+ <div>
484
+ <h2>{content.title}</h2>
485
+ <p>{content.content}</p>
486
+ </div>
487
+ );
488
+ };
489
+ ```
490
+
491
+ ```jsx {3,6} fileName="src/components/ClientComponentExample.mjx" codeFormat="esm"
492
+ "use client";
493
+
494
+ import { useIntlayer } from "next-intlayer";
495
+
496
+ const ClientComponentExample = () => {
497
+ const content = useIntlayer("client-component-example"); // 관련 콘텐츠 선언 생성
498
+
499
+ return (
500
+ <div>
501
+ <h2>{content.title}</h2>
502
+ <p>{content.content}</p>
503
+ </div>
504
+ );
505
+ };
506
+ ```
507
+
508
+ ```jsx {3,6} fileName="src/components/ClientComponentExample.csx" codeFormat="commonjs"
509
+ "use client";
510
+
511
+ const { useIntlayer } = require("next-intlayer");
512
+
513
+ const ClientComponentExample = () => {
514
+ const content = useIntlayer("client-component-example"); // 관련 콘텐츠 선언 생성
515
+
516
+ return (
517
+ <div>
518
+ <h2>{content.title}</h2>
519
+ <p>{content.content}</p>
520
+ </div>
521
+ );
522
+ };
523
+ ```
524
+
525
+ ```tsx {2} fileName="src/components/ServerComponentExample.tsx" codeFormat="typescript"
526
+ import type { FC } from "react";
527
+ import { useIntlayer } from "next-intlayer/server";
528
+
529
+ const ServerComponentExample: FC = () => {
530
+ const content = useIntlayer("server-component-example"); // 관련 콘텐츠 선언 생성
531
+
532
+ return (
533
+ <div>
534
+ <h2>{content.title}</h2>
535
+ <p>{content.content}</p>
536
+ </div>
537
+ );
538
+ };
539
+ ```
540
+
541
+ ```jsx {1} fileName="src/components/ServerComponentExample.mjx" codeFormat="esm"
542
+ import { useIntlayer } from "next-intlayer/server";
543
+
544
+ const ServerComponentExample = () => {
545
+ const content = useIntlayer("server-component-example"); // 관련 콘텐츠 선언 생성
546
+
547
+ return (
548
+ <div>
549
+ <h2>{content.title}</h2>
550
+ <p>{content.content}</p>
551
+ </div>
552
+ );
553
+ };
554
+ ```
555
+
556
+ ```jsx {1} fileName="src/components/ServerComponentExample.csx" codeFormat="commonjs"
557
+ const { useIntlayer } = require("next-intlayer/server");
558
+
559
+ const ServerComponentExample = () => {
560
+ const content = useIntlayer("server-component-example"); // 관련 콘텐츠 선언 생성
561
+
562
+ return (
563
+ <div>
564
+ <h2>{content.title}</h2>
565
+ <p>{content.content}</p>
566
+ </div>
567
+ );
568
+ };
569
+ ```
570
+
571
+ > `alt`, `title`, `href`, `aria-label` 등과 같은 `string` 속성에서 콘텐츠를 사용하려면 함수의 값을 호출해야 합니다:
572
+
573
+ > ```jsx
574
+ >
575
+ > ```
576
+
577
+ > <img src={content.image.src.value} alt={content.image.value} />
578
+
579
+ > ```
580
+ >
581
+ > ```
582
+
583
+ > `useIntlayer` 훅에 대해 자세히 알아보려면 [문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/next-intlayer/useIntlayer.md)를 참조하세요.
584
+
585
+ ### (선택 사항) 8단계: 메타데이터의 국제화
586
+
587
+ 페이지 제목과 같은 메타데이터를 국제화하려면 Next.js에서 제공하는 `generateMetadata` 함수를 사용할 수 있습니다. 함수 내부에서 `getTranslation` 함수를 사용하여 메타데이터를 번역합니다.
588
+
589
+ ````typescript fileName="src/app/[locale]/layout.tsx 또는 src/app/[locale]/page.tsx" codeFormat="typescript"
590
+ import {
591
+ type IConfigLocales,
592
+ getTranslation,
593
+ getMultilingualUrls,
594
+ } from "intlayer";
595
+ import type { Metadata } from "next";
596
+ import type { LocalParams } from "next-intlayer";
597
+
598
+ export const generateMetadata = ({
599
+ params: { locale },
600
+ }: LocalParams): Metadata => {
601
+ const t = <T>(content: IConfigLocales<T>) => getTranslation(content, locale);
602
+
603
+ /**
604
+ * 각 로케일에 대한 모든 URL을 포함하는 객체를 생성합니다.
605
+ *
606
+ * 예:
607
+ * ```ts
608
+ * getMultilingualUrls('/about');
609
+ *
610
+ * // 반환값
611
+ * // {
612
+ * // en: '/about',
613
+ * // fr: '/fr/about',
614
+ * // es: '/es/about',
615
+ * // }
616
+ * ```
617
+ */
618
+ const multilingualUrls = getMultilingualUrls("/");
619
+
620
+ return {
621
+ title: t<string>({
622
+ en: "My title",
623
+ fr: "Mon titre",
624
+ es: "Mi título",
625
+ ko: "내 제목",
626
+ }),
627
+ description: t({
628
+ en: "My description",
629
+ fr: "Ma description",
630
+ es: "Mi descripción",
631
+ ko: "내 설명",
632
+ }),
633
+ alternates: {
634
+ canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
635
+ languages: { ...multilingualUrls, "x-default": "/" },
636
+ },
637
+ openGraph: {
638
+ url: multilingualUrls[locale],
639
+ },
640
+ };
641
+ };
642
+
643
+ // ... 나머지 코드
644
+ ````
645
+
646
+ ````javascript fileName="src/app/[locale]/layout.msx 또는 src/app/[locale]/page.msx" codeFormat="javascript"
647
+ import { getTranslation, getMultilingualUrls } from "intlayer";
648
+
649
+ export const generateMetadata = ({ params: { locale } }) => {
650
+ const t = (content) => getTranslation(content, locale);
651
+
652
+ /**
653
+ * 각 로케일에 대한 모든 URL을 포함하는 객체를 생성합니다.
654
+ *
655
+ * 예:
656
+ * ```ts
657
+ * getMultilingualUrls('/about');
658
+ *
659
+ * // 반환값
660
+ * // {
661
+ * // en: '/about',
662
+ * // fr: '/fr/about',
663
+ * // es: '/es/about',
664
+ * // }
665
+ * ```
666
+ */
667
+ const multilingualUrls = getMultilingualUrls("/");
668
+
669
+ return {
670
+ title: t({
671
+ en: "My title",
672
+ fr: "Mon titre",
673
+ es: "Mi título",
674
+ ko: "내 제목",
675
+ }),
676
+ description: t({
677
+ en: "My description",
678
+ fr: "Ma description",
679
+ es: "Mi descripción",
680
+ ko: "내 설명",
681
+ }),
682
+ alternates: {
683
+ canonical: multilingualUrls[locale],
684
+ languages: { ...multilingualUrls, "x-default": "/" },
685
+ },
686
+ openGraph: {
687
+ url: multilingualUrls[locale],
688
+ },
689
+ };
690
+ };
691
+
692
+ // ... 나머지 코드
693
+ ````
694
+
695
+ ````javascript fileName="src/app/[locale]/layout.cjs 또는 src/app/[locale]/page.cjs" codeFormat="javascript"
696
+ const { getTranslation, getMultilingualUrls } = require("intlayer");
697
+
698
+ module.exports.generateMetadata = ({ params: { locale } }) => {
699
+ const t = (content) => getTranslation(content, locale);
700
+
701
+ /**
702
+ * 각 로케일에 대한 모든 URL을 포함하는 객체를 생성합니다.
703
+ *
704
+ * 예:
705
+ * ```ts
706
+ * getMultilingualUrls('/about');
707
+ *
708
+ * // 반환값
709
+ * // {
710
+ * // en: '/about',
711
+ * // fr: '/fr/about',
712
+ * // es: '/es/about',
713
+ * // }
714
+ * ```
715
+ */
716
+ const multilingualUrls = getMultilingualUrls("/");
717
+
718
+ return {
719
+ title: t({
720
+ en: "My title",
721
+ fr: "Mon titre",
722
+ es: "Mi título",
723
+ ko: "내 제목",
724
+ }),
725
+ description: t({
726
+ en: "My description",
727
+ fr: "Ma description",
728
+ es: "Mi descripción",
729
+ ko: "내 설명",
730
+ }),
731
+ alternates: {
732
+ canonical: multilingualUrls[locale],
733
+ languages: { ...multilingualUrls, "x-default": "/" },
734
+ },
735
+ openGraph: {
736
+ url: multilingualUrls[locale],
737
+ },
738
+ };
739
+ };
740
+
741
+ // ... 나머지 코드
742
+ ````
743
+
744
+ > 메타데이터 최적화에 대해 자세히 알아보려면 [Next.js 공식 문서](https://nextjs.org/docs/app/building-your-application/optimizing/metadata)를 참조하세요.
745
+
746
+ ### (선택 사항) 9단계: sitemap.xml 및 robots.txt의 국제화
747
+
748
+ `sitemap.xml` 및 `robots.txt`를 국제화하려면 Intlayer에서 제공하는 `getMultilingualUrls` 함수를 사용할 수 있습니다. 이 함수는 사이트맵에 다국어 URL을 생성할 수 있도록 합니다.
749
+
750
+ ```tsx fileName="src/app/sitemap.ts" codeFormat="typescript"
751
+ import { getMultilingualUrls } from "intlayer";
752
+ import type { MetadataRoute } from "next";
753
+
754
+ const sitemap = (): MetadataRoute.Sitemap => [
755
+ {
756
+ url: "https://example.com",
757
+ alternates: {
758
+ languages: getMultilingualUrls("https://example.com"),
759
+ },
760
+ },
761
+ {
762
+ url: "https://example.com/login",
763
+ alternates: {
764
+ languages: getMultilingualUrls("https://example.com/login"),
765
+ },
766
+ },
767
+ {
768
+ url: "https://example.com/register",
769
+ alternates: {
770
+ languages: getMultilingualUrls("https://example.com/register"),
771
+ },
772
+ },
773
+ ];
774
+
775
+ export default sitemap;
776
+ ```
777
+
778
+ ```jsx fileName="src/app/sitemap.mjx" codeFormat="esm"
779
+ import { getMultilingualUrls } from "intlayer";
780
+
781
+ const sitemap = () => [
782
+ {
783
+ url: "https://example.com",
784
+ alternates: {
785
+ languages: getMultilingualUrls("https://example.com"),
786
+ },
787
+ },
788
+ {
789
+ url: "https://example.com/login",
790
+ alternates: {
791
+ languages: getMultilingualUrls("https://example.com/login"),
792
+ },
793
+ },
794
+ {
795
+ url: "https://example.com/register",
796
+ alternates: {
797
+ languages: getMultilingualUrls("https://example.com/register"),
798
+ },
799
+ },
800
+ ];
801
+
802
+ export default sitemap;
803
+ ```
804
+
805
+ ```jsx fileName="src/app/sitemap.csx" codeFormat="commonjs"
806
+ const { getMultilingualUrls } = require("intlayer");
807
+
808
+ const sitemap = () => [
809
+ {
810
+ url: "https://example.com",
811
+ alternates: {
812
+ languages: getMultilingualUrls("https://example.com"),
813
+ },
814
+ },
815
+ {
816
+ url: "https://example.com/login",
817
+ alternates: {
818
+ languages: getMultilingualUrls("https://example.com/login"),
819
+ },
820
+ },
821
+ {
822
+ url: "https://example.com/register",
823
+ alternates: {
824
+ languages: getMultilingualUrls("https://example.com/register"),
825
+ },
826
+ },
827
+ ];
828
+
829
+ module.exports = sitemap;
830
+ ```
831
+
832
+ ```tsx fileName="src/app/robots.ts" codeFormat="typescript"
833
+ import type { MetadataRoute } from "next";
834
+ import { getMultilingualUrls } from "intlayer";
835
+
836
+ const getAllMultilingualUrls = (urls: string[]) =>
837
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)) as string[]);
838
+
839
+ const robots = (): MetadataRoute.Robots => ({
840
+ rules: {
841
+ userAgent: "*",
842
+ allow: ["/"],
843
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
844
+ },
845
+ host: "https://example.com",
846
+ sitemap: `https://example.com/sitemap.xml`,
847
+ });
848
+
849
+ export default robots;
850
+ ```
851
+
852
+ ```jsx fileName="src/app/robots.mjx" codeFormat="esm"
853
+ import { getMultilingualUrls } from "intlayer";
854
+
855
+ const getAllMultilingualUrls = (urls) =>
856
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
857
+
858
+ const robots = () => ({
859
+ rules: {
860
+ userAgent: "*",
861
+ allow: ["/"],
862
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
863
+ },
864
+ host: "https://example.com",
865
+ sitemap: `https://example.com/sitemap.xml`,
866
+ });
867
+
868
+ export default robots;
869
+ ```
870
+
871
+ ```jsx fileName="src/app/robots.csx" codeFormat="commonjs"
872
+ const { getMultilingualUrls } = require("intlayer");
873
+
874
+ const getAllMultilingualUrls = (urls) =>
875
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
876
+
877
+ const robots = () => ({
878
+ rules: {
879
+ userAgent: "*",
880
+ allow: ["/"],
881
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
882
+ },
883
+ host: "https://example.com",
884
+ sitemap: `https://example.com/sitemap.xml`,
885
+ });
886
+
887
+ module.exports = robots;
888
+ ```
889
+
890
+ > 사이트맵 최적화에 대해 자세히 알아보려면 [Next.js 공식 문서](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/sitemap)를 참조하세요. robots.txt 최적화에 대해 자세히 알아보려면 [Next.js 공식 문서](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/robots)를 참조하세요.
891
+
892
+ ### (선택 사항) 10단계: 콘텐츠 언어 변경
893
+
894
+ Next.js에서 콘텐츠의 언어를 변경하려면, 사용자를 적절한 로컬 페이지로 리디렉션하기 위해 `Link` 컴포넌트를 사용하는 것이 권장됩니다. `Link` 컴포넌트는 페이지의 사전 로드를 가능하게 하여 전체 페이지 새로 고침을 피하는 데 도움이 됩니다.
895
+
896
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
897
+ "use client";
898
+
899
+ import {
900
+ Locales,
901
+ getHTMLTextDir,
902
+ getLocaleName,
903
+ getLocalizedUrl,
904
+ } from "intlayer";
905
+ import { useLocale } from "next-intlayer";
906
+ import { type FC } from "react";
907
+ import Link from "next/link";
908
+
909
+ const LocaleSwitcher: FC = () => {
910
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
911
+ const { setLocaleCookie } = useLocaleCookie();
912
+
913
+ return (
914
+ <div>
915
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
916
+ <div id="localePopover" popover="auto">
917
+ {availableLocales.map((localeItem) => (
918
+ <Link
919
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
920
+ hrefLang={localeItem}
921
+ key={localeItem}
922
+ aria-current={locale === localeItem ? "page" : undefined}
923
+ onClick={() => setLocaleCookie(localeItem)}
924
+ >
925
+ <span>
926
+ {/* 로케일 - 예: FR */}
927
+ {localeItem}
928
+ </span>
929
+ <span>
930
+ {/* 로케일 자체 언어 - 예: Français */}
931
+ {getLocaleName(localeItem, locale)}
932
+ </span>
933
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
934
+ {/* 현재 로케일 언어 - 예: Francés (현재 로케일이 Locales.SPANISH로 설정된 경우) */}
935
+ {getLocaleName(localeItem)}
936
+ </span>
937
+ <span dir="ltr" lang={Locales.ENGLISH}>
938
+ {/* 영어로 된 언어 - 예: French */}
939
+ {getLocaleName(localeItem, Locales.ENGLISH)}
940
+ </span>
941
+ </Link>
942
+ ))}
943
+ </div>
944
+ </div>
945
+ );
946
+ };
947
+ ```
948
+
949
+ ```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
950
+ "use client";
951
+
952
+ import {
953
+ Locales,
954
+ getHTMLTextDir,
955
+ getLocaleName,
956
+ getLocalizedUrl,
957
+ } from "intlayer";
958
+ import { useLocale } from "next-intlayer";
959
+ import Link from "next/link";
960
+
961
+ const LocaleSwitcher = () => {
962
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
963
+ const { setLocaleCookie } = useLocaleCookie();
964
+
965
+ return (
966
+ <div>
967
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
968
+ <div id="localePopover" popover="auto">
969
+ {availableLocales.map((localeItem) => (
970
+ <Link
971
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
972
+ hrefLang={localeItem}
973
+ key={localeItem}
974
+ aria-current={locale === localeItem ? "page" : undefined}
975
+ onClick={() => setLocaleCookie(localeItem)}
976
+ >
977
+ <span>
978
+ {/* 로케일 - 예: FR */}
979
+ {localeItem}
980
+ </span>
981
+ <span>
982
+ {/* 로케일 자체 언어 - 예: Français */}
983
+ {getLocaleName(localeItem, locale)}
984
+ </span>
985
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
986
+ {/* 현재 로케일 언어 - 예: Francés (현재 로케일이 Locales.SPANISH로 설정된 경우) */}
987
+ {getLocaleName(localeItem)}
988
+ </span>
989
+ <span dir="ltr" lang={Locales.ENGLISH}>
990
+ {/* 영어로 된 언어 - 예: French */}
991
+ {getLocaleName(localeItem, Locales.ENGLISH)}
992
+ </span>
993
+ </Link>
994
+ ))}
995
+ </div>
996
+ </div>
997
+ );
998
+ };
999
+ ```
1000
+
1001
+ ```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
1002
+ "use client";
1003
+
1004
+ const {
1005
+ Locales,
1006
+ getHTMLTextDir,
1007
+ getLocaleName,
1008
+ getLocalizedUrl,
1009
+ } = require("intlayer");
1010
+ const { useLocale } = require("next-intlayer");
1011
+ const Link = require("next/link");
1012
+
1013
+ const LocaleSwitcher = () => {
1014
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
1015
+ const { setLocaleCookie } = useLocaleCookie();
1016
+
1017
+ return (
1018
+ <div>
1019
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
1020
+ <div id="localePopover" popover="auto">
1021
+ {availableLocales.map((localeItem) => (
1022
+ <Link
1023
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
1024
+ hrefLang={localeItem}
1025
+ key={localeItem}
1026
+ aria-current={locale === localeItem ? "page" : undefined}
1027
+ onClick={() => setLocaleCookie(localeItem)}
1028
+ >
1029
+ <span>
1030
+ {/* 로케일 - 예: FR */}
1031
+ {localeItem}
1032
+ </span>
1033
+ <span>
1034
+ {/* 로케일 자체 언어 - 예: Français */}
1035
+ {getLocaleName(localeItem, locale)}
1036
+ </span>
1037
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1038
+ {/* 현재 로케일 언어 - 예: Francés (현재 로케일이 Locales.SPANISH로 설정된 경우) */}
1039
+ {getLocaleName(localeItem)}
1040
+ </span>
1041
+ <span dir="ltr" lang={Locales.ENGLISH}>
1042
+ {/* 영어로 된 언어 - 예: French */}
1043
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1044
+ </span>
1045
+ </Link>
1046
+ ))}
1047
+ </div>
1048
+ </div>
1049
+ );
1050
+ };
1051
+ ```
1052
+
1053
+ > 문서 참조:
1054
+
1055
+ > - [`useLocale` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/next-intlayer/useLocale.md)
1056
+
1057
+ > - [`getLocaleName` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocaleName.md)
1058
+
1059
+ > - [`getLocalizedUrl` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocalizedUrl.md)
1060
+
1061
+ > - [`getHTMLTextDir` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getHTMLTextDir.md)
1062
+
1063
+ > - [`hrefLang` 속성](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=ko)
1064
+
1065
+ > - [`lang` 속성](https://developer.mozilla.org/ko/docs/Web/HTML/Global_attributes/lang)
1066
+
1067
+ > - [`dir` 속성](https://developer.mozilla.org/ko/docs/Web/HTML/Global_attributes/dir)
1068
+
1069
+ > - [`aria-current` 속성](https://developer.mozilla.org/ko/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1070
+
1071
+ ### (선택 사항) 11단계: 로컬라이즈된 링크 컴포넌트 생성
1072
+
1073
+ 애플리케이션의 탐색이 현재 로케일을 준수하도록 보장하려면 사용자 정의 `Link` 컴포넌트를 생성할 수 있습니다. 이 컴포넌트는 내부 URL에 현재 언어를 자동으로 접두사로 추가합니다. 예를 들어, 프랑스어 사용자가 "About" 페이지로 이동하는 링크를 클릭하면 `/about` 대신 `/fr/about`로 리디렉션됩니다.
1074
+
1075
+ 이 동작은 여러 이유로 유용합니다:
1076
+
1077
+ - **SEO 및 사용자 경험**: 로컬라이즈된 URL은 검색 엔진이 언어별 페이지를 올바르게 색인화하고 사용자가 선호하는 언어로 콘텐츠를 제공할 수 있도록 돕습니다.
1078
+ - **일관성**: 애플리케이션 전반에서 로컬라이즈된 링크를 사용하면 탐색이 현재 로케일 내에서 유지되며, 예상치 못한 언어 전환을 방지합니다.
1079
+ - **유지 관리 용이성**: 로컬라이제이션 로직을 단일 컴포넌트에 중앙 집중화하면 URL 관리를 간소화하고 애플리케이션이 성장함에 따라 코드베이스를 더 쉽게 유지 관리하고 확장할 수 있습니다.
1080
+
1081
+ 아래는 TypeScript에서 로컬라이즈된 `Link` 컴포넌트를 구현한 예제입니다:
1082
+
1083
+ ```tsx fileName="src/components/Link.tsx" codeFormat="typescript"
1084
+ "use client";
1085
+
1086
+ import { getLocalizedUrl } from "intlayer";
1087
+ import NextLink, { type LinkProps as NextLinkProps } from "next/link";
1088
+ import { useLocale } from "next-intlayer";
1089
+ import { forwardRef, PropsWithChildren, type ForwardedRef } from "react";
1090
+
1091
+ /**
1092
+ * 주어진 URL이 외부 링크인지 확인하는 유틸리티 함수.
1093
+ * URL이 http:// 또는 https://로 시작하면 외부 링크로 간주됩니다.
1094
+ */
1095
+ export const checkIsExternalLink = (href?: string): boolean =>
1096
+ /^https?:\/\//.test(href ?? "");
1097
+
1098
+ /**
1099
+ * 현재 로케일에 따라 href 속성을 조정하는 사용자 정의 Link 컴포넌트.
1100
+ * 내부 링크의 경우 `getLocalizedUrl`을 사용하여 URL에 로케일을 접두사로 추가합니다 (예: /fr/about).
1101
+ * 이를 통해 탐색이 동일한 로케일 컨텍스트 내에서 유지되도록 보장합니다.
1102
+ */
1103
+ export const Link = forwardRef<
1104
+ HTMLAnchorElement,
1105
+ PropsWithChildren<NextLinkProps>
1106
+ >(({ href, children, ...props }, ref: ForwardedRef<HTMLAnchorElement>) => {
1107
+ const { locale } = useLocale();
1108
+ const isExternalLink = checkIsExternalLink(href.toString());
1109
+
1110
+ // 링크가 내부 링크이고 유효한 href가 제공된 경우, 로컬라이즈된 URL을 가져옵니다.
1111
+ const hrefI18n: NextLinkProps["href"] =
1112
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1113
+
1114
+ return (
1115
+ <NextLink href={hrefI18n} ref={ref} {...props}>
1116
+ {children}
1117
+ </NextLink>
1118
+ );
1119
+ });
1120
+
1121
+ Link.displayName = "Link";
1122
+ ```
1123
+
1124
+ ```jsx fileName="src/components/Link.mjx" codeFormat="esm"
1125
+ 'use client';
1126
+
1127
+ import { getLocalizedUrl } from 'intlayer';
1128
+ import NextLink, { type LinkProps as NextLinkProps } from 'next/link';
1129
+ import { useLocale } from 'next-intlayer';
1130
+ import { forwardRef, PropsWithChildren, type ForwardedRef } from 'react';
1131
+
1132
+ /**
1133
+ * 주어진 URL이 외부 링크인지 확인하는 유틸리티 함수.
1134
+ * URL이 http:// 또는 https://로 시작하면 외부 링크로 간주됩니다.
1135
+ */
1136
+ export const checkIsExternalLink = (href) =>
1137
+ /^https?:\/\//.test(href ?? '');
1138
+
1139
+ /**
1140
+ * 현재 로케일에 따라 href 속성을 조정하는 사용자 정의 Link 컴포넌트.
1141
+ * 내부 링크의 경우 `getLocalizedUrl`을 사용하여 URL에 로케일을 접두사로 추가합니다 (예: /fr/about).
1142
+ * 이를 통해 탐색이 동일한 로케일 컨텍스트 내에서 유지되도록 보장합니다.
1143
+ */
1144
+ export const Link = forwardRef(({ href, children, ...props }, ref) => {
1145
+ const { locale } = useLocale();
1146
+ const isExternalLink = checkIsExternalLink(href.toString());
1147
+
1148
+ // 링크가 내부 링크이고 유효한 href가 제공된 경우, 로컬라이즈된 URL을 가져옵니다.
1149
+ const hrefI18n =
1150
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1151
+
1152
+ return (
1153
+ <NextLink href={hrefI18n} ref={ref} {...props}>
1154
+ {children}
1155
+ </NextLink>
1156
+ );
1157
+ });
1158
+
1159
+ Link.displayName = 'Link';
1160
+ ```
1161
+
1162
+ ```jsx fileName="src/components/Link.csx" codeFormat="commonjs"
1163
+ 'use client';
1164
+
1165
+ const { getLocalizedUrl } = require("intlayer");
1166
+ const NextLink = require("next/link");
1167
+ const { useLocale } = require("next-intlayer");
1168
+ const { forwardRef } = require("react");
1169
+
1170
+ /**
1171
+ * 주어진 URL이 외부 링크인지 확인하는 유틸리티 함수.
1172
+ * URL이 http:// 또는 https://로 시작하면 외부 링크로 간주됩니다.
1173
+ */
1174
+ const checkIsExternalLink = (href) =>
1175
+ /^https?:\/\//.test(href ?? '');
1176
+
1177
+
1178
+ const Link = forwardRef(({ href, children, ...props }, ref) => {
1179
+ const { locale } = useLocale();
1180
+ const isExternalLink = checkIsExternalLink(href.toString());
1181
+
1182
+ // 링크가 내부 링크이고 유효한 href가 제공된 경우, 로컬라이즈된 URL을 가져옵니다.
1183
+ const hrefI18n: NextLinkProps['href'] =
1184
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1185
+
1186
+ return (
1187
+ <NextLink href={hrefI18n} ref={ref} {...props}>
1188
+ {children}
1189
+ </NextLink>
1190
+ );
1191
+ });
1192
+
1193
+ Link.displayName = 'Link';
1194
+ ```
1195
+
1196
+ #### 작동 방식
1197
+
1198
+ - **외부 링크 감지**:
1199
+ 헬퍼 함수 `checkIsExternalLink`는 URL이 외부 링크인지 확인합니다. 외부 링크는 로컬라이제이션이 필요하지 않으므로 변경되지 않습니다.
1200
+
1201
+ - **현재 로케일 검색**:
1202
+ `useLocale` 훅은 현재 로케일(예: `fr` 프랑스어)을 제공합니다.
1203
+
1204
+ - **URL 로컬라이제이션**:
1205
+ 내부 링크(즉, 외부가 아닌 링크)의 경우, `getLocalizedUrl`을 사용하여 URL에 현재 로케일을 자동으로 접두사로 추가합니다. 이를 통해 사용자가 프랑스어를 사용하는 경우 `/about`을 `href`로 전달하면 `/fr/about`으로 변환됩니다.
1206
+
1207
+ - **링크 반환**:
1208
+ 컴포넌트는 로컬라이즈된 URL을 가진 `<a>` 요소를 반환하여 탐색이 로케일과 일치하도록 보장합니다.
1209
+
1210
+ 이 `Link` 컴포넌트를 애플리케이션 전반에 통합하면 일관되고 언어를 인식하는 사용자 경험을 유지하면서 SEO 및 사용성을 개선할 수 있습니다.
1211
+
1212
+ ### (선택 사항) 단계 14: 번들 크기 최적화
1213
+
1214
+ `next-intlayer`를 사용할 때, 사전은 기본적으로 모든 페이지의 번들에 포함됩니다. 번들 크기를 최적화하기 위해, Intlayer는 매크로를 사용하여 `useIntlayer` 호출을 지능적으로 대체하는 선택적 SWC 플러그인을 제공합니다. 이를 통해 사전은 실제로 사용하는 페이지의 번들에만 포함됩니다.
1215
+
1216
+ 이 최적화를 활성화하려면 `@intlayer/swc` 패키지를 설치하세요. 설치가 완료되면, `next-intlayer`는 자동으로 플러그인을 감지하고 사용합니다:
1217
+
1218
+ ```bash packageManager="npm"
1219
+ npm install @intlayer/swc --save-dev
1220
+ ```
1221
+
1222
+ ```bash packageManager="pnpm"
1223
+ pnpm add @intlayer/swc --save-dev
1224
+ ```
1225
+
1226
+ ```bash packageManager="yarn"
1227
+ yarn add @intlayer/swc --save-dev
1228
+ ```
1229
+
1230
+ > 참고: 이 최적화는 Next.js 13 이상에서만 사용할 수 있습니다.
1231
+
1232
+ > 참고: 이 패키지는 기본적으로 설치되지 않습니다. 이유는 SWC 플러그인이 Next.js에서 아직 실험적이기 때문입니다. 이는 향후 변경될 수 있습니다.
1233
+
1234
+ ### TypeScript 구성
1235
+
1236
+ Intlayer는 TypeScript의 모듈 확장을 사용하여 코드베이스를 더 강력하게 만듭니다.
1237
+
1238
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1239
+
1240
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1241
+
1242
+ 자동 생성된 타입을 포함하도록 TypeScript 구성을 설정하세요.
1243
+
1244
+ ```json5 fileName="tsconfig.json"
1245
+ {
1246
+ // ... 기존 TypeScript 구성
1247
+ "include": [
1248
+ // ... 기존 TypeScript 구성
1249
+ ".intlayer/**/*.ts", // 자동 생성된 타입 포함
1250
+ ],
1251
+ }
1252
+ ```
1253
+
1254
+ ### Git 구성
1255
+
1256
+ Intlayer에서 생성된 파일을 Git에 커밋하지 않도록 설정하는 것이 좋습니다.
1257
+
1258
+ 이를 위해 `.gitignore` 파일에 다음 지침을 추가할 수 있습니다:
1259
+
1260
+ ```plaintext fileName=".gitignore"
1261
+ # Intlayer에서 생성된 파일 무시
1262
+ .intlayer
1263
+ ```
1264
+
1265
+ ### 더 나아가기
1266
+
1267
+ 더 나아가려면 [시각적 편집기](https://github.com/aymericzip/intlayer/blob/main/docs/ko/intlayer_visual_editor.md)를 구현하거나 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/ko/intlayer_CMS.md)를 사용하여 콘텐츠를 외부화할 수 있습니다.