@intlayer/docs 7.5.10 → 7.5.12
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_i18next.md +0 -2
- package/blog/ar/intlayer_with_next-i18next.md +0 -2
- package/blog/ar/intlayer_with_react-i18next.md +0 -2
- package/blog/de/intlayer_with_i18next.md +0 -45
- package/blog/de/intlayer_with_next-i18next.md +0 -46
- package/blog/de/intlayer_with_react-i18next.md +0 -2
- package/blog/en/intlayer_with_i18next.md +0 -46
- package/blog/en/intlayer_with_next-i18next.md +0 -48
- package/blog/en/intlayer_with_next-intl.md +0 -44
- package/blog/en/intlayer_with_react-i18next.md +0 -44
- package/blog/en/intlayer_with_react-intl.md +0 -42
- package/blog/en/intlayer_with_vue-i18n.md +0 -44
- package/blog/en-GB/intlayer_with_i18next.md +0 -45
- package/blog/en-GB/intlayer_with_next-i18next.md +0 -47
- package/blog/en-GB/intlayer_with_next-intl.md +0 -42
- package/blog/en-GB/intlayer_with_react-i18next.md +0 -43
- package/blog/en-GB/intlayer_with_react-intl.md +0 -42
- package/blog/en-GB/intlayer_with_vue-i18n.md +0 -46
- package/blog/es/intlayer_with_i18next.md +0 -45
- package/blog/es/intlayer_with_next-i18next.md +0 -47
- package/blog/es/intlayer_with_next-intl.md +0 -42
- package/blog/es/intlayer_with_react-i18next.md +0 -43
- package/blog/es/intlayer_with_react-intl.md +0 -42
- package/blog/es/intlayer_with_vue-i18n.md +0 -46
- package/blog/fr/intlayer_with_i18next.md +0 -45
- package/blog/fr/intlayer_with_next-i18next.md +0 -47
- package/blog/fr/intlayer_with_next-intl.md +0 -42
- package/blog/fr/intlayer_with_react-i18next.md +0 -43
- package/blog/fr/intlayer_with_react-intl.md +0 -42
- package/blog/fr/intlayer_with_vue-i18n.md +0 -46
- package/blog/hi/intlayer_with_i18next.md +0 -2
- package/blog/hi/intlayer_with_next-i18next.md +0 -2
- package/blog/hi/intlayer_with_react-i18next.md +0 -2
- package/blog/id/intlayer_with_i18next.md +0 -2
- package/blog/id/intlayer_with_next-i18next.md +0 -2
- package/blog/id/intlayer_with_react-i18next.md +0 -2
- package/blog/it/intlayer_with_i18next.md +0 -2
- package/blog/it/intlayer_with_next-i18next.md +0 -2
- package/blog/it/intlayer_with_react-i18next.md +0 -2
- package/blog/ja/intlayer_with_i18next.md +0 -45
- package/blog/ja/intlayer_with_next-i18next.md +0 -46
- package/blog/ja/intlayer_with_next-intl.md +0 -42
- package/blog/ja/intlayer_with_react-i18next.md +0 -42
- package/blog/ja/intlayer_with_react-intl.md +0 -42
- package/blog/ja/intlayer_with_vue-i18n.md +0 -46
- package/blog/ko/intlayer_with_i18next.md +0 -2
- package/blog/ko/intlayer_with_next-i18next.md +0 -2
- package/blog/ko/intlayer_with_react-i18next.md +0 -1
- package/blog/pl/intlayer_with_i18next.md +0 -45
- package/blog/pl/intlayer_with_next-i18next.md +0 -46
- package/blog/pl/intlayer_with_next-intl.md +0 -42
- package/blog/pl/intlayer_with_react-i18next.md +0 -43
- package/blog/pl/intlayer_with_react-intl.md +0 -42
- package/blog/pl/intlayer_with_vue-i18n.md +0 -46
- package/blog/pt/intlayer_with_i18next.md +0 -2
- package/blog/pt/intlayer_with_next-i18next.md +0 -2
- package/blog/pt/intlayer_with_react-i18next.md +0 -2
- package/blog/ru/intlayer_with_i18next.md +0 -45
- package/blog/ru/intlayer_with_next-i18next.md +0 -47
- package/blog/ru/intlayer_with_next-intl.md +0 -42
- package/blog/ru/intlayer_with_react-i18next.md +0 -43
- package/blog/ru/intlayer_with_react-intl.md +0 -42
- package/blog/ru/intlayer_with_vue-i18n.md +0 -46
- package/blog/tr/intlayer_with_i18next.md +0 -2
- package/blog/tr/intlayer_with_next-i18next.md +0 -1
- package/blog/tr/intlayer_with_react-i18next.md +0 -2
- package/blog/vi/intlayer_with_i18next.md +0 -2
- package/blog/vi/intlayer_with_next-i18next.md +0 -2
- package/blog/vi/intlayer_with_react-i18next.md +0 -2
- package/blog/zh/intlayer_with_i18next.md +0 -2
- package/blog/zh/intlayer_with_next-i18next.md +0 -2
- package/blog/zh/intlayer_with_react-i18next.md +0 -2
- package/blog/zh/intlayer_with_vue-i18n.md +0 -46
- package/dist/cjs/generated/blog.entry.cjs +58 -29
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +254 -97
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +30 -15
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +4 -2
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +58 -29
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +254 -97
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +30 -15
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +4 -2
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +3 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/cli/ci.md +137 -0
- package/docs/ar/cli/index.md +7 -1
- package/docs/ar/cli/list.md +39 -2
- package/docs/ar/cli/list_projects.md +131 -0
- package/docs/ar/intlayer_CMS.md +20 -0
- package/docs/ar/intlayer_with_next-i18next.md +0 -1
- package/docs/ar/intlayer_with_nextjs_14.md +28 -0
- package/docs/ar/intlayer_with_nextjs_15.md +28 -0
- package/docs/ar/intlayer_with_nextjs_16.md +28 -0
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +1159 -0
- package/docs/ar/plugins/sync-json.md +6 -2
- package/docs/de/cli/ci.md +137 -0
- package/docs/de/cli/index.md +7 -1
- package/docs/de/cli/list.md +39 -2
- package/docs/de/cli/list_projects.md +130 -0
- package/docs/de/intlayer_CMS.md +20 -0
- package/docs/de/intlayer_with_next-i18next.md +0 -1
- package/docs/de/intlayer_with_nextjs_14.md +28 -0
- package/docs/de/intlayer_with_nextjs_15.md +28 -0
- package/docs/de/intlayer_with_nextjs_16.md +28 -0
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +1152 -0
- package/docs/de/plugins/sync-json.md +6 -2
- package/docs/en/cli/ci.md +137 -0
- package/docs/en/cli/index.md +14 -1
- package/docs/en/cli/list.md +39 -2
- package/docs/en/cli/list_projects.md +128 -0
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en/intlayer_CMS.md +20 -0
- package/docs/en/intlayer_with_next-i18next.md +0 -1
- package/docs/en/intlayer_with_nextjs_14.md +28 -0
- package/docs/en/intlayer_with_nextjs_15.md +28 -0
- package/docs/en/intlayer_with_nextjs_16.md +31 -1
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +1132 -0
- package/docs/en/plugins/sync-json.md +6 -2
- package/docs/en-GB/cli/ci.md +137 -0
- package/docs/en-GB/cli/index.md +7 -1
- package/docs/en-GB/cli/list.md +39 -2
- package/docs/en-GB/cli/list_projects.md +130 -0
- package/docs/en-GB/intlayer_CMS.md +20 -0
- package/docs/en-GB/intlayer_with_next-i18next.md +0 -1
- package/docs/en-GB/intlayer_with_nextjs_14.md +28 -0
- package/docs/en-GB/intlayer_with_nextjs_15.md +28 -0
- package/docs/en-GB/intlayer_with_nextjs_16.md +28 -0
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +1154 -0
- package/docs/en-GB/plugins/sync-json.md +6 -2
- package/docs/es/cli/ci.md +137 -0
- package/docs/es/cli/index.md +7 -1
- package/docs/es/cli/list.md +39 -2
- package/docs/es/cli/list_projects.md +130 -0
- package/docs/es/intlayer_CMS.md +20 -0
- package/docs/es/intlayer_with_next-i18next.md +0 -1
- package/docs/es/intlayer_with_nextjs_14.md +28 -0
- package/docs/es/intlayer_with_nextjs_15.md +28 -0
- package/docs/es/intlayer_with_nextjs_16.md +28 -0
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +1143 -0
- package/docs/es/plugins/sync-json.md +6 -2
- package/docs/fr/cli/ci.md +137 -0
- package/docs/fr/cli/index.md +7 -1
- package/docs/fr/cli/list.md +39 -2
- package/docs/fr/cli/list_projects.md +131 -0
- package/docs/fr/intlayer_CMS.md +20 -0
- package/docs/fr/intlayer_with_next-i18next.md +0 -1
- package/docs/fr/intlayer_with_nextjs_14.md +28 -0
- package/docs/fr/intlayer_with_nextjs_15.md +28 -0
- package/docs/fr/intlayer_with_nextjs_16.md +28 -0
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +1174 -0
- package/docs/fr/plugins/sync-json.md +9 -5
- package/docs/hi/cli/ci.md +137 -0
- package/docs/hi/cli/index.md +7 -1
- package/docs/hi/cli/list.md +38 -1
- package/docs/hi/cli/list_projects.md +130 -0
- package/docs/hi/intlayer_CMS.md +20 -0
- package/docs/hi/intlayer_with_next-i18next.md +0 -1
- package/docs/hi/intlayer_with_nextjs_14.md +28 -0
- package/docs/hi/intlayer_with_nextjs_15.md +28 -0
- package/docs/hi/intlayer_with_nextjs_16.md +28 -0
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +1151 -0
- package/docs/hi/plugins/sync-json.md +6 -2
- package/docs/id/cli/ci.md +137 -0
- package/docs/id/cli/index.md +7 -1
- package/docs/id/cli/list.md +38 -1
- package/docs/id/cli/list_projects.md +128 -0
- package/docs/id/intlayer_CMS.md +20 -0
- package/docs/id/intlayer_with_next-i18next.md +0 -1
- package/docs/id/intlayer_with_nextjs_14.md +28 -0
- package/docs/id/intlayer_with_nextjs_15.md +28 -0
- package/docs/id/intlayer_with_nextjs_16.md +28 -0
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +1154 -0
- package/docs/id/plugins/sync-json.md +6 -2
- package/docs/it/cli/ci.md +137 -0
- package/docs/it/cli/index.md +7 -1
- package/docs/it/cli/list.md +39 -2
- package/docs/it/cli/list_projects.md +130 -0
- package/docs/it/intlayer_CMS.md +20 -0
- package/docs/it/intlayer_with_next-i18next.md +0 -1
- package/docs/it/intlayer_with_nextjs_14.md +28 -0
- package/docs/it/intlayer_with_nextjs_15.md +28 -0
- package/docs/it/intlayer_with_nextjs_16.md +28 -0
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +1148 -0
- package/docs/it/plugins/sync-json.md +6 -2
- package/docs/ja/cli/ci.md +137 -0
- package/docs/ja/cli/index.md +7 -1
- package/docs/ja/cli/list.md +38 -1
- package/docs/ja/cli/list_projects.md +136 -0
- package/docs/ja/intlayer_CMS.md +20 -0
- package/docs/ja/intlayer_with_next-i18next.md +0 -1
- package/docs/ja/intlayer_with_nextjs_14.md +28 -0
- package/docs/ja/intlayer_with_nextjs_15.md +28 -0
- package/docs/ja/intlayer_with_nextjs_16.md +28 -0
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +1222 -0
- package/docs/ja/plugins/sync-json.md +6 -2
- package/docs/ko/cli/ci.md +137 -0
- package/docs/ko/cli/index.md +7 -1
- package/docs/ko/cli/list.md +38 -1
- package/docs/ko/cli/list_projects.md +128 -0
- package/docs/ko/intlayer_CMS.md +20 -0
- package/docs/ko/intlayer_with_next-i18next.md +0 -1
- package/docs/ko/intlayer_with_nextjs_14.md +28 -0
- package/docs/ko/intlayer_with_nextjs_15.md +28 -0
- package/docs/ko/intlayer_with_nextjs_16.md +28 -0
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +1205 -0
- package/docs/ko/plugins/sync-json.md +6 -2
- package/docs/pl/cli/ci.md +137 -0
- package/docs/pl/cli/index.md +7 -1
- package/docs/pl/cli/list.md +39 -2
- package/docs/pl/cli/list_projects.md +130 -0
- package/docs/pl/intlayer_CMS.md +20 -0
- package/docs/pl/intlayer_with_next-i18next.md +0 -1
- package/docs/pl/intlayer_with_nextjs_14.md +28 -0
- package/docs/pl/intlayer_with_nextjs_15.md +28 -0
- package/docs/pl/intlayer_with_nextjs_16.md +28 -0
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +1149 -0
- package/docs/pl/plugins/sync-json.md +6 -2
- package/docs/pt/cli/ci.md +137 -0
- package/docs/pt/cli/index.md +7 -1
- package/docs/pt/cli/list.md +39 -2
- package/docs/pt/cli/list_projects.md +134 -0
- package/docs/pt/intlayer_CMS.md +20 -0
- package/docs/pt/intlayer_with_next-i18next.md +0 -1
- package/docs/pt/intlayer_with_nextjs_14.md +28 -0
- package/docs/pt/intlayer_with_nextjs_15.md +28 -0
- package/docs/pt/intlayer_with_nextjs_16.md +28 -0
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +1152 -0
- package/docs/pt/plugins/sync-json.md +6 -2
- package/docs/ru/cli/ci.md +137 -0
- package/docs/ru/cli/index.md +7 -1
- package/docs/ru/cli/list.md +39 -2
- package/docs/ru/cli/list_projects.md +130 -0
- package/docs/ru/intlayer_CMS.md +20 -0
- package/docs/ru/intlayer_with_next-i18next.md +0 -1
- package/docs/ru/intlayer_with_nextjs_14.md +28 -0
- package/docs/ru/intlayer_with_nextjs_15.md +28 -0
- package/docs/ru/intlayer_with_nextjs_16.md +28 -0
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +1204 -0
- package/docs/ru/plugins/sync-json.md +6 -2
- package/docs/tr/cli/ci.md +137 -0
- package/docs/tr/cli/index.md +7 -1
- package/docs/tr/cli/list.md +39 -2
- package/docs/tr/cli/list_projects.md +134 -0
- package/docs/tr/intlayer_CMS.md +20 -0
- package/docs/tr/intlayer_with_next-i18next.md +0 -1
- package/docs/tr/intlayer_with_nextjs_14.md +28 -0
- package/docs/tr/intlayer_with_nextjs_15.md +28 -0
- package/docs/tr/intlayer_with_nextjs_16.md +28 -0
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +1159 -0
- package/docs/tr/plugins/sync-json.md +6 -2
- package/docs/uk/compiler.md +133 -0
- package/docs/uk/component_i18n.md +194 -0
- package/docs/uk/intlayer_with_nextjs_14.md +1646 -0
- package/docs/uk/intlayer_with_nextjs_15.md +1910 -0
- package/docs/uk/intlayer_with_nextjs_16.md +1763 -0
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +1159 -0
- package/docs/uk/intlayer_with_react_native+expo.md +715 -0
- package/docs/uk/packages/intlayer/getConfiguration.md +145 -0
- package/docs/uk/vs_code_extension.md +133 -0
- package/docs/vi/cli/ci.md +137 -0
- package/docs/vi/cli/index.md +7 -1
- package/docs/vi/cli/list.md +38 -1
- package/docs/vi/cli/list_projects.md +130 -0
- package/docs/vi/intlayer_CMS.md +20 -0
- package/docs/vi/intlayer_with_next-i18next.md +0 -1
- package/docs/vi/intlayer_with_nextjs_14.md +28 -0
- package/docs/vi/intlayer_with_nextjs_15.md +28 -0
- package/docs/vi/intlayer_with_nextjs_16.md +28 -0
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +1151 -0
- package/docs/vi/plugins/sync-json.md +6 -2
- package/docs/zh/cli/ci.md +137 -0
- package/docs/zh/cli/index.md +7 -1
- package/docs/zh/cli/list.md +38 -1
- package/docs/zh/cli/list_projects.md +130 -0
- package/docs/zh/intlayer_CMS.md +20 -0
- package/docs/zh/intlayer_with_next-i18next.md +0 -1
- package/docs/zh/intlayer_with_nextjs_14.md +28 -0
- package/docs/zh/intlayer_with_nextjs_15.md +28 -0
- package/docs/zh/intlayer_with_nextjs_16.md +28 -0
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +1206 -0
- package/docs/zh/plugins/sync-json.md +9 -5
- package/frequent_questions/ar/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/de/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/en/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/en-GB/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/es/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/fr/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/hi/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/id/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/it/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/ja/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/ko/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/pl/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/pt/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/ru/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/tr/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/vi/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/zh/SSR_Next_no_[locale].md +1 -1
- package/package.json +6 -6
- package/src/generated/blog.entry.ts +29 -0
- package/src/generated/docs.entry.ts +157 -0
- package/src/generated/frequentQuestions.entry.ts +15 -0
- package/src/generated/legal.entry.ts +2 -0
|
@@ -102,7 +102,6 @@ const config: IntlayerConfig = {
|
|
|
102
102
|
},
|
|
103
103
|
plugins: [
|
|
104
104
|
syncJSON({
|
|
105
|
-
format: "i18next",
|
|
106
105
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
107
106
|
}),
|
|
108
107
|
],
|
|
@@ -122,48 +121,6 @@ export default config;
|
|
|
122
121
|
|
|
123
122
|
Чтобы узнать больше подробностей о плагине `syncJSON`, пожалуйста, обратитесь к [документации плагина syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/plugins/sync-json.md).
|
|
124
123
|
|
|
125
|
-
### (Необязательно) Шаг 3: Реализация перевода JSON по компонентам
|
|
126
|
-
|
|
127
|
-
По умолчанию Intlayer загружает, объединяет и синхронизирует как JSON, так и файлы деклараций контента. Подробнее смотрите в [документации по декларации контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md). Но если вы предпочитаете, используя плагин Intlayer, вы также можете реализовать управление локализованным JSON по компонентам в любом месте вашей кодовой базы.
|
|
128
|
-
|
|
129
|
-
Для этого вы можете использовать плагин `loadJSON`.
|
|
130
|
-
|
|
131
|
-
```ts fileName="intlayer.config.ts"
|
|
132
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
133
|
-
import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
|
|
134
|
-
|
|
135
|
-
const config: IntlayerConfig = {
|
|
136
|
-
internationalization: {
|
|
137
|
-
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
138
|
-
defaultLocale: Locales.ENGLISH,
|
|
139
|
-
},
|
|
140
|
-
|
|
141
|
-
// Синхронизируйте ваши текущие JSON-файлы с словарями Intlayer
|
|
142
|
-
plugins: [
|
|
143
|
-
/**
|
|
144
|
-
* Загрузит все JSON-файлы в папке src, соответствующие шаблону {key}.i18n.json
|
|
145
|
-
*/
|
|
146
|
-
loadJSON({
|
|
147
|
-
source: ({ key }) => `./src/**/${key}.i18n.json`,
|
|
148
|
-
locale: Locales.ENGLISH,
|
|
149
|
-
priority: 1, // Обеспечивает приоритет этих JSON-файлов над файлами в `./locales/en/${key}.json`
|
|
150
|
-
}),
|
|
151
|
-
/**
|
|
152
|
-
* Загрузит и запишет результат и переводы обратно в JSON-файлы в директории locales
|
|
153
|
-
*/
|
|
154
|
-
syncJSON({
|
|
155
|
-
format: "i18next",
|
|
156
|
-
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
157
|
-
priority: 0,
|
|
158
|
-
}),
|
|
159
|
-
],
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
export default config;
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
Это загрузит все JSON-файлы в каталоге `src`, которые соответствуют шаблону `{key}.i18n.json`, и загрузит их как словари Intlayer.
|
|
166
|
-
|
|
167
124
|
## Конфигурация Git
|
|
168
125
|
|
|
169
126
|
Рекомендуется игнорировать автоматически сгенерированные файлы Intlayer:
|
|
@@ -120,48 +120,6 @@ export default config;
|
|
|
120
120
|
|
|
121
121
|
Чтобы узнать больше подробностей о плагине `syncJSON`, пожалуйста, обратитесь к [документации плагина syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/plugins/sync-json.md).
|
|
122
122
|
|
|
123
|
-
### (Необязательно) Шаг 3: Реализация переводов JSON по компонентам
|
|
124
|
-
|
|
125
|
-
По умолчанию Intlayer загрузит, объединит и синхронизирует как JSON, так и файлы деклараций контента. Подробнее смотрите в [документации по декларации контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md). Но если вы предпочитаете, используя плагин Intlayer, вы также можете реализовать управление локализованным JSON по компонентам в любом месте вашей кодовой базы.
|
|
126
|
-
|
|
127
|
-
Для этого вы можете использовать плагин `loadJSON`.
|
|
128
|
-
|
|
129
|
-
```ts fileName="intlayer.config.ts"
|
|
130
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
131
|
-
import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
|
|
132
|
-
|
|
133
|
-
const config: IntlayerConfig = {
|
|
134
|
-
internationalization: {
|
|
135
|
-
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
136
|
-
defaultLocale: Locales.ENGLISH,
|
|
137
|
-
},
|
|
138
|
-
|
|
139
|
-
// Синхронизируйте ваши текущие JSON-файлы с словарями Intlayer
|
|
140
|
-
plugins: [
|
|
141
|
-
/**
|
|
142
|
-
* Загрузит все JSON-файлы в папке src, соответствующие шаблону {key}.i18n.json
|
|
143
|
-
*/
|
|
144
|
-
loadJSON({
|
|
145
|
-
source: ({ key }) => `./src/**/${key}.i18n.json`,
|
|
146
|
-
locale: Locales.ENGLISH,
|
|
147
|
-
priority: 1, // Обеспечивает приоритет этих JSON-файлов над файлами в `./locales/en/${key}.json`
|
|
148
|
-
}),
|
|
149
|
-
/**
|
|
150
|
-
* Загрузит и запишет результат и переводы обратно в JSON-файлы в директории locales
|
|
151
|
-
*/
|
|
152
|
-
syncJSON({
|
|
153
|
-
format: "icu",
|
|
154
|
-
source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
|
|
155
|
-
priority: 0,
|
|
156
|
-
}),
|
|
157
|
-
],
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
export default config;
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
Это загрузит все JSON-файлы в каталоге `src`, которые соответствуют шаблону `{key}.i18n.json`, и загрузит их как словари Intlayer.
|
|
164
|
-
|
|
165
123
|
## Конфигурация Git
|
|
166
124
|
|
|
167
125
|
Рекомендуется игнорировать автоматически сгенерированные файлы Intlayer:
|
|
@@ -122,52 +122,6 @@ export default config;
|
|
|
122
122
|
|
|
123
123
|
Чтобы узнать больше подробностей о плагине `syncJSON`, пожалуйста, обратитесь к [документации плагина syncJSON](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/plugins/sync-json.md).
|
|
124
124
|
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
### (Необязательно) Шаг 3: Реализация переводов JSON по компонентам
|
|
128
|
-
|
|
129
|
-
По умолчанию Intlayer загружает, объединяет и синхронизирует как JSON, так и файлы деклараций контента. Подробнее смотрите в [документации по декларации контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md). Но если вы предпочитаете, используя плагин Intlayer, вы также можете реализовать управление локализованным JSON по компонентам в любом месте вашего кода.
|
|
130
|
-
|
|
131
|
-
Для этого вы можете использовать плагин `loadJSON`.
|
|
132
|
-
|
|
133
|
-
```ts fileName="intlayer.config.ts"
|
|
134
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
135
|
-
import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
|
|
136
|
-
|
|
137
|
-
const config: IntlayerConfig = {
|
|
138
|
-
internationalization: {
|
|
139
|
-
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
140
|
-
defaultLocale: Locales.ENGLISH,
|
|
141
|
-
},
|
|
142
|
-
|
|
143
|
-
// Синхронизируйте ваши текущие JSON-файлы с словарями Intlayer
|
|
144
|
-
plugins: [
|
|
145
|
-
/**
|
|
146
|
-
* Загрузит все JSON-файлы в src, которые соответствуют шаблону {key}.i18n.json
|
|
147
|
-
*/
|
|
148
|
-
loadJSON({
|
|
149
|
-
source: ({ key }) => `./src/**/${key}.i18n.json`,
|
|
150
|
-
locale: Locales.ENGLISH,
|
|
151
|
-
priority: 1, // Обеспечивает приоритет этих JSON-файлов над файлами в `./locales/en/${key}.json`
|
|
152
|
-
}),
|
|
153
|
-
/**
|
|
154
|
-
* Загрузит, а также запишет результат и переводы обратно в JSON-файлы в директории locales
|
|
155
|
-
*/
|
|
156
|
-
syncJSON({
|
|
157
|
-
format: "vue-i18n",
|
|
158
|
-
source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
|
|
159
|
-
priority: 0,
|
|
160
|
-
}),
|
|
161
|
-
],
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
export default config;
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
Это загрузит все JSON-файлы в каталоге `src`, которые соответствуют шаблону `{key}.i18n.json`, и загрузит их как словари Intlayer.
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
125
|
## Конфигурация Git
|
|
172
126
|
|
|
173
127
|
Исключите сгенерированные файлы из системы контроля версий:
|
|
@@ -104,7 +104,6 @@ const config: IntlayerConfig = {
|
|
|
104
104
|
},
|
|
105
105
|
plugins: [
|
|
106
106
|
syncJSON({
|
|
107
|
-
format: "i18next",
|
|
108
107
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
109
108
|
}),
|
|
110
109
|
],
|
|
@@ -154,7 +153,6 @@ const config: IntlayerConfig = {
|
|
|
154
153
|
* locales dizinindeki JSON dosyalarını yükler ve çıktı ile çevirileri geri yazar
|
|
155
154
|
*/
|
|
156
155
|
syncJSON({
|
|
157
|
-
format: "i18next",
|
|
158
156
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
159
157
|
priority: 0,
|
|
160
158
|
}),
|
|
@@ -175,7 +175,6 @@ const config: IntlayerConfig = {
|
|
|
175
175
|
* Yerel dizindeki JSON dosyalarına çıktıyı ve çevirileri geri yazacak ve yükleyecek
|
|
176
176
|
*/
|
|
177
177
|
syncJSON({
|
|
178
|
-
format: "i18next",
|
|
179
178
|
source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
|
|
180
179
|
priority: 0,
|
|
181
180
|
}),
|
|
@@ -102,7 +102,6 @@ const config: IntlayerConfig = {
|
|
|
102
102
|
},
|
|
103
103
|
plugins: [
|
|
104
104
|
syncJSON({
|
|
105
|
-
format: "i18next",
|
|
106
105
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
107
106
|
}),
|
|
108
107
|
],
|
|
@@ -152,7 +151,6 @@ const config: IntlayerConfig = {
|
|
|
152
151
|
* locales dizinindeki JSON dosyalarını yükler ve çıktı ile çevirileri geri yazar
|
|
153
152
|
*/
|
|
154
153
|
syncJSON({
|
|
155
|
-
format: "i18next",
|
|
156
154
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
157
155
|
priority: 0,
|
|
158
156
|
}),
|
|
@@ -104,7 +104,6 @@ const config: IntlayerConfig = {
|
|
|
104
104
|
},
|
|
105
105
|
plugins: [
|
|
106
106
|
syncJSON({
|
|
107
|
-
format: "i18next",
|
|
108
107
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
109
108
|
}),
|
|
110
109
|
],
|
|
@@ -154,7 +153,6 @@ const config: IntlayerConfig = {
|
|
|
154
153
|
* Sẽ tải, và ghi đầu ra cùng các bản dịch trở lại các tệp JSON trong thư mục locales
|
|
155
154
|
*/
|
|
156
155
|
syncJSON({
|
|
157
|
-
format: "i18next",
|
|
158
156
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
159
157
|
priority: 0,
|
|
160
158
|
}),
|
|
@@ -112,7 +112,6 @@ const config: IntlayerConfig = {
|
|
|
112
112
|
},
|
|
113
113
|
plugins: [
|
|
114
114
|
syncJSON({
|
|
115
|
-
format: "i18next",
|
|
116
115
|
source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
|
|
117
116
|
}),
|
|
118
117
|
],
|
|
@@ -164,7 +163,6 @@ const config: IntlayerConfig = {
|
|
|
164
163
|
* Sẽ tải và ghi lại đầu ra cùng các bản dịch trở lại các file JSON trong thư mục locales
|
|
165
164
|
*/
|
|
166
165
|
syncJSON({
|
|
167
|
-
format: "i18next",
|
|
168
166
|
source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
|
|
169
167
|
priority: 0,
|
|
170
168
|
}),
|
|
@@ -102,7 +102,6 @@ const config: IntlayerConfig = {
|
|
|
102
102
|
},
|
|
103
103
|
plugins: [
|
|
104
104
|
syncJSON({
|
|
105
|
-
format: "i18next",
|
|
106
105
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
107
106
|
}),
|
|
108
107
|
],
|
|
@@ -152,7 +151,6 @@ const config: IntlayerConfig = {
|
|
|
152
151
|
* Sẽ tải và ghi đầu ra cùng các bản dịch trở lại các tệp JSON trong thư mục locales
|
|
153
152
|
*/
|
|
154
153
|
syncJSON({
|
|
155
|
-
format: "i18next",
|
|
156
154
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
157
155
|
priority: 0,
|
|
158
156
|
}),
|
|
@@ -104,7 +104,6 @@ const config: IntlayerConfig = {
|
|
|
104
104
|
},
|
|
105
105
|
plugins: [
|
|
106
106
|
syncJSON({
|
|
107
|
-
format: "i18next",
|
|
108
107
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
109
108
|
}),
|
|
110
109
|
],
|
|
@@ -154,7 +153,6 @@ const config: IntlayerConfig = {
|
|
|
154
153
|
* 将加载并将输出和翻译写回到 locales 目录中的 JSON 文件
|
|
155
154
|
*/
|
|
156
155
|
syncJSON({
|
|
157
|
-
format: "i18next",
|
|
158
156
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
159
157
|
priority: 0,
|
|
160
158
|
}),
|
|
@@ -112,7 +112,6 @@ const config: IntlayerConfig = {
|
|
|
112
112
|
},
|
|
113
113
|
plugins: [
|
|
114
114
|
syncJSON({
|
|
115
|
-
format: "i18next",
|
|
116
115
|
source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
|
|
117
116
|
}),
|
|
118
117
|
],
|
|
@@ -164,7 +163,6 @@ const config: IntlayerConfig = {
|
|
|
164
163
|
* 将输出和翻译写回到 locales 目录中的 JSON 文件
|
|
165
164
|
*/
|
|
166
165
|
syncJSON({
|
|
167
|
-
format: "i18next",
|
|
168
166
|
source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
|
|
169
167
|
priority: 0,
|
|
170
168
|
}),
|
|
@@ -102,7 +102,6 @@ const config: IntlayerConfig = {
|
|
|
102
102
|
},
|
|
103
103
|
plugins: [
|
|
104
104
|
syncJSON({
|
|
105
|
-
format: "i18next",
|
|
106
105
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
107
106
|
}),
|
|
108
107
|
],
|
|
@@ -152,7 +151,6 @@ const config: IntlayerConfig = {
|
|
|
152
151
|
* 将加载并将输出和翻译写回到 locales 目录中的 JSON 文件
|
|
153
152
|
*/
|
|
154
153
|
syncJSON({
|
|
155
|
-
format: "i18next",
|
|
156
154
|
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
157
155
|
priority: 0,
|
|
158
156
|
}),
|
|
@@ -122,52 +122,6 @@ export default config;
|
|
|
122
122
|
|
|
123
123
|
要查看更多关于 `syncJSON` 插件的详细信息,请参阅 [syncJSON 插件文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/plugins/sync-json.md)。
|
|
124
124
|
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
### (可选)步骤3:实现按组件的 JSON 翻译
|
|
128
|
-
|
|
129
|
-
默认情况下,Intlayer 会加载、合并并同步 JSON 和内容声明文件。更多详情请参阅 [内容声明文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/content_file.md)。但如果你愿意,也可以使用 Intlayer 插件,在代码库中的任意位置实现按组件管理本地化的 JSON。
|
|
130
|
-
|
|
131
|
-
为此,你可以使用 `loadJSON` 插件。
|
|
132
|
-
|
|
133
|
-
```ts fileName="intlayer.config.ts"
|
|
134
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
135
|
-
import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
|
|
136
|
-
|
|
137
|
-
const config: IntlayerConfig = {
|
|
138
|
-
internationalization: {
|
|
139
|
-
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
140
|
-
defaultLocale: Locales.ENGLISH,
|
|
141
|
-
},
|
|
142
|
-
|
|
143
|
-
// 保持您当前的 JSON 文件与 Intlayer 词典同步
|
|
144
|
-
plugins: [
|
|
145
|
-
/**
|
|
146
|
-
* 将加载 src 目录中所有匹配模式 {key}.i18n.json 的 JSON 文件
|
|
147
|
-
*/
|
|
148
|
-
loadJSON({
|
|
149
|
-
source: ({ key }) => `./src/**/${key}.i18n.json`,
|
|
150
|
-
locale: Locales.ENGLISH,
|
|
151
|
-
priority: 1, // 确保这些 JSON 文件优先于 `./locales/en/${key}.json` 中的文件
|
|
152
|
-
}),
|
|
153
|
-
/**
|
|
154
|
-
* 将加载并将输出和翻译写回到 locales 目录中的 JSON 文件
|
|
155
|
-
*/
|
|
156
|
-
syncJSON({
|
|
157
|
-
format: "vue-i18n",
|
|
158
|
-
source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
|
|
159
|
-
priority: 0,
|
|
160
|
-
}),
|
|
161
|
-
],
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
export default config;
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
这将加载 `src` 目录中所有匹配 `{key}.i18n.json` 模式的 JSON 文件,并将它们作为 Intlayer 字典加载。
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
125
|
## Git 配置
|
|
172
126
|
|
|
173
127
|
将生成的文件排除在版本控制之外:
|
|
@@ -41,7 +41,8 @@ const blogEntry = {
|
|
|
41
41
|
tr: readLocale("compiler_vs_declarative_i18n.md", "tr"),
|
|
42
42
|
pl: readLocale("compiler_vs_declarative_i18n.md", "pl"),
|
|
43
43
|
id: readLocale("compiler_vs_declarative_i18n.md", "id"),
|
|
44
|
-
vi: readLocale("compiler_vs_declarative_i18n.md", "vi")
|
|
44
|
+
vi: readLocale("compiler_vs_declarative_i18n.md", "vi"),
|
|
45
|
+
uk: readLocale("compiler_vs_declarative_i18n.md", "uk")
|
|
45
46
|
},
|
|
46
47
|
"./blog/en/i18n_using_next-i18next.md": {
|
|
47
48
|
en: readLocale("i18n_using_next-i18next.md", "en"),
|
|
@@ -60,7 +61,8 @@ const blogEntry = {
|
|
|
60
61
|
tr: readLocale("i18n_using_next-i18next.md", "tr"),
|
|
61
62
|
pl: readLocale("i18n_using_next-i18next.md", "pl"),
|
|
62
63
|
id: readLocale("i18n_using_next-i18next.md", "id"),
|
|
63
|
-
vi: readLocale("i18n_using_next-i18next.md", "vi")
|
|
64
|
+
vi: readLocale("i18n_using_next-i18next.md", "vi"),
|
|
65
|
+
uk: readLocale("i18n_using_next-i18next.md", "uk")
|
|
64
66
|
},
|
|
65
67
|
"./blog/en/i18n_using_next-intl.md": {
|
|
66
68
|
en: readLocale("i18n_using_next-intl.md", "en"),
|
|
@@ -79,7 +81,8 @@ const blogEntry = {
|
|
|
79
81
|
tr: readLocale("i18n_using_next-intl.md", "tr"),
|
|
80
82
|
pl: readLocale("i18n_using_next-intl.md", "pl"),
|
|
81
83
|
id: readLocale("i18n_using_next-intl.md", "id"),
|
|
82
|
-
vi: readLocale("i18n_using_next-intl.md", "vi")
|
|
84
|
+
vi: readLocale("i18n_using_next-intl.md", "vi"),
|
|
85
|
+
uk: readLocale("i18n_using_next-intl.md", "uk")
|
|
83
86
|
},
|
|
84
87
|
"./blog/en/index.md": {
|
|
85
88
|
en: readLocale("index.md", "en"),
|
|
@@ -98,7 +101,8 @@ const blogEntry = {
|
|
|
98
101
|
tr: readLocale("index.md", "tr"),
|
|
99
102
|
pl: readLocale("index.md", "pl"),
|
|
100
103
|
id: readLocale("index.md", "id"),
|
|
101
|
-
vi: readLocale("index.md", "vi")
|
|
104
|
+
vi: readLocale("index.md", "vi"),
|
|
105
|
+
uk: readLocale("index.md", "uk")
|
|
102
106
|
},
|
|
103
107
|
"./blog/en/internationalization_and_SEO.md": {
|
|
104
108
|
en: readLocale("internationalization_and_SEO.md", "en"),
|
|
@@ -117,7 +121,8 @@ const blogEntry = {
|
|
|
117
121
|
tr: readLocale("internationalization_and_SEO.md", "tr"),
|
|
118
122
|
pl: readLocale("internationalization_and_SEO.md", "pl"),
|
|
119
123
|
id: readLocale("internationalization_and_SEO.md", "id"),
|
|
120
|
-
vi: readLocale("internationalization_and_SEO.md", "vi")
|
|
124
|
+
vi: readLocale("internationalization_and_SEO.md", "vi"),
|
|
125
|
+
uk: readLocale("internationalization_and_SEO.md", "uk")
|
|
121
126
|
},
|
|
122
127
|
"./blog/en/intlayer_with_i18next.md": {
|
|
123
128
|
en: readLocale("intlayer_with_i18next.md", "en"),
|
|
@@ -136,7 +141,8 @@ const blogEntry = {
|
|
|
136
141
|
tr: readLocale("intlayer_with_i18next.md", "tr"),
|
|
137
142
|
pl: readLocale("intlayer_with_i18next.md", "pl"),
|
|
138
143
|
id: readLocale("intlayer_with_i18next.md", "id"),
|
|
139
|
-
vi: readLocale("intlayer_with_i18next.md", "vi")
|
|
144
|
+
vi: readLocale("intlayer_with_i18next.md", "vi"),
|
|
145
|
+
uk: readLocale("intlayer_with_i18next.md", "uk")
|
|
140
146
|
},
|
|
141
147
|
"./blog/en/intlayer_with_next-i18next.md": {
|
|
142
148
|
en: readLocale("intlayer_with_next-i18next.md", "en"),
|
|
@@ -155,7 +161,8 @@ const blogEntry = {
|
|
|
155
161
|
tr: readLocale("intlayer_with_next-i18next.md", "tr"),
|
|
156
162
|
pl: readLocale("intlayer_with_next-i18next.md", "pl"),
|
|
157
163
|
id: readLocale("intlayer_with_next-i18next.md", "id"),
|
|
158
|
-
vi: readLocale("intlayer_with_next-i18next.md", "vi")
|
|
164
|
+
vi: readLocale("intlayer_with_next-i18next.md", "vi"),
|
|
165
|
+
uk: readLocale("intlayer_with_next-i18next.md", "uk")
|
|
159
166
|
},
|
|
160
167
|
"./blog/en/intlayer_with_next-intl.md": {
|
|
161
168
|
en: readLocale("intlayer_with_next-intl.md", "en"),
|
|
@@ -174,7 +181,8 @@ const blogEntry = {
|
|
|
174
181
|
tr: readLocale("intlayer_with_next-intl.md", "tr"),
|
|
175
182
|
pl: readLocale("intlayer_with_next-intl.md", "pl"),
|
|
176
183
|
id: readLocale("intlayer_with_next-intl.md", "id"),
|
|
177
|
-
vi: readLocale("intlayer_with_next-intl.md", "vi")
|
|
184
|
+
vi: readLocale("intlayer_with_next-intl.md", "vi"),
|
|
185
|
+
uk: readLocale("intlayer_with_next-intl.md", "uk")
|
|
178
186
|
},
|
|
179
187
|
"./blog/en/intlayer_with_react-i18next.md": {
|
|
180
188
|
en: readLocale("intlayer_with_react-i18next.md", "en"),
|
|
@@ -193,7 +201,8 @@ const blogEntry = {
|
|
|
193
201
|
tr: readLocale("intlayer_with_react-i18next.md", "tr"),
|
|
194
202
|
pl: readLocale("intlayer_with_react-i18next.md", "pl"),
|
|
195
203
|
id: readLocale("intlayer_with_react-i18next.md", "id"),
|
|
196
|
-
vi: readLocale("intlayer_with_react-i18next.md", "vi")
|
|
204
|
+
vi: readLocale("intlayer_with_react-i18next.md", "vi"),
|
|
205
|
+
uk: readLocale("intlayer_with_react-i18next.md", "uk")
|
|
197
206
|
},
|
|
198
207
|
"./blog/en/intlayer_with_react-intl.md": {
|
|
199
208
|
en: readLocale("intlayer_with_react-intl.md", "en"),
|
|
@@ -212,7 +221,8 @@ const blogEntry = {
|
|
|
212
221
|
tr: readLocale("intlayer_with_react-intl.md", "tr"),
|
|
213
222
|
pl: readLocale("intlayer_with_react-intl.md", "pl"),
|
|
214
223
|
id: readLocale("intlayer_with_react-intl.md", "id"),
|
|
215
|
-
vi: readLocale("intlayer_with_react-intl.md", "vi")
|
|
224
|
+
vi: readLocale("intlayer_with_react-intl.md", "vi"),
|
|
225
|
+
uk: readLocale("intlayer_with_react-intl.md", "uk")
|
|
216
226
|
},
|
|
217
227
|
"./blog/en/intlayer_with_vue-i18n.md": {
|
|
218
228
|
en: readLocale("intlayer_with_vue-i18n.md", "en"),
|
|
@@ -231,7 +241,8 @@ const blogEntry = {
|
|
|
231
241
|
tr: readLocale("intlayer_with_vue-i18n.md", "tr"),
|
|
232
242
|
pl: readLocale("intlayer_with_vue-i18n.md", "pl"),
|
|
233
243
|
id: readLocale("intlayer_with_vue-i18n.md", "id"),
|
|
234
|
-
vi: readLocale("intlayer_with_vue-i18n.md", "vi")
|
|
244
|
+
vi: readLocale("intlayer_with_vue-i18n.md", "vi"),
|
|
245
|
+
uk: readLocale("intlayer_with_vue-i18n.md", "uk")
|
|
235
246
|
},
|
|
236
247
|
"./blog/en/l10n_platform_alternative/Lokalise.md": {
|
|
237
248
|
en: readLocale("l10n_platform_alternative/Lokalise.md", "en"),
|
|
@@ -250,7 +261,8 @@ const blogEntry = {
|
|
|
250
261
|
tr: readLocale("l10n_platform_alternative/Lokalise.md", "tr"),
|
|
251
262
|
pl: readLocale("l10n_platform_alternative/Lokalise.md", "pl"),
|
|
252
263
|
id: readLocale("l10n_platform_alternative/Lokalise.md", "id"),
|
|
253
|
-
vi: readLocale("l10n_platform_alternative/Lokalise.md", "vi")
|
|
264
|
+
vi: readLocale("l10n_platform_alternative/Lokalise.md", "vi"),
|
|
265
|
+
uk: readLocale("l10n_platform_alternative/Lokalise.md", "uk")
|
|
254
266
|
},
|
|
255
267
|
"./blog/en/l10n_platform_alternative/crowdin.md": {
|
|
256
268
|
en: readLocale("l10n_platform_alternative/crowdin.md", "en"),
|
|
@@ -269,7 +281,8 @@ const blogEntry = {
|
|
|
269
281
|
tr: readLocale("l10n_platform_alternative/crowdin.md", "tr"),
|
|
270
282
|
pl: readLocale("l10n_platform_alternative/crowdin.md", "pl"),
|
|
271
283
|
id: readLocale("l10n_platform_alternative/crowdin.md", "id"),
|
|
272
|
-
vi: readLocale("l10n_platform_alternative/crowdin.md", "vi")
|
|
284
|
+
vi: readLocale("l10n_platform_alternative/crowdin.md", "vi"),
|
|
285
|
+
uk: readLocale("l10n_platform_alternative/crowdin.md", "uk")
|
|
273
286
|
},
|
|
274
287
|
"./blog/en/l10n_platform_alternative/phrase.md": {
|
|
275
288
|
en: readLocale("l10n_platform_alternative/phrase.md", "en"),
|
|
@@ -288,7 +301,8 @@ const blogEntry = {
|
|
|
288
301
|
tr: readLocale("l10n_platform_alternative/phrase.md", "tr"),
|
|
289
302
|
pl: readLocale("l10n_platform_alternative/phrase.md", "pl"),
|
|
290
303
|
id: readLocale("l10n_platform_alternative/phrase.md", "id"),
|
|
291
|
-
vi: readLocale("l10n_platform_alternative/phrase.md", "vi")
|
|
304
|
+
vi: readLocale("l10n_platform_alternative/phrase.md", "vi"),
|
|
305
|
+
uk: readLocale("l10n_platform_alternative/phrase.md", "uk")
|
|
292
306
|
},
|
|
293
307
|
"./blog/en/list_i18n_technologies/CMS/drupal.md": {
|
|
294
308
|
en: readLocale("list_i18n_technologies/CMS/drupal.md", "en"),
|
|
@@ -307,7 +321,8 @@ const blogEntry = {
|
|
|
307
321
|
tr: readLocale("list_i18n_technologies/CMS/drupal.md", "tr"),
|
|
308
322
|
pl: readLocale("list_i18n_technologies/CMS/drupal.md", "pl"),
|
|
309
323
|
id: readLocale("list_i18n_technologies/CMS/drupal.md", "id"),
|
|
310
|
-
vi: readLocale("list_i18n_technologies/CMS/drupal.md", "vi")
|
|
324
|
+
vi: readLocale("list_i18n_technologies/CMS/drupal.md", "vi"),
|
|
325
|
+
uk: readLocale("list_i18n_technologies/CMS/drupal.md", "uk")
|
|
311
326
|
},
|
|
312
327
|
"./blog/en/list_i18n_technologies/CMS/wix.md": {
|
|
313
328
|
en: readLocale("list_i18n_technologies/CMS/wix.md", "en"),
|
|
@@ -326,7 +341,8 @@ const blogEntry = {
|
|
|
326
341
|
tr: readLocale("list_i18n_technologies/CMS/wix.md", "tr"),
|
|
327
342
|
pl: readLocale("list_i18n_technologies/CMS/wix.md", "pl"),
|
|
328
343
|
id: readLocale("list_i18n_technologies/CMS/wix.md", "id"),
|
|
329
|
-
vi: readLocale("list_i18n_technologies/CMS/wix.md", "vi")
|
|
344
|
+
vi: readLocale("list_i18n_technologies/CMS/wix.md", "vi"),
|
|
345
|
+
uk: readLocale("list_i18n_technologies/CMS/wix.md", "uk")
|
|
330
346
|
},
|
|
331
347
|
"./blog/en/list_i18n_technologies/CMS/wordpress.md": {
|
|
332
348
|
en: readLocale("list_i18n_technologies/CMS/wordpress.md", "en"),
|
|
@@ -345,7 +361,8 @@ const blogEntry = {
|
|
|
345
361
|
tr: readLocale("list_i18n_technologies/CMS/wordpress.md", "tr"),
|
|
346
362
|
pl: readLocale("list_i18n_technologies/CMS/wordpress.md", "pl"),
|
|
347
363
|
id: readLocale("list_i18n_technologies/CMS/wordpress.md", "id"),
|
|
348
|
-
vi: readLocale("list_i18n_technologies/CMS/wordpress.md", "vi")
|
|
364
|
+
vi: readLocale("list_i18n_technologies/CMS/wordpress.md", "vi"),
|
|
365
|
+
uk: readLocale("list_i18n_technologies/CMS/wordpress.md", "uk")
|
|
349
366
|
},
|
|
350
367
|
"./blog/en/list_i18n_technologies/frameworks/angular.md": {
|
|
351
368
|
en: readLocale("list_i18n_technologies/frameworks/angular.md", "en"),
|
|
@@ -364,7 +381,8 @@ const blogEntry = {
|
|
|
364
381
|
tr: readLocale("list_i18n_technologies/frameworks/angular.md", "tr"),
|
|
365
382
|
pl: readLocale("list_i18n_technologies/frameworks/angular.md", "pl"),
|
|
366
383
|
id: readLocale("list_i18n_technologies/frameworks/angular.md", "id"),
|
|
367
|
-
vi: readLocale("list_i18n_technologies/frameworks/angular.md", "vi")
|
|
384
|
+
vi: readLocale("list_i18n_technologies/frameworks/angular.md", "vi"),
|
|
385
|
+
uk: readLocale("list_i18n_technologies/frameworks/angular.md", "uk")
|
|
368
386
|
},
|
|
369
387
|
"./blog/en/list_i18n_technologies/frameworks/flutter.md": {
|
|
370
388
|
en: readLocale("list_i18n_technologies/frameworks/flutter.md", "en"),
|
|
@@ -383,7 +401,8 @@ const blogEntry = {
|
|
|
383
401
|
tr: readLocale("list_i18n_technologies/frameworks/flutter.md", "tr"),
|
|
384
402
|
pl: readLocale("list_i18n_technologies/frameworks/flutter.md", "pl"),
|
|
385
403
|
id: readLocale("list_i18n_technologies/frameworks/flutter.md", "id"),
|
|
386
|
-
vi: readLocale("list_i18n_technologies/frameworks/flutter.md", "vi")
|
|
404
|
+
vi: readLocale("list_i18n_technologies/frameworks/flutter.md", "vi"),
|
|
405
|
+
uk: readLocale("list_i18n_technologies/frameworks/flutter.md", "uk")
|
|
387
406
|
},
|
|
388
407
|
"./blog/en/list_i18n_technologies/frameworks/react-native.md": {
|
|
389
408
|
en: readLocale("list_i18n_technologies/frameworks/react-native.md", "en"),
|
|
@@ -402,7 +421,8 @@ const blogEntry = {
|
|
|
402
421
|
tr: readLocale("list_i18n_technologies/frameworks/react-native.md", "tr"),
|
|
403
422
|
pl: readLocale("list_i18n_technologies/frameworks/react-native.md", "pl"),
|
|
404
423
|
id: readLocale("list_i18n_technologies/frameworks/react-native.md", "id"),
|
|
405
|
-
vi: readLocale("list_i18n_technologies/frameworks/react-native.md", "vi")
|
|
424
|
+
vi: readLocale("list_i18n_technologies/frameworks/react-native.md", "vi"),
|
|
425
|
+
uk: readLocale("list_i18n_technologies/frameworks/react-native.md", "uk")
|
|
406
426
|
},
|
|
407
427
|
"./blog/en/list_i18n_technologies/frameworks/react.md": {
|
|
408
428
|
en: readLocale("list_i18n_technologies/frameworks/react.md", "en"),
|
|
@@ -421,7 +441,8 @@ const blogEntry = {
|
|
|
421
441
|
tr: readLocale("list_i18n_technologies/frameworks/react.md", "tr"),
|
|
422
442
|
pl: readLocale("list_i18n_technologies/frameworks/react.md", "pl"),
|
|
423
443
|
id: readLocale("list_i18n_technologies/frameworks/react.md", "id"),
|
|
424
|
-
vi: readLocale("list_i18n_technologies/frameworks/react.md", "vi")
|
|
444
|
+
vi: readLocale("list_i18n_technologies/frameworks/react.md", "vi"),
|
|
445
|
+
uk: readLocale("list_i18n_technologies/frameworks/react.md", "uk")
|
|
425
446
|
},
|
|
426
447
|
"./blog/en/list_i18n_technologies/frameworks/svelte.md": {
|
|
427
448
|
en: readLocale("list_i18n_technologies/frameworks/svelte.md", "en"),
|
|
@@ -440,7 +461,8 @@ const blogEntry = {
|
|
|
440
461
|
tr: readLocale("list_i18n_technologies/frameworks/svelte.md", "tr"),
|
|
441
462
|
pl: readLocale("list_i18n_technologies/frameworks/svelte.md", "pl"),
|
|
442
463
|
id: readLocale("list_i18n_technologies/frameworks/svelte.md", "id"),
|
|
443
|
-
vi: readLocale("list_i18n_technologies/frameworks/svelte.md", "vi")
|
|
464
|
+
vi: readLocale("list_i18n_technologies/frameworks/svelte.md", "vi"),
|
|
465
|
+
uk: readLocale("list_i18n_technologies/frameworks/svelte.md", "uk")
|
|
444
466
|
},
|
|
445
467
|
"./blog/en/list_i18n_technologies/frameworks/vue.md": {
|
|
446
468
|
en: readLocale("list_i18n_technologies/frameworks/vue.md", "en"),
|
|
@@ -459,7 +481,8 @@ const blogEntry = {
|
|
|
459
481
|
tr: readLocale("list_i18n_technologies/frameworks/vue.md", "tr"),
|
|
460
482
|
pl: readLocale("list_i18n_technologies/frameworks/vue.md", "pl"),
|
|
461
483
|
id: readLocale("list_i18n_technologies/frameworks/vue.md", "id"),
|
|
462
|
-
vi: readLocale("list_i18n_technologies/frameworks/vue.md", "vi")
|
|
484
|
+
vi: readLocale("list_i18n_technologies/frameworks/vue.md", "vi"),
|
|
485
|
+
uk: readLocale("list_i18n_technologies/frameworks/vue.md", "uk")
|
|
463
486
|
},
|
|
464
487
|
"./blog/en/next-i18next_vs_next-intl_vs_intlayer.md": {
|
|
465
488
|
en: readLocale("next-i18next_vs_next-intl_vs_intlayer.md", "en"),
|
|
@@ -478,7 +501,8 @@ const blogEntry = {
|
|
|
478
501
|
tr: readLocale("next-i18next_vs_next-intl_vs_intlayer.md", "tr"),
|
|
479
502
|
pl: readLocale("next-i18next_vs_next-intl_vs_intlayer.md", "pl"),
|
|
480
503
|
id: readLocale("next-i18next_vs_next-intl_vs_intlayer.md", "id"),
|
|
481
|
-
vi: readLocale("next-i18next_vs_next-intl_vs_intlayer.md", "vi")
|
|
504
|
+
vi: readLocale("next-i18next_vs_next-intl_vs_intlayer.md", "vi"),
|
|
505
|
+
uk: readLocale("next-i18next_vs_next-intl_vs_intlayer.md", "uk")
|
|
482
506
|
},
|
|
483
507
|
"./blog/en/nextjs-multilingual-seo-comparison.md": {
|
|
484
508
|
en: readLocale("nextjs-multilingual-seo-comparison.md", "en"),
|
|
@@ -497,7 +521,8 @@ const blogEntry = {
|
|
|
497
521
|
tr: readLocale("nextjs-multilingual-seo-comparison.md", "tr"),
|
|
498
522
|
pl: readLocale("nextjs-multilingual-seo-comparison.md", "pl"),
|
|
499
523
|
id: readLocale("nextjs-multilingual-seo-comparison.md", "id"),
|
|
500
|
-
vi: readLocale("nextjs-multilingual-seo-comparison.md", "vi")
|
|
524
|
+
vi: readLocale("nextjs-multilingual-seo-comparison.md", "vi"),
|
|
525
|
+
uk: readLocale("nextjs-multilingual-seo-comparison.md", "uk")
|
|
501
526
|
},
|
|
502
527
|
"./blog/en/rag_powered_documentation_assistant.md": {
|
|
503
528
|
en: readLocale("rag_powered_documentation_assistant.md", "en"),
|
|
@@ -516,7 +541,8 @@ const blogEntry = {
|
|
|
516
541
|
tr: readLocale("rag_powered_documentation_assistant.md", "tr"),
|
|
517
542
|
pl: readLocale("rag_powered_documentation_assistant.md", "pl"),
|
|
518
543
|
id: readLocale("rag_powered_documentation_assistant.md", "id"),
|
|
519
|
-
vi: readLocale("rag_powered_documentation_assistant.md", "vi")
|
|
544
|
+
vi: readLocale("rag_powered_documentation_assistant.md", "vi"),
|
|
545
|
+
uk: readLocale("rag_powered_documentation_assistant.md", "uk")
|
|
520
546
|
},
|
|
521
547
|
"./blog/en/react-i18next_vs_react-intl_vs_intlayer.md": {
|
|
522
548
|
en: readLocale("react-i18next_vs_react-intl_vs_intlayer.md", "en"),
|
|
@@ -535,7 +561,8 @@ const blogEntry = {
|
|
|
535
561
|
tr: readLocale("react-i18next_vs_react-intl_vs_intlayer.md", "tr"),
|
|
536
562
|
pl: readLocale("react-i18next_vs_react-intl_vs_intlayer.md", "pl"),
|
|
537
563
|
id: readLocale("react-i18next_vs_react-intl_vs_intlayer.md", "id"),
|
|
538
|
-
vi: readLocale("react-i18next_vs_react-intl_vs_intlayer.md", "vi")
|
|
564
|
+
vi: readLocale("react-i18next_vs_react-intl_vs_intlayer.md", "vi"),
|
|
565
|
+
uk: readLocale("react-i18next_vs_react-intl_vs_intlayer.md", "uk")
|
|
539
566
|
},
|
|
540
567
|
"./blog/en/vue-i18n_vs_intlayer.md": {
|
|
541
568
|
en: readLocale("vue-i18n_vs_intlayer.md", "en"),
|
|
@@ -554,7 +581,8 @@ const blogEntry = {
|
|
|
554
581
|
tr: readLocale("vue-i18n_vs_intlayer.md", "tr"),
|
|
555
582
|
pl: readLocale("vue-i18n_vs_intlayer.md", "pl"),
|
|
556
583
|
id: readLocale("vue-i18n_vs_intlayer.md", "id"),
|
|
557
|
-
vi: readLocale("vue-i18n_vs_intlayer.md", "vi")
|
|
584
|
+
vi: readLocale("vue-i18n_vs_intlayer.md", "vi"),
|
|
585
|
+
uk: readLocale("vue-i18n_vs_intlayer.md", "uk")
|
|
558
586
|
},
|
|
559
587
|
"./blog/en/what_is_internationalization.md": {
|
|
560
588
|
en: readLocale("what_is_internationalization.md", "en"),
|
|
@@ -573,7 +601,8 @@ const blogEntry = {
|
|
|
573
601
|
tr: readLocale("what_is_internationalization.md", "tr"),
|
|
574
602
|
pl: readLocale("what_is_internationalization.md", "pl"),
|
|
575
603
|
id: readLocale("what_is_internationalization.md", "id"),
|
|
576
|
-
vi: readLocale("what_is_internationalization.md", "vi")
|
|
604
|
+
vi: readLocale("what_is_internationalization.md", "vi"),
|
|
605
|
+
uk: readLocale("what_is_internationalization.md", "uk")
|
|
577
606
|
}
|
|
578
607
|
};
|
|
579
608
|
|