Skip to content

Commit 45b67d2

Browse files
committed
feat: add standalone translator
1 parent ad0d93d commit 45b67d2

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

packages/runtime-core/src/i18n.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,6 @@ export class SynchronizedTranslator<T extends { [key: string]: unknown }> extend
121121
super(options);
122122
}
123123

124-
@InitializedOnly
125-
get targetElement() {
126-
return window.frameElement!;
127-
}
128-
129124
@InitializedOnly
130125
changeLanguage(language: Language) {
131126
window.top!.document.dispatchEvent(new CustomEvent('changeLanguage', { detail: language }));
@@ -143,5 +138,19 @@ export class SynchronizedTranslator<T extends { [key: string]: unknown }> extend
143138
}
144139
}
145140

141+
export class StandaloneTranslator<T extends { [key: string]: unknown }> extends BaseTranslator<T> {
142+
@InitializedOnly
143+
changeLanguage(language: Language) {
144+
document.documentElement.setAttribute('lang', language);
145+
}
146+
147+
override init(options: TranslatorInitOptions = {}) {
148+
if (typeof window === 'undefined') {
149+
throw new Error('Cannot initialize StandaloneTranslator outside of browser');
150+
}
151+
return super.init(options, document.documentElement);
152+
}
153+
}
154+
146155
/** @public */
147-
export class Translator<T extends { [key: string]: unknown }> extends SynchronizedTranslator<T> {}
156+
export class Translator<T extends { [key: string]: unknown }> extends StandaloneTranslator<T> {}

0 commit comments

Comments
 (0)