@intlayer/docs 9.5.1 → 9.5.2
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/history_of_i18n.md +304 -0
- package/blog/de/history_of_i18n.md +304 -0
- package/blog/en/history_of_i18n.md +304 -0
- package/blog/en-GB/history_of_i18n.md +304 -0
- package/blog/es/history_of_i18n.md +304 -0
- package/blog/fr/history_of_i18n.md +304 -0
- package/blog/hi/history_of_i18n.md +304 -0
- package/blog/id/history_of_i18n.md +304 -0
- package/blog/it/history_of_i18n.md +304 -0
- package/blog/ja/history_of_i18n.md +304 -0
- package/blog/ko/history_of_i18n.md +304 -0
- package/blog/pl/history_of_i18n.md +304 -0
- package/blog/pt/history_of_i18n.md +304 -0
- package/blog/ru/history_of_i18n.md +304 -0
- package/blog/tr/history_of_i18n.md +304 -0
- package/blog/uk/history_of_i18n.md +304 -0
- package/blog/vi/history_of_i18n.md +304 -0
- package/blog/zh/history_of_i18n.md +304 -0
- package/dist/cjs/generated/blog.entry.cjs +20 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +0 -20
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +20 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +0 -20
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +0 -1
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/benchmark/index.md +4 -1
- package/docs/ar/benchmark/nextjs.md +32 -27
- package/docs/ar/benchmark/solid.md +13 -10
- package/docs/ar/benchmark/svelte.md +12 -9
- package/docs/ar/benchmark/tanstack.md +29 -24
- package/docs/ar/benchmark/vue.md +11 -7
- 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/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/cs/cli/index.md +4 -5
- package/docs/cs/cli/scan.md +5 -1
- package/docs/cs/cli/standalone.md +5 -1
- package/docs/de/benchmark/index.md +4 -1
- package/docs/de/benchmark/nextjs.md +32 -27
- package/docs/de/benchmark/solid.md +13 -10
- package/docs/de/benchmark/svelte.md +12 -9
- package/docs/de/benchmark/tanstack.md +29 -24
- package/docs/de/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +543 -0
- package/docs/en/benchmark/index.md +4 -1
- package/docs/en/benchmark/nextjs.md +32 -27
- package/docs/en/benchmark/solid.md +13 -10
- package/docs/en/benchmark/svelte.md +12 -9
- package/docs/en/benchmark/tanstack.md +30 -25
- package/docs/en/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +103 -71
- package/docs/en-GB/benchmark/index.md +4 -1
- package/docs/en-GB/benchmark/nextjs.md +32 -27
- package/docs/en-GB/benchmark/solid.md +13 -10
- package/docs/en-GB/benchmark/svelte.md +12 -9
- package/docs/en-GB/benchmark/tanstack.md +29 -24
- package/docs/en-GB/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +558 -0
- package/docs/es/benchmark/index.md +4 -1
- package/docs/es/benchmark/nextjs.md +32 -27
- package/docs/es/benchmark/solid.md +13 -10
- package/docs/es/benchmark/svelte.md +12 -9
- package/docs/es/benchmark/tanstack.md +29 -24
- package/docs/es/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +540 -0
- package/docs/fr/benchmark/index.md +4 -1
- package/docs/fr/benchmark/nextjs.md +32 -27
- package/docs/fr/benchmark/solid.md +13 -10
- package/docs/fr/benchmark/svelte.md +12 -9
- package/docs/fr/benchmark/tanstack.md +29 -24
- package/docs/fr/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +540 -0
- package/docs/hi/benchmark/index.md +4 -1
- package/docs/hi/benchmark/nextjs.md +32 -27
- package/docs/hi/benchmark/solid.md +13 -10
- package/docs/hi/benchmark/svelte.md +12 -9
- package/docs/hi/benchmark/tanstack.md +29 -24
- package/docs/hi/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +543 -0
- package/docs/id/benchmark/index.md +4 -1
- package/docs/id/benchmark/nextjs.md +32 -27
- package/docs/id/benchmark/solid.md +13 -10
- package/docs/id/benchmark/svelte.md +12 -9
- package/docs/id/benchmark/tanstack.md +29 -24
- package/docs/id/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +566 -0
- package/docs/it/benchmark/index.md +4 -1
- package/docs/it/benchmark/nextjs.md +32 -27
- package/docs/it/benchmark/solid.md +13 -10
- package/docs/it/benchmark/svelte.md +12 -9
- package/docs/it/benchmark/tanstack.md +29 -24
- package/docs/it/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +558 -0
- package/docs/ja/benchmark/index.md +4 -1
- package/docs/ja/benchmark/nextjs.md +32 -27
- package/docs/ja/benchmark/solid.md +13 -10
- package/docs/ja/benchmark/svelte.md +12 -9
- package/docs/ja/benchmark/tanstack.md +29 -24
- package/docs/ja/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +558 -0
- package/docs/ko/benchmark/index.md +4 -1
- package/docs/ko/benchmark/nextjs.md +32 -27
- package/docs/ko/benchmark/solid.md +13 -10
- package/docs/ko/benchmark/svelte.md +12 -9
- package/docs/ko/benchmark/tanstack.md +29 -24
- package/docs/ko/benchmark/vue.md +11 -7
- 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/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/pl/benchmark/index.md +4 -1
- package/docs/pl/benchmark/nextjs.md +32 -27
- package/docs/pl/benchmark/solid.md +13 -10
- package/docs/pl/benchmark/svelte.md +12 -9
- package/docs/pl/benchmark/tanstack.md +29 -24
- package/docs/pl/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +551 -0
- package/docs/pt/benchmark/index.md +4 -1
- package/docs/pt/benchmark/nextjs.md +32 -27
- package/docs/pt/benchmark/solid.md +13 -10
- package/docs/pt/benchmark/svelte.md +12 -9
- package/docs/pt/benchmark/tanstack.md +29 -24
- package/docs/pt/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +558 -0
- package/docs/ru/benchmark/index.md +4 -1
- package/docs/ru/benchmark/nextjs.md +32 -27
- package/docs/ru/benchmark/solid.md +13 -10
- package/docs/ru/benchmark/svelte.md +12 -9
- package/docs/ru/benchmark/tanstack.md +29 -24
- package/docs/ru/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +558 -0
- package/docs/tr/benchmark/index.md +4 -1
- package/docs/tr/benchmark/nextjs.md +32 -27
- package/docs/tr/benchmark/solid.md +13 -10
- package/docs/tr/benchmark/svelte.md +12 -9
- package/docs/tr/benchmark/tanstack.md +29 -24
- package/docs/tr/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +566 -0
- package/docs/uk/benchmark/index.md +4 -1
- package/docs/uk/benchmark/nextjs.md +32 -27
- package/docs/uk/benchmark/solid.md +13 -10
- package/docs/uk/benchmark/svelte.md +12 -9
- package/docs/uk/benchmark/tanstack.md +29 -24
- package/docs/uk/benchmark/vue.md +11 -7
- 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/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/vi/benchmark/index.md +4 -1
- package/docs/vi/benchmark/nextjs.md +32 -27
- package/docs/vi/benchmark/solid.md +13 -10
- package/docs/vi/benchmark/svelte.md +12 -9
- package/docs/vi/benchmark/tanstack.md +29 -24
- package/docs/vi/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +566 -0
- package/docs/zh/benchmark/index.md +4 -1
- package/docs/zh/benchmark/nextjs.md +32 -27
- package/docs/zh/benchmark/solid.md +13 -10
- package/docs/zh/benchmark/svelte.md +12 -9
- package/docs/zh/benchmark/tanstack.md +29 -24
- package/docs/zh/benchmark/vue.md +11 -7
- 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/intlayer_with_remix_3.md +558 -0
- package/package.json +7 -7
- package/src/generated/blog.entry.ts +20 -0
- package/src/generated/docs.entry.ts +0 -20
- 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/uk/cli/ci.md
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2026-01-06
|
|
3
|
-
updatedAt: 2026-01-06
|
|
4
|
-
title: Команда CI
|
|
5
|
-
description: Дізнайтеся, як використовувати команду Intlayer CI для запуску команд Intlayer з автоматично підставленими обліковими даними у CI/CD пайплайнах та монорепозиторіях.
|
|
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: "Додано команду CI"
|
|
23
|
-
author: aymericzip
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
# Команда 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
|
-
Команда CI призначена для автоматизації та CI/CD-пайплайнів. Вона автоматично підставляє облікові дані зі змінної оточення `INTLAYER_PROJECT_CREDENTIALS` і може виконувати команди Intlayer для кількох проєктів у монорепозиторії.
|
|
45
|
-
|
|
46
|
-
## Як це працює
|
|
47
|
-
|
|
48
|
-
Команда CI працює в двох режимах:
|
|
49
|
-
|
|
50
|
-
1. **Режим одного проєкту**: Якщо поточний робочий каталог відповідає одному зі шляхів проєктів у `INTLAYER_PROJECT_CREDENTIALS`, команда запускається лише для цього конкретного проєкту.
|
|
51
|
-
|
|
52
|
-
2. **Режим ітерації**: Якщо контекст конкретного проєкту не виявлено, вона перебирає всі налаштовані проєкти й виконує команду для кожного з них.
|
|
53
|
-
|
|
54
|
-
## Змінна середовища
|
|
55
|
-
|
|
56
|
-
Команда вимагає встановленої змінної середовища `INTLAYER_PROJECT_CREDENTIALS`. Ця змінна повинна містити JSON-обʼєкт, який відображає шляхи проєктів на їхні облікові дані:
|
|
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
|
-
## Визначення менеджера пакетів
|
|
72
|
-
|
|
73
|
-
Команда CI автоматично визначає, який package manager використовується (npm, yarn, pnpm або bun) на основі змінної середовища `npm_config_user_agent` і використовує відповідну команду для запуску Intlayer.
|
|
74
|
-
|
|
75
|
-
## Аргументи
|
|
76
|
-
|
|
77
|
-
- **`<command...>`**: Команда Intlayer для виконання (наприклад, `fill`, `push`, `build`). Ви можете передати будь-яку команду Intlayer та її аргументи.
|
|
78
|
-
|
|
79
|
-
> Приклад: `npx intlayer ci fill --verbose`
|
|
80
|
-
>
|
|
81
|
-
> Приклад: `npx intlayer ci push`
|
|
82
|
-
>
|
|
83
|
-
> Приклад: `npx intlayer ci build`
|
|
84
|
-
|
|
85
|
-
## Приклади
|
|
86
|
-
|
|
87
|
-
### Запустити команду в режимі одного проекту
|
|
88
|
-
|
|
89
|
-
Якщо ви перебуваєте в директорії проекту, що відповідає одному з шляхів у `INTLAYER_PROJECT_CREDENTIALS`:
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
cd packages/app
|
|
93
|
-
npx intlayer ci fill
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
Це запустить команду `fill` з автоматично підставленими обліковими даними для проєкту `packages/app`.
|
|
97
|
-
|
|
98
|
-
### Запустити команду для всіх проєктів
|
|
99
|
-
|
|
100
|
-
Якщо ви перебуваєте в каталозі, який не відповідає жодному шляху проєкту, команда пройде по всіх налаштованих проєктах:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
cd /path/to/monorepo
|
|
104
|
-
npx intlayer ci push
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Це виконає команду `push` для кожного проєкту, налаштованого в `INTLAYER_PROJECT_CREDENTIALS`.
|
|
108
|
-
|
|
109
|
-
### Передача додаткових прапорів
|
|
110
|
-
|
|
111
|
-
Ви можете передати будь-які прапори в базову команду Intlayer:
|
|
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
|
-
### Використання в CI/CD пайплайнах
|
|
130
|
-
|
|
131
|
-
Запуск `intlayer init` створює два готові до використання workflow'и GitHub Actions для вас (див. [Scaffolded GitHub Actions](#scaffolded-github-actions) нижче). Приклад тут показує еквівалентне налаштування за допомогою команди `ci` для monorepo, де облікові дані вводяться для кожного проекту з `INTLAYER_PROJECT_CREDENTIALS`.
|
|
132
|
-
|
|
133
|
-
У вашій конфігурації CI/CD (наприклад, GitHub Actions, GitLab CI) встановіть `INTLAYER_PROJECT_CREDENTIALS` як секрет:
|
|
134
|
-
|
|
135
|
-
```yaml
|
|
136
|
-
# Приклад GitHub Actions
|
|
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
|
-
Коли ви запустите `intlayer init`, Intlayer виявляє ваш package manager (npm, yarn, pnpm або bun) і створює два GitHub Actions workflows у `.github/workflows/` з командами, які відповідають цьому package manager:
|
|
148
|
-
|
|
149
|
-
- **`intlayer-fill.yml`** — На кожен pull request будує словники і запускає `intlayer fill --git-diff --mode complete` для генерування відсутніх перекладів для змінених словників, потім фіксує результат назад у гілку PR.
|
|
150
|
-
- **`intlayer-test.yml`** — На кожен pull request будує словники і запускає `intlayer test`, завершуючи перевірку з помилкою, коли обов'язкові мови не мають перекладів.
|
|
151
|
-
|
|
152
|
-
Існуючі файли workflows ніколи не перезаписуються. Щоб пропустити scaffolding повністю, запустіть:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
npx intlayer init --no-github-actions
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Надання доступу до ШІ для робочого процесу заповнення
|
|
159
|
-
|
|
160
|
-
Сгенерований `intlayer-fill.yml` вимагає доступу до ШІ. Доступні два варіанти (налаштовуються в блоці `env` робочого процесу):
|
|
161
|
-
|
|
162
|
-
1. **Ваш власний ключ AI-провайдера** — Додайте секрет `AI_API_KEY` в налаштуваннях вашого репозиторію (Settings → Secrets and variables → Actions). Робочий процес передає його через `--provider`, `--model` та `--api-key`.
|
|
163
|
-
2. **Ключі доступу до Intlayer CMS** — Додайте секрети `INTLAYER_CLIENT_ID` та `INTLAYER_CLIENT_SECRET` і підключіть їх до секції `editor` вашого `intlayer.config`. Ключі доступу до CMS надають доступ до ШІ через backend Intlayer.
|
|
164
|
-
|
|
165
|
-
Робочий процес `intlayer-test.yml` не вимагає жодного доступу до ШІ.
|
|
166
|
-
|
|
167
|
-
## Обробка помилок
|
|
168
|
-
|
|
169
|
-
- Якщо `INTLAYER_PROJECT_CREDENTIALS` не встановлено, команда завершиться з помилкою.
|
|
170
|
-
- Якщо `INTLAYER_PROJECT_CREDENTIALS` не є валідним JSON, команда завершиться з помилкою.
|
|
171
|
-
- Якщо шлях до проекту не існує, він буде пропущений з попередженням.
|
|
172
|
-
- Якщо будь-який проект зазнає невдачі, команда завершиться з кодом стану, відмінним від нуля.
|
|
173
|
-
|
|
174
|
-
## Випадки використання
|
|
175
|
-
|
|
176
|
-
- **Автоматизація монорепо**: Виконувати команди Intlayer для кількох проектів у монорепозиторії
|
|
177
|
-
- **Конвеєри CI/CD**: Автоматизувати керування словниками в процесах безперервної інтеграції
|
|
178
|
-
- **Масові операції**: Виконувати одну й ту саму операцію одночасно для кількох проектів Intlayer
|
|
179
|
-
- **Управління секретами**: Безпечно керуйте обліковими даними для кількох проєктів за допомогою змінних середовища
|
|
180
|
-
|
|
181
|
-
## Кращі практики безпеки
|
|
182
|
-
|
|
183
|
-
- Зберігайте `INTLAYER_PROJECT_CREDENTIALS` як зашифровані секрети на вашій платформі CI/CD
|
|
184
|
-
- Ніколи не комітіть облікові дані у систему контролю версій
|
|
185
|
-
- Використовуйте окремі облікові дані для різних середовищ розгортання
|
|
186
|
-
- Регулярно проводьте ротацію облікових даних
|
package/docs/vi/cli/ci.md
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2026-01-06
|
|
3
|
-
updatedAt: 2026-01-06
|
|
4
|
-
title: Lệnh CI
|
|
5
|
-
description: Tìm hiểu cách sử dụng lệnh Intlayer CI để chạy các lệnh Intlayer với thông tin xác thực được tự động chèn vào trong các pipeline CI/CD và monorepo.
|
|
6
|
-
keywords:
|
|
7
|
-
- CI
|
|
8
|
-
- CI/CD
|
|
9
|
-
- Tự động hóa
|
|
10
|
-
- Monorepo
|
|
11
|
-
- Thông tin xác thực
|
|
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: "Thêm lệnh CI"
|
|
23
|
-
author: aymericzip
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
# Lệnh 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
|
-
Lệnh CI được thiết kế cho tự động hóa và các pipeline CI/CD. Nó tự động chèn thông tin xác thực từ biến môi trường `INTLAYER_PROJECT_CREDENTIALS` và có thể chạy các lệnh Intlayer trên nhiều dự án trong một monorepo.
|
|
45
|
-
|
|
46
|
-
## Cách hoạt động
|
|
47
|
-
|
|
48
|
-
Lệnh CI hoạt động ở hai chế độ:
|
|
49
|
-
|
|
50
|
-
1. **Chế độ dự án đơn**: Nếu thư mục làm việc hiện tại khớp với một trong các đường dẫn dự án trong `INTLAYER_PROJECT_CREDENTIALS`, nó sẽ chạy lệnh chỉ cho dự án cụ thể đó.
|
|
51
|
-
|
|
52
|
-
2. **Chế độ lặp lại**: Nếu không phát hiện ngữ cảnh dự án cụ thể, nó sẽ lặp lại tất cả các dự án đã cấu hình và chạy lệnh cho từng dự án.
|
|
53
|
-
|
|
54
|
-
## Biến môi trường
|
|
55
|
-
|
|
56
|
-
Lệnh yêu cầu biến môi trường `INTLAYER_PROJECT_CREDENTIALS` được đặt. Biến này phải chứa một đối tượng JSON ánh xạ các đường dẫn dự án đến thông tin xác thực của chúng:
|
|
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
|
-
## Phát hiện trình quản lý gói
|
|
72
|
-
|
|
73
|
-
Lệnh CI tự động phát hiện trình quản lý gói đang được sử dụng (npm, yarn, pnpm hoặc bun) dựa trên biến môi trường `npm_config_user_agent` và sử dụng lệnh phù hợp để thực thi Intlayer.
|
|
74
|
-
|
|
75
|
-
## Đối số
|
|
76
|
-
|
|
77
|
-
- **`<command...>`**: Lệnh Intlayer để thực thi (ví dụ: `fill`, `push`, `build`). Bạn có thể truyền bất kỳ lệnh Intlayer nào và các đối số của nó.
|
|
78
|
-
|
|
79
|
-
> Ví dụ: `npx intlayer ci fill --verbose`
|
|
80
|
-
>
|
|
81
|
-
> Ví dụ: `npx intlayer ci push`
|
|
82
|
-
>
|
|
83
|
-
> Ví dụ: `npx intlayer ci build --watch`
|
|
84
|
-
|
|
85
|
-
## Ví dụ
|
|
86
|
-
|
|
87
|
-
### Chạy lệnh ở chế độ dự án đơn
|
|
88
|
-
|
|
89
|
-
Nếu bạn đang ở trong thư mục dự án khớp với một trong các đường dẫn trong `INTLAYER_PROJECT_CREDENTIALS`:
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
cd packages/app
|
|
93
|
-
npx intlayer ci fill
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
Điều này sẽ chạy lệnh `fill` với thông tin xác thực được tự động chèn cho dự án `packages/app`.
|
|
97
|
-
|
|
98
|
-
### Chạy lệnh trên tất cả các dự án
|
|
99
|
-
|
|
100
|
-
Nếu bạn đang ở trong thư mục không khớp với bất kỳ đường dẫn dự án nào, lệnh sẽ lặp lại tất cả các dự án đã cấu hình:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
cd /path/to/monorepo
|
|
104
|
-
npx intlayer ci push
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Điều này sẽ chạy lệnh `push` cho mỗi dự án được cấu hình trong `INTLAYER_PROJECT_CREDENTIALS`.
|
|
108
|
-
|
|
109
|
-
### Truyền cờ bổ sung
|
|
110
|
-
|
|
111
|
-
Bạn có thể truyền bất kỳ cờ nào cho lệnh Intlayer cơ bản:
|
|
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
|
-
### Sử dụng trong pipeline CI/CD
|
|
130
|
-
|
|
131
|
-
Chạy `intlayer init` tạo ra hai GitHub Actions workflows sẵn sàng sử dụng cho bạn (xem [Scaffolded GitHub Actions](#scaffolded-github-actions) dưới đây). Ví dụ ở đây cho thấy cấu hình tương đương bằng cách sử dụng lệnh `ci` cho một monorepo, nơi các credentials được inject cho mỗi project từ `INTLAYER_PROJECT_CREDENTIALS`.
|
|
132
|
-
|
|
133
|
-
Trong cấu hình CI/CD của bạn (ví dụ: GitHub Actions, GitLab CI), đặt `INTLAYER_PROJECT_CREDENTIALS` làm bí mật:
|
|
134
|
-
|
|
135
|
-
```yaml
|
|
136
|
-
# Ví dụ GitHub Actions
|
|
137
|
-
env:
|
|
138
|
-
INTLAYER_PROJECT_CREDENTIALS: ${{ secrets.INTLAYER_PROJECT_CREDENTIALS }}
|
|
139
|
-
|
|
140
|
-
steps:
|
|
141
|
-
- name: Điền từ điển
|
|
142
|
-
run: npx intlayer ci fill
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
## GitHub Actions được tạo tự động
|
|
146
|
-
|
|
147
|
-
Khi bạn chạy `intlayer init`, Intlayer sẽ phát hiện package manager của bạn (npm, yarn, pnpm, hoặc bun) và tạo hai workflow GitHub Actions trong `.github/workflows/`, với các lệnh phù hợp với package manager đó:
|
|
148
|
-
|
|
149
|
-
- **`intlayer-fill.yml`** — Trên mọi pull request, xây dựng các từ điển và chạy `intlayer fill --git-diff --mode complete` để tạo các bản dịch bị thiếu cho các từ điển đã thay đổi, sau đó commit kết quả lại vào nhánh PR.
|
|
150
|
-
- **`intlayer-test.yml`** — Trên mọi pull request, xây dựng các từ điển và chạy `intlayer test`, làm cho kiểm tra thất bại khi các locale bắt buộc bị thiếu bản dịch.
|
|
151
|
-
|
|
152
|
-
Các tập tin workflow hiện có sẽ không bao giờ bị ghi đè. Để bỏ qua việc tạo tự động hoàn toàn, hãy chạy:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
npx intlayer init --no-github-actions
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Cấp quyền truy cập AI cho quy trình fill
|
|
159
|
-
|
|
160
|
-
`intlayer-fill.yml` được tạo ra yêu cầu quyền truy cập AI. Có hai tùy chọn có sẵn (được cấu hình trong khối `env` của quy trình):
|
|
161
|
-
|
|
162
|
-
1. **Khóa nhà cung cấp AI của riêng bạn** — Thêm bí mật `AI_API_KEY` trong cài đặt kho lưu trữ của bạn (Settings → Secrets and variables → Actions). Quy trình sẽ chuyển tiếp nó qua `--provider`, `--model` và `--api-key`.
|
|
163
|
-
2. **Khóa truy cập Intlayer CMS** — Thêm bí mật `INTLAYER_CLIENT_ID` và `INTLAYER_CLIENT_SECRET` và kết nối chúng vào phần `editor` của `intlayer.config` của bạn. Các khóa truy cập CMS cấp quyền truy cập AI thông qua backend Intlayer.
|
|
164
|
-
|
|
165
|
-
Quy trình `intlayer-test.yml` không yêu cầu bất kỳ quyền truy cập AI nào.
|
|
166
|
-
|
|
167
|
-
## Xử lý lỗi
|
|
168
|
-
|
|
169
|
-
- Nếu `INTLAYER_PROJECT_CREDENTIALS` không được đặt, lệnh sẽ thoát với lỗi.
|
|
170
|
-
- Nếu `INTLAYER_PROJECT_CREDENTIALS` không phải là JSON hợp lệ, lệnh sẽ thoát với lỗi.
|
|
171
|
-
- Nếu đường dẫn dự án không tồn tại, nó sẽ được bỏ qua với cảnh báo.
|
|
172
|
-
- Nếu bất kỳ dự án nào thất bại, lệnh sẽ thoát với mã trạng thái khác không.
|
|
173
|
-
|
|
174
|
-
## Trường hợp sử dụng
|
|
175
|
-
|
|
176
|
-
- **Tự động hóa monorepo**: Chạy các lệnh Intlayer trên nhiều dự án trong một monorepo
|
|
177
|
-
- **Pipeline CI/CD**: Tự động hóa quản lý từ điển trong quy trình tích hợp liên tục
|
|
178
|
-
- **Thao tác hàng loạt**: Thực hiện cùng một thao tác trên nhiều dự án Intlayer cùng một lúc
|
|
179
|
-
- **Quản lý bí mật**: Quản lý an toàn thông tin xác thực cho nhiều dự án bằng cách sử dụng biến môi trường
|
|
180
|
-
|
|
181
|
-
## Thực hành bảo mật tốt nhất
|
|
182
|
-
|
|
183
|
-
- Lưu trữ `INTLAYER_PROJECT_CREDENTIALS` dưới dạng bí mật được mã hóa trong nền tảng CI/CD của bạn
|
|
184
|
-
- Không bao giờ commit thông tin xác thực vào kiểm soát phiên bản
|
|
185
|
-
- Sử dụng thông tin xác thực cụ thể theo môi trường cho các môi trường triển khai khác nhau
|
|
186
|
-
- Xoay thông tin xác thực thường xuyên
|
package/docs/zh/cli/ci.md
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2026-01-06
|
|
3
|
-
updatedAt: 2026-01-06
|
|
4
|
-
title: CI 命令
|
|
5
|
-
description: 了解如何在 CI/CD 管道和 monorepo 中使用自动注入的凭据运行 Intlayer 命令。
|
|
6
|
-
keywords:
|
|
7
|
-
- CI
|
|
8
|
-
- CI/CD
|
|
9
|
-
- 自动化
|
|
10
|
-
- Monorepo
|
|
11
|
-
- 凭据
|
|
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: "添加 CI 命令"
|
|
23
|
-
author: aymericzip
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
# 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
|
-
CI 命令专为自动化和 CI/CD 管道而设计。它会自动从 `INTLAYER_PROJECT_CREDENTIALS` 环境变量注入凭据,并可以在 monorepo 中的多个项目上运行 Intlayer 命令。
|
|
45
|
-
|
|
46
|
-
## 工作原理
|
|
47
|
-
|
|
48
|
-
CI 命令以两种模式运行:
|
|
49
|
-
|
|
50
|
-
1. **单项目模式**:如果当前工作目录与 `INTLAYER_PROJECT_CREDENTIALS` 中的项目路径之一匹配,则仅针对该特定项目运行命令。
|
|
51
|
-
|
|
52
|
-
2. **迭代模式**:如果未检测到特定的项目上下文,它会遍历所有已配置的项目并为每个项目运行命令。
|
|
53
|
-
|
|
54
|
-
## 环境变量
|
|
55
|
-
|
|
56
|
-
该命令需要设置 `INTLAYER_PROJECT_CREDENTIALS` 环境变量。此变量应包含一个 JSON 对象,将项目路径映射到其凭据:
|
|
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
|
-
## 包管理器检测
|
|
72
|
-
|
|
73
|
-
CI 命令会根据 `npm_config_user_agent` 环境变量自动检测正在使用的包管理器(npm、yarn、pnpm 或 bun),并使用适当的命令来执行 Intlayer。
|
|
74
|
-
|
|
75
|
-
## 参数
|
|
76
|
-
|
|
77
|
-
- **`<command...>`**:要执行的 Intlayer 命令(例如,`fill`、`push`、`build`)。您可以传递任何 Intlayer 命令及其参数。
|
|
78
|
-
|
|
79
|
-
> 示例: `npx intlayer ci fill --verbose`
|
|
80
|
-
>
|
|
81
|
-
> 示例: `npx intlayer ci push`
|
|
82
|
-
>
|
|
83
|
-
> 示例: `npx intlayer ci build`
|
|
84
|
-
|
|
85
|
-
## 示例
|
|
86
|
-
|
|
87
|
-
### 在单项目模式下运行命令
|
|
88
|
-
|
|
89
|
-
如果您在匹配 `INTLAYER_PROJECT_CREDENTIALS` 中路径之一的项目目录中:
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
cd packages/app
|
|
93
|
-
npx intlayer ci fill
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
这将为 `packages/app` 项目自动注入凭据并运行 `fill` 命令。
|
|
97
|
-
|
|
98
|
-
### 在所有项目上运行命令
|
|
99
|
-
|
|
100
|
-
如果您在未匹配任何项目路径的目录中,该命令将遍历所有已配置的项目:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
cd /path/to/monorepo
|
|
104
|
-
npx intlayer ci push
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
这将为 `INTLAYER_PROJECT_CREDENTIALS` 中配置的每个项目运行 `push` 命令。
|
|
108
|
-
|
|
109
|
-
### 传递额外标志
|
|
110
|
-
|
|
111
|
-
您可以将任何标志传递给底层 Intlayer 命令:
|
|
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
|
-
### 在 CI/CD 管道中使用
|
|
130
|
-
|
|
131
|
-
运行 `intlayer init` 为你生成两个可立即使用的 GitHub Actions 工作流(参见下面的 [Scaffolded GitHub Actions](#scaffolded-github-actions))。这个例子展示了在 monorepo 中使用 `ci` 命令的等效设置,其中凭证从 `INTLAYER_PROJECT_CREDENTIALS` 按项目注入。
|
|
132
|
-
|
|
133
|
-
在您的 CI/CD 配置中(例如,GitHub Actions、GitLab CI),将 `INTLAYER_PROJECT_CREDENTIALS` 设置为密钥:
|
|
134
|
-
|
|
135
|
-
```yaml
|
|
136
|
-
# GitHub Actions 示例
|
|
137
|
-
env:
|
|
138
|
-
INTLAYER_PROJECT_CREDENTIALS: ${{ secrets.INTLAYER_PROJECT_CREDENTIALS }}
|
|
139
|
-
|
|
140
|
-
steps:
|
|
141
|
-
- name: 填充字典
|
|
142
|
-
run: npx intlayer ci fill
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
## 脚手架 GitHub Actions
|
|
146
|
-
|
|
147
|
-
当你运行 `intlayer init` 时,Intlayer 会检测你的包管理器(npm、yarn、pnpm 或 bun),并在 `.github/workflows/` 下脚手架生成两个 GitHub Actions 工作流,命令与该包管理器相匹配:
|
|
148
|
-
|
|
149
|
-
- **`intlayer-fill.yml`** — 在每个 pull request 上,构建字典并运行 `intlayer fill --git-diff --mode complete` 来为更改的字典生成缺失的翻译,然后将结果提交回 PR 分支。
|
|
150
|
-
- **`intlayer-test.yml`** — 在每个 pull request 上,构建字典并运行 `intlayer test`,当必需的语言环境缺少翻译时,检查失败。
|
|
151
|
-
|
|
152
|
-
现有的工作流文件永远不会被覆盖。要完全跳过脚手架,运行:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
npx intlayer init --no-github-actions
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### 为 fill workflow 提供 AI 访问权限
|
|
159
|
-
|
|
160
|
-
生成的 `intlayer-fill.yml` 需要 AI 访问权限。有两个选项可用(在 workflow 的 `env` 块中配置):
|
|
161
|
-
|
|
162
|
-
1. **您自己的 AI 提供商密钥** — 在您的存储库设置中添加 `AI_API_KEY` 密钥(Settings → Secrets and variables → Actions)。workflow 通过 `--provider`、`--model` 和 `--api-key` 转发它。
|
|
163
|
-
2. **Intlayer CMS 访问密钥** — 添加 `INTLAYER_CLIENT_ID` 和 `INTLAYER_CLIENT_SECRET` 密钥,并将它们连接到您的 `intlayer.config` `editor` 部分。CMS 访问密钥通过 Intlayer 后端授予 AI 访问权限。
|
|
164
|
-
|
|
165
|
-
`intlayer-test.yml` workflow 不需要任何 AI 访问权限。
|
|
166
|
-
|
|
167
|
-
## 错误处理
|
|
168
|
-
|
|
169
|
-
- 如果未设置 `INTLAYER_PROJECT_CREDENTIALS`,命令将以错误退出。
|
|
170
|
-
- 如果 `INTLAYER_PROJECT_CREDENTIALS` 不是有效的 JSON,命令将以错误退出。
|
|
171
|
-
- 如果项目路径不存在,将跳过并显示警告。
|
|
172
|
-
- 如果任何项目失败,命令将以非零状态代码退出。
|
|
173
|
-
|
|
174
|
-
## 使用场景
|
|
175
|
-
|
|
176
|
-
- **Monorepo 自动化**:在 monorepo 中的多个项目上运行 Intlayer 命令
|
|
177
|
-
- **CI/CD 管道**:在持续集成工作流中自动化字典管理
|
|
178
|
-
- **批量操作**:同时对多个 Intlayer 项目执行相同操作
|
|
179
|
-
- **密钥管理**:使用环境变量安全地管理多个项目的凭据
|
|
180
|
-
|
|
181
|
-
## 安全最佳实践
|
|
182
|
-
|
|
183
|
-
- 在 CI/CD 平台中将 `INTLAYER_PROJECT_CREDENTIALS` 存储为加密密钥
|
|
184
|
-
- 永远不要将凭据提交到版本控制
|
|
185
|
-
- 为不同的部署环境使用特定于环境的凭据
|
|
186
|
-
- 定期轮换凭据
|