mirror of
https://codeberg.org/wownero/wownero.org-website.git
synced 2026-10-17 05:41:28 +02:00
add language selector dropdown and fix translation system
Add LANG dropdown to desktop and mobile navbars with all available translations. Use localStorage to persist language choice across page loads. Fix undefined key errors in traduction.js. Handle English selection by clearing stored preference and reloading.
This commit is contained in:
+24
-2
@@ -23,7 +23,7 @@
|
|||||||
<script src="js/translations/traduction.js"></script>
|
<script src="js/translations/traduction.js"></script>
|
||||||
<meta http-equiv="onion-location" content="http://wownero2x67npb3ovmy6efclulrg4bg56jmq5kqaoqzvtxrybqqkchad.onion/" />
|
<meta http-equiv="onion-location" content="http://wownero2x67npb3ovmy6efclulrg4bg56jmq5kqaoqzvtxrybqqkchad.onion/" />
|
||||||
</head>
|
</head>
|
||||||
<body onload="translate(navigator.language)" style="overflow-x: hidden;">
|
<body onload="translate(localStorage.getItem('wowLang') || navigator.language)" style="overflow-x: hidden;">
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
AOS.init({
|
AOS.init({
|
||||||
@@ -50,7 +50,18 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="#wallets" class="myButton" id="walletss">WALLETS</a>
|
<a href="#wallets" class="myButton" id="walletss">WALLETS</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="myButton dropdown-toggle" href="#" id="langDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">LANG</a>
|
||||||
|
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="langDropdown">
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('en-US'); return false;">English</a>
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('fr-FR'); return false;">Français</a>
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('it-IT'); return false;">Italiano</a>
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('ru'); return false;">Русский</a>
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('pt-BR'); return false;">Português (BR)</a>
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('pt-PT'); return false;">Português (PT)</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -66,6 +77,17 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="#wallets" class="myButton-mobile-nav" id="walletss">WALLETS</a>
|
<a href="#wallets" class="myButton-mobile-nav" id="walletss">WALLETS</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="myButton-mobile-nav dropdown-toggle" href="#" id="langDropdownMobile" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">LANG</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="langDropdownMobile">
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('en-US'); return false;">English</a>
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('fr-FR'); return false;">Français</a>
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('it-IT'); return false;">Italiano</a>
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('ru'); return false;">Русский</a>
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('pt-BR'); return false;">Português (BR)</a>
|
||||||
|
<a class="dropdown-item" href="#" onclick="translate('pt-PT'); return false;">Português (PT)</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
async function translate(lang) {
|
async function translate(lang) {
|
||||||
if (lang == 'en-US') return;
|
if (lang == 'en-US' || lang == 'en') {
|
||||||
|
localStorage.removeItem('wowLang');
|
||||||
|
location.reload();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (lang == "it" || lang == "it-CH") lang = "it-IT";
|
if (lang == "it" || lang == "it-CH") lang = "it-IT";
|
||||||
if (lang == "pt") lang = "pt-BR";
|
if (lang == "pt") lang = "pt-BR";
|
||||||
|
localStorage.setItem('wowLang', lang);
|
||||||
var ids = [];
|
var ids = [];
|
||||||
ids = Array.from(document.querySelectorAll('[id]'));
|
ids = Array.from(document.querySelectorAll('[id]'));
|
||||||
var ids_arr = Array.prototype.map.call(ids, (element, i)=>{return element.id});
|
var ids_arr = Array.prototype.map.call(ids, (element, i)=>{return element.id});
|
||||||
@@ -12,5 +17,6 @@ async function translate(lang) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
async function getTranslation(data, keys) {
|
async function getTranslation(data, keys) {
|
||||||
|
if (data[keys] === undefined) return;
|
||||||
document.getElementById(keys).textContent = JSON.stringify(data[keys]).replace(/["]+/g, '');
|
document.getElementById(keys).textContent = JSON.stringify(data[keys]).replace(/["]+/g, '');
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user