@@ -43,18 +43,18 @@ class Internationalization<T extends string> {
4343 // If the DOM isn't accessible the website may be rendered on a server
4444 if ( canUseDOM ( ) ) {
4545 // Get browser language
46- let browserLanguage =
47- ( navigator . languages && navigator . languages [ 0 ] ) || navigator . language
46+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
47+ let browserLanguage = navigator . languages ?. [ 0 ] || navigator . language
4848
4949 // Check if the browser language is in the format of xx-XX, extract the first part
50- if ( / ^ [ a - z A - z ] { 2 } \ -/ . test ( browserLanguage ) ) {
50+ if ( / ^ [ a - z A - z ] { 2 } - / . test ( browserLanguage ) ) {
5151 browserLanguage = browserLanguage . substring ( 0 , 2 )
5252 }
5353
5454 return (
5555 this . supportedLanguages . find ( ( lang ) =>
5656 isEqualCaseInsensitive ( lang , browserLanguage ) ,
57- ) || this . fallbackLanguage
57+ ) ?? this . fallbackLanguage
5858 )
5959 }
6060
@@ -74,7 +74,7 @@ class Internationalization<T extends string> {
7474 const cookieLanguage =
7575 this . supportedLanguages . find ( ( lang ) =>
7676 isEqualCaseInsensitive ( lang , language ) ,
77- ) || this . fallbackLanguage
77+ ) ?? this . fallbackLanguage
7878
7979 setCookie ( this . cookieName , cookieLanguage )
8080 }
@@ -103,7 +103,7 @@ class Internationalization<T extends string> {
103103 // Get accept language from request header
104104 const acceptLanguage = request . headers [ 'accept-language' ]
105105
106- if ( acceptLanguage ) {
106+ if ( acceptLanguage && typeof acceptLanguage === 'string' ) {
107107 // Extract the locale string and the priority from header string
108108 const requestedLocales = acceptLanguage . split ( ',' ) . map ( ( part ) => {
109109 const [ locale , priority ] = part . trim ( ) . split ( ';q=' )
@@ -135,15 +135,15 @@ class Internationalization<T extends string> {
135135 const language = getCookieFromDocument ( this . cookieName )
136136
137137 // If cookie is undefined get the language form the browser
138- if ( language == undefined ) {
138+ if ( language === undefined ) {
139139 return this . detectBrowserLanguage ( )
140140 }
141141
142142 // Return found language or fallback language
143143 return (
144144 this . supportedLanguages . find ( ( lang ) =>
145145 isEqualCaseInsensitive ( lang , language ) ,
146- ) || this . fallbackLanguage
146+ ) ?? this . fallbackLanguage
147147 )
148148 }
149149
0 commit comments