This repository was archived by the owner on Feb 6, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
studio/src/app/services/lang Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -22,9 +22,46 @@ export class LangService {
2222
2323 if ( lang ) {
2424 i18n . state . lang = lang ;
25+ return ;
2526 }
27+
28+ this . initDefaultLang ( ) ;
2629 } catch ( err ) {
2730 console . warn ( `Couldn't find lang. Proceeding with default` ) ;
2831 }
2932 }
33+
34+ private initDefaultLang ( ) {
35+ const browserLang : string | undefined = this . getBrowserLang ( ) ;
36+ i18n . state . lang = / ( e s | e n ) / gi. test ( browserLang ) ? ( browserLang as 'en' | 'es' ) : 'en' ;
37+ }
38+
39+ /**
40+ * From ngx-translate
41+ * https://github.com/ngx-translate/core/blob/efcb4f43a645d9ac630aae8e50b60cc883e675fd/projects/ngx-translate/core/src/lib/translate.service.ts
42+ * @private
43+ */
44+ private getBrowserLang ( ) : string | undefined {
45+ if ( typeof window === 'undefined' || typeof window . navigator === 'undefined' ) {
46+ return undefined ;
47+ }
48+
49+ let browserLang : string | null = window . navigator . languages ? window . navigator . languages [ 0 ] : null ;
50+ // @ts -ignore
51+ browserLang = browserLang || window . navigator . language || window . navigator . browserLanguage || window . navigator . userLanguage ;
52+
53+ if ( typeof browserLang === 'undefined' ) {
54+ return undefined ;
55+ }
56+
57+ if ( browserLang . indexOf ( '-' ) !== - 1 ) {
58+ browserLang = browserLang . split ( '-' ) [ 0 ] ;
59+ }
60+
61+ if ( browserLang . indexOf ( '_' ) !== - 1 ) {
62+ browserLang = browserLang . split ( '_' ) [ 0 ] ;
63+ }
64+
65+ return browserLang ;
66+ }
3067}
You can’t perform that action at this time.
0 commit comments