@intlayer/docs 9.5.1 → 9.5.3
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/README.md +1 -1
- package/blog/ar/history_of_i18n.md +304 -0
- package/blog/ar/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/ar/i18next_vs_intlayer.md +445 -0
- package/blog/ar/is_i18next_outdated.md +1 -1
- package/blog/ar/is_next-intl_outdated.md +1 -1
- package/blog/ar/is_vue-i18n_outdated.md +1 -1
- package/blog/ar/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/ar/lingui_vs_intlayer.md +381 -0
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ar/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/ar/next-intl_vs_intlayer.md +397 -0
- package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +286 -0
- package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/de/history_of_i18n.md +304 -0
- package/blog/de/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/de/i18next_vs_intlayer.md +445 -0
- package/blog/de/is_i18next_outdated.md +1 -1
- package/blog/de/is_next-intl_outdated.md +1 -1
- package/blog/de/is_vue-i18n_outdated.md +1 -1
- package/blog/de/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/de/lingui_vs_intlayer.md +381 -0
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/de/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/de/next-intl_vs_intlayer.md +415 -0
- package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/de/vue-i18n_vs_intlayer_benchmark.md +355 -0
- package/blog/en/history_of_i18n.md +304 -0
- package/blog/en/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/en/i18next_vs_intlayer.md +445 -0
- package/blog/en/is_i18next_outdated.md +1 -1
- package/blog/en/is_next-intl_outdated.md +1 -1
- package/blog/en/is_vue-i18n_outdated.md +1 -1
- package/blog/en/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/en/lingui_vs_intlayer.md +381 -0
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/en/next-intl_vs_intlayer.md +415 -0
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/en/vue-i18n_vs_intlayer.md +1 -1
- package/blog/en/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/en-GB/history_of_i18n.md +304 -0
- package/blog/en-GB/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/en-GB/i18next_vs_intlayer.md +445 -0
- package/blog/en-GB/is_i18next_outdated.md +1 -1
- package/blog/en-GB/is_next-intl_outdated.md +1 -1
- package/blog/en-GB/is_vue-i18n_outdated.md +1 -1
- package/blog/en-GB/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/en-GB/lingui_vs_intlayer.md +381 -0
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/en-GB/next-intl_vs_intlayer.md +415 -0
- package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/en-GB/vue-i18n_vs_intlayer.md +1 -1
- package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +245 -0
- package/blog/es/history_of_i18n.md +304 -0
- package/blog/es/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/es/i18next_vs_intlayer.md +445 -0
- package/blog/es/is_i18next_outdated.md +1 -1
- package/blog/es/is_next-intl_outdated.md +1 -1
- package/blog/es/is_vue-i18n_outdated.md +1 -1
- package/blog/es/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/es/lingui_vs_intlayer.md +381 -0
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/es/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/es/next-intl_vs_intlayer.md +417 -0
- package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/es/vue-i18n_vs_intlayer_benchmark.md +363 -0
- package/blog/fr/history_of_i18n.md +304 -0
- package/blog/fr/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/fr/i18next_vs_intlayer.md +445 -0
- package/blog/fr/is_i18next_outdated.md +1 -1
- package/blog/fr/is_next-intl_outdated.md +1 -1
- package/blog/fr/is_vue-i18n_outdated.md +1 -1
- package/blog/fr/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/fr/lingui_vs_intlayer.md +381 -0
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/fr/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/fr/next-intl_vs_intlayer.md +417 -0
- package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +287 -0
- package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +39 -0
- package/blog/hi/history_of_i18n.md +304 -0
- package/blog/hi/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/hi/i18next_vs_intlayer.md +445 -0
- package/blog/hi/is_i18next_outdated.md +1 -1
- package/blog/hi/is_next-intl_outdated.md +1 -1
- package/blog/hi/is_vue-i18n_outdated.md +1 -1
- package/blog/hi/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/hi/lingui_vs_intlayer.md +381 -0
- package/blog/hi/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/hi/next-intl_vs_intlayer.md +397 -0
- package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/id/history_of_i18n.md +304 -0
- package/blog/id/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/id/i18next_vs_intlayer.md +445 -0
- package/blog/id/is_i18next_outdated.md +1 -1
- package/blog/id/is_next-intl_outdated.md +1 -1
- package/blog/id/is_vue-i18n_outdated.md +1 -1
- package/blog/id/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/id/lingui_vs_intlayer.md +381 -0
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/next-intl_vs_intlayer-next-intl.md +310 -0
- package/blog/id/next-intl_vs_intlayer.md +397 -0
- package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +36 -0
- package/blog/id/vue-i18n_vs_intlayer.md +1 -1
- package/blog/id/vue-i18n_vs_intlayer_benchmark.md +41 -0
- package/blog/it/history_of_i18n.md +304 -0
- package/blog/it/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/it/i18next_vs_intlayer.md +445 -0
- package/blog/it/is_i18next_outdated.md +1 -1
- package/blog/it/is_next-intl_outdated.md +1 -1
- package/blog/it/is_vue-i18n_outdated.md +1 -1
- package/blog/it/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/it/lingui_vs_intlayer.md +381 -0
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/it/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/it/next-intl_vs_intlayer.md +418 -0
- package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/it/vue-i18n_vs_intlayer_benchmark.md +34 -0
- package/blog/ja/history_of_i18n.md +304 -0
- package/blog/ja/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/ja/i18next_vs_intlayer.md +447 -0
- package/blog/ja/is_i18next_outdated.md +1 -1
- package/blog/ja/is_next-intl_outdated.md +1 -1
- package/blog/ja/is_vue-i18n_outdated.md +1 -1
- package/blog/ja/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/ja/lingui_vs_intlayer.md +381 -0
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ja/next-intl_vs_intlayer-next-intl.md +310 -0
- package/blog/ja/next-intl_vs_intlayer.md +422 -0
- package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/ja/vue-i18n_vs_intlayer.md +1 -1
- package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/ko/history_of_i18n.md +304 -0
- package/blog/ko/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/ko/i18next_vs_intlayer.md +447 -0
- package/blog/ko/is_i18next_outdated.md +1 -1
- package/blog/ko/is_next-intl_outdated.md +1 -1
- package/blog/ko/is_vue-i18n_outdated.md +1 -1
- package/blog/ko/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/ko/lingui_vs_intlayer.md +381 -0
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ko/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/ko/next-intl_vs_intlayer.md +397 -0
- package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/ko/vue-i18n_vs_intlayer.md +1 -1
- package/blog/ko/vue-i18n_vs_intlayer_benchmark.md +366 -0
- package/blog/pl/history_of_i18n.md +304 -0
- package/blog/pl/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/pl/i18next_vs_intlayer.md +445 -0
- package/blog/pl/is_i18next_outdated.md +1 -1
- package/blog/pl/is_next-intl_outdated.md +1 -1
- package/blog/pl/is_vue-i18n_outdated.md +1 -1
- package/blog/pl/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/pl/lingui_vs_intlayer.md +381 -0
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/pl/next-intl_vs_intlayer.md +397 -0
- package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +289 -0
- package/blog/pl/vue-i18n_vs_intlayer.md +1 -1
- package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/pt/history_of_i18n.md +304 -0
- package/blog/pt/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/pt/i18next_vs_intlayer.md +445 -0
- package/blog/pt/is_i18next_outdated.md +1 -1
- package/blog/pt/is_next-intl_outdated.md +1 -1
- package/blog/pt/is_vue-i18n_outdated.md +1 -1
- package/blog/pt/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/pt/lingui_vs_intlayer.md +381 -0
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pt/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/pt/next-intl_vs_intlayer.md +411 -0
- package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/ru/history_of_i18n.md +304 -0
- package/blog/ru/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/ru/i18next_vs_intlayer.md +445 -0
- package/blog/ru/is_i18next_outdated.md +1 -1
- package/blog/ru/is_next-intl_outdated.md +1 -1
- package/blog/ru/is_vue-i18n_outdated.md +1 -1
- package/blog/ru/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/ru/lingui_vs_intlayer.md +381 -0
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ru/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/ru/next-intl_vs_intlayer.md +417 -0
- package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +54 -0
- package/blog/tr/history_of_i18n.md +304 -0
- package/blog/tr/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/tr/i18next_vs_intlayer.md +445 -0
- package/blog/tr/is_i18next_outdated.md +1 -1
- package/blog/tr/is_next-intl_outdated.md +1 -1
- package/blog/tr/is_vue-i18n_outdated.md +1 -1
- package/blog/tr/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/tr/lingui_vs_intlayer.md +381 -0
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/tr/next-intl_vs_intlayer.md +397 -0
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/tr/vue-i18n_vs_intlayer.md +1 -1
- package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/uk/history_of_i18n.md +304 -0
- package/blog/uk/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/uk/i18next_vs_intlayer.md +445 -0
- package/blog/uk/is_i18next_outdated.md +1 -1
- package/blog/uk/is_next-intl_outdated.md +1 -1
- package/blog/uk/is_vue-i18n_outdated.md +1 -1
- package/blog/uk/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/uk/lingui_vs_intlayer.md +381 -0
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/uk/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/uk/next-intl_vs_intlayer.md +397 -0
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +270 -0
- package/blog/uk/vue-i18n_vs_intlayer.md +1 -1
- package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/vi/history_of_i18n.md +304 -0
- package/blog/vi/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/vi/i18next_vs_intlayer.md +445 -0
- package/blog/vi/is_i18next_outdated.md +1 -1
- package/blog/vi/is_next-intl_outdated.md +1 -1
- package/blog/vi/is_vue-i18n_outdated.md +1 -1
- package/blog/vi/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/vi/lingui_vs_intlayer.md +381 -0
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/vi/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/vi/next-intl_vs_intlayer.md +397 -0
- package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/vi/vue-i18n_vs_intlayer.md +1 -1
- package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/zh/history_of_i18n.md +304 -0
- package/blog/zh/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/zh/i18next_vs_intlayer.md +445 -0
- package/blog/zh/is_i18next_outdated.md +1 -1
- package/blog/zh/is_next-intl_outdated.md +1 -1
- package/blog/zh/is_vue-i18n_outdated.md +1 -1
- package/blog/zh/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/zh/lingui_vs_intlayer.md +381 -0
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/zh/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/zh/next-intl_vs_intlayer.md +422 -0
- package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/zh/vue-i18n_vs_intlayer.md +1 -1
- package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +30 -0
- package/dist/cjs/generated/blog.entry.cjs +180 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +0 -20
- 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/esm/generated/blog.entry.mjs +180 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +0 -20
- 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/types/generated/blog.entry.d.ts +9 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +0 -1
- package/dist/types/generated/docs.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/benchmark/index.md +4 -1
- package/docs/ar/benchmark/nextjs.md +33 -28
- package/docs/ar/benchmark/solid.md +14 -11
- package/docs/ar/benchmark/svelte.md +13 -10
- package/docs/ar/benchmark/tanstack.md +30 -25
- package/docs/ar/benchmark/vue.md +12 -8
- package/docs/ar/cli/build.md +8 -1
- package/docs/ar/cli/configuration.md +3 -1
- package/docs/ar/cli/doc-review.md +8 -1
- package/docs/ar/cli/doc-translate.md +5 -1
- package/docs/ar/cli/extract.md +2 -1
- package/docs/ar/cli/fill.md +5 -1
- package/docs/ar/cli/index.md +4 -5
- package/docs/ar/cli/live.md +5 -1
- package/docs/ar/cli/login.md +2 -2
- package/docs/ar/cli/pull.md +5 -1
- package/docs/ar/cli/push.md +5 -1
- package/docs/ar/cli/scan.md +5 -1
- package/docs/ar/cli/standalone.md +5 -1
- package/docs/ar/cli/test.md +5 -1
- package/docs/ar/cli/watch.md +5 -1
- package/docs/ar/compat/i18n-js.md +1 -1
- package/docs/ar/compat/i18next.md +1 -1
- package/docs/ar/compat/lingui.md +1 -1
- package/docs/ar/compat/next-i18next.md +1 -1
- package/docs/ar/compat/next-intl.md +1 -1
- package/docs/ar/compat/next-translate.md +1 -1
- package/docs/ar/compat/ngx-translate.md +1 -1
- package/docs/ar/compat/nuxtjs-i18n.md +1 -1
- package/docs/ar/compat/polyglot.md +1 -1
- package/docs/ar/compat/react-i18next.md +1 -1
- package/docs/ar/compat/react-intl.md +1 -1
- package/docs/ar/compat/svelte-i18n.md +1 -1
- package/docs/ar/compat/transloco.md +1 -1
- package/docs/ar/compat/vue-i18n.md +1 -1
- package/docs/ar/interest_of_intlayer.md +1 -1
- package/docs/ar/intlayer_with_remix_3.md +543 -0
- package/docs/bn/cli/index.md +4 -5
- package/docs/bn/cli/scan.md +5 -1
- package/docs/bn/cli/standalone.md +5 -1
- package/docs/bn/interest_of_intlayer.md +1 -1
- package/docs/cs/cli/index.md +4 -5
- package/docs/cs/cli/scan.md +5 -1
- package/docs/cs/cli/standalone.md +5 -1
- package/docs/cs/interest_of_intlayer.md +1 -1
- package/docs/de/benchmark/index.md +4 -1
- package/docs/de/benchmark/nextjs.md +33 -28
- package/docs/de/benchmark/solid.md +14 -11
- package/docs/de/benchmark/svelte.md +13 -10
- package/docs/de/benchmark/tanstack.md +30 -25
- package/docs/de/benchmark/vue.md +12 -8
- package/docs/de/cli/build.md +8 -1
- package/docs/de/cli/configuration.md +3 -1
- package/docs/de/cli/doc-review.md +8 -1
- package/docs/de/cli/doc-translate.md +5 -1
- package/docs/de/cli/extract.md +2 -1
- package/docs/de/cli/fill.md +5 -1
- package/docs/de/cli/index.md +4 -5
- package/docs/de/cli/live.md +5 -1
- package/docs/de/cli/login.md +2 -2
- package/docs/de/cli/pull.md +5 -1
- package/docs/de/cli/push.md +5 -1
- package/docs/de/cli/scan.md +5 -1
- package/docs/de/cli/standalone.md +5 -1
- package/docs/de/cli/test.md +5 -1
- package/docs/de/cli/watch.md +5 -1
- package/docs/de/compat/i18n-js.md +1 -1
- package/docs/de/compat/i18next.md +1 -1
- package/docs/de/compat/lingui.md +1 -1
- package/docs/de/compat/next-i18next.md +1 -1
- package/docs/de/compat/next-intl.md +1 -1
- package/docs/de/compat/next-translate.md +1 -1
- package/docs/de/compat/ngx-translate.md +1 -1
- package/docs/de/compat/nuxtjs-i18n.md +1 -1
- package/docs/de/compat/polyglot.md +1 -1
- package/docs/de/compat/react-i18next.md +1 -1
- package/docs/de/compat/react-intl.md +1 -1
- package/docs/de/compat/svelte-i18n.md +1 -1
- package/docs/de/compat/transloco.md +1 -1
- package/docs/de/compat/vue-i18n.md +1 -1
- package/docs/de/interest_of_intlayer.md +1 -1
- package/docs/de/intlayer_with_remix_3.md +543 -0
- package/docs/en/benchmark/index.md +4 -1
- package/docs/en/benchmark/nextjs.md +33 -28
- package/docs/en/benchmark/solid.md +14 -11
- package/docs/en/benchmark/svelte.md +13 -10
- package/docs/en/benchmark/tanstack.md +31 -26
- package/docs/en/benchmark/vue.md +12 -8
- package/docs/en/cli/build.md +8 -1
- package/docs/en/cli/configuration.md +3 -1
- package/docs/en/cli/doc-review.md +8 -1
- package/docs/en/cli/doc-translate.md +5 -1
- package/docs/en/cli/extract.md +2 -1
- package/docs/en/cli/fill.md +5 -1
- package/docs/en/cli/index.md +4 -5
- package/docs/en/cli/live.md +5 -1
- package/docs/en/cli/login.md +2 -2
- package/docs/en/cli/pull.md +5 -1
- package/docs/en/cli/push.md +5 -1
- package/docs/en/cli/scan.md +5 -1
- package/docs/en/cli/standalone.md +5 -1
- package/docs/en/cli/test.md +5 -1
- package/docs/en/cli/watch.md +5 -1
- package/docs/en/compat/i18n-js.md +1 -1
- package/docs/en/compat/i18next.md +1 -1
- package/docs/en/compat/lingui.md +1 -1
- package/docs/en/compat/next-i18next.md +1 -1
- package/docs/en/compat/next-intl.md +1 -1
- package/docs/en/compat/next-translate.md +1 -1
- package/docs/en/compat/ngx-translate.md +1 -1
- package/docs/en/compat/nuxtjs-i18n.md +1 -1
- package/docs/en/compat/polyglot.md +1 -1
- package/docs/en/compat/react-i18next.md +1 -1
- package/docs/en/compat/react-intl.md +1 -1
- package/docs/en/compat/svelte-i18n.md +1 -1
- package/docs/en/compat/transloco.md +1 -1
- package/docs/en/compat/vue-i18n.md +1 -1
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en/intlayer_with_remix_3.md +103 -71
- package/docs/en-GB/benchmark/index.md +4 -1
- package/docs/en-GB/benchmark/nextjs.md +33 -28
- package/docs/en-GB/benchmark/solid.md +14 -11
- package/docs/en-GB/benchmark/svelte.md +13 -10
- package/docs/en-GB/benchmark/tanstack.md +30 -25
- package/docs/en-GB/benchmark/vue.md +12 -8
- package/docs/en-GB/cli/build.md +8 -1
- package/docs/en-GB/cli/configuration.md +3 -1
- package/docs/en-GB/cli/doc-review.md +8 -1
- package/docs/en-GB/cli/doc-translate.md +5 -1
- package/docs/en-GB/cli/extract.md +2 -1
- package/docs/en-GB/cli/fill.md +5 -1
- package/docs/en-GB/cli/index.md +4 -5
- package/docs/en-GB/cli/live.md +5 -1
- package/docs/en-GB/cli/login.md +2 -2
- package/docs/en-GB/cli/pull.md +5 -1
- package/docs/en-GB/cli/push.md +5 -1
- package/docs/en-GB/cli/scan.md +5 -1
- package/docs/en-GB/cli/standalone.md +5 -1
- package/docs/en-GB/cli/test.md +5 -1
- package/docs/en-GB/cli/watch.md +5 -1
- package/docs/en-GB/compat/i18n-js.md +1 -1
- package/docs/en-GB/compat/i18next.md +1 -1
- package/docs/en-GB/compat/lingui.md +1 -1
- package/docs/en-GB/compat/next-i18next.md +1 -1
- package/docs/en-GB/compat/next-intl.md +1 -1
- package/docs/en-GB/compat/next-translate.md +1 -1
- package/docs/en-GB/compat/ngx-translate.md +1 -1
- package/docs/en-GB/compat/nuxtjs-i18n.md +1 -1
- package/docs/en-GB/compat/polyglot.md +1 -1
- package/docs/en-GB/compat/react-i18next.md +1 -1
- package/docs/en-GB/compat/react-intl.md +1 -1
- package/docs/en-GB/compat/svelte-i18n.md +1 -1
- package/docs/en-GB/compat/transloco.md +1 -1
- package/docs/en-GB/compat/vue-i18n.md +1 -1
- package/docs/en-GB/interest_of_intlayer.md +1 -1
- package/docs/en-GB/intlayer_with_remix_3.md +558 -0
- package/docs/es/benchmark/index.md +4 -1
- package/docs/es/benchmark/nextjs.md +33 -28
- package/docs/es/benchmark/solid.md +14 -11
- package/docs/es/benchmark/svelte.md +13 -10
- package/docs/es/benchmark/tanstack.md +30 -25
- package/docs/es/benchmark/vue.md +12 -8
- package/docs/es/cli/build.md +8 -1
- package/docs/es/cli/configuration.md +3 -1
- package/docs/es/cli/doc-review.md +8 -1
- package/docs/es/cli/doc-translate.md +5 -1
- package/docs/es/cli/extract.md +2 -1
- package/docs/es/cli/fill.md +5 -1
- package/docs/es/cli/index.md +4 -5
- package/docs/es/cli/live.md +5 -1
- package/docs/es/cli/login.md +2 -2
- package/docs/es/cli/pull.md +5 -1
- package/docs/es/cli/push.md +5 -1
- package/docs/es/cli/scan.md +5 -1
- package/docs/es/cli/standalone.md +5 -1
- package/docs/es/cli/test.md +5 -1
- package/docs/es/cli/watch.md +5 -1
- package/docs/es/compat/i18n-js.md +1 -1
- package/docs/es/compat/i18next.md +1 -1
- package/docs/es/compat/lingui.md +1 -1
- package/docs/es/compat/next-i18next.md +1 -1
- package/docs/es/compat/next-intl.md +1 -1
- package/docs/es/compat/next-translate.md +1 -1
- package/docs/es/compat/ngx-translate.md +1 -1
- package/docs/es/compat/nuxtjs-i18n.md +1 -1
- package/docs/es/compat/polyglot.md +1 -1
- package/docs/es/compat/react-i18next.md +1 -1
- package/docs/es/compat/react-intl.md +1 -1
- package/docs/es/compat/svelte-i18n.md +1 -1
- package/docs/es/compat/transloco.md +1 -1
- package/docs/es/compat/vue-i18n.md +1 -1
- package/docs/es/interest_of_intlayer.md +1 -1
- package/docs/es/intlayer_with_remix_3.md +540 -0
- package/docs/fr/benchmark/index.md +4 -1
- package/docs/fr/benchmark/nextjs.md +33 -28
- package/docs/fr/benchmark/solid.md +14 -11
- package/docs/fr/benchmark/svelte.md +13 -10
- package/docs/fr/benchmark/tanstack.md +30 -25
- package/docs/fr/benchmark/vue.md +12 -8
- package/docs/fr/cli/build.md +8 -1
- package/docs/fr/cli/configuration.md +3 -1
- package/docs/fr/cli/doc-review.md +8 -1
- package/docs/fr/cli/doc-translate.md +5 -1
- package/docs/fr/cli/extract.md +2 -1
- package/docs/fr/cli/fill.md +5 -1
- package/docs/fr/cli/index.md +4 -5
- package/docs/fr/cli/live.md +5 -1
- package/docs/fr/cli/login.md +2 -2
- package/docs/fr/cli/pull.md +5 -1
- package/docs/fr/cli/push.md +5 -1
- package/docs/fr/cli/scan.md +5 -1
- package/docs/fr/cli/standalone.md +5 -1
- package/docs/fr/cli/test.md +5 -1
- package/docs/fr/cli/watch.md +5 -1
- package/docs/fr/compat/i18n-js.md +1 -1
- package/docs/fr/compat/i18next.md +1 -1
- package/docs/fr/compat/lingui.md +1 -1
- package/docs/fr/compat/next-i18next.md +1 -1
- package/docs/fr/compat/next-intl.md +1 -1
- package/docs/fr/compat/next-translate.md +1 -1
- package/docs/fr/compat/ngx-translate.md +1 -1
- package/docs/fr/compat/nuxtjs-i18n.md +1 -1
- package/docs/fr/compat/polyglot.md +1 -1
- package/docs/fr/compat/react-i18next.md +1 -1
- package/docs/fr/compat/react-intl.md +1 -1
- package/docs/fr/compat/svelte-i18n.md +1 -1
- package/docs/fr/compat/transloco.md +1 -1
- package/docs/fr/compat/vue-i18n.md +1 -1
- package/docs/fr/interest_of_intlayer.md +1 -1
- package/docs/fr/intlayer_with_remix_3.md +540 -0
- package/docs/hi/benchmark/index.md +4 -1
- package/docs/hi/benchmark/nextjs.md +33 -28
- package/docs/hi/benchmark/solid.md +14 -11
- package/docs/hi/benchmark/svelte.md +13 -10
- package/docs/hi/benchmark/tanstack.md +30 -25
- package/docs/hi/benchmark/vue.md +12 -8
- package/docs/hi/cli/build.md +8 -1
- package/docs/hi/cli/configuration.md +3 -1
- package/docs/hi/cli/doc-review.md +8 -1
- package/docs/hi/cli/doc-translate.md +5 -1
- package/docs/hi/cli/extract.md +2 -1
- package/docs/hi/cli/fill.md +5 -1
- package/docs/hi/cli/index.md +4 -5
- package/docs/hi/cli/live.md +5 -1
- package/docs/hi/cli/login.md +2 -2
- package/docs/hi/cli/pull.md +5 -1
- package/docs/hi/cli/push.md +5 -1
- package/docs/hi/cli/scan.md +5 -1
- package/docs/hi/cli/standalone.md +5 -1
- package/docs/hi/cli/test.md +5 -1
- package/docs/hi/cli/watch.md +5 -1
- package/docs/hi/compat/i18n-js.md +1 -1
- package/docs/hi/compat/i18next.md +1 -1
- package/docs/hi/compat/lingui.md +1 -1
- package/docs/hi/compat/next-i18next.md +1 -1
- package/docs/hi/compat/next-intl.md +1 -1
- package/docs/hi/compat/next-translate.md +1 -1
- package/docs/hi/compat/ngx-translate.md +1 -1
- package/docs/hi/compat/nuxtjs-i18n.md +1 -1
- package/docs/hi/compat/polyglot.md +1 -1
- package/docs/hi/compat/react-i18next.md +1 -1
- package/docs/hi/compat/react-intl.md +1 -1
- package/docs/hi/compat/svelte-i18n.md +1 -1
- package/docs/hi/compat/transloco.md +1 -1
- package/docs/hi/compat/vue-i18n.md +1 -1
- package/docs/hi/interest_of_intlayer.md +1 -1
- package/docs/hi/intlayer_with_remix_3.md +543 -0
- package/docs/id/benchmark/index.md +4 -1
- package/docs/id/benchmark/nextjs.md +33 -28
- package/docs/id/benchmark/solid.md +14 -11
- package/docs/id/benchmark/svelte.md +13 -10
- package/docs/id/benchmark/tanstack.md +30 -25
- package/docs/id/benchmark/vue.md +12 -8
- package/docs/id/cli/build.md +8 -1
- package/docs/id/cli/configuration.md +3 -1
- package/docs/id/cli/doc-review.md +8 -1
- package/docs/id/cli/doc-translate.md +5 -1
- package/docs/id/cli/extract.md +2 -1
- package/docs/id/cli/fill.md +5 -1
- package/docs/id/cli/index.md +4 -5
- package/docs/id/cli/live.md +5 -1
- package/docs/id/cli/login.md +2 -2
- package/docs/id/cli/pull.md +5 -1
- package/docs/id/cli/push.md +5 -1
- package/docs/id/cli/scan.md +5 -1
- package/docs/id/cli/standalone.md +5 -1
- package/docs/id/cli/test.md +5 -1
- package/docs/id/cli/watch.md +5 -1
- package/docs/id/compat/i18n-js.md +1 -1
- package/docs/id/compat/i18next.md +1 -1
- package/docs/id/compat/lingui.md +1 -1
- package/docs/id/compat/next-i18next.md +1 -1
- package/docs/id/compat/next-intl.md +1 -1
- package/docs/id/compat/next-translate.md +1 -1
- package/docs/id/compat/ngx-translate.md +1 -1
- package/docs/id/compat/nuxtjs-i18n.md +1 -1
- package/docs/id/compat/polyglot.md +1 -1
- package/docs/id/compat/react-i18next.md +1 -1
- package/docs/id/compat/react-intl.md +1 -1
- package/docs/id/compat/svelte-i18n.md +1 -1
- package/docs/id/compat/transloco.md +1 -1
- package/docs/id/compat/vue-i18n.md +1 -1
- package/docs/id/interest_of_intlayer.md +1 -1
- package/docs/id/intlayer_with_remix_3.md +566 -0
- package/docs/it/benchmark/index.md +4 -1
- package/docs/it/benchmark/nextjs.md +33 -28
- package/docs/it/benchmark/solid.md +14 -11
- package/docs/it/benchmark/svelte.md +13 -10
- package/docs/it/benchmark/tanstack.md +30 -25
- package/docs/it/benchmark/vue.md +12 -8
- package/docs/it/cli/build.md +8 -1
- package/docs/it/cli/configuration.md +3 -1
- package/docs/it/cli/doc-review.md +8 -1
- package/docs/it/cli/doc-translate.md +5 -1
- package/docs/it/cli/extract.md +2 -1
- package/docs/it/cli/fill.md +5 -1
- package/docs/it/cli/index.md +4 -5
- package/docs/it/cli/live.md +5 -1
- package/docs/it/cli/login.md +2 -2
- package/docs/it/cli/pull.md +5 -1
- package/docs/it/cli/push.md +5 -1
- package/docs/it/cli/scan.md +5 -1
- package/docs/it/cli/standalone.md +5 -1
- package/docs/it/cli/test.md +5 -1
- package/docs/it/cli/watch.md +5 -1
- package/docs/it/compat/i18n-js.md +1 -1
- package/docs/it/compat/i18next.md +1 -1
- package/docs/it/compat/lingui.md +1 -1
- package/docs/it/compat/next-i18next.md +1 -1
- package/docs/it/compat/next-intl.md +1 -1
- package/docs/it/compat/next-translate.md +1 -1
- package/docs/it/compat/ngx-translate.md +1 -1
- package/docs/it/compat/nuxtjs-i18n.md +1 -1
- package/docs/it/compat/polyglot.md +1 -1
- package/docs/it/compat/react-i18next.md +1 -1
- package/docs/it/compat/react-intl.md +1 -1
- package/docs/it/compat/svelte-i18n.md +1 -1
- package/docs/it/compat/transloco.md +1 -1
- package/docs/it/compat/vue-i18n.md +1 -1
- package/docs/it/interest_of_intlayer.md +1 -1
- package/docs/it/intlayer_with_remix_3.md +558 -0
- package/docs/ja/benchmark/index.md +4 -1
- package/docs/ja/benchmark/nextjs.md +33 -28
- package/docs/ja/benchmark/solid.md +14 -11
- package/docs/ja/benchmark/svelte.md +13 -10
- package/docs/ja/benchmark/tanstack.md +30 -25
- package/docs/ja/benchmark/vue.md +12 -8
- package/docs/ja/cli/build.md +8 -1
- package/docs/ja/cli/configuration.md +3 -1
- package/docs/ja/cli/doc-review.md +8 -1
- package/docs/ja/cli/doc-translate.md +5 -1
- package/docs/ja/cli/extract.md +2 -1
- package/docs/ja/cli/fill.md +5 -1
- package/docs/ja/cli/index.md +4 -5
- package/docs/ja/cli/live.md +5 -1
- package/docs/ja/cli/login.md +2 -2
- package/docs/ja/cli/pull.md +5 -1
- package/docs/ja/cli/push.md +5 -1
- package/docs/ja/cli/scan.md +5 -1
- package/docs/ja/cli/standalone.md +5 -1
- package/docs/ja/cli/test.md +5 -1
- package/docs/ja/cli/watch.md +5 -1
- package/docs/ja/compat/i18n-js.md +1 -1
- package/docs/ja/compat/i18next.md +1 -1
- package/docs/ja/compat/lingui.md +1 -1
- package/docs/ja/compat/next-i18next.md +1 -1
- package/docs/ja/compat/next-intl.md +1 -1
- package/docs/ja/compat/next-translate.md +1 -1
- package/docs/ja/compat/ngx-translate.md +1 -1
- package/docs/ja/compat/nuxtjs-i18n.md +1 -1
- package/docs/ja/compat/polyglot.md +1 -1
- package/docs/ja/compat/react-i18next.md +1 -1
- package/docs/ja/compat/react-intl.md +1 -1
- package/docs/ja/compat/svelte-i18n.md +1 -1
- package/docs/ja/compat/transloco.md +1 -1
- package/docs/ja/compat/vue-i18n.md +1 -1
- package/docs/ja/interest_of_intlayer.md +1 -1
- package/docs/ja/intlayer_with_remix_3.md +558 -0
- package/docs/ko/benchmark/index.md +4 -1
- package/docs/ko/benchmark/nextjs.md +33 -28
- package/docs/ko/benchmark/solid.md +14 -11
- package/docs/ko/benchmark/svelte.md +13 -10
- package/docs/ko/benchmark/tanstack.md +30 -25
- package/docs/ko/benchmark/vue.md +12 -8
- package/docs/ko/cli/build.md +8 -1
- package/docs/ko/cli/configuration.md +3 -1
- package/docs/ko/cli/doc-review.md +8 -1
- package/docs/ko/cli/doc-translate.md +5 -1
- package/docs/ko/cli/extract.md +2 -1
- package/docs/ko/cli/fill.md +5 -1
- package/docs/ko/cli/index.md +4 -5
- package/docs/ko/cli/live.md +5 -1
- package/docs/ko/cli/login.md +2 -2
- package/docs/ko/cli/pull.md +5 -1
- package/docs/ko/cli/push.md +5 -1
- package/docs/ko/cli/scan.md +5 -1
- package/docs/ko/cli/standalone.md +5 -1
- package/docs/ko/cli/test.md +5 -1
- package/docs/ko/cli/watch.md +5 -1
- package/docs/ko/compat/i18n-js.md +1 -1
- package/docs/ko/compat/i18next.md +1 -1
- package/docs/ko/compat/lingui.md +1 -1
- package/docs/ko/compat/next-i18next.md +1 -1
- package/docs/ko/compat/next-intl.md +1 -1
- package/docs/ko/compat/next-translate.md +1 -1
- package/docs/ko/compat/ngx-translate.md +1 -1
- package/docs/ko/compat/nuxtjs-i18n.md +1 -1
- package/docs/ko/compat/polyglot.md +1 -1
- package/docs/ko/compat/react-i18next.md +1 -1
- package/docs/ko/compat/react-intl.md +1 -1
- package/docs/ko/compat/svelte-i18n.md +1 -1
- package/docs/ko/compat/transloco.md +1 -1
- package/docs/ko/compat/vue-i18n.md +1 -1
- package/docs/ko/interest_of_intlayer.md +1 -1
- package/docs/ko/intlayer_with_remix_3.md +543 -0
- package/docs/nl/cli/index.md +4 -5
- package/docs/nl/cli/scan.md +5 -1
- package/docs/nl/cli/standalone.md +5 -1
- package/docs/nl/interest_of_intlayer.md +1 -1
- package/docs/pl/benchmark/index.md +4 -1
- package/docs/pl/benchmark/nextjs.md +33 -28
- package/docs/pl/benchmark/solid.md +14 -11
- package/docs/pl/benchmark/svelte.md +13 -10
- package/docs/pl/benchmark/tanstack.md +30 -25
- package/docs/pl/benchmark/vue.md +12 -8
- package/docs/pl/cli/build.md +8 -1
- package/docs/pl/cli/configuration.md +3 -1
- package/docs/pl/cli/doc-review.md +8 -1
- package/docs/pl/cli/doc-translate.md +5 -1
- package/docs/pl/cli/extract.md +2 -1
- package/docs/pl/cli/fill.md +5 -1
- package/docs/pl/cli/index.md +4 -5
- package/docs/pl/cli/live.md +5 -1
- package/docs/pl/cli/login.md +2 -2
- package/docs/pl/cli/pull.md +5 -1
- package/docs/pl/cli/push.md +5 -1
- package/docs/pl/cli/scan.md +5 -1
- package/docs/pl/cli/standalone.md +5 -1
- package/docs/pl/cli/test.md +5 -1
- package/docs/pl/cli/watch.md +5 -1
- package/docs/pl/compat/i18n-js.md +1 -1
- package/docs/pl/compat/i18next.md +1 -1
- package/docs/pl/compat/lingui.md +1 -1
- package/docs/pl/compat/next-i18next.md +1 -1
- package/docs/pl/compat/next-intl.md +1 -1
- package/docs/pl/compat/next-translate.md +1 -1
- package/docs/pl/compat/ngx-translate.md +1 -1
- package/docs/pl/compat/nuxtjs-i18n.md +1 -1
- package/docs/pl/compat/polyglot.md +1 -1
- package/docs/pl/compat/react-i18next.md +1 -1
- package/docs/pl/compat/react-intl.md +1 -1
- package/docs/pl/compat/svelte-i18n.md +1 -1
- package/docs/pl/compat/transloco.md +1 -1
- package/docs/pl/compat/vue-i18n.md +1 -1
- package/docs/pl/interest_of_intlayer.md +1 -1
- package/docs/pl/intlayer_with_remix_3.md +551 -0
- package/docs/pt/benchmark/index.md +4 -1
- package/docs/pt/benchmark/nextjs.md +33 -28
- package/docs/pt/benchmark/solid.md +14 -11
- package/docs/pt/benchmark/svelte.md +13 -10
- package/docs/pt/benchmark/tanstack.md +30 -25
- package/docs/pt/benchmark/vue.md +12 -8
- package/docs/pt/cli/build.md +8 -1
- package/docs/pt/cli/configuration.md +3 -1
- package/docs/pt/cli/doc-review.md +8 -1
- package/docs/pt/cli/doc-translate.md +5 -1
- package/docs/pt/cli/extract.md +2 -1
- package/docs/pt/cli/fill.md +5 -1
- package/docs/pt/cli/index.md +4 -5
- package/docs/pt/cli/live.md +5 -1
- package/docs/pt/cli/login.md +2 -2
- package/docs/pt/cli/pull.md +5 -1
- package/docs/pt/cli/push.md +5 -1
- package/docs/pt/cli/scan.md +5 -1
- package/docs/pt/cli/standalone.md +5 -1
- package/docs/pt/cli/test.md +5 -1
- package/docs/pt/cli/watch.md +5 -1
- package/docs/pt/compat/i18n-js.md +1 -1
- package/docs/pt/compat/i18next.md +1 -1
- package/docs/pt/compat/lingui.md +1 -1
- package/docs/pt/compat/next-i18next.md +1 -1
- package/docs/pt/compat/next-intl.md +1 -1
- package/docs/pt/compat/next-translate.md +1 -1
- package/docs/pt/compat/ngx-translate.md +1 -1
- package/docs/pt/compat/nuxtjs-i18n.md +1 -1
- package/docs/pt/compat/polyglot.md +1 -1
- package/docs/pt/compat/react-i18next.md +1 -1
- package/docs/pt/compat/react-intl.md +1 -1
- package/docs/pt/compat/svelte-i18n.md +1 -1
- package/docs/pt/compat/transloco.md +1 -1
- package/docs/pt/compat/vue-i18n.md +1 -1
- package/docs/pt/interest_of_intlayer.md +1 -1
- package/docs/pt/intlayer_with_remix_3.md +558 -0
- package/docs/ru/benchmark/index.md +4 -1
- package/docs/ru/benchmark/nextjs.md +33 -28
- package/docs/ru/benchmark/solid.md +14 -11
- package/docs/ru/benchmark/svelte.md +13 -10
- package/docs/ru/benchmark/tanstack.md +30 -25
- package/docs/ru/benchmark/vue.md +12 -8
- package/docs/ru/cli/build.md +8 -1
- package/docs/ru/cli/configuration.md +3 -1
- package/docs/ru/cli/doc-review.md +8 -1
- package/docs/ru/cli/doc-translate.md +5 -1
- package/docs/ru/cli/extract.md +2 -1
- package/docs/ru/cli/fill.md +5 -1
- package/docs/ru/cli/index.md +4 -5
- package/docs/ru/cli/live.md +5 -1
- package/docs/ru/cli/login.md +2 -2
- package/docs/ru/cli/pull.md +5 -1
- package/docs/ru/cli/push.md +5 -1
- package/docs/ru/cli/scan.md +5 -1
- package/docs/ru/cli/standalone.md +5 -1
- package/docs/ru/cli/test.md +5 -1
- package/docs/ru/cli/watch.md +5 -1
- package/docs/ru/compat/i18n-js.md +1 -1
- package/docs/ru/compat/i18next.md +1 -1
- package/docs/ru/compat/lingui.md +1 -1
- package/docs/ru/compat/next-i18next.md +1 -1
- package/docs/ru/compat/next-intl.md +1 -1
- package/docs/ru/compat/next-translate.md +1 -1
- package/docs/ru/compat/ngx-translate.md +1 -1
- package/docs/ru/compat/nuxtjs-i18n.md +1 -1
- package/docs/ru/compat/polyglot.md +1 -1
- package/docs/ru/compat/react-i18next.md +1 -1
- package/docs/ru/compat/react-intl.md +1 -1
- package/docs/ru/compat/svelte-i18n.md +1 -1
- package/docs/ru/compat/transloco.md +1 -1
- package/docs/ru/compat/vue-i18n.md +1 -1
- package/docs/ru/interest_of_intlayer.md +1 -1
- package/docs/ru/intlayer_with_remix_3.md +558 -0
- package/docs/tr/benchmark/index.md +4 -1
- package/docs/tr/benchmark/nextjs.md +33 -28
- package/docs/tr/benchmark/solid.md +14 -11
- package/docs/tr/benchmark/svelte.md +13 -10
- package/docs/tr/benchmark/tanstack.md +30 -25
- package/docs/tr/benchmark/vue.md +12 -8
- package/docs/tr/cli/build.md +8 -1
- package/docs/tr/cli/configuration.md +3 -1
- package/docs/tr/cli/doc-review.md +8 -1
- package/docs/tr/cli/doc-translate.md +5 -1
- package/docs/tr/cli/extract.md +2 -1
- package/docs/tr/cli/fill.md +5 -1
- package/docs/tr/cli/index.md +4 -5
- package/docs/tr/cli/live.md +5 -1
- package/docs/tr/cli/login.md +2 -2
- package/docs/tr/cli/pull.md +5 -1
- package/docs/tr/cli/push.md +5 -1
- package/docs/tr/cli/scan.md +5 -1
- package/docs/tr/cli/standalone.md +5 -1
- package/docs/tr/cli/test.md +5 -1
- package/docs/tr/cli/watch.md +5 -1
- package/docs/tr/compat/i18n-js.md +1 -1
- package/docs/tr/compat/i18next.md +1 -1
- package/docs/tr/compat/lingui.md +1 -1
- package/docs/tr/compat/next-i18next.md +1 -1
- package/docs/tr/compat/next-intl.md +1 -1
- package/docs/tr/compat/next-translate.md +1 -1
- package/docs/tr/compat/ngx-translate.md +1 -1
- package/docs/tr/compat/nuxtjs-i18n.md +1 -1
- package/docs/tr/compat/polyglot.md +1 -1
- package/docs/tr/compat/react-i18next.md +1 -1
- package/docs/tr/compat/react-intl.md +1 -1
- package/docs/tr/compat/svelte-i18n.md +1 -1
- package/docs/tr/compat/transloco.md +1 -1
- package/docs/tr/compat/vue-i18n.md +1 -1
- package/docs/tr/interest_of_intlayer.md +1 -1
- package/docs/tr/intlayer_with_remix_3.md +566 -0
- package/docs/uk/benchmark/index.md +4 -1
- package/docs/uk/benchmark/nextjs.md +33 -28
- package/docs/uk/benchmark/solid.md +14 -11
- package/docs/uk/benchmark/svelte.md +13 -10
- package/docs/uk/benchmark/tanstack.md +30 -25
- package/docs/uk/benchmark/vue.md +12 -8
- package/docs/uk/cli/build.md +8 -1
- package/docs/uk/cli/configuration.md +3 -1
- package/docs/uk/cli/doc-review.md +8 -1
- package/docs/uk/cli/doc-translate.md +5 -1
- package/docs/uk/cli/extract.md +2 -1
- package/docs/uk/cli/fill.md +5 -1
- package/docs/uk/cli/index.md +4 -5
- package/docs/uk/cli/live.md +5 -1
- package/docs/uk/cli/login.md +2 -2
- package/docs/uk/cli/pull.md +5 -1
- package/docs/uk/cli/push.md +5 -1
- package/docs/uk/cli/scan.md +5 -1
- package/docs/uk/cli/standalone.md +5 -1
- package/docs/uk/cli/test.md +5 -1
- package/docs/uk/cli/watch.md +5 -1
- package/docs/uk/compat/i18n-js.md +1 -1
- package/docs/uk/compat/i18next.md +1 -1
- package/docs/uk/compat/lingui.md +1 -1
- package/docs/uk/compat/next-i18next.md +1 -1
- package/docs/uk/compat/next-intl.md +1 -1
- package/docs/uk/compat/next-translate.md +1 -1
- package/docs/uk/compat/ngx-translate.md +1 -1
- package/docs/uk/compat/nuxtjs-i18n.md +1 -1
- package/docs/uk/compat/polyglot.md +1 -1
- package/docs/uk/compat/react-i18next.md +1 -1
- package/docs/uk/compat/react-intl.md +1 -1
- package/docs/uk/compat/svelte-i18n.md +1 -1
- package/docs/uk/compat/transloco.md +1 -1
- package/docs/uk/compat/vue-i18n.md +1 -1
- package/docs/uk/interest_of_intlayer.md +1 -1
- package/docs/uk/intlayer_with_remix_3.md +566 -0
- package/docs/ur/cli/index.md +4 -5
- package/docs/ur/cli/scan.md +5 -1
- package/docs/ur/cli/standalone.md +5 -1
- package/docs/ur/interest_of_intlayer.md +1 -1
- package/docs/vi/benchmark/index.md +4 -1
- package/docs/vi/benchmark/nextjs.md +33 -28
- package/docs/vi/benchmark/solid.md +14 -11
- package/docs/vi/benchmark/svelte.md +13 -10
- package/docs/vi/benchmark/tanstack.md +30 -25
- package/docs/vi/benchmark/vue.md +12 -8
- package/docs/vi/cli/build.md +8 -1
- package/docs/vi/cli/configuration.md +3 -1
- package/docs/vi/cli/doc-review.md +8 -1
- package/docs/vi/cli/doc-translate.md +5 -1
- package/docs/vi/cli/extract.md +2 -1
- package/docs/vi/cli/fill.md +5 -1
- package/docs/vi/cli/index.md +4 -5
- package/docs/vi/cli/live.md +5 -1
- package/docs/vi/cli/login.md +2 -2
- package/docs/vi/cli/pull.md +5 -1
- package/docs/vi/cli/push.md +5 -1
- package/docs/vi/cli/scan.md +5 -1
- package/docs/vi/cli/standalone.md +5 -1
- package/docs/vi/cli/test.md +5 -1
- package/docs/vi/cli/watch.md +5 -1
- package/docs/vi/compat/i18n-js.md +1 -1
- package/docs/vi/compat/i18next.md +1 -1
- package/docs/vi/compat/lingui.md +1 -1
- package/docs/vi/compat/next-i18next.md +1 -1
- package/docs/vi/compat/next-intl.md +1 -1
- package/docs/vi/compat/next-translate.md +1 -1
- package/docs/vi/compat/ngx-translate.md +1 -1
- package/docs/vi/compat/nuxtjs-i18n.md +1 -1
- package/docs/vi/compat/polyglot.md +1 -1
- package/docs/vi/compat/react-i18next.md +1 -1
- package/docs/vi/compat/react-intl.md +1 -1
- package/docs/vi/compat/svelte-i18n.md +1 -1
- package/docs/vi/compat/transloco.md +1 -1
- package/docs/vi/compat/vue-i18n.md +1 -1
- package/docs/vi/interest_of_intlayer.md +1 -1
- package/docs/vi/intlayer_with_remix_3.md +566 -0
- package/docs/zh/benchmark/index.md +4 -1
- package/docs/zh/benchmark/nextjs.md +33 -28
- package/docs/zh/benchmark/solid.md +14 -11
- package/docs/zh/benchmark/svelte.md +13 -10
- package/docs/zh/benchmark/tanstack.md +30 -25
- package/docs/zh/benchmark/vue.md +12 -8
- package/docs/zh/cli/build.md +8 -1
- package/docs/zh/cli/configuration.md +3 -1
- package/docs/zh/cli/doc-review.md +8 -1
- package/docs/zh/cli/doc-translate.md +5 -1
- package/docs/zh/cli/extract.md +2 -1
- package/docs/zh/cli/fill.md +5 -1
- package/docs/zh/cli/index.md +4 -5
- package/docs/zh/cli/live.md +5 -1
- package/docs/zh/cli/login.md +2 -2
- package/docs/zh/cli/pull.md +5 -1
- package/docs/zh/cli/push.md +5 -1
- package/docs/zh/cli/scan.md +5 -1
- package/docs/zh/cli/standalone.md +5 -1
- package/docs/zh/cli/test.md +5 -1
- package/docs/zh/cli/watch.md +5 -1
- package/docs/zh/compat/i18n-js.md +1 -1
- package/docs/zh/compat/i18next.md +1 -1
- package/docs/zh/compat/lingui.md +1 -1
- package/docs/zh/compat/next-i18next.md +1 -1
- package/docs/zh/compat/next-intl.md +1 -1
- package/docs/zh/compat/next-translate.md +1 -1
- package/docs/zh/compat/ngx-translate.md +1 -1
- package/docs/zh/compat/nuxtjs-i18n.md +1 -1
- package/docs/zh/compat/polyglot.md +1 -1
- package/docs/zh/compat/react-i18next.md +1 -1
- package/docs/zh/compat/react-intl.md +1 -1
- package/docs/zh/compat/svelte-i18n.md +1 -1
- package/docs/zh/compat/transloco.md +1 -1
- package/docs/zh/compat/vue-i18n.md +1 -1
- package/docs/zh/interest_of_intlayer.md +1 -1
- package/docs/zh/intlayer_with_remix_3.md +558 -0
- package/docs/zh-TW/interest_of_intlayer.md +1 -1
- package/frequent_questions/ar/claude_code_token_consumption.md +152 -0
- package/frequent_questions/de/claude_code_token_consumption.md +152 -0
- package/frequent_questions/en/claude_code_token_consumption.md +152 -0
- package/frequent_questions/en-GB/claude_code_token_consumption.md +152 -0
- package/frequent_questions/es/claude_code_token_consumption.md +152 -0
- package/frequent_questions/fr/claude_code_token_consumption.md +152 -0
- package/frequent_questions/hi/claude_code_token_consumption.md +152 -0
- package/frequent_questions/id/claude_code_token_consumption.md +152 -0
- package/frequent_questions/it/claude_code_token_consumption.md +152 -0
- package/frequent_questions/ja/claude_code_token_consumption.md +152 -0
- package/frequent_questions/ko/claude_code_token_consumption.md +152 -0
- package/frequent_questions/pl/claude_code_token_consumption.md +152 -0
- package/frequent_questions/pt/claude_code_token_consumption.md +152 -0
- package/frequent_questions/ru/claude_code_token_consumption.md +152 -0
- package/frequent_questions/tr/claude_code_token_consumption.md +152 -0
- package/frequent_questions/uk/claude_code_token_consumption.md +152 -0
- package/frequent_questions/vi/claude_code_token_consumption.md +152 -0
- package/frequent_questions/zh/claude_code_token_consumption.md +152 -0
- package/package.json +7 -7
- package/src/generated/blog.entry.ts +180 -0
- package/src/generated/docs.entry.ts +0 -20
- package/src/generated/frequentQuestions.entry.ts +20 -0
- package/docs/ar/cli/ci.md +0 -186
- package/docs/de/cli/ci.md +0 -186
- package/docs/en/cli/ci.md +0 -216
- package/docs/en-GB/cli/ci.md +0 -186
- package/docs/es/cli/ci.md +0 -186
- package/docs/fr/cli/ci.md +0 -186
- package/docs/hi/cli/ci.md +0 -186
- package/docs/id/cli/ci.md +0 -186
- package/docs/it/cli/ci.md +0 -186
- package/docs/ja/cli/ci.md +0 -186
- package/docs/ko/cli/ci.md +0 -186
- package/docs/pl/cli/ci.md +0 -186
- package/docs/pt/cli/ci.md +0 -186
- package/docs/ru/cli/ci.md +0 -186
- package/docs/tr/cli/ci.md +0 -186
- package/docs/uk/cli/ci.md +0 -186
- package/docs/vi/cli/ci.md +0 -186
- package/docs/zh/cli/ci.md +0 -186
package/docs/en-GB/cli/ci.md
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2026-01-06
|
|
3
|
-
updatedAt: 2026-01-06
|
|
4
|
-
title: CI Command
|
|
5
|
-
description: Learn how to use the Intlayer CI command to run Intlayer commands with auto-injected credentials in CI/CD pipelines and monorepos.
|
|
6
|
-
keywords:
|
|
7
|
-
- CI
|
|
8
|
-
- CI/CD
|
|
9
|
-
- Automation
|
|
10
|
-
- Monorepo
|
|
11
|
-
- Credentials
|
|
12
|
-
- CLI
|
|
13
|
-
- Intlayer
|
|
14
|
-
slugs:
|
|
15
|
-
- doc
|
|
16
|
-
- concept
|
|
17
|
-
- cli
|
|
18
|
-
- ci
|
|
19
|
-
history:
|
|
20
|
-
- version: 7.5.11
|
|
21
|
-
date: 2026-01-06
|
|
22
|
-
changes: "Add CI command"
|
|
23
|
-
author: aymericzip
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
# CI Command
|
|
27
|
-
|
|
28
|
-
```bash packageManager="npm"
|
|
29
|
-
npx intlayer ci <command...>
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
```bash packageManager="yarn"
|
|
33
|
-
yarn intlayer ci <command...>
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
```bash packageManager="pnpm"
|
|
37
|
-
pnpm intlayer ci <command...>
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
```bash packageManager="bun"
|
|
41
|
-
bun x intlayer ci <command...>
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
The CI command is designed for automation and CI/CD pipelines. It automatically injects credentials from the `INTLAYER_PROJECT_CREDENTIALS` environment variable and can run Intlayer commands across multiple projects in a monorepo.
|
|
45
|
-
|
|
46
|
-
## How it works
|
|
47
|
-
|
|
48
|
-
The CI command operates in two modes:
|
|
49
|
-
|
|
50
|
-
1. **Single Project Mode**: If the current working directory matches one of the project paths in `INTLAYER_PROJECT_CREDENTIALS`, it runs the command for that specific project only.
|
|
51
|
-
|
|
52
|
-
2. **Iteration Mode**: If no specific project context is detected, it iterates over all configured projects and runs the command for each one.
|
|
53
|
-
|
|
54
|
-
## Environment Variable
|
|
55
|
-
|
|
56
|
-
The command requires the `INTLAYER_PROJECT_CREDENTIALS` environment variable to be set. This variable should contain a JSON object mapping project paths to their credentials:
|
|
57
|
-
|
|
58
|
-
```json
|
|
59
|
-
{
|
|
60
|
-
"packages/app": {
|
|
61
|
-
"clientId": "your-client-id-1",
|
|
62
|
-
"clientSecret": "your-client-secret-1"
|
|
63
|
-
},
|
|
64
|
-
"packages/admin": {
|
|
65
|
-
"clientId": "your-client-id-2",
|
|
66
|
-
"clientSecret": "your-client-secret-2"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Package Manager Detection
|
|
72
|
-
|
|
73
|
-
The CI command automatically detects which package manager is being used (npm, yarn, pnpm, or bun) based on the `npm_config_user_agent` environment variable and uses the appropriate command to execute Intlayer.
|
|
74
|
-
|
|
75
|
-
## Arguments
|
|
76
|
-
|
|
77
|
-
- **`<command...>`**: The Intlayer command to execute (e.g., `fill`, `push`, `build`). You can pass any Intlayer command and its arguments.
|
|
78
|
-
|
|
79
|
-
> Example: `npx intlayer ci fill --verbose`
|
|
80
|
-
>
|
|
81
|
-
> Example: `npx intlayer ci push`
|
|
82
|
-
>
|
|
83
|
-
> Example: `npx intlayer ci build`
|
|
84
|
-
|
|
85
|
-
## Examples
|
|
86
|
-
|
|
87
|
-
### Run a command in single project mode
|
|
88
|
-
|
|
89
|
-
If you're in a project directory that matches one of the paths in `INTLAYER_PROJECT_CREDENTIALS`:
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
cd packages/app
|
|
93
|
-
npx intlayer ci fill
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
This will run the `fill` command with credentials automatically injected for the `packages/app` project.
|
|
97
|
-
|
|
98
|
-
### Run a command across all projects
|
|
99
|
-
|
|
100
|
-
If you're in a directory that doesn't match any project path, the command will iterate over all configured projects:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
cd /path/to/monorepo
|
|
104
|
-
npx intlayer ci push
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
This will run the `push` command for each project configured in `INTLAYER_PROJECT_CREDENTIALS`.
|
|
108
|
-
|
|
109
|
-
### Pass additional flags
|
|
110
|
-
|
|
111
|
-
You can pass any flags to the underlying Intlayer command:
|
|
112
|
-
|
|
113
|
-
```bash packageManager="npm"
|
|
114
|
-
npx intlayer ci fill --verbose --mode complete
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```bash packageManager="yarn"
|
|
118
|
-
yarn intlayer ci fill --verbose --mode complete
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
```bash packageManager="pnpm"
|
|
122
|
-
pnpm intlayer ci fill --verbose --mode complete
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
```bash packageManager="bun"
|
|
126
|
-
bun x intlayer ci fill --verbose --mode complete
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Use in CI/CD pipelines
|
|
130
|
-
|
|
131
|
-
Running `intlayer init` scaffolds two ready-to-use GitHub Actions workflows for you (see [Scaffolded GitHub Actions](#scaffolded-github-actions) below). The example here shows the equivalent setup using the `ci` command for a monorepo, where credentials are injected per project from `INTLAYER_PROJECT_CREDENTIALS`.
|
|
132
|
-
|
|
133
|
-
In your CI/CD configuration (e.g., GitHub Actions, GitLab CI), set the `INTLAYER_PROJECT_CREDENTIALS` as a secret:
|
|
134
|
-
|
|
135
|
-
```yaml
|
|
136
|
-
# GitHub Actions example
|
|
137
|
-
env:
|
|
138
|
-
INTLAYER_PROJECT_CREDENTIALS: ${{ secrets.INTLAYER_PROJECT_CREDENTIALS }}
|
|
139
|
-
|
|
140
|
-
steps:
|
|
141
|
-
- name: Fill dictionaries
|
|
142
|
-
run: npx intlayer ci fill
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
## Scaffolded GitHub Actions
|
|
146
|
-
|
|
147
|
-
When you run `intlayer init`, Intlayer detects your package manager (npm, yarn, pnpm, or bun) and scaffolds two GitHub Actions workflows under `.github/workflows/`, with commands matching that package manager:
|
|
148
|
-
|
|
149
|
-
- **`intlayer-fill.yml`** — On every pull request, builds the dictionaries and runs `intlayer fill --git-diff --mode complete` to generate missing translations for the changed dictionaries, then commits the result back to the PR branch.
|
|
150
|
-
- **`intlayer-test.yml`** — On every pull request, builds the dictionaries and runs `intlayer test`, failing the check when required locales are missing translations.
|
|
151
|
-
|
|
152
|
-
Existing workflow files are never overwritten. To skip scaffolding entirely, run:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
npx intlayer init --no-github-actions
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Providing AI access to the fill workflow
|
|
159
|
-
|
|
160
|
-
The scaffolded `intlayer-fill.yml` requires AI access. Two options are available (configured in the workflow's `env` block):
|
|
161
|
-
|
|
162
|
-
1. **Your own AI provider key** — Add an `AI_API_KEY` secret in your repository settings (Settings → Secrets and variables → Actions). The workflow forwards it via `--provider`, `--model`, and `--api-key`.
|
|
163
|
-
2. **Intlayer CMS access keys** — Add `INTLAYER_CLIENT_ID` and `INTLAYER_CLIENT_SECRET` secrets and wire them into your `intlayer.config` `editor` section. CMS access keys grant AI access through the Intlayer backend.
|
|
164
|
-
|
|
165
|
-
The `intlayer-test.yml` workflow does not require any AI access.
|
|
166
|
-
|
|
167
|
-
## Error Handling
|
|
168
|
-
|
|
169
|
-
- If `INTLAYER_PROJECT_CREDENTIALS` is not set, the command will exit with an error.
|
|
170
|
-
- If `INTLAYER_PROJECT_CREDENTIALS` is not valid JSON, the command will exit with an error.
|
|
171
|
-
- If a project path doesn't exist, it will be skipped with a warning.
|
|
172
|
-
- If any project fails, the command will exit with a non-zero status code.
|
|
173
|
-
|
|
174
|
-
## Use Cases
|
|
175
|
-
|
|
176
|
-
- **Monorepo automation**: Run Intlayer commands across multiple projects in a monorepo
|
|
177
|
-
- **CI/CD pipelines**: Automate dictionary management in continuous integration workflows
|
|
178
|
-
- **Bulk operations**: Perform the same operation on multiple Intlayer projects at once
|
|
179
|
-
- **Secret management**: Securely manage credentials for multiple projects using environment variables
|
|
180
|
-
|
|
181
|
-
## Security Best Practices
|
|
182
|
-
|
|
183
|
-
- Store `INTLAYER_PROJECT_CREDENTIALS` as encrypted secrets in your CI/CD platform
|
|
184
|
-
- Never commit credentials to version control
|
|
185
|
-
- Use environment-specific credentials for different deployment environments
|
|
186
|
-
- Rotate credentials regularly
|
package/docs/es/cli/ci.md
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2026-01-06
|
|
3
|
-
updatedAt: 2026-01-06
|
|
4
|
-
title: Comando CI
|
|
5
|
-
description: Aprende a usar el comando Intlayer CI para ejecutar comandos Intlayer con credenciales auto-inyectadas en pipelines CI/CD y monorepos.
|
|
6
|
-
keywords:
|
|
7
|
-
- CI
|
|
8
|
-
- CI/CD
|
|
9
|
-
- Automatización
|
|
10
|
-
- Monorepo
|
|
11
|
-
- Credenciales
|
|
12
|
-
- CLI
|
|
13
|
-
- Intlayer
|
|
14
|
-
slugs:
|
|
15
|
-
- doc
|
|
16
|
-
- concept
|
|
17
|
-
- cli
|
|
18
|
-
- ci
|
|
19
|
-
history:
|
|
20
|
-
- version: 7.5.11
|
|
21
|
-
date: 2026-01-06
|
|
22
|
-
changes: "Agregar comando CI"
|
|
23
|
-
author: aymericzip
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
# Comando CI
|
|
27
|
-
|
|
28
|
-
```bash packageManager="npm"
|
|
29
|
-
npx intlayer ci <command...>
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
```bash packageManager="yarn"
|
|
33
|
-
yarn intlayer ci <command...>
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
```bash packageManager="pnpm"
|
|
37
|
-
pnpm intlayer ci <command...>
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
```bash packageManager="bun"
|
|
41
|
-
bun x intlayer ci <command...>
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
El comando CI está diseñado para automatización y pipelines CI/CD. Inyecta automáticamente credenciales desde la variable de entorno `INTLAYER_PROJECT_CREDENTIALS` y puede ejecutar comandos Intlayer en múltiples proyectos en un monorepo.
|
|
45
|
-
|
|
46
|
-
## Cómo funciona
|
|
47
|
-
|
|
48
|
-
El comando CI opera en dos modos:
|
|
49
|
-
|
|
50
|
-
1. **Modo de proyecto único**: Si el directorio de trabajo actual coincide con una de las rutas de proyecto en `INTLAYER_PROJECT_CREDENTIALS`, ejecuta el comando solo para ese proyecto específico.
|
|
51
|
-
|
|
52
|
-
2. **Modo de iteración**: Si no se detecta un contexto de proyecto específico, itera sobre todos los proyectos configurados y ejecuta el comando para cada uno.
|
|
53
|
-
|
|
54
|
-
## Variable de entorno
|
|
55
|
-
|
|
56
|
-
El comando requiere que se establezca la variable de entorno `INTLAYER_PROJECT_CREDENTIALS`. Esta variable debe contener un objeto JSON que mapee las rutas de proyecto a sus credenciales:
|
|
57
|
-
|
|
58
|
-
```json
|
|
59
|
-
{
|
|
60
|
-
"packages/app": {
|
|
61
|
-
"clientId": "your-client-id-1",
|
|
62
|
-
"clientSecret": "your-client-secret-1"
|
|
63
|
-
},
|
|
64
|
-
"packages/admin": {
|
|
65
|
-
"clientId": "your-client-id-2",
|
|
66
|
-
"clientSecret": "your-client-secret-2"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Detección del gestor de paquetes
|
|
72
|
-
|
|
73
|
-
El comando CI detecta automáticamente qué gestor de paquetes se está usando (npm, yarn, pnpm o bun) basándose en la variable de entorno `npm_config_user_agent` y usa el comando apropiado para ejecutar Intlayer.
|
|
74
|
-
|
|
75
|
-
## Argumentos
|
|
76
|
-
|
|
77
|
-
- **`<command...>`**: El comando Intlayer a ejecutar (por ejemplo, `fill`, `push`, `build`). Puedes pasar cualquier comando Intlayer y sus argumentos.
|
|
78
|
-
|
|
79
|
-
> Ejemplo: `npx intlayer ci fill --verbose`
|
|
80
|
-
>
|
|
81
|
-
> Ejemplo: `npx intlayer ci push`
|
|
82
|
-
>
|
|
83
|
-
> Ejemplo: `npx intlayer ci build`
|
|
84
|
-
|
|
85
|
-
## Ejemplos
|
|
86
|
-
|
|
87
|
-
### Ejecutar un comando en modo de proyecto único
|
|
88
|
-
|
|
89
|
-
Si estás en un directorio de proyecto que coincide con una de las rutas en `INTLAYER_PROJECT_CREDENTIALS`:
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
cd packages/app
|
|
93
|
-
npx intlayer ci fill
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
Esto ejecutará el comando `fill` con las credenciales inyectadas automáticamente para el proyecto `packages/app`.
|
|
97
|
-
|
|
98
|
-
### Ejecutar un comando en todos los proyectos
|
|
99
|
-
|
|
100
|
-
Si estás en un directorio que no coincide con ninguna ruta de proyecto, el comando iterará sobre todos los proyectos configurados:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
cd /path/to/monorepo
|
|
104
|
-
npx intlayer ci push
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Esto ejecutará el comando `push` para cada proyecto configurado en `INTLAYER_PROJECT_CREDENTIALS`.
|
|
108
|
-
|
|
109
|
-
### Pasar banderas adicionales
|
|
110
|
-
|
|
111
|
-
Puedes pasar cualquier bandera al comando Intlayer subyacente:
|
|
112
|
-
|
|
113
|
-
```bash packageManager="npm"
|
|
114
|
-
npx intlayer ci fill --verbose --mode complete
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```bash packageManager="yarn"
|
|
118
|
-
yarn intlayer ci fill --verbose --mode complete
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
```bash packageManager="pnpm"
|
|
122
|
-
pnpm intlayer ci fill --verbose --mode complete
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
```bash packageManager="bun"
|
|
126
|
-
bun x intlayer ci fill --verbose --mode complete
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Usar en pipelines CI/CD
|
|
130
|
-
|
|
131
|
-
Ejecutar `intlayer init` genera dos flujos de trabajo de GitHub Actions listos para usar (ver [GitHub Actions generados](#scaffolded-github-actions) abajo). El ejemplo aquí muestra la configuración equivalente usando el comando `ci` para un monorepo, donde las credenciales se inyectan por proyecto desde `INTLAYER_PROJECT_CREDENTIALS`.
|
|
132
|
-
|
|
133
|
-
En tu configuración CI/CD (por ejemplo, GitHub Actions, GitLab CI), establece `INTLAYER_PROJECT_CREDENTIALS` como secreto:
|
|
134
|
-
|
|
135
|
-
```yaml
|
|
136
|
-
# Ejemplo de GitHub Actions
|
|
137
|
-
env:
|
|
138
|
-
INTLAYER_PROJECT_CREDENTIALS: ${{ secrets.INTLAYER_PROJECT_CREDENTIALS }}
|
|
139
|
-
|
|
140
|
-
steps:
|
|
141
|
-
- name: Llenar diccionarios
|
|
142
|
-
run: npx intlayer ci fill
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
## Acciones de GitHub generadas automáticamente
|
|
146
|
-
|
|
147
|
-
Cuando ejecutas `intlayer init`, Intlayer detecta tu gestor de paquetes (npm, yarn, pnpm, o bun) y genera automáticamente dos flujos de trabajo de GitHub Actions en `.github/workflows/`, con comandos que coinciden con ese gestor de paquetes:
|
|
148
|
-
|
|
149
|
-
- **`intlayer-fill.yml`** — En cada pull request, construye los diccionarios y ejecuta `intlayer fill --git-diff --mode complete` para generar traducciones faltantes en los diccionarios modificados, luego confirma el resultado en la rama del PR.
|
|
150
|
-
- **`intlayer-test.yml`** — En cada pull request, construye los diccionarios y ejecuta `intlayer test`, fallando la verificación cuando faltan traducciones en las locales requeridas.
|
|
151
|
-
|
|
152
|
-
Los archivos de flujo de trabajo existentes nunca se sobrescriben. Para omitir la generación automática por completo, ejecuta:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
npx intlayer init --no-github-actions
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Proporcionar acceso a IA al flujo de trabajo de relleno
|
|
159
|
-
|
|
160
|
-
El `intlayer-fill.yml` generado requiere acceso a IA. Hay dos opciones disponibles (configuradas en el bloque `env` del flujo de trabajo):
|
|
161
|
-
|
|
162
|
-
1. **Tu propia clave de proveedor de IA** — Agrega un secreto `AI_API_KEY` en la configuración de tu repositorio (Settings → Secrets and variables → Actions). El flujo de trabajo la reenvía a través de `--provider`, `--model` y `--api-key`.
|
|
163
|
-
2. **Claves de acceso a Intlayer CMS** — Agrega los secretos `INTLAYER_CLIENT_ID` e `INTLAYER_CLIENT_SECRET` e intégralos en la sección `editor` de tu `intlayer.config`. Las claves de acceso a CMS otorgan acceso a IA a través del backend de Intlayer.
|
|
164
|
-
|
|
165
|
-
El flujo de trabajo `intlayer-test.yml` no requiere acceso a IA.
|
|
166
|
-
|
|
167
|
-
## Manejo de errores
|
|
168
|
-
|
|
169
|
-
- Si `INTLAYER_PROJECT_CREDENTIALS` no está establecida, el comando saldrá con un error.
|
|
170
|
-
- Si `INTLAYER_PROJECT_CREDENTIALS` no es un JSON válido, el comando saldrá con un error.
|
|
171
|
-
- Si una ruta de proyecto no existe, se omitirá con una advertencia.
|
|
172
|
-
- Si algún proyecto falla, el comando saldrá con un código de estado distinto de cero.
|
|
173
|
-
|
|
174
|
-
## Casos de uso
|
|
175
|
-
|
|
176
|
-
- **Automatización de monorepo**: Ejecutar comandos Intlayer en múltiples proyectos en un monorepo
|
|
177
|
-
- **Pipelines CI/CD**: Automatizar la gestión de diccionarios en flujos de trabajo de integración continua
|
|
178
|
-
- **Operaciones masivas**: Realizar la misma operación en múltiples proyectos Intlayer a la vez
|
|
179
|
-
- **Gestión de secretos**: Gestionar de forma segura las credenciales para múltiples proyectos usando variables de entorno
|
|
180
|
-
|
|
181
|
-
## Mejores prácticas de seguridad
|
|
182
|
-
|
|
183
|
-
- Almacena `INTLAYER_PROJECT_CREDENTIALS` como secretos cifrados en tu plataforma CI/CD
|
|
184
|
-
- Nunca comprometas las credenciales en el control de versiones
|
|
185
|
-
- Usa credenciales específicas del entorno para diferentes entornos de despliegue
|
|
186
|
-
- Rota las credenciales regularmente
|
package/docs/fr/cli/ci.md
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2026-01-06
|
|
3
|
-
updatedAt: 2026-01-06
|
|
4
|
-
title: Commande CI
|
|
5
|
-
description: Apprenez à utiliser la commande Intlayer CI pour exécuter des commandes Intlayer avec des identifiants auto-injectés dans les pipelines CI/CD et les monorepos.
|
|
6
|
-
keywords:
|
|
7
|
-
- CI
|
|
8
|
-
- CI/CD
|
|
9
|
-
- Automatisation
|
|
10
|
-
- Monorepo
|
|
11
|
-
- Identifiants
|
|
12
|
-
- CLI
|
|
13
|
-
- Intlayer
|
|
14
|
-
slugs:
|
|
15
|
-
- doc
|
|
16
|
-
- concept
|
|
17
|
-
- cli
|
|
18
|
-
- ci
|
|
19
|
-
history:
|
|
20
|
-
- version: 7.5.11
|
|
21
|
-
date: 2026-01-06
|
|
22
|
-
changes: "Ajouter la commande CI"
|
|
23
|
-
author: aymericzip
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
# Commande CI
|
|
27
|
-
|
|
28
|
-
```bash packageManager="npm"
|
|
29
|
-
npx intlayer ci <command...>
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
```bash packageManager="yarn"
|
|
33
|
-
yarn intlayer ci <command...>
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
```bash packageManager="pnpm"
|
|
37
|
-
pnpm intlayer ci <command...>
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
```bash packageManager="bun"
|
|
41
|
-
bun x intlayer ci <command...>
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
La commande CI est conçue pour l'automatisation et les pipelines CI/CD. Elle injecte automatiquement les identifiants à partir de la variable d'environnement `INTLAYER_PROJECT_CREDENTIALS` et peut exécuter des commandes Intlayer sur plusieurs projets dans un monorepo.
|
|
45
|
-
|
|
46
|
-
## Fonctionnement
|
|
47
|
-
|
|
48
|
-
La commande CI fonctionne en deux modes :
|
|
49
|
-
|
|
50
|
-
1. **Mode projet unique** : Si le répertoire de travail actuel correspond à l'un des chemins de projet dans `INTLAYER_PROJECT_CREDENTIALS`, elle exécute la commande uniquement pour ce projet spécifique.
|
|
51
|
-
|
|
52
|
-
2. **Mode itération** : Si aucun contexte de projet spécifique n'est détecté, elle itère sur tous les projets configurés et exécute la commande pour chacun d'eux.
|
|
53
|
-
|
|
54
|
-
## Variable d'environnement
|
|
55
|
-
|
|
56
|
-
La commande nécessite que la variable d'environnement `INTLAYER_PROJECT_CREDENTIALS` soit définie. Cette variable doit contenir un objet JSON mappant les chemins de projet à leurs identifiants :
|
|
57
|
-
|
|
58
|
-
```json
|
|
59
|
-
{
|
|
60
|
-
"packages/app": {
|
|
61
|
-
"clientId": "your-client-id-1",
|
|
62
|
-
"clientSecret": "your-client-secret-1"
|
|
63
|
-
},
|
|
64
|
-
"packages/admin": {
|
|
65
|
-
"clientId": "your-client-id-2",
|
|
66
|
-
"clientSecret": "your-client-secret-2"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Détection du gestionnaire de paquets
|
|
72
|
-
|
|
73
|
-
La commande CI détecte automatiquement le gestionnaire de paquets utilisé (npm, yarn, pnpm ou bun) en fonction de la variable d'environnement `npm_config_user_agent` et utilise la commande appropriée pour exécuter Intlayer.
|
|
74
|
-
|
|
75
|
-
## Arguments
|
|
76
|
-
|
|
77
|
-
- **`<command...>`** : La commande Intlayer à exécuter (par exemple, `fill`, `push`, `build`). Vous pouvez passer n'importe quelle commande Intlayer et ses arguments.
|
|
78
|
-
|
|
79
|
-
> Exemple : `npx intlayer ci fill --verbose`
|
|
80
|
-
>
|
|
81
|
-
> Exemple : `npx intlayer ci push`
|
|
82
|
-
>
|
|
83
|
-
> Exemple : `npx intlayer ci build`
|
|
84
|
-
|
|
85
|
-
## Exemples
|
|
86
|
-
|
|
87
|
-
### Exécuter une commande en mode projet unique
|
|
88
|
-
|
|
89
|
-
Si vous êtes dans un répertoire de projet qui correspond à l'un des chemins dans `INTLAYER_PROJECT_CREDENTIALS` :
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
cd packages/app
|
|
93
|
-
npx intlayer ci fill
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
Cela exécutera la commande `fill` avec les identifiants automatiquement injectés pour le projet `packages/app`.
|
|
97
|
-
|
|
98
|
-
### Exécuter une commande sur tous les projets
|
|
99
|
-
|
|
100
|
-
Si vous êtes dans un répertoire qui ne correspond à aucun chemin de projet, la commande itérera sur tous les projets configurés :
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
cd /path/to/monorepo
|
|
104
|
-
npx intlayer ci push
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Cela exécutera la commande `push` pour chaque projet configuré dans `INTLAYER_PROJECT_CREDENTIALS`.
|
|
108
|
-
|
|
109
|
-
### Passer des drapeaux supplémentaires
|
|
110
|
-
|
|
111
|
-
Vous pouvez passer n'importe quels drapeaux à la commande Intlayer sous-jacente :
|
|
112
|
-
|
|
113
|
-
```bash packageManager="npm"
|
|
114
|
-
npx intlayer ci fill --verbose --mode complete
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```bash packageManager="yarn"
|
|
118
|
-
yarn intlayer ci fill --verbose --mode complete
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
```bash packageManager="pnpm"
|
|
122
|
-
pnpm intlayer ci fill --verbose --mode complete
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
```bash packageManager="bun"
|
|
126
|
-
bun x intlayer ci fill --verbose --mode complete
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Utilisation dans les pipelines CI/CD
|
|
130
|
-
|
|
131
|
-
L'exécution de `intlayer init` crée deux workflows GitHub Actions prêts à l'emploi pour vous (voir [Scaffolded GitHub Actions](#scaffolded-github-actions) ci-dessous). L'exemple ici montre la configuration équivalente en utilisant la commande `ci` pour un monorepo, où les credentials sont injectés par projet depuis `INTLAYER_PROJECT_CREDENTIALS`.
|
|
132
|
-
|
|
133
|
-
Dans votre configuration CI/CD (par exemple, GitHub Actions, GitLab CI), définissez `INTLAYER_PROJECT_CREDENTIALS` comme secret :
|
|
134
|
-
|
|
135
|
-
```yaml
|
|
136
|
-
# Exemple GitHub Actions
|
|
137
|
-
env:
|
|
138
|
-
INTLAYER_PROJECT_CREDENTIALS: ${{ secrets.INTLAYER_PROJECT_CREDENTIALS }}
|
|
139
|
-
|
|
140
|
-
steps:
|
|
141
|
-
- name: Remplir les dictionnaires
|
|
142
|
-
run: npx intlayer ci fill
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
## GitHub Actions générés automatiquement
|
|
146
|
-
|
|
147
|
-
Lorsque vous exécutez `intlayer init`, Intlayer détecte votre gestionnaire de paquets (npm, yarn, pnpm, ou bun) et génère automatiquement deux workflows GitHub Actions sous `.github/workflows/`, avec des commandes correspondant à ce gestionnaire de paquets :
|
|
148
|
-
|
|
149
|
-
- **`intlayer-fill.yml`** — Sur chaque pull request, construit les dictionnaires et exécute `intlayer fill --git-diff --mode complete` pour générer les traductions manquantes pour les dictionnaires modifiés, puis valide le résultat sur la branche PR.
|
|
150
|
-
- **`intlayer-test.yml`** — Sur chaque pull request, construit les dictionnaires et exécute `intlayer test`, échouant la vérification si les locales requises ont des traductions manquantes.
|
|
151
|
-
|
|
152
|
-
Les fichiers de workflow existants ne sont jamais écrasés. Pour ignorer complètement la génération automatique, exécutez :
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
npx intlayer init --no-github-actions
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Fournir un accès IA au workflow de remplissage
|
|
159
|
-
|
|
160
|
-
Le fichier `intlayer-fill.yml` généré nécessite un accès IA. Deux options sont disponibles (configurées dans le bloc `env` du workflow) :
|
|
161
|
-
|
|
162
|
-
1. **Votre propre clé de fournisseur IA** — Ajoutez un secret `AI_API_KEY` dans les paramètres de votre référentiel (Settings → Secrets and variables → Actions). Le workflow le transmet via `--provider`, `--model` et `--api-key`.
|
|
163
|
-
2. **Clés d'accès Intlayer CMS** — Ajoutez les secrets `INTLAYER_CLIENT_ID` et `INTLAYER_CLIENT_SECRET` et intégrez-les dans la section `editor` de votre `intlayer.config`. Les clés d'accès CMS accordent l'accès IA via le backend Intlayer.
|
|
164
|
-
|
|
165
|
-
Le workflow `intlayer-test.yml` ne nécessite aucun accès IA.
|
|
166
|
-
|
|
167
|
-
## Gestion des erreurs
|
|
168
|
-
|
|
169
|
-
- Si `INTLAYER_PROJECT_CREDENTIALS` n'est pas définie, la commande se terminera avec une erreur.
|
|
170
|
-
- Si `INTLAYER_PROJECT_CREDENTIALS` n'est pas un JSON valide, la commande se terminera avec une erreur.
|
|
171
|
-
- Si un chemin de projet n'existe pas, il sera ignoré avec un avertissement.
|
|
172
|
-
- Si un projet échoue, la commande se terminera avec un code de statut non nul.
|
|
173
|
-
|
|
174
|
-
## Cas d'utilisation
|
|
175
|
-
|
|
176
|
-
- **Automatisation de monorepo** : Exécuter des commandes Intlayer sur plusieurs projets dans un monorepo
|
|
177
|
-
- **Pipelines CI/CD** : Automatiser la gestion des dictionnaires dans les workflows d'intégration continue
|
|
178
|
-
- **Opérations en masse** : Effectuer la même opération sur plusieurs projets Intlayer à la fois
|
|
179
|
-
- **Gestion des secrets** : Gérer de manière sécurisée les identifiants pour plusieurs projets en utilisant des variables d'environnement
|
|
180
|
-
|
|
181
|
-
## Bonnes pratiques de sécurité
|
|
182
|
-
|
|
183
|
-
- Stockez `INTLAYER_PROJECT_CREDENTIALS` comme secrets chiffrés dans votre plateforme CI/CD
|
|
184
|
-
- Ne commitez jamais les identifiants dans le contrôle de version
|
|
185
|
-
- Utilisez des identifiants spécifiques à l'environnement pour différents environnements de déploiement
|
|
186
|
-
- Faites tourner les identifiants régulièrement
|