@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,1701 @@
1
+ # Erste Schritte mit der Internationalisierung (i18n) mit Intlayer, Vite und Preact
2
+
3
+ > Dieses Paket befindet sich in der Entwicklung. Siehe das [Issue](https://github.com/aymericzip/intlayer/issues/118) für weitere Informationen. Zeigen Sie Ihr Interesse an Intlayer für Preact, indem Sie das Issue liken.
4
+
5
+ Siehe [Anwendungsvorlage](https://github.com/aymericzip/intlayer-vite-preact-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 Preact-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 preact-intlayer vite-intlayer
28
+ ```
29
+
30
+ ```bash packageManager="pnpm"
31
+ pnpm add intlayer preact-intlayer vite-intlayer
32
+ ```
33
+
34
+ ```bash packageManager="yarn"
35
+ yarn add intlayer preact-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
+ - **preact-intlayer**
43
+ Das Paket, das Intlayer mit Preact-Anwendungen integriert. Es bietet Kontextanbieter und Hooks für die Internationalisierung in Preact.
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, Cookienamen, den Speicherort und die Erweiterung Ihrer Inhaltsdeklarationen einrichten, Intlayer-Logs in der Konsole deaktivieren und mehr. Für eine vollständige Liste der verfügbaren Parameter lesen Sie die [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/de/configuration.md).
109
+
110
+ ### Schritt 3: Intlayer in Ihre Vite-Konfiguration integrieren
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 preact from "@preact/preset-vite";
117
+ import { intlayerPlugin } from "vite-intlayer";
118
+
119
+ // https://vitejs.dev/config/
120
+ export default defineConfig({
121
+ plugins: [preact(), intlayerPlugin()],
122
+ });
123
+ ```
124
+
125
+ ```javascript fileName="vite.config.mjs" codeFormat="esm"
126
+ import { defineConfig } from "vite";
127
+ import preact from "@preact/preset-vite";
128
+ import { intlayerPlugin } from "vite-intlayer";
129
+
130
+ // https://vitejs.dev/config/
131
+ export default defineConfig({
132
+ plugins: [preact(), intlayerPlugin()],
133
+ });
134
+ ```
135
+
136
+ ```javascript fileName="vite.config.cjs" codeFormat="commonjs"
137
+ const { defineConfig } = require("vite");
138
+ const preact = require("@preact/preset-vite");
139
+ const { intlayerPlugin } = require("vite-intlayer");
140
+
141
+ // https://vitejs.dev/config/
142
+ module.exports = defineConfig({
143
+ plugins: [preact(), 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: Ihren Inhalt deklarieren
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 { ComponentChildren } from "preact";
156
+
157
+ const appContent = {
158
+ key: "app",
159
+ content: {
160
+ viteLogo: t({
161
+ de: "Vite-Logo",
162
+ en: "Vite logo",
163
+ fr: "Logo Vite",
164
+ es: "Logo Vite",
165
+ }),
166
+ preactLogo: t({
167
+ de: "Preact-Logo",
168
+ en: "Preact logo",
169
+ fr: "Logo Preact",
170
+ es: "Logo Preact",
171
+ }),
172
+
173
+ title: "Vite + Preact",
174
+
175
+ count: t({
176
+ de: "Anzahl ist ",
177
+ en: "count is ",
178
+ fr: "le compte est ",
179
+ es: "el recuento es ",
180
+ }),
181
+
182
+ edit: t<ComponentChildren>({
183
+ de: (
184
+ <>
185
+ Bearbeiten Sie <code>src/app.tsx</code> und speichern Sie, um HMR zu
186
+ testen
187
+ </>
188
+ ),
189
+ en: (
190
+ <>
191
+ Edit <code>src/app.tsx</code> and save to test HMR
192
+ </>
193
+ ),
194
+ fr: (
195
+ <>
196
+ Éditez <code>src/app.tsx</code> et enregistrez pour tester HMR
197
+ </>
198
+ ),
199
+ es: (
200
+ <>
201
+ Edita <code>src/app.tsx</code> y guarda para probar HMR
202
+ </>
203
+ ),
204
+ }),
205
+
206
+ readTheDocs: t({
207
+ de: "Klicken Sie auf die Vite- und Preact-Logos, um mehr zu erfahren",
208
+ en: "Click on the Vite and Preact logos to learn more",
209
+ fr: "Cliquez sur les logos Vite et Preact pour en savoir plus",
210
+ es: "Haga clic en los logotipos de Vite y Preact para obtener más información",
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
+ // import { h } from 'preact'; // Erforderlich, wenn Sie JSX direkt in .mjs verwenden
221
+
222
+ /** @type {import('intlayer').Dictionary} */
223
+ const appContent = {
224
+ key: "app",
225
+ content: {
226
+ viteLogo: t({
227
+ de: "Vite-Logo",
228
+ en: "Vite logo",
229
+ fr: "Logo Vite",
230
+ es: "Logo Vite",
231
+ }),
232
+ preactLogo: t({
233
+ de: "Preact-Logo",
234
+ en: "Preact logo",
235
+ fr: "Logo Preact",
236
+ es: "Logo Preact",
237
+ }),
238
+
239
+ title: "Vite + Preact",
240
+
241
+ count: t({
242
+ de: "Anzahl ist ",
243
+ en: "count is ",
244
+ fr: "le compte est ",
245
+ es: "el recuento es ",
246
+ }),
247
+
248
+ edit: t({
249
+ de: "Bearbeiten Sie src/app.jsx und speichern Sie, um HMR zu testen",
250
+ en: "Edit src/app.jsx and save to test HMR",
251
+ fr: "Éditez src/app.jsx et enregistrez pour tester HMR",
252
+ es: "Edita src/app.jsx y guarda para probar HMR",
253
+ }),
254
+
255
+ readTheDocs: t({
256
+ de: "Klicken Sie auf die Vite- und Preact-Logos, um mehr zu erfahren",
257
+ en: "Click on the Vite and Preact logos to learn more",
258
+ fr: "Cliquez sur les logos Vite et Preact pour en savoir plus",
259
+ es: "Haga clic en los logotipos de Vite y Preact para obtener más información",
260
+ }),
261
+ },
262
+ };
263
+
264
+ export default appContent;
265
+ ```
266
+
267
+ ```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
268
+ const { t } = require("intlayer");
269
+ // const { h } = require('preact'); // Erforderlich, wenn Sie JSX direkt in .cjs verwenden
270
+
271
+ /** @type {import('intlayer').Dictionary} */
272
+ const appContent = {
273
+ key: "app",
274
+ content: {
275
+ viteLogo: t({
276
+ de: "Vite-Logo",
277
+ en: "Vite logo",
278
+ fr: "Logo Vite",
279
+ es: "Logo Vite",
280
+ }),
281
+ preactLogo: t({
282
+ de: "Preact-Logo",
283
+ en: "Preact logo",
284
+ fr: "Logo Preact",
285
+ es: "Logo Preact",
286
+ }),
287
+
288
+ title: "Vite + Preact",
289
+
290
+ count: t({
291
+ de: "Anzahl ist ",
292
+ en: "count is ",
293
+ fr: "le compte est ",
294
+ es: "el recuento es ",
295
+ }),
296
+
297
+ edit: t({
298
+ de: "Bearbeiten Sie src/app.tsx und speichern Sie, um HMR zu testen",
299
+ en: "Edit src/app.tsx and save to test HMR",
300
+ fr: "Éditez src/app.tsx et enregistrez pour tester HMR",
301
+ es: "Edita src/app.tsx y guarda para probar HMR",
302
+ }),
303
+
304
+ readTheDocs: t({
305
+ de: "Klicken Sie auf die Logos von Vite und Preact, um mehr zu erfahren",
306
+ en: "Click on the Vite and Preact logos to learn more",
307
+ fr: "Cliquez sur les logos Vite et Preact pour en savoir plus",
308
+ es: "Haga clic en los logotipos de Vite y Preact para obtener más información",
309
+ }),
310
+ },
311
+ };
312
+
313
+ module.exports = appContent;
314
+ ```
315
+
316
+ ```json fileName="src/app.content.json" contentDeclarationFormat="json"
317
+ {
318
+ "$schema": "https://intlayer.org/schema.json",
319
+ "key": "app",
320
+ "content": {
321
+ "viteLogo": {
322
+ "nodeType": "translation",
323
+ "translation": {
324
+ "de": "Vite-Logo",
325
+ "en": "Vite logo",
326
+ "fr": "Logo Vite",
327
+ "es": "Logo Vite"
328
+ }
329
+ },
330
+ "preactLogo": {
331
+ "nodeType": "translation",
332
+ "translation": {
333
+ "de": "Preact-Logo",
334
+ "en": "Preact logo",
335
+ "fr": "Logo Preact",
336
+ "es": "Logo Preact"
337
+ }
338
+ },
339
+ "title": {
340
+ "nodeType": "translation",
341
+ "translation": {
342
+ "de": "Vite + Preact",
343
+ "en": "Vite + Preact",
344
+ "fr": "Vite + Preact",
345
+ "es": "Vite + Preact"
346
+ }
347
+ },
348
+ "count": {
349
+ "nodeType": "translation",
350
+ "translation": {
351
+ "de": "Anzahl ist ",
352
+ "en": "count is ",
353
+ "fr": "le compte est ",
354
+ "es": "el recuento es "
355
+ }
356
+ },
357
+ "edit": {
358
+ "nodeType": "translation",
359
+ "translation": {
360
+ "de": "Bearbeiten Sie src/app.tsx und speichern Sie, um HMR zu testen",
361
+ "en": "Edit src/app.tsx and save to test HMR",
362
+ "fr": "Éditez src/app.tsx et enregistrez pour tester HMR",
363
+ "es": "Edita src/app.tsx y guarda para probar HMR"
364
+ }
365
+ },
366
+ "readTheDocs": {
367
+ "nodeType": "translation",
368
+ "translation": {
369
+ "de": "Klicken Sie auf die Logos von Vite und Preact, um mehr zu erfahren",
370
+ "en": "Click on the Vite and Preact logos to learn more",
371
+ "fr": "Cliquez sur les logos Vite et Preact pour en savoir plus",
372
+ "es": "Haga clic en los logotipos de Vite y Preact para obtener más información"
373
+ }
374
+ }
375
+ }
376
+ }
377
+ ```
378
+
379
+ > Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, solange sie im `contentDir`-Verzeichnis (standardmäßig `./src`) enthalten sind. Und die Dateierweiterung der Inhaltsdeklaration übereinstimmt (standardmäßig `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
380
+
381
+ > Weitere Details finden Sie in der [Dokumentation zur Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/de/dictionary/get_started.md).
382
+
383
+ > Wenn Ihre Inhaltsdatei TSX-Code enthält, müssen Sie möglicherweise `import { h } from "preact";` importieren oder sicherstellen, dass Ihr JSX-Pragma korrekt für Preact eingestellt ist.
384
+
385
+ ### Schritt 5: Verwenden Sie Intlayer in Ihrem Code
386
+
387
+ Greifen Sie in Ihrer gesamten Anwendung auf Ihre Inhaltswörterbücher zu:
388
+
389
+ ```tsx {6,10} fileName="src/app.tsx" codeFormat="typescript"
390
+ import { useState } from "preact/hooks";
391
+ import type { FunctionalComponent } from "preact";
392
+ import preactLogo from "./assets/preact.svg"; // Angenommen, Sie haben eine preact.svg
393
+ import viteLogo from "/vite.svg";
394
+ import "./app.css"; // Angenommen, Ihre CSS-Datei heißt app.css
395
+ import { IntlayerProvider, useIntlayer } from "preact-intlayer";
396
+
397
+ const AppContent: FunctionalComponent = () => {
398
+ const [count, setCount] = useState(0);
399
+ const content = useIntlayer("app");
400
+
401
+ return (
402
+ <>
403
+ <div>
404
+ <a href="https://vitejs.dev" target="_blank">
405
+ <img src={viteLogo} class="logo" alt={content.viteLogo.value} />
406
+ </a>
407
+ <a href="https://preactjs.com" target="_blank">
408
+ <img
409
+ src={preactLogo}
410
+ class="logo preact"
411
+ alt={content.preactLogo.value}
412
+ />
413
+ </a>
414
+ </div>
415
+ <h1>{content.title}</h1>
416
+ <div class="card">
417
+ <button onClick={() => setCount((count) => count + 1)}>
418
+ {content.count}
419
+ {count}
420
+ </button>
421
+ <p>{content.edit}</p>
422
+ </div>
423
+ <p class="read-the-docs">{content.readTheDocs}</p>
424
+ </>
425
+ );
426
+ };
427
+
428
+ const App: FunctionalComponent = () => (
429
+ <IntlayerProvider>
430
+ <AppContent />
431
+ </IntlayerProvider>
432
+ );
433
+
434
+ export default App;
435
+ ```
436
+
437
+ ```jsx {5,9} fileName="src/app.jsx" codeFormat="esm"
438
+ import { useState } from "preact/hooks";
439
+ import preactLogo from "./assets/preact.svg";
440
+ import viteLogo from "/vite.svg";
441
+ import "./app.css";
442
+ import { IntlayerProvider, useIntlayer } from "preact-intlayer";
443
+
444
+ const AppContent = () => {
445
+ const [count, setCount] = useState(0);
446
+ const content = useIntlayer("app");
447
+
448
+ return (
449
+ <>
450
+ <div>
451
+ <a href="https://vitejs.dev" target="_blank">
452
+ <img src={viteLogo} class="logo" alt={content.viteLogo.value} />
453
+ </a>
454
+ <a href="https://preactjs.com" target="_blank">
455
+ <img
456
+ src={preactLogo}
457
+ class="logo preact"
458
+ alt={content.preactLogo.value}
459
+ />
460
+ </a>
461
+ </div>
462
+ <h1>{content.title}</h1>
463
+ <div class="card">
464
+ <button onClick={() => setCount((count) => count + 1)}>
465
+ {content.count}
466
+ {count}
467
+ </button>
468
+ <p>{content.edit}</p>
469
+ </div>
470
+ <p class="read-the-docs">{content.readTheDocs}</p>
471
+ </>
472
+ );
473
+ };
474
+
475
+ const App = () => (
476
+ <IntlayerProvider>
477
+ <AppContent />
478
+ </IntlayerProvider>
479
+ );
480
+
481
+ export default App;
482
+ ```
483
+
484
+ ```jsx {5,9} fileName="src/app.cjsx" codeFormat="commonjs"
485
+ const { useState } = require("preact/hooks");
486
+ const preactLogo = require("./assets/preact.svg");
487
+ const viteLogo = require("/vite.svg");
488
+ require("./app.css");
489
+ const { IntlayerProvider, useIntlayer } = require("preact-intlayer");
490
+
491
+ const AppContent = () => {
492
+ const [count, setCount] = useState(0);
493
+ const content = useIntlayer("app");
494
+
495
+ return (
496
+ <>
497
+ <div>
498
+ <a href="https://vitejs.dev" target="_blank">
499
+ <img src={viteLogo} class="logo" alt={content.viteLogo.value} />
500
+ </a>
501
+ <a href="https://preactjs.com" target="_blank">
502
+ <img
503
+ src={preactLogo}
504
+ class="logo preact"
505
+ alt={content.preactLogo.value}
506
+ />
507
+ </a>
508
+ </div>
509
+ <h1>{content.title}</h1>
510
+ <div class="card">
511
+ <button onClick={() => setCount((count) => count + 1)}>
512
+ {content.count}
513
+ {count}
514
+ </button>
515
+ <p>{content.edit}</p>
516
+ </div>
517
+ <p class="read-the-docs">{content.readTheDocs}</p>
518
+ </>
519
+ );
520
+ };
521
+
522
+ const App = () => (
523
+ <IntlayerProvider>
524
+ <AppContent />
525
+ </IntlayerProvider>
526
+ );
527
+
528
+ module.exports = App;
529
+ ```
530
+
531
+ > 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:
532
+
533
+ > ```jsx
534
+ >
535
+ > ```
536
+
537
+ > <img src={content.image.src.value} alt={content.image.value} />
538
+
539
+ > ```
540
+ >
541
+ > ```
542
+
543
+ > Hinweis: In Preact wird `className` typischerweise als `class` geschrieben.
544
+
545
+ > 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) (Die API ist ähnlich für `preact-intlayer`).
546
+
547
+ ### (Optional) Schritt 6: Ändern Sie die Sprache Ihres Inhalts
548
+
549
+ Um die Sprache Ihres Inhalts zu ändern, können Sie die Funktion `setLocale` verwenden, die vom `useLocale`-Hook bereitgestellt wird. Mit dieser Funktion können Sie die Locale der Anwendung festlegen und den Inhalt entsprechend aktualisieren.
550
+
551
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
552
+ import type { FunctionalComponent } from "preact";
553
+ import { Locales } from "intlayer";
554
+ import { useLocale } from "preact-intlayer";
555
+
556
+ const LocaleSwitcher: FunctionalComponent = () => {
557
+ const { setLocale } = useLocale();
558
+
559
+ return (
560
+ <button onClick={() => setLocale(Locales.ENGLISH)}>
561
+ Sprache auf Englisch ändern
562
+
563
+ import { Locales } from "intlayer";
564
+ import { useLocale } from "preact-intlayer";
565
+
566
+ const LocaleSwitcher = () => {
567
+ const { setLocale } = useLocale();
568
+
569
+ return (
570
+ <button onClick={() => setLocale(Locales.ENGLISH)}>
571
+ Sprache zu Englisch ändern
572
+ </button>
573
+ );
574
+ };
575
+
576
+ export default LocaleSwitcher;
577
+ ```
578
+
579
+ ```jsx fileName="src/components/LocaleSwitcher.cjsx" codeFormat="commonjs"
580
+ const { Locales } = require("intlayer");
581
+ const { useLocale } = require("preact-intlayer");
582
+
583
+ const LocaleSwitcher = () => {
584
+ const { setLocale } = useLocale();
585
+
586
+ return (
587
+ <button onClick={() => setLocale(Locales.ENGLISH)}>
588
+ Sprache zu Englisch ändern
589
+ </button>
590
+ );
591
+ };
592
+
593
+ module.exports = LocaleSwitcher;
594
+ ```
595
+
596
+ > 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) (Die API ist ähnlich für `preact-intlayer`).
597
+
598
+ ### (Optional) Schritt 7: Lokalisierte Routen zu Ihrer Anwendung hinzufügen
599
+
600
+ 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.
601
+ Beispiel:
602
+
603
+ ```plaintext
604
+ - https://example.com/about
605
+ - https://example.com/es/about
606
+ - https://example.com/fr/about
607
+ ```
608
+
609
+ > 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).
610
+
611
+ Um lokalisierte Routen zu Ihrer Anwendung hinzuzufügen, können Sie eine `LocaleRouter`-Komponente erstellen, die die Routen Ihrer Anwendung umschließt und die sprachbasierte Routenverwaltung übernimmt. Hier ist ein Beispiel mit [preact-iso](https://github.com/preactjs/preact-iso):
612
+
613
+ Zuerst `preact-iso` installieren:
614
+
615
+ ```bash packageManager="npm"
616
+ npm install preact-iso
617
+ ```
618
+
619
+ ```bash packageManager="pnpm"
620
+ pnpm add preact-iso
621
+ ```
622
+
623
+ ```bash packageManager="yarn"
624
+ yarn add preact-iso
625
+ ```
626
+
627
+ ```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
628
+ import { type Locales, configuration, getPathWithoutLocale } from "intlayer";
629
+ import { ComponentChildren, FunctionalComponent } from "preact";
630
+ import { IntlayerProvider } from "preact-intlayer";
631
+ import { LocationProvider, useLocation } from "preact-iso";
632
+ import { useEffect } from "preact/hooks";
633
+
634
+ const { internationalization, middleware } = configuration;
635
+ const { locales, defaultLocale } = internationalization;
636
+
637
+ const Navigate: FunctionalComponent<{ to: string; replace?: boolean }> = ({
638
+ to,
639
+ replace,
640
+ }) => {
641
+ const { route } = useLocation();
642
+ useEffect(() => {
643
+ route(to, replace);
644
+ }, [to, replace, route]);
645
+ return null;
646
+ };
647
+
648
+ /**
649
+ * Eine Komponente, die die Lokalisierung verwaltet und Kinder mit dem entsprechenden Sprachkontext umschließt.
650
+ * Sie verwaltet die URL-basierte Spracherkennung und -validierung.
651
+ */
652
+ const AppLocalized: FunctionalComponent<{
653
+ children: ComponentChildren;
654
+ locale?: Locales;
655
+ }> = ({ children, locale }) => {
656
+ const { path: pathname, url } = useLocation();
657
+
658
+ if (!url) {
659
+ return null;
660
+ }
661
+
662
+ const search = url.substring(pathname.length);
663
+
664
+ // Bestimmen der aktuellen Sprache, falls nicht angegeben, wird die Standardsprache verwendet
665
+ const currentLocale = locale ?? defaultLocale;
666
+
667
+ // Entfernen des Sprachpräfixes aus dem Pfad, um einen Basis-Pfad zu erstellen
668
+ const pathWithoutLocale = getPathWithoutLocale(
669
+ pathname // Aktueller URL-Pfad
670
+ );
671
+
672
+ /**
673
+ * Wenn middleware.prefixDefault wahr ist, sollte die Standardsprache immer vorangestellt werden.
674
+ */
675
+ if (middleware.prefixDefault) {
676
+ // Sprache validieren
677
+ if (!locale || !locales.includes(locale)) {
678
+ // Umleiten zur Standardsprache mit dem aktualisierten Pfad
679
+ return (
680
+ <Navigate
681
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
682
+ replace // Ersetzen des aktuellen Verlaufs-Eintrags durch den neuen
683
+ />
684
+ );
685
+ }
686
+
687
+ // Kinder mit dem IntlayerProvider umschließen und die aktuelle Sprache setzen
688
+ return (
689
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
690
+ );
691
+ } else {
692
+ /**
693
+ * Wenn middleware.prefixDefault falsch ist, wird die Standardsprache nicht vorangestellt.
694
+ * Sicherstellen, dass die aktuelle Sprache gültig ist und nicht die Standardsprache ist.
695
+ */
696
+ if (
697
+ currentLocale.toString() !== defaultLocale.toString() &&
698
+ !locales
699
+ .filter(
700
+ (loc) => loc.toString() !== defaultLocale.toString() // Standardsprache ausschließen
701
+ )
702
+ .includes(currentLocale) // Überprüfen, ob die aktuelle Sprache in der Liste der gültigen Sprachen enthalten ist
703
+ ) {
704
+ // Umleiten zum Pfad ohne Sprachpräfix
705
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
706
+ }
707
+
708
+ // Kinder mit dem IntlayerProvider umschließen und die aktuelle Sprache setzen
709
+ return (
710
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
711
+ );
712
+ }
713
+ };
714
+
715
+ const RouterContent: FunctionalComponent<{
716
+ children: ComponentChildren;
717
+ }> = ({ children }) => {
718
+ const { path } = useLocation();
719
+
720
+ if (!path) {
721
+ return null;
722
+ }
723
+
724
+ const pathLocale = path.split("/")[1] as Locales;
725
+
726
+ const isLocaleRoute = locales
727
+ .filter((locale) => middleware.prefixDefault || locale !== defaultLocale)
728
+ .some((locale) => locale.toString() === pathLocale);
729
+
730
+ if (isLocaleRoute) {
731
+ return <AppLocalized locale={pathLocale}>{children}</AppLocalized>;
732
+ }
733
+
734
+ return (
735
+ <AppLocalized
736
+ locale={!middleware.prefixDefault ? defaultLocale : undefined}
737
+ >
738
+ {children}
739
+ </AppLocalized>
740
+ );
741
+ };
742
+
743
+ /**
744
+ * Eine Router-Komponente, die sprachspezifische Routen einrichtet.
745
+ * Sie verwendet preact-iso, um die Navigation zu verwalten und lokalisierte Komponenten zu rendern.
746
+ */
747
+ export const LocaleRouter: FunctionalComponent<{
748
+ children: ComponentChildren;
749
+ }> = ({ children }) => (
750
+ <LocationProvider>
751
+ <RouterContent>{children}</RouterContent>
752
+ </LocationProvider>
753
+ );
754
+ ```
755
+
756
+ ```jsx fileName="src/components/LocaleRouter.jsx" codeFormat="esm"
757
+ // Importieren der notwendigen Abhängigkeiten und Funktionen
758
+ import { configuration, getPathWithoutLocale } from "intlayer";
759
+ import { IntlayerProvider } from "preact-intlayer";
760
+ import { LocationProvider, useLocation } from "preact-iso";
761
+ import { useEffect } from "preact/hooks";
762
+ import { h } from "preact"; // Erforderlich für JSX
763
+
764
+ // Destrukturierung der Konfiguration aus Intlayer
765
+ const { internationalization, middleware } = configuration;
766
+ const { locales, defaultLocale } = internationalization;
767
+
768
+ const Navigate = ({ to, replace }) => {
769
+ const { route } = useLocation();
770
+ useEffect(() => {
771
+ route(to, replace);
772
+ }, [to, replace, route]);
773
+ return null;
774
+ };
775
+
776
+ /**
777
+ * Eine Komponente, die die Lokalisierung verwaltet und Kinder mit dem entsprechenden Sprachkontext umschließt.
778
+ * Sie verwaltet die URL-basierte Spracherkennung und -validierung.
779
+ */
780
+ const AppLocalized = ({ children, locale }) => {
781
+ const { path: pathname, url } = useLocation();
782
+
783
+ if (!url) {
784
+ return null;
785
+ }
786
+
787
+ const search = url.substring(pathname.length);
788
+
789
+ // Bestimmen der aktuellen Sprache, falls nicht angegeben, wird die Standardsprache verwendet
790
+ const currentLocale = locale ?? defaultLocale;
791
+
792
+ // Entfernen des Sprachpräfixes aus dem Pfad, um einen Basis-Pfad zu erstellen
793
+ const pathWithoutLocale = getPathWithoutLocale(
794
+ pathname // Aktueller URL-Pfad
795
+ );
796
+
797
+ /**
798
+ * Wenn middleware.prefixDefault wahr ist, sollte die Standardsprache immer vorangestellt werden.
799
+ */
800
+ if (middleware.prefixDefault) {
801
+ // Sprache validieren
802
+ if (!locale || !locales.includes(locale)) {
803
+ // Umleiten zur Standardsprache mit dem aktualisierten Pfad
804
+ return (
805
+ <Navigate
806
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
807
+ replace // Ersetzen des aktuellen Verlaufs-Eintrags durch den neuen
808
+ />
809
+ );
810
+ }
811
+
812
+ // Kinder mit dem IntlayerProvider umschließen und die aktuelle Sprache setzen
813
+ return (
814
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
815
+ );
816
+ } else {
817
+ /**
818
+ * Wenn middleware.prefixDefault falsch ist, wird die Standardsprache nicht vorangestellt.
819
+ * Sicherstellen, dass die aktuelle Sprache gültig ist und nicht die Standardsprache ist.
820
+ */
821
+ if (
822
+ currentLocale.toString() !== defaultLocale.toString() &&
823
+ !locales
824
+ .filter(
825
+ (loc) => loc.toString() !== defaultLocale.toString() // Standardsprache ausschließen
826
+ )
827
+ .includes(currentLocale) // Überprüfen, ob die aktuelle Sprache in der Liste der gültigen Sprachen enthalten ist
828
+ ) {
829
+ // Umleiten zum Pfad ohne Sprachpräfix
830
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
831
+ }
832
+
833
+ // Kinder mit dem IntlayerProvider umschließen und die aktuelle Sprache setzen
834
+ return (
835
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
836
+ );
837
+ }
838
+ };
839
+
840
+ * Wenn middleware.prefixDefault false ist, wird die Standardsprache nicht vorangestellt.
841
+ * Stellen Sie sicher, dass die aktuelle Sprache gültig ist und nicht die Standardsprache ist.
842
+ */
843
+ if (
844
+ currentLocale.toString() !== defaultLocale.toString() &&
845
+ !locales
846
+ .filter(
847
+ (loc) => loc.toString() !== defaultLocale.toString() // Standardsprache ausschließen
848
+ )
849
+ .includes(currentLocale) // Überprüfen, ob die aktuelle Sprache in der Liste der gültigen Sprachen enthalten ist
850
+ ) {
851
+ // Weiterleitung zum Pfad ohne Sprachpräfix
852
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
853
+ }
854
+
855
+ // Umhüllen der Kinder mit dem IntlayerProvider und Festlegen der aktuellen Sprache
856
+ return (
857
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
858
+ );
859
+ }
860
+ };
861
+
862
+ const RouterContent = ({ children }) => {
863
+ const { path } = useLocation();
864
+
865
+ if (!path) {
866
+ return null;
867
+ }
868
+
869
+ const pathLocale = path.split("/")[1];
870
+
871
+ const isLocaleRoute = locales
872
+ .filter((locale) => middleware.prefixDefault || locale !== defaultLocale)
873
+ .some((locale) => locale.toString() === pathLocale);
874
+
875
+ if (isLocaleRoute) {
876
+ return <AppLocalized locale={pathLocale}>{children}</AppLocalized>;
877
+ }
878
+
879
+ return (
880
+ <AppLocalized
881
+ locale={!middleware.prefixDefault ? defaultLocale : undefined}
882
+ >
883
+ {children}
884
+ </AppLocalized>
885
+ );
886
+ };
887
+
888
+ /**
889
+ * Eine Router-Komponente, die sprachspezifische Routen einrichtet.
890
+ * Sie verwendet preact-iso, um die Navigation zu verwalten und lokalisierte Komponenten zu rendern.
891
+ */
892
+ export const LocaleRouter = ({ children }) => (
893
+ <LocationProvider>
894
+ <RouterContent>{children}</RouterContent>
895
+ </LocationProvider>
896
+ );
897
+ ```
898
+
899
+ ```jsx fileName="src/components/LocaleRouter.cjsx" codeFormat="commonjs"
900
+ // Importieren der notwendigen Abhängigkeiten und Funktionen
901
+ const { configuration, getPathWithoutLocale } = require("intlayer");
902
+ const { IntlayerProvider } = require("preact-intlayer");
903
+ const { LocationProvider, useLocation } = require("preact-iso");
904
+ const { useEffect } = require("preact/hooks");
905
+ const { h } = require("preact"); // Erforderlich für JSX
906
+
907
+ // Destrukturierung der Konfiguration von Intlayer
908
+ const { internationalization, middleware } = configuration;
909
+ const { locales, defaultLocale } = internationalization;
910
+
911
+ const Navigate = ({ to, replace }) => {
912
+ const { route } = useLocation();
913
+ useEffect(() => {
914
+ route(to, replace);
915
+ }, [to, replace, route]);
916
+ return null;
917
+ };
918
+
919
+ /**
920
+ * Eine Komponente, die Lokalisierung behandelt und Kinder mit dem entsprechenden Sprachkontext umhüllt.
921
+ * Sie verwaltet die URL-basierte Spracherkennung und -validierung.
922
+ */
923
+ const AppLocalized = ({ children, locale }) => {
924
+ const { path: pathname, url } = useLocation();
925
+
926
+ if (!url) {
927
+ return null;
928
+ }
929
+
930
+ const search = url.substring(pathname.length);
931
+
932
+ // Bestimmen der aktuellen Sprache, falls nicht angegeben, wird die Standardsprache verwendet
933
+ const currentLocale = locale ?? defaultLocale;
934
+
935
+ // Entfernen des Sprachpräfixes aus dem Pfad, um einen Basis-Pfad zu erstellen
936
+ const pathWithoutLocale = getPathWithoutLocale(
937
+ pathname // Aktueller URL-Pfad
938
+ );
939
+
940
+ /**
941
+ * Wenn middleware.prefixDefault true ist, sollte die Standardsprache immer vorangestellt werden.
942
+ */
943
+ if (middleware.prefixDefault) {
944
+ // Validieren der Sprache
945
+ if (!locale || !locales.includes(locale)) {
946
+ // Weiterleitung zur Standardsprache mit dem aktualisierten Pfad
947
+ return (
948
+ <Navigate
949
+ to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
950
+ replace // Ersetzen des aktuellen Verlaufs-Eintrags durch den neuen
951
+ />
952
+ );
953
+ }
954
+
955
+ // Umhüllen der Kinder mit dem IntlayerProvider und Festlegen der aktuellen Sprache
956
+ return (
957
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
958
+ );
959
+ } else {
960
+ /**
961
+ * Wenn middleware.prefixDefault false ist, wird die Standardsprache nicht vorangestellt.
962
+ * Stellen Sie sicher, dass die aktuelle Sprache gültig ist und nicht die Standardsprache ist.
963
+ */
964
+ if (
965
+ currentLocale.toString() !== defaultLocale.toString() &&
966
+ !locales
967
+ .filter(
968
+ (loc) => loc.toString() !== defaultLocale.toString() // Standardsprache ausschließen
969
+ )
970
+ .includes(currentLocale) // Überprüfen, ob die aktuelle Sprache in der Liste der gültigen Sprachen enthalten ist
971
+ ) {
972
+ // Weiterleitung zum Pfad ohne Sprachpräfix
973
+ return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
974
+ }
975
+
976
+ // Umhüllen der Kinder mit dem IntlayerProvider und Festlegen der aktuellen Sprache
977
+ return (
978
+ <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
979
+ );
980
+ }
981
+ };
982
+
983
+ const RouterContent = ({ children }) => {
984
+ const { path } = useLocation();
985
+
986
+ if (!path) {
987
+ return null;
988
+ }
989
+
990
+ const pathLocale = path.split("/")[1];
991
+
992
+ const isLocaleRoute = locales
993
+ .filter((locale) => middleware.prefixDefault || locale !== defaultLocale)
994
+ .some((locale) => locale.toString() === pathLocale);
995
+
996
+ if (isLocaleRoute) {
997
+ return <AppLocalized locale={pathLocale}>{children}</AppLocalized>;
998
+ }
999
+
1000
+ return (
1001
+ <AppLocalized
1002
+ locale={!middleware.prefixDefault ? defaultLocale : undefined}
1003
+ >
1004
+ {children}
1005
+ </AppLocalized>
1006
+ );
1007
+ };
1008
+
1009
+ /**
1010
+ * Eine Router-Komponente, die sprachspezifische Routen einrichtet.
1011
+ * Sie verwendet preact-iso, um die Navigation zu verwalten und lokalisierte Komponenten zu rendern.
1012
+ */
1013
+ const LocaleRouter = ({ children }) => (
1014
+ <LocationProvider>
1015
+ <RouterContent>{children}</RouterContent>
1016
+ </LocationProvider>
1017
+ );
1018
+
1019
+ module.exports = { LocaleRouter };
1020
+ ```
1021
+
1022
+ Dann können Sie die `LocaleRouter`-Komponente in Ihrer Anwendung verwenden:
1023
+
1024
+ ```tsx fileName="src/app.tsx" codeFormat="typescript"
1025
+ import { LocaleRouter } from "./components/LocaleRouter";
1026
+ import type { FunctionalComponent } from "preact";
1027
+ // ... Ihre AppContent-Komponente (definiert in Schritt 5)
1028
+
1029
+ const App: FunctionalComponent = () => (
1030
+ <LocaleRouter>
1031
+ <AppContent />
1032
+ </LocaleRouter>
1033
+ );
1034
+
1035
+ export default App;
1036
+ ```
1037
+
1038
+ ```jsx fileName="src/app.jsx" codeFormat="esm"
1039
+ import { LocaleRouter } from "./components/LocaleRouter";
1040
+ // ... Ihre AppContent-Komponente (definiert in Schritt 5)
1041
+
1042
+ const App = () => (
1043
+ <LocaleRouter>
1044
+ <AppContent />
1045
+ </LocaleRouter>
1046
+ );
1047
+
1048
+ export default App;
1049
+ ```
1050
+
1051
+ ```jsx fileName="src/app.cjsx" codeFormat="commonjs"
1052
+ const { LocaleRouter } = require("./components/LocaleRouter");
1053
+ // ... Ihre AppContent-Komponente (definiert in Schritt 5)
1054
+
1055
+ const App = () => (
1056
+ <LocaleRouter>
1057
+ <AppContent />
1058
+ </LocaleRouter>
1059
+ );
1060
+
1061
+ module.exports = App;
1062
+ ```
1063
+
1064
+ Parallel dazu können Sie auch das `intLayerMiddlewarePlugin` verwenden, um serverseitiges Routing zu Ihrer Anwendung hinzuzufügen. Dieses Plugin erkennt automatisch die aktuelle Sprache basierend auf der URL und setzt das entsprechende Sprach-Cookie. Wenn keine Sprache angegeben ist, bestimmt das Plugin die am besten geeignete Sprache basierend auf den Spracheinstellungen des Browsers des Benutzers. Wenn keine Sprache erkannt wird, wird zur Standardsprache umgeleitet.
1065
+
1066
+ ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1067
+ import { defineConfig } from "vite";
1068
+ import preact from "@preact/preset-vite";
1069
+ import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
1070
+
1071
+ // https://vitejs.dev/config/
1072
+ export default defineConfig({
1073
+ plugins: [preact(), intlayerPlugin(), intLayerMiddlewarePlugin()],
1074
+ });
1075
+ ```
1076
+
1077
+ ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
1078
+ import { defineConfig } from "vite";
1079
+ import preact from "@preact/preset-vite";
1080
+ import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
1081
+
1082
+ // https://vitejs.dev/config/
1083
+ export default defineConfig({
1084
+ plugins: [preact(), intlayerPlugin(), intLayerMiddlewarePlugin()],
1085
+ });
1086
+ ```
1087
+
1088
+ ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
1089
+ const { defineConfig } = require("vite");
1090
+ const preact = require("@preact/preset-vite");
1091
+ const { intlayerPlugin, intLayerMiddlewarePlugin } = require("vite-intlayer");
1092
+
1093
+ // https://vitejs.dev/config/
1094
+ module.exports = defineConfig({
1095
+ plugins: [preact(), intlayerPlugin(), intLayerMiddlewarePlugin()],
1096
+ });
1097
+ ```
1098
+
1099
+ ### (Optional) Schritt 8: Ändern der URL, wenn sich die Sprache ändert
1100
+
1101
+ ```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
1102
+ import { useLocation, route } from "preact-iso";
1103
+ import {
1104
+ Locales,
1105
+ getHTMLTextDir,
1106
+ getLocaleName,
1107
+ getLocalizedUrl,
1108
+ } from "intlayer";
1109
+ import { useLocale } from "preact-intlayer";
1110
+ import type { FunctionalComponent } from "preact";
1111
+
1112
+ const LocaleSwitcher: FunctionalComponent = () => {
1113
+ const location = useLocation();
1114
+ const { locale, availableLocales, setLocale } = useLocale({
1115
+ onLocaleChange: (newLocale) => {
1116
+ const currentFullPath = location.url; // preact-iso stellt die vollständige URL bereit
1117
+ // Konstruktion der URL mit der aktualisierten Sprache
1118
+ // Beispiel: /es/about?foo=bar
1119
+ const pathWithLocale = getLocalizedUrl(currentFullPath, newLocale);
1120
+
1121
+ // Aktualisierung des URL-Pfads
1122
+ route(pathWithLocale, true); // true für Ersetzen
1123
+ },
1124
+ });
1125
+
1126
+ return (
1127
+ <div>
1128
+ <button popovertarget="localePopover">{getLocaleName(locale)}</button>
1129
+ <div id="localePopover" popover="auto">
1130
+ {availableLocales.map((localeItem) => (
1131
+ <a
1132
+ href={getLocalizedUrl(location.url, localeItem)}
1133
+ hreflang={localeItem}
1134
+ aria-current={locale === localeItem ? "page" : undefined}
1135
+ onClick={(e) => {
1136
+ e.preventDefault();
1137
+ setLocale(localeItem);
1138
+ // Programmatische Navigation nach dem Setzen der Sprache wird von onLocaleChange behandelt
1139
+ }}
1140
+ key={localeItem}
1141
+ >
1142
+ <span>
1143
+ {/* Sprache - z. B. FR */}
1144
+ {localeItem}
1145
+ </span>
1146
+ <span>
1147
+ {/* Sprache in ihrer eigenen Lokalisierung - z. B. Français */}
1148
+ {getLocaleName(localeItem, localeItem)}
1149
+ </span>
1150
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1151
+ {/* Sprache in der aktuellen Lokalisierung - z. B. Francés mit aktueller Sprache auf Locales.SPANISH gesetzt */}
1152
+ {getLocaleName(localeItem, locale)}
1153
+ </span>
1154
+ <span dir="ltr" lang={Locales.ENGLISH}>
1155
+ {/* Sprache auf Englisch - z. B. French */}
1156
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1157
+ </span>
1158
+ </a>
1159
+ ))}
1160
+ </div>
1161
+ </div>
1162
+ );
1163
+ };
1164
+
1165
+ export default LocaleSwitcher;
1166
+ ```
1167
+
1168
+ ```jsx fileName="src/components/LocaleSwitcher.jsx" codeFormat="esm"
1169
+ import { useLocation, route } from "preact-iso";
1170
+ import {
1171
+ Locales,
1172
+ getHTMLTextDir,
1173
+ getLocaleName,
1174
+ getLocalizedUrl,
1175
+ } from "intlayer";
1176
+ import { useLocale } from "preact-intlayer";
1177
+ import { h } from "preact"; // Für JSX
1178
+
1179
+ const LocaleSwitcher = () => {
1180
+ const location = useLocation();
1181
+ const { locale, availableLocales, setLocale } = useLocale({
1182
+ onLocaleChange: (newLocale) => {
1183
+ const currentFullPath = location.url;
1184
+ const pathWithLocale = getLocalizedUrl(currentFullPath, newLocale);
1185
+ route(pathWithLocale, true);
1186
+ },
1187
+ });
1188
+
1189
+ return (
1190
+ <div>
1191
+ <button popovertarget="localePopover">{getLocaleName(locale)}</button>
1192
+ <div id="localePopover" popover="auto">
1193
+ {availableLocales.map((localeItem) => (
1194
+ <a
1195
+ href={getLocalizedUrl(location.url, localeItem)}
1196
+ hreflang={localeItem}
1197
+ aria-current={locale === localeItem ? "page" : undefined}
1198
+ onClick={(e) => {
1199
+ e.preventDefault();
1200
+ setLocale(localeItem);
1201
+ }}
1202
+ key={localeItem}
1203
+ >
1204
+ <span>{localeItem}</span>
1205
+ <span>{getLocaleName(localeItem, localeItem)}</span>
1206
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1207
+ {getLocaleName(localeItem, locale)}
1208
+ </span>
1209
+ <span dir="ltr" lang={Locales.ENGLISH}>
1210
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1211
+ </span>
1212
+ </a>
1213
+ ))}
1214
+ </div>
1215
+ </div>
1216
+ );
1217
+ };
1218
+
1219
+ export default LocaleSwitcher;
1220
+ ```
1221
+
1222
+ ```jsx fileName="src/components/LocaleSwitcher.cjsx" codeFormat="commonjs"
1223
+ const { useLocation, route } = require("preact-iso");
1224
+ const {
1225
+ Locales,
1226
+ getHTMLTextDir,
1227
+ getLocaleName,
1228
+ getLocalizedUrl,
1229
+ } = require("intlayer");
1230
+ const { useLocale } = require("preact-intlayer");
1231
+ const { h } = require("preact"); // Für JSX
1232
+
1233
+ const LocaleSwitcher = () => {
1234
+ const location = useLocation();
1235
+ const { locale, availableLocales, setLocale } = useLocale({
1236
+ onLocaleChange: (newLocale) => {
1237
+ const currentFullPath = location.url;
1238
+ const pathWithLocale = getLocalizedUrl(currentFullPath, newLocale);
1239
+ route(pathWithLocale, true);
1240
+ },
1241
+ });
1242
+
1243
+ return (
1244
+ <div>
1245
+ <button popovertarget="localePopover">{getLocaleName(locale)}</button>
1246
+ <div id="localePopover" popover="auto">
1247
+ {availableLocales.map((localeItem) => (
1248
+ <a
1249
+ href={getLocalizedUrl(location.url, localeItem)}
1250
+ hreflang={localeItem}
1251
+ aria-current={locale === localeItem ? "page" : undefined}
1252
+ onClick={(e) => {
1253
+ e.preventDefault();
1254
+ setLocale(localeItem);
1255
+ }}
1256
+ key={localeItem}
1257
+ >
1258
+ <span>{localeItem}</span>
1259
+ <span>{getLocaleName(localeItem, localeItem)}</span>
1260
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
1261
+ {getLocaleName(localeItem, locale)}
1262
+ </span>
1263
+ <span dir="ltr" lang={Locales.ENGLISH}>
1264
+ {getLocaleName(localeItem, Locales.ENGLISH)}
1265
+ </span>
1266
+ </a>
1267
+ ))}
1268
+ </div>
1269
+ </div>
1270
+ );
1271
+ };
1272
+
1273
+ module.exports = LocaleSwitcher;
1274
+ ```
1275
+
1276
+ > Dokumentationsreferenzen:
1277
+
1278
+ > - [`useLocale` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/de/packages/react-intlayer/useLocale.md) (API ist ähnlich für `preact-intlayer`)
1279
+
1280
+ > - [`getLocaleName` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/de/packages/intlayer/getLocaleName.md)
1281
+
1282
+ > - [`getLocalizedUrl` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/de/packages/intlayer/getLocalizedUrl.md)
1283
+
1284
+ > - [`getHTMLTextDir` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/de/packages/intlayer/getHTMLTextDir.md)
1285
+
1286
+ > - [`hreflang` Attribut](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
1287
+
1288
+ > - [`lang` Attribut](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
1289
+
1290
+ > - [`dir` Attribut](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
1291
+
1292
+ > - [`aria-current` Attribut](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1293
+
1294
+ > - [Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)
1295
+
1296
+ Unten ist der aktualisierte **Schritt 9** mit zusätzlichen Erklärungen und verfeinerten Codebeispielen:
1297
+
1298
+ ---
1299
+
1300
+ ### (Optional) Schritt 9: Ändern der HTML-Sprach- und Richtungsattribute
1301
+
1302
+ Wenn Ihre Anwendung mehrere Sprachen unterstützt, ist es wichtig, die `lang`- und `dir`-Attribute des `<html>`-Tags an die aktuelle Sprache anzupassen. Dies stellt sicher:
1303
+
1304
+ - **Barrierefreiheit**: Screenreader und unterstützende Technologien verlassen sich auf das korrekte `lang`-Attribut, um Inhalte genau auszusprechen und zu interpretieren.
1305
+ - **Textdarstellung**: Das `dir`-Attribut (Richtung) stellt sicher, dass der Text in der richtigen Reihenfolge gerendert 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.
1306
+ - **SEO**: Suchmaschinen verwenden das `lang`-Attribut, um die Sprache Ihrer Seite zu bestimmen und die richtigen lokalisierten Inhalte in den Suchergebnissen bereitzustellen.
1307
+
1308
+ Durch die dynamische Aktualisierung dieser Attribute bei Sprachänderungen gewährleisten Sie eine konsistente und zugängliche Benutzererfahrung für alle unterstützten Sprachen.
1309
+
1310
+ #### Implementierung des Hooks
1311
+
1312
+ Erstellen Sie einen benutzerdefinierten Hook, um die HTML-Attribute zu verwalten. Der Hook hört auf Sprachänderungen und aktualisiert die Attribute entsprechend:
1313
+
1314
+ import { useEffect } from "preact/hooks";
1315
+ import { useLocale } from "preact-intlayer";
1316
+ import { getHTMLTextDir } from "intlayer";
1317
+
1318
+ /\*\*
1319
+
1320
+ - Aktualisiert die `lang`- und `dir`-Attribute des HTML-<html>-Elements basierend auf der aktuellen Spracheinstellung.
1321
+ - - `lang`: Informiert Browser und Suchmaschinen über die Sprache der Seite.
1322
+ - - `dir`: Stellt die korrekte Leserichtung sicher (z. B. 'ltr' für Englisch, 'rtl' für Arabisch).
1323
+ -
1324
+ - Diese dynamische Aktualisierung ist essenziell für eine korrekte Textdarstellung, Barrierefreiheit und SEO.
1325
+ \*/
1326
+ export const useI18nHTMLAttributes = () => {
1327
+ const { locale } = useLocale();
1328
+
1329
+ useEffect(() => {
1330
+ // Aktualisiert das Sprachattribut auf die aktuelle Spracheinstellung.
1331
+ document.documentElement.lang = locale;
1332
+
1333
+ // Setzt die Leserichtung basierend auf der aktuellen Spracheinstellung.
1334
+ document.documentElement.dir = getHTMLTextDir(locale);
1335
+
1336
+ }, [locale]);
1337
+ };
1338
+
1339
+ ````
1340
+
1341
+ ```jsx fileName="src/hooks/useI18nHTMLAttributes.jsx" codeFormat="esm"
1342
+ import { useEffect } from "preact/hooks";
1343
+ import { useLocale } from "preact-intlayer";
1344
+ import { getHTMLTextDir } from "intlayer";
1345
+
1346
+ /**
1347
+ * Aktualisiert die `lang`- und `dir`-Attribute des HTML-<html>-Elements basierend auf der aktuellen Spracheinstellung.
1348
+ */
1349
+ export const useI18nHTMLAttributes = () => {
1350
+ const { locale } = useLocale();
1351
+
1352
+ useEffect(() => {
1353
+ document.documentElement.lang = locale;
1354
+ document.documentElement.dir = getHTMLTextDir(locale);
1355
+ }, [locale]);
1356
+ };
1357
+ ````
1358
+
1359
+ ```jsx fileName="src/hooks/useI18nHTMLAttributes.cjsx" codeFormat="commonjs"
1360
+ const { useEffect } = require("preact/hooks");
1361
+ const { useLocale } = require("preact-intlayer");
1362
+ const { getHTMLTextDir } = require("intlayer");
1363
+
1364
+ /**
1365
+ * Aktualisiert die `lang`- und `dir`-Attribute des HTML-<html>-Elements basierend auf der aktuellen Spracheinstellung.
1366
+ */
1367
+ const useI18nHTMLAttributes = () => {
1368
+ const { locale } = useLocale();
1369
+
1370
+ useEffect(() => {
1371
+ document.documentElement.lang = locale;
1372
+ document.documentElement.dir = getHTMLTextDir(locale);
1373
+ }, [locale]);
1374
+ };
1375
+
1376
+ module.exports = { useI18nHTMLAttributes };
1377
+ ```
1378
+
1379
+ #### Verwendung des Hooks in Ihrer Anwendung
1380
+
1381
+ Integrieren Sie den Hook in Ihre Hauptkomponente, damit die HTML-Attribute aktualisiert werden, sobald sich die Spracheinstellung ändert:
1382
+
1383
+ ```tsx fileName="src/app.tsx" codeFormat="typescript"
1384
+ import type { FunctionalComponent } from "preact";
1385
+ import { IntlayerProvider } from "preact-intlayer"; // useIntlayer ist bereits importiert, falls AppContent es benötigt
1386
+ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1387
+ import "./app.css";
1388
+ // AppContent-Definition aus Schritt 5
1389
+
1390
+ const AppWithHooks: FunctionalComponent = () => {
1391
+ // Wendet den Hook an, um die `lang`- und `dir`-Attribute des <html>-Tags basierend auf der Spracheinstellung zu aktualisieren.
1392
+ useI18nHTMLAttributes();
1393
+
1394
+ // Angenommen, AppContent ist Ihre Hauptanzeigekomponente aus Schritt 5
1395
+ return <AppContent />;
1396
+ };
1397
+
1398
+ const App: FunctionalComponent = () => (
1399
+ <IntlayerProvider>
1400
+ <AppWithHooks />
1401
+ </IntlayerProvider>
1402
+ );
1403
+
1404
+ export default App;
1405
+ ```
1406
+
1407
+ ```jsx fileName="src/app.jsx" codeFormat="esm"
1408
+ import { IntlayerProvider } from "preact-intlayer";
1409
+ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
1410
+ import "./app.css";
1411
+ // AppContent-Definition aus Schritt 5
1412
+
1413
+ const AppWithHooks = () => {
1414
+ useI18nHTMLAttributes();
1415
+ return <AppContent />;
1416
+ };
1417
+
1418
+ const App = () => (
1419
+ <IntlayerProvider>
1420
+ <AppWithHooks />
1421
+ </IntlayerProvider>
1422
+ );
1423
+
1424
+ export default App;
1425
+ ```
1426
+
1427
+ ```jsx fileName="src/app.cjsx" codeFormat="commonjs"
1428
+ const { IntlayerProvider } = require("preact-intlayer");
1429
+ const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
1430
+ require("./app.css");
1431
+ // AppContent-Definition aus Schritt 5
1432
+
1433
+ const AppWithHooks = () => {
1434
+ useI18nHTMLAttributes();
1435
+ return <AppContent />;
1436
+ };
1437
+
1438
+ const App = () => (
1439
+ <IntlayerProvider>
1440
+ <AppWithHooks />
1441
+ </IntlayerProvider>
1442
+ );
1443
+
1444
+ module.exports = App;
1445
+ ```
1446
+
1447
+ Durch die Anwendung dieser Änderungen wird Ihre Anwendung:
1448
+
1449
+ - Sicherstellen, dass das **Sprachattribut** (`lang`) die aktuelle Spracheinstellung korrekt widerspiegelt, was für SEO und das Verhalten des Browsers wichtig ist.
1450
+ - Die **Leserichtung** (`dir`) entsprechend der Spracheinstellung anpassen, um die Lesbarkeit und Benutzerfreundlichkeit für Sprachen mit unterschiedlichen Leserichtungen zu verbessern.
1451
+ - Eine **barrierefreie** Erfahrung bieten, da unterstützende Technologien auf diese Attribute angewiesen sind, um optimal zu funktionieren.
1452
+
1453
+ ### (Optional) Schritt 10: Erstellen einer lokalisierten Link-Komponente
1454
+
1455
+ 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.
1456
+
1457
+ Dieses Verhalten ist aus mehreren Gründen nützlich:
1458
+
1459
+ - **SEO und Benutzererfahrung**: Lokalisierte URLs helfen Suchmaschinen, sprachspezifische Seiten korrekt zu indexieren, und bieten Benutzern Inhalte in ihrer bevorzugten Sprache.
1460
+ - **Konsistenz**: Durch die Verwendung eines lokalisierten Links in Ihrer gesamten Anwendung stellen Sie sicher, dass die Navigation innerhalb der aktuellen Spracheinstellung bleibt und unerwartete Sprachwechsel vermieden werden.
1461
+ - **Wartbarkeit**: Die Zentralisierung der Lokalisierungslogik in einer einzigen Komponente vereinfacht die Verwaltung von URLs.
1462
+
1463
+ Für Preact mit `preact-iso` werden normalerweise Standard-`<a>`-Tags für die Navigation verwendet, und `preact-iso` übernimmt das Routing. Wenn Sie eine programmatische Navigation beim Klicken benötigen (z. B. um Aktionen vor der Navigation auszuführen), können Sie die `route`-Funktion von `useLocation` verwenden. So können Sie eine benutzerdefinierte Ankerkomponente erstellen, die URLs lokalisiert:
1464
+
1465
+ ```tsx fileName="src/components/LocalizedLink.tsx" codeFormat="typescript"
1466
+ import { getLocalizedUrl } from "intlayer";
1467
+ import { useLocale, useLocation, route } from "preact-intlayer"; // Angenommen, useLocation und route können von preact-iso über preact-intlayer re-exportiert werden, oder direkt importieren
1468
+ // Falls nicht re-exportiert, direkt importieren: import { useLocation, route } from "preact-iso";
1469
+ import type { JSX } from "preact"; // Für HTMLAttributes
1470
+ import { forwardRef } from "preact/compat"; // Für das Weiterleiten von Refs
1471
+
1472
+ export interface LocalizedLinkProps
1473
+ extends JSX.HTMLAttributes<HTMLAnchorElement> {
1474
+ href: string;
1475
+ replace?: boolean; // Optional: um den Verlauf zu ersetzen
1476
+ }
1477
+
1478
+ /**
1479
+ * Hilfsfunktion, um zu überprüfen, ob eine gegebene URL extern ist.
1480
+ * Wenn die URL mit http:// oder https:// beginnt, wird sie als extern betrachtet.
1481
+ */
1482
+ export const checkIsExternalLink = (href?: string): boolean =>
1483
+ /^https?:\/\//.test(href ?? "");
1484
+
1485
+ /**
1486
+ * Eine benutzerdefinierte Link-Komponente, die das href-Attribut basierend auf der aktuellen Spracheinstellung anpasst.
1487
+ * Für interne Links verwendet sie `getLocalizedUrl`, um die URL mit der Sprache zu präfixen (z. B. /de/about).
1488
+ * Dies stellt sicher, dass die Navigation im gleichen Sprachkontext bleibt.
1489
+ * Sie verwendet ein Standard-<a>-Tag, kann jedoch die clientseitige Navigation mit der `route`-Funktion von preact-iso auslösen.
1490
+ */
1491
+ export const LocalizedLink = forwardRef<HTMLAnchorElement, LocalizedLinkProps>(
1492
+ ({ href, children, onClick, replace = false, ...props }, ref) => {
1493
+ const { locale } = useLocale();
1494
+ const location = useLocation(); // von preact-iso
1495
+ const isExternalLink = checkIsExternalLink(href);
1496
+
1497
+ const hrefI18n =
1498
+ href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1499
+
1500
+ const handleClick = (event: JSX.TargetedMouseEvent<HTMLAnchorElement>) => {
1501
+ if (onClick) {
1502
+ onClick(event);
1503
+ }
1504
+ if (
1505
+ !isExternalLink &&
1506
+ href && // Sicherstellen, dass href definiert ist
1507
+ event.button === 0 && // Linksklick
1508
+ !event.metaKey &&
1509
+ !event.ctrlKey &&
1510
+ !event.shiftKey &&
1511
+ !event.altKey && // Standard-Modifikatoren prüfen
1512
+ !props.target // Kein Ziel für neuen Tab/Fenster
1513
+ ) {
1514
+ event.preventDefault();
1515
+ if (location.url !== hrefI18n) {
1516
+ // Nur navigieren, wenn die URL unterschiedlich ist
1517
+ route(hrefI18n, replace); // Verwenden von preact-iso's route
1518
+ }
1519
+ }
1520
+ };
1521
+
1522
+ return (
1523
+ <a href={hrefI18n} ref={ref} onClick={handleClick} {...props}>
1524
+ {children}
1525
+ </a>
1526
+ );
1527
+ }
1528
+ );
1529
+ ```
1530
+
1531
+ ```jsx fileName="src/components/LocalizedLink.jsx" codeFormat="esm"
1532
+ import { getLocalizedUrl } from "intlayer";
1533
+ import { useLocale } from "preact-intlayer";
1534
+
1535
+ import { useLocation, route } from "preact-iso"; // Import aus preact-iso
1536
+ import { forwardRef } from "preact/compat";
1537
+ import { h } from "preact"; // Für JSX
1538
+
1539
+ export const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1540
+
1541
+ export const LocalizedLink = forwardRef(
1542
+ ({ href, children, onClick, replace = false, ...props }, ref) => {
1543
+ const { locale } = useLocale();
1544
+ const location = useLocation();
1545
+ const isExternalLink = checkIsExternalLink(href);
1546
+
1547
+ const hrefI18n =
1548
+ href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1549
+
1550
+ const handleClick = (event) => {
1551
+ if (onClick) {
1552
+ onClick(event);
1553
+ }
1554
+ if (
1555
+ !isExternalLink &&
1556
+ href &&
1557
+ event.button === 0 &&
1558
+ !event.metaKey &&
1559
+ !event.ctrlKey &&
1560
+ !event.shiftKey &&
1561
+ !event.altKey &&
1562
+ !props.target
1563
+ ) {
1564
+ event.preventDefault();
1565
+ if (location.url !== hrefI18n) {
1566
+ route(hrefI18n, replace);
1567
+ }
1568
+ }
1569
+ };
1570
+
1571
+ return (
1572
+ <a href={hrefI18n} ref={ref} onClick={handleClick} {...props}>
1573
+ {children}
1574
+ </a>
1575
+ );
1576
+ }
1577
+ );
1578
+ ```
1579
+
1580
+ ```jsx fileName="src/components/LocalizedLink.cjsx" codeFormat="commonjs"
1581
+ const { getLocalizedUrl } = require("intlayer");
1582
+ const { useLocale } = require("preact-intlayer");
1583
+ const { useLocation, route } = require("preact-iso"); // Import aus preact-iso
1584
+ const { forwardRef } = require("preact/compat");
1585
+ const { h } = require("preact"); // Für JSX
1586
+
1587
+ const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
1588
+
1589
+ const LocalizedLink = forwardRef(
1590
+ ({ href, children, onClick, replace = false, ...props }, ref) => {
1591
+ const { locale } = useLocale();
1592
+ const location = useLocation();
1593
+ const isExternalLink = checkIsExternalLink(href);
1594
+
1595
+ const hrefI18n =
1596
+ href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
1597
+
1598
+ const handleClick = (event) => {
1599
+ if (onClick) {
1600
+ onClick(event);
1601
+ }
1602
+ if (
1603
+ !isExternalLink &&
1604
+ href &&
1605
+ event.button === 0 &&
1606
+ !event.metaKey &&
1607
+ !event.ctrlKey &&
1608
+ !event.shiftKey &&
1609
+ !event.altKey &&
1610
+ !props.target
1611
+ ) {
1612
+ event.preventDefault();
1613
+ if (location.url !== hrefI18n) {
1614
+ route(hrefI18n, replace);
1615
+ }
1616
+ }
1617
+ };
1618
+
1619
+ return (
1620
+ <a href={hrefI18n} ref={ref} onClick={handleClick} {...props}>
1621
+ {children}
1622
+ </a>
1623
+ );
1624
+ }
1625
+ );
1626
+
1627
+ module.exports = { LocalizedLink, checkIsExternalLink };
1628
+ ```
1629
+
1630
+ #### Wie es funktioniert
1631
+
1632
+ - **Erkennung externer Links**:
1633
+ Die Hilfsfunktion `checkIsExternalLink` bestimmt, ob eine URL extern ist. Externe Links bleiben unverändert.
1634
+ - **Abrufen der aktuellen Spracheinstellung**:
1635
+ Der Hook `useLocale` liefert die aktuelle Spracheinstellung.
1636
+ - **Lokalisierung der URL**:
1637
+ Für interne Links fügt `getLocalizedUrl` die aktuelle Spracheinstellung als Präfix zur URL hinzu.
1638
+ - **Client-seitige Navigation**:
1639
+ Die Funktion `handleClick` prüft, ob es sich um einen internen Link handelt und ob die Standardnavigation verhindert werden soll. Falls ja, wird die `route`-Funktion von `preact-iso` (über `useLocation` oder direkt importiert) verwendet, um eine client-seitige Navigation durchzuführen. Dies ermöglicht ein SPA-ähnliches Verhalten ohne vollständige Seitenneuladen.
1640
+ - **Rückgabe des Links**:
1641
+ Die Komponente gibt ein `<a>`-Element mit der lokalisierten URL und dem benutzerdefinierten Klick-Handler zurück.
1642
+
1643
+ ### TypeScript konfigurieren
1644
+
1645
+ Intlayer verwendet Modulerweiterung, um die Vorteile von TypeScript zu nutzen und Ihren Code robuster zu machen.
1646
+
1647
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1648
+
1649
+ ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1650
+
1651
+ Stellen Sie sicher, dass Ihre TypeScript-Konfiguration die automatisch generierten Typen enthält.
1652
+
1653
+ ```json5 fileName="tsconfig.json"
1654
+ {
1655
+ // ... Ihre bestehenden TypeScript-Konfigurationen
1656
+ "compilerOptions": {
1657
+ // ...
1658
+ "jsx": "react-jsx",
1659
+ "jsxImportSource": "preact", // Empfohlen für Preact 10+
1660
+ // ...
1661
+ },
1662
+ "include": [
1663
+ // ... Ihre bestehenden TypeScript-Konfigurationen
1664
+ ".intlayer/**/*.ts", // Einbeziehen der automatisch generierten Typen
1665
+ ],
1666
+ }
1667
+ ```
1668
+
1669
+ > Stellen Sie sicher, dass Ihre `tsconfig.json` für Preact eingerichtet ist, insbesondere `jsx` und `jsxImportSource` oder `jsxFactory`/`jsxFragmentFactory` für ältere Preact-Versionen, falls Sie nicht die Standardwerte von `preset-vite` verwenden.
1670
+
1671
+ ### Git-Konfiguration
1672
+
1673
+ Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren. Dadurch vermeiden Sie, diese in Ihr Git-Repository einzufügen.
1674
+
1675
+ Fügen Sie dazu die folgenden Anweisungen zu Ihrer `.gitignore`-Datei hinzu:
1676
+
1677
+ ```plaintext
1678
+ # Ignorieren der von Intlayer generierten Dateien
1679
+ .intlayer
1680
+ ```
1681
+
1682
+ ### VS Code-Erweiterung
1683
+
1684
+ Um Ihre Entwicklungserfahrung mit Intlayer zu verbessern, können Sie die offizielle **Intlayer VS Code-Erweiterung** installieren.
1685
+
1686
+ [Installieren Sie sie aus dem VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
1687
+
1688
+ Diese Erweiterung bietet:
1689
+
1690
+ - **Autovervollständigung** für Übersetzungsschlüssel.
1691
+ - **Echtzeit-Fehlererkennung** für fehlende Übersetzungen.
1692
+ - **Inline-Vorschauen** von übersetzten Inhalten.
1693
+ - **Schnellaktionen**, um Übersetzungen einfach zu erstellen und zu aktualisieren.
1694
+
1695
+ Weitere Details zur Verwendung der Erweiterung finden Sie in der [Intlayer VS Code-Erweiterungsdokumentation](https://intlayer.org/doc/vs-code-extension).
1696
+
1697
+ ---
1698
+
1699
+ ### Weiterführende Schritte
1700
+
1701
+ 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.