core&ui: trigger i18n update event

This commit is contained in:
undefined committed 2024-10-17 11:03:39 +08:00
1 parent 0ff088a677
commit ad0b4bd63e
3 files changed
+9 -2

No files matched your search

+6
View File
@@ -7,6 +7,11 @@ declare module '../context' {
i18n: I18nService;
}
}
declare module '../service/bus' {
interface EventMap {
'app/i18n/update': (lang: string) => void;
}
}
declare global {
interface String {
translate: (...languages: string[]) => string;
@@ -22,6 +27,7 @@ class I18nService extends Service {
this.ctx.effect(() => {
translations[lang] ||= [];
translations[lang].unshift(content);
this.ctx.emit('app/i18n/update', lang);
return () => {
translations[lang] = translations[lang].filter((i) => i !== content);
};
@@ -145,5 +145,6 @@ export async function apply(ctx: Context) {
ctx.on('system/setting', () => triggerHotUpdate());
ctx.on('app/watch/change', triggerHotUpdate);
ctx.on('app/watch/unlink', triggerHotUpdate);
ctx.on('app/i18n/update', debouncedBuildUI);
debouncedBuildUI();
}