Skip to content

Commit 2864995

Browse files
authored
Merge pull request #1099 from DouglasNeuroInformatics/joshunrau-patch-1
fix: update i18n.ts to fix issue with abstract class
2 parents 7457540 + 3d8160c commit 2864995

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

packages/runtime-core/src/i18n.ts

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,21 @@ export type TranslatorInitOptions = {
3939
onLanguageChange?: LanguageChangeHandler | null;
4040
};
4141

42+
/** @public */
43+
export type TranslatorInstance<T extends { [key: string]: unknown }> = {
44+
changeLanguage(language: Language): void;
45+
init(options?: TranslatorInitOptions): void;
46+
readonly isInitialized: boolean;
47+
onLanguageChange: LanguageChangeHandler;
48+
readonly resolvedLanguage: Language;
49+
t(key: TranslationKey<T>): string;
50+
};
51+
52+
/** @public */
53+
export type TranslatorConstructor = new <T extends { [key: string]: unknown }>(
54+
options: TranslatorOptions<T>
55+
) => TranslatorInstance<T>;
56+
4257
/** @public */
4358
export abstract class BaseTranslator<T extends { [key: string]: unknown } = { [key: string]: unknown }> {
4459
protected currentDocumentLanguage: Language | null;
@@ -116,7 +131,10 @@ export abstract class BaseTranslator<T extends { [key: string]: unknown } = { [k
116131
}
117132

118133
/** @public */
119-
export class SynchronizedTranslator<T extends { [key: string]: unknown }> extends BaseTranslator<T> {
134+
export class SynchronizedTranslator<T extends { [key: string]: unknown }>
135+
extends BaseTranslator<T>
136+
implements TranslatorInstance<T>
137+
{
120138
constructor(options: TranslatorOptions<T>) {
121139
super(options);
122140
}
@@ -139,7 +157,10 @@ export class SynchronizedTranslator<T extends { [key: string]: unknown }> extend
139157
}
140158

141159
/** @public */
142-
export class StandaloneTranslator<T extends { [key: string]: unknown }> extends BaseTranslator<T> {
160+
export class StandaloneTranslator<T extends { [key: string]: unknown }>
161+
extends BaseTranslator<T>
162+
implements TranslatorInstance<T>
163+
{
143164
@InitializedOnly
144165
changeLanguage(language: Language) {
145166
document.documentElement.setAttribute('lang', language);
@@ -154,7 +175,7 @@ export class StandaloneTranslator<T extends { [key: string]: unknown }> extends
154175
}
155176

156177
/** @public */
157-
let Translator: typeof BaseTranslator;
178+
let Translator: TranslatorConstructor;
158179
if (typeof window === 'undefined' || window.self !== window.top) {
159180
Translator = SynchronizedTranslator;
160181
} else {

0 commit comments

Comments
 (0)