@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,1286 @@
1
+ # 开始使用 Intlayer 和 Next.js 14 的 App Router 进行国际化 (i18n)
2
+
3
+ Смотрите [шаблон приложения](https://github.com/aymericzip/intlayer-next-14-template) на GitHub.
4
+
5
+ ## 什么是 Intlayer?
6
+
7
+ **Intlayer** 是一个创新的开源国际化 (i18n) 库,旨在简化现代 Web 应用中的多语言支持。Intlayer 无缝集成了最新的 **Next.js 14** 框架,包括其强大的 **App Router**。它针对 **服务器组件** 的高效渲染进行了优化,并完全兼容 [**Turbopack**](https://nextjs.org/docs/architecture/turbopack)(适用于 Next.js >= 15)。
8
+
9
+ 使用 Intlayer,您可以:
10
+
11
+ - **轻松管理翻译**,在组件级别使用声明式字典。
12
+ - **动态本地化元数据**、路由和内容。
13
+ - **在客户端和服务端组件中访问翻译**。
14
+ - **确保 TypeScript 支持**,通过自动生成的类型提高自动补全和错误检测能力。
15
+ - **享受高级功能**,如动态语言检测和切换。
16
+
17
+ > Intlayer 兼容 Next.js 12、13、14 和 15。如果您使用的是 Next.js Page Router,可以参考此 [指南](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_with_nextjs_page_router.md)。对于 Next.js 15(无论是否使用 turbopack),请参考此 [指南](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_with_nextjs_15.md)。
18
+
19
+ ---
20
+
21
+ ## 在 Next.js 应用中设置 Intlayer 的分步指南
22
+
23
+ ### 第一步:安装依赖
24
+
25
+ 使用 npm 安装必要的包:
26
+
27
+ ```bash packageManager="npm"
28
+ npm install intlayer next-intlayer
29
+ ```
30
+
31
+ ```bash packageManager="pnpm"
32
+ pnpm add intlayer next-intlayer
33
+ ```
34
+
35
+ ```bash packageManager="yarn"
36
+ yarn add intlayer next-intlayer
37
+ ```
38
+
39
+ - **intlayer**
40
+
41
+ 提供国际化工具的核心包,用于配置管理、翻译、[内容声明](https://github.com/aymericzip/intlayer/blob/main/docs/zh/dictionary/get_started.md)、转译和 [CLI 命令](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_cli.md)。
42
+
43
+ - **next-intlayer**
44
+
45
+ 将 Intlayer 与 Next.js 集成的包。它为 Next.js 国际化提供上下文提供器和钩子。此外,它还包括一个 Next.js 插件,用于将 Intlayer 集成到 [Webpack](https://webpack.js.org/) 或 [Turbopack](https://nextjs.org/docs/app/api-reference/turbopack) 中,以及用于检测用户首选语言、管理 Cookie 和处理 URL 重定向的中间件。
46
+
47
+ ### 第二步:配置您的项目
48
+
49
+ 创建一个配置文件来配置您的应用语言:
50
+
51
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
52
+ // 配置文件示例
53
+ import { Locales, type IntlayerConfig } from "intlayer";
54
+
55
+ const config: IntlayerConfig = {
56
+ internationalization: {
57
+ locales: [
58
+ Locales.ENGLISH,
59
+ Locales.FRENCH,
60
+ Locales.SPANISH,
61
+ // 您的其他语言
62
+ ],
63
+ defaultLocale: Locales.ENGLISH,
64
+ },
65
+ };
66
+
67
+ export default config;
68
+ ```
69
+
70
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
71
+ // 配置文件示例
72
+ import { Locales } from "intlayer";
73
+
74
+ /** @type {import('intlayer').IntlayerConfig} */
75
+ const config = {
76
+ internationalization: {
77
+ locales: [
78
+ Locales.ENGLISH,
79
+ Locales.FRENCH,
80
+ Locales.SPANISH,
81
+ // 您的其他语言
82
+ ],
83
+ defaultLocale: Locales.ENGLISH,
84
+ },
85
+ };
86
+
87
+ export default config;
88
+ ```
89
+
90
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
91
+ // 配置文件示例
92
+ const { Locales } = require("intlayer");
93
+
94
+ /** @type {import('intlayer').IntlayerConfig} */
95
+ const config = {
96
+ internationalization: {
97
+ locales: [
98
+ Locales.ENGLISH,
99
+ Locales.FRENCH,
100
+ Locales.SPANISH,
101
+ // 您的其他语言
102
+ ],
103
+ defaultLocale: Locales.ENGLISH,
104
+ },
105
+ };
106
+
107
+ module.exports = config;
108
+ ```
109
+
110
+ > 通过此配置文件,您可以设置本地化 URL、中间件重定向、Cookie 名称、内容声明的位置和扩展名、禁用控制台中的 Intlayer 日志等。有关可用参数的完整列表,请参考 [配置文档](https://github.com/aymericzip/intlayer/blob/main/docs/zh/configuration.md)。
111
+
112
+ ### 第三步:在 Next.js 配置中集成 Intlayer
113
+
114
+ 配置您的 Next.js 设置以使用 Intlayer:
115
+
116
+ ```typescript fileName="next.config.mjs"
117
+ import { withIntlayer } from "next-intlayer/server";
118
+
119
+ /** @type {import('next').NextConfig} */
120
+ const nextConfig = {};
121
+
122
+ export default withIntlayer(nextConfig);
123
+ ```
124
+
125
+ > `withIntlayer()` Next.js 插件用于将 Intlayer 集成到 Next.js 中。它确保构建内容声明文件并在开发模式下监视它们。它在 [Webpack](https://webpack.js.org/) 或 [Turbopack](https://nextjs.org/docs/app/api-reference/turbopack) 环境中定义 Intlayer 环境变量。此外,它提供了别名以优化性能并确保与服务器组件的兼容性。
126
+
127
+ ### 第四步:配置语言检测中间件
128
+
129
+ 设置中间件以检测用户的首选语言:
130
+
131
+ ```typescript fileName="src/middleware.ts" codeFormat="typescript"
132
+ // 中间件配置示例
133
+ export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
134
+
135
+ export const config = {
136
+ matcher:
137
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
138
+ };
139
+ ```
140
+
141
+ ```javascript fileName="src/middleware.mjs" codeFormat="esm"
142
+ // 中间件配置示例
143
+ export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
144
+
145
+ export const config = {
146
+ matcher:
147
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
148
+ };
149
+ ```
150
+
151
+ ```javascript fileName="src/middleware.cjs" codeFormat="commonjs"
152
+ // 中间件配置示例
153
+ const { intlayerMiddleware } = require("next-intlayer/middleware");
154
+
155
+ const config = {
156
+ matcher:
157
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
158
+ };
159
+
160
+ module.exports = { middleware: intlayerMiddleware, config };
161
+ ```
162
+
163
+ > `intlayerMiddleware` 用于检测用户的首选语言,并将其重定向到配置中指定的适当 URL([配置文档](https://github.com/aymericzip/intlayer/blob/main/docs/zh/configuration.md))。此外,它支持将用户的首选语言保存到 Cookie 中。
164
+
165
+ > 根据您的应用路由调整 `matcher` 参数。有关更多详细信息,请参考 [Next.js 文档中的 matcher 配置](https://nextjs.org/docs/app/building-your-application/routing/middleware)。
166
+
167
+ ### 第五步:定义动态语言路由
168
+
169
+ 清空 `RootLayout` 的内容,并替换为以下代码:
170
+
171
+ ```tsx fileName="src/app/layout.tsx" codeFormat="typescript"
172
+ // 根布局示例
173
+ import type { PropsWithChildren, FC } from "react";
174
+ import "./globals.css";
175
+
176
+ const RootLayout: FC<PropsWithChildren> = ({ children }) => children;
177
+
178
+ export default RootLayout;
179
+ ```
180
+
181
+ ```jsx fileName="src/app/layout.mjx" codeFormat="esm"
182
+ // 根布局示例
183
+ import "./globals.css";
184
+
185
+ const RootLayout = ({ children }) => children;
186
+
187
+ export default RootLayout;
188
+ ```
189
+
190
+ ```jsx fileName="src/app/layout.csx" codeFormat="commonjs"
191
+ // 根布局示例
192
+ require("./globals.css");
193
+
194
+ const RootLayout = ({ children }) => children;
195
+
196
+ module.exports = {
197
+ default: RootLayout,
198
+ generateStaticParams,
199
+ };
200
+ ```
201
+
202
+ > 保持 `RootLayout` 组件为空,可以为 `<html>` 标签设置 [`lang`](https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/lang) 和 [`dir`](https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/dir) 属性。
203
+
204
+ 要实现动态路由,请通过在 `[locale]` 目录中添加一个新布局来提供语言路径:
205
+
206
+ ```tsx fileName="src/app/[locale]/layout.tsx" codeFormat="typescript"
207
+ // 动态语言布局示例
208
+ import type { Next14LayoutIntlayer } from "next-intlayer";
209
+ import { Inter } from "next/font/google";
210
+ import { getHTMLTextDir } from "intlayer";
211
+
212
+ const inter = Inter({ subsets: ["latin"] });
213
+
214
+ const LocaleLayout: Next14LayoutIntlayer = ({
215
+ children,
216
+ params: { locale },
217
+ }) => (
218
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
219
+ <body className={inter.className}>{children}</body>
220
+ </html>
221
+ );
222
+ ---
223
+
224
+ import { Inter } from "next/font/google";
225
+ import { getHTMLTextDir } from "intlayer";
226
+
227
+ const inter = Inter({ subsets: ["latin"] });
228
+
229
+ const LocaleLayout = ({ children, params: { locale } }) => (
230
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
231
+ <body className={inter.className}>{children}</body>
232
+ </html>
233
+ );
234
+
235
+ export default LocaleLayout;
236
+ ```
237
+
238
+ ```jsx fileName="src/app/[locale]/layout.csx" codeFormat="commonjs"
239
+ const { Inter } = require("next/font/google");
240
+ const { getHTMLTextDir } = require("intlayer");
241
+
242
+ const inter = Inter({ subsets: ["latin"] });
243
+
244
+ const LocaleLayout = ({ children, params: { locale } }) => (
245
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
246
+ <body className={inter.className}>{children}</body>
247
+ </html>
248
+ );
249
+
250
+ module.exports = LocaleLayout;
251
+ ```
252
+
253
+ > `[locale]` 路径段用于定义语言环境。例如:`/en-US/about` 将引用 `en-US`,而 `/fr/about` 将引用 `fr`。
254
+
255
+ 然后,在您的应用程序布局中实现 `generateStaticParams` 函数。
256
+
257
+ ```tsx {1} fileName="src/app/[locale]/layout.tsx" codeFormat="typescript"
258
+ export { generateStaticParams } from "next-intlayer"; // 插入的行
259
+
260
+ const LocaleLayout: Next14LayoutIntlayer = ({
261
+ children,
262
+ params: { locale },
263
+ }) => {
264
+ /*... 其余代码*/
265
+ };
266
+
267
+ export default LocaleLayout;
268
+ ```
269
+
270
+ ```jsx {1} fileName="src/app/[locale]/layout.mjx" codeFormat="esm"
271
+ export { generateStaticParams } from "next-intlayer"; // 插入的行
272
+
273
+ const LocaleLayout = ({ children, params: { locale } }) => {
274
+ /*... 其余代码*/
275
+ };
276
+
277
+ export default LocaleLayout;
278
+ ```
279
+
280
+ ```jsx {1,7} fileName="src/app/[locale]/layout.csx" codeFormat="commonjs"
281
+ const { generateStaticParams } = require("next-intlayer"); // 插入的行
282
+
283
+ const LocaleLayout = ({ children, params: { locale } }) => {
284
+ /*... 其余代码*/
285
+ };
286
+
287
+ module.exports = LocaleLayout;
288
+ ```
289
+
290
+ > `generateStaticParams` 确保您的应用程序为所有语言环境预构建必要的页面,从而减少运行时计算并改善用户体验。有关更多详细信息,请参阅 [Next.js 关于 generateStaticParams 的文档](https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic-rendering#generate-static-params)。
291
+
292
+ ### 第六步:声明您的内容
293
+
294
+ 创建和管理您的内容声明以存储翻译:
295
+
296
+ ```typescript fileName="src/app/[locale]/page.content.ts" contentDeclarationFormat="typescript"
297
+ import { t, type Dictionary } from "intlayer";
298
+
299
+ const pageContent = {
300
+ key: "page",
301
+ content: {
302
+ getStarted: {
303
+ main: t({
304
+ zh: "通过编辑开始",
305
+ en: "Get started by editing",
306
+ fr: "Commencez par éditer",
307
+ es: "Comience por editar",
308
+ }),
309
+ pageLink: "src/app/page.tsx",
310
+ },
311
+ },
312
+ } satisfies Dictionary;
313
+
314
+ export default pageContent;
315
+ ```
316
+
317
+ ```javascript fileName="src/app/[locale]/page.content.mjs" contentDeclarationFormat="esm"
318
+ import { t } from "intlayer";
319
+
320
+ /** @type {import('intlayer').Dictionary} */
321
+ const pageContent = {
322
+ key: "page",
323
+ content: {
324
+ getStarted: {
325
+ main: t({
326
+ zh: "通过编辑开始",
327
+ en: "Get started by editing",
328
+ fr: "Commencez par éditer",
329
+ es: "Comience por editar",
330
+ }),
331
+ pageLink: "src/app/page.tsx",
332
+ },
333
+ },
334
+ };
335
+
336
+ export default pageContent;
337
+ ```
338
+
339
+ ```javascript fileName="src/app/[locale]/page.content.cjs" contentDeclarationFormat="commonjs"
340
+ const { t } = require("intlayer");
341
+
342
+ /** @type {import('intlayer').Dictionary} */
343
+ const pageContent = {
344
+ key: "page",
345
+ content: {
346
+ getStarted: {
347
+ main: t({
348
+ zh: "通过编辑开始",
349
+ en: "Get started by editing",
350
+ fr: "Commencez par éditer",
351
+ es: "Comience por editar",
352
+ }),
353
+ pageLink: "src/app/page.tsx",
354
+ },
355
+ },
356
+ };
357
+
358
+ module.exports = pageContent;
359
+ ```
360
+
361
+ ```json fileName="src/app/[locale]/page.content.json" contentDeclarationFormat="json"
362
+ {
363
+ "$schema": "https://intlayer.org/schema.json",
364
+ "key": "page",
365
+ "content": {
366
+ "getStarted": {
367
+ "nodeType": "translation",
368
+ "translation": {
369
+ "zh": "通过编辑开始",
370
+ "en": "Get started by editing",
371
+ "fr": "Commencez par éditer",
372
+ "es": "Comience por editar"
373
+ }
374
+ },
375
+ "pageLink": {
376
+ "nodeType": "translation",
377
+ "translation": {
378
+ "zh": "src/app/page.tsx",
379
+ "en": "src/app/page.tsx",
380
+ "fr": "src/app/page.tsx",
381
+ "es": "src/app/page.tsx"
382
+ }
383
+ }
384
+ }
385
+ }
386
+ ```
387
+
388
+ > 您的内容声明可以在应用程序中的任何位置定义,只要它们包含在 `contentDir` 目录中(默认情况下为 `./src`)。并匹配内容声明文件扩展名(默认情况下为 `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`)。
389
+
390
+ > 有关更多详细信息,请参阅 [内容声明文档](https://github.com/aymericzip/intlayer/blob/main/docs/zh/dictionary/get_started.md)。
391
+
392
+ ### 第七步:在代码中使用内容
393
+
394
+ 在整个应用程序中访问您的内容字典:
395
+
396
+ ```tsx fileName="src/app/[locale]/page.tsx" codeFormat="typescript"
397
+ import { ClientComponentExample } from "@components/ClientComponentExample";
398
+ import { ServerComponentExample } from "@components/ServerComponentExample";
399
+ import { type Next14PageIntlayer, IntlayerClientProvider } from "next-intlayer";
400
+ import { IntlayerServerProvider, useIntlayer } from "next-intlayer/server";
401
+
402
+ const Page: Next14PageIntlayer = ({ params: { locale } }) => {
403
+ const content = useIntlayer("page", locale);
404
+
405
+ return (
406
+ <>
407
+ <p>
408
+ {content.getStarted.main}
409
+ <code>{content.getStarted.pageLink}</code>
410
+ </p>
411
+
412
+ <IntlayerServerProvider locale={locale}>
413
+ <IntlayerClientProvider locale={locale}>
414
+ <ServerComponentExample />
415
+ <ClientComponentExample />
416
+ </IntlayerClientProvider>
417
+ </IntlayerServerProvider>
418
+ </>
419
+ );
420
+ };
421
+
422
+ export default Page;
423
+ ```
424
+
425
+ ```jsx fileName="src/app/[locale]/page.mjx" codeFormat="esm"
426
+ import { ClientComponentExample } from "@components/ClientComponentExample";
427
+ import { ServerComponentExample } from "@components/ServerComponentExample";
428
+ import { IntlayerClientProvider } from "next-intlayer";
429
+ import { IntlayerServerProvider, useIntlayer } from "next-intlayer/server";
430
+
431
+ const Page = ({ params: { locale } }) => {
432
+ const content = useIntlayer("page", locale);
433
+
434
+ return (
435
+ <>
436
+ <p>
437
+ {content.getStarted.main}
438
+ <code>{content.getStarted.pageLink}</code>
439
+ </p>
440
+
441
+ <IntlayerClientProvider locale={locale}>
442
+ <IntlayerServerProvider locale={locale}>
443
+ <ClientComponentExample />
444
+ <ServerComponentExample />
445
+ </IntlayerServerProvider>
446
+ </IntlayerClientProvider>
447
+ </>
448
+ );
449
+ };
450
+ ```
451
+
452
+ ```jsx fileName="src/app/[locale]/page.csx" codeFormat="commonjs"
453
+ const { IntlayerClientProvider } = require("next-intlayer");
454
+ const { IntlayerServerProvider, useIntlayer } = require("next-intlayer/server");
455
+
456
+ const Page = ({ params: { locale } }) => {
457
+ const content = useIntlayer("page", locale);
458
+
459
+ return (
460
+ <>
461
+ <p>
462
+ {content.getStarted.main}
463
+ <code>{content.getStarted.pageLink}</code>
464
+ </p>
465
+
466
+ <IntlayerClientProvider locale={locale}>
467
+ <IntlayerServerProvider locale={locale}>
468
+ <ClientComponentExample />
469
+ <ServerComponentExample />
470
+ </IntlayerServerProvider>
471
+ </IntlayerClientProvider>
472
+ </>
473
+ );
474
+ };
475
+ ```
476
+
477
+ - **`IntlayerClientProvider`** 用于为客户端组件提供语言环境。它可以放置在任何父组件中,包括布局。然而,建议将其放置在布局中,因为 Next.js 在页面之间共享布局代码,这使其更高效。通过在布局中使用 `IntlayerClientProvider`,您可以避免为每个页面重新初始化它,从而提高性能并在整个应用程序中保持一致的本地化上下文。
478
+ - **`IntlayerServerProvider`** 用于为服务器子组件提供语言环境。它不能在布局中设置。
479
+
480
+ ```tsx {4,7} fileName="src/components/ClientComponentExample.tsx" codeFormat="typescript"
481
+ "use client";
482
+
483
+ import type { FC } from "react";
484
+ import { useIntlayer } from "next-intlayer";
485
+
486
+ const ClientComponentExample: FC = () => {
487
+ const content = useIntlayer("client-component-example"); // 创建相关内容声明
488
+
489
+ return (
490
+ <div>
491
+ <h2>{content.title}</h2>
492
+ <p>{content.content}</p>
493
+ </div>
494
+ );
495
+ };
496
+ ```
497
+
498
+ ```jsx {3,6} fileName="src/components/ClientComponentExample.mjx" codeFormat="esm"
499
+ "use client";
500
+
501
+ import { useIntlayer } from "next-intlayer";
502
+
503
+ const ClientComponentExample = () => {
504
+ const content = useIntlayer("client-component-example"); // 创建相关内容声明
505
+
506
+ return (
507
+ <div>
508
+ <h2>{content.title}</h2>
509
+ <p>{content.content}</p>
510
+ </div>
511
+ );
512
+ };
513
+ ```
514
+
515
+ ```jsx {3,6} fileName="src/components/ClientComponentExample.csx" codeFormat="commonjs"
516
+ "use client";
517
+
518
+ const { useIntlayer } = require("next-intlayer");
519
+
520
+ const ClientComponentExample = () => {
521
+ const content = useIntlayer("client-component-example"); // 创建相关内容声明
522
+
523
+ return (
524
+ <div>
525
+ <h2>{content.title}</h2>
526
+ <p>{content.content}</p>
527
+ </div>
528
+ );
529
+ };
530
+ ```
531
+
532
+ ```tsx {2} fileName="src/components/ServerComponentExample.tsx" codeFormat="typescript"
533
+ import type { FC } from "react";
534
+ import { useIntlayer } from "next-intlayer/server";
535
+
536
+ const ServerComponentExample: FC = () => {
537
+ const content = useIntlayer("server-component-example"); // 创建相关内容声明
538
+
539
+ return (
540
+ <div>
541
+ <h2>{content.title}</h2>
542
+ <p>{content.content}</p>
543
+ </div>
544
+ );
545
+ };
546
+ ```
547
+
548
+ ```jsx {1} fileName="src/components/ServerComponentExample.mjx" codeFormat="esm"
549
+ import { useIntlayer } from "next-intlayer/server";
550
+
551
+ const ServerComponentExample = () => {
552
+ const content = useIntlayer("server-component-example"); // 创建相关内容声明
553
+
554
+ return (
555
+ <div>
556
+ <h2>{content.title}</h2>
557
+ <p>{content.content}</p>
558
+ </div>
559
+ );
560
+ };
561
+ ```
562
+
563
+ ```jsx {1} fileName="src/components/ServerComponentExample.csx" codeFormat="commonjs"
564
+ const { useIntlayer } = require("next-intlayer/server");
565
+
566
+ const ServerComponentExample = () => {
567
+ const content = useIntlayer("server-component-example"); // 创建相关内容声明
568
+
569
+ return (
570
+ <div>
571
+ <h2>{content.title}</h2>
572
+ <p>{content.content}</p>
573
+ </div>
574
+ );
575
+ };
576
+ ```
577
+
578
+ > 如果您想在 `string` 属性中使用内容,例如 `alt`、`title`、`href`、`aria-label` 等,您必须调用函数的值,例如:
579
+
580
+ > ```jsx
581
+ >
582
+ > ```
583
+
584
+ > <img src={content.image.src.value} alt={content.image.value} />
585
+
586
+ > ```
587
+ >
588
+ > ```
589
+
590
+ > 要了解更多关于 `useIntlayer` 钩子的内容,请参考 [文档](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/next-intlayer/useIntlayer.md)。
591
+
592
+ ### (可选)步骤 8:元数据的国际化
593
+
594
+ 如果您想要国际化您的元数据,例如页面的标题,可以使用 Next.js 提供的 `generateMetadata` 函数。在函数内部使用 `getTranslation` 函数来翻译您的元数据。
595
+
596
+ ````typescript fileName="src/app/[locale]/layout.tsx 或 src/app/[locale]/page.tsx" codeFormat="typescript"
597
+ import {
598
+ type IConfigLocales,
599
+ getTranslation,
600
+ getMultilingualUrls,
601
+ } from "intlayer";
602
+ import type { Metadata } from "next";
603
+ import type { LocalParams } from "next-intlayer";
604
+
605
+ export const generateMetadata = ({
606
+ params: { locale },
607
+ }: LocalParams): Metadata => {
608
+ const t = <T>(content: IConfigLocales<T>) => getTranslation(content, locale);
609
+
610
+ /**
611
+ * 生成一个包含每种语言的所有 URL 的对象。
612
+ *
613
+ * 示例:
614
+ * ```ts
615
+ * getMultilingualUrls('/about');
616
+ *
617
+ * // 返回
618
+ * // {
619
+ * // en: '/about',
620
+ * // fr: '/fr/about',
621
+ * // es: '/es/about',
622
+ * // }
623
+ * ```
624
+ */
625
+ const multilingualUrls = getMultilingualUrls("/");
626
+
627
+ return {
628
+ title: t<string>({
629
+ zh: "我的标题",
630
+ en: "My title",
631
+ fr: "Mon titre",
632
+ es: "Mi título",
633
+ }),
634
+ description: t({
635
+ zh: "我的描述",
636
+ en: "My description",
637
+ fr: "Ma description",
638
+ es: "Mi descripción",
639
+ }),
640
+ alternates: {
641
+ canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
642
+ languages: { ...multilingualUrls, "x-default": "/" },
643
+ },
644
+ openGraph: {
645
+ url: multilingualUrls[locale],
646
+ },
647
+ };
648
+ };
649
+
650
+ // ... 其余代码
651
+ ````
652
+
653
+ ````javascript fileName="src/app/[locale]/layout.msx 或 src/app/[locale]/page.msx" codeFormat="javascript"
654
+ import { getTranslation, getMultilingualUrls } from "intlayer";
655
+
656
+ export const generateMetadata = ({ params: { locale } }) => {
657
+ const t = (content) => getTranslation(content, locale);
658
+
659
+ /**
660
+ * 生成一个包含每种语言的所有 URL 的对象。
661
+ *
662
+ * 示例:
663
+ * ```ts
664
+ * getMultilingualUrls('/about');
665
+ *
666
+ * // 返回
667
+ * // {
668
+ * // en: '/about',
669
+ * // fr: '/fr/about',
670
+ * // es: '/es/about',
671
+ * // }
672
+ * ```
673
+ */
674
+ const multilingualUrls = getMultilingualUrls("/");
675
+
676
+ return {
677
+ title: t({
678
+ zh: "我的标题",
679
+ en: "My title",
680
+ fr: "Mon titre",
681
+ es: "Mi título",
682
+ }),
683
+ description: t({
684
+ zh: "我的描述",
685
+ en: "My description",
686
+ fr: "Ma description",
687
+ es: "Mi descripción",
688
+ }),
689
+ alternates: {
690
+ canonical: multilingualUrls[locale],
691
+ languages: { ...multilingualUrls, "x-default": "/" },
692
+ },
693
+ openGraph: {
694
+ url: multilingualUrls[locale],
695
+ },
696
+ };
697
+ };
698
+
699
+ // ... 其余代码
700
+ ````
701
+
702
+ ````javascript fileName="src/app/[locale]/layout.cjs 或 src/app/[locale]/page.cjs" codeFormat="javascript"
703
+ const { getTranslation, getMultilingualUrls } = require("intlayer");
704
+
705
+ module.exports.generateMetadata = ({ params: { locale } }) => {
706
+ const t = (content) => getTranslation(content, locale);
707
+
708
+ /**
709
+ * 生成一个包含每种语言的所有 URL 的对象。
710
+ *
711
+ * 示例:
712
+ * ```ts
713
+ * getMultilingualUrls('/about');
714
+ *
715
+ * // 返回
716
+ * // {
717
+ * // en: '/about',
718
+ * // fr: '/fr/about',
719
+ * // es: '/es/about',
720
+ * // }
721
+ * ```
722
+ */
723
+ const multilingualUrls = getMultilingualUrls("/");
724
+
725
+ return {
726
+ title: t({
727
+ zh: "我的标题",
728
+ en: "My title",
729
+ fr: "Mon titre",
730
+ es: "Mi título",
731
+ }),
732
+ description: t({
733
+ zh: "我的描述",
734
+ en: "My description",
735
+ fr: "Ma description",
736
+ es: "Mi descripción",
737
+ }),
738
+ alternates: {
739
+ canonical: multilingualUrls[locale],
740
+ languages: { ...multilingualUrls, "x-default": "/" },
741
+ },
742
+ openGraph: {
743
+ url: multilingualUrls[locale],
744
+ },
745
+ };
746
+ };
747
+
748
+ // ... 其余代码
749
+ ````
750
+
751
+ > 了解更多关于元数据优化的内容,请参考 [Next.js 官方文档](https://nextjs.org/docs/app/building-your-application/optimizing/metadata)。
752
+
753
+ ### (可选)步骤 9:国际化您的 sitemap.xml 和 robots.txt
754
+
755
+ 要国际化您的 `sitemap.xml` 和 `robots.txt`,可以使用 Intlayer 提供的 `getMultilingualUrls` 函数。此函数允许您为您的站点地图生成多语言 URL。
756
+
757
+ ```tsx fileName="src/app/sitemap.ts" codeFormat="typescript"
758
+ import { getMultilingualUrls } from "intlayer";
759
+ import type { MetadataRoute } from "next";
760
+
761
+ const sitemap = (): MetadataRoute.Sitemap => [
762
+ {
763
+ url: "https://example.com",
764
+ alternates: {
765
+ languages: getMultilingualUrls("https://example.com"),
766
+ },
767
+ },
768
+ {
769
+ url: "https://example.com/login",
770
+ alternates: {
771
+ languages: getMultilingualUrls("https://example.com/login"),
772
+ },
773
+ },
774
+ {
775
+ url: "https://example.com/register",
776
+ alternates: {
777
+ languages: getMultilingualUrls("https://example.com/register"),
778
+ },
779
+ },
780
+ ];
781
+
782
+ export default sitemap;
783
+ ```
784
+
785
+ import { getMultilingualUrls } from "intlayer";
786
+
787
+ const sitemap = () => [
788
+ {
789
+ url: "https://example.com",
790
+ alternates: {
791
+ languages: getMultilingualUrls("https://example.com"),
792
+ },
793
+ },
794
+ {
795
+ url: "https://example.com/login",
796
+ alternates: {
797
+ languages: getMultilingualUrls("https://example.com/login"),
798
+ },
799
+ },
800
+ {
801
+ url: "https://example.com/register",
802
+ alternates: {
803
+ languages: getMultilingualUrls("https://example.com/register"),
804
+ },
805
+ },
806
+ ];
807
+
808
+ export default sitemap;
809
+
810
+ ````
811
+
812
+ ```jsx fileName="src/app/sitemap.csx" codeFormat="commonjs"
813
+ const { getMultilingualUrls } = require("intlayer");
814
+
815
+ const sitemap = () => [
816
+ {
817
+ url: "https://example.com",
818
+ alternates: {
819
+ languages: getMultilingualUrls("https://example.com"),
820
+ },
821
+ },
822
+ {
823
+ url: "https://example.com/login",
824
+ alternates: {
825
+ languages: getMultilingualUrls("https://example.com/login"),
826
+ },
827
+ },
828
+ {
829
+ url: "https://example.com/register",
830
+ alternates: {
831
+ languages: getMultilingualUrls("https://example.com/register"),
832
+ },
833
+ },
834
+ ];
835
+
836
+ module.exports = sitemap;
837
+ ````
838
+
839
+ ```tsx fileName="src/app/robots.ts" codeFormat="typescript"
840
+ import type { MetadataRoute } from "next";
841
+ import { getMultilingualUrls } from "intlayer";
842
+
843
+ const getAllMultilingualUrls = (urls: string[]) =>
844
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)) as string[]);
845
+
846
+ const robots = (): MetadataRoute.Robots => ({
847
+ rules: {
848
+ userAgent: "*",
849
+ allow: ["/"],
850
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
851
+ },
852
+ host: "https://example.com",
853
+ sitemap: `https://example.com/sitemap.xml`,
854
+ });
855
+
856
+ export default robots;
857
+ ```
858
+
859
+ ```jsx fileName="src/app/robots.mjx" codeFormat="esm"
860
+ import { getMultilingualUrls } from "intlayer";
861
+
862
+ const getAllMultilingualUrls = (urls) =>
863
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
864
+
865
+ const robots = () => ({
866
+ rules: {
867
+ userAgent: "*",
868
+ allow: ["/"],
869
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
870
+ },
871
+ host: "https://example.com",
872
+ sitemap: `https://example.com/sitemap.xml`,
873
+ });
874
+
875
+ export default robots;
876
+ ```
877
+
878
+ ```jsx fileName="src/app/robots.csx" codeFormat="commonjs"
879
+ const { getMultilingualUrls } = require("intlayer");
880
+
881
+ const getAllMultilingualUrls = (urls) =>
882
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
883
+
884
+ const robots = () => ({
885
+ rules: {
886
+ userAgent: "*",
887
+ allow: ["/"],
888
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
889
+ },
890
+ host: "https://example.com",
891
+ sitemap: `https://example.com/sitemap.xml`,
892
+ });
893
+
894
+ module.exports = robots;
895
+ ```
896
+
897
+ > 了解更多关于站点地图优化的信息,请访问 [Next.js 官方文档](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/sitemap)。了解更多关于 robots.txt 优化的信息,请访问 [Next.js 官方文档](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/robots)。
898
+
899
+ ### (可选)步骤 10:更改内容的语言
900
+
901
+ 要更改 Next.js 中内容的语言,推荐的方法是使用 `Link` 组件将用户重定向到适当的本地化页面。`Link` 组件支持页面的预加载,有助于避免整个页面重新加载。
902
+
903
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
904
+ "use client";
905
+
906
+ import {
907
+ Locales,
908
+ getHTMLTextDir,
909
+ getLocaleName,
910
+ getLocalizedUrl,
911
+ } from "intlayer";
912
+ import { useLocale } from "next-intlayer";
913
+ import { type FC } from "react";
914
+ import Link from "next/link";
915
+
916
+ const LocaleSwitcher: FC = () => {
917
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
918
+ const { setLocaleCookie } = useLocaleCookie();
919
+
920
+ return (
921
+ <div>
922
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
923
+ <div id="localePopover" popover="auto">
924
+ {availableLocales.map((localeItem) => (
925
+ <Link
926
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
927
+ hrefLang={localeItem}
928
+ key={localeItem}
929
+ aria-current={locale === localeItem ? "page" : undefined}
930
+ onClick={() => setLocaleCookie(localeItem)}
931
+ >
932
+ <span>
933
+ {/* 语言环境 - 例如 FR */}
934
+ {localeItem}
935
+ </span>
936
+ <span>
937
+ {/* 语言在其自身的语言环境中 - 例如 Français */}
938
+ {getLocaleName(localeItem, locale)}
939
+ </span>
940
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
941
+ {/* 当前语言环境中的语言 - 例如 Francés,当当前语言环境设置为 Locales.SPANISH */}
942
+ {getLocaleName(localeItem)}
943
+ </span>
944
+ <span dir="ltr" lang={Locales.ENGLISH}>
945
+ {/* 英语中的语言 - 例如 French */}
946
+ {getLocaleName(localeItem, Locales.ENGLISH)}
947
+ </span>
948
+ </Link>
949
+ ))}
950
+ </div>
951
+ </div>
952
+ );
953
+ };
954
+ ```
955
+
956
+ ```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
957
+ "use client";
958
+
959
+ import {
960
+ Locales,
961
+ getHTMLTextDir,
962
+ getLocaleName,
963
+ getLocalizedUrl,
964
+ } from "intlayer";
965
+ import { useLocale } from "next-intlayer";
966
+ import Link from "next/link";
967
+
968
+ const LocaleSwitcher = () => {
969
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
970
+ const { setLocaleCookie } = useLocaleCookie();
971
+
972
+ return (
973
+ <div>
974
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
975
+ <div id="localePopover" popover="auto">
976
+ {availableLocales.map((localeItem) => (
977
+ <Link
978
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
979
+ hrefLang={localeItem}
980
+ key={localeItem}
981
+ aria-current={locale === localeItem ? "page" : undefined}
982
+ onClick={() => setLocaleCookie(localeItem)}
983
+ >
984
+ <span>
985
+ {/* 语言环境 - 例如 FR */}
986
+ {localeItem}
987
+ </span>
988
+ <span>
989
+ {/* 语言在其自身的语言环境中 - 例如 Français */}
990
+ {getLocaleName(localeItem, locale)}
991
+ </span>
992
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
993
+ {/* 当前语言环境中的语言 - 例如 Francés,当当前语言环境设置为 Locales.SPANISH */}
994
+ {getLocaleName(localeItem)}
995
+ </span>
996
+ <span dir="ltr" lang={Locales.ENGLISH}>
997
+ {/* 英语中的语言 - 例如 French */}
998
+ {getLocaleName(localeItem, Locales.ENGLISH)}
999
+ </span>
1000
+ </Link>
1001
+ ))}
1002
+ </div>
1003
+ </div>
1004
+ );
1005
+ };
1006
+ ```
1007
+
1008
+ ```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
1009
+ "use client";
1010
+
1011
+ const {
1012
+ Locales,
1013
+ getHTMLTextDir,
1014
+ getLocaleName,
1015
+ getLocalizedUrl,
1016
+ } = require("intlayer");
1017
+ const { useLocale } = require("next-intlayer");
1018
+ const Link = require("next/link");
1019
+
1020
+ const LocaleSwitcher = () => {
1021
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
1022
+ const { setLocaleCookie } = useLocaleCookie();
1023
+
1024
+ return (
1025
+ <div>
1026
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
1027
+ <div id="localePopover" popover="auto">
1028
+ {availableLocales.map((localeItem) => (
1029
+ <Link
1030
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
1031
+ hrefLang={localeItem}
1032
+ key={localeItem}
1033
+ aria-current={locale === localeItem ? "page" : undefined}
1034
+ onClick={() =>
1035
+ setLocaleCookie(localeItem)
1036
+ }
1037
+ >
1038
+ <span>
1039
+ {/* 语言环境 - 例如 FR */}
1040
+ {localeItem}
1041
+ </span>
1042
+ <span>
1043
+ {/* 语言在其自身的语言环境中 - 例如 Français */}
1044
+ {getLocaleName(localeItem, locale)}
1045
+ </span>
1046
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1047
+ {/* 当前语言环境中的语言 - 例如 Francés,当当前语言环境设置为 Locales.SPANISH */}
1048
+ {getLocaleName(localeItem)}
1049
+ </span>
1050
+ <span dir="ltr" lang={Locales.ENGLISH}>
1051
+ {/* 英语中的语言 - 例如 French */}
1052
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1053
+ </span>
1054
+ </Link>
1055
+ ))}
1056
+ </div>
1057
+ </div>
1058
+ );
1059
+ };
1060
+
1061
+ </span>
1062
+ <span dir="ltr" lang={Locales.ENGLISH}>
1063
+ {/* 英文中的语言 - 例如法语 */}
1064
+ {获取LocaleName(localeItem, Locales.ENGLISH)}
1065
+ </span>
1066
+ </Link>
1067
+ ))}
1068
+ </div>
1069
+ </div>
1070
+ );
1071
+ };
1072
+ ```
1073
+
1074
+ > 文档参考:
1075
+
1076
+ > - [`useLocale` hook](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/next-intlayer/useLocale.md)
1077
+
1078
+ > - [`getLocaleName` hook](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/intlayer/getLocaleName.md)
1079
+
1080
+ > - [`getLocalizedUrl` hook](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/intlayer/getLocalizedUrl.md)
1081
+
1082
+ > - [`getHTMLTextDir` hook](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/intlayer/getHTMLTextDir.md)
1083
+
1084
+ > - [`hrefLang` 属性](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
1085
+
1086
+ > - [`lang` 属性](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
1087
+
1088
+ > - [`dir` 属性](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
1089
+
1090
+ > - [`aria-current` 属性](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1091
+
1092
+ ### (可选)步骤11:创建一个本地化的链接组件
1093
+
1094
+ 为了确保您的应用程序导航符合当前语言环境,您可以创建一个自定义的 `Link` 组件。该组件会自动为内部URL添加当前语言前缀。例如,当一个讲法语的用户点击“关于”页面的链接时,他们会被重定向到 `/fr/about` 而不是 `/about`。
1095
+
1096
+ 这种行为有以下几个好处:
1097
+
1098
+ - **SEO和用户体验**: 本地化的URL帮助搜索引擎正确索引语言特定的页面,并为用户提供他们偏好的语言内容。
1099
+ - **一致性**: 通过在整个应用程序中使用本地化链接,您可以保证导航保持在当前语言环境中,防止意外的语言切换。
1100
+ - **可维护性**: 将本地化逻辑集中在一个组件中简化了URL的管理,使您的代码库更易于维护和扩展。
1101
+
1102
+ 以下是一个用TypeScript实现的本地化 `Link` 组件:
1103
+
1104
+ ```tsx fileName="src/components/Link.tsx" codeFormat="typescript"
1105
+ "use client";
1106
+
1107
+ import { getLocalizedUrl } from "intlayer";
1108
+ import NextLink, { type LinkProps as NextLinkProps } from "next/link";
1109
+ import { useLocale } from "next-intlayer";
1110
+ import { forwardRef, PropsWithChildren, type ForwardedRef } from "react";
1111
+
1112
+ /**
1113
+ * 检查给定URL是否为外部链接的工具函数。
1114
+ * 如果URL以http://或https://开头,则被认为是外部链接。
1115
+ */
1116
+ export const checkIsExternalLink = (href?: string): boolean =>
1117
+ /^https?:\/\//.test(href ?? "");
1118
+
1119
+ /**
1120
+ * 一个自定义的Link组件,根据当前语言环境调整href属性。
1121
+ * 对于内部链接,它使用`getLocalizedUrl`为URL添加语言前缀(例如,/fr/about)。
1122
+ * 这确保了导航保持在相同的语言环境上下文中。
1123
+ */
1124
+ export const Link = forwardRef<
1125
+ HTMLAnchorElement,
1126
+ PropsWithChildren<NextLinkProps>
1127
+ >(({ href, children, ...props }, ref: ForwardedRef<HTMLAnchorElement>) => {
1128
+ const { locale } = useLocale();
1129
+ const isExternalLink = checkIsExternalLink(href.toString());
1130
+
1131
+ // 如果链接是内部链接并且提供了有效的href,则获取本地化URL。
1132
+ const hrefI18n: NextLinkProps["href"] =
1133
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1134
+
1135
+ return (
1136
+ <NextLink href={hrefI18n} ref={ref} {...props}>
1137
+ {children}
1138
+ </NextLink>
1139
+ );
1140
+ });
1141
+
1142
+ Link.displayName = "Link";
1143
+ ```
1144
+
1145
+ ```jsx fileName="src/components/Link.mjx" codeFormat="esm"
1146
+ 'use client';
1147
+
1148
+ import { getLocalizedUrl } from 'intlayer';
1149
+ import NextLink, { type LinkProps as NextLinkProps } from 'next/link';
1150
+ import { useLocale } from 'next-intlayer';
1151
+ import { forwardRef, PropsWithChildren, type ForwardedRef } from 'react';
1152
+
1153
+ /**
1154
+ * 检查给定URL是否为外部链接的工具函数。
1155
+ * 如果URL以http://或https://开头,则被认为是外部链接。
1156
+ */
1157
+ export const checkIsExternalLink = (href) =>
1158
+ /^https?:\/\//.test(href ?? '');
1159
+
1160
+ /**
1161
+ * 一个自定义的Link组件,根据当前语言环境调整href属性。
1162
+ * 对于内部链接,它使用`getLocalizedUrl`为URL添加语言前缀(例如,/fr/about)。
1163
+ * 这确保了导航保持在相同的语言环境上下文中。
1164
+ */
1165
+ export const Link = forwardRef(({ href, children, ...props }, ref) => {
1166
+ const { locale } = useLocale();
1167
+ const isExternalLink = checkIsExternalLink(href.toString());
1168
+
1169
+ // 如果链接是内部链接并且提供了有效的href,则获取本地化URL。
1170
+ const hrefI18n =
1171
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1172
+
1173
+ return (
1174
+ <NextLink href={hrefI18n} ref={ref} {...props}>
1175
+ {children}
1176
+ </NextLink>
1177
+ );
1178
+ });
1179
+
1180
+ Link.displayName = 'Link';
1181
+ ```
1182
+
1183
+ ```jsx fileName="src/components/Link.csx" codeFormat="commonjs"
1184
+ 'use client';
1185
+
1186
+ const { getLocalizedUrl } = require("intlayer");
1187
+ const NextLink = require("next/link");
1188
+ const { useLocale } = require("next-intlayer");
1189
+ const { forwardRef } = require("react");
1190
+
1191
+ /**
1192
+ * 检查给定URL是否为外部链接的工具函数。
1193
+ * 如果URL以http://或https://开头,则被认为是外部链接。
1194
+ */
1195
+ const checkIsExternalLink = (href) =>
1196
+ /^https?:\/\//.test(href ?? '');
1197
+
1198
+
1199
+ const Link = forwardRef(({ href, children, ...props }, ref) => {
1200
+ const { locale } = useLocale();
1201
+ const isExternalLink = checkIsExternalLink(href.toString());
1202
+
1203
+ // 如果链接是内部链接并且提供了有效的href,则获取本地化URL。
1204
+ const hrefI18n: NextLinkProps['href'] =
1205
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1206
+
1207
+ return (
1208
+ <NextLink href={hrefI18n} ref={ref} {...props}>
1209
+ {children}
1210
+ </NextLink>
1211
+ );
1212
+ });
1213
+
1214
+ Link.displayName = 'Link';
1215
+ ```
1216
+
1217
+ #### 工作原理
1218
+
1219
+ - **检测外部链接**:
1220
+ 辅助函数 `checkIsExternalLink` 用于判断URL是否为外部链接。外部链接保持不变,因为它们不需要本地化。
1221
+
1222
+ - **获取当前语言环境**:
1223
+ `useLocale` hook 提供当前语言环境(例如,法语为 `fr`)。
1224
+
1225
+ - **本地化URL**:
1226
+ 对于内部链接(即非外部链接),使用 `getLocalizedUrl` 自动为URL添加当前语言前缀。这意味着如果用户使用法语,传递 `/about` 作为 `href` 会被转换为 `/fr/about`。
1227
+
1228
+ - **返回链接**:
1229
+ 组件返回一个带有本地化URL的 `<a>` 元素,确保导航与语言环境一致。
1230
+
1231
+ 通过在整个应用程序中集成此 `Link` 组件,您可以维护一致的语言感知用户体验,同时受益于改进的SEO和可用性。
1232
+
1233
+ ### (可选)步骤 12:优化您的包大小
1234
+
1235
+ 使用 `next-intlayer` 时,字典默认包含在每个页面的包中。为了优化包大小,Intlayer 提供了一个可选的 SWC 插件,该插件通过宏智能地替换 `useIntlayer` 调用。这确保字典仅包含在实际使用它们的页面包中。
1236
+
1237
+ 要启用此优化,请安装 `@intlayer/swc` 包。安装后,`next-intlayer` 将自动检测并使用该插件:
1238
+
1239
+ ```bash packageManager="npm"
1240
+ npm install @intlayer/swc --save-dev
1241
+ ```
1242
+
1243
+ ```bash packageManager="pnpm"
1244
+ pnpm add @intlayer/swc --save-dev
1245
+ ```
1246
+
1247
+ ```bash packageManager="yarn"
1248
+ yarn add @intlayer/swc --save-dev
1249
+ ```
1250
+
1251
+ > 注意:此优化仅在 Next.js 13 及更高版本中可用。
1252
+
1253
+ > 注意:此包不会默认安装,因为 SWC 插件仍在 Next.js 中处于实验阶段。这可能会在未来发生变化。
1254
+
1255
+ ### 配置 TypeScript
1256
+
1257
+ Intlayer 使用模块增强来利用 TypeScript 的优势,使您的代码库更强大。
1258
+
1259
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1260
+
1261
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1262
+
1263
+ 确保您的 TypeScript 配置包含自动生成的类型。
1264
+
1265
+ ```json5 fileName="tsconfig.json"
1266
+ {
1267
+ // ... 您现有的 TypeScript 配置
1268
+ "include": [
1269
+ // ... 您现有的 TypeScript 配置
1270
+ ".intlayer/**/*.ts", // 包含自动生成的类型
1271
+ ],
1272
+ }
1273
+ ```
1274
+
1275
+ ### Git 配置
1276
+
1277
+ 建议忽略由 Intlayer 生成的文件。这可以避免将它们提交到您的 Git 仓库中。
1278
+
1279
+ 为此,您可以将以下指令添加到 `.gitignore` 文件中:
1280
+
1281
+ ```plaintext fileName=".gitignore"
1282
+ # 忽略由 Intlayer 生成的文件
1283
+ .intlayer
1284
+ ```
1285
+
1286
+ ### 更进一步