PageSourceSearch

https://lacli.info/translation/navbar.js

js lacli.info collected 2026-10-02 16:39:59 UTC 6,388 bytes, 139 lines download raw bytes

1document.addEventListener('DOMContentLoaded', function () {
2  const languageNavbar = document.getElementById('language-navbar');
3  const navHome = document.getElementById('nav-home');
4  const navLibrary = document.getElementById('nav-library');
5  const navAbout = document.getElementById('nav-about');
6  const navContact = document.getElementById('nav-contact');
7  const navHelp = document.getElementById('nav-help');
8  const navContribute = document.getElementById('nav-contribute');
9
10  const footerHome = document.getElementById('footer-home');
11  const footerLibrary = document.getElementById('footer-library');
12  const footerAbout = document.getElementById('footer-about');
13  const footerContact = document.getElementById('footer-contact');
14  const footerHelp = document.getElementById('footer-help');
15  const footerContribute = document.getElementById('footer-contribute');
16  const footerContributeURL = document.getElementById('footer-contribute-url');
17  const footerOpenData = document.getElementById('footer-open-data');
18  const footerCCLicense1 = document.getElementById('cc-license-1');
19  const footerCCLicense2 = document.getElementById('cc-license-2');
20
21  const storedLanguage = localStorage.getItem('lacliLanguagePreference');
22
23  if (storedLanguage) {
24    updateLanguageSelection(storedLanguage);
25    updateContentLanguage(storedLanguage);
26  }
27
28  function updateLanguageSelection(language) {
29    const languageLinks = languageNavbar.getElementsByTagName('a');
30    const footerLanguage = document.getElementById('footer-language');
31    const footerLanguageLinks = footerLanguage.getElementsByTagName('a');
32
33    // Remove active class from navbar language links
34    for (let i = 0; i < languageLinks.length; i++) {
35      if (languageLinks[i].getAttribute('data-lang') === language) {
36        languageLinks[i].classList.add('lang-link-active');
37      } else {
38        languageLinks[i].classList.remove('lang-link-active');
39      }
40    }
41
42    // Add active class to footer language links
43    for (let i = 0; i < footerLanguageLinks.length; i++) {
44      if (footerLanguageLinks[i].getAttribute('data-lang') === language) {
45        footerLanguageLinks[i].classList.add('lang-link-active');
46      } else {
47        footerLanguageLinks[i].classList.remove('lang-link-active');
48      }
49    }
50  }
51  
52    function updateContentLanguage(language) {
53      const translations = {
54        en: {
55          home: 'Impact',
56          library: 'Library',
57          about: 'About',
58          contact: 'Contact',
59          help: 'Help',
60          contribute: 'Contribute',
61          navContributeURL: 'https://forms.gle/XC7UqyLMGShZVXb5A',
62          footerContributeURL: 'https://forms.gle/XC7UqyLMGShZVXb5A',
63          openData: 'Open Data',
64          ccLicense1: 'This work is licensed under a',
65          ccLicense2: 'Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License',
66          ccLicenseURL: 'https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en',
67        },
68        es: {
69          home: 'Impacto',
70          library: 'Biblioteca',
71          about: 'Acerca de',
72          contact: 'Contacto',
73          help: 'Ayuda',
74          contribute: 'Contribuya',
75          navContributeURL: 'https://forms.gle/XC7UqyLMGShZVXb5A',
76          footerContributeURL: 'https://forms.gle/XC7UqyLMGShZVXb5A',
77          openData: 'Datos abiertos',
78          ccLicense1: 'Esta obra está bajo una',
79          ccLicense2: 'Licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional',
80          ccLicenseURL: 'https://creativecommons.org/licenses/by-nc-sa/4.0/deed.es',
81        },
82        pt: {
83          home: 'Relevância',
84          library: 'Biblioteca',
85          about: 'Sobre',
86          contact: 'Contacto',
87          help: 'Ajuda',
88          contribute: 'Contribua',
89          navContributeURL: 'https://forms.gle/XC7UqyLMGShZVXb5A',
90          footerContributeURL: 'https://forms.gle/XC7UqyLMGShZVXb5A',
91          openData: 'Dados abertos',
92          ccLicense1: 'Este trabalho está sob um',
93          ccLicense2: 'Licencia Creative Commons Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional',
94          ccLicenseURL: 'https://creativecommons.org/licenses/by-nc-sa/4.0/deed.pt_BR',
95        },
96      };
97
98      navHome.textContent = translations[language].home;
99      navLibrary.textContent = translations[language].library;
100      navAbout.textContent = translations[language].about;
101      navContact.textContent = translations[language].contact;
102      navHelp.textContent = translations[language].help;
103      navContribute.textContent = translations[language].contribute;
104      navContribute.setAttribute('href', translations[language].navContributeURL);
105
106      footerHome.textContent = translations[language].home;
107      footerLibrary.textContent = translations[language].library;
108      footerAbout.textContent = translations[language].about;
109      footerContact.textContent = translations[language].contact;
110      footerHelp.textContent = translations[language].help;
111      footerContribute.textContent = translations[language].contribute;
112      footerContributeURL.setAttribute('href', translations[language].footerContributeURL);
113      footerOpenData.textContent = translations[language].openData;
114      footerCCLicense1.textContent = translations[language].ccLicense1;
115      footerCCLicense2.textContent = translations[language].ccLicense2;
116      footerCCLicense2.setAttribute('href', translations[language].ccLicenseURL);
117    }
118  
119    languageNavbar.addEventListener('click', function (event) {
120      event.preventDefault();
121      const selectedLanguage = event.target.getAttribute('data-lang');
122      localStorage.setItem('lacliLanguagePreference', selectedLanguage);
123      updateLanguageSelection(selectedLanguage);
124      updateContentLanguage(selectedLanguage);
125    });
126  
127    // Add event listener to footer language list
128    const footerLanguage = document.getElementById('footer-language');
129    footerLanguage.addEventListener('click', function (event) {
130      event.preventDefault();
131      const selectedLanguage = event.target.getAttribute('data-lang');
132      if (selectedLanguage) { // Check if a language is selected
133        localStorage.setItem('lacliLanguagePreference', selectedLanguage);
134        updateLanguageSelection(selectedLanguage);
135        updateContentLanguage(selectedLanguage);
136      }
137    });
138    
139});

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.