@@ -49,13 +49,6 @@ export abstract class BaseTranslator<T extends { [key: string]: unknown } = { [k
4949 this . isInitialized = false ;
5050 this . translations = translations ;
5151 }
52- }
53-
54- /** @public */
55- export class Translator < T extends { [ key : string ] : unknown } > extends BaseTranslator < T > {
56- constructor ( options : TranslatorOptions < T > ) {
57- super ( options ) ;
58- }
5952
6053 @InitializedOnly
6154 set onLanguageChange ( handler : LanguageChangeHandler ) {
@@ -67,6 +60,32 @@ export class Translator<T extends { [key: string]: unknown }> extends BaseTransl
6760 return this . currentDocumentLanguage ?? this . fallbackLanguage ;
6861 }
6962
63+ @InitializedOnly
64+ protected extractLanguageProperty ( element : Element ) {
65+ const lang = element . getAttribute ( 'lang' ) ;
66+ if ( lang === 'en' || lang === 'fr' ) {
67+ return lang ;
68+ }
69+ console . error ( `Unexpected value for 'lang' attribute: '${ lang } '` ) ;
70+ return null ;
71+ }
72+
73+ @InitializedOnly
74+ t ( key : TranslationKey < T > ) {
75+ const value = get ( this . translations , key ) as { [ key : string ] : string } | string | undefined ;
76+ if ( typeof value === 'string' ) {
77+ return value ;
78+ }
79+ return value ?. [ this . resolvedLanguage ] ?? value ?. [ this . fallbackLanguage ] ?? key ;
80+ }
81+ }
82+
83+ /** @public */
84+ export class Translator < T extends { [ key : string ] : unknown } > extends BaseTranslator < T > {
85+ constructor ( options : TranslatorOptions < T > ) {
86+ super ( options ) ;
87+ }
88+
7089 @InitializedOnly
7190 changeLanguage ( language : Language ) {
7291 window . top ! . document . dispatchEvent ( new CustomEvent ( 'changeLanguage' , { detail : language } ) ) ;
@@ -97,23 +116,4 @@ export class Translator<T extends { [key: string]: unknown }> extends BaseTransl
97116
98117 languageAttributeObserver . observe ( window . frameElement , { attributes : true } ) ;
99118 }
100-
101- @InitializedOnly
102- t ( key : TranslationKey < T > ) {
103- const value = get ( this . translations , key ) as { [ key : string ] : string } | string | undefined ;
104- if ( typeof value === 'string' ) {
105- return value ;
106- }
107- return value ?. [ this . resolvedLanguage ] ?? value ?. [ this . fallbackLanguage ] ?? key ;
108- }
109-
110- @InitializedOnly
111- private extractLanguageProperty ( element : Element ) {
112- const lang = element . getAttribute ( 'lang' ) ;
113- if ( lang === 'en' || lang === 'fr' ) {
114- return lang ;
115- }
116- console . error ( `Unexpected value for 'lang' attribute: '${ lang } '` ) ;
117- return null ;
118- }
119119}
0 commit comments