mirror of
https://github.com/Alvin-Zilverstand/Schoolkantine.git
synced 2026-03-07 05:53:00 +01:00
Add language switcher and translations for menu items
This commit is contained in:
@@ -18,15 +18,15 @@
|
|||||||
|
|
||||||
<!-- Top bar menu -->
|
<!-- Top bar menu -->
|
||||||
<div class="menu-bar">
|
<div class="menu-bar">
|
||||||
<div class="menu-item" onclick="showCategory('Broodjes')">Broodjes</div>
|
<div class="menu-item" onclick="showCategory('Broodjes')" data-translate="Broodjes">Broodjes</div>
|
||||||
<div class="menu-item" onclick="showCategory('Koude-Dranken')">Koude Dranken</div>
|
<div class="menu-item" onclick="showCategory('Koude-Dranken')" data-translate="Koude Dranken">Koude Dranken</div>
|
||||||
<div class="menu-item" onclick="showCategory('Warme-Dranken')">Warme Dranken</div>
|
<div class="menu-item" onclick="showCategory('Warme-Dranken')" data-translate="Warme Dranken">Warme Dranken</div>
|
||||||
<div class="menu-item" onclick="showCategory('Snacks')">Snacks</div>
|
<div class="menu-item" onclick="showCategory('Snacks')" data-translate="Snacks">Snacks</div>
|
||||||
<div class="menu-item" onclick="showCategory('deserts')">Ijsjes</div>
|
<div class="menu-item" onclick="showCategory('deserts')" data-translate="deserts">Ijsjes</div>
|
||||||
<div class="menu-item" onclick="showCategory('Deals')">Deals</div>
|
<div class="menu-item" onclick="showCategory('Deals')" data-translate="Deals">Deals</div>
|
||||||
<div class="menu-item" onclick="showCategory('Soepen')">Soepen</div>
|
<div class="menu-item" onclick="showCategory('Soepen')" data-translate="Soepen">Soepen</div>
|
||||||
<div class="menu-item" onclick="showCategory('Salades')">Salades</div>
|
<div class="menu-item" onclick="showCategory('Salades')" data-translate="Salades">Salades</div>
|
||||||
<div class="menu-item" onclick="showCategory('Sausjes')">Sausjes</div>
|
<div class="menu-item" onclick="showCategory('Sausjes')" data-translate="Sausjes">Sausjes</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Productweergave -->
|
<!-- Productweergave -->
|
||||||
@@ -38,23 +38,23 @@
|
|||||||
<div id="modal" class="modal">
|
<div id="modal" class="modal">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<span class="close" onclick="closeModal()">×</span>
|
<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="">
|
<img id="modal-image" src="" alt="">
|
||||||
<p id="modal-description"></p>
|
<p id="modal-description"></p>
|
||||||
<p id="modal-price"></p>
|
<p id="modal-price" data-translate="Prijs"></p>
|
||||||
<button id="add-to-cart">Toevoegen aan winkelmandje</button>
|
<button id="add-to-cart" data-translate="Toevoegen aan winkelmandje">Toevoegen aan winkelmandje</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Winkelmandje sectie -->
|
<!-- Winkelmandje sectie -->
|
||||||
<div id="cart" class="cart">
|
<div id="cart" class="cart">
|
||||||
<h2>Winkelmandje</h2>
|
<h2 data-translate="Winkelmandje">Winkelmandje</h2>
|
||||||
<ul id="cart-items">
|
<ul id="cart-items">
|
||||||
<!-- Winkelmandje items worden hier dynamisch toegevoegd -->
|
<!-- Winkelmandje items worden hier dynamisch toegevoegd -->
|
||||||
</ul>
|
</ul>
|
||||||
<p>Totaal: €<span id="total-price">0.00</span></p>
|
<p>Totaal: €<span id="total-price">0.00</span></p>
|
||||||
<a href="betalen.html">
|
<a href="betalen.html">
|
||||||
<button id="order-button">Bestellen</button>
|
<button id="order-button" data-translate="Bestellen">Bestellen</button>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -64,6 +64,8 @@
|
|||||||
<span id="cart-count" class="cart-count">0</span> <!-- Aantal producten -->
|
<span id="cart-count" class="cart-count">0</span> <!-- Aantal producten -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Language switcher -->
|
||||||
|
<div id="language-switcher" class="language-switcher">EN</div>
|
||||||
|
|
||||||
<script src="script.js"></script>
|
<script src="script.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -257,3 +257,56 @@ window.onclick = function(event) {
|
|||||||
|
|
||||||
// Initial call to updateCart to ensure the button is hidden on page load
|
// Initial call to updateCart to ensure the button is hidden on page load
|
||||||
updateCart();
|
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 */
|
display: none; /* Initially hide the cart icon */
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 80px; /* Move the cart icon down */
|
top: 80px; /* Move the cart icon down */
|
||||||
right: 20px;
|
right: 60px; /* Adjust right position to make space for language switcher */
|
||||||
background-color: #ff6600;
|
background-color: #ff6600;
|
||||||
color: white;
|
color: white;
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
@@ -313,3 +313,21 @@ body {
|
|||||||
opacity: 0; /* Hide the logo */
|
opacity: 0; /* Hide the logo */
|
||||||
visibility: hidden; /* Ensure the logo is not clickable */
|
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