Skip to content

Commit 27c8486

Browse files
committed
fix: check frame name in SynchronizedTranslator
1 parent 32b120a commit 27c8486

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

packages/runtime-core/src/i18n.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ export abstract class BaseTranslator<T extends { [key: string]: unknown } = { [k
9898
}
9999

100100
/** @public */
101-
export class Translator<T extends { [key: string]: unknown }> extends BaseTranslator<T> {
101+
export class SynchronizedTranslator<T extends { [key: string]: unknown }> extends BaseTranslator<T> {
102102
constructor(options: TranslatorOptions<T>) {
103103
super(options);
104104
}
@@ -110,9 +110,11 @@ export class Translator<T extends { [key: string]: unknown }> extends BaseTransl
110110

111111
init(options?: TranslatorInitOptions) {
112112
if (typeof window === 'undefined') {
113-
throw new Error('Cannot initialize Translator outside of browser');
113+
throw new Error('Cannot initialize SynchronizedTranslator outside of browser');
114114
} else if (!window.frameElement) {
115-
throw new Error('Cannot initialize Translator in context where window.frameElement is null');
115+
throw new Error('Cannot initialize SynchronizedTranslator in context where window.frameElement is null');
116+
} else if (window.frameElement.getAttribute('name') !== 'interactive-instrument') {
117+
throw new Error('SynchronizedTranslator must be initialized in InstrumentRenderer');
116118
}
117119

118120
this.isInitialized = true;
@@ -134,3 +136,6 @@ export class Translator<T extends { [key: string]: unknown }> extends BaseTransl
134136
languageAttributeObserver.observe(window.frameElement, { attributes: true });
135137
}
136138
}
139+
140+
/** @public */
141+
export class Translator<T extends { [key: string]: unknown }> extends SynchronizedTranslator<T> {}

0 commit comments

Comments
 (0)