mirror of
https://github.com/whyour/qinglong.git
synced 2025-12-14 16:05:39 +08:00
* Initial plan * Fix decodeURIComponent error in cookie parsing by adding try-catch Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> * Add type annotation and logging to catch block per code review Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> * Fix TypeScript errors in deps.ts - remove unused path parameter Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> * Revert pnpm-lock.yaml to avoid unnecessary lockfile version upgrade Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: whyour <22700758+whyour@users.noreply.github.com>
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
const baseUrl = window.__ENV__QlBaseUrl || '/';
|
|
import { setLocale } from '@umijs/max';
|
|
import intl from 'react-intl-universal';
|
|
|
|
export function rootContainer(container: any) {
|
|
const locales = {
|
|
'en': require('./locales/en-US.json'),
|
|
'zh': require('./locales/zh-CN.json'),
|
|
};
|
|
let currentLocale: string;
|
|
try {
|
|
currentLocale = intl.determineLocale({
|
|
urlLocaleKey: 'lang',
|
|
cookieLocaleKey: 'lang',
|
|
localStorageLocaleKey: 'lang',
|
|
}).slice(0, 2);
|
|
} catch (e: unknown) {
|
|
// Handle decodeURIComponent errors from malformed cookies
|
|
console.warn('Failed to determine locale from cookies:', e);
|
|
currentLocale = '';
|
|
}
|
|
|
|
if (!currentLocale || !Object.keys(locales).includes(currentLocale)) {
|
|
currentLocale = 'zh';
|
|
}
|
|
|
|
intl.init({ currentLocale, locales });
|
|
setLocale(currentLocale === 'zh' ? 'zh-CN' : 'en-US');
|
|
return container;
|
|
}
|
|
|
|
export function modifyClientRenderOpts(memo: any) {
|
|
return {
|
|
...memo,
|
|
publicPath: baseUrl,
|
|
basename: baseUrl,
|
|
};
|
|
}
|
|
|
|
export function modifyContextOpts(memo: any) {
|
|
return {
|
|
...memo,
|
|
basename: baseUrl,
|
|
};
|
|
}
|