@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.
- package/LICENSE +202 -0
- package/ar/CI_CD.md +149 -0
- package/ar/autoFill.md +157 -0
- package/ar/concept/content/file.md +1 -0
- package/ar/configuration.md +492 -0
- package/ar/dictionary/condition.md +213 -0
- package/ar/dictionary/content_extention_customization.md +81 -0
- package/ar/dictionary/enumeration.md +221 -0
- package/ar/dictionary/file.md +209 -0
- package/ar/dictionary/function_fetching.md +190 -0
- package/ar/dictionary/get_started.md +490 -0
- package/ar/dictionary/insertion.md +161 -0
- package/ar/dictionary/markdown.md +343 -0
- package/ar/dictionary/nesting.md +249 -0
- package/ar/dictionary/translation.md +307 -0
- package/ar/header.md +7 -0
- package/ar/how_works_intlayer.md +219 -0
- package/ar/index.md +125 -0
- package/ar/interest_of_intlayer.md +132 -0
- package/ar/intlayer_CMS.md +328 -0
- package/ar/intlayer_cli.md +258 -0
- package/ar/intlayer_visual_editor.md +210 -0
- package/ar/intlayer_with_angular.md +3 -0
- package/ar/intlayer_with_create_react_app.md +1196 -0
- package/ar/intlayer_with_express.md +270 -0
- package/ar/intlayer_with_lynx+react.md +482 -0
- package/ar/intlayer_with_nextjs_14.md +1260 -0
- package/ar/intlayer_with_nextjs_15.md +1311 -0
- package/ar/intlayer_with_nextjs_page_router.md +1099 -0
- package/ar/intlayer_with_react_native+expo.md +539 -0
- package/ar/intlayer_with_vite+preact.md +1679 -0
- package/ar/intlayer_with_vite+react.md +1582 -0
- package/ar/intlayer_with_vite+solid.md +3 -0
- package/ar/intlayer_with_vite+svelte.md +3 -0
- package/ar/intlayer_with_vite+vue.md +989 -0
- package/ar/introduction.md +190 -0
- package/ar/mcp_server.md +150 -0
- package/ar/packages/@intlayer/api/index.md +31 -0
- package/ar/packages/@intlayer/chokidar/index.md +31 -0
- package/ar/packages/@intlayer/cli/index.md +1 -0
- package/ar/packages/@intlayer/config/index.md +116 -0
- package/ar/packages/@intlayer/core/index.md +25 -0
- package/ar/packages/@intlayer/design-system/index.md +21 -0
- package/ar/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/ar/packages/@intlayer/editor/index.md +21 -0
- package/ar/packages/@intlayer/editor-react/index.md +21 -0
- package/ar/packages/@intlayer/webpack/index.md +35 -0
- package/ar/packages/angular-intlayer/index.md +3 -0
- package/ar/packages/express-intlayer/index.md +232 -0
- package/ar/packages/express-intlayer/t.md +448 -0
- package/ar/packages/intlayer/getConfiguration.md +120 -0
- package/ar/packages/intlayer/getEnumeration.md +138 -0
- package/ar/packages/intlayer/getHTMLTextDir.md +97 -0
- package/ar/packages/intlayer/getLocaleLang.md +61 -0
- package/ar/packages/intlayer/getLocaleName.md +93 -0
- package/ar/packages/intlayer/getLocalizedUrl.md +221 -0
- package/ar/packages/intlayer/getMultilingualUrls.md +198 -0
- package/ar/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/ar/packages/intlayer/getTranslation.md +175 -0
- package/ar/packages/intlayer/getTranslationContent.md +175 -0
- package/ar/packages/intlayer/index.md +254 -0
- package/ar/packages/intlayer-cli/index.md +41 -0
- package/ar/packages/intlayer-editor/index.md +113 -0
- package/ar/packages/lynx-intlayer/index.md +58 -0
- package/ar/packages/next-intlayer/index.md +267 -0
- package/ar/packages/next-intlayer/t.md +341 -0
- package/ar/packages/next-intlayer/useDictionary.md +248 -0
- package/ar/packages/next-intlayer/useIntlayer.md +237 -0
- package/ar/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/ar/packages/next-intlayer/useLocale.md +105 -0
- package/ar/packages/preact-intlayer/index.md +3 -0
- package/ar/packages/react-intlayer/index.md +261 -0
- package/ar/packages/react-intlayer/t.md +283 -0
- package/ar/packages/react-intlayer/useDictionary.md +268 -0
- package/ar/packages/react-intlayer/useIntlayer.md +225 -0
- package/ar/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/ar/packages/react-intlayer/useLocale.md +184 -0
- package/ar/packages/react-native-intlayer/index.md +57 -0
- package/ar/packages/react-scripts-intlayer/index.md +57 -0
- package/ar/packages/solid-intlayer/index.md +3 -0
- package/ar/packages/svelte-intlayer/index.md +3 -0
- package/ar/packages/vite-intlayer/index.md +53 -0
- package/ar/packages/vue-intlayer/index.md +3 -0
- package/ar/per_locale_file.md +298 -0
- package/ar/privacy_notice.md +61 -0
- package/ar/roadmap.md +208 -0
- package/ar/terms_of_service.md +33 -0
- package/ar/vs_code_extension.md +139 -0
- package/de/CI_CD.md +149 -0
- package/de/angular-intlayer/index.md +3 -0
- package/de/autoFill.md +157 -0
- package/de/configuration.md +501 -0
- package/de/dictionary/condition.md +213 -0
- package/de/dictionary/content_extention_customization.md +81 -0
- package/de/dictionary/enumeration.md +221 -0
- package/de/dictionary/file.md +207 -0
- package/de/dictionary/function_fetching.md +190 -0
- package/de/dictionary/get_started.md +466 -0
- package/de/dictionary/insertion.md +167 -0
- package/de/dictionary/markdown.md +345 -0
- package/de/dictionary/nesting.md +252 -0
- package/de/dictionary/translation.md +287 -0
- package/de/header.md +5 -0
- package/de/how_works_intlayer.md +216 -0
- package/de/index.md +125 -0
- package/de/insertion.md +0 -0
- package/de/interest_of_intlayer.md +132 -0
- package/de/intlayer_CMS.md +334 -0
- package/de/intlayer_cli.md +274 -0
- package/de/intlayer_visual_editor.md +210 -0
- package/de/intlayer_with_angular.md +3 -0
- package/de/intlayer_with_create_react_app.md +1200 -0
- package/de/intlayer_with_express.md +268 -0
- package/de/intlayer_with_lynx+react.md +482 -0
- package/de/intlayer_with_nextjs_14.md +1258 -0
- package/de/intlayer_with_nextjs_15.md +1306 -0
- package/de/intlayer_with_nextjs_page_router.md +1087 -0
- package/de/intlayer_with_react_native+expo.md +539 -0
- package/de/intlayer_with_vite+preact.md +1701 -0
- package/de/intlayer_with_vite+react.md +1584 -0
- package/de/intlayer_with_vite+solid.md +3 -0
- package/de/intlayer_with_vite+svelte.md +3 -0
- package/de/intlayer_with_vite+vue.md +989 -0
- package/de/introduction.md +186 -0
- package/de/mcp_server.md +150 -0
- package/de/packages/@intlayer/api/index.md +31 -0
- package/de/packages/@intlayer/chokidar/index.md +31 -0
- package/de/packages/@intlayer/cli/index.md +21 -0
- package/de/packages/@intlayer/config/index.md +116 -0
- package/de/packages/@intlayer/core/index.md +25 -0
- package/de/packages/@intlayer/design-system/index.md +21 -0
- package/de/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/de/packages/@intlayer/editor/index.md +21 -0
- package/de/packages/@intlayer/editor-react/index.md +21 -0
- package/de/packages/@intlayer/webpack/index.md +35 -0
- package/de/packages/angular-intlayer/index.md +31 -0
- package/de/packages/express-intlayer/index.md +229 -0
- package/de/packages/express-intlayer/t.md +432 -0
- package/de/packages/intlayer/getConfiguration.md +120 -0
- package/de/packages/intlayer/getEnumeration.md +140 -0
- package/de/packages/intlayer/getHTMLTextDir.md +97 -0
- package/de/packages/intlayer/getLocaleLang.md +57 -0
- package/de/packages/intlayer/getLocaleName.md +93 -0
- package/de/packages/intlayer/getLocalizedUrl.md +221 -0
- package/de/packages/intlayer/getMultilingualUrls.md +198 -0
- package/de/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/de/packages/intlayer/getTranslation.md +166 -0
- package/de/packages/intlayer/getTranslationContent.md +166 -0
- package/de/packages/intlayer/index.md +478 -0
- package/de/packages/intlayer-cli/index.md +41 -0
- package/de/packages/intlayer-editor/index.md +113 -0
- package/de/packages/lynx-intlayer/index.md +58 -0
- package/de/packages/next-intlayer/index.md +263 -0
- package/de/packages/next-intlayer/t.md +325 -0
- package/de/packages/next-intlayer/useDictionary.md +242 -0
- package/de/packages/next-intlayer/useIntlayer.md +237 -0
- package/de/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/de/packages/next-intlayer/useLocale.md +105 -0
- package/de/packages/preact-intlayer/index.md +3 -0
- package/de/packages/react-intlayer/index.md +260 -0
- package/de/packages/react-intlayer/t.md +277 -0
- package/de/packages/react-intlayer/useDictionary.md +260 -0
- package/de/packages/react-intlayer/useIntlayer.md +225 -0
- package/de/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/de/packages/react-intlayer/useLocale.md +184 -0
- package/de/packages/react-native-intlayer/index.md +57 -0
- package/de/packages/react-scripts-intlayer/index.md +57 -0
- package/de/packages/solid-intlayer/index.md +3 -0
- package/de/packages/svelte-intlayer/index.md +3 -0
- package/de/packages/vite-intlayer/index.md +53 -0
- package/de/packages/vue-intlayer/index.md +3 -0
- package/de/per_locale_file.md +298 -0
- package/de/privacy_notice.md +61 -0
- package/de/roadmap.md +206 -0
- package/de/terms_of_service.md +33 -0
- package/de/vs_code_extension.md +139 -0
- package/en/CI_CD.md +149 -0
- package/en/autoFill.md +157 -0
- package/en/configuration.md +506 -0
- package/en/dictionary/condition.md +213 -0
- package/en/dictionary/content_extention_customization.md +81 -0
- package/en/dictionary/enumeration.md +221 -0
- package/en/dictionary/file.md +198 -0
- package/en/dictionary/function_fetching.md +190 -0
- package/en/dictionary/get_started.md +504 -0
- package/en/dictionary/insertion.md +167 -0
- package/en/dictionary/markdown.md +355 -0
- package/en/dictionary/nesting.md +249 -0
- package/en/dictionary/translation.md +285 -0
- package/en/frequent_questions/build_dictionaries.md +37 -0
- package/en/frequent_questions/domain_routing.md +92 -0
- package/en/frequent_questions/esbuild_error.md +9 -0
- package/en/frequent_questions/get_locale_cookie.md +121 -0
- package/en/frequent_questions/intlayer_command_undefined.md +135 -0
- package/en/frequent_questions/locale_incorect_in_url.md +52 -0
- package/en/frequent_questions/static_rendering.md +24 -0
- package/en/frequent_questions/unknown_command.md +76 -0
- package/en/header.md +5 -0
- package/en/how_works_intlayer.md +219 -0
- package/en/index.md +139 -0
- package/en/interest_of_intlayer.md +133 -0
- package/en/intlayer_CMS.md +334 -0
- package/en/intlayer_cli.md +309 -0
- package/en/intlayer_visual_editor.md +244 -0
- package/en/intlayer_with_angular.md +139 -0
- package/en/intlayer_with_create_react_app.md +1209 -0
- package/en/intlayer_with_express.md +391 -0
- package/en/intlayer_with_lynx+react.md +483 -0
- package/en/intlayer_with_nextjs_14.md +1298 -0
- package/en/intlayer_with_nextjs_15.md +1347 -0
- package/en/intlayer_with_nextjs_page_router.md +1126 -0
- package/en/intlayer_with_react_native+expo.md +630 -0
- package/en/intlayer_with_vite+preact.md +1659 -0
- package/en/intlayer_with_vite+react.md +1605 -0
- package/en/intlayer_with_vite+solid.md +254 -0
- package/en/intlayer_with_vite+svelte.md +254 -0
- package/en/intlayer_with_vite+vue.md +1000 -0
- package/en/introduction.md +185 -0
- package/en/mcp_server.md +150 -0
- package/en/packages/@intlayer/api/index.md +31 -0
- package/en/packages/@intlayer/chokidar/index.md +31 -0
- package/en/packages/@intlayer/cli/index.md +21 -0
- package/en/packages/@intlayer/config/index.md +116 -0
- package/en/packages/@intlayer/core/index.md +25 -0
- package/en/packages/@intlayer/design-system/index.md +21 -0
- package/en/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/en/packages/@intlayer/editor/index.md +21 -0
- package/en/packages/@intlayer/editor-react/index.md +21 -0
- package/en/packages/@intlayer/webpack/index.md +35 -0
- package/en/packages/angular-intlayer/index.md +31 -0
- package/en/packages/express-intlayer/index.md +229 -0
- package/en/packages/express-intlayer/t.md +432 -0
- package/en/packages/intlayer/getConfiguration.md +120 -0
- package/en/packages/intlayer/getEnumeration.md +138 -0
- package/en/packages/intlayer/getHTMLTextDir.md +97 -0
- package/en/packages/intlayer/getLocaleLang.md +57 -0
- package/en/packages/intlayer/getLocaleName.md +93 -0
- package/en/packages/intlayer/getLocalizedUrl.md +221 -0
- package/en/packages/intlayer/getMultilingualUrls.md +198 -0
- package/en/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/en/packages/intlayer/getTranslation.md +166 -0
- package/en/packages/intlayer/getTranslationContent.md +166 -0
- package/en/packages/intlayer/index.md +476 -0
- package/en/packages/intlayer-cli/index.md +41 -0
- package/en/packages/intlayer-editor/index.md +113 -0
- package/en/packages/lynx-intlayer/index.md +60 -0
- package/en/packages/next-intlayer/index.md +263 -0
- package/en/packages/next-intlayer/t.md +326 -0
- package/en/packages/next-intlayer/useDictionary.md +242 -0
- package/en/packages/next-intlayer/useIntlayer.md +237 -0
- package/en/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/en/packages/next-intlayer/useLocale.md +105 -0
- package/en/packages/preact-intlayer/index.md +31 -0
- package/en/packages/react-intlayer/index.md +257 -0
- package/en/packages/react-intlayer/t.md +277 -0
- package/en/packages/react-intlayer/useDictionary.md +260 -0
- package/en/packages/react-intlayer/useIntlayer.md +225 -0
- package/en/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/en/packages/react-intlayer/useLocale.md +184 -0
- package/en/packages/react-native-intlayer/index.md +59 -0
- package/en/packages/react-scripts-intlayer/index.md +57 -0
- package/en/packages/solid-intlayer/index.md +31 -0
- package/en/packages/svelte-intlayer/index.md +31 -0
- package/en/packages/vite-intlayer/index.md +53 -0
- package/en/packages/vue-intlayer/index.md +31 -0
- package/en/per_locale_file.md +297 -0
- package/en/privacy_notice.md +61 -0
- package/en/roadmap.md +270 -0
- package/en/t.md +163 -0
- package/en/terms_of_service.md +33 -0
- package/en/vs_code_extension.md +129 -0
- package/en-GB/CI_CD.md +149 -0
- package/en-GB/autoFill.md +0 -0
- package/en-GB/configuration.md +490 -0
- package/en-GB/dictionary/condition.md +213 -0
- package/en-GB/dictionary/content_extention_customization.md +83 -0
- package/en-GB/dictionary/enumeration.md +221 -0
- package/en-GB/dictionary/file.md +201 -0
- package/en-GB/dictionary/function_fetching.md +190 -0
- package/en-GB/dictionary/get_started.md +466 -0
- package/en-GB/dictionary/insertion.md +167 -0
- package/en-GB/dictionary/markdown.md +343 -0
- package/en-GB/dictionary/nesting.md +249 -0
- package/en-GB/dictionary/translation.md +285 -0
- package/en-GB/header.md +1 -0
- package/en-GB/how_works_intlayer.md +217 -0
- package/en-GB/index.md +142 -0
- package/en-GB/interest_of_intlayer.md +123 -0
- package/en-GB/intlayer_CMS.md +334 -0
- package/en-GB/intlayer_cli.md +239 -0
- package/en-GB/intlayer_visual_editor.md +210 -0
- package/en-GB/intlayer_with_angular.md +3 -0
- package/en-GB/intlayer_with_create_react_app.md +1192 -0
- package/en-GB/intlayer_with_express.md +267 -0
- package/en-GB/intlayer_with_lynx+react.md +484 -0
- package/en-GB/intlayer_with_nextjs_14.md +1267 -0
- package/en-GB/intlayer_with_nextjs_15.md +1308 -0
- package/en-GB/intlayer_with_nextjs_page_router.md +1087 -0
- package/en-GB/intlayer_with_react_native+expo.md +539 -0
- package/en-GB/intlayer_with_vite+preact.md +1648 -0
- package/en-GB/intlayer_with_vite+react.md +1430 -0
- package/en-GB/intlayer_with_vite+solid.md +3 -0
- package/en-GB/intlayer_with_vite+svelte.md +3 -0
- package/en-GB/intlayer_with_vite+vue.md +993 -0
- package/en-GB/introduction.md +201 -0
- package/en-GB/mcp_server.md +150 -0
- package/en-GB/packages/@intlayer/api/index.md +31 -0
- package/en-GB/packages/@intlayer/chokidar/index.md +31 -0
- package/en-GB/packages/@intlayer/cli/index.md +21 -0
- package/en-GB/packages/@intlayer/config/index.md +116 -0
- package/en-GB/packages/@intlayer/core/index.md +25 -0
- package/en-GB/packages/@intlayer/design-system/index.md +21 -0
- package/en-GB/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/en-GB/packages/@intlayer/editor/index.md +21 -0
- package/en-GB/packages/@intlayer/editor-react/index.md +21 -0
- package/en-GB/packages/@intlayer/webpack/index.md +35 -0
- package/en-GB/packages/angular-intlayer/index.md +3 -0
- package/en-GB/packages/express-intlayer/index.md +229 -0
- package/en-GB/packages/express-intlayer/t.md +432 -0
- package/en-GB/packages/intlayer/getConfiguration.md +120 -0
- package/en-GB/packages/intlayer/getEnumeration.md +140 -0
- package/en-GB/packages/intlayer/getHTMLTextDir.md +97 -0
- package/en-GB/packages/intlayer/getLocaleLang.md +57 -0
- package/en-GB/packages/intlayer/getLocaleName.md +93 -0
- package/en-GB/packages/intlayer/getLocalizedUrl.md +221 -0
- package/en-GB/packages/intlayer/getMultilingualUrls.md +198 -0
- package/en-GB/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/en-GB/packages/intlayer/getTranslation.md +166 -0
- package/en-GB/packages/intlayer/getTranslationContent.md +166 -0
- package/en-GB/packages/intlayer/index.md +476 -0
- package/en-GB/packages/intlayer-cli/index.md +41 -0
- package/en-GB/packages/intlayer-editor/index.md +113 -0
- package/en-GB/packages/lynx-intlayer/index.md +58 -0
- package/en-GB/packages/next-intlayer/index.md +263 -0
- package/en-GB/packages/next-intlayer/t.md +326 -0
- package/en-GB/packages/next-intlayer/useDictionary.md +242 -0
- package/en-GB/packages/next-intlayer/useIntlayer.md +237 -0
- package/en-GB/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/en-GB/packages/next-intlayer/useLocale.md +105 -0
- package/en-GB/packages/preact-intlayer/index.md +3 -0
- package/en-GB/packages/react-intlayer/index.md +257 -0
- package/en-GB/packages/react-intlayer/t.md +277 -0
- package/en-GB/packages/react-intlayer/useDictionary.md +260 -0
- package/en-GB/packages/react-intlayer/useIntlayer.md +225 -0
- package/en-GB/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/en-GB/packages/react-intlayer/useLocale.md +184 -0
- package/en-GB/packages/react-native-intlayer/index.md +57 -0
- package/en-GB/packages/react-scripts-intlayer/index.md +57 -0
- package/en-GB/packages/solid-intlayer/index.md +3 -0
- package/en-GB/packages/svelte-intlayer/index.md +3 -0
- package/en-GB/packages/vite-intlayer/index.md +53 -0
- package/en-GB/packages/vue-intlayer/index.md +3 -0
- package/en-GB/per_locale_file.md +298 -0
- package/en-GB/privacy_notice.md +57 -0
- package/en-GB/roadmap.md +206 -0
- package/en-GB/terms_of_service.md +33 -0
- package/en-GB/vs_code_extension.md +139 -0
- package/es/CI_CD.md +149 -0
- package/es/autoFill.md +157 -0
- package/es/configuration.md +503 -0
- package/es/dictionary/condition.md +213 -0
- package/es/dictionary/content_extention_customization.md +81 -0
- package/es/dictionary/enumeration.md +221 -0
- package/es/dictionary/file.md +206 -0
- package/es/dictionary/function_fetching.md +190 -0
- package/es/dictionary/get_started.md +466 -0
- package/es/dictionary/insertion.md +161 -0
- package/es/dictionary/markdown.md +338 -0
- package/es/dictionary/nesting.md +249 -0
- package/es/dictionary/translation.md +287 -0
- package/es/header.md +5 -0
- package/es/how_works_intlayer.md +217 -0
- package/es/index.md +122 -0
- package/es/interest_of_intlayer.md +132 -0
- package/es/intlayer_CMS.md +334 -0
- package/es/intlayer_cli.md +274 -0
- package/es/intlayer_visual_editor.md +210 -0
- package/es/intlayer_with_angular.md +3 -0
- package/es/intlayer_with_create_react_app.md +1192 -0
- package/es/intlayer_with_express.md +276 -0
- package/es/intlayer_with_lynx+react.md +475 -0
- package/es/intlayer_with_nextjs_14.md +1258 -0
- package/es/intlayer_with_nextjs_15.md +1308 -0
- package/es/intlayer_with_nextjs_page_router.md +1088 -0
- package/es/intlayer_with_react_native+expo.md +180 -0
- package/es/intlayer_with_vite+preact.md +1637 -0
- package/es/intlayer_with_vite+react.md +1592 -0
- package/es/intlayer_with_vite+solid.md +3 -0
- package/es/intlayer_with_vite+svelte.md +3 -0
- package/es/intlayer_with_vite+vue.md +947 -0
- package/es/introduction.md +184 -0
- package/es/mcp_server.md +150 -0
- package/es/packages/@intlayer/api/index.md +31 -0
- package/es/packages/@intlayer/chokidar/index.md +31 -0
- package/es/packages/@intlayer/cli/index.md +21 -0
- package/es/packages/@intlayer/config/index.md +116 -0
- package/es/packages/@intlayer/core/index.md +25 -0
- package/es/packages/@intlayer/design-system/index.md +21 -0
- package/es/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/es/packages/@intlayer/editor/index.md +21 -0
- package/es/packages/@intlayer/editor-react/index.md +21 -0
- package/es/packages/@intlayer/webpack/index.md +35 -0
- package/es/packages/angular-intlayer/index.md +3 -0
- package/es/packages/express-intlayer/index.md +229 -0
- package/es/packages/express-intlayer/t.md +432 -0
- package/es/packages/intlayer/getConfiguration.md +120 -0
- package/es/packages/intlayer/getEnumeration.md +138 -0
- package/es/packages/intlayer/getHTMLTextDir.md +97 -0
- package/es/packages/intlayer/getLocaleLang.md +57 -0
- package/es/packages/intlayer/getLocaleName.md +93 -0
- package/es/packages/intlayer/getLocalizedUrl.md +221 -0
- package/es/packages/intlayer/getMultilingualUrls.md +198 -0
- package/es/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/es/packages/intlayer/getTranslation.md +166 -0
- package/es/packages/intlayer/getTranslationContent.md +166 -0
- package/es/packages/intlayer/index.md +478 -0
- package/es/packages/intlayer-cli/index.md +41 -0
- package/es/packages/intlayer-editor/index.md +115 -0
- package/es/packages/lynx-intlayer/index.md +58 -0
- package/es/packages/next-intlayer/index.md +263 -0
- package/es/packages/next-intlayer/t.md +325 -0
- package/es/packages/next-intlayer/useDictionary.md +242 -0
- package/es/packages/next-intlayer/useIntlayer.md +237 -0
- package/es/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/es/packages/next-intlayer/useLocale.md +105 -0
- package/es/packages/preact-intlayer/index.md +3 -0
- package/es/packages/react-intlayer/index.md +263 -0
- package/es/packages/react-intlayer/t.md +277 -0
- package/es/packages/react-intlayer/useDictionary.md +270 -0
- package/es/packages/react-intlayer/useIntlayer.md +225 -0
- package/es/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/es/packages/react-intlayer/useLocale.md +184 -0
- package/es/packages/react-native-intlayer/index.md +57 -0
- package/es/packages/react-scripts-intlayer/index.md +57 -0
- package/es/packages/solid-intlayer/index.md +3 -0
- package/es/packages/svelte-intlayer/index.md +5 -0
- package/es/packages/vite-intlayer/index.md +53 -0
- package/es/packages/vue-intlayer/index.md +3 -0
- package/es/per_locale_file.md +293 -0
- package/es/privacy_notice.md +61 -0
- package/es/roadmap.md +157 -0
- package/es/terms_of_service.md +33 -0
- package/es/vs_code_extension.md +139 -0
- package/fr/CI_CD.md +149 -0
- package/fr/autoFill.md +157 -0
- package/fr/configuration.md +481 -0
- package/fr/dictionary/condition.md +213 -0
- package/fr/dictionary/content_extention_customization.md +81 -0
- package/fr/dictionary/enumeration.md +221 -0
- package/fr/dictionary/file.md +206 -0
- package/fr/dictionary/function_fetching.md +190 -0
- package/fr/dictionary/get_started.md +466 -0
- package/fr/dictionary/insertion.md +161 -0
- package/fr/dictionary/markdown.md +335 -0
- package/fr/dictionary/nesting.md +249 -0
- package/fr/dictionary/translation.md +287 -0
- package/fr/header.md +5 -0
- package/fr/how_works_intlayer.md +217 -0
- package/fr/index.md +122 -0
- package/fr/interest_of_intlayer.md +132 -0
- package/fr/intlayer_CMS.md +334 -0
- package/fr/intlayer_cli.md +274 -0
- package/fr/intlayer_visual_editor.md +210 -0
- package/fr/intlayer_with_angular.md +3 -0
- package/fr/intlayer_with_create_react_app.md +1192 -0
- package/fr/intlayer_with_express.md +270 -0
- package/fr/intlayer_with_lynx+react.md +466 -0
- package/fr/intlayer_with_nextjs_14.md +1258 -0
- package/fr/intlayer_with_nextjs_15.md +1308 -0
- package/fr/intlayer_with_nextjs_page_router.md +1085 -0
- package/fr/intlayer_with_react_native+expo.md +535 -0
- package/fr/intlayer_with_vite+preact.md +1621 -0
- package/fr/intlayer_with_vite+react.md +1589 -0
- package/fr/intlayer_with_vite+solid.md +3 -0
- package/fr/intlayer_with_vite+svelte.md +3 -0
- package/fr/intlayer_with_vite+vue.md +947 -0
- package/fr/introduction.md +190 -0
- package/fr/mcp_server.md +152 -0
- package/fr/packages/@intlayer/api/index.md +31 -0
- package/fr/packages/@intlayer/chokidar/index.md +31 -0
- package/fr/packages/@intlayer/cli/index.md +21 -0
- package/fr/packages/@intlayer/config/index.md +116 -0
- package/fr/packages/@intlayer/core/index.md +25 -0
- package/fr/packages/@intlayer/design-system/index.md +21 -0
- package/fr/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/fr/packages/@intlayer/editor/index.md +21 -0
- package/fr/packages/@intlayer/editor-react/index.md +21 -0
- package/fr/packages/@intlayer/webpack/index.md +35 -0
- package/fr/packages/angular-intlayer/index.md +3 -0
- package/fr/packages/express-intlayer/index.md +238 -0
- package/fr/packages/express-intlayer/t.md +432 -0
- package/fr/packages/intlayer/getConfiguration.md +120 -0
- package/fr/packages/intlayer/getEnumeration.md +138 -0
- package/fr/packages/intlayer/getHTMLTextDir.md +97 -0
- package/fr/packages/intlayer/getLocaleLang.md +57 -0
- package/fr/packages/intlayer/getLocaleName.md +93 -0
- package/fr/packages/intlayer/getLocalizedUrl.md +221 -0
- package/fr/packages/intlayer/getMultilingualUrls.md +198 -0
- package/fr/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/fr/packages/intlayer/getTranslation.md +166 -0
- package/fr/packages/intlayer/getTranslationContent.md +166 -0
- package/fr/packages/intlayer/index.md +476 -0
- package/fr/packages/intlayer-cli/index.md +41 -0
- package/fr/packages/intlayer-editor/index.md +115 -0
- package/fr/packages/lynx-intlayer/index.md +58 -0
- package/fr/packages/next-intlayer/index.md +266 -0
- package/fr/packages/next-intlayer/t.md +325 -0
- package/fr/packages/next-intlayer/useDictionary.md +242 -0
- package/fr/packages/next-intlayer/useIntlayer.md +237 -0
- package/fr/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/fr/packages/next-intlayer/useLocale.md +105 -0
- package/fr/packages/preact-intlayer/index.md +3 -0
- package/fr/packages/react-intlayer/index.md +257 -0
- package/fr/packages/react-intlayer/t.md +277 -0
- package/fr/packages/react-intlayer/useDictionary.md +269 -0
- package/fr/packages/react-intlayer/useIntlayer.md +234 -0
- package/fr/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/fr/packages/react-intlayer/useLocale.md +184 -0
- package/fr/packages/react-native-intlayer/index.md +57 -0
- package/fr/packages/react-scripts-intlayer/index.md +57 -0
- package/fr/packages/solid-intlayer/index.md +3 -0
- package/fr/packages/svelte-intlayer/index.md +3 -0
- package/fr/packages/vite-intlayer/index.md +53 -0
- package/fr/packages/vue-intlayer/index.md +3 -0
- package/fr/per_locale_file.md +297 -0
- package/fr/privacy_notice.md +57 -0
- package/fr/roadmap.md +206 -0
- package/fr/terms_of_service.md +33 -0
- package/fr/vs_code_extension.md +139 -0
- package/hi/CI_CD.md +149 -0
- package/hi/autoFill.md +157 -0
- package/hi/configuration.md +509 -0
- package/hi/dictionary/condition.md +213 -0
- package/hi/dictionary/content_extention_customization.md +81 -0
- package/hi/dictionary/enumeration.md +221 -0
- package/hi/dictionary/file.md +209 -0
- package/hi/dictionary/function_fetching.md +188 -0
- package/hi/dictionary/get_started.md +490 -0
- package/hi/dictionary/insertion.md +167 -0
- package/hi/dictionary/markdown.md +344 -0
- package/hi/dictionary/nesting.md +249 -0
- package/hi/dictionary/translation.md +307 -0
- package/hi/header.md +7 -0
- package/hi/how_works_intlayer.md +217 -0
- package/hi/index.md +125 -0
- package/hi/interest_of_intlayer.md +132 -0
- package/hi/intlayer_CMS.md +334 -0
- package/hi/intlayer_cli.md +274 -0
- package/hi/intlayer_visual_editor.md +210 -0
- package/hi/intlayer_with_angular.md +3 -0
- package/hi/intlayer_with_create_react_app.md +1395 -0
- package/hi/intlayer_with_express.md +273 -0
- package/hi/intlayer_with_lynx+react.md +456 -0
- package/hi/intlayer_with_nextjs_14.md +1283 -0
- package/hi/intlayer_with_nextjs_15.md +1319 -0
- package/hi/intlayer_with_nextjs_page_router.md +1097 -0
- package/hi/intlayer_with_react_native+expo.md +554 -0
- package/hi/intlayer_with_vite+preact.md +1538 -0
- package/hi/intlayer_with_vite+react.md +1540 -0
- package/hi/intlayer_with_vite+solid.md +3 -0
- package/hi/intlayer_with_vite+svelte.md +3 -0
- package/hi/intlayer_with_vite+vue.md +840 -0
- package/hi/introduction.md +190 -0
- package/hi/mcp_server.md +150 -0
- package/hi/packages/@intlayer/api/index.md +31 -0
- package/hi/packages/@intlayer/chokidar/index.md +31 -0
- package/hi/packages/@intlayer/cli/index.md +21 -0
- package/hi/packages/@intlayer/config/index.md +116 -0
- package/hi/packages/@intlayer/core/index.md +25 -0
- package/hi/packages/@intlayer/design-system/index.md +21 -0
- package/hi/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/hi/packages/@intlayer/editor/index.md +21 -0
- package/hi/packages/@intlayer/editor-react/index.md +21 -0
- package/hi/packages/@intlayer/webpack/index.md +35 -0
- package/hi/packages/angular-intlayer/index.md +3 -0
- package/hi/packages/express-intlayer/index.md +232 -0
- package/hi/packages/express-intlayer/t.md +445 -0
- package/hi/packages/intlayer/getConfiguration.md +120 -0
- package/hi/packages/intlayer/getEnumeration.md +138 -0
- package/hi/packages/intlayer/getHTMLTextDir.md +97 -0
- package/hi/packages/intlayer/getLocaleLang.md +57 -0
- package/hi/packages/intlayer/getLocaleName.md +93 -0
- package/hi/packages/intlayer/getLocalizedUrl.md +221 -0
- package/hi/packages/intlayer/getMultilingualUrls.md +198 -0
- package/hi/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/hi/packages/intlayer/getTranslation.md +175 -0
- package/hi/packages/intlayer/getTranslationContent.md +175 -0
- package/hi/packages/intlayer/index.md +314 -0
- package/hi/packages/intlayer-cli/index.md +41 -0
- package/hi/packages/intlayer-editor/index.md +113 -0
- package/hi/packages/lynx-intlayer/index.md +58 -0
- package/hi/packages/next-intlayer/index.md +270 -0
- package/hi/packages/next-intlayer/t.md +337 -0
- package/hi/packages/next-intlayer/useDictionary.md +248 -0
- package/hi/packages/next-intlayer/useIntlayer.md +237 -0
- package/hi/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/hi/packages/next-intlayer/useLocale.md +105 -0
- package/hi/packages/preact-intlayer/index.md +3 -0
- package/hi/packages/react-intlayer/index.md +261 -0
- package/hi/packages/react-intlayer/t.md +283 -0
- package/hi/packages/react-intlayer/useDictionary.md +268 -0
- package/hi/packages/react-intlayer/useIntlayer.md +225 -0
- package/hi/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/hi/packages/react-intlayer/useLocale.md +184 -0
- package/hi/packages/react-native-intlayer/index.md +57 -0
- package/hi/packages/react-scripts-intlayer/index.md +57 -0
- package/hi/packages/solid-intlayer/index.md +3 -0
- package/hi/packages/svelte-intlayer/index.md +3 -0
- package/hi/packages/vite-intlayer/index.md +53 -0
- package/hi/packages/vue-intlayer/index.md +3 -0
- package/hi/per_locale_file.md +298 -0
- package/hi/privacy_notice.md +61 -0
- package/hi/roadmap.md +206 -0
- package/hi/terms_of_service.md +33 -0
- package/hi/vs_code_extension.md +139 -0
- package/index.cjs +1265 -0
- package/index.d.ts +100 -0
- package/it/CI_CD.md +149 -0
- package/it/autoFill.md +157 -0
- package/it/configuration.md +503 -0
- package/it/dictionary/condition.md +213 -0
- package/it/dictionary/content_extention_customization.md +81 -0
- package/it/dictionary/enumeration.md +221 -0
- package/it/dictionary/file.md +207 -0
- package/it/dictionary/function_fetching.md +190 -0
- package/it/dictionary/get_started.md +466 -0
- package/it/dictionary/insertion.md +161 -0
- package/it/dictionary/markdown.md +343 -0
- package/it/dictionary/nesting.md +249 -0
- package/it/dictionary/translation.md +287 -0
- package/it/header.md +7 -0
- package/it/how_works_intlayer.md +217 -0
- package/it/index.md +125 -0
- package/it/interest_of_intlayer.md +132 -0
- package/it/intlayer_CMS.md +334 -0
- package/it/intlayer_cli.md +274 -0
- package/it/intlayer_visual_editor.md +210 -0
- package/it/intlayer_with_angular.md +3 -0
- package/it/intlayer_with_create_react_app.md +413 -0
- package/it/intlayer_with_express.md +267 -0
- package/it/intlayer_with_lynx+react.md +482 -0
- package/it/intlayer_with_nextjs_14.md +1269 -0
- package/it/intlayer_with_nextjs_15.md +1319 -0
- package/it/intlayer_with_nextjs_page_router.md +1095 -0
- package/it/intlayer_with_react_native+expo.md +261 -0
- package/it/intlayer_with_vite+preact.md +1681 -0
- package/it/intlayer_with_vite+react.md +1580 -0
- package/it/intlayer_with_vite+solid.md +3 -0
- package/it/intlayer_with_vite+svelte.md +3 -0
- package/it/intlayer_with_vite+vue.md +989 -0
- package/it/introduction.md +192 -0
- package/it/mcp_server.md +152 -0
- package/it/packages/@intlayer/api/index.md +31 -0
- package/it/packages/@intlayer/chokidar/index.md +31 -0
- package/it/packages/@intlayer/cli/index.md +21 -0
- package/it/packages/@intlayer/config/index.md +116 -0
- package/it/packages/@intlayer/core/index.md +25 -0
- package/it/packages/@intlayer/design-system/index.md +21 -0
- package/it/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/it/packages/@intlayer/editor/index.md +21 -0
- package/it/packages/@intlayer/editor-react/index.md +21 -0
- package/it/packages/@intlayer/webpack/index.md +35 -0
- package/it/packages/angular-intlayer/index.md +3 -0
- package/it/packages/express-intlayer/index.md +229 -0
- package/it/packages/express-intlayer/t.md +432 -0
- package/it/packages/intlayer/getConfiguration.md +120 -0
- package/it/packages/intlayer/getEnumeration.md +138 -0
- package/it/packages/intlayer/getHTMLTextDir.md +97 -0
- package/it/packages/intlayer/getLocaleLang.md +57 -0
- package/it/packages/intlayer/getLocaleName.md +93 -0
- package/it/packages/intlayer/getLocalizedUrl.md +221 -0
- package/it/packages/intlayer/getMultilingualUrls.md +200 -0
- package/it/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/it/packages/intlayer/getTranslation.md +166 -0
- package/it/packages/intlayer/getTranslationContent.md +166 -0
- package/it/packages/intlayer/index.md +479 -0
- package/it/packages/intlayer-cli/index.md +41 -0
- package/it/packages/intlayer-editor/index.md +113 -0
- package/it/packages/lynx-intlayer/index.md +58 -0
- package/it/packages/next-intlayer/index.md +267 -0
- package/it/packages/next-intlayer/t.md +326 -0
- package/it/packages/next-intlayer/useDictionary.md +242 -0
- package/it/packages/next-intlayer/useIntlayer.md +237 -0
- package/it/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/it/packages/next-intlayer/useLocale.md +105 -0
- package/it/packages/preact-intlayer/index.md +3 -0
- package/it/packages/react-intlayer/index.md +260 -0
- package/it/packages/react-intlayer/t.md +277 -0
- package/it/packages/react-intlayer/useDictionary.md +260 -0
- package/it/packages/react-intlayer/useIntlayer.md +225 -0
- package/it/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/it/packages/react-intlayer/useLocale.md +184 -0
- package/it/packages/react-native-intlayer/index.md +57 -0
- package/it/packages/react-scripts-intlayer/index.md +57 -0
- package/it/packages/solid-intlayer/index.md +5 -0
- package/it/packages/svelte-intlayer/index.md +3 -0
- package/it/packages/vite-intlayer/index.md +53 -0
- package/it/packages/vue-intlayer/index.md +5 -0
- package/it/per_locale_file.md +298 -0
- package/it/privacy_notice.md +61 -0
- package/it/roadmap.md +206 -0
- package/it/terms_of_service.md +33 -0
- package/it/vs_code_extension.md +139 -0
- package/ja/CI_CD.md +149 -0
- package/ja/autoFill.md +157 -0
- package/ja/configuration.md +507 -0
- package/ja/dictionary/condition.md +213 -0
- package/ja/dictionary/content_extention_customization.md +81 -0
- package/ja/dictionary/enumeration.md +221 -0
- package/ja/dictionary/file.md +209 -0
- package/ja/dictionary/function_fetching.md +190 -0
- package/ja/dictionary/get_started.md +466 -0
- package/ja/dictionary/insertion.md +161 -0
- package/ja/dictionary/markdown.md +343 -0
- package/ja/dictionary/nesting.md +249 -0
- package/ja/dictionary/translation.md +287 -0
- package/ja/header.md +7 -0
- package/ja/how_works_intlayer.md +217 -0
- package/ja/index.md +125 -0
- package/ja/interest_of_intlayer.md +132 -0
- package/ja/intlayer_CMS.md +334 -0
- package/ja/intlayer_cli.md +274 -0
- package/ja/intlayer_visual_editor.md +213 -0
- package/ja/intlayer_with_angular.md +3 -0
- package/ja/intlayer_with_create_react_app.md +1186 -0
- package/ja/intlayer_with_express.md +267 -0
- package/ja/intlayer_with_lynx+react.md +482 -0
- package/ja/intlayer_with_nextjs_14.md +1256 -0
- package/ja/intlayer_with_nextjs_15.md +1308 -0
- package/ja/intlayer_with_nextjs_page_router.md +1085 -0
- package/ja/intlayer_with_react_native+expo.md +537 -0
- package/ja/intlayer_with_vite+preact.md +1601 -0
- package/ja/intlayer_with_vite+react.md +1555 -0
- package/ja/intlayer_with_vite+solid.md +3 -0
- package/ja/intlayer_with_vite+svelte.md +3 -0
- package/ja/intlayer_with_vite+vue.md +990 -0
- package/ja/introduction.md +186 -0
- package/ja/mcp_server.md +150 -0
- package/ja/packages/@intlayer/api/index.md +31 -0
- package/ja/packages/@intlayer/chokidar/index.md +31 -0
- package/ja/packages/@intlayer/cli/index.md +21 -0
- package/ja/packages/@intlayer/config/index.md +116 -0
- package/ja/packages/@intlayer/core/index.md +25 -0
- package/ja/packages/@intlayer/design-system/index.md +21 -0
- package/ja/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/ja/packages/@intlayer/editor/index.md +21 -0
- package/ja/packages/@intlayer/editor-react/index.md +21 -0
- package/ja/packages/@intlayer/webpack/index.md +35 -0
- package/ja/packages/angular-intlayer/index.md +3 -0
- package/ja/packages/express-intlayer/index.md +229 -0
- package/ja/packages/express-intlayer/t.md +432 -0
- package/ja/packages/intlayer/getConfiguration.md +120 -0
- package/ja/packages/intlayer/getEnumeration.md +140 -0
- package/ja/packages/intlayer/getHTMLTextDir.md +97 -0
- package/ja/packages/intlayer/getLocaleLang.md +59 -0
- package/ja/packages/intlayer/getLocaleName.md +93 -0
- package/ja/packages/intlayer/getLocalizedUrl.md +221 -0
- package/ja/packages/intlayer/getMultilingualUrls.md +198 -0
- package/ja/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/ja/packages/intlayer/getTranslation.md +166 -0
- package/ja/packages/intlayer/getTranslationContent.md +166 -0
- package/ja/packages/intlayer/index.md +479 -0
- package/ja/packages/intlayer-cli/index.md +41 -0
- package/ja/packages/intlayer-editor/index.md +115 -0
- package/ja/packages/lynx-intlayer/index.md +58 -0
- package/ja/packages/next-intlayer/index.md +263 -0
- package/ja/packages/next-intlayer/t.md +326 -0
- package/ja/packages/next-intlayer/useDictionary.md +242 -0
- package/ja/packages/next-intlayer/useIntlayer.md +237 -0
- package/ja/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/ja/packages/next-intlayer/useLocale.md +105 -0
- package/ja/packages/preact-intlayer/index.md +3 -0
- package/ja/packages/react-intlayer/index.md +257 -0
- package/ja/packages/react-intlayer/t.md +277 -0
- package/ja/packages/react-intlayer/useDictionary.md +260 -0
- package/ja/packages/react-intlayer/useIntlayer.md +225 -0
- package/ja/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/ja/packages/react-intlayer/useLocale.md +184 -0
- package/ja/packages/react-native-intlayer/index.md +57 -0
- package/ja/packages/react-scripts-intlayer/index.md +57 -0
- package/ja/packages/solid-intlayer/index.md +3 -0
- package/ja/packages/svelte-intlayer/index.md +3 -0
- package/ja/packages/vite-intlayer/index.md +53 -0
- package/ja/packages/vue-intlayer/index.md +3 -0
- package/ja/per_locale_file.md +298 -0
- package/ja/privacy_notice.md +57 -0
- package/ja/roadmap.md +206 -0
- package/ja/terms_of_service.md +33 -0
- package/ja/vs_code_extension.md +139 -0
- package/ko/CI_CD.md +149 -0
- package/ko/autoFill.md +157 -0
- package/ko/configuration.md +507 -0
- package/ko/dictionary/condition.md +213 -0
- package/ko/dictionary/content_extention_customization.md +81 -0
- package/ko/dictionary/enumeration.md +221 -0
- package/ko/dictionary/file.md +207 -0
- package/ko/dictionary/function_fetching.md +190 -0
- package/ko/dictionary/get_started.md +466 -0
- package/ko/dictionary/insertion.md +167 -0
- package/ko/dictionary/markdown.md +343 -0
- package/ko/dictionary/nesting.md +249 -0
- package/ko/dictionary/translation.md +287 -0
- package/ko/header.md +7 -0
- package/ko/how_works_intlayer.md +216 -0
- package/ko/index.md +125 -0
- package/ko/interest_of_intlayer.md +132 -0
- package/ko/intlayer_CMS.md +334 -0
- package/ko/intlayer_cli.md +274 -0
- package/ko/intlayer_visual_editor.md +210 -0
- package/ko/intlayer_with_angular.md +3 -0
- package/ko/intlayer_with_create_react_app.md +1186 -0
- package/ko/intlayer_with_express.md +267 -0
- package/ko/intlayer_with_lynx+react.md +482 -0
- package/ko/intlayer_with_nextjs_14.md +1267 -0
- package/ko/intlayer_with_nextjs_15.md +1319 -0
- package/ko/intlayer_with_nextjs_page_router.md +1097 -0
- package/ko/intlayer_with_react_native+expo.md +537 -0
- package/ko/intlayer_with_vite+preact.md +1682 -0
- package/ko/intlayer_with_vite+react.md +1582 -0
- package/ko/intlayer_with_vite+solid.md +3 -0
- package/ko/intlayer_with_vite+svelte.md +3 -0
- package/ko/intlayer_with_vite+vue.md +988 -0
- package/ko/introduction.md +186 -0
- package/ko/mcp_server.md +150 -0
- package/ko/packages/@intlayer/api/index.md +31 -0
- package/ko/packages/@intlayer/chokidar/index.md +31 -0
- package/ko/packages/@intlayer/cli/index.md +21 -0
- package/ko/packages/@intlayer/config/index.md +116 -0
- package/ko/packages/@intlayer/core/index.md +25 -0
- package/ko/packages/@intlayer/design-system/index.md +21 -0
- package/ko/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/ko/packages/@intlayer/editor/index.md +21 -0
- package/ko/packages/@intlayer/editor-react/index.md +21 -0
- package/ko/packages/@intlayer/webpack/index.md +35 -0
- package/ko/packages/angular-intlayer/index.md +5 -0
- package/ko/packages/express-intlayer/index.md +229 -0
- package/ko/packages/express-intlayer/t.md +432 -0
- package/ko/packages/intlayer/getConfiguration.md +120 -0
- package/ko/packages/intlayer/getEnumeration.md +138 -0
- package/ko/packages/intlayer/getHTMLTextDir.md +97 -0
- package/ko/packages/intlayer/getLocaleLang.md +57 -0
- package/ko/packages/intlayer/getLocaleName.md +93 -0
- package/ko/packages/intlayer/getLocalizedUrl.md +221 -0
- package/ko/packages/intlayer/getMultilingualUrls.md +198 -0
- package/ko/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/ko/packages/intlayer/getTranslation.md +166 -0
- package/ko/packages/intlayer/getTranslationContent.md +166 -0
- package/ko/packages/intlayer/index.md +480 -0
- package/ko/packages/intlayer-cli/index.md +41 -0
- package/ko/packages/intlayer-editor/index.md +113 -0
- package/ko/packages/lynx-intlayer/index.md +58 -0
- package/ko/packages/next-intlayer/index.md +267 -0
- package/ko/packages/next-intlayer/t.md +337 -0
- package/ko/packages/next-intlayer/useDictionary.md +242 -0
- package/ko/packages/next-intlayer/useIntlayer.md +237 -0
- package/ko/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/ko/packages/next-intlayer/useLocale.md +105 -0
- package/ko/packages/preact-intlayer/index.md +3 -0
- package/ko/packages/react-intlayer/index.md +260 -0
- package/ko/packages/react-intlayer/t.md +277 -0
- package/ko/packages/react-intlayer/useDictionary.md +268 -0
- package/ko/packages/react-intlayer/useIntlayer.md +225 -0
- package/ko/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/ko/packages/react-intlayer/useLocale.md +184 -0
- package/ko/packages/react-native-intlayer/index.md +57 -0
- package/ko/packages/react-scripts-intlayer/index.md +57 -0
- package/ko/packages/solid-intlayer/index.md +3 -0
- package/ko/packages/svelte-intlayer/index.md +3 -0
- package/ko/packages/vite-intlayer/index.md +53 -0
- package/ko/packages/vue-intlayer/index.md +3 -0
- package/ko/per_locale_file.md +300 -0
- package/ko/privacy_notice.md +61 -0
- package/ko/roadmap.md +206 -0
- package/ko/terms_of_service.md +33 -0
- package/ko/vs_code_extension.md +139 -0
- package/package.json +96 -0
- package/pt/CI_CD.md +149 -0
- package/pt/autoFill.md +157 -0
- package/pt/configuration.md +503 -0
- package/pt/dictionary/condition.md +213 -0
- package/pt/dictionary/content_extention_customization.md +81 -0
- package/pt/dictionary/enumeration.md +221 -0
- package/pt/dictionary/file.md +210 -0
- package/pt/dictionary/function_fetching.md +190 -0
- package/pt/dictionary/get_started.md +490 -0
- package/pt/dictionary/insertion.md +161 -0
- package/pt/dictionary/markdown.md +339 -0
- package/pt/dictionary/nesting.md +249 -0
- package/pt/dictionary/translation.md +322 -0
- package/pt/header.md +7 -0
- package/pt/how_works_intlayer.md +216 -0
- package/pt/index.md +125 -0
- package/pt/interest_of_intlayer.md +132 -0
- package/pt/intlayer_CMS.md +334 -0
- package/pt/intlayer_cli.md +274 -0
- package/pt/intlayer_visual_editor.md +210 -0
- package/pt/intlayer_with_angular.md +3 -0
- package/pt/intlayer_with_create_react_app.md +1204 -0
- package/pt/intlayer_with_express.md +270 -0
- package/pt/intlayer_with_lynx+react.md +467 -0
- package/pt/intlayer_with_nextjs_14.md +1269 -0
- package/pt/intlayer_with_nextjs_15.md +1319 -0
- package/pt/intlayer_with_nextjs_page_router.md +1109 -0
- package/pt/intlayer_with_react_native+expo.md +259 -0
- package/pt/intlayer_with_vite+preact.md +1663 -0
- package/pt/intlayer_with_vite+react.md +1621 -0
- package/pt/intlayer_with_vite+solid.md +3 -0
- package/pt/intlayer_with_vite+svelte.md +3 -0
- package/pt/intlayer_with_vite+vue.md +989 -0
- package/pt/introduction.md +193 -0
- package/pt/mcp_server.md +150 -0
- package/pt/packages/@intlayer/api/index.md +31 -0
- package/pt/packages/@intlayer/chokidar/index.md +31 -0
- package/pt/packages/@intlayer/cli/index.md +21 -0
- package/pt/packages/@intlayer/config/index.md +116 -0
- package/pt/packages/@intlayer/core/index.md +25 -0
- package/pt/packages/@intlayer/design-system/index.md +21 -0
- package/pt/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/pt/packages/@intlayer/editor/index.md +21 -0
- package/pt/packages/@intlayer/editor-react/index.md +21 -0
- package/pt/packages/@intlayer/webpack/index.md +35 -0
- package/pt/packages/angular-intlayer/index.md +3 -0
- package/pt/packages/express-intlayer/index.md +232 -0
- package/pt/packages/express-intlayer/t.md +267 -0
- package/pt/packages/intlayer/getConfiguration.md +120 -0
- package/pt/packages/intlayer/getEnumeration.md +138 -0
- package/pt/packages/intlayer/getHTMLTextDir.md +97 -0
- package/pt/packages/intlayer/getLocaleLang.md +57 -0
- package/pt/packages/intlayer/getLocaleName.md +93 -0
- package/pt/packages/intlayer/getLocalizedUrl.md +221 -0
- package/pt/packages/intlayer/getMultilingualUrls.md +198 -0
- package/pt/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/pt/packages/intlayer/getTranslation.md +175 -0
- package/pt/packages/intlayer/getTranslationContent.md +177 -0
- package/pt/packages/intlayer/index.md +484 -0
- package/pt/packages/intlayer-cli/index.md +41 -0
- package/pt/packages/intlayer-editor/index.md +113 -0
- package/pt/packages/lynx-intlayer/index.md +58 -0
- package/pt/packages/next-intlayer/index.md +270 -0
- package/pt/packages/next-intlayer/t.md +341 -0
- package/pt/packages/next-intlayer/useDictionary.md +248 -0
- package/pt/packages/next-intlayer/useIntlayer.md +237 -0
- package/pt/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/pt/packages/next-intlayer/useLocale.md +105 -0
- package/pt/packages/preact-intlayer/index.md +3 -0
- package/pt/packages/react-intlayer/index.md +261 -0
- package/pt/packages/react-intlayer/t.md +289 -0
- package/pt/packages/react-intlayer/useDictionary.md +268 -0
- package/pt/packages/react-intlayer/useIntlayer.md +225 -0
- package/pt/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/pt/packages/react-intlayer/useLocale.md +184 -0
- package/pt/packages/react-native-intlayer/index.md +57 -0
- package/pt/packages/react-scripts-intlayer/index.md +57 -0
- package/pt/packages/solid-intlayer/index.md +3 -0
- package/pt/packages/svelte-intlayer/index.md +3 -0
- package/pt/packages/vite-intlayer/index.md +53 -0
- package/pt/packages/vue-intlayer/index.md +3 -0
- package/pt/per_locale_file.md +298 -0
- package/pt/privacy_notice.md +61 -0
- package/pt/roadmap.md +206 -0
- package/pt/terms_of_service.md +33 -0
- package/pt/vs_code_extension.md +139 -0
- package/ru/CI_CD.md +149 -0
- package/ru/autoFill.md +157 -0
- package/ru/configuration.md +507 -0
- package/ru/dictionary/condition.md +213 -0
- package/ru/dictionary/content_extention_customization.md +81 -0
- package/ru/dictionary/enumeration.md +221 -0
- package/ru/dictionary/file.md +209 -0
- package/ru/dictionary/function_fetching.md +188 -0
- package/ru/dictionary/get_started.md +311 -0
- package/ru/dictionary/insertion.md +161 -0
- package/ru/dictionary/markdown.md +339 -0
- package/ru/dictionary/nesting.md +249 -0
- package/ru/dictionary/translation.md +322 -0
- package/ru/environment/angular.md +3 -0
- package/ru/header.md +7 -0
- package/ru/how_works_intlayer.md +217 -0
- package/ru/index.md +125 -0
- package/ru/interest_of_intlayer.md +132 -0
- package/ru/intlayer_CMS.md +334 -0
- package/ru/intlayer_cli.md +274 -0
- package/ru/intlayer_visual_editor.md +210 -0
- package/ru/intlayer_with_angular.md +3 -0
- package/ru/intlayer_with_create_react_app.md +1196 -0
- package/ru/intlayer_with_express.md +273 -0
- package/ru/intlayer_with_lynx+react.md +482 -0
- package/ru/intlayer_with_nextjs_14.md +1274 -0
- package/ru/intlayer_with_nextjs_15.md +1318 -0
- package/ru/intlayer_with_nextjs_page_router.md +1100 -0
- package/ru/intlayer_with_react_native+expo.md +537 -0
- package/ru/intlayer_with_vite+preact.md +1663 -0
- package/ru/intlayer_with_vite+react.md +1546 -0
- package/ru/intlayer_with_vite+solid.md +3 -0
- package/ru/intlayer_with_vite+svelte.md +3 -0
- package/ru/intlayer_with_vite+vue.md +987 -0
- package/ru/introduction.md +190 -0
- package/ru/mcp_server.md +152 -0
- package/ru/packages/@intlayer/api/index.md +31 -0
- package/ru/packages/@intlayer/chokidar/index.md +31 -0
- package/ru/packages/@intlayer/cli/index.md +23 -0
- package/ru/packages/@intlayer/config/index.md +116 -0
- package/ru/packages/@intlayer/core/index.md +25 -0
- package/ru/packages/@intlayer/design-system/index.md +21 -0
- package/ru/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/ru/packages/@intlayer/editor/index.md +21 -0
- package/ru/packages/@intlayer/editor-react/index.md +21 -0
- package/ru/packages/@intlayer/webpack/index.md +35 -0
- package/ru/packages/angular-intlayer/index.md +3 -0
- package/ru/packages/express-intlayer/index.md +235 -0
- package/ru/packages/express-intlayer/t.md +445 -0
- package/ru/packages/intlayer/getConfiguration.md +120 -0
- package/ru/packages/intlayer/getEnumeration.md +140 -0
- package/ru/packages/intlayer/getHTMLTextDir.md +97 -0
- package/ru/packages/intlayer/getLocaleLang.md +59 -0
- package/ru/packages/intlayer/getLocaleName.md +93 -0
- package/ru/packages/intlayer/getLocalizedUrl.md +221 -0
- package/ru/packages/intlayer/getMultilingualUrls.md +198 -0
- package/ru/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/ru/packages/intlayer/getTranslation.md +177 -0
- package/ru/packages/intlayer/getTranslationContent.md +175 -0
- package/ru/packages/intlayer/index.md +275 -0
- package/ru/packages/intlayer-cli/index.md +41 -0
- package/ru/packages/intlayer-editor/index.md +115 -0
- package/ru/packages/lynx-intlayer/index.md +58 -0
- package/ru/packages/next-intlayer/index.md +267 -0
- package/ru/packages/next-intlayer/t.md +340 -0
- package/ru/packages/next-intlayer/useDictionary.md +248 -0
- package/ru/packages/next-intlayer/useIntlayer.md +237 -0
- package/ru/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/ru/packages/next-intlayer/useLocale.md +105 -0
- package/ru/packages/preact-intlayer/index.md +3 -0
- package/ru/packages/react-intlayer/index.md +261 -0
- package/ru/packages/react-intlayer/t.md +289 -0
- package/ru/packages/react-intlayer/useDictionary.md +268 -0
- package/ru/packages/react-intlayer/useIntlayer.md +225 -0
- package/ru/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/ru/packages/react-intlayer/useLocale.md +184 -0
- package/ru/packages/react-native-intlayer/index.md +57 -0
- package/ru/packages/react-scripts-intlayer/index.md +57 -0
- package/ru/packages/solid-intlayer/index.md +3 -0
- package/ru/packages/svelte-intlayer/index.md +3 -0
- package/ru/packages/vite-intlayer/index.md +53 -0
- package/ru/packages/vue-intlayer/index.md +3 -0
- package/ru/per_locale_file.md +298 -0
- package/ru/privacy_notice.md +61 -0
- package/ru/roadmap.md +206 -0
- package/ru/terms_of_service.md +33 -0
- package/ru/vs_code_extension.md +139 -0
- package/zh/CI_CD.md +149 -0
- package/zh/autoFill.md +157 -0
- package/zh/configuration.md +484 -0
- package/zh/dictionary/condition.md +213 -0
- package/zh/dictionary/content_extention_customization.md +81 -0
- package/zh/dictionary/enumeration.md +221 -0
- package/zh/dictionary/file.md +209 -0
- package/zh/dictionary/function_fetching.md +188 -0
- package/zh/dictionary/get_started.md +490 -0
- package/zh/dictionary/insertion.md +161 -0
- package/zh/dictionary/markdown.md +342 -0
- package/zh/dictionary/nesting.md +249 -0
- package/zh/dictionary/translation.md +287 -0
- package/zh/header.md +7 -0
- package/zh/how_works_intlayer.md +217 -0
- package/zh/index.md +125 -0
- package/zh/interest_of_intlayer.md +132 -0
- package/zh/intlayer_CMS.md +334 -0
- package/zh/intlayer_cli.md +274 -0
- package/zh/intlayer_visual_editor.md +210 -0
- package/zh/intlayer_with_angular.md +3 -0
- package/zh/intlayer_with_create_react_app.md +1196 -0
- package/zh/intlayer_with_express.md +267 -0
- package/zh/intlayer_with_lynx+react.md +484 -0
- package/zh/intlayer_with_nextjs_14.md +1286 -0
- package/zh/intlayer_with_nextjs_15.md +1322 -0
- package/zh/intlayer_with_nextjs_page_router.md +1097 -0
- package/zh/intlayer_with_react_native+expo.md +539 -0
- package/zh/intlayer_with_vite+preact.md +1681 -0
- package/zh/intlayer_with_vite+react.md +1577 -0
- package/zh/intlayer_with_vite+solid.md +3 -0
- package/zh/intlayer_with_vite+svelte.md +3 -0
- package/zh/intlayer_with_vite+vue.md +988 -0
- package/zh/introduction.md +186 -0
- package/zh/mcp_server.md +152 -0
- package/zh/packages/@intlayer/api/index.md +31 -0
- package/zh/packages/@intlayer/chokidar/index.md +31 -0
- package/zh/packages/@intlayer/cli/index.md +21 -0
- package/zh/packages/@intlayer/config/index.md +116 -0
- package/zh/packages/@intlayer/core/index.md +25 -0
- package/zh/packages/@intlayer/design-system/index.md +21 -0
- package/zh/packages/@intlayer/dictionary-entry/index.md +21 -0
- package/zh/packages/@intlayer/editor/index.md +21 -0
- package/zh/packages/@intlayer/editor-react/index.md +21 -0
- package/zh/packages/@intlayer/webpack/index.md +35 -0
- package/zh/packages/angular-intlayer/index.md +3 -0
- package/zh/packages/express-intlayer/index.md +229 -0
- package/zh/packages/express-intlayer/t.md +432 -0
- package/zh/packages/intlayer/getConfiguration.md +120 -0
- package/zh/packages/intlayer/getEnumeration.md +140 -0
- package/zh/packages/intlayer/getHTMLTextDir.md +97 -0
- package/zh/packages/intlayer/getLocaleLang.md +57 -0
- package/zh/packages/intlayer/getLocaleName.md +93 -0
- package/zh/packages/intlayer/getLocalizedUrl.md +221 -0
- package/zh/packages/intlayer/getMultilingualUrls.md +198 -0
- package/zh/packages/intlayer/getPathWithoutLocale.md +50 -0
- package/zh/packages/intlayer/getTranslation.md +166 -0
- package/zh/packages/intlayer/getTranslationContent.md +166 -0
- package/zh/packages/intlayer/index.md +360 -0
- package/zh/packages/intlayer-cli/index.md +41 -0
- package/zh/packages/intlayer-editor/index.md +113 -0
- package/zh/packages/lynx-intlayer/index.md +60 -0
- package/zh/packages/next-intlayer/index.md +267 -0
- package/zh/packages/next-intlayer/t.md +338 -0
- package/zh/packages/next-intlayer/useDictionary.md +242 -0
- package/zh/packages/next-intlayer/useIntlayer.md +237 -0
- package/zh/packages/next-intlayer/useIntlayerAsync.md +211 -0
- package/zh/packages/next-intlayer/useLocale.md +105 -0
- package/zh/packages/preact-intlayer/index.md +3 -0
- package/zh/packages/react-intlayer/index.md +257 -0
- package/zh/packages/react-intlayer/t.md +271 -0
- package/zh/packages/react-intlayer/useDictionary.md +260 -0
- package/zh/packages/react-intlayer/useIntlayer.md +225 -0
- package/zh/packages/react-intlayer/useIntlayerAsync.md +226 -0
- package/zh/packages/react-intlayer/useLocale.md +184 -0
- package/zh/packages/react-native-intlayer/index.md +57 -0
- package/zh/packages/react-scripts-intlayer/index.md +57 -0
- package/zh/packages/solid-intlayer/index.md +3 -0
- package/zh/packages/svelte-intlayer/index.md +3 -0
- package/zh/packages/vite-intlayer/index.md +53 -0
- package/zh/packages/vue-intlayer/index.md +3 -0
- package/zh/per_locale_file.md +298 -0
- package/zh/privacy_notice.md +61 -0
- package/zh/roadmap.md +206 -0
- package/zh/terms_of_service.md +33 -0
- package/zh/vs_code_extension.md +139 -0
|
@@ -0,0 +1,947 @@
|
|
|
1
|
+
# Comenzando con la Internacionalización (i18n) con Intlayer, Vite y Vue
|
|
2
|
+
|
|
3
|
+
> Este paquete está en desarrollo. Consulte el [issue](https://github.com/aymericzip/intlayer/issues/113) para más información. Muestre su interés en Intlayer para Vue dando like al issue.
|
|
4
|
+
|
|
5
|
+
<!-- Consulte [Plantilla de Aplicación](https://github.com/aymericzip/intlayer-vue-template) en GitHub. -->
|
|
6
|
+
|
|
7
|
+
## ¿Qué es Intlayer?
|
|
8
|
+
|
|
9
|
+
**Intlayer** es una biblioteca innovadora y de código abierto de internacionalización (i18n) diseñada para simplificar el soporte multilingüe en aplicaciones web modernas.
|
|
10
|
+
|
|
11
|
+
Con Intlayer, puedes:
|
|
12
|
+
|
|
13
|
+
- **Gestionar traducciones fácilmente** utilizando diccionarios declarativos a nivel de componente.
|
|
14
|
+
- **Localizar dinámicamente metadatos**, rutas y contenido.
|
|
15
|
+
- **Garantizar soporte para TypeScript** con tipos autogenerados, mejorando la autocompletación y la detección de errores.
|
|
16
|
+
- **Beneficiarte de características avanzadas**, como la detección dinámica de locales y el cambio entre ellos.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Guía Paso a Paso para Configurar Intlayer en una Aplicación con Vite y Vue
|
|
21
|
+
|
|
22
|
+
### Paso 1: Instalar Dependencias
|
|
23
|
+
|
|
24
|
+
Instala los paquetes necesarios usando npm:
|
|
25
|
+
|
|
26
|
+
```bash packageManager="npm"
|
|
27
|
+
npm install intlayer vue-intlayer vite-intlayer
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```bash packageManager="pnpm"
|
|
31
|
+
pnpm add intlayer vue-intlayer vite-intlayer
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```bash packageManager="yarn"
|
|
35
|
+
yarn add intlayer vue-intlayer vite-intlayer
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
- **intlayer**
|
|
39
|
+
|
|
40
|
+
El paquete principal que proporciona herramientas de internacionalización para la gestión de configuración, traducción, [declaración de contenido](https://github.com/aymericzip/intlayer/blob/main/docs/es/dictionary/get_started.md), transpilación y [comandos CLI](https://github.com/aymericzip/intlayer/blob/main/docs/es/intlayer_cli.md).
|
|
41
|
+
|
|
42
|
+
- **vue-intlayer**
|
|
43
|
+
El paquete que integra Intlayer con aplicaciones Vue. Proporciona proveedores de contexto y composables para la internacionalización en Vue.
|
|
44
|
+
|
|
45
|
+
- **vite-intlayer**
|
|
46
|
+
Incluye el plugin de Vite para integrar Intlayer con el [empaquetador Vite](https://vite.dev/guide/why.html#why-bundle-for-production), así como middleware para detectar el idioma preferido del usuario, gestionar cookies y manejar redirecciones de URL.
|
|
47
|
+
|
|
48
|
+
### Paso 2: Configuración de tu proyecto
|
|
49
|
+
|
|
50
|
+
Crea un archivo de configuración para configurar los idiomas de tu aplicación:
|
|
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
|
+
// Tus otros locales
|
|
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
|
+
// Tus otros locales
|
|
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
|
+
// Tus otros locales
|
|
100
|
+
],
|
|
101
|
+
defaultLocale: Locales.ENGLISH,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
module.exports = config;
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
> A través de este archivo de configuración, puedes configurar URLs localizadas, redirección de middleware, nombres de cookies, la ubicación y extensión de tus declaraciones de contenido, deshabilitar los logs de Intlayer en la consola y más. Para una lista completa de parámetros disponibles, consulta la [documentación de configuración](https://github.com/aymericzip/intlayer/blob/main/docs/es/configuration.md).
|
|
109
|
+
|
|
110
|
+
### Paso 3: Integra Intlayer en tu Configuración de Vite
|
|
111
|
+
|
|
112
|
+
Añade el plugin de intlayer en tu configuración.
|
|
113
|
+
|
|
114
|
+
```typescript fileName="vite.config.ts" codeFormat="typescript"
|
|
115
|
+
import { defineConfig } from "vite";
|
|
116
|
+
import vue from "@vitejs/plugin-vue";
|
|
117
|
+
import { intlayerPlugin } from "vite-intlayer";
|
|
118
|
+
|
|
119
|
+
// https://vitejs.dev/config/
|
|
120
|
+
export default defineConfig({
|
|
121
|
+
plugins: [vue(), intlayerPlugin()],
|
|
122
|
+
});
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```javascript fileName="vite.config.mjs" codeFormat="esm"
|
|
126
|
+
import { defineConfig } from "vite";
|
|
127
|
+
import vue from "@vitejs/plugin-vue";
|
|
128
|
+
import { intlayerPlugin } from "vite-intlayer";
|
|
129
|
+
|
|
130
|
+
// https://vitejs.dev/config/
|
|
131
|
+
export default defineConfig({
|
|
132
|
+
plugins: [vue(), intlayerPlugin()],
|
|
133
|
+
});
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
```javascript fileName="vite.config.cjs" codeFormat="commonjs"
|
|
137
|
+
const { defineConfig } = require("vite");
|
|
138
|
+
const vue = require("@vitejs/plugin-vue");
|
|
139
|
+
const { intlayerPlugin } = require("vite-intlayer");
|
|
140
|
+
|
|
141
|
+
// https://vitejs.dev/config/
|
|
142
|
+
module.exports = defineConfig({
|
|
143
|
+
plugins: [vue(), intlayerPlugin()],
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
> El plugin `intlayerPlugin()` de Vite se utiliza para integrar Intlayer con Vite. Garantiza la construcción de archivos de declaración de contenido y los monitorea en modo de desarrollo. Define variables de entorno de Intlayer dentro de la aplicación Vite. Además, proporciona alias para optimizar el rendimiento.
|
|
148
|
+
|
|
149
|
+
### Paso 4: Declara tu Contenido
|
|
150
|
+
|
|
151
|
+
Crea y gestiona tus declaraciones de contenido para almacenar traducciones:
|
|
152
|
+
|
|
153
|
+
```tsx fileName="src/helloWorld.content.ts" contentDeclarationFormat="typescript"
|
|
154
|
+
import { t, type Dictionary } from "intlayer";
|
|
155
|
+
|
|
156
|
+
const helloWorldContent = {
|
|
157
|
+
key: "helloworld",
|
|
158
|
+
content: {
|
|
159
|
+
count: t({ es: "el recuento es ", en: "count is ", fr: "le compte est " }),
|
|
160
|
+
edit: t({
|
|
161
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
162
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
163
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
164
|
+
}),
|
|
165
|
+
checkOut: t({ es: "Compruebe ", en: "Check out ", fr: "Vérifiez " }),
|
|
166
|
+
officialStarter: t({
|
|
167
|
+
es: ", el starter oficial Vue + Vite",
|
|
168
|
+
en: ", the official Vue + Vite starter",
|
|
169
|
+
fr: ", le starter officiel Vue + Vite",
|
|
170
|
+
}),
|
|
171
|
+
learnMore: t({
|
|
172
|
+
es: "Aprenda más sobre el soporte IDE para Vue en el ",
|
|
173
|
+
en: "Learn more about IDE Support for Vue in the ",
|
|
174
|
+
fr: "En savoir plus sur le support IDE pour Vue dans le ",
|
|
175
|
+
}),
|
|
176
|
+
vueDocs: t({
|
|
177
|
+
es: "Vue Docs Scaling up Guide",
|
|
178
|
+
en: "Vue Docs Scaling up Guide",
|
|
179
|
+
fr: "Vue Docs Scaling up Guide",
|
|
180
|
+
}),
|
|
181
|
+
readTheDocs: t({
|
|
182
|
+
es: "Haga clic en los logotipos de Vite y Vue para obtener más información",
|
|
183
|
+
en: "Click on the Vite and Vue logos to learn more",
|
|
184
|
+
fr: "Cliquez sur les logos Vite et Vue pour en savoir plus",
|
|
185
|
+
}),
|
|
186
|
+
},
|
|
187
|
+
} satisfies Dictionary;
|
|
188
|
+
|
|
189
|
+
export default helloWorldContent;
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
```javascript fileName="src/helloWorld.content.mjs" contentDeclarationFormat="esm"
|
|
193
|
+
import { t } from "intlayer";
|
|
194
|
+
|
|
195
|
+
/** @type {import('intlayer').Dictionary} */
|
|
196
|
+
const helloWorldContent = {
|
|
197
|
+
key: "helloworld",
|
|
198
|
+
content: {
|
|
199
|
+
count: t({ es: "el recuento es ", en: "count is ", fr: "le compte est " }),
|
|
200
|
+
edit: t({
|
|
201
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
202
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
203
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
204
|
+
}),
|
|
205
|
+
checkOut: t({ es: "Compruebe ", en: "Check out ", fr: "Vérifiez " }),
|
|
206
|
+
officialStarter: t({
|
|
207
|
+
es: "el starter oficial Vue + Vite",
|
|
208
|
+
en: "the official Vue + Vite starter",
|
|
209
|
+
fr: "le starter officiel Vue + Vite",
|
|
210
|
+
}),
|
|
211
|
+
learnMore: t({
|
|
212
|
+
es: "Aprenda más sobre el soporte IDE para Vue en el ",
|
|
213
|
+
en: "Learn more about IDE Support for Vue in the ",
|
|
214
|
+
fr: "En savoir plus sur le support IDE pour Vue dans le ",
|
|
215
|
+
}),
|
|
216
|
+
vueDocs: t({
|
|
217
|
+
es: "Vue Docs Scaling up Guide",
|
|
218
|
+
en: "Vue Docs Scaling up Guide",
|
|
219
|
+
fr: "Vue Docs Scaling up Guide",
|
|
220
|
+
}),
|
|
221
|
+
readTheDocs: t({
|
|
222
|
+
es: "Haga clic en los logotipos de Vite y Vue para obtener más información",
|
|
223
|
+
en: "Click on the Vite and Vue logos to learn more",
|
|
224
|
+
fr: "Cliquez sur les logos Vite et Vue pour en savoir plus",
|
|
225
|
+
}),
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
export default helloWorldContent;
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
const { t } = require("intlayer");
|
|
235
|
+
|
|
236
|
+
/\*_ @type {import('intlayer').Dictionary} _/
|
|
237
|
+
const appContent = {
|
|
238
|
+
key: "helloworld",
|
|
239
|
+
content: {
|
|
240
|
+
count: t({ es: "el recuento es ", en: "count is ", fr: "le compte est " }),
|
|
241
|
+
edit: t({
|
|
242
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
243
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
244
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
245
|
+
}),
|
|
246
|
+
checkOut: t({ es: "Compruebe ", en: "Check out ", fr: "Vérifiez " }),
|
|
247
|
+
officialStarter: t({
|
|
248
|
+
es: "el starter oficial Vue + Vite",
|
|
249
|
+
en: "the official Vue + Vite starter",
|
|
250
|
+
fr: "le starter officiel Vue + Vite",
|
|
251
|
+
}),
|
|
252
|
+
learnMore: t({
|
|
253
|
+
es: "Aprenda más sobre el soporte IDE para Vue en el ",
|
|
254
|
+
en: "Learn more about IDE Support for Vue in the ",
|
|
255
|
+
fr: "En savoir plus sur le support IDE pour Vue dans le ",
|
|
256
|
+
}),
|
|
257
|
+
vueDocs: t({
|
|
258
|
+
es: "Vue Docs Scaling up Guide",
|
|
259
|
+
en: "Vue Docs Scaling up Guide",
|
|
260
|
+
fr: "Vue Docs Scaling up Guide",
|
|
261
|
+
}),
|
|
262
|
+
readTheDocs: t({
|
|
263
|
+
es: "Haga clic en los logotipos de Vite y Vue para obtener más información",
|
|
264
|
+
en: "Click on the Vite and Vue logos to learn more",
|
|
265
|
+
fr: "Cliquez sur les logos Vite et Vue pour en savoir plus",
|
|
266
|
+
}),
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
module.exports = appContent;
|
|
271
|
+
|
|
272
|
+
````
|
|
273
|
+
|
|
274
|
+
```json fileName="src/helloWorld.content.json" contentDeclarationFormat="json"
|
|
275
|
+
{
|
|
276
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
277
|
+
"key": "helloworld",
|
|
278
|
+
"content": {
|
|
279
|
+
"count": {
|
|
280
|
+
"nodeType": "translation",
|
|
281
|
+
"translation": {
|
|
282
|
+
"es": "el recuento es ",
|
|
283
|
+
"en": "count is ",
|
|
284
|
+
"fr": "le compte est "
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
"edit": {
|
|
288
|
+
"nodeType": "translation",
|
|
289
|
+
"translation": {
|
|
290
|
+
"es": "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
291
|
+
"en": "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
292
|
+
"fr": "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR"
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
"checkOut": {
|
|
296
|
+
"nodeType": "translation",
|
|
297
|
+
"translation": {
|
|
298
|
+
"es": "Compruebe ",
|
|
299
|
+
"en": "Check out ",
|
|
300
|
+
"fr": "Vérifiez "
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"officialStarter": {
|
|
304
|
+
"nodeType": "translation",
|
|
305
|
+
"translation": {
|
|
306
|
+
"es": "el starter oficial Vue + Vite",
|
|
307
|
+
"en": "the official Vue + Vite starter",
|
|
308
|
+
"fr": "le starter officiel Vue + Vite"
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
"learnMore": {
|
|
312
|
+
"nodeType": "translation",
|
|
313
|
+
"translation": {
|
|
314
|
+
"es": "Aprenda más sobre el soporte IDE para Vue en el ",
|
|
315
|
+
"en": "Learn more about IDE Support for Vue in the ",
|
|
316
|
+
"fr": "En savoir plus sur le support IDE pour Vue dans le "
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
"vueDocs": {
|
|
320
|
+
"nodeType": "translation",
|
|
321
|
+
"translation": {
|
|
322
|
+
"es": "Vue Docs Scaling up Guide",
|
|
323
|
+
"en": "Vue Docs Scaling up Guide",
|
|
324
|
+
"fr": "Vue Docs Scaling up Guide"
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"readTheDocs": {
|
|
328
|
+
"nodeType": "translation",
|
|
329
|
+
"translation": {
|
|
330
|
+
"es": "Haga clic en los logotipos de Vite y Vue para obtener más información",
|
|
331
|
+
"en": "Click on the Vite and Vue logos to learn more",
|
|
332
|
+
"fr": "Cliquez sur les logos Vite et Vue pour en savoir plus"
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
````
|
|
338
|
+
|
|
339
|
+
> Sus declaraciones de contenido pueden definirse en cualquier lugar de su aplicación siempre que estén incluidas en el directorio `contentDir` (por defecto, `./src`). Y coincidan con la extensión del archivo de declaración de contenido (por defecto, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
340
|
+
|
|
341
|
+
> Para más detalles, consulte la [documentación de declaración de contenido](https://github.com/aymericzip/intlayer/blob/main/docs/es/dictionary/get_started.md).
|
|
342
|
+
|
|
343
|
+
### Paso 5: Utilizar Intlayer en su Código
|
|
344
|
+
|
|
345
|
+
Para utilizar las funciones de internacionalización de Intlayer en toda su aplicación Vue, primero debe registrar la instancia singleton de Intlayer en su archivo principal. Este paso es crucial ya que proporciona el contexto de internacionalización a todos los componentes de su aplicación, haciendo que las traducciones sean accesibles en cualquier lugar de su árbol de componentes.
|
|
346
|
+
|
|
347
|
+
```javascript fileName=main.js
|
|
348
|
+
import { createApp } from "vue";
|
|
349
|
+
import { installIntlayer } from "vue-intlayer";
|
|
350
|
+
import App from "./App.vue";
|
|
351
|
+
import "./style.css";
|
|
352
|
+
|
|
353
|
+
const app = createApp(App);
|
|
354
|
+
|
|
355
|
+
// Inyectar el proveedor en el nivel superior
|
|
356
|
+
installIntlayer(app);
|
|
357
|
+
|
|
358
|
+
// Montar la aplicación
|
|
359
|
+
app.mount("#app");
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Acceda a sus diccionarios de contenido en toda su aplicación creando un componente principal de Vue y utilizando los composables `useIntlayer`:
|
|
363
|
+
|
|
364
|
+
```vue fileName="src/HelloWord.vue"
|
|
365
|
+
<script setup lang="ts">
|
|
366
|
+
import { ref } from "vue";
|
|
367
|
+
import { useIntlayer } from "vue-intlayer";
|
|
368
|
+
|
|
369
|
+
defineProps({
|
|
370
|
+
msg: String,
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
const content = useIntlayer("helloworld");
|
|
374
|
+
const count = ref(0);
|
|
375
|
+
</script>
|
|
376
|
+
|
|
377
|
+
<template>
|
|
378
|
+
<h1>{{ msg }}</h1>
|
|
379
|
+
|
|
380
|
+
<div class="card">
|
|
381
|
+
<button type="button" @click="count++">
|
|
382
|
+
{{ content.count }}{{ count }}
|
|
383
|
+
</button>
|
|
384
|
+
<p v-html="content.edit.value"></p>
|
|
385
|
+
</div>
|
|
386
|
+
|
|
387
|
+
<p>
|
|
388
|
+
{{ content.checkOut }}
|
|
389
|
+
<a href="https://vuejs.org/guide/quick-start.html#local" target="_blank"
|
|
390
|
+
>create-vue</a
|
|
391
|
+
>, {{ content.officialStarter }}
|
|
392
|
+
</p>
|
|
393
|
+
<p>
|
|
394
|
+
{{ content.learnMore }}
|
|
395
|
+
<a
|
|
396
|
+
href="https://vuejs.org/guide/scaling-up/tooling.html#ide-support"
|
|
397
|
+
target="_blank"
|
|
398
|
+
>{{ content.vueDocs }}</a
|
|
399
|
+
>.
|
|
400
|
+
</p>
|
|
401
|
+
<p class="read-the-docs">{{ content.readTheDocs }}</p>
|
|
402
|
+
</template>
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
> Si desea usar su contenido en un atributo, como `alt`, `title`, `href`, `aria-label`, etc., debe llamar al valor de la función con `.value`, como:
|
|
406
|
+
|
|
407
|
+
> ```html
|
|
408
|
+
>
|
|
409
|
+
> ```
|
|
410
|
+
|
|
411
|
+
> <img src="./logo.svg" :alt="content.image.value" />
|
|
412
|
+
|
|
413
|
+
> ```
|
|
414
|
+
>
|
|
415
|
+
> ```
|
|
416
|
+
|
|
417
|
+
### (Opcional) Paso 6: Cambiar el idioma de su contenido
|
|
418
|
+
|
|
419
|
+
Para cambiar el idioma de su contenido, puede usar la función `setLocale` proporcionada por el composable `useLocale`. Esta función le permite establecer el idioma de la aplicación y actualizar el contenido en consecuencia.
|
|
420
|
+
|
|
421
|
+
Cree un componente para cambiar entre idiomas:
|
|
422
|
+
|
|
423
|
+
```vue fileName="src/components/LocaleSwitcher.vue"
|
|
424
|
+
<template>
|
|
425
|
+
<div class="locale-switcher">
|
|
426
|
+
<select v-model="selectedLocale" @change="changeLocale">
|
|
427
|
+
<option v-for="loc in availableLocales" :key="loc" :value="loc">
|
|
428
|
+
{{ getLocaleName(loc) }}
|
|
429
|
+
</option>
|
|
430
|
+
</select>
|
|
431
|
+
</div>
|
|
432
|
+
</template>
|
|
433
|
+
|
|
434
|
+
<script setup lang="ts">
|
|
435
|
+
import { ref, watch } from "vue";
|
|
436
|
+
import { getLocaleName } from "intlayer";
|
|
437
|
+
import { useLocale } from "vue-intlayer";
|
|
438
|
+
|
|
439
|
+
// Obtener información de idioma y función setLocale
|
|
440
|
+
const { locale, availableLocales, setLocale } = useLocale();
|
|
441
|
+
|
|
442
|
+
// Rastrear el idioma seleccionado con un ref
|
|
443
|
+
const selectedLocale = ref(locale.value);
|
|
444
|
+
|
|
445
|
+
// Actualizar el idioma cuando cambie la selección
|
|
446
|
+
const changeLocale = () => setLocale(selectedLocale.value);
|
|
447
|
+
|
|
448
|
+
// Mantener el selectedLocale sincronizado con el idioma global
|
|
449
|
+
watch(
|
|
450
|
+
() => locale.value,
|
|
451
|
+
(newLocale) => {
|
|
452
|
+
selectedLocale.value = newLocale;
|
|
453
|
+
}
|
|
454
|
+
);
|
|
455
|
+
</script>
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
Luego, use este componente en su App.vue:
|
|
459
|
+
|
|
460
|
+
```vue fileName="src/App.vue"
|
|
461
|
+
<script setup lang="ts">
|
|
462
|
+
import { useIntlayer } from "vue-intlayer";
|
|
463
|
+
import HelloWorld from "@components/HelloWorld.vue";
|
|
464
|
+
import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
465
|
+
import { ref, watch } from "vue";
|
|
466
|
+
|
|
467
|
+
const content = useIntlayer("app"); // Crear archivo de declaración de intlayer relacionado
|
|
468
|
+
</script>
|
|
469
|
+
|
|
470
|
+
<template>
|
|
471
|
+
<div>
|
|
472
|
+
<LocaleSwitcher />
|
|
473
|
+
<a href="https://vite.dev" target="_blank">
|
|
474
|
+
<img src="/vite.svg" class="logo" :alt="content.viteLogo" />
|
|
475
|
+
</a>
|
|
476
|
+
<a href="https://vuejs.org/" target="_blank">
|
|
477
|
+
<img src="./assets/vue.svg" class="logo vue" :alt="content.vueLogo" />
|
|
478
|
+
</a>
|
|
479
|
+
</div>
|
|
480
|
+
<HelloWorld :msg="content.title" />
|
|
481
|
+
</template>
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### (Opcional) Paso 7: Agregar enrutamiento localizado a su aplicación
|
|
485
|
+
|
|
486
|
+
Agregar enrutamiento localizado en una aplicación Vue generalmente implica usar Vue Router con prefijos de idioma. Esto crea rutas únicas para cada idioma, lo cual es útil para SEO y URLs amigables para SEO.
|
|
487
|
+
|
|
488
|
+
Ejemplo:
|
|
489
|
+
|
|
490
|
+
```plaintext
|
|
491
|
+
- https://example.com/about
|
|
492
|
+
|
|
493
|
+
- https://example.com/es/about
|
|
494
|
+
- https://example.com/fr/about
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
Primero, instala Vue Router:
|
|
498
|
+
|
|
499
|
+
```bash packageManager="npm"
|
|
500
|
+
npm install intlayer vue-router
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
```bash packageManager="pnpm"
|
|
504
|
+
pnpm add intlayer vue-router
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
```bash packageManager="yarn"
|
|
508
|
+
yarn add intlayer vue-router
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
Luego, crea una configuración de enrutador que maneje el enrutamiento basado en locales:
|
|
512
|
+
|
|
513
|
+
```js fileName="src/router/index.ts"
|
|
514
|
+
import {
|
|
515
|
+
configuration,
|
|
516
|
+
getPathWithoutLocale,
|
|
517
|
+
localeFlatMap,
|
|
518
|
+
type Locales,
|
|
519
|
+
} from 'intlayer';
|
|
520
|
+
import { createIntlayerClient } from 'vue-intlayer';
|
|
521
|
+
import { createRouter, createWebHistory } from 'vue-router';
|
|
522
|
+
import HomeView from './views/home/HomeView.vue';
|
|
523
|
+
import RootView from './views/root/Root.vue';
|
|
524
|
+
|
|
525
|
+
// Obtener configuración de internacionalización
|
|
526
|
+
const { internationalization, middleware } = configuration;
|
|
527
|
+
const { defaultLocale } = internationalization;
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* Declarar las rutas con caminos y metadatos específicos del idioma.
|
|
531
|
+
*/
|
|
532
|
+
const routes = localeFlatMap((localizedData) => [
|
|
533
|
+
{
|
|
534
|
+
path: `${localizedData.urlPrefix}/`,
|
|
535
|
+
name: `Root-${localizedData.locale}`,
|
|
536
|
+
component: RootView,
|
|
537
|
+
meta: {
|
|
538
|
+
locale: localizedData.locale,
|
|
539
|
+
},
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
path: `${localizedData.urlPrefix}/home`,
|
|
543
|
+
name: `Home-${localizedData.locale}`,
|
|
544
|
+
component: HomeView,
|
|
545
|
+
meta: {
|
|
546
|
+
locale: localizedData.locale,
|
|
547
|
+
},
|
|
548
|
+
},
|
|
549
|
+
]);
|
|
550
|
+
|
|
551
|
+
// Crear la instancia del enrutador
|
|
552
|
+
export const router = createRouter({
|
|
553
|
+
history: createWebHistory(),
|
|
554
|
+
routes,
|
|
555
|
+
});
|
|
556
|
+
|
|
557
|
+
// Agregar guardia de navegación para manejar el idioma
|
|
558
|
+
router.beforeEach((to, _from, next) => {
|
|
559
|
+
const client = createIntlayerClient();
|
|
560
|
+
|
|
561
|
+
const metaLocale = to.meta.locale as Locales | undefined;
|
|
562
|
+
|
|
563
|
+
if (metaLocale) {
|
|
564
|
+
// Reutilizar el idioma definido en los metadatos de la ruta
|
|
565
|
+
client.setLocale(metaLocale);
|
|
566
|
+
next();
|
|
567
|
+
} else {
|
|
568
|
+
// Fallback: no hay idioma en los metadatos, posiblemente una ruta no coincidente
|
|
569
|
+
// Opcional: manejar 404 o redirigir al idioma predeterminado
|
|
570
|
+
client.setLocale(defaultLocale);
|
|
571
|
+
|
|
572
|
+
if (middleware.prefixDefault) {
|
|
573
|
+
next(`/${defaultLocale}${getPathWithoutLocale(to.path)}`);
|
|
574
|
+
} else {
|
|
575
|
+
next(getPathWithoutLocale(to.path));
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
});
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
> El nombre se utiliza para identificar la ruta en el enrutador. Debe ser único en todas las rutas para evitar conflictos y garantizar una navegación y vinculación adecuadas.
|
|
582
|
+
|
|
583
|
+
Luego, registra el enrutador en tu archivo main.js:
|
|
584
|
+
|
|
585
|
+
```js fileName="src/main.ts"
|
|
586
|
+
import { createApp } from "vue";
|
|
587
|
+
import App from "./App.vue";
|
|
588
|
+
import { router } from "./router";
|
|
589
|
+
import "./style.css";
|
|
590
|
+
|
|
591
|
+
const app = createApp(App);
|
|
592
|
+
|
|
593
|
+
// Agregar el enrutador a la aplicación
|
|
594
|
+
app.use(router);
|
|
595
|
+
|
|
596
|
+
// Montar la aplicación
|
|
597
|
+
app.mount("#app");
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
Luego actualiza tu archivo `App.vue` para renderizar el componente RouterView. Este componente mostrará el componente correspondiente a la ruta actual.
|
|
601
|
+
|
|
602
|
+
```vue fileName="src/App.vue"
|
|
603
|
+
<script setup lang="ts">
|
|
604
|
+
import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
605
|
+
</script>
|
|
606
|
+
|
|
607
|
+
<template>
|
|
608
|
+
<nav>
|
|
609
|
+
<LocaleSwitcher />
|
|
610
|
+
</nav>
|
|
611
|
+
<RouterView />
|
|
612
|
+
</template>
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
En paralelo, también puedes usar el `intLayerMiddlewarePlugin` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente el idioma actual basado en la URL y establecerá la cookie de idioma correspondiente. Si no se especifica un idioma, el plugin determinará el idioma más apropiado basado en las preferencias del idioma del navegador del usuario. Si no se detecta ningún idioma, redirigirá al idioma predeterminado.
|
|
616
|
+
|
|
617
|
+
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
618
|
+
import { defineConfig } from "vite";
|
|
619
|
+
import vue from "@vitejs/plugin-vue";
|
|
620
|
+
import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
|
|
621
|
+
|
|
622
|
+
// https://vitejs.dev/config/
|
|
623
|
+
export default defineConfig({
|
|
624
|
+
plugins: [vue(), intlayerPlugin(), intLayerMiddlewarePlugin()],
|
|
625
|
+
});
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
629
|
+
import { defineConfig } from "vite";
|
|
630
|
+
import vue from "@vitejs/plugin-vue";
|
|
631
|
+
import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
|
|
632
|
+
|
|
633
|
+
// https://vitejs.dev/config/
|
|
634
|
+
export default defineConfig({
|
|
635
|
+
plugins: [vue(), intlayerPlugin(), intLayerMiddlewarePlugin()],
|
|
636
|
+
});
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
640
|
+
const { defineConfig } = require("vite");
|
|
641
|
+
const vue = require("@vitejs/plugin-vue");
|
|
642
|
+
const { intlayerPlugin, intLayerMiddlewarePlugin } = require("vite-intlayer");
|
|
643
|
+
|
|
644
|
+
// https://vitejs.dev/config/
|
|
645
|
+
module.exports = defineConfig({
|
|
646
|
+
plugins: [vue(), intlayerPlugin(), intLayerMiddlewarePlugin()],
|
|
647
|
+
});
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
### (Opcional) Paso 8: Cambiar la URL cuando cambia el idioma
|
|
651
|
+
|
|
652
|
+
Para actualizar automáticamente la URL cuando el usuario cambia el idioma, puedes modificar el componente `LocaleSwitcher` para usar Vue Router:
|
|
653
|
+
|
|
654
|
+
```vue fileName="src/components/LocaleSwitcher.vue"
|
|
655
|
+
<template>
|
|
656
|
+
<div class="locale-switcher">
|
|
657
|
+
<select v-model="selectedLocale" @change="changeLocale">
|
|
658
|
+
<option v-for="loc in availableLocales" :key="loc" :value="loc">
|
|
659
|
+
{{ getLocaleName(loc) }}
|
|
660
|
+
</option>
|
|
661
|
+
</select>
|
|
662
|
+
</div>
|
|
663
|
+
</template>
|
|
664
|
+
|
|
665
|
+
<script setup lang="ts">
|
|
666
|
+
import { ref, watch } from "vue";
|
|
667
|
+
import { useRouter } from "vue-router";
|
|
668
|
+
import { Locales, getLocaleName, getLocalizedUrl } from "intlayer";
|
|
669
|
+
import { useLocale } from "vue-intlayer";
|
|
670
|
+
|
|
671
|
+
// Obtener Vue Router
|
|
672
|
+
const router = useRouter();
|
|
673
|
+
|
|
674
|
+
// Obtener información del idioma y la función setLocale
|
|
675
|
+
const { locale, availableLocales, setLocale } = useLocale({
|
|
676
|
+
onLocaleChange: (newLocale) => {
|
|
677
|
+
// Obtener la ruta actual y crear una URL localizada
|
|
678
|
+
const currentPath = router.currentRoute.value.fullPath;
|
|
679
|
+
const localizedPath = getLocalizedUrl(currentPath, newLocale);
|
|
680
|
+
|
|
681
|
+
// Navegar a la ruta localizada sin recargar la página
|
|
682
|
+
router.push(localizedPath);
|
|
683
|
+
},
|
|
684
|
+
});
|
|
685
|
+
|
|
686
|
+
// Rastrear el idioma seleccionado con un ref
|
|
687
|
+
const selectedLocale = ref(locale.value);
|
|
688
|
+
|
|
689
|
+
// Actualizar el idioma cuando cambie la selección
|
|
690
|
+
const changeLocale = () => {
|
|
691
|
+
setLocale(selectedLocale.value);
|
|
692
|
+
};
|
|
693
|
+
|
|
694
|
+
// Mantener selectedLocale sincronizado con el idioma global
|
|
695
|
+
watch(
|
|
696
|
+
() => locale.value,
|
|
697
|
+
(newLocale) => {
|
|
698
|
+
selectedLocale.value = newLocale;
|
|
699
|
+
}
|
|
700
|
+
);
|
|
701
|
+
</script>
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
Consejo: Para un mejor SEO y accesibilidad, usa etiquetas como `<a href="/fr/home" hreflang="fr">` para enlazar a páginas localizadas, como se muestra en el Paso 10. Esto permite que los motores de búsqueda descubran e indexen correctamente las URLs específicas de cada idioma. Para preservar el comportamiento SPA, puedes prevenir la navegación predeterminada con @click.prevent, cambiar el idioma usando useLocale y navegar programáticamente usando Vue Router.
|
|
705
|
+
|
|
706
|
+
```html
|
|
707
|
+
<ol class="divide-text/20 divide-y divide-dashed overflow-y-auto p-1">
|
|
708
|
+
<li>
|
|
709
|
+
<a
|
|
710
|
+
hreflang="x-default"
|
|
711
|
+
aria-label="Cambiar a Inglés"
|
|
712
|
+
target="_self"
|
|
713
|
+
aria-current="page"
|
|
714
|
+
href="/doc/get-started"
|
|
715
|
+
>
|
|
716
|
+
<div>
|
|
717
|
+
<div><span dir="ltr" lang="en">English</span><span>English</span></div>
|
|
718
|
+
<span>EN</span>
|
|
719
|
+
</div>
|
|
720
|
+
</a>
|
|
721
|
+
</li>
|
|
722
|
+
<li>
|
|
723
|
+
<a
|
|
724
|
+
hreflang="es"
|
|
725
|
+
aria-label="Cambiar a Español"
|
|
726
|
+
target="_self"
|
|
727
|
+
href="/es/doc/get-started"
|
|
728
|
+
>
|
|
729
|
+
<div>
|
|
730
|
+
<span dir="ltr" lang="es">Español</span><span>Spanish</span>
|
|
731
|
+
<span>ES</span>
|
|
732
|
+
</div>
|
|
733
|
+
</a>
|
|
734
|
+
</li>
|
|
735
|
+
</ol>
|
|
736
|
+
```
|
|
737
|
+
|
|
738
|
+
### (Opcional) Paso 9: Cambiar los Atributos de Idioma y Dirección del HTML
|
|
739
|
+
|
|
740
|
+
Cuando tu aplicación soporta múltiples idiomas, es crucial actualizar los atributos `lang` y `dir` de la etiqueta `<html>` para que coincidan con el idioma actual. Hacer esto asegura:
|
|
741
|
+
|
|
742
|
+
- **Accesibilidad**: Los lectores de pantalla y tecnologías de asistencia dependen del atributo `lang` correcto para pronunciar e interpretar el contenido con precisión.
|
|
743
|
+
- **Renderizado de Texto**: El atributo `dir` (dirección) asegura que el texto se renderice en el orden correcto (por ejemplo, de izquierda a derecha para inglés, de derecha a izquierda para árabe o hebreo), lo cual es esencial para la legibilidad.
|
|
744
|
+
- **SEO**: Los motores de búsqueda usan el atributo `lang` para determinar el idioma de tu página, ayudando a servir el contenido localizado correcto en los resultados de búsqueda.
|
|
745
|
+
|
|
746
|
+
Al actualizar estos atributos dinámicamente cuando cambia el idioma, garantizas una experiencia consistente y accesible para los usuarios en todos los idiomas soportados.
|
|
747
|
+
|
|
748
|
+
```js fileName="src/composables/useI18nHTMLAttributes.ts"
|
|
749
|
+
import { watch } from "vue";
|
|
750
|
+
import { useLocale } from "vue-intlayer";
|
|
751
|
+
import { getHTMLTextDir } from "intlayer";
|
|
752
|
+
|
|
753
|
+
/**
|
|
754
|
+
* Composable que actualiza los atributos `lang` y `dir` del elemento HTML <html>
|
|
755
|
+
* basado en la configuración regional actual.
|
|
756
|
+
*
|
|
757
|
+
* @example
|
|
758
|
+
* // En tu App.vue o un componente global
|
|
759
|
+
* import { useI18nHTMLAttributes } from './composables/useI18nHTMLAttributes'
|
|
760
|
+
*
|
|
761
|
+
* useI18nHTMLAttributes()
|
|
762
|
+
*/
|
|
763
|
+
export function useI18nHTMLAttributes() {
|
|
764
|
+
const { locale } = useLocale();
|
|
765
|
+
|
|
766
|
+
// Actualizar los atributos HTML cada vez que cambie la configuración regional
|
|
767
|
+
watch(
|
|
768
|
+
() => locale.value,
|
|
769
|
+
(newLocale) => {
|
|
770
|
+
if (!newLocale) return;
|
|
771
|
+
|
|
772
|
+
// Actualizar el atributo de idioma
|
|
773
|
+
document.documentElement.lang = newLocale;
|
|
774
|
+
|
|
775
|
+
// Establecer la dirección del texto (ltr para la mayoría de idiomas, rtl para árabe, hebreo, etc.)
|
|
776
|
+
document.documentElement.dir = getHTMLTextDir(newLocale);
|
|
777
|
+
},
|
|
778
|
+
{ immediate: true }
|
|
779
|
+
);
|
|
780
|
+
}
|
|
781
|
+
```
|
|
782
|
+
|
|
783
|
+
Usa este composable en tu `App.vue` o un componente global:
|
|
784
|
+
|
|
785
|
+
```vue fileName="src/App.vue"
|
|
786
|
+
<script setup lang="ts">
|
|
787
|
+
import { useI18nHTMLAttributes } from "@composables/useI18nHTMLAttributes";
|
|
788
|
+
|
|
789
|
+
// Aplicar los atributos HTML basados en la configuración regional actual
|
|
790
|
+
useI18nHTMLAttributes();
|
|
791
|
+
</script>
|
|
792
|
+
|
|
793
|
+
<template>
|
|
794
|
+
<!-- Tu plantilla de la aplicación -->
|
|
795
|
+
</template>
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
### (Opcional) Paso 10: Crear un Componente de Enlace Localizado
|
|
799
|
+
|
|
800
|
+
Para garantizar que la navegación de tu aplicación respete la configuración regional actual, puedes crear un componente personalizado `Link`. Este componente automáticamente añade un prefijo a las URLs internas con el idioma actual, de modo que, por ejemplo, cuando un usuario francófono haga clic en un enlace a la página "Acerca de", sea redirigido a `/fr/about` en lugar de `/about`.
|
|
801
|
+
|
|
802
|
+
Este comportamiento es útil por varias razones:
|
|
803
|
+
|
|
804
|
+
- **SEO y Experiencia de Usuario**: Las URLs localizadas ayudan a los motores de búsqueda a indexar correctamente las páginas específicas de cada idioma y proporcionan a los usuarios contenido en su idioma preferido.
|
|
805
|
+
- **Consistencia**: Al usar un enlace localizado en toda tu aplicación, garantizas que la navegación se mantenga dentro de la configuración regional actual, evitando cambios inesperados de idioma.
|
|
806
|
+
- **Mantenibilidad**: Centralizar la lógica de localización en un único componente simplifica la gestión de URLs, haciendo que tu base de código sea más fácil de mantener y ampliar a medida que tu aplicación crezca.
|
|
807
|
+
|
|
808
|
+
```vue fileName="src/components/Link.vue"
|
|
809
|
+
<template>
|
|
810
|
+
<a :href="localizedHref" v-bind="$attrs">
|
|
811
|
+
<slot />
|
|
812
|
+
</a>
|
|
813
|
+
</template>
|
|
814
|
+
|
|
815
|
+
<script setup lang="ts">
|
|
816
|
+
import { computed } from "vue";
|
|
817
|
+
import { getLocalizedUrl } from "intlayer";
|
|
818
|
+
import { useLocale } from "vue-intlayer";
|
|
819
|
+
|
|
820
|
+
const props = defineProps({
|
|
821
|
+
href: {
|
|
822
|
+
type: String,
|
|
823
|
+
required: true,
|
|
824
|
+
},
|
|
825
|
+
});
|
|
826
|
+
|
|
827
|
+
const { locale } = useLocale();
|
|
828
|
+
|
|
829
|
+
// Verificar si el enlace es externo
|
|
830
|
+
const isExternalLink = computed(() => /^https?:\/\//.test(props.href || ""));
|
|
831
|
+
|
|
832
|
+
// Crear un href localizado para enlaces internos
|
|
833
|
+
const localizedHref = computed(() =>
|
|
834
|
+
isExternalLink.value ? props.href : getLocalizedUrl(props.href, locale.value)
|
|
835
|
+
);
|
|
836
|
+
</script>
|
|
837
|
+
```
|
|
838
|
+
|
|
839
|
+
Para usar con Vue Router, crea una versión específica para el router:
|
|
840
|
+
|
|
841
|
+
```vue fileName="src/components/RouterLink.vue"
|
|
842
|
+
<template>
|
|
843
|
+
<router-link :to="localizedTo" v-bind="$attrs">
|
|
844
|
+
<slot />
|
|
845
|
+
</router-link>
|
|
846
|
+
</template>
|
|
847
|
+
|
|
848
|
+
<script setup lang="ts">
|
|
849
|
+
import { computed } from "vue";
|
|
850
|
+
import { getLocalizedUrl } from "intlayer";
|
|
851
|
+
import { useLocale } from "vue-intlayer";
|
|
852
|
+
|
|
853
|
+
const props = defineProps({
|
|
854
|
+
to: {
|
|
855
|
+
type: [String, Object],
|
|
856
|
+
required: true,
|
|
857
|
+
},
|
|
858
|
+
});
|
|
859
|
+
|
|
860
|
+
const { locale } = useLocale();
|
|
861
|
+
|
|
862
|
+
// Crear un to-prop localizado para router-link
|
|
863
|
+
const localizedTo = computed(() => {
|
|
864
|
+
if (typeof props.to === "string") {
|
|
865
|
+
return getLocalizedUrl(props.to, locale.value);
|
|
866
|
+
} else {
|
|
867
|
+
// Si 'to' es un objeto, localizar la propiedad path
|
|
868
|
+
return {
|
|
869
|
+
...props.to,
|
|
870
|
+
path: getLocalizedUrl(props.to.path ?? "/", locale.value),
|
|
871
|
+
};
|
|
872
|
+
}
|
|
873
|
+
});
|
|
874
|
+
</script>
|
|
875
|
+
```
|
|
876
|
+
|
|
877
|
+
Usa estos componentes en tu aplicación:
|
|
878
|
+
|
|
879
|
+
```vue fileName="src/App.vue"
|
|
880
|
+
<template>
|
|
881
|
+
<div>
|
|
882
|
+
<!-- Vue router -->
|
|
883
|
+
<RouterLink to="/">Root</RouterLink>
|
|
884
|
+
<RouterLink to="/home">Home</RouterLink>
|
|
885
|
+
<!-- Otros -->
|
|
886
|
+
<Link href="/">Root</Link>
|
|
887
|
+
<Link href="/home">Home</Link>
|
|
888
|
+
</div>
|
|
889
|
+
</template>
|
|
890
|
+
|
|
891
|
+
<script setup lang="ts">
|
|
892
|
+
import Link from "@components/Link.vue";
|
|
893
|
+
import RouterLink from "@components/RouterLink.vue";
|
|
894
|
+
</script>
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
### Configurar TypeScript
|
|
898
|
+
|
|
899
|
+
Intlayer utiliza la ampliación de módulos para aprovechar los beneficios de TypeScript y fortalecer tu base de código.
|
|
900
|
+
|
|
901
|
+

|
|
902
|
+
|
|
903
|
+

|
|
904
|
+
|
|
905
|
+
Asegúrate de que tu configuración de TypeScript incluya los tipos autogenerados.
|
|
906
|
+
|
|
907
|
+
```json5 fileName="tsconfig.json"
|
|
908
|
+
{
|
|
909
|
+
// ... Tus configuraciones existentes de TypeScript
|
|
910
|
+
"include": [
|
|
911
|
+
// ... Tus configuraciones existentes de TypeScript
|
|
912
|
+
".intlayer/**/*.ts", // Incluir los tipos autogenerados
|
|
913
|
+
],
|
|
914
|
+
}
|
|
915
|
+
```
|
|
916
|
+
|
|
917
|
+
### Configuración de Git
|
|
918
|
+
|
|
919
|
+
Se recomienda ignorar los archivos generados por Intlayer. Esto te permite evitar que se incluyan en tu repositorio Git.
|
|
920
|
+
|
|
921
|
+
Para hacerlo, puedes añadir las siguientes instrucciones a tu archivo `.gitignore`:
|
|
922
|
+
|
|
923
|
+
```plaintext
|
|
924
|
+
# Ignorar los archivos generados por Intlayer
|
|
925
|
+
.intlayer
|
|
926
|
+
```
|
|
927
|
+
|
|
928
|
+
### Extensión de VS Code
|
|
929
|
+
|
|
930
|
+
Para mejorar tu experiencia de desarrollo con Intlayer, puedes instalar la **Extensión Oficial de Intlayer para VS Code**.
|
|
931
|
+
|
|
932
|
+
[Instalar desde el Marketplace de VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
933
|
+
|
|
934
|
+
Esta extensión proporciona:
|
|
935
|
+
|
|
936
|
+
- **Autocompletado** para claves de traducción.
|
|
937
|
+
- **Detección de errores en tiempo real** para traducciones faltantes.
|
|
938
|
+
- **Previsualizaciones en línea** del contenido traducido.
|
|
939
|
+
- **Acciones rápidas** para crear y actualizar traducciones fácilmente.
|
|
940
|
+
|
|
941
|
+
Para más detalles sobre cómo usar la extensión, consulta la [documentación de la Extensión de Intlayer para VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
942
|
+
|
|
943
|
+
---
|
|
944
|
+
|
|
945
|
+
### Ir Más Allá
|
|
946
|
+
|
|
947
|
+
## Para ir más allá, puedes implementar el [editor visual](https://github.com/aymericzip/intlayer/blob/main/docs/es/intlayer_visual_editor.md) o externalizar tu contenido usando el [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/es/intlayer_CMS.md).
|