@intlayer/docs 7.5.12 → 7.5.14
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/per-component_vs_centralized_i18n.md +248 -0
- package/blog/de/per-component_vs_centralized_i18n.md +248 -0
- package/blog/en/_per-component_vs_centralized_i18n.md +252 -0
- package/blog/en/per-component_vs_centralized_i18n.md +248 -0
- package/blog/en-GB/per-component_vs_centralized_i18n.md +247 -0
- package/blog/es/per-component_vs_centralized_i18n.md +245 -0
- package/blog/fr/per-component_vs_centralized_i18n.md +245 -0
- package/blog/hi/per-component_vs_centralized_i18n.md +249 -0
- package/blog/id/per-component_vs_centralized_i18n.md +248 -0
- package/blog/it/per-component_vs_centralized_i18n.md +247 -0
- package/blog/ja/per-component_vs_centralized_i18n.md +247 -0
- package/blog/ko/per-component_vs_centralized_i18n.md +246 -0
- package/blog/pl/per-component_vs_centralized_i18n.md +247 -0
- package/blog/pt/per-component_vs_centralized_i18n.md +246 -0
- package/blog/ru/per-component_vs_centralized_i18n.md +251 -0
- package/blog/tr/per-component_vs_centralized_i18n.md +244 -0
- package/blog/uk/compiler_vs_declarative_i18n.md +224 -0
- package/blog/uk/i18n_using_next-i18next.md +1086 -0
- package/blog/uk/i18n_using_next-intl.md +760 -0
- package/blog/uk/index.md +69 -0
- package/blog/uk/internationalization_and_SEO.md +273 -0
- package/blog/uk/intlayer_with_i18next.md +211 -0
- package/blog/uk/intlayer_with_next-i18next.md +202 -0
- package/blog/uk/intlayer_with_next-intl.md +203 -0
- package/blog/uk/intlayer_with_react-i18next.md +200 -0
- package/blog/uk/intlayer_with_react-intl.md +202 -0
- package/blog/uk/intlayer_with_vue-i18n.md +206 -0
- package/blog/uk/l10n_platform_alternative/Lokalise.md +80 -0
- package/blog/uk/l10n_platform_alternative/crowdin.md +80 -0
- package/blog/uk/l10n_platform_alternative/phrase.md +78 -0
- package/blog/uk/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/uk/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/uk/list_i18n_technologies/CMS/wordpress.md +189 -0
- package/blog/uk/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/uk/list_i18n_technologies/frameworks/flutter.md +128 -0
- package/blog/uk/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/uk/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/uk/list_i18n_technologies/frameworks/svelte.md +145 -0
- package/blog/uk/list_i18n_technologies/frameworks/vue.md +144 -0
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1499 -0
- package/blog/uk/nextjs-multilingual-seo-comparison.md +360 -0
- package/blog/uk/per-component_vs_centralized_i18n.md +248 -0
- package/blog/uk/rag_powered_documentation_assistant.md +288 -0
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
- package/blog/uk/vue-i18n_vs_intlayer.md +279 -0
- package/blog/uk/what_is_internationalization.md +167 -0
- package/blog/vi/per-component_vs_centralized_i18n.md +246 -0
- package/blog/zh/per-component_vs_centralized_i18n.md +248 -0
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +20 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +20 -0
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +20 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +20 -0
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.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/frequentQuestions.entry.d.ts +1 -0
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/docs/ar/configuration.md +6 -1
- package/docs/ar/dictionary/content_file.md +6 -1
- package/docs/de/configuration.md +6 -1
- package/docs/de/dictionary/content_file.md +6 -1
- package/docs/en/configuration.md +6 -1
- package/docs/en/dictionary/content_file.md +6 -1
- package/docs/en-GB/configuration.md +6 -1
- package/docs/en-GB/dictionary/content_file.md +3 -1
- package/docs/es/configuration.md +6 -1
- package/docs/es/dictionary/content_file.md +6 -1
- package/docs/fr/configuration.md +6 -1
- package/docs/fr/dictionary/content_file.md +3 -1
- package/docs/hi/configuration.md +6 -1
- package/docs/hi/dictionary/content_file.md +3 -1
- package/docs/id/configuration.md +6 -1
- package/docs/id/dictionary/content_file.md +3 -1
- package/docs/it/configuration.md +6 -1
- package/docs/it/dictionary/content_file.md +3 -1
- package/docs/ja/configuration.md +6 -1
- package/docs/ja/dictionary/content_file.md +3 -1
- package/docs/ko/configuration.md +6 -1
- package/docs/ko/dictionary/content_file.md +3 -1
- package/docs/pl/configuration.md +3 -1
- package/docs/pl/dictionary/content_file.md +3 -1
- package/docs/pt/configuration.md +6 -1
- package/docs/pt/dictionary/content_file.md +3 -1
- package/docs/ru/configuration.md +6 -1
- package/docs/ru/dictionary/content_file.md +6 -1
- package/docs/tr/configuration.md +6 -1
- package/docs/tr/dictionary/content_file.md +3 -1
- package/docs/uk/CI_CD.md +198 -0
- package/docs/uk/autoFill.md +307 -0
- package/docs/uk/bundle_optimization.md +185 -0
- package/docs/uk/cli/build.md +64 -0
- package/docs/uk/cli/ci.md +137 -0
- package/docs/uk/cli/configuration.md +63 -0
- package/docs/uk/cli/debug.md +46 -0
- package/docs/uk/cli/doc-review.md +43 -0
- package/docs/uk/cli/doc-translate.md +132 -0
- package/docs/uk/cli/editor.md +28 -0
- package/docs/uk/cli/fill.md +130 -0
- package/docs/uk/cli/index.md +190 -0
- package/docs/uk/cli/init.md +84 -0
- package/docs/uk/cli/list.md +90 -0
- package/docs/uk/cli/list_projects.md +128 -0
- package/docs/uk/cli/live.md +41 -0
- package/docs/uk/cli/login.md +157 -0
- package/docs/uk/cli/pull.md +78 -0
- package/docs/uk/cli/push.md +98 -0
- package/docs/uk/cli/sdk.md +71 -0
- package/docs/uk/cli/test.md +76 -0
- package/docs/uk/cli/transform.md +65 -0
- package/docs/uk/cli/version.md +24 -0
- package/docs/uk/cli/watch.md +37 -0
- package/docs/uk/configuration.md +742 -0
- package/docs/uk/dictionary/condition.md +237 -0
- package/docs/uk/dictionary/content_file.md +1134 -0
- package/docs/uk/dictionary/enumeration.md +245 -0
- package/docs/uk/dictionary/file.md +232 -0
- package/docs/uk/dictionary/function_fetching.md +212 -0
- package/docs/uk/dictionary/gender.md +273 -0
- package/docs/uk/dictionary/insertion.md +187 -0
- package/docs/uk/dictionary/markdown.md +383 -0
- package/docs/uk/dictionary/nesting.md +273 -0
- package/docs/uk/dictionary/translation.md +332 -0
- package/docs/uk/formatters.md +595 -0
- package/docs/uk/how_works_intlayer.md +256 -0
- package/docs/uk/index.md +175 -0
- package/docs/uk/interest_of_intlayer.md +297 -0
- package/docs/uk/intlayer_CMS.md +569 -0
- package/docs/uk/intlayer_visual_editor.md +292 -0
- package/docs/uk/intlayer_with_angular.md +710 -0
- package/docs/uk/intlayer_with_astro.md +256 -0
- package/docs/uk/intlayer_with_create_react_app.md +1258 -0
- package/docs/uk/intlayer_with_express.md +429 -0
- package/docs/uk/intlayer_with_fastify.md +446 -0
- package/docs/uk/intlayer_with_lynx+react.md +548 -0
- package/docs/uk/intlayer_with_nestjs.md +283 -0
- package/docs/uk/intlayer_with_next-i18next.md +640 -0
- package/docs/uk/intlayer_with_next-intl.md +456 -0
- package/docs/uk/intlayer_with_nextjs_page_router.md +1541 -0
- package/docs/uk/intlayer_with_nuxt.md +711 -0
- package/docs/uk/intlayer_with_react_router_v7.md +600 -0
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +669 -0
- package/docs/uk/intlayer_with_svelte_kit.md +579 -0
- package/docs/uk/intlayer_with_tanstack.md +818 -0
- package/docs/uk/intlayer_with_vite+preact.md +1748 -0
- package/docs/uk/intlayer_with_vite+react.md +1449 -0
- package/docs/uk/intlayer_with_vite+solid.md +302 -0
- package/docs/uk/intlayer_with_vite+svelte.md +520 -0
- package/docs/uk/intlayer_with_vite+vue.md +1113 -0
- package/docs/uk/introduction.md +222 -0
- package/docs/uk/locale_mapper.md +242 -0
- package/docs/uk/mcp_server.md +211 -0
- package/docs/uk/packages/express-intlayer/t.md +465 -0
- package/docs/uk/packages/intlayer/getEnumeration.md +159 -0
- package/docs/uk/packages/intlayer/getHTMLTextDir.md +121 -0
- package/docs/uk/packages/intlayer/getLocaleLang.md +81 -0
- package/docs/uk/packages/intlayer/getLocaleName.md +135 -0
- package/docs/uk/packages/intlayer/getLocalizedUrl.md +338 -0
- package/docs/uk/packages/intlayer/getMultilingualUrls.md +359 -0
- package/docs/uk/packages/intlayer/getPathWithoutLocale.md +75 -0
- package/docs/uk/packages/intlayer/getPrefix.md +213 -0
- package/docs/uk/packages/intlayer/getTranslation.md +190 -0
- package/docs/uk/packages/intlayer/getTranslationContent.md +189 -0
- package/docs/uk/packages/next-intlayer/t.md +365 -0
- package/docs/uk/packages/next-intlayer/useDictionary.md +276 -0
- package/docs/uk/packages/next-intlayer/useIntlayer.md +263 -0
- package/docs/uk/packages/next-intlayer/useLocale.md +166 -0
- package/docs/uk/packages/react-intlayer/t.md +311 -0
- package/docs/uk/packages/react-intlayer/useDictionary.md +295 -0
- package/docs/uk/packages/react-intlayer/useI18n.md +250 -0
- package/docs/uk/packages/react-intlayer/useIntlayer.md +251 -0
- package/docs/uk/packages/react-intlayer/useLocale.md +210 -0
- package/docs/uk/per_locale_file.md +345 -0
- package/docs/uk/plugins/sync-json.md +398 -0
- package/docs/uk/readme.md +265 -0
- package/docs/uk/releases/v6.md +305 -0
- package/docs/uk/releases/v7.md +624 -0
- package/docs/uk/roadmap.md +346 -0
- package/docs/uk/testing.md +204 -0
- package/docs/vi/configuration.md +6 -1
- package/docs/vi/dictionary/content_file.md +6 -1
- package/docs/zh/configuration.md +6 -1
- package/docs/zh/dictionary/content_file.md +6 -1
- package/frequent_questions/ar/error-vite-env-only.md +77 -0
- package/frequent_questions/de/error-vite-env-only.md +77 -0
- package/frequent_questions/en/error-vite-env-only.md +77 -0
- package/frequent_questions/en-GB/error-vite-env-only.md +77 -0
- package/frequent_questions/es/error-vite-env-only.md +76 -0
- package/frequent_questions/fr/error-vite-env-only.md +77 -0
- package/frequent_questions/hi/error-vite-env-only.md +77 -0
- package/frequent_questions/id/error-vite-env-only.md +77 -0
- package/frequent_questions/it/error-vite-env-only.md +77 -0
- package/frequent_questions/ja/error-vite-env-only.md +77 -0
- package/frequent_questions/ko/error-vite-env-only.md +77 -0
- package/frequent_questions/pl/error-vite-env-only.md +77 -0
- package/frequent_questions/pt/error-vite-env-only.md +77 -0
- package/frequent_questions/ru/error-vite-env-only.md +77 -0
- package/frequent_questions/tr/error-vite-env-only.md +77 -0
- package/frequent_questions/uk/SSR_Next_no_[locale].md +104 -0
- package/frequent_questions/uk/array_as_content_declaration.md +72 -0
- package/frequent_questions/uk/build_dictionaries.md +58 -0
- package/frequent_questions/uk/build_error_CI_CD.md +74 -0
- package/frequent_questions/uk/bun_set_up.md +53 -0
- package/frequent_questions/uk/customized_locale_list.md +64 -0
- package/frequent_questions/uk/domain_routing.md +113 -0
- package/frequent_questions/uk/error-vite-env-only.md +77 -0
- package/frequent_questions/uk/esbuild_error.md +29 -0
- package/frequent_questions/uk/get_locale_cookie.md +142 -0
- package/frequent_questions/uk/intlayer_command_undefined.md +155 -0
- package/frequent_questions/uk/locale_incorect_in_url.md +73 -0
- package/frequent_questions/uk/package_version_error.md +181 -0
- package/frequent_questions/uk/static_rendering.md +44 -0
- package/frequent_questions/uk/translated_path_url.md +55 -0
- package/frequent_questions/uk/unknown_command.md +97 -0
- package/frequent_questions/vi/error-vite-env-only.md +77 -0
- package/frequent_questions/zh/error-vite-env-only.md +77 -0
- package/legal/uk/privacy_notice.md +83 -0
- package/legal/uk/terms_of_service.md +55 -0
- package/package.json +9 -9
- package/src/generated/blog.entry.ts +20 -0
- package/src/generated/frequentQuestions.entry.ts +20 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://intlayer.org">
|
|
3
|
+
<img src="https://raw.githubusercontent.com/aymericzip/intlayer/main/docs/assets/cover.png" width="60%" alt="Логотип Intlayer" />
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<h1 align="center">
|
|
8
|
+
<strong> Intlayer : Open-source, гнучкий i18n toolkit з AI-підтримуваним перекладом та CMS.</strong>
|
|
9
|
+
</h1>
|
|
10
|
+
|
|
11
|
+
<br />
|
|
12
|
+
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://intlayer.org/doc/concept/content">Документація</a> •
|
|
15
|
+
<a href="https://intlayer.org/doc/environment/nextjs">Next.js</a> •
|
|
16
|
+
<a href="https://intlayer.org/doc/environment/vite-and-react">React + Vite</a> •
|
|
17
|
+
<a href="https://intlayer.org/doc/concept/cms">CMS</a> •
|
|
18
|
+
<a href="https://discord.gg/7uxamYVeCk">Discord</a>
|
|
19
|
+
</p>
|
|
20
|
+
<p align="center" style="margin-top:15px;">
|
|
21
|
+
<a href="https://www.npmjs.com/package/intlayer" target="_blank"><img src="https://img.shields.io/npm/v/intlayer?style=for-the-badge&labelColor=FFFFFF&color=000000&logoColor=FFFFFF&cacheSeconds=86400" alt="Версія npm" height="24"/>
|
|
22
|
+
</a>
|
|
23
|
+
<a href="https://github.com/aymericzip/intlayer/stargazers" target="_blank"><img src="https://img.shields.io/github/stars/aymericzip/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logo=github&logoColor=FFD700&cacheSeconds=86400" alt="Зірки GitHub" height="24"/>
|
|
24
|
+
</a>
|
|
25
|
+
<a href="https://www.npmjs.org/package/intlayer" target="_blank"><img src="https://img.shields.io/npm/dm/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000&cacheSeconds=86400" alt="Щомісячні завантаження" height="24"/>
|
|
26
|
+
</a>
|
|
27
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/LICENSE"><img src="https://img.shields.io/github/license/aymericzip/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000&cacheSeconds=86400" alt="Ліцензія"/>
|
|
28
|
+
</a>
|
|
29
|
+
<a href="https://github.com/aymericzip/intlayer/commits/main"><img src="https://img.shields.io/github/last-commit/aymericzip/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000&cacheSeconds=86400" alt="останній коміт"/>
|
|
30
|
+
</a>
|
|
31
|
+
</p>
|
|
32
|
+
|
|
33
|
+
<!-- новий рядок для перевірки healthcheck -->
|
|
34
|
+
|
|
35
|
+

|
|
36
|
+
|
|
37
|
+
<a href="https://intlayer.org/doc/concept/content">
|
|
38
|
+
<img src="https://img.shields.io/badge/Get_Started-FFFFFF?style=for-the-badge&logo=rocket&logoColor=black" />
|
|
39
|
+
</a>
|
|
40
|
+
|
|
41
|
+
## Що таке Intlayer?
|
|
42
|
+
|
|
43
|
+
Більшість бібліотек для i18n занадто складні, занадто жорсткі або не створені для сучасних фреймворків.
|
|
44
|
+
|
|
45
|
+
Intlayer — це **сучасне рішення для i18n** для веб- та мобільних застосунків.
|
|
46
|
+
Воно незалежне від фреймворку, **AI-powered**, і включає безкоштовний **CMS та візуальний редактор**.
|
|
47
|
+
|
|
48
|
+
Завдяки **файлам контенту для кожної локалі**, **автодоповненню TypeScript**, **tree-shakable словникам** та **інтеграції CI/CD**, Intlayer робить інтернаціоналізацію **швидшою, чистішою та розумнішою**.
|
|
49
|
+
|
|
50
|
+
## Ключові переваги Intlayer:
|
|
51
|
+
|
|
52
|
+
| Особливість | Опис |
|
|
53
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
54
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **Підтримка кількох фреймворків**<br><br>Intlayer сумісний з усіма основними фреймворками та бібліотеками, включно з Next.js, React, Vite, Vue.js, Nuxt, Preact, Express та іншими. |
|
|
55
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Особливість" width="700"> | **Керування контентом за допомогою JavaScript**<br><br>Використовуйте гнучкість JavaScript, щоб ефективно визначати та керувати своїм контентом. <br><br> - [Оголошення контенту](https://intlayer.org/doc/concept/content) |
|
|
56
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Особливість" width="700"> | **Файл декларації контенту для кожної локалі**<br><br>Прискорте розробку, задекларувавши ваш контент лише один раз перед автоматичною генерацією.<br><br> - [Файл декларації контенту для кожної локалі](https://intlayer.org/doc/concept/per-locale-file) |
|
|
57
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Функція" width="700"> | **Типобезпечне середовище**<br><br>Використовуйте TypeScript, щоб гарантувати, що ваші визначення контенту та код позбавлені помилок, а також отримувати автозаповнення в IDE.<br><br> - [Налаштування TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
58
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Функція" width="700"> | **Спрощене налаштування**<br><br>Швидко запустіть проект з мінімальною конфігурацією. Легко налаштовуйте параметри інтернаціоналізації, маршрутизації, AI, збірки та обробки контенту. <br><br> - [Дізнайтеся про інтеграцію Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
59
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Особливість" width="700"> | **Спрощене отримання контенту**<br><br>Не потрібно викликати вашу функцію `t` для кожного фрагмента контенту. Отримуйте весь контент безпосередньо за допомогою одного hook.<br><br> - [Інтеграція з React](https://intlayer.org/doc/environment/create-react-app) |
|
|
60
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **Послідовна реалізація серверних компонентів**<br><br>Ідеально підходить для серверних компонентів Next.js: використовуйте одну й ту саму реалізацію як для клієнтських, так і для серверних компонентів — немає потреби передавати вашу функцію `t` через кожний серверний компонент. <br><br> - [Серверні компоненти](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
61
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Функція" width="700"> | **Організована codebase**<br><br>Тримайте свій codebase більш організованим: 1 компонент = 1 словник у тій самій папці. Переклади поруч із відповідними компонентами підвищують підтримуваність і зрозумілість. <br><br> - [Як працює Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
62
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Функція" width="700"> | **Покращена маршрутизація**<br><br>Повна підтримка маршрутизації застосунків, що безшовно адаптується до складних структур додатків для Next.js, React, Vite, Vue.js тощо.<br><br> - [Дізнатися про інтеграцію з Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
63
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Функція" width="700"> | **Підтримка Markdown**<br><br>Імпортуйте та інтерпретуйте локалізовані файли і віддалений Markdown для багатомовного контенту, такого як політики конфіденційності, документація тощо. Інтерпретуйте та робіть метадані Markdown доступними у вашому коді.<br><br> - [Файли контенту](https://intlayer.org/doc/concept/content/file) |
|
|
64
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Функція" width="700"> | **Безкоштовний візуальний редактор та CMS**<br><br>Для авторів контенту доступні безкоштовний візуальний редактор та CMS, що усуває потребу в окремій платформі локалізації. Підтримуйте синхронізацію контенту за допомогою Git або зовнішньо розміщуйте його повністю чи частково через CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
|
|
65
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **Tree-shakable контент**<br><br>Tree-shakable контент, що зменшує розмір фінального бандла. Завантажує контент на рівні компонента, виключаючи будь-який невикористаний контент із вашого бандла. Підтримує lazy loading для підвищення ефективності завантаження застосунку. <br><br> - [Оптимізація збірки додатка](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
66
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **Статичний рендеринг**<br><br>Не блокує статичний рендеринг. <br><br> - [Інтеграція з Next.js](https://intlayer.org/doc/uk/environment/nextjs) |
|
|
67
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Особливість" width="700"> | **AI-оптимізований переклад**<br><br>Перетворіть свій вебсайт на 231 мову всього за один клік, використовуючи розширені AI-інструменти перекладу Intlayer з вашим власним постачальником AI / ключем API. <br><br> - [Інтеграція CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Автозаповнення](https://intlayer.org/doc/concept/auto-fill) |
|
|
68
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Функція" width="700"> | **Інтеграція сервера MCP**<br><br>Надає сервер MCP (Model Context Protocol) для автоматизації IDE, що дозволяє безперешкодне керування контентом та i18n-робочі процеси безпосередньо у вашому середовищі розробки. <br><br> - [Сервер MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/mcp_server.md) |
|
|
69
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Функція" width="700"> | **Розширення для VSCode**<br><br>Intlayer надає розширення для VSCode, яке допомагає керувати вашим контентом та перекладами, створювати словники, перекладати ваш контент та інше. <br><br> - [Розширення для VSCode](https://intlayer.org/doc/vs-code-extension) |
|
|
70
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Функція" width="700"> | **Сумісність**<br><br>Забезпечує сумісність з react-i18next, next-i18next, next-intl та react-intl. <br><br> - [Intlayer і react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer і next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer і next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 📦 Встановлення
|
|
75
|
+
|
|
76
|
+
Почніть свою подорож з Intlayer сьогодні та відчуйте більш плавний і потужний підхід до інтернаціоналізації.
|
|
77
|
+
|
|
78
|
+
<a href="https://intlayer.org/doc/concept/content">
|
|
79
|
+
<img src="https://img.shields.io/badge/Get_Started-FFFFFF?style=for-the-badge&logo=rocket&logoColor=black" />
|
|
80
|
+
</a>
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npm install intlayer react-intlayer
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
⚡ Швидкий старт (Next.js)
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
// intlayer.config.ts
|
|
90
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
91
|
+
|
|
92
|
+
const config: IntlayerConfig = {
|
|
93
|
+
internationalization: {
|
|
94
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
95
|
+
defaultLocale: Locales.ENGLISH,
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export default config;
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
```tsx
|
|
103
|
+
// app/page.tsx
|
|
104
|
+
import { useIntlayer } from "react-intlayer";
|
|
105
|
+
|
|
106
|
+
const Component = () => {
|
|
107
|
+
const { title } = useIntlayer("home");
|
|
108
|
+
|
|
109
|
+
return <h1>{title}</h1>;
|
|
110
|
+
};
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
<a href="https://intlayer.org/doc/environment/nextjs"> Отримайте повне керівництво → </a>
|
|
114
|
+
|
|
115
|
+
## 🎥 Відеоурок на YouTube
|
|
116
|
+
|
|
117
|
+
[](https://youtu.be/e_PPG7PTqGU?si=GyU_KpVhr61razRw)
|
|
118
|
+
|
|
119
|
+
<a href="https://intlayer.org/doc/concept/content">
|
|
120
|
+
<img src="https://img.shields.io/badge/Get_Started-FFFFFF?style=for-the-badge&logo=rocket&logoColor=black" />
|
|
121
|
+
</a>
|
|
122
|
+
|
|
123
|
+
## Зміст
|
|
124
|
+
|
|
125
|
+
Ознайомтеся з повною документацією, щоб почати працювати з Intlayer та дізнатися, як інтегрувати його у ваші проєкти.
|
|
126
|
+
|
|
127
|
+
<details open>
|
|
128
|
+
<summary style="font-size:16px; font-weight:bold;">📘 Початок роботи</summary>
|
|
129
|
+
<ul>
|
|
130
|
+
<li><a href="https://intlayer.org/doc/why">Чому Intlayer?</a></li>
|
|
131
|
+
<li><a href="https://intlayer.org/doc">Вступ</a></li>
|
|
132
|
+
</ul>
|
|
133
|
+
</details>
|
|
134
|
+
|
|
135
|
+
<details>
|
|
136
|
+
<summary style="font-size:16px; font-weight:bold;">⚙️ Концепція</summary>
|
|
137
|
+
<ul>
|
|
138
|
+
<li><a href="https://intlayer.org/doc/concept/how-works-intlayer">Як працює Intlayer</a></li>
|
|
139
|
+
<li><a href="https://intlayer.org/doc/concept/configuration">Конфігурація</a></li>
|
|
140
|
+
<li><a href="https://intlayer.org/doc/concept/ai">AI-провайдер</a></li>
|
|
141
|
+
<li><a href="https://intlayer.org/doc/concept/cli">Intlayer CLI</a></li>
|
|
142
|
+
<li><a href="https://intlayer.org/doc/concept/editor">Intlayer Editor</a></li>
|
|
143
|
+
<li><a href="https://intlayer.org/doc/concept/cms">Intlayer CMS</a></li>
|
|
144
|
+
<li><a href="https://intlayer.org/doc/concept/content">Словник</a>
|
|
145
|
+
<ul>
|
|
146
|
+
<li><a href="https://intlayer.org/doc/concept/content/per-locale-file">Файл декларації контенту для кожної локалі</a></li>
|
|
147
|
+
<li><a href="https://intlayer.org/doc/concept/content/translation">Переклад</a></li>
|
|
148
|
+
<li><a href="https://intlayer.org/doc/concept/content/enumeration">Перелічення</a></li>
|
|
149
|
+
<li><a href="https://intlayer.org/doc/concept/content/condition">Умова</a></li>
|
|
150
|
+
<li><a href="https://intlayer.org/doc/concept/content/nesting">Вкладення</a></li>
|
|
151
|
+
<li><a href="https://intlayer.org/doc/concept/content/markdown">Markdown</a></li>
|
|
152
|
+
<li><a href="https://intlayer.org/doc/concept/content/function-fetching">Отримання через функцію</a></li>
|
|
153
|
+
<li><a href="https://intlayer.org/doc/concept/content/insertion">Вставка</a></li>
|
|
154
|
+
<li><a href="https://intlayer.org/doc/concept/content/file">Файл</a></li>
|
|
155
|
+
</ul>
|
|
156
|
+
</li>
|
|
157
|
+
</ul>
|
|
158
|
+
</details>
|
|
159
|
+
|
|
160
|
+
<details open>
|
|
161
|
+
<summary style="font-size:16px; font-weight:bold;">🌐 Середовище</summary>
|
|
162
|
+
<ul>
|
|
163
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs">Intlayer з Next.js 15</a>
|
|
164
|
+
<ul>
|
|
165
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs/14">Next.js 14 (App Router)</a></li>
|
|
166
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs/next-with-Page-Router">Next.js Page Router</a></li>
|
|
167
|
+
</ul>
|
|
168
|
+
</li>
|
|
169
|
+
<li><a href="https://intlayer.org/doc/environment/create-react-app">React CRA</a></li>
|
|
170
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-react">Vite + React</a>
|
|
171
|
+
<ul>
|
|
172
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-react/react-router-v7">React-router-v7</a></li>
|
|
173
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-react/tanstack-start">Початок з TanStack</a></li>
|
|
174
|
+
</ul>
|
|
175
|
+
</li>
|
|
176
|
+
<li><a href="https://intlayer.org/doc/environment/react-native-and-expo">React Native</a></li>
|
|
177
|
+
<li><a href="https://intlayer.org/doc/environment/lynx-and-react">Lynx + React</a></li>
|
|
178
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-svelte">Vite + Svelte</a></li>
|
|
179
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-preact">Vite + Preact</a></li>
|
|
180
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-vue">Vite + Vue</a></li>
|
|
181
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-nuxt">Vite + Nuxt</a></li>
|
|
182
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-solid">Vite + Solid</a></li>
|
|
183
|
+
<li><a href="https://intlayer.org/doc/environment/angular">Angular</a></li>
|
|
184
|
+
<li><a href="https://intlayer.org/doc/environment/express">Express</a></li>
|
|
185
|
+
<li><a href="https://intlayer.org/doc/environment/nest">NestJS</a></li>
|
|
186
|
+
</ul>
|
|
187
|
+
</details>
|
|
188
|
+
|
|
189
|
+
<details>
|
|
190
|
+
<summary style="font-size:16px; font-weight:bold;">📰 Блог</summary>
|
|
191
|
+
<ul>
|
|
192
|
+
<li><a href="https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/what_is_internationalization.md">Що таке i18n</a></li>
|
|
193
|
+
<li><a href="https://intlayer.org/blog/SEO-and-i18n">i18n та SEO</a></li>
|
|
194
|
+
<li><a href="https://intlayer.org/blog/intlayer-with-next-i18next">Intlayer та i18next</a></li>
|
|
195
|
+
<li><a href="https://intlayer.org/blog/intlayer-with-react-i18next">Intlayer та react-intl</a></li>
|
|
196
|
+
<li><a href="https://intlayer.org/blog/intlayer-with-next-intl">Intlayer і next-intl</a></li>
|
|
197
|
+
</ul>
|
|
198
|
+
</details>
|
|
199
|
+
|
|
200
|
+
## 🌐 Readme іншими мовами
|
|
201
|
+
|
|
202
|
+
[Англійська](https://github.com/aymericzip/intlayer/blob/main/readme.md) •
|
|
203
|
+
[Спрощена китайська](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/readme.md) •
|
|
204
|
+
[Російська](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/readme.md) •
|
|
205
|
+
[Японська](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/readme.md) •
|
|
206
|
+
[Французька](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/readme.md) •
|
|
207
|
+
[Корейська](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/readme.md) •
|
|
208
|
+
[Іспанська](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/readme.md) •
|
|
209
|
+
[Німецька](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/readme.md) •
|
|
210
|
+
[Арабська](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/readme.md) •
|
|
211
|
+
[Італійська](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/readme.md) •
|
|
212
|
+
[Англійська (Велика Британія)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/readme.md) •
|
|
213
|
+
[Португальська](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/readme.md) •
|
|
214
|
+
[Гінді](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/readme.md)
|
|
215
|
+
[Турецька](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/readme.md)
|
|
216
|
+
|
|
217
|
+
## 🤝 Спільнота
|
|
218
|
+
|
|
219
|
+
Intlayer створено спільнотою і для спільноти — нам дуже важлива ваша думка!
|
|
220
|
+
|
|
221
|
+
- Маєте пропозицію? [Відкрийте issue](https://github.com/aymericzip/intlayer/issues)
|
|
222
|
+
- Знайшли помилку або маєте пропозицію щодо покращення? [Надішліть PR](https://github.com/aymericzip/intlayer/pulls)
|
|
223
|
+
- Потрібна допомога або хочете зв'язатися? [Приєднатися до нашого Discord](https://discord.gg/7uxamYVeCk)
|
|
224
|
+
|
|
225
|
+
Ви також можете стежити за нами на:
|
|
226
|
+
|
|
227
|
+
<div>
|
|
228
|
+
<br/>
|
|
229
|
+
<p align="center">
|
|
230
|
+
<a href="https://discord.gg/528mBV4N" target="blank"><img align="center"
|
|
231
|
+
src="https://img.shields.io/badge/discord-5865F2.svg?style=for-the-badge&logo=discord&logoColor=white"
|
|
232
|
+
alt="Intlayer у Discord" height="30"/></a>
|
|
233
|
+
<a href="https://www.linkedin.com/company/intlayerorg" target="blank"><img align="center"
|
|
234
|
+
src="https://img.shields.io/badge/linkedin-%231DA1F2.svg?style=for-the-badge&logo=linkedin&logoColor=white"
|
|
235
|
+
alt="Intlayer на LinkedIn" height="30"/></a>
|
|
236
|
+
<a href="https://www.facebook.com/intlayer" target="blank"><img align="center"
|
|
237
|
+
src="https://img.shields.io/badge/facebook-4267B2.svg?style=for-the-badge&logo=facebook&logoColor=white"
|
|
238
|
+
alt="Intlayer у Facebook" height="30"/></a>
|
|
239
|
+
<a href="https://www.instagram.com/intlayer/" target="blank"><img align="center"
|
|
240
|
+
src="https://img.shields.io/badge/instagram-%23E4405F.svg?style=for-the-badge&logo=Instagram&logoColor=white"
|
|
241
|
+
alt="Intlayer в Instagram" height="30"/></a>
|
|
242
|
+
<a href="https://x.com/Intlayer183096" target="blank"><img align="center"
|
|
243
|
+
src="https://img.shields.io/badge/x-1DA1F2.svg?style=for-the-badge&logo=x&logoColor=white"
|
|
244
|
+
alt="Intlayer у X" height="30"/></a>
|
|
245
|
+
<a href="https://www.youtube.com/@intlayer" target="blank"><img align="center"
|
|
246
|
+
src="https://img.shields.io/badge/youtube-FF0000.svg?style=for-the-badge&logo=youtube&logoColor=white"
|
|
247
|
+
alt="Intlayer на YouTube" height="30"/></a>
|
|
248
|
+
<a href="https://www.tiktok.com/@intlayer" target="blank"><img align="center"
|
|
249
|
+
src="https://img.shields.io/badge/tiktok-000000.svg?style=for-the-badge&logo=tiktok&logoColor=white"
|
|
250
|
+
alt="Intlayer у TikTok" height="30"/></a>
|
|
251
|
+
<br>
|
|
252
|
+
</p>
|
|
253
|
+
</div>
|
|
254
|
+
|
|
255
|
+
### Внесок
|
|
256
|
+
|
|
257
|
+
Для детальніших інструкцій щодо участі в цьому проєкті, будь ласка, зверніться до файлу [`CONTRIBUTING.md`](https://github.com/aymericzip/intlayer/blob/main/CONTRIBUTING.md). Він містить важливу інформацію про наш процес розробки, конвенції повідомлень комітів і процедури релізів. Ваші внески цінні для нас, і ми вдячні за ваші зусилля з покращення цього проєкту!
|
|
258
|
+
|
|
259
|
+
Долучайтесь на [GitHub](https://github.com/aymericzip/intlayer), [GitLab](https://gitlab.com/ay.pineau/intlayer) або [Bitbucket](https://bitbucket.org/intlayer/intlayer/).
|
|
260
|
+
|
|
261
|
+
### Дякуємо за підтримку
|
|
262
|
+
|
|
263
|
+
Якщо вам подобається Intlayer, поставте нам ⭐ на GitHub. Це допомагає іншим дізнатися про проєкт!
|
|
264
|
+
|
|
265
|
+
[](https://star-history.com/#aymericzip/intlayer&Date)
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-22
|
|
3
|
+
updatedAt: 2025-09-23
|
|
4
|
+
title: "Новий Intlayer v6 — Що нового?"
|
|
5
|
+
description: "Дізнайтеся про новинки Intlayer v6. Значні покращення продуктивності, developer experience та нові функції для вдосконалення вашого робочого процесу інтернаціоналізації."
|
|
6
|
+
keywords:
|
|
7
|
+
- Intlayer
|
|
8
|
+
- Локалізація
|
|
9
|
+
- Розробка
|
|
10
|
+
- Продуктивність
|
|
11
|
+
- Developer Experience
|
|
12
|
+
- Функції
|
|
13
|
+
- React
|
|
14
|
+
- Next.js
|
|
15
|
+
- JavaScript
|
|
16
|
+
- TypeScript
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- releases
|
|
20
|
+
- v6
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Новий Intlayer v6 — Що нового?
|
|
24
|
+
|
|
25
|
+
Ласкаво просимо в Intlayer v6! У цьому релізі акцент зроблено на продуктивності, developer experience та надійності. Нижче наведено основні моменти, нотатки щодо міграції та приклади, які можна копіювати й вставляти.
|
|
26
|
+
|
|
27
|
+
## Основні зміни
|
|
28
|
+
|
|
29
|
+
- Нова команда: `npx intlayer content test` для виявлення відсутніх перекладів
|
|
30
|
+
- Нова глобальна опція `autoFill` для автоматичної генерації відсутніх перекладів
|
|
31
|
+
- Команда Fill за замовчуванням пропускає наявні переклади: `npx intlayer fill`
|
|
32
|
+
- Розширення для VS Code: нова панель активності Intlayer (Search і Dictionaries), дія на панелі інструментів/контекстні дії, auto‑reveal, команди Fill/Test
|
|
33
|
+
- Збірки у 10× швидші завдяки паралелізації промісів
|
|
34
|
+
- Кешування віддалених словників, щоб уникнути повторного запиту при старті програми
|
|
35
|
+
- Покращене логування: встановіть `log.mode: 'verbose'`, щоб перевірити поведінку
|
|
36
|
+
- Посилена валідація, щоб запобігти падінню додатка через проблеми зі словниками
|
|
37
|
+
- Живі оновлення з CMS за допомогою `build.importMode = 'live'` та `pnpm intlayer live`
|
|
38
|
+
- Виправлення: інтеграція з Vue.js, адаптер Lynx, Visual Editor на Windows
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Нове: Перевірка відсутніх перекладів
|
|
43
|
+
|
|
44
|
+
Швидко проведіть аудит вашого проєкту, щоб знайти відсутні ключі/локалі.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npx intlayer content test
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Output:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
pnpm intlayer content test
|
|
54
|
+
Відсутні переклади:
|
|
55
|
+
- blog-data - Японська (ja), Корейська (ko), Китайська (zh), Німецька (de), Італійська (it) - src/components/BlogPage/blogData.content.ts
|
|
56
|
+
- demo-page - Французька (fr), Італійська (it) - src/components/DemoPage/demo.content.ts
|
|
57
|
+
- locale-switcher - Італійська (it), Португальська (pt) - src/components/LocaleSwitcher/localeSwitcher.content.ts
|
|
58
|
+
Локалі: Англійська (en), Російська (ru), Японська (ja), Французька (fr), Корейська (ko), Китайська (zh), Іспанська (es), Німецька (de), Арабська (ar), Італійська (it), Британська англійська (en-GB), Португальська (pt), Хінді (hi)
|
|
59
|
+
Обов'язкові локалі: Англійська (en)
|
|
60
|
+
Відсутні локалі: японська (ja), корейська (ko), китайська (zh), німецька (de), італійська (it), французька (fr), португальська (pt)
|
|
61
|
+
Відсутні обов'язкові локалі: -
|
|
62
|
+
Загалом відсутніх локалей: 7
|
|
63
|
+
Загалом відсутніх обов'язкових локалей: 0
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Див. більше опцій у довіднику CLI: [Довідник CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/index.md) → «Перевірка відсутніх перекладів». А також у [розділі Тестування](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/testing.md).
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Нове: Глобальний autoFill для заповнення відсутніх перекладів
|
|
71
|
+
|
|
72
|
+
Тепер ви можете ввімкнути auto‑fill глобально, щоб будь-який словник з відсутніми перекладами автоматично заповнювався.
|
|
73
|
+
|
|
74
|
+
```ts fileName="intlayer.config.ts"
|
|
75
|
+
import { type IntlayerConfig, Locales } from "intlayer";
|
|
76
|
+
|
|
77
|
+
const config: IntlayerConfig = {
|
|
78
|
+
internationalization: {
|
|
79
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
80
|
+
defaultLocale: Locales.ENGLISH,
|
|
81
|
+
requiredLocales: [Locales.ENGLISH, Locales.FRENCH],
|
|
82
|
+
},
|
|
83
|
+
content: {
|
|
84
|
+
// Автоматично згенерувати відсутні переклади для всіх словників
|
|
85
|
+
autoFill: "./{{fileName}}Filled.content.ts",
|
|
86
|
+
//
|
|
87
|
+
// autoFill: "/messages/{{locale}}/{{key}}/{{fileName}}.content.json",
|
|
88
|
+
//
|
|
89
|
+
// autoFill: true, // автоматично згенерувати відсутні переклади для всіх словників, як при використанні "./{{fileName}}.content.json"
|
|
90
|
+
//
|
|
91
|
+
// autoFill: {
|
|
92
|
+
// en: "./{{fileName}}.en.content.json",
|
|
93
|
+
// fr: "./{{fileName}}.fr.content.json",
|
|
94
|
+
// es: "./{{fileName}}.es.content.json",
|
|
95
|
+
// },
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export default config;
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Автоматично заповніть відсутні переклади за допомогою команди `npx intlayer fill`.
|
|
103
|
+
|
|
104
|
+
Ви все ще можете тонко налаштувати окремий словник, використовуючи поле `autoFill` у файлах контенту. Intlayer спочатку врахує конфігурацію для конкретного словника, а потім перейде до глобальної конфігурації. Повну довідку див. в [Автозаповнення](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/autoFill.md) та [Довідник файлу контенту](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dictionary/content_file.md).
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Команда fill: безпечніші значення за замовчуванням
|
|
109
|
+
|
|
110
|
+
Команда fill тепер за замовчуванням заповнює лише відсутні переклади й пропускає вже існуючий контент.
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
npx intlayer fill
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
Затронуті ключі словників для обробки: access-key-creation-form-schema, doc-search-metadata, doc-search-page
|
|
118
|
+
- [access-key-creation-form-schema] У словника немає шляху до файлу. Пропускається.
|
|
119
|
+
- [access-key-creation-form-schema] Обробка декларації контенту: src/components/Dashboard/ProjectForm/AccessKey/useAccessKeyCreationFormSchema.content.ts
|
|
120
|
+
- [access-key-creation-form-schema] Немає локалей для заповнення - Пропуск словника
|
|
121
|
+
- [doc-search-metadata] Словник не має шляху до файлу. Пропуск.
|
|
122
|
+
- [doc-search-metadata] Обробка декларації контенту: src/app/[locale]/(docs)/doc/search/metadata.content.ts
|
|
123
|
+
- [doc-search-metadata] Немає локалей для заповнення - Пропуск словника
|
|
124
|
+
- [doc-search-page] Словник не має шляху до файлу. Пропуск.
|
|
125
|
+
- [doc-search-page] Обробка декларації контенту: src/app/[locale]/(docs)/doc/search/page.content.ts
|
|
126
|
+
- [doc-search-page] [Російська (ru)] Підготовка перекладу словника з Англійської (en) на Російську (ru)
|
|
127
|
+
[intlayer] Застосовано форматування Prettier до src/app/[locale]/(docs)/doc/search/page.content.ts
|
|
128
|
+
- [doc-search-page] Оголошення вмісту записано до src/app/[locale]/(docs)/doc/search/page.content.ts
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Приклади CI доступні в [CI/CD](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/CI_CD.md).
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Оновлене розширення VS Code
|
|
136
|
+
|
|
137
|
+
Тепер розширення містить виділену вкладку Intlayer в Activity Bar та кілька покращень робочого процесу:
|
|
138
|
+
|
|
139
|
+
- Панель Intlayer в Activity Bar з двома поданнями:
|
|
140
|
+
- Webview для live-пошуку словників/контенту
|
|
141
|
+
- Дерево словників, яке відображає середовища, словники та пов'язані файли
|
|
142
|
+
- Панель інструментів у поданні Dictionaries: Build, Pull, Push, Fill, Refresh, Test, Create Dictionary File
|
|
143
|
+
- Контекстні меню: Pull/Push для словників; Fill для файлів
|
|
144
|
+
- Auto‑reveal: поточний файл у редакторі підсвічується в дереві словників, коли це застосовно
|
|
145
|
+
- Нові команди, доступні в Палітрі команд: Fill Dictionaries і Test Dictionaries
|
|
146
|
+
|
|
147
|
+
Деталі див. у документації [Official VS Code Extension](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/vs_code_extension.md).
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
Оновлено сервер MCP для підтримки нових можливостей.
|
|
152
|
+
|
|
153
|
+
- Автозаповнення
|
|
154
|
+
- Тестування відсутніх перекладів
|
|
155
|
+
- Живі оновлення
|
|
156
|
+
- Логування
|
|
157
|
+
- Валідація
|
|
158
|
+
- Нотатки щодо міграції
|
|
159
|
+
- Документація
|
|
160
|
+
|
|
161
|
+
Сервер MCP допомагає в автоматизації проєктів, що використовують Intlayer. Тестує відсутні переклади для автогенерованого коду. Допомагає зрозуміти вашу конфігурацію та вбудувати документацію Intlayer у вашу IDE.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Продуктивність: у 10× разів швидше
|
|
166
|
+
|
|
167
|
+
- Паралельна обробка локальних і віддалених словників
|
|
168
|
+
- Віддалені словники кешуються, щоб уникнути повторного завантаження при запуску додатку
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
npx intlayer build
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Вивід:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
[intlayer] Preparing Intlayer (v6.0.1)
|
|
178
|
+
[intlayer] Dictionaries:
|
|
179
|
+
[intlayer] ✓ Local content: 163/163
|
|
180
|
+
[intlayer] ✓ Remote content: 100/100
|
|
181
|
+
[intlayer] - access-key-creation-form [local: ✔ built] [distant: ✔ imported]
|
|
182
|
+
[intlayer] - access-key-form [local: ✔ built] [distant: ✔ imported]
|
|
183
|
+
[intlayer] - ai-ab-testing-section [віддалено: ✔ імпортовано]
|
|
184
|
+
[intlayer] - application-not-running-view [локально: ✔ побудовано] [віддалено: ✔ імпортовано]
|
|
185
|
+
[intlayer] - available-techno-section [локально: ✔ побудовано] [віддалено: ✔ імпортовано]
|
|
186
|
+
[intlayer] - blog-data [локально: ✔ побудовано]
|
|
187
|
+
[intlayer] - blog-metadata [локольно: ✔ побудовано]
|
|
188
|
+
[intlayer] - blog-nav-list [локально: ✔ побудовано] [віддалено: ✔ імпортовано]
|
|
189
|
+
[intlayer] - blog-page [віддалено: ✔ отримано]
|
|
190
|
+
[intlayer] - blog-search-page [локально: ✔ побудовано] [віддалено: ✔ імпортовано]
|
|
191
|
+
...
|
|
192
|
+
[intlayer] Вміст завантажено (Всього: 8401ms - Локально: 4050ms - Віддалено: 4222ms)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Покращення логування
|
|
198
|
+
|
|
199
|
+
Система логування була покращена, щоб надавати детальнішу інформацію про те, що відбувається під час перетворень під час збірки та виконання.
|
|
200
|
+
|
|
201
|
+
> Увімкніть детальний режим логування, щоб краще зрозуміти, що відбувається під час перетворень під час збірки та виконання.
|
|
202
|
+
|
|
203
|
+
```ts fileName="intlayer.config.ts"
|
|
204
|
+
export default {
|
|
205
|
+
log: {
|
|
206
|
+
mode: "verbose", // опції: "default" | "verbose" | "disabled"
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Див. [Конфігурація](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/configuration.md) щодо всіх опцій логування.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Посилена валідація
|
|
216
|
+
|
|
217
|
+
Обробка словників тепер виконує більш надійну валідацію. Якщо обробка словника не вдається, Intlayer уникає ламання вашого застосунку і відображає корисні повідомлення про помилки.
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Живі оновлення з CMS (production‑safe)
|
|
222
|
+
|
|
223
|
+
Подавайте оновлення контенту в реальному часі (наприклад, редакційні оновлення) у production без перезбирання вашого застосунку.
|
|
224
|
+
|
|
225
|
+
1. Увімкніть режим live імпорту:
|
|
226
|
+
|
|
227
|
+
```ts fileName="intlayer.config.ts"
|
|
228
|
+
import { type IntlayerConfig } from "intlayer";
|
|
229
|
+
|
|
230
|
+
const config: IntlayerConfig = {
|
|
231
|
+
build: {
|
|
232
|
+
importMode: "live", // опції: "static" | "dynamic" | "live"
|
|
233
|
+
},
|
|
234
|
+
editor: {
|
|
235
|
+
liveSync: true, // увімкнути live sync на стороні сервера
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
export default config;
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
2. Запустіть застосунок і live‑процес паралельно:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
npx intlayer live --with 'vite preview'
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Примітки:
|
|
249
|
+
|
|
250
|
+
- Тільки словники, позначені для використання live‑режиму, будуть підвантажуватись у реальному часі. Інші оптимізовані для продуктивності.
|
|
251
|
+
- Виконується відкат до динамічного імпорту, якщо live API недоступний.
|
|
252
|
+
|
|
253
|
+
Дивіться [CMS and Live Sync](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_CMS.md) та [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/configuration.md) для повного керівництва.
|
|
254
|
+
|
|
255
|
+
## Паралельний процес для відстеження файлів у Turbopack
|
|
256
|
+
|
|
257
|
+
Коли ви використовуєте Turbopack у Next.js 14 і новіших версіях як сервер розробки з командою `next dev --turbopack`, зміни в словниках за замовчуванням не будуть автоматично виявлятися.
|
|
258
|
+
|
|
259
|
+
Це обмеження виникає через те, що Turbopack не може запускати webpack‑плагіни паралельно для моніторингу змін у ваших файлах контенту.
|
|
260
|
+
|
|
261
|
+
Щоб обійти це, ми відмовилися від команди `intlayer watch`, натомість використовуйте опцію `--with`, щоб одночасно запускати сервер розробки та спостерігача збірки Intlayer.
|
|
262
|
+
|
|
263
|
+
```json5 fileName="package.json"
|
|
264
|
+
{
|
|
265
|
+
"scripts": {
|
|
266
|
+
"dev": "npx intlayer watch --with 'next dev --turbopack'",
|
|
267
|
+
},
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Нотатки щодо міграції
|
|
274
|
+
|
|
275
|
+
- Видалено: `dictionaryOutput` (раніше `i18next` або `next-intl`). Це повернеться як підключні адаптери в майбутніх версіях. Видаліть це поле з вашої конфігурації.
|
|
276
|
+
- Пов’язане видалення: `i18nextResourcesDir` (див. changelog `doc/configuration`).
|
|
277
|
+
- Віддавайте перевагу новій глобальній опції `content.autoFill` для масштабного генерування відсутніх перекладів.
|
|
278
|
+
- Використовуйте `npx intlayer content test`, щоб контролювати PR на предмет відсутніх перекладів.
|
|
279
|
+
- Для докладної діагностики встановіть `log.mode = 'verbose'`.
|
|
280
|
+
- У конфігурації Vite використовуйте `intlayer` замість `intlayerPlugin` та `intlayerProxy` замість `intlayerProxyPlugin`.
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Виправлення
|
|
285
|
+
|
|
286
|
+
- Покращена стабільність інтеграції з Vue.js
|
|
287
|
+
- Покращення адаптера Lynx
|
|
288
|
+
- Покращена робота Візуального редактора на Windows
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Нотатки щодо міграції з v6 до v7
|
|
293
|
+
|
|
294
|
+
Перегляньте [нотатки щодо міграції з v6 до v7](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/releases/v7.md) для отримання додаткової інформації.
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Корисні посилання
|
|
299
|
+
|
|
300
|
+
- [Довідник CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/index.md)
|
|
301
|
+
- [Автозаповнення](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/autoFill.md)
|
|
302
|
+
- [Налаштування](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/configuration.md)
|
|
303
|
+
- [Довідник файлу контенту](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dictionary/content_file.md)
|
|
304
|
+
- [Офіційне розширення для VS Code](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/vs_code_extension.md)
|
|
305
|
+
- [CMS та Live Sync](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_CMS.md)
|