defaultLocale 没有在 Next.js i18n 中保留默认语言
defaultLocale is not keeping default lang in Next.js i18n
我正在尝试将我的默认语言设置为 Next.js i18n,但总是将“En”作为默认语言,称为后备。
我也收到这个错误:
Error: [@formatjs/intl Error MISSING_DATA] Missing locale data for locale: "sq" in Intl.NumberFormat. Using default locale: "en" as fallback
module.exports = {
i18n: {
locales: ['sq', 'en'],
defaultLocale: "sq",
}
}
Next.js 将 automatically detect 用户根据页面请求中发送的 Accept-Language
header 偏好的语言环境。
在您的情况下,虽然您的默认语言环境是 sq
,但在 Accept-Language
header 中检测到 en
语言环境,因此您被重定向到 locale-prefixed路径。
可以通过在您的 i18n 选项中将 localeDetection
设置为 false
来禁用此行为。
// next.config.js
module.exports = {
i18n: {
locales: ['sq', 'en'],
defaultLocale: 'sq',
localeDetection: false
}
}
来自 Disabling Automatic Locale Detection 文档:
When localeDetection
is set to false
Next.js will no longer
automatically redirect based on the user's preferred locale and will
only provide locale information detected from either the locale based
domain or locale path as described above.
附带说明一下,关于 @formatjs/intl
错误,它表示您使用的 environment/browser 不支持 sq
语言环境。您可能需要查看 @formatjs/intl-numberformat
以填充该语言环境数据。
我正在尝试将我的默认语言设置为 Next.js i18n,但总是将“En”作为默认语言,称为后备。
我也收到这个错误:
Error: [@formatjs/intl Error MISSING_DATA] Missing locale data for locale: "sq" in Intl.NumberFormat. Using default locale: "en" as fallback
module.exports = {
i18n: {
locales: ['sq', 'en'],
defaultLocale: "sq",
}
}
Next.js 将 automatically detect 用户根据页面请求中发送的 Accept-Language
header 偏好的语言环境。
在您的情况下,虽然您的默认语言环境是 sq
,但在 Accept-Language
header 中检测到 en
语言环境,因此您被重定向到 locale-prefixed路径。
可以通过在您的 i18n 选项中将 localeDetection
设置为 false
来禁用此行为。
// next.config.js
module.exports = {
i18n: {
locales: ['sq', 'en'],
defaultLocale: 'sq',
localeDetection: false
}
}
来自 Disabling Automatic Locale Detection 文档:
When
localeDetection
is set tofalse
Next.js will no longer automatically redirect based on the user's preferred locale and will only provide locale information detected from either the locale based domain or locale path as described above.
附带说明一下,关于 @formatjs/intl
错误,它表示您使用的 environment/browser 不支持 sq
语言环境。您可能需要查看 @formatjs/intl-numberformat
以填充该语言环境数据。