@intlayer/docs 5.8.1 → 6.0.0-canary.1
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/rag_powered_documentation_assistant.md +282 -0
- package/blog/de/rag_powered_documentation_assistant.md +282 -0
- package/blog/en/rag_powered_documentation_assistant.md +289 -0
- package/blog/en-GB/rag_powered_documentation_assistant.md +284 -0
- package/blog/es/rag_powered_documentation_assistant.md +308 -0
- package/blog/fr/rag_powered_documentation_assistant.md +308 -0
- package/blog/hi/rag_powered_documentation_assistant.md +284 -0
- package/blog/it/rag_powered_documentation_assistant.md +284 -0
- package/blog/ja/rag_powered_documentation_assistant.md +284 -0
- package/blog/ko/rag_powered_documentation_assistant.md +283 -0
- package/blog/pt/rag_powered_documentation_assistant.md +284 -0
- package/blog/ru/rag_powered_documentation_assistant.md +284 -0
- package/blog/tr/index.md +69 -0
- package/blog/tr/internationalization_and_SEO.md +273 -0
- package/blog/tr/intlayer_with_i18next.md +162 -0
- package/blog/tr/intlayer_with_next-i18next.md +367 -0
- package/blog/tr/intlayer_with_next-intl.md +392 -0
- package/blog/tr/intlayer_with_react-i18next.md +346 -0
- package/blog/tr/intlayer_with_react-intl.md +345 -0
- package/blog/tr/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/tr/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/tr/list_i18n_technologies/CMS/wordpress.md +188 -0
- package/blog/tr/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/tr/list_i18n_technologies/frameworks/flutter.md +150 -0
- package/blog/tr/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/tr/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/tr/list_i18n_technologies/frameworks/svelte.md +129 -0
- package/blog/tr/list_i18n_technologies/frameworks/vue.md +130 -0
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +170 -0
- package/blog/tr/rag_powered_documentation_assistant.md +284 -0
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +162 -0
- package/blog/tr/vue-i18n_vs_intlayer.md +276 -0
- package/blog/tr/what_is_internationalization.md +166 -0
- package/blog/zh/rag_powered_documentation_assistant.md +284 -0
- package/dist/cjs/generated/blog.entry.cjs +212 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +660 -132
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +84 -0
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +6 -0
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +212 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +660 -132
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +84 -0
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +6 -0
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +5 -2
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/autoFill.md +41 -40
- package/docs/ar/configuration.md +202 -199
- package/docs/ar/dictionary/content_file.md +1059 -0
- package/docs/ar/intlayer_CMS.md +4 -4
- package/docs/ar/intlayer_with_nestjs.md +271 -0
- package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ar/intlayer_with_react_router_v7.md +533 -0
- package/docs/ar/intlayer_with_tanstack.md +465 -299
- package/docs/ar/intlayer_with_vite+preact.md +7 -7
- package/docs/ar/intlayer_with_vite+react.md +7 -7
- package/docs/ar/intlayer_with_vite+vue.md +9 -9
- package/docs/ar/packages/vite-intlayer/index.md +3 -3
- package/docs/ar/readme.md +261 -0
- package/docs/ar/testing.md +199 -0
- package/docs/de/autoFill.md +42 -19
- package/docs/de/configuration.md +155 -147
- package/docs/de/dictionary/content_file.md +1059 -0
- package/docs/de/intlayer_CMS.md +4 -5
- package/docs/de/intlayer_with_nestjs.md +270 -0
- package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/de/intlayer_with_react_router_v7.md +537 -0
- package/docs/de/intlayer_with_tanstack.md +469 -302
- package/docs/de/intlayer_with_vite+preact.md +7 -7
- package/docs/de/intlayer_with_vite+react.md +7 -7
- package/docs/de/intlayer_with_vite+vue.md +9 -9
- package/docs/de/packages/vite-intlayer/index.md +3 -3
- package/docs/de/readme.md +261 -0
- package/docs/de/testing.md +200 -0
- package/docs/en/CI_CD.md +4 -6
- package/docs/en/autoFill.md +25 -5
- package/docs/en/configuration.md +45 -54
- package/docs/en/dictionary/content_file.md +1054 -0
- package/docs/en/intlayer_CMS.md +8 -7
- package/docs/en/intlayer_cli.md +112 -5
- package/docs/en/intlayer_with_nestjs.md +268 -0
- package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en/intlayer_with_react_router_v7.md +531 -0
- package/docs/en/intlayer_with_tanstack.md +463 -294
- package/docs/en/intlayer_with_vite+preact.md +8 -8
- package/docs/en/intlayer_with_vite+react.md +8 -8
- package/docs/en/intlayer_with_vite+vue.md +8 -8
- package/docs/en/packages/intlayer/getLocalizedUrl.md +102 -25
- package/docs/en/packages/vite-intlayer/index.md +3 -3
- package/docs/en/readme.md +261 -0
- package/docs/en/testing.md +200 -0
- package/docs/en-GB/autoFill.md +29 -6
- package/docs/en-GB/configuration.md +79 -71
- package/docs/en-GB/dictionary/content_file.md +1084 -0
- package/docs/en-GB/intlayer_CMS.md +4 -5
- package/docs/en-GB/intlayer_with_nestjs.md +268 -0
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en-GB/intlayer_with_react_router_v7.md +533 -0
- package/docs/en-GB/intlayer_with_tanstack.md +466 -299
- package/docs/en-GB/intlayer_with_vite+preact.md +7 -7
- package/docs/en-GB/intlayer_with_vite+react.md +7 -7
- package/docs/en-GB/intlayer_with_vite+vue.md +9 -9
- package/docs/en-GB/packages/vite-intlayer/index.md +3 -3
- package/docs/en-GB/readme.md +261 -0
- package/docs/en-GB/testing.md +200 -0
- package/docs/es/autoFill.md +45 -23
- package/docs/es/configuration.md +171 -167
- package/docs/es/dictionary/content_file.md +1088 -0
- package/docs/es/intlayer_CMS.md +4 -5
- package/docs/es/intlayer_with_nestjs.md +268 -0
- package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +533 -0
- package/docs/es/intlayer_with_tanstack.md +469 -280
- package/docs/es/intlayer_with_vite+preact.md +7 -7
- package/docs/es/intlayer_with_vite+react.md +7 -7
- package/docs/es/intlayer_with_vite+vue.md +9 -9
- package/docs/es/packages/vite-intlayer/index.md +3 -3
- package/docs/es/readme.md +261 -0
- package/docs/es/testing.md +200 -0
- package/docs/fr/autoFill.md +47 -24
- package/docs/fr/configuration.md +213 -198
- package/docs/fr/dictionary/content_file.md +1054 -0
- package/docs/fr/intlayer_CMS.md +4 -5
- package/docs/fr/intlayer_with_nestjs.md +268 -0
- package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/fr/intlayer_with_react_router_v7.md +549 -0
- package/docs/fr/intlayer_with_tanstack.md +465 -279
- package/docs/fr/intlayer_with_vite+preact.md +7 -7
- package/docs/fr/intlayer_with_vite+react.md +7 -7
- package/docs/fr/intlayer_with_vite+vue.md +9 -9
- package/docs/fr/packages/vite-intlayer/index.md +3 -3
- package/docs/fr/readme.md +261 -0
- package/docs/fr/testing.md +200 -0
- package/docs/hi/autoFill.md +47 -25
- package/docs/hi/configuration.md +194 -189
- package/docs/hi/dictionary/content_file.md +1056 -0
- package/docs/hi/intlayer_CMS.md +4 -5
- package/docs/hi/intlayer_with_nestjs.md +269 -0
- package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/hi/intlayer_with_react_router_v7.md +533 -0
- package/docs/hi/intlayer_with_tanstack.md +467 -282
- package/docs/hi/intlayer_with_vite+preact.md +7 -7
- package/docs/hi/intlayer_with_vite+react.md +7 -7
- package/docs/hi/intlayer_with_vite+vue.md +9 -9
- package/docs/hi/packages/vite-intlayer/index.md +3 -3
- package/docs/hi/readme.md +261 -0
- package/docs/hi/testing.md +200 -0
- package/docs/it/autoFill.md +46 -24
- package/docs/it/configuration.md +169 -161
- package/docs/it/dictionary/content_file.md +1061 -0
- package/docs/it/intlayer_CMS.md +4 -5
- package/docs/it/intlayer_with_nestjs.md +268 -0
- package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/it/intlayer_with_react_router_v7.md +535 -0
- package/docs/it/intlayer_with_tanstack.md +467 -301
- package/docs/it/intlayer_with_vite+preact.md +7 -7
- package/docs/it/intlayer_with_vite+react.md +7 -7
- package/docs/it/intlayer_with_vite+vue.md +9 -9
- package/docs/it/packages/vite-intlayer/index.md +3 -3
- package/docs/it/readme.md +261 -0
- package/docs/it/testing.md +200 -0
- package/docs/ja/autoFill.md +45 -23
- package/docs/ja/configuration.md +243 -204
- package/docs/ja/dictionary/content_file.md +1064 -0
- package/docs/ja/intlayer_CMS.md +4 -5
- package/docs/ja/intlayer_with_nestjs.md +268 -0
- package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ja/intlayer_with_react_router_v7.md +534 -0
- package/docs/ja/intlayer_with_tanstack.md +467 -303
- package/docs/ja/intlayer_with_vite+preact.md +7 -7
- package/docs/ja/intlayer_with_vite+react.md +7 -7
- package/docs/ja/intlayer_with_vite+vue.md +9 -9
- package/docs/ja/packages/vite-intlayer/index.md +3 -3
- package/docs/ja/readme.md +263 -0
- package/docs/ja/testing.md +200 -0
- package/docs/ko/autoFill.md +39 -16
- package/docs/ko/configuration.md +217 -197
- package/docs/ko/dictionary/content_file.md +1060 -0
- package/docs/ko/intlayer_CMS.md +4 -5
- package/docs/ko/intlayer_with_nestjs.md +268 -0
- package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ko/intlayer_with_react_router_v7.md +540 -0
- package/docs/ko/intlayer_with_tanstack.md +466 -302
- package/docs/ko/intlayer_with_vite+preact.md +7 -7
- package/docs/ko/intlayer_with_vite+react.md +7 -7
- package/docs/ko/intlayer_with_vite+vue.md +9 -9
- package/docs/ko/packages/vite-intlayer/index.md +3 -3
- package/docs/ko/readme.md +261 -0
- package/docs/ko/testing.md +200 -0
- package/docs/pt/autoFill.md +39 -15
- package/docs/pt/configuration.md +165 -147
- package/docs/pt/dictionary/content_file.md +1062 -0
- package/docs/pt/intlayer_CMS.md +4 -5
- package/docs/pt/intlayer_with_nestjs.md +271 -0
- package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pt/intlayer_with_react_router_v7.md +535 -0
- package/docs/pt/intlayer_with_tanstack.md +469 -300
- package/docs/pt/intlayer_with_vite+preact.md +7 -7
- package/docs/pt/intlayer_with_vite+react.md +7 -7
- package/docs/pt/intlayer_with_vite+vue.md +9 -9
- package/docs/pt/packages/vite-intlayer/index.md +3 -3
- package/docs/pt/readme.md +261 -0
- package/docs/pt/testing.md +200 -0
- package/docs/ru/autoFill.md +52 -30
- package/docs/ru/configuration.md +164 -117
- package/docs/ru/dictionary/content_file.md +1064 -0
- package/docs/ru/intlayer_CMS.md +4 -4
- package/docs/ru/intlayer_with_nestjs.md +270 -0
- package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ru/intlayer_with_react_router_v7.md +534 -0
- package/docs/ru/intlayer_with_tanstack.md +470 -305
- package/docs/ru/intlayer_with_vite+preact.md +7 -7
- package/docs/ru/intlayer_with_vite+react.md +7 -7
- package/docs/ru/intlayer_with_vite+vue.md +9 -9
- package/docs/ru/packages/vite-intlayer/index.md +3 -3
- package/docs/ru/readme.md +261 -0
- package/docs/ru/testing.md +202 -0
- package/docs/tr/CI_CD.md +198 -0
- package/docs/tr/autoFill.md +201 -0
- package/docs/tr/configuration.md +585 -0
- package/docs/tr/dictionary/condition.md +243 -0
- package/docs/tr/dictionary/content_file.md +1055 -0
- package/docs/tr/dictionary/enumeration.md +251 -0
- package/docs/tr/dictionary/file.md +228 -0
- package/docs/tr/dictionary/function_fetching.md +218 -0
- package/docs/tr/dictionary/gender.md +279 -0
- package/docs/tr/dictionary/insertion.md +191 -0
- package/docs/tr/dictionary/markdown.md +385 -0
- package/docs/tr/dictionary/nesting.md +279 -0
- package/docs/tr/dictionary/translation.md +315 -0
- package/docs/tr/formatters.md +618 -0
- package/docs/tr/how_works_intlayer.md +254 -0
- package/docs/tr/index.md +168 -0
- package/docs/tr/interest_of_intlayer.md +288 -0
- package/docs/tr/intlayer_CMS.md +347 -0
- package/docs/tr/intlayer_cli.md +570 -0
- package/docs/tr/intlayer_visual_editor.md +269 -0
- package/docs/tr/intlayer_with_angular.md +694 -0
- package/docs/tr/intlayer_with_create_react_app.md +1218 -0
- package/docs/tr/intlayer_with_express.md +415 -0
- package/docs/tr/intlayer_with_lynx+react.md +511 -0
- package/docs/tr/intlayer_with_nestjs.md +268 -0
- package/docs/tr/intlayer_with_nextjs_14.md +1029 -0
- package/docs/tr/intlayer_with_nextjs_15.md +1506 -0
- package/docs/tr/intlayer_with_nextjs_page_router.md +1484 -0
- package/docs/tr/intlayer_with_nuxt.md +773 -0
- package/docs/tr/intlayer_with_react_native+expo.md +660 -0
- package/docs/tr/intlayer_with_react_router_v7.md +531 -0
- package/docs/tr/intlayer_with_tanstack.md +452 -0
- package/docs/tr/intlayer_with_vite+preact.md +1673 -0
- package/docs/tr/intlayer_with_vite+react.md +1632 -0
- package/docs/tr/intlayer_with_vite+solid.md +288 -0
- package/docs/tr/intlayer_with_vite+svelte.md +288 -0
- package/docs/tr/intlayer_with_vite+vue.md +1042 -0
- package/docs/tr/introduction.md +209 -0
- package/docs/tr/locale_mapper.md +244 -0
- package/docs/tr/mcp_server.md +207 -0
- package/docs/tr/packages/@intlayer/api/index.md +58 -0
- package/docs/tr/packages/@intlayer/chokidar/index.md +57 -0
- package/docs/tr/packages/@intlayer/cli/index.md +47 -0
- package/docs/tr/packages/@intlayer/config/index.md +142 -0
- package/docs/tr/packages/@intlayer/core/index.md +51 -0
- package/docs/tr/packages/@intlayer/design-system/index.md +47 -0
- package/docs/tr/packages/@intlayer/dictionary-entry/index.md +53 -0
- package/docs/tr/packages/@intlayer/editor/index.md +47 -0
- package/docs/tr/packages/@intlayer/editor-react/index.md +47 -0
- package/docs/tr/packages/@intlayer/webpack/index.md +61 -0
- package/docs/tr/packages/angular-intlayer/index.md +59 -0
- package/docs/tr/packages/express-intlayer/index.md +258 -0
- package/docs/tr/packages/express-intlayer/t.md +459 -0
- package/docs/tr/packages/intlayer/getConfiguration.md +151 -0
- package/docs/tr/packages/intlayer/getEnumeration.md +165 -0
- package/docs/tr/packages/intlayer/getHTMLTextDir.md +127 -0
- package/docs/tr/packages/intlayer/getLocaleLang.md +87 -0
- package/docs/tr/packages/intlayer/getLocaleName.md +124 -0
- package/docs/tr/packages/intlayer/getLocalizedUrl.md +324 -0
- package/docs/tr/packages/intlayer/getMultilingualUrls.md +225 -0
- package/docs/tr/packages/intlayer/getPathWithoutLocale.md +81 -0
- package/docs/tr/packages/intlayer/getTranslation.md +196 -0
- package/docs/tr/packages/intlayer/getTranslationContent.md +195 -0
- package/docs/tr/packages/intlayer/index.md +505 -0
- package/docs/tr/packages/intlayer-cli/index.md +71 -0
- package/docs/tr/packages/intlayer-editor/index.md +139 -0
- package/docs/tr/packages/lynx-intlayer/index.md +85 -0
- package/docs/tr/packages/next-intlayer/index.md +154 -0
- package/docs/tr/packages/next-intlayer/t.md +354 -0
- package/docs/tr/packages/next-intlayer/useDictionary.md +270 -0
- package/docs/tr/packages/next-intlayer/useIntlayer.md +265 -0
- package/docs/tr/packages/next-intlayer/useLocale.md +133 -0
- package/docs/tr/packages/nuxt-intlayer/index.md +59 -0
- package/docs/tr/packages/preact-intlayer/index.md +55 -0
- package/docs/tr/packages/react-intlayer/index.md +148 -0
- package/docs/tr/packages/react-intlayer/t.md +304 -0
- package/docs/tr/packages/react-intlayer/useDictionary.md +554 -0
- package/docs/tr/packages/react-intlayer/useI18n.md +478 -0
- package/docs/tr/packages/react-intlayer/useIntlayer.md +253 -0
- package/docs/tr/packages/react-intlayer/useLocale.md +212 -0
- package/docs/tr/packages/react-native-intlayer/index.md +85 -0
- package/docs/tr/packages/react-scripts-intlayer/index.md +82 -0
- package/docs/tr/packages/solid-intlayer/index.md +56 -0
- package/docs/tr/packages/svelte-intlayer/index.md +55 -0
- package/docs/tr/packages/vite-intlayer/index.md +82 -0
- package/docs/tr/packages/vue-intlayer/index.md +59 -0
- package/docs/tr/per_locale_file.md +321 -0
- package/docs/tr/readme.md +261 -0
- package/docs/tr/roadmap.md +338 -0
- package/docs/tr/testing.md +200 -0
- package/docs/tr/vs_code_extension.md +154 -0
- package/docs/zh/autoFill.md +40 -18
- package/docs/zh/configuration.md +245 -226
- package/docs/zh/dictionary/content_file.md +1064 -0
- package/docs/zh/intlayer_CMS.md +4 -5
- package/docs/zh/intlayer_with_nestjs.md +268 -0
- package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/zh/intlayer_with_react_router_v7.md +535 -0
- package/docs/zh/intlayer_with_tanstack.md +468 -278
- package/docs/zh/intlayer_with_vite+preact.md +7 -7
- package/docs/zh/intlayer_with_vite+react.md +7 -7
- package/docs/zh/intlayer_with_vite+vue.md +7 -7
- package/docs/zh/packages/vite-intlayer/index.md +3 -3
- package/docs/zh/readme.md +261 -0
- package/docs/zh/testing.md +198 -0
- package/frequent_questions/tr/SSR_Next_no_[locale].md +105 -0
- package/frequent_questions/tr/array_as_content_declaration.md +72 -0
- package/frequent_questions/tr/build_dictionaries.md +59 -0
- package/frequent_questions/tr/build_error_CI_CD.md +75 -0
- package/frequent_questions/tr/customized_locale_list.md +65 -0
- package/frequent_questions/tr/domain_routing.md +114 -0
- package/frequent_questions/tr/esbuild_error.md +30 -0
- package/frequent_questions/tr/get_locale_cookie.md +142 -0
- package/frequent_questions/tr/intlayer_command_undefined.md +156 -0
- package/frequent_questions/tr/locale_incorect_in_url.md +74 -0
- package/frequent_questions/tr/static_rendering.md +45 -0
- package/frequent_questions/tr/translated_path_url.md +56 -0
- package/frequent_questions/tr/unknown_command.md +98 -0
- package/legal/tr/privacy_notice.md +83 -0
- package/legal/tr/terms_of_service.md +55 -0
- package/package.json +12 -12
- package/src/generated/blog.entry.ts +212 -0
- package/src/generated/docs.entry.ts +663 -135
- package/src/generated/frequentQuestions.entry.ts +85 -1
- package/src/generated/legal.entry.ts +7 -1
- package/docs/ar/dictionary/content_extention_customization.md +0 -100
- package/docs/ar/dictionary/get_started.md +0 -527
- package/docs/de/dictionary/content_extention_customization.md +0 -100
- package/docs/de/dictionary/get_started.md +0 -531
- package/docs/en/dictionary/content_extention_customization.md +0 -102
- package/docs/en/dictionary/get_started.md +0 -529
- package/docs/en-GB/dictionary/content_extention_customization.md +0 -100
- package/docs/en-GB/dictionary/get_started.md +0 -591
- package/docs/es/dictionary/content_extention_customization.md +0 -100
- package/docs/es/dictionary/get_started.md +0 -527
- package/docs/fr/dictionary/content_extention_customization.md +0 -100
- package/docs/fr/dictionary/get_started.md +0 -527
- package/docs/hi/dictionary/content_extention_customization.md +0 -100
- package/docs/hi/dictionary/get_started.md +0 -527
- package/docs/it/dictionary/content_extention_customization.md +0 -113
- package/docs/it/dictionary/get_started.md +0 -573
- package/docs/ja/dictionary/content_extention_customization.md +0 -113
- package/docs/ja/dictionary/get_started.md +0 -576
- package/docs/ko/dictionary/content_extention_customization.md +0 -100
- package/docs/ko/dictionary/get_started.md +0 -530
- package/docs/pt/dictionary/content_extention_customization.md +0 -100
- package/docs/pt/dictionary/get_started.md +0 -532
- package/docs/ru/dictionary/content_extention_customization.md +0 -100
- package/docs/ru/dictionary/get_started.md +0 -575
- package/docs/zh/dictionary/content_extention_customization.md +0 -117
- package/docs/zh/dictionary/get_started.md +0 -533
package/docs/ja/configuration.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title:
|
|
5
|
-
description:
|
|
3
|
+
updatedAt: 2025-09-16
|
|
4
|
+
title: 設定
|
|
5
|
+
description: Intlayerをアプリケーション向けに設定する方法を学びます。Intlayerをニーズに合わせてカスタマイズするためのさまざまな設定やオプションについて理解しましょう。
|
|
6
6
|
keywords:
|
|
7
|
-
- 構成
|
|
8
7
|
- 設定
|
|
8
|
+
- セッティング
|
|
9
9
|
- カスタマイズ
|
|
10
10
|
- Intlayer
|
|
11
11
|
- オプション
|
|
@@ -15,17 +15,17 @@ slugs:
|
|
|
15
15
|
- configuration
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
# Intlayer設定ドキュメント
|
|
18
|
+
# Intlayer 設定ドキュメント
|
|
19
19
|
|
|
20
20
|
## 概要
|
|
21
21
|
|
|
22
|
-
Intlayer
|
|
22
|
+
Intlayerの設定ファイルは、国際化、ミドルウェア、コンテンツ処理など、プラグインのさまざまな側面をカスタマイズすることを可能にします。本ドキュメントでは、設定内の各プロパティについて詳細に説明します。
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## 設定ファイルの対応形式
|
|
27
27
|
|
|
28
|
-
Intlayer
|
|
28
|
+
IntlayerはJSON、JS、MJS、TSの設定ファイル形式をサポートしています:
|
|
29
29
|
|
|
30
30
|
- `intlayer.config.ts`
|
|
31
31
|
- `intlayer.config.js`
|
|
@@ -43,23 +43,24 @@ import { Locales, type IntlayerConfig } from "intlayer";
|
|
|
43
43
|
|
|
44
44
|
const config: IntlayerConfig = {
|
|
45
45
|
internationalization: {
|
|
46
|
-
locales: [Locales.ENGLISH],
|
|
46
|
+
locales: [Locales.ENGLISH], // 対応するロケールのリスト
|
|
47
47
|
},
|
|
48
48
|
content: {
|
|
49
|
-
|
|
49
|
+
autoFill: "./{{fileName}}.content.json", // 自動入力用のコンテンツファイルパス
|
|
50
|
+
contentDir: ["src", "../ui-library"], // コンテンツディレクトリの配列
|
|
50
51
|
},
|
|
51
52
|
middleware: {
|
|
52
|
-
noPrefix: false,
|
|
53
|
+
noPrefix: false, // プレフィックスなしの設定
|
|
53
54
|
},
|
|
54
55
|
editor: {
|
|
55
|
-
applicationURL: "https://example.com",
|
|
56
|
+
applicationURL: "https://example.com", // エディタのアプリケーションURL
|
|
56
57
|
},
|
|
57
58
|
ai: {
|
|
58
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
59
|
-
applicationContext: "This is a test application",
|
|
59
|
+
apiKey: process.env.OPENAI_API_KEY, // AI APIキー
|
|
60
|
+
applicationContext: "This is a test application", // アプリケーションコンテキスト
|
|
60
61
|
},
|
|
61
62
|
build: {
|
|
62
|
-
importMode: "dynamic",
|
|
63
|
+
importMode: "dynamic", // インポートモードの設定
|
|
63
64
|
},
|
|
64
65
|
};
|
|
65
66
|
|
|
@@ -72,23 +73,23 @@ const { Locales } = require("intlayer");
|
|
|
72
73
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
73
74
|
const config = {
|
|
74
75
|
internationalization: {
|
|
75
|
-
locales: [Locales.ENGLISH],
|
|
76
|
+
locales: [Locales.ENGLISH], // 対応するロケールのリスト
|
|
76
77
|
},
|
|
77
78
|
content: {
|
|
78
|
-
contentDir: ["src", "../ui-library"],
|
|
79
|
+
contentDir: ["src", "../ui-library"], // コンテンツディレクトリの配列
|
|
79
80
|
},
|
|
80
81
|
middleware: {
|
|
81
|
-
noPrefix: false,
|
|
82
|
+
noPrefix: false, // プレフィックスなしの設定
|
|
82
83
|
},
|
|
83
84
|
editor: {
|
|
84
|
-
applicationURL: "https://example.com",
|
|
85
|
+
applicationURL: "https://example.com", // エディタのアプリケーションURL
|
|
85
86
|
},
|
|
86
87
|
ai: {
|
|
87
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
88
|
-
applicationContext: "This is a test application",
|
|
88
|
+
apiKey: process.env.OPENAI_API_KEY, // AI APIキー
|
|
89
|
+
applicationContext: "This is a test application", // アプリケーションコンテキスト
|
|
89
90
|
},
|
|
90
91
|
build: {
|
|
91
|
-
importMode: "dynamic",
|
|
92
|
+
importMode: "dynamic", // インポートモードの設定
|
|
92
93
|
},
|
|
93
94
|
};
|
|
94
95
|
|
|
@@ -98,13 +99,23 @@ module.exports = config;
|
|
|
98
99
|
```json5 fileName=".intlayerrc" codeFormat="json"
|
|
99
100
|
{
|
|
100
101
|
"internationalization": {
|
|
101
|
-
"locales": ["en"],
|
|
102
|
+
"locales": ["en"], // 対応するロケールのリスト
|
|
102
103
|
},
|
|
103
104
|
"content": {
|
|
104
|
-
"
|
|
105
|
+
"contentDir": ["src", "../ui-library"], // コンテンツディレクトリの配列
|
|
105
106
|
},
|
|
106
107
|
"middleware": {
|
|
107
|
-
"noPrefix": false,
|
|
108
|
+
"noPrefix": false, // プレフィックスなしの設定
|
|
109
|
+
},
|
|
110
|
+
"editor": {
|
|
111
|
+
"applicationURL": "https://example.com", // エディタのアプリケーションURL
|
|
112
|
+
},
|
|
113
|
+
"ai": {
|
|
114
|
+
"apiKey": "XXXX",
|
|
115
|
+
"applicationContext": "これはテストアプリケーションです",
|
|
116
|
+
},
|
|
117
|
+
"build": {
|
|
118
|
+
"importMode": "dynamic",
|
|
108
119
|
},
|
|
109
120
|
}
|
|
110
121
|
```
|
|
@@ -113,46 +124,43 @@ module.exports = config;
|
|
|
113
124
|
|
|
114
125
|
## 設定リファレンス
|
|
115
126
|
|
|
116
|
-
以下のセクションでは、Intlayer
|
|
127
|
+
以下のセクションでは、Intlayerで利用可能なさまざまな設定項目について説明します。
|
|
117
128
|
|
|
118
129
|
---
|
|
119
130
|
|
|
120
131
|
### 国際化設定
|
|
121
132
|
|
|
122
|
-
|
|
133
|
+
国際化に関連する設定を定義します。利用可能なロケールやアプリケーションのデフォルトロケールを含みます。
|
|
123
134
|
|
|
124
135
|
#### プロパティ
|
|
125
136
|
|
|
126
137
|
- **locales**:
|
|
127
|
-
|
|
128
138
|
- _型_: `string[]`
|
|
129
139
|
- _デフォルト_: `['en']`
|
|
130
|
-
- _説明_:
|
|
140
|
+
- _説明_: アプリケーションでサポートされているロケールのリスト。
|
|
131
141
|
- _例_: `['en', 'fr', 'es']`
|
|
132
142
|
|
|
133
143
|
- **requiredLocales**:
|
|
134
144
|
- _型_: `string[]`
|
|
135
145
|
- _デフォルト_: `[]`
|
|
136
|
-
- _説明_:
|
|
146
|
+
- _説明_: アプリケーションで必須とされるロケールのリスト。
|
|
137
147
|
- _例_: `[]`
|
|
138
|
-
- _注意_: 空の場合、`strict`
|
|
139
|
-
- _注意_:
|
|
148
|
+
- _注意_: 空の場合、`strict` モードではすべてのロケールが必須となります。
|
|
149
|
+
- _注意_: 必須のロケールは `locales` フィールドにも定義されていることを確認してください。
|
|
140
150
|
- **strictMode**:
|
|
141
|
-
|
|
142
151
|
- _型_: `string`
|
|
143
152
|
- _デフォルト_: `inclusive`
|
|
144
|
-
- _説明_: TypeScript
|
|
145
|
-
- _注意_: "strict" に設定すると、翻訳関数 `t`
|
|
146
|
-
- _注意_: "inclusive" に設定すると、翻訳関数 `t`
|
|
153
|
+
- _説明_: TypeScriptを使用して国際化コンテンツの強力な実装を保証します。
|
|
154
|
+
- _注意_: "strict" に設定すると、翻訳関数 `t` は宣言されたすべてのロケールが定義されていることを要求します。ロケールが1つでも欠けているか、設定に宣言されていないロケールがある場合はエラーをスローします。
|
|
155
|
+
- _注意_: "inclusive" に設定すると、翻訳関数 `t` は宣言されたすべてのロケールが定義されていることを要求します。ロケールが1つでも欠けている場合は警告を出します。ただし、設定に宣言されていないが存在するロケールは許容します。
|
|
147
156
|
- _注意_: "loose" に設定すると、翻訳関数 `t` は存在する任意のロケールを受け入れます。
|
|
148
157
|
|
|
149
158
|
- **defaultLocale**:
|
|
150
|
-
|
|
151
|
-
- _型_: `string`
|
|
159
|
+
- _タイプ_: `string`
|
|
152
160
|
- _デフォルト_: `'en'`
|
|
153
|
-
- _説明_:
|
|
161
|
+
- _説明_: 要求されたロケールが見つからない場合にフォールバックとして使用されるデフォルトのロケール。
|
|
154
162
|
- _例_: `'en'`
|
|
155
|
-
- _注意_: URL
|
|
163
|
+
- _注意_: URL、クッキー、またはヘッダーでロケールが指定されていない場合に、どのロケールを使用するかを決定するために使用されます。
|
|
156
164
|
|
|
157
165
|
---
|
|
158
166
|
|
|
@@ -163,85 +171,90 @@ module.exports = config;
|
|
|
163
171
|
#### プロパティ
|
|
164
172
|
|
|
165
173
|
- **applicationURL**:
|
|
166
|
-
|
|
167
|
-
- _型_: `string`
|
|
174
|
+
- _タイプ_: `string`
|
|
168
175
|
- _デフォルト_: `http://localhost:3000`
|
|
169
|
-
- _説明_: アプリケーションの
|
|
176
|
+
- _説明_: アプリケーションのURL。セキュリティ上の理由からエディターのオリジンを制限するために使用されます。
|
|
170
177
|
- _例_:
|
|
171
178
|
- `'http://localhost:3000'`
|
|
172
179
|
- `'https://example.com'`
|
|
173
180
|
- `process.env.INTLAYER_EDITOR_URL`
|
|
174
|
-
- _注意_: アプリケーションの
|
|
181
|
+
- _注意_: アプリケーションのURL。セキュリティ上の理由からエディターのオリジンを制限するために使用されます。`'*'`に設定すると、どのオリジンからでもエディターにアクセス可能になります。
|
|
175
182
|
|
|
176
183
|
- **port**:
|
|
177
|
-
|
|
178
|
-
- _型_: `number`
|
|
184
|
+
- _タイプ_: `number`
|
|
179
185
|
- _デフォルト_: `8000`
|
|
180
186
|
- _説明_: ビジュアルエディターサーバーが使用するポート。
|
|
181
187
|
|
|
182
188
|
- **editorURL**:
|
|
183
|
-
|
|
184
|
-
- _型_: `string`
|
|
189
|
+
- _タイプ_: `string`
|
|
185
190
|
- _デフォルト_: `'http://localhost:8000'`
|
|
186
|
-
- _説明_: エディターサーバーの
|
|
191
|
+
- _説明_: エディターサーバーのURL。セキュリティ上の理由からエディターのオリジンを制限するために使用されます。
|
|
187
192
|
- `'http://localhost:3000'`
|
|
188
193
|
- `'https://example.com'`
|
|
189
194
|
- `process.env.INTLAYER_EDITOR_URL`
|
|
190
|
-
- _
|
|
195
|
+
- _注_: アプリケーションからアクセスするエディターサーバーのURL。セキュリティ上の理由から、アプリケーションとやり取りできるオリジンを制限するために使用されます。`'*'`に設定すると、エディターは任意のオリジンからアクセス可能になります。ポートを変更した場合やエディターが異なるドメインでホストされている場合に設定する必要があります。
|
|
191
196
|
|
|
192
197
|
- **cmsURL**:
|
|
193
|
-
|
|
194
198
|
- _型_: `string`
|
|
195
199
|
- _デフォルト_: `'https://intlayer.org'`
|
|
196
|
-
- _説明_: Intlayer CMS
|
|
200
|
+
- _説明_: Intlayer CMSのURL。
|
|
197
201
|
- _例_: `'https://intlayer.org'`
|
|
198
|
-
- _
|
|
202
|
+
- _注_: Intlayer CMSのURL。
|
|
199
203
|
|
|
200
204
|
- **backendURL**:
|
|
201
|
-
|
|
202
205
|
- _型_: `string`
|
|
203
206
|
- _デフォルト_: `https://back.intlayer.org`
|
|
204
|
-
- _説明_: バックエンドサーバーの
|
|
207
|
+
- _説明_: バックエンドサーバーのURL。
|
|
205
208
|
- _例_: `http://localhost:4000`
|
|
206
209
|
|
|
207
210
|
- **enabled**:
|
|
208
|
-
|
|
209
211
|
- _型_: `boolean`
|
|
210
212
|
- _デフォルト_: `true`
|
|
211
|
-
- _説明_:
|
|
213
|
+
- _説明_: アプリケーションがビジュアルエディターと連携するかどうかを示します。
|
|
212
214
|
- _例_: `process.env.NODE_ENV !== 'production'`
|
|
213
|
-
- _注意_: true
|
|
215
|
+
- _注意_: true の場合、エディターはアプリケーションと連携可能です。false の場合、エディターはアプリケーションと連携できません。いずれの場合も、エディターはビジュアルエディターによってのみ有効化されます。特定の環境でエディターを無効にすることは、セキュリティを強化する方法の一つです。
|
|
214
216
|
|
|
215
217
|
- **clientId**:
|
|
216
|
-
|
|
217
|
-
- _型_: `string` | `undefined`
|
|
218
|
+
- _タイプ_: `string` | `undefined`
|
|
218
219
|
- _デフォルト_: `undefined`
|
|
219
|
-
- _説明_: clientId と clientSecret は、
|
|
220
|
+
- _説明_: clientId と clientSecret は、intlayer パッケージが oAuth2 認証を使用してバックエンドと認証するために使用されます。アクセストークンは、プロジェクトに関連するユーザーを認証するために使用されます。アクセストークンを取得するには、https://intlayer.org/dashboard/project にアクセスしてアカウントを作成してください。
|
|
220
221
|
- _例_: `true`
|
|
221
|
-
- _注意_: 重要: clientId と clientSecret
|
|
222
|
+
- _注意_: 重要: clientId と clientSecret は秘密にしておく必要があり、公開しないでください。環境変数などの安全な場所に保管することをお勧めします。
|
|
222
223
|
|
|
223
224
|
- **clientSecret**:
|
|
224
|
-
|
|
225
|
-
- _型_: `string` | `undefined`
|
|
225
|
+
- _タイプ_: `string` | `undefined`
|
|
226
226
|
- _デフォルト_: `undefined`
|
|
227
|
-
- _説明_: clientId と clientSecret は、
|
|
227
|
+
- _説明_: clientId と clientSecret は、intlayer パッケージが oAuth2 認証を使用してバックエンドと認証するために使用されます。アクセストークンは、プロジェクトに関連するユーザーを認証するために使用されます。アクセストークンを取得するには、https://intlayer.org/dashboard/project にアクセスしてアカウントを作成してください。
|
|
228
228
|
- _例_: `true`
|
|
229
|
-
- _注意_: 重要: clientId と clientSecret
|
|
229
|
+
- _注意_: 重要: clientId と clientSecret は秘密にしておく必要があり、公開しないでください。環境変数などの安全な場所に保管することを推奨します。
|
|
230
230
|
|
|
231
|
-
- **
|
|
231
|
+
- **dictionaryPriorityStrategy**:
|
|
232
|
+
- _タイプ_: `string`
|
|
233
|
+
- _デフォルト_: `'local_first'`
|
|
234
|
+
- _説明_: ローカル辞書と遠隔辞書の両方が存在する場合に、どちらを優先するかの戦略です。`'distant_first'` に設定すると、アプリケーションは遠隔辞書をローカル辞書より優先します。`'local_first'` に設定すると、アプリケーションはローカル辞書を遠隔辞書より優先します。
|
|
235
|
+
- _例_: `'distant_first'`
|
|
232
236
|
|
|
237
|
+
- **liveSync**:
|
|
233
238
|
- _型_: `boolean`
|
|
234
239
|
- _デフォルト_: `false`
|
|
235
|
-
- _説明_:
|
|
240
|
+
- _説明_: CMS / ビジュアルエディター / バックエンドで変更が検出された際に、アプリケーションサーバーがコンテンツをホットリロードするかどうかを示します。
|
|
236
241
|
- _例_: `true`
|
|
237
242
|
- _注意_: 例えば、新しい辞書が追加または更新された場合、アプリケーションはページに表示するコンテンツを更新します。
|
|
238
|
-
- _
|
|
243
|
+
- _注記_: ライブ同期はアプリケーションのコンテンツを別のサーバーに外部化する必要があります。これはアプリケーションのパフォーマンスにわずかな影響を与える可能性があります。これを制限するために、アプリケーションとライブ同期サーバーを同じマシン上にホストすることを推奨します。また、ライブ同期と `optimize` の組み合わせはライブ同期サーバーへのリクエスト数を大幅に増加させる可能性があります。インフラストラクチャに応じて、両方のオプションおよびその組み合わせをテストすることを推奨します。
|
|
239
244
|
|
|
240
|
-
- **
|
|
241
|
-
- _
|
|
242
|
-
- _デフォルト_: `
|
|
243
|
-
- _説明_:
|
|
244
|
-
- _例_: `
|
|
245
|
+
- **liveSyncPort**:
|
|
246
|
+
- _タイプ_: `number`
|
|
247
|
+
- _デフォルト_: `4000`
|
|
248
|
+
- _説明_: ライブ同期サーバーのポート番号。
|
|
249
|
+
- _例_: `4000`
|
|
250
|
+
- _注記_: ライブ同期サーバーのポート番号。
|
|
251
|
+
|
|
252
|
+
- **liveSyncURL**:
|
|
253
|
+
- _タイプ_: `string`
|
|
254
|
+
- _デフォルト_: `'http://localhost:{liveSyncPort}'`
|
|
255
|
+
- _説明_: ライブシンクサーバーのURL。
|
|
256
|
+
- _例_: `'https://example.com'`
|
|
257
|
+
- _注意_: デフォルトではlocalhostを指しますが、リモートのライブシンクサーバーの場合は任意のURLに変更可能です。
|
|
245
258
|
|
|
246
259
|
### ミドルウェア設定
|
|
247
260
|
|
|
@@ -250,15 +263,13 @@ module.exports = config;
|
|
|
250
263
|
#### プロパティ
|
|
251
264
|
|
|
252
265
|
- **headerName**:
|
|
253
|
-
|
|
254
266
|
- _型_: `string`
|
|
255
267
|
- _デフォルト_: `'x-intlayer-locale'`
|
|
256
|
-
- _説明_:
|
|
268
|
+
- _説明_: ロケールを判定するために使用されるHTTPヘッダーの名前。
|
|
257
269
|
- _例_: `'x-custom-locale'`
|
|
258
|
-
- _注意_: API
|
|
270
|
+
- _注意_: APIベースのロケール判定に便利です。
|
|
259
271
|
|
|
260
272
|
- **cookieName**:
|
|
261
|
-
|
|
262
273
|
- _型_: `string`
|
|
263
274
|
- _デフォルト_: `'intlayer-locale'`
|
|
264
275
|
- _説明_: ロケールを保存するために使用されるクッキーの名前。
|
|
@@ -266,206 +277,199 @@ module.exports = config;
|
|
|
266
277
|
- _注意_: セッション間でロケールを保持するために使用されます。
|
|
267
278
|
|
|
268
279
|
- **prefixDefault**:
|
|
269
|
-
|
|
270
|
-
- _型_: `boolean`
|
|
280
|
+
- _タイプ_: `boolean`
|
|
271
281
|
- _デフォルト_: `false`
|
|
272
282
|
- _説明_: デフォルトのロケールをURLに含めるかどうか。
|
|
273
283
|
- _例_: `true`
|
|
274
284
|
- _注意_:
|
|
275
|
-
- `true
|
|
276
|
-
- `false
|
|
285
|
+
- `true` かつ `defaultLocale = 'en'` の場合: パスは `/en/dashboard` または `/fr/dashboard`
|
|
286
|
+
- `false` かつ `defaultLocale = 'en'` の場合: パスは `/dashboard` または `/fr/dashboard`
|
|
277
287
|
|
|
278
288
|
- **basePath**:
|
|
279
|
-
|
|
280
|
-
- _型_: `string`
|
|
289
|
+
- _タイプ_: `string`
|
|
281
290
|
- _デフォルト_: `''`
|
|
282
|
-
- _説明_:
|
|
291
|
+
- _説明_: アプリケーションのURLのベースパス。
|
|
283
292
|
- _例_: `'/my-app'`
|
|
284
293
|
- _注意_:
|
|
285
|
-
-
|
|
286
|
-
-
|
|
287
|
-
- URL
|
|
288
|
-
- ベースパスが設定されていない場合、URLは`https://example.com/en`になります
|
|
289
|
-
|
|
294
|
+
- アプリケーションが `https://example.com/my-app` にホストされている場合
|
|
295
|
+
- ベースパスは `'/my-app'`
|
|
296
|
+
- URLは `https://example.com/my-app/en` となります
|
|
290
297
|
- **serverSetCookie**:
|
|
291
|
-
|
|
292
|
-
- _型_: `string`
|
|
298
|
+
- _タイプ_: `string`
|
|
293
299
|
- _デフォルト_: `'always'`
|
|
294
|
-
- _説明_:
|
|
300
|
+
- _説明_: サーバー側でロケールクッキーを設定するルール。
|
|
295
301
|
- _オプション_: `'always'`, `'never'`
|
|
296
302
|
- _例_: `'never'`
|
|
297
303
|
- _注意_: ロケールクッキーをすべてのリクエストで設定するか、まったく設定しないかを制御します。
|
|
298
304
|
|
|
299
305
|
- **noPrefix**:
|
|
300
|
-
|
|
301
|
-
- _型_: `boolean`
|
|
306
|
+
- _タイプ_: `boolean`
|
|
302
307
|
- _デフォルト_: `false`
|
|
303
|
-
- _説明_: URL
|
|
308
|
+
- _説明_: URLからロケールのプレフィックスを省略するかどうか。
|
|
304
309
|
- _例_: `true`
|
|
305
310
|
- _注意_:
|
|
306
|
-
- `true
|
|
307
|
-
- `false
|
|
308
|
-
- `basePath = '/my-app'
|
|
309
|
-
- `noPrefix = false
|
|
310
|
-
- `noPrefix = true
|
|
311
|
+
- `true` の場合: URLにプレフィックスはありません
|
|
312
|
+
- `false` の場合: URLにプレフィックスがあります
|
|
313
|
+
- `basePath = '/my-app'` の例:
|
|
314
|
+
- `noPrefix = false` の場合: URLは `https://example.com/my-app/en`
|
|
315
|
+
- `noPrefix = true` の場合: URLは `https://example.com`
|
|
311
316
|
|
|
312
317
|
- **detectLocaleOnPrefetchNoPrefix**:
|
|
313
|
-
|
|
314
|
-
- _型_: `boolean`
|
|
318
|
+
- _タイプ_: `boolean`
|
|
315
319
|
- _デフォルト_: `false`
|
|
316
|
-
- _説明_: Next.js
|
|
320
|
+
- _説明_: Next.jsのプリフェッチリクエスト時にロケール検出を行うかどうかを制御します。
|
|
317
321
|
- _例_: `true`
|
|
318
|
-
- _注意_: この設定はNext.js
|
|
322
|
+
- _注意_: この設定はNext.jsのロケールプリフェッチの動作に影響します:
|
|
319
323
|
- **例のシナリオ:**
|
|
320
|
-
-
|
|
321
|
-
-
|
|
322
|
-
-
|
|
323
|
-
- **`detectLocaleOnPrefetchNoPrefix: true
|
|
324
|
-
-
|
|
325
|
-
-
|
|
324
|
+
- ユーザーのブラウザ言語が `'fr'`
|
|
325
|
+
- 現在のページが `/fr/about`
|
|
326
|
+
- リンクが `/about` をプリフェッチする
|
|
327
|
+
- **`detectLocaleOnPrefetchNoPrefix: true` の場合:**
|
|
328
|
+
- プリフェッチはブラウザから `'fr'` ロケールを検出
|
|
329
|
+
- プリフェッチを `/fr/about` にリダイレクト
|
|
326
330
|
- **`detectLocaleOnPrefetchNoPrefix: false`(デフォルト)の場合:**
|
|
327
|
-
-
|
|
328
|
-
-
|
|
329
|
-
- **`true
|
|
330
|
-
-
|
|
331
|
+
- プリフェッチはデフォルトロケールを使用
|
|
332
|
+
- プリフェッチを `/en/about` にリダイレクト(`'en'` がデフォルトの場合)
|
|
333
|
+
- **`true` を使うべき場合:**
|
|
334
|
+
- アプリがローカライズされていない内部リンクを使用している場合(例:`<a href="/about">`)
|
|
331
335
|
- 通常のリクエストとプリフェッチリクエスト間で一貫したロケール検出動作を望む場合
|
|
332
|
-
- **`false
|
|
333
|
-
-
|
|
334
|
-
-
|
|
335
|
-
-
|
|
336
|
+
- **`false`(デフォルト)を使用する場合:**
|
|
337
|
+
- アプリがロケール接頭辞付きリンクを使用している場合(例:`<a href="/fr/about">`)
|
|
338
|
+
- プリフェッチのパフォーマンスを最適化したい場合
|
|
339
|
+
- リダイレクトループの可能性を回避したい場合
|
|
336
340
|
|
|
337
341
|
---
|
|
338
342
|
|
|
339
343
|
### コンテンツ設定
|
|
340
344
|
|
|
341
|
-
|
|
345
|
+
アプリケーション内のコンテンツ処理に関連する設定。ディレクトリ名、ファイル拡張子、および派生設定を含みます。
|
|
342
346
|
|
|
343
347
|
#### プロパティ
|
|
344
348
|
|
|
345
|
-
- **
|
|
349
|
+
- **autoFill**:
|
|
350
|
+
- _型_: `boolean | string | { [key in Locales]?: string }`
|
|
351
|
+
- _デフォルト_: `undefined`
|
|
352
|
+
- _説明_: コンテンツをAIを使って自動的にどのように埋めるかを示します。`intlayer.config.ts`ファイルでグローバルに宣言することができます。
|
|
353
|
+
- _例_: true
|
|
354
|
+
- _例_: `'./{{fileName}}.content.json'`
|
|
355
|
+
- _例_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
|
|
356
|
+
- _注意_: 自動埋め設定は以下のいずれかです:
|
|
357
|
+
- boolean: すべてのロケールで自動埋めを有効にする
|
|
358
|
+
- string: 単一ファイルのパスまたは変数を含むテンプレート
|
|
359
|
+
- object: ロケールごとのファイルパス
|
|
346
360
|
|
|
347
|
-
|
|
348
|
-
- _
|
|
349
|
-
- _
|
|
361
|
+
- **watch**:
|
|
362
|
+
- _型_: `boolean`
|
|
363
|
+
- _デフォルト_: `process.env.NODE_ENV === 'development'`
|
|
364
|
+
- _説明_: Intlayerがアプリ内のコンテンツ宣言ファイルの変更を監視し、関連する辞書を再構築するかどうかを示します。
|
|
350
365
|
|
|
351
366
|
- **fileExtensions**:
|
|
352
|
-
|
|
353
|
-
- _
|
|
354
|
-
- _
|
|
355
|
-
- _説明_: 辞書を構築する際に検索するファイル拡張子。
|
|
367
|
+
- _型_: `string[]`
|
|
368
|
+
- _デフォルト_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
|
|
369
|
+
- _説明_: 辞書を構築する際に探すファイル拡張子。
|
|
356
370
|
- _例_: `['.data.ts', '.data.js', '.data.json']`
|
|
357
371
|
- _注意_: ファイル拡張子をカスタマイズすることで競合を回避できます。
|
|
358
372
|
|
|
359
373
|
- **baseDir**:
|
|
360
|
-
|
|
361
374
|
- _タイプ_: `string`
|
|
362
|
-
- _
|
|
375
|
+
- _デフォルト_: `process.cwd()`
|
|
363
376
|
- _説明_: プロジェクトのベースディレクトリ。
|
|
364
377
|
- _例_: `'/path/to/project'`
|
|
365
378
|
- _注意_: これはすべてのIntlayer関連ディレクトリを解決するために使用されます。
|
|
366
379
|
|
|
367
380
|
- **dictionaryOutput**:
|
|
368
|
-
|
|
369
381
|
- _タイプ_: `string[]`
|
|
370
|
-
- _
|
|
371
|
-
- _説明_:
|
|
382
|
+
- _デフォルト_: `['intlayer']`
|
|
383
|
+
- _説明_: 使用する辞書出力のタイプ。例:`'intlayer'` または `'i18next'`。
|
|
372
384
|
|
|
373
385
|
- **contentDir**:
|
|
374
|
-
|
|
375
386
|
- _タイプ_: `string[]`
|
|
376
|
-
- _
|
|
387
|
+
- _デフォルト_: `['.']`
|
|
377
388
|
- _例_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
|
|
378
389
|
- _説明_: コンテンツが保存されているディレクトリパス。
|
|
379
390
|
|
|
380
391
|
- **dictionariesDir**:
|
|
381
|
-
|
|
382
392
|
- _タイプ_: `string`
|
|
383
|
-
- _
|
|
384
|
-
- _説明_:
|
|
393
|
+
- _デフォルト_: `'.intlayer/dictionaries'`
|
|
394
|
+
- _説明_: 中間結果または出力結果を保存するためのディレクトリパス。
|
|
385
395
|
|
|
386
396
|
- **moduleAugmentationDir**:
|
|
387
|
-
|
|
388
397
|
- _タイプ_: `string`
|
|
389
|
-
- _
|
|
390
|
-
- _説明_:
|
|
398
|
+
- _デフォルト_: `'.intlayer/types'`
|
|
399
|
+
- _説明_: モジュール拡張用のディレクトリで、IDEの補完や型チェックを向上させるためのもの。
|
|
391
400
|
- _例_: `'intlayer-types'`
|
|
392
|
-
- _注意_:
|
|
401
|
+
- _注意_: これを必ず `tsconfig.json` に含めてください。
|
|
393
402
|
|
|
394
403
|
- **unmergedDictionariesDir**:
|
|
395
|
-
|
|
396
404
|
- _タイプ_: `string`
|
|
397
|
-
- _
|
|
398
|
-
- _説明_:
|
|
405
|
+
- _デフォルト_: `'.intlayer/unmerged_dictionary'`
|
|
406
|
+
- _説明_: マージされていない辞書を保存するためのディレクトリ。
|
|
399
407
|
- _例_: `'translations'`
|
|
400
408
|
|
|
401
409
|
- **dictionariesDir**:
|
|
402
|
-
|
|
403
410
|
- _タイプ_: `string`
|
|
404
|
-
- _
|
|
405
|
-
- _説明_:
|
|
411
|
+
- _デフォルト_: `'.intlayer/dictionary'`
|
|
412
|
+
- _説明_: ローカリゼーション辞書を格納するディレクトリ。
|
|
406
413
|
- _例_: `'translations'`
|
|
407
414
|
|
|
408
415
|
- **i18nextResourcesDir**:
|
|
409
|
-
|
|
410
416
|
- _タイプ_: `string`
|
|
411
|
-
- _
|
|
412
|
-
- _説明_: i18n
|
|
417
|
+
- _デフォルト_: `'i18next_dictionary'`
|
|
418
|
+
- _説明_: i18n辞書を格納するディレクトリ。
|
|
413
419
|
- _例_: `'translations'`
|
|
414
|
-
- _注意_: このディレクトリがi18next
|
|
420
|
+
- _注意_: このディレクトリがi18nextの出力タイプ用に設定されていることを確認してください。
|
|
415
421
|
|
|
416
422
|
- **typesDir**:
|
|
417
|
-
|
|
418
423
|
- _タイプ_: `string`
|
|
419
|
-
- _
|
|
420
|
-
- _説明_:
|
|
424
|
+
- _デフォルト_: `'types'`
|
|
425
|
+
- _説明_: 辞書の型を格納するディレクトリ。
|
|
421
426
|
- _例_: `'intlayer-types'`
|
|
422
427
|
|
|
423
428
|
- **mainDir**:
|
|
424
|
-
|
|
425
429
|
- _タイプ_: `string`
|
|
426
|
-
- _
|
|
427
|
-
- _説明_:
|
|
430
|
+
- _デフォルト_: `'main'`
|
|
431
|
+
- _説明_: メインアプリケーションファイルが格納されるディレクトリ。
|
|
428
432
|
- _例_: `'intlayer-main'`
|
|
429
433
|
|
|
430
434
|
- **excludedPath**:
|
|
431
435
|
- _タイプ_: `string[]`
|
|
432
|
-
- _
|
|
433
|
-
- _説明_:
|
|
434
|
-
- _注意_:
|
|
436
|
+
- _デフォルト_: `['node_modules']`
|
|
437
|
+
- _説明_: コンテンツ検索から除外するディレクトリ。
|
|
438
|
+
- _注意_: この設定はまだ使用されていませんが、将来的に実装予定です。
|
|
435
439
|
|
|
436
440
|
### ロガー設定
|
|
437
441
|
|
|
438
|
-
|
|
442
|
+
ロガーを制御する設定で、使用するプレフィックスも含みます。
|
|
439
443
|
|
|
440
444
|
#### プロパティ
|
|
441
445
|
|
|
442
446
|
- **mode**:
|
|
443
|
-
|
|
444
447
|
- _タイプ_: `string`
|
|
445
|
-
- _
|
|
448
|
+
- _デフォルト_: `default`
|
|
446
449
|
- _説明_: ロガーのモードを示します。
|
|
447
450
|
- _オプション_: `default`, `verbose`, `disabled`
|
|
448
451
|
- _例_: `default`
|
|
449
|
-
- _注意_:
|
|
452
|
+
- _注意_: ロガーのモードです。verboseモードはより多くの情報をログに記録しますが、デバッグ目的で使用されます。disabledモードはロガーを無効にします。
|
|
450
453
|
|
|
451
454
|
- **prefix**:
|
|
452
|
-
|
|
453
455
|
- _タイプ_: `string`
|
|
454
|
-
- _
|
|
456
|
+
- _デフォルト_: `'[intlayer] '`
|
|
455
457
|
- _説明_: ロガーのプレフィックス。
|
|
456
458
|
- _例_: `'[my custom prefix] '`
|
|
457
|
-
-
|
|
459
|
+
- _Note_: ロガーのプレフィックス。
|
|
458
460
|
|
|
459
|
-
### AI
|
|
461
|
+
### AI構成
|
|
460
462
|
|
|
461
|
-
IntlayerのAI
|
|
462
|
-
この設定は、[Intlayer Dashboard](https://intlayer.org/dashboard/project)でアクセスキーを使用して登録されている場合はオプションです。Intlayerは、ニーズに最も効率的でコスト効果の高いAIソリューションを自動的に管理します。デフォルトオプションを使用することで、Intlayerが最も関連性の高いモデルを使用するよう継続的に更新されるため、長期的な保守性が向上します。
|
|
463
|
+
IntlayerのAI機能を制御する設定で、プロバイダー、モデル、APIキーを含みます。
|
|
463
464
|
|
|
464
|
-
|
|
465
|
-
このAI設定は、Intlayer環境全体でグローバルに使用されます。CLIコマンドは、これらの設定をコマンド(例: `fill`)のデフォルトとして使用し、SDK、ビジュアルエディター、CMSも同様です。特定のユースケースに対してこれらのデフォルト値を上書きするには、コマンドパラメータを使用できます。
|
|
466
|
-
Intlayerは、柔軟性と選択肢を向上させるために複数のAIプロバイダーをサポートしています。現在サポートされているプロバイダーは以下の通りです:
|
|
465
|
+
この設定は、アクセスキーを使用して[Intlayerダッシュボード](https://intlayer.org/dashboard/project)に登録している場合はオプションです。Intlayerは、最も効率的でコスト効果の高いAIソリューションを自動的に管理します。デフォルトのオプションを使用することで、Intlayerが継続的に最適なモデルを使用するように更新されるため、長期的な保守性が向上します。
|
|
467
466
|
|
|
468
|
-
|
|
467
|
+
独自のAPIキーや特定のモデルを使用したい場合は、カスタムAI構成を定義できます。
|
|
468
|
+
このAI構成は、Intlayer環境全体でグローバルに使用されます。CLIコマンドはこれらの設定をコマンド(例:`fill`)のデフォルトとして使用し、SDK、ビジュアルエディター、CMSでも同様です。特定のユースケースに対しては、コマンドパラメータを使ってこれらのデフォルト値を上書きすることができます。
|
|
469
|
+
|
|
470
|
+
Intlayerは、柔軟性と選択肢を高めるために複数のAIプロバイダーをサポートしています。現在サポートされているプロバイダーは以下の通りです:
|
|
471
|
+
|
|
472
|
+
- **OpenAI**(デフォルト)
|
|
469
473
|
- **Anthropic Claude**
|
|
470
474
|
- **Mistral AI**
|
|
471
475
|
- **DeepSeek**
|
|
@@ -475,71 +479,106 @@ Intlayerは、柔軟性と選択肢を向上させるために複数のAIプロ
|
|
|
475
479
|
#### プロパティ
|
|
476
480
|
|
|
477
481
|
- **provider**:
|
|
478
|
-
|
|
479
482
|
- _タイプ_: `string`
|
|
480
|
-
- _
|
|
483
|
+
- _デフォルト_: `'openai'`
|
|
481
484
|
- _説明_: IntlayerのAI機能に使用するプロバイダー。
|
|
482
485
|
- _オプション_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`
|
|
483
486
|
- _例_: `'anthropic'`
|
|
484
|
-
- _注意_:
|
|
487
|
+
- _注意_: プロバイダーによっては異なるAPIキーが必要であり、料金体系も異なる場合があります。
|
|
485
488
|
|
|
486
489
|
- **model**:
|
|
487
|
-
|
|
488
490
|
- _タイプ_: `string`
|
|
489
|
-
- _
|
|
490
|
-
- _説明_: IntlayerのAI
|
|
491
|
+
- _デフォルト_: なし
|
|
492
|
+
- _説明_: IntlayerのAI機能で使用するモデル。
|
|
491
493
|
- _例_: `'gpt-4o-2024-11-20'`
|
|
492
|
-
- _注意_:
|
|
494
|
+
- _注意_: 使用するモデルはプロバイダーによって異なります。
|
|
493
495
|
|
|
494
496
|
- **temperature**:
|
|
495
|
-
|
|
496
497
|
- _タイプ_: `number`
|
|
497
|
-
- _
|
|
498
|
-
- _説明_: AI
|
|
498
|
+
- _デフォルト_: なし
|
|
499
|
+
- _説明_: AIの応答のランダム性を制御する温度パラメータ。
|
|
499
500
|
- _例_: `0.1`
|
|
500
|
-
- _注意_: 温度が高いほど、AI
|
|
501
|
+
- _注意_: 温度が高いほど、AIの応答はより創造的で予測不可能になります。
|
|
501
502
|
|
|
502
503
|
- **apiKey**:
|
|
503
|
-
|
|
504
504
|
- _タイプ_: `string`
|
|
505
|
-
- _
|
|
505
|
+
- _デフォルト_: なし
|
|
506
506
|
- _説明_: 選択したプロバイダーのAPIキー。
|
|
507
507
|
- _例_: `process.env.OPENAI_API_KEY`
|
|
508
|
-
- _注意_: 重要: API
|
|
508
|
+
- _注意_: 重要: APIキーは秘密にしておく必要があり、公開しないでください。環境変数などの安全な場所に保管することを必ず行ってください。
|
|
509
509
|
|
|
510
510
|
- **applicationContext**:
|
|
511
511
|
- _タイプ_: `string`
|
|
512
|
-
- _
|
|
513
|
-
- _説明_: AI
|
|
512
|
+
- _デフォルト_: なし
|
|
513
|
+
- _説明_: AIモデルに対してアプリケーションの追加コンテキストを提供し、より正確で文脈に適した翻訳を生成するのに役立ちます。これには、アプリのドメイン、ターゲットユーザー、トーン、特定の用語などの情報が含まれます。
|
|
514
514
|
|
|
515
515
|
### ビルド設定
|
|
516
516
|
|
|
517
517
|
Intlayerがアプリケーションの国際化をどのように最適化しビルドするかを制御する設定。
|
|
518
518
|
|
|
519
|
-
|
|
519
|
+
ビルドオプションは `@intlayer/babel` と `@intlayer/swc` プラグインに適用されます。
|
|
520
520
|
|
|
521
|
-
> 開発モードでは、Intlayer
|
|
521
|
+
> 開発モードでは、Intlayer は辞書を静的にインポートして、開発体験を簡素化します。
|
|
522
522
|
|
|
523
|
-
>
|
|
523
|
+
> 最適化された場合、Intlayer は辞書の呼び出しを置き換えてチャンク分割を最適化し、最終バンドルには実際に使用されている辞書のみがインポートされるようにします。
|
|
524
524
|
|
|
525
525
|
#### プロパティ
|
|
526
526
|
|
|
527
527
|
- **optimize**:
|
|
528
|
-
|
|
529
528
|
- _型_: `boolean`
|
|
530
529
|
- _デフォルト_: `process.env.NODE_ENV === 'production'`
|
|
531
530
|
- _説明_: ビルドを最適化するかどうかを制御します。
|
|
532
531
|
- _例_: `true`
|
|
533
|
-
- _注意_: 有効にすると、Intlayer
|
|
534
|
-
- _注意_: Intlayer
|
|
535
|
-
- _注意_: このオプションは`@intlayer/babel`および`@intlayer/swc
|
|
536
|
-
- _注意_:
|
|
532
|
+
- _注意_: 有効にすると、Intlayer は辞書のすべての呼び出しを置き換えてチャンク分割を最適化します。これにより、最終バンドルは使用されている辞書のみをインポートします。すべてのインポートは辞書の読み込み時の非同期処理を避けるために静的インポートのまま維持されます。
|
|
533
|
+
- _注意_: Intlayerは、`useIntlayer`のすべての呼び出しを`importMode`オプションで定義されたモードに置き換え、`getIntlayer`を`getDictionary`に置き換えます。
|
|
534
|
+
- _注意_: このオプションは`@intlayer/babel`および`@intlayer/swc`プラグインに依存しています。
|
|
535
|
+
- _注意_: `useIntlayer`の呼び出し内で、すべてのキーが静的に宣言されていることを確認してください。例: `useIntlayer('navbar')`。
|
|
537
536
|
|
|
538
537
|
- **importMode**:
|
|
539
|
-
|
|
540
|
-
- _型_: `'static' | 'dynamic' | 'async'`
|
|
538
|
+
- _タイプ_: `'static' | 'dynamic' | 'live'`
|
|
541
539
|
- _デフォルト_: `'static'`
|
|
542
|
-
- _説明_:
|
|
540
|
+
- _説明_: 辞書のインポート方法を制御します。
|
|
543
541
|
- _例_: `'dynamic'`
|
|
544
|
-
- _注意_:
|
|
545
|
-
- "static":
|
|
542
|
+
- _注意_: 利用可能なモード:
|
|
543
|
+
- "static": 辞書は静的にインポートされます。`useIntlayer`を`useDictionary`に置き換えます。
|
|
544
|
+
- "dynamic": 辞書はSuspenseを使用して動的にインポートされます。`useIntlayer`を`useDictionaryDynamic`に置き換えます。
|
|
545
|
+
- "live": 辞書はライブ同期APIを使用して動的に取得されます。`useIntlayer`は`useDictionaryFetch`に置き換えられます。
|
|
546
|
+
- _注意_: 動的インポートはSuspenseに依存しており、レンダリングパフォーマンスにわずかな影響を与える可能性があります。
|
|
547
|
+
- _注意_: 無効にすると、使用されていなくてもすべてのロケールが一度に読み込まれます。
|
|
548
|
+
- _注意_: このオプションは`@intlayer/babel`および`@intlayer/swc`プラグインに依存しています。
|
|
549
|
+
- _注意_: `useIntlayer`呼び出し内のすべてのキーが静的に宣言されていることを確認してください。例:`useIntlayer('navbar')`。
|
|
550
|
+
- _注意_: `optimize`が無効の場合、このオプションは無視されます。
|
|
551
|
+
- _注意_: "live" に設定されている場合、リモートコンテンツを含み、かつ "live" フラグが設定された辞書のみがライブモードとして変換されます。他の辞書はフェッチクエリの数と読み込みパフォーマンスを最適化するために、動的モードとして動的にインポートされます。
|
|
552
|
+
- _注意_: ライブモードはライブ同期APIを使用して辞書を取得します。APIコールが失敗した場合、辞書は動的モードとして動的にインポートされます。
|
|
553
|
+
- _注意_: このオプションは `getIntlayer`、`getDictionary`、`useDictionary`、`useDictionaryAsync`、および `useDictionaryDynamic` 関数には影響しません。
|
|
554
|
+
|
|
555
|
+
- **traversePattern**:
|
|
556
|
+
- _型_: `string[]`
|
|
557
|
+
- _デフォルト_: `['**/*.{js,ts,mjs,cjs,jsx,tsx,mjx,cjx}', '!**/node_modules/**']`
|
|
558
|
+
- _説明_: 最適化中にどのファイルを走査するかを定義するパターンです。
|
|
559
|
+
- _例_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
560
|
+
- _注意_: 最適化を関連するコードファイルに限定し、ビルドパフォーマンスを向上させるために使用します。
|
|
561
|
+
- _注意_: `optimize` が無効の場合、このオプションは無視されます。
|
|
562
|
+
- _注意_: グロブパターンを使用してください。
|
|
563
|
+
|
|
564
|
+
## ドキュメント履歴
|
|
565
|
+
|
|
566
|
+
| バージョン | 日付 | 変更内容 |
|
|
567
|
+
| ---------- | ---------- | ----------------------------- |
|
|
568
|
+
| 6.0.0 | 2025-09-16 | `live` インポートモードを追加 |
|
|
569
|
+
|
|
570
|
+
- _説明_: 最適化中にどのファイルをトラバースするかを定義するパターン。
|
|
571
|
+
- _例_: `['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']`
|
|
572
|
+
- _注意_: 最適化を関連するコードファイルに限定し、ビルドパフォーマンスを向上させるために使用します。
|
|
573
|
+
- _注意_: `optimize` が無効の場合、このオプションは無視されます。
|
|
574
|
+
- _注意_: グロブパターンを使用してください。
|
|
575
|
+
|
|
576
|
+
## ドキュメント履歴
|
|
577
|
+
|
|
578
|
+
| バージョン | 日付 | 変更内容 |
|
|
579
|
+
| ---------- | ---------- | ------------------------------------------------------------------------------------------------ |
|
|
580
|
+
| 6.0.0 | 2025-09-16 | `live` インポートモードを追加 |
|
|
581
|
+
| 6.0.0 | 2025-09-04 | `hotReload` フィールドを `liveSync` に置き換え、`liveSyncPort` と `liveSyncURL` フィールドを追加 |
|
|
582
|
+
| 5.6.1 | 2025-07-25 | `activateDynamicImport` を `importMode` オプションに置き換え |
|
|
583
|
+
| 5.6.0 | 2025-07-13 | デフォルトの contentDir を `['src']` から `['.']` に変更 |
|
|
584
|
+
| 5.5.11 | 2025-06-29 | `docs` コマンドを追加 |
|