@intlayer/docs 5.7.8 → 5.8.0
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/blog/ar/intlayer_with_next-i18next.md +5 -6
- package/blog/ar/intlayer_with_next-intl.md +3 -4
- package/blog/ar/intlayer_with_react-i18next.md +1 -1
- package/blog/ar/intlayer_with_react-intl.md +1 -1
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +96 -219
- package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +88 -129
- package/blog/ar/vue-i18n_vs_intlayer.md +268 -0
- package/blog/de/intlayer_with_next-i18next.md +5 -6
- package/blog/de/intlayer_with_react-intl.md +1 -1
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/de/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/de/vue-i18n_vs_intlayer.md +268 -0
- package/blog/en/intlayer_with_next-i18next.md +5 -6
- package/blog/en/intlayer_with_next-intl.md +3 -4
- package/blog/en/intlayer_with_react-i18next.md +1 -1
- package/blog/en/intlayer_with_react-intl.md +1 -1
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +89 -220
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +85 -123
- package/blog/en/vue-i18n_vs_intlayer.md +268 -0
- package/blog/en-GB/intlayer_with_next-i18next.md +5 -6
- package/blog/en-GB/intlayer_with_next-intl.md +3 -4
- package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
- package/blog/en-GB/intlayer_with_react-intl.md +1 -1
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +85 -218
- package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +80 -130
- package/blog/en-GB/vue-i18n_vs_intlayer.md +258 -0
- package/blog/es/intlayer_with_next-i18next.md +5 -6
- package/blog/es/intlayer_with_next-intl.md +3 -4
- package/blog/es/intlayer_with_react-i18next.md +1 -1
- package/blog/es/intlayer_with_react-intl.md +1 -1
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/es/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/es/vue-i18n_vs_intlayer.md +268 -0
- package/blog/fr/intlayer_with_next-i18next.md +5 -6
- package/blog/fr/intlayer_with_next-intl.md +3 -4
- package/blog/fr/intlayer_with_react-i18next.md +1 -1
- package/blog/fr/intlayer_with_react-intl.md +1 -1
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
- package/blog/fr/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
- package/blog/fr/vue-i18n_vs_intlayer.md +269 -0
- package/blog/hi/intlayer_with_next-i18next.md +5 -6
- package/blog/hi/intlayer_with_next-intl.md +3 -4
- package/blog/hi/intlayer_with_react-i18next.md +1 -1
- package/blog/hi/intlayer_with_react-intl.md +1 -1
- package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +97 -220
- package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
- package/blog/hi/vue-i18n_vs_intlayer.md +268 -0
- package/blog/it/intlayer_with_next-i18next.md +5 -6
- package/blog/it/intlayer_with_next-intl.md +3 -4
- package/blog/it/intlayer_with_react-i18next.md +1 -1
- package/blog/it/intlayer_with_react-intl.md +1 -1
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
- package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
- package/blog/it/vue-i18n_vs_intlayer.md +268 -0
- package/blog/ja/intlayer_with_next-i18next.md +5 -6
- package/blog/ja/intlayer_with_next-intl.md +3 -4
- package/blog/ja/intlayer_with_react-intl.md +1 -1
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/ja/vue-i18n_vs_intlayer.md +268 -0
- package/blog/ko/intlayer_with_next-i18next.md +5 -6
- package/blog/ko/intlayer_with_next-intl.md +3 -4
- package/blog/ko/intlayer_with_react-intl.md +1 -1
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +95 -217
- package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
- package/blog/ko/vue-i18n_vs_intlayer.md +268 -0
- package/blog/pt/intlayer_with_next-i18next.md +5 -6
- package/blog/pt/intlayer_with_next-intl.md +3 -4
- package/blog/pt/intlayer_with_react-intl.md +1 -1
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/pt/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/pt/vue-i18n_vs_intlayer.md +268 -0
- package/blog/ru/intlayer_with_next-i18next.md +5 -6
- package/blog/ru/intlayer_with_next-intl.md +3 -4
- package/blog/ru/intlayer_with_react-i18next.md +1 -1
- package/blog/ru/intlayer_with_react-intl.md +1 -1
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +94 -217
- package/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/ru/vue-i18n_vs_intlayer.md +268 -0
- package/blog/zh/intlayer_with_next-i18next.md +5 -6
- package/blog/zh/intlayer_with_next-intl.md +3 -4
- package/blog/zh/intlayer_with_react-i18next.md +1 -1
- package/blog/zh/intlayer_with_react-intl.md +1 -1
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/zh/vue-i18n_vs_intlayer.md +269 -0
- package/dist/cjs/generated/blog.entry.cjs +41 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +41 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +41 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +41 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/formatters.md +625 -0
- package/docs/ar/how_works_intlayer.md +2 -4
- package/docs/ar/interest_of_intlayer.md +159 -49
- package/docs/ar/intlayer_CMS.md +2 -3
- package/docs/ar/intlayer_visual_editor.md +2 -3
- package/docs/ar/intlayer_with_tanstack.md +1 -1
- package/docs/ar/introduction.md +7 -7
- package/docs/ar/packages/intlayer/index.md +3 -3
- package/docs/ar/packages/next-intlayer/index.md +3 -3
- package/docs/de/formatters.md +649 -0
- package/docs/de/interest_of_intlayer.md +161 -47
- package/docs/de/introduction.md +5 -5
- package/docs/de/packages/intlayer/index.md +3 -3
- package/docs/de/packages/next-intlayer/index.md +3 -3
- package/docs/de/packages/react-intlayer/index.md +3 -3
- package/docs/en/dictionary/enumeration.md +2 -2
- package/docs/en/dictionary/function_fetching.md +2 -2
- package/docs/en/dictionary/get_started.md +2 -2
- package/docs/en/dictionary/translation.md +2 -2
- package/docs/en/formatters.md +618 -0
- package/docs/en/how_works_intlayer.md +2 -4
- package/docs/en/interest_of_intlayer.md +170 -46
- package/docs/en/intlayer_CMS.md +2 -3
- package/docs/en/intlayer_visual_editor.md +2 -3
- package/docs/en/intlayer_with_create_react_app.md +2 -2
- package/docs/en/intlayer_with_express.md +2 -2
- package/docs/en/intlayer_with_tanstack.md +1 -1
- package/docs/en/introduction.md +7 -7
- package/docs/en/packages/express-intlayer/index.md +2 -2
- package/docs/en/packages/intlayer/getConfiguration.md +2 -3
- package/docs/en/packages/intlayer/getEnumeration.md +2 -7
- package/docs/en/packages/intlayer/getHTMLTextDir.md +2 -4
- package/docs/en/packages/intlayer/getLocaleLang.md +2 -4
- package/docs/en/packages/intlayer/getLocaleName.md +2 -3
- package/docs/en/packages/intlayer/getLocalizedUrl.md +2 -8
- package/docs/en/packages/intlayer/getMultilingualUrls.md +2 -7
- package/docs/en/packages/intlayer/getPathWithoutLocale.md +2 -3
- package/docs/en/packages/intlayer/getTranslation.md +2 -4
- package/docs/en/packages/intlayer/index.md +5 -5
- package/docs/en/packages/next-intlayer/index.md +5 -5
- package/docs/en/packages/next-intlayer/t.md +2 -2
- package/docs/en/packages/next-intlayer/useDictionary.md +2 -2
- package/docs/en/packages/next-intlayer/useIntlayer.md +2 -2
- package/docs/en/packages/next-intlayer/useLocale.md +2 -2
- package/docs/en/packages/react-intlayer/index.md +5 -5
- package/docs/en/packages/react-intlayer/t.md +2 -2
- package/docs/en/packages/react-intlayer/useI18n.md +2 -2
- package/docs/en/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/en/packages/react-intlayer/useLocale.md +2 -2
- package/docs/en/packages/react-scripts-intlayer/index.md +2 -2
- package/docs/en/packages/solid-intlayer/index.md +2 -2
- package/docs/en/packages/vite-intlayer/index.md +2 -2
- package/docs/en-GB/formatters.md +625 -0
- package/docs/en-GB/how_works_intlayer.md +2 -4
- package/docs/en-GB/interest_of_intlayer.md +157 -53
- package/docs/en-GB/intlayer_with_tanstack.md +1 -1
- package/docs/en-GB/introduction.md +2 -2
- package/docs/en-GB/packages/intlayer/index.md +3 -3
- package/docs/en-GB/packages/next-intlayer/index.md +3 -3
- package/docs/en-GB/packages/react-intlayer/index.md +3 -3
- package/docs/es/formatters.md +649 -0
- package/docs/es/how_works_intlayer.md +2 -4
- package/docs/es/interest_of_intlayer.md +156 -47
- package/docs/es/intlayer_with_tanstack.md +1 -1
- package/docs/es/introduction.md +5 -5
- package/docs/es/packages/intlayer/index.md +3 -3
- package/docs/es/packages/next-intlayer/index.md +3 -3
- package/docs/fr/formatters.md +649 -0
- package/docs/fr/how_works_intlayer.md +2 -4
- package/docs/fr/interest_of_intlayer.md +157 -46
- package/docs/fr/intlayer_with_tanstack.md +1 -1
- package/docs/fr/introduction.md +5 -5
- package/docs/fr/packages/intlayer/index.md +3 -3
- package/docs/fr/packages/next-intlayer/index.md +3 -3
- package/docs/fr/packages/react-intlayer/index.md +3 -3
- package/docs/hi/formatters.md +630 -0
- package/docs/hi/how_works_intlayer.md +2 -4
- package/docs/hi/interest_of_intlayer.md +155 -42
- package/docs/hi/intlayer_with_tanstack.md +1 -1
- package/docs/hi/introduction.md +5 -5
- package/docs/hi/packages/intlayer/index.md +3 -3
- package/docs/hi/packages/next-intlayer/index.md +3 -3
- package/docs/hi/packages/react-intlayer/index.md +3 -3
- package/docs/it/formatters.md +647 -0
- package/docs/it/how_works_intlayer.md +2 -4
- package/docs/it/interest_of_intlayer.md +157 -46
- package/docs/it/intlayer_with_tanstack.md +1 -1
- package/docs/it/introduction.md +5 -5
- package/docs/it/packages/intlayer/index.md +3 -3
- package/docs/it/packages/next-intlayer/index.md +3 -3
- package/docs/it/packages/react-intlayer/index.md +3 -3
- package/docs/ja/formatters.md +649 -0
- package/docs/ja/how_works_intlayer.md +2 -4
- package/docs/ja/interest_of_intlayer.md +154 -48
- package/docs/ja/intlayer_with_tanstack.md +1 -1
- package/docs/ja/introduction.md +5 -5
- package/docs/ja/packages/intlayer/index.md +3 -3
- package/docs/ja/packages/next-intlayer/index.md +3 -3
- package/docs/ja/packages/react-intlayer/index.md +3 -3
- package/docs/ko/formatters.md +649 -0
- package/docs/ko/how_works_intlayer.md +2 -4
- package/docs/ko/interest_of_intlayer.md +157 -48
- package/docs/ko/intlayer_with_tanstack.md +1 -1
- package/docs/ko/introduction.md +5 -5
- package/docs/ko/packages/intlayer/index.md +3 -3
- package/docs/ko/packages/next-intlayer/index.md +3 -3
- package/docs/ko/packages/react-intlayer/index.md +3 -3
- package/docs/pt/formatters.md +625 -0
- package/docs/pt/how_works_intlayer.md +2 -4
- package/docs/pt/interest_of_intlayer.md +162 -47
- package/docs/pt/intlayer_with_tanstack.md +1 -1
- package/docs/pt/introduction.md +5 -5
- package/docs/pt/packages/intlayer/index.md +3 -3
- package/docs/pt/packages/next-intlayer/index.md +3 -3
- package/docs/pt/packages/react-intlayer/index.md +3 -3
- package/docs/ru/autoFill.md +2 -2
- package/docs/ru/configuration.md +1 -40
- package/docs/ru/formatters.md +649 -0
- package/docs/ru/how_works_intlayer.md +5 -7
- package/docs/ru/index.md +1 -1
- package/docs/ru/interest_of_intlayer.md +165 -50
- package/docs/ru/intlayer_CMS.md +7 -8
- package/docs/ru/intlayer_cli.md +4 -7
- package/docs/ru/intlayer_visual_editor.md +5 -6
- package/docs/ru/intlayer_with_angular.md +1 -1
- package/docs/ru/intlayer_with_create_react_app.md +5 -5
- package/docs/ru/intlayer_with_lynx+react.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +3 -3
- package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/ru/intlayer_with_nuxt.md +1 -1
- package/docs/ru/intlayer_with_react_native+expo.md +2 -2
- package/docs/ru/intlayer_with_tanstack.md +3 -3
- package/docs/ru/intlayer_with_vite+preact.md +3 -3
- package/docs/ru/intlayer_with_vite+react.md +3 -3
- package/docs/ru/intlayer_with_vite+solid.md +1 -1
- package/docs/ru/intlayer_with_vite+svelte.md +1 -1
- package/docs/ru/intlayer_with_vite+vue.md +2 -2
- package/docs/ru/introduction.md +8 -8
- package/docs/ru/locale_mapper.md +1 -1
- package/docs/ru/packages/@intlayer/api/index.md +2 -2
- package/docs/ru/packages/@intlayer/chokidar/index.md +1 -1
- package/docs/ru/packages/@intlayer/cli/index.md +2 -2
- package/docs/ru/packages/@intlayer/config/index.md +2 -2
- package/docs/ru/packages/@intlayer/core/index.md +2 -2
- package/docs/ru/packages/@intlayer/design-system/index.md +2 -2
- package/docs/ru/packages/@intlayer/dictionary-entry/index.md +2 -2
- package/docs/ru/packages/@intlayer/editor/index.md +1 -1
- package/docs/ru/packages/@intlayer/editor-react/index.md +1 -1
- package/docs/ru/packages/@intlayer/webpack/index.md +1 -1
- package/docs/ru/packages/angular-intlayer/index.md +1 -1
- package/docs/ru/packages/express-intlayer/index.md +3 -3
- package/docs/ru/packages/express-intlayer/t.md +1 -1
- package/docs/ru/packages/intlayer/getEnumeration.md +3 -8
- package/docs/ru/packages/intlayer/getTranslation.md +3 -5
- package/docs/ru/packages/intlayer/getTranslationContent.md +1 -3
- package/docs/ru/packages/intlayer/index.md +6 -6
- package/docs/ru/packages/intlayer-cli/index.md +1 -1
- package/docs/ru/packages/intlayer-editor/index.md +2 -2
- package/docs/ru/packages/lynx-intlayer/index.md +1 -1
- package/docs/ru/packages/next-intlayer/index.md +7 -7
- package/docs/ru/packages/next-intlayer/t.md +4 -4
- package/docs/ru/packages/next-intlayer/useLocale.md +3 -3
- package/docs/ru/packages/nuxt-intlayer/index.md +1 -1
- package/docs/ru/packages/preact-intlayer/index.md +1 -1
- package/docs/ru/packages/react-intlayer/index.md +7 -7
- package/docs/ru/packages/react-intlayer/t.md +4 -4
- package/docs/ru/packages/react-native-intlayer/index.md +1 -1
- package/docs/ru/packages/react-scripts-intlayer/index.md +3 -3
- package/docs/ru/packages/solid-intlayer/index.md +3 -3
- package/docs/ru/packages/svelte-intlayer/index.md +1 -1
- package/docs/ru/packages/vite-intlayer/index.md +3 -3
- package/docs/ru/packages/vue-intlayer/index.md +1 -1
- package/docs/ru/per_locale_file.md +1 -1
- package/docs/ru/roadmap.md +3 -5
- package/docs/ru/vs_code_extension.md +1 -1
- package/docs/zh/formatters.md +647 -0
- package/docs/zh/how_works_intlayer.md +2 -4
- package/docs/zh/interest_of_intlayer.md +155 -48
- package/docs/zh/intlayer_with_tanstack.md +1 -1
- package/docs/zh/introduction.md +5 -5
- package/docs/zh/packages/intlayer/index.md +3 -3
- package/docs/zh/packages/next-intlayer/index.md +3 -3
- package/docs/zh/packages/react-intlayer/index.md +3 -3
- package/frequent_questions/ar/domain_routing.md +1 -1
- package/frequent_questions/en/domain_routing.md +1 -1
- package/frequent_questions/en-GB/domain_routing.md +1 -1
- package/frequent_questions/es/domain_routing.md +1 -1
- package/frequent_questions/fr/domain_routing.md +1 -1
- package/frequent_questions/hi/domain_routing.md +1 -1
- package/frequent_questions/it/domain_routing.md +1 -1
- package/frequent_questions/ko/domain_routing.md +1 -1
- package/frequent_questions/pt/domain_routing.md +1 -1
- package/frequent_questions/ru/domain_routing.md +1 -1
- package/frequent_questions/ru/get_locale_cookie.md +4 -4
- package/frequent_questions/ru/static_rendering.md +1 -2
- package/frequent_questions/zh/domain_routing.md +1 -1
- package/package.json +11 -11
- package/src/generated/blog.entry.ts +41 -0
- package/src/generated/docs.entry.ts +41 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
4
|
title: Переведите свой сайт Create React App (CRA) (i18n)
|
|
5
5
|
description: Узнайте, как сделать ваш сайт Create React App (CRA) многоязычным. Следуйте документации для интернационализации (i18n) и перевода.
|
|
6
6
|
keywords:
|
|
@@ -24,7 +24,7 @@ applicationTemplate: https://github.com/aymericzip/intlayer-react-cra-template
|
|
|
24
24
|
|
|
25
25
|
## Что такое Intlayer?
|
|
26
26
|
|
|
27
|
-
**Intlayer**
|
|
27
|
+
**Intlayer** - это инновационная, открытая библиотека интернационализации (i18n), созданная для упрощения поддержки многоязычности в современных веб-приложениях.
|
|
28
28
|
|
|
29
29
|
С помощью Intlayer вы можете:
|
|
30
30
|
|
|
@@ -450,7 +450,7 @@ const LocaleSwitcher = () => {
|
|
|
450
450
|
|
|
451
451
|
### (Опционально) Шаг 7: Добавьте локализованную маршрутизацию в ваше приложение
|
|
452
452
|
|
|
453
|
-
Цель этого шага
|
|
453
|
+
Цель этого шага - создать уникальные маршруты для каждого языка. Это полезно для SEO и удобных для SEO URL.
|
|
454
454
|
Пример:
|
|
455
455
|
|
|
456
456
|
```plaintext
|
|
@@ -1031,7 +1031,7 @@ const LocaleSwitcher = () => {
|
|
|
1031
1031
|
{getLocaleName(localeItem)}
|
|
1032
1032
|
</span>
|
|
1033
1033
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1034
|
-
{/* Язык на английском
|
|
1034
|
+
{/* Язык на английском - например, French */}
|
|
1035
1035
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1036
1036
|
</span>
|
|
1037
1037
|
</a>
|
|
@@ -24,7 +24,7 @@ applicationTemplate: https://github.com/aymericzip/intlayer-lynx-template
|
|
|
24
24
|
|
|
25
25
|
## Что такое Intlayer?
|
|
26
26
|
|
|
27
|
-
**Intlayer**
|
|
27
|
+
**Intlayer** - это **инновационная, открытая библиотека интернационализации (i18n)**, которая упрощает поддержку нескольких языков в современных приложениях. Она работает во многих средах JavaScript/TypeScript, **включая Lynx** (через пакет `react-intlayer`).
|
|
28
28
|
|
|
29
29
|
С помощью Intlayer вы можете:
|
|
30
30
|
|
|
@@ -26,7 +26,7 @@ youtubeVideo: https://www.youtube.com/watch?v=e_PPG7PTqGU
|
|
|
26
26
|
|
|
27
27
|
## Что такое Intlayer?
|
|
28
28
|
|
|
29
|
-
**Intlayer**
|
|
29
|
+
**Intlayer** - это инновационная, открытая библиотека интернационализации (i18n), разработанная для упрощения поддержки многоязычности в современных веб-приложениях. Intlayer бесшовно интегрируется с последним фреймворком **Next.js 15**, включая его мощный **App Router**. Она оптимизирована для работы с **Server Components** для эффективного рендеринга и полностью совместима с [**Turbopack**](https://nextjs.org/docs/architecture/turbopack).
|
|
30
30
|
|
|
31
31
|
С помощью Intlayer вы можете:
|
|
32
32
|
|
|
@@ -260,7 +260,7 @@ const LocaleLayout = async ({ children, params: { locale } }) => {
|
|
|
260
260
|
module.exports = LocaleLayout;
|
|
261
261
|
```
|
|
262
262
|
|
|
263
|
-
> Сегмент пути `[locale]` используется для определения локали. Например: `/en-US/about` будет соответствовать `en-US`, а `/fr/about`
|
|
263
|
+
> Сегмент пути `[locale]` используется для определения локали. Например: `/en-US/about` будет соответствовать `en-US`, а `/fr/about` - `fr`.
|
|
264
264
|
|
|
265
265
|
> На этом этапе вы столкнетесь с ошибкой: `Error: Missing <html> and <body> tags in the root layout.`. Это ожидаемо, поскольку файл `/app/page.tsx` больше не используется и может быть удален. Вместо этого сегмент пути `[locale]` активирует страницу `/app/[locale]/page.tsx`. Следовательно, страницы будут доступны по путям, таким как `/en`, `/fr`, `/es` в вашем браузере. Чтобы установить локаль по умолчанию в качестве корневой страницы, обратитесь к настройке `middleware` на шаге 7.
|
|
266
266
|
|
|
@@ -1297,7 +1297,7 @@ export const LocaleSwitcher = () => {
|
|
|
1297
1297
|
};
|
|
1298
1298
|
```
|
|
1299
1299
|
|
|
1300
|
-
> Альтернативный способ
|
|
1300
|
+
> Альтернативный способ - использовать функцию `setLocale`, предоставляемую хуком `useLocale`. Эта функция не позволит предварительно загрузить страницу и перезагрузит страницу.
|
|
1301
1301
|
|
|
1302
1302
|
> В этом случае, без перенаправления с помощью `router.push`, только ваш серверный код изменит локаль контента.
|
|
1303
1303
|
|
|
@@ -22,7 +22,7 @@ slugs:
|
|
|
22
22
|
|
|
23
23
|
## Что такое Intlayer?
|
|
24
24
|
|
|
25
|
-
**Intlayer**
|
|
25
|
+
**Intlayer** - это инновационная, с открытым исходным кодом библиотека интернационализации (i18n), разработанная для упрощения поддержки многоязычности в современных веб-приложениях. Intlayer бесшовно интегрируется с последними версиями фреймворка **Next.js**, включая его традиционный **Page Router**.
|
|
26
26
|
|
|
27
27
|
С помощью Intlayer вы можете:
|
|
28
28
|
|
|
@@ -1251,7 +1251,7 @@ const LocaleSwitcher = () => {
|
|
|
1251
1251
|
};
|
|
1252
1252
|
```
|
|
1253
1253
|
|
|
1254
|
-
> Альтернативный способ
|
|
1254
|
+
> Альтернативный способ - использовать функцию `setLocale`, предоставляемую хуком `useLocale`. Эта функция не позволит предварительно загрузить страницу и приведёт к её перезагрузке.
|
|
1255
1255
|
|
|
1256
1256
|
> В этом случае, без перенаправления с помощью `router.push`, только ваш серверный код изменит локаль содержимого.
|
|
1257
1257
|
|
|
@@ -23,7 +23,7 @@ applicationTemplate: https://github.com/aymericzip/intlayer-nuxt-template
|
|
|
23
23
|
|
|
24
24
|
## Что такое Intlayer?
|
|
25
25
|
|
|
26
|
-
**Intlayer**
|
|
26
|
+
**Intlayer** - это инновационная, открытая библиотека для интернационализации (i18n), созданная для упрощения поддержки многоязычности в современных веб-приложениях.
|
|
27
27
|
|
|
28
28
|
С помощью Intlayer вы можете:
|
|
29
29
|
|
|
@@ -23,7 +23,7 @@ applicationTemplate: https://github.com/aymericzip/intlayer-react-native-templat
|
|
|
23
23
|
|
|
24
24
|
## Что такое Intlayer?
|
|
25
25
|
|
|
26
|
-
**Intlayer**
|
|
26
|
+
**Intlayer** - это **инновационная, открытая библиотека интернационализации (i18n)**, которая упрощает поддержку многоязычности в современных приложениях. Она работает во многих средах JavaScript/TypeScript, **включая React Native** (через пакет `react-intlayer`).
|
|
27
27
|
|
|
28
28
|
С помощью Intlayer вы можете:
|
|
29
29
|
|
|
@@ -133,7 +133,7 @@ module.exports = config;
|
|
|
133
133
|
|
|
134
134
|
## Шаг 3: Добавьте плагин Metro
|
|
135
135
|
|
|
136
|
-
Metro
|
|
136
|
+
Metro - это сборщик для React Native. Он является сборщиком по умолчанию для проектов React Native, созданных с помощью команды `react-native init`. Чтобы использовать Intlayer с Metro, необходимо добавить плагин в файл `metro.config.js`:
|
|
137
137
|
|
|
138
138
|
```js fileName="metro.config.js"
|
|
139
139
|
const { getDefaultConfig } = require("expo/metro-config");
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2025-08-11
|
|
3
3
|
updatedAt: 2025-08-11
|
|
4
4
|
title: Начало работы с Intlayer в TanStack Start (React)
|
|
5
|
-
description: Добавьте i18n в ваше приложение TanStack Start с помощью Intlayer
|
|
5
|
+
description: Добавьте i18n в ваше приложение TanStack Start с помощью Intlayer - словари на уровне компонентов, локализованные URL и SEO-дружественные метаданные.
|
|
6
6
|
keywords:
|
|
7
7
|
- Интернационализация
|
|
8
8
|
- Документация
|
|
@@ -22,7 +22,7 @@ slugs:
|
|
|
22
22
|
|
|
23
23
|
## Что такое Intlayer?
|
|
24
24
|
|
|
25
|
-
**Intlayer**
|
|
25
|
+
**Intlayer** - это открытый набор инструментов i18n для приложений React. Он предоставляет вам:
|
|
26
26
|
|
|
27
27
|
- **Словари на уровне компонентов** с безопасностью TypeScript.
|
|
28
28
|
- **Динамические метаданные и маршруты** (готовые для SEO).
|
|
@@ -181,7 +181,7 @@ JSON/ESM/CJS варианты работают так же, как и в ваш
|
|
|
181
181
|
|
|
182
182
|
## Шаг 5: Оберните TanStack Start с помощью Intlayer
|
|
183
183
|
|
|
184
|
-
С TanStack Start ваш **корневой маршрут**
|
|
184
|
+
С TanStack Start ваш **корневой маршрут** - это правильное место для установки провайдеров.
|
|
185
185
|
|
|
186
186
|
```tsx fileName="src/routes/__root.tsx"
|
|
187
187
|
import {
|
|
@@ -25,7 +25,7 @@ applicationTemplate: https://github.com/aymericzip/intlayer-vite-preact-template
|
|
|
25
25
|
|
|
26
26
|
## Что такое Intlayer?
|
|
27
27
|
|
|
28
|
-
**Intlayer**
|
|
28
|
+
**Intlayer** - это инновационная, открытая библиотека интернационализации (i18n), созданная для упрощения поддержки многоязычности в современных веб-приложениях.
|
|
29
29
|
|
|
30
30
|
С помощью Intlayer вы можете:
|
|
31
31
|
|
|
@@ -606,7 +606,7 @@ module.exports = LocaleSwitcher;
|
|
|
606
606
|
|
|
607
607
|
### (Необязательно) Шаг 7: Добавьте локализованную маршрутизацию в ваше приложение
|
|
608
608
|
|
|
609
|
-
Цель этого шага
|
|
609
|
+
Цель этого шага - создать уникальные маршруты для каждого языка. Это полезно для SEO и URL, дружественных к SEO.
|
|
610
610
|
Пример:
|
|
611
611
|
|
|
612
612
|
```plaintext
|
|
@@ -1381,7 +1381,7 @@ const AppWithHooks: FunctionalComponent = () => {
|
|
|
1381
1381
|
// Применяем хук для обновления атрибутов lang и dir тега <html> в зависимости от локали.
|
|
1382
1382
|
useI18nHTMLAttributes();
|
|
1383
1383
|
|
|
1384
|
-
// Предполагается, что AppContent
|
|
1384
|
+
// Предполагается, что AppContent - это ваш основной компонент отображения контента из Шага 5
|
|
1385
1385
|
return <AppContent />;
|
|
1386
1386
|
};
|
|
1387
1387
|
|
|
@@ -26,7 +26,7 @@ youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4---
|
|
|
26
26
|
|
|
27
27
|
## Что такое Intlayer?
|
|
28
28
|
|
|
29
|
-
**Intlayer**
|
|
29
|
+
**Intlayer** - это инновационная, открытая библиотека интернационализации (i18n), созданная для упрощения поддержки многоязычности в современных веб-приложениях.
|
|
30
30
|
|
|
31
31
|
С помощью Intlayer вы можете:
|
|
32
32
|
|
|
@@ -621,7 +621,7 @@ const LocaleSwitcher = () => {
|
|
|
621
621
|
|
|
622
622
|
### (Необязательно) Шаг 7: Добавьте локализованную маршрутизацию в ваше приложение
|
|
623
623
|
|
|
624
|
-
Цель этого шага
|
|
624
|
+
Цель этого шага - создать уникальные маршруты для каждого языка. Это полезно для SEO и URL, дружественных к SEO.
|
|
625
625
|
Пример:
|
|
626
626
|
|
|
627
627
|
```plaintext
|
|
@@ -1229,7 +1229,7 @@ const LocaleSwitcher = () => {
|
|
|
1229
1229
|
{getLocaleName(localeItem)}
|
|
1230
1230
|
</span>
|
|
1231
1231
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1232
|
-
{/* Язык на английском
|
|
1232
|
+
{/* Язык на английском - например, French */}
|
|
1233
1233
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1234
1234
|
</span>
|
|
1235
1235
|
</a>
|
|
@@ -25,7 +25,7 @@ slugs:
|
|
|
25
25
|
|
|
26
26
|
## Что такое Intlayer?
|
|
27
27
|
|
|
28
|
-
**Intlayer**
|
|
28
|
+
**Intlayer** - это инновационная, открытая библиотека интернационализации (i18n), созданная для упрощения поддержки многоязычности в современных веб-приложениях.
|
|
29
29
|
|
|
30
30
|
С помощью Intlayer вы можете:
|
|
31
31
|
|
|
@@ -25,7 +25,7 @@ slugs:
|
|
|
25
25
|
|
|
26
26
|
## Что такое Intlayer?
|
|
27
27
|
|
|
28
|
-
**Intlayer**
|
|
28
|
+
**Intlayer** - это инновационная, открытая библиотека интернационализации (i18n), разработанная для упрощения поддержки многоязычности в современных веб-приложениях.
|
|
29
29
|
|
|
30
30
|
С помощью Intlayer вы можете:
|
|
31
31
|
|
|
@@ -23,7 +23,7 @@ applicationTemplate: https://github.com/aymericzip/intlayer-vite-vue-template
|
|
|
23
23
|
|
|
24
24
|
## Что такое Intlayer?
|
|
25
25
|
|
|
26
|
-
**Intlayer**
|
|
26
|
+
**Intlayer** - это инновационная, с открытым исходным кодом библиотека интернационализации (i18n), созданная для упрощения поддержки многоязычности в современных веб-приложениях.
|
|
27
27
|
|
|
28
28
|
С помощью Intlayer вы можете:
|
|
29
29
|
|
|
@@ -969,7 +969,7 @@ import RouterLink from "@components/RouterLink.vue";
|
|
|
969
969
|
|
|
970
970
|
### (Необязательно) Шаг 11: Рендеринг Markdown
|
|
971
971
|
|
|
972
|
-
Intlayer поддерживает рендеринг Markdown-контента непосредственно в вашем Vue-приложении. По умолчанию Markdown обрабатывается как простой текст. Чтобы преобразовать Markdown в насыщенный HTML, вы можете интегрировать [markdown-it](https://github.com/markdown-it/markdown-it)
|
|
972
|
+
Intlayer поддерживает рендеринг Markdown-контента непосредственно в вашем Vue-приложении. По умолчанию Markdown обрабатывается как простой текст. Чтобы преобразовать Markdown в насыщенный HTML, вы можете интегрировать [markdown-it](https://github.com/markdown-it/markdown-it) - парсер Markdown.
|
|
973
973
|
|
|
974
974
|
Это особенно полезно, когда ваши переводы содержат форматированный контент, такой как списки, ссылки или выделения.
|
|
975
975
|
|
package/docs/ru/introduction.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
4
|
title: Введение
|
|
5
5
|
description: Узнайте, как работает Intlayer. Посмотрите шаги, используемые Intlayer в вашем приложении. Узнайте, что делают разные пакеты.
|
|
6
6
|
keywords:
|
|
@@ -22,7 +22,7 @@ slugs:
|
|
|
22
22
|
|
|
23
23
|
### Что такое Intlayer?
|
|
24
24
|
|
|
25
|
-
**Intlayer**
|
|
25
|
+
**Intlayer** - это библиотека интернационализации, разработанная специально для JavaScript-разработчиков. Она позволяет объявлять ваш контент в любом месте вашего кода. Она преобразует объявления многоязычного контента в структурированные словари для легкой интеграции в ваш код. Используя TypeScript, **Intlayer** делает вашу разработку более надежной и эффективной.
|
|
26
26
|
|
|
27
27
|
Intlayer также предоставляет опциональный визуальный редактор, который позволяет легко редактировать и управлять вашим контентом. Этот редактор особенно полезен для разработчиков, предпочитающих визуальный интерфейс для управления контентом, или для команд, создающих контент без необходимости беспокоиться о коде.
|
|
28
28
|
|
|
@@ -32,8 +32,8 @@ Intlayer также предоставляет опциональный визу
|
|
|
32
32
|
.
|
|
33
33
|
└── Components
|
|
34
34
|
└── MyComponent
|
|
35
|
-
├── index.content.
|
|
36
|
-
└── index.
|
|
35
|
+
├── index.content.ts
|
|
36
|
+
└── index.tsx
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
```tsx fileName="src/components/MyComponent/index.content.ts" contentDeclarationFormat="typescript"
|
|
@@ -44,8 +44,8 @@ const componentContent = {
|
|
|
44
44
|
content: {
|
|
45
45
|
myTranslatedContent: t({
|
|
46
46
|
en: "Hello World",
|
|
47
|
-
fr: "Bonjour le monde",
|
|
48
47
|
es: "Hola Mundo",
|
|
48
|
+
fr: "Bonjour le monde",
|
|
49
49
|
}),
|
|
50
50
|
},
|
|
51
51
|
} satisfies Dictionary;
|
|
@@ -64,8 +64,8 @@ const componentContent = {
|
|
|
64
64
|
content: {
|
|
65
65
|
myTranslatedContent: t({
|
|
66
66
|
en: "Hello World",
|
|
67
|
-
fr: "Bonjour le monde",
|
|
68
67
|
es: "Hola Mundo",
|
|
68
|
+
fr: "Bonjour le monde",
|
|
69
69
|
}),
|
|
70
70
|
},
|
|
71
71
|
};
|
|
@@ -84,8 +84,8 @@ const componentContent = {
|
|
|
84
84
|
content: {
|
|
85
85
|
myTranslatedContent: t({
|
|
86
86
|
en: "Hello World",
|
|
87
|
-
fr: "Bonjour le monde",
|
|
88
87
|
es: "Hola Mundo",
|
|
88
|
+
fr: "Bonjour le monde",
|
|
89
89
|
}),
|
|
90
90
|
},
|
|
91
91
|
};
|
package/docs/ru/locale_mapper.md
CHANGED
|
@@ -16,7 +16,7 @@ slugs:
|
|
|
16
16
|
|
|
17
17
|
# Отображатель локалей
|
|
18
18
|
|
|
19
|
-
Отображатель локалей
|
|
19
|
+
Отображатель локалей - это мощный инструмент, который помогает работать с данными интернационализации в вашем приложении Intlayer. Он предоставляет три основные функции для преобразования и организации данных, специфичных для локали: `localeMap`, `localeFlatMap` и `localeRecord`.
|
|
20
20
|
|
|
21
21
|
## Как работает Отображатель локалей
|
|
22
22
|
|
|
@@ -21,9 +21,9 @@ slugs:
|
|
|
21
21
|
|
|
22
22
|
# @intlayer/api: Пакет NPM для взаимодействия с Intlayer API
|
|
23
23
|
|
|
24
|
-
**Intlayer**
|
|
24
|
+
**Intlayer** - это набор пакетов, разработанных специально для разработчиков на JavaScript. Он совместим с такими фреймворками, как React, React и Express.js.
|
|
25
25
|
|
|
26
|
-
**Пакет `@intlayer/api`**
|
|
26
|
+
**Пакет `@intlayer/api`** - это SDK (набор для разработки программного обеспечения) для взаимодействия с Intlayer API. Он предоставляет набор функций для аудита деклараций контента, взаимодействия с организациями, проектами, пользователями и т.д.
|
|
27
27
|
|
|
28
28
|
## Использование
|
|
29
29
|
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# @intlayer/chokidar: Пакет NPM для сканирования и сборки декларационных файлов Intlayer в словари
|
|
22
22
|
|
|
23
|
-
**Intlayer**
|
|
23
|
+
**Intlayer** - это набор пакетов, разработанных специально для JavaScript-разработчиков. Он совместим с такими фреймворками, как React, React и Express.js.
|
|
24
24
|
|
|
25
25
|
Пакет **`@intlayer/chokidar`** используется для сканирования и построения файлов деклараций Intlayer в словари с использованием [chokidar](https://github.com/paulmillr/chokidar) и в соответствии с [конфигурацией Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
|
|
26
26
|
|
|
@@ -20,9 +20,9 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# @intlayer/cli: NPM пакет для использования скриптов, предоставляемых intlayer CLI
|
|
22
22
|
|
|
23
|
-
**Intlayer**
|
|
23
|
+
**Intlayer** - это набор пакетов, разработанных специально для JavaScript-разработчиков. Он совместим с такими фреймворками, как React, React и Express.js.
|
|
24
24
|
|
|
25
|
-
Пакет **`@intlayer/cli`**
|
|
25
|
+
Пакет **`@intlayer/cli`** - это NPM-пакет, который используется для объявления скриптов, связанных с интерфейсами командной строки intlayer. Он обеспечивает единообразие всех команд CLI intlayer. Этот пакет особенно используется в пакетах [intlayer-cli](https://github.com/aymericzip/intlayer/tree/main/docs/docs/ru/packages/intlayer-cli/index.md) и [intlayer](https://github.com/aymericzip/intlayer/tree/main/docs/docs/ru/packages/intlayer/index.md).
|
|
26
26
|
|
|
27
27
|
## Установка
|
|
28
28
|
|
|
@@ -20,9 +20,9 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# @intlayer/config: NPM пакет для получения конфигурации Intlayer
|
|
22
22
|
|
|
23
|
-
**Intlayer**
|
|
23
|
+
**Intlayer** - это набор пакетов, разработанных специально для JavaScript-разработчиков. Он совместим с такими фреймворками, как React, React и Express.js.
|
|
24
24
|
|
|
25
|
-
Пакет **`@intlayer/config`**
|
|
25
|
+
Пакет **`@intlayer/config`** - это NPM-пакет, который позволяет получить конфигурацию Intlayer и определить переменные окружения, связанные с текущей средой.
|
|
26
26
|
|
|
27
27
|
## Установка
|
|
28
28
|
|
|
@@ -20,9 +20,9 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# @intlayer/core: Пакет NPM, содержащий основные функции Intlayer
|
|
22
22
|
|
|
23
|
-
**Intlayer**
|
|
23
|
+
**Intlayer** - это набор пакетов, разработанных специально для разработчиков на JavaScript. Он совместим с такими фреймворками, как React, React и Express.js.
|
|
24
24
|
|
|
25
|
-
**Пакет `@intlayer/core`**
|
|
25
|
+
**Пакет `@intlayer/core`** - это пакет NPM, включающий основные функции Intlayer, используемые несколькими пакетами. В частности, он включает:
|
|
26
26
|
|
|
27
27
|
- Функции перевода
|
|
28
28
|
- Функции словаря
|
|
@@ -20,9 +20,9 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# @intlayer/design-system: Пакет NPM, содержащий UI библиотеку Intlayer
|
|
22
22
|
|
|
23
|
-
**Intlayer**
|
|
23
|
+
**Intlayer** - это набор пакетов, разработанных специально для JavaScript-разработчиков. Он совместим с такими фреймворками, как React, React и Express.js.
|
|
24
24
|
|
|
25
|
-
Пакет **`@intlayer/design-system`**
|
|
25
|
+
Пакет **`@intlayer/design-system`** - это пакет NPM, включающий дизайн-систему Intlayer. Этот пакет особенно используется в [редакторе Intlayer](https://github.com/aymericzip/intlayer/tree/main/docs/ru/packages/intlayer-editor/index.md), на [веб-сайте](https://intlayer.org) и в [Визуальном редакторе / CMS](https://intlayer.org/dashboard).
|
|
26
26
|
|
|
27
27
|
## Установка
|
|
28
28
|
|
|
@@ -20,9 +20,9 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# @intlayer/dictionary-entry: пакет NPM для получения словарей Intlayer
|
|
22
22
|
|
|
23
|
-
**Intlayer**
|
|
23
|
+
**Intlayer** - это набор пакетов, разработанных специально для JavaScript-разработчиков. Он совместим с такими фреймворками, как React, React и Express.js.
|
|
24
24
|
|
|
25
|
-
Пакет **`@intlayer/dictionary-entry`**
|
|
25
|
+
Пакет **`@intlayer/dictionary-entry`** - это пакет NPM, который возвращает только путь к записи словарей Intlayer. Поскольку поиск по файловой системе невозможен из браузера, использование сборщиков, таких как Webpack или Rollup, для получения пути к записям словарей невозможно. Этот пакет предназначен для использования с алиасами.
|
|
26
26
|
|
|
27
27
|
## Установка
|
|
28
28
|
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# @intlayer/editor: Пакет NPM, предоставляющий утилиты для взаимодействия приложения с редактором Intlayer и управления словарями
|
|
22
22
|
|
|
23
|
-
**Intlayer**
|
|
23
|
+
**Intlayer** - это набор пакетов, разработанных специально для JavaScript-разработчиков. Он совместим с такими фреймворками, как React, Next.js и Express.js.
|
|
24
24
|
|
|
25
25
|
Пакет **`intlayer-editor`** предоставляет утилиты для взаимодействия приложения с редактором Intlayer. Включает API для взаимодействия с редактором и утилиты для управления словарями. Этот пакет кроссплатформенный.
|
|
26
26
|
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# @intlayer/editor-react: пакет NPM, предоставляющий состояния, контексты, хуки и компоненты React для взаимодействия с редактором Intlayer
|
|
22
22
|
|
|
23
|
-
**Intlayer**
|
|
23
|
+
**Intlayer** - это набор пакетов, разработанных специально для JavaScript-разработчиков. Он совместим с такими фреймворками, как React, Next.js и Express.js.
|
|
24
24
|
|
|
25
25
|
Пакет **`@intlayer/editor-react`** предоставляет состояния, контексты, хуки и компоненты для взаимодействия с редактором Intlayer в React-приложении.
|
|
26
26
|
|
|
@@ -20,7 +20,7 @@ slugs:
|
|
|
20
20
|
|
|
21
21
|
# @intlayer/webpack: Пакет NPM для использования плагина Intlayer Webpack в вашем приложении
|
|
22
22
|
|
|
23
|
-
**Intlayer**
|
|
23
|
+
**Intlayer** - это набор пакетов, разработанных специально для JavaScript-разработчиков. Он совместим с такими фреймворками, как React, React и Express.js.
|
|
24
24
|
|
|
25
25
|
Пакет **`@intlayer/webpack`** используется для предоставления конфигурации Webpack, чтобы упростить работу с приложением на основе Webpack с Intlayer. Пакет также предоставляет плагин для добавления в существующее приложение Webpack.
|
|
26
26
|
|
|
@@ -18,7 +18,7 @@ slugs:
|
|
|
18
18
|
|
|
19
19
|
# angular-intlayer: NPM-пакет для интернационализации (i18n) Angular-приложения
|
|
20
20
|
|
|
21
|
-
**Intlayer**
|
|
21
|
+
**Intlayer** - это набор пакетов, разработанных специально для JavaScript-разработчиков. Он совместим с такими фреймворками, как Angular, Angular и Express.js.
|
|
22
22
|
|
|
23
23
|
**Пакет `angular-intlayer`** позволяет интернационализировать ваше Angular-приложение. Он предоставляет провайдеры контекста и хуки для интернационализации в Angular.
|
|
24
24
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
4
|
title: Документация пакета | express-intlayer
|
|
5
5
|
description: Узнайте, как использовать пакет express-intlayer
|
|
6
6
|
keywords:
|
|
@@ -19,7 +19,7 @@ slugs:
|
|
|
19
19
|
|
|
20
20
|
# express-intlayer: JavaScript-пакет для интернационализации (i18n) приложения на Express.js
|
|
21
21
|
|
|
22
|
-
**Intlayer**
|
|
22
|
+
**Intlayer** - это набор пакетов, разработанных специально для JavaScript-разработчиков. Он совместим с такими фреймворками, как React, Next.js и Express.js.
|
|
23
23
|
|
|
24
24
|
**Пакет `express-intlayer`** позволяет интернационализировать ваше приложение на Express.js. Он предоставляет middleware для определения предпочтительной локали пользователя и возвращает соответствующий словарь для этого пользователя.
|
|
25
25
|
|
|
@@ -48,7 +48,7 @@ t(translations: Record<string, string>): string;
|
|
|
48
48
|
|
|
49
49
|
### Параметры
|
|
50
50
|
|
|
51
|
-
- `translations`: Объект, где ключами являются коды локалей (например, `en`, `fr`, `es-MX`), а значениями
|
|
51
|
+
- `translations`: Объект, где ключами являются коды локалей (например, `en`, `fr`, `es-MX`), а значениями - соответствующие переведённые строки.
|
|
52
52
|
|
|
53
53
|
### Возвращает
|
|
54
54
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
4
|
title: Документация функции getEnumeration | intlayer
|
|
5
5
|
description: Узнайте, как использовать функцию getEnumeration для пакета intlayer
|
|
6
6
|
keywords:
|
|
@@ -29,13 +29,11 @@ slugs:
|
|
|
29
29
|
## Параметры
|
|
30
30
|
|
|
31
31
|
- `enumerationContent: QuantityContent<Content>`
|
|
32
|
-
|
|
33
|
-
- **Описание**: Объект, где ключи представляют условия (например, `<=`, `<`, `>=`, `=`), а значения — соответствующее содержимое. Порядок ключей определяет приоритет сопоставления.
|
|
32
|
+
- **Описание**: Объект, где ключи представляют условия (например, `<=`, `<`, `>=`, `=`), а значения - соответствующее содержимое. Порядок ключей определяет приоритет сопоставления.
|
|
34
33
|
- **Тип**: `QuantityContent<Content>`
|
|
35
34
|
- `Content` может быть любого типа.
|
|
36
35
|
|
|
37
36
|
- `quantity: number`
|
|
38
|
-
|
|
39
37
|
- **Описание**: Числовое значение, используемое для сопоставления с условиями в `enumerationContent`.
|
|
40
38
|
- **Тип**: `number`
|
|
41
39
|
|
|
@@ -141,15 +139,12 @@ console.log(content); // Вывод: "У вас меньше чем четыре
|
|
|
141
139
|
## Особые случаи
|
|
142
140
|
|
|
143
141
|
- **Отсутствие подходящего условия:**
|
|
144
|
-
|
|
145
142
|
- Если ни одно условие не соответствует заданному количеству, функция либо вернёт `undefined`, либо явно обработает сценарий по умолчанию/резервный вариант.
|
|
146
143
|
|
|
147
144
|
- **Двусмысленные условия:**
|
|
148
|
-
|
|
149
145
|
- Если условия перекрываются, приоритет имеет первое подходящее условие (на основе порядка в объекте).
|
|
150
146
|
|
|
151
147
|
- **Неверные ключи:**
|
|
152
|
-
|
|
153
148
|
- Функция предполагает, что все ключи в `enumerationContent` являются допустимыми и могут быть разобраны как условия. Недопустимые или неправильно отформатированные ключи могут привести к непредсказуемому поведению.
|
|
154
149
|
|
|
155
150
|
- **Проверка TypeScript:**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
4
|
title: Документация функции getTranslation | intlayer
|
|
5
5
|
description: Узнайте, как использовать функцию getTranslation для пакета intlayer
|
|
6
6
|
keywords:
|
|
@@ -29,13 +29,11 @@ slugs:
|
|
|
29
29
|
## Параметры
|
|
30
30
|
|
|
31
31
|
- `languageContent: CustomizableLanguageContent<Content>`
|
|
32
|
-
|
|
33
|
-
- **Описание**: Объект, содержащий переводы для различных локалей. Каждый ключ представляет локаль, а значение — соответствующее содержимое.
|
|
32
|
+
- **Описание**: Объект, содержащий переводы для различных локалей. Каждый ключ представляет локаль, а значение - соответствующее содержимое.
|
|
34
33
|
- **Тип**: `CustomizableLanguageContent<Content>`
|
|
35
34
|
- `Content` может быть любого типа, по умолчанию `string`.
|
|
36
35
|
|
|
37
36
|
- `locale: Locales`
|
|
38
|
-
|
|
39
37
|
- **Описание**: Локаль, для которой необходимо получить содержимое.
|
|
40
38
|
- **Тип**: `Locales`
|
|
41
39
|
|
|
@@ -28,13 +28,11 @@ slugs:
|
|
|
28
28
|
## Параметры
|
|
29
29
|
|
|
30
30
|
- `languageContent: CustomizableLanguageContent<Content>`
|
|
31
|
-
|
|
32
|
-
- **Описание**: Объект, содержащий переводы для различных локалей. Каждый ключ представляет локаль, а значение — соответствующий контент.
|
|
31
|
+
- **Описание**: Объект, содержащий переводы для различных локалей. Каждый ключ представляет локаль, а значение - соответствующий контент.
|
|
33
32
|
- **Тип**: `CustomizableLanguageContent<Content>`
|
|
34
33
|
- `Content` может быть любого типа, по умолчанию `string`.
|
|
35
34
|
|
|
36
35
|
- `locale: Locales`
|
|
37
|
-
|
|
38
36
|
- **Описание**: Локаль, для которой необходимо получить контент.
|
|
39
37
|
- **Тип**: `Locales`
|
|
40
38
|
|