Triển khai i18next client, server component (ok)
Step 1: Thực hiện 1 trang ở app
import { ReactNode } from 'react';
import LanguageSwitcher from '@/src/components/LanguageSwitcher'
interface RootLayoutProps {
children: ReactNode;
}
export default async function RootLayout({ children }: RootLayoutProps) {
return (
<>
<header className="flex justify-end p-4">
<LanguageSwitcher />
</header>
{children}
</>
);
}import ClientComponent from '@/src/components/ClientComponent';
import initI18next from '@/src/lib/i18n/server';
import { fallbackLng, languages } from '@/src/lib/i18n/settings';
export default async function Page({ params }: { params: { lang: string } }) {
const {lang} = await params;
const glang = languages.includes(lang) ? lang : fallbackLng;
const i18n = await initI18next(glang, 'common');
const t = i18n.getFixedT(lang, 'common');
console.log('Server: lang=', glang, 't(hello)=', t('hello'));
return (
<>
<ClientComponent lang={glang} />
<h1>{t('hello')}</h1>
</>
);
}Step 2: Thực hiện 1 trang ở pages
Source code (kiểm tra đã hoạt động tốt app và pages)
Step 3: Để tạo một ClientComponent không sử dụng 'use client' mà vẫn hỗ trợ đa ngôn ngữ (i18n)
'use client' mà vẫn hỗ trợ đa ngôn ngữ (i18n)PreviousCó cách nào khao báo Layout cho tất cả các trang không, không phải thủ công cho mỗi trang about.tsxNextToàn bộ giải thích sử dụng chatgpt Triển khai client, server (part 1)
Last updated