mirror of
https://github.com/snowykami/neo-blog.git
synced 2025-09-26 11:06:23 +00:00
Merge pull request #10 from snowykami/fix/5-error-site-language
fix: Closes #5 修复首选语言检测错误的问题
This commit is contained in:
@ -4,7 +4,7 @@ import "./globals.css";
|
||||
import { DeviceProvider } from "@/contexts/device-context";
|
||||
import { NextIntlClientProvider } from 'next-intl';
|
||||
import config from "@/config";
|
||||
import { getUserLocales } from "@/i18n/request";
|
||||
import { getUserLocales, getFirstLocale } from '@/i18n/request';
|
||||
import { Toaster } from "@/components/ui/sonner"
|
||||
|
||||
const geistSans = Geist({
|
||||
@ -28,7 +28,7 @@ export default async function RootLayout({
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
return (
|
||||
<html lang={(await getUserLocales())[0] || "en"} className="h-full">
|
||||
<html lang={await getFirstLocale() || "en"} className="h-full">
|
||||
<body
|
||||
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
|
||||
>
|
||||
|
@ -35,7 +35,6 @@ export function CommentItem(
|
||||
}
|
||||
) {
|
||||
const locale = useLocale();
|
||||
console.log("locale", locale);
|
||||
const t = useTranslations("Comment");
|
||||
const commonT = useTranslations("Common");
|
||||
const clickToUserProfile = useToUserProfile();
|
||||
|
@ -10,7 +10,6 @@ export default getRequestConfig(async () => {
|
||||
try {
|
||||
return (await import(`@/locales/${locale}.json`)).default;
|
||||
} catch (err) {
|
||||
console.debug(`Failed to load locale ${locale}:`);
|
||||
return {};
|
||||
}
|
||||
})
|
||||
@ -30,8 +29,7 @@ export async function getUserLocales(): Promise<string[]> {
|
||||
const user = (await getLoginUser(token)).data;
|
||||
locales.push(user.language);
|
||||
locales.push(user.language.split('-')[0]);
|
||||
} catch (error) {
|
||||
console.info("获取用户信息失败,使用默认语言", error);
|
||||
} catch {
|
||||
}
|
||||
const languageInCookie = cookieStore.get('language')?.value;
|
||||
if (languageInCookie) {
|
||||
@ -45,4 +43,9 @@ export async function getUserLocales(): Promise<string[]> {
|
||||
locales = [...new Set([...locales, ...languages, ...languagesWithoutRegion])];
|
||||
}
|
||||
return locales.reverse();
|
||||
}
|
||||
|
||||
export async function getFirstLocale(): Promise<string> {
|
||||
const locales = await getUserLocales();
|
||||
return locales.reverse()[0] || 'en';
|
||||
}
|
Reference in New Issue
Block a user