30 lines
800 B
TypeScript
30 lines
800 B
TypeScript
import { getRequestConfig } from 'next-intl/server';
|
|
import { routing } from './routing';
|
|
|
|
export default getRequestConfig(async ({ requestLocale }) => {
|
|
// This typically corresponds to the `[locale]` segment
|
|
let locale = await requestLocale;
|
|
|
|
if (locale?.startsWith('zh')) {
|
|
locale = 'zh';
|
|
} else if (locale?.startsWith('en')) {
|
|
locale = 'en';
|
|
} else if (locale?.startsWith('vi')) {
|
|
locale = 'vi';
|
|
} else {
|
|
locale = 'zh';
|
|
}
|
|
|
|
// Ensure that a valid locale is used
|
|
if (!locale || !routing.locales.includes(locale as any)) {
|
|
return {
|
|
locale: routing.defaultLocale,
|
|
messages: (await import(`./messages/${routing.defaultLocale}.json`)).default
|
|
};
|
|
}
|
|
|
|
return {
|
|
locale,
|
|
messages: (await import(`./messages/${locale}.json`)).default
|
|
};
|
|
}); |