@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,1269 @@
1
+ # Introdução à internacionalização (i18n) com Intlayer e Next.js 14 com App Router
2
+
3
+ Veja [Application Template](https://github.com/aymericzip/intlayer-next-14-template) no GitHub.
4
+
5
+ ## O que é o Intlayer?
6
+
7
+ **Intlayer** é uma biblioteca inovadora e de código aberto para internacionalização (i18n) projetada para simplificar o suporte multilíngue em aplicações web modernas. O Intlayer integra-se perfeitamente com o mais recente framework **Next.js 14**, incluindo seu poderoso **App Router**. Ele é otimizado para funcionar com **Server Components** para renderização eficiente e é totalmente compatível com [**Turbopack**](https://nextjs.org/docs/architecture/turbopack) (a partir do Next.js >= 15).
8
+
9
+ Com o Intlayer, você pode:
10
+
11
+ - **Gerenciar traduções facilmente** usando dicionários declarativos no nível do componente.
12
+ - **Localizar dinamicamente metadados**, rotas e conteúdo.
13
+ - **Acessar traduções em componentes do lado do cliente e do servidor**.
14
+ - **Garantir suporte ao TypeScript** com tipos autogerados, melhorando a autocompletação e a detecção de erros.
15
+ - **Aproveitar recursos avançados**, como detecção e troca dinâmica de localidade.
16
+
17
+ > O Intlayer é compatível com Next.js 12, 13, 14 e 15. Se você estiver usando o Next.js Page Router, pode consultar este [guia](https://github.com/aymericzip/intlayer/blob/main/docs/pt/intlayer_with_nextjs_page_router.md). Para Next.js 15 com ou sem turbopack, consulte este [guia](https://github.com/aymericzip/intlayer/blob/main/docs/pt/intlayer_with_nextjs_15.md).
18
+
19
+ ---
20
+
21
+ ## Guia Passo a Passo para Configurar o Intlayer em uma Aplicação Next.js
22
+
23
+ ### Passo 1: Instale as Dependências
24
+
25
+ Instale os pacotes necessários usando npm:
26
+
27
+ ```bash packageManager="npm"
28
+ npm install intlayer next-intlayer
29
+ ```
30
+
31
+ ```bash packageManager="pnpm"
32
+ pnpm add intlayer next-intlayer
33
+ ```
34
+
35
+ ```bash packageManager="yarn"
36
+ yarn add intlayer next-intlayer
37
+ ```
38
+
39
+ - **intlayer**
40
+
41
+ O pacote principal que fornece ferramentas de internacionalização para gerenciamento de configuração, tradução, [declaração de conteúdo](https://github.com/aymericzip/intlayer/blob/main/docs/pt/dictionary/get_started.md), transpilações e [comandos CLI](https://github.com/aymericzip/intlayer/blob/main/docs/pt/intlayer_cli.md).
42
+
43
+ - **next-intlayer**
44
+
45
+ O pacote que integra o Intlayer com o Next.js. Ele fornece provedores de contexto e hooks para internacionalização no Next.js. Além disso, inclui o plugin Next.js para integrar o Intlayer com [Webpack](https://webpack.js.org/) ou [Turbopack](https://nextjs.org/docs/app/api-reference/turbopack), bem como middleware para detectar a localidade preferida do usuário, gerenciar cookies e lidar com redirecionamento de URLs.
46
+
47
+ ### Passo 2: Configure Seu Projeto
48
+
49
+ Crie um arquivo de configuração para configurar os idiomas da sua aplicação:
50
+
51
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
52
+ import { Locales, type IntlayerConfig } from "intlayer";
53
+
54
+ const config: IntlayerConfig = {
55
+ internationalization: {
56
+ locales: [
57
+ Locales.ENGLISH,
58
+ Locales.FRENCH,
59
+ Locales.SPANISH,
60
+ // Seus outros idiomas
61
+ ],
62
+ defaultLocale: Locales.ENGLISH,
63
+ },
64
+ };
65
+
66
+ export default config;
67
+ ```
68
+
69
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
70
+ import { Locales } from "intlayer";
71
+
72
+ /** @type {import('intlayer').IntlayerConfig} */
73
+ const config = {
74
+ internationalization: {
75
+ locales: [
76
+ Locales.ENGLISH,
77
+ Locales.FRENCH,
78
+ Locales.SPANISH,
79
+ // Seus outros idiomas
80
+ ],
81
+ defaultLocale: Locales.ENGLISH,
82
+ },
83
+ };
84
+
85
+ export default config;
86
+ ```
87
+
88
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
89
+ const { Locales } = require("intlayer");
90
+
91
+ /** @type {import('intlayer').IntlayerConfig} */
92
+ const config = {
93
+ internationalization: {
94
+ locales: [
95
+ Locales.ENGLISH,
96
+ Locales.FRENCH,
97
+ Locales.SPANISH,
98
+ // Seus outros idiomas
99
+ ],
100
+ defaultLocale: Locales.ENGLISH,
101
+ },
102
+ };
103
+
104
+ module.exports = config;
105
+ ```
106
+
107
+ > Por meio deste arquivo de configuração, você pode configurar URLs localizados, redirecionamento de middleware, nomes de cookies, a localização e extensão de suas declarações de conteúdo, desativar logs do Intlayer no console e muito mais. Para uma lista completa de parâmetros disponíveis, consulte a [documentação de configuração](https://github.com/aymericzip/intlayer/blob/main/docs/pt/configuration.md).
108
+
109
+ ### Passo 3: Integre o Intlayer na Configuração do Next.js
110
+
111
+ Configure seu Next.js para usar o Intlayer:
112
+
113
+ ```typescript fileName="next.config.mjs"
114
+ import { withIntlayer } from "next-intlayer/server";
115
+
116
+ /** @type {import('next').NextConfig} */
117
+ const nextConfig = {};
118
+
119
+ export default withIntlayer(nextConfig);
120
+ ```
121
+
122
+ > O plugin `withIntlayer()` do Next.js é usado para integrar o Intlayer com o Next.js. Ele garante a construção de arquivos de declaração de conteúdo e os monitora no modo de desenvolvimento. Define variáveis de ambiente do Intlayer nos ambientes [Webpack](https://webpack.js.org/) ou [Turbopack](https://nextjs.org/docs/app/api-reference/turbopack). Além disso, fornece aliases para otimizar o desempenho e garantir compatibilidade com componentes do servidor.
123
+
124
+ ### Passo 4: Configure o Middleware para Detecção de Localidade
125
+
126
+ Configure o middleware para detectar a localidade preferida do usuário:
127
+
128
+ ```typescript fileName="src/middleware.ts" codeFormat="typescript"
129
+ export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
130
+
131
+ export const config = {
132
+ matcher:
133
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
134
+ };
135
+ ```
136
+
137
+ ```javascript fileName="src/middleware.mjs" codeFormat="esm"
138
+ export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
139
+
140
+ export const config = {
141
+ matcher:
142
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
143
+ };
144
+ ```
145
+
146
+ ```javascript fileName="src/middleware.cjs" codeFormat="commonjs"
147
+ const { intlayerMiddleware } = require("next-intlayer/middleware");
148
+
149
+ const config = {
150
+ matcher:
151
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
152
+ };
153
+
154
+ module.exports = { middleware: intlayerMiddleware, config };
155
+ ```
156
+
157
+ > O `intlayerMiddleware` é usado para detectar a localidade preferida do usuário e redirecioná-lo para a URL apropriada, conforme especificado na [configuração](https://github.com/aymericzip/intlayer/blob/main/docs/pt/configuration.md). Além disso, permite salvar a localidade preferida do usuário em um cookie.
158
+
159
+ > Adapte o parâmetro `matcher` para corresponder às rotas da sua aplicação. Para mais detalhes, consulte a [documentação do Next.js sobre configuração do matcher](https://nextjs.org/docs/app/building-your-application/routing/middleware).
160
+
161
+ ### Passo 5: Defina Rotas Dinâmicas de Localidade
162
+
163
+ Remova tudo do `RootLayout` e substitua pelo seguinte código:
164
+
165
+ ```tsx fileName="src/app/layout.tsx" codeFormat="typescript"
166
+ import type { PropsWithChildren, FC } from "react";
167
+ import "./globals.css";
168
+
169
+ const RootLayout: FC<PropsWithChildren> = ({ children }) => children;
170
+
171
+ export default RootLayout;
172
+ ```
173
+
174
+ ```jsx fileName="src/app/layout.mjx" codeFormat="esm"
175
+ import "./globals.css";
176
+
177
+ const RootLayout = ({ children }) => children;
178
+
179
+ export default RootLayout;
180
+ ```
181
+
182
+ ```jsx fileName="src/app/layout.csx" codeFormat="commonjs"
183
+ require("./globals.css");
184
+
185
+ const RootLayout = ({ children }) => children;
186
+
187
+ module.exports = {
188
+ default: RootLayout,
189
+ generateStaticParams,
190
+ };
191
+ ```
192
+
193
+ > Manter o componente `RootLayout` vazio permite definir os atributos [`lang`](https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/lang) e [`dir`](https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/dir) na tag `<html>`.
194
+
195
+ Para implementar o roteamento dinâmico, forneça o caminho para a localidade adicionando um novo layout no seu diretório `[locale]`:
196
+
197
+ ```tsx fileName="src/app/[locale]/layout.tsx" codeFormat="typescript"
198
+ import type { Next14LayoutIntlayer } from "next-intlayer";
199
+ import { Inter } from "next/font/google";
200
+ import { getHTMLTextDir } from "intlayer";
201
+
202
+ const inter = Inter({ subsets: ["latin"] });
203
+
204
+ const LocaleLayout: Next14LayoutIntlayer = ({
205
+ children,
206
+ params: { locale },
207
+ }) => (
208
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
209
+ <body className={inter.className}>{children}</body>
210
+ </html>
211
+ );
212
+
213
+ export default LocaleLayout;
214
+ ```
215
+
216
+ ```jsx fileName="src/app/[locale]/layout.mjx" codeFormat="esm"
217
+ import { Inter } from "next/font/google";
218
+ import { getHTMLTextDir } from "intlayer";
219
+
220
+ const inter = Inter({ subsets: ["latin"] });
221
+
222
+ const LocaleLayout = ({ children, params: { locale } }) => (
223
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
224
+ <body className={inter.className}>{children}</body>
225
+ </html>
226
+ );
227
+
228
+ export default LocaleLayout;
229
+ ```
230
+
231
+ ```jsx fileName="src/app/[locale]/layout.csx" codeFormat="commonjs"
232
+ const { Inter } = require("next/font/google");
233
+ const { getHTMLTextDir } = require("intlayer");
234
+
235
+ const inter = Inter({ subsets: ["latin"] });
236
+
237
+ const LocaleLayout = ({ children, params: { locale } }) => (
238
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
239
+ <body className={inter.className}>{children}</body>
240
+ </html>
241
+ );
242
+
243
+ module.exports = LocaleLayout;
244
+ ```
245
+
246
+ > O segmento de caminho `[locale]` é usado para definir a localidade. Exemplo: `/en-US/about` se referirá a `en-US` e `/fr/about` a `fr`.
247
+
248
+ Depois, implemente a função `generateStaticParams` no Layout da sua aplicação.
249
+
250
+ ```tsx {1} fileName="src/app/[locale]/layout.tsx" codeFormat="typescript"
251
+ export { generateStaticParams } from "next-intlayer"; // Linha a ser inserida
252
+
253
+ const LocaleLayout: Next14LayoutIntlayer = ({
254
+ children,
255
+ params: { locale },
256
+ }) => {
257
+ /*... Resto do código*/
258
+ };
259
+
260
+ export default LocaleLayout;
261
+ ```
262
+
263
+ ```jsx {1} fileName="src/app/[locale]/layout.mjx" codeFormat="esm"
264
+ export { generateStaticParams } from "next-intlayer"; // Linha a ser inserida
265
+
266
+ const LocaleLayout = ({ children, params: { locale } }) => {
267
+ /*... Resto do código*/
268
+ };
269
+
270
+ export default LocaleLayout;
271
+ ```
272
+
273
+ ```jsx {1,7} fileName="src/app/[locale]/layout.csx" codeFormat="commonjs"
274
+ const { generateStaticParams } = require("next-intlayer"); // Linha a ser inserida
275
+
276
+ const LocaleLayout = ({ children, params: { locale } }) => {
277
+ /*... Resto do código*/
278
+ };
279
+
280
+ module.exports = LocaleLayout;
281
+ ```
282
+
283
+ > `generateStaticParams` garante que sua aplicação pré-construa as páginas necessárias para todas as localidades, reduzindo a computação em tempo de execução e melhorando a experiência do usuário. Para mais detalhes, consulte a [documentação do Next.js sobre generateStaticParams](https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic-rendering#generate-static-params).
284
+
285
+ ### Passo 6: Declare Seu Conteúdo
286
+
287
+ Crie e gerencie suas declarações de conteúdo para armazenar traduções:
288
+
289
+ ```typescript fileName="src/app/[locale]/page.content.ts" contentDeclarationFormat="typescript"
290
+ import { t, type Dictionary } from "intlayer";
291
+
292
+ const pageContent = {
293
+ key: "page",
294
+ content: {
295
+ getStarted: {
296
+ main: t({
297
+ en: "Get started by editing",
298
+ fr: "Commencez par éditer",
299
+ es: "Comience por editar",
300
+ pt: "Comece editando",
301
+ }),
302
+ pageLink: "src/app/page.tsx",
303
+ },
304
+ },
305
+ } satisfies Dictionary;
306
+
307
+ export default pageContent;
308
+ ```
309
+
310
+ ```javascript fileName="src/app/[locale]/page.content.mjs" contentDeclarationFormat="esm"
311
+ import { t } from "intlayer";
312
+
313
+ /** @type {import('intlayer').Dictionary} */
314
+ const pageContent = {
315
+ key: "page",
316
+ content: {
317
+ getStarted: {
318
+ main: t({
319
+ en: "Get started by editing",
320
+ fr: "Commencez par éditer",
321
+ es: "Comience por editar",
322
+ pt: "Comece editando",
323
+ }),
324
+ pageLink: "src/app/page.tsx",
325
+ },
326
+ },
327
+ };
328
+
329
+ export default pageContent;
330
+ ```
331
+
332
+ ```javascript fileName="src/app/[locale]/page.content.cjs" contentDeclarationFormat="commonjs"
333
+ const { t } = require("intlayer");
334
+
335
+ /** @type {import('intlayer').Dictionary} */
336
+ const pageContent = {
337
+ key: "page",
338
+ content: {
339
+ getStarted: {
340
+ main: t({
341
+ en: "Get started by editing",
342
+ fr: "Commencez par éditer",
343
+ es: "Comience por editar",
344
+ pt: "Comece editando",
345
+ }),
346
+ pageLink: "src/app/page.tsx",
347
+ },
348
+ },
349
+ };
350
+
351
+ module.exports = pageContent;
352
+ ```
353
+
354
+ ```json fileName="src/app/[locale]/page.content.json" contentDeclarationFormat="json"
355
+ {
356
+ "$schema": "https://intlayer.org/schema.json",
357
+ "key": "page",
358
+ "content": {
359
+ "getStarted": {
360
+ "nodeType": "translation",
361
+ "translation": {
362
+ "en": "Get started by editing",
363
+ "fr": "Commencez par éditer",
364
+ "es": "Comience por editar",
365
+ "pt": "Comece editando"
366
+ }
367
+ },
368
+ "pageLink": {
369
+ "nodeType": "translation",
370
+ "translation": {
371
+ "en": "src/app/page.tsx",
372
+ "fr": "src/app/page.tsx",
373
+ "es": "src/app/page.tsx",
374
+ "pt": "src/app/page.tsx"
375
+ }
376
+ }
377
+ }
378
+ }
379
+ ```
380
+
381
+ > Suas declarações de conteúdo podem ser definidas em qualquer lugar da sua aplicação, desde que estejam incluídas no diretório `contentDir` (por padrão, `./src`). E correspondam à extensão do arquivo de declaração de conteúdo (por padrão, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
382
+
383
+ > Para mais detalhes, consulte a [documentação de declaração de conteúdo](https://github.com/aymericzip/intlayer/blob/main/docs/pt/dictionary/get_started.md).
384
+
385
+ ### Passo 7: Utilize o Conteúdo no Seu Código
386
+
387
+ Acesse seus dicionários de conteúdo em toda a sua aplicação:
388
+
389
+ ```tsx fileName="src/app/[locale]/page.tsx" codeFormat="typescript"
390
+ import { ClientComponentExample } from "@components/ClientComponentExample";
391
+ import { ServerComponentExample } from "@components/ServerComponentExample";
392
+ import { type Next14PageIntlayer, IntlayerClientProvider } from "next-intlayer";
393
+ import { IntlayerServerProvider, useIntlayer } from "next-intlayer/server";
394
+
395
+ const Page: Next14PageIntlayer = ({ params: { locale } }) => {
396
+ const content = useIntlayer("page", locale);
397
+
398
+ return (
399
+ <>
400
+ <p>
401
+ {content.getStarted.main}
402
+ <code>{content.getStarted.pageLink}</code>
403
+ </p>
404
+
405
+ <IntlayerServerProvider locale={locale}>
406
+ <IntlayerClientProvider locale={locale}>
407
+ <ServerComponentExample />
408
+ <ClientComponentExample />
409
+ </IntlayerClientProvider>
410
+ </IntlayerServerProvider>
411
+ </>
412
+ );
413
+ };
414
+
415
+ export default Page;
416
+ ```
417
+
418
+ ```jsx fileName="src/app/[locale]/page.mjx" codeFormat="esm"
419
+ import { ClientComponentExample } from "@components/ClientComponentExample";
420
+ import { ServerComponentExample } from "@components/ServerComponentExample";
421
+ import { IntlayerClientProvider } from "next-intlayer";
422
+ import { IntlayerServerProvider, useIntlayer } from "next-intlayer/server";
423
+
424
+ const Page = ({ params: { locale } }) => {
425
+ const content = useIntlayer("page", locale);
426
+
427
+ return (
428
+ <>
429
+ <p>
430
+ {content.getStarted.main}
431
+ <code>{content.getStarted.pageLink}</code>
432
+ </p>
433
+
434
+ <IntlayerClientProvider locale={locale}>
435
+ <IntlayerServerProvider locale={locale}>
436
+ <ClientComponentExample />
437
+ <ServerComponentExample />
438
+ </IntlayerServerProvider>
439
+ </IntlayerClientProvider>
440
+ </>
441
+ );
442
+ };
443
+ ```
444
+
445
+ ```jsx fileName="src/app/[locale]/page.csx" codeFormat="commonjs"
446
+ const { IntlayerClientProvider } = require("next-intlayer");
447
+ const { IntlayerServerProvider, useIntlayer } = require("next-intlayer/server");
448
+
449
+ const Page = ({ params: { locale } }) => {
450
+ const content = useIntlayer("page", locale);
451
+
452
+ return (
453
+ <>
454
+ <p>
455
+ {content.getStarted.main}
456
+ <code>{content.getStarted.pageLink}</code>
457
+ </p>
458
+
459
+ <IntlayerClientProvider locale={locale}>
460
+ <IntlayerServerProvider locale={locale}>
461
+ <ClientComponentExample />
462
+ <ServerComponentExample />
463
+ </IntlayerServerProvider>
464
+ </IntlayerClientProvider>
465
+ </>
466
+ );
467
+ };
468
+ ```
469
+
470
+ - **`IntlayerClientProvider`** é usado para fornecer a localidade para componentes do lado do cliente. Ele pode ser colocado em qualquer componente pai, incluindo o layout. No entanto, colocá-lo em um layout é recomendado porque o Next.js compartilha o código do layout entre as páginas, tornando-o mais eficiente. Usando `IntlayerClientProvider` no layout, você evita reinicializá-lo para cada página, melhorando o desempenho e mantendo um contexto de localização consistente em toda a sua aplicação.
471
+ - **`IntlayerServerProvider`** é usado para fornecer a localidade para os filhos do servidor. Ele não pode ser configurado no layout.
472
+
473
+ > Layout e página não podem compartilhar um contexto de servidor comum porque o sistema de contexto do servidor é baseado em um armazenamento de dados por solicitação (via mecanismo de [cache do React](https://react.dev/reference/react/cache)), fazendo com que cada “contexto” seja recriado para diferentes segmentos da aplicação. Colocar o provedor em um layout compartilhado quebraria esse isolamento, impedindo a propagação correta dos valores do contexto do servidor para seus componentes do servidor.
474
+
475
+ ```tsx {4,7} fileName="src/components/ClientComponentExample.tsx" codeFormat="typescript"
476
+ "use client";
477
+
478
+ import type { FC } from "react";
479
+ import { useIntlayer } from "next-intlayer";
480
+
481
+ const ClientComponentExample: FC = () => {
482
+ const content = useIntlayer("client-component-example"); // Crie a declaração de conteúdo relacionada
483
+
484
+ return (
485
+ <div>
486
+ <h2>{content.title}</h2>
487
+ <p>{content.content}</p>
488
+ </div>
489
+ );
490
+ };
491
+ ```
492
+
493
+ ```jsx {3,6} fileName="src/components/ClientComponentExample.mjx" codeFormat="esm"
494
+ "use client";
495
+
496
+ import { useIntlayer } from "next-intlayer";
497
+
498
+ const ClientComponentExample = () => {
499
+ const content = useIntlayer("client-component-example"); // Crie a declaração de conteúdo relacionada
500
+
501
+ return (
502
+ <div>
503
+ <h2>{content.title}</h2>
504
+ <p>{content.content}</p>
505
+ </div>
506
+ );
507
+ };
508
+ ```
509
+
510
+ ```jsx {3,6} fileName="src/components/ClientComponentExample.csx" codeFormat="commonjs"
511
+ "use client";
512
+
513
+ const { useIntlayer } = require("next-intlayer");
514
+
515
+ const ClientComponentExample = () => {
516
+ const content = useIntlayer("client-component-example"); // Crie a declaração de conteúdo relacionada
517
+
518
+ return (
519
+ <div>
520
+ <h2>{content.title}</h2>
521
+ <p>{content.content}</p>
522
+ </div>
523
+ );
524
+ };
525
+ ```
526
+
527
+ ```tsx {2} fileName="src/components/ServerComponentExample.tsx" codeFormat="typescript"
528
+ import type { FC } from "react";
529
+ import { useIntlayer } from "next-intlayer/server";
530
+
531
+ const ServerComponentExample: FC = () => {
532
+ const content = useIntlayer("server-component-example"); // Crie a declaração de conteúdo relacionada
533
+
534
+ return (
535
+ <div>
536
+ <h2>{content.title}</h2>
537
+ <p>{content.content}</p>
538
+ </div>
539
+ );
540
+ };
541
+ ```
542
+
543
+ ```jsx {1} fileName="src/components/ServerComponentExample.mjx" codeFormat="esm"
544
+ import { useIntlayer } from "next-intlayer/server";
545
+
546
+ const ServerComponentExample = () => {
547
+ const content = useIntlayer("server-component-example"); // Crie a declaração de conteúdo relacionada
548
+
549
+ return (
550
+ <div>
551
+ <h2>{content.title}</h2>
552
+ <p>{content.content}</p>
553
+ </div>
554
+ );
555
+ };
556
+ ```
557
+
558
+ ```jsx {1} fileName="src/components/ServerComponentExample.csx" codeFormat="commonjs"
559
+ const { useIntlayer } = require("next-intlayer/server");
560
+
561
+ const ServerComponentExample = () => {
562
+ const content = useIntlayer("server-component-example"); // Crie a declaração de conteúdo relacionada
563
+
564
+ return (
565
+ <div>
566
+ <h2>{content.title}</h2>
567
+ <p>{content.content}</p>
568
+ </div>
569
+ );
570
+ };
571
+ ```
572
+
573
+ > Se você quiser usar seu conteúdo em um atributo `string`, como `alt`, `title`, `href`, `aria-label`, etc., você deve chamar o valor da função, como:
574
+
575
+ > ```jsx
576
+ >
577
+ > ```
578
+
579
+ > <img src={content.image.src.value} alt={content.image.value} />
580
+
581
+ > ```
582
+ >
583
+ > ```
584
+
585
+ > Para saber mais sobre o hook `useIntlayer`, consulte a [documentação](https://github.com/aymericzip/intlayer/blob/main/docs/pt/packages/next-intlayer/useIntlayer.md).
586
+
587
+ ### (Opcional) Passo 8: Internacionalização dos seus metadados
588
+
589
+ No caso de você querer internacionalizar seus metadados, como o título da sua página, você pode usar a função `generateMetadata` fornecida pelo Next.js. Dentro da função, use a função `getTranslation` para traduzir seus metadados.
590
+
591
+ ````typescript fileName="src/app/[locale]/layout.tsx or src/app/[locale]/page.tsx" codeFormat="typescript"
592
+ import {
593
+ type IConfigLocales,
594
+ getTranslation,
595
+ getMultilingualUrls,
596
+ } from "intlayer";
597
+ import type { Metadata } from "next";
598
+ import type { LocalParams } from "next-intlayer";
599
+
600
+ export const generateMetadata = ({
601
+ params: { locale },
602
+ }: LocalParams): Metadata => {
603
+ const t = <T>(content: IConfigLocales<T>) => getTranslation(content, locale);
604
+
605
+ /**
606
+ * Gera um objeto contendo todas as URLs para cada localidade.
607
+ *
608
+ * Exemplo:
609
+ * ```ts
610
+ * getMultilingualUrls('/about');
611
+ *
612
+ * // Retorna
613
+ * // {
614
+ * // en: '/about',
615
+ * // fr: '/fr/about',
616
+ * // es: '/es/about',
617
+ * // }
618
+ * ```
619
+ */
620
+ const multilingualUrls = getMultilingualUrls("/");
621
+
622
+ return {
623
+ title: t<string>({
624
+ en: "My title",
625
+ fr: "Mon titre",
626
+ es: "Mi título",
627
+ pt: "Meu título",
628
+ }),
629
+ description: t({
630
+ en: "My description",
631
+ fr: "Ma description",
632
+ es: "Mi descripción",
633
+ pt: "Minha descrição",
634
+ }),
635
+ alternates: {
636
+ canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
637
+ languages: { ...multilingualUrls, "x-default": "/" },
638
+ },
639
+ openGraph: {
640
+ url: multilingualUrls[locale],
641
+ },
642
+ };
643
+ };
644
+
645
+ // ... Resto do código
646
+ ````
647
+
648
+ ````javascript fileName="src/app/[locale]/layout.msx or src/app/[locale]/page.msx" codeFormat="javascript"
649
+ import { getTranslation, getMultilingualUrls } from "intlayer";
650
+
651
+ export const generateMetadata = ({ params: { locale } }) => {
652
+ const t = (content) => getTranslation(content, locale);
653
+
654
+ /**
655
+ * Gera um objeto contendo todas as URLs para cada localidade.
656
+ *
657
+ * Exemplo:
658
+ * ```ts
659
+ * getMultilingualUrls('/about');
660
+ *
661
+ * // Retorna
662
+ * // {
663
+ * // en: '/about',
664
+ * // fr: '/fr/about',
665
+ * // es: '/es/about',
666
+ * // }
667
+ * ```
668
+ */
669
+ const multilingualUrls = getMultilingualUrls("/");
670
+
671
+ return {
672
+ title: t({
673
+ en: "My title",
674
+ fr: "Mon titre",
675
+ es: "Mi título",
676
+ pt: "Meu título",
677
+ }),
678
+ description: t({
679
+ en: "My description",
680
+ fr: "Ma description",
681
+ es: "Mi descripción",
682
+ pt: "Minha descrição",
683
+ }),
684
+ alternates: {
685
+ canonical: multilingualUrls[locale],
686
+ languages: { ...multilingualUrls, "x-default": "/" },
687
+ },
688
+ openGraph: {
689
+ url: multilingualUrls[locale],
690
+ },
691
+ };
692
+ };
693
+
694
+ // ... Resto do código
695
+ ````
696
+
697
+ ````javascript fileName="src/app/[locale]/layout.cjs or src/app/[locale]/page.cjs" codeFormat="javascript"
698
+ const { getTranslation, getMultilingualUrls } = require("intlayer");
699
+
700
+ module.exports.generateMetadata = ({ params: { locale } }) => {
701
+ const t = (content) => getTranslation(content, locale);
702
+
703
+ /**
704
+ * Gera um objeto contendo todas as URLs para cada localidade.
705
+ *
706
+ * Exemplo:
707
+ * ```ts
708
+ * getMultilingualUrls('/about');
709
+ *
710
+ * // Retorna
711
+ * // {
712
+ * // en: '/about',
713
+ * // fr: '/fr/about',
714
+ * // es: '/es/about',
715
+ * // }
716
+ * ```
717
+ */
718
+ const multilingualUrls = getMultilingualUrls("/");
719
+
720
+ return {
721
+ title: t({
722
+ en: "My title",
723
+ fr: "Mon titre",
724
+ es: "Mi título",
725
+ pt: "Meu título",
726
+ }),
727
+ description: t({
728
+ en: "My description",
729
+ fr: "Ma description",
730
+ es: "Mi descripción",
731
+ pt: "Minha descrição",
732
+ }),
733
+ alternates: {
734
+ canonical: multilingualUrls[locale],
735
+ languages: { ...multilingualUrls, "x-default": "/" },
736
+ },
737
+ openGraph: {
738
+ url: multilingualUrls[locale],
739
+ },
740
+ };
741
+ };
742
+
743
+ // ... Resto do código
744
+ ````
745
+
746
+ > Saiba mais sobre a otimização de metadados [na documentação oficial do Next.js](https://nextjs.org/docs/app/building-your-application/optimizing/metadata).
747
+
748
+ ### (Opcional) Passo 9: Internacionalização do seu sitemap.xml e robots.txt
749
+
750
+ Para internacionalizar seu `sitemap.xml` e `robots.txt`, você pode usar a função `getMultilingualUrls` fornecida pelo Intlayer. Esta função permite gerar URLs multilíngues para seu sitemap.
751
+
752
+ ```tsx fileName="src/app/sitemap.ts" codeFormat="typescript"
753
+ import { getMultilingualUrls } from "intlayer";
754
+ import type { MetadataRoute } from "next";
755
+
756
+ const sitemap = (): MetadataRoute.Sitemap => [
757
+ {
758
+ url: "https://example.com",
759
+ alternates: {
760
+ languages: getMultilingualUrls("https://example.com"),
761
+ },
762
+ },
763
+ {
764
+ url: "https://example.com/login",
765
+ alternates: {
766
+ languages: getMultilingualUrls("https://example.com/login"),
767
+ },
768
+ },
769
+ {
770
+ url: "https://example.com/register",
771
+ alternates: {
772
+ languages: getMultilingualUrls("https://example.com/register"),
773
+ },
774
+ },
775
+ ];
776
+
777
+ export default sitemap;
778
+ ```
779
+
780
+ ```jsx fileName="src/app/sitemap.mjx" codeFormat="esm"
781
+ import { getMultilingualUrls } from "intlayer";
782
+
783
+ const sitemap = () => [
784
+ {
785
+ url: "https://example.com",
786
+ alternates: {
787
+ languages: getMultilingualUrls("https://example.com"),
788
+ },
789
+ },
790
+ {
791
+ url: "https://example.com/login",
792
+ alternates: {
793
+ languages: getMultilingualUrls("https://example.com/login"),
794
+ },
795
+ },
796
+ {
797
+ url: "https://example.com/register",
798
+ alternates: {
799
+ languages: getMultilingualUrls("https://example.com/register"),
800
+ },
801
+ },
802
+ ];
803
+
804
+ export default sitemap;
805
+ ```
806
+
807
+ ```jsx fileName="src/app/sitemap.csx" codeFormat="commonjs"
808
+ const { getMultilingualUrls } = require("intlayer");
809
+
810
+ const sitemap = () => [
811
+ {
812
+ url: "https://example.com",
813
+ alternates: {
814
+ languages: getMultilingualUrls("https://example.com"),
815
+ },
816
+ },
817
+ {
818
+ url: "https://example.com/login",
819
+ alternates: {
820
+ languages: getMultilingualUrls("https://example.com/login"),
821
+ },
822
+ },
823
+ {
824
+ url: "https://example.com/register",
825
+ alternates: {
826
+ languages: getMultilingualUrls("https://example.com/register"),
827
+ },
828
+ },
829
+ ];
830
+
831
+ module.exports = sitemap;
832
+ ```
833
+
834
+ ```tsx fileName="src/app/robots.ts" codeFormat="typescript"
835
+ import type { MetadataRoute } from "next";
836
+ import { getMultilingualUrls } from "intlayer";
837
+
838
+ const getAllMultilingualUrls = (urls: string[]) =>
839
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)) as string[]);
840
+
841
+ const robots = (): MetadataRoute.Robots => ({
842
+ rules: {
843
+ userAgent: "*",
844
+ allow: ["/"],
845
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
846
+ },
847
+ host: "https://example.com",
848
+ sitemap: `https://example.com/sitemap.xml`,
849
+ });
850
+
851
+ export default robots;
852
+ ```
853
+
854
+ ```jsx fileName="src/app/robots.mjx" codeFormat="esm"
855
+ import { getMultilingualUrls } from "intlayer";
856
+
857
+ const getAllMultilingualUrls = (urls) =>
858
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
859
+
860
+ const robots = () => ({
861
+ rules: {
862
+ userAgent: "*",
863
+ allow: ["/"],
864
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
865
+ },
866
+ host: "https://example.com",
867
+ sitemap: `https://example.com/sitemap.xml`,
868
+ });
869
+
870
+ export default robots;
871
+ ```
872
+
873
+ ```jsx fileName="src/app/robots.csx" codeFormat="commonjs"
874
+ const { getMultilingualUrls } = require("intlayer");
875
+
876
+ const getAllMultilingualUrls = (urls) =>
877
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
878
+
879
+ const robots = () => ({
880
+ rules: {
881
+ userAgent: "*",
882
+ allow: ["/"],
883
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
884
+ },
885
+ host: "https://example.com",
886
+ sitemap: `https://example.com/sitemap.xml`,
887
+ });
888
+
889
+ module.exports = robots;
890
+ ```
891
+
892
+ > Saiba mais sobre a otimização do sitemap [na documentação oficial do Next.js](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/sitemap). Saiba mais sobre a otimização do robots.txt [na documentação oficial do Next.js](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/robots).
893
+
894
+ ### (Opcional) Passo 10: Alterar o idioma do seu conteúdo
895
+
896
+ Para alterar o idioma do seu conteúdo no Next.js, a maneira recomendada é usar o componente `Link` para redirecionar os usuários para a página localizada apropriada. O componente `Link` permite o pré-carregamento da página, o que ajuda a evitar um recarregamento completo da página.
897
+
898
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
899
+ "use client";
900
+
901
+ import {
902
+ Locales,
903
+ getHTMLTextDir,
904
+ getLocaleName,
905
+ getLocalizedUrl,
906
+ } from "intlayer";
907
+ import { useLocale } from "next-intlayer";
908
+ import { type FC } from "react";
909
+ import Link from "next/link";
910
+
911
+ const LocaleSwitcher: FC = () => {
912
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
913
+ const { setLocaleCookie } = useLocaleCookie();
914
+
915
+ return (
916
+ <div>
917
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
918
+ <div id="localePopover" popover="auto">
919
+ {availableLocales.map((localeItem) => (
920
+ <Link
921
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
922
+ hrefLang={localeItem}
923
+ key={localeItem}
924
+ aria-current={locale === localeItem ? "page" : undefined}
925
+ onClick={() => setLocaleCookie(localeItem)}
926
+ >
927
+ <span>
928
+ {/* Localidade - ex.: FR */}
929
+ {localeItem}
930
+ </span>
931
+ <span>
932
+ {/* Idioma na sua própria Localidade - ex.: Français */}
933
+ {getLocaleName(localeItem, locale)}
934
+ </span>
935
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
936
+ {/* Idioma na Localidade atual - ex.: Francés com localidade atual definida como Locales.SPANISH */}
937
+ {getLocaleName(localeItem)}
938
+ </span>
939
+ <span dir="ltr" lang={Locales.ENGLISH}>
940
+ {/* Idioma em Inglês - ex.: French */}
941
+ {getLocaleName(localeItem, Locales.ENGLISH)}
942
+ </span>
943
+ </Link>
944
+ ))}
945
+ </div>
946
+ </div>
947
+ );
948
+ };
949
+ ```
950
+
951
+ ```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
952
+ "use client";
953
+
954
+ import {
955
+ Locales,
956
+ getHTMLTextDir,
957
+ getLocaleName,
958
+ getLocalizedUrl,
959
+ } from "intlayer";
960
+ import { useLocale } from "next-intlayer";
961
+ import Link from "next/link";
962
+
963
+ const LocaleSwitcher = () => {
964
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
965
+ const { setLocaleCookie } = useLocaleCookie();
966
+
967
+ return (
968
+ <div>
969
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
970
+ <div id="localePopover" popover="auto">
971
+ {availableLocales.map((localeItem) => (
972
+ <Link
973
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
974
+ hrefLang={localeItem}
975
+ key={localeItem}
976
+ aria-current={locale === localeItem ? "page" : undefined}
977
+ onClick={() => setLocaleCookie(localeItem)}
978
+ >
979
+ <span>
980
+ {/* Localidade - ex.: FR */}
981
+ {localeItem}
982
+ </span>
983
+ <span>
984
+ {/* Idioma na sua própria Localidade - ex.: Français */}
985
+ {getLocaleName(localeItem, locale)}
986
+ </span>
987
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
988
+ {/* Idioma na Localidade atual - ex.: Francés com localidade atual definida como Locales.SPANISH */}
989
+ {getLocaleName(localeItem)}
990
+ </span>
991
+ <span dir="ltr" lang={Locales.ENGLISH}>
992
+ {/* Idioma em Inglês - ex.: French */}
993
+ {getLocaleName(localeItem, Locales.ENGLISH)}
994
+ </span>
995
+ </Link>
996
+ ))}
997
+ </div>
998
+ </div>
999
+ );
1000
+ };
1001
+ ```
1002
+
1003
+ ```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
1004
+ "use client";
1005
+
1006
+ const {
1007
+ Locales,
1008
+ getHTMLTextDir,
1009
+ getLocaleName,
1010
+ getLocalizedUrl,
1011
+ } = require("intlayer");
1012
+ const { useLocale } = require("next-intlayer");
1013
+ const Link = require("next/link");
1014
+
1015
+ const LocaleSwitcher = () => {
1016
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
1017
+ const { setLocaleCookie } = useLocaleCookie();
1018
+
1019
+ return (
1020
+ <div>
1021
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
1022
+ <div id="localePopover" popover="auto">
1023
+ {availableLocales.map((localeItem) => (
1024
+ <Link
1025
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
1026
+ hrefLang={localeItem}
1027
+ key={localeItem}
1028
+ aria-current={locale === localeItem ? "page" : undefined}
1029
+ onClick={() => setLocaleCookie(localeItem)}
1030
+ >
1031
+ <span>
1032
+ {/* Localidade - ex.: FR */}
1033
+ {localeItem}
1034
+ </span>
1035
+ <span>
1036
+ {/* Idioma na sua própria Localidade - ex.: Français */}
1037
+ {getLocaleName(localeItem, locale)}
1038
+ </span>
1039
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1040
+ {/* Idioma na Localidade atual - ex.: Francés com localidade atual definida como Locales.SPANISH */}
1041
+ {getLocaleName(localeItem)}
1042
+ </span>
1043
+ <span dir="ltr" lang={Locales.ENGLISH}>
1044
+ {/* Idioma em Inglês - ex.: French */}
1045
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1046
+ </span>
1047
+ </Link>
1048
+ ))}
1049
+ </div>
1050
+ </div>
1051
+ );
1052
+ };
1053
+ ```
1054
+
1055
+ > Referências da documentação:
1056
+
1057
+ > - [Hook `useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/pt/packages/next-intlayer/useLocale.md)
1058
+
1059
+ > - [Hook `getLocaleName`](https://github.com/aymericzip/intlayer/blob/main/docs/pt/packages/intlayer/getLocaleName.md)
1060
+
1061
+ > - [Hook `getLocalizedUrl`](https://github.com/aymericzip/intlayer/blob/main/docs/pt/packages/intlayer/getLocalizedUrl.md)
1062
+
1063
+ > - [Hook `getHTMLTextDir`](https://github.com/aymericzip/intlayer/blob/main/docs/pt/packages/intlayer/getHTMLTextDir.md)
1064
+
1065
+ > - [Atributo `hrefLang`](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
1066
+
1067
+ > - [Atributo `lang`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
1068
+
1069
+ > - [Atributo `dir`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
1070
+
1071
+ > - [Atributo `aria-current`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1072
+
1073
+ ### (Opcional) Passo 11: Criando um Componente de Link Localizado
1074
+
1075
+ Para garantir que a navegação da sua aplicação respeite a localidade atual, você pode criar um componente `Link` personalizado. Este componente automaticamente prefixa URLs internas com o idioma atual, de forma que, por exemplo, quando um usuário que fala francês clica em um link para a página "Sobre", ele é redirecionado para `/fr/about` em vez de `/about`.
1076
+
1077
+ Este comportamento é útil por várias razões:
1078
+
1079
+ - **SEO e Experiência do Usuário**: URLs localizadas ajudam os mecanismos de busca a indexar corretamente as páginas específicas de idioma e fornecem aos usuários conteúdo em seu idioma preferido.
1080
+ - **Consistência**: Usando um link localizado em toda a sua aplicação, você garante que a navegação permaneça dentro da localidade atual, evitando mudanças inesperadas de idioma.
1081
+ - **Manutenibilidade**: Centralizar a lógica de localização em um único componente simplifica o gerenciamento de URLs, tornando sua base de código mais fácil de manter e expandir à medida que sua aplicação cresce.
1082
+
1083
+ Abaixo está a implementação de um componente `Link` localizado em TypeScript:
1084
+
1085
+ ```tsx fileName="src/components/Link.tsx" codeFormat="typescript"
1086
+ "use client";
1087
+
1088
+ import { getLocalizedUrl } from "intlayer";
1089
+ import NextLink, { type LinkProps as NextLinkProps } from "next/link";
1090
+ import { useLocale } from "next-intlayer";
1091
+ import { forwardRef, PropsWithChildren, type ForwardedRef } from "react";
1092
+
1093
+ /**
1094
+ * Função utilitária para verificar se uma URL é externa.
1095
+ * Se a URL começar com http:// ou https://, ela é considerada externa.
1096
+ */
1097
+ export const checkIsExternalLink = (href?: string): boolean =>
1098
+ /^https?:\/\//.test(href ?? "");
1099
+
1100
+ /**
1101
+ * Um componente Link personalizado que adapta o atributo href com base na localidade atual.
1102
+ * Para links internos, ele usa `getLocalizedUrl` para prefixar a URL com a localidade (ex.: /fr/about).
1103
+ * Isso garante que a navegação permaneça dentro do mesmo contexto de localidade.
1104
+ */
1105
+ export const Link = forwardRef<
1106
+ HTMLAnchorElement,
1107
+ PropsWithChildren<NextLinkProps>
1108
+ >(({ href, children, ...props }, ref: ForwardedRef<HTMLAnchorElement>) => {
1109
+ const { locale } = useLocale();
1110
+ const isExternalLink = checkIsExternalLink(href.toString());
1111
+
1112
+ // Se o link for interno e um href válido for fornecido, obtenha a URL localizada.
1113
+ const hrefI18n: NextLinkProps["href"] =
1114
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1115
+
1116
+ return (
1117
+ <NextLink href={hrefI18n} ref={ref} {...props}>
1118
+ {children}
1119
+ </NextLink>
1120
+ );
1121
+ });
1122
+
1123
+ Link.displayName = "Link";
1124
+ ```
1125
+
1126
+ ```jsx fileName="src/components/Link.mjx" codeFormat="esm"
1127
+ 'use client';
1128
+
1129
+ import { getLocalizedUrl } from 'intlayer';
1130
+ import NextLink, { type LinkProps as NextLinkProps } from 'next/link';
1131
+ import { useLocale } from 'next-intlayer';
1132
+ import { forwardRef, PropsWithChildren, type ForwardedRef } from 'react';
1133
+
1134
+ /**
1135
+ * Função utilitária para verificar se uma URL é externa.
1136
+ * Se a URL começar com http:// ou https://, ela é considerada externa.
1137
+ */
1138
+ export const checkIsExternalLink = (href) =>
1139
+ /^https?:\/\//.test(href ?? '');
1140
+
1141
+ /**
1142
+ * Um componente Link personalizado que adapta o atributo href com base na localidade atual.
1143
+ * Para links internos, ele usa `getLocalizedUrl` para prefixar a URL com a localidade (ex.: /fr/about).
1144
+ * Isso garante que a navegação permaneça dentro do mesmo contexto de localidade.
1145
+ */
1146
+ export const Link = forwardRef(({ href, children, ...props }, ref) => {
1147
+ const { locale } = useLocale();
1148
+ const isExternalLink = checkIsExternalLink(href.toString());
1149
+
1150
+ // Se o link for interno e um href válido for fornecido, obtenha a URL localizada.
1151
+ const hrefI18n =
1152
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1153
+
1154
+ return (
1155
+ <NextLink href={hrefI18n} ref={ref} {...props}>
1156
+ {children}
1157
+ </NextLink>
1158
+ );
1159
+ });
1160
+
1161
+ Link.displayName = 'Link';
1162
+ ```
1163
+
1164
+ ```jsx fileName="src/components/Link.csx" codeFormat="commonjs"
1165
+ 'use client';
1166
+
1167
+ const { getLocalizedUrl } = require("intlayer");
1168
+ const NextLink = require("next/link");
1169
+ const { useLocale } = require("next-intlayer");
1170
+ const { forwardRef } = require("react");
1171
+
1172
+ /**
1173
+ * Função utilitária para verificar se uma URL é externa.
1174
+ * Se a URL começar com http:// ou https://, ela é considerada externa.
1175
+ */
1176
+ const checkIsExternalLink = (href) =>
1177
+ /^https?:\/\//.test(href ?? '');
1178
+
1179
+
1180
+ const Link = forwardRef(({ href, children, ...props }, ref) => {
1181
+ const { locale } = useLocale();
1182
+ const isExternalLink = checkIsExternalLink(href.toString());
1183
+
1184
+ // Se o link for interno e um href válido for fornecido, obtenha a URL localizada.
1185
+ const hrefI18n: NextLinkProps['href'] =
1186
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1187
+
1188
+ return (
1189
+ <NextLink href={hrefI18n} ref={ref} {...props}>
1190
+ {children}
1191
+ </NextLink>
1192
+ );
1193
+ });
1194
+
1195
+ Link.displayName = 'Link';
1196
+ ```
1197
+
1198
+ #### Como Funciona
1199
+
1200
+ - **Detectando Links Externos**:
1201
+ A função auxiliar `checkIsExternalLink` determina se uma URL é externa. Links externos são deixados inalterados porque não precisam de localização.
1202
+
1203
+ - **Recuperando a Localidade Atual**:
1204
+ O hook `useLocale` fornece a localidade atual (ex.: `fr` para francês).
1205
+
1206
+ - **Localizando a URL**:
1207
+ Para links internos (ou seja, não externos), `getLocalizedUrl` é usado para prefixar automaticamente a URL com a localidade atual. Isso significa que, se seu usuário estiver em francês, passar `/about` como `href` transformará em `/fr/about`.
1208
+
1209
+ - **Retornando o Link**:
1210
+ O componente retorna um elemento `<a>` com a URL localizada, garantindo que a navegação seja consistente com a localidade.
1211
+
1212
+ Ao integrar este componente `Link` em toda a sua aplicação, você mantém uma experiência de usuário coerente e consciente do idioma, além de se beneficiar de SEO e usabilidade aprimorados.
1213
+
1214
+ ### (Opcional) Passo 12: Otimize o tamanho do seu bundle
1215
+
1216
+ Ao usar o `next-intlayer`, os dicionários são incluídos no bundle de cada página por padrão. Para otimizar o tamanho do bundle, o Intlayer fornece um plugin SWC opcional que substitui inteligentemente as chamadas `useIntlayer` usando macros. Isso garante que os dicionários sejam incluídos apenas nos bundles das páginas que realmente os utilizam.
1217
+
1218
+ Para habilitar essa otimização, instale o pacote `@intlayer/swc`. Uma vez instalado, o `next-intlayer` detectará automaticamente e usará o plugin:
1219
+
1220
+ ```bash packageManager="npm"
1221
+ npm install @intlayer/swc --save-dev
1222
+ ```
1223
+
1224
+ ```bash packageManager="pnpm"
1225
+ pnpm add @intlayer/swc --save-dev
1226
+ ```
1227
+
1228
+ ```bash packageManager="yarn"
1229
+ yarn add @intlayer/swc --save-dev
1230
+ ```
1231
+
1232
+ > Nota: Esta otimização só está disponível em Next.js 13 e superior.
1233
+
1234
+ > Nota: Este pacote não é instalado por padrão porque o plugin SWC ainda está em fase experimental no Next.js. Isso pode mudar no futuro.
1235
+
1236
+ ### Configure o TypeScript
1237
+
1238
+ O Intlayer usa a ampliação de módulos para obter benefícios do TypeScript e tornar sua base de código mais robusta.
1239
+
1240
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1241
+
1242
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1243
+
1244
+ Certifique-se de que sua configuração do TypeScript inclua os tipos autogerados.
1245
+
1246
+ ```json5 fileName="tsconfig.json"
1247
+ {
1248
+ // ... Suas configurações existentes do TypeScript
1249
+ "include": [
1250
+ // ... Suas configurações existentes do TypeScript
1251
+ ".intlayer/**/*.ts", // Inclua os tipos autogerados
1252
+ ],
1253
+ }
1254
+ ```
1255
+
1256
+ ### Configuração do Git
1257
+
1258
+ É recomendável ignorar os arquivos gerados pelo Intlayer. Isso permite evitar que eles sejam enviados para seu repositório Git.
1259
+
1260
+ Para fazer isso, você pode adicionar as seguintes instruções ao seu arquivo `.gitignore`:
1261
+
1262
+ ```plaintext fileName=".gitignore"
1263
+ # Ignore os arquivos gerados pelo Intlayer
1264
+ .intlayer
1265
+ ```
1266
+
1267
+ ### Vá Além
1268
+
1269
+ Para ir além, você pode implementar o [editor visual](https://github.com/aymericzip/intlayer/blob/main/docs/pt/intlayer_visual_editor.md) ou externalizar seu conteúdo usando o [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/pt/intlayer_CMS.md).