@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,1186 @@
1
+ # Intlayer와 React Create App으로 국제화(i18n) 시작하기
2
+
3
+ [Application Template](https://github.com/aymericzip/intlayer-react-cra-template) 참조.
4
+
5
+ ## Intlayer란 무엇인가요?
6
+
7
+ **Intlayer**는 현대 웹 애플리케이션에서 다국어 지원을 간소화하기 위해 설계된 혁신적이고 오픈 소스인 국제화(i18n) 라이브러리입니다.
8
+
9
+ Intlayer를 사용하면:
10
+
11
+ - **컴포넌트 수준에서 선언적 사전을 사용하여 번역을 쉽게 관리**할 수 있습니다.
12
+ - **메타데이터, 라우트 및 콘텐츠를 동적으로 로컬라이즈**할 수 있습니다.
13
+ - **TypeScript 지원**을 통해 자동 완성 및 오류 감지를 개선할 수 있습니다.
14
+ - **동적 로케일 감지 및 전환**과 같은 고급 기능을 활용할 수 있습니다.
15
+
16
+ ## React 애플리케이션에서 Intlayer 설정 단계별 가이드
17
+
18
+ ### 1단계: 종속성 설치
19
+
20
+ npm을 사용하여 필요한 패키지를 설치합니다:
21
+
22
+ ```bash packageManager="npm"
23
+ npm install intlayer react-intlayer react-scripts-intlayer
24
+ ```
25
+
26
+ ```bash packageManager="pnpm"
27
+ pnpm add intlayer react-intlayer react-scripts-intlayer
28
+ ```
29
+
30
+ ```bash packageManager="yarn"
31
+ yarn add intlayer react-intlayer react-scripts-intlayer
32
+ ```
33
+
34
+ - **intlayer**
35
+
36
+ 구성 관리, 번역, [콘텐츠 선언](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)을 위한 국제화 도구를 제공하는 핵심 패키지입니다.
37
+
38
+ - **react-intlayer**
39
+
40
+ Intlayer를 React 애플리케이션과 통합하는 패키지입니다. React 국제화를 위한 컨텍스트 제공자와 훅을 제공합니다.
41
+
42
+ - **react-scripts-intlayer**
43
+
44
+ Create React App 기반 애플리케이션과 Intlayer를 통합하기 위한 `react-scripts-intlayer` 명령 및 플러그인을 포함합니다. 이 플러그인은 [craco](https://craco.js.org/)를 기반으로 하며 [Webpack](https://webpack.js.org/) 번들러에 대한 추가 구성을 포함합니다.
45
+
46
+ ### 2단계: 프로젝트 구성
47
+
48
+ 애플리케이션의 언어를 구성하기 위한 설정 파일을 생성합니다:
49
+
50
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
51
+ import { Locales, type IntlayerConfig } from "intlayer";
52
+
53
+ const config: IntlayerConfig = {
54
+ internationalization: {
55
+ locales: [
56
+ Locales.ENGLISH,
57
+ Locales.FRENCH,
58
+ Locales.SPANISH,
59
+ // 다른 로케일 추가
60
+ ],
61
+ defaultLocale: Locales.ENGLISH,
62
+ },
63
+ };
64
+
65
+ export default config;
66
+ ```
67
+
68
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
69
+ import { Locales } from "intlayer";
70
+
71
+ /** @type {import('intlayer').IntlayerConfig} */
72
+ const config = {
73
+ internationalization: {
74
+ locales: [
75
+ Locales.ENGLISH,
76
+ Locales.FRENCH,
77
+ Locales.SPANISH,
78
+ // 다른 로케일 추가
79
+ ],
80
+ defaultLocale: Locales.ENGLISH,
81
+ },
82
+ };
83
+
84
+ export default config;
85
+ ```
86
+
87
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
88
+ const { Locales } = require("intlayer");
89
+
90
+ /** @type {import('intlayer').IntlayerConfig} */
91
+ const config = {
92
+ internationalization: {
93
+ locales: [
94
+ Locales.ENGLISH,
95
+ Locales.FRENCH,
96
+ Locales.SPANISH,
97
+ // 다른 로케일 추가
98
+ ],
99
+ defaultLocale: Locales.ENGLISH,
100
+ },
101
+ };
102
+
103
+ module.exports = config;
104
+ ```
105
+
106
+ > 이 구성 파일을 통해 로컬라이즈된 URL, 미들웨어 리디렉션, 쿠키 이름, 콘텐츠 선언의 위치 및 확장자, 콘솔에서 Intlayer 로그 비활성화 등을 설정할 수 있습니다. 사용 가능한 매개변수의 전체 목록은 [구성 문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/configuration.md)를 참조하세요.
107
+
108
+ ### 3단계: CRA 구성에 Intlayer 통합
109
+
110
+ 스크립트를 react-intlayer로 변경합니다:
111
+
112
+ ```json fileName="package.json"
113
+ "scripts": {
114
+ "build": "react-scripts-intlayer build",
115
+ "start": "react-scripts-intlayer start",
116
+ "transpile": "intlayer build"
117
+ },
118
+ ```
119
+
120
+ > `react-scripts-intlayer` 스크립트는 [CRACO](https://craco.js.org/)를 기반으로 합니다. Intlayer craco 플러그인을 기반으로 자체 설정을 구현할 수도 있습니다. [예제 보기](https://github.com/aymericzip/intlayer/blob/main/examples/react-app/craco.config.js).
121
+
122
+ ### 4단계: 콘텐츠 선언
123
+
124
+ 번역을 저장하기 위해 콘텐츠 선언을 생성하고 관리합니다:
125
+
126
+ ```tsx fileName="src/app.content.tsx" codeFormat="typescript"
127
+ import { t, type Dictionary } from "intlayer";
128
+ import React, { type ReactNode } from "react";
129
+
130
+ const appContent = {
131
+ key: "app",
132
+ content: {
133
+ getStarted: t<ReactNode>({
134
+ en: (
135
+ <>
136
+ Edit <code>src/App.tsx</code> and save to reload
137
+ </>
138
+ ),
139
+ fr: (
140
+ <>
141
+ Éditez <code>src/App.tsx</code> et enregistrez pour recharger
142
+ </>
143
+ ),
144
+ es: (
145
+ <>
146
+ Edita <code>src/App.tsx</code> y guarda para recargar
147
+ </>
148
+ ),
149
+ }),
150
+ reactLink: {
151
+ href: "https://reactjs.org",
152
+ content: t({
153
+ en: "Learn React",
154
+ fr: "Apprendre React",
155
+ es: "Aprender React",
156
+ }),
157
+ },
158
+ },
159
+ } satisfies Dictionary;
160
+
161
+ export default appContent;
162
+ ```
163
+
164
+ ```jsx fileName="src/app.content.mjx" codeFormat="esm"
165
+ import { t } from "intlayer";
166
+
167
+ /** @type {import('intlayer').Dictionary} */
168
+ const appContent = {
169
+ key: "app",
170
+ content: {
171
+ getStarted: t({
172
+ en: "Get started by editing",
173
+ fr: "Commencez par éditer",
174
+ es: "Comience por editar",
175
+ }),
176
+ reactLink: {
177
+ href: "https://reactjs.org",
178
+ content: t({
179
+ en: "Learn React",
180
+ fr: "Apprendre React",
181
+ es: "Aprender React",
182
+ }),
183
+ },
184
+ },
185
+ };
186
+
187
+ export default appContent;
188
+ ```
189
+
190
+ ```jsx fileName="src/app.content.csx" codeFormat="commonjs"
191
+ const { t } = require("intlayer");
192
+
193
+ /** @type {import('intlayer').Dictionary} */
194
+ const appContent = {
195
+ key: "app",
196
+ content: {
197
+ getStarted: t({
198
+ en: "Get started by editing",
199
+ fr: "Commencez par éditer",
200
+ es: "Comience por editar",
201
+ }),
202
+ reactLink: {
203
+ href: "https://reactjs.org",
204
+ content: t({
205
+ en: "Learn React",
206
+ fr: "Apprendre React",
207
+ es: "Aprender React",
208
+ }),
209
+ },
210
+ },
211
+ };
212
+
213
+ module.exports = appContent;
214
+ ```
215
+
216
+ > 콘텐츠 선언은 애플리케이션 어디에서나 정의할 수 있으며, `contentDir` 디렉토리(기본값: `./src`)에 포함되고 콘텐츠 선언 파일 확장자(기본값: `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`)와 일치해야 합니다.
217
+
218
+ > 자세한 내용은 [콘텐츠 선언 문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/dictionary/get_started.md)를 참조하세요.
219
+
220
+ > 콘텐츠 파일에 TSX 코드가 포함된 경우, `import React from "react";`를 콘텐츠 파일에 가져오는 것을 고려해야 합니다.
221
+
222
+ ### 5단계: 코드에서 Intlayer 사용
223
+
224
+ 애플리케이션 전반에서 콘텐츠 사전을 액세스합니다:
225
+
226
+ ```tsx {4,7} fileName="src/App.tsx" codeFormat="typescript"
227
+ import logo from "./logo.svg";
228
+ import "./App.css";
229
+ import type { FC } from "react";
230
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
231
+
232
+ const AppContent: FC = () => {
233
+ const content = useIntlayer("app");
234
+
235
+ return (
236
+ <div className="App">
237
+ <img src={logo} className="App-logo" alt="logo" />
238
+
239
+ {content.getStarted}
240
+ <a
241
+ className="App-link"
242
+ href={content.reactLink.href.value}
243
+ target="_blank"
244
+ rel="noopener noreferrer"
245
+ >
246
+ {content.reactLink.content}
247
+ </a>
248
+ </div>
249
+ );
250
+ };
251
+
252
+ const App: FC = () => (
253
+ <IntlayerProvider>
254
+ <AppContent />
255
+ </IntlayerProvider>
256
+ );
257
+
258
+ export default App;
259
+ ```
260
+
261
+ ```jsx {3,6} fileName="src/App.mjx" codeFormat="esm"
262
+ import "./App.css";
263
+ import logo from "./logo.svg";
264
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
265
+
266
+ const AppContent = () => {
267
+ const content = useIntlayer("app");
268
+
269
+ return (
270
+ <div className="App">
271
+ <img src={logo} className="App-logo" alt="logo" />
272
+
273
+ {content.getStarted}
274
+ <a
275
+ className="App-link"
276
+ href={content.reactLink.href.value}
277
+ target="_blank"
278
+ rel="noopener noreferrer"
279
+ >
280
+ {content.reactLink.content}
281
+ </a>
282
+ </div>
283
+ );
284
+ };
285
+
286
+ const App = () => (
287
+ <IntlayerProvider>
288
+ <AppContent />
289
+ ---
290
+
291
+ require("./App.css");
292
+ const logo = require("./logo.svg");
293
+ const { IntlayerProvider, useIntlayer } = require("react-intlayer");
294
+
295
+ const AppContent = () => {
296
+ const content = useIntlayer("app");
297
+
298
+ return (
299
+ <div className="App">
300
+ <img src={logo} className="App-logo" alt="로고" />
301
+
302
+ {content.getStarted}
303
+ <a
304
+ className="App-link"
305
+ href={content.reactLink.href.value}
306
+ target="_blank"
307
+ rel="noopener noreferrer"
308
+ >
309
+ {content.reactLink.content}
310
+ </a>
311
+ </div>
312
+ );
313
+ };
314
+
315
+ const App = () => (
316
+ <IntlayerProvider>
317
+ <AppContent />
318
+ </IntlayerProvider>
319
+ );
320
+ ```
321
+
322
+ > 참고: `alt`, `title`, `href`, `aria-label` 등과 같은 `string` 속성에서 콘텐츠를 사용하려면, 함수의 값을 호출해야 합니다. 예를 들어:
323
+
324
+ > ```jsx
325
+ >
326
+ > ```
327
+
328
+ > <img src={content.image.src.value} alt={content.image.value} />
329
+
330
+ > ```
331
+ >
332
+ > ```
333
+
334
+ > `useIntlayer` 훅에 대해 더 알아보려면 [문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/react-intlayer/useIntlayer.md)를 참조하세요.
335
+
336
+ ### (선택 사항) 단계 6: 콘텐츠 언어 변경
337
+
338
+ 콘텐츠의 언어를 변경하려면 `useLocale` 훅에서 제공하는 `setLocale` 함수를 사용할 수 있습니다. 이 함수는 애플리케이션의 로케일을 설정하고 콘텐츠를 업데이트합니다.
339
+
340
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
341
+ import { Locales } from "intlayer";
342
+ import { useLocale } from "react-intlayer";
343
+
344
+ const LocaleSwitcher = () => {
345
+ const { setLocale } = useLocale();
346
+
347
+ return (
348
+ <button onClick={() => setLocale(Locales.English)}>
349
+ 언어를 영어로 변경
350
+ </button>
351
+ );
352
+ };
353
+ ```
354
+
355
+ ```jsx fileName="src/components/LocaleSwitcher.mjx" codeFormat="esm"
356
+ import { Locales } from "intlayer";
357
+ import { useLocale } from "react-intlayer";
358
+
359
+ const LocaleSwitcher = () => {
360
+ const { setLocale } = useLocale();
361
+
362
+ return (
363
+ <button onClick={() => setLocale(Locales.English)}>
364
+ 언어를 영어로 변경
365
+ </button>
366
+ );
367
+ };
368
+ ```
369
+
370
+ ```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
371
+ const { Locales } = require("intlayer");
372
+ const { useLocale } = require("react-intlayer");
373
+
374
+ const LocaleSwitcher = () => {
375
+ const { setLocale } = useLocale();
376
+
377
+ return (
378
+ <button onClick={() => setLocale(Locales.English)}>
379
+ 언어를 영어로 변경
380
+ </button>
381
+ );
382
+ };
383
+ ```
384
+
385
+ > `useLocale` 훅에 대해 더 알아보려면 [문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/react-intlayer/useLocale.md)를 참조하세요.
386
+
387
+ ### (선택 사항) 단계 7: 애플리케이션에 로컬화된 라우팅 추가
388
+
389
+ 이 단계의 목적은 각 언어에 대해 고유한 경로를 만드는 것입니다. 이는 SEO 및 SEO 친화적인 URL에 유용합니다.
390
+ 예시:
391
+
392
+ ```plaintext
393
+ - https://example.com/about
394
+ - https://example.com/es/about
395
+ - https://example.com/fr/about
396
+ ```
397
+
398
+ > 기본적으로, 기본 로케일에 대해서는 경로가 접두어로 설정되지 않습니다. 기본 로케일에 접두어를 설정하려면, 구성에서 `middleware.prefixDefault` 옵션을 `true`로 설정할 수 있습니다. 자세한 내용은 [구성 문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/configuration.md)를 참조하세요.
399
+
400
+ 애플리케이션에 로컬화된 라우팅을 추가하려면, 애플리케이션의 경로를 감싸고 로케일 기반 라우팅을 처리하는 `LocaleRouter` 컴포넌트를 생성할 수 있습니다. 다음은 [React Router](https://reactrouter.com/home)를 사용하는 예제입니다:
401
+
402
+ ```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
403
+ // 필요한 종속성과 함수 가져오기
404
+ import { type Locales, configuration, getPathWithoutLocale } from "intlayer"; // 'intlayer'에서 유틸리티 함수 및 타입 가져오기
405
+ import type { FC, PropsWithChildren } from "react"; // React의 함수형 컴포넌트 및 props 타입
406
+ import { IntlayerProvider } from "react-intlayer"; // 국제화 컨텍스트를 위한 제공자
407
+ import {
408
+ BrowserRouter,
409
+ Routes,
410
+ Route,
411
+ Navigate,
412
+ useLocation,
413
+ } from "react-router-dom"; // 탐색 관리를 위한 라우터 컴포넌트
414
+
415
+ // Intlayer에서 구성 해체
416
+ const { internationalization, middleware } = configuration;
417
+ const { locales, defaultLocale } = internationalization;
418
+
419
+ /**
420
+ * 로컬화를 처리하고 적절한 로케일 컨텍스트로 자식을 감싸는 컴포넌트.
421
+ * URL 기반 로케일 감지 및 유효성을 관리합니다.
422
+ */
423
+ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
424
+ children,
425
+ locale,
426
+ }) => {
427
+ const { pathname, search } = useLocation(); // 현재 URL 경로 가져오기
428
+
429
+ // 현재 로케일 결정, 제공되지 않은 경우 기본값으로 대체
430
+ const currentLocale = locale ?? defaultLocale;
431
+
432
+ // 경로에서 로케일 접두사를 제거하여 기본 경로 생성
433
+ const pathWithoutLocale = getPathWithoutLocale(
434
+ pathname // 현재 URL 경로
435
+ );
436
+
437
+ /**
438
+ * middleware.prefixDefault가 true인 경우, 기본 로케일은 항상 접두어로 설정되어야 합니다.
439
+ */
440
+ if (middleware.prefixDefault) {
441
+ // 로케일 유효성 검사
442
+ if (!locale || !locales.includes(locale)) {
443
+ // 기본 로케일과 업데이트된 경로로 리디렉션
444
+ return (
445
+ <Navigate
446
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
447
+ replace // 현재 히스토리 항목을 새 항목으로 대체
448
+ />
449
+ );
450
+ }
451
+
452
+ // IntlayerProvider로 자식을 감싸고 현재 로케일 설정
453
+ return (
454
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
455
+ );
456
+ } else {
457
+ /**
458
+ * middleware.prefixDefault가 false인 경우, 기본 로케일은 접두어로 설정되지 않습니다.
459
+ * 현재 로케일이 유효하고 기본 로케일이 아닌지 확인합니다.
460
+ */
461
+ if (
462
+ currentLocale.toString() !== defaultLocale.toString() &&
463
+ !locales
464
+ .filter(
465
+ (locale) => locale.toString() !== defaultLocale.toString() // 기본 로케일 제외
466
+ )
467
+ .includes(currentLocale) // 현재 로케일이 유효한 로케일 목록에 있는지 확인
468
+ ) {
469
+ // 로케일 접두사가 없는 경로로 리디렉션
470
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
471
+ }
472
+
473
+ // IntlayerProvider로 자식을 감싸고 현재 로케일 설정
474
+ return (
475
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
476
+ );
477
+ }
478
+ };
479
+
480
+ /**
481
+ * 로케일별 경로를 설정하는 라우터 컴포넌트.
482
+ * React Router를 사용하여 탐색을 관리하고 로컬화된 컴포넌트를 렌더링합니다.
483
+ */
484
+ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
485
+ <BrowserRouter>
486
+ <Routes>
487
+ {locales
488
+ .filter(
489
+ (locale) => middleware.prefixDefault || locale !== defaultLocale
490
+ )
491
+ .map((locale) => (
492
+ <Route
493
+ // 로케일을 캡처하는 경로 패턴(e.g., /en/, /fr/) 및 모든 후속 경로와 일치
494
+ path={`/${locale}/*`}
495
+ key={locale}
496
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // 로케일 관리로 자식을 감쌈
497
+ />
498
+ ))}
499
+
500
+ {
501
+ // 기본 로케일 접두어가 비활성화된 경우, 루트 경로에서 자식을 직접 렌더링
502
+ !middleware.prefixDefault && (
503
+ <Route
504
+ path="*"
505
+ element={
506
+ <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
507
+ } // 로케일 관리로 자식을 감쌈
508
+ />
509
+ )
510
+ }
511
+ </Routes>
512
+ </BrowserRouter>
513
+ );
514
+ ```
515
+
516
+ ```jsx fileName="src/components/LocaleRouter.mjx" codeFormat="esm"
517
+ // 필요한 종속성과 함수 가져오기
518
+ import { configuration, getPathWithoutLocale } from "intlayer"; // 'intlayer'에서 유틸리티 함수 및 타입 가져오기
519
+ import { IntlayerProvider } from "react-intlayer"; // 국제화 컨텍스트를 위한 제공자
520
+ import {
521
+ BrowserRouter,
522
+ Routes,
523
+ Route,
524
+ Navigate,
525
+ useLocation,
526
+ } from "react-router-dom"; // 탐색 관리를 위한 라우터 컴포넌트
527
+
528
+ // Intlayer에서 구성 설정 가져오기
529
+ const { internationalization, middleware } = configuration;
530
+ const { locales, defaultLocale } = internationalization;
531
+
532
+ /**
533
+ * 로컬라이제이션을 처리하고 자식 요소를 적절한 로케일 컨텍스트로 감싸는 컴포넌트입니다.
534
+ * URL 기반 로케일 감지 및 유효성을 관리합니다.
535
+ */
536
+ const AppLocalized = ({ children, locale }) => {
537
+ const { pathname, search } = useLocation(); // 현재 URL 경로 가져오기
538
+
539
+ // 현재 로케일을 결정하고, 제공되지 않은 경우 기본 로케일로 대체
540
+ const currentLocale = locale ?? defaultLocale;
541
+
542
+ // 로케일 접두사를 제거하여 기본 경로를 구성
543
+ const pathWithoutLocale = getPathWithoutLocale(
544
+ pathname // 현재 URL 경로
545
+ );
546
+
547
+ /**
548
+ * middleware.prefixDefault가 true인 경우, 기본 로케일은 항상 접두사가 있어야 합니다.
549
+ */
550
+ if (middleware.prefixDefault) {
551
+ // 로케일 유효성 검사
552
+ if (!locale || !locales.includes(locale)) {
553
+ // 기본 로케일로 업데이트된 경로로 리디렉션
554
+ return (
555
+ <Navigate
556
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
557
+ replace // 현재 히스토리 항목을 새 항목으로 대체
558
+ />
559
+ );
560
+ }
561
+
562
+ // 자식 요소를 IntlayerProvider로 감싸고 현재 로케일 설정
563
+ return (
564
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
565
+ );
566
+ } else {
567
+ /**
568
+ * middleware.prefixDefault가 false인 경우, 기본 로케일은 접두사가 없습니다.
569
+ * 현재 로케일이 유효하고 기본 로케일이 아닌지 확인합니다.
570
+ */
571
+ if (
572
+ currentLocale.toString() !== defaultLocale.toString() &&
573
+ !locales
574
+ .filter(
575
+ (locale) => locale.toString() !== defaultLocale.toString() // 기본 로케일 제외
576
+ )
577
+ .includes(currentLocale) // 현재 로케일이 유효한 로케일 목록에 있는지 확인
578
+ ) {
579
+ // 로케일 접두사가 없는 경로로 리디렉션
580
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
581
+ }
582
+
583
+ // 자식 요소를 IntlayerProvider로 감싸고 현재 로케일 설정
584
+ return (
585
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
586
+ );
587
+ }
588
+ };
589
+
590
+ /**
591
+ * 로케일별 경로를 설정하는 라우터 컴포넌트입니다.
592
+ * React Router를 사용하여 탐색을 관리하고 로컬라이즈된 컴포넌트를 렌더링합니다.
593
+ */
594
+ export const LocaleRouter = ({ children }) => (
595
+ <BrowserRouter>
596
+ <Routes>
597
+ {locales
598
+ .filter(
599
+ (locale) => middleware.prefixDefault || locale !== defaultLocale
600
+ )
601
+ .map((locale) => (
602
+ <Route
603
+ // 로케일을 캡처하는 경로 패턴 (예: /en/, /fr/) 및 이후 모든 경로와 일치
604
+ path={`/${locale}/*`}
605
+ key={locale}
606
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // 로케일 관리로 자식 요소 감싸기
607
+ />
608
+ ))}
609
+
610
+ {
611
+ // 기본 로케일 접두사를 비활성화한 경우, 루트 경로에서 자식을 직접 렌더링
612
+ !middleware.prefixDefault && (
613
+ <Route
614
+ path="*"
615
+ element={
616
+ <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
617
+ } // 로케일 관리로 자식 요소 감싸기
618
+ />
619
+ )
620
+ }
621
+ </Routes>
622
+ </BrowserRouter>
623
+ );
624
+ ```
625
+
626
+ ```jsx fileName="src/components/LocaleRouter.cjx" codeFormat="commonjs"
627
+ // 필요한 종속성과 함수 가져오기
628
+ const { configuration, getPathWithoutLocale } = require("intlayer"); // 'intlayer'에서 유틸리티 함수 및 타입 가져오기
629
+ const { IntlayerProvider, useLocale } = require("react-intlayer"); // 국제화 컨텍스트를 위한 Provider
630
+ const {
631
+ BrowserRouter,
632
+ Routes,
633
+ Route,
634
+ Navigate,
635
+ useLocation,
636
+ } = require("react-router-dom"); // 탐색 관리를 위한 라우터 컴포넌트
637
+
638
+ // Intlayer에서 구성 설정 가져오기
639
+ const { internationalization, middleware } = configuration;
640
+ const { locales, defaultLocale } = internationalization;
641
+
642
+ /**
643
+ * 로컬라이제이션을 처리하고 자식 요소를 적절한 로케일 컨텍스트로 감싸는 컴포넌트입니다.
644
+ * URL 기반 로케일 감지 및 유효성을 관리합니다.
645
+ */
646
+ const AppLocalized = ({ children, locale }) => {
647
+ const { pathname, search } = useLocation(); // 현재 URL 경로 가져오기
648
+
649
+ // 현재 로케일을 결정하고, 제공되지 않은 경우 기본 로케일로 대체
650
+ const currentLocale = locale ?? defaultLocale;
651
+
652
+ // 로케일 접두사를 제거하여 기본 경로를 구성
653
+ const pathWithoutLocale = getPathWithoutLocale(
654
+ pathname // 현재 URL 경로
655
+ );
656
+
657
+ /**
658
+ * middleware.prefixDefault가 true인 경우, 기본 로케일은 항상 접두사가 있어야 합니다.
659
+ */
660
+ if (middleware.prefixDefault) {
661
+ // 로케일 유효성 검사
662
+ if (!locale || !locales.includes(locale)) {
663
+ // 기본 로케일로 업데이트된 경로로 리디렉션
664
+ return (
665
+ <Navigate
666
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
667
+ replace // 현재 히스토리 항목을 새 항목으로 대체
668
+ />
669
+ );
670
+ }
671
+
672
+ // 자식 요소를 IntlayerProvider로 감싸고 현재 로케일 설정
673
+ return (
674
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
675
+ );
676
+ } else {
677
+ /**
678
+ * middleware.prefixDefault가 false인 경우, 기본 로케일은 접두사가 없습니다.
679
+ * 현재 로케일이 유효하고 기본 로케일이 아닌지 확인합니다.
680
+ */
681
+ if (
682
+ currentLocale.toString() !== defaultLocale.toString() &&
683
+ !locales
684
+ .filter(
685
+ (locale) => locale.toString() !== defaultLocale.toString() // 기본 로케일 제외
686
+ )
687
+ .includes(currentLocale) // 현재 로케일이 유효한 로케일 목록에 있는지 확인
688
+ ) {
689
+ // 로케일 접두사가 없는 경로로 리디렉션
690
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
691
+ }
692
+
693
+ // 자식 요소를 IntlayerProvider로 감싸고 현재 로케일 설정
694
+ return (
695
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
696
+ );
697
+ }
698
+ };
699
+
700
+ /**
701
+ * 로케일별 경로를 설정하는 라우터 컴포넌트입니다.
702
+ * React Router를 사용하여 탐색을 관리하고 로컬라이즈된 컴포넌트를 렌더링합니다.
703
+ */
704
+ const LocaleRouter = ({ children }) => (
705
+ <BrowserRouter>
706
+ <Routes>
707
+ {locales
708
+ .filter(
709
+ (locale) => middleware.prefixDefault || locale !== defaultLocale
710
+ )
711
+ .map((locale) => (
712
+ <Route
713
+ // 로케일을 캡처하는 경로 패턴 (예: /en/, /fr/) 및 이후 모든 경로와 일치
714
+ path={`/${locale}/*`}
715
+ key={locale}
716
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // 로케일 관리로 자식 요소 감싸기
717
+ />
718
+ ))}
719
+
720
+ {
721
+ // 기본 로케일 접두사를 비활성화한 경우, 루트 경로에서 자식을 직접 렌더링
722
+ !middleware.prefixDefault && (
723
+ <Route
724
+ path="*"
725
+ element={
726
+ <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
727
+ } // 로케일 관리로 자식 요소 감싸기
728
+ />
729
+ )
730
+ }
731
+ </Routes>
732
+ </BrowserRouter>
733
+ );
734
+ ```
735
+
736
+ 그런 다음, 애플리케이션에서 `LocaleRouter` 컴포넌트를 사용할 수 있습니다:
737
+
738
+ ```tsx fileName="src/App.tsx" codeFormat="typescript"
739
+ import { LocaleRouter } from "./components/LocaleRouter";
740
+ import type { FC } from "react";
741
+
742
+ // ... AppContent 컴포넌트
743
+
744
+ const App: FC = () => (
745
+ <LocaleRouter>
746
+ <AppContent />
747
+ </LocaleRouter>
748
+ );
749
+ ```
750
+
751
+ ```jsx fileName="src/App.mjx" codeFormat="esm"
752
+ import { LocaleRouter } from "./components/LocaleRouter";
753
+
754
+ // ... AppContent 컴포넌트
755
+
756
+ const App = () => (
757
+ <LocaleRouter>
758
+ <AppContent />
759
+ </LocaleRouter>
760
+ );
761
+ ```
762
+
763
+ ```jsx fileName="src/App.cjx" codeFormat="commonjs"
764
+ const { LocaleRouter } = require("./components/LocaleRouter");
765
+
766
+ // ... AppContent 컴포넌트
767
+
768
+ const App = () => (
769
+ <LocaleRouter>
770
+ <AppContent />
771
+ </LocaleRouter>
772
+ );
773
+ ```
774
+
775
+ ### (선택 사항) 단계 8: 로케일 변경 시 URL 변경
776
+
777
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
778
+ import { useLocation, useNavigate } from "react-router-dom";
779
+ import {
780
+ Locales,
781
+ getHTMLTextDir,
782
+ getLocaleName,
783
+ getLocalizedUrl,
784
+ } from "intlayer";
785
+ import { useLocale } from "react-intlayer";
786
+ import { type FC } from "react";
787
+
788
+ const LocaleSwitcher: FC = () => {
789
+ const { pathname, search } = useLocation(); // 현재 URL 경로를 가져옵니다. 예: /fr/about?foo=bar
790
+ const navigate = useNavigate();
791
+
792
+ const { locale, availableLocales, setLocale } = useLocale({
793
+ onLocaleChange: (locale) => {
794
+ // 업데이트된 로케일로 URL을 구성합니다.
795
+ // 예: /es/about?foo=bar
796
+ const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
797
+
798
+ // URL 경로를 업데이트합니다.
799
+ navigate(pathWithLocale);
800
+ },
801
+ });
802
+
803
+ return (
804
+ <div>
805
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
806
+ <div id="localePopover" popover="auto">
807
+ {availableLocales.map((localeItem) => (
808
+ <a
809
+ href={getLocalizedUrl(location.pathname, localeItem)}
810
+ hrefLang={localeItem}
811
+ aria-current={locale === localeItem ? "page" : undefined}
812
+ onClick={(e) => {
813
+ e.preventDefault();
814
+ setLocale(localeItem);
815
+ }}
816
+ key={localeItem}
817
+ >
818
+ <span>
819
+ {/* 로케일 - 예: FR */}
820
+ {localeItem}
821
+ </span>
822
+ <span>
823
+ {/* 해당 로케일의 언어 - 예: Français */}
824
+ {getLocaleName(localeItem, locale)}
825
+ </span>
826
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
827
+ {/* 현재 로케일의 언어 - 예: Francés (현재 로케일이 Locales.SPANISH로 설정된 경우) */}
828
+ {getLocaleName(localeItem)}
829
+ </span>
830
+ <span dir="ltr" lang={Locales.ENGLISH}>
831
+ {/* 영어로 된 언어 - 예: French */}
832
+ {getLocaleName(localeItem, Locales.ENGLISH)}
833
+ </span>
834
+ </a>
835
+ ))}
836
+ </div>
837
+ </div>
838
+ );
839
+ };
840
+ ```
841
+
842
+ ```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
843
+ import { useLocation, useNavigate } from "react-router-dom";
844
+ import {
845
+ Locales,
846
+ getHTMLTextDir,
847
+ getLocaleName,
848
+ getLocalizedUrl,
849
+ } from "intlayer";
850
+ import { useLocale } from "react-intlayer";
851
+
852
+ const LocaleSwitcher = () => {
853
+ const { pathname, search } = useLocation(); // 현재 URL 경로를 가져옵니다. 예: /fr/about?foo=bar
854
+ const navigate = useNavigate();
855
+
856
+ const { locale, availableLocales, setLocale } = useLocale({
857
+ onLocaleChange: (locale) => {
858
+ // 업데이트된 로케일로 URL을 구성합니다.
859
+ // 예: /es/about?foo=bar
860
+ const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
861
+
862
+ // URL 경로를 업데이트합니다.
863
+ navigate(pathWithLocale);
864
+ },
865
+ });
866
+
867
+ return (
868
+ <div>
869
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
870
+ <div id="localePopover" popover="auto">
871
+ {availableLocales.map((localeItem) => (
872
+ <a
873
+ href={getLocalizedUrl(location.pathname, localeItem)}
874
+ hrefLang={localeItem}
875
+ aria-current={locale === localeItem ? "page" : undefined}
876
+ onClick={(e) => {
877
+ e.preventDefault();
878
+ setLocale(localeItem);
879
+ }}
880
+ key={localeItem}
881
+ >
882
+ <span>
883
+ {/* 로케일 - 예: FR */}
884
+ {localeItem}
885
+ </span>
886
+ <span>
887
+ {/* 해당 로케일의 언어 - 예: Français */}
888
+ {getLocaleName(localeItem, locale)}
889
+ </span>
890
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
891
+ {/* 현재 로케일의 언어 - 예: Francés (현재 로케일이 Locales.SPANISH로 설정된 경우) */}
892
+ {getLocaleName(localeItem)}
893
+ </span>
894
+ <span dir="ltr" lang={Locales.ENGLISH}>
895
+ {/* 영어로 된 언어 - 예: French */}
896
+ {getLocaleName(localeItem, Locales.ENGLISH)}
897
+ </span>
898
+ </a>
899
+ ))}
900
+ </div>
901
+ </div>
902
+ );
903
+ };
904
+ ```
905
+
906
+ ```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
907
+ const { useLocation, useNavigate } = require("react-router-dom");
908
+ const {
909
+ Locales,
910
+ getHTMLTextDir,
911
+ getLocaleName,
912
+ getLocalizedUrl,
913
+ } = require("intlayer");
914
+ const { useLocale } = require("react-intlayer");
915
+
916
+ const LocaleSwitcher = () => {
917
+ const { pathname, search } = useLocation(); // 현재 URL 경로를 가져옵니다. 예: /fr/about?foo=bar
918
+ const navigate = useNavigate();
919
+
920
+ const { locale, availableLocales, setLocale } = useLocale({
921
+ onLocaleChange: (locale) => {
922
+ // 업데이트된 로케일로 URL을 구성합니다.
923
+ // 예: /es/about?foo=bar
924
+ const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
925
+
926
+ // URL 경로를 업데이트합니다.
927
+ navigate(pathWithLocale);
928
+ },
929
+ });
930
+
931
+ return (
932
+ <div>
933
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
934
+ <div id="localePopover" popover="auto">
935
+ {availableLocales.map((localeItem) => (
936
+ <a
937
+ href={getLocalizedUrl(location.pathname, localeItem)}
938
+ hrefLang={localeItem}
939
+ aria-current={locale === localeItem ? "page" : undefined}
940
+ onClick={(e) => {
941
+ e.preventDefault();
942
+ setLocale(localeItem);
943
+ }}
944
+ key={localeItem}
945
+ >
946
+ <span>
947
+ {/* 로케일 - 예: FR */}
948
+ {localeItem}
949
+ </span>
950
+ <span>
951
+ {/* 해당 로케일의 언어 - 예: Français */}
952
+ {getLocaleName(localeItem, locale)}
953
+ </span>
954
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
955
+ {/* 현재 로케일의 언어 - 예: Francés (현재 로케일이 Locales.SPANISH로 설정된 경우) */}
956
+ {getLocaleName(localeItem)}
957
+ </span>
958
+ <span dir="ltr" lang={Locales.ENGLISH}>
959
+ {/* 영어로 된 언어 - 예: French */}
960
+ {getLocaleName(localeItem, Locales.ENGLISH)}
961
+ </span>
962
+ </a>
963
+ ))}
964
+ </div>
965
+ </div>
966
+ );
967
+ };
968
+ ```
969
+
970
+ > 문서 참조:
971
+
972
+ > - [`useLocale` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/react-intlayer/useLocale.md)
973
+
974
+ > - [`getLocaleName` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocaleName.md)
975
+
976
+ > - [`getLocalizedUrl` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocalizedUrl.md)
977
+
978
+ > - [`getHTMLTextDir` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getHTMLTextDir.md)
979
+
980
+ > - [`hrefLang` 속성](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
981
+
982
+ > - [`lang` 속성](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
983
+
984
+ > - [`dir` 속성](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
985
+
986
+ > - [`aria-current` 속성](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
987
+
988
+ ### (선택 사항) 단계 9: HTML 언어 및 방향 속성 전환
989
+
990
+ 애플리케이션이 여러 언어를 지원할 때, `<html>` 태그의 `lang` 및 `dir` 속성을 현재 로케일에 맞게 업데이트하는 것이 중요합니다. 이를 통해 다음을 보장할 수 있습니다:
991
+
992
+ - **접근성**: 스크린 리더 및 보조 기술은 올바른 `lang` 속성을 사용하여 콘텐츠를 정확히 발음하고 해석합니다.
993
+ - **텍스트 렌더링**: `dir`(방향) 속성은 텍스트가 올바른 순서로 렌더링되도록 보장합니다(예: 영어는 왼쪽에서 오른쪽, 아랍어나 히브리어는 오른쪽에서 왼쪽). 이는 가독성에 필수적입니다.
994
+
995
+ 로케일이 변경될 때 이러한 속성을 동적으로 업데이트하면 지원되는 모든 언어에서 사용자에게 일관되고 접근 가능한 경험을 보장할 수 있습니다.
996
+
997
+ #### Hook 구현
998
+
999
+ HTML 속성을 관리하기 위한 커스텀 훅을 생성합니다. 이 훅은 로케일 변경을 감지하고 속성을 적절히 업데이트합니다:
1000
+
1001
+ ```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
1002
+ import { useEffect } from "react";
1003
+ import { useLocale } from "react-intlayer";
1004
+ import { getHTMLTextDir } from "intlayer";
1005
+
1006
+ /**
1007
+ * 현재 로케일에 따라 HTML <html> 요소의 `lang` 및 `dir` 속성을 업데이트합니다.
1008
+ * - `lang`: 브라우저와 검색 엔진에 페이지의 언어를 알립니다.
1009
+ * - `dir`: 올바른 읽기 방향을 보장합니다 (예: 영어의 경우 'ltr', 아랍어의 경우 'rtl').
1010
+ *
1011
+ * 이 동적 업데이트는 올바른 텍스트 렌더링, 접근성 및 SEO를 위해 필수적입니다.
1012
+ */
1013
+ export const useI18nHTMLAttributes = () => {
1014
+ const { locale } = useLocale();
1015
+
1016
+ useEffect(() => {
1017
+ // 현재 로케일로 언어 속성을 업데이트합니다.
1018
+ document.documentElement.lang = locale;
1019
+
1020
+ // 현재 로케일에 따라 텍스트 방향을 설정합니다.
1021
+ document.documentElement.dir = getHTMLTextDir(locale);
1022
+ }, [locale]);
1023
+ };
1024
+ ```
1025
+
1026
+ ```jsx fileName="src/hooks/useI18nHTMLAttributes.msx" codeFormat="esm"
1027
+ import { useEffect } from "react";
1028
+ import { useLocale } from "react-intlayer";
1029
+ import { getHTMLTextDir } from "intlayer";
1030
+
1031
+ /**
1032
+ * 현재 로케일에 따라 HTML <html> 요소의 `lang` 및 `dir` 속성을 업데이트합니다.
1033
+ * - `lang`: 브라우저와 검색 엔진에 페이지의 언어를 알립니다.
1034
+ * - `dir`: 올바른 읽기 방향을 보장합니다 (예: 영어의 경우 'ltr', 아랍어의 경우 'rtl').
1035
+ *
1036
+ * 이 동적 업데이트는 올바른 텍스트 렌더링, 접근성 및 SEO를 위해 필수적입니다.
1037
+ */
1038
+ export const useI18nHTMLAttributes = () => {
1039
+ const { locale } = useLocale();
1040
+
1041
+ useEffect(() => {
1042
+ // 현재 로케일로 언어 속성을 업데이트합니다.
1043
+ document.documentElement.lang = locale;
1044
+
1045
+ // 현재 로케일에 따라 텍스트 방향을 설정합니다.
1046
+ document.documentElement.dir = getHTMLTextDir(locale);
1047
+ }, [locale]);
1048
+ };
1049
+ ```
1050
+
1051
+ ```jsx fileName="src/hooks/useI18nHTMLAttributes.csx" codeFormat="commonjs"
1052
+ const { useEffect } = require("react");
1053
+ const { useLocale } = require("react-intlayer");
1054
+ const { getHTMLTextDir } = require("intlayer");
1055
+
1056
+ /**
1057
+ * 현재 로케일에 따라 HTML <html> 요소의 `lang` 및 `dir` 속성을 업데이트합니다.
1058
+ * - `lang`: 브라우저와 검색 엔진에 페이지의 언어를 알립니다.
1059
+ * - `dir`: 올바른 읽기 방향을 보장합니다 (예: 영어의 경우 'ltr', 아랍어의 경우 'rtl').
1060
+ *
1061
+ * 이 동적 업데이트는 올바른 텍스트 렌더링, 접근성 및 SEO를 위해 필수적입니다.
1062
+ */
1063
+ const useI18nHTMLAttributes = () => {
1064
+ const { locale } = useLocale();
1065
+
1066
+ useEffect(() => {
1067
+ // 현재 로케일로 언어 속성을 업데이트합니다.
1068
+ document.documentElement.lang = locale;
1069
+
1070
+ // 현재 로케일에 따라 텍스트 방향을 설정합니다.
1071
+ document.documentElement.dir = getHTMLTextDir(locale);
1072
+ }, [locale]);
1073
+ };
1074
+
1075
+ module.exports = { useI18nHTMLAttributes };
1076
+ ```
1077
+
1078
+ #### 애플리케이션에서 Hook 사용하기
1079
+
1080
+ 로케일 변경 시 HTML 속성이 업데이트되도록 메인 컴포넌트에 훅을 통합합니다:
1081
+
1082
+ ```tsx fileName="src/App.tsx" codeFormat="typescript"
1083
+ import type { FC } from "react";
1084
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
1085
+ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1086
+ import "./App.css";
1087
+
1088
+ const AppContent: FC = () => {
1089
+ // 로케일에 따라 <html> 태그의 lang 및 dir 속성을 업데이트하는 훅을 적용합니다.
1090
+ useI18nHTMLAttributes();
1091
+
1092
+ // ... 나머지 컴포넌트
1093
+ };
1094
+
1095
+ const App: FC = () => (
1096
+ <IntlayerProvider>
1097
+ <AppContent />
1098
+ </IntlayerProvider>
1099
+ );
1100
+
1101
+ export default App;
1102
+ ```
1103
+
1104
+ ```jsx fileName="src/App.msx" codeFormat="esm"
1105
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
1106
+ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1107
+ import "./App.css";
1108
+
1109
+ const AppContent = () => {
1110
+ // 로케일에 따라 <html> 태그의 lang 및 dir 속성을 업데이트하는 훅을 적용합니다.
1111
+ useI18nHTMLAttributes();
1112
+
1113
+ // ... 나머지 컴포넌트
1114
+ };
1115
+
1116
+ const App = () => (
1117
+ <IntlayerProvider>
1118
+ <AppContent />
1119
+ </IntlayerProvider>
1120
+ );
1121
+
1122
+ export default App;
1123
+ ```
1124
+
1125
+ ```jsx fileName="src/App.csx" codeFormat="commonjs"
1126
+ const { FC } = require("react");
1127
+ const { IntlayerProvider, useIntlayer } = require("react-intlayer");
1128
+ const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
1129
+ require("./App.css");
1130
+
1131
+ const AppContent = () => {
1132
+ // 로케일에 따라 <html> 태그의 lang 및 dir 속성을 업데이트하는 훅을 적용합니다.
1133
+ useI18nHTMLAttributes();
1134
+
1135
+ // ... 나머지 컴포넌트
1136
+ };
1137
+
1138
+ const App = () => (
1139
+ <IntlayerProvider>
1140
+ <AppContent />
1141
+ </IntlayerProvider>
1142
+ );
1143
+
1144
+ module.exports = App;
1145
+ ```
1146
+
1147
+ 이러한 변경 사항을 적용하면 애플리케이션은 다음을 보장합니다:
1148
+
1149
+ - **언어**(`lang`) 속성이 현재 로케일을 정확히 반영하여 SEO 및 브라우저 동작에 중요합니다.
1150
+ - 로케일에 따라 **텍스트 방향**(`dir`)을 조정하여 다른 읽기 순서를 가진 언어의 가독성과 사용성을 향상시킵니다.
1151
+ - **접근성**을 개선하여 보조 기술이 이러한 속성에 의존해 최적의 기능을 수행할 수 있도록 합니다.
1152
+
1153
+ ### TypeScript 구성
1154
+
1155
+ Intlayer는 TypeScript의 모듈 확장을 사용하여 코드베이스를 더 강력하게 만듭니다.
1156
+
1157
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1158
+
1159
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1160
+
1161
+ TypeScript 구성에 자동 생성된 타입을 포함해야 합니다.
1162
+
1163
+ ```json5 fileName="tsconfig.json"
1164
+ {
1165
+ // ... 기존 TypeScript 구성
1166
+ "include": [
1167
+ // ... 기존 TypeScript 구성
1168
+ ".intlayer/**/*.ts", // 자동 생성된 타입 포함
1169
+ ],
1170
+ }
1171
+ ```
1172
+
1173
+ ### Git 구성
1174
+
1175
+ Intlayer에서 생성된 파일을 무시하는 것이 좋습니다. 이를 통해 해당 파일을 Git 저장소에 커밋하는 것을 방지할 수 있습니다.
1176
+
1177
+ 이를 위해 `.gitignore` 파일에 다음 지침을 추가할 수 있습니다:
1178
+
1179
+ ```plaintext fileName=".gitignore"
1180
+ # Intlayer에서 생성된 파일 무시
1181
+ .intlayer
1182
+ ```
1183
+
1184
+ ### 추가 학습
1185
+
1186
+ 더 나아가려면 [시각적 편집기](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)를 사용하여 콘텐츠를 외부화할 수 있습니다.