defaultLocale没有在Next.js I18n中保留默认语言

我正在尝试将我的默认语言设置为Next.js i18n,但始终将";en";作为默认语言,称为LIKE FLABACK。

我还收到此错误:

错误:[@format js/intl ERROR MISSING_DATA]Intl.NumberFormat中的locale:";sq";缺少区域设置数据。使用默认区域设置:简体中文作为备用(&Q)

module.exports = {
    i18n: {
        locales: ['sq', 'en'],
        defaultLocale: "sq",
    }
}

解决方案

next.js将automatically detect根据页面请求中发送的Accept-Language头选择用户喜欢的区域设置。

在您的情况下,尽管您的默认区域设置是sq,但en区域设置会在Accept-Language头中检测到,因此您会被重定向到以区域设置为前缀的路径。

可以通过在I18N选项中将localeDetection设置为false来禁用此行为。

// next.config.js

module.exports = {
    i18n: {
        locales: ['sq', 'en'],
        defaultLocale: 'sq',
        localeDetection: false
    }
}

关于@formatjs/intl错误,它表明您使用的环境/浏览器不支持sq区域设置。您可能希望查看@formatjs/intl-numberformat以多填充该区域设置数据。

相关文章