Skip to content

Commit bb6bf80

Browse files
committed
修复布局组件中的拼写错误,并更新首页语言重定向逻辑以支持语言优先级
1 parent e68529e commit bb6bf80

2 files changed

Lines changed: 33 additions & 4 deletions

File tree

packages/site/app/[lang]/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const { provider } = defineI18nUI(i18n, {
2525
export default async function Layout({ params, children }: LayoutProps<'/[lang]'>) {
2626
const { lang } = await params;
2727
return (
28-
<html lang={lang} csuppressHydrationWarning>
28+
<html lang={lang} suppressHydrationWarning>
2929
<body
3030
style={{
3131
display: 'flex',

packages/site/app/page.tsx

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,35 @@
1-
import { redirect, notFound } from 'next/navigation';
1+
import { redirect } from 'next/navigation';
2+
import { headers } from 'next/headers';
3+
import { siteConfig } from '@/lib/site-config';
24

3-
export default function HomePage() {
5+
export default async function HomePage() {
6+
const headersList = await headers();
7+
const acceptLanguage = headersList.get('accept-language');
48

5-
redirect(`/en/docs`);
9+
let lang = siteConfig.i18n.defaultLanguage;
10+
11+
if (acceptLanguage) {
12+
const languages = acceptLanguage.split(',').map(item => {
13+
const [tag, qValue] = item.trim().split(';');
14+
return {
15+
tag: tag.toLowerCase(),
16+
q: qValue ? parseFloat(qValue.replace('q=', '')) : 1.0
17+
};
18+
}).sort((a, b) => b.q - a.q);
19+
20+
for (const { tag } of languages) {
21+
if ((tag.startsWith('zh') || tag === 'cn') && siteConfig.i18n.languages.includes('cn')) {
22+
lang = 'cn';
23+
break;
24+
}
25+
26+
const match = siteConfig.i18n.languages.find(l => tag === l || tag.startsWith(l + '-'));
27+
if (match) {
28+
lang = match;
29+
break;
30+
}
31+
}
32+
}
33+
34+
redirect(`/${lang}/docs`);
635
}

0 commit comments

Comments
 (0)