@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,1308 @@
1
+ # Getting Started internationalizing (i18n) with Intlayer and Next.js 15 App Router
2
+
3
+ <iframe title="The best i18n solution for Next.js? Discover Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
4
+
5
+ [アプリケーションテンプレート](https://github.com/aymericzip/intlayer-next-15-template)をGitHubで見る。
6
+
7
+ ## Intlayerを始める
8
+
9
+ **Intlayer**は、最新のウェブアプリケーションで多言語対応を簡素化するために設計された、革新的なオープンソースの国際化(i18n)ライブラリです。Intlayerは、強力な**App Router**を含む最新の**Next.js 15**フレームワークとシームレスに統合されます。**Server Components**での効率的なレンダリングに最適化されており、[**Turbopack**](https://nextjs.org/docs/architecture/turbopack)とも完全に互換性があります。
10
+
11
+ Intlayerを使用すると、以下のことが可能です:
12
+
13
+ - コンポーネントレベルで宣言的な辞書を使用して**簡単に翻訳を管理**。
14
+ - メタデータ、ルート、およびコンテンツを**動的にローカライズ**。
15
+ - **クライアントサイドおよびサーバーサイドのコンポーネントで翻訳にアクセス**。
16
+ - 自動生成された型で**TypeScriptサポート**を確保し、オートコンプリートとエラー検出を改善。
17
+ - 動的なロケール検出や切り替えなどの**高度な機能**を活用。
18
+
19
+ > IntlayerはNext.js 12、13、14、15と互換性があります。Next.js Page Routerを使用している場合は、この[ガイド](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_with_nextjs_page_router.md)を参照してください。Next.js 12、13、14でApp Routerを使用している場合は、この[ガイド](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_with_nextjs_14.md)を参照してください。
20
+
21
+ ---
22
+
23
+ ## Next.jsアプリケーションでIntlayerをセットアップするステップバイステップガイド
24
+
25
+ ### ステップ1: 依存関係をインストールする
26
+
27
+ npmを使用して必要なパッケージをインストールします:
28
+
29
+ ```bash packageManager="npm"
30
+ npm install intlayer next-intlayer
31
+ ```
32
+
33
+ ```bash packageManager="pnpm"
34
+ pnpm add intlayer next-intlayer
35
+ ```
36
+
37
+ ```bash packageManager="yarn"
38
+ yarn add intlayer next-intlayer
39
+ ```
40
+
41
+ - **intlayer**
42
+
43
+ 設定管理、翻訳、[コンテンツ宣言](https://github.com/aymericzip/intlayer/blob/main/docs/ja/dictionary/get_started.md)、トランスパイル、および[CLIコマンド](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_cli.md)を提供する国際化ツールのコアパッケージ。
44
+
45
+ - **next-intlayer**
46
+
47
+ IntlayerをNext.jsと統合するパッケージ。Next.jsの国際化のためのコンテキストプロバイダーとフックを提供します。また、[Webpack](https://webpack.js.org/)または[Turbopack](https://nextjs.org/docs/app/api-reference/turbopack)とIntlayerを統合するNext.jsプラグインや、ユーザーの優先ロケールを検出し、クッキーを管理し、URLリダイレクションを処理するミドルウェアも含まれています。
48
+
49
+ ### ステップ2: プロジェクトを設定する
50
+
51
+ アプリケーションの言語を設定するための設定ファイルを作成します:
52
+
53
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
54
+ import { Locales, type IntlayerConfig } from "intlayer";
55
+
56
+ const config: IntlayerConfig = {
57
+ internationalization: {
58
+ locales: [
59
+ Locales.ENGLISH,
60
+ Locales.FRENCH,
61
+ Locales.SPANISH,
62
+ // 他のロケール
63
+ ],
64
+ defaultLocale: Locales.ENGLISH,
65
+ },
66
+ };
67
+
68
+ export default config;
69
+ ```
70
+
71
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
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
+ const { Locales } = require("intlayer");
92
+
93
+ /** @type {import('intlayer').IntlayerConfig} */
94
+ const config = {
95
+ internationalization: {
96
+ locales: [
97
+ Locales.ENGLISH,
98
+ Locales.FRENCH,
99
+ Locales.SPANISH,
100
+ // 他のロケール
101
+ ],
102
+ defaultLocale: Locales.ENGLISH,
103
+ },
104
+ };
105
+
106
+ module.exports = config;
107
+ ```
108
+
109
+ > この設定ファイルを通じて、ローカライズされたURL、ミドルウェアリダイレクション、クッキー名、コンテンツ宣言の場所と拡張子、コンソールでのIntlayerログの無効化などを設定できます。利用可能なパラメータの完全なリストについては、[設定ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/ja/configuration.md)を参照してください。
110
+
111
+ ### ステップ3: Next.js設定にIntlayerを統合する
112
+
113
+ Next.jsの設定をIntlayerを使用するように構成します:
114
+
115
+ ```typescript filename="next.config.ts" codeFormat="typescript"
116
+ import type { NextConfig } from "next";
117
+ import { withIntlayer } from "next-intlayer/server";
118
+
119
+ const nextConfig: NextConfig = {
120
+ /* 設定オプションをここに記述 */
121
+ };
122
+
123
+ export default withIntlayer(nextConfig);
124
+ ```
125
+
126
+ ```typescript fileName="next.config.mjs" codeFormat="esm"
127
+ import { withIntlayer } from "next-intlayer/server";
128
+
129
+ /** @type {import('next').NextConfig} */
130
+ const nextConfig = {
131
+ /* 設定オプションをここに記述 */
132
+ };
133
+
134
+ export default withIntlayer(nextConfig);
135
+ ```
136
+
137
+ ```typescript fileName="next.config.cjs" codeFormat="commonjs"
138
+ const { withIntlayer } = require("next-intlayer/server");
139
+
140
+ /** @type {import('next').NextConfig} */
141
+ const nextConfig = {
142
+ /* 設定オプションをここに記述 */
143
+ };
144
+
145
+ module.exports = withIntlayer(nextConfig);
146
+ ```
147
+
148
+ > `withIntlayer()` Next.jsプラグインは、IntlayerをNext.jsと統合するために使用されます。コンテンツ宣言ファイルのビルドを確実にし、開発モードでそれらを監視します。また、[Webpack](https://webpack.js.org/)または[Turbopack](https://nextjs.org/docs/app/api-reference/turbopack)環境内でIntlayer環境変数を定義します。さらに、パフォーマンスを最適化するエイリアスを提供し、サーバーコンポーネントとの互換性を確保します。
149
+
150
+ ### ステップ4: 動的ロケールルートを定義する
151
+
152
+ `RootLayout`からすべてを削除し、以下のコードに置き換えます:
153
+
154
+ ```tsx {3} fileName="src/app/layout.tsx" codeFormat="typescript"
155
+ import type { PropsWithChildren, FC } from "react";
156
+ import "./globals.css";
157
+
158
+ const RootLayout: FC<PropsWithChildren> = ({ children }) => children;
159
+
160
+ export default RootLayout;
161
+ ```
162
+
163
+ ```jsx {3} fileName="src/app/layout.mjx" codeFormat="esm"
164
+ import "./globals.css";
165
+
166
+ const RootLayout = ({ children }) => children;
167
+
168
+ export default RootLayout;
169
+ ```
170
+
171
+ ```jsx {1,8} fileName="src/app/layout.csx" codeFormat="commonjs"
172
+ require("./globals.css");
173
+
174
+ const RootLayout = ({ children }) => children;
175
+
176
+ module.exports = {
177
+ default: RootLayout,
178
+ generateStaticParams,
179
+ };
180
+ ```
181
+
182
+ > `RootLayout`コンポーネントを空に保つことで、[`lang`](https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/lang)および[`dir`](https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/dir)属性を`<html>`タグに設定できます。
183
+
184
+ 動的ルーティングを実装するには、`[locale]`ディレクトリに新しいレイアウトを追加してロケールのパスを提供します:
185
+
186
+ ```tsx fileName="src/app/[locale]/layout.tsx" codeFormat="typescript"
187
+ import type { NextLayoutIntlayer } from "next-intlayer";
188
+ import { Inter } from "next/font/google";
189
+ import { getHTMLTextDir } from "intlayer";
190
+
191
+ const inter = Inter({ subsets: ["latin"] });
192
+
193
+ const LocaleLayout: NextLayoutIntlayer = async ({ children, params }) => {
194
+ const { locale } = await params;
195
+ return (
196
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
197
+ <body className={inter.className}>{children}</body>
198
+ </html>
199
+ );
200
+ };
201
+
202
+ export default LocaleLayout;
203
+ ```
204
+
205
+ ```jsx fileName="src/app/[locale]/layout.mjx" codeFormat="esm"
206
+ import { getHTMLTextDir } from "intlayer";
207
+
208
+ const inter = Inter({ subsets: ["latin"] });
209
+
210
+ const LocaleLayout = async ({ children, params: { locale } }) => {
211
+ const { locale } = await params;
212
+ return (
213
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
214
+ <body className={inter.className}>{children}</body>
215
+ </html>
216
+ );
217
+ };
218
+
219
+ export default LocaleLayout;
220
+ ```
221
+
222
+ ```jsx fileName="src/app/[locale]/layout.csx" codeFormat="commonjs"
223
+ const { Inter } = require("next/font/google");
224
+ const { getHTMLTextDir } = require("intlayer");
225
+
226
+ const inter = Inter({ subsets: ["latin"] });
227
+
228
+ const LocaleLayout = async ({ children, params: { locale } }) => {
229
+ const { locale } = await params;
230
+ return (
231
+ <html lang={locale} dir={getHTMLTextDir(locale)}>
232
+ <body className={inter.className}>{children}</body>
233
+ </html>
234
+ );
235
+ };
236
+
237
+ module.exports = LocaleLayout;
238
+ ```
239
+
240
+ > `[locale]`パスセグメントはロケールを定義するために使用されます。例:`/en-US/about`は`en-US`を参照し、`/fr/about`は`fr`を参照します。
241
+
242
+ 次に、アプリケーションレイアウトに`generateStaticParams`関数を実装します。
243
+
244
+ ```tsx {1} fileName="src/app/[locale]/layout.tsx" codeFormat="typescript"
245
+ export { generateStaticParams } from "next-intlayer"; // 挿入する行
246
+
247
+ const LocaleLayout: NextLayoutIntlayer = async ({ children, params }) => {
248
+ /*... 残りのコード*/
249
+ };
250
+
251
+ export default LocaleLayout;
252
+ ```
253
+
254
+ ```jsx {1} fileName="src/app/[locale]/layout.mjx" codeFormat="esm"
255
+ export { generateStaticParams } from "next-intlayer"; // 挿入する行
256
+
257
+ const LocaleLayout = async ({ children, params: { locale } }) => {
258
+ /*... 残りのコード*/
259
+ };
260
+
261
+ // ... 残りのコード
262
+ ```
263
+
264
+ ```jsx {1,7} fileName="src/app/[locale]/layout.csx" codeFormat="commonjs"
265
+ const { generateStaticParams } = require("next-intlayer"); // 挿入する行
266
+
267
+ const LocaleLayout = async ({ children, params: { locale } }) => {
268
+ /*... 残りのコード*/
269
+ };
270
+
271
+ module.exports = { default: LocaleLayout, generateStaticParams };
272
+ ```
273
+
274
+ > `generateStaticParams`は、アプリケーションがすべてのロケールに必要なページを事前ビルドし、ランタイム計算を削減し、ユーザーエクスペリエンスを向上させます。詳細については、[Next.jsのgenerateStaticParamsに関するドキュメント](https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic-rendering#generate-static-params)を参照してください。
275
+
276
+ ### ステップ5: コンテンツを宣言する
277
+
278
+ 翻訳を保存するためのコンテンツ宣言を作成および管理します:
279
+
280
+ ```tsx fileName="src/app/[locale]/page.content.ts" contentDeclarationFormat="typescript"
281
+ import { t, type Dictionary } from "intlayer";
282
+
283
+ const pageContent = {
284
+ key: "page",
285
+ content: {
286
+ getStarted: {
287
+ main: t({
288
+ en: "Get started by editing",
289
+ fr: "Commencez par éditer",
290
+ es: "Comience por editar",
291
+ }),
292
+ pageLink: "src/app/page.tsx",
293
+ },
294
+ },
295
+ } satisfies Dictionary;
296
+
297
+ export default pageContent;
298
+ ```
299
+
300
+ ```javascript fileName="src/app/[locale]/page.content.mjs" contentDeclarationFormat="esm"
301
+ import { t } from "intlayer";
302
+
303
+ /** @type {import('intlayer').Dictionary} */
304
+ const pageContent = {
305
+ key: "page",
306
+ content: {
307
+ getStarted: {
308
+ main: t({
309
+ en: "Get started by editing",
310
+ fr: "Commencez par éditer",
311
+ es: "Comience por editar",
312
+ }),
313
+ pageLink: "src/app/page.tsx",
314
+ },
315
+ },
316
+ };
317
+
318
+ export default pageContent;
319
+ ```
320
+
321
+ ```javascript fileName="src/app/[locale]/page.content.cjs" contentDeclarationFormat="commonjs"
322
+ const { t } = require("intlayer");
323
+
324
+ /** @type {import('intlayer').Dictionary} */
325
+ const pageContent = {
326
+ key: "page",
327
+ content: {
328
+ getStarted: {
329
+ main: t({
330
+ en: "Get started by editing",
331
+ fr: "Commencez par éditer",
332
+ es: "Comience por editar",
333
+ }),
334
+ pageLink: "src/app/page.tsx",
335
+ },
336
+ },
337
+ };
338
+
339
+ module.exports = pageContent;
340
+ ```
341
+
342
+ ```json fileName="src/app/[locale]/page.content.json" contentDeclarationFormat="json"
343
+ {
344
+ "$schema": "https://intlayer.org/schema.json",
345
+ "key": "page",
346
+ "content": {
347
+ "getStarted": {
348
+ "nodeType": "translation",
349
+ "translation": {
350
+ "en": "Get started by editing",
351
+ "fr": "Commencez par éditer",
352
+ "es": "Comience por editar"
353
+ }
354
+ },
355
+ "pageLink": {
356
+ "nodeType": "translation",
357
+ "translation": {
358
+ "en": "src/app/page.tsx",
359
+ "fr": "src/app/page.tsx",
360
+ "es": "src/app/page.tsx"
361
+ }
362
+ }
363
+ }
364
+ }
365
+ ```
366
+
367
+ > コンテンツ宣言は、`contentDir`ディレクトリ(デフォルトでは`./src`)に含まれている限り、アプリケーション内のどこにでも定義できます。また、コンテンツ宣言ファイルの拡張子(デフォルトでは`.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`)に一致する必要があります。
368
+
369
+ > 詳細については、[コンテンツ宣言ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/ja/dictionary/get_started.md)を参照してください。
370
+
371
+ ### ステップ6: コード内でコンテンツを利用する
372
+
373
+ アプリケーション全体でコンテンツ辞書にアクセスします:
374
+
375
+ ```tsx fileName="src/app/[locale]/page.tsx" codeFormat="typescript"
376
+ import type { FC } from "react";
377
+ import { ClientComponentExample } from "@components/ClientComponentExample";
378
+ import { ServerComponentExample } from "@components/ServerComponentExample";
379
+ import { type NextPageIntlayer, IntlayerClientProvider } from "next-intlayer";
380
+ import { IntlayerServerProvider, useIntlayer } from "next-intlayer/server";
381
+
382
+ const PageContent: FC = () => {
383
+ const content = useIntlayer("page");
384
+
385
+ return (
386
+ <>
387
+ <p>{content.getStarted.main}</p>
388
+ <code>{content.getStarted.pageLink}</code>
389
+ </>
390
+ );
391
+ };
392
+
393
+ const Page: NextPageIntlayer = async ({ params }) => {
394
+ const { locale } = await params;
395
+
396
+ return (
397
+ <IntlayerServerProvider locale={locale}>
398
+ <PageContent />
399
+ <ServerComponentExample />
400
+
401
+ <IntlayerClientProvider locale={locale}>
402
+ <ClientComponentExample />
403
+ </IntlayerClientProvider>
404
+ </IntlayerServerProvider>
405
+ );
406
+ };
407
+
408
+ export default Page;
409
+ ```
410
+
411
+ ```jsx fileName="src/app/[locale]/page.mjx" codeFormat="esm"
412
+ import { ClientComponentExample } from "@components/ClientComponentExample";
413
+ import { ServerComponentExample } from "@components/ServerComponentExample";
414
+ import { IntlayerClientProvider } from "next-intlayer";
415
+ import { IntlayerServerProvider, useIntlayer } from "next-intlayer/server";
416
+
417
+ const PageContent = () => {
418
+ const content = useIntlayer("page");
419
+
420
+ return (
421
+ <>
422
+ <p>{content.getStarted.main}</p>
423
+ <code>{content.getStarted.pageLink}</code>
424
+ </>
425
+ );
426
+ };
427
+
428
+ const Page = async ({ params }) => {
429
+ const { locale } = await params;
430
+
431
+ return (
432
+ <IntlayerServerProvider locale={locale}>
433
+ <PageContent />
434
+ <ServerComponentExample />
435
+
436
+ <IntlayerClientProvider locale={locale}>
437
+ <ClientComponentExample />
438
+ </IntlayerClientProvider>
439
+ </IntlayerServerProvider>
440
+ );
441
+ };
442
+
443
+ export default Page;
444
+ ```
445
+
446
+ ```jsx fileName="src/app/[locale]/page.csx" codeFormat="commonjs"
447
+ import { ClientComponentExample } from "@components/ClientComponentExample";
448
+ import { ServerComponentExample } from "@components/ServerComponentExample";
449
+ import { IntlayerClientProvider } from "next-intlayer";
450
+ import { IntlayerServerProvider, useIntlayer } from "next-intlayer/server";
451
+
452
+ const PageContent = () => {
453
+ const content = useIntlayer("page");
454
+
455
+ return (
456
+ <>
457
+ <p>{content.getStarted.main}</p>
458
+ <code>{content.getStarted.pageLink}</code>
459
+ </>
460
+ );
461
+ };
462
+
463
+ const Page = async ({ params }) => {
464
+ const { locale } = await params;
465
+
466
+ return (
467
+ <IntlayerServerProvider locale={locale}>
468
+ <PageContent />
469
+ <ServerComponentExample />
470
+
471
+ <IntlayerClientProvider locale={locale}>
472
+ <ClientComponentExample />
473
+ </IntlayerClientProvider>
474
+ </IntlayerServerProvider>
475
+ );
476
+ };
477
+ ```
478
+
479
+ - **`IntlayerClientProvider`**は、クライアントサイドコンポーネントにロケールを提供するために使用されます。任意の親コンポーネントに配置できますが、レイアウトに配置することをお勧めします。これは、Next.jsがページ間でレイアウトコードを共有するため、より効率的です。`IntlayerClientProvider`をレイアウトに使用することで、各ページで再初期化する必要がなくなり、パフォーマンスが向上し、アプリケーション全体で一貫したローカリゼーションコンテキストが維持されます。
480
+ - **`IntlayerServerProvider`**は、サーバーの子コンポーネントにロケールを提供するために使用されます。レイアウトに設定することはできません。
481
+
482
+ > レイアウトとページは共通のサーバーコンテキストを共有できません。これは、サーバーコンテキストシステムがリクエストごとのデータストア([Reactのキャッシュ](https://react.dev/reference/react/cache)メカニズムを介して)に基づいているためです。これにより、アプリケーションの異なるセグメントに対して各「コンテキスト」が再作成されます。共有レイアウトにプロバイダーを配置すると、この分離が破損し、サーバーコンポーネントにサーバーコンテキスト値が正しく伝播されなくなります。
483
+
484
+ ```tsx {4,7} fileName="src/components/ClientComponentExample.tsx" codeFormat="typescript"
485
+ "use client";
486
+
487
+ import type { FC } from "react";
488
+ import { useIntlayer } from "next-intlayer";
489
+
490
+ export const ClientComponentExample: FC = () => {
491
+ const content = useIntlayer("client-component-example"); // 関連するコンテンツ宣言を作成
492
+
493
+ return (
494
+ <div>
495
+ <h2>{content.title}</h2>
496
+ <p>{content.content}</p>
497
+ </div>
498
+ );
499
+ };
500
+ ```
501
+
502
+ ```jsx {3,6} fileName="src/components/ClientComponentExample.mjx" codeFormat="esm"
503
+ "use client";
504
+
505
+ import { useIntlayer } from "next-intlayer";
506
+
507
+ const ClientComponentExample = () => {
508
+ const content = useIntlayer("client-component-example"); // 関連するコンテンツ宣言を作成
509
+
510
+ return (
511
+ <div>
512
+ <h2>{content.title}</h2>
513
+ <p>{content.content}</p>
514
+ </div>
515
+ );
516
+ };
517
+ ```
518
+
519
+ ```jsx {3,6} fileName="src/components/ClientComponentExample.csx" codeFormat="commonjs"
520
+ "use client";
521
+
522
+ const { useIntlayer } = require("next-intlayer");
523
+
524
+ const ClientComponentExample = () => {
525
+ const content = useIntlayer("client-component-example"); // 関連するコンテンツ宣言を作成
526
+
527
+ return (
528
+ <div>
529
+ <h2>{content.title}</h2>
530
+ <p>{content.content}</p>
531
+ </div>
532
+ );
533
+ };
534
+ ```
535
+
536
+ ```tsx {2} fileName="src/components/ServerComponentExample.tsx" codeFormat="typescript"
537
+ import type { FC } from "react";
538
+ import { useIntlayer } from "next-intlayer/server";
539
+
540
+ export const ServerComponentExample: FC = () => {
541
+ const content = useIntlayer("server-component-example"); // 関連するコンテンツ宣言を作成
542
+
543
+ return (
544
+ <div>
545
+ <h2>{content.title}</h2>
546
+ <p>{content.content}</p>
547
+ </div>
548
+ );
549
+ };
550
+ ```
551
+
552
+ ```jsx {1} fileName="src/components/ServerComponentExample.mjx" codeFormat="esm"
553
+ import { useIntlayer } from "next-intlayer/server";
554
+
555
+ const ServerComponentExample = () => {
556
+ const content = useIntlayer("server-component-example"); // 関連するコンテンツ宣言を作成
557
+
558
+ return (
559
+ <div>
560
+ <h2>{content.title}</h2>
561
+ <p>{content.content}</p>
562
+ </div>
563
+ );
564
+ };
565
+ ```
566
+
567
+ ```jsx {1} fileName="src/components/ServerComponentExample.csx" codeFormat="commonjs"
568
+ const { useIntlayer } = require("next-intlayer/server");
569
+
570
+ const ServerComponentExample = () => {
571
+ const content = useIntlayer("server-component-example"); // 関連するコンテンツ宣言を作成
572
+
573
+ return (
574
+ <div>
575
+ <h2>{content.title}</h2>
576
+ <p>{content.content}</p>
577
+ </div>
578
+ );
579
+ };
580
+ ```
581
+
582
+ > コンテンツを`alt`、`title`、`href`、`aria-label`などの`string`属性で使用する場合は、関数の値を呼び出す必要があります。例えば:
583
+
584
+ > ```jsx
585
+ >
586
+ > ```
587
+
588
+ > <img src={content.image.src.value} alt={content.image.value} />
589
+
590
+ > ```
591
+ >
592
+ > ```
593
+
594
+ > `useIntlayer`フックの詳細については、[ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/next-intlayer/useIntlayer.md)を参照してください。
595
+
596
+ ### (オプション) ステップ7: ロケール検出用ミドルウェアを設定する
597
+
598
+ ユーザーの優先ロケールを検出するためのミドルウェアを設定します:
599
+
600
+ ```typescript fileName="src/middleware.ts" codeFormat="typescript"
601
+ export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
602
+
603
+ export const config = {
604
+ matcher:
605
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
606
+ };
607
+ ```
608
+
609
+ ```javascript fileName="src/middleware.mjs" codeFormat="esm"
610
+ export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
611
+
612
+ export const config = {
613
+ matcher:
614
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
615
+ };
616
+ ```
617
+
618
+ ```javascript fileName="src/middleware.cjs" codeFormat="commonjs"
619
+ const { intlayerMiddleware } = require("next-intlayer/middleware");
620
+
621
+ const config = {
622
+ matcher:
623
+ "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
624
+ };
625
+
626
+ module.exports = { middleware: intlayerMiddleware, config };
627
+ ```
628
+
629
+ > `intlayerMiddleware`は、ユーザーの優先ロケールを検出し、[設定](https://github.com/aymericzip/intlayer/blob/main/docs/ja/configuration.md)で指定された適切なURLにリダイレクトします。また、ユーザーの優先ロケールをクッキーに保存することも可能です。
630
+
631
+ ### (オプション) ステップ8: メタデータの国際化
632
+
633
+ ページのタイトルなどのメタデータを国際化する場合は、Next.jsが提供する`generateMetadata`関数を使用できます。この関数内で`getTranslation`関数を使用してメタデータを翻訳します。
634
+
635
+ ````typescript fileName="src/app/[locale]/layout.tsx or src/app/[locale]/page.tsx" codeFormat="typescript"
636
+ import {
637
+ type IConfigLocales,
638
+ getTranslation,
639
+ getMultilingualUrls,
640
+ } from "intlayer";
641
+ import type { Metadata } from "next";
642
+ import type { LocalPromiseParams } from "next-intlayer";
643
+
644
+ export const generateMetadata = async ({
645
+ params,
646
+ }: LocalPromiseParams): Promise<Metadata> => {
647
+ const { locale } = await params;
648
+ const t = <T>(content: IConfigLocales<T>) => getTranslation(content, locale);
649
+
650
+ /**
651
+ * 各ロケールのすべてのURLを含むオブジェクトを生成します。
652
+ *
653
+ * 例:
654
+ * ```ts
655
+ * getMultilingualUrls('/about');
656
+ *
657
+ * // 結果
658
+ * // {
659
+ * // en: '/about',
660
+ * // fr: '/fr/about',
661
+ * // es: '/es/about',
662
+ * // }
663
+ * ```
664
+ */
665
+ const multilingualUrls = getMultilingualUrls("/");
666
+
667
+ return {
668
+ title: t<string>({
669
+ en: "My title",
670
+ fr: "Mon titre",
671
+ es: "Mi título",
672
+ }),
673
+ description: t({
674
+ en: "My description",
675
+ fr: "Ma description",
676
+ es: "Mi descripción",
677
+ }),
678
+ alternates: {
679
+ canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
680
+ languages: { ...multilingualUrls, "x-default": "/" },
681
+ },
682
+ openGraph: {
683
+ url: multilingualUrls[locale],
684
+ },
685
+ };
686
+ };
687
+
688
+ // ... 残りのコード
689
+ ````
690
+
691
+ ````javascript fileName="src/app/[locale]/layout.mjs or src/app/[locale]/page.mjs" codeFormat="esm"
692
+ import { getTranslation, getMultilingualUrls } from "intlayer";
693
+
694
+ export const generateMetadata = async ({ params }) => {
695
+ const { locale } = await params;
696
+ const t = (content) => getTranslation(content, locale);
697
+
698
+ /**
699
+ * 各ロケールのすべてのURLを含むオブジェクトを生成します。
700
+ *
701
+ * 例:
702
+ * ```ts
703
+ * getMultilingualUrls('/about');
704
+ *
705
+ * // 結果
706
+ * // {
707
+ * // en: '/about',
708
+ * // fr: '/fr/about',
709
+ * // es: '/es/about'
710
+ * // }
711
+ * ```
712
+ */
713
+ const multilingualUrls = getMultilingualUrls("/");
714
+
715
+ return {
716
+ title: t({
717
+ en: "My title",
718
+ fr: "Mon titre",
719
+ es: "Mi título",
720
+ }),
721
+ description: t({
722
+ en: "My description",
723
+ fr: "Ma description",
724
+ es: "Mi descripción",
725
+ }),
726
+ alternates: {
727
+ canonical: multilingualUrls[locale],
728
+ languages: { ...multilingualUrls, "x-default": "/" },
729
+ },
730
+ openGraph: {
731
+ url: multilingualUrls[locale],
732
+ },
733
+ };
734
+ };
735
+
736
+ // ... 残りのコード
737
+ ````
738
+
739
+ ````javascript fileName="src/app/[locale]/layout.cjs or src/app/[locale]/page.cjs" codeFormat="commonjs"
740
+ const { getTranslation, getMultilingualUrls } = require("intlayer");
741
+
742
+ const generateMetadata = async ({ params }) => {
743
+ const { locale } = await params;
744
+
745
+ const t = (content) => getTranslation(content, locale);
746
+
747
+ /**
748
+ * 各ロケールのすべてのURLを含むオブジェクトを生成します。
749
+ *
750
+ * 例:
751
+ * ```ts
752
+ * getMultilingualUrls('/about');
753
+ *
754
+ * // 結果
755
+ * // {
756
+ * // en: '/about',
757
+ * // fr: '/fr/about',
758
+ * // es: '/es/about'
759
+ * // }
760
+ * ```
761
+ */
762
+ const multilingualUrls = getMultilingualUrls("/");
763
+
764
+ return {
765
+ title: t({
766
+ en: "My title",
767
+ fr: "Mon titre",
768
+ es: "Mi título",
769
+ }),
770
+ description: t({
771
+ en: "My description",
772
+ fr: "Ma description",
773
+ es: "Mi descripción",
774
+ }),
775
+ alternates: {
776
+ canonical: multilingualUrls[locale],
777
+ languages: { ...multilingualUrls, "x-default": "/" },
778
+ },
779
+ openGraph: {
780
+ url: multilingualUrls[locale],
781
+ },
782
+ };
783
+ };
784
+
785
+ module.exports = { generateMetadata };
786
+
787
+ // ... 残りのコード
788
+ ````
789
+
790
+ > メタデータの最適化について詳しくは、[公式Next.jsドキュメント](https://nextjs.org/docs/app/building-your-application/optimizing/metadata)を参照してください。
791
+
792
+ ### (オプション) ステップ9: sitemap.xmlおよびrobots.txtの国際化
793
+
794
+ `sitemap.xml`および`robots.txt`を国際化するには、Intlayerが提供する`getMultilingualUrls`関数を使用します。この関数を使用すると、サイトマップ用の多言語URLを生成できます。
795
+
796
+ ```tsx fileName="src/app/sitemap.ts" codeFormat="typescript"
797
+ import { getMultilingualUrls } from "intlayer";
798
+ import type { MetadataRoute } from "next";
799
+
800
+ const sitemap = (): MetadataRoute.Sitemap => [
801
+ {
802
+ url: "https://example.com",
803
+ alternates: {
804
+ languages: { ...getMultilingualUrls("https://example.com") },
805
+ },
806
+ },
807
+ {
808
+ url: "https://example.com/login",
809
+ alternates: {
810
+ languages: { ...getMultilingualUrls("https://example.com/login") },
811
+ },
812
+ },
813
+ {
814
+ url: "https://example.com/register",
815
+ alternates: {
816
+ languages: { ...getMultilingualUrls("https://example.com/register") },
817
+ },
818
+ },
819
+ ];
820
+
821
+ export default sitemap;
822
+ ```
823
+
824
+ ```jsx fileName="src/app/sitemap.mjx" codeFormat="esm"
825
+ import { getMultilingualUrls } from "intlayer";
826
+
827
+ const sitemap = () => [
828
+ {
829
+ url: "https://example.com",
830
+ alternates: {
831
+ languages: { ...getMultilingualUrls("https://example.com") },
832
+ },
833
+ },
834
+ {
835
+ url: "https://example.com/login",
836
+ alternates: {
837
+ languages: { ...getMultilingualUrls("https://example.com/login") },
838
+ },
839
+ },
840
+ {
841
+ url: "https://example.com/register",
842
+ alternates: {
843
+ languages: { ...getMultilingualUrls("https://example.com/register") },
844
+ },
845
+ },
846
+ ];
847
+
848
+ export default sitemap;
849
+ ```
850
+
851
+ ```jsx fileName="src/app/sitemap.csx" codeFormat="commonjs"
852
+ const { getMultilingualUrls } = require("intlayer");
853
+
854
+ const sitemap = () => [
855
+ {
856
+ url: "https://example.com",
857
+ alternates: {
858
+ languages: { ...getMultilingualUrls("https://example.com") },
859
+ },
860
+ },
861
+ {
862
+ url: "https://example.com/login",
863
+ alternates: {
864
+ languages: { ...getMultilingualUrls("https://example.com/login") },
865
+ },
866
+ },
867
+ {
868
+ url: "https://example.com/register",
869
+ alternates: {
870
+ languages: { ...getMultilingualUrls("https://example.com/register") },
871
+ },
872
+ },
873
+ ];
874
+
875
+ module.exports = sitemap;
876
+ ```
877
+
878
+ ```tsx fileName="src/app/robots.ts" codeFormat="typescript"
879
+ import type { MetadataRoute } from "next";
880
+ import { getMultilingualUrls } from "intlayer";
881
+
882
+ const getAllMultilingualUrls = (urls: string[]) =>
883
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)) as string[]);
884
+
885
+ const robots = (): MetadataRoute.Robots => ({
886
+ rules: {
887
+ userAgent: "*",
888
+ allow: ["/"],
889
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
890
+ },
891
+ host: "https://example.com",
892
+ sitemap: `https://example.com/sitemap.xml`,
893
+ });
894
+
895
+ export default robots;
896
+ ```
897
+
898
+ ```jsx fileName="src/app/robots.mjx" codeFormat="esm"
899
+ import { getMultilingualUrls } from "intlayer";
900
+
901
+ const getAllMultilingualUrls = (urls) =>
902
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
903
+
904
+ const robots = () => ({
905
+ rules: {
906
+ userAgent: "*",
907
+ allow: ["/"],
908
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
909
+ },
910
+ host: "https://example.com",
911
+ sitemap: `https://example.com/sitemap.xml`,
912
+ });
913
+
914
+ export default robots;
915
+ ```
916
+
917
+ ```jsx fileName="src/app/robots.csx" codeFormat="commonjs"
918
+ const { getMultilingualUrls } = require("intlayer");
919
+
920
+ const getAllMultilingualUrls = (urls) =>
921
+ urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
922
+
923
+ const robots = () => ({
924
+ rules: {
925
+ userAgent: "*",
926
+ allow: ["/"],
927
+ disallow: getAllMultilingualUrls(["/login", "/register"]),
928
+ },
929
+ host: "https://example.com",
930
+ sitemap: `https://example.com/sitemap.xml`,
931
+ });
932
+
933
+ module.exports = robots;
934
+ ```
935
+
936
+ > サイトマップの最適化について詳しくは、[公式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)を参照してください。
937
+
938
+ ### (オプション) ステップ10: コンテンツの言語を変更する
939
+
940
+ Next.jsでコンテンツの言語を変更するには、`Link`コンポーネントを使用してユーザーを適切なローカライズされたページにリダイレクトするのが推奨される方法です。`Link`コンポーネントはページのプリフェッチを可能にし、完全なページリロードを避けるのに役立ちます。
941
+
942
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
943
+ "use client";
944
+
945
+ import type { FC } from "react";
946
+ import {
947
+ Locales,
948
+ getHTMLTextDir,
949
+ getLocaleName,
950
+ getLocalizedUrl,
951
+ } from "intlayer";
952
+ import { useLocale } from "next-intlayer";
953
+ import Link from "next/link";
954
+
955
+ export const LocaleSwitcher: FC = () => {
956
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
957
+ const { setLocaleCookie } = useLocaleCookie();
958
+
959
+ return (
960
+ <div>
961
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
962
+ <div id="localePopover" popover="auto">
963
+ {availableLocales.map((localeItem) => (
964
+ <Link
965
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
966
+ hrefLang={localeItem}
967
+ key={localeItem}
968
+ aria-current={locale === localeItem ? "page" : undefined}
969
+ onClick={() => setLocaleCookie(localeItem)}
970
+ >
971
+ <span>
972
+ {/* ロケール - 例: FR */}
973
+ {localeItem}
974
+ </span>
975
+ <span>
976
+ {/* 自身のロケールでの言語 - 例: Français */}
977
+ {getLocaleName(localeItem, locale)}
978
+ </span>
979
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
980
+ {/* 現在のロケールでの言語 - 例: Francés (現在のロケールがLocales.SPANISHに設定されている場合) */}
981
+ {getLocaleName(localeItem)}
982
+ </span>
983
+ <span dir="ltr" lang={Locales.ENGLISH}>
984
+ {/* 英語での言語 - 例: French */}
985
+ {getLocaleName(localeItem, Locales.ENGLISH)}
986
+ </span>
987
+ </Link>
988
+ ))}
989
+ </div>
990
+ </div>
991
+ );
992
+ };
993
+ ```
994
+
995
+ ```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
996
+ "use client";
997
+
998
+ import {
999
+ Locales,
1000
+ getHTMLTextDir,
1001
+ getLocaleName,
1002
+ getLocalizedUrl,
1003
+ } from "intlayer";
1004
+ import { useLocale } from "next-intlayer";
1005
+ import Link from "next/link";
1006
+
1007
+ export const LocaleSwitcher = () => {
1008
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
1009
+ const { setLocaleCookie } = useLocaleCookie();
1010
+
1011
+ return (
1012
+ <div>
1013
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
1014
+ <div id="localePopover" popover="auto">
1015
+ {availableLocales.map((localeItem) => (
1016
+ <Link
1017
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
1018
+ hrefLang={localeItem}
1019
+ key={localeItem}
1020
+ aria-current={locale === localeItem ? "page" : undefined}
1021
+ onClick={() => setLocaleCookie(localeItem)}
1022
+ >
1023
+ <span>
1024
+ {/* ロケール - 例: FR */}
1025
+ {localeItem}
1026
+ </span>
1027
+ <span>
1028
+ {/* 自身のロケールでの言語 - 例: Français */}
1029
+ {getLocaleName(localeItem, locale)}
1030
+ </span>
1031
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1032
+ {/* 現在のロケールでの言語 - 例: Francés (現在のロケールがLocales.SPANISHに設定されている場合) */}
1033
+ {getLocaleName(localeItem)}
1034
+ </span>
1035
+ <span dir="ltr" lang={Locales.ENGLISH}>
1036
+ {/* 英語での言語 - 例: French */}
1037
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1038
+ </span>
1039
+ </Link>
1040
+ ))}
1041
+ </div>
1042
+ </div>
1043
+ );
1044
+ };
1045
+ ```
1046
+
1047
+ ```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
1048
+ "use client";
1049
+
1050
+ const {
1051
+ Locales,
1052
+ getHTMLTextDir,
1053
+ getLocaleName,
1054
+ getLocalizedUrl,
1055
+ } = require("intlayer");
1056
+ const { useLocale } = require("next-intlayer");
1057
+ const Link = require("next/link");
1058
+
1059
+ export const LocaleSwitcher = () => {
1060
+ const { locale, pathWithoutLocale, availableLocales } = useLocale();
1061
+ const { setLocaleCookie } = useLocaleCookie();
1062
+
1063
+ return (
1064
+ <div>
1065
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
1066
+ <div id="localePopover" popover="auto">
1067
+ {availableLocales.map((localeItem) => (
1068
+ <Link
1069
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
1070
+ hrefLang={localeItem}
1071
+ key={localeItem}
1072
+ aria-current={locale === localeItem ? "page" : undefined}
1073
+ onClick={() => setLocaleCookie(localeItem)}
1074
+ >
1075
+ <span>
1076
+ {/* ロケール - 例: FR */}
1077
+ {localeItem}
1078
+ </span>
1079
+ <span>
1080
+ {/* 自身のロケールでの言語 - 例: Français */}
1081
+ {getLocaleName(localeItem, locale)}
1082
+ </span>
1083
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1084
+ {/* 現在のロケールでの言語 - 例: Francés (現在のロケールがLocales.SPANISHに設定されている場合) */}
1085
+ {getLocaleName(localeItem)}
1086
+ </span>
1087
+ <span dir="ltr" lang={Locales.ENGLISH}>
1088
+ {/* 英語での言語 - 例: French */}
1089
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1090
+ </span>
1091
+ </Link>
1092
+ ))}
1093
+ </div>
1094
+ </div>
1095
+ );
1096
+ };
1097
+ ```
1098
+
1099
+ > ドキュメント参照:
1100
+
1101
+ > - [`useLocale`フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/next-intlayer/useLocale.md)
1102
+
1103
+ > - [`getLocaleName`フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/intlayer/getLocaleName.md)
1104
+
1105
+ > - [`getLocalizedUrl`フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/intlayer/getLocalizedUrl.md)
1106
+
1107
+ > - [`getHTMLTextDir`フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/intlayer/getHTMLTextDir.md)
1108
+
1109
+ > - [`hrefLang`属性](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=ja)
1110
+
1111
+ > - [`lang`属性](https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/lang)
1112
+
1113
+ > - [`dir`属性](https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/dir)
1114
+
1115
+ > - [`aria-current`属性](https://developer.mozilla.org/ja/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1116
+
1117
+ ### (オプション) ステップ11: ローカライズされたリンクコンポーネントを作成する
1118
+
1119
+ アプリケーションのナビゲーションが現在のロケールを尊重するようにするために、カスタム`Link`コンポーネントを作成できます。このコンポーネントは、内部URLを自動的に現在の言語でプレフィックスします。例えば、フランス語を話すユーザーが「About」ページへのリンクをクリックすると、`/about`ではなく`/fr/about`にリダイレクトされます。
1120
+
1121
+ この動作は以下の理由で便利です:
1122
+
1123
+ - **SEOとユーザーエクスペリエンス**:ローカライズされたURLは、検索エンジンが言語固有のページを正しくインデックスし、ユーザーに好みの言語でコンテンツを提供するのに役立ちます。
1124
+ - **一貫性**:アプリケーション全体でローカライズされたリンクを使用することで、ナビゲーションが現在のロケール内に留まり、予期しない言語の切り替えを防ぎます。
1125
+ - **保守性**:ローカリゼーションロジックを単一のコンポーネントに集中させることで、URLの管理が簡素化され、アプリケーションが成長するにつれてコードベースの保守性が向上します。
1126
+
1127
+ 以下は、TypeScriptでのローカライズされた`Link`コンポーネントの実装例です:
1128
+
1129
+ ```tsx fileName="src/components/Link.tsx" codeFormat="typescript"
1130
+ "use client";
1131
+
1132
+ import { getLocalizedUrl } from "intlayer";
1133
+ import NextLink, { type LinkProps as NextLinkProps } from "next/link";
1134
+ import { useLocale } from "next-intlayer";
1135
+ import type { PropsWithChildren, FC } from "react";
1136
+
1137
+ /**
1138
+ * 指定されたURLが外部リンクかどうかを確認するユーティリティ関数。
1139
+ * URLがhttp://またはhttps://で始まる場合、外部リンクと見なされます。
1140
+ */
1141
+ export const checkIsExternalLink = (href?: string): boolean =>
1142
+ /^https?:\/\//.test(href ?? "");
1143
+
1144
+ /**
1145
+ * 現在のロケールに基づいてhref属性を適応させるカスタムLinkコンポーネント。
1146
+ * 内部リンクの場合、`getLocalizedUrl`を使用してURLにロケールをプレフィックスします(例:/fr/about)。
1147
+ * これにより、ナビゲーションが同じロケールコンテキスト内に留まることが保証されます。
1148
+ */
1149
+ export const Link: FC<PropsWithChildren<NextLinkProps>> = ({
1150
+ href,
1151
+ children,
1152
+ ...props
1153
+ }) => {
1154
+ const { locale } = useLocale();
1155
+ const isExternalLink = checkIsExternalLink(href.toString());
1156
+
1157
+ // リンクが内部リンクで有効なhrefが提供されている場合、ローカライズされたURLを取得します。
1158
+ const hrefI18n: NextLinkProps["href"] =
1159
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1160
+
1161
+ return (
1162
+ <NextLink href={hrefI18n} {...props}>
1163
+ {children}
1164
+ </NextLink>
1165
+ );
1166
+ };
1167
+ ```
1168
+
1169
+ ```jsx fileName="src/components/Link.mjx" codeFormat="esm"
1170
+ "use client";
1171
+
1172
+ import { getLocalizedUrl } from "intlayer";
1173
+ import NextLink from "next/link";
1174
+ import { useLocale } from "next-intlayer";
1175
+
1176
+ /**
1177
+ * 指定されたURLが外部リンクかどうかを確認するユーティリティ関数。
1178
+ * URLがhttp://またはhttps://で始まる場合、外部リンクと見なされます。
1179
+ */
1180
+ export const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1181
+
1182
+ /**
1183
+ * 現在のロケールに基づいてhref属性を適応させるカスタムLinkコンポーネント。
1184
+ * 内部リンクの場合、`getLocalizedUrl`を使用してURLにロケールをプレフィックスします(例:/fr/about)。
1185
+ * これにより、ナビゲーションが同じロケールコンテキスト内に留まることが保証されます。
1186
+ */
1187
+ export const Link = ({ href, children, ...props }) => {
1188
+ const { locale } = useLocale();
1189
+ const isExternalLink = checkIsExternalLink(href.toString());
1190
+
1191
+ // リンクが内部リンクで有効なhrefが提供されている場合、ローカライズされたURLを取得します。
1192
+ const hrefI18n =
1193
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1194
+
1195
+ return (
1196
+ <NextLink href={hrefI18n} {...props}>
1197
+ {children}
1198
+ </NextLink>
1199
+ );
1200
+ };
1201
+ ```
1202
+
1203
+ ```jsx fileName="src/components/Link.csx" codeFormat="commonjs"
1204
+ "use client";
1205
+
1206
+ const { getLocalizedUrl } = require("intlayer");
1207
+ const NextLink = require("next/link");
1208
+ const { useLocale } = require("next-intlayer");
1209
+
1210
+ /**
1211
+ * 指定されたURLが外部リンクかどうかを確認するユーティリティ関数。
1212
+ * URLがhttp://またはhttps://で始まる場合、外部リンクと見なされます。
1213
+ */
1214
+ const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1215
+
1216
+ /**
1217
+ * 現在のロケールに基づいてhref属性を適応させるカスタムLinkコンポーネント。
1218
+ * 内部リンクの場合、`getLocalizedUrl`を使用してURLにロケールをプレフィックスします(例:/fr/about)。
1219
+ * これにより、ナビゲーションが同じロケールコンテキスト内に留まることが保証されます。
1220
+ */
1221
+ const Link = ({ href, children, ...props }) => {
1222
+ const { locale } = useLocale();
1223
+ const isExternalLink = checkIsExternalLink(href.toString());
1224
+
1225
+ // リンクが内部リンクで有効なhrefが提供されている場合、ローカライズされたURLを取得します。
1226
+ const hrefI18n =
1227
+ href && !isExternalLink ? getLocalizedUrl(href.toString(), locale) : href;
1228
+
1229
+ return (
1230
+ <NextLink href={hrefI18n} {...props}>
1231
+ {children}
1232
+ </NextLink>
1233
+ );
1234
+ };
1235
+ ```
1236
+
1237
+ #### 動作の仕組み
1238
+
1239
+ - **外部リンクの検出**:
1240
+ ヘルパー関数`checkIsExternalLink`は、URLが外部リンクかどうかを判定します。外部リンクは変更されません。なぜなら、それらはローカリゼーションを必要としないからです。
1241
+
1242
+ - **現在のロケールの取得**:
1243
+ `useLocale`フックは、現在のロケール(例:`fr`はフランス語)を提供します。
1244
+
1245
+ - **URLのローカライズ**:
1246
+ 内部リンク(つまり、外部リンクではないもの)については、`getLocalizedUrl`を使用してURLに現在のロケールを自動的にプレフィックスします。これにより、ユーザーがフランス語を使用している場合、`/about`を`href`として渡すと、`/fr/about`に変換されます。
1247
+
1248
+ - **リンクの返却**:
1249
+ コンポーネントは、ローカライズされたURLを持つ`<a>`要素を返し、一貫性のあるロケールに基づいたナビゲーションを保証します。
1250
+
1251
+ この`Link`コンポーネントをアプリケーション全体で統合することで、一貫性があり、言語に配慮したユーザーエクスペリエンスを維持しながら、SEOと使いやすさを向上させることができます。
1252
+
1253
+ ### (オプション)ステップ12: バンドルサイズを最適化する
1254
+
1255
+ `next-intlayer`を使用する際、辞書はデフォルトで各ページのバンドルに含まれます。バンドルサイズを最適化するために、Intlayerはマクロを使用して`useIntlayer`呼び出しをインテリジェントに置き換えるオプションのSWCプラグインを提供しています。これにより、辞書は実際に使用されるページのバンドルにのみ含まれるようになります。
1256
+
1257
+ この最適化を有効にするには、`@intlayer/swc`パッケージをインストールしてください。インストールが完了すると、`next-intlayer`は自動的にプラグインを検出して使用します:
1258
+
1259
+ ```bash packageManager="npm"
1260
+ npm install @intlayer/swc --save-dev
1261
+ ```
1262
+
1263
+ ```bash packageManager="pnpm"
1264
+ pnpm add @intlayer/swc --save-dev
1265
+ ```
1266
+
1267
+ ```bash packageManager="yarn"
1268
+ yarn add @intlayer/swc --save-dev
1269
+ ```
1270
+
1271
+ > 注: この最適化はNext.js 13以降でのみ利用可能です。
1272
+
1273
+ > 注: このパッケージはデフォルトではインストールされていません。なぜなら、SWCプラグインはNext.jsでまだ実験的な段階にあるためです。将来的に変更される可能性があります。
1274
+
1275
+ ### TypeScriptを設定する
1276
+
1277
+ Intlayerは、TypeScriptのメリットを活用し、コードベースを強化するためにモジュール拡張を使用します。
1278
+
1279
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1280
+
1281
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1282
+
1283
+ 自動生成された型を含めるようにTypeScript設定を確認してください。
1284
+
1285
+ ```json5 fileName="tsconfig.json"
1286
+ {
1287
+ // ... 既存のTypeScript設定
1288
+ "include": [
1289
+ // ... 既存のTypeScript設定
1290
+ ".intlayer/**/*.ts", // 自動生成された型を含める
1291
+ ],
1292
+ }
1293
+ ```
1294
+
1295
+ ### Git設定
1296
+
1297
+ Intlayerによって生成されたファイルを無視することをお勧めします。これにより、それらをGitリポジトリにコミットすることを避けることができます。
1298
+
1299
+ これを行うには、以下の指示を`.gitignore`ファイルに追加します:
1300
+
1301
+ ```plaintext fileName=".gitignore"
1302
+ # Intlayerによって生成されたファイルを無視する
1303
+ .intlayer
1304
+ ```
1305
+
1306
+ ### さらに進む
1307
+
1308
+ さらに進むために、[ビジュアルエディター](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_visual_editor.md)を実装するか、[CMS](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_CMS.md)を使用してコンテンツを外部化することができます。