我正在开发一个多语言静态构建(下一个导出)Next.js 站点。我不能使用下一个国际化,所以我不得不一起破解一个解决方案,主要基于这个nextjs-18n-static-page-starter
我的页面结构如下所示:
pages
┣ [lang]
┃ ┣ category
┃ ┃ ┣ [slug].js
┃ ┃ ┗ index.js
┃ ┗ index.js
┣ _app.js
┣ _document.js
┗ index.js
我想在自定义文档中设置 html lang 属性。有什么方法可以在文档级别从 url 动态提取它?
我有这个 hacky 解决方案,但是当用户在应用程序中更改他们的语言时它不会更新(它会正确重定向到新的 url):
export default class MyDocument extends Document {
render() {
const queryLang = this?.props?.__NEXT_DATA__?.query?.lang;
const lang = ( queryLang === null || queryLang === undefined ) ? DEFAULT_LANG : queryLang;
return (
<Html lang={lang}>
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
)
}
}