mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-17 09:41:24 +01:00
feat(1.89.19): google translate support
This commit is contained in:
parent
e2af899792
commit
b13d72e639
4 changed files with 98 additions and 43 deletions
|
|
@ -157,6 +157,8 @@ optionsContent.addEventListener("click", function (event) {
|
|||
else if (id === "translateExtent") toggleTranslateExtent(event.target);
|
||||
else if (id === "speakerTest") testSpeaker();
|
||||
else if (id === "themeColorRestore") restoreDefaultThemeColor();
|
||||
else if (id === "loadGoogleTranslateButton") loadGoogleTranslate();
|
||||
else if (id === "resetLanguage") resetLanguage();
|
||||
});
|
||||
|
||||
function mapSizeInputChange() {
|
||||
|
|
@ -474,6 +476,44 @@ function changeDialogsTheme(themeColor, transparency) {
|
|||
});
|
||||
}
|
||||
|
||||
function loadGoogleTranslate() {
|
||||
const script = document.createElement("script");
|
||||
script.src = "https://translate.google.com/translate_a/element.js?cb=initGoogleTranslate";
|
||||
script.onload = () => {
|
||||
document.getElementById("loadGoogleTranslateButton")?.remove();
|
||||
|
||||
// replace mapLayers underline <u> with bare text to avoid translation issue
|
||||
document
|
||||
.getElementById("mapLayers")
|
||||
.querySelectorAll("li")
|
||||
.forEach(el => {
|
||||
const text = el.innerHTML.replace(/<u>(.+)<\/u>/g, "$1");
|
||||
el.innerHTML = text;
|
||||
});
|
||||
};
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
|
||||
function initGoogleTranslate() {
|
||||
new google.translate.TranslateElement(
|
||||
{pageLanguage: "en", layout: google.translate.TranslateElement.InlineLayout.VERTICAL},
|
||||
"google_translate_element"
|
||||
);
|
||||
}
|
||||
|
||||
function resetLanguage() {
|
||||
const languageSelect = document.querySelector("#google_translate_element select");
|
||||
if (!languageSelect.value) return;
|
||||
|
||||
languageSelect.value = "en";
|
||||
languageSelect.dispatchEvent(new Event("change"));
|
||||
|
||||
// do once again to actually reset the language
|
||||
languageSelect.value = "en";
|
||||
languageSelect.dispatchEvent(new Event("change"));
|
||||
}
|
||||
|
||||
function changeZoomExtent(value) {
|
||||
if (+zoomExtentMin.value > +zoomExtentMax.value) {
|
||||
[zoomExtentMin.value, zoomExtentMax.value] = [zoomExtentMax.value, zoomExtentMin.value];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue