From e3d2e0074c4bdfc7c069fcfe89d5aa8a60e0828a Mon Sep 17 00:00:00 2001 From: BruceNTB Date: Sun, 21 May 2023 20:11:31 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E2=9C=A8=20add=20i18n=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/module.ts | 1 + src/runtime/components/ContentNavigation.vue | 1 - src/runtime/composables/content.ts | 1 - src/runtime/composables/i18n.ts | 37 ++++++++++++++++++++ src/runtime/composables/navigation.ts | 15 +++++++- src/runtime/plugins/documentDriven.ts | 29 ++++++++++++--- 6 files changed, 76 insertions(+), 8 deletions(-) create mode 100644 src/runtime/composables/i18n.ts diff --git a/src/module.ts b/src/module.ts index c8d1ada12..199275bb6 100644 --- a/src/module.ts +++ b/src/module.ts @@ -405,6 +405,7 @@ export default defineNuxtModule({ // Register composables addImports([ { name: 'queryContent', as: 'queryContent', from: resolveRuntimeModule('./composables/query') }, + { name: 'useI18n', as: 'useI18n', from: resolveRuntimeModule('./composables/i18n') }, { name: 'useContentHelpers', as: 'useContentHelpers', from: resolveRuntimeModule('./composables/helpers') }, { name: 'useContentHead', as: 'useContentHead', from: resolveRuntimeModule('./composables/head') }, { name: 'useContentPreview', as: 'useContentPreview', from: resolveRuntimeModule('./composables/preview') }, diff --git a/src/runtime/components/ContentNavigation.vue b/src/runtime/components/ContentNavigation.vue index 30c7fad41..b82f0a8ad 100644 --- a/src/runtime/components/ContentNavigation.vue +++ b/src/runtime/components/ContentNavigation.vue @@ -38,7 +38,6 @@ export default defineComponent({ // If doc driven mode and no query given, re-use the fetched navigation if (!queryBuilder.value && useState('dd-navigation').value) { const { navigation } = useContent() - return { navigation } } const { data: navigation } = await useAsyncData( diff --git a/src/runtime/composables/content.ts b/src/runtime/composables/content.ts index 3c3c8f968..d6caf8344 100644 --- a/src/runtime/composables/content.ts +++ b/src/runtime/composables/content.ts @@ -37,7 +37,6 @@ export const useContent = () => { const { navigation, pages, surrounds, globals } = useContentState() const _path = computed(() => withoutTrailingSlash(useRoute().path)) - /** * Current `page` key, computed from path and content state. */ diff --git a/src/runtime/composables/i18n.ts b/src/runtime/composables/i18n.ts new file mode 100644 index 000000000..25e082507 --- /dev/null +++ b/src/runtime/composables/i18n.ts @@ -0,0 +1,37 @@ +export const useI18n = () => { + const parseLocale = (_path) => { + const { content } = useRuntimeConfig() + const { defaultLocale, locales } = content + + let _locale = defaultLocale || locales[0] + + const pathArr = _path.split('/') + const localeInPath = pathArr[1] + if (locales.includes(localeInPath)) { + _locale = localeInPath + _path = pathArr.join('/').substring(`/${_locale}`.length) + } + + return { + _path, + _locale + } + } + + const getLocaleSwitcherLinkList = (path) => { + const { content } = useRuntimeConfig() + const { defaultLocale, locales } = content + const { _path } = parseLocale(path) + return locales.map((locale) => { + return { + to: locale === defaultLocale ? _path : `/${locale}${_path}`, + locale + } + }) + } + + return { + parseLocale, + getLocaleSwitcherLinkList + } +} diff --git a/src/runtime/composables/navigation.ts b/src/runtime/composables/navigation.ts index 96fa7276d..001b52636 100644 --- a/src/runtime/composables/navigation.ts +++ b/src/runtime/composables/navigation.ts @@ -32,7 +32,7 @@ export const fetchContentNavigation = async (queryBuilder?: QueryBuilder | Query return generateNavigation(params) } - const data = await $fetch(apiPath as any, { + let data = await $fetch(apiPath as any, { method: 'GET', responseType: 'json', params: content.experimental.stripQueryParameters @@ -49,5 +49,18 @@ export const fetchContentNavigation = async (queryBuilder?: QueryBuilder | Query throw new Error('Not found') } + const { defaultLocale } = content + const queryLocale = params.where?.find(w => w._locale)?._locale + if (defaultLocale !== queryLocale) { + const addLocalePrefix = (item) => { + item._path = `/${queryLocale}${item._path}` + if (item.children?.length > 0) { + item.children = item.children.map(addLocalePrefix) + } + return item + } + data = data.map(addLocalePrefix) + } + return data } diff --git a/src/runtime/plugins/documentDriven.ts b/src/runtime/plugins/documentDriven.ts index eb5c16389..daf835437 100644 --- a/src/runtime/plugins/documentDriven.ts +++ b/src/runtime/plugins/documentDriven.ts @@ -61,7 +61,6 @@ export default defineNuxtPlugin((nuxt) => { // Normalize route path const _path = withoutTrailingSlash(to.path) - // Promises array to be executed all at once const promises: (() => Promise | any)[] = [] @@ -71,11 +70,10 @@ export default defineNuxtPlugin((nuxt) => { */ if (moduleOptions.navigation && routeConfig.navigation !== false) { const navigationQuery = () => { - const { navigation } = useContentState() - - if (navigation.value && !dedup) { return navigation.value } + const { _locale } = to.meta.documentDriven.page - return fetchContentNavigation() + const queryBuilder = queryContent({ where: [{ _locale }] }) + return fetchContentNavigation(queryBuilder) .then((_navigation) => { navigation.value = _navigation return _navigation @@ -146,6 +144,7 @@ export default defineNuxtPlugin((nuxt) => { if (typeof routeConfig.page === 'object') { where = routeConfig.page } + const pageQuery = () => { const { pages } = useContentState() @@ -252,6 +251,26 @@ export default defineNuxtPlugin((nuxt) => { } // Route middleware + addRouteMiddleware((to) => { + const { content } = useRuntimeConfig() + + if (!content || !(content?.locales?.length > 0)) { + return + } + + const { parseLocale } = useI18n() + const { _path, _locale } = parseLocale(to.path) + + const page = { + _path, + _locale + } + + to.meta.documentDriven = { + page, + navigation: true + } + }) addRouteMiddleware(async (to, from) => { // TODO: Remove this (https://github.com/nuxt/framework/pull/5274) if (to.path.includes('favicon.ico')) { return } From ced12e4009625f3704ca39f5b5aafff8c5898caa Mon Sep 17 00:00:00 2001 From: BruceNTB Date: Sun, 21 May 2023 20:27:00 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=F0=9F=93=9D=20add=20i18n=20playground=20de?= =?UTF-8?q?mo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + playground/i18n/app.vue | 7 ++++ playground/i18n/components/LocaleSwitcher.vue | 32 +++++++++++++++++++ playground/i18n/content/en/about.md | 1 + playground/i18n/content/en/index.md | 5 +++ playground/i18n/content/en/resources/_dir.yml | 3 ++ .../i18n/content/en/resources/case-studies.md | 2 ++ playground/i18n/content/en/resources/index.md | 5 +++ playground/i18n/content/zh/about.md | 1 + playground/i18n/content/zh/index.md | 5 +++ playground/i18n/content/zh/resources/_dir.yml | 3 ++ .../i18n/content/zh/resources/case-studies.md | 2 ++ playground/i18n/content/zh/resources/index.md | 5 +++ playground/i18n/nuxt.config.ts | 21 ++++++++++++ src/runtime/composables/i18n.ts | 3 +- 15 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 playground/i18n/app.vue create mode 100644 playground/i18n/components/LocaleSwitcher.vue create mode 100644 playground/i18n/content/en/about.md create mode 100644 playground/i18n/content/en/index.md create mode 100644 playground/i18n/content/en/resources/_dir.yml create mode 100644 playground/i18n/content/en/resources/case-studies.md create mode 100644 playground/i18n/content/en/resources/index.md create mode 100644 playground/i18n/content/zh/about.md create mode 100644 playground/i18n/content/zh/index.md create mode 100644 playground/i18n/content/zh/resources/_dir.yml create mode 100644 playground/i18n/content/zh/resources/case-studies.md create mode 100644 playground/i18n/content/zh/resources/index.md create mode 100644 playground/i18n/nuxt.config.ts diff --git a/package.json b/package.json index abad344a4..74ba19d36 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ ], "scripts": { "dev": "./scripts/playground.sh", + "dev:i18n": "./scripts/playground.sh i18n", "dev:build": "nuxi build playground/basic", "prepare": "nuxi prepare playground/basic", "dev:fixtures": "./scripts/fixture.sh", diff --git a/playground/i18n/app.vue b/playground/i18n/app.vue new file mode 100644 index 000000000..2b49a6a15 --- /dev/null +++ b/playground/i18n/app.vue @@ -0,0 +1,7 @@ + diff --git a/playground/i18n/components/LocaleSwitcher.vue b/playground/i18n/components/LocaleSwitcher.vue new file mode 100644 index 000000000..338291c4d --- /dev/null +++ b/playground/i18n/components/LocaleSwitcher.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/playground/i18n/content/en/about.md b/playground/i18n/content/en/about.md new file mode 100644 index 000000000..449429d43 --- /dev/null +++ b/playground/i18n/content/en/about.md @@ -0,0 +1 @@ +# About diff --git a/playground/i18n/content/en/index.md b/playground/i18n/content/en/index.md new file mode 100644 index 000000000..1a7557e04 --- /dev/null +++ b/playground/i18n/content/en/index.md @@ -0,0 +1,5 @@ +--- +title: Home +--- + +# Hello World diff --git a/playground/i18n/content/en/resources/_dir.yml b/playground/i18n/content/en/resources/_dir.yml new file mode 100644 index 000000000..050b3efc0 --- /dev/null +++ b/playground/i18n/content/en/resources/_dir.yml @@ -0,0 +1,3 @@ +title: 'Resources' +navigation: + hello: true diff --git a/playground/i18n/content/en/resources/case-studies.md b/playground/i18n/content/en/resources/case-studies.md new file mode 100644 index 000000000..6deb35c71 --- /dev/null +++ b/playground/i18n/content/en/resources/case-studies.md @@ -0,0 +1,2 @@ +# Case studies + diff --git a/playground/i18n/content/en/resources/index.md b/playground/i18n/content/en/resources/index.md new file mode 100644 index 000000000..f1804eaee --- /dev/null +++ b/playground/i18n/content/en/resources/index.md @@ -0,0 +1,5 @@ +--- +navigation: false +--- + +# Resources diff --git a/playground/i18n/content/zh/about.md b/playground/i18n/content/zh/about.md new file mode 100644 index 000000000..7091a0187 --- /dev/null +++ b/playground/i18n/content/zh/about.md @@ -0,0 +1 @@ +# 关于 diff --git a/playground/i18n/content/zh/index.md b/playground/i18n/content/zh/index.md new file mode 100644 index 000000000..54849d7f6 --- /dev/null +++ b/playground/i18n/content/zh/index.md @@ -0,0 +1,5 @@ +--- +title: 首页 +--- + +# 你好世界 diff --git a/playground/i18n/content/zh/resources/_dir.yml b/playground/i18n/content/zh/resources/_dir.yml new file mode 100644 index 000000000..7dab78ce4 --- /dev/null +++ b/playground/i18n/content/zh/resources/_dir.yml @@ -0,0 +1,3 @@ +title: '资源' +navigation: + hello: true diff --git a/playground/i18n/content/zh/resources/case-studies.md b/playground/i18n/content/zh/resources/case-studies.md new file mode 100644 index 000000000..abafe9b6f --- /dev/null +++ b/playground/i18n/content/zh/resources/case-studies.md @@ -0,0 +1,2 @@ +# 案例研究 + diff --git a/playground/i18n/content/zh/resources/index.md b/playground/i18n/content/zh/resources/index.md new file mode 100644 index 000000000..7ccbb582f --- /dev/null +++ b/playground/i18n/content/zh/resources/index.md @@ -0,0 +1,5 @@ +--- +navigation: false +--- + +# 资源 diff --git a/playground/i18n/nuxt.config.ts b/playground/i18n/nuxt.config.ts new file mode 100644 index 000000000..3f301a825 --- /dev/null +++ b/playground/i18n/nuxt.config.ts @@ -0,0 +1,21 @@ +import contentModule from '../../src/module' + +export default defineNuxtConfig({ + modules: [ + // @ts-ignore + contentModule + ], + content: { + documentDriven: true, + locales: ['en', 'zh'], + defaultLocale: 'zh' + }, + app: { + head: { + htmlAttrs: { + lang: 'zh' + } + } + }, + devtools: true +}) diff --git a/src/runtime/composables/i18n.ts b/src/runtime/composables/i18n.ts index 25e082507..12f5b9cba 100644 --- a/src/runtime/composables/i18n.ts +++ b/src/runtime/composables/i18n.ts @@ -21,10 +21,11 @@ export const useI18n = () => { const getLocaleSwitcherLinkList = (path) => { const { content } = useRuntimeConfig() const { defaultLocale, locales } = content - const { _path } = parseLocale(path) + const { _path, _locale } = parseLocale(path) return locales.map((locale) => { return { to: locale === defaultLocale ? _path : `/${locale}${_path}`, + isCurrent: _locale === locale, locale } }) From abb6fcc214033fbdc3a4f7dc854dac5d54b8a21b Mon Sep 17 00:00:00 2001 From: BruceNTB Date: Sun, 21 May 2023 20:35:56 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=F0=9F=93=9D=20update=20i18n=20demo=20defau?= =?UTF-8?q?lt=20lang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- playground/i18n/nuxt.config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/playground/i18n/nuxt.config.ts b/playground/i18n/nuxt.config.ts index 3f301a825..13d25ab2a 100644 --- a/playground/i18n/nuxt.config.ts +++ b/playground/i18n/nuxt.config.ts @@ -8,12 +8,12 @@ export default defineNuxtConfig({ content: { documentDriven: true, locales: ['en', 'zh'], - defaultLocale: 'zh' + defaultLocale: 'en' }, app: { head: { htmlAttrs: { - lang: 'zh' + lang: 'en' } } }, From 9309bc711805a43892d044a47237aeb6c9b28f79 Mon Sep 17 00:00:00 2001 From: BruceNTB Date: Sun, 21 May 2023 21:08:17 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=F0=9F=90=9B=20fix=20while=20no=20defaultLo?= =?UTF-8?q?cale=20defined?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/runtime/composables/navigation.ts | 2 +- src/runtime/plugins/documentDriven.ts | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/runtime/composables/navigation.ts b/src/runtime/composables/navigation.ts index 001b52636..0491d98b7 100644 --- a/src/runtime/composables/navigation.ts +++ b/src/runtime/composables/navigation.ts @@ -51,7 +51,7 @@ export const fetchContentNavigation = async (queryBuilder?: QueryBuilder | Query const { defaultLocale } = content const queryLocale = params.where?.find(w => w._locale)?._locale - if (defaultLocale !== queryLocale) { + if (defaultLocale && defaultLocale !== queryLocale) { const addLocalePrefix = (item) => { item._path = `/${queryLocale}${item._path}` if (item.children?.length > 0) { diff --git a/src/runtime/plugins/documentDriven.ts b/src/runtime/plugins/documentDriven.ts index daf835437..68e126dec 100644 --- a/src/runtime/plugins/documentDriven.ts +++ b/src/runtime/plugins/documentDriven.ts @@ -70,9 +70,14 @@ export default defineNuxtPlugin((nuxt) => { */ if (moduleOptions.navigation && routeConfig.navigation !== false) { const navigationQuery = () => { - const { _locale } = to.meta.documentDriven.page + let query = { } - const queryBuilder = queryContent({ where: [{ _locale }] }) + const _locale = to.meta?.documentDriven?.page?._locale + if (_locale) { + query = { where: [{ _locale }] } + } + + const queryBuilder = queryContent(query) return fetchContentNavigation(queryBuilder) .then((_navigation) => { navigation.value = _navigation From 564d21ea9090e6a18eb8a3153575c865681b62de Mon Sep 17 00:00:00 2001 From: BruceNTB Date: Sun, 21 May 2023 21:19:40 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=F0=9F=93=9D=20add=20i18n=20document?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + docs/content/4.api/3.configuration.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/README.md b/README.md index 197d631a2..82f669882 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Nuxt Content reads the `content/` directory in your project, parses `.md`, `.yml - Table of contents generation - Also handles CSV, YAML and JSON(5) - Extend with hooks and content plugins +- I18n support - [...and more](https://content.nuxtjs.org) ## Nuxt 2 diff --git a/docs/content/4.api/3.configuration.md b/docs/content/4.api/3.configuration.md index efc24a46e..ad5af46e5 100644 --- a/docs/content/4.api/3.configuration.md +++ b/docs/content/4.api/3.configuration.md @@ -376,6 +376,8 @@ Can be set to `false` to disable the feature completely. List of locale codes. This codes will be used to detect contents locale. +Checkout the `playground/i18n` example for more details. + ## `defaultLocale` - Type: `String`{lang=ts} From 6a942695ce89f90cbd700ca2666859f5bbe611f3 Mon Sep 17 00:00:00 2001 From: BruceNTB Date: Mon, 22 May 2023 19:33:10 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=F0=9F=9A=9A=20rename=20useI18n=20to=20useC?= =?UTF-8?q?ontentI18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- playground/i18n/components/LocaleSwitcher.vue | 2 +- src/module.ts | 2 +- src/runtime/composables/{i18n.ts => contentI18n.ts} | 2 +- src/runtime/plugins/documentDriven.ts | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) rename src/runtime/composables/{i18n.ts => contentI18n.ts} (95%) diff --git a/playground/i18n/components/LocaleSwitcher.vue b/playground/i18n/components/LocaleSwitcher.vue index 338291c4d..61ea4d95f 100644 --- a/playground/i18n/components/LocaleSwitcher.vue +++ b/playground/i18n/components/LocaleSwitcher.vue @@ -2,7 +2,7 @@ const route = useRoute() const localeLinks = ref([]) -const { getLocaleSwitcherLinkList } = useI18n() +const { getLocaleSwitcherLinkList } = useContentI18n() const labelMap = { en: 'English', zh: '中文' diff --git a/src/module.ts b/src/module.ts index 199275bb6..2b4ed39ef 100644 --- a/src/module.ts +++ b/src/module.ts @@ -405,7 +405,7 @@ export default defineNuxtModule({ // Register composables addImports([ { name: 'queryContent', as: 'queryContent', from: resolveRuntimeModule('./composables/query') }, - { name: 'useI18n', as: 'useI18n', from: resolveRuntimeModule('./composables/i18n') }, + { name: 'useContentI18n', as: 'useContentI18n', from: resolveRuntimeModule('./composables/contentI18n') }, { name: 'useContentHelpers', as: 'useContentHelpers', from: resolveRuntimeModule('./composables/helpers') }, { name: 'useContentHead', as: 'useContentHead', from: resolveRuntimeModule('./composables/head') }, { name: 'useContentPreview', as: 'useContentPreview', from: resolveRuntimeModule('./composables/preview') }, diff --git a/src/runtime/composables/i18n.ts b/src/runtime/composables/contentI18n.ts similarity index 95% rename from src/runtime/composables/i18n.ts rename to src/runtime/composables/contentI18n.ts index 12f5b9cba..cbe2b0019 100644 --- a/src/runtime/composables/i18n.ts +++ b/src/runtime/composables/contentI18n.ts @@ -1,4 +1,4 @@ -export const useI18n = () => { +export const useContentI18n = () => { const parseLocale = (_path) => { const { content } = useRuntimeConfig() const { defaultLocale, locales } = content diff --git a/src/runtime/plugins/documentDriven.ts b/src/runtime/plugins/documentDriven.ts index 68e126dec..14a8a180c 100644 --- a/src/runtime/plugins/documentDriven.ts +++ b/src/runtime/plugins/documentDriven.ts @@ -8,6 +8,7 @@ import { useContentState } from '../composables/content' import { useContentHelpers } from '../composables/helpers' import { fetchContentNavigation } from '../composables/navigation' import { queryContent } from '../composables/query' +import { useContentI18n } from '../composables/contentI18n' // @ts-ignore import layouts from '#build/layouts' @@ -263,7 +264,7 @@ export default defineNuxtPlugin((nuxt) => { return } - const { parseLocale } = useI18n() + const { parseLocale } = useContentI18n() const { _path, _locale } = parseLocale(to.path) const page = { From b24f35e3fe3212bd4d06dcf8de5cb3f0b0560b2e Mon Sep 17 00:00:00 2001 From: BruceNTB Date: Mon, 22 May 2023 19:49:26 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=F0=9F=91=B7=20add=20dev:i18n-build=20scrip?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 74ba19d36..52ec066e3 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "scripts": { "dev": "./scripts/playground.sh", "dev:i18n": "./scripts/playground.sh i18n", + "dev:i18n-build": "nuxi build playground/i18n", "dev:build": "nuxi build playground/basic", "prepare": "nuxi prepare playground/basic", "dev:fixtures": "./scripts/fixture.sh", From 0b5d5eaa3388b63d72c9b3445cb7ad86be770ca1 Mon Sep 17 00:00:00 2001 From: BruceNTB Date: Mon, 22 May 2023 19:51:15 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=F0=9F=9A=A9=20remove=20devtool=20from=20pl?= =?UTF-8?q?ayground/i18n=20nuxt=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- playground/i18n/nuxt.config.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/playground/i18n/nuxt.config.ts b/playground/i18n/nuxt.config.ts index 13d25ab2a..fb3da73c9 100644 --- a/playground/i18n/nuxt.config.ts +++ b/playground/i18n/nuxt.config.ts @@ -16,6 +16,5 @@ export default defineNuxtConfig({ lang: 'en' } } - }, - devtools: true + } }) From 2fa859d1c4b19374f75ca060970d267bc85377f9 Mon Sep 17 00:00:00 2001 From: BruceNTB Date: Mon, 22 May 2023 20:12:28 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E2=9A=B0=EF=B8=8F=20remove=20i18n=20build?= =?UTF-8?q?=20script?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 52ec066e3..74ba19d36 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "scripts": { "dev": "./scripts/playground.sh", "dev:i18n": "./scripts/playground.sh i18n", - "dev:i18n-build": "nuxi build playground/i18n", "dev:build": "nuxi build playground/basic", "prepare": "nuxi prepare playground/basic", "dev:fixtures": "./scripts/fixture.sh",