From da33ecb2c5086384f2a684c139896ed318ef7c86 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 1 Apr 2025 21:14:12 +0900 Subject: [PATCH 1/6] feat: add basic i18n support, and port Japanese content from https://github.com/vuejs-jp/learn.nuxt.com Co-authored-by: ubugeeei Co-authored-by: aster-mnch Co-authored-by: k-miyake Co-authored-by: peraichi-fujishiro Co-authored-by: kotafujishiro Co-authored-by: rexhent Co-authored-by: Archetipo95 Co-authored-by: tokuda109 Co-authored-by: shiyuu33 Co-authored-by: arashsheyda Co-authored-by: RihanArfan Co-authored-by: atlansien Co-authored-by: 2nofa11 <2nofa11@users.noreply.github.com> Co-authored-by: engineer-naito Co-authored-by: hiro-xre Co-authored-by: johnsoncodehk Co-authored-by: abstractHunter --- components/TheNav.vue | 24 ++ content/{ => en}/.template/files/app.vue | 0 content/{ => en}/.template/index.ts | 0 content/{ => en}/.template/solutions/app.vue | 0 content/{ => en}/0.index.md | 0 .../{ => en}/1.vue/.template/files/app.vue | 0 content/{ => en}/1.vue/.template/index.ts | 0 content/{ => en}/1.vue/1.index.md | 0 .../2.reactivity/.template/files/app.vue | 0 .../1.vue/2.reactivity/.template/index.ts | 0 .../2.reactivity/.template/solutions/app.vue | 0 content/{ => en}/1.vue/2.reactivity/index.md | 0 .../3.reactivity-2/.template/files/app.vue | 0 .../1.vue/3.reactivity-2/.template/index.ts | 0 .../.template/solutions/app.vue | 0 .../{ => en}/1.vue/3.reactivity-2/index.md | 0 .../4.composition-api/.template/index.ts | 0 .../{ => en}/1.vue/4.composition-api/index.md | 0 .../1.vue/5.components/.template/index.ts | 0 content/{ => en}/1.vue/5.components/index.md | 0 .../1.vue/5.summary/.template/index.ts | 0 content/{ => en}/1.vue/5.summary/index.md | 0 content/{ => en}/2.concepts/1.index.md | 0 .../10.data-fetching/.template/files/app.vue | 0 .../.template/files/server/api/todos/index.ts | 0 .../10.data-fetching/.template/index.ts | 0 .../.template/solutions/app.vue | 0 .../solutions/server/api/todos/index.ts | 0 .../2.concepts/10.data-fetching/index.md | 0 .../2.app-vue/.template/files/app.vue | 0 .../2.concepts/2.app-vue/.template/index.ts | 0 .../{ => en}/2.concepts/2.app-vue/index.md | 0 .../3.routing/.template/files/app.vue | 0 .../3.routing/.template/files/pages/foo.vue | 0 .../3.routing/.template/files/pages/index.vue | 0 .../.template/files/pages/posts/[id].vue | 0 .../2.concepts/3.routing/.template/index.ts | 0 .../{ => en}/2.concepts/3.routing/index.md | 0 .../4.auto-imports/.template/files/app.vue | 0 .../.template/files/components/Counter.vue | 0 .../.template/files/composables/counter.ts | 0 .../.template/files/utils/double.ts | 0 .../4.auto-imports/.template/index.ts | 0 .../.template/solutions/app.vue | 0 .../solutions/components/Counter.vue | 0 .../solutions/composables/counter.ts | 0 .../.template/solutions/utils/double.ts | 0 .../2.concepts/4.auto-imports/index.md | 0 .../5.middleware/.template/files/app.vue | 0 .../.template/files/middleware/hello-foo.ts | 0 .../files/middleware/my-middleware.global.ts | 0 .../.template/files/pages/foo.vue | 0 .../.template/files/pages/index.vue | 0 .../5.middleware/.template/index.ts | 0 .../5.middleware/.template/solutions/app.vue | 0 .../middleware/my-middleware.global.ts | 0 .../.template/solutions/pages/foo.vue | 0 .../.template/solutions/pages/index.vue | 0 .../{ => en}/2.concepts/5.middleware/index.md | 0 .../6.layout/.template/files/app.vue | 0 .../.template/files/layouts/default.vue | 0 .../.template/files/layouts/no-header.vue | 0 .../6.layout/.template/files/pages/foo.vue | 0 .../6.layout/.template/files/pages/index.vue | 0 .../2.concepts/6.layout/.template/index.ts | 0 content/{ => en}/2.concepts/6.layout/index.md | 0 content/{ => en}/2.concepts/7.meta/index.md | 0 .../8.rendering-modes/.template/files/app.vue | 0 .../.template/files/pages/foo.vue | 0 .../.template/files/pages/index.vue | 0 .../8.rendering-modes/.template/index.ts | 0 .../.template/solutions/app.vue | 0 .../.template/solutions/nuxt.config.ts | 0 .../.template/solutions/pages/foo.vue | 0 .../.template/solutions/pages/index.vue | 0 .../2.concepts/8.rendering-modes/index.md | 0 .../.template/files/app.vue | 0 .../.template/files/components/CounterA.vue | 0 .../.template/files/components/CounterB.vue | 0 .../9.state-manegement/.template/index.ts | 0 .../2.concepts/9.state-manegement/index.md | 0 content/ja/.template/files/app.vue | 7 + content/ja/.template/index.ts | 10 + content/ja/.template/solutions/app.vue | 8 + content/ja/0.index.md | 49 +++ content/ja/1.vue/.template/files/app.vue | 16 + content/ja/1.vue/.template/index.ts | 10 + content/ja/1.vue/1.index.md | 22 + .../2.reactivity/.template/files/app.vue | 18 + .../ja/1.vue/2.reactivity/.template/index.ts | 10 + .../2.reactivity/.template/solutions/app.vue | 26 ++ content/ja/1.vue/2.reactivity/index.md | 40 ++ .../3.reactivity-2/.template/files/app.vue | 42 ++ .../1.vue/3.reactivity-2/.template/index.ts | 10 + .../.template/solutions/app.vue | 41 ++ content/ja/1.vue/3.reactivity-2/index.md | 37 ++ .../4.composition-api/.template/files/app.vue | 18 + .../.template/files/composables/useCounter.ts | 1 + .../4.composition-api/.template/index.ts | 10 + .../.template/solutions/app.vue | 13 + .../solutions/composables/useCounter.ts | 10 + content/ja/1.vue/4.composition-api/index.md | 26 ++ .../5.components/.template/files/Child.vue | 29 ++ .../5.components/.template/files/app.vue | 21 + .../ja/1.vue/5.components/.template/index.ts | 10 + .../.template/solutions/Child.vue | 33 ++ .../5.components/.template/solutions/app.vue | 30 ++ content/ja/1.vue/5.components/index.md | 195 +++++++++ content/ja/1.vue/6.summary/.template/index.ts | 10 + content/ja/1.vue/6.summary/index.md | 5 + content/ja/2.concepts/1.index.md | 29 ++ .../2.app-vue/.template/files/app.vue | 7 + .../2.concepts/2.app-vue/.template/index.ts | 10 + content/ja/2.concepts/2.app-vue/index.md | 18 + .../3.routing/.template/files/app.vue | 3 + .../3.routing/.template/files/pages/foo.vue | 12 + .../3.routing/.template/files/pages/index.vue | 12 + .../.template/files/pages/posts/[id].vue | 4 + .../2.concepts/3.routing/.template/index.ts | 9 + .../3.routing/.template/solutions/app.vue | 3 + .../.template/solutions/pages/foo.vue | 17 + .../.template/solutions/pages/index.vue | 17 + .../.template/solutions/pages/posts/[id].vue | 21 + content/ja/2.concepts/3.routing/index.md | 58 +++ .../4.auto-imports/.template/files/app.vue | 11 + .../.template/files/components/Counter.vue | 9 + .../.template/files/composables/counter.ts | 8 + .../.template/files/utils/double.ts | 1 + .../4.auto-imports/.template/index.ts | 8 + .../.template/solutions/app.vue | 13 + .../solutions/components/Counter.vue | 9 + .../solutions/composables/counter.ts | 8 + .../.template/solutions/utils/double.ts | 3 + content/ja/2.concepts/4.auto-imports/index.md | 51 +++ .../5.middleware/.template/files/app.vue | 3 + .../.template/files/middleware/hello-foo.ts | 3 + .../files/middleware/my-middleware.global.ts | 3 + .../.template/files/pages/foo.vue | 12 + .../.template/files/pages/index.vue | 6 + .../5.middleware/.template/index.ts | 8 + .../5.middleware/.template/solutions/app.vue | 3 + .../middleware/my-middleware.global.ts | 14 + .../.template/solutions/pages/foo.vue | 6 + .../.template/solutions/pages/index.vue | 26 ++ content/ja/2.concepts/5.middleware/index.md | 82 ++++ .../6.layout/.template/files/app.vue | 5 + .../.template/files/layouts/default.vue | 39 ++ .../.template/files/layouts/no-header.vue | 30 ++ .../6.layout/.template/files/pages/foo.vue | 12 + .../6.layout/.template/files/pages/index.vue | 6 + .../ja/2.concepts/6.layout/.template/index.ts | 8 + content/ja/2.concepts/6.layout/index.md | 43 ++ .../7.rendering-modes/.template/files/app.vue | 14 + .../.template/files/pages/foo.vue | 9 + .../.template/files/pages/index.vue | 9 + .../7.rendering-modes/.template/index.ts | 9 + .../.template/solutions/app.vue | 3 + .../.template/solutions/nuxt.config.ts | 5 + .../.template/solutions/pages/foo.vue | 13 + .../.template/solutions/pages/index.vue | 13 + .../ja/2.concepts/7.rendering-modes/index.md | 130 ++++++ .../.template/files/app.vue | 4 + .../.template/files/components/CounterA.vue | 13 + .../.template/files/components/CounterB.vue | 13 + .../8.state-manegement/.template/index.ts | 8 + .../ja/2.concepts/8.state-manegement/index.md | 32 ++ .../9.data-fetching/.template/files/app.vue | 15 + .../.template/files/server/api/todos/index.ts | 7 + .../9.data-fetching/.template/index.ts | 8 + .../.template/solutions/app.vue | 21 + .../solutions/server/api/todos/index.ts | 8 + .../ja/2.concepts/9.data-fetching/index.md | 54 +++ i18n.config.ts | 11 + middleware/index.global.ts | 5 + nuxt.config.ts | 23 +- package.json | 1 + pnpm-lock.yaml | 386 ++++++++++++++++++ pnpm-workspace.yaml | 16 + 178 files changed, 2260 insertions(+), 1 deletion(-) rename content/{ => en}/.template/files/app.vue (100%) rename content/{ => en}/.template/index.ts (100%) rename content/{ => en}/.template/solutions/app.vue (100%) rename content/{ => en}/0.index.md (100%) rename content/{ => en}/1.vue/.template/files/app.vue (100%) rename content/{ => en}/1.vue/.template/index.ts (100%) rename content/{ => en}/1.vue/1.index.md (100%) rename content/{ => en}/1.vue/2.reactivity/.template/files/app.vue (100%) rename content/{ => en}/1.vue/2.reactivity/.template/index.ts (100%) rename content/{ => en}/1.vue/2.reactivity/.template/solutions/app.vue (100%) rename content/{ => en}/1.vue/2.reactivity/index.md (100%) rename content/{ => en}/1.vue/3.reactivity-2/.template/files/app.vue (100%) rename content/{ => en}/1.vue/3.reactivity-2/.template/index.ts (100%) rename content/{ => en}/1.vue/3.reactivity-2/.template/solutions/app.vue (100%) rename content/{ => en}/1.vue/3.reactivity-2/index.md (100%) rename content/{ => en}/1.vue/4.composition-api/.template/index.ts (100%) rename content/{ => en}/1.vue/4.composition-api/index.md (100%) rename content/{ => en}/1.vue/5.components/.template/index.ts (100%) rename content/{ => en}/1.vue/5.components/index.md (100%) rename content/{ => en}/1.vue/5.summary/.template/index.ts (100%) rename content/{ => en}/1.vue/5.summary/index.md (100%) rename content/{ => en}/2.concepts/1.index.md (100%) rename content/{ => en}/2.concepts/10.data-fetching/.template/files/app.vue (100%) rename content/{ => en}/2.concepts/10.data-fetching/.template/files/server/api/todos/index.ts (100%) rename content/{ => en}/2.concepts/10.data-fetching/.template/index.ts (100%) rename content/{ => en}/2.concepts/10.data-fetching/.template/solutions/app.vue (100%) rename content/{ => en}/2.concepts/10.data-fetching/.template/solutions/server/api/todos/index.ts (100%) rename content/{ => en}/2.concepts/10.data-fetching/index.md (100%) rename content/{ => en}/2.concepts/2.app-vue/.template/files/app.vue (100%) rename content/{ => en}/2.concepts/2.app-vue/.template/index.ts (100%) rename content/{ => en}/2.concepts/2.app-vue/index.md (100%) rename content/{ => en}/2.concepts/3.routing/.template/files/app.vue (100%) rename content/{ => en}/2.concepts/3.routing/.template/files/pages/foo.vue (100%) rename content/{ => en}/2.concepts/3.routing/.template/files/pages/index.vue (100%) rename content/{ => en}/2.concepts/3.routing/.template/files/pages/posts/[id].vue (100%) rename content/{ => en}/2.concepts/3.routing/.template/index.ts (100%) rename content/{ => en}/2.concepts/3.routing/index.md (100%) rename content/{ => en}/2.concepts/4.auto-imports/.template/files/app.vue (100%) rename content/{ => en}/2.concepts/4.auto-imports/.template/files/components/Counter.vue (100%) rename content/{ => en}/2.concepts/4.auto-imports/.template/files/composables/counter.ts (100%) rename content/{ => en}/2.concepts/4.auto-imports/.template/files/utils/double.ts (100%) rename content/{ => en}/2.concepts/4.auto-imports/.template/index.ts (100%) rename content/{ => en}/2.concepts/4.auto-imports/.template/solutions/app.vue (100%) rename content/{ => en}/2.concepts/4.auto-imports/.template/solutions/components/Counter.vue (100%) rename content/{ => en}/2.concepts/4.auto-imports/.template/solutions/composables/counter.ts (100%) rename content/{ => en}/2.concepts/4.auto-imports/.template/solutions/utils/double.ts (100%) rename content/{ => en}/2.concepts/4.auto-imports/index.md (100%) rename content/{ => en}/2.concepts/5.middleware/.template/files/app.vue (100%) rename content/{ => en}/2.concepts/5.middleware/.template/files/middleware/hello-foo.ts (100%) rename content/{ => en}/2.concepts/5.middleware/.template/files/middleware/my-middleware.global.ts (100%) rename content/{ => en}/2.concepts/5.middleware/.template/files/pages/foo.vue (100%) rename content/{ => en}/2.concepts/5.middleware/.template/files/pages/index.vue (100%) rename content/{ => en}/2.concepts/5.middleware/.template/index.ts (100%) rename content/{ => en}/2.concepts/5.middleware/.template/solutions/app.vue (100%) rename content/{ => en}/2.concepts/5.middleware/.template/solutions/middleware/my-middleware.global.ts (100%) rename content/{ => en}/2.concepts/5.middleware/.template/solutions/pages/foo.vue (100%) rename content/{ => en}/2.concepts/5.middleware/.template/solutions/pages/index.vue (100%) rename content/{ => en}/2.concepts/5.middleware/index.md (100%) rename content/{ => en}/2.concepts/6.layout/.template/files/app.vue (100%) rename content/{ => en}/2.concepts/6.layout/.template/files/layouts/default.vue (100%) rename content/{ => en}/2.concepts/6.layout/.template/files/layouts/no-header.vue (100%) rename content/{ => en}/2.concepts/6.layout/.template/files/pages/foo.vue (100%) rename content/{ => en}/2.concepts/6.layout/.template/files/pages/index.vue (100%) rename content/{ => en}/2.concepts/6.layout/.template/index.ts (100%) rename content/{ => en}/2.concepts/6.layout/index.md (100%) rename content/{ => en}/2.concepts/7.meta/index.md (100%) rename content/{ => en}/2.concepts/8.rendering-modes/.template/files/app.vue (100%) rename content/{ => en}/2.concepts/8.rendering-modes/.template/files/pages/foo.vue (100%) rename content/{ => en}/2.concepts/8.rendering-modes/.template/files/pages/index.vue (100%) rename content/{ => en}/2.concepts/8.rendering-modes/.template/index.ts (100%) rename content/{ => en}/2.concepts/8.rendering-modes/.template/solutions/app.vue (100%) rename content/{ => en}/2.concepts/8.rendering-modes/.template/solutions/nuxt.config.ts (100%) rename content/{ => en}/2.concepts/8.rendering-modes/.template/solutions/pages/foo.vue (100%) rename content/{ => en}/2.concepts/8.rendering-modes/.template/solutions/pages/index.vue (100%) rename content/{ => en}/2.concepts/8.rendering-modes/index.md (100%) rename content/{ => en}/2.concepts/9.state-manegement/.template/files/app.vue (100%) rename content/{ => en}/2.concepts/9.state-manegement/.template/files/components/CounterA.vue (100%) rename content/{ => en}/2.concepts/9.state-manegement/.template/files/components/CounterB.vue (100%) rename content/{ => en}/2.concepts/9.state-manegement/.template/index.ts (100%) rename content/{ => en}/2.concepts/9.state-manegement/index.md (100%) create mode 100644 content/ja/.template/files/app.vue create mode 100644 content/ja/.template/index.ts create mode 100644 content/ja/.template/solutions/app.vue create mode 100644 content/ja/0.index.md create mode 100644 content/ja/1.vue/.template/files/app.vue create mode 100644 content/ja/1.vue/.template/index.ts create mode 100644 content/ja/1.vue/1.index.md create mode 100644 content/ja/1.vue/2.reactivity/.template/files/app.vue create mode 100644 content/ja/1.vue/2.reactivity/.template/index.ts create mode 100644 content/ja/1.vue/2.reactivity/.template/solutions/app.vue create mode 100644 content/ja/1.vue/2.reactivity/index.md create mode 100644 content/ja/1.vue/3.reactivity-2/.template/files/app.vue create mode 100644 content/ja/1.vue/3.reactivity-2/.template/index.ts create mode 100644 content/ja/1.vue/3.reactivity-2/.template/solutions/app.vue create mode 100644 content/ja/1.vue/3.reactivity-2/index.md create mode 100644 content/ja/1.vue/4.composition-api/.template/files/app.vue create mode 100644 content/ja/1.vue/4.composition-api/.template/files/composables/useCounter.ts create mode 100644 content/ja/1.vue/4.composition-api/.template/index.ts create mode 100644 content/ja/1.vue/4.composition-api/.template/solutions/app.vue create mode 100644 content/ja/1.vue/4.composition-api/.template/solutions/composables/useCounter.ts create mode 100644 content/ja/1.vue/4.composition-api/index.md create mode 100644 content/ja/1.vue/5.components/.template/files/Child.vue create mode 100644 content/ja/1.vue/5.components/.template/files/app.vue create mode 100644 content/ja/1.vue/5.components/.template/index.ts create mode 100644 content/ja/1.vue/5.components/.template/solutions/Child.vue create mode 100644 content/ja/1.vue/5.components/.template/solutions/app.vue create mode 100644 content/ja/1.vue/5.components/index.md create mode 100644 content/ja/1.vue/6.summary/.template/index.ts create mode 100644 content/ja/1.vue/6.summary/index.md create mode 100644 content/ja/2.concepts/1.index.md create mode 100644 content/ja/2.concepts/2.app-vue/.template/files/app.vue create mode 100644 content/ja/2.concepts/2.app-vue/.template/index.ts create mode 100644 content/ja/2.concepts/2.app-vue/index.md create mode 100644 content/ja/2.concepts/3.routing/.template/files/app.vue create mode 100644 content/ja/2.concepts/3.routing/.template/files/pages/foo.vue create mode 100644 content/ja/2.concepts/3.routing/.template/files/pages/index.vue create mode 100644 content/ja/2.concepts/3.routing/.template/files/pages/posts/[id].vue create mode 100644 content/ja/2.concepts/3.routing/.template/index.ts create mode 100644 content/ja/2.concepts/3.routing/.template/solutions/app.vue create mode 100644 content/ja/2.concepts/3.routing/.template/solutions/pages/foo.vue create mode 100644 content/ja/2.concepts/3.routing/.template/solutions/pages/index.vue create mode 100644 content/ja/2.concepts/3.routing/.template/solutions/pages/posts/[id].vue create mode 100644 content/ja/2.concepts/3.routing/index.md create mode 100644 content/ja/2.concepts/4.auto-imports/.template/files/app.vue create mode 100644 content/ja/2.concepts/4.auto-imports/.template/files/components/Counter.vue create mode 100644 content/ja/2.concepts/4.auto-imports/.template/files/composables/counter.ts create mode 100644 content/ja/2.concepts/4.auto-imports/.template/files/utils/double.ts create mode 100644 content/ja/2.concepts/4.auto-imports/.template/index.ts create mode 100644 content/ja/2.concepts/4.auto-imports/.template/solutions/app.vue create mode 100644 content/ja/2.concepts/4.auto-imports/.template/solutions/components/Counter.vue create mode 100644 content/ja/2.concepts/4.auto-imports/.template/solutions/composables/counter.ts create mode 100644 content/ja/2.concepts/4.auto-imports/.template/solutions/utils/double.ts create mode 100644 content/ja/2.concepts/4.auto-imports/index.md create mode 100644 content/ja/2.concepts/5.middleware/.template/files/app.vue create mode 100644 content/ja/2.concepts/5.middleware/.template/files/middleware/hello-foo.ts create mode 100644 content/ja/2.concepts/5.middleware/.template/files/middleware/my-middleware.global.ts create mode 100644 content/ja/2.concepts/5.middleware/.template/files/pages/foo.vue create mode 100644 content/ja/2.concepts/5.middleware/.template/files/pages/index.vue create mode 100644 content/ja/2.concepts/5.middleware/.template/index.ts create mode 100644 content/ja/2.concepts/5.middleware/.template/solutions/app.vue create mode 100644 content/ja/2.concepts/5.middleware/.template/solutions/middleware/my-middleware.global.ts create mode 100644 content/ja/2.concepts/5.middleware/.template/solutions/pages/foo.vue create mode 100644 content/ja/2.concepts/5.middleware/.template/solutions/pages/index.vue create mode 100644 content/ja/2.concepts/5.middleware/index.md create mode 100644 content/ja/2.concepts/6.layout/.template/files/app.vue create mode 100644 content/ja/2.concepts/6.layout/.template/files/layouts/default.vue create mode 100644 content/ja/2.concepts/6.layout/.template/files/layouts/no-header.vue create mode 100644 content/ja/2.concepts/6.layout/.template/files/pages/foo.vue create mode 100644 content/ja/2.concepts/6.layout/.template/files/pages/index.vue create mode 100644 content/ja/2.concepts/6.layout/.template/index.ts create mode 100644 content/ja/2.concepts/6.layout/index.md create mode 100644 content/ja/2.concepts/7.rendering-modes/.template/files/app.vue create mode 100644 content/ja/2.concepts/7.rendering-modes/.template/files/pages/foo.vue create mode 100644 content/ja/2.concepts/7.rendering-modes/.template/files/pages/index.vue create mode 100644 content/ja/2.concepts/7.rendering-modes/.template/index.ts create mode 100644 content/ja/2.concepts/7.rendering-modes/.template/solutions/app.vue create mode 100644 content/ja/2.concepts/7.rendering-modes/.template/solutions/nuxt.config.ts create mode 100644 content/ja/2.concepts/7.rendering-modes/.template/solutions/pages/foo.vue create mode 100644 content/ja/2.concepts/7.rendering-modes/.template/solutions/pages/index.vue create mode 100644 content/ja/2.concepts/7.rendering-modes/index.md create mode 100644 content/ja/2.concepts/8.state-manegement/.template/files/app.vue create mode 100644 content/ja/2.concepts/8.state-manegement/.template/files/components/CounterA.vue create mode 100644 content/ja/2.concepts/8.state-manegement/.template/files/components/CounterB.vue create mode 100644 content/ja/2.concepts/8.state-manegement/.template/index.ts create mode 100644 content/ja/2.concepts/8.state-manegement/index.md create mode 100644 content/ja/2.concepts/9.data-fetching/.template/files/app.vue create mode 100644 content/ja/2.concepts/9.data-fetching/.template/files/server/api/todos/index.ts create mode 100644 content/ja/2.concepts/9.data-fetching/.template/index.ts create mode 100644 content/ja/2.concepts/9.data-fetching/.template/solutions/app.vue create mode 100644 content/ja/2.concepts/9.data-fetching/.template/solutions/server/api/todos/index.ts create mode 100644 content/ja/2.concepts/9.data-fetching/index.md create mode 100644 i18n.config.ts create mode 100644 middleware/index.global.ts diff --git a/components/TheNav.vue b/components/TheNav.vue index aea33bc9..58b3a070 100644 --- a/components/TheNav.vue +++ b/components/TheNav.vue @@ -21,6 +21,8 @@ function downloadCurrentGuide() { downloadZip(play.webcontainer, guide.ignoredFiles) } +const i18n = useI18n() + addCommands( { id: 'download-zip', @@ -65,6 +67,28 @@ addCommands( flex="~ gap-1 items-center" :class="guide.embeddedDocs ? 'z-embedded-docs-raised' : ''" > + + + +