Skip to content

Commit 9adf5a7

Browse files
committed
fix(i18n): add base url in i18n fetching
1 parent 02036af commit 9adf5a7

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

src/router/index.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import { useRouterStore } from '~/stores/router.store';
55

66
export type RouterOptions = { baseName?: string; baseUrl?: string };
77
export const createRouter = ({ baseName = '', baseUrl = import.meta.env.BASE_URL }: RouterOptions) => {
8-
useRouterStore().setBaseName(baseName);
8+
const { setBaseName, setBaseUrl } = useRouterStore();
9+
setBaseName(baseName);
10+
setBaseUrl(baseUrl);
911
return createVueRouter({
1012
history: createWebHashHistory(baseUrl),
1113
routes: routes.map(r => ({ ...r, path: `${baseName}${r.path}` })),

src/stores/router.store.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,10 @@ export const useRouterStore = defineStore('router', () => {
77
baseName.value = name;
88
};
99

10-
return { baseName, setBaseName };
10+
const baseUrl = ref('');
11+
const setBaseUrl = (url: string) => {
12+
baseUrl.value = url;
13+
};
14+
15+
return { baseName, setBaseName, baseUrl, setBaseUrl };
1116
});

src/utils/i18n.utils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export const useI18n = (...roots: string[]): ReturnType<typeof chromeUseI18n> =>
1111
const router = useRouterStore();
1212

1313
if (!store.locales?.[store.lang]) {
14-
fetch(new URL(`${router.baseName ?? '.'}/_locales/${store.lang}/messages.json`, new URL(import.meta.url).origin))
14+
fetch(new URL(`${router.baseUrl ?? './'}_locales/${store.lang}/messages.json`, new URL(import.meta.url).origin))
1515
.then(r => r.json())
1616
.then((locale: Locale) => store.addLocale(locale))
1717
.catch(err => console.error(`Failed to fetch locale '${store.lang}'`, err));

0 commit comments

Comments
 (0)