i18n (internationalization) là kỹ thuật giúp app hỗ trợ nhiều ngôn ngữ. Cách làm:
- Tách tất cả text ra file JSON theo ngôn ngữ (vi.json, en.json), không hardcode text trong component
- Dùng thư viện react-i18next hoặc next-intl (cho Next.js) — gọi
t('greeting')thay vì viết 'Xin chào' trực tiếp
- Lazy load file ngôn ngữ để không tải hết cùng lúc
- Dùng Intl API có sẵn trong browser để format ngày tháng, số, tiền tệ theo locale
- Next.js hỗ trợ routing theo locale:
/en/about,/vi/aboutqua middleware
next-intl hiện là lựa chọn phổ biến nhất cho Next.js App Router.