blob: e8f34ed7d85665aa5ad85af25079d39689675b1c [file] [log] [blame]
(function addThemePicker() {
const rightButtonsElement = document.querySelector('.right-buttons');
rightButtonsElement.insertAdjacentHTML("afterbegin", `
<button id="language-toggle" class="icon-button" type="button"
title="Change language" aria-label="Change language"
aria-haspopup="true" aria-expanded="false"
aria-controls="language-list">
<i class="fa fa-globe"></i>
</button>
<ul id="language-list" class="theme-popup" aria-label="Languages" role="menu">
<li role="none"><button role="menuitem" class="theme">
<a id="en">English</a>
</button></li>
<li role="none"><button role="menuitem" class="theme">
<a id="ja">日本語</a>
</button></li>
<li role="none"><button role="menuitem" class="theme">
<a id="zh">中文</a>
</button></li>
<li role="none"><button role="menuitem" class="theme">
<a id="es">Español</a>
</button></li>
</ul>
`);
const language = document.documentElement.getAttribute("lang");
let langToggle = document.getElementById("language-toggle");
let langList = document.getElementById("language-list");
langToggle.addEventListener("click", (event) => {
langList.style.display =
langList.style.display == "block" ? "none" : "block";
});
let selectedLang = document.getElementById(language);
if (selectedLang) {
selectedLang.parentNode.classList.add("theme-selected");
}
// The path to the root, taking the current language into account.
let full_path_to_root =
language == "en" ? `${mdbookPathToRoot}` : `${mdbookPathToRoot}../`;
// The page path (mdbook only gives us access to the path to the Markdown file).
let path = mdbookPath.replace(/\.md$/, ".html");
for (let lang of langList.querySelectorAll("a")) {
if (lang.id == "en") {
lang.href = `${full_path_to_root}${path}`;
} else {
lang.href = `${full_path_to_root}${lang.id}/${path}`;
}
}
})();