@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,989 @@
|
|
|
1
|
+
# Começando com a Internacionalização (i18n) com Intlayer, Vite e Vue
|
|
2
|
+
|
|
3
|
+
> Este pacote está em desenvolvimento. Veja o [problema](https://github.com/aymericzip/intlayer/issues/113) para mais informações. Mostre seu interesse no Intlayer para Vue curtindo o problema.
|
|
4
|
+
|
|
5
|
+
<!-- Veja [Modelo de Aplicação](https://github.com/aymericzip/intlayer-vue-template) no GitHub. -->
|
|
6
|
+
|
|
7
|
+
## O que é o Intlayer?
|
|
8
|
+
|
|
9
|
+
**Intlayer** é uma biblioteca de internacionalização (i18n) inovadora e de código aberto, projetada para simplificar o suporte multilíngue em aplicações web modernas.
|
|
10
|
+
|
|
11
|
+
Com o Intlayer, você pode:
|
|
12
|
+
|
|
13
|
+
- **Gerenciar traduções facilmente** usando dicionários declarativos no nível do componente.
|
|
14
|
+
- **Localizar dinamicamente metadados**, rotas e conteúdo.
|
|
15
|
+
- **Garantir suporte ao TypeScript** com tipos autogerados, melhorando a autocompletação e a detecção de erros.
|
|
16
|
+
- **Aproveitar recursos avançados**, como detecção e troca dinâmica de localidade.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Guia Passo a Passo para Configurar o Intlayer em uma Aplicação Vite e Vue
|
|
21
|
+
|
|
22
|
+
### Passo 1: Instalar Dependências
|
|
23
|
+
|
|
24
|
+
Instale os pacotes necessários 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
|
+
O pacote principal que fornece ferramentas de internacionalização para gerenciamento de configuração, tradução, [declaração de conteúdo](https://github.com/aymericzip/intlayer/blob/main/docs/pt/dictionary/get_started.md), transpilação e [comandos CLI](https://github.com/aymericzip/intlayer/blob/main/docs/pt/intlayer_cli.md).
|
|
41
|
+
|
|
42
|
+
- **vue-intlayer**
|
|
43
|
+
O pacote que integra o Intlayer com a aplicação Vue. Ele fornece provedores de contexto e composables para internacionalização no Vue.
|
|
44
|
+
|
|
45
|
+
- **vite-intlayer**
|
|
46
|
+
Inclui o plugin Vite para integrar o Intlayer com o [empacotador Vite](https://vite.dev/guide/why.html#why-bundle-for-production), bem como middleware para detectar a localidade preferida do usuário, gerenciar cookies e lidar com redirecionamento de URLs.
|
|
47
|
+
|
|
48
|
+
### Passo 2: Configuração do seu projeto
|
|
49
|
+
|
|
50
|
+
Crie um arquivo de configuração para configurar os idiomas da sua aplicação:
|
|
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
|
+
// Seus outros idiomas
|
|
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
|
+
// Seus outros idiomas
|
|
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
|
+
// Seus outros idiomas
|
|
100
|
+
],
|
|
101
|
+
defaultLocale: Locales.ENGLISH,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
module.exports = config;
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
> Através deste arquivo de configuração, você pode configurar URLs localizados, redirecionamento de middleware, nomes de cookies, a localização e extensão de suas declarações de conteúdo, desativar logs do Intlayer no console e muito mais. Para uma lista completa de parâmetros disponíveis, consulte a [documentação de configuração](https://github.com/aymericzip/intlayer/blob/main/docs/pt/configuration.md).
|
|
109
|
+
|
|
110
|
+
### Passo 3: Integrar o Intlayer na Configuração do Vite
|
|
111
|
+
|
|
112
|
+
Adicione o plugin intlayer na sua configuração.
|
|
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
|
+
> O plugin `intlayerPlugin()` do Vite é usado para integrar o Intlayer com o Vite. Ele garante a construção de arquivos de declaração de conteúdo e os monitora no modo de desenvolvimento. Ele define variáveis de ambiente do Intlayer dentro da aplicação Vite. Além disso, fornece aliases para otimizar o desempenho.
|
|
148
|
+
|
|
149
|
+
### Passo 4: Declarar Seu Conteúdo
|
|
150
|
+
|
|
151
|
+
Crie e gerencie suas declarações de conteúdo para armazenar traduções:
|
|
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({
|
|
160
|
+
pt: "a contagem é ",
|
|
161
|
+
en: "count is ",
|
|
162
|
+
fr: "le compte est ",
|
|
163
|
+
es: "el recuento es ",
|
|
164
|
+
}),
|
|
165
|
+
edit: t({
|
|
166
|
+
pt: "Edite <code>components/HelloWorld.vue</code> e salve para testar o HMR",
|
|
167
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
168
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
169
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
170
|
+
}),
|
|
171
|
+
checkOut: t({
|
|
172
|
+
pt: "Confira ",
|
|
173
|
+
en: "Check out ",
|
|
174
|
+
fr: "Vérifiez ",
|
|
175
|
+
es: "Compruebe ",
|
|
176
|
+
}),
|
|
177
|
+
officialStarter: t({
|
|
178
|
+
pt: ", o starter oficial Vue + Vite",
|
|
179
|
+
en: ", the official Vue + Vite starter",
|
|
180
|
+
fr: ", le starter officiel Vue + Vite",
|
|
181
|
+
es: ", el starter oficial Vue + Vite",
|
|
182
|
+
}),
|
|
183
|
+
learnMore: t({
|
|
184
|
+
pt: "Saiba mais sobre o suporte IDE para Vue no ",
|
|
185
|
+
en: "Learn more about IDE Support for Vue in the ",
|
|
186
|
+
fr: "En savoir plus sur le support IDE pour Vue dans le ",
|
|
187
|
+
es: "Aprenda más sobre el soporte IDE para Vue en el ",
|
|
188
|
+
}),
|
|
189
|
+
vueDocs: t({
|
|
190
|
+
pt: "Guia de Escalabilidade dos Documentos Vue",
|
|
191
|
+
en: "Vue Docs Scaling up Guide",
|
|
192
|
+
fr: "Vue Docs Scaling up Guide",
|
|
193
|
+
es: "Vue Docs Scaling up Guide",
|
|
194
|
+
}),
|
|
195
|
+
readTheDocs: t({
|
|
196
|
+
pt: "Clique nos logotipos do Vite e Vue para saber mais",
|
|
197
|
+
en: "Click on the Vite and Vue logos to learn more",
|
|
198
|
+
fr: "Cliquez sur les logos Vite et Vue pour en savoir plus",
|
|
199
|
+
es: "Haga clic en los logotipos de Vite y Vue para obtener más información",
|
|
200
|
+
}),
|
|
201
|
+
},
|
|
202
|
+
} satisfies Dictionary;
|
|
203
|
+
|
|
204
|
+
export default helloWorldContent;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
```javascript fileName="src/helloWorld.content.mjs" contentDeclarationFormat="esm"
|
|
208
|
+
import { t } from "intlayer";
|
|
209
|
+
|
|
210
|
+
/** @type {import('intlayer').Dictionary} */
|
|
211
|
+
const helloWorldContent = {
|
|
212
|
+
key: "helloworld",
|
|
213
|
+
content: {
|
|
214
|
+
count: t({
|
|
215
|
+
pt: "a contagem é ",
|
|
216
|
+
en: "count is ",
|
|
217
|
+
fr: "le compte est ",
|
|
218
|
+
es: "el recuento es ",
|
|
219
|
+
}),
|
|
220
|
+
edit: t({
|
|
221
|
+
pt: "Edite <code>components/HelloWorld.vue</code> e salve para testar o HMR",
|
|
222
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
223
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
224
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
225
|
+
}),
|
|
226
|
+
checkOut: t({
|
|
227
|
+
pt: "Confira ",
|
|
228
|
+
en: "Check out ",
|
|
229
|
+
fr: "Vérifiez ",
|
|
230
|
+
es: "Compruebe ",
|
|
231
|
+
}),
|
|
232
|
+
officialStarter: t({
|
|
233
|
+
pt: "o starter oficial Vue + Vite",
|
|
234
|
+
en: "the official Vue + Vite starter",
|
|
235
|
+
fr: "le starter officiel Vue + Vite",
|
|
236
|
+
es: "el starter oficial Vue + Vite",
|
|
237
|
+
}),
|
|
238
|
+
learnMore: t({
|
|
239
|
+
pt: "Saiba mais sobre o suporte IDE para Vue no ",
|
|
240
|
+
en: "Learn more about IDE Support for Vue in the ",
|
|
241
|
+
fr: "En savoir plus sur le support IDE pour Vue dans le ",
|
|
242
|
+
es: "Aprenda más sobre el soporte IDE para Vue en el ",
|
|
243
|
+
}),
|
|
244
|
+
vueDocs: t({
|
|
245
|
+
pt: "Guia de Escalabilidade dos Documentos Vue",
|
|
246
|
+
en: "Vue Docs Scaling up Guide",
|
|
247
|
+
fr: "Vue Docs Scaling up Guide",
|
|
248
|
+
es: "Vue Docs Scaling up Guide",
|
|
249
|
+
}),
|
|
250
|
+
readTheDocs: t({
|
|
251
|
+
pt: "Clique nos logotipos do Vite e Vue para saber mais",
|
|
252
|
+
en: "Click on the Vite and Vue logos to learn more",
|
|
253
|
+
fr: "Cliquez sur les logos Vite et Vue pour en savoir plus",
|
|
254
|
+
es: "Haga clic en los logotipos de Vite y Vue para obtener más información",
|
|
255
|
+
}),
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
export default helloWorldContent;
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
const { t } = require("intlayer");
|
|
265
|
+
|
|
266
|
+
/\*_ @type {import('intlayer').Dictionary} _/
|
|
267
|
+
const appContent = {
|
|
268
|
+
key: "helloworld",
|
|
269
|
+
content: {
|
|
270
|
+
count: t({ pt: "o contador é ", en: "count is ", fr: "le compte est ", es: "el recuento es " }),
|
|
271
|
+
edit: t({
|
|
272
|
+
pt: "Edite <code>components/HelloWorld.vue</code> e salve para testar o HMR",
|
|
273
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
274
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
275
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
276
|
+
}),
|
|
277
|
+
checkOut: t({ pt: "Confira ", en: "Check out ", fr: "Vérifiez ", es: "Compruebe " }),
|
|
278
|
+
officialStarter: t({
|
|
279
|
+
pt: "o starter oficial Vue + Vite",
|
|
280
|
+
en: "the official Vue + Vite starter",
|
|
281
|
+
fr: "le starter officiel Vue + Vite",
|
|
282
|
+
es: "el starter oficial Vue + Vite",
|
|
283
|
+
}),
|
|
284
|
+
learnMore: t({
|
|
285
|
+
pt: "Saiba mais sobre o suporte IDE para Vue no ",
|
|
286
|
+
en: "Learn more about IDE Support for Vue in the ",
|
|
287
|
+
fr: "En savoir plus sur le support IDE pour Vue dans le ",
|
|
288
|
+
es: "Aprenda más sobre el soporte IDE para Vue en el ",
|
|
289
|
+
}),
|
|
290
|
+
vueDocs: t({
|
|
291
|
+
pt: "Guia de Escalabilidade do Vue Docs",
|
|
292
|
+
en: "Vue Docs Scaling up Guide",
|
|
293
|
+
fr: "Vue Docs Scaling up Guide",
|
|
294
|
+
es: "Vue Docs Scaling up Guide",
|
|
295
|
+
}),
|
|
296
|
+
readTheDocs: t({
|
|
297
|
+
pt: "Clique nos logos do Vite e Vue para saber mais",
|
|
298
|
+
en: "Click on the Vite and Vue logos to learn more",
|
|
299
|
+
fr: "Cliquez sur les logos Vite et Vue pour en savoir plus",
|
|
300
|
+
es: "Haga clic en los logotipos de Vite y Vue para obtener más información",
|
|
301
|
+
}),
|
|
302
|
+
},
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
module.exports = appContent;
|
|
306
|
+
|
|
307
|
+
````
|
|
308
|
+
|
|
309
|
+
```json fileName="src/helloWorld.content.json" contentDeclarationFormat="json"
|
|
310
|
+
{
|
|
311
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
312
|
+
"key": "helloworld",
|
|
313
|
+
"content": {
|
|
314
|
+
"count": {
|
|
315
|
+
"nodeType": "translation",
|
|
316
|
+
"translation": {
|
|
317
|
+
"pt": "o contador é ",
|
|
318
|
+
"en": "count is ",
|
|
319
|
+
"fr": "le compte est ",
|
|
320
|
+
"es": "el recuento es "
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
"edit": {
|
|
324
|
+
"nodeType": "translation",
|
|
325
|
+
"translation": {
|
|
326
|
+
"pt": "Edite <code>components/HelloWorld.vue</code> e salve para testar o HMR",
|
|
327
|
+
"en": "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
328
|
+
"fr": "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
329
|
+
"es": "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR"
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
"checkOut": {
|
|
333
|
+
"nodeType": "translation",
|
|
334
|
+
"translation": {
|
|
335
|
+
"pt": "Confira ",
|
|
336
|
+
"en": "Check out ",
|
|
337
|
+
"fr": "Vérifiez ",
|
|
338
|
+
"es": "Compruebe "
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"officialStarter": {
|
|
342
|
+
"nodeType": "translation",
|
|
343
|
+
"translation": {
|
|
344
|
+
"pt": "o starter oficial Vue + Vite",
|
|
345
|
+
"en": "the official Vue + Vite starter",
|
|
346
|
+
"fr": "le starter officiel Vue + Vite",
|
|
347
|
+
"es": "el starter oficial Vue + Vite"
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
"learnMore": {
|
|
351
|
+
"nodeType": "translation",
|
|
352
|
+
"translation": {
|
|
353
|
+
"pt": "Saiba mais sobre o suporte IDE para Vue no ",
|
|
354
|
+
"en": "Learn more about IDE Support for Vue in the ",
|
|
355
|
+
"fr": "En savoir plus sur le support IDE pour Vue dans le ",
|
|
356
|
+
"es": "Aprenda más sobre el soporte IDE para Vue en el "
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
"vueDocs": {
|
|
360
|
+
"nodeType": "translation",
|
|
361
|
+
"translation": {
|
|
362
|
+
"pt": "Guia de Escalabilidade do Vue Docs",
|
|
363
|
+
"en": "Vue Docs Scaling up Guide",
|
|
364
|
+
"fr": "Vue Docs Scaling up Guide",
|
|
365
|
+
"es": "Vue Docs Scaling up Guide"
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"readTheDocs": {
|
|
369
|
+
"nodeType": "translation",
|
|
370
|
+
"translation": {
|
|
371
|
+
"pt": "Clique nos logos do Vite e Vue para saber mais",
|
|
372
|
+
"en": "Click on the Vite and Vue logos to learn more",
|
|
373
|
+
"fr": "Cliquez sur les logos Vite et Vue pour en savoir plus",
|
|
374
|
+
"es": "Haga clic en los logotipos de Vite y Vue para obtener más información"
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
````
|
|
380
|
+
|
|
381
|
+
> Suas declarações de conteúdo podem ser definidas em qualquer lugar em sua aplicação, desde que estejam incluídas no diretório `contentDir` (por padrão, `./src`). E correspondam à extensão do arquivo de declaração de conteúdo (por padrão, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
382
|
+
|
|
383
|
+
> Para mais detalhes, consulte a [documentação de declaração de conteúdo](https://github.com/aymericzip/intlayer/blob/main/docs/pt/dictionary/get_started.md).
|
|
384
|
+
|
|
385
|
+
### Passo 5: Utilize o Intlayer no Seu Código
|
|
386
|
+
|
|
387
|
+
Para utilizar os recursos de internacionalização do Intlayer em toda a sua aplicação Vue, primeiro você precisa registrar a instância singleton do Intlayer no seu arquivo principal. Este passo é crucial, pois fornece o contexto de internacionalização para todos os componentes da sua aplicação, tornando as traduções acessíveis em qualquer lugar na árvore de componentes.
|
|
388
|
+
|
|
389
|
+
```javascript fileName=main.js
|
|
390
|
+
import { createApp } from "vue";
|
|
391
|
+
import { installIntlayer } from "vue-intlayer";
|
|
392
|
+
import App from "./App.vue";
|
|
393
|
+
import "./style.css";
|
|
394
|
+
|
|
395
|
+
const app = createApp(App);
|
|
396
|
+
|
|
397
|
+
// Injete o provedor no nível superior
|
|
398
|
+
installIntlayer(app);
|
|
399
|
+
|
|
400
|
+
// Monte o aplicativo
|
|
401
|
+
app.mount("#app");
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
Acesse seus dicionários de conteúdo em toda a aplicação criando um componente Vue principal e utilizando os composables `useIntlayer`:
|
|
405
|
+
|
|
406
|
+
```vue fileName="src/HelloWord.vue"
|
|
407
|
+
<script setup lang="ts">
|
|
408
|
+
import { ref } from "vue";
|
|
409
|
+
import { useIntlayer } from "vue-intlayer";
|
|
410
|
+
|
|
411
|
+
defineProps({
|
|
412
|
+
msg: String,
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
const content = useIntlayer("helloworld");
|
|
416
|
+
const count = ref(0);
|
|
417
|
+
</script>
|
|
418
|
+
|
|
419
|
+
<template>
|
|
420
|
+
<h1>{{ msg }}</h1>
|
|
421
|
+
|
|
422
|
+
<div class="card">
|
|
423
|
+
<button type="button" @click="count++">
|
|
424
|
+
{{ content.count }}{{ count }}
|
|
425
|
+
</button>
|
|
426
|
+
<p v-html="content.edit.value"></p>
|
|
427
|
+
</div>
|
|
428
|
+
|
|
429
|
+
<p>
|
|
430
|
+
{{ content.checkOut }}
|
|
431
|
+
<a href="https://vuejs.org/guide/quick-start.html#local" target="_blank"
|
|
432
|
+
>create-vue</a
|
|
433
|
+
>, {{ content.officialStarter }}
|
|
434
|
+
</p>
|
|
435
|
+
<p>
|
|
436
|
+
{{ content.learnMore }}
|
|
437
|
+
<a
|
|
438
|
+
href="https://vuejs.org/guide/scaling-up/tooling.html#ide-support"
|
|
439
|
+
target="_blank"
|
|
440
|
+
>{{ content.vueDocs }}</a
|
|
441
|
+
>.
|
|
442
|
+
</p>
|
|
443
|
+
<p class="read-the-docs">{{ content.readTheDocs }}</p>
|
|
444
|
+
</template>
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
> Se você quiser usar seu conteúdo em um atributo, como `alt`, `title`, `href`, `aria-label`, etc., você deve chamar o valor da função com `.value`, como:
|
|
448
|
+
|
|
449
|
+
> ```html
|
|
450
|
+
>
|
|
451
|
+
> ```
|
|
452
|
+
|
|
453
|
+
> <img src="./logo.svg" :alt="content.image.value" />
|
|
454
|
+
|
|
455
|
+
> ```
|
|
456
|
+
>
|
|
457
|
+
> ```
|
|
458
|
+
|
|
459
|
+
### (Opcional) Passo 6: Alterar o idioma do seu conteúdo
|
|
460
|
+
|
|
461
|
+
Para alterar o idioma do seu conteúdo, você pode usar a função `setLocale` fornecida pelo composable `useLocale`. Esta função permite definir o idioma da aplicação e atualizar o conteúdo de acordo.
|
|
462
|
+
|
|
463
|
+
Crie um componente para alternar entre idiomas:
|
|
464
|
+
|
|
465
|
+
```vue fileName="src/components/LocaleSwitcher.vue"
|
|
466
|
+
<template>
|
|
467
|
+
<div class="locale-switcher">
|
|
468
|
+
<select v-model="selectedLocale" @change="changeLocale">
|
|
469
|
+
<option v-for="loc in availableLocales" :key="loc" :value="loc">
|
|
470
|
+
{{ getLocaleName(loc) }}
|
|
471
|
+
</option>
|
|
472
|
+
</select>
|
|
473
|
+
</div>
|
|
474
|
+
</template>
|
|
475
|
+
|
|
476
|
+
<script setup lang="ts">
|
|
477
|
+
import { ref, watch } from "vue";
|
|
478
|
+
import { getLocaleName } from "intlayer";
|
|
479
|
+
import { useLocale } from "vue-intlayer";
|
|
480
|
+
|
|
481
|
+
// Obtenha informações de localidade e a função setLocale
|
|
482
|
+
const { locale, availableLocales, setLocale } = useLocale();
|
|
483
|
+
|
|
484
|
+
// Acompanhe a localidade selecionada com um ref
|
|
485
|
+
const selectedLocale = ref(locale.value);
|
|
486
|
+
|
|
487
|
+
// Atualize a localidade quando a seleção mudar
|
|
488
|
+
const changeLocale = () => setLocale(selectedLocale.value);
|
|
489
|
+
|
|
490
|
+
// Mantenha o selectedLocale sincronizado com a localidade global
|
|
491
|
+
watch(
|
|
492
|
+
() => locale.value,
|
|
493
|
+
(newLocale) => {
|
|
494
|
+
selectedLocale.value = newLocale;
|
|
495
|
+
}
|
|
496
|
+
);
|
|
497
|
+
</script>
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
Em seguida, use este componente no seu App.vue:
|
|
501
|
+
|
|
502
|
+
```vue fileName="src/App.vue"
|
|
503
|
+
<script setup lang="ts">
|
|
504
|
+
import { useIntlayer } from "vue-intlayer";
|
|
505
|
+
import HelloWorld from "@components/HelloWorld.vue";
|
|
506
|
+
import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
507
|
+
import { ref, watch } from "vue";
|
|
508
|
+
|
|
509
|
+
const content = useIntlayer("app"); // Crie o arquivo de declaração intlayer relacionado
|
|
510
|
+
</script>
|
|
511
|
+
|
|
512
|
+
<template>
|
|
513
|
+
<div>
|
|
514
|
+
<LocaleSwitcher />
|
|
515
|
+
<a href="https://vite.dev" target="_blank">
|
|
516
|
+
<img src="/vite.svg" class="logo" :alt="content.viteLogo" />
|
|
517
|
+
</a>
|
|
518
|
+
<a href="https://vuejs.org/" target="_blank">
|
|
519
|
+
<img src="./assets/vue.svg" class="logo vue" :alt="content.vueLogo" />
|
|
520
|
+
</a>
|
|
521
|
+
</div>
|
|
522
|
+
<HelloWorld :msg="content.title" />
|
|
523
|
+
</template>
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
### (Opcional) Passo 7: Adicione Roteamento Localizado à sua Aplicação
|
|
527
|
+
|
|
528
|
+
Adicionar roteamento localizado em uma aplicação Vue geralmente envolve o uso do Vue Router com prefixos de localidade. Isso cria rotas únicas para cada idioma, o que é útil para SEO e URLs amigáveis para SEO.
|
|
529
|
+
|
|
530
|
+
Exemplo:
|
|
531
|
+
|
|
532
|
+
```plaintext
|
|
533
|
+
- https://example.com/about
|
|
534
|
+
|
|
535
|
+
- https://example.com/pt/about
|
|
536
|
+
- https://example.com/fr/about
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
Primeiro, instale o Vue Router:
|
|
540
|
+
|
|
541
|
+
```bash packageManager="npm"
|
|
542
|
+
npm install intlayer vue-router
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
```bash packageManager="pnpm"
|
|
546
|
+
pnpm add intlayer vue-router
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
```bash packageManager="yarn"
|
|
550
|
+
yarn add intlayer vue-router
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
Em seguida, crie uma configuração de roteador que lide com rotas baseadas em localidade:
|
|
554
|
+
|
|
555
|
+
```js fileName="src/router/index.ts"
|
|
556
|
+
import {
|
|
557
|
+
configuration,
|
|
558
|
+
getPathWithoutLocale,
|
|
559
|
+
localeFlatMap,
|
|
560
|
+
type Locales,
|
|
561
|
+
} from 'intlayer';
|
|
562
|
+
import { createIntlayerClient } from 'vue-intlayer';
|
|
563
|
+
import { createRouter, createWebHistory } from 'vue-router';
|
|
564
|
+
import HomeView from './views/home/HomeView.vue';
|
|
565
|
+
import RootView from './views/root/Root.vue';
|
|
566
|
+
|
|
567
|
+
// Obter configuração de internacionalização
|
|
568
|
+
const { internationalization, middleware } = configuration;
|
|
569
|
+
const { defaultLocale } = internationalization;
|
|
570
|
+
|
|
571
|
+
/**
|
|
572
|
+
* Declarar as rotas com caminhos e metadados específicos de localidade.
|
|
573
|
+
*/
|
|
574
|
+
const routes = localeFlatMap((localizedData) => [
|
|
575
|
+
{
|
|
576
|
+
path: `${localizedData.urlPrefix}/`,
|
|
577
|
+
name: `Root-${localizedData.locale}`,
|
|
578
|
+
component: RootView,
|
|
579
|
+
meta: {
|
|
580
|
+
locale: localizedData.locale,
|
|
581
|
+
},
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
path: `${localizedData.urlPrefix}/home`,
|
|
585
|
+
name: `Home-${localizedData.locale}`,
|
|
586
|
+
component: HomeView,
|
|
587
|
+
meta: {
|
|
588
|
+
locale: localizedData.locale,
|
|
589
|
+
},
|
|
590
|
+
},
|
|
591
|
+
]);
|
|
592
|
+
|
|
593
|
+
// Criar a instância do roteador
|
|
594
|
+
export const router = createRouter({
|
|
595
|
+
history: createWebHistory(),
|
|
596
|
+
routes,
|
|
597
|
+
});
|
|
598
|
+
|
|
599
|
+
// Adicionar guarda de navegação para lidar com a localidade
|
|
600
|
+
router.beforeEach((to, _from, next) => {
|
|
601
|
+
const client = createIntlayerClient();
|
|
602
|
+
|
|
603
|
+
const metaLocale = to.meta.locale as Locales | undefined;
|
|
604
|
+
|
|
605
|
+
if (metaLocale) {
|
|
606
|
+
// Reutilizar a localidade definida nos metadados da rota
|
|
607
|
+
client.setLocale(metaLocale);
|
|
608
|
+
next();
|
|
609
|
+
} else {
|
|
610
|
+
// Alternativa: sem localidade nos metadados, possivelmente rota não correspondida
|
|
611
|
+
// Opcional: lidar com 404 ou redirecionar para a localidade padrão
|
|
612
|
+
client.setLocale(defaultLocale);
|
|
613
|
+
|
|
614
|
+
if (middleware.prefixDefault) {
|
|
615
|
+
next(`/${defaultLocale}${getPathWithoutLocale(to.path)}`);
|
|
616
|
+
} else {
|
|
617
|
+
next(getPathWithoutLocale(to.path));
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
});
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
> O nome é usado para identificar a rota no roteador. Ele deve ser único em todas as rotas para evitar conflitos e garantir navegação e vinculação adequadas.
|
|
624
|
+
|
|
625
|
+
Em seguida, registre o roteador no seu arquivo main.js:
|
|
626
|
+
|
|
627
|
+
```js fileName="src/main.ts"
|
|
628
|
+
import { createApp } from "vue";
|
|
629
|
+
import App from "./App.vue";
|
|
630
|
+
import { router } from "./router";
|
|
631
|
+
import "./style.css";
|
|
632
|
+
|
|
633
|
+
const app = createApp(App);
|
|
634
|
+
|
|
635
|
+
// Adicionar o roteador ao aplicativo
|
|
636
|
+
app.use(router);
|
|
637
|
+
|
|
638
|
+
// Montar o aplicativo
|
|
639
|
+
app.mount("#app");
|
|
640
|
+
```
|
|
641
|
+
|
|
642
|
+
Em seguida, atualize seu arquivo `App.vue` para renderizar o componente RouterView. Este componente exibirá o componente correspondente à rota atual.
|
|
643
|
+
|
|
644
|
+
```vue fileName="src/App.vue"
|
|
645
|
+
<script setup lang="ts">
|
|
646
|
+
import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
647
|
+
</script>
|
|
648
|
+
|
|
649
|
+
<template>
|
|
650
|
+
<nav>
|
|
651
|
+
<LocaleSwitcher />
|
|
652
|
+
</nav>
|
|
653
|
+
<RouterView />
|
|
654
|
+
</template>
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
Paralelamente, você também pode usar o `intLayerMiddlewarePlugin` para adicionar roteamento no lado do servidor à sua aplicação. Este plugin detectará automaticamente a localidade atual com base na URL e definirá o cookie de localidade apropriado. Se nenhuma localidade for especificada, o plugin determinará a localidade mais apropriada com base nas preferências de idioma do navegador do usuário. Se nenhuma localidade for detectada, ele redirecionará para a localidade padrão.
|
|
658
|
+
|
|
659
|
+
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
660
|
+
import { defineConfig } from "vite";
|
|
661
|
+
import vue from "@vitejs/plugin-vue";
|
|
662
|
+
import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
|
|
663
|
+
|
|
664
|
+
// https://vitejs.dev/config/
|
|
665
|
+
export default defineConfig({
|
|
666
|
+
plugins: [vue(), intlayerPlugin(), intLayerMiddlewarePlugin()],
|
|
667
|
+
});
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
671
|
+
import { defineConfig } from "vite";
|
|
672
|
+
import vue from "@vitejs/plugin-vue";
|
|
673
|
+
import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
|
|
674
|
+
|
|
675
|
+
// https://vitejs.dev/config/
|
|
676
|
+
export default defineConfig({
|
|
677
|
+
plugins: [vue(), intlayerPlugin(), intLayerMiddlewarePlugin()],
|
|
678
|
+
});
|
|
679
|
+
```
|
|
680
|
+
|
|
681
|
+
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
682
|
+
const { defineConfig } = require("vite");
|
|
683
|
+
const vue = require("@vitejs/plugin-vue");
|
|
684
|
+
const { intlayerPlugin, intLayerMiddlewarePlugin } = require("vite-intlayer");
|
|
685
|
+
|
|
686
|
+
// https://vitejs.dev/config/
|
|
687
|
+
module.exports = defineConfig({
|
|
688
|
+
plugins: [vue(), intlayerPlugin(), intLayerMiddlewarePlugin()],
|
|
689
|
+
});
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
### (Opcional) Passo 8: Alterar a URL quando a localidade mudar
|
|
693
|
+
|
|
694
|
+
Para atualizar automaticamente a URL quando o usuário mudar o idioma, você pode modificar o componente `LocaleSwitcher` para usar o Vue Router:
|
|
695
|
+
|
|
696
|
+
```vue fileName="src/components/LocaleSwitcher.vue"
|
|
697
|
+
<template>
|
|
698
|
+
<div class="locale-switcher">
|
|
699
|
+
<select v-model="selectedLocale" @change="changeLocale">
|
|
700
|
+
<option v-for="loc in availableLocales" :key="loc" :value="loc">
|
|
701
|
+
{{ getLocaleName(loc) }}
|
|
702
|
+
</option>
|
|
703
|
+
</select>
|
|
704
|
+
</div>
|
|
705
|
+
</template>
|
|
706
|
+
|
|
707
|
+
<script setup lang="ts">
|
|
708
|
+
import { ref, watch } from "vue";
|
|
709
|
+
import { useRouter } from "vue-router";
|
|
710
|
+
import { Locales, getLocaleName, getLocalizedUrl } from "intlayer";
|
|
711
|
+
import { useLocale } from "vue-intlayer";
|
|
712
|
+
|
|
713
|
+
// Obter Vue Router
|
|
714
|
+
const router = useRouter();
|
|
715
|
+
|
|
716
|
+
// Obter informações de localidade e função setLocale
|
|
717
|
+
const { locale, availableLocales, setLocale } = useLocale({
|
|
718
|
+
onLocaleChange: (newLocale) => {
|
|
719
|
+
// Obter rota atual e criar uma URL localizada
|
|
720
|
+
const currentPath = router.currentRoute.value.fullPath;
|
|
721
|
+
const localizedPath = getLocalizedUrl(currentPath, newLocale);
|
|
722
|
+
|
|
723
|
+
// Navegar para a rota localizada sem recarregar a página
|
|
724
|
+
router.push(localizedPath);
|
|
725
|
+
},
|
|
726
|
+
});
|
|
727
|
+
|
|
728
|
+
// Acompanhar a localidade selecionada com um ref
|
|
729
|
+
const selectedLocale = ref(locale.value);
|
|
730
|
+
|
|
731
|
+
// Atualizar a localidade quando a seleção mudar
|
|
732
|
+
const changeLocale = () => {
|
|
733
|
+
setLocale(selectedLocale.value);
|
|
734
|
+
};
|
|
735
|
+
|
|
736
|
+
// Manter o selectedLocale sincronizado com a localidade global
|
|
737
|
+
watch(
|
|
738
|
+
() => locale.value,
|
|
739
|
+
(newLocale) => {
|
|
740
|
+
selectedLocale.value = newLocale;
|
|
741
|
+
}
|
|
742
|
+
);
|
|
743
|
+
</script>
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
Dica: Para melhor SEO e acessibilidade, use tags como `<a href="/fr/home" hreflang="fr">` para vincular a páginas localizadas, conforme mostrado no Passo 10. Isso permite que os mecanismos de busca descubram e indexem URLs específicas de idioma corretamente. Para preservar o comportamento SPA, você pode evitar a navegação padrão com @click.prevent, alterar a localidade usando useLocale e navegar programaticamente usando o Vue Router.
|
|
747
|
+
|
|
748
|
+
```html
|
|
749
|
+
<ol class="divide-text/20 divide-y divide-dashed overflow-y-auto p-1">
|
|
750
|
+
<li>
|
|
751
|
+
<a
|
|
752
|
+
hreflang="x-default"
|
|
753
|
+
aria-label="Mudar para Inglês"
|
|
754
|
+
target="_self"
|
|
755
|
+
aria-current="page"
|
|
756
|
+
href="/pt/doc/get-started"
|
|
757
|
+
>
|
|
758
|
+
<div>
|
|
759
|
+
<div><span dir="ltr" lang="en">English</span><span>Inglês</span></div>
|
|
760
|
+
<span>EN</span>
|
|
761
|
+
</div>
|
|
762
|
+
</a>
|
|
763
|
+
</li>
|
|
764
|
+
<li>
|
|
765
|
+
<a
|
|
766
|
+
hreflang="es"
|
|
767
|
+
aria-label="Mudar para Espanhol"
|
|
768
|
+
target="_self"
|
|
769
|
+
href="/es/doc/get-started"
|
|
770
|
+
>
|
|
771
|
+
<div>
|
|
772
|
+
<span dir="ltr" lang="es">Español</span><span>Espanhol</span>
|
|
773
|
+
<span>ES</span>
|
|
774
|
+
</div>
|
|
775
|
+
</a>
|
|
776
|
+
</li>
|
|
777
|
+
</ol>
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
### (Opcional) Passo 9: Alterar os Atributos de Idioma e Direção do HTML
|
|
781
|
+
|
|
782
|
+
Quando sua aplicação suporta vários idiomas, é crucial atualizar os atributos `lang` e `dir` da tag `<html>` para corresponder à localidade atual. Fazer isso garante:
|
|
783
|
+
|
|
784
|
+
- **Acessibilidade**: Leitores de tela e tecnologias assistivas dependem do atributo `lang` correto para pronunciar e interpretar o conteúdo com precisão.
|
|
785
|
+
- **Renderização de Texto**: O atributo `dir` (direção) garante que o texto seja renderizado na ordem correta (por exemplo, da esquerda para a direita para inglês, da direita para a esquerda para árabe ou hebraico), o que é essencial para a legibilidade.
|
|
786
|
+
- **SEO**: Os mecanismos de busca usam o atributo `lang` para determinar o idioma da sua página, ajudando a fornecer o conteúdo localizado correto nos resultados de busca.
|
|
787
|
+
|
|
788
|
+
Ao atualizar esses atributos dinamicamente quando a localidade muda, você garante uma experiência consistente e acessível para os usuários em todos os idiomas suportados.
|
|
789
|
+
|
|
790
|
+
```js fileName="src/composables/useI18nHTMLAttributes.ts"
|
|
791
|
+
import { watch } from "vue";
|
|
792
|
+
import { useLocale } from "vue-intlayer";
|
|
793
|
+
import { getHTMLTextDir } from "intlayer";
|
|
794
|
+
|
|
795
|
+
/**
|
|
796
|
+
* Composable que atualiza os atributos `lang` e `dir` do elemento HTML <html>
|
|
797
|
+
* com base no idioma atual.
|
|
798
|
+
*
|
|
799
|
+
* @example
|
|
800
|
+
* // No seu App.vue ou em um componente global
|
|
801
|
+
* import { useI18nHTMLAttributes } from './composables/useI18nHTMLAttributes'
|
|
802
|
+
*
|
|
803
|
+
* useI18nHTMLAttributes()
|
|
804
|
+
*/
|
|
805
|
+
export function useI18nHTMLAttributes() {
|
|
806
|
+
const { locale } = useLocale();
|
|
807
|
+
|
|
808
|
+
// Atualiza os atributos HTML sempre que o idioma mudar
|
|
809
|
+
watch(
|
|
810
|
+
() => locale.value,
|
|
811
|
+
(newLocale) => {
|
|
812
|
+
if (!newLocale) return;
|
|
813
|
+
|
|
814
|
+
// Atualiza o atributo de idioma
|
|
815
|
+
document.documentElement.lang = newLocale;
|
|
816
|
+
|
|
817
|
+
// Define a direção do texto (ltr para a maioria dos idiomas, rtl para árabe, hebraico, etc.)
|
|
818
|
+
document.documentElement.dir = getHTMLTextDir(newLocale);
|
|
819
|
+
},
|
|
820
|
+
{ immediate: true }
|
|
821
|
+
);
|
|
822
|
+
}
|
|
823
|
+
```
|
|
824
|
+
|
|
825
|
+
Use este composable no seu `App.vue` ou em um componente global:
|
|
826
|
+
|
|
827
|
+
```vue fileName="src/App.vue"
|
|
828
|
+
<script setup lang="ts">
|
|
829
|
+
import { useI18nHTMLAttributes } from "@composables/useI18nHTMLAttributes";
|
|
830
|
+
|
|
831
|
+
// Aplica os atributos HTML com base no idioma atual
|
|
832
|
+
useI18nHTMLAttributes();
|
|
833
|
+
</script>
|
|
834
|
+
|
|
835
|
+
<template>
|
|
836
|
+
<!-- Seu template de app -->
|
|
837
|
+
</template>
|
|
838
|
+
```
|
|
839
|
+
|
|
840
|
+
### (Opcional) Passo 10: Criando um Componente de Link Localizado
|
|
841
|
+
|
|
842
|
+
Para garantir que a navegação da sua aplicação respeite o idioma atual, você pode criar um componente personalizado `Link`. Este componente automaticamente adiciona o prefixo do idioma atual às URLs internas. Por exemplo, quando um usuário que fala francês clica em um link para a página "Sobre", ele é redirecionado para `/fr/about` em vez de `/about`.
|
|
843
|
+
|
|
844
|
+
Este comportamento é útil por várias razões:
|
|
845
|
+
|
|
846
|
+
- **SEO e Experiência do Usuário**: URLs localizadas ajudam os motores de busca a indexar corretamente as páginas específicas de idioma e fornecem conteúdo no idioma preferido do usuário.
|
|
847
|
+
- **Consistência**: Usando um link localizado em toda a aplicação, você garante que a navegação permaneça no idioma atual, evitando mudanças inesperadas de idioma.
|
|
848
|
+
- **Manutenção**: Centralizar a lógica de localização em um único componente simplifica a gestão de URLs, tornando seu código mais fácil de manter e expandir à medida que sua aplicação cresce.
|
|
849
|
+
|
|
850
|
+
```vue fileName="src/components/Link.vue"
|
|
851
|
+
<template>
|
|
852
|
+
<a :href="localizedHref" v-bind="$attrs">
|
|
853
|
+
<slot />
|
|
854
|
+
</a>
|
|
855
|
+
</template>
|
|
856
|
+
|
|
857
|
+
<script setup lang="ts">
|
|
858
|
+
import { computed } from "vue";
|
|
859
|
+
import { getLocalizedUrl } from "intlayer";
|
|
860
|
+
import { useLocale } from "vue-intlayer";
|
|
861
|
+
|
|
862
|
+
const props = defineProps({
|
|
863
|
+
href: {
|
|
864
|
+
type: String,
|
|
865
|
+
required: true,
|
|
866
|
+
},
|
|
867
|
+
});
|
|
868
|
+
|
|
869
|
+
const { locale } = useLocale();
|
|
870
|
+
|
|
871
|
+
// Verifica se o link é externo
|
|
872
|
+
const isExternalLink = computed(() => /^https?:\/\//.test(props.href || ""));
|
|
873
|
+
|
|
874
|
+
// Cria um href localizado para links internos
|
|
875
|
+
const localizedHref = computed(() =>
|
|
876
|
+
isExternalLink.value ? props.href : getLocalizedUrl(props.href, locale.value)
|
|
877
|
+
);
|
|
878
|
+
</script>
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
Para uso com Vue Router, crie uma versão específica para o roteador:
|
|
882
|
+
|
|
883
|
+
```vue fileName="src/components/RouterLink.vue"
|
|
884
|
+
<template>
|
|
885
|
+
<router-link :to="localizedTo" v-bind="$attrs">
|
|
886
|
+
<slot />
|
|
887
|
+
</router-link>
|
|
888
|
+
</template>
|
|
889
|
+
|
|
890
|
+
<script setup lang="ts">
|
|
891
|
+
import { computed } from "vue";
|
|
892
|
+
import { getLocalizedUrl } from "intlayer";
|
|
893
|
+
import { useLocale } from "vue-intlayer";
|
|
894
|
+
|
|
895
|
+
const props = defineProps({
|
|
896
|
+
to: {
|
|
897
|
+
type: [String, Object],
|
|
898
|
+
required: true,
|
|
899
|
+
},
|
|
900
|
+
});
|
|
901
|
+
|
|
902
|
+
const { locale } = useLocale();
|
|
903
|
+
|
|
904
|
+
// Cria a propriedade 'to' localizada para o router-link
|
|
905
|
+
const localizedTo = computed(() => {
|
|
906
|
+
if (typeof props.to === "string") {
|
|
907
|
+
return getLocalizedUrl(props.to, locale.value);
|
|
908
|
+
} else {
|
|
909
|
+
// Se 'to' for um objeto, localiza a propriedade path
|
|
910
|
+
return {
|
|
911
|
+
...props.to,
|
|
912
|
+
path: getLocalizedUrl(props.to.path ?? "/", locale.value),
|
|
913
|
+
};
|
|
914
|
+
}
|
|
915
|
+
});
|
|
916
|
+
</script>
|
|
917
|
+
```
|
|
918
|
+
|
|
919
|
+
Use esses componentes na sua aplicação:
|
|
920
|
+
|
|
921
|
+
```vue fileName="src/App.vue"
|
|
922
|
+
<template>
|
|
923
|
+
<div>
|
|
924
|
+
<!-- Vue router -->
|
|
925
|
+
<RouterLink to="/">Root</RouterLink>
|
|
926
|
+
<RouterLink to="/home">Home</RouterLink>
|
|
927
|
+
<!-- Outros -->
|
|
928
|
+
<Link href="/">Root</Link>
|
|
929
|
+
<Link href="/home">Home</Link>
|
|
930
|
+
</div>
|
|
931
|
+
</template>
|
|
932
|
+
|
|
933
|
+
<script setup lang="ts">
|
|
934
|
+
import Link from "@components/Link.vue";
|
|
935
|
+
import RouterLink from "@components/RouterLink.vue";
|
|
936
|
+
</script>
|
|
937
|
+
```
|
|
938
|
+
|
|
939
|
+
### Configurar TypeScript
|
|
940
|
+
|
|
941
|
+
O Intlayer utiliza a ampliação de módulos para aproveitar os benefícios do TypeScript e tornar seu código mais robusto.
|
|
942
|
+
|
|
943
|
+

|
|
944
|
+
|
|
945
|
+

|
|
946
|
+
|
|
947
|
+
Certifique-se de que sua configuração do TypeScript inclua os tipos gerados automaticamente.
|
|
948
|
+
|
|
949
|
+
```json5 fileName="tsconfig.json"
|
|
950
|
+
{
|
|
951
|
+
// ... Suas configurações existentes do TypeScript
|
|
952
|
+
"include": [
|
|
953
|
+
// ... Suas configurações existentes do TypeScript
|
|
954
|
+
".intlayer/**/*.ts", // Inclui os tipos gerados automaticamente
|
|
955
|
+
],
|
|
956
|
+
}
|
|
957
|
+
```
|
|
958
|
+
|
|
959
|
+
### Configuração do Git
|
|
960
|
+
|
|
961
|
+
Recomenda-se ignorar os arquivos gerados pelo Intlayer. Isso evita que eles sejam adicionados ao seu repositório Git.
|
|
962
|
+
|
|
963
|
+
Para isso, você pode adicionar as seguintes instruções ao seu arquivo `.gitignore`:
|
|
964
|
+
|
|
965
|
+
```plaintext
|
|
966
|
+
# Ignorar os arquivos gerados pelo Intlayer
|
|
967
|
+
.intlayer
|
|
968
|
+
```
|
|
969
|
+
|
|
970
|
+
### Extensão do VS Code
|
|
971
|
+
|
|
972
|
+
Para melhorar sua experiência de desenvolvimento com o Intlayer, você pode instalar a **Extensão Oficial do Intlayer para VS Code**.
|
|
973
|
+
|
|
974
|
+
[Instale no VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
975
|
+
|
|
976
|
+
Esta extensão fornece:
|
|
977
|
+
|
|
978
|
+
- **Autocompletar** para chaves de tradução.
|
|
979
|
+
- **Detecção de erros em tempo real** para traduções ausentes.
|
|
980
|
+
- **Pré-visualizações inline** de conteúdo traduzido.
|
|
981
|
+
- **Ações rápidas** para criar e atualizar traduções facilmente.
|
|
982
|
+
|
|
983
|
+
Para mais detalhes sobre como usar a extensão, consulte a [documentação da Extensão do Intlayer para VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
984
|
+
|
|
985
|
+
---
|
|
986
|
+
|
|
987
|
+
### Vá Além
|
|
988
|
+
|
|
989
|
+
## Para ir além, você pode implementar o [editor visual](https://github.com/aymericzip/intlayer/blob/main/docs/pt/intlayer_visual_editor.md) ou externalizar seu conteúdo usando o [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/pt/intlayer_CMS.md).
|