mirror of
https://github.com/Alvin-Zilverstand/Schoolkantine.git
synced 2026-03-06 13:26:27 +01:00
Add language switcher and translations for menu items
This commit is contained in:
@@ -18,15 +18,15 @@
|
||||
|
||||
<!-- Top bar menu -->
|
||||
<div class="menu-bar">
|
||||
<div class="menu-item" onclick="showCategory('Broodjes')">Broodjes</div>
|
||||
<div class="menu-item" onclick="showCategory('Koude-Dranken')">Koude Dranken</div>
|
||||
<div class="menu-item" onclick="showCategory('Warme-Dranken')">Warme Dranken</div>
|
||||
<div class="menu-item" onclick="showCategory('Snacks')">Snacks</div>
|
||||
<div class="menu-item" onclick="showCategory('deserts')">Ijsjes</div>
|
||||
<div class="menu-item" onclick="showCategory('Deals')">Deals</div>
|
||||
<div class="menu-item" onclick="showCategory('Soepen')">Soepen</div>
|
||||
<div class="menu-item" onclick="showCategory('Salades')">Salades</div>
|
||||
<div class="menu-item" onclick="showCategory('Sausjes')">Sausjes</div>
|
||||
<div class="menu-item" onclick="showCategory('Broodjes')" data-translate="Broodjes">Broodjes</div>
|
||||
<div class="menu-item" onclick="showCategory('Koude-Dranken')" data-translate="Koude Dranken">Koude Dranken</div>
|
||||
<div class="menu-item" onclick="showCategory('Warme-Dranken')" data-translate="Warme Dranken">Warme Dranken</div>
|
||||
<div class="menu-item" onclick="showCategory('Snacks')" data-translate="Snacks">Snacks</div>
|
||||
<div class="menu-item" onclick="showCategory('deserts')" data-translate="deserts">Ijsjes</div>
|
||||
<div class="menu-item" onclick="showCategory('Deals')" data-translate="Deals">Deals</div>
|
||||
<div class="menu-item" onclick="showCategory('Soepen')" data-translate="Soepen">Soepen</div>
|
||||
<div class="menu-item" onclick="showCategory('Salades')" data-translate="Salades">Salades</div>
|
||||
<div class="menu-item" onclick="showCategory('Sausjes')" data-translate="Sausjes">Sausjes</div>
|
||||
</div>
|
||||
|
||||
<!-- Productweergave -->
|
||||
@@ -38,23 +38,23 @@
|
||||
<div id="modal" class="modal">
|
||||
<div class="modal-content">
|
||||
<span class="close" onclick="closeModal()">×</span>
|
||||
<h2 id="modal-title"></h2>
|
||||
<h2 id="modal-title" data-translate="Prijs"></h2>
|
||||
<img id="modal-image" src="" alt="">
|
||||
<p id="modal-description"></p>
|
||||
<p id="modal-price"></p>
|
||||
<button id="add-to-cart">Toevoegen aan winkelmandje</button>
|
||||
<p id="modal-price" data-translate="Prijs"></p>
|
||||
<button id="add-to-cart" data-translate="Toevoegen aan winkelmandje">Toevoegen aan winkelmandje</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Winkelmandje sectie -->
|
||||
<div id="cart" class="cart">
|
||||
<h2>Winkelmandje</h2>
|
||||
<h2 data-translate="Winkelmandje">Winkelmandje</h2>
|
||||
<ul id="cart-items">
|
||||
<!-- Winkelmandje items worden hier dynamisch toegevoegd -->
|
||||
</ul>
|
||||
<p>Totaal: €<span id="total-price">0.00</span></p>
|
||||
<a href="betalen.html">
|
||||
<button id="order-button">Bestellen</button>
|
||||
<button id="order-button" data-translate="Bestellen">Bestellen</button>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -64,6 +64,8 @@
|
||||
<span id="cart-count" class="cart-count">0</span> <!-- Aantal producten -->
|
||||
</div>
|
||||
|
||||
<!-- Language switcher -->
|
||||
<div id="language-switcher" class="language-switcher">EN</div>
|
||||
|
||||
<script src="script.js"></script>
|
||||
</body>
|
||||
|
||||
@@ -257,3 +257,56 @@ window.onclick = function(event) {
|
||||
|
||||
// Initial call to updateCart to ensure the button is hidden on page load
|
||||
updateCart();
|
||||
|
||||
const translations = {
|
||||
en: {
|
||||
"Broodjes": "Sandwiches",
|
||||
"Koude Dranken": "Cold Drinks",
|
||||
"Warme Dranken": "Hot Drinks",
|
||||
"Snacks": "Snacks",
|
||||
"deserts": "Desserts",
|
||||
"Deals": "Deals",
|
||||
"Soepen": "Soups",
|
||||
"Salades": "Salads",
|
||||
"Sausjes": "Sauces",
|
||||
"Winkelmandje": "Shopping Cart",
|
||||
"Bestellen": "Order",
|
||||
"Prijs": "Price",
|
||||
"Toevoegen aan winkelmandje": "Add to Cart",
|
||||
"Soep van de dag! (Allergieën? Meld het bij ons!)": "Soup of the day! (Allergies? Let us know!)",
|
||||
// Add more translations as needed
|
||||
},
|
||||
nl: {
|
||||
"Sandwiches": "Broodjes",
|
||||
"Cold Drinks": "Koude Dranken",
|
||||
"Hot Drinks": "Warme Dranken",
|
||||
"Snacks": "Snacks",
|
||||
"Desserts": "deserts",
|
||||
"Deals": "Deals",
|
||||
"Soups": "Soepen",
|
||||
"Salads": "Salades",
|
||||
"Sauces": "Sausjes",
|
||||
"Shopping Cart": "Winkelmandje",
|
||||
"Order": "Bestellen",
|
||||
"Price": "Prijs",
|
||||
"Add to Cart": "Toevoegen aan winkelmandje",
|
||||
"Soup of the day! (Allergies? Let us know!)": "Soep van de dag! (Allergieën? Meld het bij ons!)",
|
||||
// Add more translations as needed
|
||||
}
|
||||
};
|
||||
|
||||
function switchLanguage(lang) {
|
||||
document.querySelectorAll("[data-translate]").forEach(element => {
|
||||
const key = element.getAttribute("data-translate");
|
||||
element.textContent = translations[lang][key] || key;
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
document.getElementById("language-switcher").addEventListener("click", () => {
|
||||
const currentLang = document.documentElement.lang;
|
||||
const newLang = currentLang === "nl" ? "en" : "nl";
|
||||
document.documentElement.lang = newLang;
|
||||
switchLanguage(newLang);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -150,7 +150,7 @@ body {
|
||||
display: none; /* Initially hide the cart icon */
|
||||
position: fixed;
|
||||
top: 80px; /* Move the cart icon down */
|
||||
right: 20px;
|
||||
right: 60px; /* Adjust right position to make space for language switcher */
|
||||
background-color: #ff6600;
|
||||
color: white;
|
||||
padding: 10px 15px;
|
||||
@@ -312,4 +312,22 @@ body {
|
||||
.logo.hidden {
|
||||
opacity: 0; /* Hide the logo */
|
||||
visibility: hidden; /* Ensure the logo is not clickable */
|
||||
}
|
||||
|
||||
.language-switcher {
|
||||
position: fixed;
|
||||
bottom: 20px; /* Position at the bottom */
|
||||
left: 20px; /* Position at the left */
|
||||
background-color: #ff8c00;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border-radius: 25px;
|
||||
cursor: pointer;
|
||||
font-size: 1em;
|
||||
transition: all 0.3s ease;
|
||||
z-index: 1100; /* Ensure it is above other elements */
|
||||
}
|
||||
|
||||
.language-switcher:hover {
|
||||
background-color: #e65c00;
|
||||
}
|
||||
Reference in New Issue
Block a user