PageSourceSearch

https://conegliano2000.it/js/lang.js?cache=30

js conegliano2000.it collected 2026-10-06 21:52:40 UTC 4,491 bytes, 115 lines download raw bytes

1let currentLanguage = 'en';
2let currentLanguageText = 'English';
3let bestExp = null;
4
5window.addEventListener("DOMContentLoaded", async (event) => { 
6    
7    document.querySelector(".languages .ddl").addEventListener('click', (event) => {
8        if (document.querySelector('.ddl-items').classList.contains('expanded')) {
9            document.querySelector('.ddl-items').classList.remove('expanded');
10            document.querySelector('.ddl .chevron').classList.remove('up');
11            document.querySelector('.ddl .chevron').classList.add('down');
12        } else {
13            document.querySelector('.ddl-items').classList.add('expanded');
14            document.querySelector('.ddl .chevron').classList.remove('down');
15            document.querySelector('.ddl .chevron').classList.add('up')
16        }
17    });
18
19    currentLanguage = getCookie('lang') ? getCookie('lang') : getParameterByName('lang');
20
21    if (!currentLanguage) { currentLanguage = 'en'; }
22
23    getLanguage(currentLanguage, true);
24});
25
26function getLanguage(lang, retry) {
27    let pathPrefix = '';
28    if (window.location.pathname.startsWith('/beta')) {
29        pathPrefix = '/beta';
30    }
31    const jsonFilePath = `${pathPrefix}/languages/website.${lang}.json`;
32
33    // Fetch the JSON file
34    fetch(jsonFilePath)
35        .then(response => {
36            if (!response.ok) {
37                throw new Error('Network response was not ok ' + response.statusText);
38            }
39            return response.json();
40        })
41        .then(translations => {
42
43            document.getElementById('langCode').innerText = lang;
44            document.getElementById('langText').innerText = translations[lang];
45
46            let languageKeys = [];
47            for (var key in translations) {
48                if (translations.hasOwnProperty(key) && key.length == 2) {
49                    console.log(key + " -> " + translations[key]);
50                    languageKeys.push({key: key, value: translations[key]});
51                }
52            }
53
54            bestExp = translations["bestExp"];
55
56            document.querySelectorAll('[translation-key]').forEach((element) => {
57                let key = element.getAttribute('translation-key');
58              
59                if (translations[key]) {
60                    let value = translations[key].replace(/\\n/g, '<br/>').replace(/\{\{appName\}\}/g, 'Car Cast');
61                    document.querySelectorAll('[translation-key="' + key + '"').forEach((elem) => { elem.innerText = value; })
62                }
63
64            });
65
66            // process languages
67            languageKeys.sort(function(a, b) {
68                var textA = a.value.toUpperCase();
69                var textB = b.value.toUpperCase();
70                return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
71            });
72
73            console.log(languageKeys)
74            //sort
75            let html = '';
76            languageKeys.forEach((lang) => {
77                let item = `
78                    <div class="item" lang="${lang.key}"> 
79                        <small>${lang.key}</small> <span>${lang.value}</span>
80                    </div>`;
81                html += item;
82            });
83
84            document.querySelector('.ddl-items').innerHTML = html;
85            
86   
87
88            document.querySelector('.ddl-items').addEventListener('click', function(event) {
89                if (event.target.closest('.item')) {
90                    let clickedItem = event.target.closest('.item');
91                    let newLang = clickedItem.getAttribute('lang');
92                    console.log(newLang)
93                    setCookie('lang', newLang, 365);
94                    currentLanguage = newLang;
95                    currentLanguageText = translations[newLang];
96                    document.getElementById('langCode').innerText = newLang;
97                    document.getElementById('langText').innerText = currentLanguageText;
98
99                    // hide dropdown
100                    document.querySelector('.ddl-items').classList.remove('expanded');
101                    document.querySelector('.ddl .chevron').classList.remove('up');
102                    document.querySelector('.ddl .chevron').classList.add('down');
103
104                    getLanguage(newLang, true);
105                }
106            });
107
108        })
109        .catch(error => {
110            console.error('There was a problem with the fetch operation:', error);
111
112            if (retry)
113                getLanguage('en', false);
114        });
115}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.