@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,1584 @@
1
+ # Erste Schritte mit der Internationalisierung (i18n) mit Intlayer, Vite und React
2
+
3
+ <iframe title="Vite + React: Build a Multilingual App from Scratch using 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/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
4
+
5
+ Siehe [Application Template](https://github.com/aymericzip/intlayer-vite-react-template) auf GitHub.
6
+
7
+ ## Was ist Intlayer?
8
+
9
+ **Intlayer** ist eine innovative, Open-Source-Internationalisierungsbibliothek (i18n), die entwickelt wurde, um die Unterstützung mehrerer Sprachen in modernen Webanwendungen zu vereinfachen.
10
+
11
+ Mit Intlayer können Sie:
12
+
13
+ - **Übersetzungen einfach verwalten** mit deklarativen Wörterbüchern auf Komponentenebene.
14
+ - **Metadaten, Routen und Inhalte dynamisch lokalisieren**.
15
+ - **TypeScript-Unterstützung sicherstellen** mit automatisch generierten Typen, die die Autovervollständigung und Fehlererkennung verbessern.
16
+ - **Von erweiterten Funktionen profitieren**, wie dynamische Spracherkennung und -umschaltung.
17
+
18
+ ---
19
+
20
+ ## Schritt-für-Schritt-Anleitung zur Einrichtung von Intlayer in einer Vite- und React-Anwendung
21
+
22
+ ### Schritt 1: Abhängigkeiten installieren
23
+
24
+ Installieren Sie die erforderlichen Pakete mit npm:
25
+
26
+ ```bash packageManager="npm"
27
+ npm install intlayer react-intlayer vite-intlayer
28
+ ```
29
+
30
+ ```bash packageManager="pnpm"
31
+ pnpm add intlayer react-intlayer vite-intlayer
32
+ ```
33
+
34
+ ```bash packageManager="yarn"
35
+ yarn add intlayer react-intlayer vite-intlayer
36
+ ```
37
+
38
+ - **intlayer**
39
+
40
+ Das Kernpaket, das Internationalisierungswerkzeuge für Konfigurationsmanagement, Übersetzung, [Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/de/dictionary/get_started.md), Transpilation und [CLI-Befehle](https://github.com/aymericzip/intlayer/blob/main/docs/de/intlayer_cli.md) bereitstellt.
41
+
42
+ - **react-intlayer**
43
+ Das Paket, das Intlayer in React-Anwendungen integriert. Es bietet Kontextanbieter und Hooks für die Internationalisierung in React.
44
+
45
+ - **vite-intlayer**
46
+ Beinhaltet das Vite-Plugin zur Integration von Intlayer mit dem [Vite-Bundler](https://vite.dev/guide/why.html#why-bundle-for-production) sowie Middleware zur Erkennung der bevorzugten Sprache des Benutzers, Verwaltung von Cookies und URL-Weiterleitung.
47
+
48
+ ### Schritt 2: Konfiguration Ihres Projekts
49
+
50
+ Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu konfigurieren:
51
+
52
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
53
+ import { Locales, type IntlayerConfig } from "intlayer";
54
+
55
+ const config: IntlayerConfig = {
56
+ internationalization: {
57
+ locales: [
58
+ Locales.ENGLISH,
59
+ Locales.FRENCH,
60
+ Locales.SPANISH,
61
+ // Ihre weiteren Sprachen
62
+ ],
63
+ defaultLocale: Locales.ENGLISH,
64
+ },
65
+ };
66
+
67
+ export default config;
68
+ ```
69
+
70
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
71
+ import { Locales } from "intlayer";
72
+
73
+ /** @type {import('intlayer').IntlayerConfig} */
74
+ const config = {
75
+ internationalization: {
76
+ locales: [
77
+ Locales.ENGLISH,
78
+ Locales.FRENCH,
79
+ Locales.SPANISH,
80
+ // Ihre weiteren Sprachen
81
+ ],
82
+ defaultLocale: Locales.ENGLISH,
83
+ },
84
+ };
85
+
86
+ export default config;
87
+ ```
88
+
89
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
90
+ const { Locales } = require("intlayer");
91
+
92
+ /** @type {import('intlayer').IntlayerConfig} */
93
+ const config = {
94
+ internationalization: {
95
+ locales: [
96
+ Locales.ENGLISH,
97
+ Locales.FRENCH,
98
+ Locales.SPANISH,
99
+ // Ihre weiteren Sprachen
100
+ ],
101
+ defaultLocale: Locales.ENGLISH,
102
+ },
103
+ };
104
+
105
+ module.exports = config;
106
+ ```
107
+
108
+ > Über diese Konfigurationsdatei können Sie lokalisierte URLs, Middleware-Weiterleitungen, Cookie-Namen, den Speicherort und die Erweiterung Ihrer Inhaltsdeklarationen, das Deaktivieren von Intlayer-Logs in der Konsole und mehr einrichten. Eine vollständige Liste der verfügbaren Parameter finden Sie in der [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/de/configuration.md).
109
+
110
+ ### Schritt 3: Integration von Intlayer in Ihre Vite-Konfiguration
111
+
112
+ Fügen Sie das Intlayer-Plugin in Ihre Konfiguration ein.
113
+
114
+ ```typescript fileName="vite.config.ts" codeFormat="typescript"
115
+ import { defineConfig } from "vite";
116
+ import react from "@vitejs/plugin-react-swc";
117
+ import { intlayerPlugin } from "vite-intlayer";
118
+
119
+ // https://vitejs.dev/config/
120
+ export default defineConfig({
121
+ plugins: [react(), intlayerPlugin()],
122
+ });
123
+ ```
124
+
125
+ ```javascript fileName="vite.config.mjs" codeFormat="esm"
126
+ import { defineConfig } from "vite";
127
+ import react from "@vitejs/plugin-react-swc";
128
+ import { intlayerPlugin } from "vite-intlayer";
129
+
130
+ // https://vitejs.dev/config/
131
+ export default defineConfig({
132
+ plugins: [react(), intlayerPlugin()],
133
+ });
134
+ ```
135
+
136
+ ```javascript fileName="vite.config.cjs" codeFormat="commonjs"
137
+ const { defineConfig } = require("vite");
138
+ const react = require("@vitejs/plugin-react-swc");
139
+ const { intlayerPlugin } = require("vite-intlayer");
140
+
141
+ // https://vitejs.dev/config/
142
+ module.exports = defineConfig({
143
+ plugins: [react(), intlayerPlugin()],
144
+ });
145
+ ```
146
+
147
+ > Das `intlayerPlugin()` Vite-Plugin wird verwendet, um Intlayer mit Vite zu integrieren. Es stellt sicher, dass Inhaltsdeklarationsdateien erstellt und im Entwicklungsmodus überwacht werden. Es definiert Intlayer-Umgebungsvariablen innerhalb der Vite-Anwendung. Zusätzlich bietet es Aliase zur Optimierung der Leistung.
148
+
149
+ ### Schritt 4: Deklarieren Sie Ihre Inhalte
150
+
151
+ Erstellen und verwalten Sie Ihre Inhaltsdeklarationen, um Übersetzungen zu speichern:
152
+
153
+ ```tsx fileName="src/app.content.tsx" contentDeclarationFormat="typescript"
154
+ import { t, type Dictionary } from "intlayer";
155
+ import type { ReactNode } from "react";
156
+
157
+ const appContent = {
158
+ key: "app",
159
+ content: {
160
+ viteLogo: t({
161
+ en: "Vite logo",
162
+ fr: "Logo Vite",
163
+ es: "Logo Vite",
164
+ de: "Vite-Logo",
165
+ }),
166
+ reactLogo: t({
167
+ en: "React logo",
168
+ fr: "Logo React",
169
+ es: "Logo React",
170
+ de: "React-Logo",
171
+ }),
172
+
173
+ title: "Vite + React",
174
+
175
+ count: t({
176
+ en: "count is ",
177
+ fr: "le compte est ",
178
+ es: "el recuento es ",
179
+ de: "die Anzahl ist ",
180
+ }),
181
+
182
+ edit: t<ReactNode>({
183
+ en: (
184
+ <>
185
+ Edit <code>src/App.tsx</code> and save to test HMR
186
+ </>
187
+ ),
188
+ fr: (
189
+ <>
190
+ Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR
191
+ </>
192
+ ),
193
+ es: (
194
+ <>
195
+ Edita <code>src/App.tsx</code> y guarda para probar HMR
196
+ </>
197
+ ),
198
+ de: (
199
+ <>
200
+ Bearbeiten Sie <code>src/App.tsx</code> und speichern Sie, um HMR zu
201
+ testen
202
+ </>
203
+ ),
204
+ }),
205
+
206
+ readTheDocs: t({
207
+ en: "Click on the Vite and React logos to learn more",
208
+ fr: "Cliquez sur les logos Vite et React pour en savoir plus",
209
+ es: "Haga clic en los logotipos de Vite y React para obtener más información",
210
+ de: "Klicken Sie auf die Vite- und React-Logos, um mehr zu erfahren",
211
+ }),
212
+ },
213
+ } satisfies Dictionary;
214
+
215
+ export default appContent;
216
+ ```
217
+
218
+ ```javascript fileName="src/app.content.mjs" contentDeclarationFormat="esm"
219
+ import { t } from "intlayer";
220
+
221
+ /** @type {import('intlayer').Dictionary} */
222
+ const appContent = {
223
+ key: "app",
224
+ content: {
225
+ viteLogo: t({
226
+ en: "Vite logo",
227
+ fr: "Logo Vite",
228
+ es: "Logo Vite",
229
+ de: "Vite-Logo",
230
+ }),
231
+ reactLogo: t({
232
+ en: "React logo",
233
+ fr: "Logo React",
234
+ es: "Logo React",
235
+ de: "React-Logo",
236
+ }),
237
+
238
+ title: "Vite + React",
239
+
240
+ count: t({
241
+ en: "count is ",
242
+ fr: "le compte est ",
243
+ es: "el recuento es ",
244
+ de: "die Anzahl ist ",
245
+ }),
246
+
247
+ edit:
248
+ t <
249
+ ReactNode >
250
+ {
251
+ // Vergessen Sie nicht, React zu importieren, wenn Sie einen React-Node in Ihrem Inhalt verwenden
252
+ en: (
253
+ <>
254
+ Edit <code>src/App.tsx</code> and save to test HMR
255
+ </>
256
+ ),
257
+ fr: (
258
+ <>
259
+ Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR
260
+ </>
261
+ ),
262
+ es: (
263
+ <>
264
+ Edita <code>src/App.tsx</code> y guarda para probar HMR
265
+ </>
266
+ ),
267
+ de: (
268
+ <>
269
+ Bearbeiten Sie <code>src/App.tsx</code> und speichern Sie, um HMR zu
270
+ testen
271
+ </>
272
+ ),
273
+ },
274
+
275
+ readTheDocs: t({
276
+ en: "Click on the Vite and React logos to learn more",
277
+ fr: "Cliquez sur les logos Vite et React pour en savoir plus",
278
+ es: "Haga clic en los logotipos de Vite y React para obtener más información",
279
+ de: "Klicken Sie auf die Vite- und React-Logos, um mehr zu erfahren",
280
+ }),
281
+ },
282
+ };
283
+
284
+ export default appContent;
285
+ ```
286
+
287
+ ```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
288
+ const { t } = require("intlayer");
289
+
290
+ /** @type {import('intlayer').Dictionary} */
291
+ const appContent = {
292
+ key: "app",
293
+ content: {
294
+ viteLogo: t({
295
+ en: "Vite logo",
296
+ fr: "Logo Vite",
297
+ es: "Logo Vite",
298
+ de: "Vite-Logo",
299
+ }),
300
+ reactLogo: t({
301
+ en: "React logo",
302
+ fr: "Logo React",
303
+ es: "Logo React",
304
+ de: "React-Logo",
305
+ }),
306
+
307
+ title: "Vite + React",
308
+
309
+ count: t({
310
+ en: "count is ",
311
+ fr: "le compte est ",
312
+ es: "el recuento es ",
313
+ de: "die Anzahl ist ",
314
+ }),
315
+
316
+ {
317
+ "$schema": "https://intlayer.org/schema.json",
318
+ "key": "app",
319
+ "content": {
320
+ "viteLogo": {
321
+ "nodeType": "translation",
322
+ "translation": {
323
+ "en": "Vite logo",
324
+ "fr": "Logo Vite",
325
+ "es": "Logo Vite",
326
+ "de": "Vite-Logo"
327
+ }
328
+ },
329
+ "reactLogo": {
330
+ "nodeType": "translation",
331
+ "translation": {
332
+ "en": "React logo",
333
+ "fr": "Logo React",
334
+ "es": "Logo React",
335
+ "de": "React-Logo"
336
+ }
337
+ },
338
+ "title": {
339
+ "nodeType": "translation",
340
+ "translation": {
341
+ "en": "Vite + React",
342
+ "fr": "Vite + React",
343
+ "es": "Vite + React",
344
+ "de": "Vite + React"
345
+ }
346
+ },
347
+ "count": {
348
+ "nodeType": "translation",
349
+ "translation": {
350
+ "en": "count is ",
351
+ "fr": "le compte est ",
352
+ "es": "el recuento es ",
353
+ "de": "der Zähler ist "
354
+ }
355
+ },
356
+ "edit": {
357
+ "nodeType": "translation",
358
+ "translation": {
359
+ "en": "Edit src/App.tsx and save to test HMR",
360
+ "fr": "Éditez src/App.tsx et enregistrez pour tester HMR",
361
+ "es": "Edita src/App.tsx y guarda para probar HMR",
362
+ "de": "Bearbeiten Sie src/App.tsx und speichern Sie, um HMR zu testen"
363
+ }
364
+ },
365
+ "readTheDocs": {
366
+ "nodeType": "translation",
367
+ "translation": {
368
+ "en": "Click on the Vite and React logos to learn more",
369
+ "fr": "Cliquez sur les logos Vite et React pour en savoir plus",
370
+ "es": "Haga clic en los logotipos de Vite y React para obtener más información",
371
+ "de": "Klicken Sie auf die Vite- und React-Logos, um mehr zu erfahren"
372
+ }
373
+ }
374
+ }
375
+ }
376
+ ```
377
+
378
+ > Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, solange sie im `contentDir`-Verzeichnis (standardmäßig `./src`) enthalten sind. Und sie müssen mit der Dateierweiterung der Inhaltsdeklaration übereinstimmen (standardmäßig `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
379
+
380
+ > Für weitere Details lesen Sie die [Dokumentation zur Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/de/dictionary/get_started.md).
381
+
382
+ > Wenn Ihre Inhaltsdatei TSX-Code enthält, sollten Sie `import React from "react";` in Ihrer Inhaltsdatei importieren.
383
+
384
+ ### Schritt 5: Verwenden Sie Intlayer in Ihrem Code
385
+
386
+ Greifen Sie auf Ihre Inhaltswörterbücher in Ihrer gesamten Anwendung zu:
387
+
388
+ ```tsx {5,9} fileName="src/App.tsx" codeFormat="typescript"
389
+ import { useState, type FC } from "react";
390
+ import reactLogo from "./assets/react.svg";
391
+ import viteLogo from "/vite.svg";
392
+ import "./App.css";
393
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
394
+
395
+ const AppContent: FC = () => {
396
+ const [count, setCount] = useState(0);
397
+ const content = useIntlayer("app");
398
+
399
+ return (
400
+ <>
401
+ <div>
402
+ <a href="https://vitejs.dev" target="_blank">
403
+ <img src={viteLogo} className="logo" alt={content.viteLogo.value} />
404
+ </a>
405
+ <a href="https://react.dev" target="_blank">
406
+ <img
407
+ src={reactLogo}
408
+ className="logo react"
409
+ alt={content.reactLogo.value}
410
+ />
411
+ </a>
412
+ </div>
413
+ <h1>{content.title}</h1>
414
+ <div className="card">
415
+ <button onClick={() => setCount((count) => count + 1)}>
416
+ {content.count}
417
+ {count}
418
+ </button>
419
+ <p>{content.edit}</p>
420
+ </div>
421
+ <p className="read-the-docs">{content.readTheDocs}</p>
422
+ </>
423
+ );
424
+ };
425
+
426
+ const App: FC = () => (
427
+ <IntlayerProvider>
428
+ <AppContent />
429
+ </IntlayerProvider>
430
+ );
431
+
432
+ export default App;
433
+ ```
434
+
435
+ ```tsx {5,9} fileName="src/App.msx" codeFormat="esm"
436
+ import { useState } from "react";
437
+ import reactLogo from "./assets/react.svg";
438
+ import viteLogo from "/vite.svg";
439
+ import "./App.css";
440
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
441
+
442
+ const AppContent = () => {
443
+ const [count, setCount] = useState(0);
444
+ const content = useIntlayer("app");
445
+
446
+ return (
447
+ <>
448
+ <div>
449
+ <a href="https://vitejs.dev" target="_blank">
450
+ <img src={viteLogo} className="logo" alt={content.viteLogo.value} />
451
+ </a>
452
+ <a href="https://react.dev" target="_blank">
453
+ <img
454
+ src={reactLogo}
455
+ className="logo react"
456
+ alt={content.reactLogo.value}
457
+ />
458
+ </a>
459
+ </div>
460
+ <h1>{content.title}</h1>
461
+ <div className="card">
462
+ <button onClick={() => setCount((count) => count + 1)}>
463
+ {content.count}
464
+ {count}
465
+ </button>
466
+ <p>{content.edit}</p>
467
+ </div>
468
+ <p className="read-the-docs">{content.readTheDocs}</p>
469
+ </>
470
+ );
471
+ };
472
+
473
+ const App = () => (
474
+ <IntlayerProvider>
475
+ <AppContent />
476
+ </IntlayerProvider>
477
+ );
478
+
479
+ export default App;
480
+ ```
481
+
482
+ ```tsx {5,9} fileName="src/App.csx" codeFormat="commonjs"
483
+ const { useState } = require("react");
484
+ const reactLogo = require("./assets/react.svg");
485
+ const viteLogo = require("/vite.svg");
486
+ require("./App.css");
487
+ const { IntlayerProvider, useIntlayer } = require("react-intlayer");
488
+
489
+ const AppContent = () => {
490
+ const [count, setCount] = useState(0);
491
+ const content = useIntlayer("app");
492
+
493
+ return (
494
+ <>
495
+ <div>
496
+ <a href="https://vitejs.dev" target="_blank">
497
+ <img src={viteLogo} className="logo" alt={content.viteLogo.value} />
498
+ </a>
499
+ <a href="https://react.dev" target="_blank">
500
+ <img
501
+ src={reactLogo}
502
+ className="logo react"
503
+ alt={content.reactLogo.value}
504
+ />
505
+ </a>
506
+ </div>
507
+ <h1>{content.title}</h1>
508
+ <div className="card">
509
+ <button onClick={() => setCount((count) => count + 1)}>
510
+ {content.count}
511
+ {count}
512
+ </button>
513
+ <p>{content.edit}</p>
514
+ </div>
515
+ <p className="read-the-docs">{content.readTheDocs}</p>
516
+ </>
517
+ );
518
+ };
519
+
520
+ const App = () => (
521
+ <IntlayerProvider>
522
+ <AppContent />
523
+ </IntlayerProvider>
524
+ );
525
+
526
+ module.exports = App;
527
+ ```
528
+
529
+ > Wenn Sie Ihren Inhalt in einem `string`-Attribut wie `alt`, `title`, `href`, `aria-label` usw. verwenden möchten, müssen Sie den Wert der Funktion aufrufen, wie:
530
+
531
+ > ```jsx
532
+ >
533
+ > ```
534
+
535
+ > <img src={content.image.src.value} alt={content.image.value} />
536
+
537
+ > ```
538
+ >
539
+ > ```
540
+
541
+ > Um mehr über den `useIntlayer`-Hook zu erfahren, lesen Sie die [Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/de/packages/react-intlayer/useIntlayer.md).
542
+
543
+ ### (Optional) Schritt 6: Ändern Sie die Sprache Ihres Inhalts
544
+
545
+ Um die Sprache Ihres Inhalts zu ändern, können Sie die Funktion `setLocale` verwenden, die vom `useLocale`-Hook bereitgestellt wird. Diese Funktion ermöglicht es Ihnen, die Locale der Anwendung festzulegen und den Inhalt entsprechend zu aktualisieren.
546
+
547
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
548
+ import type { FC } from "react";
549
+ import { Locales } from "intlayer";
550
+ import { useLocale } from "react-intlayer";
551
+
552
+ const LocaleSwitcher: FC = () => {
553
+ const { setLocale } = useLocale();
554
+
555
+ return (
556
+ <button onClick={() => setLocale(Locales.English)}>
557
+ Sprache auf Englisch ändern
558
+ </button>
559
+ );
560
+ };
561
+ ```
562
+
563
+ ```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
564
+ import { Locales } from "intlayer";
565
+ import { useLocale } from "react-intlayer";
566
+
567
+ const LocaleSwitcher = () => {
568
+ const { setLocale } = useLocale();
569
+
570
+ return (
571
+ <button onClick={() => setLocale(Locales.English)}>
572
+ Sprache auf Englisch ändern
573
+ </button>
574
+ );
575
+ };
576
+ ```
577
+
578
+ ```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
579
+ const { Locales } = require("intlayer");
580
+
581
+ const { useLocale } = require("react-intlayer");
582
+
583
+ const LocaleSwitcher = () => {
584
+ const { setLocale } = useLocale();
585
+
586
+ return (
587
+ <button onClick={() => setLocale(Locales.English)}>
588
+ Sprache auf Englisch ändern
589
+ </button>
590
+ );
591
+ };
592
+ ```
593
+
594
+ > Um mehr über den `useLocale` Hook zu erfahren, lesen Sie die [Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/de/packages/react-intlayer/useLocale.md).
595
+
596
+ ### (Optional) Schritt 7: Lokalisierte Routen zu Ihrer Anwendung hinzufügen
597
+
598
+ Das Ziel dieses Schritts ist es, eindeutige Routen für jede Sprache zu erstellen. Dies ist nützlich für SEO und SEO-freundliche URLs.
599
+ Beispiel:
600
+
601
+ ```plaintext
602
+ - https://example.com/about
603
+ - https://example.com/es/about
604
+ - https://example.com/fr/about
605
+ ```
606
+
607
+ > Standardmäßig werden die Routen für die Standardsprache nicht vorangestellt. Wenn Sie die Standardsprache voranstellen möchten, können Sie die Option `middleware.prefixDefault` in Ihrer Konfiguration auf `true` setzen. Weitere Informationen finden Sie in der [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/de/configuration.md).
608
+
609
+ Um lokalisierte Routen zu Ihrer Anwendung hinzuzufügen, können Sie eine `LocaleRouter`-Komponente erstellen, die die Routen Ihrer Anwendung umschließt und lokalisierungsbasierte Routen verwaltet. Hier ist ein Beispiel mit [React Router](https://reactrouter.com/home):
610
+
611
+ ```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
612
+ // Importieren der notwendigen Abhängigkeiten und Funktionen
613
+ import { type Locales, configuration, getPathWithoutLocale } from "intlayer"; // Dienstprogramme und Typen aus 'intlayer'
614
+ import type { FC, PropsWithChildren } from "react"; // React-Typen für funktionale Komponenten und Props
615
+ import { IntlayerProvider } from "react-intlayer"; // Provider für den Internationalisierungskontext
616
+ import {
617
+ BrowserRouter,
618
+ Routes,
619
+ Route,
620
+ Navigate,
621
+ useLocation,
622
+ } from "react-router-dom"; // Router-Komponenten zur Navigation
623
+
624
+ // Destrukturierung der Konfiguration aus Intlayer
625
+ const { internationalization, middleware } = configuration;
626
+ const { locales, defaultLocale } = internationalization;
627
+
628
+ /**
629
+ * Eine Komponente, die Lokalisierung verwaltet und Kinder mit dem entsprechenden Lokalisierungskontext umschließt.
630
+ * Sie verwaltet die URL-basierte Lokalisierungserkennung und Validierung.
631
+ */
632
+ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
633
+ children,
634
+ locale,
635
+ }) => {
636
+ const { pathname, search } = useLocation(); // Aktuellen URL-Pfad abrufen
637
+
638
+ // Bestimmen der aktuellen Sprache, Standardwert verwenden, falls nicht angegeben
639
+ const currentLocale = locale ?? defaultLocale;
640
+
641
+ // Entfernen des Sprachpräfixes aus dem Pfad, um einen Basispfad zu erstellen
642
+ const pathWithoutLocale = getPathWithoutLocale(
643
+ pathname // Aktueller URL-Pfad
644
+ );
645
+
646
+ /**
647
+ * Wenn middleware.prefixDefault wahr ist, sollte die Standardsprache immer vorangestellt werden.
648
+ */
649
+ if (middleware.prefixDefault) {
650
+ // Validieren der Sprache
651
+ if (!locale || !locales.includes(locale)) {
652
+ // Umleiten zur Standardsprache mit aktualisiertem Pfad
653
+ return (
654
+ <Navigate
655
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
656
+ replace // Ersetzen des aktuellen Verlaufs mit dem neuen Eintrag
657
+ />
658
+ );
659
+ }
660
+
661
+ // Kinder mit dem IntlayerProvider umschließen und die aktuelle Sprache setzen
662
+ return (
663
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
664
+ );
665
+ } else {
666
+ /**
667
+ * Wenn middleware.prefixDefault falsch ist, wird die Standardsprache nicht vorangestellt.
668
+ * Sicherstellen, dass die aktuelle Sprache gültig ist und nicht die Standardsprache ist.
669
+ */
670
+ if (
671
+ currentLocale.toString() !== defaultLocale.toString() &&
672
+ !locales
673
+ .filter(
674
+ (locale) => locale.toString() !== defaultLocale.toString() // Standardsprache ausschließen
675
+ )
676
+ .includes(currentLocale) // Überprüfen, ob die aktuelle Sprache in der Liste der gültigen Sprachen ist
677
+ ) {
678
+ // Umleiten zum Pfad ohne Sprachpräfix
679
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
680
+ }
681
+
682
+ // Kinder mit dem IntlayerProvider umschließen und die aktuelle Sprache setzen
683
+ return (
684
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
685
+ );
686
+ }
687
+ };
688
+
689
+ /**
690
+ * Eine Router-Komponente, die sprachspezifische Routen einrichtet.
691
+ * Sie verwendet React Router, um die Navigation zu verwalten und lokalisierte Komponenten zu rendern.
692
+ */
693
+ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
694
+ <BrowserRouter>
695
+ <Routes>
696
+ {locales
697
+ .filter(
698
+ (locale) => middleware.prefixDefault || locale !== defaultLocale
699
+ )
700
+ .map((locale) => (
701
+ <Route
702
+ // Routenmuster, um die Sprache (z. B. /en/, /fr/) zu erfassen und alle nachfolgenden Pfade zuzuordnen
703
+ path={`/${locale}/*`}
704
+ key={locale}
705
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt Kinder mit Sprachverwaltung
706
+ />
707
+ ))}
708
+
709
+ {
710
+ // Wenn das Voranstellen der Standardsprache deaktiviert ist, die Kinder direkt am Stamm-Pfad rendern
711
+ !middleware.prefixDefault && (
712
+ <Route
713
+ path="*"
714
+ element={
715
+ <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
716
+ } // Umschließt Kinder mit Sprachverwaltung
717
+ />
718
+ )
719
+ }
720
+ </Routes>
721
+ </BrowserRouter>
722
+ );
723
+ ```
724
+
725
+ ```jsx fileName="src/components/LocaleRouter.mjx" codeFormat="esm"
726
+ // Importieren der notwendigen Abhängigkeiten und Funktionen
727
+ import { configuration, getPathWithoutLocale } from "intlayer"; // Dienstprogramme und Typen aus 'intlayer'
728
+ import { IntlayerProvider } from "react-intlayer"; // Provider für den Internationalisierungskontext
729
+ import {
730
+ BrowserRouter,
731
+ Routes,
732
+ Route,
733
+ Navigate,
734
+ useLocation,
735
+ } from "react-router-dom"; // Router-Komponenten zur Navigation
736
+
737
+ // Destrukturierung der Konfiguration aus Intlayer
738
+ const { internationalization, middleware } = configuration;
739
+ const { locales, defaultLocale } = internationalization;
740
+
741
+ /**
742
+ * Eine Komponente, die Lokalisierung verwaltet und Kinder mit dem entsprechenden Lokalisierungskontext umschließt.
743
+ * Sie verwaltet die URL-basierte Lokalisierungserkennung und Validierung.
744
+ */
745
+ const AppLocalized = ({ children, locale }) => {
746
+ const { pathname, search } = useLocation(); // Aktuellen URL-Pfad abrufen
747
+
748
+ // Bestimmen der aktuellen Sprache, Standardwert verwenden, falls nicht angegeben
749
+ const currentLocale = locale ?? defaultLocale;
750
+
751
+ // Entfernen des Sprachpräfixes aus dem Pfad, um einen Basispfad zu erstellen
752
+ const pathWithoutLocale = getPathWithoutLocale(
753
+ pathname // Aktueller URL-Pfad
754
+ );
755
+
756
+ /**
757
+ * Wenn middleware.prefixDefault wahr ist, sollte die Standardsprache immer vorangestellt werden.
758
+ */
759
+ if (middleware.prefixDefault) {
760
+ // Validieren der Sprache
761
+ if (!locale || !locales.includes(locale)) {
762
+ // Umleiten zur Standardsprache mit aktualisiertem Pfad
763
+ return (
764
+ <Navigate
765
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
766
+ replace // Ersetzen des aktuellen Verlaufs mit dem neuen Eintrag
767
+ />
768
+ );
769
+ }
770
+
771
+ // Kinder mit dem IntlayerProvider umschließen und die aktuelle Sprache setzen
772
+ return (
773
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
774
+ );
775
+ } else {
776
+ /**
777
+ * Wenn middleware.prefixDefault falsch ist, wird die Standardsprache nicht vorangestellt.
778
+ * Sicherstellen, dass die aktuelle Sprache gültig ist und nicht die Standardsprache ist.
779
+ */
780
+ if (
781
+ currentLocale.toString() !== defaultLocale.toString() &&
782
+ !locales
783
+ .filter(
784
+ (locale) => locale.toString() !== defaultLocale.toString() // Standardsprache ausschließen
785
+ )
786
+ .includes(currentLocale) // Überprüfen, ob die aktuelle Sprache in der Liste der gültigen Sprachen ist
787
+ ) {
788
+ // Umleiten zum Pfad ohne Sprachpräfix
789
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
790
+ }
791
+
792
+ // Kinder mit dem IntlayerProvider umschließen und die aktuelle Sprache setzen
793
+ return (
794
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
795
+ );
796
+ }
797
+ };
798
+
799
+ /**
800
+ * Ein Router-Komponente, die locale-spezifische Routen einrichtet.
801
+ * Verwendet React Router, um die Navigation zu verwalten und lokalisierte Komponenten zu rendern.
802
+ */
803
+ export const LocaleRouter = ({ children }) => (
804
+ <BrowserRouter>
805
+ <Routes>
806
+ {locales
807
+ .filter(
808
+ (locale) => middleware.prefixDefault || locale !== defaultLocale
809
+ )
810
+ .map((locale) => (
811
+ <Route
812
+ // Routenmuster, um die Locale zu erfassen (z. B. /de/, /fr/) und alle nachfolgenden Pfade zuzuordnen
813
+ path={`/${locale}/*`}
814
+ key={locale}
815
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umhüllt Kinder mit Locale-Management
816
+ />
817
+ ))}
818
+
819
+ {
820
+ // Wenn das Präfix für die Standard-Locale deaktiviert ist, rendere die Kinder direkt im Root-Pfad
821
+ !middleware.prefixDefault && (
822
+ <Route
823
+ path="*"
824
+ element={
825
+ <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
826
+ } // Umhüllt Kinder mit Locale-Management
827
+ />
828
+ )
829
+ }
830
+ </Routes>
831
+ </BrowserRouter>
832
+ );
833
+ ```
834
+
835
+ ```jsx fileName="src/components/LocaleRouter.cjx" codeFormat="commonjs"
836
+ // Importieren der notwendigen Abhängigkeiten und Funktionen
837
+ const { configuration, getPathWithoutLocale } = require("intlayer"); // Dienstprogramme und Typen aus 'intlayer'
838
+ const { IntlayerProvider, useLocale } = require("react-intlayer"); // Provider für den Internationalisierungskontext
839
+ const {
840
+ BrowserRouter,
841
+ Routes,
842
+ Route,
843
+ Navigate,
844
+ useLocation,
845
+ } = require("react-router-dom"); // Router-Komponenten zur Verwaltung der Navigation
846
+
847
+ // Destrukturierung der Konfiguration aus Intlayer
848
+ const { internationalization, middleware } = configuration;
849
+ const { locales, defaultLocale } = internationalization;
850
+
851
+ /**
852
+ * Eine Komponente, die Lokalisierung verwaltet und Kinder mit dem entsprechenden Locale-Kontext umhüllt.
853
+ * Verarbeitet URL-basierte Locale-Erkennung und -Validierung.
854
+ */
855
+ const AppLocalized = ({ children, locale }) => {
856
+ const { pathname, search } = useLocation(); // Aktuellen URL-Pfad abrufen
857
+
858
+ // Bestimmen der aktuellen Locale, Rückgriff auf die Standard-Locale, falls nicht angegeben
859
+ const currentLocale = locale ?? defaultLocale;
860
+
861
+ // Entfernen des Locale-Präfixes aus dem Pfad, um einen Basis-Pfad zu erstellen
862
+ const pathWithoutLocale = getPathWithoutLocale(
863
+ pathname // Aktueller URL-Pfad
864
+ );
865
+
866
+ /**
867
+ * Wenn middleware.prefixDefault wahr ist, sollte die Standard-Locale immer vorangestellt werden.
868
+ */
869
+ if (middleware.prefixDefault) {
870
+ // Validieren der Locale
871
+ if (!locale || !locales.includes(locale)) {
872
+ // Weiterleitung zur Standard-Locale mit dem aktualisierten Pfad
873
+ return (
874
+ <Navigate
875
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
876
+ replace // Ersetzt den aktuellen Verlaufseintrag durch den neuen
877
+ />
878
+ );
879
+ }
880
+
881
+ // Umhüllt Kinder mit dem IntlayerProvider und setzt die aktuelle Locale
882
+ return (
883
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
884
+ );
885
+ } else {
886
+ /**
887
+ * Wenn middleware.prefixDefault falsch ist, wird die Standard-Locale nicht vorangestellt.
888
+ * Sicherstellen, dass die aktuelle Locale gültig ist und nicht die Standard-Locale ist.
889
+ */
890
+ if (
891
+ currentLocale.toString() !== defaultLocale.toString() &&
892
+ !locales
893
+ .filter(
894
+ (locale) => locale.toString() !== defaultLocale.toString() // Ausschluss der Standard-Locale
895
+ )
896
+ .includes(currentLocale) // Überprüfen, ob die aktuelle Locale in der Liste der gültigen Locales ist
897
+ ) {
898
+ // Weiterleitung zum Pfad ohne Locale-Präfix
899
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
900
+ }
901
+
902
+ // Umhüllt Kinder mit dem IntlayerProvider und setzt die aktuelle Locale
903
+ return (
904
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
905
+ );
906
+ }
907
+ };
908
+
909
+ /**
910
+ * Ein Router-Komponente, die locale-spezifische Routen einrichtet.
911
+ * Verwendet React Router, um die Navigation zu verwalten und lokalisierte Komponenten zu rendern.
912
+ */
913
+ const LocaleRouter = ({ children }) => (
914
+ <BrowserRouter>
915
+ <Routes>
916
+ {locales
917
+ .filter(
918
+ (locale) => middleware.prefixDefault || locale !== defaultLocale
919
+ )
920
+ .map((locale) => (
921
+ <Route
922
+ // Routenmuster, um die Locale zu erfassen (z. B. /de/, /fr/) und alle nachfolgenden Pfade zuzuordnen
923
+ path={`/${locale}/*`}
924
+ key={locale}
925
+ element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umhüllt Kinder mit Locale-Management
926
+ />
927
+ ))}
928
+
929
+ {
930
+ // Wenn das Präfix für die Standard-Locale deaktiviert ist, rendere die Kinder direkt im Root-Pfad
931
+ !middleware.prefixDefault && (
932
+ <Route
933
+ path="*"
934
+ element={
935
+ <AppLocalized locale={defaultLocale}>{children}</AppLocalized>
936
+ } // Umhüllt Kinder mit Locale-Management
937
+ />
938
+ )
939
+ }
940
+ </Routes>
941
+ </BrowserRouter>
942
+ );
943
+ ```
944
+
945
+ Dann können Sie die `LocaleRouter`-Komponente in Ihrer Anwendung verwenden:
946
+
947
+ ```tsx fileName="src/App.tsx" codeFormat="typescript"
948
+ import { LocaleRouter } from "./components/LocaleRouter";
949
+ import type { FC } from "react";
950
+
951
+ // ... Ihre AppContent-Komponente
952
+
953
+ const App: FC = () => (
954
+ <LocaleRouter>
955
+ <AppContent />
956
+ </LocaleRouter>
957
+ );
958
+ ```
959
+
960
+ ```jsx fileName="src/App.mjx" codeFormat="esm"
961
+ import { LocaleRouter } from "./components/LocaleRouter";
962
+
963
+ // ... Ihre AppContent-Komponente
964
+
965
+ const App = () => (
966
+ <LocaleRouter>
967
+ <AppContent />
968
+ </LocaleRouter>
969
+ );
970
+ ```
971
+
972
+ ```jsx fileName="src/App.cjx" codeFormat="commonjs"
973
+ const { LocaleRouter } = require("./components/LocaleRouter");
974
+
975
+ // ... Ihre AppContent-Komponente
976
+
977
+ const App = () => (
978
+ <LocaleRouter>
979
+ <AppContent />
980
+ </LocaleRouter>
981
+ );
982
+ ```
983
+
984
+ Parallel dazu können Sie auch das `intLayerMiddlewarePlugin` verwenden, um serverseitiges Routing zu Ihrer Anwendung hinzuzufügen. Dieses Plugin erkennt automatisch die aktuelle Locale basierend auf der URL und setzt das entsprechende Locale-Cookie. Wenn keine Locale angegeben ist, bestimmt das Plugin die am besten geeignete Locale basierend auf den Spracheinstellungen des Browsers des Benutzers. Wenn keine Locale erkannt wird, wird zur Standard-Locale weitergeleitet.
985
+
986
+ ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
987
+ import { defineConfig } from "vite";
988
+ import react from "@vitejs/plugin-react-swc";
989
+ import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
990
+
991
+ // https://vitejs.dev/config/
992
+ export default defineConfig({
993
+ plugins: [react(), intlayerPlugin(), intLayerMiddlewarePlugin()],
994
+ });
995
+ ```
996
+
997
+ ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
998
+ import { defineConfig } from "vite";
999
+ import react from "@vitejs/plugin-react-swc";
1000
+ import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
1001
+
1002
+ // https://vitejs.dev/config/
1003
+ export default defineConfig({
1004
+ plugins: [react(), intlayerPlugin(), intLayerMiddlewarePlugin()],
1005
+ });
1006
+ ```
1007
+
1008
+ ```javascript {5,10} fileName="vite.config.cjs" codeFormat="commonjs"
1009
+ const { defineConfig } = require("vite");
1010
+ const react = require("@vitejs/plugin-react-swc");
1011
+ const { intlayerPlugin, intLayerMiddlewarePlugin } = require("vite-intlayer");
1012
+
1013
+ // https://vitejs.dev/config/
1014
+ module.exports = defineConfig({
1015
+ plugins: [react(), intlayerPlugin(), intLayerMiddlewarePlugin()],
1016
+ });
1017
+ ```
1018
+
1019
+ ### (Optional) Schritt 8: Ändern der URL, wenn sich die Locale ändert
1020
+
1021
+ Um die URL zu ändern, wenn sich die Locale ändert, können Sie die `onLocaleChange`-Eigenschaft verwenden, die vom `useLocale`-Hook bereitgestellt wird. Parallel dazu können Sie die Hooks `useLocation` und `useNavigate` aus `react-router-dom` verwenden, um den URL-Pfad zu aktualisieren.
1022
+
1023
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
1024
+ import { useLocation, useNavigate } from "react-router-dom";
1025
+ import {
1026
+ Locales,
1027
+ getHTMLTextDir,
1028
+ getLocaleName,
1029
+ getLocalizedUrl,
1030
+ } from "intlayer";
1031
+ import { useLocale } from "react-intlayer";
1032
+ import { type FC } from "react";
1033
+
1034
+ const LocaleSwitcher: FC = () => {
1035
+ const { pathname, search } = useLocation(); // Aktuellen URL-Pfad abrufen. Beispiel: /de/about?foo=bar
1036
+ const navigate = useNavigate();
1037
+
1038
+ const { locale, availableLocales, setLocale } = useLocale({
1039
+ onLocaleChange: (locale) => {
1040
+ // Konstruiere die URL mit der aktualisierten Sprache
1041
+ // Beispiel: /es/about?foo=bar
1042
+ const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
1043
+
1044
+ // Aktualisiere den URL-Pfad
1045
+ navigate(pathWithLocale);
1046
+ },
1047
+ });
1048
+
1049
+ return (
1050
+ <div>
1051
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
1052
+ <div id="localePopover" popover="auto">
1053
+ {availableLocales.map((localeItem) => (
1054
+ <a
1055
+ href={getLocalizedUrl(location.pathname, localeItem)}
1056
+ hrefLang={localeItem}
1057
+ aria-current={locale === localeItem ? "page" : undefined}
1058
+ onClick={(e) => {
1059
+ e.preventDefault();
1060
+ setLocale(localeItem);
1061
+ }}
1062
+ key={localeItem}
1063
+ >
1064
+ <span>
1065
+ {/* Sprache - z.B. FR */}
1066
+ {localeItem}
1067
+ </span>
1068
+ <span>
1069
+ {/* Sprache in ihrer eigenen Lokalisierung - z.B. Français */}
1070
+ {getLocaleName(localeItem, locale)}
1071
+ </span>
1072
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1073
+ {/* Sprache in der aktuellen Lokalisierung - z.B. Francés mit aktueller Sprache auf Locales.SPANISH */}
1074
+ {getLocaleName(localeItem)}
1075
+ </span>
1076
+ <span dir="ltr" lang={Locales.ENGLISH}>
1077
+ {/* Sprache auf Englisch - z.B. French */}
1078
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1079
+ </span>
1080
+ </a>
1081
+ ))}
1082
+ </div>
1083
+ </div>
1084
+ );
1085
+ };
1086
+ ```
1087
+
1088
+ ```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
1089
+ import { useLocation, useNavigate } from "react-router-dom";
1090
+ import {
1091
+ Locales,
1092
+ getHTMLTextDir,
1093
+ getLocaleName,
1094
+ getLocalizedUrl,
1095
+ } from "intlayer";
1096
+ import { useLocale } from "react-intlayer";
1097
+
1098
+ const LocaleSwitcher = () => {
1099
+ const { pathname, search } = useLocation(); // Hole den aktuellen URL-Pfad. Beispiel: /fr/about?foo=bar
1100
+ const navigate = useNavigate();
1101
+
1102
+ const { locale, availableLocales, setLocale } = useLocale({
1103
+ onLocaleChange: (locale) => {
1104
+ // Konstruiere die URL mit der aktualisierten Sprache
1105
+ // Beispiel: /es/about?foo=bar
1106
+ const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
1107
+
1108
+ // Aktualisiere den URL-Pfad
1109
+ navigate(pathWithLocale);
1110
+ },
1111
+ });
1112
+
1113
+ return (
1114
+ <div>
1115
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
1116
+ <div id="localePopover" popover="auto">
1117
+ {availableLocales.map((localeItem) => (
1118
+ <a
1119
+ href={getLocalizedUrl(location.pathname, localeItem)}
1120
+ hrefLang={localeItem}
1121
+ aria-current={locale === localeItem ? "page" : undefined}
1122
+ onClick={(e) => {
1123
+ e.preventDefault();
1124
+ setLocale(localeItem);
1125
+ }}
1126
+ key={localeItem}
1127
+ >
1128
+ <span>
1129
+ {/* Sprache - z.B. FR */}
1130
+ {localeItem}
1131
+ </span>
1132
+ <span>
1133
+ {/* Sprache in ihrer eigenen Lokalisierung - z.B. Français */}
1134
+ {getLocaleName(localeItem, locale)}
1135
+ </span>
1136
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1137
+ {/* Sprache in der aktuellen Lokalisierung - z.B. Francés mit aktueller Sprache auf Locales.SPANISH */}
1138
+ {getLocaleName(localeItem)}
1139
+ </span>
1140
+ <span dir="ltr" lang={Locales.ENGLISH}>
1141
+ {/* Sprache auf Englisch - z.B. French */}
1142
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1143
+ </span>
1144
+ </a>
1145
+ ))}
1146
+ </div>
1147
+ </div>
1148
+ );
1149
+ };
1150
+ ```
1151
+
1152
+ ```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
1153
+ const { useLocation, useNavigate } = require("react-router-dom");
1154
+ const {
1155
+ Locales,
1156
+ getHTMLTextDir,
1157
+ getLocaleName,
1158
+ getLocalizedUrl,
1159
+ } = require("intlayer");
1160
+ const { useLocale } = require("react-intlayer");
1161
+
1162
+ const LocaleSwitcher = () => {
1163
+ const { pathname, search } = useLocation(); // Hole den aktuellen URL-Pfad. Beispiel: /fr/about?foo=bar
1164
+ const navigate = useNavigate();
1165
+
1166
+ const { locale, availableLocales, setLocale } = useLocale({
1167
+ onLocaleChange: (locale) => {
1168
+ // Konstruiere die URL mit der aktualisierten Sprache
1169
+ // Beispiel: /es/about?foo=bar
1170
+ const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
1171
+
1172
+ // Aktualisiere den URL-Pfad
1173
+ navigate(pathWithLocale);
1174
+ },
1175
+ });
1176
+
1177
+ return (
1178
+ <div>
1179
+ <button popoverTarget="localePopover">{getLocaleName(locale)}</button>
1180
+ <div id="localePopover" popover="auto">
1181
+ {availableLocales.map((localeItem) => (
1182
+ <a
1183
+ href={getLocalizedUrl(location.pathname, localeItem)}
1184
+ hrefLang={localeItem}
1185
+ aria-current={locale === localeItem ? "page" : undefined}
1186
+ onClick={(e) => {
1187
+ e.preventDefault();
1188
+ setLocale(localeItem);
1189
+ }}
1190
+ key={localeItem}
1191
+ >
1192
+ <span>
1193
+ {/* Sprache - z.B. FR */}
1194
+ {localeItem}
1195
+ </span>
1196
+ <span>
1197
+ {/* Sprache in ihrer eigenen Lokalisierung - z.B. Français */}
1198
+ {getLocaleName(localeItem, locale)}
1199
+ </span>
1200
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1201
+ {/* Sprache in der aktuellen Lokalisierung - z.B. Francés mit aktueller Sprache auf Locales.SPANISH */}
1202
+ {getLocaleName(localeItem)}
1203
+ </span>
1204
+ <span dir="ltr" lang={Locales.ENGLISH}>
1205
+ {/* Sprache auf Englisch - z.B. French */}
1206
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1207
+ </span>
1208
+ </a>
1209
+ ))}
1210
+ </div>
1211
+ </div>
1212
+ );
1213
+ };
1214
+ ```
1215
+
1216
+ > Dokumentationsreferenzen:
1217
+
1218
+ > - [`useLocale` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/de/packages/react-intlayer/useLocale.md)
1219
+
1220
+ > - [`getLocaleName` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/de/packages/intlayer/getLocaleName.md)
1221
+
1222
+ > - [`getLocalizedUrl` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/de/packages/intlayer/getLocalizedUrl.md)
1223
+
1224
+ > - [`getHTMLTextDir` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/de/packages/intlayer/getHTMLTextDir.md)
1225
+
1226
+ > - [`hrefLang` Attribut](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
1227
+
1228
+ > - [`lang` Attribut](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
1229
+
1230
+ > - [`dir` Attribut](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
1231
+
1232
+ > - [`aria-current` Attribut](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1233
+
1234
+ ---
1235
+
1236
+ ### (Optional) Schritt 9: HTML-Sprach- und Richtungsattribute umschalten
1237
+
1238
+ Wenn Ihre Anwendung mehrere Sprachen unterstützt, ist es wichtig, die `lang`- und `dir`-Attribute des `<html>`-Tags an die aktuelle Sprache anzupassen. Dies gewährleistet:
1239
+
1240
+ - **Barrierefreiheit**: Screenreader und unterstützende Technologien verlassen sich auf das korrekte `lang`-Attribut, um Inhalte genau auszusprechen und zu interpretieren.
1241
+ - **Textdarstellung**: Das `dir`-Attribut (Richtung) stellt sicher, dass der Text in der richtigen Reihenfolge dargestellt wird (z. B. von links nach rechts für Englisch, von rechts nach links für Arabisch oder Hebräisch), was für die Lesbarkeit entscheidend ist.
1242
+ - **SEO**: Suchmaschinen verwenden das `lang`-Attribut, um die Sprache Ihrer Seite zu bestimmen und die richtigen lokalisierten Inhalte in den Suchergebnissen bereitzustellen.
1243
+
1244
+ Durch die dynamische Aktualisierung dieser Attribute bei einem Sprachwechsel gewährleisten Sie ein konsistentes und barrierefreies Erlebnis für Benutzer in allen unterstützten Sprachen.
1245
+
1246
+ #### Implementierung des Hooks
1247
+
1248
+ Erstellen Sie einen benutzerdefinierten Hook, um die HTML-Attribute zu verwalten. Der Hook hört auf Sprachänderungen und aktualisiert die Attribute entsprechend:
1249
+
1250
+ ```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
1251
+ import { useEffect } from "react";
1252
+ import { useLocale } from "react-intlayer";
1253
+ import { getHTMLTextDir } from "intlayer";
1254
+
1255
+ /**
1256
+
1257
+ * - `lang`: Informiert Browser und Suchmaschinen über die Sprache der Seite.
1258
+ * - `dir`: Stellt die korrekte Leserichtung sicher (z. B. 'ltr' für Englisch, 'rtl' für Arabisch).
1259
+ *
1260
+ * Diese dynamische Aktualisierung ist essenziell für eine korrekte Textrendering, Barrierefreiheit und SEO.
1261
+ */
1262
+ export const useI18nHTMLAttributes = () => {
1263
+ const { locale } = useLocale();
1264
+
1265
+ useEffect(() => {
1266
+ // Aktualisiert das Sprachattribut auf die aktuelle Spracheinstellung.
1267
+ document.documentElement.lang = locale;
1268
+
1269
+ // Setzt die Leserichtung basierend auf der aktuellen Spracheinstellung.
1270
+ document.documentElement.dir = getHTMLTextDir(locale);
1271
+ }, [locale]);
1272
+ };
1273
+ ```
1274
+
1275
+ ```jsx fileName="src/hooks/useI18nHTMLAttributes.msx" codeFormat="esm"
1276
+ import { useEffect } from "react";
1277
+ import { useLocale } from "react-intlayer";
1278
+ import { getHTMLTextDir } from "intlayer";
1279
+
1280
+ /**
1281
+ * Aktualisiert die `lang`- und `dir`-Attribute des HTML-Elements <html> basierend auf der aktuellen Spracheinstellung.
1282
+ * - `lang`: Informiert Browser und Suchmaschinen über die Sprache der Seite.
1283
+ * - `dir`: Stellt die korrekte Leserichtung sicher (z. B. 'ltr' für Englisch, 'rtl' für Arabisch).
1284
+ *
1285
+ * Diese dynamische Aktualisierung ist essenziell für eine korrekte Textrendering, Barrierefreiheit und SEO.
1286
+ */
1287
+ export const useI18nHTMLAttributes = () => {
1288
+ const { locale } = useLocale();
1289
+
1290
+ useEffect(() => {
1291
+ // Aktualisiert das Sprachattribut auf die aktuelle Spracheinstellung.
1292
+ document.documentElement.lang = locale;
1293
+
1294
+ // Setzt die Leserichtung basierend auf der aktuellen Spracheinstellung.
1295
+ document.documentElement.dir = getHTMLTextDir(locale);
1296
+ }, [locale]);
1297
+ };
1298
+ ```
1299
+
1300
+ ```jsx fileName="src/hooks/useI18nHTMLAttributes.csx" codeFormat="commonjs"
1301
+ const { useEffect } = require("react");
1302
+ const { useLocale } = require("react-intlayer");
1303
+ const { getHTMLTextDir } = require("intlayer");
1304
+
1305
+ /**
1306
+ * Aktualisiert die `lang`- und `dir`-Attribute des HTML-Elements <html> basierend auf der aktuellen Spracheinstellung.
1307
+ * - `lang`: Informiert Browser und Suchmaschinen über die Sprache der Seite.
1308
+ * - `dir`: Stellt die korrekte Leserichtung sicher (z. B. 'ltr' für Englisch, 'rtl' für Arabisch).
1309
+ *
1310
+ * Diese dynamische Aktualisierung ist essenziell für eine korrekte Textrendering, Barrierefreiheit und SEO.
1311
+ */
1312
+ const useI18nHTMLAttributes = () => {
1313
+ const { locale } = useLocale();
1314
+
1315
+ useEffect(() => {
1316
+ // Aktualisiert das Sprachattribut auf die aktuelle Spracheinstellung.
1317
+ document.documentElement.lang = locale;
1318
+
1319
+ // Setzt die Leserichtung basierend auf der aktuellen Spracheinstellung.
1320
+ document.documentElement.dir = getHTMLTextDir(locale);
1321
+ }, [locale]);
1322
+ };
1323
+
1324
+ module.exports = { useI18nHTMLAttributes };
1325
+ ```
1326
+
1327
+ #### Verwendung des Hooks in Ihrer Anwendung
1328
+
1329
+ Integrieren Sie den Hook in Ihre Hauptkomponente, damit die HTML-Attribute aktualisiert werden, sobald sich die Spracheinstellung ändert:
1330
+
1331
+ ```tsx fileName="src/App.tsx" codeFormat="typescript"
1332
+ import type { FC } from "react";
1333
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
1334
+ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1335
+ import "./App.css";
1336
+
1337
+ const AppContent: FC = () => {
1338
+ // Wendet den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Spracheinstellung zu aktualisieren.
1339
+ useI18nHTMLAttributes();
1340
+
1341
+ // ... Rest Ihrer Komponente
1342
+ };
1343
+
1344
+ const App: FC = () => (
1345
+ <IntlayerProvider>
1346
+ <AppContent />
1347
+ </IntlayerProvider>
1348
+ );
1349
+
1350
+ export default App;
1351
+ ```
1352
+
1353
+ ```jsx fileName="src/App.msx" codeFormat="esm"
1354
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
1355
+ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1356
+ import "./App.css";
1357
+
1358
+ const AppContent = () => {
1359
+ // Wendet den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Spracheinstellung zu aktualisieren.
1360
+ useI18nHTMLAttributes();
1361
+
1362
+ // ... Rest Ihrer Komponente
1363
+ };
1364
+
1365
+ const App = () => (
1366
+ <IntlayerProvider>
1367
+ <AppContent />
1368
+ </IntlayerProvider>
1369
+ );
1370
+
1371
+ export default App;
1372
+ ```
1373
+
1374
+ ```jsx fileName="src/App.csx" codeFormat="commonjs"
1375
+ const { FC } = require("react");
1376
+ const { IntlayerProvider, useIntlayer } = require("react-intlayer");
1377
+ const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
1378
+ require("./App.css");
1379
+
1380
+ const AppContent = () => {
1381
+ // Wendet den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Spracheinstellung zu aktualisieren.
1382
+ useI18nHTMLAttributes();
1383
+
1384
+ // ... Rest Ihrer Komponente
1385
+ };
1386
+
1387
+ const App = () => (
1388
+ <IntlayerProvider>
1389
+ <AppContent />
1390
+ </IntlayerProvider>
1391
+ );
1392
+
1393
+ module.exports = App;
1394
+ ```
1395
+
1396
+ Durch diese Änderungen wird Ihre Anwendung:
1397
+
1398
+ - Sicherstellen, dass das **Sprachattribut** (`lang`) die aktuelle Spracheinstellung korrekt widerspiegelt, was wichtig für SEO und das Verhalten des Browsers ist.
1399
+ - Die **Leserichtung** (`dir`) entsprechend der Spracheinstellung anpassen, um die Lesbarkeit und Benutzerfreundlichkeit für Sprachen mit unterschiedlichen Leserichtungen zu verbessern.
1400
+ - Eine **barrierefreie** Erfahrung bieten, da unterstützende Technologien auf diese Attribute angewiesen sind, um optimal zu funktionieren.
1401
+
1402
+ ### (Optional) Schritt 10: Erstellen einer lokalisierten Link-Komponente
1403
+
1404
+ Um sicherzustellen, dass die Navigation Ihrer Anwendung die aktuelle Spracheinstellung berücksichtigt, können Sie eine benutzerdefinierte `Link`-Komponente erstellen. Diese Komponente fügt automatisch die aktuelle Sprache als Präfix zu internen URLs hinzu. Zum Beispiel wird ein französischsprachiger Benutzer, der auf einen Link zur Seite "Über uns" klickt, zu `/fr/about` anstelle von `/about` weitergeleitet.
1405
+
1406
+ Dieses Verhalten ist aus mehreren Gründen nützlich:
1407
+
1408
+ - **SEO und Benutzererfahrung**: Lokalisierte URLs helfen Suchmaschinen, sprachspezifische Seiten korrekt zu indexieren, und bieten Benutzern Inhalte in ihrer bevorzugten Sprache.
1409
+ - **Konsistenz**: Durch die Verwendung eines lokalisierten Links in der gesamten Anwendung wird sichergestellt, dass die Navigation innerhalb der aktuellen Spracheinstellung bleibt und unerwartete Sprachwechsel vermieden werden.
1410
+ - **Wartbarkeit**: Die Zentralisierung der Lokalisierungslogik in einer einzigen Komponente vereinfacht die Verwaltung von URLs und macht Ihren Code einfacher wartbar und erweiterbar, wenn Ihre Anwendung wächst.
1411
+
1412
+ Nachfolgend finden Sie die Implementierung einer lokalisierten `Link`-Komponente in TypeScript:
1413
+
1414
+ ```tsx fileName="src/components/Link.tsx" codeFormat="typescript"
1415
+ import { getLocalizedUrl } from "intlayer";
1416
+ import {
1417
+ forwardRef,
1418
+ type DetailedHTMLProps,
1419
+ type AnchorHTMLAttributes,
1420
+ } from "react";
1421
+ import { useLocale } from "react-intlayer";
1422
+
1423
+ export interface LinkProps
1424
+ extends DetailedHTMLProps<
1425
+ AnchorHTMLAttributes<HTMLAnchorElement>,
1426
+ HTMLAnchorElement
1427
+ > {}
1428
+
1429
+ /**
1430
+ * Hilfsfunktion, um zu überprüfen, ob eine gegebene URL extern ist.
1431
+ * Wenn die URL mit http:// oder https:// beginnt, wird sie als extern betrachtet.
1432
+ */
1433
+ export const checkIsExternalLink = (href?: string): boolean =>
1434
+ /^https?:\/\//.test(href ?? "");
1435
+
1436
+ /**
1437
+ * Eine benutzerdefinierte Link-Komponente, die das href-Attribut basierend auf der aktuellen Spracheinstellung anpasst.
1438
+ * Für interne Links verwendet sie `getLocalizedUrl`, um die URL mit der Sprache zu präfixieren (z. B. /fr/about).
1439
+ * Dies stellt sicher, dass die Navigation im gleichen Sprachkontext bleibt.
1440
+ */
1441
+ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
1442
+ ({ href, children, ...props }, ref) => {
1443
+ const { locale } = useLocale();
1444
+ const isExternalLink = checkIsExternalLink(href);
1445
+
1446
+ // Wenn der Link intern ist und eine gültige href angegeben ist, wird die lokalisierte URL abgerufen.
1447
+ const hrefI18n =
1448
+ href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1449
+
1450
+ return (
1451
+ <a href={hrefI18n} ref={ref} {...props}>
1452
+ {children}
1453
+ </a>
1454
+ );
1455
+ }
1456
+ );
1457
+
1458
+ Link.displayName = "Link";
1459
+ ```
1460
+
1461
+ ```jsx fileName="src/components/Link.mjx" codeFormat="esm"
1462
+ import { getLocalizedUrl } from "intlayer";
1463
+ import { useLocale } from "react-intlayer";
1464
+ import { forwardRef } from "react";
1465
+
1466
+ /**
1467
+ * Hilfsfunktion, um zu überprüfen, ob eine gegebene URL extern ist.
1468
+ * Wenn die URL mit http:// oder https:// beginnt, wird sie als extern betrachtet.
1469
+ */
1470
+ export const checkIsExternalLink = (href?: string): boolean =>
1471
+ /^https?:\/\//.test(href ?? "");
1472
+
1473
+ /**
1474
+ * Eine benutzerdefinierte Link-Komponente, die das href-Attribut basierend auf der aktuellen Spracheinstellung anpasst.
1475
+ * Für interne Links verwendet sie `getLocalizedUrl`, um die URL mit der Sprache zu präfixieren (z. B. /fr/about).
1476
+ * Dies stellt sicher, dass die Navigation im gleichen Sprachkontext bleibt.
1477
+ */
1478
+ export const Link = forwardRef(({ href, children, ...props }, ref) => {
1479
+
1480
+ const { locale } = useLocale();
1481
+ const isExternalLink = checkIsExternalLink(href);
1482
+
1483
+ // Wenn der Link intern ist und eine gültige href angegeben ist, wird die lokalisierte URL abgerufen.
1484
+ const hrefI18n =
1485
+ href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1486
+
1487
+ return (
1488
+ <a href={hrefI18n} ref={ref} {...props}>
1489
+ {children}
1490
+ </a>
1491
+ );
1492
+ });
1493
+
1494
+ Link.displayName = "Link";
1495
+ ```
1496
+
1497
+ ```jsx fileName="src/components/Link.csx" codeFormat="commonjs"
1498
+ const { getLocalizedUrl } = require("intlayer");
1499
+ const { useLocale } = require("react-intlayer");
1500
+ const { forwardRef } = require("react");
1501
+
1502
+ /**
1503
+ * Hilfsfunktion, um zu überprüfen, ob eine gegebene URL extern ist.
1504
+ * Wenn die URL mit http:// oder https:// beginnt, wird sie als extern betrachtet.
1505
+ */
1506
+ const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1507
+
1508
+ /**
1509
+ * Eine benutzerdefinierte Link-Komponente, die das href-Attribut basierend auf der aktuellen Sprache anpasst.
1510
+ * Für interne Links wird `getLocalizedUrl` verwendet, um die URL mit der Sprache zu versehen (z. B. /de/about).
1511
+ * Dies stellt sicher, dass die Navigation im gleichen Sprachkontext bleibt.
1512
+ */
1513
+ const Link = forwardRef(({ href, children, ...props }, ref) => {
1514
+ const { locale } = useLocale();
1515
+ const isExternalLink = checkIsExternalLink(href);
1516
+
1517
+ // Wenn der Link intern ist und eine gültige href angegeben ist, wird die lokalisierte URL abgerufen.
1518
+ const localizedHref = isExternalLink ? href : getLocalizedUrl(href, locale);
1519
+
1520
+ return (
1521
+ <a
1522
+ href={localizedHref}
1523
+ ref={ref}
1524
+ {...props}
1525
+ aria-current={isExternalLink ? "external" : undefined}
1526
+ >
1527
+ {children}
1528
+ </a>
1529
+ );
1530
+ });
1531
+
1532
+ Link.displayName = "Link";
1533
+ ```
1534
+
1535
+ #### Wie es funktioniert
1536
+
1537
+ - **Erkennung externer Links**:
1538
+ Die Hilfsfunktion `checkIsExternalLink` bestimmt, ob eine URL extern ist. Externe Links bleiben unverändert, da sie keine Lokalisierung benötigen.
1539
+
1540
+ - **Abrufen der aktuellen Sprache**:
1541
+ Der `useLocale`-Hook liefert die aktuelle Sprache (z. B. `de` für Deutsch).
1542
+
1543
+ - **Lokalisierung der URL**:
1544
+ Für interne Links (d. h. nicht externe) wird `getLocalizedUrl` verwendet, um die URL automatisch mit der aktuellen Sprache zu versehen. Das bedeutet, dass wenn Ihr Benutzer auf Deutsch ist, das Übergeben von `/about` als `href` zu `/de/about` transformiert wird.
1545
+
1546
+ - **Rückgabe des Links**:
1547
+ Die Komponente gibt ein `<a>`-Element mit der lokalisierten URL zurück und stellt sicher, dass die Navigation mit der Sprache konsistent ist.
1548
+
1549
+ Durch die Integration dieser `Link`-Komponente in Ihrer Anwendung erhalten Sie eine kohärente und sprachbewusste Benutzererfahrung und profitieren gleichzeitig von verbessertem SEO und Benutzerfreundlichkeit.
1550
+
1551
+ ### TypeScript konfigurieren
1552
+
1553
+ Intlayer verwendet Modul-Erweiterungen, um die Vorteile von TypeScript zu nutzen und Ihren Code robuster zu machen.
1554
+
1555
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1556
+
1557
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1558
+
1559
+ Stellen Sie sicher, dass Ihre TypeScript-Konfiguration die automatisch generierten Typen enthält.
1560
+
1561
+ ```json5 fileName="tsconfig.json"
1562
+ {
1563
+ // ... Ihre bestehenden TypeScript-Konfigurationen
1564
+ "include": [
1565
+ // ... Ihre bestehenden TypeScript-Konfigurationen
1566
+ ".intlayer/**/*.ts", // Die automatisch generierten Typen einbeziehen
1567
+ ],
1568
+ }
1569
+ ```
1570
+
1571
+ ### Git-Konfiguration
1572
+
1573
+ Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren. Dadurch vermeiden Sie, diese in Ihr Git-Repository aufzunehmen.
1574
+
1575
+ Fügen Sie dazu die folgenden Anweisungen zu Ihrer `.gitignore`-Datei hinzu:
1576
+
1577
+ ```plaintext
1578
+ # Die von Intlayer generierten Dateien ignorieren
1579
+ .intlayer
1580
+ ```
1581
+
1582
+ ### Weiterführende Schritte
1583
+
1584
+ Um weiterzugehen, können Sie den [visuellen Editor](https://github.com/aymericzip/intlayer/blob/main/docs/de/intlayer_visual_editor.md) implementieren oder Ihre Inhalte mit dem [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/de/intlayer_CMS.md) auslagern.