@intlayer/docs 8.12.5-canary.0 → 9.0.0-canary.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/dist/cjs/generated/docs.entry.cjs +320 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +320 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +16 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/cli/doc-review.md +110 -4
- package/docs/ar/cli/index.md +1 -1
- package/docs/ar/cli/scan.md +1 -1
- package/docs/ar/configuration.md +36 -3
- package/docs/ar/dictionary/condition.md +167 -5
- package/docs/ar/dictionary/enumeration.md +540 -6
- package/docs/ar/dictionary/file.md +151 -1
- package/docs/ar/dictionary/gender.md +168 -7
- package/docs/ar/dictionary/nesting.md +173 -65
- package/docs/ar/dictionary/plurial.md +174 -5
- package/docs/ar/dictionary/translation.md +156 -2
- package/docs/ar/dynamic_dictionaries/collections.md +1 -1
- package/docs/ar/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/ar/dynamic_dictionaries/index.md +1 -1
- package/docs/ar/dynamic_dictionaries/variants.md +1 -1
- package/docs/ar/intlayer_with_vite+react.md +31 -31
- package/docs/ar/plugins/sync-json.md +222 -49
- package/docs/ar/releases/v8.md +187 -1
- package/docs/ar/releases/v9.md +232 -0
- package/docs/bn/cli/index.md +1 -1
- package/docs/bn/cli/scan.md +1 -1
- package/docs/bn/configuration.md +36 -3
- package/docs/cs/cli/index.md +1 -1
- package/docs/cs/cli/scan.md +1 -1
- package/docs/cs/configuration.md +35 -2
- package/docs/de/cli/doc-review.md +110 -4
- package/docs/de/cli/index.md +1 -1
- package/docs/de/cli/scan.md +1 -1
- package/docs/de/configuration.md +35 -2
- package/docs/de/dictionary/condition.md +167 -5
- package/docs/de/dictionary/enumeration.md +777 -7
- package/docs/de/dictionary/file.md +151 -1
- package/docs/de/dictionary/gender.md +168 -7
- package/docs/de/dictionary/nesting.md +173 -65
- package/docs/de/dictionary/plurial.md +347 -7
- package/docs/de/dictionary/translation.md +156 -2
- package/docs/de/dynamic_dictionaries/collections.md +1 -1
- package/docs/de/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/de/dynamic_dictionaries/index.md +1 -1
- package/docs/de/dynamic_dictionaries/variants.md +1 -1
- package/docs/de/intlayer_with_vite+react.md +48 -48
- package/docs/de/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/de/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/de/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/de/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/de/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/de/plugins/sync-json.md +222 -49
- package/docs/de/releases/v8.md +197 -1
- package/docs/de/releases/v9.md +232 -0
- package/docs/en/CI_CD.md +7 -7
- package/docs/en/cli/ci.md +62 -8
- package/docs/en/cli/doc-review.md +110 -4
- package/docs/en/cli/index.md +1 -1
- package/docs/en/cli/scan.md +1 -1
- package/docs/en/compat/i18n-js.md +44 -0
- package/docs/en/compat/i18next.md +59 -0
- package/docs/en/compat/index.md +51 -0
- package/docs/en/compat/lingui.md +44 -0
- package/docs/en/compat/next-i18next.md +57 -0
- package/docs/en/compat/next-intl.md +59 -0
- package/docs/en/compat/next-translate.md +45 -0
- package/docs/en/compat/ngx-translate.md +45 -0
- package/docs/en/compat/nuxtjs-i18n.md +46 -0
- package/docs/en/compat/polyglot.md +45 -0
- package/docs/en/compat/react-i18next.md +58 -0
- package/docs/en/compat/react-intl.md +55 -0
- package/docs/en/compat/svelte-i18n.md +47 -0
- package/docs/en/compat/transloco.md +45 -0
- package/docs/en/compat/vue-i18n.md +58 -0
- package/docs/en/configuration.md +35 -2
- package/docs/en/dictionary/condition.md +163 -1
- package/docs/en/dictionary/enumeration.md +309 -7
- package/docs/en/dictionary/file.md +151 -1
- package/docs/en/dictionary/gender.md +162 -1
- package/docs/en/dictionary/nesting.md +173 -9
- package/docs/en/dictionary/plurial.md +155 -10
- package/docs/en/dictionary/translation.md +145 -52
- package/docs/en/dynamic_dictionaries/collections.md +1 -1
- package/docs/en/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/en/dynamic_dictionaries/index.md +1 -1
- package/docs/en/dynamic_dictionaries/variants.md +1 -1
- package/docs/en/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/en/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/en/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/en/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/en/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/en/plugins/sync-json.md +56 -2
- package/docs/en/releases/v8.md +187 -1
- package/docs/en/releases/v9.md +220 -0
- package/docs/en-GB/cli/doc-review.md +110 -4
- package/docs/en-GB/cli/index.md +1 -1
- package/docs/en-GB/cli/scan.md +1 -1
- package/docs/en-GB/configuration.md +35 -2
- package/docs/en-GB/dictionary/condition.md +364 -1
- package/docs/en-GB/dictionary/enumeration.md +577 -5
- package/docs/en-GB/dictionary/file.md +317 -1
- package/docs/en-GB/dictionary/gender.md +375 -2
- package/docs/en-GB/dictionary/nesting.md +368 -71
- package/docs/en-GB/dictionary/plurial.md +347 -7
- package/docs/en-GB/dictionary/translation.md +320 -32
- package/docs/en-GB/dynamic_dictionaries/collections.md +1 -1
- package/docs/en-GB/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/en-GB/dynamic_dictionaries/index.md +1 -1
- package/docs/en-GB/dynamic_dictionaries/variants.md +1 -1
- package/docs/en-GB/plugins/sync-json.md +245 -13
- package/docs/en-GB/releases/v8.md +1 -1
- package/docs/en-GB/releases/v9.md +220 -0
- package/docs/es/cli/doc-review.md +110 -4
- package/docs/es/cli/index.md +1 -1
- package/docs/es/cli/scan.md +1 -1
- package/docs/es/configuration.md +36 -3
- package/docs/es/dictionary/condition.md +167 -5
- package/docs/es/dictionary/enumeration.md +537 -12
- package/docs/es/dictionary/file.md +151 -1
- package/docs/es/dictionary/gender.md +168 -7
- package/docs/es/dictionary/nesting.md +173 -65
- package/docs/es/dictionary/plurial.md +347 -7
- package/docs/es/dictionary/translation.md +156 -2
- package/docs/es/dynamic_dictionaries/collections.md +1 -1
- package/docs/es/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/es/dynamic_dictionaries/index.md +1 -1
- package/docs/es/dynamic_dictionaries/variants.md +1 -1
- package/docs/es/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/es/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/es/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/es/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/es/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/es/plugins/sync-json.md +222 -49
- package/docs/es/releases/v8.md +187 -1
- package/docs/es/releases/v9.md +228 -0
- package/docs/fr/cli/doc-review.md +110 -4
- package/docs/fr/cli/index.md +1 -1
- package/docs/fr/cli/scan.md +1 -1
- package/docs/fr/configuration.md +49 -16
- package/docs/fr/dictionary/condition.md +369 -6
- package/docs/fr/dictionary/enumeration.md +540 -6
- package/docs/fr/dictionary/file.md +151 -1
- package/docs/fr/dictionary/gender.md +168 -7
- package/docs/fr/dictionary/nesting.md +357 -86
- package/docs/fr/dictionary/plurial.md +174 -5
- package/docs/fr/dictionary/translation.md +156 -2
- package/docs/fr/dynamic_dictionaries/collections.md +1 -1
- package/docs/fr/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/fr/dynamic_dictionaries/index.md +1 -1
- package/docs/fr/dynamic_dictionaries/variants.md +1 -1
- package/docs/fr/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/fr/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/fr/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/fr/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/fr/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/fr/plugins/sync-json.md +244 -12
- package/docs/fr/releases/v8.md +187 -1
- package/docs/fr/releases/v9.md +220 -0
- package/docs/hi/cli/doc-review.md +110 -4
- package/docs/hi/cli/index.md +1 -1
- package/docs/hi/cli/scan.md +1 -1
- package/docs/hi/configuration.md +49 -16
- package/docs/hi/dictionary/condition.md +167 -5
- package/docs/hi/dictionary/enumeration.md +540 -6
- package/docs/hi/dictionary/file.md +151 -1
- package/docs/hi/dictionary/gender.md +168 -7
- package/docs/hi/dictionary/nesting.md +173 -65
- package/docs/hi/dictionary/plurial.md +174 -5
- package/docs/hi/dictionary/translation.md +155 -5
- package/docs/hi/dynamic_dictionaries/collections.md +1 -1
- package/docs/hi/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/hi/dynamic_dictionaries/index.md +1 -1
- package/docs/hi/dynamic_dictionaries/variants.md +1 -1
- package/docs/hi/plugins/sync-json.md +221 -48
- package/docs/hi/releases/v8.md +188 -2
- package/docs/hi/releases/v9.md +232 -0
- package/docs/id/cli/doc-review.md +110 -4
- package/docs/id/cli/index.md +1 -1
- package/docs/id/cli/scan.md +1 -1
- package/docs/id/configuration.md +35 -2
- package/docs/id/dictionary/condition.md +167 -5
- package/docs/id/dictionary/enumeration.md +540 -6
- package/docs/id/dictionary/file.md +318 -2
- package/docs/id/dictionary/gender.md +381 -8
- package/docs/id/dictionary/nesting.md +357 -86
- package/docs/id/dictionary/plurial.md +174 -5
- package/docs/id/dictionary/translation.md +156 -2
- package/docs/id/dynamic_dictionaries/collections.md +1 -1
- package/docs/id/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/id/dynamic_dictionaries/index.md +1 -1
- package/docs/id/dynamic_dictionaries/variants.md +1 -1
- package/docs/id/plugins/sync-json.md +222 -49
- package/docs/id/releases/v8.md +191 -2
- package/docs/id/releases/v9.md +232 -0
- package/docs/it/cli/doc-review.md +110 -4
- package/docs/it/cli/index.md +1 -1
- package/docs/it/cli/scan.md +1 -1
- package/docs/it/configuration.md +49 -16
- package/docs/it/dictionary/condition.md +167 -5
- package/docs/it/dictionary/enumeration.md +540 -6
- package/docs/it/dictionary/file.md +318 -2
- package/docs/it/dictionary/gender.md +168 -7
- package/docs/it/dictionary/nesting.md +173 -65
- package/docs/it/dictionary/plurial.md +347 -7
- package/docs/it/dictionary/translation.md +156 -2
- package/docs/it/dynamic_dictionaries/collections.md +1 -1
- package/docs/it/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/it/dynamic_dictionaries/index.md +1 -1
- package/docs/it/dynamic_dictionaries/variants.md +1 -1
- package/docs/it/intlayer_with_vite+react.md +0 -48
- package/docs/it/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/it/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/it/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/it/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/it/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/it/plugins/sync-json.md +224 -51
- package/docs/it/releases/v8.md +200 -2
- package/docs/it/releases/v9.md +232 -0
- package/docs/ja/cli/doc-review.md +110 -4
- package/docs/ja/cli/index.md +1 -1
- package/docs/ja/cli/scan.md +1 -1
- package/docs/ja/configuration.md +50 -17
- package/docs/ja/dictionary/condition.md +167 -5
- package/docs/ja/dictionary/enumeration.md +540 -6
- package/docs/ja/dictionary/file.md +151 -1
- package/docs/ja/dictionary/gender.md +168 -7
- package/docs/ja/dictionary/nesting.md +173 -65
- package/docs/ja/dictionary/plurial.md +174 -5
- package/docs/ja/dictionary/translation.md +169 -8
- package/docs/ja/dynamic_dictionaries/collections.md +1 -1
- package/docs/ja/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/ja/dynamic_dictionaries/index.md +1 -1
- package/docs/ja/dynamic_dictionaries/variants.md +1 -1
- package/docs/ja/intlayer_with_vite+react.md +290 -0
- package/docs/ja/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/ja/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/ja/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/ja/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/ja/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/ja/plugins/sync-json.md +222 -49
- package/docs/ja/releases/v8.md +193 -4
- package/docs/ja/releases/v9.md +232 -0
- package/docs/ko/cli/doc-review.md +110 -4
- package/docs/ko/cli/index.md +1 -1
- package/docs/ko/cli/scan.md +1 -1
- package/docs/ko/configuration.md +49 -16
- package/docs/ko/dictionary/condition.md +167 -5
- package/docs/ko/dictionary/enumeration.md +540 -6
- package/docs/ko/dictionary/file.md +151 -1
- package/docs/ko/dictionary/gender.md +168 -7
- package/docs/ko/dictionary/nesting.md +173 -65
- package/docs/ko/dictionary/plurial.md +174 -5
- package/docs/ko/dictionary/translation.md +169 -8
- package/docs/ko/dynamic_dictionaries/collections.md +1 -1
- package/docs/ko/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/ko/dynamic_dictionaries/index.md +1 -1
- package/docs/ko/dynamic_dictionaries/variants.md +1 -1
- package/docs/ko/intlayer_with_vite+react.md +48 -490
- package/docs/ko/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/ko/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/ko/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/ko/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/ko/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/ko/plugins/sync-json.md +223 -50
- package/docs/ko/releases/v8.md +192 -1
- package/docs/ko/releases/v9.md +232 -0
- package/docs/nl/cli/index.md +1 -1
- package/docs/nl/cli/scan.md +1 -1
- package/docs/nl/configuration.md +36 -3
- package/docs/pl/cli/doc-review.md +110 -4
- package/docs/pl/cli/index.md +1 -1
- package/docs/pl/cli/scan.md +1 -1
- package/docs/pl/configuration.md +35 -2
- package/docs/pl/dictionary/condition.md +167 -5
- package/docs/pl/dictionary/enumeration.md +540 -6
- package/docs/pl/dictionary/file.md +318 -2
- package/docs/pl/dictionary/gender.md +168 -7
- package/docs/pl/dictionary/nesting.md +173 -65
- package/docs/pl/dictionary/plurial.md +174 -5
- package/docs/pl/dictionary/translation.md +156 -2
- package/docs/pl/dynamic_dictionaries/collections.md +1 -1
- package/docs/pl/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/pl/dynamic_dictionaries/index.md +1 -1
- package/docs/pl/dynamic_dictionaries/variants.md +1 -1
- package/docs/pl/plugins/sync-json.md +246 -14
- package/docs/pl/releases/v8.md +188 -2
- package/docs/pl/releases/v9.md +232 -0
- package/docs/pt/cli/doc-review.md +110 -4
- package/docs/pt/cli/index.md +1 -1
- package/docs/pt/cli/scan.md +1 -1
- package/docs/pt/configuration.md +49 -16
- package/docs/pt/dictionary/condition.md +167 -5
- package/docs/pt/dictionary/enumeration.md +540 -6
- package/docs/pt/dictionary/file.md +151 -1
- package/docs/pt/dictionary/gender.md +168 -7
- package/docs/pt/dictionary/nesting.md +173 -65
- package/docs/pt/dictionary/plurial.md +347 -7
- package/docs/pt/dictionary/translation.md +156 -2
- package/docs/pt/dynamic_dictionaries/collections.md +1 -1
- package/docs/pt/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/pt/dynamic_dictionaries/index.md +1 -1
- package/docs/pt/dynamic_dictionaries/variants.md +1 -1
- package/docs/pt/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/pt/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/pt/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/pt/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/pt/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/pt/plugins/sync-json.md +222 -49
- package/docs/pt/releases/v8.md +187 -1
- package/docs/pt/releases/v9.md +232 -0
- package/docs/ru/cli/doc-review.md +110 -4
- package/docs/ru/cli/index.md +1 -1
- package/docs/ru/cli/scan.md +1 -1
- package/docs/ru/configuration.md +35 -2
- package/docs/ru/dictionary/condition.md +366 -39
- package/docs/ru/dictionary/enumeration.md +777 -7
- package/docs/ru/dictionary/file.md +318 -2
- package/docs/ru/dictionary/gender.md +168 -7
- package/docs/ru/dictionary/nesting.md +368 -71
- package/docs/ru/dictionary/plurial.md +347 -7
- package/docs/ru/dictionary/translation.md +321 -33
- package/docs/ru/dynamic_dictionaries/collections.md +1 -1
- package/docs/ru/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/ru/dynamic_dictionaries/index.md +1 -1
- package/docs/ru/dynamic_dictionaries/variants.md +1 -1
- package/docs/ru/intlayer_with_vite+react.md +48 -47
- package/docs/ru/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/ru/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/ru/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/ru/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/ru/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/ru/plugins/sync-json.md +269 -95
- package/docs/ru/releases/v8.md +194 -2
- package/docs/ru/releases/v9.md +232 -0
- package/docs/tr/cli/doc-review.md +110 -4
- package/docs/tr/cli/index.md +1 -1
- package/docs/tr/cli/scan.md +1 -1
- package/docs/tr/configuration.md +35 -2
- package/docs/tr/dictionary/condition.md +167 -5
- package/docs/tr/dictionary/enumeration.md +540 -6
- package/docs/tr/dictionary/file.md +151 -1
- package/docs/tr/dictionary/gender.md +168 -7
- package/docs/tr/dictionary/nesting.md +173 -65
- package/docs/tr/dictionary/plurial.md +174 -5
- package/docs/tr/dictionary/translation.md +156 -2
- package/docs/tr/dynamic_dictionaries/collections.md +1 -1
- package/docs/tr/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/tr/dynamic_dictionaries/index.md +1 -1
- package/docs/tr/dynamic_dictionaries/variants.md +1 -1
- package/docs/tr/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/tr/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/tr/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/tr/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/tr/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/tr/plugins/sync-json.md +222 -50
- package/docs/tr/releases/v8.md +187 -1
- package/docs/tr/releases/v9.md +232 -0
- package/docs/uk/cli/doc-review.md +110 -4
- package/docs/uk/cli/index.md +1 -1
- package/docs/uk/cli/scan.md +1 -1
- package/docs/uk/configuration.md +35 -2
- package/docs/uk/dictionary/condition.md +167 -5
- package/docs/uk/dictionary/enumeration.md +540 -6
- package/docs/uk/dictionary/file.md +318 -2
- package/docs/uk/dictionary/gender.md +381 -8
- package/docs/uk/dictionary/nesting.md +173 -65
- package/docs/uk/dictionary/plurial.md +174 -5
- package/docs/uk/dictionary/translation.md +156 -2
- package/docs/uk/dynamic_dictionaries/collections.md +1 -1
- package/docs/uk/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/uk/dynamic_dictionaries/index.md +1 -1
- package/docs/uk/dynamic_dictionaries/variants.md +1 -1
- package/docs/uk/plugins/sync-json.md +56 -2
- package/docs/uk/releases/v8.md +191 -3
- package/docs/uk/releases/v9.md +232 -0
- package/docs/ur/cli/index.md +1 -1
- package/docs/ur/cli/scan.md +1 -1
- package/docs/ur/configuration.md +36 -3
- package/docs/vi/cli/doc-review.md +110 -4
- package/docs/vi/cli/index.md +1 -1
- package/docs/vi/cli/scan.md +1 -1
- package/docs/vi/configuration.md +50 -17
- package/docs/vi/dictionary/condition.md +167 -5
- package/docs/vi/dictionary/enumeration.md +591 -14
- package/docs/vi/dictionary/file.md +318 -2
- package/docs/vi/dictionary/gender.md +168 -7
- package/docs/vi/dictionary/nesting.md +357 -86
- package/docs/vi/dictionary/plurial.md +174 -5
- package/docs/vi/dictionary/translation.md +156 -2
- package/docs/vi/dynamic_dictionaries/collections.md +1 -1
- package/docs/vi/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/vi/dynamic_dictionaries/index.md +1 -1
- package/docs/vi/dynamic_dictionaries/variants.md +1 -1
- package/docs/vi/plugins/sync-json.md +230 -57
- package/docs/vi/releases/v8.md +190 -1
- package/docs/vi/releases/v9.md +232 -0
- package/docs/zh/cli/doc-review.md +110 -4
- package/docs/zh/cli/index.md +1 -1
- package/docs/zh/cli/scan.md +1 -1
- package/docs/zh/configuration.md +49 -16
- package/docs/zh/dictionary/condition.md +167 -5
- package/docs/zh/dictionary/enumeration.md +540 -6
- package/docs/zh/dictionary/file.md +151 -1
- package/docs/zh/dictionary/gender.md +168 -7
- package/docs/zh/dictionary/nesting.md +173 -65
- package/docs/zh/dictionary/plurial.md +174 -5
- package/docs/zh/dictionary/translation.md +169 -8
- package/docs/zh/dynamic_dictionaries/collections.md +1 -1
- package/docs/zh/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/zh/dynamic_dictionaries/index.md +1 -1
- package/docs/zh/dynamic_dictionaries/variants.md +1 -1
- package/docs/zh/intlayer_with_vite+react.md +48 -288
- package/docs/zh/plugins/sync-json.md +223 -50
- package/docs/zh/releases/v8.md +1 -1
- package/docs/zh/releases/v9.md +220 -0
- package/package.json +7 -7
- package/src/generated/docs.entry.ts +320 -0
- package/dist/esm/_virtual/_rolldown/runtime.mjs +0 -8
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-14
|
|
3
|
+
updatedAt: 2026-06-14
|
|
4
|
+
title: नया Intlayer v9 - क्या नया है?
|
|
5
|
+
description: जानें कि Intlayer v9 में क्या नया है। लोकप्रिय i18n लाइब्रेरीज़ के लिए ड्रॉप-इन कम्पैटिबिलिटी पैकेजेस और Collections, Variants, और Dynamic Records के लिए सपोर्ट का परिचय।
|
|
6
|
+
keywords:
|
|
7
|
+
- Intlayer
|
|
8
|
+
- Compatibility
|
|
9
|
+
- Migration
|
|
10
|
+
- Collections
|
|
11
|
+
- Variants
|
|
12
|
+
- Dynamic Records
|
|
13
|
+
- i18next
|
|
14
|
+
- next-intl
|
|
15
|
+
- vue-i18n
|
|
16
|
+
slugs:
|
|
17
|
+
- doc
|
|
18
|
+
- releases
|
|
19
|
+
- v9
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# नया Intlayer v9 - क्या नया है?
|
|
24
|
+
|
|
25
|
+
Intlayer v9 में आपका स्वागत है! यह मेजर रिलीज़ प्रमुख i18n लाइब्रेरीज़ (`react-i18next`, `next-intl`, `vue-i18n`, आदि) के लिए **Compat Adapter Packages** के साथ Intlayer पर माइग्रेशन की राह को आसान बनाने में एक बड़ा मील का पत्थर है, और यह रिच कंटेंट स्ट्रक्चर्स: **Collections**, **Variants**, और **Dynamic Records** के लिए सपोर्ट जोड़ता है।
|
|
26
|
+
|
|
27
|
+
## विषय-सूची
|
|
28
|
+
|
|
29
|
+
<TOC levels={[2]} maxDepth={1} />
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Compat Adapter Packages
|
|
34
|
+
|
|
35
|
+
लोकप्रिय i18n लाइब्रेरीज़ से Intlayer पर माइग्रेट करना अब पहले से कहीं अधिक आसान है। हमने पांच compat पैकेजेस बनाए हैं जो स्टैंडर्ड i18n लाइब्रेरीज़ के समान **exact same public APIs** को एक्सपोज़ करते हैं, लेकिन रनटाइम (runtime) पर सभी ट्रांसलेशन वर्क को Intlayer को सौंप (delegate) देते हैं।
|
|
36
|
+
|
|
37
|
+
### Strict Typing के साथ समान Public API एक्सपोज़ करें
|
|
38
|
+
|
|
39
|
+
इंपोर्ट्स (imports) को बदलकर, आप न्यूनतम कोड परिवर्तनों के साथ Intlayer के सभी लाभ (आपके वास्तविक डिक्शनरीज़ के खिलाफ कंपाइल-टाइम टाइप सेफ्टी सहित) प्राप्त कर सकते हैं:
|
|
40
|
+
|
|
41
|
+
- `@intlayer/i18next`
|
|
42
|
+
- `@intlayer/react-i18next`
|
|
43
|
+
- `@intlayer/next-intl`
|
|
44
|
+
- `@intlayer/next-i18next`
|
|
45
|
+
- `@intlayer/vue-i18n`
|
|
46
|
+
|
|
47
|
+
उदाहरण के लिए, बस इसे बदलें:
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
import { useTranslation } from "react-i18next";
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
इसमें:
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
import { useTranslation } from "@intlayer/react-i18next";
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
आपके कीज़ (keys) अब आपके Intlayer डिक्शनरीज़ के खिलाफ **strictly typed** होंगे, जो आपके IDE में पूर्ण dot-path ऑटो-कम्प्लीशन प्रदान करेंगे!
|
|
60
|
+
|
|
61
|
+
### Bundler Alias Plugins (Vite, Next.js, Turbopack)
|
|
62
|
+
|
|
63
|
+
बिना अपने सभी इंपोर्ट स्टेटमेंट्स को मैन्युअल रूप से दोबारा लिखे माइग्रेट करने की अनुमति देने के लिए, प्रत्येक compat एडाप्टर पैकेज में `/plugin` सबपाथ के तहत एक **custom bundler plugin** (Vite या Next.js) शामिल है।
|
|
64
|
+
|
|
65
|
+
ये प्लगइन्स बिल्ड टाइम (build time) पर मौजूदा इंपोर्ट्स (जैसे `react-i18next` या `next-intl`) को उनके `@intlayer/*` समकक्षों में स्वचालित रूप से रीराइट (rewrite) कर देते हैं।
|
|
66
|
+
|
|
67
|
+
#### Next.js (Webpack / Turbopack) का उदाहरण
|
|
68
|
+
|
|
69
|
+
`withIntlayer` के बजाय, अपने Next.js कॉन्फ़िगरेशन को compat प्लगइन के साथ रैप करें:
|
|
70
|
+
|
|
71
|
+
```ts fileName="next.config.ts"
|
|
72
|
+
import { createNextI18nPlugin } from "@intlayer/next-i18next/plugin";
|
|
73
|
+
import type { NextConfig } from "next";
|
|
74
|
+
|
|
75
|
+
const withIntlayer = createNextI18nPlugin();
|
|
76
|
+
const nextConfig: NextConfig = {};
|
|
77
|
+
|
|
78
|
+
export default withIntlayer(nextConfig);
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### Vite (React, Vue, Solid, Svelte) का उदाहरण
|
|
82
|
+
|
|
83
|
+
```ts fileName="vite.config.ts"
|
|
84
|
+
import vueI18nVitePlugin from "@intlayer/vue-i18n/plugin";
|
|
85
|
+
|
|
86
|
+
export default defineConfig({
|
|
87
|
+
plugins: [vueI18nVitePlugin()],
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Mutualized Runtime Resolver
|
|
94
|
+
|
|
95
|
+
सभी compat एडाप्टर्स अब ट्रांसलेशन रिज़ॉल्यूशन को एक सिंगल, अत्यधिक ऑप्टिमाइज़्ड रनटाइम पार्सर के माध्यम से रूट करते हैं: `@intlayer/core/messageFormat`।
|
|
96
|
+
|
|
97
|
+
- **Interpolate Message**: यह स्टैंडर्ड `{{var}}` (whitespace और dot-paths), ICU फॉर्मेटेड आर्ग्युमेंट्स (`{v, number, percent}` आदि), और बेयर `{var}` टेम्पलेट्स को रिज़ॉल्व करता है।
|
|
98
|
+
- **Message Node Resolver**: यह नेस्टेड नोड्स को रिज़ॉल्व करता है: `insert()`, `plural()` (CLDR plural rules), `enu()` (enumeration), `gender()`, HTML टैग्स, एरेज़ (arrays), और कॉलेबल फ़ंक्शन नोड्स।
|
|
99
|
+
- **Tokenized Tag Parser**: यह आउट-ऑफ-द-बॉक्स रिच-टेक्स्ट रेंडरिंग को सक्षम करने के लिए इनलाइन XML/HTML टैग्स और नम्बर्ड टैग्स (जैसे, `<1>children</1>`) का समर्थन करता है।
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Feature Spec: Collections, Variants & Dynamic Records
|
|
104
|
+
|
|
105
|
+
Intlayer v9 स्टैटिक की-वैल्यू ऑब्जेक्ट्स से आगे बढ़कर डिक्शनरीज़ को डायनेमिक लेआउट स्ट्रक्चर्स घोषित करने की अनुमति देता है जो एंड-टू-एंड पूरी तरह से टाइप्ड (typed) होते हैं।
|
|
106
|
+
|
|
107
|
+
### 1. Collections
|
|
108
|
+
|
|
109
|
+
ऑर्डर किए गए आइटम्स की एक CMS-मैनेज्ड सूची परिभाषित करें (जैसे FAQs, प्रोडक्ट्स, या ब्लॉग लिस्ट्स):
|
|
110
|
+
|
|
111
|
+
```ts fileName="faq.content.ts"
|
|
112
|
+
import { t, type Dictionary } from "intlayer";
|
|
113
|
+
|
|
114
|
+
export default {
|
|
115
|
+
key: "faq",
|
|
116
|
+
content: [
|
|
117
|
+
{
|
|
118
|
+
question: t({
|
|
119
|
+
hi: "Intlayer क्या है?",
|
|
120
|
+
en: "What is Intlayer?",
|
|
121
|
+
fr: "Qu'est-ce qu'Intlayer ?",
|
|
122
|
+
}),
|
|
123
|
+
answer: t({
|
|
124
|
+
hi: "एक i18n टूलकिट।",
|
|
125
|
+
en: "An i18n toolkit.",
|
|
126
|
+
fr: "Une boîte à outils i18n.",
|
|
127
|
+
}),
|
|
128
|
+
},
|
|
129
|
+
],
|
|
130
|
+
} satisfies Dictionary;
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
#### उपयोग:
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
// सभी आइटम्स प्राप्त करें
|
|
137
|
+
const allFaqs = useIntlayer("faq"); // -> { question: string, answer: string }[]
|
|
138
|
+
|
|
139
|
+
// इंडेक्स द्वारा सिंगल आइटम प्राप्त करें
|
|
140
|
+
const faq = useIntlayer("faq", { item: 1 }); // -> { question: string, answer: string }
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### 2. Variants
|
|
144
|
+
|
|
145
|
+
A/B टेस्ट्स, सीज़नल हेडर्स, फ़ीचर फ़्लैग्स, या कस्टम लैंडिंग पेजेस डिलीवर करें:
|
|
146
|
+
|
|
147
|
+
```ts fileName="hero.content.ts"
|
|
148
|
+
import { t, type Dictionary } from "intlayer";
|
|
149
|
+
|
|
150
|
+
export default {
|
|
151
|
+
key: "hero-banner",
|
|
152
|
+
variant: "default",
|
|
153
|
+
content: {
|
|
154
|
+
control: t({ hi: "स्वागत है", en: "Welcome", fr: "Bienvenue" }),
|
|
155
|
+
black_friday: t({
|
|
156
|
+
hi: "अभी खरीदें",
|
|
157
|
+
en: "Shop now",
|
|
158
|
+
fr: "Acheter maintenant",
|
|
159
|
+
}),
|
|
160
|
+
},
|
|
161
|
+
} satisfies Dictionary;
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### उपयोग:
|
|
165
|
+
|
|
166
|
+
```ts
|
|
167
|
+
const banner = useIntlayer("hero-banner", { variant: "black_friday" });
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 3. Dynamic Records
|
|
171
|
+
|
|
172
|
+
ऐसे डिक्शनरीज़ को परिभाषित करें जिनकी एंट्रीज़ रनटाइम पर क्वेरी IDs के माध्यम से डायनेमिक रूप से लोड होती हैं:
|
|
173
|
+
|
|
174
|
+
```ts fileName="product.content.ts"
|
|
175
|
+
import { t, type Dictionary } from "intlayer";
|
|
176
|
+
|
|
177
|
+
export default {
|
|
178
|
+
key: "product-copy",
|
|
179
|
+
meta: {
|
|
180
|
+
id: "prod_123",
|
|
181
|
+
category: "books",
|
|
182
|
+
},
|
|
183
|
+
content: {
|
|
184
|
+
title: t({ hi: "क्लीन कोड", en: "Clean Code", fr: "Code Propre" }),
|
|
185
|
+
},
|
|
186
|
+
} satisfies Dictionary;
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
#### उपयोग:
|
|
190
|
+
|
|
191
|
+
```ts
|
|
192
|
+
// केवल अनुरोधित आइटम को डायनेमिक रूप से फ़ेच करता है (Suspense की आवश्यकता है)
|
|
193
|
+
const product = useIntlayer("product-copy", {
|
|
194
|
+
id: "prod_123",
|
|
195
|
+
category: "books",
|
|
196
|
+
});
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Dynamic Loading और Bundle Size Optimizations
|
|
202
|
+
|
|
203
|
+
बंडल्स को बेहद छोटा रखने के लिए, Intlayer v9 डायनेमिक लेज़ी लोडिंग (dynamic lazy loading) का समर्थन करता है।
|
|
204
|
+
|
|
205
|
+
अपने कॉन्फ़िगरेशन में, `importMode` को `'dynamic'` या `'fetch'` पर सेट करें:
|
|
206
|
+
|
|
207
|
+
```ts fileName="intlayer.config.ts"
|
|
208
|
+
export default {
|
|
209
|
+
dictionary: {
|
|
210
|
+
importMode: "dynamic", // "static" | "dynamic" | "fetch"
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
बिल्ड टाइम पर, `@intlayer/swc` और `@intlayer/babel` आपकी फ़ाइलों को स्कैन करते हैं और `useIntlayer` / `getIntlayer` कॉल्स को ट्री-शेकेबल (tree-shakeable) रैपर्स (`useDictionary` / `useDictionaryDynamic`) से बदल देते हैं। केवल चयनित कलेक्शन आइटम, वेरिएंट, या लोकेल के लिए आवश्यक कंटेंट ही लोड किया जाता है, जिससे आपके प्रोडक्शन बंडल में अप्रयुक्त (unused) ट्रांसलेशंस शामिल होने से बच जाते हैं।
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## v8 से माइग्रेशन नोट्स
|
|
220
|
+
|
|
221
|
+
यदि आप v8 से अपग्रेड कर रहे हैं, तो ध्यान दें कि v9 में कोई ब्रेकिंग बदलाव (breaking changes) शामिल नहीं हैं। लेकिन यहाँ मुख्य बदलाव दिए गए हैं:
|
|
222
|
+
|
|
223
|
+
- **Locales & Dialects**: यदि बाहरी i18n डिपेंडेंसीज़ का उपयोग कर रहे हैं, तो इंपोर्ट्स को स्वचालित रूप से रीराइट करने के लिए अपने कॉन्फ़िगरेशन या बंडलर सेटअप में उनके संबंधित compat एडाप्टर प्लगइन्स जोड़ें।
|
|
224
|
+
- **Custom Selectors**: `useIntlayer` को कॉल करते समय, दूसरा पैरामीटर अब एक ऑप्शन ऑब्जेक्ट के लिए आरक्षित है जिसमें `{ locale, item, variant, id }` शामिल हैं। यदि आपने पहले सीधे लोकेल स्ट्रिंग पास की थी, तो आप अभी भी ऐसा कर सकते हैं, लेकिन उन्नत चयनों (advanced selections) के लिए ऑप्शंस ऑब्जेक्ट का उपयोग करने की अनुशंसा की जाती है।
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## उपयोगी लिंक्स
|
|
229
|
+
|
|
230
|
+
- [Compat Adapter Packages Guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/compat/index.md)
|
|
231
|
+
- [Dynamic Dictionaries - Collections, Variants & Dynamic Records](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dynamic_dictionaries/index.md)
|
|
232
|
+
- [Configuration Reference](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/configuration.md)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-06-17
|
|
4
4
|
title: Tinjau Dokumen
|
|
5
5
|
description: Pelajari cara meninjau file dokumentasi untuk kualitas, konsistensi, dan kelengkapan di berbagai lokal.
|
|
6
6
|
keywords:
|
|
@@ -15,6 +15,10 @@ slugs:
|
|
|
15
15
|
- concept
|
|
16
16
|
- cli
|
|
17
17
|
- doc-review
|
|
18
|
+
history:
|
|
19
|
+
- version: 9.0.0
|
|
20
|
+
date: 2026-06-17
|
|
21
|
+
changes: "Tambahkan opsi --log"
|
|
18
22
|
author: aymericzip
|
|
19
23
|
---
|
|
20
24
|
|
|
@@ -55,8 +59,110 @@ Untuk sebagian besar kasus penggunaan,
|
|
|
55
59
|
|
|
56
60
|
## Argumen:
|
|
57
61
|
|
|
58
|
-
|
|
62
|
+
**Opsi daftar file:**
|
|
59
63
|
|
|
60
|
-
|
|
64
|
+
- **`--doc-pattern [docPattern...]`**: Pola glob untuk mencocokkan file dokumentasi yang akan ditinjau.
|
|
61
65
|
|
|
62
|
-
|
|
66
|
+
> Contoh: `npx intlayer doc review --doc-pattern "docs/**/*.md" "src/**/*.mdx"`
|
|
67
|
+
|
|
68
|
+
- **`--excluded-glob-pattern [excludedGlobPattern...]`**: Pola glob untuk mengecualikan file dari peninjauan.
|
|
69
|
+
|
|
70
|
+
> Contoh: `npx intlayer doc review --excluded-glob-pattern "docs/internal/**"`
|
|
71
|
+
|
|
72
|
+
- **`--skip-if-modified-before [skipIfModifiedBefore]`**: Lewati file jika telah dimodifikasi sebelum waktu yang diberikan.
|
|
73
|
+
- Bisa berupa waktu absolut seperti "2025-12-05" (string atau Date)
|
|
74
|
+
- Bisa berupa waktu relatif dalam ms `1 * 60 * 60 * 1000` (1 jam)
|
|
75
|
+
- Opsi ini memeriksa waktu pembaruan file menggunakan metode `fs.stat`. Jadi bisa terpengaruh oleh Git atau alat lain yang memodifikasi file.
|
|
76
|
+
|
|
77
|
+
> Contoh: `npx intlayer doc review --skip-if-modified-before "2025-12-05"`
|
|
78
|
+
|
|
79
|
+
- **`--skip-if-modified-after [skipIfModifiedAfter]`**: Lewati file jika telah dimodifikasi dalam waktu yang diberikan.
|
|
80
|
+
- Bisa berupa waktu absolut seperti "2025-12-05" (string atau Date)
|
|
81
|
+
- Bisa berupa waktu relatif dalam ms `1 * 60 * 60 * 1000` (1 jam)
|
|
82
|
+
- Opsi ini memeriksa waktu pembaruan file menggunakan metode `fs.stat`. Jadi bisa terpengaruh oleh Git atau alat lain yang memodifikasi file.
|
|
83
|
+
|
|
84
|
+
> Contoh: `npx intlayer doc review --skip-if-modified-after "2025-12-05"`
|
|
85
|
+
|
|
86
|
+
- **`--skip-if-exists`**: Lewati file jika file tersebut sudah ada.
|
|
87
|
+
|
|
88
|
+
> Contoh: `npx intlayer doc review --skip-if-exists`
|
|
89
|
+
|
|
90
|
+
**Opsi mode peninjauan:**
|
|
91
|
+
|
|
92
|
+
- **`--log`**: Mode hanya log. Jangan menerjemahkan dengan AI; alih-alih log blok yang memerlukan perhatian (dengan nomor baris dan konten) untuk lokal dasar dan target, untuk membantu agen lain menghasilkan terjemahan.
|
|
93
|
+
|
|
94
|
+
> Contoh: `npx intlayer doc review --log`
|
|
95
|
+
|
|
96
|
+
**Opsi output entri:**
|
|
97
|
+
|
|
98
|
+
- **`--locales [locales...]`**: Lokalisasi target untuk meninjau dokumentasi.
|
|
99
|
+
|
|
100
|
+
> Contoh: `npx intlayer doc review --locales fr es de`
|
|
101
|
+
|
|
102
|
+
- **`--base-locale [baseLocale]`**: Lokalisasi sumber (dokumen dasar) untuk dibandingkan.
|
|
103
|
+
|
|
104
|
+
> Contoh: `npx intlayer doc review --base-locale en`
|
|
105
|
+
|
|
106
|
+
**Opsi pemrosesan file:**
|
|
107
|
+
|
|
108
|
+
- **`--nb-simultaneous-file-processed [nbSimultaneousFileProcessed]`**: Jumlah file yang diproses secara bersamaan untuk peninjauan.
|
|
109
|
+
|
|
110
|
+
> Contoh: `npx intlayer doc review --nb-simultaneous-file-processed 5`
|
|
111
|
+
|
|
112
|
+
**Opsi AI:**
|
|
113
|
+
|
|
114
|
+
- **`--model [model]`**: Model AI yang digunakan untuk peninjauan (misalnya, `gpt-3.5-turbo`).
|
|
115
|
+
- **`--provider [provider]`**: Penyedia AI yang digunakan untuk peninjauan.
|
|
116
|
+
- **`--temperature [temperature]`**: Pengaturan temperature untuk model AI.
|
|
117
|
+
- **`--api-key [apiKey]`**: Berikan API key Anda sendiri untuk layanan AI.
|
|
118
|
+
- **`--application-context [applicationContext]`**: Berikan konteks tambahan untuk peninjauan AI.
|
|
119
|
+
- **`--data-serialization [dataSerialization]`**: Format serialisasi data yang digunakan untuk fitur AI Intlayer. Opsi: `json` (standar, andal), `toon` (lebih sedikit token, kurang konsisten).
|
|
120
|
+
- **`--custom-prompt [prompt]`**: Sesuaikan prompt dasar yang digunakan untuk peninjauan. (Catatan: Untuk sebagian besar kasus penggunaan, opsi `--custom-instructions` lebih disarankan karena memberikan kontrol yang lebih baik.)
|
|
121
|
+
|
|
122
|
+
> Contoh: `npx intlayer doc review --model deepseek-chat --provider deepseek --temperature 0.5 --api-key sk-1234567890 --application-context "My application is a cat store"`
|
|
123
|
+
|
|
124
|
+
**Opsi variabel lingkungan:**
|
|
125
|
+
|
|
126
|
+
- **`--env`**: Tentukan lingkungan (misalnya, `development`, `production`).
|
|
127
|
+
- **`--env-file [envFile]`**: Berikan file lingkungan khusus untuk memuat variabel.
|
|
128
|
+
- **`--base-dir`**: Tentukan direktori dasar untuk proyek.
|
|
129
|
+
- **`--no-cache`**: Nonaktifkan cache.
|
|
130
|
+
|
|
131
|
+
> Contoh: `npx intlayer doc review --base-dir ./docs --env-file .env.production.local`
|
|
132
|
+
|
|
133
|
+
**Opsi log:**
|
|
134
|
+
|
|
135
|
+
- **`--verbose`**: Aktifkan logging verbose untuk debugging. (default true saat menggunakan CLI)
|
|
136
|
+
|
|
137
|
+
> Contoh: `npx intlayer doc review --verbose`
|
|
138
|
+
|
|
139
|
+
**Opsi instruksi khusus:**
|
|
140
|
+
|
|
141
|
+
- **`--custom-instructions [customInstructions]`**: Instruksi khusus yang ditambahkan ke prompt. Berguna untuk menerapkan aturan spesifik terkait format, penerjemahan URL, etc.
|
|
142
|
+
|
|
143
|
+
> Contoh: `npx intlayer doc review --custom-instructions "Hindari menerjemahkan url, dan pertahankan format markdown"`
|
|
144
|
+
|
|
145
|
+
> Contoh: `npx intlayer doc review --custom-instructions "$(cat ./instructions.md)"`
|
|
146
|
+
|
|
147
|
+
**Opsi Git:**
|
|
148
|
+
|
|
149
|
+
- **`--git-diff`**: Hanya jalankan pada file yang mencakup perubahan dari base (default `origin/main`) ke cabang saat ini (default: `HEAD`).
|
|
150
|
+
- **`--git-diff-base`**: Tentukan referensi base untuk git diff (default `origin/main`).
|
|
151
|
+
- **`--git-diff-current`**: Tentukan referensi saat ini untuk git diff (default: `HEAD`).
|
|
152
|
+
- **`--uncommitted`**: Sertakan perubahan yang belum dikomit.
|
|
153
|
+
- **`--unpushed`**: Sertakan perubahan yang belum dipush.
|
|
154
|
+
- **`--untracked`**: Sertakan file yang belum terlacak.
|
|
155
|
+
|
|
156
|
+
> Contoh: `npx intlayer doc review --git-diff --git-diff-base origin/main --git-diff-current HEAD`
|
|
157
|
+
|
|
158
|
+
> Contoh: `npx intlayer doc review --uncommitted --unpushed --untracked`
|
|
159
|
+
|
|
160
|
+
> Perlu diperhatikan bahwa jalur file keluaran akan ditentukan dengan mengganti pola-pola berikut:
|
|
161
|
+
>
|
|
162
|
+
> - `/{{baseLocale}}/` menjadi `/{{locale}}/` (Unix)
|
|
163
|
+
> - `\{{baseLocale}}\` menjadi `\{{locale}}\` (Windows)
|
|
164
|
+
> - `_{{baseLocale}}.` menjadi `_{{locale}}.`
|
|
165
|
+
> - `{{baseLocale}}_` menjadi `{{locale}}_`
|
|
166
|
+
> - `.{{baseLocaleName}}.` menjadi `.{{localeName}}.`
|
|
167
|
+
>
|
|
168
|
+
> Jika pola tidak ditemukan, file keluaran akan menambahkan `.{{locale}}` pada ekstensi file. Misalnya `./my/file.md` akan ditinjau dan diperbarui menjadi `./my/file.fr.md` untuk locale Prancis.
|
package/docs/id/cli/index.md
CHANGED
package/docs/id/cli/scan.md
CHANGED
package/docs/id/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-06-17
|
|
4
4
|
title: Konfigurasi
|
|
5
5
|
description: Pelajari cara mengonfigurasi Intlayer untuk aplikasi Anda. Pahami berbagai pengaturan dan opsi yang tersedia untuk menyesuaikan Intlayer sesuai kebutuhan Anda.
|
|
6
6
|
keywords:
|
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.10.0
|
|
18
|
+
date: 2026-06-17
|
|
19
|
+
changes: "Menambahkan opsi `format` ke konfigurasi kamus"
|
|
17
20
|
- version: 8.9.4
|
|
18
21
|
date: 2026-05-12
|
|
19
22
|
changes: "Menambahkan dukungan untuk penyedia LM Studio"
|
|
@@ -135,6 +138,7 @@ Intlayer menerima format file konfigurasi JSON, JS, MJS, dan TS:
|
|
|
135
138
|
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
136
139
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
137
140
|
import { nextjsRewrite } from "intlayer/routing";
|
|
141
|
+
import { syncJSON } from "@intlayer/sync-json-plugin";
|
|
138
142
|
import { z } from "zod";
|
|
139
143
|
|
|
140
144
|
/**
|
|
@@ -582,10 +586,38 @@ const config: IntlayerConfig = {
|
|
|
582
586
|
}),
|
|
583
587
|
},
|
|
584
588
|
|
|
589
|
+
/**
|
|
590
|
+
* Konfigurasi kamus.
|
|
591
|
+
*/
|
|
592
|
+
dictionary: {
|
|
593
|
+
/**
|
|
594
|
+
* Mengontrol cara kamus diimpor.
|
|
595
|
+
* - "static": Diimpor secara statis pada waktu build.
|
|
596
|
+
* - "dynamic": Diimpor secara dinamis menggunakan Suspense.
|
|
597
|
+
* - "fetch": Diambil secara dinamis melalui live sync API.
|
|
598
|
+
*/
|
|
599
|
+
importMode: "static",
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* Format pesan default untuk semua kamus dalam proyek.
|
|
603
|
+
* - 'intlayer': Format intlayer asli (default).
|
|
604
|
+
* - 'icu': Format pesan ICU.
|
|
605
|
+
* - 'i18next': Format i18next.
|
|
606
|
+
* - 'vue-i18n': Format Vue I18n.
|
|
607
|
+
* - 'po': Format GNU Gettext PO.
|
|
608
|
+
*/
|
|
609
|
+
format: "icu",
|
|
610
|
+
},
|
|
611
|
+
|
|
585
612
|
/**
|
|
586
613
|
* Konfigurasi plugin.
|
|
587
614
|
*/
|
|
588
|
-
plugins: [
|
|
615
|
+
plugins: [
|
|
616
|
+
syncJSON({
|
|
617
|
+
format: "icu",
|
|
618
|
+
source: ({ locale }) => `./messages/${locale}.json`,
|
|
619
|
+
}),
|
|
620
|
+
],
|
|
589
621
|
};
|
|
590
622
|
|
|
591
623
|
export default config;
|
|
@@ -862,6 +894,7 @@ Opsi yang mengontrol operasi kamus, termasuk perilaku pengisian otomatis dan pem
|
|
|
862
894
|
| `contentAutoTransformation` | Apakah akan secara otomatis mengubah string konten menjadi node bertipe (Markdown, HTML, atau sisipan). | `boolean` | <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }` | `false` | `true` | • Markdown : `### Title` → `md('### Title')` .<br/>• HTML : `<div>Title</div>` → `html('<div>Title</div>')` .<br/>• Sisipan : `Hello {{name}}` → `insert('Hello {{name}}')` . |
|
|
863
895
|
| `location` | Menunjukkan lokasi penyimpanan file kamus dan bagaimana file tersebut disinkronkan dengan CMS. | `'local'` | <br/> `'remote'` | <br/> `'hybrid'` | <br/> `'plugin'` | <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: Hanya manajemen lokal.<br/>• `'remote'`: Hanya manajemen jarak jauh (CMS).<br/>• `'hybrid'`: Manajemen lokal dan jarak jauh.<br/>• `'plugin'` atau string kustom: Dikelola melalui plugin atau sumber kustom. |
|
|
864
896
|
| `importMode` | Mengontrol bagaimana kamus diimpor. | `'static'` | <br/> `'dynamic'` | <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: Impor statis.<br/>• `'dynamic'`: Impor dinamis melalui Suspense.<br/>• `'fetch'`: Pengambilan melalui API LIVE Sync; fallback ke `'dynamic'` jika gagal.<br/>• Memerlukan plugin `@intlayer/babel` dan `@intlayer/swc`.<br/>• Kunci harus dideklarasikan secara statis.<br/>• Diabaikan jika `optimize` dinonaktifkan.<br/>• Tidak berdampak pada `getIntlayer`, `getDictionary`, dll. |
|
|
897
|
+
| `format` | Format pesan default untuk semua kamus dalam proyek. | `'intlayer'` | <br/> `'icu'` | <br/> `'i18next'` | <br/> `'vue-i18n'` | <br/> `'po'` | `'intlayer'` | `'icu'` | • `'intlayer'`: Format intlayer asli.<br/>• `'icu'`: Format pesan ICU.<br/>• `'i18next'`: Format i18next.<br/>• `'vue-i18n'`: Format Vue I18n.<br/>• `'po'`: Format GNU Gettext PO. |
|
|
865
898
|
| `priority` | Prioritas kamus. Saat menyelesaikan konflik antar kamus, nilai yang lebih tinggi akan didahulukan daripada yang lebih rendah. | `number` | `undefined` | `1` | |
|
|
866
899
|
| `live` | DEPRECATED - gunakan `importMode: 'fetch'`. Sebelumnya menunjukkan apakah akan mengambil konten kamus secara dinamis melalui API Live Sync. | `boolean` | `undefined` | | Diganti namanya menjadi `importMode: 'fetch'` di v8.0.0. |
|
|
867
900
|
| `schema` | Dibuat secara otomatis oleh Intlayer untuk validasi skema JSON. | `'https://intlayer.org/schema.json'` | Dibuat otomatis | | Jangan mengedit secara manual. |
|
|
@@ -71,7 +71,10 @@ export default myConditionalContent;
|
|
|
71
71
|
|
|
72
72
|
## Menggunakan Konten Kondisional dengan React Intlayer
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
<Tabs group="framework">
|
|
75
|
+
<Tab label="React" value="react">
|
|
76
|
+
|
|
77
|
+
To utilize conditional content within a React component, import and use the `useIntlayer` hook from the `react-intlayer` package. This hook fetches the content for the specified key and allows you to pass in a condition to select the appropriate output.
|
|
75
78
|
|
|
76
79
|
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
77
80
|
import type { FC } from "react";
|
|
@@ -84,25 +87,25 @@ const ConditionalComponent: FC = () => {
|
|
|
84
87
|
<div>
|
|
85
88
|
<p>
|
|
86
89
|
{
|
|
87
|
-
/* Output:
|
|
90
|
+
/* Output: my content when it's true */
|
|
88
91
|
myCondition(true)
|
|
89
92
|
}
|
|
90
93
|
</p>
|
|
91
94
|
<p>
|
|
92
95
|
{
|
|
93
|
-
/* Output:
|
|
96
|
+
/* Output: my content when it's false */
|
|
94
97
|
myCondition(false)
|
|
95
98
|
}
|
|
96
99
|
</p>
|
|
97
100
|
<p>
|
|
98
101
|
{
|
|
99
|
-
/* Output:
|
|
102
|
+
/* Output: my content when the condition fails */
|
|
100
103
|
myCondition("")
|
|
101
104
|
}
|
|
102
105
|
</p>
|
|
103
106
|
<p>
|
|
104
107
|
{
|
|
105
|
-
/* Output:
|
|
108
|
+
/* Output: my content when the condition fails */
|
|
106
109
|
myCondition(undefined)
|
|
107
110
|
}
|
|
108
111
|
</p>
|
|
@@ -113,6 +116,165 @@ const ConditionalComponent: FC = () => {
|
|
|
113
116
|
export default ConditionalComponent;
|
|
114
117
|
```
|
|
115
118
|
|
|
119
|
+
</Tab>
|
|
120
|
+
<Tab label="Next.js" value="nextjs">
|
|
121
|
+
|
|
122
|
+
To utilize conditional content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
123
|
+
|
|
124
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
125
|
+
"use client";
|
|
126
|
+
|
|
127
|
+
import type { FC } from "react";
|
|
128
|
+
import { useIntlayer } from "next-intlayer";
|
|
129
|
+
|
|
130
|
+
const ConditionalComponent: FC = () => {
|
|
131
|
+
const { myCondition } = useIntlayer("my_key");
|
|
132
|
+
|
|
133
|
+
return (
|
|
134
|
+
<div>
|
|
135
|
+
<p>{myCondition(true)}</p>
|
|
136
|
+
<p>{myCondition(false)}</p>
|
|
137
|
+
</div>
|
|
138
|
+
);
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
export default ConditionalComponent;
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
</Tab>
|
|
145
|
+
<Tab label="Vue" value="vue">
|
|
146
|
+
|
|
147
|
+
To utilize conditional content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
148
|
+
|
|
149
|
+
```vue fileName="**/*.vue"
|
|
150
|
+
<script setup lang="ts">
|
|
151
|
+
import { useIntlayer } from "vue-intlayer";
|
|
152
|
+
|
|
153
|
+
const { myCondition } = useIntlayer("my_key");
|
|
154
|
+
</script>
|
|
155
|
+
|
|
156
|
+
<template>
|
|
157
|
+
<div>
|
|
158
|
+
<p>{{ myCondition(true) }}</p>
|
|
159
|
+
<p>{{ myCondition(false) }}</p>
|
|
160
|
+
</div>
|
|
161
|
+
</template>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
</Tab>
|
|
165
|
+
<Tab label="Svelte" value="svelte">
|
|
166
|
+
|
|
167
|
+
To utilize conditional content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
|
|
168
|
+
|
|
169
|
+
```svelte fileName="**/*.svelte"
|
|
170
|
+
<script lang="ts">
|
|
171
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
172
|
+
|
|
173
|
+
const content = useIntlayer("my_key");
|
|
174
|
+
</script>
|
|
175
|
+
|
|
176
|
+
<div>
|
|
177
|
+
<p>{$content.myCondition(true)}</p>
|
|
178
|
+
<p>{$content.myCondition(false)}</p>
|
|
179
|
+
</div>
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
</Tab>
|
|
183
|
+
<Tab label="Preact" value="preact">
|
|
184
|
+
|
|
185
|
+
To utilize conditional content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
186
|
+
|
|
187
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
188
|
+
import type { FC } from "preact";
|
|
189
|
+
import { useIntlayer } from "preact-intlayer";
|
|
190
|
+
|
|
191
|
+
const ConditionalComponent: FC = () => {
|
|
192
|
+
const { myCondition } = useIntlayer("my_key");
|
|
193
|
+
|
|
194
|
+
return (
|
|
195
|
+
<div>
|
|
196
|
+
<p>{myCondition(true)}</p>
|
|
197
|
+
<p>{myCondition(false)}</p>
|
|
198
|
+
</div>
|
|
199
|
+
);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
export default ConditionalComponent;
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
</Tab>
|
|
206
|
+
<Tab label="Solid" value="solid">
|
|
207
|
+
|
|
208
|
+
To utilize conditional content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
209
|
+
|
|
210
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
211
|
+
import type { Component } from "solid-js";
|
|
212
|
+
import { useIntlayer } from "solid-intlayer";
|
|
213
|
+
|
|
214
|
+
const ConditionalComponent: Component = () => {
|
|
215
|
+
const { myCondition } = useIntlayer("my_key");
|
|
216
|
+
|
|
217
|
+
return (
|
|
218
|
+
<div>
|
|
219
|
+
<p>{myCondition(true)}</p>
|
|
220
|
+
<p>{myCondition(false)}</p>
|
|
221
|
+
</div>
|
|
222
|
+
);
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
export default ConditionalComponent;
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
</Tab>
|
|
229
|
+
<Tab label="Angular" value="angular">
|
|
230
|
+
|
|
231
|
+
To utilize conditional content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
232
|
+
|
|
233
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
234
|
+
import { Component } from "@angular/core";
|
|
235
|
+
import { useIntlayer } from "angular-intlayer";
|
|
236
|
+
|
|
237
|
+
@Component({
|
|
238
|
+
selector: "app-conditional",
|
|
239
|
+
template: `
|
|
240
|
+
<div>
|
|
241
|
+
<p>{{ content().myCondition(true) }}</p>
|
|
242
|
+
<p>{{ content().myCondition(false) }}</p>
|
|
243
|
+
</div>
|
|
244
|
+
`,
|
|
245
|
+
})
|
|
246
|
+
export class ConditionalComponent {
|
|
247
|
+
content = useIntlayer("my_key");
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
</Tab>
|
|
252
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
253
|
+
|
|
254
|
+
To utilize conditional content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
255
|
+
|
|
256
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
257
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
258
|
+
|
|
259
|
+
installIntlayer();
|
|
260
|
+
|
|
261
|
+
const content = useIntlayer("my_key").onChange((newContent) => {
|
|
262
|
+
document.getElementById("true-content")!.textContent =
|
|
263
|
+
newContent.myCondition(true);
|
|
264
|
+
document.getElementById("false-content")!.textContent =
|
|
265
|
+
newContent.myCondition(false);
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
// Initial render
|
|
269
|
+
document.getElementById("true-content")!.textContent =
|
|
270
|
+
content.myCondition(true);
|
|
271
|
+
document.getElementById("false-content")!.textContent =
|
|
272
|
+
content.myCondition(false);
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
</Tab>
|
|
276
|
+
</Tabs>
|
|
277
|
+
|
|
116
278
|
## Sumber Daya Tambahan
|
|
117
279
|
|
|
118
280
|
Untuk informasi lebih rinci tentang konfigurasi dan penggunaan, lihat sumber daya berikut:
|