File tree Expand file tree Collapse file tree 1 file changed +67
-0
lines changed
branding/supplemental-ui/mlm/susecom-2025/js Expand file tree Collapse file tree 1 file changed +67
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Find all alternate hreflang link elements
2
+ const hreflangLinks = document . querySelectorAll ( 'link[rel="alternate"]' ) ;
3
+
4
+ const hreflangToLangMapping = {
5
+ "en-us" : "en" ,
6
+ "de-de" : "de" ,
7
+ "fr-fr" : "fr" ,
8
+ "es-es" : "es" ,
9
+ "ja-jp" : "ja" ,
10
+ "pt-br" : "pt_BR" ,
11
+ "zh-cn" : "zh_CN" ,
12
+ "ko-kr" : "ko_KR" ,
13
+ } ;
14
+
15
+ // Create an object to hold the languages
16
+ const languages = { } ;
17
+
18
+ hreflangLinks . forEach ( ( link ) => {
19
+ const hreflang = link . getAttribute ( "hreflang" ) ;
20
+ const href = link . getAttribute ( "href" ) ;
21
+
22
+ if ( hreflang && hreflang !== "x-default" ) {
23
+ let label ;
24
+ switch ( hreflang . toLowerCase ( ) ) {
25
+ case "en-us" :
26
+ label = "English" ;
27
+ break ;
28
+ case "de-de" :
29
+ label = "Deutsch" ;
30
+ break ;
31
+ case "fr-fr" :
32
+ label = "Français" ;
33
+ break ;
34
+ case "es-es" :
35
+ label = "Español" ;
36
+ break ;
37
+ case "zh-cn" :
38
+ label = "中文" ;
39
+ break ;
40
+ case "ja-jp" :
41
+ label = "日本語" ;
42
+ break ;
43
+ case "ko-kr" :
44
+ label = "한국어" ;
45
+ break ;
46
+ case "pt-br" :
47
+ label = "Português Brasileiro" ;
48
+ break ;
49
+ }
50
+
51
+ let lang = hreflangToLangMapping [ hreflang . toLowerCase ( ) ] ;
52
+ languages [ lang ] = {
53
+ label : label ,
54
+ url : href ,
55
+ } ;
56
+ }
57
+ } ) ;
58
+
59
+ // Get the current language
60
+ const currentLang = document . documentElement . lang || "en" ;
61
+
62
+ // Update the <shared-header> element
63
+ const sharedHeader = document . querySelector ( "shared-header" ) ;
64
+ if ( sharedHeader ) {
65
+ sharedHeader . setAttribute ( "language" , currentLang ) ;
66
+ sharedHeader . setAttribute ( "languages" , JSON . stringify ( languages ) ) ;
67
+ }
You can’t perform that action at this time.
0 commit comments