Skip to content

Commit 3e33699

Browse files
authoredSep 17, 2024··
fix!: restructureDir defaults (#3106)
* fix!: `restructureDir` defaults * docs: document disabling `restructureDir` * fix: `restructureDir` type description * fix: remove console log * chore: fix playground config
1 parent 73f6b99 commit 3e33699

File tree

30 files changed

+465
-123
lines changed

30 files changed

+465
-123
lines changed
 

‎docs/content/docs/5.v9/2.guide/19.breaking-changes-in-v9.md

+2
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ Reasons for change
4848
1. Context - i18n files are used both server-side and client-side, using a dedicated `i18n/` folder in the root directory outside `app/` and `server/` makes more sense.
4949
2. Clean - less clutter/fragmentation of i18n files, and should make resolving and loading files easier for us.
5050

51+
To ease the migration to v9 you can disable this feature by setting `restructureDir: false`, this will be removed in v10.
52+
5153
## Locale `iso` renamed to `language`
5254

5355
The `iso` property on a locale object has been renamed to `language` to be consistent with the usage of Language Tags on the web (e.g. `navigator.language` and `Accept-Language`). The original `iso` property name referred to ISO standards which describe valid Language Tags, see the [related issue](https://github.com/nuxt-modules/i18n/issues/2449) for more details.

‎package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191
"@intlify/unplugin-vue-i18n": "^5.0.0",
9292
"@intlify/utils": "^0.13.0",
9393
"@miyaneee/rollup-plugin-json5": "^1.2.0",
94-
"@nuxt/kit": "^3.13.1",
94+
"@nuxt/kit": "^3.13.2",
9595
"@rollup/plugin-yaml": "^4.1.2",
9696
"@vue/compiler-sfc": "^3.5.5",
9797
"debug": "^4.3.5",
@@ -115,7 +115,7 @@
115115
"@babel/types": "^7.24.7",
116116
"@eslint/js": "9.5.0",
117117
"@nuxt/module-builder": "^0.8.4",
118-
"@nuxt/schema": "^3.13.1",
118+
"@nuxt/schema": "^3.13.2",
119119
"@types/debug": "^4.1.9",
120120
"@types/eslint": "^8.56.6",
121121
"@unhead/vue": "^1.8.8",
@@ -134,7 +134,7 @@
134134
"lint-staged": "^15.2.7",
135135
"nitropack": "^2.9.7",
136136
"npm-run-all2": "^6.2.0",
137-
"nuxt": "^3.13.1",
137+
"nuxt": "^3.13.2",
138138
"ofetch": "^1.3.4",
139139
"pkg-pr-new": "^0.0.20",
140140
"playwright-core": "^1.45.3",

‎playground/layers/i18n-layer/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
export default defineNuxtConfig({
33
modules: ['@nuxtjs/i18n'],
44
i18n: {
5+
restructureDir: false,
56
langDir: 'locales',
67
lazy: true,
78
baseUrl: 'http://localhost:3000',

‎playground/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ export default defineNuxtConfig({
117117
// },
118118
// debug: true,
119119
i18n: {
120+
restructureDir: false,
120121
experimental: {
121122
localeDetector: './localeDetector.ts',
122123
switchLocalePathLinkSSR: true,

‎pnpm-lock.yaml

+429-115
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎specs/fixtures/basic/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export default defineNuxtConfig({
55
modules: [CustomModule, '@nuxtjs/i18n'],
66

77
i18n: {
8+
restructureDir: false,
89
lazy: false,
910
baseUrl: 'http://localhost:3000',
1011
locales: [

‎specs/fixtures/basic_usage/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export default defineNuxtConfig({
1616
],
1717
plugins: [`../plugins/i18nHooks.ts`],
1818
i18n: {
19+
restructureDir: false,
1920
vueI18n: './config/i18n.config.ts',
2021
locales: ['en', 'fr'],
2122
defaultLocale: 'en',

‎specs/fixtures/basic_usage_compat_4/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default defineNuxtConfig({
1818
],
1919
plugins: [`../plugins/i18nHooks.ts`],
2020
i18n: {
21+
restructureDir: false,
2122
vueI18n: './config/i18n.config.ts',
2223
defaultLocale: 'en',
2324
experimental: {

‎specs/fixtures/different_domains/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export default defineNuxtConfig({
55
modules: [CustomModule, '@nuxtjs/i18n'],
66

77
i18n: {
8+
restructureDir: false,
89
lazy: false,
910
locales: [
1011
{

‎specs/fixtures/inline_options/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export default defineNuxtConfig({
2828
],
2929
debug: false,
3030
i18n: {
31+
restructureDir: false,
3132
locales: [
3233
{
3334
code: 'ja',

‎specs/fixtures/issues/1888/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
export default defineNuxtConfig({
33
modules: ['@nuxtjs/i18n'],
44
i18n: {
5+
restructureDir: false,
56
locales: [
67
{
78
code: 'en',

‎specs/fixtures/issues/2151/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export default defineNuxtConfig({
66
},
77
modules: ['@nuxtjs/i18n'],
88
i18n: {
9+
restructureDir: false,
910
lazy: true,
1011
langDir: 'locales',
1112
locales: [

‎specs/fixtures/issues/2220/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import locales from './locales'
33
export default defineNuxtConfig({
44
modules: ['@nuxtjs/i18n'],
55
i18n: {
6+
restructureDir: false,
67
lazy: true,
78
langDir: 'locales',
89
locales,

‎specs/fixtures/issues/2226/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export default defineNuxtConfig({
22
modules: ['@nuxtjs/i18n'],
33
i18n: {
4+
restructureDir: false,
45
locales: ['en', 'de'],
56
defaultLocale: 'en',
67
strategy: 'prefix_and_default'

‎specs/fixtures/issues/2247/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
export default defineNuxtConfig({
33
modules: ['@nuxtjs/i18n'],
44
i18n: {
5+
restructureDir: false,
56
baseUrl: 'https://abwaab.com',
67
locales: [
78
{

‎specs/fixtures/issues/2288/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
export default defineNuxtConfig({
33
modules: ['@nuxtjs/i18n'],
44
i18n: {
5+
restructureDir: false,
56
baseUrl: 'https://abwaab.com',
67
locales: [
78
{

‎specs/fixtures/issues/2315/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
export default defineNuxtConfig({
33
modules: ['@nuxtjs/i18n'],
44
i18n: {
5+
restructureDir: false,
56
bundle: {
67
compositionOnly: false
78
},

‎specs/fixtures/layers/layer-domain/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// https://nuxt.com/docs/guide/directory-structure/nuxt.config
22
export default defineNuxtConfig({
33
i18n: {
4+
restructureDir: false,
45
// lazy: false,
56
// differentDomains: true,
67
// defaultLocale: 'en',

‎specs/fixtures/layers/layer-lazy/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// https://nuxt.com/docs/guide/directory-structure/nuxt.config
22
export default defineNuxtConfig({
33
i18n: {
4+
restructureDir: false,
45
langDir: 'locales',
56
locales: [
67
{

‎specs/fixtures/layers/layer-locale-arabic/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// https://nuxt.com/docs/guide/directory-structure/nuxt.config
22
export default defineNuxtConfig({
33
i18n: {
4+
restructureDir: false,
45
langDir: 'locales',
56
locales: [
67
{

‎specs/fixtures/layers/layer-server/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// https://nuxt.com/docs/guide/directory-structure/nuxt.config
22
export default defineNuxtConfig({
33
i18n: {
4+
restructureDir: false,
45
experimental: {
56
localeDetector: './localeDetector.ts'
67
},
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// https://nuxt.com/docs/guide/directory-structure/nuxt.config
22
export default defineNuxtConfig({
33
i18n: {
4+
restructureDir: false,
45
locales: ['fr', 'nl']
56
}
67
})

‎specs/fixtures/layers/layer-vueI18n-options/layer-simple-secondary/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
export default defineNuxtConfig({
33
modules: ['@nuxtjs/i18n'],
44
i18n: {
5+
restructureDir: false,
56
locales: ['fr', 'nl', 'en'],
67
defaultLocale: 'nl',
78
detectBrowserLanguage: false,

‎specs/fixtures/layers/layer-vueI18n-options/layer-simple/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
export default defineNuxtConfig({
33
modules: ['@nuxtjs/i18n'],
44
i18n: {
5+
restructureDir: false,
56
locales: ['fr', 'nl', 'en'],
67
defaultLocale: 'nl',
78
detectBrowserLanguage: false,

‎specs/fixtures/lazy/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export default defineNuxtConfig({
2222
},
2323
modules: [i18nModule, '@nuxtjs/i18n'],
2424
i18n: {
25+
restructureDir: false,
2526
baseUrl: 'http://localhost:3000',
2627
// langDir: 'lang',
2728
// defaultLocale: 'fr',

‎specs/fixtures/multi_domains_locales/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export default defineNuxtConfig({
77
modules: [CustomModule, '@nuxtjs/i18n'],
88

99
i18n: {
10+
restructureDir: false,
1011
lazy: false,
1112
baseUrl: 'http://localhost:3000',
1213
locales: [

‎specs/fixtures/restructure/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export default defineNuxtConfig({
2424
modules: [i18nModule, '@nuxtjs/i18n'],
2525

2626
i18n: {
27+
restructureDir: false,
2728
baseUrl: 'http://localhost:3000',
2829
// langDir: 'lang',
2930
// defaultLocale: 'fr',

‎specs/fixtures/routing/nuxt.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ export default defineNuxtConfig({
33
modules: ['@nuxtjs/i18n'],
44

55
i18n: {
6+
restructureDir: false,
67
locales: ['en', 'ja'],
78
detectBrowserLanguage: false
89
}

‎src/layers.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,9 @@ export function resolveI18nDir(layer: NuxtConfigLayer, i18n: NuxtI18nOptions, fr
9797
}
9898

9999
export function resolveLayerLangDir(layer: NuxtConfigLayer, i18n: NuxtI18nOptions) {
100-
const langDir = i18n.langDir ?? (i18n.restructureDir ? 'locales' : '')
101-
return resolve(resolveI18nDir(layer, i18n), langDir)
100+
i18n.restructureDir ??= 'i18n'
101+
i18n.langDir ??= i18n.restructureDir !== false ? 'locales' : ''
102+
return resolve(resolveI18nDir(layer, i18n), i18n.langDir)
102103
}
103104

104105
const mergeLayerLocales = (options: NuxtI18nOptions, nuxt: Nuxt) => {

‎src/types.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,11 @@ export type NuxtI18nOptions<
110110
vueI18n?: string
111111
experimental?: ExperimentalFeatures
112112
/**
113-
* This can be set to a directory name to opt into the directory restructure for v9 which will have a default of 'i18n'.
113+
* The directory to resolve i18n files from, the restructure can be disabled by setting this to `false`.
114114
*
115-
* @defaultValue `undefined` (v8) or `'i18n'` (v9 release)
115+
* @defaultValue `'i18n'`
116116
*/
117-
restructureDir?: string
117+
restructureDir?: string | false
118118
bundle?: BundleOptions
119119
compilation?: LocaleMessageCompilationOptions
120120
customBlocks?: CustomBlocksOptions

0 commit comments

Comments
 (0)
Please sign in to comment.