@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,987 @@
|
|
|
1
|
+
# Начало работы с интернационализацией (i18n) с Intlayer, Vite и Vue
|
|
2
|
+
|
|
3
|
+
> Этот пакет находится в разработке. См. [вопрос](https://github.com/aymericzip/intlayer/issues/113) для получения дополнительной информации. Проявите интерес к Intlayer для Vue, поставив лайк вопросу.
|
|
4
|
+
|
|
5
|
+
<!-- См. [Шаблон приложения](https://github.com/aymericzip/intlayer-vue-template) на GitHub. -->
|
|
6
|
+
|
|
7
|
+
## Что такое Intlayer?
|
|
8
|
+
|
|
9
|
+
**Intlayer** — это инновационная библиотека с открытым исходным кодом для интернационализации (i18n), разработанная для упрощения поддержки нескольких языков в современных веб-приложениях.
|
|
10
|
+
|
|
11
|
+
С помощью Intlayer вы можете:
|
|
12
|
+
|
|
13
|
+
- **Легко управлять переводами** с использованием декларативных словарей на уровне компонентов.
|
|
14
|
+
- **Динамически локализовать метаданные**, маршруты и контент.
|
|
15
|
+
- **Обеспечить поддержку TypeScript** с автогенерацией типов, улучшая автозаполнение и обнаружение ошибок.
|
|
16
|
+
- **Использовать расширенные функции**, такие как динамическое определение и переключение локали.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Пошаговое руководство по настройке Intlayer в приложении Vite и Vue
|
|
21
|
+
|
|
22
|
+
### Шаг 1: Установка зависимостей
|
|
23
|
+
|
|
24
|
+
Установите необходимые пакеты с помощью 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
|
+
Основной пакет, предоставляющий инструменты интернационализации для управления конфигурацией, переводами, [объявлениями контента](https://github.com/aymericzip/intlayer/blob/main/docs/ru/dictionary/get_started.md), транспиляцией и [CLI-командами](https://github.com/aymericzip/intlayer/blob/main/docs/ru/intlayer_cli.md).
|
|
41
|
+
|
|
42
|
+
- **vue-intlayer**
|
|
43
|
+
Пакет, интегрирующий Intlayer с приложением Vue. Он предоставляет провайдеры контекста и композиции для интернационализации Vue.
|
|
44
|
+
|
|
45
|
+
- **vite-intlayer**
|
|
46
|
+
Включает плагин Vite для интеграции Intlayer с [сборщиком Vite](https://vite.dev/guide/why.html#why-bundle-for-production), а также middleware для определения предпочтительной локали пользователя, управления cookies и обработки перенаправления URL.
|
|
47
|
+
|
|
48
|
+
### Шаг 2: Конфигурация вашего проекта
|
|
49
|
+
|
|
50
|
+
Создайте файл конфигурации для настройки языков вашего приложения:
|
|
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
|
+
// Ваши другие локали
|
|
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
|
+
// Ваши другие локали
|
|
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
|
+
// Ваши другие локали
|
|
100
|
+
],
|
|
101
|
+
defaultLocale: Locales.ENGLISH,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
module.exports = config;
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
> Через этот файл конфигурации вы можете настроить локализованные URL, перенаправление middleware, имена cookies, расположение и расширение ваших объявлений контента, отключить логи Intlayer в консоли и многое другое. Для полного списка доступных параметров обратитесь к [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/ru/configuration.md).
|
|
109
|
+
|
|
110
|
+
### Шаг 3: Интеграция Intlayer в конфигурацию Vite
|
|
111
|
+
|
|
112
|
+
Добавьте плагин intlayer в вашу конфигурацию.
|
|
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
|
+
> Плагин `intlayerPlugin()` для Vite используется для интеграции Intlayer с Vite. Он обеспечивает создание файлов объявлений контента и их мониторинг в режиме разработки. Он определяет переменные среды Intlayer в приложении Vite. Кроме того, он предоставляет алиасы для оптимизации производительности.
|
|
148
|
+
|
|
149
|
+
### Шаг 4: Объявление вашего контента
|
|
150
|
+
|
|
151
|
+
Создайте и управляйте вашими объявлениями контента для хранения переводов:
|
|
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
|
+
ru: "счет равен ",
|
|
161
|
+
en: "count is ",
|
|
162
|
+
fr: "le compte est ",
|
|
163
|
+
es: "el recuento es ",
|
|
164
|
+
}),
|
|
165
|
+
edit: t({
|
|
166
|
+
ru: "Редактируйте <code>components/HelloWorld.vue</code> и сохраните для тестирования 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
|
+
ru: "Проверьте ",
|
|
173
|
+
en: "Check out ",
|
|
174
|
+
fr: "Vérifiez ",
|
|
175
|
+
es: "Compruebe ",
|
|
176
|
+
}),
|
|
177
|
+
officialStarter: t({
|
|
178
|
+
ru: ", официальный стартер 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
|
+
ru: "Узнайте больше о поддержке IDE для Vue в ",
|
|
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
|
+
ru: "Руководство по масштабированию Vue Docs",
|
|
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
|
+
ru: "Нажмите на логотипы Vite и Vue, чтобы узнать больше",
|
|
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
|
+
ru: "счет равен ",
|
|
216
|
+
en: "count is ",
|
|
217
|
+
fr: "le compte est ",
|
|
218
|
+
es: "el recuento es ",
|
|
219
|
+
}),
|
|
220
|
+
edit: t({
|
|
221
|
+
ru: "Редактируйте <code>components/HelloWorld.vue</code> и сохраните для тестирования 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
|
+
ru: "Проверьте ",
|
|
228
|
+
en: "Check out ",
|
|
229
|
+
fr: "Vérifiez ",
|
|
230
|
+
es: "Compruebe ",
|
|
231
|
+
}),
|
|
232
|
+
officialStarter: t({
|
|
233
|
+
ru: "официальный стартер 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
|
+
ru: "Узнайте больше о поддержке IDE для Vue в ",
|
|
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
|
+
ru: "Руководство по масштабированию Vue Docs",
|
|
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
|
+
ru: "Нажмите на логотипы Vite и Vue, чтобы узнать больше",
|
|
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
|
+
const { t } = require("intlayer");
|
|
263
|
+
|
|
264
|
+
/\*_ @type {import('intlayer').Dictionary} _/
|
|
265
|
+
const appContent = {
|
|
266
|
+
key: "helloworld",
|
|
267
|
+
content: {
|
|
268
|
+
count: t({ ru: "счет равен ", en: "count is ", fr: "le compte est ", es: "el recuento es " }),
|
|
269
|
+
edit: t({
|
|
270
|
+
ru: "Редактируйте <code>components/HelloWorld.vue</code> и сохраните для тестирования HMR",
|
|
271
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
272
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
273
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
274
|
+
}),
|
|
275
|
+
checkOut: t({ ru: "Проверьте ", en: "Check out ", fr: "Vérifiez ", es: "Compruebe " }),
|
|
276
|
+
officialStarter: t({
|
|
277
|
+
ru: "официальный стартер Vue + Vite",
|
|
278
|
+
en: "the official Vue + Vite starter",
|
|
279
|
+
fr: "le starter officiel Vue + Vite",
|
|
280
|
+
es: "el starter oficial Vue + Vite",
|
|
281
|
+
}),
|
|
282
|
+
learnMore: t({
|
|
283
|
+
ru: "Узнайте больше о поддержке IDE для Vue в ",
|
|
284
|
+
en: "Learn more about IDE Support for Vue in the ",
|
|
285
|
+
fr: "En savoir plus sur le support IDE pour Vue dans le ",
|
|
286
|
+
es: "Aprenda más sobre el soporte IDE para Vue en el ",
|
|
287
|
+
}),
|
|
288
|
+
vueDocs: t({
|
|
289
|
+
ru: "Руководство по масштабированию Vue Docs",
|
|
290
|
+
en: "Vue Docs Scaling up Guide",
|
|
291
|
+
fr: "Vue Docs Scaling up Guide",
|
|
292
|
+
es: "Vue Docs Scaling up Guide",
|
|
293
|
+
}),
|
|
294
|
+
readTheDocs: t({
|
|
295
|
+
ru: "Нажмите на логотипы Vite и Vue, чтобы узнать больше",
|
|
296
|
+
en: "Click on the Vite and Vue logos to learn more",
|
|
297
|
+
fr: "Cliquez sur les logos Vite et Vue pour en savoir plus",
|
|
298
|
+
es: "Haga clic en los logotipos de Vite y Vue para obtener más información",
|
|
299
|
+
}),
|
|
300
|
+
},
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
module.exports = appContent;
|
|
304
|
+
|
|
305
|
+
````
|
|
306
|
+
|
|
307
|
+
```json fileName="src/helloWorld.content.json" contentDeclarationFormat="json"
|
|
308
|
+
{
|
|
309
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
310
|
+
"key": "helloworld",
|
|
311
|
+
"content": {
|
|
312
|
+
"count": {
|
|
313
|
+
"nodeType": "translation",
|
|
314
|
+
"translation": {
|
|
315
|
+
"ru": "счет равен ",
|
|
316
|
+
"en": "count is ",
|
|
317
|
+
"fr": "le compte est ",
|
|
318
|
+
"es": "el recuento es "
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
"edit": {
|
|
322
|
+
"nodeType": "translation",
|
|
323
|
+
"translation": {
|
|
324
|
+
"ru": "Редактируйте <code>components/HelloWorld.vue</code> и сохраните для тестирования HMR",
|
|
325
|
+
"en": "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
326
|
+
"fr": "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
327
|
+
"es": "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR"
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
"checkOut": {
|
|
331
|
+
"nodeType": "translation",
|
|
332
|
+
"translation": {
|
|
333
|
+
"ru": "Проверьте ",
|
|
334
|
+
"en": "Check out ",
|
|
335
|
+
"fr": "Vérifiez ",
|
|
336
|
+
"es": "Compruebe "
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
"officialStarter": {
|
|
340
|
+
"nodeType": "translation",
|
|
341
|
+
"translation": {
|
|
342
|
+
"ru": "официальный стартер Vue + Vite",
|
|
343
|
+
"en": "the official Vue + Vite starter",
|
|
344
|
+
"fr": "le starter officiel Vue + Vite",
|
|
345
|
+
"es": "el starter oficial Vue + Vite"
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
"learnMore": {
|
|
349
|
+
"nodeType": "translation",
|
|
350
|
+
"translation": {
|
|
351
|
+
"ru": "Узнайте больше о поддержке IDE для Vue в ",
|
|
352
|
+
"en": "Learn more about IDE Support for Vue in the ",
|
|
353
|
+
"fr": "En savoir plus sur le support IDE pour Vue dans le ",
|
|
354
|
+
"es": "Aprenda más sobre el soporte IDE para Vue en el "
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
"vueDocs": {
|
|
358
|
+
"nodeType": "translation",
|
|
359
|
+
"translation": {
|
|
360
|
+
"ru": "Руководство по масштабированию Vue Docs",
|
|
361
|
+
"en": "Vue Docs Scaling up Guide",
|
|
362
|
+
"fr": "Vue Docs Scaling up Guide",
|
|
363
|
+
"es": "Vue Docs Scaling up Guide"
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
"readTheDocs": {
|
|
367
|
+
"nodeType": "translation",
|
|
368
|
+
"translation": {
|
|
369
|
+
"ru": "Нажмите на логотипы Vite и Vue, чтобы узнать больше",
|
|
370
|
+
"en": "Click on the Vite and Vue logos to learn more",
|
|
371
|
+
"fr": "Cliquez sur les logos Vite et Vue pour en savoir plus",
|
|
372
|
+
"es": "Haga clic en los logotipos de Vite y Vue para obtener más información"
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
````
|
|
378
|
+
|
|
379
|
+
> Ваши декларации контента могут быть определены в любом месте вашего приложения, если они включены в каталог `contentDir` (по умолчанию, `./src`) и соответствуют расширению файла декларации контента (по умолчанию, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
380
|
+
|
|
381
|
+
> Для получения дополнительной информации обратитесь к [документации по декларации контента](https://github.com/aymericzip/intlayer/blob/main/docs/ru/dictionary/get_started.md).
|
|
382
|
+
|
|
383
|
+
### Шаг 5: Используйте Intlayer в вашем коде
|
|
384
|
+
|
|
385
|
+
Чтобы использовать функции интернационализации Intlayer в вашем приложении Vue, сначала необходимо зарегистрировать экземпляр Intlayer singleton в вашем основном файле. Этот шаг важен, так как он предоставляет контекст интернационализации всем компонентам вашего приложения, делая переводы доступными в любом месте дерева компонентов.
|
|
386
|
+
|
|
387
|
+
```javascript fileName=main.js
|
|
388
|
+
import { createApp } from "vue";
|
|
389
|
+
import { installIntlayer } from "vue-intlayer";
|
|
390
|
+
import App from "./App.vue";
|
|
391
|
+
import "./style.css";
|
|
392
|
+
|
|
393
|
+
const app = createApp(App);
|
|
394
|
+
|
|
395
|
+
// Внедрите провайдер на верхнем уровне
|
|
396
|
+
installIntlayer(app);
|
|
397
|
+
|
|
398
|
+
// Монтируйте приложение
|
|
399
|
+
app.mount("#app");
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
Получите доступ к вашим словарям контента по всему приложению, создавая основной компонент Vue и используя композиции `useIntlayer`:
|
|
403
|
+
|
|
404
|
+
```vue fileName="src/HelloWord.vue"
|
|
405
|
+
<script setup lang="ts">
|
|
406
|
+
import { ref } from "vue";
|
|
407
|
+
import { useIntlayer } from "vue-intlayer";
|
|
408
|
+
|
|
409
|
+
defineProps({
|
|
410
|
+
msg: String,
|
|
411
|
+
});
|
|
412
|
+
|
|
413
|
+
const content = useIntlayer("helloworld");
|
|
414
|
+
const count = ref(0);
|
|
415
|
+
</script>
|
|
416
|
+
|
|
417
|
+
<template>
|
|
418
|
+
<h1>{{ msg }}</h1>
|
|
419
|
+
|
|
420
|
+
<div class="card">
|
|
421
|
+
<button type="button" @click="count++">
|
|
422
|
+
{{ content.count }}{{ count }}
|
|
423
|
+
</button>
|
|
424
|
+
<p v-html="content.edit.value"></p>
|
|
425
|
+
</div>
|
|
426
|
+
|
|
427
|
+
<p>
|
|
428
|
+
{{ content.checkOut }}
|
|
429
|
+
<a href="https://vuejs.org/guide/quick-start.html#local" target="_blank"
|
|
430
|
+
>create-vue</a
|
|
431
|
+
>, {{ content.officialStarter }}
|
|
432
|
+
</p>
|
|
433
|
+
<p>
|
|
434
|
+
{{ content.learnMore }}
|
|
435
|
+
<a
|
|
436
|
+
href="https://vuejs.org/guide/scaling-up/tooling.html#ide-support"
|
|
437
|
+
target="_blank"
|
|
438
|
+
>{{ content.vueDocs }}</a
|
|
439
|
+
>.
|
|
440
|
+
</p>
|
|
441
|
+
<p class="read-the-docs">{{ content.readTheDocs }}</p>
|
|
442
|
+
</template>
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
> Если вы хотите использовать ваш контент в атрибуте, таком как `alt`, `title`, `href`, `aria-label` и т.д., вы должны вызвать значение функции с помощью `.value`, например:
|
|
446
|
+
|
|
447
|
+
> ```html
|
|
448
|
+
>
|
|
449
|
+
> ```
|
|
450
|
+
|
|
451
|
+
> <img src="./logo.svg" :alt="content.image.value" />
|
|
452
|
+
|
|
453
|
+
> ```
|
|
454
|
+
>
|
|
455
|
+
> ```
|
|
456
|
+
|
|
457
|
+
### (Необязательно) Шаг 6: Измените язык вашего контента
|
|
458
|
+
|
|
459
|
+
Чтобы изменить язык вашего контента, вы можете использовать функцию `setLocale`, предоставляемую композицией `useLocale`. Эта функция позволяет установить локаль приложения и обновить контент соответствующим образом.
|
|
460
|
+
|
|
461
|
+
Создайте компонент для переключения между языками:
|
|
462
|
+
|
|
463
|
+
```vue fileName="src/components/LocaleSwitcher.vue"
|
|
464
|
+
<template>
|
|
465
|
+
<div class="locale-switcher">
|
|
466
|
+
<select v-model="selectedLocale" @change="changeLocale">
|
|
467
|
+
<option v-for="loc in availableLocales" :key="loc" :value="loc">
|
|
468
|
+
{{ getLocaleName(loc) }}
|
|
469
|
+
</option>
|
|
470
|
+
</select>
|
|
471
|
+
</div>
|
|
472
|
+
</template>
|
|
473
|
+
|
|
474
|
+
<script setup lang="ts">
|
|
475
|
+
import { ref, watch } from "vue";
|
|
476
|
+
import { getLocaleName } from "intlayer";
|
|
477
|
+
import { useLocale } from "vue-intlayer";
|
|
478
|
+
|
|
479
|
+
// Получите информацию о локали и функцию setLocale
|
|
480
|
+
const { locale, availableLocales, setLocale } = useLocale();
|
|
481
|
+
|
|
482
|
+
// Отслеживайте выбранную локаль с помощью ref
|
|
483
|
+
const selectedLocale = ref(locale.value);
|
|
484
|
+
|
|
485
|
+
// Обновите локаль при изменении выбора
|
|
486
|
+
const changeLocale = () => setLocale(selectedLocale.value);
|
|
487
|
+
|
|
488
|
+
// Синхронизируйте selectedLocale с глобальной локалью
|
|
489
|
+
watch(
|
|
490
|
+
() => locale.value,
|
|
491
|
+
(newLocale) => {
|
|
492
|
+
selectedLocale.value = newLocale;
|
|
493
|
+
}
|
|
494
|
+
);
|
|
495
|
+
</script>
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
Затем используйте этот компонент в вашем App.vue:
|
|
499
|
+
|
|
500
|
+
```vue fileName="src/App.vue"
|
|
501
|
+
<script setup lang="ts">
|
|
502
|
+
import { useIntlayer } from "vue-intlayer";
|
|
503
|
+
import HelloWorld from "@components/HelloWorld.vue";
|
|
504
|
+
import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
505
|
+
import { ref, watch } from "vue";
|
|
506
|
+
|
|
507
|
+
const content = useIntlayer("app"); // Создайте соответствующий файл декларации intlayer
|
|
508
|
+
</script>
|
|
509
|
+
|
|
510
|
+
<template>
|
|
511
|
+
<div>
|
|
512
|
+
<LocaleSwitcher />
|
|
513
|
+
<a href="https://vite.dev" target="_blank">
|
|
514
|
+
<img src="/vite.svg" class="logo" :alt="content.viteLogo" />
|
|
515
|
+
</a>
|
|
516
|
+
<a href="https://vuejs.org/" target="_blank">
|
|
517
|
+
<img src="./assets/vue.svg" class="logo vue" :alt="content.vueLogo" />
|
|
518
|
+
</a>
|
|
519
|
+
</div>
|
|
520
|
+
<HelloWorld :msg="content.title" />
|
|
521
|
+
</template>
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
### (Необязательно) Шаг 7: Добавьте локализованные маршруты в ваше приложение
|
|
525
|
+
|
|
526
|
+
Добавление локализованных маршрутов в приложение Vue обычно включает использование Vue Router с префиксами локалей. Это создает уникальные маршруты для каждого языка, что полезно для SEO и дружественных к SEO URL-адресов.
|
|
527
|
+
|
|
528
|
+
Пример:
|
|
529
|
+
|
|
530
|
+
```plaintext
|
|
531
|
+
- https://example.com/about
|
|
532
|
+
|
|
533
|
+
- https://example.com/ru/about
|
|
534
|
+
- https://example.com/fr/about
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
Сначала установите Vue Router:
|
|
538
|
+
|
|
539
|
+
```bash packageManager="npm"
|
|
540
|
+
npm install intlayer vue-router
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
```bash packageManager="pnpm"
|
|
544
|
+
pnpm add intlayer vue-router
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
```bash packageManager="yarn"
|
|
548
|
+
yarn add intlayer vue-router
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
Затем создайте конфигурацию маршрутизатора, которая обрабатывает маршрутизацию на основе локали:
|
|
552
|
+
|
|
553
|
+
```js fileName="src/router/index.ts"
|
|
554
|
+
import {
|
|
555
|
+
configuration,
|
|
556
|
+
getPathWithoutLocale,
|
|
557
|
+
localeFlatMap,
|
|
558
|
+
type Locales,
|
|
559
|
+
} from 'intlayer';
|
|
560
|
+
import { createIntlayerClient } from 'vue-intlayer';
|
|
561
|
+
import { createRouter, createWebHistory } from 'vue-router';
|
|
562
|
+
import HomeView from './views/home/HomeView.vue';
|
|
563
|
+
import RootView from './views/root/Root.vue';
|
|
564
|
+
|
|
565
|
+
// Получить конфигурацию интернационализации
|
|
566
|
+
const { internationalization, middleware } = configuration;
|
|
567
|
+
const { defaultLocale } = internationalization;
|
|
568
|
+
|
|
569
|
+
/**
|
|
570
|
+
* Объявите маршруты с путями и метаданными, специфичными для локали.
|
|
571
|
+
*/
|
|
572
|
+
const routes = localeFlatMap((localizedData) => [
|
|
573
|
+
{
|
|
574
|
+
path: `${localizedData.urlPrefix}/`,
|
|
575
|
+
name: `Root-${localizedData.locale}`,
|
|
576
|
+
component: RootView,
|
|
577
|
+
meta: {
|
|
578
|
+
locale: localizedData.locale,
|
|
579
|
+
},
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
path: `${localizedData.urlPrefix}/home`,
|
|
583
|
+
name: `Home-${localizedData.locale}`,
|
|
584
|
+
component: HomeView,
|
|
585
|
+
meta: {
|
|
586
|
+
locale: localizedData.locale,
|
|
587
|
+
},
|
|
588
|
+
},
|
|
589
|
+
]);
|
|
590
|
+
|
|
591
|
+
// Создайте экземпляр маршрутизатора
|
|
592
|
+
export const router = createRouter({
|
|
593
|
+
history: createWebHistory(),
|
|
594
|
+
routes,
|
|
595
|
+
});
|
|
596
|
+
|
|
597
|
+
// Добавьте защиту навигации для обработки локали
|
|
598
|
+
router.beforeEach((to, _from, next) => {
|
|
599
|
+
const client = createIntlayerClient();
|
|
600
|
+
|
|
601
|
+
const metaLocale = to.meta.locale as Locales | undefined;
|
|
602
|
+
|
|
603
|
+
if (metaLocale) {
|
|
604
|
+
// Повторное использование локали, определенной в мета-данных маршрута
|
|
605
|
+
client.setLocale(metaLocale);
|
|
606
|
+
next();
|
|
607
|
+
} else {
|
|
608
|
+
// Резервный вариант: локаль отсутствует в мета-данных, возможно, маршрут не совпадает
|
|
609
|
+
// Необязательно: обработка 404 или перенаправление на локаль по умолчанию
|
|
610
|
+
client.setLocale(defaultLocale);
|
|
611
|
+
|
|
612
|
+
if (middleware.prefixDefault) {
|
|
613
|
+
next(`/${defaultLocale}${getPathWithoutLocale(to.path)}`);
|
|
614
|
+
} else {
|
|
615
|
+
next(getPathWithoutLocale(to.path));
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
});
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
> Имя используется для идентификации маршрута в маршрутизаторе. Оно должно быть уникальным для всех маршрутов, чтобы избежать конфликтов и обеспечить правильную навигацию и связывание.
|
|
622
|
+
|
|
623
|
+
Затем зарегистрируйте маршрутизатор в вашем файле main.js:
|
|
624
|
+
|
|
625
|
+
```js fileName="src/main.ts"
|
|
626
|
+
import { createApp } from "vue";
|
|
627
|
+
import App from "./App.vue";
|
|
628
|
+
import { router } from "./router";
|
|
629
|
+
import "./style.css";
|
|
630
|
+
|
|
631
|
+
const app = createApp(App);
|
|
632
|
+
|
|
633
|
+
// Добавьте маршрутизатор в приложение
|
|
634
|
+
app.use(router);
|
|
635
|
+
|
|
636
|
+
// Монтируйте приложение
|
|
637
|
+
app.mount("#app");
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
Затем обновите ваш файл `App.vue`, чтобы отобразить компонент RouterView. Этот компонент будет отображать совпадающий компонент для текущего маршрута.
|
|
641
|
+
|
|
642
|
+
```vue fileName="src/App.vue"
|
|
643
|
+
<script setup lang="ts">
|
|
644
|
+
import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
645
|
+
</script>
|
|
646
|
+
|
|
647
|
+
<template>
|
|
648
|
+
<nav>
|
|
649
|
+
<LocaleSwitcher />
|
|
650
|
+
</nav>
|
|
651
|
+
<RouterView />
|
|
652
|
+
</template>
|
|
653
|
+
```
|
|
654
|
+
|
|
655
|
+
Параллельно вы также можете использовать `intLayerMiddlewarePlugin`, чтобы добавить маршрутизацию на стороне сервера в ваше приложение. Этот плагин автоматически определит текущую локаль на основе URL и установит соответствующий cookie локали. Если локаль не указана, плагин определит наиболее подходящую локаль на основе языковых предпочтений браузера пользователя. Если локаль не обнаружена, произойдет перенаправление на локаль по умолчанию.
|
|
656
|
+
|
|
657
|
+
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
658
|
+
import { defineConfig } from "vite";
|
|
659
|
+
import vue from "@vitejs/plugin-vue";
|
|
660
|
+
import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
|
|
661
|
+
|
|
662
|
+
// https://vitejs.dev/config/
|
|
663
|
+
export default defineConfig({
|
|
664
|
+
plugins: [vue(), intlayerPlugin(), intLayerMiddlewarePlugin()],
|
|
665
|
+
});
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
669
|
+
import { defineConfig } from "vite";
|
|
670
|
+
import vue from "@vitejs/plugin-vue";
|
|
671
|
+
import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";
|
|
672
|
+
|
|
673
|
+
// https://vitejs.dev/config/
|
|
674
|
+
export default defineConfig({
|
|
675
|
+
plugins: [vue(), intlayerPlugin(), intLayerMiddlewarePlugin()],
|
|
676
|
+
});
|
|
677
|
+
```
|
|
678
|
+
|
|
679
|
+
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
680
|
+
const { defineConfig } = require("vite");
|
|
681
|
+
const vue = require("@vitejs/plugin-vue");
|
|
682
|
+
const { intlayerPlugin, intLayerMiddlewarePlugin } = require("vite-intlayer");
|
|
683
|
+
|
|
684
|
+
// https://vitejs.dev/config/
|
|
685
|
+
module.exports = defineConfig({
|
|
686
|
+
plugins: [vue(), intlayerPlugin(), intLayerMiddlewarePlugin()],
|
|
687
|
+
});
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
### (Необязательно) Шаг 8: Изменение URL при смене локали
|
|
691
|
+
|
|
692
|
+
Чтобы автоматически обновлять URL при смене языка пользователем, вы можете изменить компонент `LocaleSwitcher`, чтобы использовать Vue Router:
|
|
693
|
+
|
|
694
|
+
```vue fileName="src/components/LocaleSwitcher.vue"
|
|
695
|
+
<template>
|
|
696
|
+
<div class="locale-switcher">
|
|
697
|
+
<select v-model="selectedLocale" @change="changeLocale">
|
|
698
|
+
<option v-for="loc in availableLocales" :key="loc" :value="loc">
|
|
699
|
+
{{ getLocaleName(loc) }}
|
|
700
|
+
</option>
|
|
701
|
+
</select>
|
|
702
|
+
</div>
|
|
703
|
+
</template>
|
|
704
|
+
|
|
705
|
+
<script setup lang="ts">
|
|
706
|
+
import { ref, watch } from "vue";
|
|
707
|
+
import { useRouter } from "vue-router";
|
|
708
|
+
import { Locales, getLocaleName, getLocalizedUrl } from "intlayer";
|
|
709
|
+
import { useLocale } from "vue-intlayer";
|
|
710
|
+
|
|
711
|
+
// Получить Vue Router
|
|
712
|
+
const router = useRouter();
|
|
713
|
+
|
|
714
|
+
// Получить информацию о локали и функцию setLocale
|
|
715
|
+
const { locale, availableLocales, setLocale } = useLocale({
|
|
716
|
+
onLocaleChange: (newLocale) => {
|
|
717
|
+
// Получить текущий маршрут и создать локализованный URL
|
|
718
|
+
const currentPath = router.currentRoute.value.fullPath;
|
|
719
|
+
const localizedPath = getLocalizedUrl(currentPath, newLocale);
|
|
720
|
+
|
|
721
|
+
// Перейти к локализованному маршруту без перезагрузки страницы
|
|
722
|
+
router.push(localizedPath);
|
|
723
|
+
},
|
|
724
|
+
});
|
|
725
|
+
|
|
726
|
+
// Отслеживать выбранную локаль с помощью ref
|
|
727
|
+
const selectedLocale = ref(locale.value);
|
|
728
|
+
|
|
729
|
+
// Обновить локаль при изменении выбора
|
|
730
|
+
const changeLocale = () => {
|
|
731
|
+
setLocale(selectedLocale.value);
|
|
732
|
+
};
|
|
733
|
+
|
|
734
|
+
// Синхронизировать selectedLocale с глобальной локалью
|
|
735
|
+
watch(
|
|
736
|
+
() => locale.value,
|
|
737
|
+
(newLocale) => {
|
|
738
|
+
selectedLocale.value = newLocale;
|
|
739
|
+
}
|
|
740
|
+
);
|
|
741
|
+
</script>
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
Совет: Для лучшей SEO и доступности используйте теги, такие как `<a href="/fr/home" hreflang="fr">`, чтобы ссылаться на локализованные страницы, как показано в Шаге 10. Это позволяет поисковым системам правильно обнаруживать и индексировать URL для конкретных языков. Чтобы сохранить поведение SPA, вы можете предотвратить стандартную навигацию с помощью @click.prevent, изменить локаль с помощью useLocale и программно перейти с использованием Vue Router.
|
|
745
|
+
|
|
746
|
+
```html
|
|
747
|
+
<ol class="divide-text/20 divide-y divide-dashed overflow-y-auto p-1">
|
|
748
|
+
<li>
|
|
749
|
+
<a
|
|
750
|
+
hreflang="x-default"
|
|
751
|
+
aria-label="Переключиться на английский"
|
|
752
|
+
target="_self"
|
|
753
|
+
aria-current="page"
|
|
754
|
+
href="/ru/doc/get-started"
|
|
755
|
+
>
|
|
756
|
+
<div>
|
|
757
|
+
<div><span dir="ltr" lang="en">English</span><span>English</span></div>
|
|
758
|
+
<span>EN</span>
|
|
759
|
+
</div>
|
|
760
|
+
</a>
|
|
761
|
+
</li>
|
|
762
|
+
<li>
|
|
763
|
+
<a
|
|
764
|
+
hreflang="es"
|
|
765
|
+
aria-label="Переключиться на испанский"
|
|
766
|
+
target="_self"
|
|
767
|
+
href="/es/doc/get-started"
|
|
768
|
+
>
|
|
769
|
+
<div>
|
|
770
|
+
<span dir="ltr" lang="es">Español</span><span>Spanish</span>
|
|
771
|
+
<span>ES</span>
|
|
772
|
+
</div>
|
|
773
|
+
</a>
|
|
774
|
+
</li>
|
|
775
|
+
</ol>
|
|
776
|
+
```
|
|
777
|
+
|
|
778
|
+
### (Необязательно) Шаг 9: Переключение атрибутов языка и направления HTML
|
|
779
|
+
|
|
780
|
+
Когда ваше приложение поддерживает несколько языков, важно обновлять атрибуты `lang` и `dir` тега `<html>` в соответствии с текущей локалью. Это обеспечивает:
|
|
781
|
+
|
|
782
|
+
- **Доступность**: Читалки экрана и вспомогательные технологии полагаются на правильный атрибут `lang` для точного произношения и интерпретации контента.
|
|
783
|
+
- **Отображение текста**: Атрибут `dir` (направление) гарантирует, что текст отображается в правильном порядке (например, слева направо для английского, справа налево для арабского или иврита), что важно для читаемости.
|
|
784
|
+
- **SEO**: Поисковые системы используют атрибут `lang`, чтобы определить язык вашей страницы, помогая предоставлять правильный локализованный контент в результатах поиска.
|
|
785
|
+
|
|
786
|
+
Обновляя эти атрибуты динамически при смене локали, вы гарантируете последовательный и доступный опыт для пользователей на всех поддерживаемых языках.
|
|
787
|
+
|
|
788
|
+
```js fileName="src/composables/useI18nHTMLAttributes.ts"
|
|
789
|
+
import { watch } from "vue";
|
|
790
|
+
import { useLocale } from "vue-intlayer";
|
|
791
|
+
import { getHTMLTextDir } from "intlayer";
|
|
792
|
+
|
|
793
|
+
/**
|
|
794
|
+
* Компонент, который обновляет атрибуты `lang` и `dir` элемента HTML <html>
|
|
795
|
+
* на основе текущей локали.
|
|
796
|
+
*
|
|
797
|
+
* @example
|
|
798
|
+
* // В вашем App.vue или глобальном компоненте
|
|
799
|
+
* import { useI18nHTMLAttributes } from './composables/useI18nHTMLAttributes'
|
|
800
|
+
*
|
|
801
|
+
* useI18nHTMLAttributes()
|
|
802
|
+
*/
|
|
803
|
+
export function useI18nHTMLAttributes() {
|
|
804
|
+
const { locale } = useLocale();
|
|
805
|
+
|
|
806
|
+
// Обновление атрибутов HTML при изменении локали
|
|
807
|
+
watch(
|
|
808
|
+
() => locale.value,
|
|
809
|
+
(newLocale) => {
|
|
810
|
+
if (!newLocale) return;
|
|
811
|
+
|
|
812
|
+
// Обновление атрибута языка
|
|
813
|
+
document.documentElement.lang = newLocale;
|
|
814
|
+
|
|
815
|
+
// Установка направления текста (ltr для большинства языков, rtl для арабского, иврита и т.д.)
|
|
816
|
+
document.documentElement.dir = getHTMLTextDir(newLocale);
|
|
817
|
+
},
|
|
818
|
+
{ immediate: true }
|
|
819
|
+
);
|
|
820
|
+
}
|
|
821
|
+
```
|
|
822
|
+
|
|
823
|
+
Используйте этот компонент в вашем `App.vue` или глобальном компоненте:
|
|
824
|
+
|
|
825
|
+
```vue fileName="src/App.vue"
|
|
826
|
+
<script setup lang="ts">
|
|
827
|
+
import { useI18nHTMLAttributes } from "@composables/useI18nHTMLAttributes";
|
|
828
|
+
|
|
829
|
+
// Применение атрибутов HTML на основе текущей локали
|
|
830
|
+
useI18nHTMLAttributes();
|
|
831
|
+
</script>
|
|
832
|
+
|
|
833
|
+
<template>
|
|
834
|
+
<!-- Шаблон вашего приложения -->
|
|
835
|
+
</template>
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
### (Опционально) Шаг 10: Создание локализованного компонента ссылки
|
|
839
|
+
|
|
840
|
+
Чтобы обеспечить, что навигация вашего приложения учитывает текущую локаль, вы можете создать пользовательский компонент `Link`. Этот компонент автоматически добавляет префикс к внутренним URL с текущим языком. Например, когда пользователь, говорящий на французском, нажимает на ссылку на страницу "О нас", он будет перенаправлен на `/fr/about` вместо `/about`.
|
|
841
|
+
|
|
842
|
+
Это поведение полезно по нескольким причинам:
|
|
843
|
+
|
|
844
|
+
- **SEO и пользовательский опыт**: Локализованные URL помогают поисковым системам правильно индексировать страницы на разных языках и предоставляют пользователям контент на их предпочтительном языке.
|
|
845
|
+
- **Последовательность**: Используя локализованную ссылку по всему приложению, вы гарантируете, что навигация остается в текущей локали, предотвращая неожиданные переключения языка.
|
|
846
|
+
- **Поддерживаемость**: Централизация логики локализации в одном компоненте упрощает управление URL, делая ваш код более удобным для поддержки и расширения по мере роста приложения.
|
|
847
|
+
|
|
848
|
+
```vue fileName="src/components/Link.vue"
|
|
849
|
+
<template>
|
|
850
|
+
<a :href="localizedHref" v-bind="$attrs">
|
|
851
|
+
<slot />
|
|
852
|
+
</a>
|
|
853
|
+
</template>
|
|
854
|
+
|
|
855
|
+
<script setup lang="ts">
|
|
856
|
+
import { computed } from "vue";
|
|
857
|
+
import { getLocalizedUrl } from "intlayer";
|
|
858
|
+
import { useLocale } from "vue-intlayer";
|
|
859
|
+
|
|
860
|
+
const props = defineProps({
|
|
861
|
+
href: {
|
|
862
|
+
type: String,
|
|
863
|
+
required: true,
|
|
864
|
+
},
|
|
865
|
+
});
|
|
866
|
+
|
|
867
|
+
const { locale } = useLocale();
|
|
868
|
+
|
|
869
|
+
// Проверка, является ли ссылка внешней
|
|
870
|
+
const isExternalLink = computed(() => /^https?:\/\//.test(props.href || ""));
|
|
871
|
+
|
|
872
|
+
// Создание локализованного href для внутренних ссылок
|
|
873
|
+
const localizedHref = computed(() =>
|
|
874
|
+
isExternalLink.value ? props.href : getLocalizedUrl(props.href, locale.value)
|
|
875
|
+
);
|
|
876
|
+
</script>
|
|
877
|
+
```
|
|
878
|
+
|
|
879
|
+
Для использования с Vue Router создайте версию, специфичную для маршрутизатора:
|
|
880
|
+
|
|
881
|
+
```vue fileName="src/components/RouterLink.vue"
|
|
882
|
+
<template>
|
|
883
|
+
<router-link :to="localizedTo" v-bind="$attrs">
|
|
884
|
+
<slot />
|
|
885
|
+
</router-link>
|
|
886
|
+
</template>
|
|
887
|
+
|
|
888
|
+
<script setup lang="ts">
|
|
889
|
+
import { computed } from "vue";
|
|
890
|
+
import { getLocalizedUrl } from "intlayer";
|
|
891
|
+
import { useLocale } from "vue-intlayer";
|
|
892
|
+
|
|
893
|
+
const props = defineProps({
|
|
894
|
+
to: {
|
|
895
|
+
type: [String, Object],
|
|
896
|
+
required: true,
|
|
897
|
+
},
|
|
898
|
+
});
|
|
899
|
+
|
|
900
|
+
const { locale } = useLocale();
|
|
901
|
+
|
|
902
|
+
// Создание локализованного свойства to для router-link
|
|
903
|
+
const localizedTo = computed(() => {
|
|
904
|
+
if (typeof props.to === "string") {
|
|
905
|
+
return getLocalizedUrl(props.to, locale.value);
|
|
906
|
+
} else {
|
|
907
|
+
// Если 'to' является объектом, локализуем свойство path
|
|
908
|
+
return {
|
|
909
|
+
...props.to,
|
|
910
|
+
path: getLocalizedUrl(props.to.path ?? "/", locale.value),
|
|
911
|
+
};
|
|
912
|
+
}
|
|
913
|
+
});
|
|
914
|
+
</script>
|
|
915
|
+
```
|
|
916
|
+
|
|
917
|
+
Используйте эти компоненты в вашем приложении:
|
|
918
|
+
|
|
919
|
+
```vue fileName="src/App.vue"
|
|
920
|
+
<template>
|
|
921
|
+
<div>
|
|
922
|
+
<!-- Vue router -->
|
|
923
|
+
<RouterLink to="/">Root</RouterLink>
|
|
924
|
+
<RouterLink to="/home">Home</RouterLink>
|
|
925
|
+
<!-- Другие -->
|
|
926
|
+
<Link href="/">Root</Link>
|
|
927
|
+
<Link href="/home">Home</Link>
|
|
928
|
+
</div>
|
|
929
|
+
</template>
|
|
930
|
+
|
|
931
|
+
<script setup lang="ts">
|
|
932
|
+
import Link from "@components/Link.vue";
|
|
933
|
+
import RouterLink from "@components/RouterLink.vue";
|
|
934
|
+
</script>
|
|
935
|
+
```
|
|
936
|
+
|
|
937
|
+
### Настройка TypeScript
|
|
938
|
+
|
|
939
|
+
Intlayer использует расширение модулей для получения преимуществ TypeScript и делает ваш код более надежным.
|
|
940
|
+
|
|
941
|
+

|
|
942
|
+
|
|
943
|
+

|
|
944
|
+
|
|
945
|
+
Убедитесь, что ваша конфигурация TypeScript включает автоматически сгенерированные типы.
|
|
946
|
+
|
|
947
|
+
```json5 fileName="tsconfig.json"
|
|
948
|
+
{
|
|
949
|
+
// ... Ваши существующие настройки TypeScript
|
|
950
|
+
"include": [
|
|
951
|
+
// ... Ваши существующие настройки TypeScript
|
|
952
|
+
".intlayer/**/*.ts", // Включение автоматически сгенерированных типов
|
|
953
|
+
],
|
|
954
|
+
}
|
|
955
|
+
```
|
|
956
|
+
|
|
957
|
+
### Конфигурация Git
|
|
958
|
+
|
|
959
|
+
Рекомендуется игнорировать файлы, сгенерированные Intlayer. Это позволяет избежать их добавления в ваш репозиторий Git.
|
|
960
|
+
|
|
961
|
+
Для этого вы можете добавить следующие инструкции в ваш файл `.gitignore`:
|
|
962
|
+
|
|
963
|
+
```plaintext
|
|
964
|
+
# Игнорировать файлы, сгенерированные Intlayer
|
|
965
|
+
.intlayer
|
|
966
|
+
```
|
|
967
|
+
|
|
968
|
+
### Расширение VS Code
|
|
969
|
+
|
|
970
|
+
Для улучшения вашего опыта разработки с Intlayer вы можете установить официальное **расширение Intlayer для VS Code**.
|
|
971
|
+
|
|
972
|
+
[Установить из VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
973
|
+
|
|
974
|
+
Это расширение предоставляет:
|
|
975
|
+
|
|
976
|
+
- **Автозаполнение** для ключей перевода.
|
|
977
|
+
- **Обнаружение ошибок в реальном времени** для отсутствующих переводов.
|
|
978
|
+
- **Инлайн-просмотр** переведенного контента.
|
|
979
|
+
- **Быстрые действия** для легкого создания и обновления переводов.
|
|
980
|
+
|
|
981
|
+
Для получения дополнительной информации о том, как использовать расширение, обратитесь к [документации расширения Intlayer для VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
982
|
+
|
|
983
|
+
---
|
|
984
|
+
|
|
985
|
+
### Дальнейшие шаги
|
|
986
|
+
|
|
987
|
+
## Чтобы углубиться, вы можете реализовать [визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/ru/intlayer_visual_editor.md) или вынести ваш контент с использованием [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/ru/intlayer_CMS.md).
|