diff --git a/.dontDeploy/playwright/admin-wk-check.js b/.dontDeploy/playwright/admin-wk-check.js new file mode 100644 index 0000000..7144375 --- /dev/null +++ b/.dontDeploy/playwright/admin-wk-check.js @@ -0,0 +1,34 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const b = await chromium.launch(); const p = await b.newPage(); + const errs=[]; p.on('pageerror',e=>errs.push(e.message)); p.on('console',m=>{if(m.type()==='error')errs.push(m.text());}); + await p.route('**/api/admin', r => r.fulfill({ contentType:'application/json', body: JSON.stringify({authenticated:true}) })); + await p.goto('http://localhost/geograsim/App/admin-weltkueche.html'); + await p.waitForTimeout(2000); + const r = await p.evaluate(() => { + const dishes = [...document.querySelectorAll('.dish')]; + const names = dishes.map(d => d.querySelector('.nm')?.textContent); + function dishInfo(namePart){ + const d = dishes.find(x => (x.querySelector('.nm')?.textContent||'').toLowerCase().includes(namePart)); + if(!d) return null; + const rows = [...d.querySelectorAll('tbody tr')].map(tr => ({ + ing: tr.querySelector('.ing-nm')?.textContent.replace(/\s+/g,' ').trim(), + ok: [...tr.querySelectorAll('.cty.ok')].map(c=>c.textContent.replace(/\s+/g,' ').trim()), + dist: [...tr.querySelectorAll('.cty.dist')].map(c=>c.title.split(' · ')[0]), + })); + return rows; + } + const groestl = dishInfo('tiroler gröstl'); + const kart = groestl && groestl.find(r => /Kartoffel/i.test(r.ing)); + const eierRow = groestl && groestl.find(r => /Eier/i.test(r.ing)); + return { + dishCount: dishes.length, + sampleNames: names.slice(0,6), + kartoffelOk: kart ? kart.ok : null, + eierOk: eierRow ? eierRow.ok : null, + warnCount: document.querySelectorAll('.warn').length, + }; + }); + console.log(JSON.stringify({result:r, pageErrors:errs}, null, 2)); + await b.close(); +})(); diff --git a/.dontDeploy/playwright/fetch-teacher.js b/.dontDeploy/playwright/fetch-teacher.js new file mode 100644 index 0000000..8fd23e1 --- /dev/null +++ b/.dontDeploy/playwright/fetch-teacher.js @@ -0,0 +1,19 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + const r = await page.request.get('https://geograsim.at/teacher.html'); + const html = await r.text(); + console.log('STATUS', r.status(), 'LEN', html.length); + console.log('has renderLiveGesamt:', html.includes('renderLiveGesamt')); + console.log('has _liveQualityBar:', html.includes('_liveQualityBar')); + console.log('has tab-bar:', html.includes('tab-bar')); + console.log('has Ergebnisse:', html.includes('Ergebnisse')); + console.log('has external script src (module?):', /]+src=/i.test(html)); + // show script tags + const scripts = [...html.matchAll(/]*>/gi)].map(m=>m[0]); + console.log('SCRIPT TAGS:', JSON.stringify(scripts, null, 2)); + // show first 600 chars to see redirect logic + console.log('HEAD:', html.slice(0, 1200)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/fetch-teacher2.js b/.dontDeploy/playwright/fetch-teacher2.js new file mode 100644 index 0000000..d6b61d0 --- /dev/null +++ b/.dontDeploy/playwright/fetch-teacher2.js @@ -0,0 +1,22 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + const r = await page.request.get('https://geograsim.at/teacher.html'); + const html = await r.text(); + + const idxLogin = html.indexOf('login.html'); + console.log('--- context around first login.html reference ---'); + console.log(html.slice(idxLogin - 400, idxLogin + 120)); + + for (const name of ['renderLiveGesamt', '_liveQualityBar']) { + const idx = html.indexOf('function ' + name); + console.log('\n--- "function ' + name + '" @' + idx + ' ---'); + if (idx >= 0) console.log(html.slice(idx - 60, idx + 120)); + } + + const idxErg = html.indexOf('Ergebnisse'); + console.log('\n--- context around Ergebnisse ---'); + console.log(html.slice(idxErg - 220, idxErg + 80)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/fetch-teacher3.js b/.dontDeploy/playwright/fetch-teacher3.js new file mode 100644 index 0000000..ec0fd4b --- /dev/null +++ b/.dontDeploy/playwright/fetch-teacher3.js @@ -0,0 +1,29 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + const r = await page.request.get('https://geograsim.at/teacher.html'); + const html = await r.text(); + + // 1) Static tab-bar markup + const tb = html.indexOf('id="tab-bar"'); + console.log('--- #tab-bar markup ---'); + console.log(tb >= 0 ? html.slice(tb - 40, tb + 700) : 'tab-bar id NOT found'); + + // 2) Extract _liveQualityBar function body and run it in isolation + const start = html.indexOf('function _liveQualityBar'); + // find matching braces + let i = html.indexOf('{', start), depth = 0, end = -1; + for (; i < html.length; i++) { + if (html[i] === '{') depth++; + else if (html[i] === '}') { depth--; if (depth === 0) { end = i + 1; break; } } + } + const fnSrc = html.slice(start, end); + const fn = new Function(fnSrc + '\nreturn _liveQualityBar;')(); + const sample = fn(8, 2); + console.log('\n--- _liveQualityBar(8,2) OUTPUT ---'); + console.log(sample); + console.log('\ncontains "80":', String(sample).includes('80')); + + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/gen-display-preview.js b/.dontDeploy/playwright/gen-display-preview.js new file mode 100644 index 0000000..8a51a7b --- /dev/null +++ b/.dontDeploy/playwright/gen-display-preview.js @@ -0,0 +1,294 @@ +/** + * gen-display-preview.js + * ---------------------- + * Lokales Admin-Werkzeug: erstellt Bildschirmfotos aller Simulationen + * (Onboarding/Start + Spielverlauf) in zwei Auflösungen (iPad + Full HD) + * und generiert daraus eine statische Galerie-Seite. + * + * Ausgabe: App/.LocalDeveloperTools/display-preview/ + * shots/____.png + * display_preview.html + * + * Start: node gen-display-preview.js + */ +const { chromium } = require('@playwright/test'); +const fs = require('fs'); +const path = require('path'); + +// --- Pfade --------------------------------------------------------------- +const APP_DIR = 'C:/xampp/htdocs/geograsim/App'; +const SIMS_DIR = path.join(APP_DIR, 'sims'); +const OUT_DIR = path.join(APP_DIR, '.LocalDeveloperTools', 'display-preview'); +const SHOTS_DIR = path.join(OUT_DIR, 'shots'); +const BASE_URL = 'http://localhost/geograsim/App/sims'; + +// --- Viewports ----------------------------------------------------------- +const VIEWPORTS = [ + { key: 'ipad', label: 'iPad', w: 1180, h: 820 }, + { key: 'fullhd', label: 'Full HD', w: 1920, h: 1080 }, +]; + +// --- Freundliche Namen --------------------------------------------------- +const NAMES = { + weltkueche: '🍲 Welt-Küche', + fluss: '🌊 Flussmanagement', + heli: '🚁 Helikopter-Navigation', + energiemanager: '⚡ Energiemanager', + 'eu-werkstatt': '🇪🇺 EU-Werkstatt', + farmer: '🌾 Farmer', + busfahrt: '🚌 Busfahrt', + sonnensystem: '🪐 Sonnensystem', + tourismustal: '🏔️ Tourismustal', + tourismusregion: '🗺️ Tourismusregion', + logistik: '🚚 Logistik', + fluggesellschaft:'✈️ Fluggesellschaft', + staustufen: '💧 Staustufen', + entscheidungstag:'📅 Entscheidungstag', + vulkan: '🌋 Vulkan', + wal: '🐋 Wal', + kofferdetektiv: '🧳 Kofferdetektiv', + stadt: '🏙️ Stadt', +}; + +// --- Sims finden --------------------------------------------------------- +function findSims() { + return fs.readdirSync(SIMS_DIR, { withFileTypes: true }) + .filter(d => d.isDirectory() && fs.existsSync(path.join(SIMS_DIR, d.name, 'game.html'))) + .map(d => d.name) + .sort(); +} + +// --- In-Page: sichtbaren Start-/Weiter-Button klicken -------------------- +async function clickStartLike(page) { + return await page.evaluate(() => { + const isVisible = (el) => { + if (!el) return false; + const r = el.getBoundingClientRect(); + if (r.width < 4 || r.height < 4) return false; + if (r.bottom < 0 || r.right < 0) return false; + const st = getComputedStyle(el); + return st.visibility !== 'hidden' && st.display !== 'none' && st.opacity !== '0' + && !el.disabled && !el.classList.contains('hidden'); + }; + // 1) Prioritäts-Selektoren (bekannte Start-/Primary-Buttons der Plattform) + const prio = [ + '.ggs-qi-btn-primary', '[data-action="start"]', + '#btnStart', '#obs-start', '#phase-start', + '.sn-btn-primary', '.ggs-btn-primary', + '.era-card-cta', '.scene-btn', + '.map-btn', '.btn.primary', '.primary', '.next', + ]; + for (const sel of prio) { + const el = [...document.querySelectorAll(sel)].find(isVisible); + if (el) { el.click(); return sel + ' :: ' + (el.textContent || '').trim().slice(0, 24); } + } + // 2) Text-basiert — führende Emojis/Pfeile/Ziffern strippen, dann Anfang prüfen + const clean = (s) => (s || '').replace(/^[^\p{L}]+/u, '').trim(); + const rx = /^(los geht|los!|los →|los\b|start|starten|jetzt starten|neue partie|partie starten|spielen|spiel starten|beginnen|anfangen|einsteigen|erntejahr starten|routenplanung starten|in dieser welt starten|szene|weiter|verstanden|fertig|karte wählen|auswählen)/i; + const cands = [...document.querySelectorAll('button, a.btn, a[role=button], .btn, [role=button], [onclick]')]; + const el = cands.find(e => { + if (!isVisible(e)) return false; + const t = clean(e.textContent); + return t.length > 0 && t.length < 44 && rx.test(t); + }); + if (el) { el.click(); return 'text :: ' + (el.textContent || '').trim().slice(0, 24); } + return null; + }).catch(() => null); +} + +// --- Ein Screenshot ------------------------------------------------------ +async function shoot(page, file) { + try { + await page.screenshot({ path: file }); // Viewport-Ausschnitt (exakte Auflösung) + return true; + } catch (e) { + console.log(' ! Screenshot-Fehler:', e.message.slice(0, 80)); + return false; + } +} + +(async () => { + const sims = findSims(); + // Optional: nur bestimmte Sims neu schießen (HTML wird immer komplett neu erzeugt). + const onlyArg = (process.argv.find(a => a.startsWith('--only=')) || '').slice(7); + const shootList = onlyArg ? onlyArg.split(',').map(s => s.trim()).filter(Boolean) : sims; + console.log('Gefundene Sims (' + sims.length + '):', sims.join(', ')); + if (onlyArg) console.log('Neu geschossen werden nur:', shootList.join(', ')); + fs.mkdirSync(SHOTS_DIR, { recursive: true }); + + const browser = await chromium.launch(); + // results[id][vp] = { start:bool, play:bool, play2:bool, errs:[] } + const results = {}; + + for (const vp of VIEWPORTS) { + console.log('\n===== Viewport ' + vp.label + ' (' + vp.w + '×' + vp.h + ') ====='); + for (const id of shootList) { + results[id] = results[id] || {}; + const r = { start: false, play: false, play2: false, errs: [] }; + results[id][vp.key] = r; + + const ctx = await browser.newContext({ + viewport: { width: vp.w, height: vp.h }, + deviceScaleFactor: 1, + }); + const page = await ctx.newPage(); + page.on('pageerror', e => { if (r.errs.length < 4) r.errs.push('PE:' + e.message.slice(0, 60)); }); + page.on('console', m => { if (m.type() === 'error' && r.errs.length < 4) r.errs.push('CON:' + m.text().slice(0, 60)); }); + + const url = BASE_URL + '/' + id + '/game.html'; + try { + await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 30000 }); + } catch (e) { + r.errs.push('GOTO:' + e.message.slice(0, 50)); + } + + // 1) Onboarding/Start + await page.waitForTimeout(2500); + r.start = await shoot(page, path.join(SHOTS_DIR, id + '__' + vp.key + '__start.png')); + + // 2) Spielverlauf: mehrere Runden klicken (Onboarding schließen -> Menü -> Spiel -> Tutorial weg) + let clicks = 0, last = null; + for (let round = 0; round < 4; round++) { + const clicked = await clickStartLike(page); + if (!clicked) break; + clicks++; + if (clicked === last) break; // gleiches Element erneut -> Abbruch + last = clicked; + await page.waitForTimeout(800); + } + if (clicks > 0) { + await page.waitForTimeout(2500); + r.play = await shoot(page, path.join(SHOTS_DIR, id + '__' + vp.key + '__play.png')); + + // 3) optionaler zweiter Play-Screen: noch ein Weiter/Start, falls vorhanden + const more = await clickStartLike(page); + if (more && more !== last) { + await page.waitForTimeout(2000); + r.play2 = await shoot(page, path.join(SHOTS_DIR, id + '__' + vp.key + '__play2.png')); + } + } + + const flags = [r.start ? 'S' : '-', r.play ? 'P' : '-', r.play2 ? 'P2' : '--'].join(' '); + console.log(' ' + id.padEnd(18) + '[' + flags + ']' + + (clicks ? ' clicks=' + clicks : ' (kein Start-Button)') + + (r.errs.length ? ' ' + r.errs.slice(0, 2).join(' | ') : '')); + + await ctx.close(); + } + } + + await browser.close(); + + // --- HTML generieren --------------------------------------------------- + const genDate = new Date().toLocaleString('de-AT', { + year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', + }); + + const screens = [ + { key: 'start', label: 'Onboarding / Start' }, + { key: 'play', label: 'Spielverlauf' }, + { key: 'play2', label: 'Spielverlauf (2)' }, + ]; + + function cell(id, vp, screenKey) { + const rel = 'shots/' + id + '__' + vp.key + '__' + screenKey + '.png'; + const abs = path.join(SHOTS_DIR, id + '__' + vp.key + '__' + screenKey + '.png'); + if (fs.existsSync(abs)) { + return '' + + '' + id + ' ' + vp.label + ' ' + screenKey + '' + + '' + vp.label + ' · ' + vp.w + '×' + vp.h + ''; + } + return '
— kein Screenshot —' + vp.label + '
'; + } + + let blocks = ''; + for (const id of sims) { + const name = NAMES[id] || (id.charAt(0).toUpperCase() + id.slice(1)); + // nur Screen-Zeilen zeigen, die mindestens ein Bild haben + const activeScreens = screens.filter(sc => + VIEWPORTS.some(vp => fs.existsSync(path.join(SHOTS_DIR, id + '__' + vp.key + '__' + sc.key + '.png'))) + ); + const rows = (activeScreens.length ? activeScreens : [screens[0]]).map(sc => + '' + sc.label + '' + + VIEWPORTS.map(vp => '' + cell(id, vp, sc.key) + '').join('') + + '' + ).join('\n'); + + blocks += '\n
' + + '

' + name + ' ' + id + '

' + + '' + + VIEWPORTS.map(vp => '').join('') + + '' + rows + '
' + vp.label + ' ' + vp.w + '×' + vp.h + '
'; + } + + const nav = sims.map(id => + '' + (NAMES[id] || id) + '' + ).join(''); + + const html = ` + + + + +Display-Vorschau (lokal) + + + +
+

Display-Vorschau (lokal)

+
${sims.length} Simulationen · je Onboarding/Start + Spielverlauf · iPad 1180×820 & Full HD 1920×1080 · generiert am ${genDate}
+
+ +
${blocks} +
+ +`; + + const outFile = path.join(OUT_DIR, 'display_preview.html'); + fs.writeFileSync(outFile, html, 'utf8'); + console.log('\nHTML geschrieben: ' + outFile); + + // --- Zusammenfassung --------------------------------------------------- + console.log('\n===== ZUSAMMENFASSUNG ====='); + let totalShots = 0, missingPlay = []; + for (const id of sims) { + const parts = []; + for (const vp of VIEWPORTS) { + const r = (results[id] && results[id][vp.key]) || {}; + const n = (r.start ? 1 : 0) + (r.play ? 1 : 0) + (r.play2 ? 1 : 0); + totalShots += n; + parts.push(vp.label + ':' + n + '/3(' + (r.start ? 'S' : '-') + (r.play ? 'P' : '-') + (r.play2 ? '2' : '-') + ')'); + if (!r.play) missingPlay.push(id + '/' + vp.key); + } + console.log(' ' + id.padEnd(18) + parts.join(' ')); + } + console.log('\nScreenshots gesamt: ' + totalShots); + console.log('Fehlende Play-Screens: ' + (missingPlay.length ? missingPlay.join(', ') : 'keine')); + console.log('Seite: http://localhost/geograsim/App/.LocalDeveloperTools/display-preview/display_preview.html'); +})(); diff --git a/.dontDeploy/playwright/modul-wk-lehrplan-check.js b/.dontDeploy/playwright/modul-wk-lehrplan-check.js new file mode 100644 index 0000000..59a58e9 --- /dev/null +++ b/.dontDeploy/playwright/modul-wk-lehrplan-check.js @@ -0,0 +1,17 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + const res = await page.goto('http://localhost/geograsim/App/modul-weltkueche'); + await page.waitForTimeout(700); + const r = await page.evaluate(() => { + const sec = document.getElementById('lehrplan-bezug'); + const komps = [...document.querySelectorAll('.md-kompetenz .md-kompetenz-title')].map(e=>e.textContent.trim()); + const anchors = document.querySelectorAll('.md-anchor').length; + const countryChips = [...document.querySelectorAll('.md-lehrplan-filters .md-chip')].map(c=>c.textContent.trim()); + const empty = document.body.textContent.includes('Noch keine Kompetenzen zugeordnet'); + return { hasSection: !!sec, kompetenzTitles: komps, anchorCount: anchors, countryChips, showsEmpty: empty }; + }); + console.log(JSON.stringify({ httpStatus: res.status(), result: r }, null, 2)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/modul-wk-lehrplan-prod-check.js b/.dontDeploy/playwright/modul-wk-lehrplan-prod-check.js new file mode 100644 index 0000000..c65c7ec --- /dev/null +++ b/.dontDeploy/playwright/modul-wk-lehrplan-prod-check.js @@ -0,0 +1,17 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + const res = await page.goto('https://geograsim.at/modul-weltkueche', { waitUntil: 'networkidle' }); + await page.waitForTimeout(700); + const r = await page.evaluate(() => { + const sec = document.getElementById('lehrplan-bezug'); + const komps = [...document.querySelectorAll('.md-kompetenz .md-kompetenz-title')].map(e=>e.textContent.trim()); + const anchors = document.querySelectorAll('.md-anchor').length; + const countryChips = [...document.querySelectorAll('.md-lehrplan-filters .md-chip')].map(c=>c.textContent.trim()); + const empty = document.body.textContent.includes('Noch keine Kompetenzen zugeordnet'); + return { hasSection: !!sec, kompetenzTitles: komps, anchorCount: anchors, countryChips, showsEmpty: empty }; + }); + console.log(JSON.stringify({ httpStatus: res.status(), result: r }, null, 2)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/mwk-filter-check.js b/.dontDeploy/playwright/mwk-filter-check.js new file mode 100644 index 0000000..461a809 --- /dev/null +++ b/.dontDeploy/playwright/mwk-filter-check.js @@ -0,0 +1,37 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + const errs=[]; page.on('pageerror',e=>errs.push(e.message)); + await page.goto('http://localhost/geograsim/App/modul-weltkueche', { waitUntil:'domcontentloaded' }); + await page.waitForTimeout(700); + + async function snapshot() { + return await page.evaluate(() => { + const all = [...document.querySelectorAll('.md-anchor')]; + const visible = all.filter(a => !a.classList.contains('hidden')); + const byType = t => visible.filter(a => a.dataset.anchorType===t).length; + const fachCountries = {}; + visible.filter(a=>a.dataset.anchorType==='fach').forEach(a=>{ fachCountries[a.dataset.country]=(fachCountries[a.dataset.country]||0)+1; }); + return { total: all.length, visible: visible.length, fachVisible: byType('fach'), fachCountries }; + }); + } + async function clickChip(country) { + await page.evaluate((c) => { + const btn = [...document.querySelectorAll('.md-chip')].find(b => (b.dataset.country||'')===c); + if (btn) btn.click(); + }, country); + await page.waitForTimeout(200); + } + + const start = await snapshot(); + await clickChip(''); // Alle Länder + const alle = await snapshot(); + await clickChip('DE'); // Deutschland + const de = await snapshot(); + await clickChip('AT'); // Österreich + const at = await snapshot(); + + console.log(JSON.stringify({ start, alle, de, at, pageErrors: errs }, null, 2)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/mwk-filter-prod.js b/.dontDeploy/playwright/mwk-filter-prod.js new file mode 100644 index 0000000..4238483 --- /dev/null +++ b/.dontDeploy/playwright/mwk-filter-prod.js @@ -0,0 +1,15 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + const errs=[]; page.on('pageerror',e=>errs.push(e.message)); + await page.goto('https://geograsim.at/modul-weltkueche', { waitUntil:'domcontentloaded' }); + await page.waitForTimeout(900); + async function snap(){ return await page.evaluate(()=>{ const all=[...document.querySelectorAll('.md-anchor')]; const vis=all.filter(a=>!a.classList.contains('hidden')); const fc={}; vis.filter(a=>a.dataset.anchorType==='fach').forEach(a=>fc[a.dataset.country]=(fc[a.dataset.country]||0)+1); return {total:all.length, visible:vis.length, fach:vis.filter(a=>a.dataset.anchorType==='fach').length, fachCountries:fc}; }); } + async function chip(c){ await page.evaluate(c=>{const b=[...document.querySelectorAll('.md-chip')].find(x=>(x.dataset.country||'')===c); if(b)b.click();},c); await page.waitForTimeout(200); } + await chip(''); const alle=await snap(); + await chip('DE'); const de=await snap(); + await chip('AT'); const at=await snap(); + console.log(JSON.stringify({alle,de,at,pageErrors:errs},null,2)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/pause-check.js b/.dontDeploy/playwright/pause-check.js new file mode 100644 index 0000000..5a5d0a4 --- /dev/null +++ b/.dontDeploy/playwright/pause-check.js @@ -0,0 +1,25 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const b = await chromium.launch(); const p = await b.newPage(); + await p.addInitScript(() => { + window.__GGS__ = { simId: 'test', baseUrl: '' }; + window.fetch = () => Promise.resolve({ ok:true, json:()=>Promise.resolve({}) }); // Heartbeat stummschalten + }); + await p.goto('about:blank'); + await p.addScriptTag({ path: 'C:/xampp/htdocs/geograsim/App/assets/js/live-client.js' }); + const read = () => p.evaluate(() => window.__GGS_LIVE__ ? window.__GGS_LIVE__.activeMs : null); + const set = (v) => p.evaluate((v) => window.__GGS_LIVE__.setPaused(v), v); + await p.waitForTimeout(300); + const a1 = await read(); + await p.waitForTimeout(2500); const a2 = await read(); // sollte gestiegen sein + await set(true); + await p.waitForTimeout(2500); const a3 = await read(); // sollte eingefroren sein + await set(false); + await p.waitForTimeout(2500); const a4 = await read(); // sollte wieder steigen + const grewNormal = (a2 - a1) > 1500; + const frozen = (a3 - a2) < 300; + const resumed = (a4 - a3) > 1500; + console.log(JSON.stringify({ a1,a2,a3,a4, grewNormal, frozen, resumed, + verdict: (grewNormal && frozen && resumed) ? 'PASS' : 'FAIL' }, null, 2)); + await b.close(); +})(); diff --git a/.dontDeploy/playwright/prod-verify.js b/.dontDeploy/playwright/prod-verify.js new file mode 100644 index 0000000..849400a --- /dev/null +++ b/.dontDeploy/playwright/prod-verify.js @@ -0,0 +1,74 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const out = {}; + + // 1) modul-weltkueche: Lehrplan-Bezug jetzt vorhanden? + { + const page = await browser.newPage(); + await page.goto('https://geograsim.at/modul-weltkueche', { waitUntil: 'domcontentloaded' }); + await page.waitForTimeout(1000); + out.modulWeltkueche = await page.evaluate(() => ({ + kompetenzTitles: [...document.querySelectorAll('.md-kompetenz-title')].map(e=>e.textContent.trim()), + anchorCount: document.querySelectorAll('.md-anchor').length, + showsEmpty: document.body.textContent.includes('Noch keine Kompetenzen zugeordnet'), + })); + await page.close(); + } + + // 2) Weltküche-Sim: Artikel + Ukraine-Feedback + { + const page = await browser.newPage(); + const errs=[]; page.on('pageerror',e=>errs.push(e.message)); + await page.goto('https://geograsim.at/sims/weltkueche/game.html', { waitUntil:'domcontentloaded' }); + await page.waitForTimeout(2000); + out.weltkueche = await page.evaluate(async () => { + try { + if (!DISHES.length) await loadWeltkuecheData(); + const dish = DISHES.find(d=>d.id==='tiroler-groestl'); current={dish}; + buildTaskFor('kartoffel'); + return { + kartoffelArt: ING.kartoffel.art, + badArticles: Object.entries(ING).filter(([k,v])=>!['der','die','das'].includes(v&&v.art)).map(([k])=>k), + wrongUA: explainChoice('kartoffel','ukraine',false).text, + }; + } catch(e){ return { error:String(e) }; } + }); + out.weltkueche.pageErrors = errs; + await page.close(); + } + + // 3) teacher.html: lädt + neue Funktionen da (direkter Link, den das Produkt nutzt) + { + const page = await browser.newPage(); + const errs=[]; page.on('pageerror',e=>errs.push(e.message)); + // teacher.html leitet ohne Login auf login.html um — Navigation abfangen, sofort auswerten + await page.route('**/login.html', r=>r.abort()); + await page.goto('https://geograsim.at/teacher.html', { waitUntil:'domcontentloaded' }).catch(()=>{}); + await page.waitForTimeout(1500); + out.teacher = await page.evaluate(() => ({ + hasRenderGesamt: typeof renderLiveGesamt === 'function', + hasQualityBar: typeof _liveQualityBar === 'function', + qualitySample: (typeof _liveQualityBar==='function') ? _liveQualityBar(8,2) : null, + tabLabels: [...document.querySelectorAll('#tab-bar .tab')].map(t=>t.textContent.trim()), + })).catch(e=>({evalError:String(e)})); + out.teacher.pageErrors = errs; + await page.close(); + } + + // 4) Tourismusregion passstrasse Karte + { + const page = await browser.newPage(); + const mc = await page.request.get('https://geograsim.at/sims/tourismusregion/js/maps-custom.json'); + const j = await mc.json(); + out.tourismus = { + keys: Object.keys(j), + passBergaufPoints: j.passstrasse?.routes?.bergauf?.length ?? null, + passSlots: (j.passstrasse?.slots||[]).length, + }; + await page.close(); + } + + console.log(JSON.stringify(out, null, 2)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/teacher-labels-check.js b/.dontDeploy/playwright/teacher-labels-check.js new file mode 100644 index 0000000..eca7be4 --- /dev/null +++ b/.dontDeploy/playwright/teacher-labels-check.js @@ -0,0 +1,21 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const b = await chromium.launch(); const p = await b.newPage(); + const errs=[]; p.on('pageerror',e=>errs.push(e.message)); p.on('console',m=>{if(m.type()==='error')errs.push(m.text());}); + await p.route('**/login.html', r=>r.abort()); + await p.goto('http://localhost/geograsim/App/teacher.html',{waitUntil:'domcontentloaded'}).catch(()=>{}); + await p.waitForTimeout(1200); + const r = await p.evaluate(() => ({ + hasSimWord: typeof simWord==='function', + hasSimCode: typeof simCode==='function', + logistikWord: typeof simWord==='function' ? simWord('logistik') : null, + logistikCode: typeof simCode==='function' ? simCode('logistik') : null, + unknownCode: typeof simCode==='function' ? simCode('irgendwas') : null, + logistikFields: (typeof LIVE_PRIMARY_FIELDS==='object' && LIVE_PRIMARY_FIELDS.logistik) ? LIVE_PRIMARY_FIELDS.logistik.map(f=>f.label) : null, + liveShortLogistik: typeof LIVE_SIM_SHORT==='object' ? LIVE_SIM_SHORT.logistik : null, + // Kürzel-Eindeutigkeit + codesUnique: (function(){ if(typeof SIM_LABELS!=='object') return null; var seen={},dup=[]; Object.keys(SIM_LABELS).forEach(k=>{var c=SIM_LABELS[k].c; if(seen[c])dup.push(c); seen[c]=1;}); return dup; })(), + })); + console.log(JSON.stringify({result:r, pageErrors:errs}, null, 2)); + await b.close(); +})(); diff --git a/.dontDeploy/playwright/teacher-menu-check.js b/.dontDeploy/playwright/teacher-menu-check.js new file mode 100644 index 0000000..6c3135f --- /dev/null +++ b/.dontDeploy/playwright/teacher-menu-check.js @@ -0,0 +1,26 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + const errors = []; + page.on('pageerror', e => errors.push('PAGEERROR: '+e.message)); + page.on('console', m => { if (m.type()==='error') errors.push(m.text()); }); + const res = await page.goto('http://localhost/geograsim/App/teacher'); + await page.waitForTimeout(1000); + const r = await page.evaluate(() => { + const tabs = [...document.querySelectorAll('#tab-bar .tab')].map(t => t.textContent.trim()); + let toggle = null; + try { toggle = (typeof _liveToggleHtml === 'function') ? _liveToggleHtml() : null; } catch(e){ toggle = 'ERR:'+e.message; } + return { + tabLabels: tabs, + hasSetLiveMode: typeof setLiveMode === 'function', + hasRenderGesamt: typeof renderLiveGesamt === 'function', + hasQualityBar: typeof _liveQualityBar === 'function', + qualitySample: (typeof _liveQualityBar === 'function') ? _liveQualityBar(8,2) : null, + toggleHasGesamt: (typeof toggle === 'string') ? toggle.includes('Gesamt') : toggle, + toggleHasTag: (typeof toggle === 'string') ? toggle.includes('Tag') : toggle, + }; + }); + console.log(JSON.stringify({ httpStatus: res.status(), result: r, pageErrors: errors }, null, 2)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/tr-balance-check.js b/.dontDeploy/playwright/tr-balance-check.js new file mode 100644 index 0000000..31bd779 --- /dev/null +++ b/.dontDeploy/playwright/tr-balance-check.js @@ -0,0 +1,21 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const b = await chromium.launch(); const p = await b.newPage({ viewport:{width:1180,height:820} }); + const errs=[]; p.on('pageerror',e=>errs.push(e.message)); p.on('console',m=>{if(m.type()==='error')errs.push(m.text());}); + await p.goto('http://localhost/geograsim/App/sims/tourismusregion/game.html'); + await p.waitForTimeout(1500); + await p.click('.map-btn'); // Route klicken → Spiel startet → Willkommenskarte + await p.waitForTimeout(2000); + const r = await p.evaluate(() => { + const card = document.getElementById('cardText'); + const txt = card ? card.textContent : ''; + return { + started: !!window.__ttState, + cardHasEnvText: /Umwelt ist deine Landschaft/.test(txt), + cardHasNaturschutz: /Naturschutzgebiet/.test(txt), + envKpi: document.getElementById('kEnv')?.textContent, + }; + }); + console.log(JSON.stringify({ result:r, pageErrors: errs.filter(e=>!/404|Failed to load resource/.test(e)) }, null, 2)); + await b.close(); +})(); diff --git a/.dontDeploy/playwright/tr-passstrasse-check.js b/.dontDeploy/playwright/tr-passstrasse-check.js new file mode 100644 index 0000000..536c478 --- /dev/null +++ b/.dontDeploy/playwright/tr-passstrasse-check.js @@ -0,0 +1,38 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + const errors = []; + page.on('pageerror', e => errors.push('PAGEERROR: '+e.message)); + page.on('console', m => { if (m.type()==='error') errors.push(m.text()); }); + + // 1) maps-custom.json direkt prüfen + const mc = await page.request.get('http://localhost/geograsim/App/sims/tourismusregion/js/maps-custom.json'); + const mcJson = await mc.json(); + const ps = mcJson.passstrasse || null; + + // 2) Hintergrundbild erreichbar? + const img = await page.request.get('http://localhost/geograsim/App/sims/tourismusregion/assets/maps/passstrasse.png'); + + // 3) Sim-Startscreen laden, Kartenliste prüfen + const res = await page.goto('http://localhost/geograsim/App/sims/tourismusregion/game.html'); + await page.waitForTimeout(2500); + const startInfo = await page.evaluate(() => { + const list = document.getElementById('mapList'); + const labels = list ? [...list.querySelectorAll('*')].map(e=>e.textContent).filter(t=>t && t.length<40) : []; + const hasPass = !!(list && /Passstra/i.test(list.textContent||'')); + return { mapListText: (list?list.textContent:'').replace(/\s+/g,' ').trim().slice(0,300), hasPass }; + }); + + console.log(JSON.stringify({ + httpStatus: res.status(), + passInMapsCustom: !!ps, + routeKeys: ps ? Object.keys(ps.routes||{}) : null, + bergaufPoints: ps && ps.routes && ps.routes.bergauf ? ps.routes.bergauf.length : null, + slotCount: ps ? (ps.slots||[]).length : null, + bgImageStatus: img.status(), + startInfo, + pageErrors: errors + }, null, 2)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/tr-quickfix-check.js b/.dontDeploy/playwright/tr-quickfix-check.js new file mode 100644 index 0000000..29c8d4e --- /dev/null +++ b/.dontDeploy/playwright/tr-quickfix-check.js @@ -0,0 +1,30 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage({ viewport: { width: 1180, height: 820 } }); // iPad Landscape + const errs=[]; page.on('pageerror',e=>errs.push(e.message)); page.on('console',m=>{if(m.type()==='error')errs.push(m.text());}); + await page.goto('http://localhost/geograsim/App/sims/tourismusregion/game.html'); + await page.waitForTimeout(1500); + + const before = await page.evaluate(() => ({ + hasPlayerName: !!document.getElementById('playerName'), + hasClassCode: !!document.getElementById('classCode'), + hasBtnStart: !!document.getElementById('btnStart'), + hasBtnSave: !!document.getElementById('btnSave'), + mapBtnCount: document.querySelectorAll('.map-btn').length, + startOverlayHidden: document.getElementById('startOverlay').classList.contains('hidden'), + })); + + // ② Klick auf erste Route sollte SOFORT starten + await page.click('.map-btn'); + await page.waitForTimeout(2500); + const after = await page.evaluate(() => ({ + startOverlayHidden: document.getElementById('startOverlay').classList.contains('hidden'), + gameStarted: !!window.__ttState, + mapId: window.__ttState && window.__ttState.map && window.__ttState.map.id, + })); + + await page.screenshot({ path: 'C:/Users/herr_/AppData/Local/Temp/claude/c--xampp-htdocs-geograsim/c02572ea-7616-4524-a974-dff0e5670d2c/scratchpad/tr-ipad.png' }); + console.log(JSON.stringify({ before, after, pageErrors: errs }, null, 2)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/wk-article-check.js b/.dontDeploy/playwright/wk-article-check.js new file mode 100644 index 0000000..c1083de --- /dev/null +++ b/.dontDeploy/playwright/wk-article-check.js @@ -0,0 +1,27 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const browser = await chromium.launch(); + const page = await browser.newPage(); + const errors = []; + page.on('console', m => { if (m.type()==='error') errors.push(m.text()); }); + page.on('pageerror', e => errors.push('PAGEERROR: '+e.message)); + await page.goto('http://localhost/geograsim/App/sims/weltkueche/game.html'); + await page.waitForTimeout(1500); + const r = await page.evaluate(async () => { + try { + if (!DISHES.length) await loadWeltkuecheData(); + const dish = DISHES.find(d => d.id === 'tiroler-groestl'); + if (!dish) return { error: 'no tiroler-groestl dish' }; + current = { dish }; + const task = buildTaskFor('kartoffel'); + const art = ING.kartoffel.art; + const correctAT = explainChoice('kartoffel', 'oesterreich', true).text; + const correctDE = explainChoice('kartoffel', 'deutschland', true).text; + const wrongUA = explainChoice('kartoffel', 'ukraine', false).text; + const bad = Object.entries(ING).filter(([k,v]) => !['der','die','das'].includes(v && v.art)).map(([k])=>k); + return { art, taskCorrect: task.correct, correctAT, correctDE, wrongUA, badArticles: bad, ingCount: Object.keys(ING).length }; + } catch (e) { return { error: String(e), stack: e.stack }; } + }); + console.log(JSON.stringify({ result: r, consoleErrors: errors }, null, 2)); + await browser.close(); +})(); diff --git a/.dontDeploy/playwright/wk-origin-check.js b/.dontDeploy/playwright/wk-origin-check.js new file mode 100644 index 0000000..c2f2a70 --- /dev/null +++ b/.dontDeploy/playwright/wk-origin-check.js @@ -0,0 +1,38 @@ +const { chromium } = require('@playwright/test'); +(async () => { + const b = await chromium.launch(); const p = await b.newPage(); + const errs=[]; p.on('pageerror',e=>errs.push(e.message)); p.on('console',m=>{if(m.type()==='error')errs.push(m.text());}); + await p.goto('http://localhost/geograsim/App/sims/weltkueche/game.html'); + await p.waitForTimeout(1500); + const r = await p.evaluate(async () => { + try { + if (!DISHES.length) await loadWeltkuecheData(); + function taskFor(ingKey, heimat){ + current = { dish: { id:'test-'+ingKey, heimat: heimat, ings:[ingKey], signature:{} } }; + try { delete _taskCache[ingKey]; } catch(_){} + return buildTaskFor(ingKey); + } + const dEggsDE = _wkDist('oesterreich','deutschland'); + const dEggsFR = _wkDist('oesterreich','frankreich'); + const eier = taskFor('eier','oesterreich'); + const kart = taskFor('kartoffel','oesterreich'); + const milch = taskFor('milch','oesterreich'); + // alle Zutaten müssen fehlerfrei bauen + let buildErr = null; + for (const k of Object.keys(ING)) { + current = { dish:{id:'x',heimat:'oesterreich',ings:[k],signature:{}} }; + try { delete _taskCache[k]; buildTaskFor(k); } catch(e){ buildErr = k+': '+e.message; break; } + } + return { + distDE: Math.round(dEggsDE), distFR: Math.round(dEggsFR), + eierCorrect: eier.correct, eierChoices: eier.choices, + eierDistractors: eier.choices.length - eier.correct.length, + kartoffelCorrect: kart.correct, + milchCorrect: milch.correct, + buildErr, ingCount: Object.keys(ING).length, + }; + } catch(e){ return { error:String(e), stack:e.stack }; } + }); + console.log(JSON.stringify({result:r, pageErrors:errs}, null, 2)); + await b.close(); +})(); diff --git a/App/.LocalDeveloperTools/display-preview/display_preview.html b/App/.LocalDeveloperTools/display-preview/display_preview.html new file mode 100644 index 0000000..5bbac4c --- /dev/null +++ b/App/.LocalDeveloperTools/display-preview/display_preview.html @@ -0,0 +1,78 @@ + + + + + +Display-Vorschau (lokal) + + + +
+

Display-Vorschau (lokal)

+
16 Simulationen · je Onboarding/Start + Spielverlauf · iPad 1180×820 & Full HD 1920×1080 · generiert am 19.08.2026, 15:06
+
+ +
+

🚌 Busfahrt busfahrt

+
iPad 1180×820Full HD 1920×1080
Onboarding / Startbusfahrt iPad startiPad · 1180×820busfahrt Full HD startFull HD · 1920×1080
Spielverlaufbusfahrt iPad playiPad · 1180×820busfahrt Full HD playFull HD · 1920×1080
+

⚡ Energiemanager energiemanager

+ +
iPad 1180×820Full HD 1920×1080
Onboarding / Startenergiemanager iPad startiPad · 1180×820energiemanager Full HD startFull HD · 1920×1080
Spielverlaufenergiemanager iPad playiPad · 1180×820energiemanager Full HD playFull HD · 1920×1080
Spielverlauf (2)energiemanager iPad play2iPad · 1180×820energiemanager Full HD play2Full HD · 1920×1080
+

📅 Entscheidungstag entscheidungstag

+
iPad 1180×820Full HD 1920×1080
Onboarding / Startentscheidungstag iPad startiPad · 1180×820entscheidungstag Full HD startFull HD · 1920×1080
Spielverlaufentscheidungstag iPad playiPad · 1180×820entscheidungstag Full HD playFull HD · 1920×1080
+

🇪🇺 EU-Werkstatt eu-werkstatt

+
iPad 1180×820Full HD 1920×1080
Onboarding / Starteu-werkstatt iPad startiPad · 1180×820eu-werkstatt Full HD startFull HD · 1920×1080
Spielverlaufeu-werkstatt iPad playiPad · 1180×820eu-werkstatt Full HD playFull HD · 1920×1080
+

🌾 Farmer farmer

+
iPad 1180×820Full HD 1920×1080
Onboarding / Startfarmer iPad startiPad · 1180×820farmer Full HD startFull HD · 1920×1080
Spielverlauffarmer iPad playiPad · 1180×820farmer Full HD playFull HD · 1920×1080
+

✈️ Fluggesellschaft fluggesellschaft

+
iPad 1180×820Full HD 1920×1080
Onboarding / Startfluggesellschaft iPad startiPad · 1180×820fluggesellschaft Full HD startFull HD · 1920×1080
Spielverlauffluggesellschaft iPad playiPad · 1180×820fluggesellschaft Full HD playFull HD · 1920×1080
+

🌊 Flussmanagement fluss

iPad 1180×820Full HD 1920×1080
Onboarding / Startfluss iPad startiPad · 1180×820fluss Full HD startFull HD · 1920×1080
+

🚁 Helikopter-Navigation heli

+
iPad 1180×820Full HD 1920×1080
Onboarding / Startheli iPad startiPad · 1180×820heli Full HD startFull HD · 1920×1080
Spielverlaufheli iPad playiPad · 1180×820heli Full HD playFull HD · 1920×1080
+

🚚 Logistik logistik

+
iPad 1180×820Full HD 1920×1080
Onboarding / Startlogistik iPad startiPad · 1180×820logistik Full HD startFull HD · 1920×1080
Spielverlauflogistik iPad playiPad · 1180×820logistik Full HD playFull HD · 1920×1080
+

🪐 Sonnensystem sonnensystem

+ +
iPad 1180×820Full HD 1920×1080
Onboarding / Startsonnensystem iPad startiPad · 1180×820sonnensystem Full HD startFull HD · 1920×1080
Spielverlaufsonnensystem iPad playiPad · 1180×820sonnensystem Full HD playFull HD · 1920×1080
Spielverlauf (2)sonnensystem iPad play2iPad · 1180×820sonnensystem Full HD play2Full HD · 1920×1080
+

💧 Staustufen staustufen

+
iPad 1180×820Full HD 1920×1080
Onboarding / Startstaustufen iPad startiPad · 1180×820staustufen Full HD startFull HD · 1920×1080
Spielverlaufstaustufen iPad playiPad · 1180×820staustufen Full HD playFull HD · 1920×1080
+

🗺️ Tourismusregion tourismusregion

+
iPad 1180×820Full HD 1920×1080
Onboarding / Starttourismusregion iPad startiPad · 1180×820tourismusregion Full HD startFull HD · 1920×1080
Spielverlauftourismusregion iPad playiPad · 1180×820tourismusregion Full HD playFull HD · 1920×1080
+

🏔️ Tourismustal tourismustal

+
iPad 1180×820Full HD 1920×1080
Onboarding / Starttourismustal iPad startiPad · 1180×820tourismustal Full HD startFull HD · 1920×1080
Spielverlauftourismustal iPad playiPad · 1180×820tourismustal Full HD playFull HD · 1920×1080
+

🌋 Vulkan vulkan

+ +
iPad 1180×820Full HD 1920×1080
Onboarding / Startvulkan iPad startiPad · 1180×820vulkan Full HD startFull HD · 1920×1080
Spielverlaufvulkan iPad playiPad · 1180×820vulkan Full HD playFull HD · 1920×1080
Spielverlauf (2)vulkan iPad play2iPad · 1180×820vulkan Full HD play2Full HD · 1920×1080
+

🐋 Wal wal

+
iPad 1180×820Full HD 1920×1080
Onboarding / Startwal iPad startiPad · 1180×820wal Full HD startFull HD · 1920×1080
Spielverlaufwal iPad playiPad · 1180×820wal Full HD playFull HD · 1920×1080
+

🍲 Welt-Küche weltkueche

+
iPad 1180×820Full HD 1920×1080
Onboarding / Startweltkueche iPad startiPad · 1180×820weltkueche Full HD startFull HD · 1920×1080
Spielverlaufweltkueche iPad playiPad · 1180×820weltkueche Full HD playFull HD · 1920×1080
+
+ + \ No newline at end of file diff --git a/App/.LocalDeveloperTools/display-preview/regen-gameplay-shots.cjs b/App/.LocalDeveloperTools/display-preview/regen-gameplay-shots.cjs new file mode 100644 index 0000000..98d52ca --- /dev/null +++ b/App/.LocalDeveloperTools/display-preview/regen-gameplay-shots.cjs @@ -0,0 +1,282 @@ +/** + * regen-gameplay-shots.cjs + * ------------------------ + * Ersetzt die "Spielverlauf"-Screenshots (play / play2) der Display-Vorschau + * durch ECHTE Spielszenen: Auswahl-Screens (Welt/Karte/Szenario) werden + * betreten und das Onboarding wird zuverlässig weggeklickt (Skip-Buttons + + * mehrseitige "Weiter"-Tutorials, auch wenn der Button unter dem Fold liegt), + * bevor der Screenshot fällt. + * + * Ersetzt NUR die play/play2-Bilder in-place; die start-Bilder (Onboarding) + * und display_preview.html bleiben unangetastet, damit die Galerie + * unverändert funktioniert. + * + * Start (aus dem playwright-Ordner wegen node_modules): + * cd /c/xampp/htdocs/geograsim/.dontDeploy/playwright && \ + * NODE_PATH="C:\\xampp\\htdocs\\geograsim\\.dontDeploy\\playwright\\node_modules" \ + * node ../../App/.LocalDeveloperTools/display-preview/regen-gameplay-shots.cjs + * + * Optional: --only=sonnensystem,wal --vp=ipad + */ +const { chromium } = require('@playwright/test'); +const path = require('path'); + +const SHOTS_DIR = 'C:/xampp/htdocs/geograsim/App/.LocalDeveloperTools/display-preview/shots'; +const BASE_URL = 'http://localhost/geograsim/App/sims'; + +const VIEWPORTS = [ + { key: 'ipad', w: 1180, h: 820 }, + { key: 'fullhd', w: 1920, h: 1080 }, +]; + +// Sims mit "play"-Screenshot in der Galerie (fluss hat keinen play -> weggelassen). +const SIMS = [ + { id: 'busfahrt' }, + { id: 'energiemanager', play2: true }, + { id: 'entscheidungstag' }, + { id: 'eu-werkstatt' }, + { id: 'farmer' }, + { id: 'fluggesellschaft' }, + { id: 'heli' }, + { id: 'logistik' }, + { id: 'sonnensystem', play2: true }, + { id: 'staustufen' }, + { id: 'tourismusregion' }, + { id: 'tourismustal' }, + { id: 'vulkan', play2: true }, + { id: 'wal' }, + { id: 'weltkueche' }, +]; + +// ---- In-Page: EIN Onboarding-Schritt wegklicken ------------------------- +async function skipStep(page) { + return await page.evaluate(() => { + // "loose": gerendert, aber darf auch unter dem Fold liegen (.click() geht trotzdem) + const rendered = (el) => { + if (!el) return false; + const r = el.getBoundingClientRect(); + if (r.width < 6 || r.height < 6) return false; + const s = getComputedStyle(el); + return s.visibility !== 'hidden' && s.display !== 'none' && +s.opacity > 0.05 + && !el.disabled && el.getAttribute('aria-hidden') !== 'true' + && !el.classList.contains('hidden'); + }; + const clean = (s) => (s || '').replace(/\s+/g, ' ').trim(); + const norm = (s) => clean(s).replace(/[^\p{L}\p{N} ]+/gu, '').trim().toLowerCase(); + + // Namensfelder füllen + document.querySelectorAll('input[type=text],input[type=search],input:not([type])').forEach((i) => { + if (rendered(i) && !i.value) { + i.value = 'Demo'; + i.dispatchEvent(new Event('input', { bubbles: true })); + i.dispatchEvent(new Event('change', { bubbles: true })); + } + }); + + // 1) Explizite Skip-Buttons (schließen das GANZE Tutorial auf einmal) + const skipSel = [ + '#emOnbSkip', '#tutorial-skip', '#heliOnbSkip', '#snOnbSkip', + '[onclick*="skipTutorial"]', '[onclick*="closeTutorial"]', + '[onclick*="skipOnboarding"]', '[onclick*="skipHeliOnboarding"]', + ]; + for (const sel of skipSel) { + const el = [...document.querySelectorAll(sel)].find(rendered); + if (el) { el.click(); return 'skip:' + sel; } + } + // Skip per Text + { + const el = [...document.querySelectorAll('button,a,[role=button]')].find( + (e) => rendered(e) && /^(uberspringen|tutorial uberspringen|einfuhrung uberspringen|nicht mehr anzeigen)$/.test(norm(e.textContent)) + ); + if (el) { el.click(); return 'skiptext'; } + } + + // 2) "Weiter"/"Los geht's" NUR innerhalb eines sichtbaren Overlays + // (verhindert das Anklicken von Gameplay-Buttons wie Vulkan "Weiter →") + const overSel = '.ggs-modal-overlay,.ggs-overlay,.ggs-overlay-card,.sn-overlay,' + + '.overlay,.overlay-card,.splash-overlay,.lg-splash-overlay,.modal,' + + '.st-hint-overlay,.st-hint-modal,#vulk-overlay,#vulk-modal,.ggs-qi-back,' + + '[id*="Onb"],[id*="onboard"],[id*="overlay" i],[id*="modal" i],' + + '[class*="onb"],[class*="welcome"],[class*="tutorial"],[class*="intro"],' + + '[class*="willkommen"],[class*="overlay" i],[class*="ggs-qi"]'; + const overlays = [...document.querySelectorAll(overSel)].filter((o) => { + if (!rendered(o)) return false; + const r = o.getBoundingClientRect(); + return r.width > 240 && r.height > 150; + }); + const proceedRx = /^(weiter|weiter gehts|los gehts|los geht s|auf gehts|verstanden|alles klar|habe verstanden|fertig|los arbeiten|jetzt starten|jetzt loslegen|jetzt spielen|spiel starten|neue partie|partie starten|los|okay|ok|schliessen|start|starten|beginnen)$/; + for (const ov of overlays) { + const btns = [...ov.querySelectorAll('button,a,[role=button],.btn')].filter(rendered); + let el = btns.find((b) => proceedRx.test(norm(b.textContent))); + if (!el) el = btns.find((b) => /^(x|close)$/.test(norm(b.textContent)) || /(^|\s)(close|ggs-modal-close)(\s|$)/i.test(b.className)); + if (el) { el.click(); return 'proceed:' + norm(el.textContent).slice(0, 24); } + } + return null; + }).catch(() => null); +} + +// Noch ein Onboarding-Overlay sichtbar? (Heuristik für den Report) +async function onboardingStillVisible(page) { + return await page.evaluate(() => { + const rx = /(willkommen|wusstest du|anleitung|was lerne ich|so funktioniert|einf(ü|u)hrung|beobachtungs-?aufgaben|dein kreislauf|uberspringen|überspringen|vulkanologie|observatorium|du erkundest die planeten|was tust du)/i; + const els = [...document.querySelectorAll('.overlay,.ggs-overlay,.ggs-modal-overlay,.sn-overlay,.st-hint-overlay,#vulk-overlay,[class*="onb"],[class*="tutorial"],[class*="intro"],[class*="welcome"],[class*="overlay" i]')]; + return els.some((el) => { + const r = el.getBoundingClientRect(); + if (r.width < 240 || r.height < 150) return false; + const s = getComputedStyle(el); + if (s.visibility === 'hidden' || s.display === 'none' || +s.opacity < 0.05 || el.classList.contains('hidden')) return false; + return rx.test((el.textContent || '').slice(0, 500)); + }); + }).catch(() => false); +} + +async function clickSel(page, sel) { + return await page.evaluate((sel) => { + const el = [...document.querySelectorAll(sel)].find((e) => { + const r = e.getBoundingClientRect(); + const s = getComputedStyle(e); + return r.width > 4 && r.height > 4 && s.visibility !== 'hidden' && s.display !== 'none' && !e.classList.contains('hidden'); + }); + if (el) { el.click(); return true; } + return false; + }, sel).catch(() => false); +} + +async function clickByText(page, source) { + return await page.evaluate((src) => { + const rx = new RegExp(src, 'i'); + const norm = (s) => (s || '').replace(/\s+/g, ' ').trim().replace(/[^\p{L}\p{N} ]+/gu, '').trim(); + const el = [...document.querySelectorAll('button,a,[role=button],.btn')].find((e) => { + const r = e.getBoundingClientRect(); + const s = getComputedStyle(e); + if (r.width < 6 || r.height < 6 || s.visibility === 'hidden' || s.display === 'none' || e.classList.contains('hidden')) return false; + return rx.test(norm(e.textContent)); + }); + if (el) { el.click(); return true; } + return false; + }, source).catch(() => false); +} + +async function skipLoop(page, rounds = 12) { + const seq = []; + for (let i = 0; i < rounds; i++) { + const r = await skipStep(page); + if (!r) break; + seq.push(r); + await page.waitForTimeout(420); + } + return seq; +} + +// ---- pro-Sim: Auswahl-Screen betreten, dann Tutorial wegklicken --------- +const ENTRY = { + // heli: Flugkarte braucht PHP-injizierte Waypoints (WP), die beim direkten + // Aufruf von game.html fehlen (-> "WP is not defined"). Daher bleibt der + // stabile Gameplay-Screen die Einsatzzentrale (Missionsauswahl nach Onboarding). + 'wal': async (page) => { + await clickSel(page, '.era-card-cta'); // "In dieser Welt starten →" + await page.waitForTimeout(1800); + await skipLoop(page); + }, + 'tourismusregion': async (page) => { + await clickSel(page, '#mapList .map-btn, .map-btn'); // Wegkarte wählen + await page.waitForTimeout(3000); // 3D-Szene + await skipLoop(page); // "Willkommen …" weg + }, + 'tourismustal': async (page) => { + await clickSel(page, '[data-scene]'); // Szene wählen + await page.waitForTimeout(3000); + await skipLoop(page); // "Die Gäste …" weg + }, + 'eu-werkstatt': async (page) => { + await clickSel(page, '.scenario-card'); // Szenario betreten + await page.waitForTimeout(1600); + await skipLoop(page, 8); // Konzept-Intro weg + await page.waitForTimeout(900); + await clickByText(page, 'los gehts|los geht|^weiter|verstanden|alles klar'); + await page.waitForTimeout(700); + await skipLoop(page, 4); + }, +}; + +// Nach dem Wegklicken des Onboardings noch aufräumen, um die echte Szene zu zeigen. +const POST = { + 'vulkan': async (page) => { + // "Los geht's" öffnet direkt das erste Aufgaben-Modal (#vulk-overlay). + // Schließen -> darunter liegt die 3D-Vulkanszene + Steuerpanel (Slider). + await page.evaluate(() => { const o = document.getElementById('vulk-overlay'); if (o) o.classList.remove('show'); }); + await page.waitForTimeout(500); + }, +}; + +const PLAY2 = { + 'vulkan': async (page) => { await clickSel(page, '#erupt-btn'); await page.waitForTimeout(3200); }, + 'sonnensystem': async (page) => { await clickSel(page, '#obs-open-btn'); await page.waitForTimeout(1800); await skipLoop(page, 4); await page.waitForTimeout(1200); }, + 'energiemanager': async (page) => { await clickSel(page, '#btnRunDay'); await page.waitForTimeout(3200); }, +}; + +(async () => { + const onlyArg = (process.argv.find((a) => a.startsWith('--only=')) || '').slice(7); + const vpArg = (process.argv.find((a) => a.startsWith('--vp=')) || '').slice(5); + const list = onlyArg ? SIMS.filter((s) => onlyArg.split(',').includes(s.id)) : SIMS; + const vps = vpArg ? VIEWPORTS.filter((v) => v.key === vpArg) : VIEWPORTS; + + const browser = await chromium.launch({ + args: ['--use-gl=swiftshader', '--ignore-gpu-blocklist', '--enable-unsafe-swiftshader'], + }); + + for (const vp of vps) { + console.log(`\n===== ${vp.key} (${vp.w}x${vp.h}) =====`); + for (const sim of list) { + const ctx = await browser.newContext({ viewport: { width: vp.w, height: vp.h }, deviceScaleFactor: 1 }); + const page = await ctx.newPage(); + const errs = []; + page.on('pageerror', (e) => { if (errs.length < 3) errs.push('PE:' + e.message.slice(0, 50)); }); + + const url = `${BASE_URL}/${sim.id}/game.html`; + try { + await page.goto(url, { waitUntil: 'load', timeout: 40000 }); + } catch (e) { errs.push('GOTO:' + e.message.slice(0, 40)); } + await page.waitForTimeout(3200); // 3D / CDN + + let seq = await skipLoop(page, 14); // sofortiges Onboarding + if (ENTRY[sim.id]) await ENTRY[sim.id](page); // Auswahl-Screen + Tutorial + await page.waitForTimeout(2000); + // Zweiter Durchlauf: 3D-Sims (vulkan/sonnensystem) laden ihr Onboarding + // asynchron erst NACH dem ersten Skip -> hier erneut wegklicken. + seq = seq.concat(await skipLoop(page, 10)); + if (POST[sim.id]) await POST[sim.id](page); + await page.waitForTimeout(1000); + + const stuck = await onboardingStillVisible(page); + let ok = false; + try { + await page.screenshot({ path: path.join(SHOTS_DIR, `${sim.id}__${vp.key}__play.png`) }); + ok = true; + } catch (e) { errs.push('SHOT:' + e.message.slice(0, 40)); } + + let ok2 = null; + if (sim.play2 && PLAY2[sim.id]) { + try { + await PLAY2[sim.id](page); + await page.waitForTimeout(1000); + await page.screenshot({ path: path.join(SHOTS_DIR, `${sim.id}__${vp.key}__play2.png`) }); + ok2 = true; + } catch (e) { ok2 = false; errs.push('SHOT2:' + e.message.slice(0, 40)); } + } + + console.log( + ' ' + sim.id.padEnd(18) + + (ok ? 'play OK' : 'play FAIL') + + (ok2 === null ? '' : ok2 ? ' · play2 OK' : ' · play2 FAIL') + + (stuck ? ' [!! ONBOARDING NOCH SICHTBAR]' : '') + + ' clicks=' + seq.length + (seq.length ? ' (' + seq.slice(0, 6).join(',') + ')' : '') + + (errs.length ? ' ' + errs.slice(0, 2).join(' | ') : '') + ); + + await ctx.close(); + } + } + await browser.close(); + console.log('\nFertig. Galerie: http://localhost/geograsim/App/.LocalDeveloperTools/display-preview/display_preview.html'); +})(); diff --git a/App/.LocalDeveloperTools/display-preview/shots/busfahrt__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/busfahrt__fullhd__play.png new file mode 100644 index 0000000..dcc45f9 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/busfahrt__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/busfahrt__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/busfahrt__fullhd__start.png new file mode 100644 index 0000000..996b431 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/busfahrt__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/busfahrt__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/busfahrt__ipad__play.png new file mode 100644 index 0000000..14817d1 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/busfahrt__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/busfahrt__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/busfahrt__ipad__start.png new file mode 100644 index 0000000..12ec67f Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/busfahrt__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/energiemanager__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__fullhd__play.png new file mode 100644 index 0000000..1678591 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/energiemanager__fullhd__play2.png b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__fullhd__play2.png new file mode 100644 index 0000000..4fdf956 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__fullhd__play2.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/energiemanager__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__fullhd__start.png new file mode 100644 index 0000000..8d890c8 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/energiemanager__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__ipad__play.png new file mode 100644 index 0000000..14fc1b7 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/energiemanager__ipad__play2.png b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__ipad__play2.png new file mode 100644 index 0000000..9634666 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__ipad__play2.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/energiemanager__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__ipad__start.png new file mode 100644 index 0000000..a418438 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/energiemanager__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__fullhd__play.png new file mode 100644 index 0000000..0fd15b8 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__fullhd__start.png new file mode 100644 index 0000000..6d62e60 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__ipad__play.png new file mode 100644 index 0000000..f126c51 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__ipad__start.png new file mode 100644 index 0000000..2776008 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/entscheidungstag__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__fullhd__play.png new file mode 100644 index 0000000..63c9705 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__fullhd__start.png new file mode 100644 index 0000000..1b6c59f Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__ipad__play.png new file mode 100644 index 0000000..23a4d1b Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__ipad__start.png new file mode 100644 index 0000000..8bb5197 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/eu-werkstatt__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/farmer__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/farmer__fullhd__play.png new file mode 100644 index 0000000..9f79096 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/farmer__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/farmer__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/farmer__fullhd__start.png new file mode 100644 index 0000000..749ab06 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/farmer__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/farmer__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/farmer__ipad__play.png new file mode 100644 index 0000000..489a830 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/farmer__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/farmer__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/farmer__ipad__start.png new file mode 100644 index 0000000..624fa17 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/farmer__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__fullhd__play.png new file mode 100644 index 0000000..5af3767 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__fullhd__start.png new file mode 100644 index 0000000..3e75f09 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__ipad__play.png new file mode 100644 index 0000000..7e9ae1f Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__ipad__start.png new file mode 100644 index 0000000..351c2d7 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/fluggesellschaft__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/fluss__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/fluss__fullhd__start.png new file mode 100644 index 0000000..5aba08b Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/fluss__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/fluss__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/fluss__ipad__start.png new file mode 100644 index 0000000..097ede7 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/fluss__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/heli__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/heli__fullhd__play.png new file mode 100644 index 0000000..43a279c Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/heli__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/heli__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/heli__fullhd__start.png new file mode 100644 index 0000000..0cadbd0 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/heli__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/heli__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/heli__ipad__play.png new file mode 100644 index 0000000..95e2241 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/heli__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/heli__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/heli__ipad__start.png new file mode 100644 index 0000000..b42eb76 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/heli__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/logistik__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/logistik__fullhd__play.png new file mode 100644 index 0000000..c08028e Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/logistik__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/logistik__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/logistik__fullhd__start.png new file mode 100644 index 0000000..78bf0d7 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/logistik__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/logistik__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/logistik__ipad__play.png new file mode 100644 index 0000000..e9b841f Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/logistik__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/logistik__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/logistik__ipad__start.png new file mode 100644 index 0000000..e893160 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/logistik__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__fullhd__play.png new file mode 100644 index 0000000..4ae99bc Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__fullhd__play2.png b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__fullhd__play2.png new file mode 100644 index 0000000..05b5368 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__fullhd__play2.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__fullhd__start.png new file mode 100644 index 0000000..0c68587 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__ipad__play.png new file mode 100644 index 0000000..5629024 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__ipad__play2.png b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__ipad__play2.png new file mode 100644 index 0000000..18d6a93 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__ipad__play2.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__ipad__start.png new file mode 100644 index 0000000..87befdf Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/sonnensystem__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/staustufen__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/staustufen__fullhd__play.png new file mode 100644 index 0000000..00b3ffb Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/staustufen__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/staustufen__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/staustufen__fullhd__start.png new file mode 100644 index 0000000..dd64bc6 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/staustufen__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/staustufen__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/staustufen__ipad__play.png new file mode 100644 index 0000000..ef5e4a9 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/staustufen__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/staustufen__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/staustufen__ipad__start.png new file mode 100644 index 0000000..a021e0e Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/staustufen__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__fullhd__play.png new file mode 100644 index 0000000..2cf5c7e Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__fullhd__start.png new file mode 100644 index 0000000..0e3fbe6 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__ipad__play.png new file mode 100644 index 0000000..204b96a Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__ipad__start.png new file mode 100644 index 0000000..a67f20e Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/tourismusregion__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/tourismustal__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/tourismustal__fullhd__play.png new file mode 100644 index 0000000..c9789cc Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/tourismustal__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/tourismustal__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/tourismustal__fullhd__start.png new file mode 100644 index 0000000..d5cbb57 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/tourismustal__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/tourismustal__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/tourismustal__ipad__play.png new file mode 100644 index 0000000..28fb73d Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/tourismustal__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/tourismustal__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/tourismustal__ipad__start.png new file mode 100644 index 0000000..e4c24be Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/tourismustal__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/vulkan__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/vulkan__fullhd__play.png new file mode 100644 index 0000000..11c4b6b Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/vulkan__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/vulkan__fullhd__play2.png b/App/.LocalDeveloperTools/display-preview/shots/vulkan__fullhd__play2.png new file mode 100644 index 0000000..dc2117b Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/vulkan__fullhd__play2.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/vulkan__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/vulkan__fullhd__start.png new file mode 100644 index 0000000..6801075 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/vulkan__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/vulkan__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/vulkan__ipad__play.png new file mode 100644 index 0000000..48567b2 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/vulkan__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/vulkan__ipad__play2.png b/App/.LocalDeveloperTools/display-preview/shots/vulkan__ipad__play2.png new file mode 100644 index 0000000..75147a1 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/vulkan__ipad__play2.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/vulkan__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/vulkan__ipad__start.png new file mode 100644 index 0000000..13bacca Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/vulkan__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/wal__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/wal__fullhd__play.png new file mode 100644 index 0000000..4eceae9 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/wal__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/wal__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/wal__fullhd__start.png new file mode 100644 index 0000000..3ddb510 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/wal__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/wal__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/wal__ipad__play.png new file mode 100644 index 0000000..2bb9866 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/wal__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/wal__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/wal__ipad__start.png new file mode 100644 index 0000000..35a67e7 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/wal__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/weltkueche__fullhd__play.png b/App/.LocalDeveloperTools/display-preview/shots/weltkueche__fullhd__play.png new file mode 100644 index 0000000..37fce99 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/weltkueche__fullhd__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/weltkueche__fullhd__start.png b/App/.LocalDeveloperTools/display-preview/shots/weltkueche__fullhd__start.png new file mode 100644 index 0000000..c0f50db Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/weltkueche__fullhd__start.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/weltkueche__ipad__play.png b/App/.LocalDeveloperTools/display-preview/shots/weltkueche__ipad__play.png new file mode 100644 index 0000000..880b0c7 Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/weltkueche__ipad__play.png differ diff --git a/App/.LocalDeveloperTools/display-preview/shots/weltkueche__ipad__start.png b/App/.LocalDeveloperTools/display-preview/shots/weltkueche__ipad__start.png new file mode 100644 index 0000000..bf0673b Binary files /dev/null and b/App/.LocalDeveloperTools/display-preview/shots/weltkueche__ipad__start.png differ diff --git a/App/.LocalDeveloperTools/test-checklist-2026-08-19.html b/App/.LocalDeveloperTools/test-checklist-2026-08-19.html new file mode 100644 index 0000000..6d55cd4 --- /dev/null +++ b/App/.LocalDeveloperTools/test-checklist-2026-08-19.html @@ -0,0 +1,272 @@ + + + + + +GeoGraSim — Test-Checkliste (19.08.2026) + + + +
+
+

🧪 GeoGraSim — Test-Checkliste

+
Alle Erledigungen seit den Weltküche-Lebensmitteln · Stand 19.08.2026 · lokal testen
+
+
+ 0 / 0 +
+ +
+
+ +
+
+ Basis-URL lokal: http://localhost/geograsim/App/ · Haken & Notizen werden im Browser gespeichert. + live = auf Prod, bereit = committed, kommt mit dem nächsten Deploy. + Für Admin-Seiten zuerst über admin.html anmelden (Username Thomas → PIN ist lokal vorausgefüllt). +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+
+ +
GeoGraSim · Test-Checkliste · lokal generiert 19.08.2026
+ + + + diff --git a/App/admin-levels.html b/App/admin-levels.html index a5638fc..100958c 100644 --- a/App/admin-levels.html +++ b/App/admin-levels.html @@ -173,7 +173,7 @@ var SIMS = [ start_population:{min:1000,max:20000,def:6000,label:'Start-Bevölkerung'}, income_per_10k:{min:50,max:500,def:220,label:'Einnahmen pro 10.000 Bürger'}, budget_loss:{min:-2000,max:0,def:-500,label:'Pleite-Grenze (Mio €, negativ)'}, - event_frequency:{min:0,max:1,def:0.3,step:0.1,label:'Ereignis-Häufigkeit (0–1)'}, + event_frequency:{min:0,max:1,def:0.3,step:0.1,label:'Ereignis-Häufigkeit (0 – 1)'}, time_limit:{min:30,max:150,def:75,label:'Simulationsdauer (Runden)'} }}, {id:'sim-05', name:'Klimawächter 2D (V1)', icon:'🌡️', img:'assets/img/card-climate.webp', diff --git a/App/assets/js/badges.js b/App/assets/js/badges.js index eb17c26..abfba19 100644 --- a/App/assets/js/badges.js +++ b/App/assets/js/badges.js @@ -9,7 +9,7 @@ * Icons sind sauber generierte Emblems (Flat-Scandinavian, keine Emojis) unter * assets/img/badges/. Gesperrte Abzeichen bleiben sichtbar (Zielvorstellung), * die Beschreibung ist das Ziel. Sterne laufen parallel; ggsErfolgToStars() - * bildet den normierten Erfolg (0–100) auf 0–5 Sterne ab. + * bildet den normierten Erfolg (0 – 100) auf 0 – 5 Sterne ab. * * progressObj (pro Sim): { plays, best_stars, level } * ==========================================================================*/ diff --git a/App/assets/js/glossar-experiments-monsun.js b/App/assets/js/glossar-experiments-monsun.js index b2fda21..e6fb044 100644 --- a/App/assets/js/glossar-experiments-monsun.js +++ b/App/assets/js/glossar-experiments-monsun.js @@ -53,7 +53,7 @@ const MONSOON = [5, 6, 7, 8]; // Regen pro Monat in mm. - // Normal: Mumbai (Colaba) 1981–2010, India Meteorological Department. + // Normal: Mumbai (Colaba) 1981 – 2010, India Meteorological Department. const NORMAL = [1, 0, 1, 0, 16, 506, 769, 472, 356, 82, 9, 3]; // Schwacher Monsun (Dürre-Jahr): Spitzen-Monate stark reduziert. const WEAK = [1, 0, 1, 0, 10, 280, 420, 240, 180, 60, 6, 2]; diff --git a/App/assets/js/glossar-experiments-wirtschaft.js b/App/assets/js/glossar-experiments-wirtschaft.js index 186aa75..65bcb12 100644 --- a/App/assets/js/glossar-experiments-wirtschaft.js +++ b/App/assets/js/glossar-experiments-wirtschaft.js @@ -322,7 +322,7 @@ svgEl('text', { x: 450, y: 22, 'text-anchor': 'middle', 'font-size': '12', 'font-weight': '800', fill: '#1f4e5a' }, svg).textContent = 'Zusammengelegt'; const mergedG = svgEl('g', {}, svg); - // Balken: Stückkosten je Gast (Skala 0–50 €, Höhe 110 px) + // Balken: Stückkosten je Gast (Skala 0 – 50 €, Höhe 110 px) const BAR_BASE = 240, BAR_MAXH = 110, SCALE = 50; svgEl('line', { x1: 30, y1: BAR_BASE, x2: 570, y2: BAR_BASE, stroke: '#b5c9cf', 'stroke-width': '1.5' }, svg); // Referenzbalken links: 45 € (statisch) @@ -500,9 +500,9 @@ }; // Farbzonen [ - { a1: -80, a2: -40, c: '#c85c4a' }, // 49,80–49,90 - { a1: -40, a2: -20, c: '#e8833a' }, // 49,90–49,95 - { a1: -20, a2: 20, c: '#5a8a5e' }, // 49,95–50,05 + { a1: -80, a2: -40, c: '#c85c4a' }, // 49,80 – 49,90 + { a1: -40, a2: -20, c: '#e8833a' }, // 49,90 – 49,95 + { a1: -20, a2: 20, c: '#5a8a5e' }, // 49,95 – 50,05 { a1: 20, a2: 40, c: '#e8833a' }, { a1: 40, a2: 80, c: '#c85c4a' } ].forEach(z => svgEl('path', { d: arcPath(z.a1, z.a2, R), stroke: z.c, 'stroke-width': '20', fill: 'none', 'stroke-linecap': 'butt', opacity: '0.9' }, svg)); @@ -599,7 +599,7 @@
Das Unterbecken ist voll — pumpe Wasser hinauf!

Pumpspeicherkraftwerke sind bis heute der einzige großtechnische - Stromspeicher: Aus 100 kWh Pumpstrom kommen rund 75–80 kWh wieder heraus + Stromspeicher: Aus 100 kWh Pumpstrom kommen rund 75 – 80 kWh wieder heraus (Gesamtwirkungsgrad, hier gerechnet mit 78 %). Quellen: VERBUND (Malta- und Kaprun-Kraftwerke) · Fraunhofer ISE.

diff --git a/App/docs/klimawaechter-dev-log.html b/App/docs/klimawaechter-dev-log.html index 80c1278..f396ae5 100644 --- a/App/docs/klimawaechter-dev-log.html +++ b/App/docs/klimawaechter-dev-log.html @@ -119,7 +119,7 @@
  • Mechanik-Erkenntnisse aus Trace-Tests
  • UI / Interaktion
  • Visualisierung (2D / 3D)
  • -
  • Erklärungen für Kinder 10–14
  • +
  • Erklärungen für Kinder 10 – 14
  • Weitere Folgen des Klimawandels
  • Offene Punkte & nächste Schritte
  • @@ -129,7 +129,7 @@

    1. Didaktisches Ziel und Zielgruppe

    -

    Der Klimawächter ist kein Spiel um einen high score. Er soll Schülerinnen und Schülern der 1.–4. Klasse Sekundarstufe I (ca. 10–14 Jahre) vermitteln, dass:

    +

    Der Klimawächter ist kein Spiel um einen high score. Er soll Schülerinnen und Schülern der 1.–4. Klasse Sekundarstufe I (ca. 10 – 14 Jahre) vermitteln, dass:

    • der Klimawandel träge ist — Folgen kommen verzögert, Entscheidungen wirken erst in Jahren
    • es keine Wunderlösung gibt — man muss mehrere Strategien kombinieren
    • @@ -202,7 +202,7 @@
    • Deiche allein retten kurzfristig Häuser, aber nicht das Klima.
    • Aufforsten ist wichtig, aber als Einzelmaßnahme zu langsam.
    • Wind ist stärker als Solar, aber wegen Wartungskosten nicht immer die beste Wahl.
    • -
    • Das Klima hat eine Trägheit von ca. 8 %/Jahr für Temperatur und 6–8 %/Jahr für Meeresspiegel.
    • +
    • Das Klima hat eine Trägheit von ca. 8 %/Jahr für Temperatur und 6 – 8 %/Jahr für Meeresspiegel.
    @@ -226,7 +226,7 @@

    done Bürger-Beschwerden mit Choices

    -

    Modaler Dialog mit Avatar, Message und 2–3 Choice-Karten. Jede Wahl hat echte Konsequenzen. Spiel pausiert automatisch bis der Spieler entscheidet. Bibliothek: 7 Events über die 75 Jahre verteilt (Fischerin, Forscherin, Bauer, Hotel, Jugend-Streik, Industrie, Bergdorf).

    +

    Modaler Dialog mit Avatar, Message und 2 – 3 Choice-Karten. Jede Wahl hat echte Konsequenzen. Spiel pausiert automatisch bis der Spieler entscheidet. Bibliothek: 7 Events über die 75 Jahre verteilt (Fischerin, Forscherin, Bauer, Hotel, Jugend-Streik, Industrie, Bergdorf).

    @@ -336,7 +336,7 @@

    todo Krisen-Mini-Spiele

    -

    Bei Sturmflut, Hitzewelle, Murenabgang ein kurzes (10–20 s) Klick-Mini-Spiel. Erfolg mildert den Schaden.

    +

    Bei Sturmflut, Hitzewelle, Murenabgang ein kurzes (10 – 20 s) Klick-Mini-Spiel. Erfolg mildert den Schaden.

    @@ -394,9 +394,9 @@
    -

    6. Erklärungen für Kinder 10–14

    +

    6. Erklärungen für Kinder 10 – 14

    -

    Das neue info-overlay.ts-Modul bietet eine Bibliothek kindgerechter Erklärtexte. Jeder Graph und jedes wichtige Event hat einen (i)-Button, der ein Overlay öffnet. Zielgruppe: 10–14 Jahre, einfache Sätze, max. 3 Absätze plus "Merksatz".

    +

    Das neue info-overlay.ts-Modul bietet eine Bibliothek kindgerechter Erklärtexte. Jeder Graph und jedes wichtige Event hat einen (i)-Button, der ein Overlay öffnet. Zielgruppe: 10 – 14 Jahre, einfache Sätze, max. 3 Absätze plus "Merksatz".

    Bisher erklärte Begriffe

      diff --git a/App/forschung/geografie-didaktik.html b/App/forschung/geografie-didaktik.html index d456336..84977d0 100644 --- a/App/forschung/geografie-didaktik.html +++ b/App/forschung/geografie-didaktik.html @@ -251,10 +251,10 @@ body { max-width:820px; margin:0 auto; padding:2.5rem 2rem 6rem; }

      Entwicklung des Fachs in Österreich

      Die Geschichte des GW-Unterrichts in Österreich ist geprägt von der besonderen Verbindung von Geografie und Wirtschaftskunde in einem Fach — eine Konstellation, die im internationalen Vergleich selten ist (Sitte, 2001). Der fachdidaktische Grundkonsens 2.0 (Pichler et al., 2017) formuliert Leitlinien für die Lehrer*innenbildung, die Kompetenzorientierung, Lebensweltbezug und kritische Reflexion ins Zentrum stellen.

      Forschungslandschaft

      -

      Die geographiedidaktische Forschung im deutschsprachigen Raum hat sich seit den 1970er Jahren stark professionalisiert. Bagoly-Simó und Hemmer (2017) dokumentieren in ihrer bibliometrischen Analyse der ZGD (1973–2016) eine Verschiebung von curricularen Fragen hin zu Kompetenzorientierung und empirischer Unterrichtsforschung. Scholten et al. (2024) entwickeln ein fachdidaktisch erweitertes Modell der Unterrichtsqualität für Geografie, das allgemeindidaktische Basisdimensionen mit fachspezifischen Anforderungen verbindet.

      +

      Die geographiedidaktische Forschung im deutschsprachigen Raum hat sich seit den 1970er Jahren stark professionalisiert. Bagoly-Simó und Hemmer (2017) dokumentieren in ihrer bibliometrischen Analyse der ZGD (1973 – 2016) eine Verschiebung von curricularen Fragen hin zu Kompetenzorientierung und empirischer Unterrichtsforschung. Scholten et al. (2024) entwickeln ein fachdidaktisch erweitertes Modell der Unterrichtsqualität für Geografie, das allgemeindidaktische Basisdimensionen mit fachspezifischen Anforderungen verbindet.

      International bildet das Handbook of Geography Education (Bednarz & Mitchell, 2025) mit über 40 Kapiteln den aktuellen Stand ab. Hemmer et al. (2024) beschreiben in der roadmap 2030 die Situation und Perspektiven des Schulfachs in Deutschland.

      Literatur (Grundlagen)

      -

      Bagoly-Simó, P. & Hemmer, M. (2017). Geographiedidaktische Forschungen im Spiegel von ZGD 1973–2016. ZGD.

      +

      Bagoly-Simó, P. & Hemmer, M. (2017). Geographiedidaktische Forschungen im Spiegel von ZGD 1973 – 2016. ZGD.

      Bednarz, S. & Mitchell, J. (2025). Handbook of Geography Education. Springer.

      de Miguel González, R. (2024). Powerful geography and the future of geographic education. Progress in Human Geography. https://doi.org/10.1177/20438206241229219

      Fridrich, C. (2012). Wirtschaftswissen allein ist zu wenig! GW-Unterricht.

      @@ -388,7 +388,7 @@ body { max-width:820px; margin:0 auto; padding:2.5rem 2rem 6rem; }

      Fornash und Atchison (2021) untersuchen die Anwendung von Universal Design for Learning (UDL) in geowissenschaftlichen Curricula und identifizieren Lernbarrieren für diverse Studierende. Die drei UDL-Kernprinzipien — Engagement, Repräsentation und Aktion/Ausdruck — bieten einen praxistauglichen Rahmen für barrierefreie Unterrichtsgestaltung.

      Für ein simulationsgestütztes Lernprogramm ergeben sich daraus konkrete Anforderungen: Mehrere Zugangswege zum gleichen Inhalt (visuell, auditiv, haptisch), einstellbare Komplexitätsstufen (vereinfachte Sprache, reduzierte Parameter), flexible Zeitvorgaben (Nachteilsausgleich) und alternative Ausdrucksmöglichkeiten (nicht nur Text, sondern auch Zeichnung, Auswahl, Drag-and-Drop).

      Differenzierte Instruktion

      -

      Smale-Jacobse et al. (2019) ermitteln in ihrem systematischen Review kleine bis moderate positive Effekte differenzierter Instruktion (d = 0,5–0,74) in der Sekundarstufe. Pozas, Letzel und Schneider (2020) zeigen allerdings, dass Lehrkräfte Differenzierung nur gelegentlich einsetzen — besonders selten an höheren Schulformen. Konstruktivistische Überzeugungen korrelieren positiv mit dem Einsatz differenzierter Methoden.

      +

      Smale-Jacobse et al. (2019) ermitteln in ihrem systematischen Review kleine bis moderate positive Effekte differenzierter Instruktion (d = 0,5 – 0,74) in der Sekundarstufe. Pozas, Letzel und Schneider (2020) zeigen allerdings, dass Lehrkräfte Differenzierung nur gelegentlich einsetzen — besonders selten an höheren Schulformen. Konstruktivistische Überzeugungen korrelieren positiv mit dem Einsatz differenzierter Methoden.

      Pozas et al. (2021) belegen, dass die Wahrnehmung differenzierter Instruktion durch Schüler*innen signifikant deren Wohlbefinden, soziale Inklusion und akademisches Selbstkonzept prädiziert. Digitale Medien bieten Potenziale für die Binnendifferenzierung, die jedoch von Lehrkräfteüberzeugungen abhängen (Lautenbach & Heyder, 2025).

      Sprachsensibler Fachunterricht

      Sprache ist im GW-Unterricht nicht nur Medium, sondern auch Lerngegenstand: Fachbegriffe wie „Disparität", „Ressource" oder „Maßstab" müssen aktiv aufgebaut werden. Budke und Kuckuck (2018) identifizieren fünf Diskurse zu Sprache im GW-Unterricht: Integration durch Sprachförderung, bilingualer Sachfachunterricht, Kommunikationskompetenz, linguistic turn und Inklusion.

      @@ -492,7 +492,7 @@ body { max-width:820px; margin:0 auto; padding:2.5rem 2rem 6rem; }

      9. Herausforderungen und offene Fragen

      Stundenknappheit und Stofffülle

      Die gravierendste Herausforderung für den GW-Unterricht ist das Missverhältnis zwischen der Fülle an Lehrplanthemen und der verfügbaren Unterrichtszeit. Sieben Wochenstunden über vier Jahre — davon nur eine in der 2. Klasse — sind wenig für ein Fach, das Klimawandel, Globalisierung, Wirtschaftsbildung und Raumplanung gleichermaßen abdecken soll. Hemmer et al. (2024) dokumentieren, dass dieser Druck von Lehrkräften und Fachleiter*innen übereinstimmend als zentrales Problem wahrgenommen wird.

      -

      Für ein Simulationsprogramm bedeutet das: Jede Simulation muss in eine Unterrichtseinheit (50 Minuten) passen, inklusive Einführung und Reflexionsphase. Die effektive Simulationszeit beträgt damit 20–30 Minuten pro Einsatz. Längere Formate sind nur als Ausnahme (Projekttag, fächerübergreifend) realistisch.

      +

      Für ein Simulationsprogramm bedeutet das: Jede Simulation muss in eine Unterrichtseinheit (50 Minuten) passen, inklusive Einführung und Reflexionsphase. Die effektive Simulationszeit beträgt damit 20 – 30 Minuten pro Einsatz. Längere Formate sind nur als Ausnahme (Projekttag, fächerübergreifend) realistisch.

      Lehrkräftebildung und -fortbildung

      Oberle, Nikolai und Uphues (2025) finden in ihrem Review von 26 Studien zur Geographie-Lehrerfortbildung, dass nur zwei Programme alle Qualitätskriterien erfüllen. Steegen und De Cock (2023) identifizieren sechs Kernkomponenten des geographischen PCK (Pedagogical Content Knowledge), das Lehrkräfte für wirksamen Unterricht benötigen. Fögele (2018) zeigt, dass implizite Orientierungen der Lehrkräfte die Implementation fachlicher Innovationen stärker beeinflussen als deklaratives Wissen.

      Die Integration digitaler Simulationen in den Unterricht erfordert nicht nur technische, sondern vor allem fachdidaktische Kompetenz: Wann setze ich eine Simulation ein? Wie begleite ich den Lernprozess? Wie werte ich die Ergebnisse aus? Das DiGeo-Projekt (Schulze et al., 2020) zeigt einen möglichen Weg über frei zugängliche OER-Materialien.

      @@ -536,7 +536,7 @@ body { max-width:820px; margin:0 auto; padding:2.5rem 2rem 6rem; }
      + @@ -256,7 +256,7 @@

      Methodik der Quellenbewertung

      -

      Jede Quelle wird anhand von drei Dimensionen bewertet. Die Summe (3–10 Punkte) ergibt die Sternbewertung.

      +

      Jede Quelle wird anhand von drei Dimensionen bewertet. Die Summe (3 – 10 Punkte) ergibt die Sternbewertung.

      @@ -274,7 +274,7 @@

      Wie aktuell ist die Publikation?

      • 3 2024 oder neuer
      • -
      • 2 2022–2023
      • +
      • 2 2022 – 2023
      • 1 Vor 2022
      @@ -291,14 +291,14 @@
      -

      ⭐ Sternbewertung (Score 3–10)

      +

      ⭐ Sternbewertung (Score 3 – 10)

      - - - - + + + +
      ScoreSterneBedeutung
      9–10★★★★★Kernquelle
      7–8★★★★☆Sehr relevant
      5–6★★★☆☆Relevant
      3–4★★☆☆☆Orientierung
      9 – 10★★★★★Kernquelle
      7 – 8★★★★☆Sehr relevant
      5 – 6★★★☆☆Relevant
      3 – 4★★☆☆☆Orientierung
      diff --git a/App/forschung/quellen-simulation.html b/App/forschung/quellen-simulation.html index ae83078..9da17a9 100644 --- a/App/forschung/quellen-simulation.html +++ b/App/forschung/quellen-simulation.html @@ -236,7 +236,7 @@ .source-card { break-inside: avoid; box-shadow: none; } } - + @@ -251,7 +251,7 @@

      Methodik der Quellenbewertung

      -

      Jede Quelle wird anhand von drei Dimensionen bewertet. Die Summe (3–10 Punkte) ergibt die Sternbewertung.

      +

      Jede Quelle wird anhand von drei Dimensionen bewertet. Die Summe (3 – 10 Punkte) ergibt die Sternbewertung.

      @@ -269,7 +269,7 @@

      Wie aktuell ist die Publikation?

      • 3 2024 oder neuer
      • -
      • 2 2022–2023
      • +
      • 2 2022 – 2023
      • 1 Vor 2022
      @@ -286,14 +286,14 @@
      -

      ⭐ Sternbewertung (Score 3–10)

      +

      ⭐ Sternbewertung (Score 3 – 10)

      - - - - + + + +
      ScoreSterneBedeutung
      9–10★★★★★Kernquelle
      7–8★★★★☆Sehr relevant
      5–6★★★☆☆Relevant
      3–4★★☆☆☆Orientierung
      9 – 10★★★★★Kernquelle
      7 – 8★★★★☆Sehr relevant
      5 – 6★★★☆☆Relevant
      3 – 4★★☆☆☆Orientierung
      diff --git a/App/handbuch.html b/App/handbuch.html index db5ba8e..06eb535 100644 --- a/App/handbuch.html +++ b/App/handbuch.html @@ -282,7 +282,7 @@

      Klassenangaben beziehen sich auf die österreichische Sekundarstufe I - (Klasse 1 = 5. Schulstufe = ca. 10–11 Jahre). Alle Module sind auch in + (Klasse 1 = 5. Schulstufe = ca. 10 – 11 Jahre). Alle Module sind auch in höheren Klassen einsetzbar; einige Module (Energiemanager, EU-Werkstatt) setzen mehr Vorwissen voraus.

      @@ -297,12 +297,12 @@

      Klima retten, Küste schützen.

      CO₂-Konzentration nach Mauna-Loa-Messreihe aktiv - 10–16 Jahre + 10 – 16 Jahre ⏱ 35 min Klimawandel · Energie · Küstenschutz

      Beschreibung: Als Klima­wächter*in lenkst du - einen Insel­staat 75 Jahre lang (2025–2100) durch den Klimawandel. + einen Insel­staat 75 Jahre lang (2025 – 2100) durch den Klimawandel. Du baust Windparks, Solaranlagen, Mangroven und Deiche, reagierst auf Sturmfluten und Hitzewellen und balancierst dein Budget gegen den steigenden Meeresspiegel. Zwei Varianten — 2D-Karte @@ -355,7 +355,7 @@

      Hochwasser verstehen, Fluss naturnah führen.

      Mäander vs. begradigter Fluss im Vergleich aktiv - 10–16 Jahre + 10 – 16 Jahre ⏱ 30 min Hydrologie · Raumplanung · Naturgefahr @@ -403,7 +403,7 @@

      Bergrettung auf Koordinaten — Kartenlesen unter Zeitdruck.

      Koordinatensystem auf Europa-Karte aktiv - 10–16 Jahre + 10 – 16 Jahre ⏱ 40 min Kartografie · Koordinaten · Topografie @@ -449,7 +449,7 @@

      Waren, Wege, Warten.

      Logistikkette von Hersteller bis Kund*in aktiv - 12–15 Jahre + 12 – 15 Jahre ⏱ 30 min Wirtschaft · Verkehr · Europa @@ -496,7 +496,7 @@

      Topografie Europa — Hauptstädte und Distanzen.

      Skyline einer europäischen Hauptstadt aktiv - 10–16 Jahre + 10 – 16 Jahre ⏱ 20 min Topografie · Europa · Hauptstädte @@ -541,7 +541,7 @@

      Anbau weltweit — wo wächst was und warum.

      Endloses Maisfeld als Monokultur aktiv - 10–16 Jahre + 10 – 16 Jahre ⏱ 20 min Landwirtschaft · Klimazonen · Welternährung @@ -588,7 +588,7 @@

      Strom durch den Tag balancieren.

      Stillstehende Windräder bei Dunkelflaute aktiv - 13–16 Jahre + 13 – 16 Jahre ⏱ 20 min Energie · Versorgung · Speicher @@ -635,7 +635,7 @@

      Wie ein Gesetz entsteht.

      EU-Parlament-Plenarsaal in Straßburg aktiv - 13–16 Jahre + 13 – 16 Jahre ⏱ 20 min Politische Bildung · Demokratie · EU @@ -683,7 +683,7 @@

      Astronomie zum Beobachten — Tag, Jahreszeiten, Finsternisse.

      Schematische Sonnenfinsternis aktiv - 10–14 Jahre + 10 – 14 Jahre ⏱ 20 min Astronomie · Erdrotation · Finsternisse @@ -729,7 +729,7 @@

      Wo kommt unser Essen wirklich her?

      Acht Gerichte aus aller Welt rund um eine Weltkarte mit Handelsrouten aktiv · neu - 11–16 Jahre + 11 – 16 Jahre ⏱ 25 min Welternährung · Handel · Konsumkritik @@ -789,7 +789,7 @@

      Großkreis-Routen und CO₂ — Geografie über die EU hinaus.

      Flugrouten weltweit als Großkreise auf einer Weltkarte aktiv · neu - 12–16 Jahre + 12 – 16 Jahre ⏱ 25 min Verkehr · Globalisierung · CO₂ @@ -836,7 +836,7 @@

      Ein Tag im eigenen Haushalt — kWh, km und Watt.

      Wintertag — Wohnung mit Heizung, Beleuchtung und Schulweg aktiv · neu - 10–14 Jahre + 10 – 14 Jahre ⏱ 20 min Haushalt · Energie · Mobilität · Alltag @@ -922,11 +922,11 @@ Vor-Fragen besprechen, Vorwissen aktivieren. Einführung3 min Modul kurz vorstellen, Bedien­logik zeigen, Einsatzformen klären. - Bearbeitung20–30 min + Bearbeitung20 – 30 min Schüler*innen arbeiten selbst­ständig (Einzel- oder Partner­arbeit). Auswertung5 min Ergebnisse vergleichen — Lehrer­dashboard zeigt Bearbeitungs­profile. - Reflexion7–10 min + Reflexion7 – 10 min Nach-Fragen, Transfer auf die Realität, Glossar-Recherche. @@ -964,7 +964,7 @@

      Empfohlene Reflexions-Aufgaben (zur Leistungs­feststellung)

        -
      1. „Beschreibe deine Strategie in 3–5 Sätzen. Was war dein wichtigstes Ziel?"
      2. +
      3. „Beschreibe deine Strategie in 3 – 5 Sätzen. Was war dein wichtigstes Ziel?"
      4. „Nenne einen Zielkonflikt, den du erlebt hast. Wie hast du dich entschieden?"
      5. „Was würdest du in der Realität anders machen als in der Simulation? Warum?"
      6. „Vergleiche deine Strategie mit der einer Mitschülerin. Was habt ihr unterschiedlich gemacht – und warum?" (Fokus auf Denkwege, nicht auf „besser/schlechter".)
      7. @@ -1020,7 +1020,7 @@ Die Effektstärken sind grobe Orientierung und werden methodisch diskutiert: Fü werden Werte von d ≈ 0,7 (Hattie, 2009) bis d ≈ 0,48 in neueren Meta-Analysen (Wisniewski, Zierer & Hattie, 2020) berichtet; das Teaching-and-Learning-Toolkit der Education Endowment Foundation beziffert Feedback mit etwa +6, Metakognition/Selbstregulation mit etwa -+7 Lernmonaten. Für „formative Beurteilung" als Sammelbegriff reicht die Spanne von d ≈ 0,4–0,7 ++7 Lernmonaten. Für „formative Beurteilung" als Sammelbegriff reicht die Spanne von d ≈ 0,4 – 0,7 (Black & Wiliam, 1998) bis zu deutlich moderateren d ≈ 0,20 in einer strengeren Meta-Analyse (Kingston & Nash, 2011). Die Botschaft ist nicht die exakte Zahl, sondern: die Wirkung hängt fast vollständig von der Art des Feedbacks ab – aufgaben- und @@ -1074,32 +1074,32 @@ Schritt (Feed forward; Hattie & Timperley, 2007).

        Literaturverzeichnis

        -

        Baker, R. S. J. d., Corbett, A. T., Koedinger, K. R. & Wagner, A. Z. (2004). Off-Task Behavior in the Cognitive Tutor Classroom: When Students „Game the System". Proceedings of ACM CHI 2004, 383–390.

        -

        Black, P. & Wiliam, D. (1998). Assessment and Classroom Learning. Assessment in Education, 5(1), 7–74.

        -

        Bloom, B. S. (1968). Learning for Mastery. Evaluation Comment, 1(2), 1–12.

        -

        Butler, R. (1988). Enhancing and undermining intrinsic motivation: The effects of task-involving and ego-involving evaluation. British Journal of Educational Psychology, 58(1), 1–14.

        -

        Carroll, J. B. (1963). A Model of School Learning. Teachers College Record, 64(8), 723–733.

        +

        Baker, R. S. J. d., Corbett, A. T., Koedinger, K. R. & Wagner, A. Z. (2004). Off-Task Behavior in the Cognitive Tutor Classroom: When Students „Game the System". Proceedings of ACM CHI 2004, 383 – 390.

        +

        Black, P. & Wiliam, D. (1998). Assessment and Classroom Learning. Assessment in Education, 5(1), 7 – 74.

        +

        Bloom, B. S. (1968). Learning for Mastery. Evaluation Comment, 1(2), 1 – 12.

        +

        Butler, R. (1988). Enhancing and undermining intrinsic motivation: The effects of task-involving and ego-involving evaluation. British Journal of Educational Psychology, 58(1), 1 – 14.

        +

        Carroll, J. B. (1963). A Model of School Learning. Teachers College Record, 64(8), 723 – 733.

        Deci, E. L. & Ryan, R. M. (1985). Intrinsic Motivation and Self-Determination in Human Behavior. New York: Plenum.

        Dweck, C. S. (2006). Mindset: The New Psychology of Success. New York: Random House.

        Education Endowment Foundation (o. J.). Teaching and Learning Toolkit: Feedback; Metacognition and Self-Regulation. educationendowmentfoundation.org.uk

        -

        Fredricks, J. A., Blumenfeld, P. C. & Paris, A. H. (2004). School Engagement: Potential of the Concept, State of the Evidence. Review of Educational Research, 74(1), 59–109.

        -

        Glaser, R. (1963). Instructional Technology and the Measurement of Learning Outcomes. American Psychologist, 18(8), 519–521.

        -

        Guskey, T. R. (2010). Lessons of Mastery Learning. Educational Leadership, 68(2), 52–57.

        -

        Harlen, W. & Deakin Crick, R. (2003). Testing and Motivation for Learning. Assessment in Education, 10(2), 169–207.

        +

        Fredricks, J. A., Blumenfeld, P. C. & Paris, A. H. (2004). School Engagement: Potential of the Concept, State of the Evidence. Review of Educational Research, 74(1), 59 – 109.

        +

        Glaser, R. (1963). Instructional Technology and the Measurement of Learning Outcomes. American Psychologist, 18(8), 519 – 521.

        +

        Guskey, T. R. (2010). Lessons of Mastery Learning. Educational Leadership, 68(2), 52 – 57.

        +

        Harlen, W. & Deakin Crick, R. (2003). Testing and Motivation for Learning. Assessment in Education, 10(2), 169 – 207.

        Hattie, J. (2009). Visible Learning. London: Routledge.

        -

        Hattie, J. & Timperley, H. (2007). The Power of Feedback. Review of Educational Research, 77(1), 81–112.

        -

        Hughes, G. (2011). Towards a Personal Best: A Case for Introducing Ipsative Assessment in Higher Education. Studies in Higher Education, 36(3), 353–367.

        -

        Kingston, N. & Nash, B. (2011). Formative Assessment: A Meta-Analysis and a Call for Research. Educational Measurement: Issues and Practice, 30(4), 28–37.

        -

        Kluger, A. N. & DeNisi, A. (1996). The Effects of Feedback Interventions on Performance. Psychological Bulletin, 119(2), 254–284.

        -

        Nicol, D. J. & Macfarlane-Dick, D. (2006). Formative Assessment and Self-Regulated Learning: A Model and Seven Principles of Good Feedback Practice. Studies in Higher Education, 31(2), 199–218.

        -

        Ramaprasad, A. (1983). On the Definition of Feedback. Behavioral Science, 28(1), 4–13.

        -

        Sadler, D. R. (1989). Formative Assessment and the Design of Instructional Systems. Instructional Science, 18(2), 119–144.

        -

        Shute, V. J. (2008). Focus on Formative Feedback. Review of Educational Research, 78(1), 153–189.

        +

        Hattie, J. & Timperley, H. (2007). The Power of Feedback. Review of Educational Research, 77(1), 81 – 112.

        +

        Hughes, G. (2011). Towards a Personal Best: A Case for Introducing Ipsative Assessment in Higher Education. Studies in Higher Education, 36(3), 353 – 367.

        +

        Kingston, N. & Nash, B. (2011). Formative Assessment: A Meta-Analysis and a Call for Research. Educational Measurement: Issues and Practice, 30(4), 28 – 37.

        +

        Kluger, A. N. & DeNisi, A. (1996). The Effects of Feedback Interventions on Performance. Psychological Bulletin, 119(2), 254 – 284.

        +

        Nicol, D. J. & Macfarlane-Dick, D. (2006). Formative Assessment and Self-Regulated Learning: A Model and Seven Principles of Good Feedback Practice. Studies in Higher Education, 31(2), 199 – 218.

        +

        Ramaprasad, A. (1983). On the Definition of Feedback. Behavioral Science, 28(1), 4 – 13.

        +

        Sadler, D. R. (1989). Formative Assessment and the Design of Instructional Systems. Instructional Science, 18(2), 119 – 144.

        +

        Shute, V. J. (2008). Focus on Formative Feedback. Review of Educational Research, 78(1), 153 – 189.

        Vygotskij, L. S. (1978). Mind in Society. Cambridge, MA: Harvard University Press.

        -

        Weiner, B. (1985). An Attributional Theory of Achievement Motivation and Emotion. Psychological Review, 92(4), 548–573.

        +

        Weiner, B. (1985). An Attributional Theory of Achievement Motivation and Emotion. Psychological Review, 92(4), 548 – 573.

        Wiliam, D. (2011). Embedded Formative Assessment. Bloomington: Solution Tree Press.

        Wisniewski, B., Zierer, K. & Hattie, J. (2020). The Power of Feedback Revisited: A Meta-Analysis of Educational Feedback Research. Frontiers in Psychology, 10:3087.

        -

        Zimmerman, B. J. (2002). Becoming a Self-Regulated Learner: An Overview. Theory Into Practice, 41(2), 64–70.

        +

        Zimmerman, B. J. (2002). Becoming a Self-Regulated Learner: An Overview. Theory Into Practice, 41(2), 64 – 70.

        diff --git a/App/index.html b/App/index.html index fbf3bb5..81ae499 100644 --- a/App/index.html +++ b/App/index.html @@ -408,7 +408,7 @@

        Sonnensystem TESTEN

        Sonne, Erde und Mond als 3D-Modell. Tag und Nacht, Jahreszeiten, Sonnen- und Mondfinsternis selbst beobachten.

        -
        1.–2. Klasse15–25 min
        +
        1.–2. Klasse15 – 25 min
        📖 Mehr erfahren ▶ Simulation starten @@ -462,7 +462,7 @@

        Flussmanagement

        Deiche bauen, Fluss begradigen oder renaturieren? Finde die Balance zwischen Hochwasserschutz, Ökologie und Wirtschaft.

        -
        1.–2. Klasse10–35 min
        +
        1.–2. Klasse10 – 35 min
        📖 Mehr erfahren 🔒 Anmelden diff --git a/App/pages/weltkueche-uebersicht.html b/App/pages/weltkueche-uebersicht.html index 116498d..2c1a521 100644 --- a/App/pages/weltkueche-uebersicht.html +++ b/App/pages/weltkueche-uebersicht.html @@ -1 +1 @@ -Weltküche — Produktions-Übersicht (für Lehrpersonen)

        🌍 Weltküche — Lehrer-Übersicht

        Stand: 2026-06-10 · Quelle: FAOSTAT 2022/2023, IPC, ICO, USDA-FAS, EUROSTAT (gerundet auf 1.000 t). Faktencheck-Sweep: 2026-06-10.

        👁 Live-Beobachtung der Klasse

        Was die Klasse gerade in der Weltküche tut, siehst du in der Plattform-Live-Ansicht (oben unter „Lehrer-Cockpit"). Pro Schüler:in siehst du: aktuelles Gericht, aktive Welt-Zutat, Punkte, Abzeichen, Fehler-Anzahl. Heartbeat alle 4 Sekunden.

        🔴 Lehrer-Cockpit öffnen
        Was steht hier? Pro Welt-Zutat: in welchen Ländern wird sie in nennenswerten Mengen für den Markt geerntet — und in welchen Ländern könnte sie theoretisch wachsen (passende Klimazone), aber kein Hauptmarkt-Anbau.

        Wie das Spiel das nutzt: Jede Aufgabe zeigt 2 zufällig ausgewählte Produzenten als „korrekt" plus 2-4 Distraktoren. Klickt ein:e Schüler:in ein „theoretisch mögliches" Land an, gibt das Spiel ein differenzierteres Feedback („Möglich, aber kein Hauptproduzent") als bei einem klimatisch unmöglichen Land.
        Datenpräzision: Mengen-Angaben sind auf 1.000 t gerundet und basieren auf öffentlichen FAOSTAT- und Branchen-Statistiken 2022/2023. Sie sollen Größenordnungen vermitteln, keine exakte Buchhaltung sein. Bei Käse (Feta, Mozzarella, Pecorino) und Sojasauce sind Werte teils geschätzt oder als „weltweit verbreitet" markiert — diese Produkte sind eher kulturelle als landwirtschaftliche Größen.

        Inhaltsverzeichnis

        🍎 Apfel

        Vorkommen in Gerichten:
        🥧 Apfelstrudel

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China49.000.000– nur Eigenkonsum
        🇺🇸USA5.000.000✓ ja
        🇹🇷Türkei4.900.000✓ ja
        🇵🇱Polen4.300.000✓ EU-NachbarGrößter EU-Produzent
        🇮🇳Indien2.400.000– nur Eigenkonsum
        🇮🇷Iran2.300.000– nur Eigenkonsum
        🇮🇹Italien2.300.000✓ EU-NachbarSüdtirol
        🇷🇺Russland1.700.000– nur Eigenkonsum
        🇫🇷Frankreich1.500.000✓ EU-Nachbar
        🇨🇱Chile1.300.000~ Off-Season (EU-Winter)
        🇿🇦Südafrika1.000.000~ Off-Season (EU-Winter)
        🇩🇪Deutschland970.000✓ EU-Nachbar
        🇦🇷Argentinien850.000~ Off-Season (EU-Winter)
        🇺🇦Ukraine800.000△ Welt-Big-Player, AT-Handel selten
        🇭🇺Ungarn650.000✓ EU-Nachbar
        🇳🇿Neuseeland570.000~ Off-Season (EU-Winter)
        🇪🇸Spanien500.000✓ ja
        🇷🇴Rumänien470.000✓ ja
        🇷🇸Serbien470.000✓ ja
        🇳🇱Niederlande270.000✓ EU-Nachbar
        🇧🇪Belgien200.000✓ EU-Nachbar
        🇦🇹Österreich190.000✓ EU-NachbarSteiermark — größtes AT-Obstanbaugebiet
        🇨🇭Schweiz180.000✓ EU-NachbarMostindien (Thurgau) — wichtiger Apfel-Importeur für Westösterreich
        🇨🇿Tschechien140.000✓ EU-Nachbar
        🇭🇷Kroatien65.000✓ EU-Nachbar
        🇸🇰Slowakei35.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇬🇷 Griechenland🇧🇬 Bulgarien🇧🇾 Belarus🇨🇦 Kanada🇲🇽 Mexiko🇯🇵 Japan🇰🇷 Südkorea🇮🇪 Irland🇬🇧 Großbritannien

        💡 Ein heimischer Apfel reist oft nur wenige Kilometer — ganz anders als Vanille oder Kakao vom anderen Ende der Welt.

        🥑 Avocado

        Vorkommen in Gerichten:
        🍣 Sushi-Maki🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇲🇽Mexiko2.500.000– geht nach Asien
        🇨🇴Kolumbien1.100.000✓ ja
        🇵🇪Peru800.000✓ ja
        🇮🇩Indonesien620.000– nur Eigenkonsum
        🇩🇴Dom. Republik600.000△ Welt-Big-Player, AT-Handel selten
        🇰🇪Kenia410.000✓ ja
        🇧🇷Brasilien300.000– nur Eigenkonsum
        🇺🇸USA240.000– nur EigenkonsumKalifornien
        🇨🇱Chile170.000~ Off-Season (EU-Winter)
        🇮🇱Israel130.000✓ ja
        🇿🇦Südafrika120.000✓ ja
        🇪🇸Spanien100.000✓ jaAndalusien — größter EU-Produzent

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇵🇭 Philippinen🇹🇭 Thailand🇬🇹 Guatemala🇻🇪 Venezuela🇪🇨 Ecuador🇲🇦 Marokko🇹🇿 Tansania

        💡 Avocadobäume brauchen sehr viel Wasser — in trockenen Anbaugebieten wie Mexiko-Michoacán wird das zum Umweltproblem.

        🍌 Banane

        — Aktuell in keinem Gericht direkt verwendet.

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien33.000.000– nur Eigenkonsum
        🇨🇳China12.000.000– nur Eigenkonsum
        🇮🇩Indonesien10.000.000– nur Eigenkonsum
        🇧🇷Brasilien6.800.000– nur Eigenkonsum
        🇪🇨Ecuador6.200.000✓ jaGrößter Export-Exporteur (~25 % Welthandel)
        🇵🇭Philippinen5.800.000△ Welt-Big-Player, AT-Handel selten
        🇬🇹Guatemala4.400.000✓ ja
        🇨🇴Kolumbien3.700.000✓ ja
        🇨🇷Costa Rica2.400.000✓ ja
        🇲🇽Mexiko2.300.000– regional
        🇭🇳Honduras1.100.000✓ ja
        🇵🇦Panama590.000✓ ja
        🇺🇬Uganda500.000– nur EigenkonsumPro-Kopf-Verzehr Nr. 1 weltweit
        🇩🇴Dom. Republik430.000✓ ja
        🇨🇲Kamerun320.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇹🇭 Thailand🇲🇾 Malaysia🇹🇿 Tansania🇰🇪 Kenia🇲🇬 Madagaskar🇱🇰 Sri Lanka🇵🇪 Peru🇻🇪 Venezuela

        💡 Bananen werden grün geerntet und reifen auf dem langen Schiffsweg nach Europa nach.

        🧈 Butter

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🥟 Kärntner Kasnudeln🧀 Vorarlberger Käsespätzle (Käsknöpfle)🍑 Wachauer Marillenknödel🥩 Wiener Schnitzel🎂 Sachertorte🥧 Apfelstrudel🥐 Topfengolatsche🥨 Bayerische Brezel mit Obatzda🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🍳 Zürcher Geschnetzeltes mit Rösti🍆 Moussaka🥮 Kanelbulle (Zimtschnecke)🥟 Pierogi Ruskie (Teigtaschen)🍲 Ungarisches Gulasch (Gulyás)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien6.500.000– nur Eigenkonsummeist Ghee
        🇺🇸USA990.000– nur Eigenkonsum
        🇩🇪Deutschland510.000✓ EU-Nachbar
        🇳🇿Neuseeland450.000△ Welt-Big-Player, AT-Handel selten
        🇵🇰Pakistan450.000– nur Eigenkonsum
        🇫🇷Frankreich370.000✓ EU-Nachbar
        🇷🇺Russland260.000– nur Eigenkonsum
        🇮🇪Irland250.000✓ jaKerrygold — größter Weidemilch-Butter-Exporteur
        🇲🇽Mexiko240.000– nur Eigenkonsum
        🇵🇱Polen220.000✓ EU-Nachbar
        🇳🇱Niederlande180.000✓ EU-Nachbar
        🇬🇧Großbritannien150.000△ Welt-Big-Player, AT-Handel selten
        🇨🇳China130.000– nur Eigenkonsum
        🇧🇷Brasilien95.000– nur Eigenkonsum
        🇧🇪Belgien95.000✓ EU-Nachbar
        🇮🇹Italien85.000✓ EU-Nachbar
        🇩🇰Dänemark45.000✓ jaLurpak
        🇦🇹Österreich40.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇭 Schweiz🇨🇿 Tschechien🇭🇺 Ungarn🇦🇷 Argentinien🇦🇺 Australien🇨🇦 Kanada🇺🇦 Ukraine🇧🇾 Belarus

        💡 Irische Butter ist oft gelber als deutsche — weil die Kühe das ganze Jahr auf der Weide stehen und mehr Beta-Carotin aufnehmen.

        🍄 Champignons

        Vorkommen in Gerichten:
        🍳 Zürcher Geschnetzeltes mit Rösti

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China8.200.000– nur Eigenkonsum
        🇺🇸USA390.000– nur Eigenkonsum
        🇵🇱Polen370.000✓ EU-NachbarGrößter EU-Produzent
        🇳🇱Niederlande300.000✓ EU-Nachbar
        🇪🇸Spanien170.000✓ ja
        🇨🇦Kanada130.000△ Welt-Big-Player, AT-Handel selten
        🇫🇷Frankreich100.000✓ EU-Nachbar
        🇬🇧Großbritannien100.000△ Welt-Big-Player, AT-Handel selten
        🇦🇺Australien90.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland85.000✓ EU-Nachbar
        🇮🇪Irland75.000✓ ja
        🇮🇹Italien75.000✓ EU-Nachbar
        🇯🇵Japan65.000△ Welt-Big-Player, AT-Handel selten
        🇧🇪Belgien45.000✓ EU-Nachbar
        🇭🇺Ungarn23.000✓ EU-Nachbar
        🇦🇹Österreich23.000✓ EU-Nachbar
        🇨🇭Schweiz7.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇿 Tschechien🇸🇰 Slowakei🇭🇷 Kroatien🇷🇴 Rumänien🇧🇬 Bulgarien🇵🇹 Portugal🇬🇷 Griechenland

        💡 Champignons brauchen kein Tageslicht — sie wachsen in dunklen Hallen auf Stroh-Mist-Kompost.

        🌶️ Chili

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis🍜 Pad Thai🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien2.000.000✓ ja
        🇨🇳China300.000– nur Eigenkonsum
        🇵🇪Peru170.000✓ ja
        🇲🇽Mexiko150.000– nur Eigenkonsum
        🇪🇸Spanien80.000✓ ja
        🇹🇭Thailand60.000✓ ja
        🇵🇰Pakistan40.000– nur Eigenkonsum
        🇪🇹Äthiopien30.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇩 Indonesien🇵🇭 Philippinen🇲🇾 Malaysia🇻🇳 Vietnam🇧🇷 Brasilien🇨🇴 Kolumbien🇹🇷 Türkei🇬🇷 Griechenland🇮🇹 Italien

        💡 Die Schärfe kommt vom Stoff Capsaicin; gemessen wird sie in Scoville-Einheiten.

        🥚 Eier

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🥟 Kärntner Kasnudeln🧀 Vorarlberger Käsespätzle (Käsknöpfle)🍑 Wachauer Marillenknödel🥩 Wiener Schnitzel🎂 Sachertorte🥧 Apfelstrudel🥐 Topfengolatsche🥟 Schwäbische Maultaschen🍰 Schwarzwälder Kirschtorte🍝 Spaghetti Carbonara🍳 Tortilla Española🥧 Quiche Lorraine🍆 Moussaka🥮 Kanelbulle (Zimtschnecke)🥟 Pierogi Ruskie (Teigtaschen)🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China30.000.000– nur Eigenkonsum
        🇺🇸USA6.700.000– nur Eigenkonsum
        🇮🇳Indien6.500.000– nur Eigenkonsum
        🇮🇩Indonesien5.800.000– nur Eigenkonsum
        🇧🇷Brasilien3.500.000– nur Eigenkonsum
        🇲🇽Mexiko3.000.000– nur Eigenkonsum
        🇯🇵Japan2.700.000– nur Eigenkonsum
        🇷🇺Russland2.700.000– nur Eigenkonsum
        🇹🇷Türkei1.200.000– nur Eigenkonsum
        🇮🇷Iran1.200.000– nur Eigenkonsum
        🇫🇷Frankreich930.000✓ EU-Nachbar
        🇪🇸Spanien930.000✓ ja
        🇩🇪Deutschland860.000✓ EU-Nachbar
        🇮🇹Italien790.000✓ EU-Nachbar
        🇵🇱Polen650.000✓ EU-Nachbar
        🇳🇱Niederlande650.000✓ EU-Nachbar
        🇦🇹Österreich140.000✓ EU-NachbarAT-Eier-Versorgung zu ~88 % aus AT (Eier-Kennzeichnung AT-0/AT-1/AT-2)
        🇨🇭Schweiz65.000✓ EU-NachbarCH-Eier fast nur für Schweizer Markt; ein Teil kommt aber auch nach AT

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇦 Kanada🇦🇷 Argentinien🇨🇱 Chile🇪🇬 Ägypten🇺🇦 Ukraine🇧🇾 Belarus🇨🇿 Tschechien🇭🇺 Ungarn🇷🇴 Rumänien🇬🇷 Griechenland🇵🇹 Portugal🇵🇰 Pakistan🇹🇭 Thailand🇵🇭 Philippinen🇰🇪 Kenia

        💡 Eier können prinzipiell überall produziert werden — Hühner sind extrem anpassungsfähig. Die meisten Eier in Europa werden lokal gegessen.

        🥜 Erdnüsse

        Vorkommen in Gerichten:
        🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China18.000.000– nur Eigenkonsum
        🇮🇳Indien7.000.000– nur Eigenkonsum
        🇳🇬Nigeria4.500.000– nur Eigenkonsum
        🇺🇸USA3.000.000✓ ja
        🇸🇩Sudan2.800.000– nur Eigenkonsum
        🇸🇳Senegal1.700.000– nur Eigenkonsum
        🇦🇷Argentinien1.000.000✓ ja
        🇧🇷Brasilien850.000– nur Eigenkonsum
        🇹🇿Tansania800.000△ Welt-Big-Player, AT-Handel selten
        🇨🇲Kamerun500.000△ Welt-Big-Player, AT-Handel selten
        🇮🇩Indonesien400.000△ Welt-Big-Player, AT-Handel selten
        🇻🇳Vietnam400.000△ Welt-Big-Player, AT-Handel selten
        🇪🇹Äthiopien200.000– nur Eigenkonsum
        🇪🇬Ägypten200.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇽 Mexiko🇵🇾 Paraguay🇧🇴 Bolivien🇵🇪 Peru🇨🇴 Kolumbien🇹🇭 Thailand🇵🇭 Philippinen🇵🇰 Pakistan🇬🇭 Ghana🇺🇬 Uganda🇰🇪 Kenia

        💡 Botanisch sind Erdnüsse keine Nüsse, sondern Hülsenfrüchte — verwandt mit Erbsen und Bohnen.

        🧪 Essig (Wein- / Apfelessig)

        Vorkommen in Gerichten:
        🍖 Rheinischer Sauerbraten🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇹Italien✓ EU-NachbarAceto Balsamico di Modena (PDO)
        🇩🇪Deutschland✓ EU-NachbarApfelessig + Weinessig
        🇫🇷Frankreich✓ EU-NachbarVinaigre de Vin (Orléans), Vinaigre de Cidre
        🇪🇸Spanien✓ jaSherry-Essig (Jerez)
        🇨🇳China✓ jaReisessig (Zhenjiang)
        🇯🇵Japan✓ jaReisessig (für Sushi)
        🇦🇹Österreich✓ EU-NachbarGegenbauer (Wien) — international preisgekrönt
        🇺🇸USA✓ jaApple Cider Vinegar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇬🇷 Griechenland🇹🇷 Türkei🇨🇭 Schweiz🇧🇪 Belgien🇳🇱 Niederlande🇵🇱 Polen🇭🇺 Ungarn

        💡 Aceto Balsamico Tradizionale di Modena reift mindestens 12 Jahre in Holzfässern — eine kleine Flasche kann über 100 € kosten.

        🧀 Feta (Käse)

        Vorkommen in Gerichten:
        🍆 Moussaka

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇬🇷Griechenland140.000✓ jaPDO-geschützt seit 2002 — nur GR-Feta darf so heißen
        🇧🇬Bulgarien35.000✓ jaBulgarian White Brined Cheese — sehr ähnlich, darf aber nicht „Feta" heißen
        🇩🇰Dänemark18.000✓ jaSalakis-Stil, Marktname „Feta-Stil"
        🇫🇷Frankreich10.000✓ EU-NachbarFeta-ähnlich aus Schafmilch

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇷 Türkei🇷🇴 Rumänien🇷🇸 Serbien🇮🇹 Italien🇪🇸 Spanien

        💡 Echter Feta ist seit 2002 EU-rechtlich Griechenland vorbehalten — andere Länder dürfen nur „Käse nach griechischer Art" verkaufen.

        🐟 Fischsauce

        Vorkommen in Gerichten:
        🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇻🇳Vietnam✓ jaNước mắm Phú Quốc — PDO-geschützt
        🇹🇭Thailand✓ jaNam pla — größter Welt-Exporteur
        🇵🇭Philippinen△ Welt-Big-Player, AT-Handel seltenPatis
        🇰🇭Kambodscha△ Welt-Big-Player, AT-Handel seltenTeuk trei
        🇲🇲Myanmar– nur EigenkonsumNgan-pya-ye
        🇰🇷Südkorea△ Welt-Big-Player, AT-Handel seltenAekjeot — für Kimchi-Würze
        🇨🇳China△ Welt-Big-Player, AT-Handel seltenYú lù
        🇯🇵Japan△ Welt-Big-Player, AT-Handel seltenIshiru, Shottsuru — regional, sehr selten
        🇮🇹Italien✓ EU-NachbarColatura di Alici — antike römische Tradition (garum)

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇩 Indonesien🇲🇾 Malaysia🇱🇰 Sri Lanka🇧🇩 Bangladesch

        💡 Schon die alten Römer machten Fischsauce („Garum") — die heutige italienische Colatura di Alici ist deren direkter Nachfahre.

        🥩 Fleisch (Kalb/Schwein/Rind, regional)

        Vorkommen in Gerichten:
        🍲 Steirisches Wurzelfleisch🥩 Wiener Schnitzel🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🍳 Zürcher Geschnetzeltes mit Rösti

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇩🇪Deutschland7.500.000✓ EU-NachbarGroßer Schweinefleisch-Produzent
        🇪🇸Spanien7.300.000✓ ja
        🇫🇷Frankreich5.400.000✓ EU-Nachbar
        🇮🇹Italien4.200.000✓ EU-Nachbar
        🇵🇱Polen4.200.000✓ EU-Nachbar
        🇳🇱Niederlande3.500.000✓ EU-Nachbar
        🇧🇪Belgien1.700.000✓ EU-Nachbar
        🇩🇰Dänemark1.500.000✓ ja
        🇭🇺Ungarn1.100.000✓ EU-Nachbar
        🇷🇴Rumänien1.100.000✓ ja
        🇮🇪Irland870.000✓ ja
        🇦🇹Österreich850.000✓ EU-NachbarBeim Wiener Schnitzel praktisch immer heimisch
        🇨🇿Tschechien650.000✓ EU-Nachbar
        🇨🇭Schweiz425.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇬🇧 Großbritannien🇵🇹 Portugal🇬🇷 Griechenland🇸🇰 Slowakei🇧🇬 Bulgarien🇷🇸 Serbien🇭🇷 Kroatien🇸🇪 Schweden🇳🇴 Norwegen🇫🇮 Finnland🇮🇸 Island

        💡 Bei einem traditionellen Wiener Schnitzel kommt das Kalbfleisch fast immer aus dem nahen Umfeld (AT, DE, NL).

        🥬 Sommer-Gemüse (Mittelmeer)

        Vorkommen in Gerichten:
        🥟 Schwäbische Maultaschen🥘 Paella Valenciana🍆 Ratatouille Niçoise🍆 Moussaka🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇹🇷Türkei32.000.000✓ ja
        🇪🇬Ägypten15.000.000✓ ja
        🇪🇸Spanien13.000.000✓ jaGrößter EU-Frischgemüse-Exporteur
        🇮🇹Italien10.000.000✓ EU-Nachbar
        🇫🇷Frankreich5.500.000✓ EU-Nachbar
        🇳🇱Niederlande5.100.000✓ EU-Nachbar
        🇲🇦Marokko4.000.000✓ ja
        🇬🇷Griechenland3.500.000✓ ja
        🇵🇹Portugal2.400.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇭🇷 Kroatien🇷🇸 Serbien🇧🇬 Bulgarien🇷🇴 Rumänien🇭🇺 Ungarn🇹🇳 Tunesien🇩🇿 Algerien🇮🇱 Israel🇲🇽 Mexiko

        💡 Im Winter kommt das Gemüse aus beheizten Gewächshäusern in Almería (ES) — ein 350 km² großer Plastikgewächshaus-Komplex, sichtbar aus dem Weltall.

        🌾 Hartweizen (Durum)

        Vorkommen in Gerichten:
        🍑 Wachauer Marillenknödel🍕 Pizza Margherita🍝 Spaghetti Carbonara

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇦Kanada5.400.000✓ jaGrößter Welt-Exporteur
        🇮🇹Italien4.200.000✓ EU-NachbarGrößter EU-Produzent
        🇹🇷Türkei3.300.000△ Welt-Big-Player, AT-Handel selten
        🇺🇸USA2.800.000✓ ja
        🇫🇷Frankreich1.800.000✓ EU-Nachbar
        🇩🇿Algerien1.700.000– nur Eigenkonsum
        🇸🇾Syrien1.500.000– nur Eigenkonsum
        🇲🇦Marokko900.000– nur Eigenkonsum
        🇪🇸Spanien800.000✓ ja
        🇬🇷Griechenland700.000✓ ja
        🇹🇳Tunesien500.000– nur Eigenkonsum
        🇦🇺Australien500.000✓ ja
        🇲🇽Mexiko300.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇭🇺 Ungarn🇷🇴 Rumänien🇺🇦 Ukraine🇷🇺 Russland🇦🇷 Argentinien🇮🇷 Iran🇪🇬 Ägypten

        💡 Hartweizen (Durum) ist besonders eiweißreich — darum hält Pasta beim Kochen ihre Form.

        🫧 Hefe

        Vorkommen in Gerichten:
        🥨 Bayerische Brezel mit Obatzda🍕 Pizza Margherita🥮 Kanelbulle (Zimtschnecke)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇫🇷Frankreich✓ EU-NachbarLesaffre — Weltmarktführer
        🇩🇪Deutschland✓ EU-NachbarKlein-Hefe seit 1885 (Wiener Methode entstand hier)
        🇦🇹Österreich✓ EU-NachbarWiener Hefe-Methode (Mautner Markhof, 1846)
        🇺🇸USA△ Welt-Big-Player, AT-Handel selten
        🇧🇪Belgien✓ EU-Nachbar
        🇳🇱Niederlande✓ EU-Nachbar
        🇨🇳China△ Welt-Big-Player, AT-Handel selten
        🇹🇷Türkei△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇹 Italien🇪🇸 Spanien🇬🇧 Großbritannien🇮🇪 Irland🇵🇱 Polen🇨🇿 Tschechien

        💡 Die moderne Bäcker-Backhefe wurde 1846 in Wien als „Wiener Verfahren" entwickelt — bis dahin nutzte man Brauerei-Hefe als Abfall.

        🐔 Hähnchen / Huhn (Paella)

        Vorkommen in Gerichten:
        🥘 Paella Valenciana

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇹🇷Türkei2.500.000✓ ja
        🇫🇷Frankreich1.900.000✓ EU-Nachbar
        🇪🇸Spanien1.600.000✓ jaDrittgrößter Geflügelproduzent der EU
        🇮🇹Italien1.400.000✓ EU-Nachbar
        🇪🇬Ägypten1.300.000△ Welt-Big-Player, AT-Handel selten
        🇲🇦Marokko800.000△ Welt-Big-Player, AT-Handel selten
        🇵🇹Portugal300.000✓ ja
        🇬🇷Griechenland220.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇭🇷 Kroatien🇹🇳 Tunesien🇩🇿 Algerien🇮🇷 Iran🇮🇱 Israel

        💡 In einer echten Paella Valenciana kommen Huhn UND Kaninchen rein — beides aus spanischer Landwirtschaft.

        🫚 Ingwer

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien2.300.000✓ ja
        🇳🇬Nigeria690.000– nur Eigenkonsum
        🇨🇳China580.000✓ ja
        🇳🇵Nepal290.000– nur Eigenkonsum
        🇮🇩Indonesien200.000△ Welt-Big-Player, AT-Handel selten
        🇹🇭Thailand160.000△ Welt-Big-Player, AT-Handel selten
        🇧🇩Bangladesch80.000– nur Eigenkonsum
        🇨🇲Kamerun55.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇵🇭 Philippinen🇱🇰 Sri Lanka🇲🇾 Malaysia🇰🇭 Kambodscha🇧🇷 Brasilien🇵🇪 Peru🇨🇴 Kolumbien🇲🇽 Mexiko🇬🇹 Guatemala🇹🇿 Tansania

        💡 Ingwer wird seit über 3000 Jahren als Gewürz und Heilmittel verwendet.

        ☕ Kaffee

        — Aktuell in keinem Gericht direkt verwendet.

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇧🇷Brasilien3.500.000✓ ja
        🇻🇳Vietnam1.900.000✓ ja
        🇨🇴Kolumbien860.000✓ ja
        🇮🇩Indonesien770.000✓ ja
        🇪🇹Äthiopien500.000✓ jaHeimat des Kaffees (Wildform)
        🇭🇳Honduras450.000✓ ja
        🇮🇳Indien370.000✓ ja
        🇺🇬Uganda300.000✓ ja
        🇲🇽Mexiko280.000✓ ja
        🇵🇪Peru250.000✓ ja
        🇬🇹Guatemala240.000✓ ja
        🇰🇪Kenia50.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇪 Venezuela🇪🇨 Ecuador🇨🇷 Costa Rica🇵🇦 Panama🇨🇺 Kuba🇩🇴 Dom. Republik🇨🇲 Kamerun🇹🇿 Tansania🇵🇭 Philippinen

        💡 Kaffee ist nach Erdöl eine der meistgehandelten Rohstoff-Waren der Welt.

        🍫 Kakao

        Vorkommen in Gerichten:
        🎂 Sachertorte🍰 Schwarzwälder Kirschtorte

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇮Elfenbeinküste2.200.000✓ ja
        🇬🇭Ghana680.000✓ ja
        🇮🇩Indonesien650.000✓ ja
        🇪🇨Ecuador400.000✓ ja
        🇨🇲Kamerun300.000✓ ja
        🇳🇬Nigeria280.000✓ ja
        🇧🇷Brasilien220.000✓ ja
        🇵🇪Peru150.000✓ ja
        🇩🇴Dom. Republik75.000✓ ja
        🇨🇴Kolumbien65.000△ Welt-Big-Player, AT-Handel selten
        🇻🇪Venezuela25.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇺 Kuba🇵🇦 Panama🇨🇷 Costa Rica🇲🇬 Madagaskar🇵🇭 Philippinen🇲🇾 Malaysia🇺🇬 Uganda🇹🇿 Tansania

        💡 Aus einer Kakaofrucht kommen ~30–40 Bohnen; für 100 g Schokolade braucht man rund 100 Bohnen.

        🫛 Kardamom

        Vorkommen in Gerichten:
        🥮 Kanelbulle (Zimtschnecke)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇬🇹Guatemala41.000✓ ja
        🇮🇳Indien22.000– nur Eigenkonsum
        🇳🇵Nepal6.000– nur Eigenkonsum
        🇱🇰Sri Lanka500✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇩 Indonesien🇲🇾 Malaysia🇻🇳 Vietnam🇰🇭 Kambodscha🇹🇭 Thailand🇹🇿 Tansania🇺🇬 Uganda🇲🇽 Mexiko🇨🇴 Kolumbien🇵🇪 Peru

        💡 Kardamom kam erst um 1900 nach Guatemala — heute exportiert das Land mehr davon als die Ursprungsregion Indien.

        🥔 Kartoffel

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🥟 Kärntner Kasnudeln🍑 Wachauer Marillenknödel🥩 Wiener Schnitzel🍳 Zürcher Geschnetzeltes mit Rösti🍳 Tortilla Española🥟 Pierogi Ruskie (Teigtaschen)🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China95.000.000– nur Eigenkonsum
        🇮🇳Indien60.000.000– nur Eigenkonsum
        🇺🇦Ukraine21.000.000△ Welt-Big-Player, AT-Handel selten
        🇺🇸USA19.000.000△ Welt-Big-Player, AT-Handel selten
        🇷🇺Russland18.000.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland11.000.000✓ EU-Nachbar
        🇧🇩Bangladesch10.000.000– nur Eigenkonsum
        🇫🇷Frankreich9.000.000✓ EU-Nachbar
        🇵🇱Polen7.000.000✓ EU-Nachbar
        🇳🇱Niederlande7.000.000✓ EU-Nachbar
        🇪🇬Ägypten6.500.000– nur Eigenkonsum
        🇧🇾Belarus5.800.000△ Welt-Big-Player, AT-Handel seltenPro-Kopf-Verzehr Nr. 1 weltweit
        🇵🇪Peru5.800.000– nur EigenkonsumUrsprungsland der Kartoffel — über 4.000 Sorten in den Anden
        🇵🇰Pakistan5.700.000– nur Eigenkonsum
        🇨🇦Kanada5.500.000△ Welt-Big-Player, AT-Handel selten
        🇮🇷Iran5.100.000– nur Eigenkonsum
        🇹🇷Türkei4.900.000△ Welt-Big-Player, AT-Handel selten
        🇧🇪Belgien4.500.000✓ EU-Nachbar
        🇧🇷Brasilien3.700.000– nur Eigenkonsum
        🇷🇴Rumänien2.700.000✓ ja
        🇪🇸Spanien2.000.000✓ ja
        🇲🇽Mexiko1.900.000– nur Eigenkonsum
        🇮🇹Italien1.400.000✓ EU-Nachbar
        🇧🇴Bolivien1.200.000△ Welt-Big-Player, AT-Handel selten
        🇦🇹Österreich870.000✓ EU-NachbarWaldviertel
        🇨🇿Tschechien700.000✓ EU-Nachbar
        🇭🇺Ungarn600.000✓ EU-Nachbar
        🇮🇪Irland330.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇭 Schweiz🇩🇰 Dänemark🇸🇪 Schweden🇫🇮 Finnland🇮🇸 Island🇳🇴 Norwegen🇸🇰 Slowakei🇭🇷 Kroatien🇷🇸 Serbien🇧🇬 Bulgarien🇵🇹 Portugal🇦🇷 Argentinien🇨🇱 Chile🇨🇴 Kolumbien

        💡 Die Kartoffel kommt ursprünglich aus den Anden und wurde erst nach 1565 nach Europa gebracht. In Belarus isst eine Person ~180 kg pro Jahr — Welt-Spitze.

        🟤 Kichererbsen

        Vorkommen in Gerichten:
        🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien13.700.000✓ ja
        🇦🇺Australien930.000✓ ja
        🇹🇷Türkei580.000✓ ja
        🇲🇲Myanmar550.000– nur Eigenkonsum
        🇪🇹Äthiopien530.000– nur Eigenkonsum
        🇵🇰Pakistan270.000– nur Eigenkonsum
        🇷🇺Russland270.000– nur Eigenkonsum
        🇺🇸USA270.000△ Welt-Big-Player, AT-Handel selten
        🇲🇽Mexiko240.000– nur Eigenkonsum
        🇮🇷Iran190.000– nur Eigenkonsum
        🇨🇦Kanada120.000✓ ja
        🇪🇸Spanien60.000✓ ja
        🇮🇹Italien20.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇦 Marokko🇹🇳 Tunesien🇩🇿 Algerien🇪🇬 Ägypten🇸🇾 Syrien🇬🇷 Griechenland🇧🇬 Bulgarien🇦🇷 Argentinien

        💡 Aus Kichererbsen werden Hummus und Falafel gemacht — Grundnahrung im Nahen Osten.

        🍒 Kirschen

        Vorkommen in Gerichten:
        🍰 Schwarzwälder Kirschtorte

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇹🇷Türkei810.000✓ ja
        🇨🇳China460.000– nur Eigenkonsum
        🇺🇸USA420.000– nur Eigenkonsum
        🇨🇱Chile230.000~ Off-Season (EU-Winter)
        🇮🇷Iran200.000– nur Eigenkonsum
        🇵🇱Polen180.000✓ EU-NachbarSauerkirschen Nr. 1 EU
        🇮🇹Italien100.000✓ EU-Nachbar
        🇪🇸Spanien90.000✓ ja
        🇬🇷Griechenland90.000✓ ja
        🇷🇴Rumänien70.000✓ ja
        🇭🇺Ungarn60.000✓ EU-Nachbar
        🇸🇾Syrien60.000– nur Eigenkonsum
        🇩🇪Deutschland50.000✓ EU-Nachbar
        🇫🇷Frankreich40.000✓ EU-Nachbar
        🇷🇸Serbien35.000✓ ja
        🇦🇹Österreich5.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇭🇷 Kroatien🇧🇬 Bulgarien🇨🇿 Tschechien🇸🇰 Slowakei🇦🇷 Argentinien🇦🇺 Australien🇨🇦 Kanada

        💡 Süßkirschen brauchen 700 Stunden unter 7 °C im Winter („Kältereiz") — sonst tragen die Bäume kaum Früchte.

        🧄 Knoblauch

        Vorkommen in Gerichten:
        🫕 Schweizer Käsefondue🥘 Paella Valenciana🍆 Ratatouille Niçoise🍆 Moussaka🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis🍜 Pad Thai🧆 Falafel mit Hummus🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China23.000.000✓ ja
        🇮🇳Indien3.300.000– nur Eigenkonsum
        🇪🇬Ägypten320.000– nur Eigenkonsum
        🇰🇷Südkorea270.000– nur Eigenkonsum
        🇷🇺Russland270.000– nur Eigenkonsum
        🇪🇸Spanien270.000✓ ja
        🇺🇸USA210.000△ Welt-Big-Player, AT-Handel seltenKalifornien (Gilroy)
        🇦🇷Argentinien140.000✓ ja
        🇹🇷Türkei140.000✓ ja
        🇲🇽Mexiko90.000△ Welt-Big-Player, AT-Handel selten
        🇮🇷Iran73.000– nur Eigenkonsum
        🇮🇹Italien25.000✓ EU-Nachbar
        🇫🇷Frankreich20.000✓ EU-NachbarLautrec-Knoblauch (Rosé) — PGI
        🇬🇷Griechenland8.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇦 Marokko🇹🇳 Tunesien🇩🇿 Algerien🇸🇾 Syrien🇵🇹 Portugal🇭🇷 Kroatien🇷🇴 Rumänien🇧🇬 Bulgarien🇭🇺 Ungarn🇦🇹 Österreich🇩🇪 Deutschland🇵🇱 Polen🇵🇪 Peru🇨🇱 Chile🇹🇭 Thailand

        💡 China produziert fast 3 von 4 Knoblauchknollen weltweit. Allein die Region Shandong baut mehr Knoblauch an als der Rest der Welt zusammen.

        🥥 Kokosnuss / Kokosmilch

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇩Indonesien17.000.000✓ ja
        🇵🇭Philippinen14.000.000✓ ja
        🇮🇳Indien14.000.000– nur Eigenkonsum
        🇱🇰Sri Lanka2.500.000✓ ja
        🇧🇷Brasilien2.300.000– nur Eigenkonsum
        🇻🇳Vietnam1.900.000✓ ja
        🇲🇽Mexiko1.300.000– nur Eigenkonsum
        🇹🇭Thailand850.000✓ ja
        🇲🇾Malaysia500.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇬 Madagaskar🇹🇿 Tansania🇰🇪 Kenia🇨🇴 Kolumbien🇻🇪 Venezuela🇪🇨 Ecuador🇨🇺 Kuba🇩🇴 Dom. Republik🇵🇦 Panama🇨🇷 Costa Rica

        💡 Eine Kokospalme trägt bis zu 100 Nüsse pro Jahr — über viele Jahrzehnte hinweg.

        🌿 Koriander (Samen)

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis🧆 Falafel mit Hummus🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien320.000✓ ja
        🇷🇺Russland80.000✓ ja
        🇲🇦Marokko45.000✓ ja
        🇲🇽Mexiko30.000– nur Eigenkonsum
        🇺🇦Ukraine28.000✓ ja
        🇧🇬Bulgarien15.000✓ ja
        🇪🇬Ägypten10.000✓ ja
        🇮🇷Iran8.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇷 Türkei🇸🇾 Syrien🇪🇸 Spanien🇮🇹 Italien🇷🇴 Rumänien🇭🇺 Ungarn🇵🇰 Pakistan🇨🇳 China

        💡 Korianderblätter (frisch) und -samen (getrocknet) schmecken komplett unterschiedlich — viele Leute mögen das eine und hassen das andere.

        🌿 Mediterrane Kräuter

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🥟 Kärntner Kasnudeln🍲 Steirisches Wurzelfleisch🧀 Vorarlberger Käsespätzle (Käsknöpfle)🥩 Wiener Schnitzel🥨 Bayerische Brezel mit Obatzda🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🍳 Zürcher Geschnetzeltes mit Rösti🍕 Pizza Margherita🥘 Paella Valenciana🍆 Ratatouille Niçoise🍆 Moussaka🥟 Pierogi Ruskie (Teigtaschen)🍲 Ungarisches Gulasch (Gulyás)🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇫🇷Frankreich35.000✓ EU-NachbarProvence — Lavendel + Kräuter de Provence
        🇮🇹Italien32.000✓ EU-NachbarSüditalien — Oregano, Basilikum
        🇬🇷Griechenland18.000✓ jaWild gesammelter Bergoregano
        🇲🇦Marokko15.000✓ ja
        🇹🇷Türkei12.000✓ ja
        🇪🇸Spanien11.000✓ ja
        🇪🇬Ägypten8.000✓ jaGroßer Basilikum- und Petersilien-Exporteur für EU
        🇹🇳Tunesien6.000✓ ja
        🇵🇹Portugal4.000✓ ja
        🇭🇷Kroatien3.000✓ EU-NachbarAdria-Inseln — wilder Salbei + Lavendel

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇩🇿 Algerien🇸🇾 Syrien🇮🇱 Israel🇦🇷 Argentinien🇨🇱 Chile🇿🇦 Südafrika🇦🇺 Australien

        💡 Die „Kräuter der Provence" sind eigentlich eine moderne Marketing-Erfindung der 1970er — historisch gab es so eine Mischung gar nicht.

        🌿 Kümmel

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🍲 Ungarisches Gulasch (Gulyás)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇫🇮Finnland28.000✓ ja
        🇳🇱Niederlande15.000✓ EU-Nachbar
        🇨🇦Kanada6.000✓ ja
        🇪🇬Ägypten5.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland4.000✓ EU-Nachbar
        🇵🇱Polen3.000✓ EU-Nachbar
        🇦🇹Österreich500✓ EU-NachbarMühlviertler Kümmel ist regional bedeutsam

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇿 Tschechien🇭🇺 Ungarn🇷🇴 Rumänien🇫🇷 Frankreich🇺🇦 Ukraine

        💡 Kümmel ist eine alte heimische Pflanze in Mitteleuropa — passt in Brot, Sauerkraut und Käse.

        🌿 Kreuzkümmel (Cumin)

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien580.000✓ ja
        🇮🇷Iran60.000✓ ja
        🇹🇷Türkei20.000✓ ja
        🇸🇾Syrien12.000△ Welt-Big-Player, AT-Handel selten
        🇨🇳China8.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇪🇬 Ägypten🇲🇦 Marokko🇹🇳 Tunesien🇩🇿 Algerien🇪🇸 Spanien🇵🇰 Pakistan🇲🇽 Mexiko

        💡 Vorsicht: Kreuzkümmel wird oft mit Kümmel verwechselt — schmeckt aber ganz anders.

        🟡 Kurkuma

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien1.100.000✓ ja
        🇧🇩Bangladesch50.000– nur Eigenkonsum
        🇵🇰Pakistan45.000– nur Eigenkonsum
        🇲🇲Myanmar30.000– nur Eigenkonsum
        🇳🇬Nigeria30.000– nur Eigenkonsum
        🇨🇳China25.000– nur Eigenkonsum
        🇹🇭Thailand12.000△ Welt-Big-Player, AT-Handel selten
        🇮🇩Indonesien10.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇵🇭 Philippinen🇱🇰 Sri Lanka🇲🇬 Madagaskar🇰🇭 Kambodscha🇨🇴 Kolumbien🇵🇪 Peru

        💡 Kurkuma färbt so stark, dass es auch als natürlicher Lebensmittelfarbstoff (E100) genutzt wird.

        🐑 Lammfleisch

        Vorkommen in Gerichten:
        🍆 Moussaka

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China2.400.000✓ jaWeltgrößter Schafhalter — bleibt im Land
        🇮🇳Indien1.000.000✓ ja
        🇦🇺Australien750.000✓ ja
        🇳🇿Neuseeland470.000✓ ja
        🇵🇰Pakistan440.000✓ ja
        🇹🇷Türkei430.000✓ jaGrößter Schafhalter Mittelmeer-Raum, Lamm geht zu großen Teilen nach EU
        🇮🇷Iran370.000✓ ja
        🇩🇿Algerien340.000✓ ja
        🇸🇩Sudan300.000✓ ja
        🇬🇧Großbritannien280.000✓ jaWalisisches Lamm — geht überwiegend in den UK-Markt
        🇪🇸Spanien150.000✓ jaCordero — kastilische Lammhaltung, exportiert auch nach AT
        🇬🇷Griechenland80.000✓ jaKlassischer Moussaka-Lammlieferant
        🇫🇷Frankreich80.000✓ EU-NachbarAgneau, oft aus Pays-de-la-Loire
        🇧🇬Bulgarien30.000✓ ja
        🇮🇹Italien25.000✓ EU-NachbarAgnello, vor allem Süditalien + Sardinien
        🇩🇪Deutschland15.000✓ EU-Nachbar
        🇦🇹Österreich7.000✓ EU-NachbarKleine, aber wachsende Alpschafhaltung

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇷🇴 Rumänien🇺🇦 Ukraine🇲🇦 Marokko🇹🇳 Tunesien🇦🇷 Argentinien🇿🇦 Südafrika🇮🇪 Irland🇮🇸 Island🇪🇬 Ägypten🇸🇾 Syrien

        💡 Moussaka, Kebab und nordafrikanische Tagines werden klassisch mit Lammfleisch zubereitet — in Österreich kommt das meiste Lamm aus der Türkei, Spanien und Griechenland.

        🍪 Lebkuchen-Gewürz

        Vorkommen in Gerichten:
        🍖 Rheinischer Sauerbraten

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇩Indonesien✓ jaZimt + Muskat + Nelken
        🇱🇰Sri Lanka✓ jaCeylon-Zimt
        🇲🇬Madagaskar✓ jaGewürznelken
        🇬🇹Guatemala✓ jaKardamom
        🇮🇳Indien✓ jaIngwer

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇹🇭 Thailand🇲🇾 Malaysia🇰🇭 Kambodscha🇹🇿 Tansania🇨🇲 Kamerun

        💡 Lebkuchen-Gewürz ist eine Mischung von 5-7 Gewürzen — die jede für sich Tropen-Welthandels-Klassiker sind.

        🟢 Limette

        Vorkommen in Gerichten:
        🍜 Pad Thai🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien3.700.000– nur EigenkonsumVor allem Eigenkonsum
        🇲🇽Mexiko3.000.000✓ jaGrößter Welt-Exporteur
        🇦🇷Argentinien1.700.000~ Off-Season (EU-Winter)
        🇧🇷Brasilien1.500.000– nur Eigenkonsum
        🇪🇸Spanien1.100.000✓ ja
        🇹🇷Türkei1.100.000✓ ja
        🇮🇷Iran800.000– nur Eigenkonsum
        🇺🇸USA730.000– geht nach Asien
        🇪🇬Ägypten400.000– nur Eigenkonsum
        🇵🇪Peru270.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇴 Kolumbien🇻🇪 Venezuela🇬🇹 Guatemala🇩🇴 Dom. Republik🇵🇭 Philippinen🇹🇭 Thailand🇻🇳 Vietnam🇬🇷 Griechenland🇮🇹 Italien

        💡 Limettensaft hält angeschnittene Avocado grün — die Säure bremst das Braunwerden.

        🌽 Mais (Tortilla, Polenta)

        Vorkommen in Gerichten:
        🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇺🇸USA350.000.000✓ jaCorn Belt: Iowa, Illinois
        🇨🇳China280.000.000– nur Eigenkonsum
        🇧🇷Brasilien130.000.000△ Welt-Big-Player, AT-Handel selten
        🇦🇷Argentinien60.000.000△ Welt-Big-Player, AT-Handel selten
        🇮🇳Indien35.000.000– nur Eigenkonsum
        🇺🇦Ukraine30.000.000✓ ja
        🇲🇽Mexiko27.000.000– nur Eigenkonsum
        🇨🇦Kanada14.000.000△ Welt-Big-Player, AT-Handel selten
        🇫🇷Frankreich13.000.000✓ EU-Nachbar
        🇷🇴Rumänien12.000.000✓ ja
        🇳🇬Nigeria12.000.000– nur Eigenkonsum
        🇪🇹Äthiopien10.000.000– nur Eigenkonsum
        🇵🇱Polen8.000.000✓ EU-Nachbar
        🇭🇺Ungarn7.000.000✓ EU-Nachbar
        🇷🇸Serbien7.000.000✓ ja
        🇹🇷Türkei6.000.000△ Welt-Big-Player, AT-Handel selten
        🇮🇹Italien6.000.000✓ EU-Nachbar
        🇵🇾Paraguay5.000.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland4.000.000✓ EU-Nachbar
        🇦🇹Österreich2.300.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇭🇷 Kroatien🇧🇬 Bulgarien🇸🇰 Slowakei🇪🇸 Spanien🇵🇪 Peru🇨🇴 Kolumbien🇬🇹 Guatemala🇹🇿 Tansania🇸🇩 Sudan

        💡 Mais ist mengenmäßig das meistangebaute Getreide der Welt — noch vor Weizen und Reis.

        🌿 Majoran

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇪🇬Ägypten12.000✓ ja
        🇫🇷Frankreich2.500✓ EU-Nachbar
        🇬🇷Griechenland1.500✓ ja
        🇹🇷Türkei1.000✓ ja
        🇩🇪Deutschland800✓ EU-Nachbar
        🇦🇹Österreich200✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇹 Italien🇪🇸 Spanien🇵🇹 Portugal🇲🇦 Marokko🇲🇽 Mexiko

        💡 Majoran gehört zu den klassischen DACH-Würzkräutern für Sterz, Knödel und Bratwurst.

        🌰 Mandeln

        Vorkommen in Gerichten:
        🥧 Apfelstrudel

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇺🇸USA1.200.000✓ jaKalifornien (Central Valley)
        🇪🇸Spanien340.000✓ ja
        🇦🇺Australien140.000✓ ja
        🇮🇷Iran130.000– nur Eigenkonsum
        🇲🇦Marokko130.000✓ ja
        🇹🇷Türkei100.000✓ ja
        🇮🇹Italien80.000✓ EU-NachbarSizilien, Apulien
        🇸🇾Syrien60.000– nur Eigenkonsum
        🇩🇿Algerien60.000– nur Eigenkonsum
        🇹🇳Tunesien60.000– nur Eigenkonsum
        🇬🇷Griechenland40.000✓ ja
        🇵🇹Portugal25.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇫🇷 Frankreich🇭🇷 Kroatien🇮🇱 Israel🇪🇬 Ägypten🇦🇷 Argentinien🇨🇱 Chile🇿🇦 Südafrika

        💡 Mandelbäume brauchen Bienen zur Bestäubung — in Kalifornien werden dafür Milliarden Bienen herangekarrt.

        🍑 Marille (Aprikose)

        Vorkommen in Gerichten:
        🍑 Wachauer Marillenknödel🎂 Sachertorte

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇹🇷Türkei880.000✓ jaRegion Malatya
        🇮🇷Iran290.000– nur Eigenkonsum
        🇩🇿Algerien290.000– nur Eigenkonsum
        🇮🇹Italien280.000✓ EU-Nachbar
        🇪🇸Spanien150.000✓ ja
        🇫🇷Frankreich130.000✓ EU-Nachbar
        🇵🇰Pakistan120.000– nur Eigenkonsum
        🇲🇦Marokko120.000✓ ja
        🇸🇾Syrien70.000– nur Eigenkonsum
        🇪🇬Ägypten70.000△ Welt-Big-Player, AT-Handel selten
        🇺🇸USA46.000– nur Eigenkonsum
        🇬🇷Griechenland45.000✓ ja
        🇭🇺Ungarn30.000✓ EU-Nachbar
        🇦🇹Österreich10.000✓ EU-NachbarWachauer Marille (Herkunfts-geschützt) + Burgenland

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇷🇴 Rumänien🇧🇬 Bulgarien🇷🇸 Serbien🇵🇹 Portugal🇭🇷 Kroatien🇨🇿 Tschechien🇸🇰 Slowakei🇨🇱 Chile🇦🇷 Argentinien

        💡 Die Wachauer Marille reift wegen des warmen Pannonischen Klimas mit kühlen Nächten besonders aromatisch.

        🌾 Mehl (Weichweizen)

        Vorkommen in Gerichten:
        🥟 Kärntner Kasnudeln🧀 Vorarlberger Käsespätzle (Käsknöpfle)🍑 Wachauer Marillenknödel🥩 Wiener Schnitzel🎂 Sachertorte🥧 Apfelstrudel🥐 Topfengolatsche🥨 Bayerische Brezel mit Obatzda🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🍰 Schwarzwälder Kirschtorte🍳 Zürcher Geschnetzeltes mit Rösti🍆 Moussaka🥮 Kanelbulle (Zimtschnecke)🥟 Pierogi Ruskie (Teigtaschen)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China137.000.000– nur Eigenkonsum
        🇮🇳Indien110.000.000– nur Eigenkonsum
        🇷🇺Russland92.000.000– nur Eigenkonsum
        🇺🇸USA50.000.000△ Welt-Big-Player, AT-Handel selten
        🇦🇺Australien36.000.000△ Welt-Big-Player, AT-Handel selten
        🇨🇦Kanada35.000.000△ Welt-Big-Player, AT-Handel selten
        🇫🇷Frankreich35.000.000✓ EU-Nachbar
        🇵🇰Pakistan27.000.000– nur Eigenkonsum
        🇺🇦Ukraine25.000.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland21.000.000✓ EU-Nachbar
        🇹🇷Türkei20.000.000– nur Eigenkonsum
        🇦🇷Argentinien20.000.000– nur Eigenkonsum
        🇵🇱Polen12.000.000✓ EU-Nachbar
        🇷🇴Rumänien10.000.000✓ ja
        🇪🇸Spanien7.000.000✓ ja
        🇭🇺Ungarn5.000.000✓ EU-Nachbar
        🇮🇹Italien3.000.000✓ EU-Nachbar
        🇦🇹Österreich1.500.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇷 Iran🇧🇾 Belarus🇨🇿 Tschechien🇪🇬 Ägypten🇲🇦 Marokko🇸🇾 Syrien🇧🇬 Bulgarien🇷🇸 Serbien

        💡 Weizen wird auf der größten Ackerfläche der Welt angebaut — mehr als 220 Mio Hektar.

        🥛 Milch / Sahne

        Vorkommen in Gerichten:
        🎂 Sachertorte🍰 Schwarzwälder Kirschtorte🍳 Zürcher Geschnetzeltes mit Rösti🥧 Quiche Lorraine🍆 Moussaka🥮 Kanelbulle (Zimtschnecke)🥟 Pierogi Ruskie (Teigtaschen)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien220.000.000– nur Eigenkonsum
        🇺🇸USA100.000.000– nur Eigenkonsum
        🇵🇰Pakistan62.000.000– nur Eigenkonsum
        🇨🇳China37.000.000– nur Eigenkonsum
        🇧🇷Brasilien37.000.000– nur Eigenkonsum
        🇩🇪Deutschland32.000.000✓ EU-NachbarGrößter EU-Produzent
        🇷🇺Russland31.000.000– nur Eigenkonsum
        🇫🇷Frankreich25.000.000✓ EU-Nachbar
        🇹🇷Türkei23.000.000– nur Eigenkonsum
        🇳🇿Neuseeland22.000.000△ Welt-Big-Player, AT-Handel seltenGrößter Milch-Exporteur (Fonterra)
        🇬🇧Großbritannien15.400.000△ Welt-Big-Player, AT-Handel selten
        🇵🇱Polen15.000.000✓ EU-Nachbar
        🇳🇱Niederlande14.000.000✓ EU-Nachbar
        🇮🇹Italien13.000.000✓ EU-Nachbar
        🇲🇽Mexiko13.000.000– nur Eigenkonsum
        🇦🇷Argentinien11.000.000△ Welt-Big-Player, AT-Handel selten
        🇨🇦Kanada9.300.000△ Welt-Big-Player, AT-Handel selten
        🇮🇪Irland8.500.000✓ ja
        🇦🇺Australien8.400.000△ Welt-Big-Player, AT-Handel selten
        🇺🇦Ukraine8.200.000△ Welt-Big-Player, AT-Handel selten
        🇪🇸Spanien7.900.000✓ ja
        🇧🇾Belarus7.800.000△ Welt-Big-Player, AT-Handel selten
        🇩🇰Dänemark5.800.000✓ ja
        🇧🇪Belgien4.400.000✓ EU-Nachbar
        🇦🇹Österreich3.800.000✓ EU-NachbarWichtigster Agrar-Sektor; ca. 80 % Hofeigentum
        🇷🇴Rumänien3.500.000✓ ja
        🇨🇭Schweiz3.300.000✓ EU-Nachbar
        🇨🇿Tschechien3.300.000✓ EU-Nachbar
        🇭🇺Ungarn2.000.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇧🇬 Bulgarien🇬🇷 Griechenland🇷🇸 Serbien🇭🇷 Kroatien🇸🇰 Slowakei🇨🇴 Kolumbien🇻🇪 Venezuela🇨🇱 Chile🇵🇪 Peru🇮🇷 Iran

        💡 Indien ist mit Abstand der größte Milch-Produzent — aber fast die ganze Menge bleibt im Land (Joghurt, Ghee, Tee).

        🧀 Mozzarella

        Vorkommen in Gerichten:
        🧀 Vorarlberger Käsespätzle (Käsknöpfle)🥨 Bayerische Brezel mit Obatzda🫕 Schweizer Käsefondue🍕 Pizza Margherita

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇺🇸USA1.500.000– nur EigenkonsumGrößter Volumen-Produzent (für Pizza-Industrie), aber Kuhmilch-Standard
        🇮🇹Italien270.000✓ EU-NachbarMozzarella di Bufala Campana (PDO) aus Büffelmilch
        🇩🇪Deutschland250.000✓ EU-Nachbar
        🇫🇷Frankreich60.000✓ EU-Nachbar
        🇪🇸Spanien40.000✓ ja
        🇦🇷Argentinien35.000– nur Eigenkonsum
        🇵🇱Polen35.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇳🇱 Niederlande🇮🇪 Irland🇩🇰 Dänemark🇦🇹 Österreich🇨🇭 Schweiz🇧🇪 Belgien🇬🇷 Griechenland

        💡 Echter Büffel-Mozzarella muss am selben Tag gegessen werden — er hält nur 24 Stunden frisch.

        🌰 Muskat

        Vorkommen in Gerichten:
        🧀 Vorarlberger Käsespätzle (Käsknöpfle)🥟 Schwäbische Maultaschen🫕 Schweizer Käsefondue🥧 Quiche Lorraine🍆 Moussaka

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇩Indonesien25.000✓ ja
        🇬🇹Guatemala8.000✓ ja
        🇮🇳Indien6.000– nur Eigenkonsum
        🇱🇰Sri Lanka3.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇭 Philippinen🇲🇾 Malaysia🇲🇬 Madagaskar🇨🇲 Kamerun🇹🇿 Tansania

        💡 Muskat war im 17. Jahrhundert so wertvoll, dass die Niederländer und Engländer einen Krieg um die Muskat-Inseln (Banda-Inseln) führten.

        🌾 Gewürznelken

        Vorkommen in Gerichten:
        🍖 Rheinischer Sauerbraten

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇩Indonesien130.000✓ ja
        🇲🇬Madagaskar23.000✓ ja
        🇹🇿Tansania8.000✓ jaSansibar — historisch das „Gewürz-Zentrum" der Welt
        🇮🇳Indien1.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇱🇰 Sri Lanka🇲🇾 Malaysia🇵🇭 Philippinen🇨🇲 Kamerun🇧🇷 Brasilien

        💡 Bei Heinrich VIII galt Gewürznelken-Atem als so unangenehm, dass am englischen Hof aromatisierte Münzen kursierten.

        🟢 Nori (Seetang)

        Vorkommen in Gerichten:
        🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China22.000.000✓ ja
        🇮🇩Indonesien10.000.000△ Welt-Big-Player, AT-Handel selten
        🇵🇭Philippinen1.400.000△ Welt-Big-Player, AT-Handel selten
        🇰🇷Südkorea600.000✓ jaSpezialisiert auf Nori-Blätter
        🇯🇵Japan350.000✓ jaKlassische Nori-Heimat
        🇲🇾Malaysia200.000△ Welt-Big-Player, AT-Handel selten
        🇻🇳Vietnam100.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇭 Thailand🇱🇰 Sri Lanka🇮🇪 Irland🇳🇴 Norwegen🇮🇸 Island🇨🇱 Chile🇵🇪 Peru🇰🇪 Kenia🇹🇿 Tansania🇲🇬 Madagaskar

        💡 Nori wird auf Netzen im flachen Küstenwasser „angebaut" und wie Gemüse geerntet.

        🫒 Olivenöl

        Vorkommen in Gerichten:
        🍲 Steirisches Wurzelfleisch🥧 Apfelstrudel🍕 Pizza Margherita🥘 Paella Valenciana🍳 Tortilla Española🍆 Ratatouille Niçoise🍆 Moussaka🍛 Gemüse-Curry mit Reis🍜 Pad Thai🧆 Falafel mit Hummus🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇪🇸Spanien1.400.000✓ ja
        🇮🇹Italien400.000✓ EU-Nachbar
        🇬🇷Griechenland300.000✓ ja
        🇹🇷Türkei280.000✓ ja
        🇹🇳Tunesien240.000✓ ja
        🇲🇦Marokko200.000✓ ja
        🇵🇹Portugal150.000✓ ja
        🇸🇾Syrien130.000– nur Eigenkonsum
        🇩🇿Algerien100.000– nur Eigenkonsum
        🇦🇷Argentinien25.000~ Off-Season (EU-Winter)
        🇨🇱Chile20.000~ Off-Season (EU-Winter)
        🇭🇷Kroatien5.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇫🇷 Frankreich🇪🇬 Ägypten🇮🇱 Israel🇮🇷 Iran🇺🇸 USA🇦🇺 Australien🇿🇦 Südafrika

        💡 Ein Olivenbaum kann über 1000 Jahre alt werden und trägt jedes Jahr aufs Neue Früchte.

        🍊 Orange / Orangensaft

        — Aktuell in keinem Gericht direkt verwendet.

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇧🇷Brasilien17.000.000✓ jaGrößter Saft-Exporteur weltweit
        🇨🇳China11.000.000– nur Eigenkonsum
        🇮🇳Indien10.000.000– nur Eigenkonsum
        🇲🇽Mexiko4.900.000– nur Eigenkonsum
        🇪🇸Spanien3.600.000✓ jaGrößter EU-Produzent (Valencia)
        🇪🇬Ägypten3.400.000✓ ja
        🇺🇸USA2.900.000– nur EigenkonsumFlorida + Kalifornien
        🇹🇷Türkei1.900.000✓ ja
        🇿🇦Südafrika1.700.000~ Off-Season (EU-Winter)
        🇵🇰Pakistan1.500.000– nur Eigenkonsum
        🇮🇷Iran1.400.000– nur Eigenkonsum
        🇮🇹Italien1.300.000✓ EU-NachbarSizilien
        🇬🇷Griechenland900.000✓ ja
        🇦🇷Argentinien900.000~ Off-Season (EU-Winter)
        🇲🇦Marokko900.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇭🇷 Kroatien🇨🇱 Chile🇩🇿 Algerien🇹🇳 Tunesien🇨🇺 Kuba🇩🇴 Dom. Republik🇦🇺 Australien

        💡 Fast die Hälfte aller Orangen wird zu Saft verarbeitet; Brasilien ist der größte Saft-Exporteur.

        🟥 Paprika-Pulver

        Vorkommen in Gerichten:
        🥨 Bayerische Brezel mit Obatzda🥘 Paella Valenciana🍲 Ungarisches Gulasch (Gulyás)🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China18.000.000– nur Eigenkonsumfrische Paprika (Welt-Nr. 1)
        🇲🇽Mexiko3.300.000– nur Eigenkonsum
        🇹🇷Türkei2.500.000✓ ja
        🇮🇩Indonesien1.300.000– nur Eigenkonsum
        🇪🇸Spanien1.100.000✓ ja
        🇺🇸USA650.000– nur Eigenkonsum
        🇭🇺Ungarn140.000✓ EU-NachbarKlassisches Paprika-Pulver (Edelsüß, Rosenscharf)
        🇵🇪Peru120.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇷🇸 Serbien🇧🇬 Bulgarien🇬🇷 Griechenland🇮🇹 Italien🇷🇴 Rumänien🇦🇷 Argentinien🇨🇱 Chile🇲🇦 Marokko

        💡 Der ungarische Paprika kam erst über die Türken im 16. Jahrhundert nach Mitteleuropa — vorher kannten wir nur Pfeffer.

        🧀 Pecorino (Käse)

        Vorkommen in Gerichten:
        🍝 Spaghetti Carbonara

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇹Italien50.000✓ EU-Nachbar4 PDO-Sorten: Romano, Sardo, Toscano, Siciliano
        🇬🇷Griechenland6.000✓ jaKefalotyri — eigenständig, ähnlicher Stil
        🇫🇷Frankreich500✓ EU-NachbarÄhnliche Schafkäse (Tomme de Brebis)

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇪🇸 Spanien🇵🇹 Portugal🇹🇷 Türkei🇦🇹 Österreich🇨🇭 Schweiz🇷🇴 Rumänien

        💡 Echter Pecorino ist aus Schafmilch (pecora = Schaf). Pecorino Romano wird seit 2000 Jahren gemacht — schon die Römer aßen ihn.

        🧂 Schwarzer Pfeffer

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🥟 Kärntner Kasnudeln🍲 Steirisches Wurzelfleisch🥩 Wiener Schnitzel🥨 Bayerische Brezel mit Obatzda🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🫕 Schweizer Käsefondue🍳 Zürcher Geschnetzeltes mit Rösti🍝 Spaghetti Carbonara🥧 Quiche Lorraine🥟 Pierogi Ruskie (Teigtaschen)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇻🇳Vietnam220.000✓ ja
        🇧🇷Brasilien95.000✓ ja
        🇮🇩Indonesien74.000✓ ja
        🇮🇳Indien62.000✓ ja
        🇱🇰Sri Lanka26.000✓ ja
        🇲🇾Malaysia18.000✓ ja
        🇰🇭Kambodscha18.000✓ ja
        🇨🇳China12.000– nur Eigenkonsum
        🇨🇲Kamerun3.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇭 Thailand🇵🇭 Philippinen🇲🇬 Madagaskar🇨🇴 Kolumbien🇲🇽 Mexiko

        💡 Pfeffer war im Mittelalter so wertvoll, dass man ihn „schwarzes Gold" nannte und damit sogar bezahlte.

        🍚 Reis

        Vorkommen in Gerichten:
        🥘 Paella Valenciana🍛 Gemüse-Curry mit Reis🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China210.000.000– nur Eigenkonsum
        🇮🇳Indien178.000.000✓ ja
        🇧🇩Bangladesch56.000.000– nur Eigenkonsum
        🇮🇩Indonesien54.000.000– nur Eigenkonsum
        🇻🇳Vietnam43.000.000– nur Eigenkonsum
        🇹🇭Thailand32.000.000✓ jaGrößter Reis-Exporteur
        🇲🇲Myanmar25.000.000– nur Eigenkonsum
        🇵🇭Philippinen19.000.000– nur Eigenkonsum
        🇧🇷Brasilien11.000.000– nur Eigenkonsum
        🇰🇭Kambodscha11.000.000– nur Eigenkonsum
        🇵🇰Pakistan10.000.000– nur Eigenkonsum
        🇳🇬Nigeria8.000.000– nur Eigenkonsum
        🇯🇵Japan7.500.000– nur Eigenkonsum
        🇺🇸USA7.000.000✓ jaArkansas + Louisiana
        🇪🇬Ägypten6.500.000– nur Eigenkonsum
        🇰🇷Südkorea4.000.000– nur Eigenkonsum
        🇮🇷Iran3.000.000– nur Eigenkonsum
        🇮🇹Italien1.400.000✓ EU-NachbarPo-Ebene, größter EU-Reis-Anbau
        🇪🇸Spanien600.000✓ jaValencia (Paella-Reis)

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇾 Malaysia🇱🇰 Sri Lanka🇳🇵 Nepal🇹🇿 Tansania🇲🇬 Madagaskar🇨🇴 Kolumbien🇻🇪 Venezuela🇪🇨 Ecuador🇵🇪 Peru🇬🇹 Guatemala🇩🇴 Dom. Republik

        💡 Für mehr als die Hälfte der Menschheit ist Reis das wichtigste Grundnahrungsmittel.

        🍜 Reisnudeln

        Vorkommen in Gerichten:
        🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China✓ jaAus chinesischem Reis traditionell hergestellt
        🇹🇭Thailand✓ jaPad Thai & Sen Yai
        🇻🇳Vietnam✓ jaPhở & Bun
        🇯🇵Japan✓ jaBifun
        🇰🇷Südkorea✓ ja
        🇮🇩Indonesien✓ ja
        🇵🇭Philippinen✓ jaPancit

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇾 Malaysia🇰🇭 Kambodscha🇲🇲 Myanmar🇮🇳 Indien🇱🇰 Sri Lanka🇧🇩 Bangladesch

        💡 Reisnudeln sind glutenfrei — perfekt für Menschen mit Zöliakie.

        🥩 Rind (für Gulasch)

        Vorkommen in Gerichten:
        🍲 Ungarisches Gulasch (Gulyás)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇩🇪Deutschland1.100.000✓ EU-Nachbar
        🇵🇱Polen580.000✓ EU-Nachbar
        🇦🇹Österreich220.000✓ EU-NachbarGrößter Lieferant für Wiener Gasthäuser
        🇷🇸Serbien75.000✓ ja
        🇨🇿Tschechien64.000✓ EU-Nachbar
        🇷🇴Rumänien37.000✓ ja
        🇭🇺Ungarn35.000✓ EU-NachbarUngarisches Grauvieh — eigene historische Rasse
        🇸🇰Slowakei35.000✓ EU-Nachbar
        🇭🇷Kroatien35.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇹 Italien🇫🇷 Frankreich🇨🇭 Schweiz🇧🇬 Bulgarien

        💡 Das Wort Gulasch kommt vom ungarischen *gulyás* = Rinderhirte. Auf der Puszta kochten die Hirten den Eintopf über offenem Feuer.

        🧊 Rohrzucker

        Vorkommen in Gerichten:
        🥧 Apfelstrudel🥮 Kanelbulle (Zimtschnecke)🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇧🇷Brasilien715.000.000✓ jaGrößter Welt-Exporteur, auch für Ethanol
        🇮🇳Indien415.000.000– nur Eigenkonsum
        🇨🇳China110.000.000– nur Eigenkonsum
        🇹🇭Thailand90.000.000✓ ja
        🇵🇰Pakistan88.000.000– nur Eigenkonsum
        🇲🇽Mexiko60.000.000– nur Eigenkonsum
        🇬🇹Guatemala35.000.000△ Welt-Big-Player, AT-Handel selten
        🇮🇩Indonesien32.000.000– nur Eigenkonsum
        🇦🇺Australien29.000.000✓ ja
        🇨🇴Kolumbien25.000.000△ Welt-Big-Player, AT-Handel selten
        🇵🇭Philippinen23.000.000– nur Eigenkonsum
        🇪🇬Ägypten16.000.000– nur Eigenkonsum
        🇨🇺Kuba1.500.000– nur Eigenkonsumhistorisch viel mehr, heute kaum noch

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇪 Venezuela🇵🇪 Peru🇦🇷 Argentinien🇵🇾 Paraguay🇩🇴 Dom. Republik🇵🇦 Panama🇨🇷 Costa Rica🇭🇳 Honduras🇻🇳 Vietnam🇲🇾 Malaysia🇲🇲 Myanmar

        💡 Aus Zuckerrohr macht Brasilien auch Biosprit (Ethanol) für Autos — ein Drittel der Ernte geht in den Tank.

        🍇 Rosinen (getr. Trauben)

        Vorkommen in Gerichten:
        🥧 Apfelstrudel🥐 Topfengolatsche🍖 Rheinischer Sauerbraten

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇹🇷Türkei340.000✓ jaSultanas aus der Ägäis-Region
        🇺🇸USA280.000✓ jaKalifornien (Sun-Maid)
        🇮🇷Iran200.000✓ ja
        🇨🇳China180.000– nur EigenkonsumXinjiang
        🇿🇦Südafrika70.000~ Off-Season (EU-Winter)
        🇨🇱Chile65.000~ Off-Season (EU-Winter)
        🇦🇷Argentinien35.000~ Off-Season (EU-Winter)
        🇬🇷Griechenland20.000✓ jaKorinthen
        🇦🇺Australien8.000~ Off-Season (EU-Winter)

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇹 Italien🇪🇸 Spanien🇵🇹 Portugal🇫🇷 Frankreich🇸🇾 Syrien🇲🇦 Marokko🇩🇿 Algerien🇪🇬 Ägypten

        💡 Eine Sultana (eine Rosinen-Sorte) ist eine kernlose, helle Traube — getrocknet und manchmal mit Schwefel behandelt.

        🌸 Safran

        Vorkommen in Gerichten:
        🥘 Paella Valenciana

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇷Iran430✓ ja
        🇬🇷Griechenland6✓ ja
        🇪🇸Spanien5✓ ja
        🇲🇦Marokko4△ Welt-Big-Player, AT-Handel selten
        🇮🇳Indien3– nur EigenkonsumKashmir-Region
        🇮🇹Italien1✓ EU-NachbarToskana, Abruzzen — winzige Mengen

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇷 Türkei🇸🇾 Syrien🇪🇬 Ägypten🇫🇷 Frankreich🇵🇹 Portugal

        💡 Safran ist das teuerste Gewürz der Welt — für 1 kg Safran braucht man ~150.000 Krokusblüten, alles per Hand gepflückt.

        🥛 Schmand / Saure Sahne

        Vorkommen in Gerichten:
        🥟 Pierogi Ruskie (Teigtaschen)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇩🇪Deutschland✓ EU-Nachbar
        🇵🇱Polen✓ EU-NachbarSmetana
        🇷🇺Russland✓ jaSmetana — Grundlage von Borschtsch
        🇦🇹Österreich✓ EU-Nachbar
        🇺🇦Ukraine✓ ja
        🇫🇷Frankreich✓ EU-NachbarCrème fraîche
        🇧🇾Belarus✓ ja
        🇨🇿Tschechien✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇭 Schweiz🇳🇱 Niederlande🇩🇰 Dänemark🇭🇺 Ungarn🇷🇴 Rumänien🇸🇰 Slowakei

        💡 In Osteuropa ist Schmand (Smetana) Grundlage vieler Gerichte — von Stroganoff bis Pierogi.

        ⚪ Sesam

        Vorkommen in Gerichten:
        🍣 Sushi-Maki🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇸🇩Sudan760.000✓ ja
        🇲🇲Myanmar720.000– nur Eigenkonsum
        🇮🇳Indien690.000✓ ja
        🇹🇿Tansania680.000✓ ja
        🇳🇬Nigeria480.000– nur Eigenkonsum
        🇨🇳China460.000– nur Eigenkonsum
        🇪🇹Äthiopien280.000✓ ja
        🇵🇰Pakistan180.000– nur Eigenkonsum
        🇺🇬Uganda90.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇽 Mexiko🇬🇹 Guatemala🇧🇷 Brasilien🇵🇾 Paraguay🇹🇭 Thailand🇻🇳 Vietnam🇰🇭 Kambodscha🇵🇭 Philippinen🇪🇬 Ägypten

        💡 Aus Sesam wird die Paste Tahini gemacht — Grundzutat von Hummus.

        🫘 Sojabohnen

        Vorkommen in Gerichten:
        🍣 Sushi-Maki🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇧🇷Brasilien152.000.000✓ ja
        🇺🇸USA116.000.000✓ ja
        🇦🇷Argentinien50.000.000✓ ja
        🇨🇳China20.000.000– nur Eigenkonsum
        🇮🇳Indien12.000.000– nur Eigenkonsum
        🇵🇾Paraguay10.000.000△ Welt-Big-Player, AT-Handel selten
        🇨🇦Kanada7.000.000△ Welt-Big-Player, AT-Handel selten
        🇷🇺Russland5.500.000△ Welt-Big-Player, AT-Handel selten
        🇺🇦Ukraine3.500.000✓ ja
        🇧🇴Bolivien3.000.000– nur Eigenkonsum
        🇮🇹Italien1.100.000✓ EU-Nachbar
        🇷🇸Serbien540.000✓ ja
        🇫🇷Frankreich420.000✓ EU-Nachbar
        🇷🇴Rumänien400.000✓ ja
        🇭🇷Kroatien270.000✓ EU-Nachbar
        🇦🇹Österreich240.000✓ EU-NachbarMarchfeld, Pannonisches Klima — wachsender Anbau
        🇭🇺Ungarn230.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇽 Mexiko🇿🇦 Südafrika🇹🇿 Tansania🇹🇭 Thailand🇻🇳 Vietnam🇲🇲 Myanmar

        💡 Der größte Teil der Welt-Sojaernte wird nicht gegessen, sondern als Tierfutter verwendet.

        🥢 Sojasauce

        — Aktuell in keinem Gericht direkt verwendet.

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China✓ jaKlassische Heimat, viele Sorten (Shengchou, Laochou)
        🇯🇵Japan✓ jaShoyu, Kikkoman seit 1661
        🇰🇷Südkorea✓ jaGanjang, mit eigener Geschmacksprofilierung
        🇮🇩Indonesien✓ jaKecap Manis (süße Variante)
        🇹🇭Thailand✓ ja
        🇻🇳Vietnam✓ ja
        🇵🇭Philippinen✓ jaToyo

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇾 Malaysia🇲🇲 Myanmar🇰🇭 Kambodscha

        💡 Sojasauce entsteht durch Fermentation mit dem Schimmelpilz Aspergillus oryzae — derselbe Pilz, aus dem Sake und Miso gemacht werden.

        🥓 Speck (Pancetta/Tiroler)

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🍝 Spaghetti Carbonara

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇩🇪Deutschland750.000✓ EU-Nachbar
        🇵🇱Polen420.000✓ EU-Nachbar
        🇪🇸Spanien380.000✓ jaPanceta + Tocino
        🇫🇷Frankreich320.000✓ EU-NachbarLardons, Bacon-Stil
        🇮🇹Italien280.000✓ EU-NachbarPancetta + Guanciale + Speck Alto Adige (PDO)
        🇭🇺Ungarn120.000✓ EU-NachbarSzalonna
        🇦🇹Österreich80.000✓ EU-NachbarTiroler Speck, PDO seit 1996
        🇨🇭Schweiz40.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇷🇴 Rumänien🇭🇷 Kroatien🇷🇸 Serbien🇸🇰 Slowakei🇨🇿 Tschechien🇵🇹 Portugal🇧🇪 Belgien🇳🇱 Niederlande

        💡 Echter Tiroler Speck (PDO) muss mindestens 22 Wochen luftgetrocknet und über Buchenholz geräuchert werden.

        🥓 Lardons (für Quiche)

        Vorkommen in Gerichten:
        🥧 Quiche Lorraine

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇫🇷Frankreich800.000✓ EU-NachbarLardons sind die klassische FR-Würfelspeck-Form
        🇧🇪Belgien60.000✓ EU-Nachbar
        🇨🇭Schweiz40.000✓ EU-Nachbar
        🇱🇺Luxemburg5.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇹 Italien🇩🇪 Deutschland🇦🇹 Österreich🇪🇸 Spanien🇳🇱 Niederlande

        💡 Die Quiche Lorraine stammt aus Lothringen. Wichtig: das Original hat WEDER Käse NOCH Zwiebel — nur Lardons, Eier und Sahne.

        🟤 Tamarinde

        Vorkommen in Gerichten:
        🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien250.000✓ ja
        🇹🇭Thailand100.000✓ ja
        🇲🇽Mexiko35.000– nur Eigenkonsum
        🇲🇾Malaysia8.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇵🇭 Philippinen🇱🇰 Sri Lanka🇧🇩 Bangladesch🇲🇲 Myanmar🇰🇭 Kambodscha🇳🇬 Nigeria🇨🇲 Kamerun🇹🇿 Tansania🇧🇷 Brasilien

        💡 Tamarinde ist eine süß-saure Hülsenfrucht — Grundzutat für Worcestershire-Sauce und Pad Thai.

        🍅 Tomaten

        Vorkommen in Gerichten:
        🍕 Pizza Margherita🥘 Paella Valenciana🍆 Ratatouille Niçoise🍆 Moussaka🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China67.000.000– nur Eigenkonsum
        🇮🇳Indien20.000.000– nur Eigenkonsum
        🇹🇷Türkei13.000.000✓ ja
        🇺🇸USA11.000.000– nur EigenkonsumKalifornien
        🇪🇬Ägypten7.000.000– nur Eigenkonsum
        🇮🇹Italien6.700.000✓ EU-NachbarSan Marzano, Datterino
        🇮🇷Iran6.300.000– nur Eigenkonsum
        🇪🇸Spanien4.900.000✓ jaAlmería — riesige Gewächshäuser
        🇲🇽Mexiko4.500.000– regional
        🇧🇷Brasilien3.700.000– nur Eigenkonsum
        🇵🇹Portugal1.700.000✓ ja
        🇲🇦Marokko1.500.000✓ ja
        🇳🇱Niederlande910.000✓ EU-Nachbar
        🇬🇷Griechenland800.000✓ ja
        🇵🇱Polen650.000✓ EU-Nachbar
        🇫🇷Frankreich500.000✓ EU-Nachbar
        🇩🇪Deutschland100.000✓ EU-Nachbar
        🇦🇹Österreich65.000✓ EU-NachbarGewächshaus, Saisonal

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇳 Tunesien🇩🇿 Algerien🇮🇱 Israel🇸🇾 Syrien🇵🇰 Pakistan🇧🇩 Bangladesch🇦🇷 Argentinien🇨🇱 Chile🇿🇦 Südafrika🇦🇺 Australien

        💡 Die berühmten Pizza- und Pastasaucen kommen meist aus süditalienischen Tomaten, etwa aus der Gegend um Neapel.

        🥛 Topfen / Quark

        Vorkommen in Gerichten:
        🥟 Kärntner Kasnudeln🍑 Wachauer Marillenknödel🥐 Topfengolatsche🥨 Bayerische Brezel mit Obatzda🥟 Pierogi Ruskie (Teigtaschen)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇩🇪Deutschland800.000✓ EU-NachbarQuark als Brot-Aufstrich + Backware
        🇷🇺Russland410.000– nur EigenkonsumTworog
        🇵🇱Polen380.000✓ EU-NachbarTwaróg
        🇫🇷Frankreich90.000✓ EU-NachbarFromage blanc
        🇦🇹Österreich80.000✓ EU-NachbarTopfen — typisch für Strudel, Knödel
        🇨🇿Tschechien60.000✓ EU-Nachbar
        🇳🇱Niederlande60.000✓ EU-Nachbar
        🇨🇭Schweiz45.000✓ EU-NachbarSchweizer Quark — kommt auch nach AT (Migros/Coop-Marken)

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇺🇦 Ukraine🇧🇾 Belarus🇨🇭 Schweiz🇩🇰 Dänemark🇭🇺 Ungarn🇸🇰 Slowakei

        💡 Aus 5 L Milch wird etwa 1 kg Topfen. Wichtige Eiweißquelle für Sportler:innen.

        🌼 Vanille

        Vorkommen in Gerichten:
        🎂 Sachertorte🥐 Topfengolatsche🍰 Schwarzwälder Kirschtorte

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇲🇬Madagaskar3.200✓ ja
        🇮🇩Indonesien2.400✓ ja
        🇲🇽Mexiko650– nur Eigenkonsum
        🇺🇬Uganda220✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇭 Philippinen🇹🇿 Tansania🇰🇪 Kenia🇱🇰 Sri Lanka🇨🇴 Kolumbien🇨🇷 Costa Rica🇧🇷 Brasilien

        💡 Die Vanille-Orchidee blüht nur einen einzigen Tag im Jahr — darum ist echte Vanille so selten.

        🟢 Wasabi (echt)

        Vorkommen in Gerichten:
        🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇯🇵Japan2.000✓ jaShizuoka — bevorzugt klares Bergwasser
        🇨🇳China400– nur Eigenkonsum
        🇰🇷Südkorea200– nur Eigenkonsum
        🇳🇿Neuseeland150△ Welt-Big-Player, AT-Handel seltenBio-Pioniere für nicht-japanisches Wasabi
        🇺🇸USA90– nur EigenkonsumOregon, Washington — kühles Bergklima

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇦 Kanada🇬🇧 Großbritannien🇮🇪 Irland🇳🇴 Norwegen🇸🇪 Schweden🇫🇮 Finnland🇮🇸 Island🇦🇹 Österreich🇨🇭 Schweiz

        💡 Echter Wasabi ist extrem selten und teuer — in den meisten Sushi-Restaurants wird Meerrettich mit grüner Farbe als Ersatz verwendet.

        🍷 Wein (Reben)

        Vorkommen in Gerichten:
        🥨 Bayerische Brezel mit Obatzda🍖 Rheinischer Sauerbraten🫕 Schweizer Käsefondue🍳 Zürcher Geschnetzeltes mit Rösti🍆 Moussaka

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇹Italien4.900.000✓ EU-Nachbarin Hektoliter umgerechnet, oft Welt-Nr. 1
        🇫🇷Frankreich4.500.000✓ EU-Nachbar
        🇪🇸Spanien3.500.000✓ ja
        🇺🇸USA2.400.000✓ ja
        🇦🇺Australien1.300.000✓ ja
        🇨🇱Chile1.200.000✓ ja
        🇦🇷Argentinien1.200.000✓ ja
        🇿🇦Südafrika960.000✓ ja
        🇩🇪Deutschland870.000✓ EU-Nachbar
        🇵🇹Portugal680.000✓ ja
        🇨🇳China450.000– nur Eigenkonsum
        🇷🇴Rumänien450.000✓ ja
        🇳🇿Neuseeland390.000✓ ja
        🇦🇹Österreich250.000✓ EU-Nachbar
        🇭🇺Ungarn240.000✓ EU-Nachbar
        🇬🇷Griechenland200.000✓ ja
        🇭🇷Kroatien75.000✓ EU-Nachbar
        🇸🇰Slowakei25.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇿 Tschechien🇹🇷 Türkei🇲🇦 Marokko🇩🇿 Algerien🇹🇳 Tunesien🇮🇱 Israel

        💡 Wein wird seit ca. 8000 Jahren angebaut — die ältesten Reste stammen aus Georgien.

        🥕 Wurzelgemüse (Möhre, Sellerie, Pastinake)

        Vorkommen in Gerichten:
        🍲 Steirisches Wurzelfleisch🍖 Rheinischer Sauerbraten🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China18.000.000– nur Eigenkonsum
        🇷🇺Russland1.500.000– nur Eigenkonsum
        🇺🇸USA1.300.000– nur Eigenkonsum
        🇺🇦Ukraine830.000– nur Eigenkonsum
        🇬🇧Großbritannien720.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland680.000✓ EU-Nachbar
        🇵🇱Polen600.000✓ EU-Nachbar
        🇳🇱Niederlande570.000✓ EU-Nachbar
        🇮🇹Italien470.000✓ EU-Nachbar
        🇫🇷Frankreich430.000✓ EU-Nachbar
        🇧🇾Belarus410.000– nur Eigenkonsum
        🇪🇸Spanien320.000✓ ja
        🇦🇹Österreich130.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇿 Tschechien🇭🇺 Ungarn🇷🇴 Rumänien🇧🇬 Bulgarien🇮🇪 Irland🇧🇪 Belgien🇩🇰 Dänemark🇨🇦 Kanada

        💡 Möhren sind erst im 17. Jahrhundert orange geworden — vorher waren sie weiß, gelb oder violett.

        🪵 Zimt

        Vorkommen in Gerichten:
        🥧 Apfelstrudel🍆 Moussaka🥮 Kanelbulle (Zimtschnecke)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇩Indonesien90.000✓ ja
        🇨🇳China85.000✓ ja
        🇻🇳Vietnam41.000✓ ja
        🇱🇰Sri Lanka25.000✓ jaHeimat des echten Ceylon-Zimts
        🇲🇬Madagaskar3.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇳 Indien🇹🇭 Thailand🇵🇭 Philippinen🇲🇾 Malaysia🇰🇭 Kambodscha🇹🇿 Tansania🇨🇴 Kolumbien

        💡 Zimt ist die getrocknete, gerollte Rinde eines Baumes — die typischen „Stangen" sind eingerollte Rindenstücke.

        🍋 Zitrone

        Vorkommen in Gerichten:
        🥩 Wiener Schnitzel🥐 Topfengolatsche🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien3.800.000– nur Eigenkonsum
        🇲🇽Mexiko3.000.000– nur Eigenkonsuminkl. Limetten
        🇨🇳China3.000.000– nur Eigenkonsum
        🇦🇷Argentinien1.700.000~ Off-Season (EU-Winter)
        🇧🇷Brasilien1.500.000– nur Eigenkonsum
        🇪🇸Spanien1.100.000✓ jaGrößter EU-Produzent
        🇹🇷Türkei1.100.000✓ ja
        🇮🇷Iran800.000– nur Eigenkonsum
        🇺🇸USA730.000– geht nach Asien
        🇪🇬Ägypten400.000✓ ja
        🇮🇹Italien370.000✓ EU-NachbarAmalfi, Sizilien
        🇿🇦Südafrika330.000~ Off-Season (EU-Winter)
        🇬🇷Griechenland130.000✓ ja
        🇲🇦Marokko120.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇭🇷 Kroatien🇨🇱 Chile🇵🇪 Peru🇨🇴 Kolumbien🇹🇳 Tunesien🇩🇿 Algerien🇦🇺 Australien🇮🇱 Israel

        💡 Vitamin-C-Mangel (Skorbut) plagte Seeleute jahrhundertelang. Captain Cook nahm Zitronen mit — Skorbut verschwand.

        🧅 Zwiebel

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🍲 Steirisches Wurzelfleisch🧀 Vorarlberger Käsespätzle (Käsknöpfle)🥨 Bayerische Brezel mit Obatzda🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🍳 Zürcher Geschnetzeltes mit Rösti🍳 Tortilla Española🍆 Ratatouille Niçoise🍆 Moussaka🥟 Pierogi Ruskie (Teigtaschen)🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis🍜 Pad Thai🧆 Falafel mit Hummus🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien27.000.000– nur Eigenkonsum
        🇨🇳China24.000.000– nur Eigenkonsum
        🇪🇬Ägypten3.300.000– nur EigenkonsumDrittgrößter Welt-Produzent, viel Export
        🇺🇸USA2.700.000– nur Eigenkonsum
        🇹🇷Türkei2.400.000✓ ja
        🇮🇷Iran2.400.000– nur Eigenkonsum
        🇵🇰Pakistan2.200.000– nur Eigenkonsum
        🇷🇺Russland2.000.000– nur Eigenkonsum
        🇳🇱Niederlande1.800.000✓ EU-NachbarGrößter EU-Exporteur
        🇧🇷Brasilien1.700.000– nur Eigenkonsum
        🇲🇽Mexiko1.500.000– nur Eigenkonsum
        🇪🇸Spanien1.300.000✓ ja
        🇺🇦Ukraine900.000△ Welt-Big-Player, AT-Handel selten
        🇵🇱Polen720.000✓ EU-Nachbar
        🇩🇪Deutschland650.000✓ EU-Nachbar
        🇫🇷Frankreich480.000✓ EU-Nachbar
        🇮🇹Italien450.000✓ EU-Nachbar
        🇦🇹Österreich180.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇦 Marokko🇩🇿 Algerien🇹🇳 Tunesien🇸🇩 Sudan🇪🇹 Äthiopien🇰🇪 Kenia🇹🇿 Tansania🇦🇷 Argentinien🇨🇦 Kanada🇦🇺 Australien🇨🇱 Chile

        💡 Die Zwiebel ist eines der ältesten Gemüse — schon im alten Ägypten (vor 5000 Jahren) wurde sie verehrt und in Pyramiden mitgegeben.

        Generiert von scripts/build-production-data.php · Bei Fragen zu einzelnen Mengenangaben: FAOSTAT (fao.org/faostat) ist die Hauptquelle.
        \ No newline at end of file +Weltküche — Produktions-Übersicht (für Lehrpersonen)

        🌍 Weltküche — Lehrer-Übersicht

        Stand: 2026-06-10 · Quelle: FAOSTAT 2022/2023, IPC, ICO, USDA-FAS, EUROSTAT (gerundet auf 1.000 t). Faktencheck-Sweep: 2026-06-10.

        👁 Live-Beobachtung der Klasse

        Was die Klasse gerade in der Weltküche tut, siehst du in der Plattform-Live-Ansicht (oben unter „Lehrer-Cockpit"). Pro Schüler:in siehst du: aktuelles Gericht, aktive Welt-Zutat, Punkte, Abzeichen, Fehler-Anzahl. Heartbeat alle 4 Sekunden.

        🔴 Lehrer-Cockpit öffnen
        Was steht hier? Pro Welt-Zutat: in welchen Ländern wird sie in nennenswerten Mengen für den Markt geerntet — und in welchen Ländern könnte sie theoretisch wachsen (passende Klimazone), aber kein Hauptmarkt-Anbau.

        Wie das Spiel das nutzt: Jede Aufgabe zeigt 2 zufällig ausgewählte Produzenten als „korrekt" plus 2-4 Distraktoren. Klickt ein:e Schüler:in ein „theoretisch mögliches" Land an, gibt das Spiel ein differenzierteres Feedback („Möglich, aber kein Hauptproduzent") als bei einem klimatisch unmöglichen Land.
        Datenpräzision: Mengen-Angaben sind auf 1.000 t gerundet und basieren auf öffentlichen FAOSTAT- und Branchen-Statistiken 2022/2023. Sie sollen Größenordnungen vermitteln, keine exakte Buchhaltung sein. Bei Käse (Feta, Mozzarella, Pecorino) und Sojasauce sind Werte teils geschätzt oder als „weltweit verbreitet" markiert — diese Produkte sind eher kulturelle als landwirtschaftliche Größen.

        Inhaltsverzeichnis

        🍎 Apfel

        Vorkommen in Gerichten:
        🥧 Apfelstrudel

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China49.000.000– nur Eigenkonsum
        🇺🇸USA5.000.000✓ ja
        🇹🇷Türkei4.900.000✓ ja
        🇵🇱Polen4.300.000✓ EU-NachbarGrößter EU-Produzent
        🇮🇳Indien2.400.000– nur Eigenkonsum
        🇮🇷Iran2.300.000– nur Eigenkonsum
        🇮🇹Italien2.300.000✓ EU-NachbarSüdtirol
        🇷🇺Russland1.700.000– nur Eigenkonsum
        🇫🇷Frankreich1.500.000✓ EU-Nachbar
        🇨🇱Chile1.300.000~ Off-Season (EU-Winter)
        🇿🇦Südafrika1.000.000~ Off-Season (EU-Winter)
        🇩🇪Deutschland970.000✓ EU-Nachbar
        🇦🇷Argentinien850.000~ Off-Season (EU-Winter)
        🇺🇦Ukraine800.000△ Welt-Big-Player, AT-Handel selten
        🇭🇺Ungarn650.000✓ EU-Nachbar
        🇳🇿Neuseeland570.000~ Off-Season (EU-Winter)
        🇪🇸Spanien500.000✓ ja
        🇷🇴Rumänien470.000✓ ja
        🇷🇸Serbien470.000✓ ja
        🇳🇱Niederlande270.000✓ EU-Nachbar
        🇧🇪Belgien200.000✓ EU-Nachbar
        🇦🇹Österreich190.000✓ EU-NachbarSteiermark — größtes AT-Obstanbaugebiet
        🇨🇭Schweiz180.000✓ EU-NachbarMostindien (Thurgau) — wichtiger Apfel-Importeur für Westösterreich
        🇨🇿Tschechien140.000✓ EU-Nachbar
        🇭🇷Kroatien65.000✓ EU-Nachbar
        🇸🇰Slowakei35.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇬🇷 Griechenland🇧🇬 Bulgarien🇧🇾 Belarus🇨🇦 Kanada🇲🇽 Mexiko🇯🇵 Japan🇰🇷 Südkorea🇮🇪 Irland🇬🇧 Großbritannien

        💡 Ein heimischer Apfel reist oft nur wenige Kilometer — ganz anders als Vanille oder Kakao vom anderen Ende der Welt.

        🥑 Avocado

        Vorkommen in Gerichten:
        🍣 Sushi-Maki🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇲🇽Mexiko2.500.000– geht nach Asien
        🇨🇴Kolumbien1.100.000✓ ja
        🇵🇪Peru800.000✓ ja
        🇮🇩Indonesien620.000– nur Eigenkonsum
        🇩🇴Dom. Republik600.000△ Welt-Big-Player, AT-Handel selten
        🇰🇪Kenia410.000✓ ja
        🇧🇷Brasilien300.000– nur Eigenkonsum
        🇺🇸USA240.000– nur EigenkonsumKalifornien
        🇨🇱Chile170.000~ Off-Season (EU-Winter)
        🇮🇱Israel130.000✓ ja
        🇿🇦Südafrika120.000✓ ja
        🇪🇸Spanien100.000✓ jaAndalusien — größter EU-Produzent

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇵🇭 Philippinen🇹🇭 Thailand🇬🇹 Guatemala🇻🇪 Venezuela🇪🇨 Ecuador🇲🇦 Marokko🇹🇿 Tansania

        💡 Avocadobäume brauchen sehr viel Wasser — in trockenen Anbaugebieten wie Mexiko-Michoacán wird das zum Umweltproblem.

        🍌 Banane

        — Aktuell in keinem Gericht direkt verwendet.

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien33.000.000– nur Eigenkonsum
        🇨🇳China12.000.000– nur Eigenkonsum
        🇮🇩Indonesien10.000.000– nur Eigenkonsum
        🇧🇷Brasilien6.800.000– nur Eigenkonsum
        🇪🇨Ecuador6.200.000✓ jaGrößter Export-Exporteur (~25 % Welthandel)
        🇵🇭Philippinen5.800.000△ Welt-Big-Player, AT-Handel selten
        🇬🇹Guatemala4.400.000✓ ja
        🇨🇴Kolumbien3.700.000✓ ja
        🇨🇷Costa Rica2.400.000✓ ja
        🇲🇽Mexiko2.300.000– regional
        🇭🇳Honduras1.100.000✓ ja
        🇵🇦Panama590.000✓ ja
        🇺🇬Uganda500.000– nur EigenkonsumPro-Kopf-Verzehr Nr. 1 weltweit
        🇩🇴Dom. Republik430.000✓ ja
        🇨🇲Kamerun320.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇹🇭 Thailand🇲🇾 Malaysia🇹🇿 Tansania🇰🇪 Kenia🇲🇬 Madagaskar🇱🇰 Sri Lanka🇵🇪 Peru🇻🇪 Venezuela

        💡 Bananen werden grün geerntet und reifen auf dem langen Schiffsweg nach Europa nach.

        🧈 Butter

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🥟 Kärntner Kasnudeln🧀 Vorarlberger Käsespätzle (Käsknöpfle)🍑 Wachauer Marillenknödel🥩 Wiener Schnitzel🎂 Sachertorte🥧 Apfelstrudel🥐 Topfengolatsche🥨 Bayerische Brezel mit Obatzda🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🍳 Zürcher Geschnetzeltes mit Rösti🍆 Moussaka🥮 Kanelbulle (Zimtschnecke)🥟 Pierogi Ruskie (Teigtaschen)🍲 Ungarisches Gulasch (Gulyás)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien6.500.000– nur Eigenkonsummeist Ghee
        🇺🇸USA990.000– nur Eigenkonsum
        🇩🇪Deutschland510.000✓ EU-Nachbar
        🇳🇿Neuseeland450.000△ Welt-Big-Player, AT-Handel selten
        🇵🇰Pakistan450.000– nur Eigenkonsum
        🇫🇷Frankreich370.000✓ EU-Nachbar
        🇷🇺Russland260.000– nur Eigenkonsum
        🇮🇪Irland250.000✓ jaKerrygold — größter Weidemilch-Butter-Exporteur
        🇲🇽Mexiko240.000– nur Eigenkonsum
        🇵🇱Polen220.000✓ EU-Nachbar
        🇳🇱Niederlande180.000✓ EU-Nachbar
        🇬🇧Großbritannien150.000△ Welt-Big-Player, AT-Handel selten
        🇨🇳China130.000– nur Eigenkonsum
        🇧🇷Brasilien95.000– nur Eigenkonsum
        🇧🇪Belgien95.000✓ EU-Nachbar
        🇮🇹Italien85.000✓ EU-Nachbar
        🇩🇰Dänemark45.000✓ jaLurpak
        🇦🇹Österreich40.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇭 Schweiz🇨🇿 Tschechien🇭🇺 Ungarn🇦🇷 Argentinien🇦🇺 Australien🇨🇦 Kanada🇺🇦 Ukraine🇧🇾 Belarus

        💡 Irische Butter ist oft gelber als deutsche — weil die Kühe das ganze Jahr auf der Weide stehen und mehr Beta-Carotin aufnehmen.

        🍄 Champignons

        Vorkommen in Gerichten:
        🍳 Zürcher Geschnetzeltes mit Rösti

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China8.200.000– nur Eigenkonsum
        🇺🇸USA390.000– nur Eigenkonsum
        🇵🇱Polen370.000✓ EU-NachbarGrößter EU-Produzent
        🇳🇱Niederlande300.000✓ EU-Nachbar
        🇪🇸Spanien170.000✓ ja
        🇨🇦Kanada130.000△ Welt-Big-Player, AT-Handel selten
        🇫🇷Frankreich100.000✓ EU-Nachbar
        🇬🇧Großbritannien100.000△ Welt-Big-Player, AT-Handel selten
        🇦🇺Australien90.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland85.000✓ EU-Nachbar
        🇮🇪Irland75.000✓ ja
        🇮🇹Italien75.000✓ EU-Nachbar
        🇯🇵Japan65.000△ Welt-Big-Player, AT-Handel selten
        🇧🇪Belgien45.000✓ EU-Nachbar
        🇭🇺Ungarn23.000✓ EU-Nachbar
        🇦🇹Österreich23.000✓ EU-Nachbar
        🇨🇭Schweiz7.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇿 Tschechien🇸🇰 Slowakei🇭🇷 Kroatien🇷🇴 Rumänien🇧🇬 Bulgarien🇵🇹 Portugal🇬🇷 Griechenland

        💡 Champignons brauchen kein Tageslicht — sie wachsen in dunklen Hallen auf Stroh-Mist-Kompost.

        🌶️ Chili

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis🍜 Pad Thai🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien2.000.000✓ ja
        🇨🇳China300.000– nur Eigenkonsum
        🇵🇪Peru170.000✓ ja
        🇲🇽Mexiko150.000– nur Eigenkonsum
        🇪🇸Spanien80.000✓ ja
        🇹🇭Thailand60.000✓ ja
        🇵🇰Pakistan40.000– nur Eigenkonsum
        🇪🇹Äthiopien30.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇩 Indonesien🇵🇭 Philippinen🇲🇾 Malaysia🇻🇳 Vietnam🇧🇷 Brasilien🇨🇴 Kolumbien🇹🇷 Türkei🇬🇷 Griechenland🇮🇹 Italien

        💡 Die Schärfe kommt vom Stoff Capsaicin; gemessen wird sie in Scoville-Einheiten.

        🥚 Eier

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🥟 Kärntner Kasnudeln🧀 Vorarlberger Käsespätzle (Käsknöpfle)🍑 Wachauer Marillenknödel🥩 Wiener Schnitzel🎂 Sachertorte🥧 Apfelstrudel🥐 Topfengolatsche🥟 Schwäbische Maultaschen🍰 Schwarzwälder Kirschtorte🍝 Spaghetti Carbonara🍳 Tortilla Española🥧 Quiche Lorraine🍆 Moussaka🥮 Kanelbulle (Zimtschnecke)🥟 Pierogi Ruskie (Teigtaschen)🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China30.000.000– nur Eigenkonsum
        🇺🇸USA6.700.000– nur Eigenkonsum
        🇮🇳Indien6.500.000– nur Eigenkonsum
        🇮🇩Indonesien5.800.000– nur Eigenkonsum
        🇧🇷Brasilien3.500.000– nur Eigenkonsum
        🇲🇽Mexiko3.000.000– nur Eigenkonsum
        🇯🇵Japan2.700.000– nur Eigenkonsum
        🇷🇺Russland2.700.000– nur Eigenkonsum
        🇹🇷Türkei1.200.000– nur Eigenkonsum
        🇮🇷Iran1.200.000– nur Eigenkonsum
        🇫🇷Frankreich930.000✓ EU-Nachbar
        🇪🇸Spanien930.000✓ ja
        🇩🇪Deutschland860.000✓ EU-Nachbar
        🇮🇹Italien790.000✓ EU-Nachbar
        🇵🇱Polen650.000✓ EU-Nachbar
        🇳🇱Niederlande650.000✓ EU-Nachbar
        🇦🇹Österreich140.000✓ EU-NachbarAT-Eier-Versorgung zu ~88 % aus AT (Eier-Kennzeichnung AT-0/AT-1/AT-2)
        🇨🇭Schweiz65.000✓ EU-NachbarCH-Eier fast nur für Schweizer Markt; ein Teil kommt aber auch nach AT

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇦 Kanada🇦🇷 Argentinien🇨🇱 Chile🇪🇬 Ägypten🇺🇦 Ukraine🇧🇾 Belarus🇨🇿 Tschechien🇭🇺 Ungarn🇷🇴 Rumänien🇬🇷 Griechenland🇵🇹 Portugal🇵🇰 Pakistan🇹🇭 Thailand🇵🇭 Philippinen🇰🇪 Kenia

        💡 Eier können prinzipiell überall produziert werden — Hühner sind extrem anpassungsfähig. Die meisten Eier in Europa werden lokal gegessen.

        🥜 Erdnüsse

        Vorkommen in Gerichten:
        🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China18.000.000– nur Eigenkonsum
        🇮🇳Indien7.000.000– nur Eigenkonsum
        🇳🇬Nigeria4.500.000– nur Eigenkonsum
        🇺🇸USA3.000.000✓ ja
        🇸🇩Sudan2.800.000– nur Eigenkonsum
        🇸🇳Senegal1.700.000– nur Eigenkonsum
        🇦🇷Argentinien1.000.000✓ ja
        🇧🇷Brasilien850.000– nur Eigenkonsum
        🇹🇿Tansania800.000△ Welt-Big-Player, AT-Handel selten
        🇨🇲Kamerun500.000△ Welt-Big-Player, AT-Handel selten
        🇮🇩Indonesien400.000△ Welt-Big-Player, AT-Handel selten
        🇻🇳Vietnam400.000△ Welt-Big-Player, AT-Handel selten
        🇪🇹Äthiopien200.000– nur Eigenkonsum
        🇪🇬Ägypten200.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇽 Mexiko🇵🇾 Paraguay🇧🇴 Bolivien🇵🇪 Peru🇨🇴 Kolumbien🇹🇭 Thailand🇵🇭 Philippinen🇵🇰 Pakistan🇬🇭 Ghana🇺🇬 Uganda🇰🇪 Kenia

        💡 Botanisch sind Erdnüsse keine Nüsse, sondern Hülsenfrüchte — verwandt mit Erbsen und Bohnen.

        🧪 Essig (Wein- / Apfelessig)

        Vorkommen in Gerichten:
        🍖 Rheinischer Sauerbraten🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇹Italien✓ EU-NachbarAceto Balsamico di Modena (PDO)
        🇩🇪Deutschland✓ EU-NachbarApfelessig + Weinessig
        🇫🇷Frankreich✓ EU-NachbarVinaigre de Vin (Orléans), Vinaigre de Cidre
        🇪🇸Spanien✓ jaSherry-Essig (Jerez)
        🇨🇳China✓ jaReisessig (Zhenjiang)
        🇯🇵Japan✓ jaReisessig (für Sushi)
        🇦🇹Österreich✓ EU-NachbarGegenbauer (Wien) — international preisgekrönt
        🇺🇸USA✓ jaApple Cider Vinegar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇬🇷 Griechenland🇹🇷 Türkei🇨🇭 Schweiz🇧🇪 Belgien🇳🇱 Niederlande🇵🇱 Polen🇭🇺 Ungarn

        💡 Aceto Balsamico Tradizionale di Modena reift mindestens 12 Jahre in Holzfässern — eine kleine Flasche kann über 100 € kosten.

        🧀 Feta (Käse)

        Vorkommen in Gerichten:
        🍆 Moussaka

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇬🇷Griechenland140.000✓ jaPDO-geschützt seit 2002 — nur GR-Feta darf so heißen
        🇧🇬Bulgarien35.000✓ jaBulgarian White Brined Cheese — sehr ähnlich, darf aber nicht „Feta" heißen
        🇩🇰Dänemark18.000✓ jaSalakis-Stil, Marktname „Feta-Stil"
        🇫🇷Frankreich10.000✓ EU-NachbarFeta-ähnlich aus Schafmilch

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇷 Türkei🇷🇴 Rumänien🇷🇸 Serbien🇮🇹 Italien🇪🇸 Spanien

        💡 Echter Feta ist seit 2002 EU-rechtlich Griechenland vorbehalten — andere Länder dürfen nur „Käse nach griechischer Art" verkaufen.

        🐟 Fischsauce

        Vorkommen in Gerichten:
        🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇻🇳Vietnam✓ jaNước mắm Phú Quốc — PDO-geschützt
        🇹🇭Thailand✓ jaNam pla — größter Welt-Exporteur
        🇵🇭Philippinen△ Welt-Big-Player, AT-Handel seltenPatis
        🇰🇭Kambodscha△ Welt-Big-Player, AT-Handel seltenTeuk trei
        🇲🇲Myanmar– nur EigenkonsumNgan-pya-ye
        🇰🇷Südkorea△ Welt-Big-Player, AT-Handel seltenAekjeot — für Kimchi-Würze
        🇨🇳China△ Welt-Big-Player, AT-Handel seltenYú lù
        🇯🇵Japan△ Welt-Big-Player, AT-Handel seltenIshiru, Shottsuru — regional, sehr selten
        🇮🇹Italien✓ EU-NachbarColatura di Alici — antike römische Tradition (garum)

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇩 Indonesien🇲🇾 Malaysia🇱🇰 Sri Lanka🇧🇩 Bangladesch

        💡 Schon die alten Römer machten Fischsauce („Garum") — die heutige italienische Colatura di Alici ist deren direkter Nachfahre.

        🥩 Fleisch (Kalb/Schwein/Rind, regional)

        Vorkommen in Gerichten:
        🍲 Steirisches Wurzelfleisch🥩 Wiener Schnitzel🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🍳 Zürcher Geschnetzeltes mit Rösti

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇩🇪Deutschland7.500.000✓ EU-NachbarGroßer Schweinefleisch-Produzent
        🇪🇸Spanien7.300.000✓ ja
        🇫🇷Frankreich5.400.000✓ EU-Nachbar
        🇮🇹Italien4.200.000✓ EU-Nachbar
        🇵🇱Polen4.200.000✓ EU-Nachbar
        🇳🇱Niederlande3.500.000✓ EU-Nachbar
        🇧🇪Belgien1.700.000✓ EU-Nachbar
        🇩🇰Dänemark1.500.000✓ ja
        🇭🇺Ungarn1.100.000✓ EU-Nachbar
        🇷🇴Rumänien1.100.000✓ ja
        🇮🇪Irland870.000✓ ja
        🇦🇹Österreich850.000✓ EU-NachbarBeim Wiener Schnitzel praktisch immer heimisch
        🇨🇿Tschechien650.000✓ EU-Nachbar
        🇨🇭Schweiz425.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇬🇧 Großbritannien🇵🇹 Portugal🇬🇷 Griechenland🇸🇰 Slowakei🇧🇬 Bulgarien🇷🇸 Serbien🇭🇷 Kroatien🇸🇪 Schweden🇳🇴 Norwegen🇫🇮 Finnland🇮🇸 Island

        💡 Bei einem traditionellen Wiener Schnitzel kommt das Kalbfleisch fast immer aus dem nahen Umfeld (AT, DE, NL).

        🥬 Sommer-Gemüse (Mittelmeer)

        Vorkommen in Gerichten:
        🥟 Schwäbische Maultaschen🥘 Paella Valenciana🍆 Ratatouille Niçoise🍆 Moussaka🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇹🇷Türkei32.000.000✓ ja
        🇪🇬Ägypten15.000.000✓ ja
        🇪🇸Spanien13.000.000✓ jaGrößter EU-Frischgemüse-Exporteur
        🇮🇹Italien10.000.000✓ EU-Nachbar
        🇫🇷Frankreich5.500.000✓ EU-Nachbar
        🇳🇱Niederlande5.100.000✓ EU-Nachbar
        🇲🇦Marokko4.000.000✓ ja
        🇬🇷Griechenland3.500.000✓ ja
        🇵🇹Portugal2.400.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇭🇷 Kroatien🇷🇸 Serbien🇧🇬 Bulgarien🇷🇴 Rumänien🇭🇺 Ungarn🇹🇳 Tunesien🇩🇿 Algerien🇮🇱 Israel🇲🇽 Mexiko

        💡 Im Winter kommt das Gemüse aus beheizten Gewächshäusern in Almería (ES) — ein 350 km² großer Plastikgewächshaus-Komplex, sichtbar aus dem Weltall.

        🌾 Hartweizen (Durum)

        Vorkommen in Gerichten:
        🍑 Wachauer Marillenknödel🍕 Pizza Margherita🍝 Spaghetti Carbonara

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇦Kanada5.400.000✓ jaGrößter Welt-Exporteur
        🇮🇹Italien4.200.000✓ EU-NachbarGrößter EU-Produzent
        🇹🇷Türkei3.300.000△ Welt-Big-Player, AT-Handel selten
        🇺🇸USA2.800.000✓ ja
        🇫🇷Frankreich1.800.000✓ EU-Nachbar
        🇩🇿Algerien1.700.000– nur Eigenkonsum
        🇸🇾Syrien1.500.000– nur Eigenkonsum
        🇲🇦Marokko900.000– nur Eigenkonsum
        🇪🇸Spanien800.000✓ ja
        🇬🇷Griechenland700.000✓ ja
        🇹🇳Tunesien500.000– nur Eigenkonsum
        🇦🇺Australien500.000✓ ja
        🇲🇽Mexiko300.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇭🇺 Ungarn🇷🇴 Rumänien🇺🇦 Ukraine🇷🇺 Russland🇦🇷 Argentinien🇮🇷 Iran🇪🇬 Ägypten

        💡 Hartweizen (Durum) ist besonders eiweißreich — darum hält Pasta beim Kochen ihre Form.

        🫧 Hefe

        Vorkommen in Gerichten:
        🥨 Bayerische Brezel mit Obatzda🍕 Pizza Margherita🥮 Kanelbulle (Zimtschnecke)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇫🇷Frankreich✓ EU-NachbarLesaffre — Weltmarktführer
        🇩🇪Deutschland✓ EU-NachbarKlein-Hefe seit 1885 (Wiener Methode entstand hier)
        🇦🇹Österreich✓ EU-NachbarWiener Hefe-Methode (Mautner Markhof, 1846)
        🇺🇸USA△ Welt-Big-Player, AT-Handel selten
        🇧🇪Belgien✓ EU-Nachbar
        🇳🇱Niederlande✓ EU-Nachbar
        🇨🇳China△ Welt-Big-Player, AT-Handel selten
        🇹🇷Türkei△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇹 Italien🇪🇸 Spanien🇬🇧 Großbritannien🇮🇪 Irland🇵🇱 Polen🇨🇿 Tschechien

        💡 Die moderne Bäcker-Backhefe wurde 1846 in Wien als „Wiener Verfahren" entwickelt — bis dahin nutzte man Brauerei-Hefe als Abfall.

        🐔 Hähnchen / Huhn (Paella)

        Vorkommen in Gerichten:
        🥘 Paella Valenciana

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇹🇷Türkei2.500.000✓ ja
        🇫🇷Frankreich1.900.000✓ EU-Nachbar
        🇪🇸Spanien1.600.000✓ jaDrittgrößter Geflügelproduzent der EU
        🇮🇹Italien1.400.000✓ EU-Nachbar
        🇪🇬Ägypten1.300.000△ Welt-Big-Player, AT-Handel selten
        🇲🇦Marokko800.000△ Welt-Big-Player, AT-Handel selten
        🇵🇹Portugal300.000✓ ja
        🇬🇷Griechenland220.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇭🇷 Kroatien🇹🇳 Tunesien🇩🇿 Algerien🇮🇷 Iran🇮🇱 Israel

        💡 In einer echten Paella Valenciana kommen Huhn UND Kaninchen rein — beides aus spanischer Landwirtschaft.

        🫚 Ingwer

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien2.300.000✓ ja
        🇳🇬Nigeria690.000– nur Eigenkonsum
        🇨🇳China580.000✓ ja
        🇳🇵Nepal290.000– nur Eigenkonsum
        🇮🇩Indonesien200.000△ Welt-Big-Player, AT-Handel selten
        🇹🇭Thailand160.000△ Welt-Big-Player, AT-Handel selten
        🇧🇩Bangladesch80.000– nur Eigenkonsum
        🇨🇲Kamerun55.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇵🇭 Philippinen🇱🇰 Sri Lanka🇲🇾 Malaysia🇰🇭 Kambodscha🇧🇷 Brasilien🇵🇪 Peru🇨🇴 Kolumbien🇲🇽 Mexiko🇬🇹 Guatemala🇹🇿 Tansania

        💡 Ingwer wird seit über 3000 Jahren als Gewürz und Heilmittel verwendet.

        ☕ Kaffee

        — Aktuell in keinem Gericht direkt verwendet.

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇧🇷Brasilien3.500.000✓ ja
        🇻🇳Vietnam1.900.000✓ ja
        🇨🇴Kolumbien860.000✓ ja
        🇮🇩Indonesien770.000✓ ja
        🇪🇹Äthiopien500.000✓ jaHeimat des Kaffees (Wildform)
        🇭🇳Honduras450.000✓ ja
        🇮🇳Indien370.000✓ ja
        🇺🇬Uganda300.000✓ ja
        🇲🇽Mexiko280.000✓ ja
        🇵🇪Peru250.000✓ ja
        🇬🇹Guatemala240.000✓ ja
        🇰🇪Kenia50.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇪 Venezuela🇪🇨 Ecuador🇨🇷 Costa Rica🇵🇦 Panama🇨🇺 Kuba🇩🇴 Dom. Republik🇨🇲 Kamerun🇹🇿 Tansania🇵🇭 Philippinen

        💡 Kaffee ist nach Erdöl eine der meistgehandelten Rohstoff-Waren der Welt.

        🍫 Kakao

        Vorkommen in Gerichten:
        🎂 Sachertorte🍰 Schwarzwälder Kirschtorte

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇮Elfenbeinküste2.200.000✓ ja
        🇬🇭Ghana680.000✓ ja
        🇮🇩Indonesien650.000✓ ja
        🇪🇨Ecuador400.000✓ ja
        🇨🇲Kamerun300.000✓ ja
        🇳🇬Nigeria280.000✓ ja
        🇧🇷Brasilien220.000✓ ja
        🇵🇪Peru150.000✓ ja
        🇩🇴Dom. Republik75.000✓ ja
        🇨🇴Kolumbien65.000△ Welt-Big-Player, AT-Handel selten
        🇻🇪Venezuela25.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇺 Kuba🇵🇦 Panama🇨🇷 Costa Rica🇲🇬 Madagaskar🇵🇭 Philippinen🇲🇾 Malaysia🇺🇬 Uganda🇹🇿 Tansania

        💡 Aus einer Kakaofrucht kommen ~30 – 40 Bohnen; für 100 g Schokolade braucht man rund 100 Bohnen.

        🫛 Kardamom

        Vorkommen in Gerichten:
        🥮 Kanelbulle (Zimtschnecke)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇬🇹Guatemala41.000✓ ja
        🇮🇳Indien22.000– nur Eigenkonsum
        🇳🇵Nepal6.000– nur Eigenkonsum
        🇱🇰Sri Lanka500✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇩 Indonesien🇲🇾 Malaysia🇻🇳 Vietnam🇰🇭 Kambodscha🇹🇭 Thailand🇹🇿 Tansania🇺🇬 Uganda🇲🇽 Mexiko🇨🇴 Kolumbien🇵🇪 Peru

        💡 Kardamom kam erst um 1900 nach Guatemala — heute exportiert das Land mehr davon als die Ursprungsregion Indien.

        🥔 Kartoffel

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🥟 Kärntner Kasnudeln🍑 Wachauer Marillenknödel🥩 Wiener Schnitzel🍳 Zürcher Geschnetzeltes mit Rösti🍳 Tortilla Española🥟 Pierogi Ruskie (Teigtaschen)🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China95.000.000– nur Eigenkonsum
        🇮🇳Indien60.000.000– nur Eigenkonsum
        🇺🇦Ukraine21.000.000△ Welt-Big-Player, AT-Handel selten
        🇺🇸USA19.000.000△ Welt-Big-Player, AT-Handel selten
        🇷🇺Russland18.000.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland11.000.000✓ EU-Nachbar
        🇧🇩Bangladesch10.000.000– nur Eigenkonsum
        🇫🇷Frankreich9.000.000✓ EU-Nachbar
        🇵🇱Polen7.000.000✓ EU-Nachbar
        🇳🇱Niederlande7.000.000✓ EU-Nachbar
        🇪🇬Ägypten6.500.000– nur Eigenkonsum
        🇧🇾Belarus5.800.000△ Welt-Big-Player, AT-Handel seltenPro-Kopf-Verzehr Nr. 1 weltweit
        🇵🇪Peru5.800.000– nur EigenkonsumUrsprungsland der Kartoffel — über 4.000 Sorten in den Anden
        🇵🇰Pakistan5.700.000– nur Eigenkonsum
        🇨🇦Kanada5.500.000△ Welt-Big-Player, AT-Handel selten
        🇮🇷Iran5.100.000– nur Eigenkonsum
        🇹🇷Türkei4.900.000△ Welt-Big-Player, AT-Handel selten
        🇧🇪Belgien4.500.000✓ EU-Nachbar
        🇧🇷Brasilien3.700.000– nur Eigenkonsum
        🇷🇴Rumänien2.700.000✓ ja
        🇪🇸Spanien2.000.000✓ ja
        🇲🇽Mexiko1.900.000– nur Eigenkonsum
        🇮🇹Italien1.400.000✓ EU-Nachbar
        🇧🇴Bolivien1.200.000△ Welt-Big-Player, AT-Handel selten
        🇦🇹Österreich870.000✓ EU-NachbarWaldviertel
        🇨🇿Tschechien700.000✓ EU-Nachbar
        🇭🇺Ungarn600.000✓ EU-Nachbar
        🇮🇪Irland330.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇭 Schweiz🇩🇰 Dänemark🇸🇪 Schweden🇫🇮 Finnland🇮🇸 Island🇳🇴 Norwegen🇸🇰 Slowakei🇭🇷 Kroatien🇷🇸 Serbien🇧🇬 Bulgarien🇵🇹 Portugal🇦🇷 Argentinien🇨🇱 Chile🇨🇴 Kolumbien

        💡 Die Kartoffel kommt ursprünglich aus den Anden und wurde erst nach 1565 nach Europa gebracht. In Belarus isst eine Person ~180 kg pro Jahr — Welt-Spitze.

        🟤 Kichererbsen

        Vorkommen in Gerichten:
        🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien13.700.000✓ ja
        🇦🇺Australien930.000✓ ja
        🇹🇷Türkei580.000✓ ja
        🇲🇲Myanmar550.000– nur Eigenkonsum
        🇪🇹Äthiopien530.000– nur Eigenkonsum
        🇵🇰Pakistan270.000– nur Eigenkonsum
        🇷🇺Russland270.000– nur Eigenkonsum
        🇺🇸USA270.000△ Welt-Big-Player, AT-Handel selten
        🇲🇽Mexiko240.000– nur Eigenkonsum
        🇮🇷Iran190.000– nur Eigenkonsum
        🇨🇦Kanada120.000✓ ja
        🇪🇸Spanien60.000✓ ja
        🇮🇹Italien20.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇦 Marokko🇹🇳 Tunesien🇩🇿 Algerien🇪🇬 Ägypten🇸🇾 Syrien🇬🇷 Griechenland🇧🇬 Bulgarien🇦🇷 Argentinien

        💡 Aus Kichererbsen werden Hummus und Falafel gemacht — Grundnahrung im Nahen Osten.

        🍒 Kirschen

        Vorkommen in Gerichten:
        🍰 Schwarzwälder Kirschtorte

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇹🇷Türkei810.000✓ ja
        🇨🇳China460.000– nur Eigenkonsum
        🇺🇸USA420.000– nur Eigenkonsum
        🇨🇱Chile230.000~ Off-Season (EU-Winter)
        🇮🇷Iran200.000– nur Eigenkonsum
        🇵🇱Polen180.000✓ EU-NachbarSauerkirschen Nr. 1 EU
        🇮🇹Italien100.000✓ EU-Nachbar
        🇪🇸Spanien90.000✓ ja
        🇬🇷Griechenland90.000✓ ja
        🇷🇴Rumänien70.000✓ ja
        🇭🇺Ungarn60.000✓ EU-Nachbar
        🇸🇾Syrien60.000– nur Eigenkonsum
        🇩🇪Deutschland50.000✓ EU-Nachbar
        🇫🇷Frankreich40.000✓ EU-Nachbar
        🇷🇸Serbien35.000✓ ja
        🇦🇹Österreich5.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇭🇷 Kroatien🇧🇬 Bulgarien🇨🇿 Tschechien🇸🇰 Slowakei🇦🇷 Argentinien🇦🇺 Australien🇨🇦 Kanada

        💡 Süßkirschen brauchen 700 Stunden unter 7 °C im Winter („Kältereiz") — sonst tragen die Bäume kaum Früchte.

        🧄 Knoblauch

        Vorkommen in Gerichten:
        🫕 Schweizer Käsefondue🥘 Paella Valenciana🍆 Ratatouille Niçoise🍆 Moussaka🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis🍜 Pad Thai🧆 Falafel mit Hummus🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China23.000.000✓ ja
        🇮🇳Indien3.300.000– nur Eigenkonsum
        🇪🇬Ägypten320.000– nur Eigenkonsum
        🇰🇷Südkorea270.000– nur Eigenkonsum
        🇷🇺Russland270.000– nur Eigenkonsum
        🇪🇸Spanien270.000✓ ja
        🇺🇸USA210.000△ Welt-Big-Player, AT-Handel seltenKalifornien (Gilroy)
        🇦🇷Argentinien140.000✓ ja
        🇹🇷Türkei140.000✓ ja
        🇲🇽Mexiko90.000△ Welt-Big-Player, AT-Handel selten
        🇮🇷Iran73.000– nur Eigenkonsum
        🇮🇹Italien25.000✓ EU-Nachbar
        🇫🇷Frankreich20.000✓ EU-NachbarLautrec-Knoblauch (Rosé) — PGI
        🇬🇷Griechenland8.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇦 Marokko🇹🇳 Tunesien🇩🇿 Algerien🇸🇾 Syrien🇵🇹 Portugal🇭🇷 Kroatien🇷🇴 Rumänien🇧🇬 Bulgarien🇭🇺 Ungarn🇦🇹 Österreich🇩🇪 Deutschland🇵🇱 Polen🇵🇪 Peru🇨🇱 Chile🇹🇭 Thailand

        💡 China produziert fast 3 von 4 Knoblauchknollen weltweit. Allein die Region Shandong baut mehr Knoblauch an als der Rest der Welt zusammen.

        🥥 Kokosnuss / Kokosmilch

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇩Indonesien17.000.000✓ ja
        🇵🇭Philippinen14.000.000✓ ja
        🇮🇳Indien14.000.000– nur Eigenkonsum
        🇱🇰Sri Lanka2.500.000✓ ja
        🇧🇷Brasilien2.300.000– nur Eigenkonsum
        🇻🇳Vietnam1.900.000✓ ja
        🇲🇽Mexiko1.300.000– nur Eigenkonsum
        🇹🇭Thailand850.000✓ ja
        🇲🇾Malaysia500.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇬 Madagaskar🇹🇿 Tansania🇰🇪 Kenia🇨🇴 Kolumbien🇻🇪 Venezuela🇪🇨 Ecuador🇨🇺 Kuba🇩🇴 Dom. Republik🇵🇦 Panama🇨🇷 Costa Rica

        💡 Eine Kokospalme trägt bis zu 100 Nüsse pro Jahr — über viele Jahrzehnte hinweg.

        🌿 Koriander (Samen)

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis🧆 Falafel mit Hummus🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien320.000✓ ja
        🇷🇺Russland80.000✓ ja
        🇲🇦Marokko45.000✓ ja
        🇲🇽Mexiko30.000– nur Eigenkonsum
        🇺🇦Ukraine28.000✓ ja
        🇧🇬Bulgarien15.000✓ ja
        🇪🇬Ägypten10.000✓ ja
        🇮🇷Iran8.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇷 Türkei🇸🇾 Syrien🇪🇸 Spanien🇮🇹 Italien🇷🇴 Rumänien🇭🇺 Ungarn🇵🇰 Pakistan🇨🇳 China

        💡 Korianderblätter (frisch) und -samen (getrocknet) schmecken komplett unterschiedlich — viele Leute mögen das eine und hassen das andere.

        🌿 Mediterrane Kräuter

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🥟 Kärntner Kasnudeln🍲 Steirisches Wurzelfleisch🧀 Vorarlberger Käsespätzle (Käsknöpfle)🥩 Wiener Schnitzel🥨 Bayerische Brezel mit Obatzda🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🍳 Zürcher Geschnetzeltes mit Rösti🍕 Pizza Margherita🥘 Paella Valenciana🍆 Ratatouille Niçoise🍆 Moussaka🥟 Pierogi Ruskie (Teigtaschen)🍲 Ungarisches Gulasch (Gulyás)🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇫🇷Frankreich35.000✓ EU-NachbarProvence — Lavendel + Kräuter de Provence
        🇮🇹Italien32.000✓ EU-NachbarSüditalien — Oregano, Basilikum
        🇬🇷Griechenland18.000✓ jaWild gesammelter Bergoregano
        🇲🇦Marokko15.000✓ ja
        🇹🇷Türkei12.000✓ ja
        🇪🇸Spanien11.000✓ ja
        🇪🇬Ägypten8.000✓ jaGroßer Basilikum- und Petersilien-Exporteur für EU
        🇹🇳Tunesien6.000✓ ja
        🇵🇹Portugal4.000✓ ja
        🇭🇷Kroatien3.000✓ EU-NachbarAdria-Inseln — wilder Salbei + Lavendel

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇩🇿 Algerien🇸🇾 Syrien🇮🇱 Israel🇦🇷 Argentinien🇨🇱 Chile🇿🇦 Südafrika🇦🇺 Australien

        💡 Die „Kräuter der Provence" sind eigentlich eine moderne Marketing-Erfindung der 1970er — historisch gab es so eine Mischung gar nicht.

        🌿 Kümmel

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🍲 Ungarisches Gulasch (Gulyás)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇫🇮Finnland28.000✓ ja
        🇳🇱Niederlande15.000✓ EU-Nachbar
        🇨🇦Kanada6.000✓ ja
        🇪🇬Ägypten5.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland4.000✓ EU-Nachbar
        🇵🇱Polen3.000✓ EU-Nachbar
        🇦🇹Österreich500✓ EU-NachbarMühlviertler Kümmel ist regional bedeutsam

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇿 Tschechien🇭🇺 Ungarn🇷🇴 Rumänien🇫🇷 Frankreich🇺🇦 Ukraine

        💡 Kümmel ist eine alte heimische Pflanze in Mitteleuropa — passt in Brot, Sauerkraut und Käse.

        🌿 Kreuzkümmel (Cumin)

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien580.000✓ ja
        🇮🇷Iran60.000✓ ja
        🇹🇷Türkei20.000✓ ja
        🇸🇾Syrien12.000△ Welt-Big-Player, AT-Handel selten
        🇨🇳China8.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇪🇬 Ägypten🇲🇦 Marokko🇹🇳 Tunesien🇩🇿 Algerien🇪🇸 Spanien🇵🇰 Pakistan🇲🇽 Mexiko

        💡 Vorsicht: Kreuzkümmel wird oft mit Kümmel verwechselt — schmeckt aber ganz anders.

        🟡 Kurkuma

        Vorkommen in Gerichten:
        🍛 Gemüse-Curry mit Reis

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien1.100.000✓ ja
        🇧🇩Bangladesch50.000– nur Eigenkonsum
        🇵🇰Pakistan45.000– nur Eigenkonsum
        🇲🇲Myanmar30.000– nur Eigenkonsum
        🇳🇬Nigeria30.000– nur Eigenkonsum
        🇨🇳China25.000– nur Eigenkonsum
        🇹🇭Thailand12.000△ Welt-Big-Player, AT-Handel selten
        🇮🇩Indonesien10.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇵🇭 Philippinen🇱🇰 Sri Lanka🇲🇬 Madagaskar🇰🇭 Kambodscha🇨🇴 Kolumbien🇵🇪 Peru

        💡 Kurkuma färbt so stark, dass es auch als natürlicher Lebensmittelfarbstoff (E100) genutzt wird.

        🐑 Lammfleisch

        Vorkommen in Gerichten:
        🍆 Moussaka

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China2.400.000✓ jaWeltgrößter Schafhalter — bleibt im Land
        🇮🇳Indien1.000.000✓ ja
        🇦🇺Australien750.000✓ ja
        🇳🇿Neuseeland470.000✓ ja
        🇵🇰Pakistan440.000✓ ja
        🇹🇷Türkei430.000✓ jaGrößter Schafhalter Mittelmeer-Raum, Lamm geht zu großen Teilen nach EU
        🇮🇷Iran370.000✓ ja
        🇩🇿Algerien340.000✓ ja
        🇸🇩Sudan300.000✓ ja
        🇬🇧Großbritannien280.000✓ jaWalisisches Lamm — geht überwiegend in den UK-Markt
        🇪🇸Spanien150.000✓ jaCordero — kastilische Lammhaltung, exportiert auch nach AT
        🇬🇷Griechenland80.000✓ jaKlassischer Moussaka-Lammlieferant
        🇫🇷Frankreich80.000✓ EU-NachbarAgneau, oft aus Pays-de-la-Loire
        🇧🇬Bulgarien30.000✓ ja
        🇮🇹Italien25.000✓ EU-NachbarAgnello, vor allem Süditalien + Sardinien
        🇩🇪Deutschland15.000✓ EU-Nachbar
        🇦🇹Österreich7.000✓ EU-NachbarKleine, aber wachsende Alpschafhaltung

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇷🇴 Rumänien🇺🇦 Ukraine🇲🇦 Marokko🇹🇳 Tunesien🇦🇷 Argentinien🇿🇦 Südafrika🇮🇪 Irland🇮🇸 Island🇪🇬 Ägypten🇸🇾 Syrien

        💡 Moussaka, Kebab und nordafrikanische Tagines werden klassisch mit Lammfleisch zubereitet — in Österreich kommt das meiste Lamm aus der Türkei, Spanien und Griechenland.

        🍪 Lebkuchen-Gewürz

        Vorkommen in Gerichten:
        🍖 Rheinischer Sauerbraten

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇩Indonesien✓ jaZimt + Muskat + Nelken
        🇱🇰Sri Lanka✓ jaCeylon-Zimt
        🇲🇬Madagaskar✓ jaGewürznelken
        🇬🇹Guatemala✓ jaKardamom
        🇮🇳Indien✓ jaIngwer

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇹🇭 Thailand🇲🇾 Malaysia🇰🇭 Kambodscha🇹🇿 Tansania🇨🇲 Kamerun

        💡 Lebkuchen-Gewürz ist eine Mischung von 5-7 Gewürzen — die jede für sich Tropen-Welthandels-Klassiker sind.

        🟢 Limette

        Vorkommen in Gerichten:
        🍜 Pad Thai🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien3.700.000– nur EigenkonsumVor allem Eigenkonsum
        🇲🇽Mexiko3.000.000✓ jaGrößter Welt-Exporteur
        🇦🇷Argentinien1.700.000~ Off-Season (EU-Winter)
        🇧🇷Brasilien1.500.000– nur Eigenkonsum
        🇪🇸Spanien1.100.000✓ ja
        🇹🇷Türkei1.100.000✓ ja
        🇮🇷Iran800.000– nur Eigenkonsum
        🇺🇸USA730.000– geht nach Asien
        🇪🇬Ägypten400.000– nur Eigenkonsum
        🇵🇪Peru270.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇴 Kolumbien🇻🇪 Venezuela🇬🇹 Guatemala🇩🇴 Dom. Republik🇵🇭 Philippinen🇹🇭 Thailand🇻🇳 Vietnam🇬🇷 Griechenland🇮🇹 Italien

        💡 Limettensaft hält angeschnittene Avocado grün — die Säure bremst das Braunwerden.

        🌽 Mais (Tortilla, Polenta)

        Vorkommen in Gerichten:
        🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇺🇸USA350.000.000✓ jaCorn Belt: Iowa, Illinois
        🇨🇳China280.000.000– nur Eigenkonsum
        🇧🇷Brasilien130.000.000△ Welt-Big-Player, AT-Handel selten
        🇦🇷Argentinien60.000.000△ Welt-Big-Player, AT-Handel selten
        🇮🇳Indien35.000.000– nur Eigenkonsum
        🇺🇦Ukraine30.000.000✓ ja
        🇲🇽Mexiko27.000.000– nur Eigenkonsum
        🇨🇦Kanada14.000.000△ Welt-Big-Player, AT-Handel selten
        🇫🇷Frankreich13.000.000✓ EU-Nachbar
        🇷🇴Rumänien12.000.000✓ ja
        🇳🇬Nigeria12.000.000– nur Eigenkonsum
        🇪🇹Äthiopien10.000.000– nur Eigenkonsum
        🇵🇱Polen8.000.000✓ EU-Nachbar
        🇭🇺Ungarn7.000.000✓ EU-Nachbar
        🇷🇸Serbien7.000.000✓ ja
        🇹🇷Türkei6.000.000△ Welt-Big-Player, AT-Handel selten
        🇮🇹Italien6.000.000✓ EU-Nachbar
        🇵🇾Paraguay5.000.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland4.000.000✓ EU-Nachbar
        🇦🇹Österreich2.300.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇭🇷 Kroatien🇧🇬 Bulgarien🇸🇰 Slowakei🇪🇸 Spanien🇵🇪 Peru🇨🇴 Kolumbien🇬🇹 Guatemala🇹🇿 Tansania🇸🇩 Sudan

        💡 Mais ist mengenmäßig das meistangebaute Getreide der Welt — noch vor Weizen und Reis.

        🌿 Majoran

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇪🇬Ägypten12.000✓ ja
        🇫🇷Frankreich2.500✓ EU-Nachbar
        🇬🇷Griechenland1.500✓ ja
        🇹🇷Türkei1.000✓ ja
        🇩🇪Deutschland800✓ EU-Nachbar
        🇦🇹Österreich200✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇹 Italien🇪🇸 Spanien🇵🇹 Portugal🇲🇦 Marokko🇲🇽 Mexiko

        💡 Majoran gehört zu den klassischen DACH-Würzkräutern für Sterz, Knödel und Bratwurst.

        🌰 Mandeln

        Vorkommen in Gerichten:
        🥧 Apfelstrudel

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇺🇸USA1.200.000✓ jaKalifornien (Central Valley)
        🇪🇸Spanien340.000✓ ja
        🇦🇺Australien140.000✓ ja
        🇮🇷Iran130.000– nur Eigenkonsum
        🇲🇦Marokko130.000✓ ja
        🇹🇷Türkei100.000✓ ja
        🇮🇹Italien80.000✓ EU-NachbarSizilien, Apulien
        🇸🇾Syrien60.000– nur Eigenkonsum
        🇩🇿Algerien60.000– nur Eigenkonsum
        🇹🇳Tunesien60.000– nur Eigenkonsum
        🇬🇷Griechenland40.000✓ ja
        🇵🇹Portugal25.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇫🇷 Frankreich🇭🇷 Kroatien🇮🇱 Israel🇪🇬 Ägypten🇦🇷 Argentinien🇨🇱 Chile🇿🇦 Südafrika

        💡 Mandelbäume brauchen Bienen zur Bestäubung — in Kalifornien werden dafür Milliarden Bienen herangekarrt.

        🍑 Marille (Aprikose)

        Vorkommen in Gerichten:
        🍑 Wachauer Marillenknödel🎂 Sachertorte

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇹🇷Türkei880.000✓ jaRegion Malatya
        🇮🇷Iran290.000– nur Eigenkonsum
        🇩🇿Algerien290.000– nur Eigenkonsum
        🇮🇹Italien280.000✓ EU-Nachbar
        🇪🇸Spanien150.000✓ ja
        🇫🇷Frankreich130.000✓ EU-Nachbar
        🇵🇰Pakistan120.000– nur Eigenkonsum
        🇲🇦Marokko120.000✓ ja
        🇸🇾Syrien70.000– nur Eigenkonsum
        🇪🇬Ägypten70.000△ Welt-Big-Player, AT-Handel selten
        🇺🇸USA46.000– nur Eigenkonsum
        🇬🇷Griechenland45.000✓ ja
        🇭🇺Ungarn30.000✓ EU-Nachbar
        🇦🇹Österreich10.000✓ EU-NachbarWachauer Marille (Herkunfts-geschützt) + Burgenland

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇷🇴 Rumänien🇧🇬 Bulgarien🇷🇸 Serbien🇵🇹 Portugal🇭🇷 Kroatien🇨🇿 Tschechien🇸🇰 Slowakei🇨🇱 Chile🇦🇷 Argentinien

        💡 Die Wachauer Marille reift wegen des warmen Pannonischen Klimas mit kühlen Nächten besonders aromatisch.

        🌾 Mehl (Weichweizen)

        Vorkommen in Gerichten:
        🥟 Kärntner Kasnudeln🧀 Vorarlberger Käsespätzle (Käsknöpfle)🍑 Wachauer Marillenknödel🥩 Wiener Schnitzel🎂 Sachertorte🥧 Apfelstrudel🥐 Topfengolatsche🥨 Bayerische Brezel mit Obatzda🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🍰 Schwarzwälder Kirschtorte🍳 Zürcher Geschnetzeltes mit Rösti🍆 Moussaka🥮 Kanelbulle (Zimtschnecke)🥟 Pierogi Ruskie (Teigtaschen)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China137.000.000– nur Eigenkonsum
        🇮🇳Indien110.000.000– nur Eigenkonsum
        🇷🇺Russland92.000.000– nur Eigenkonsum
        🇺🇸USA50.000.000△ Welt-Big-Player, AT-Handel selten
        🇦🇺Australien36.000.000△ Welt-Big-Player, AT-Handel selten
        🇨🇦Kanada35.000.000△ Welt-Big-Player, AT-Handel selten
        🇫🇷Frankreich35.000.000✓ EU-Nachbar
        🇵🇰Pakistan27.000.000– nur Eigenkonsum
        🇺🇦Ukraine25.000.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland21.000.000✓ EU-Nachbar
        🇹🇷Türkei20.000.000– nur Eigenkonsum
        🇦🇷Argentinien20.000.000– nur Eigenkonsum
        🇵🇱Polen12.000.000✓ EU-Nachbar
        🇷🇴Rumänien10.000.000✓ ja
        🇪🇸Spanien7.000.000✓ ja
        🇭🇺Ungarn5.000.000✓ EU-Nachbar
        🇮🇹Italien3.000.000✓ EU-Nachbar
        🇦🇹Österreich1.500.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇷 Iran🇧🇾 Belarus🇨🇿 Tschechien🇪🇬 Ägypten🇲🇦 Marokko🇸🇾 Syrien🇧🇬 Bulgarien🇷🇸 Serbien

        💡 Weizen wird auf der größten Ackerfläche der Welt angebaut — mehr als 220 Mio Hektar.

        🥛 Milch / Sahne

        Vorkommen in Gerichten:
        🎂 Sachertorte🍰 Schwarzwälder Kirschtorte🍳 Zürcher Geschnetzeltes mit Rösti🥧 Quiche Lorraine🍆 Moussaka🥮 Kanelbulle (Zimtschnecke)🥟 Pierogi Ruskie (Teigtaschen)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien220.000.000– nur Eigenkonsum
        🇺🇸USA100.000.000– nur Eigenkonsum
        🇵🇰Pakistan62.000.000– nur Eigenkonsum
        🇨🇳China37.000.000– nur Eigenkonsum
        🇧🇷Brasilien37.000.000– nur Eigenkonsum
        🇩🇪Deutschland32.000.000✓ EU-NachbarGrößter EU-Produzent
        🇷🇺Russland31.000.000– nur Eigenkonsum
        🇫🇷Frankreich25.000.000✓ EU-Nachbar
        🇹🇷Türkei23.000.000– nur Eigenkonsum
        🇳🇿Neuseeland22.000.000△ Welt-Big-Player, AT-Handel seltenGrößter Milch-Exporteur (Fonterra)
        🇬🇧Großbritannien15.400.000△ Welt-Big-Player, AT-Handel selten
        🇵🇱Polen15.000.000✓ EU-Nachbar
        🇳🇱Niederlande14.000.000✓ EU-Nachbar
        🇮🇹Italien13.000.000✓ EU-Nachbar
        🇲🇽Mexiko13.000.000– nur Eigenkonsum
        🇦🇷Argentinien11.000.000△ Welt-Big-Player, AT-Handel selten
        🇨🇦Kanada9.300.000△ Welt-Big-Player, AT-Handel selten
        🇮🇪Irland8.500.000✓ ja
        🇦🇺Australien8.400.000△ Welt-Big-Player, AT-Handel selten
        🇺🇦Ukraine8.200.000△ Welt-Big-Player, AT-Handel selten
        🇪🇸Spanien7.900.000✓ ja
        🇧🇾Belarus7.800.000△ Welt-Big-Player, AT-Handel selten
        🇩🇰Dänemark5.800.000✓ ja
        🇧🇪Belgien4.400.000✓ EU-Nachbar
        🇦🇹Österreich3.800.000✓ EU-NachbarWichtigster Agrar-Sektor; ca. 80 % Hofeigentum
        🇷🇴Rumänien3.500.000✓ ja
        🇨🇭Schweiz3.300.000✓ EU-Nachbar
        🇨🇿Tschechien3.300.000✓ EU-Nachbar
        🇭🇺Ungarn2.000.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇧🇬 Bulgarien🇬🇷 Griechenland🇷🇸 Serbien🇭🇷 Kroatien🇸🇰 Slowakei🇨🇴 Kolumbien🇻🇪 Venezuela🇨🇱 Chile🇵🇪 Peru🇮🇷 Iran

        💡 Indien ist mit Abstand der größte Milch-Produzent — aber fast die ganze Menge bleibt im Land (Joghurt, Ghee, Tee).

        🧀 Mozzarella

        Vorkommen in Gerichten:
        🧀 Vorarlberger Käsespätzle (Käsknöpfle)🥨 Bayerische Brezel mit Obatzda🫕 Schweizer Käsefondue🍕 Pizza Margherita

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇺🇸USA1.500.000– nur EigenkonsumGrößter Volumen-Produzent (für Pizza-Industrie), aber Kuhmilch-Standard
        🇮🇹Italien270.000✓ EU-NachbarMozzarella di Bufala Campana (PDO) aus Büffelmilch
        🇩🇪Deutschland250.000✓ EU-Nachbar
        🇫🇷Frankreich60.000✓ EU-Nachbar
        🇪🇸Spanien40.000✓ ja
        🇦🇷Argentinien35.000– nur Eigenkonsum
        🇵🇱Polen35.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇳🇱 Niederlande🇮🇪 Irland🇩🇰 Dänemark🇦🇹 Österreich🇨🇭 Schweiz🇧🇪 Belgien🇬🇷 Griechenland

        💡 Echter Büffel-Mozzarella muss am selben Tag gegessen werden — er hält nur 24 Stunden frisch.

        🌰 Muskat

        Vorkommen in Gerichten:
        🧀 Vorarlberger Käsespätzle (Käsknöpfle)🥟 Schwäbische Maultaschen🫕 Schweizer Käsefondue🥧 Quiche Lorraine🍆 Moussaka

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇩Indonesien25.000✓ ja
        🇬🇹Guatemala8.000✓ ja
        🇮🇳Indien6.000– nur Eigenkonsum
        🇱🇰Sri Lanka3.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇭 Philippinen🇲🇾 Malaysia🇲🇬 Madagaskar🇨🇲 Kamerun🇹🇿 Tansania

        💡 Muskat war im 17. Jahrhundert so wertvoll, dass die Niederländer und Engländer einen Krieg um die Muskat-Inseln (Banda-Inseln) führten.

        🌾 Gewürznelken

        Vorkommen in Gerichten:
        🍖 Rheinischer Sauerbraten

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇩Indonesien130.000✓ ja
        🇲🇬Madagaskar23.000✓ ja
        🇹🇿Tansania8.000✓ jaSansibar — historisch das „Gewürz-Zentrum" der Welt
        🇮🇳Indien1.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇱🇰 Sri Lanka🇲🇾 Malaysia🇵🇭 Philippinen🇨🇲 Kamerun🇧🇷 Brasilien

        💡 Bei Heinrich VIII galt Gewürznelken-Atem als so unangenehm, dass am englischen Hof aromatisierte Münzen kursierten.

        🟢 Nori (Seetang)

        Vorkommen in Gerichten:
        🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China22.000.000✓ ja
        🇮🇩Indonesien10.000.000△ Welt-Big-Player, AT-Handel selten
        🇵🇭Philippinen1.400.000△ Welt-Big-Player, AT-Handel selten
        🇰🇷Südkorea600.000✓ jaSpezialisiert auf Nori-Blätter
        🇯🇵Japan350.000✓ jaKlassische Nori-Heimat
        🇲🇾Malaysia200.000△ Welt-Big-Player, AT-Handel selten
        🇻🇳Vietnam100.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇭 Thailand🇱🇰 Sri Lanka🇮🇪 Irland🇳🇴 Norwegen🇮🇸 Island🇨🇱 Chile🇵🇪 Peru🇰🇪 Kenia🇹🇿 Tansania🇲🇬 Madagaskar

        💡 Nori wird auf Netzen im flachen Küstenwasser „angebaut" und wie Gemüse geerntet.

        🫒 Olivenöl

        Vorkommen in Gerichten:
        🍲 Steirisches Wurzelfleisch🥧 Apfelstrudel🍕 Pizza Margherita🥘 Paella Valenciana🍳 Tortilla Española🍆 Ratatouille Niçoise🍆 Moussaka🍛 Gemüse-Curry mit Reis🍜 Pad Thai🧆 Falafel mit Hummus🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇪🇸Spanien1.400.000✓ ja
        🇮🇹Italien400.000✓ EU-Nachbar
        🇬🇷Griechenland300.000✓ ja
        🇹🇷Türkei280.000✓ ja
        🇹🇳Tunesien240.000✓ ja
        🇲🇦Marokko200.000✓ ja
        🇵🇹Portugal150.000✓ ja
        🇸🇾Syrien130.000– nur Eigenkonsum
        🇩🇿Algerien100.000– nur Eigenkonsum
        🇦🇷Argentinien25.000~ Off-Season (EU-Winter)
        🇨🇱Chile20.000~ Off-Season (EU-Winter)
        🇭🇷Kroatien5.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇫🇷 Frankreich🇪🇬 Ägypten🇮🇱 Israel🇮🇷 Iran🇺🇸 USA🇦🇺 Australien🇿🇦 Südafrika

        💡 Ein Olivenbaum kann über 1000 Jahre alt werden und trägt jedes Jahr aufs Neue Früchte.

        🍊 Orange / Orangensaft

        — Aktuell in keinem Gericht direkt verwendet.

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇧🇷Brasilien17.000.000✓ jaGrößter Saft-Exporteur weltweit
        🇨🇳China11.000.000– nur Eigenkonsum
        🇮🇳Indien10.000.000– nur Eigenkonsum
        🇲🇽Mexiko4.900.000– nur Eigenkonsum
        🇪🇸Spanien3.600.000✓ jaGrößter EU-Produzent (Valencia)
        🇪🇬Ägypten3.400.000✓ ja
        🇺🇸USA2.900.000– nur EigenkonsumFlorida + Kalifornien
        🇹🇷Türkei1.900.000✓ ja
        🇿🇦Südafrika1.700.000~ Off-Season (EU-Winter)
        🇵🇰Pakistan1.500.000– nur Eigenkonsum
        🇮🇷Iran1.400.000– nur Eigenkonsum
        🇮🇹Italien1.300.000✓ EU-NachbarSizilien
        🇬🇷Griechenland900.000✓ ja
        🇦🇷Argentinien900.000~ Off-Season (EU-Winter)
        🇲🇦Marokko900.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇭🇷 Kroatien🇨🇱 Chile🇩🇿 Algerien🇹🇳 Tunesien🇨🇺 Kuba🇩🇴 Dom. Republik🇦🇺 Australien

        💡 Fast die Hälfte aller Orangen wird zu Saft verarbeitet; Brasilien ist der größte Saft-Exporteur.

        🟥 Paprika-Pulver

        Vorkommen in Gerichten:
        🥨 Bayerische Brezel mit Obatzda🥘 Paella Valenciana🍲 Ungarisches Gulasch (Gulyás)🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China18.000.000– nur Eigenkonsumfrische Paprika (Welt-Nr. 1)
        🇲🇽Mexiko3.300.000– nur Eigenkonsum
        🇹🇷Türkei2.500.000✓ ja
        🇮🇩Indonesien1.300.000– nur Eigenkonsum
        🇪🇸Spanien1.100.000✓ ja
        🇺🇸USA650.000– nur Eigenkonsum
        🇭🇺Ungarn140.000✓ EU-NachbarKlassisches Paprika-Pulver (Edelsüß, Rosenscharf)
        🇵🇪Peru120.000– nur Eigenkonsum

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇷🇸 Serbien🇧🇬 Bulgarien🇬🇷 Griechenland🇮🇹 Italien🇷🇴 Rumänien🇦🇷 Argentinien🇨🇱 Chile🇲🇦 Marokko

        💡 Der ungarische Paprika kam erst über die Türken im 16. Jahrhundert nach Mitteleuropa — vorher kannten wir nur Pfeffer.

        🧀 Pecorino (Käse)

        Vorkommen in Gerichten:
        🍝 Spaghetti Carbonara

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇹Italien50.000✓ EU-Nachbar4 PDO-Sorten: Romano, Sardo, Toscano, Siciliano
        🇬🇷Griechenland6.000✓ jaKefalotyri — eigenständig, ähnlicher Stil
        🇫🇷Frankreich500✓ EU-NachbarÄhnliche Schafkäse (Tomme de Brebis)

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇪🇸 Spanien🇵🇹 Portugal🇹🇷 Türkei🇦🇹 Österreich🇨🇭 Schweiz🇷🇴 Rumänien

        💡 Echter Pecorino ist aus Schafmilch (pecora = Schaf). Pecorino Romano wird seit 2000 Jahren gemacht — schon die Römer aßen ihn.

        🧂 Schwarzer Pfeffer

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🥟 Kärntner Kasnudeln🍲 Steirisches Wurzelfleisch🥩 Wiener Schnitzel🥨 Bayerische Brezel mit Obatzda🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🫕 Schweizer Käsefondue🍳 Zürcher Geschnetzeltes mit Rösti🍝 Spaghetti Carbonara🥧 Quiche Lorraine🥟 Pierogi Ruskie (Teigtaschen)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇻🇳Vietnam220.000✓ ja
        🇧🇷Brasilien95.000✓ ja
        🇮🇩Indonesien74.000✓ ja
        🇮🇳Indien62.000✓ ja
        🇱🇰Sri Lanka26.000✓ ja
        🇲🇾Malaysia18.000✓ ja
        🇰🇭Kambodscha18.000✓ ja
        🇨🇳China12.000– nur Eigenkonsum
        🇨🇲Kamerun3.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇭 Thailand🇵🇭 Philippinen🇲🇬 Madagaskar🇨🇴 Kolumbien🇲🇽 Mexiko

        💡 Pfeffer war im Mittelalter so wertvoll, dass man ihn „schwarzes Gold" nannte und damit sogar bezahlte.

        🍚 Reis

        Vorkommen in Gerichten:
        🥘 Paella Valenciana🍛 Gemüse-Curry mit Reis🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China210.000.000– nur Eigenkonsum
        🇮🇳Indien178.000.000✓ ja
        🇧🇩Bangladesch56.000.000– nur Eigenkonsum
        🇮🇩Indonesien54.000.000– nur Eigenkonsum
        🇻🇳Vietnam43.000.000– nur Eigenkonsum
        🇹🇭Thailand32.000.000✓ jaGrößter Reis-Exporteur
        🇲🇲Myanmar25.000.000– nur Eigenkonsum
        🇵🇭Philippinen19.000.000– nur Eigenkonsum
        🇧🇷Brasilien11.000.000– nur Eigenkonsum
        🇰🇭Kambodscha11.000.000– nur Eigenkonsum
        🇵🇰Pakistan10.000.000– nur Eigenkonsum
        🇳🇬Nigeria8.000.000– nur Eigenkonsum
        🇯🇵Japan7.500.000– nur Eigenkonsum
        🇺🇸USA7.000.000✓ jaArkansas + Louisiana
        🇪🇬Ägypten6.500.000– nur Eigenkonsum
        🇰🇷Südkorea4.000.000– nur Eigenkonsum
        🇮🇷Iran3.000.000– nur Eigenkonsum
        🇮🇹Italien1.400.000✓ EU-NachbarPo-Ebene, größter EU-Reis-Anbau
        🇪🇸Spanien600.000✓ jaValencia (Paella-Reis)

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇾 Malaysia🇱🇰 Sri Lanka🇳🇵 Nepal🇹🇿 Tansania🇲🇬 Madagaskar🇨🇴 Kolumbien🇻🇪 Venezuela🇪🇨 Ecuador🇵🇪 Peru🇬🇹 Guatemala🇩🇴 Dom. Republik

        💡 Für mehr als die Hälfte der Menschheit ist Reis das wichtigste Grundnahrungsmittel.

        🍜 Reisnudeln

        Vorkommen in Gerichten:
        🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China✓ jaAus chinesischem Reis traditionell hergestellt
        🇹🇭Thailand✓ jaPad Thai & Sen Yai
        🇻🇳Vietnam✓ jaPhở & Bun
        🇯🇵Japan✓ jaBifun
        🇰🇷Südkorea✓ ja
        🇮🇩Indonesien✓ ja
        🇵🇭Philippinen✓ jaPancit

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇾 Malaysia🇰🇭 Kambodscha🇲🇲 Myanmar🇮🇳 Indien🇱🇰 Sri Lanka🇧🇩 Bangladesch

        💡 Reisnudeln sind glutenfrei — perfekt für Menschen mit Zöliakie.

        🥩 Rind (für Gulasch)

        Vorkommen in Gerichten:
        🍲 Ungarisches Gulasch (Gulyás)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇩🇪Deutschland1.100.000✓ EU-Nachbar
        🇵🇱Polen580.000✓ EU-Nachbar
        🇦🇹Österreich220.000✓ EU-NachbarGrößter Lieferant für Wiener Gasthäuser
        🇷🇸Serbien75.000✓ ja
        🇨🇿Tschechien64.000✓ EU-Nachbar
        🇷🇴Rumänien37.000✓ ja
        🇭🇺Ungarn35.000✓ EU-NachbarUngarisches Grauvieh — eigene historische Rasse
        🇸🇰Slowakei35.000✓ EU-Nachbar
        🇭🇷Kroatien35.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇹 Italien🇫🇷 Frankreich🇨🇭 Schweiz🇧🇬 Bulgarien

        💡 Das Wort Gulasch kommt vom ungarischen *gulyás* = Rinderhirte. Auf der Puszta kochten die Hirten den Eintopf über offenem Feuer.

        🧊 Rohrzucker

        Vorkommen in Gerichten:
        🥧 Apfelstrudel🥮 Kanelbulle (Zimtschnecke)🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇧🇷Brasilien715.000.000✓ jaGrößter Welt-Exporteur, auch für Ethanol
        🇮🇳Indien415.000.000– nur Eigenkonsum
        🇨🇳China110.000.000– nur Eigenkonsum
        🇹🇭Thailand90.000.000✓ ja
        🇵🇰Pakistan88.000.000– nur Eigenkonsum
        🇲🇽Mexiko60.000.000– nur Eigenkonsum
        🇬🇹Guatemala35.000.000△ Welt-Big-Player, AT-Handel selten
        🇮🇩Indonesien32.000.000– nur Eigenkonsum
        🇦🇺Australien29.000.000✓ ja
        🇨🇴Kolumbien25.000.000△ Welt-Big-Player, AT-Handel selten
        🇵🇭Philippinen23.000.000– nur Eigenkonsum
        🇪🇬Ägypten16.000.000– nur Eigenkonsum
        🇨🇺Kuba1.500.000– nur Eigenkonsumhistorisch viel mehr, heute kaum noch

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇪 Venezuela🇵🇪 Peru🇦🇷 Argentinien🇵🇾 Paraguay🇩🇴 Dom. Republik🇵🇦 Panama🇨🇷 Costa Rica🇭🇳 Honduras🇻🇳 Vietnam🇲🇾 Malaysia🇲🇲 Myanmar

        💡 Aus Zuckerrohr macht Brasilien auch Biosprit (Ethanol) für Autos — ein Drittel der Ernte geht in den Tank.

        🍇 Rosinen (getr. Trauben)

        Vorkommen in Gerichten:
        🥧 Apfelstrudel🥐 Topfengolatsche🍖 Rheinischer Sauerbraten

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇹🇷Türkei340.000✓ jaSultanas aus der Ägäis-Region
        🇺🇸USA280.000✓ jaKalifornien (Sun-Maid)
        🇮🇷Iran200.000✓ ja
        🇨🇳China180.000– nur EigenkonsumXinjiang
        🇿🇦Südafrika70.000~ Off-Season (EU-Winter)
        🇨🇱Chile65.000~ Off-Season (EU-Winter)
        🇦🇷Argentinien35.000~ Off-Season (EU-Winter)
        🇬🇷Griechenland20.000✓ jaKorinthen
        🇦🇺Australien8.000~ Off-Season (EU-Winter)

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇹 Italien🇪🇸 Spanien🇵🇹 Portugal🇫🇷 Frankreich🇸🇾 Syrien🇲🇦 Marokko🇩🇿 Algerien🇪🇬 Ägypten

        💡 Eine Sultana (eine Rosinen-Sorte) ist eine kernlose, helle Traube — getrocknet und manchmal mit Schwefel behandelt.

        🌸 Safran

        Vorkommen in Gerichten:
        🥘 Paella Valenciana

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇷Iran430✓ ja
        🇬🇷Griechenland6✓ ja
        🇪🇸Spanien5✓ ja
        🇲🇦Marokko4△ Welt-Big-Player, AT-Handel selten
        🇮🇳Indien3– nur EigenkonsumKashmir-Region
        🇮🇹Italien1✓ EU-NachbarToskana, Abruzzen — winzige Mengen

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇷 Türkei🇸🇾 Syrien🇪🇬 Ägypten🇫🇷 Frankreich🇵🇹 Portugal

        💡 Safran ist das teuerste Gewürz der Welt — für 1 kg Safran braucht man ~150.000 Krokusblüten, alles per Hand gepflückt.

        🥛 Schmand / Saure Sahne

        Vorkommen in Gerichten:
        🥟 Pierogi Ruskie (Teigtaschen)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇩🇪Deutschland✓ EU-Nachbar
        🇵🇱Polen✓ EU-NachbarSmetana
        🇷🇺Russland✓ jaSmetana — Grundlage von Borschtsch
        🇦🇹Österreich✓ EU-Nachbar
        🇺🇦Ukraine✓ ja
        🇫🇷Frankreich✓ EU-NachbarCrème fraîche
        🇧🇾Belarus✓ ja
        🇨🇿Tschechien✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇭 Schweiz🇳🇱 Niederlande🇩🇰 Dänemark🇭🇺 Ungarn🇷🇴 Rumänien🇸🇰 Slowakei

        💡 In Osteuropa ist Schmand (Smetana) Grundlage vieler Gerichte — von Stroganoff bis Pierogi.

        ⚪ Sesam

        Vorkommen in Gerichten:
        🍣 Sushi-Maki🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇸🇩Sudan760.000✓ ja
        🇲🇲Myanmar720.000– nur Eigenkonsum
        🇮🇳Indien690.000✓ ja
        🇹🇿Tansania680.000✓ ja
        🇳🇬Nigeria480.000– nur Eigenkonsum
        🇨🇳China460.000– nur Eigenkonsum
        🇪🇹Äthiopien280.000✓ ja
        🇵🇰Pakistan180.000– nur Eigenkonsum
        🇺🇬Uganda90.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇽 Mexiko🇬🇹 Guatemala🇧🇷 Brasilien🇵🇾 Paraguay🇹🇭 Thailand🇻🇳 Vietnam🇰🇭 Kambodscha🇵🇭 Philippinen🇪🇬 Ägypten

        💡 Aus Sesam wird die Paste Tahini gemacht — Grundzutat von Hummus.

        🫘 Sojabohnen

        Vorkommen in Gerichten:
        🍣 Sushi-Maki🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇧🇷Brasilien152.000.000✓ ja
        🇺🇸USA116.000.000✓ ja
        🇦🇷Argentinien50.000.000✓ ja
        🇨🇳China20.000.000– nur Eigenkonsum
        🇮🇳Indien12.000.000– nur Eigenkonsum
        🇵🇾Paraguay10.000.000△ Welt-Big-Player, AT-Handel selten
        🇨🇦Kanada7.000.000△ Welt-Big-Player, AT-Handel selten
        🇷🇺Russland5.500.000△ Welt-Big-Player, AT-Handel selten
        🇺🇦Ukraine3.500.000✓ ja
        🇧🇴Bolivien3.000.000– nur Eigenkonsum
        🇮🇹Italien1.100.000✓ EU-Nachbar
        🇷🇸Serbien540.000✓ ja
        🇫🇷Frankreich420.000✓ EU-Nachbar
        🇷🇴Rumänien400.000✓ ja
        🇭🇷Kroatien270.000✓ EU-Nachbar
        🇦🇹Österreich240.000✓ EU-NachbarMarchfeld, Pannonisches Klima — wachsender Anbau
        🇭🇺Ungarn230.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇽 Mexiko🇿🇦 Südafrika🇹🇿 Tansania🇹🇭 Thailand🇻🇳 Vietnam🇲🇲 Myanmar

        💡 Der größte Teil der Welt-Sojaernte wird nicht gegessen, sondern als Tierfutter verwendet.

        🥢 Sojasauce

        — Aktuell in keinem Gericht direkt verwendet.

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China✓ jaKlassische Heimat, viele Sorten (Shengchou, Laochou)
        🇯🇵Japan✓ jaShoyu, Kikkoman seit 1661
        🇰🇷Südkorea✓ jaGanjang, mit eigener Geschmacksprofilierung
        🇮🇩Indonesien✓ jaKecap Manis (süße Variante)
        🇹🇭Thailand✓ ja
        🇻🇳Vietnam✓ ja
        🇵🇭Philippinen✓ jaToyo

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇾 Malaysia🇲🇲 Myanmar🇰🇭 Kambodscha

        💡 Sojasauce entsteht durch Fermentation mit dem Schimmelpilz Aspergillus oryzae — derselbe Pilz, aus dem Sake und Miso gemacht werden.

        🥓 Speck (Pancetta/Tiroler)

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🍝 Spaghetti Carbonara

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇩🇪Deutschland750.000✓ EU-Nachbar
        🇵🇱Polen420.000✓ EU-Nachbar
        🇪🇸Spanien380.000✓ jaPanceta + Tocino
        🇫🇷Frankreich320.000✓ EU-NachbarLardons, Bacon-Stil
        🇮🇹Italien280.000✓ EU-NachbarPancetta + Guanciale + Speck Alto Adige (PDO)
        🇭🇺Ungarn120.000✓ EU-NachbarSzalonna
        🇦🇹Österreich80.000✓ EU-NachbarTiroler Speck, PDO seit 1996
        🇨🇭Schweiz40.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇷🇴 Rumänien🇭🇷 Kroatien🇷🇸 Serbien🇸🇰 Slowakei🇨🇿 Tschechien🇵🇹 Portugal🇧🇪 Belgien🇳🇱 Niederlande

        💡 Echter Tiroler Speck (PDO) muss mindestens 22 Wochen luftgetrocknet und über Buchenholz geräuchert werden.

        🥓 Lardons (für Quiche)

        Vorkommen in Gerichten:
        🥧 Quiche Lorraine

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇫🇷Frankreich800.000✓ EU-NachbarLardons sind die klassische FR-Würfelspeck-Form
        🇧🇪Belgien60.000✓ EU-Nachbar
        🇨🇭Schweiz40.000✓ EU-Nachbar
        🇱🇺Luxemburg5.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇹 Italien🇩🇪 Deutschland🇦🇹 Österreich🇪🇸 Spanien🇳🇱 Niederlande

        💡 Die Quiche Lorraine stammt aus Lothringen. Wichtig: das Original hat WEDER Käse NOCH Zwiebel — nur Lardons, Eier und Sahne.

        🟤 Tamarinde

        Vorkommen in Gerichten:
        🍜 Pad Thai

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien250.000✓ ja
        🇹🇭Thailand100.000✓ ja
        🇲🇽Mexiko35.000– nur Eigenkonsum
        🇲🇾Malaysia8.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇻🇳 Vietnam🇵🇭 Philippinen🇱🇰 Sri Lanka🇧🇩 Bangladesch🇲🇲 Myanmar🇰🇭 Kambodscha🇳🇬 Nigeria🇨🇲 Kamerun🇹🇿 Tansania🇧🇷 Brasilien

        💡 Tamarinde ist eine süß-saure Hülsenfrucht — Grundzutat für Worcestershire-Sauce und Pad Thai.

        🍅 Tomaten

        Vorkommen in Gerichten:
        🍕 Pizza Margherita🥘 Paella Valenciana🍆 Ratatouille Niçoise🍆 Moussaka🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China67.000.000– nur Eigenkonsum
        🇮🇳Indien20.000.000– nur Eigenkonsum
        🇹🇷Türkei13.000.000✓ ja
        🇺🇸USA11.000.000– nur EigenkonsumKalifornien
        🇪🇬Ägypten7.000.000– nur Eigenkonsum
        🇮🇹Italien6.700.000✓ EU-NachbarSan Marzano, Datterino
        🇮🇷Iran6.300.000– nur Eigenkonsum
        🇪🇸Spanien4.900.000✓ jaAlmería — riesige Gewächshäuser
        🇲🇽Mexiko4.500.000– regional
        🇧🇷Brasilien3.700.000– nur Eigenkonsum
        🇵🇹Portugal1.700.000✓ ja
        🇲🇦Marokko1.500.000✓ ja
        🇳🇱Niederlande910.000✓ EU-Nachbar
        🇬🇷Griechenland800.000✓ ja
        🇵🇱Polen650.000✓ EU-Nachbar
        🇫🇷Frankreich500.000✓ EU-Nachbar
        🇩🇪Deutschland100.000✓ EU-Nachbar
        🇦🇹Österreich65.000✓ EU-NachbarGewächshaus, Saisonal

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇹🇳 Tunesien🇩🇿 Algerien🇮🇱 Israel🇸🇾 Syrien🇵🇰 Pakistan🇧🇩 Bangladesch🇦🇷 Argentinien🇨🇱 Chile🇿🇦 Südafrika🇦🇺 Australien

        💡 Die berühmten Pizza- und Pastasaucen kommen meist aus süditalienischen Tomaten, etwa aus der Gegend um Neapel.

        🥛 Topfen / Quark

        Vorkommen in Gerichten:
        🥟 Kärntner Kasnudeln🍑 Wachauer Marillenknödel🥐 Topfengolatsche🥨 Bayerische Brezel mit Obatzda🥟 Pierogi Ruskie (Teigtaschen)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇩🇪Deutschland800.000✓ EU-NachbarQuark als Brot-Aufstrich + Backware
        🇷🇺Russland410.000– nur EigenkonsumTworog
        🇵🇱Polen380.000✓ EU-NachbarTwaróg
        🇫🇷Frankreich90.000✓ EU-NachbarFromage blanc
        🇦🇹Österreich80.000✓ EU-NachbarTopfen — typisch für Strudel, Knödel
        🇨🇿Tschechien60.000✓ EU-Nachbar
        🇳🇱Niederlande60.000✓ EU-Nachbar
        🇨🇭Schweiz45.000✓ EU-NachbarSchweizer Quark — kommt auch nach AT (Migros/Coop-Marken)

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇺🇦 Ukraine🇧🇾 Belarus🇨🇭 Schweiz🇩🇰 Dänemark🇭🇺 Ungarn🇸🇰 Slowakei

        💡 Aus 5 L Milch wird etwa 1 kg Topfen. Wichtige Eiweißquelle für Sportler:innen.

        🌼 Vanille

        Vorkommen in Gerichten:
        🎂 Sachertorte🥐 Topfengolatsche🍰 Schwarzwälder Kirschtorte

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇲🇬Madagaskar3.200✓ ja
        🇮🇩Indonesien2.400✓ ja
        🇲🇽Mexiko650– nur Eigenkonsum
        🇺🇬Uganda220✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇭 Philippinen🇹🇿 Tansania🇰🇪 Kenia🇱🇰 Sri Lanka🇨🇴 Kolumbien🇨🇷 Costa Rica🇧🇷 Brasilien

        💡 Die Vanille-Orchidee blüht nur einen einzigen Tag im Jahr — darum ist echte Vanille so selten.

        🟢 Wasabi (echt)

        Vorkommen in Gerichten:
        🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇯🇵Japan2.000✓ jaShizuoka — bevorzugt klares Bergwasser
        🇨🇳China400– nur Eigenkonsum
        🇰🇷Südkorea200– nur Eigenkonsum
        🇳🇿Neuseeland150△ Welt-Big-Player, AT-Handel seltenBio-Pioniere für nicht-japanisches Wasabi
        🇺🇸USA90– nur EigenkonsumOregon, Washington — kühles Bergklima

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇦 Kanada🇬🇧 Großbritannien🇮🇪 Irland🇳🇴 Norwegen🇸🇪 Schweden🇫🇮 Finnland🇮🇸 Island🇦🇹 Österreich🇨🇭 Schweiz

        💡 Echter Wasabi ist extrem selten und teuer — in den meisten Sushi-Restaurants wird Meerrettich mit grüner Farbe als Ersatz verwendet.

        🍷 Wein (Reben)

        Vorkommen in Gerichten:
        🥨 Bayerische Brezel mit Obatzda🍖 Rheinischer Sauerbraten🫕 Schweizer Käsefondue🍳 Zürcher Geschnetzeltes mit Rösti🍆 Moussaka

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇹Italien4.900.000✓ EU-Nachbarin Hektoliter umgerechnet, oft Welt-Nr. 1
        🇫🇷Frankreich4.500.000✓ EU-Nachbar
        🇪🇸Spanien3.500.000✓ ja
        🇺🇸USA2.400.000✓ ja
        🇦🇺Australien1.300.000✓ ja
        🇨🇱Chile1.200.000✓ ja
        🇦🇷Argentinien1.200.000✓ ja
        🇿🇦Südafrika960.000✓ ja
        🇩🇪Deutschland870.000✓ EU-Nachbar
        🇵🇹Portugal680.000✓ ja
        🇨🇳China450.000– nur Eigenkonsum
        🇷🇴Rumänien450.000✓ ja
        🇳🇿Neuseeland390.000✓ ja
        🇦🇹Österreich250.000✓ EU-Nachbar
        🇭🇺Ungarn240.000✓ EU-Nachbar
        🇬🇷Griechenland200.000✓ ja
        🇭🇷Kroatien75.000✓ EU-Nachbar
        🇸🇰Slowakei25.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇿 Tschechien🇹🇷 Türkei🇲🇦 Marokko🇩🇿 Algerien🇹🇳 Tunesien🇮🇱 Israel

        💡 Wein wird seit ca. 8000 Jahren angebaut — die ältesten Reste stammen aus Georgien.

        🥕 Wurzelgemüse (Möhre, Sellerie, Pastinake)

        Vorkommen in Gerichten:
        🍲 Steirisches Wurzelfleisch🍖 Rheinischer Sauerbraten🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis🍣 Sushi-Maki

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇨🇳China18.000.000– nur Eigenkonsum
        🇷🇺Russland1.500.000– nur Eigenkonsum
        🇺🇸USA1.300.000– nur Eigenkonsum
        🇺🇦Ukraine830.000– nur Eigenkonsum
        🇬🇧Großbritannien720.000△ Welt-Big-Player, AT-Handel selten
        🇩🇪Deutschland680.000✓ EU-Nachbar
        🇵🇱Polen600.000✓ EU-Nachbar
        🇳🇱Niederlande570.000✓ EU-Nachbar
        🇮🇹Italien470.000✓ EU-Nachbar
        🇫🇷Frankreich430.000✓ EU-Nachbar
        🇧🇾Belarus410.000– nur Eigenkonsum
        🇪🇸Spanien320.000✓ ja
        🇦🇹Österreich130.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇨🇿 Tschechien🇭🇺 Ungarn🇷🇴 Rumänien🇧🇬 Bulgarien🇮🇪 Irland🇧🇪 Belgien🇩🇰 Dänemark🇨🇦 Kanada

        💡 Möhren sind erst im 17. Jahrhundert orange geworden — vorher waren sie weiß, gelb oder violett.

        🪵 Zimt

        Vorkommen in Gerichten:
        🥧 Apfelstrudel🍆 Moussaka🥮 Kanelbulle (Zimtschnecke)

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇩Indonesien90.000✓ ja
        🇨🇳China85.000✓ ja
        🇻🇳Vietnam41.000✓ ja
        🇱🇰Sri Lanka25.000✓ jaHeimat des echten Ceylon-Zimts
        🇲🇬Madagaskar3.000△ Welt-Big-Player, AT-Handel selten

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇮🇳 Indien🇹🇭 Thailand🇵🇭 Philippinen🇲🇾 Malaysia🇰🇭 Kambodscha🇹🇿 Tansania🇨🇴 Kolumbien

        💡 Zimt ist die getrocknete, gerollte Rinde eines Baumes — die typischen „Stangen" sind eingerollte Rindenstücke.

        🍋 Zitrone

        Vorkommen in Gerichten:
        🥩 Wiener Schnitzel🥐 Topfengolatsche🧆 Falafel mit Hummus

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien3.800.000– nur Eigenkonsum
        🇲🇽Mexiko3.000.000– nur Eigenkonsuminkl. Limetten
        🇨🇳China3.000.000– nur Eigenkonsum
        🇦🇷Argentinien1.700.000~ Off-Season (EU-Winter)
        🇧🇷Brasilien1.500.000– nur Eigenkonsum
        🇪🇸Spanien1.100.000✓ jaGrößter EU-Produzent
        🇹🇷Türkei1.100.000✓ ja
        🇮🇷Iran800.000– nur Eigenkonsum
        🇺🇸USA730.000– geht nach Asien
        🇪🇬Ägypten400.000✓ ja
        🇮🇹Italien370.000✓ EU-NachbarAmalfi, Sizilien
        🇿🇦Südafrika330.000~ Off-Season (EU-Winter)
        🇬🇷Griechenland130.000✓ ja
        🇲🇦Marokko120.000✓ ja

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇵🇹 Portugal🇭🇷 Kroatien🇨🇱 Chile🇵🇪 Peru🇨🇴 Kolumbien🇹🇳 Tunesien🇩🇿 Algerien🇦🇺 Australien🇮🇱 Israel

        💡 Vitamin-C-Mangel (Skorbut) plagte Seeleute jahrhundertelang. Captain Cook nahm Zitronen mit — Skorbut verschwand.

        🧅 Zwiebel

        Vorkommen in Gerichten:
        🥘 Tiroler Gröstl🍲 Steirisches Wurzelfleisch🧀 Vorarlberger Käsespätzle (Käsknöpfle)🥨 Bayerische Brezel mit Obatzda🥟 Schwäbische Maultaschen🍖 Rheinischer Sauerbraten🍳 Zürcher Geschnetzeltes mit Rösti🍳 Tortilla Española🍆 Ratatouille Niçoise🍆 Moussaka🥟 Pierogi Ruskie (Teigtaschen)🍲 Ungarisches Gulasch (Gulyás)🍛 Gemüse-Curry mit Reis🍜 Pad Thai🧆 Falafel mit Hummus🥑 Guacamole mit Mais-Tortillas

        LandProduktion (t/Jahr)EU-Markt?Anmerkung
        🇮🇳Indien27.000.000– nur Eigenkonsum
        🇨🇳China24.000.000– nur Eigenkonsum
        🇪🇬Ägypten3.300.000– nur EigenkonsumDrittgrößter Welt-Produzent, viel Export
        🇺🇸USA2.700.000– nur Eigenkonsum
        🇹🇷Türkei2.400.000✓ ja
        🇮🇷Iran2.400.000– nur Eigenkonsum
        🇵🇰Pakistan2.200.000– nur Eigenkonsum
        🇷🇺Russland2.000.000– nur Eigenkonsum
        🇳🇱Niederlande1.800.000✓ EU-NachbarGrößter EU-Exporteur
        🇧🇷Brasilien1.700.000– nur Eigenkonsum
        🇲🇽Mexiko1.500.000– nur Eigenkonsum
        🇪🇸Spanien1.300.000✓ ja
        🇺🇦Ukraine900.000△ Welt-Big-Player, AT-Handel selten
        🇵🇱Polen720.000✓ EU-Nachbar
        🇩🇪Deutschland650.000✓ EU-Nachbar
        🇫🇷Frankreich480.000✓ EU-Nachbar
        🇮🇹Italien450.000✓ EU-Nachbar
        🇦🇹Österreich180.000✓ EU-Nachbar

        Theoretisch möglich (passende Klimazone, kein Hauptmarkt):
        🇲🇦 Marokko🇩🇿 Algerien🇹🇳 Tunesien🇸🇩 Sudan🇪🇹 Äthiopien🇰🇪 Kenia🇹🇿 Tansania🇦🇷 Argentinien🇨🇦 Kanada🇦🇺 Australien🇨🇱 Chile

        💡 Die Zwiebel ist eines der ältesten Gemüse — schon im alten Ägypten (vor 5000 Jahren) wurde sie verehrt und in Pyramiden mitgegeben.

        Generiert von scripts/build-production-data.php · Bei Fragen zu einzelnen Mengenangaben: FAOSTAT (fao.org/faostat) ist die Hauptquelle.
        \ No newline at end of file diff --git a/App/profil.html b/App/profil.html index 3bee95d..0d25cd6 100644 --- a/App/profil.html +++ b/App/profil.html @@ -174,18 +174,18 @@ var AVATAR_GROUPS = [ {slug:'wettersatellit-meteosat', name:'Meteosat — Wettersatellit über Europa', emoji:'📡'}, ]}, { name: 'Berühmte Forscherinnen und Forscher', color: '#8d6e63', items: [ - {slug:'humboldt-alexander', name:'Alexander von Humboldt (1769–1859) — Universalgelehrter, Südamerika', emoji:'🌿'}, - {slug:'mercator-gerhard', name:'Gerhard Mercator (1512–1594) — Kartograph, Welt-Karte', emoji:'🗺️'}, - {slug:'cook-james', name:'James Cook (1728–1779) — Pazifik-Entdecker', emoji:'⚓'}, - {slug:'polo-marco', name:'Marco Polo (1254–1324) — Reise nach China', emoji:'🐫'}, - {slug:'ibn-battuta', name:'Ibn Battuta (1304–1369) — 120.000 km durch die Welt', emoji:'🕌'}, - {slug:'nansen-fridtjof', name:'Fridtjof Nansen (1861–1930) — Polarforscher, Nobelpreis', emoji:'🧭'}, - {slug:'piccard-auguste', name:'Auguste Piccard (1884–1962) — Stratosphäre + Tiefsee', emoji:'🎈'}, - {slug:'amundsen-roald', name:'Roald Amundsen (1872–1928) — erster am Südpol 1911', emoji:'🐧'}, - {slug:'earhart-amelia', name:'Amelia Earhart (1897–1937) — Pilotin, Atlantik-Überquerung', emoji:'✈️'}, + {slug:'humboldt-alexander', name:'Alexander von Humboldt (1769 – 1859) — Universalgelehrter, Südamerika', emoji:'🌿'}, + {slug:'mercator-gerhard', name:'Gerhard Mercator (1512 – 1594) — Kartograph, Welt-Karte', emoji:'🗺️'}, + {slug:'cook-james', name:'James Cook (1728 – 1779) — Pazifik-Entdecker', emoji:'⚓'}, + {slug:'polo-marco', name:'Marco Polo (1254 – 1324) — Reise nach China', emoji:'🐫'}, + {slug:'ibn-battuta', name:'Ibn Battuta (1304 – 1369) — 120.000 km durch die Welt', emoji:'🕌'}, + {slug:'nansen-fridtjof', name:'Fridtjof Nansen (1861 – 1930) — Polarforscher, Nobelpreis', emoji:'🧭'}, + {slug:'piccard-auguste', name:'Auguste Piccard (1884 – 1962) — Stratosphäre + Tiefsee', emoji:'🎈'}, + {slug:'amundsen-roald', name:'Roald Amundsen (1872 – 1928) — erster am Südpol 1911', emoji:'🐧'}, + {slug:'earhart-amelia', name:'Amelia Earhart (1897 – 1937) — Pilotin, Atlantik-Überquerung', emoji:'✈️'}, {slug:'earle-sylvia', name:'Sylvia Earle (*1935) — Meeresbiologin, „Her Deepness"', emoji:'🐠'}, - {slug:'anning-mary', name:'Mary Anning (1799–1847) — Paläontologin, erste Saurierfunde', emoji:'🦕'}, - {slug:'carson-rachel', name:'Rachel Carson (1907–1964) — Umweltschutz-Pionierin', emoji:'🌳'}, + {slug:'anning-mary', name:'Mary Anning (1799 – 1847) — Paläontologin, erste Saurierfunde', emoji:'🦕'}, + {slug:'carson-rachel', name:'Rachel Carson (1907 – 1964) — Umweltschutz-Pionierin', emoji:'🌳'}, ]}, ]; // Slug → Emoji-Lookup (fuer Fallback-Rendering) diff --git a/App/sims/busfahrt/assets/data/events.json b/App/sims/busfahrt/assets/data/events.json index ec25fb4..384caf4 100644 --- a/App/sims/busfahrt/assets/data/events.json +++ b/App/sims/busfahrt/assets/data/events.json @@ -103,7 +103,7 @@ ], "didactic": { "topic": "Pannenhilfe, Fahrzeugtechnik", - "sachinfo": "Laut TÜV Süd Bus-Report ist die Reifenpanne mit ≈ 35 % aller Bus-Notfälle die häufigste Pannenursache. Reisebusse haben 6 Räder (2 vorne, 4 hinten als Zwillingsbereifung). Ein Bus-Reifen wiegt 60 kg, kostet 400–700 €, hält ca. 150.000 km. Auf Autobahn-Pannenstreifen ist die Warndreieck-Distanz 100 m (vs. 50 m auf Landstraße).", + "sachinfo": "Laut TÜV Süd Bus-Report ist die Reifenpanne mit ≈ 35 % aller Bus-Notfälle die häufigste Pannenursache. Reisebusse haben 6 Räder (2 vorne, 4 hinten als Zwillingsbereifung). Ein Bus-Reifen wiegt 60 kg, kostet 400 – 700 €, hält ca. 150.000 km. Auf Autobahn-Pannenstreifen ist die Warndreieck-Distanz 100 m (vs. 50 m auf Landstraße).", "lehrplan": ["Verkehrserziehung: Pannenhilfe, Warnsystem", "Physik: Reibung, Materialermüdung", "GW: Wirtschaft (Reparatur-Kosten)"], "glossary": ["panne", "warndreieck", "zwillingsbereifung"] } @@ -278,7 +278,7 @@ ], "didactic": { "topic": "Winter-Verkehrssicherheit, Alpen-Klima", - "sachinfo": "Schneekettenpflicht gilt in AT/CH/IT/SI auf bestimmten Strecken, signalisiert durch blaues Schild „Schneeketten\" (Vorschrifts-Zeichen). Pflicht ab November bis Ostern auf Pässen wie Großglockner, Stilfser Joch, Tauern. Reifenketten erhöhen die Traktion auf Schnee/Eis um Faktor 5–10. Auf Lkw/Bus muss man mind. 2 Antriebsräder mit Ketten ausstatten. Schweiz: ab Dezember sowieso Winterreifenpflicht (M+S-Symbol).", + "sachinfo": "Schneekettenpflicht gilt in AT/CH/IT/SI auf bestimmten Strecken, signalisiert durch blaues Schild „Schneeketten\" (Vorschrifts-Zeichen). Pflicht ab November bis Ostern auf Pässen wie Großglockner, Stilfser Joch, Tauern. Reifenketten erhöhen die Traktion auf Schnee/Eis um Faktor 5 – 10. Auf Lkw/Bus muss man mind. 2 Antriebsräder mit Ketten ausstatten. Schweiz: ab Dezember sowieso Winterreifenpflicht (M+S-Symbol).", "lehrplan": ["GW: Alpenklima, Wetter", "Physik: Reibung, Traktion", "Verkehrserziehung: Winter"], "glossary": ["schneekettenpflicht", "winterreifen", "alpenklima"] } diff --git a/App/sims/busfahrt/engine.js b/App/sims/busfahrt/engine.js index f051b4b..1b90126 100644 --- a/App/sims/busfahrt/engine.js +++ b/App/sims/busfahrt/engine.js @@ -74,7 +74,7 @@ window.BusfahrtEngine = (function () { return { fee: 320, label: '🚇 Kanaltunnel / Fähre (Calais–Dover, Folkestone–Calais)', - sachinfo: 'Seit Brexit 2021 ist UK kein EU-Mitglied mehr — Zoll- und Pass-Kontrollen erforderlich. Reisebus-Tarif rund 280–360 € für Eurotunnel-Shuttle (35 min Le Shuttle Freight) oder Fähre (90 min, DFDS/P&O).', + sachinfo: 'Seit Brexit 2021 ist UK kein EU-Mitglied mehr — Zoll- und Pass-Kontrollen erforderlich. Reisebus-Tarif rund 280 – 360 € für Eurotunnel-Shuttle (35 min Le Shuttle Freight) oder Fähre (90 min, DFDS/P&O).', glossar: 'kanaltunnel' }; } @@ -116,7 +116,7 @@ window.BusfahrtEngine = (function () { return { fee: 520, label: '⛴ Norröna-Fähre Hirtshals–Tórshavn–Seyðisfjörður', - sachinfo: 'Die einzige Auto-/Bus-Fähre nach Island ist die Norröna der Smyril Line. Route: Hirtshals (DK, nördlichste Spitze Jütlands) → Tórshavn (Färöer) → Seyðisfjörður (Ostküste Island). 1× pro Woche, Dauer 2,5 Tage. Bus-Tarif rund 400–600 €. Danach noch ca. 700 km quer durch Island bis Reykjavik (Westküste). 95 % aller Island-Reisenden fliegen — Bus-Anreise ist Roadtrip-Variante.', + sachinfo: 'Die einzige Auto-/Bus-Fähre nach Island ist die Norröna der Smyril Line. Route: Hirtshals (DK, nördlichste Spitze Jütlands) → Tórshavn (Färöer) → Seyðisfjörður (Ostküste Island). 1× pro Woche, Dauer 2,5 Tage. Bus-Tarif rund 400 – 600 €. Danach noch ca. 700 km quer durch Island bis Reykjavik (Westküste). 95 % aller Island-Reisenden fliegen — Bus-Anreise ist Roadtrip-Variante.', glossar: 'norroena-faehre' }; } @@ -135,7 +135,7 @@ window.BusfahrtEngine = (function () { return { fee: 290, label: '⛴ Direktfähre Dublin–Cherbourg (Irish Ferries)', - sachinfo: 'Die Direktfähre zwischen Irland und dem Festland (Dublin–Cherbourg oder Rosslare–Roscoff) umgeht das UK seit Brexit. Dauer 17–20 h, Bus-Tarif rund 280–320 €. Alternative: über Holyhead+Eurotunnel — dann aber doppelte UK-Zollkontrolle.', + sachinfo: 'Die Direktfähre zwischen Irland und dem Festland (Dublin–Cherbourg oder Rosslare–Roscoff) umgeht das UK seit Brexit. Dauer 17 – 20 h, Bus-Tarif rund 280 – 320 €. Alternative: über Holyhead+Eurotunnel — dann aber doppelte UK-Zollkontrolle.', glossar: 'norroena-faehre' }; } diff --git a/App/sims/energiemanager/game.html b/App/sims/energiemanager/game.html index aaf9df2..6fd72d9 100644 --- a/App/sims/energiemanager/game.html +++ b/App/sims/energiemanager/game.html @@ -1070,14 +1070,14 @@ desc: 'Gleichmäßiger Bedarf, mittags reichlich Solar. Klassischer Pump-Tag.', tankTopInit: 20, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 5, solar: 10 }, // 1P - { range: '09–12', demand: 5, solar: 16 }, // 2P - { range: '12–15', demand: 5, solar: 16 }, // 2P - { range: '15–18', demand: 5, solar: 5 }, // Aus - { range: '18–21', demand: 15, solar: 5 }, // 2T - { range: '21–24', demand: 10, solar: 0 }, // 2T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 5, solar: 10 }, // 1P + { range: '09 – 12', demand: 5, solar: 16 }, // 2P + { range: '12 – 15', demand: 5, solar: 16 }, // 2P + { range: '15 – 18', demand: 5, solar: 5 }, // Aus + { range: '18 – 21', demand: 15, solar: 5 }, // 2T + { range: '21 – 24', demand: 10, solar: 0 }, // 2T ], }, { @@ -1086,14 +1086,14 @@ desc: 'Dichte Wolken, Solar nur schwach. Speicher voll, viel turbinieren.', tankTopInit: 40, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 10, solar: 0 }, // 2T - { range: '06–09', demand: 10, solar: 5 }, // 1T - { range: '09–12', demand: 5, solar: 10 }, // 1P - { range: '12–15', demand: 5, solar: 10 }, // 1P - { range: '15–18', demand: 10, solar: 5 }, // 1T - { range: '18–21', demand: 10, solar: 0 }, // 2T - { range: '21–24', demand: 5, solar: 0 }, // 1T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 10, solar: 0 }, // 2T + { range: '06 – 09', demand: 10, solar: 5 }, // 1T + { range: '09 – 12', demand: 5, solar: 10 }, // 1P + { range: '12 – 15', demand: 5, solar: 10 }, // 1P + { range: '15 – 18', demand: 10, solar: 5 }, // 1T + { range: '18 – 21', demand: 10, solar: 0 }, // 2T + { range: '21 – 24', demand: 5, solar: 0 }, // 1T ], }, { @@ -1102,14 +1102,14 @@ desc: 'Wind nachts und am Morgen, tagsüber bedeckt. Tagesgang umgedreht.', tankTopInit: 25, blocks: [ - { range: '00–03', demand: 5, solar: 10 }, // 1P - { range: '03–06', demand: 5, solar: 16 }, // 2P - { range: '06–09', demand: 10, solar: 5 }, // 1T - { range: '09–12', demand: 5, solar: 5 }, // Aus - { range: '12–15', demand: 5, solar: 5 }, // Aus - { range: '15–18', demand: 10, solar: 0 }, // 2T - { range: '18–21', demand: 15, solar: 5 }, // 2T - { range: '21–24', demand: 5, solar: 10 }, // 1P + { range: '00 – 03', demand: 5, solar: 10 }, // 1P + { range: '03 – 06', demand: 5, solar: 16 }, // 2P + { range: '06 – 09', demand: 10, solar: 5 }, // 1T + { range: '09 – 12', demand: 5, solar: 5 }, // Aus + { range: '12 – 15', demand: 5, solar: 5 }, // Aus + { range: '15 – 18', demand: 10, solar: 0 }, // 2T + { range: '18 – 21', demand: 15, solar: 5 }, // 2T + { range: '21 – 24', demand: 5, solar: 10 }, // 1P ], }, ], @@ -1123,14 +1123,14 @@ desc: 'Klimaanlagen drehen auf — Bedarf nachmittags extrem. Mittags Solar voll.', tankTopInit: 35, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 10, solar: 15 }, // 1P - { range: '09–12', demand: 10, solar: 20 }, // 2P - { range: '12–15', demand: 15, solar: 20 }, // 1P - { range: '15–18', demand: 20, solar: 10 }, // 2T - { range: '18–21', demand: 15, solar: 5 }, // 2T - { range: '21–24', demand: 10, solar: 0 }, // 2T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 10, solar: 15 }, // 1P + { range: '09 – 12', demand: 10, solar: 20 }, // 2P + { range: '12 – 15', demand: 15, solar: 20 }, // 1P + { range: '15 – 18', demand: 20, solar: 10 }, // 2T + { range: '18 – 21', demand: 15, solar: 5 }, // 2T + { range: '21 – 24', demand: 10, solar: 0 }, // 2T ], }, { @@ -1139,14 +1139,14 @@ desc: 'Wolken vorm Mittag — Solar fällt aus. Speicher aus dem ersten Tag muss reichen.', tankTopInit: 42, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 10, solar: 10 }, // Aus - { range: '09–12', demand: 10, solar: 5 }, // 1T - { range: '12–15', demand: 5, solar: 5 }, // Aus - { range: '15–18', demand: 10, solar: 5 }, // 1T - { range: '18–21', demand: 15, solar: 5 }, // 2T - { range: '21–24', demand: 5, solar: 0 }, // 1T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 10, solar: 10 }, // Aus + { range: '09 – 12', demand: 10, solar: 5 }, // 1T + { range: '12 – 15', demand: 5, solar: 5 }, // Aus + { range: '15 – 18', demand: 10, solar: 5 }, // 1T + { range: '18 – 21', demand: 15, solar: 5 }, // 2T + { range: '21 – 24', demand: 5, solar: 0 }, // 1T ], }, { @@ -1155,14 +1155,14 @@ desc: 'Klare Luft, viel Solar, Bedarf moderat. Solar-Überschuss füllt den Speicher.', tankTopInit: 20, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 5, solar: 10 }, // 1P - { range: '09–12', demand: 5, solar: 16 }, // 2P - { range: '12–15', demand: 5, solar: 16 }, // 2P - { range: '15–18', demand: 5, solar: 10 }, // 1P - { range: '18–21', demand: 10, solar: 5 }, // 1T - { range: '21–24', demand: 5, solar: 0 }, // 1T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 5, solar: 10 }, // 1P + { range: '09 – 12', demand: 5, solar: 16 }, // 2P + { range: '12 – 15', demand: 5, solar: 16 }, // 2P + { range: '15 – 18', demand: 5, solar: 10 }, // 1P + { range: '18 – 21', demand: 10, solar: 5 }, // 1T + { range: '21 – 24', demand: 5, solar: 0 }, // 1T ], }, ], @@ -1176,14 +1176,14 @@ desc: 'Klare Tage, gleichmäßiger Wechsel. Solar mittags noch ergiebig.', tankTopInit: 30, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 5, solar: 5 }, // Aus - { range: '09–12', demand: 5, solar: 15 }, // 2P - { range: '12–15', demand: 5, solar: 15 }, // 2P - { range: '15–18', demand: 10, solar: 5 }, // 1T - { range: '18–21', demand: 15, solar: 5 }, // 2T - { range: '21–24', demand: 10, solar: 5 }, // 1T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 5, solar: 5 }, // Aus + { range: '09 – 12', demand: 5, solar: 15 }, // 2P + { range: '12 – 15', demand: 5, solar: 15 }, // 2P + { range: '15 – 18', demand: 10, solar: 5 }, // 1T + { range: '18 – 21', demand: 15, solar: 5 }, // 2T + { range: '21 – 24', demand: 10, solar: 5 }, // 1T ], }, { @@ -1192,14 +1192,14 @@ desc: 'Starker Wind durchgehend, Solar moderat. Pumpe und Turbine wechseln sich ständig ab.', tankTopInit: 15, blocks: [ - { range: '00–03', demand: 5, solar: 10 }, // 1P - { range: '03–06', demand: 5, solar: 10 }, // 1P - { range: '06–09', demand: 10, solar: 5 }, // 1T - { range: '09–12', demand: 5, solar: 10 }, // 1P - { range: '12–15', demand: 10, solar: 5 }, // 1T - { range: '15–18', demand: 5, solar: 10 }, // 1P - { range: '18–21', demand: 10, solar: 5 }, // 1T - { range: '21–24', demand: 5, solar: 10 }, // 1P + { range: '00 – 03', demand: 5, solar: 10 }, // 1P + { range: '03 – 06', demand: 5, solar: 10 }, // 1P + { range: '06 – 09', demand: 10, solar: 5 }, // 1T + { range: '09 – 12', demand: 5, solar: 10 }, // 1P + { range: '12 – 15', demand: 10, solar: 5 }, // 1T + { range: '15 – 18', demand: 5, solar: 10 }, // 1P + { range: '18 – 21', demand: 10, solar: 5 }, // 1T + { range: '21 – 24', demand: 5, solar: 10 }, // 1P ], }, { @@ -1208,14 +1208,14 @@ desc: 'Morgens Nebel, mittags Wolkenlücken, abends Tief. Sehr unbeständig.', tankTopInit: 42, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 5, solar: 10 }, // 1P - { range: '09–12', demand: 5, solar: 10 }, // 1P - { range: '12–15', demand: 10, solar: 0 }, // 2T - { range: '15–18', demand: 10, solar: 0 }, // 2T - { range: '18–21', demand: 5, solar: 0 }, // 1T - { range: '21–24', demand: 5, solar: 0 }, // 1T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 5, solar: 10 }, // 1P + { range: '09 – 12', demand: 5, solar: 10 }, // 1P + { range: '12 – 15', demand: 10, solar: 0 }, // 2T + { range: '15 – 18', demand: 10, solar: 0 }, // 2T + { range: '18 – 21', demand: 5, solar: 0 }, // 1T + { range: '21 – 24', demand: 5, solar: 0 }, // 1T ], }, ], @@ -1229,14 +1229,14 @@ desc: 'Eisig kalt, Bedarf hoch wegen Heizen. Solar tagsüber knapp, abends Spitze.', tankTopInit: 42, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 10, solar: 0 }, // 2T - { range: '06–09', demand: 5, solar: 5 }, // Aus - { range: '09–12', demand: 5, solar: 10 }, // 1P - { range: '12–15', demand: 5, solar: 10 }, // 1P - { range: '15–18', demand: 10, solar: 5 }, // 1T - { range: '18–21', demand: 15, solar: 5 }, // 2T - { range: '21–24', demand: 10, solar: 0 }, // 2T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 10, solar: 0 }, // 2T + { range: '06 – 09', demand: 5, solar: 5 }, // Aus + { range: '09 – 12', demand: 5, solar: 10 }, // 1P + { range: '12 – 15', demand: 5, solar: 10 }, // 1P + { range: '15 – 18', demand: 10, solar: 5 }, // 1T + { range: '18 – 21', demand: 15, solar: 5 }, // 2T + { range: '21 – 24', demand: 10, solar: 0 }, // 2T ], }, { @@ -1245,14 +1245,14 @@ desc: 'Tagsüber Solar gut, abends sehr kalt. Mit Pumpe-Mittag den Abend vorbereiten.', tankTopInit: 30, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 5, solar: 5 }, // Aus - { range: '09–12', demand: 5, solar: 10 }, // 1P - { range: '12–15', demand: 5, solar: 10 }, // 1P - { range: '15–18', demand: 10, solar: 5 }, // 1T - { range: '18–21', demand: 10, solar: 0 }, // 2T - { range: '21–24', demand: 5, solar: 0 }, // 1T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 5, solar: 5 }, // Aus + { range: '09 – 12', demand: 5, solar: 10 }, // 1P + { range: '12 – 15', demand: 5, solar: 10 }, // 1P + { range: '15 – 18', demand: 10, solar: 5 }, // 1T + { range: '18 – 21', demand: 10, solar: 0 }, // 2T + { range: '21 – 24', demand: 5, solar: 0 }, // 1T ], }, { @@ -1261,14 +1261,14 @@ desc: 'Heftiger Wind, kaum Solar. Wind hilft tagsüber etwas, abends große Lücke.', tankTopInit: 30, blocks: [ - { range: '00–03', demand: 5, solar: 10 }, // 1P - { range: '03–06', demand: 10, solar: 10 }, // Aus - { range: '06–09', demand: 10, solar: 5 }, // 1T - { range: '09–12', demand: 5, solar: 5 }, // Aus - { range: '12–15', demand: 10, solar: 5 }, // 1T - { range: '15–18', demand: 10, solar: 5 }, // 1T - { range: '18–21', demand: 15, solar: 5 }, // 2T - { range: '21–24', demand: 5, solar: 5 }, // Aus + { range: '00 – 03', demand: 5, solar: 10 }, // 1P + { range: '03 – 06', demand: 10, solar: 10 }, // Aus + { range: '06 – 09', demand: 10, solar: 5 }, // 1T + { range: '09 – 12', demand: 5, solar: 5 }, // Aus + { range: '12 – 15', demand: 10, solar: 5 }, // 1T + { range: '15 – 18', demand: 10, solar: 5 }, // 1T + { range: '18 – 21', demand: 15, solar: 5 }, // 2T + { range: '21 – 24', demand: 5, solar: 5 }, // Aus ], }, ], @@ -1282,14 +1282,14 @@ desc: 'Industriegürtel mit hoher Tageslast. Wenig Pump-Spielraum, viel Turbinieren.', tankTopInit: 40, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 10, solar: 5 }, // 1T - { range: '09–12', demand: 15, solar: 15 }, // Aus - { range: '12–15', demand: 15, solar: 20 }, // 1P - { range: '15–18', demand: 15, solar: 10 }, // 1T - { range: '18–21', demand: 15, solar: 5 }, // 2T - { range: '21–24', demand: 5, solar: 0 }, // 1T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 10, solar: 5 }, // 1T + { range: '09 – 12', demand: 15, solar: 15 }, // Aus + { range: '12 – 15', demand: 15, solar: 20 }, // 1P + { range: '15 – 18', demand: 15, solar: 10 }, // 1T + { range: '18 – 21', demand: 15, solar: 5 }, // 2T + { range: '21 – 24', demand: 5, solar: 0 }, // 1T ], }, { @@ -1298,14 +1298,14 @@ desc: 'Drei Bedarfsspitzen statt zwei. Speicher von gestern entscheidet.', tankTopInit: 50, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 10, solar: 0 }, // 2T - { range: '06–09', demand: 10, solar: 5 }, // 1T - { range: '09–12', demand: 5, solar: 5 }, // Aus - { range: '12–15', demand: 10, solar: 5 }, // 1T - { range: '15–18', demand: 5, solar: 5 }, // Aus - { range: '18–21', demand: 15, solar: 5 }, // 2T - { range: '21–24', demand: 10, solar: 5 }, // 1T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 10, solar: 0 }, // 2T + { range: '06 – 09', demand: 10, solar: 5 }, // 1T + { range: '09 – 12', demand: 5, solar: 5 }, // Aus + { range: '12 – 15', demand: 10, solar: 5 }, // 1T + { range: '15 – 18', demand: 5, solar: 5 }, // Aus + { range: '18 – 21', demand: 15, solar: 5 }, // 2T + { range: '21 – 24', demand: 10, solar: 5 }, // 1T ], }, { @@ -1314,14 +1314,14 @@ desc: 'Großer Verbraucher legt um — Solar-Überschuss überall. Pumpen, was geht.', tankTopInit: 20, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 5, solar: 10 }, // 1P - { range: '09–12', demand: 5, solar: 10 }, // 1P - { range: '12–15', demand: 5, solar: 16 }, // 2P - { range: '15–18', demand: 5, solar: 16 }, // 2P - { range: '18–21', demand: 5, solar: 5 }, // Aus - { range: '21–24', demand: 5, solar: 0 }, // 1T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 5, solar: 10 }, // 1P + { range: '09 – 12', demand: 5, solar: 10 }, // 1P + { range: '12 – 15', demand: 5, solar: 16 }, // 2P + { range: '15 – 18', demand: 5, solar: 16 }, // 2P + { range: '18 – 21', demand: 5, solar: 5 }, // Aus + { range: '21 – 24', demand: 5, solar: 0 }, // 1T ], }, ], @@ -1335,14 +1335,14 @@ desc: 'Niedriger Bedarf, normaler Solar-Verlauf. Großer Pump-Tag.', tankTopInit: 15, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 5, solar: 10 }, // 1P - { range: '09–12', demand: 5, solar: 16 }, // 2P - { range: '12–15', demand: 5, solar: 16 }, // 2P - { range: '15–18', demand: 5, solar: 10 }, // 1P - { range: '18–21', demand: 5, solar: 5 }, // Aus - { range: '21–24', demand: 10, solar: 0 }, // 2T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 5, solar: 10 }, // 1P + { range: '09 – 12', demand: 5, solar: 16 }, // 2P + { range: '12 – 15', demand: 5, solar: 16 }, // 2P + { range: '15 – 18', demand: 5, solar: 10 }, // 1P + { range: '18 – 21', demand: 5, solar: 5 }, // Aus + { range: '21 – 24', demand: 10, solar: 0 }, // 2T ], }, { @@ -1351,14 +1351,14 @@ desc: 'Sehr niedriger Bedarf. Speicher fast unverändert, kaum Bewegung nötig.', tankTopInit: 20, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 5, solar: 5 }, // Aus - { range: '09–12', demand: 5, solar: 10 }, // 1P - { range: '12–15', demand: 5, solar: 10 }, // 1P - { range: '15–18', demand: 5, solar: 5 }, // Aus - { range: '18–21', demand: 10, solar: 5 }, // 1T - { range: '21–24', demand: 5, solar: 0 }, // 1T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 5, solar: 5 }, // Aus + { range: '09 – 12', demand: 5, solar: 10 }, // 1P + { range: '12 – 15', demand: 5, solar: 10 }, // 1P + { range: '15 – 18', demand: 5, solar: 5 }, // Aus + { range: '18 – 21', demand: 10, solar: 5 }, // 1T + { range: '21 – 24', demand: 5, solar: 0 }, // 1T ], }, { @@ -1367,14 +1367,14 @@ desc: 'Eigentlich ruhig, abends überraschende Spitze. Speicher bis dahin retten.', tankTopInit: 40, blocks: [ - { range: '00–03', demand: 5, solar: 0 }, // 1T - { range: '03–06', demand: 5, solar: 0 }, // 1T - { range: '06–09', demand: 5, solar: 5 }, // Aus - { range: '09–12', demand: 10, solar: 10 }, // Aus - { range: '12–15', demand: 10, solar: 15 }, // 1P - { range: '15–18', demand: 10, solar: 5 }, // 1T - { range: '18–21', demand: 15, solar: 5 }, // 2T - { range: '21–24', demand: 10, solar: 0 }, // 2T + { range: '00 – 03', demand: 5, solar: 0 }, // 1T + { range: '03 – 06', demand: 5, solar: 0 }, // 1T + { range: '06 – 09', demand: 5, solar: 5 }, // Aus + { range: '09 – 12', demand: 10, solar: 10 }, // Aus + { range: '12 – 15', demand: 10, solar: 15 }, // 1P + { range: '15 – 18', demand: 10, solar: 5 }, // 1T + { range: '18 – 21', demand: 15, solar: 5 }, // 2T + { range: '21 – 24', demand: 10, solar: 0 }, // 2T ], }, ], @@ -2104,10 +2104,10 @@ netzfrequenz: { title:'Netzfrequenz — der Pulsschlag des Stromnetzes (50 Hz)', text:'In unseren Steckdosen fließt kein Gleichstrom wie aus einer Batterie, sondern WECHSELSTROM. Das heißt: Die elektrische Spannung wechselt fünfzig Mal pro Sekunde ihre Richtung — von Plus zu Minus und zurück. Diese Geschwindigkeit nennt man die Netzfrequenz, gemessen in Hertz (Hz).\n\nWarum ist das wichtig? Alle Kraftwerke und alle Verbraucher in Europa hängen am selben Netz und müssen GANZ GENAU im Takt von 50 Hz arbeiten. Stell dir das wie einen riesigen Chor vor: Wenn auch nur ein Sänger zu schnell oder zu langsam singt, klingt es schief.\n\nGenauer: Die Frequenz zeigt, ob Erzeugung und Verbrauch im Gleichgewicht sind:\n• Mehr Strom erzeugt als verbraucht → Frequenz STEIGT über 50 Hz.\n• Mehr Strom verbraucht als erzeugt → Frequenz SINKT unter 50 Hz.\n\nDie Toleranz ist winzig: ±0,2 Hz sind noch normal. Außerhalb davon (49,5 oder 50,5 Hz) greifen automatische Schutzmaßnahmen, damit kein Blackout passiert. Maschinen, Computer und Industrieanlagen sind auf exakt 50 Hz ausgelegt — Abweichungen zerstören sie.\n\nDie Netzfrequenz ist deshalb wie ein Pulsmesser für das ganze Stromnetz Europas — von Portugal bis Polen, von Norwegen bis Sizilien synchron.', unit:'Hz' }, blackout: { title:'Blackout', text:'Großflächiger und längerer Stromausfall. Heizung, Wasser, Ampeln, Internet fallen aus. Kann Stunden bis Tage dauern.' }, lastabwurf: { title:'Lastabwurf', text:'Notmaßnahme bei Frequenz-Einbruch: gezieltes Abschalten großer Stromabnehmer, um Blackout zu verhindern.' }, - pumpspeicher: { title:'Pumpspeicherkraftwerk', text:'Zwei Becken in unterschiedlicher Höhe + Turbine. Wasser hochpumpen speichert Energie, ablaufen lassen erzeugt Strom. Wirkungsgrad 70–85 %.' }, + pumpspeicher: { title:'Pumpspeicherkraftwerk', text:'Zwei Becken in unterschiedlicher Höhe + Turbine. Wasser hochpumpen speichert Energie, ablaufen lassen erzeugt Strom. Wirkungsgrad 70 – 85 %.' }, turbine: { title:'Turbine', text:'Maschine mit Schaufelrad — durch strömendes Wasser angetrieben, treibt einen Generator an.' }, - wirkungsgrad: { title:'Wirkungsgrad', text:'Wie viel Prozent der eingesetzten Energie als Nutz-Energie ankommen. Pumpspeicher: 70–85 %, PV: 20–23 %.' }, - photovoltaik: { title:'Photovoltaik', text:'Technik, die Sonnenlicht direkt in Strom umwandelt. Wirkungsgrad 20–23 %.' }, + wirkungsgrad: { title:'Wirkungsgrad', text:'Wie viel Prozent der eingesetzten Energie als Nutz-Energie ankommen. Pumpspeicher: 70 – 85 %, PV: 20 – 23 %.' }, + photovoltaik: { title:'Photovoltaik', text:'Technik, die Sonnenlicht direkt in Strom umwandelt. Wirkungsgrad 20 – 23 %.' }, spitzenlast: { title:'Spitzenlast', text:'Höchster Strombedarf des Tages — meist morgens und abends.' }, grundlast: { title:'Grundlast', text:'Strom, der praktisch nie unter einen bestimmten Wert fällt — Kühlschränke, Server, Lüftung etc.' }, lastausgleich:{ title:'Lastausgleich', text:'Aufgabe des Stromnetzes: Erzeugung und Verbrauch ständig in Balance halten.' }, @@ -2473,7 +2473,7 @@ } window.closeFunFact = closeFunFact; - // Einheitliche Zeit-Formatierung: '00–03' → '00 – 03 Uhr' + // Einheitliche Zeit-Formatierung: '00 – 03' → '00 – 03 Uhr' function fmtTimeRange(r) { if (!r) return ''; // Akzeptiere Bindestrich, en-dash, em-dash und Slash als Trenner diff --git a/App/sims/entscheidungstag/game.html b/App/sims/entscheidungstag/game.html index d1c7ee9..87317ce 100644 --- a/App/sims/entscheidungstag/game.html +++ b/App/sims/entscheidungstag/game.html @@ -3957,7 +3957,7 @@ function renderDashboard() { ${INVESTMENTS.map(inv => renderInvestCard(inv, totals.money)).join('')}
        - Wichtig: Diese Werte sind historische Mittelwerte der letzten 10–30 Jahre. Sie sind keine Prognose für die Zukunft. Geldanlagen können auch Verlust machen, vor allem in Krisenjahren — und je riskanter die Anlage, desto stärker schwankt sie. Sparbuch verliert real (nach Inflation) langfristig meist an Kaufkraft. + Wichtig: Diese Werte sind historische Mittelwerte der letzten 10 – 30 Jahre. Sie sind keine Prognose für die Zukunft. Geldanlagen können auch Verlust machen, vor allem in Krisenjahren — und je riskanter die Anlage, desto stärker schwankt sie. Sparbuch verliert real (nach Inflation) langfristig meist an Kaufkraft.
        diff --git a/App/sims/eu-werkstatt/game.html b/App/sims/eu-werkstatt/game.html index 81b6321..ca3d9a5 100644 --- a/App/sims/eu-werkstatt/game.html +++ b/App/sims/eu-werkstatt/game.html @@ -2081,7 +2081,7 @@ const CONCEPTS = {

        Was machen sie da?

        Sie diskutieren die ganz großen Themen: Krieg in der Ukraine, Migrationspolitik, Klimaziele, Beziehungen zu China und den USA, Erweiterung der EU. Sie geben politische Richtungen vor – beschließen aber selbst KEINE Gesetze.

        Wie oft tagen sie?

        -

        Mindestens 4 Mal im Jahr, oft auch öfter, wenn eine Krise das verlangt. Die Treffen finden meist in Brüssel statt und dauern 1–2 Tage.

        +

        Mindestens 4 Mal im Jahr, oft auch öfter, wenn eine Krise das verlangt. Die Treffen finden meist in Brüssel statt und dauern 1 – 2 Tage.

        Wichtig: Verwechslungsgefahr!

        Der „Europäische Rat" und der „Rat der EU" (Ministerrat) sind ZWEI VERSCHIEDENE Institutionen. Der Europäische Rat sind die Chef*innen, der Rat der EU sind die jeweiligen Fachminister*innen. Selbst Erwachsene verwechseln das ständig.

        `, @@ -2154,7 +2154,7 @@ const CONCEPTS = { `, caseContext: { cage_age: ` -

        End the Cage Age (2018–2021)

        +

        End the Cage Age (2018 – 2021)

        Die Initiative wurde von der britischen Tierschutzorganisation Compassion in World Farming (CIWF) ins Leben gerufen und von über 170 weiteren NGOs unterstützt. Sie startete im September 2018 und sammelte bis September 2019 stolze 1.397.113 gültige Unterschriften aus 18 Ländern – damit die viertbestätigte Bürgerinitiative aller Zeiten.

        Im Bürgerkomitee saßen Tierschützer*innen aus mehreren Ländern, darunter Mahi Klosterhalfen, Präsident der Albert Schweitzer Stiftung in Deutschland. Die meisten Unterschriften kamen aus Deutschland (~360.000), Frankreich (~165.000) und Italien (~135.000). Aus Österreich kamen rund 23.000.

        ` @@ -3039,7 +3039,7 @@ const SCENARIOS = { narration: 'Nach einem Jahr ist es geschafft: 1.397.113 Unterschriften aus 18 Ländern – mehr als nötig! Auch deine Eltern haben unterschrieben. Die Kommission lädt das Bürgerkomitee zu einer öffentlichen Anhörung im EU-Parlament ein. Aber dann kommt die entscheidende Frage: Wer darf jetzt eigentlich den Gesetzestext schreiben?', milestone: { title: '1,4 Millionen Stimmen!', - text: 'End the Cage Age sammelte 2018–2019 echte 1.397.113 Unterschriften aus 18 Ländern. Damit gehört sie zu den vier erfolgreichsten Bürgerinitiativen aller Zeiten. Die Kommission MUSS sich nun befassen.' + text: 'End the Cage Age sammelte 2018 – 2019 echte 1.397.113 Unterschriften aus 18 Ländern. Damit gehört sie zu den vier erfolgreichsten Bürgerinitiativen aller Zeiten. Die Kommission MUSS sich nun befassen.' }, question: 'Wer darf den offiziellen Gesetzestext einbringen?', pool: ['kommission', 'parlament', 'ministerrat', 'buergerinitiative'], @@ -3079,7 +3079,7 @@ const SCENARIOS = { type: 'mixed', title: 'Du hast es geschafft …', subtitle: 'Das Bürgerkomitee hat den Weg von der Idee bis zur Mitentscheidung richtig durchlaufen. Aber: Auch der lehrbuchmäßig richtige Weg garantiert kein Gesetz.', - realStory: 'Die Bürgerinitiative „End the Cage Age" wurde von der britischen Organisation Compassion in World Farming gestartet und sammelte 2018–2019 rund 1,4 Millionen Unterschriften aus 18 EU-Ländern. Im Juni 2021 versprach die Kommission feierlich, einen Gesetzesvorschlag bis Ende 2023 vorzulegen. Doch bis heute (Mai 2026) ist das nicht passiert. Das Bürgerkomitee – darunter Mahi Klosterhalfen von der Albert Schweitzer Stiftung – klagt deshalb seit März 2024 vor dem Europäischen Gerichtshof. Im März 2026 fand die mündliche Verhandlung statt, das Urteil steht noch aus. Der Fall zeigt: Auch wenn alle demokratischen Schritte richtig gemacht werden, garantiert das noch kein Gesetz. Demokratie ist ein langer Atem.' + realStory: 'Die Bürgerinitiative „End the Cage Age" wurde von der britischen Organisation Compassion in World Farming gestartet und sammelte 2018 – 2019 rund 1,4 Millionen Unterschriften aus 18 EU-Ländern. Im Juni 2021 versprach die Kommission feierlich, einen Gesetzesvorschlag bis Ende 2023 vorzulegen. Doch bis heute (Mai 2026) ist das nicht passiert. Das Bürgerkomitee – darunter Mahi Klosterhalfen von der Albert Schweitzer Stiftung – klagt deshalb seit März 2024 vor dem Europäischen Gerichtshof. Im März 2026 fand die mündliche Verhandlung statt, das Urteil steht noch aus. Der Fall zeigt: Auch wenn alle demokratischen Schritte richtig gemacht werden, garantiert das noch kein Gesetz. Demokratie ist ein langer Atem.' } }, diff --git a/App/sims/farmer/assets/data/crops.json b/App/sims/farmer/assets/data/crops.json index 7bc3d85..bf219eb 100644 --- a/App/sims/farmer/assets/data/crops.json +++ b/App/sims/farmer/assets/data/crops.json @@ -41,15 +41,15 @@ }, "narratives": { "S1": [ - "Klimatisch ein Glücksgriff: Sommer mild bei 18–22 °C, ausreichend Niederschlag (500–700 mm), kühle Winter, die der Winterweizen für die spätere Kornbildung braucht. Die Halme stehen kniehoch, Ähren prall mit ~40 Körnern. Ertrag ~5–6 t/ha — europäischer Spitzenwert.", + "Klimatisch ein Glücksgriff: Sommer mild bei 18 – 22 °C, ausreichend Niederschlag (500 – 700 mm), kühle Winter, die der Winterweizen für die spätere Kornbildung braucht. Die Halme stehen kniehoch, Ähren prall mit ~40 Körnern. Ertrag ~5 – 6 t/ha — europäischer Spitzenwert.", "Goldgelbe Felder bis zum Horizont. Der Mähdrescher hat zu tun. Korn-Qualität top, mahlfähig zu Mehl Type 550. Volle Lieferung." ], "S2": [ - "Klima passt grob, aber der Sommer war zu trocken (unter 400 mm im Vegetationszyklus). Ähren etwas leerer, Korn kleiner. Ertrag ~3–4 t/ha — solide, nicht spitze. Brot wird daraus.", + "Klima passt grob, aber der Sommer war zu trocken (unter 400 mm im Vegetationszyklus). Ähren etwas leerer, Korn kleiner. Ertrag ~3 – 4 t/ha — solide, nicht spitze. Brot wird daraus.", "Ein Hitzesommer hat zugesetzt. Die Halme sind kürzer, die Reife früher. Ernte unter Schnitt, aber gut verkaufbar." ], "S3": [ - "Die Wachstumsperiode ist zu kurz, oder es regnet im falschen Moment. Magere Ähren mit oft tauben Körnern. Ertrag ~1–2 t/ha — kaum profitabel.", + "Die Wachstumsperiode ist zu kurz, oder es regnet im falschen Moment. Magere Ähren mit oft tauben Körnern. Ertrag ~1 – 2 t/ha — kaum profitabel.", "Pilzbefall im feuchten Frühsommer (Mehltau, Rost). Was übrig bleibt, hat nur Futtermittel-Qualität." ], "N1": [ @@ -95,15 +95,15 @@ }, "narratives": { "S1": [ - "Ganzjährig 26–30 °C, 1500–2500 mm Regen, kein Frost — Bananenstauden-Paradies. Nach 9–12 Monaten erste Trauben. Ertrag ~30–40 t/ha — eines der ertragreichsten Anbausysteme der Welt.", + "Ganzjährig 26 – 30 °C, 1500 – 2500 mm Regen, kein Frost — Bananenstauden-Paradies. Nach 9 – 12 Monaten erste Trauben. Ertrag ~30 – 40 t/ha — eines der ertragreichsten Anbausysteme der Welt.", "Pralle, schwere Trauben. Reifen langsam in der Wärme, Geschmack vollmundig. Direkt verschiffbar wenn sie noch grün sind." ], "S2": [ - "Wärme passt, aber die Trockenzeit ist deutlich (3–4 Monate fast ohne Regen). Ohne Bewässerung Ertrag ~15–20 t/ha. Trauben kleiner, aber gut verkaufbar.", + "Wärme passt, aber die Trockenzeit ist deutlich (3 – 4 Monate fast ohne Regen). Ohne Bewässerung Ertrag ~15 – 20 t/ha. Trauben kleiner, aber gut verkaufbar.", "Solide Ernte. Die Pflanzen wachsen langsamer in der trockenen Phase, holen aber im Regen wieder auf." ], "S3": [ - "Im Winter rutscht die Temperatur auf 14–18 °C — Bananen stocken im Wachstum, treiben kaum. Ohne Folientunnel oder Mauerschutz nur Mini-Bananen.", + "Im Winter rutscht die Temperatur auf 14 – 18 °C — Bananen stocken im Wachstum, treiben kaum. Ohne Folientunnel oder Mauerschutz nur Mini-Bananen.", "Mediterraner Versuch: geht knapp, aber die Trauben sind klein und stechreif. Touristen-Ware, kein Welthandel." ], "N1": [ @@ -204,7 +204,7 @@ }, "narratives": { "S1": [ - "Heiße trockene Tage, kalte Nächte, sandiger Boden, sparsame Vegetation — Kamel-Heimat. Die Tiere fressen Dornsträucher die andere verschmähen, trinken alle 1–2 Wochen, geben gleichbleibend Milch. Robuste Herde, hochwertige Tiere.", + "Heiße trockene Tage, kalte Nächte, sandiger Boden, sparsame Vegetation — Kamel-Heimat. Die Tiere fressen Dornsträucher die andere verschmähen, trinken alle 1 – 2 Wochen, geben gleichbleibend Milch. Robuste Herde, hochwertige Tiere.", "Klassische Trocken-Savanne oder Steppe. Die Tiere sind genügsam, krank werden sie selten. Premium-Marktware aus den Wüstenrändern." ], "S2": [ @@ -258,11 +258,11 @@ }, "narratives": { "S1": [ - "Mekong-/Ganges-Delta-Bedingungen: ganzjährig 25–30 °C, Monsun bringt 1500+ mm Regen, Boden steht zeitweise unter Wasser. Nassreis trägt zwei bis drei Ernten pro Jahr. Ertrag ~5–7 t/ha — Asiens Standard.", + "Mekong-/Ganges-Delta-Bedingungen: ganzjährig 25 – 30 °C, Monsun bringt 1500+ mm Regen, Boden steht zeitweise unter Wasser. Nassreis trägt zwei bis drei Ernten pro Jahr. Ertrag ~5 – 7 t/ha — Asiens Standard.", "Volle Rispen, glänzende Körner. Die Terrassen sind perfekt geflutet, der Reis steht hüfthoch. Spitzenernte." ], "S2": [ - "Mit Bewässerung geht's. Die Trockenzeit ist lang, ohne Kanäle würde nichts wachsen. Ertrag ~3–4 t/ha, qualitativ ok.", + "Mit Bewässerung geht's. Die Trockenzeit ist lang, ohne Kanäle würde nichts wachsen. Ertrag ~3 – 4 t/ha, qualitativ ok.", "Reis hält sich, aber das Wasser muss gepumpt werden. Nicht ohne Aufwand." ], "S3": [ @@ -310,7 +310,7 @@ }, "narratives": { "S1": [ - "Klassische Kaffee-Region (Brasilien-Cerrado, Kolumbien-Anden, Äthiopien-Hochland): Tagsüber 22–28 °C, kühle Nächte, ~1500 mm Regen. Die Sträucher hängen voller roter Kirschen. Ertrag ~1–2 t Bohnen/ha — Spitzenqualität.", + "Klassische Kaffee-Region (Brasilien-Cerrado, Kolumbien-Anden, Äthiopien-Hochland): Tagsüber 22 – 28 °C, kühle Nächte, ~1500 mm Regen. Die Sträucher hängen voller roter Kirschen. Ertrag ~1 – 2 t Bohnen/ha — Spitzenqualität.", "Arabica-Bedingungen perfekt. Die Kirschen reifen langsam und gleichmäßig — feiner Geschmack, hoher Marktpreis." ], "S2": [ @@ -416,11 +416,11 @@ }, "narratives": { "S1": [ - "US-Corn-Belt-Bedingungen: heiße feuchte Sommer (25–30 °C), tiefer Mutterboden, ~600–800 mm Niederschlag im Vegetationszyklus. Kolben hängen schwer. Ertrag ~10–12 t/ha — Welt-Spitze.", + "US-Corn-Belt-Bedingungen: heiße feuchte Sommer (25 – 30 °C), tiefer Mutterboden, ~600 – 800 mm Niederschlag im Vegetationszyklus. Kolben hängen schwer. Ertrag ~10 – 12 t/ha — Welt-Spitze.", "Mannshohe Maisstangen, dichte Felder. Mähdrescher arbeitet einen Tag pro Hektar. Top-Ernte für Futter und Stärke." ], "S2": [ - "Klima passt grob — etwas zu trocken oder zu warm in der Reife. Ertrag ~5–7 t/ha, vermarktbar.", + "Klima passt grob — etwas zu trocken oder zu warm in der Reife. Ertrag ~5 – 7 t/ha, vermarktbar.", "Mais kommt durch, aber die Kolben sind kleiner. Solide Ernte." ], "S3": ["Magere Ernte, viele leere Kolben. Mit Bewässerung würde mehr gehen."], @@ -463,7 +463,7 @@ }, "narratives": { "S1": [ - "Lachsfarm im Fjord oder Tilapia-Käfig im warmen Meer — perfekte Bedingungen. Sauerstoffreiches Wasser, gleichmäßige Temperaturen, viel Platz. Pro Käfig ~30–50 t alle 2 Jahre. Norwegen-, Chile-, Vietnam-Modell.", + "Lachsfarm im Fjord oder Tilapia-Käfig im warmen Meer — perfekte Bedingungen. Sauerstoffreiches Wasser, gleichmäßige Temperaturen, viel Platz. Pro Käfig ~30 – 50 t alle 2 Jahre. Norwegen-, Chile-, Vietnam-Modell.", "Volle Käfige, gesunde Fische, hohe Marktpreise. Aquakultur ist der am schnellsten wachsende Bereich der Tierproduktion weltweit." ], "S2": ["Solide Ernte — Wassertemperatur etwas suboptimal, aber Fische gedeihen."], @@ -474,7 +474,7 @@ "Aquakultur funktioniert nicht im Hinterland — kein Wasserkörper, kein Fisch." ], "wasser": [ - "🌊 Lachsfarm im Fjord — perfekte Bedingungen, kühles klares Wasser, viel Sauerstoff. Pro Käfig ~30–50 t Lachs alle 2 Jahre.", + "🌊 Lachsfarm im Fjord — perfekte Bedingungen, kühles klares Wasser, viel Sauerstoff. Pro Käfig ~30 – 50 t Lachs alle 2 Jahre.", "🌊 Tilapia-Farm im warmen Meer. Schnellwachsend, robust, stabile Erträge — Vietnam-/Indonesien-Modell." ], "disease": [ @@ -508,7 +508,7 @@ }, "narratives": { "S1": [ - "Mediterran perfekt: heiße trockene Sommer (25–35 °C), milde Winter (5–10 °C, kein Dauerfrost), karger Kalkboden. Olivenbäume tragen alle 2 Jahre voll. Ertrag ~3–4 t Oliven/ha → ~600 kg Olivenöl.", + "Mediterran perfekt: heiße trockene Sommer (25 – 35 °C), milde Winter (5 – 10 °C, kein Dauerfrost), karger Kalkboden. Olivenbäume tragen alle 2 Jahre voll. Ertrag ~3 – 4 t Oliven/ha → ~600 kg Olivenöl.", "Silbergraue Hänge bis zum Horizont, jahrhundertealte Bäume tragen schwer. Kaltgepresstes Olivenöl extra vergine — Spitzenpreis." ], "S2": ["Solide Ernte, etwas zu trocken oder zu warm. Tafeloliven gehen, Öl-Qualität OK."], diff --git a/App/sims/farmer/engine.js b/App/sims/farmer/engine.js index 593dfe5..6ddd5b8 100644 --- a/App/sims/farmer/engine.js +++ b/App/sims/farmer/engine.js @@ -9,7 +9,7 @@ * Totalausfall des ganzen Clusters. Deterministisch via Mulberry32. * - Unlock-System: Sorten haben unlockYear; ab dem Jahr verfügbar. * Counter pro Sorte sinkt je nach Anzahl freigeschalteter Sorten: - * 1–3 Sorten = 3, 4 = 2, 5 = 2, 6+ = 1. + * 1 – 3 Sorten = 3, 4 = 2, 5 = 2, 6+ = 1. * * Daten (assets/data/): * crops.json — Sorten, Eignung, Diagnose, monoculture-Konfig @@ -214,7 +214,7 @@ window.FarmerEngine = (function () { const MARKET_BLOCK_YEARS = 3; /** Markt-Auftrag des Jahres: pro 3 Jahre ein Hub, dann zum nächsten zyklisch. - * Jahr 1–3 → Hub 0, Jahr 4–6 → Hub 1, ... */ + * Jahr 1 – 3 → Hub 0, Jahr 4 – 6 → Hub 1, ... */ function getMarketHubForYear(year) { if (!HUBS_DATA || !HUBS_DATA.hubs.length) return null; const block = Math.floor((year - 1) / MARKET_BLOCK_YEARS); diff --git a/App/sims/farmer/game.html b/App/sims/farmer/game.html index 303103a..89dea36 100644 --- a/App/sims/farmer/game.html +++ b/App/sims/farmer/game.html @@ -802,7 +802,7 @@ let currentReports = []; let currentReportIdx = 0; let currentHighlightedId = null; let startTime = Date.now(); // für Endbericht: gespielte Zeit -const END_REPORT_TRIGGER_YEAR = 11; // Endbericht-Modal nach 10 abgeschlossenen Jahren — passt zur 10–20-Min-Spielzeit. Schüler*in kann „Weiter arbeiten" wählen bis Jahr 22+ (alle Sorten unlocked). +const END_REPORT_TRIGGER_YEAR = 11; // Endbericht-Modal nach 10 abgeschlossenen Jahren — passt zur 10 – 20-Min-Spielzeit. Schüler*in kann „Weiter arbeiten" wählen bis Jahr 22+ (alle Sorten unlocked). // ===== Boot ===== (async function boot() { diff --git a/App/sims/heli/bewertung.html b/App/sims/heli/bewertung.html index cb8e622..e91ed85 100644 --- a/App/sims/heli/bewertung.html +++ b/App/sims/heli/bewertung.html @@ -226,8 +226,8 @@ Geschick
        - • Start-Sterne (1–5)
        - • Landung-Sterne (1–5)
        + • Start-Sterne (1 – 5)
        + • Landung-Sterne (1 – 5)
        • G-Kraft-Durchschnitt
        • Berührungen diff --git a/App/sims/heli/game.html b/App/sims/heli/game.html index e0be4d7..876dcea 100644 --- a/App/sims/heli/game.html +++ b/App/sims/heli/game.html @@ -2366,7 +2366,7 @@ var HELI_ONBOARDING_STEPS = [ + '+ Auswertung' + '' + '' - + '~ 5–8 Minuten pro Einsatz' + + '~ 5 – 8 Minuten pro Einsatz' + '', text: 'Jede Mission besteht aus 5 Phasen:
          ' + '
        • 📋 Auftrag wählen — wir bekommen drei Einsätze vorgeschlagen. Such einen aus.
        • ' @@ -2470,7 +2470,7 @@ var HELI_ONBOARDING_STEPS = [ + '

            ' + '
          • 🦅 Vögel (Vogelschlag) — gefährlich für Rotor und Cockpitscheibe. Besonders über Seen (Möwen), bei Dämmerung (Zugvögel) und an Berghängen (Greifvögel auf Aufwinden). Bei Sichtung kurz Höhe oder Kurs ändern.
          • ' + '
          • ✈ Anderer Luftverkehr — andere Helis, Flugzeuge, Drohnen, Segelflieger, Paragleiter. Abstand halten über Funk und Sicht. Als Notarzt-Heli haben wir Vorflugrecht, andere müssen ausweichen.
          • ' - + '
          • ⛈ Gewitter — lebensgefährlich für Helis (Sturmböen, Hagel, Sicht-Verlust, Blitz). Mindestens 10–15 km Abstand halten. Bei plötzlichem Gewitter: sofort landen, Patient später holen.
          • ' + + '
          • ⛈ Gewitter — lebensgefährlich für Helis (Sturmböen, Hagel, Sicht-Verlust, Blitz). Mindestens 10 – 15 km Abstand halten. Bei plötzlichem Gewitter: sofort landen, Patient später holen.
          • ' + '
          ' + '
          Tipp: Klick auf jeden der unterstrichenen Begriffe — Marlene erklärt sie dir kurz. Im 📖 Glossar findest du die ausführlichen Versionen.' }, @@ -2496,11 +2496,11 @@ var HELI_ONBOARDING_STEPS = [ + 'Landezone frei' // Mittelwert-Pfeil + '' - + '⌀ Gesamtbewertung 1–5 ★' + + '⌀ Gesamtbewertung 1 – 5 ★' + '' + '' + '', - text: 'Wir bewerten drei Bereiche: 📍 Routenplanung, 🛫 Start, 🛬 Landung — jeweils 1–5 Sterne. Aus dem Mittelwert ergibt sich deine Gesamtbewertung.' + text: 'Wir bewerten drei Bereiche: 📍 Routenplanung, 🛫 Start, 🛬 Landung — jeweils 1 – 5 Sterne. Aus dem Mittelwert ergibt sich deine Gesamtbewertung.' + '

          Und wenn du Fehler machst? Keine Sorge — ich sitze ja neben dir. Bei der Routenplanung darfst du 15 falsche Wegpunkt-Klicks ausprobieren. Bei mehr greife ich ein und plane den Rest. Beim Start oder bei der Landung übernehme ich, wenn ein Manöver zu riskant wird. Den Patient bringen wir in jedem Fall sicher ins Krankenhaus — du sammelst nur weniger Sterne und kannst es im nächsten Einsatz selbst besser machen.' + '

          📍 Diese Einschulung kannst du übrigens jederzeit oben über den ❓ Spielhilfe-Button nochmal aufrufen. Und die 📍 Übersichtskarte ist deine beste Vorbereitung — schau dir Stützpunkte, Städte und Berge vorher in Ruhe an.' + '

          Bereit? Such dir deinen ersten Einsatz aus. 💪' diff --git a/App/sims/heli/landing.html b/App/sims/heli/landing.html index e00755f..dd6ec67 100644 --- a/App/sims/heli/landing.html +++ b/App/sims/heli/landing.html @@ -1131,7 +1131,7 @@ mastH: 30 + Math.random() * 12 }); } - // 2–3 große Segelschiffe mit hohem Mast (echtes Hindernis) + // 2 – 3 große Segelschiffe mit hohem Mast (echtes Hindernis) const tall = 2 + Math.floor(Math.random() * 2); for (let i = 0; i < tall; i++) { let x; @@ -1168,7 +1168,7 @@ const segStart = segmentStarts[segIdx], segEnd = segmentEnds[segIdx]; const zoneW = 220; const zoneX = segStart + 40 + Math.random() * (segEnd - segStart - zoneW - 80); - // Unfallstelle 100–160 px vor oder hinter der Landezone — aber im selben Segment + // Unfallstelle 100 – 160 px vor oder hinter der Landezone — aber im selben Segment let crashX = zoneX + zoneW/2 + (Math.random() < 0.5 ? -1 : 1) * (110 + Math.random()*40); crashX = Math.max(segStart + 60, Math.min(segEnd - 60, crashX)); // Gaffer im naheren Umfeld der Landezone — sie laufen durchgehend in @@ -3508,7 +3508,7 @@ else if (sinkRate > 40) { lzR=74; lzG=124; lzB=78; lzLabel='GUTES TEMPO'; } else { lzLabel='ANFLUG — TIEFER'; } } - // Landezone deutlich heller (Alpha 0.65–1.0, voller Farbton statt gedaempft) + // Landezone deutlich heller (Alpha 0.65 – 1.0, voller Farbton statt gedaempft) ctx.fillStyle = `rgba(${lzR},${lzG},${lzB},${0.65 + 0.35 * blink})`; ctx.fillRect(lzSx, GROUND_Y - 22, lz.w, 22); ctx.strokeStyle = `rgba(255,255,255,1.0)`; @@ -3988,7 +3988,7 @@ state._fuelTrack.lastFuel = h.fuel; state._fuelTrack.lastT = state.t; } - // Balken: 0..12 l/min (typisch 4–6, Vollschub bis ~10), mit Mindestbreite 4% + // Balken: 0..12 l/min (typisch 4 – 6, Vollschub bis ~10), mit Mindestbreite 4% const lpm = state._fuelLitersPerMin || 0; const fr = document.getElementById('fFuelRate'); const vr = document.getElementById('vFuelRate'); diff --git a/App/sims/heli/routes.html b/App/sims/heli/routes.html index fb7e91c..4ce1984 100644 --- a/App/sims/heli/routes.html +++ b/App/sims/heli/routes.html @@ -290,7 +290,7 @@ var ROUTES = [ waypoints:['hohenems','dornbirn','egg','bezau','au','schroecken','warth','riezlern'], desc:'Einsatz im Kleinwalsertal. Das Tal ist nur von Deutschland oder per Luft erreichbar — eine der anspruchsvollsten Routen Vorarlbergs.', reason:'Funktionale Exklave — Luftweg einzige österreichische Verbindung', region:'vlbg'}, - // === TIROL-ROUTEN (31–60) === + // === TIROL-ROUTEN (31 – 60) === // Von C1 Innsbruck {id:31, name:'Innsbruck → Sölden (Skiunfall)', start:'innsbruck_c1', end:'skiunfall_soelden', difficulty:'medium', region:'tirol', waypoints:['innsbruck_c1','telfs','oetz','soelden','skiunfall_soelden'], diff --git a/App/sims/klima/game-2d.html b/App/sims/klima/game-2d.html index 0fa61fa..8820108 100644 --- a/App/sims/klima/game-2d.html +++ b/App/sims/klima/game-2d.html @@ -1068,12 +1068,12 @@ const GLOSSAR = { co2: { title:'CO₂ (Kohlendioxid)', text:'Ein farbloses Gas, das beim Verbrennen von Kohle, Öl und Gas entsteht. Es verstärkt den Treibhauseffekt — der wichtigste Treiber des Klimawandels.', unit:'in ppm (parts per million)', link:'https://de.wikipedia.org/wiki/Kohlenstoffdioxid' }, ppm: { title:'ppm (parts per million)', text:'Anteilseinheit: 1 ppm bedeutet ein Teilchen pro Million. Bei CO₂ misst man, wie viele CO₂-Moleküle pro Million Luftmoleküle in der Atmosphäre sind. Vorindustriell ~280 ppm, heute ~425 ppm.', unit:'1 ppm = 1 Teilchen / 1.000.000', link:'https://de.wikipedia.org/wiki/Parts_per_million' }, megatonne: { title:'Megatonne (Mt)', text:'Eine Million Tonnen. Österreich stößt etwa 70 Mt CO₂ pro Jahr aus.', unit:'1 Mt = 1.000.000 Tonnen' }, - megawatt: { title:'Megawatt (MW)', text:'Einheit der elektrischen Leistung. 1 MW = 1 Million Watt. Reicht für ca. 1.000 Haushalte, je nach Verbrauch. Ein modernes Windrad liefert 3–5 MW, eine große Solaranlage 1 MW oder mehr.', unit:'1 MW = 1.000.000 Watt', link:'https://de.wikipedia.org/wiki/Watt_(Einheit)' }, + megawatt: { title:'Megawatt (MW)', text:'Einheit der elektrischen Leistung. 1 MW = 1 Million Watt. Reicht für ca. 1.000 Haushalte, je nach Verbrauch. Ein modernes Windrad liefert 3 – 5 MW, eine große Solaranlage 1 MW oder mehr.', unit:'1 MW = 1.000.000 Watt', link:'https://de.wikipedia.org/wiki/Watt_(Einheit)' }, temperatur: { title:'Globale Durchschnittstemperatur', text:'Seit der Industrialisierung (~1850) ist sie um etwa 1,2 °C gestiegen. Das Pariser Abkommen will den Anstieg auf 1,5 °C begrenzen.', unit:'°C', link:'https://de.wikipedia.org/wiki/Globale_Erwärmung' }, meeresspiegel:{ title:'Meeresspiegel', text:'Steigt durch schmelzendes Eis und die Ausdehnung warmen Wassers. Seit 1900 rund 20 cm. Bis 2100 möglicherweise über 1 m.', unit:'in cm über Startniveau', link:'https://de.wikipedia.org/wiki/Meeresspiegelanstieg' }, ueberflutung: { title:'Überflutete Fläche', text:'Prozentanteil der Siedlungen, die unter Wasser stehen, sobald der Meeresspiegel den Schutz (Deiche etc.) überschreitet.', unit:'in %' }, windpark: { title:'Windpark', text:'Gruppe von Windkraftanlagen. Rotoren wandeln Wind in elektrische Energie um. Oft an Küsten oder auf See (Offshore).', unit:'Leistung in MW', link:'https://de.wikipedia.org/wiki/Windpark' }, - solaranlage: { title:'Solaranlage', text:'Wandelt Sonnenlicht in Strom um (Photovoltaik). Dachanlage: 5–10 kW, Solarpark: mehrere MW.', unit:'Leistung in kW/MW', link:'https://de.wikipedia.org/wiki/Photovoltaikanlage' }, + solaranlage: { title:'Solaranlage', text:'Wandelt Sonnenlicht in Strom um (Photovoltaik). Dachanlage: 5 – 10 kW, Solarpark: mehrere MW.', unit:'Leistung in kW/MW', link:'https://de.wikipedia.org/wiki/Photovoltaikanlage' }, deich: { title:'Deich', text:'Künstlicher Damm aus Erde oder Stein, der Siedlungen vor Hochwasser schützt. Wirkt sofort, braucht aber Pflege.', link:'https://de.wikipedia.org/wiki/Deich' }, mangrove: { title:'Mangroven', text:'Salzwasser-verträgliche Bäume an tropischen Küsten. Binden CO₂ und schützen vor Erosion — Naturlösung gegen zwei Probleme.', link:'https://de.wikipedia.org/wiki/Mangroven' }, co2_filter: { title:'CO₂-Filter (Carbon Capture)', text:'Technologie, die CO₂ aus der Luft filtert. Noch teuer und energieintensiv, wird als Ergänzung erforscht.', link:'https://de.wikipedia.org/wiki/CO2-Abscheidung_und_-Speicherung' }, diff --git a/App/sims/klima/game-3d.html b/App/sims/klima/game-3d.html index c4095b6..291a8c4 100644 --- a/App/sims/klima/game-3d.html +++ b/App/sims/klima/game-3d.html @@ -1205,12 +1205,12 @@ const GLOSSAR = { co2: { title:'CO₂ (Kohlendioxid)', text:'Ein farbloses Gas, das beim Verbrennen von Kohle, Öl und Gas entsteht. Es verstärkt den Treibhauseffekt — der wichtigste Treiber des Klimawandels.', unit:'in ppm (parts per million)', link:'https://de.wikipedia.org/wiki/Kohlenstoffdioxid' }, ppm: { title:'ppm (parts per million)', text:'Anteilseinheit: 1 ppm bedeutet ein Teilchen pro Million. Bei CO₂ misst man, wie viele CO₂-Moleküle pro Million Luftmoleküle in der Atmosphäre sind. Vorindustriell ~280 ppm, heute ~425 ppm.', unit:'1 ppm = 1 Teilchen / 1.000.000', link:'https://de.wikipedia.org/wiki/Parts_per_million' }, megatonne: { title:'Megatonne (Mt)', text:'Eine Million Tonnen. Österreich stößt etwa 70 Mt CO₂ pro Jahr aus.', unit:'1 Mt = 1.000.000 Tonnen' }, - megawatt: { title:'Megawatt (MW)', text:'Einheit der elektrischen Leistung. 1 MW = 1 Million Watt. Reicht für ca. 1.000 Haushalte, je nach Verbrauch. Ein modernes Windrad liefert 3–5 MW, eine große Solaranlage 1 MW oder mehr.', unit:'1 MW = 1.000.000 Watt', link:'https://de.wikipedia.org/wiki/Watt_(Einheit)' }, + megawatt: { title:'Megawatt (MW)', text:'Einheit der elektrischen Leistung. 1 MW = 1 Million Watt. Reicht für ca. 1.000 Haushalte, je nach Verbrauch. Ein modernes Windrad liefert 3 – 5 MW, eine große Solaranlage 1 MW oder mehr.', unit:'1 MW = 1.000.000 Watt', link:'https://de.wikipedia.org/wiki/Watt_(Einheit)' }, temperatur: { title:'Globale Durchschnittstemperatur', text:'Seit der Industrialisierung (~1850) ist sie um etwa 1,2 °C gestiegen. Das Pariser Abkommen will den Anstieg auf 1,5 °C begrenzen.', unit:'°C', link:'https://de.wikipedia.org/wiki/Globale_Erwärmung' }, meeresspiegel:{ title:'Meeresspiegel', text:'Steigt durch schmelzendes Eis und die Ausdehnung warmen Wassers. Seit 1900 rund 20 cm. Bis 2100 möglicherweise über 1 m.', unit:'in cm über Startniveau', link:'https://de.wikipedia.org/wiki/Meeresspiegelanstieg' }, ueberflutung: { title:'Überflutete Fläche', text:'Prozentanteil der Siedlungen, die unter Wasser stehen, sobald der Meeresspiegel den Schutz (Deiche etc.) überschreitet.', unit:'in %' }, windpark: { title:'Windpark', text:'Gruppe von Windkraftanlagen. Rotoren wandeln Wind in elektrische Energie um. Oft an Küsten oder auf See (Offshore).', unit:'Leistung in MW', link:'https://de.wikipedia.org/wiki/Windpark' }, - solaranlage: { title:'Solaranlage', text:'Wandelt Sonnenlicht in Strom um (Photovoltaik). Dachanlage: 5–10 kW, Solarpark: mehrere MW.', unit:'Leistung in kW/MW', link:'https://de.wikipedia.org/wiki/Photovoltaikanlage' }, + solaranlage: { title:'Solaranlage', text:'Wandelt Sonnenlicht in Strom um (Photovoltaik). Dachanlage: 5 – 10 kW, Solarpark: mehrere MW.', unit:'Leistung in kW/MW', link:'https://de.wikipedia.org/wiki/Photovoltaikanlage' }, deich: { title:'Deich', text:'Künstlicher Damm aus Erde oder Stein, der Siedlungen vor Hochwasser schützt. Wirkt sofort, braucht aber Pflege.', link:'https://de.wikipedia.org/wiki/Deich' }, mangrove: { title:'Mangroven', text:'Salzwasser-verträgliche Bäume an tropischen Küsten. Binden CO₂ und schützen vor Erosion — Naturlösung gegen zwei Probleme.', link:'https://de.wikipedia.org/wiki/Mangroven' }, co2_filter: { title:'CO₂-Filter (Carbon Capture)', text:'Technologie, die CO₂ aus der Luft filtert. Noch teuer und energieintensiv, wird als Ergänzung erforscht.', link:'https://de.wikipedia.org/wiki/CO2-Abscheidung_und_-Speicherung' }, @@ -1295,7 +1295,7 @@ const INFO_TOPICS = { mangrove_info: { title: '🪸 Mangrovenwald', text: 'Mangroven sind salzwasser-verträgliche Bäume an tropischen Küsten. Sie binden CO₂ UND schützen das Land vor Wellen und Erosion — zwei Klimaschutz-Jobs in einem.\n\nIn Indonesien, Bangladesch und Vietnam retten Mangrovenwälder jedes Jahr Millionen von Menschen vor Sturmfluten.', - hint: 'Kippen aber ab etwa 30–70 cm Meeresanstieg um: sie können dann nicht mehr schnell genug mitwachsen und ersticken.', + hint: 'Kippen aber ab etwa 30 – 70 cm Meeresanstieg um: sie können dann nicht mehr schnell genug mitwachsen und ersticken.', }, sand_fill_info: { title: '🏖 Sand-Aufschüttung', diff --git a/App/sims/kofferdetektiv/data.js b/App/sims/kofferdetektiv/data.js index a7805d4..2394e29 100644 --- a/App/sims/kofferdetektiv/data.js +++ b/App/sims/kofferdetektiv/data.js @@ -1885,14 +1885,14 @@ const KD_FUNDSACHEN = [ { id:'adapter', emoji:'🔌', name:'Reiseadapter', info: 'Steckdosen sind weltweit unterschiedlich geformt — Typ C in der EU, Typ G in Großbritannien, Typ A/B in den USA, Typ I in Australien. Ein '+_g('reiseadapter','Reiseadapter')+' macht aus deinem Stecker einen passenden für die fremde Steckdose. '+ '

          Achtung: Ein Adapter ändert nur die Form — nicht die '+_g('netzspannung','Spannung')+'. In den USA und Japan kommen nur 110 Volt aus der Steckdose, bei uns 230 Volt. '+ - '

          Moderne Lade-Geräte (Handy, Laptop) sind meist universell („INPUT: 100–240V"). Alte Föhne oder Rasierer brauchen zusätzlich einen Spannungs-Wandler — sonst brennen sie durch.' }, + '

          Moderne Lade-Geräte (Handy, Laptop) sind meist universell („INPUT: 100 – 240V"). Alte Föhne oder Rasierer brauchen zusätzlich einen Spannungs-Wandler — sonst brennen sie durch.' }, { id:'powerbank',emoji:'🔋', name:'Powerbank', info: 'Powerbanks und Ersatz-Akkus müssen ins '+_g('akku-handgepaeck','Handgepäck')+' — nie in den aufgegebenen Koffer. Im Frachtraum eines Flugzeugs wäre ein Akkubrand zu spät zu bemerken; im Handgepäck kann das Personal sofort eingreifen. '+ - '

          Regel weltweit (ICAO): Bis 100 Wattstunden problemlos erlaubt, 100–160 Wh nur mit Erlaubnis der Fluglinie, über 160 Wh komplett verboten. Eine typische 10.000-mAh-Powerbank hat 37 Wh — also kein Problem. '+ + '

          Regel weltweit (ICAO): Bis 100 Wattstunden problemlos erlaubt, 100 – 160 Wh nur mit Erlaubnis der Fluglinie, über 160 Wh komplett verboten. Eine typische 10.000-mAh-Powerbank hat 37 Wh — also kein Problem. '+ '

          2010 sind drei UPS-Frachter wegen brennender Lithium-Akkus abgestürzt — daher die strengen Regeln. Lithium-Akkus in seltenen Fällen Feuer fangen.' }, { id:'sonnenbr', emoji:'🕶️', name:'Sonnenbrille', info: 'Je näher am '+_g('aequator','Äquator')+' und je höher die Lage, desto stärker die '+_g('uv-strahlung','UV-Strahlung')+'. In Schnee- und Wüstenregionen reflektieren bis zu 80 Prozent der Strahlen — Sonnenbrille mit UV-400-Filter ist Pflicht. '+ - '

          Die WHO veröffentlicht den UV-Index als Skala 1–11+. In Australien werden im Sommer regelmäßig Werte von 13–14 gemessen — die höchsten weltweit. '+ + '

          Die WHO veröffentlicht den UV-Index als Skala 1 – 11+. In Australien werden im Sommer regelmäßig Werte von 13 – 14 gemessen — die höchsten weltweit. '+ '

          UV-Strahlung verursacht Sonnenbrand und auf Dauer auch Hautkrebs. Schutz vor allem mittags zwischen 11 und 15 Uhr ist wichtig — auch bei bewölktem Wetter.' }, { id:'kamera', emoji:'📷', name:'Reisekamera', info: 'In manchen Ländern ist das '+_g('fotografie-verbot','Fotografieren')+' von Flughäfen, Grenzen, Militär oder Regierungsgebäuden streng verboten. Was bei uns selbstverständlich ist, kann woanders eine Geldstrafe oder Festnahme bedeuten. '+ @@ -1916,7 +1916,7 @@ const KD_FUNDSACHEN = [ '

          Sicher: Flaschenwasser aus versiegelter Plastikflasche, abgekochtes Wasser (3 Min sprudelnd), Filter mit Aktivkohle. Auch Eiswürfel im Drink und ungeschältes Obst können belastet sein.' }, { id:'geld', emoji:'💶', name:'Reisegeld', info: 'Viele Länder haben eine eigene Währung. Der '+_g('wechselkurs','Wechselkurs')+' sagt, wie viel deine Euro dort wert sind — und er ändert sich täglich. '+ - '

          Am Flughafen tauschen ist meistens teurer (schlechter Kurs + Gebühren). Mit Bankkarte zahlen ist oft günstiger — viele Banken nehmen aber 1–2 % Auslandsgebühr. '+ + '

          Am Flughafen tauschen ist meistens teurer (schlechter Kurs + Gebühren). Mit Bankkarte zahlen ist oft günstiger — viele Banken nehmen aber 1 – 2 % Auslandsgebühr. '+ '

          An Bankomaten im Ausland: immer in Lokalwährung wählen, nie in Euro abrechnen lassen („Dynamic Currency Conversion"). Die Konvertierung der lokalen Bank ist eigentlich immer schlechter.' }, { id:'karte_kred',emoji:'💳',name:'Bankkarte', info: 'Mit Karte zahlst du oft auch im Ausland. Beim Abheben in fremder '+_g('waehrung','Währung')+' können Gebühren anfallen — vorher den '+_g('wechselkurs','Wechselkurs')+' und die Auslandskonditionen prüfen lohnt sich. '+ @@ -1944,7 +1944,7 @@ const KD_FUNDSACHEN = [ '

          Tipp: Hut mit Sturmband oder Klemme verwenden — bei Wind am Strand oder im Wüstenwind verlierst du ihn sonst leicht.' }, { id:'jacke', emoji:'🧥', name:'Reisejacke', info: 'Auf der '+_g('suedhalbkugel-jahreszeiten','Südhalbkugel')+' sind die Jahreszeiten umgekehrt: Ist bei uns Sommer, ist es in Australien, Argentinien oder Südafrika Winter. Kleidung also ans Reiseziel anpassen. '+ - '

          Sydney im Juli: 8–15 °C, regnerisch. Buenos Aires im August: ähnlich. Kapstadt im Juni/Juli: kalt und nass. Wer ohne Jacke reist, friert sich schon im Flugzeug-Hotel an. '+ + '

          Sydney im Juli: 8 – 15 °C, regnerisch. Buenos Aires im August: ähnlich. Kapstadt im Juni/Juli: kalt und nass. Wer ohne Jacke reist, friert sich schon im Flugzeug-Hotel an. '+ '

          Tipp: Multi-Layer-Prinzip — mehrere dünne Schichten statt einer dicken. Anpassbar an wechselndes Wetter, leichter im Gepäck.' }, { id:'schirm', emoji:'☂️', name:'Reiseschirm', info: 'In der tropischen Regenzeit oder im '+_g('monsun','Monsun')+' fällt sehr viel Regen in sehr kurzer Zeit. Ein Schirm gehört dann ins Handgepäck. '+ @@ -1980,7 +1980,7 @@ const KD_FUNDSACHEN = [ '

          Tipp: Kontaktlinsen-Träger:innen sollten neben Linsen und Reinigungslösung immer auch eine Brille mitnehmen. Im Flugzeug ist die Luft so trocken, dass Linsen oft nicht vertragen werden.' }, { id:'fotoapp', emoji:'🧳', name:'Kulturbeutel', info: 'Im Kulturbeutel sammeln sich viele kleine Flüssigkeiten und Hygiene-Artikel: Zahnpasta, Shampoo, Duschgel, Sonnencreme. Alles über 100 ml besser in den aufgegebenen Koffer legen ('+_g('handgepaeck-fluessigkeit','100-ml-Regel')+'). '+ - '

          Universal-Reisegröße: 50–100 ml. Viele Hotels stellen Shampoo und Duschgel — du sparst Platz im Koffer. '+ + '

          Universal-Reisegröße: 50 – 100 ml. Viele Hotels stellen Shampoo und Duschgel — du sparst Platz im Koffer. '+ '

          Tipp: Kleine Umfüll-Flaschen kaufen (gibts in jeder Drogerie). Deine eigenen Produkte umfüllen statt teure Reisegrößen kaufen. Kulturbeutel mit Haken zum Aufhängen sind in jedem Hotel praktisch.' }, { id:'stift', emoji:'🖊️', name:'Kugelschreiber', info: 'Praktisch fürs Ausfüllen von Einreise- und '+_g('zoll-einfuhr','Zollkarten')+', die man in vielen Ländern noch von Hand ausfüllt. Manche Länder verlangen ein Kugelschreiber-Original, kein Kopierer. '+ diff --git a/App/sims/kofferdetektiv/engine.js b/App/sims/kofferdetektiv/engine.js index 49a11ef..c5329c3 100644 --- a/App/sims/kofferdetektiv/engine.js +++ b/App/sims/kofferdetektiv/engine.js @@ -114,7 +114,7 @@ const PA = { this.timer = setTimeout(() => { if (S && !Sound.muted) Sound.playPA(this.POOL[this.idx++ % this.POOL.length], 0.32); next(); - }, 90000 + Math.random() * 120000); // alle 1,5–3,5 min + }, 90000 + Math.random() * 120000); // alle 1,5 – 3,5 min }; next(); }, @@ -816,7 +816,7 @@ const World = { const ox = -this.player.x * 0.0045 + t * 0.0006; skies.forEach(s => { s.tex.offset.x = ox; }); }}); - // Überflug-Animation: alle 15–45 s quert eine Maschine ein Dachsegment + // Überflug-Animation: alle 15 – 45 s quert eine Maschine ein Dachsegment let flyIdx = -1, flyX = 0, flyWait = 8; this.animated.push({ update: (dt) => { if (flyIdx < 0) { @@ -873,7 +873,7 @@ const World = { panoTex = new THREE.TextureLoader().load(BASE + 'assets/img/panorama-nacht.webp'); panoTex.colorSpace = THREE.SRGBColorSpace; panoTex.wrapS = THREE.MirroredRepeatWrapping; - // Bildzone so legen, dass Jet + Tower durchs Fensterband (y ≈ 1–7,5 m) sichtbar sind + // Bildzone so legen, dass Jet + Tower durchs Fensterband (y ≈ 1 – 7,5 m) sichtbar sind panoTex.repeat.set(2, 0.7); panoTex.offset.y = 0.15; } const pano = new THREE.Mesh(new THREE.PlaneGeometry(240, 16), @@ -1012,7 +1012,7 @@ const World = { } catch (_) {} }, - /* ============ Flughafen-Objekte (Sketchfab-Props, je 10–80 KB) ============ + /* ============ Flughafen-Objekte (Sketchfab-Props, je 10 – 80 KB) ============ * Ersetzen die wichtigsten prozeduralen Möbel; Positionen handgesetzt. * mode: 'h' = auf Höhe normieren, 'long' = auf längste Seite normieren */ PROP_DEFS: [ @@ -1638,7 +1638,7 @@ const World = { this.addBox(x, 2.6, -25, 1.6, 1.0, 0.1, 0x0e1d2a, { emissive: 0x2a6a8a, emissiveIntensity: 0.8 }); } } - this.sign('Check-in 1–10', -35, 4.2, -29.4, 14, 1.8, 0, true); + this.sign('Check-in 1 – 10', -35, 4.2, -29.4, 14, 1.8, 0, true); // Gepäckkarusselle (stehen nach Dienstschluss still): flaches Band // mit Metall-Seitenwänden und Mittelinsel statt des alten „Donuts“ @@ -1832,9 +1832,9 @@ const World = { // gap 0.27 rückt die Schilder vor/hinter die Säule (sonst verdeckt sie die Mitte) lines.forEach((txt, i) => this.sign(txt, x, 2.45 - i * 0.55, z, 2.6, 0.48, rotY, true, 0.27)); }; - mk(4, 14, 0, ['→ Abflug · Gates 11–13', '← Gepäckausgabe']); - mk(-26, 2, Math.PI / 2, ['→ Check-in 1–10', '← Eingangshalle']); - mk(26, -8, -Math.PI / 2, ['→ Duty-free · Sicherheit', '← Gates 11–13']); + mk(4, 14, 0, ['→ Abflug · Gates 11 – 13', '← Gepäckausgabe']); + mk(-26, 2, Math.PI / 2, ['→ Check-in 1 – 10', '← Eingangshalle']); + mk(26, -8, -Math.PI / 2, ['→ Duty-free · Sicherheit', '← Gates 11 – 13']); mk(-48, 4, Math.PI / 2, ['→ Gepäcksortierung', '← Gepäckausgabe']); }, @@ -2939,10 +2939,10 @@ const World = { this.addInfo(-64, -6, '⚙️', 'Gepäcksortierung', 'Hinter den Kulissen laufen kilometerlange Förderanlagen. Scanner lesen die Barcodes der Anhänger und Weichen lenken jeden Koffer zum richtigen Flug — oft in unter 10 Minuten. Große Flughäfen sortieren so über 100.000 Gepäckstücke pro Tag.'); this.addInfo(46, -2, '🛫', 'Gates & Boarding', - 'Am Gate wird die Bordkarte gescannt, dann geht es über die Fluggastbrücke ins Flugzeug. Die Gate-Nummer steht auf der Anzeigetafel — sie kann sich kurzfristig ändern, darum lohnt der Blick auf die Tafeln. „Boarding“ beginnt meist 30–45 Minuten vor dem Abflug.'); + 'Am Gate wird die Bordkarte gescannt, dann geht es über die Fluggastbrücke ins Flugzeug. Die Gate-Nummer steht auf der Anzeigetafel — sie kann sich kurzfristig ändern, darum lohnt der Blick auf die Tafeln. „Boarding“ beginnt meist 30 – 45 Minuten vor dem Abflug.'); this.addInfo(49, 24, '🗃️', 'Fundbüro', 'Was im Flughafen liegen bleibt — vom Schal bis zum Laptop — landet hier. Fundstücke werden katalogisiert und mehrere Monate aufbewahrt. Gepäck von Flügen läuft getrennt über die Gepäckermittlung: genau dort arbeitest du heute.', - 'Allein an den Sicherheitskontrollen der USA bleiben jeden Monat rund 90.000–100.000 Gegenstände liegen. Nur etwa 15–20 % finden zu ihren Besitzern zurück; der Rest wird gespendet, versteigert oder entsorgt.', + 'Allein an den Sicherheitskontrollen der USA bleiben jeden Monat rund 90.000 – 100.000 Gegenstände liegen. Nur etwa 15 – 20 % finden zu ihren Besitzern zurück; der Rest wird gespendet, versteigert oder entsorgt.', 'US-Transportation Security Administration (TSA)', 'https://www.tsa.gov/contact/lost-and-found'); this.addInfo(0, 0, '🖥️', 'Abflugtafel lesen', diff --git a/App/sims/logistik/engine.js b/App/sims/logistik/engine.js index a190b2d..4524314 100644 --- a/App/sims/logistik/engine.js +++ b/App/sims/logistik/engine.js @@ -470,7 +470,7 @@ /* ============================================================ PLACEHOLDER / STUB FUNKTIONEN - (Logistik-Instanz implementiert diese in Phase 1–7) + (Logistik-Instanz implementiert diese in Phase 1 – 7) ============================================================ */ /* ============================================================ diff --git a/App/sims/logistik/game.html b/App/sims/logistik/game.html index a0885d4..9f08bd8 100644 --- a/App/sims/logistik/game.html +++ b/App/sims/logistik/game.html @@ -867,9 +867,9 @@ window.LOGISTIK_GLOSSAR = window.LOGISTIK_GLOSSAR || { teu: { title: 'TEU (20-Fuß-Container)', text: 'TEU = „Twenty-foot Equivalent Unit" — der Standardcontainer. 20 Fuß ≈ 6,06 m lang, 8 Fuß ≈ 2,44 m breit, 8,5 Fuß ≈ 2,59 m hoch. Fasst ca. 33 m³ Ladung oder bis 28 Tonnen. Ein 40-Fuß-Container (FEU) = 2 TEU. In unserer Simulation zählt 1 Container = 1 TEU.' }, intermodal: { title: 'Intermodaler Verkehr', text: 'Transport mit mindestens zwei verschiedenen Verkehrsträgern in einer Kette (z.B. Schiff → Bahn → LKW). Container werden umgeladen, bleiben aber dasselbe Stück.' }, umschlag: { title: 'Umschlag', text: 'Das Umladen einer Ware von einem Transportmittel auf ein anderes. Findet an Häfen, Bahnterminals und Logistikzentren statt.' }, - luftlinie: { title: 'Luftlinie', text: 'Direkte gerade Linie zwischen zwei Punkten. Reale Straßen sind 20–40 % länger, weil sie Berge umgehen und Städte verbinden.' }, + luftlinie: { title: 'Luftlinie', text: 'Direkte gerade Linie zwischen zwei Punkten. Reale Straßen sind 20 – 40 % länger, weil sie Berge umgehen und Städte verbinden.' }, disposition: { title: 'Disposition', text: 'Die Planung: Welcher Auftrag bekommt welches Fahrzeug? In welcher Reihenfolge wird gefahren? Ziel: keine Leerfahrten, alle Fristen halten.' }, - frist: { title: 'Frist', text: 'Spätester Zeitpunkt für die Ablieferung. Bei Überschreitung gibt es Strafkosten (in unserer Simulation 10–30 % vom Auftragswert pro Stunde).' }, + frist: { title: 'Frist', text: 'Spätester Zeitpunkt für die Ablieferung. Bei Überschreitung gibt es Strafkosten (in unserer Simulation 10 – 30 % vom Auftragswert pro Stunde).' }, leerfahrt: { title: 'Leerfahrt', text: 'Fahrt ohne Ladung — z.B. wenn ein LKW zur nächsten Abholstelle fährt. Verursacht Kosten, bringt aber keinen Erlös. Gute Disposition vermeidet sie.' }, standkosten: { title: 'Standkosten', text: 'Kosten, die anfallen, während Fahrzeug oder Container nicht bewegt werden — z.B. Container am Hafen, der auf Abholung wartet.' }, bahnterminal: { title: 'Bahnterminal', text: 'Umschlagplatz für Container zwischen Bahn und LKW. Liegt an wichtigen Knotenpunkten (Wien, München, Hamburg).' }, @@ -2706,7 +2706,7 @@ window.pickText = function(opts) { cost_per_100km = 100 × €/km + (100 / speedKmh) × €/h Wertebereich bei Defaults: TRUCK_SMALL ≈ 156 € · TRUCK_LARGE ≈ 325 € · TRAIN ≈ 967 € - Per-100-km ist Kopfrechen-Anker für 13–15-jaehrige: Distanz/100 × Wert. */ + Per-100-km ist Kopfrechen-Anker für 13 – 15-jaehrige: Distanz/100 × Wert. */ function vehicleCostPer100Km(mode) { const veh = (LogistikEngine.VEHICLE_DEFAULTS || {})[mode]; if (!veh) return null; diff --git a/App/sims/logistik/test.html b/App/sims/logistik/test.html index eddb676..845d6f6 100644 --- a/App/sims/logistik/test.html +++ b/App/sims/logistik/test.html @@ -76,7 +76,7 @@ } /* ========================================================= - PFLICHTTESTS 1–7 aus Kickoff-Briefing §5.3 + PFLICHTTESTS 1 – 7 aus Kickoff-Briefing §5.3 ========================================================= */ group('Test 1 — Fahrkosten (travelCost)', (t) => { diff --git a/App/sims/template-student-dashboard.html b/App/sims/template-student-dashboard.html index ef9d79c..624ea46 100644 --- a/App/sims/template-student-dashboard.html +++ b/App/sims/template-student-dashboard.html @@ -331,7 +331,7 @@ body { overflow-y: auto; }
          🌍 Klimawächter - Level 1–3 + Level 1 – 3
          diff --git a/App/sims/tourismusregion/js/model.js b/App/sims/tourismusregion/js/model.js index 7a7f6ab..67327d4 100644 --- a/App/sims/tourismusregion/js/model.js +++ b/App/sims/tourismusregion/js/model.js @@ -252,7 +252,7 @@ function prepareWave(state, phase, opts = {}) { } waveCounts.push(`${n}× ${GROUPS[type].name}`); // Konvoi statt Streuung: Die Welle einer Gruppe kommt gebündelt kurz - // hintereinander (alle 4–6 s) und nimmt dieselbe Route – so ist sie + // hintereinander (alle 4 – 6 s) und nimmt dieselbe Route – so ist sie // als zusammengehörende Welle erkennbar. // Konvois innerhalb der Welle: Gruppe für Gruppe, eng beieinander const clusterStart = t0 + 1 + slot * (n * 1.2 + 9); diff --git a/App/sims/tourismusregion/js/ui.js b/App/sims/tourismusregion/js/ui.js index d8e298c..7ae600e 100644 --- a/App/sims/tourismusregion/js/ui.js +++ b/App/sims/tourismusregion/js/ui.js @@ -391,9 +391,9 @@ export class UI { } // ---------- Zwei Verlaufs-Graphen in eigenen Feldern ---------- - // Feste 0–20-min-Zeitachse, sichtbare Bodenlinie, alle Daten bleiben. + // Feste 0 – 20-min-Zeitachse, sichtbare Bodenlinie, alle Daten bleiben. // Links: Budget (€). Rechts: Zufriedenheits-Erfüllung in % (Ziel 100 %, - // wie „zerstört" im Tower Defense) + Umweltwert auf derselben 0–100-Skala. + // wie „zerstört" im Tower Defense) + Umweltwert auf derselben 0 – 100-Skala. drawGraph() { const hist = this.state.history; if (hist.budget.length < 2) return; diff --git a/App/sims/tourismustal/js/audio.js b/App/sims/tourismustal/js/audio.js index 8444dae..35bd2ff 100644 --- a/App/sims/tourismustal/js/audio.js +++ b/App/sims/tourismustal/js/audio.js @@ -97,7 +97,7 @@ export const audio = { }, // ---------- Gelegentliche Naturlaute (statt Dauer-Ambience) ---------- - // Alle 10–25 s ein kurzer Laut passend zur Saison: Vögel, Kuhglocken, + // Alle 10 – 25 s ein kurzer Laut passend zur Saison: Vögel, Kuhglocken, // ein Muhen – im Winter meist nur ein Windhauch. _ambTimer: null, diff --git a/App/sims/tourismustal/js/data.js b/App/sims/tourismustal/js/data.js index ed993d0..7c72e24 100644 --- a/App/sims/tourismustal/js/data.js +++ b/App/sims/tourismustal/js/data.js @@ -226,7 +226,7 @@ export const SCENARIOS = { id: 'intro-klimawandel', icon: '🌡️', title: 'Die Schneegrenze steigt', text: 'Sommer 2035. Die Winter werden wärmer, Schnee ist keine ' + 'Selbstverständlichkeit mehr. Messdaten zeigen: In den Alpen ' - + 'schmilzt der Schnee 5–9 Tage pro Jahrzehnt früher – seit 1970 ist ' + + 'schmilzt der Schnee 5 – 9 Tage pro Jahrzehnt früher – seit 1970 ist ' + 'die Schneesaison rund einen Monat kürzer geworden.\n\n' + 'Dein Tal muss sich neu erfinden: Ganzjahrestourismus! Wer sein ' + 'Sommerangebot konsequent ausbaut, dessen Sommernachfrage wächst ' @@ -726,7 +726,7 @@ export const KOSTEN_CHECKS = [ frage: 'Was kostet EIN Zimmer – mehr oder weniger als 500.000 €?', optionen: ['Mehr', 'Weniger'], richtig: 1, aufloesung: '220.000 bis 270.000 Euro pro Zimmer (4 Sterne; 3 Sterne: ' - + '140.000–190.000 €). Ein Hotel wie deines mit 60 Betten (~30 Zimmer) ' + + '140.000 – 190.000 €). Ein Hotel wie deines mit 60 Betten (~30 Zimmer) ' + 'kostet real also 7 bis 8 MILLIONEN Euro – fast tausendmal mehr als ' + 'im Spiel.', bonus: 2000, @@ -772,7 +772,7 @@ export const KNOWLEDGE = { lift: [ { term: 'Standortfaktor Höhenlage', text: 'Weiter oben ist es kälter, der Schnee bleibt länger – die Skisaison wird länger. Höhe ist ein Standortfaktor.' }, { term: 'Kapazität', text: 'Ein Lift befördert nur begrenzt viele Gäste pro Tag. Ist er voll, kommen trotz Nachfrage nicht mehr hinauf.' }, - { term: 'Sommergeschäft der Bergbahnen', text: 'Real machen Seilbahnen nur 15–25 % ihres Umsatzes im Sommer. Fällt ein Wintergast aus, braucht die Bahn 1,3 bis 4,2 Sommergäste als Ersatz (Seilbahnen Schweiz).' }, + { term: 'Sommergeschäft der Bergbahnen', text: 'Real machen Seilbahnen nur 15 – 25 % ihres Umsatzes im Sommer. Fällt ein Wintergast aus, braucht die Bahn 1,3 bis 4,2 Sommergäste als Ersatz (Seilbahnen Schweiz).' }, ], gondola: [ { term: 'Infrastruktur', text: 'Bahnen sind touristische Infrastruktur – die Grundausstattung, die eine Tourismusregion erst möglich macht.' }, @@ -793,7 +793,7 @@ export const KNOWLEDGE = { ], snow: [ { term: 'Klimawandel-Anpassung', text: 'Beschneiung sichert die Saison, wenn die Winter wärmer werden – braucht aber viel Wasser und Energie.' }, - { term: 'Schneesaison wird kürzer', text: 'Messdaten: In den Alpen schmilzt der Schnee 5–9 Tage pro Jahrzehnt früher; seit 1970 ist die Schneesaison rund einen Monat kürzer (GeoSphere Austria, SLF Schweiz). Unterhalb von ca. 2.000 m trifft es Skigebiete am härtesten.' }, + { term: 'Schneesaison wird kürzer', text: 'Messdaten: In den Alpen schmilzt der Schnee 5 – 9 Tage pro Jahrzehnt früher; seit 1970 ist die Schneesaison rund einen Monat kürzer (GeoSphere Austria, SLF Schweiz). Unterhalb von ca. 2.000 m trifft es Skigebiete am härtesten.' }, { term: 'Zielkonflikt Nachhaltigkeit', text: 'Kunstschnee kostet Ressourcen. Nachhaltiger Tourismus fragt: Wie lange lohnt sich das noch?' }, ], badesee: [ @@ -812,7 +812,7 @@ export const KNOWLEDGE = { { term: 'Standortfaktor Sicherheit', text: 'Ein gutes Rettungswesen macht eine Region attraktiver – Sicherheit ist ein weicher Standortfaktor.' }, ], bikepark: [ - { term: 'Sommernutzung von Winter-Infrastruktur', text: 'Bikeparks nutzen die Lifte im Sommer weiter – so verdienen die teuren Bahnen ganzjährig. Real machen Seilbahnen 15–25 % ihres Umsatzes im Sommer, Tendenz steigend.' }, + { term: 'Sommernutzung von Winter-Infrastruktur', text: 'Bikeparks nutzen die Lifte im Sommer weiter – so verdienen die teuren Bahnen ganzjährig. Real machen Seilbahnen 15 – 25 % ihres Umsatzes im Sommer, Tendenz steigend.' }, { term: 'Zielkonflikt', text: 'Trails bedeuten Eingriff in den Hang: Wer den Sommer ausbaut, muss den Naturwert im Blick behalten – wie beim Winterausbau auch.' }, ], ropes: [ diff --git a/App/sims/tourismustal/js/iso.js b/App/sims/tourismustal/js/iso.js index b798c43..395b294 100644 --- a/App/sims/tourismustal/js/iso.js +++ b/App/sims/tourismustal/js/iso.js @@ -940,7 +940,7 @@ export class IsoRenderer { const k = `${b.c},${b.r}`; if (!msg) { delete this._probNext[k]; continue; } if (!this._probNext[k]) { - // erster Hinweis nach 15–35 s, danach im 3-Minuten-Takt + // erster Hinweis nach 15 – 35 s, danach im 3-Minuten-Takt this._probNext[k] = now + 15000 + Math.random() * 20000; } else if (now >= this._probNext[k]) { this._probNext[k] = now + 180000; diff --git a/App/sims/vulkan/game.html b/App/sims/vulkan/game.html index f27ae11..714ed50 100644 --- a/App/sims/vulkan/game.html +++ b/App/sims/vulkan/game.html @@ -259,7 +259,7 @@
          Magma-ArtBASALTISCH
          EruptionstypEFFUSIV
          -
          Explosivität (VEI)0–1
          +
          Explosivität (VEI)0 – 1
          @@ -2965,11 +2965,11 @@ function eruptionStyle(expl, water) { } function vei(expl) { if (expl < 0.10) return '0'; - if (expl < 0.25) return '1–2'; - if (expl < 0.45) return '2–3'; - if (expl < 0.65) return '3–4'; - if (expl < 0.85) return '4–5'; - return '5–6'; + if (expl < 0.25) return '1 – 2'; + if (expl < 0.45) return '2 – 3'; + if (expl < 0.65) return '3 – 4'; + if (expl < 0.85) return '4 – 5'; + return '5 – 6'; } function didactic() { diff --git a/App/sims/weltkueche/assets/data/dishes-tranche-a.json b/App/sims/weltkueche/assets/data/dishes-tranche-a.json index 9a86c20..9cf4e0b 100644 --- a/App/sims/weltkueche/assets/data/dishes-tranche-a.json +++ b/App/sims/weltkueche/assets/data/dishes-tranche-a.json @@ -37,7 +37,7 @@ "800 g festkochende Erdäpfel mit Schale weichkochen (etwa 20 min), kalt werden lassen, schälen, in 1 cm dicke Scheiben oder Würfel.", "200 g durchwachsenen Speck in eine große Pfanne geben (kein extra Fett), bei mittlerer Hitze knusprig auslassen, herausnehmen.", "2 mittelgroße Zwiebeln fein würfeln, im ausgelassenen Speckfett goldgelb dünsten.", - "Die Erdäpfel zugeben, mit 1 EL Butterschmalz vermengen, 8–10 Minuten knusprig braten — nur 1–2 Mal vorsichtig wenden.", + "Die Erdäpfel zugeben, mit 1 EL Butterschmalz vermengen, 8 – 10 Minuten knusprig braten — nur 1 – 2 Mal vorsichtig wenden.", "Mit Salz, frisch gemahlenem Pfeffer und 1 TL Majoran würzen. Speck wieder unterheben.", "Pro Portion 1 Spiegelei separat braten (Eigelb soll flüssig bleiben), auf das Gröstl setzen, mit reichlich Schnittlauchröllchen bestreuen." ], @@ -93,10 +93,10 @@ "steps": [ "Teig: 300 g glattes Mehl, 1 Ei, 1 EL Öl, ca. 130 ml lauwarmes Wasser, eine Prise Salz zu einem geschmeidigen Teig kneten. 30 min ruhen lassen.", "Fülle: 200 g Kartoffeln weichkochen, schälen, durch die Presse drücken. Mit 250 g Topfen, 1 EL gehackter frischer Minze (oder Bohnenkraut), 1 EL Petersilie, Salz und Pfeffer verkneten.", - "Den Teig hauchdünn ausrollen (1–2 mm), Kreise mit 10 cm Durchmesser ausstechen.", + "Den Teig hauchdünn ausrollen (1 – 2 mm), Kreise mit 10 cm Durchmesser ausstechen.", "Auf jeden Kreis 1 TL Fülle setzen, zu einem Halbmond zusammenklappen, Rand fest andrücken.", "Den Rand mit dem ‚Krendeln' verzieren: mit Daumen und Zeigefinger eine geriffelte Wulst eindrehen — das ist die Kärntner Kunst!", - "In siedendem Salzwasser 5–7 min ziehen lassen (nicht sprudelnd kochen!).", + "In siedendem Salzwasser 5 – 7 min ziehen lassen (nicht sprudelnd kochen!).", "Mit zerlassener Butter überschwemmen und sofort servieren." ], "tipp": "Das ‚Krendeln' braucht Übung — wer es nicht schafft, kann den Rand mit einer Gabel andrücken. Original aber: die geriffelte Wulst gehört dazu." @@ -269,7 +269,7 @@ "8 reife Wachauer Marillen waschen, einen kleinen Schnitt machen, den Kern herausnehmen. Loch mit 1 Würfelzucker füllen.", "Teig: 300 g mehlige Erdäpfel weichkochen, schälen, durch die Presse drücken, abkühlen lassen. Mit 250 g Topfen, 1 Ei, 60 g griffigem Mehl, 60 g Grieß, einer Prise Salz zu einem geschmeidigen Teig verkneten.", "Den Teig in 8 Portionen teilen. Jede Portion zu einem Fladen drücken, eine Marille hineinwickeln, fest verschließen — kein Loch lassen, sonst läuft der Saft aus!", - "In viel Salzwasser bei kleiner Hitze 12–14 min ziehen lassen — die Knödel müssen schwimmen, aber nicht sprudeln.", + "In viel Salzwasser bei kleiner Hitze 12 – 14 min ziehen lassen — die Knödel müssen schwimmen, aber nicht sprudeln.", "150 g Butter in einer Pfanne zerlassen, 150 g Semmelbrösel darin goldbraun rösten.", "Knödel mit dem Schaumlöffel herausheben, in den Bröseln wälzen, mit reichlich Staubzucker bestreuen." ], diff --git a/App/sims/weltkueche/assets/data/dishes-tranche-b.json b/App/sims/weltkueche/assets/data/dishes-tranche-b.json index 2ba7143..e09b52c 100644 --- a/App/sims/weltkueche/assets/data/dishes-tranche-b.json +++ b/App/sims/weltkueche/assets/data/dishes-tranche-b.json @@ -96,7 +96,7 @@ "6 Eidotter einzeln einrühren. 130 g geschmolzene und ausgekühlte dunkle Schokolade unterheben.", "6 Eiklar mit 110 g Zucker zu festem Schnee schlagen. Drittelweise unter die Schokomasse heben — vorsichtig, sonst geht die Luft raus.", "130 g griffiges Mehl darüber sieben, locker unterheben. In die Form füllen, glattstreichen.", - "Im Rohr 50–60 min backen. Stäbchenprobe: kommt sauber raus, ist die Torte fertig. In der Form 10 min ruhen, stürzen, kalt werden lassen.", + "Im Rohr 50 – 60 min backen. Stäbchenprobe: kommt sauber raus, ist die Torte fertig. In der Form 10 min ruhen, stürzen, kalt werden lassen.", "Torte horizontal halbieren. 200 g Marillenmarmelade glatt rühren (oder kurz erwärmen), zwischen die Hälften streichen UND oben + außen dünn darauf streichen.", "Glasur: 200 g Zucker mit 125 ml Wasser zu Sirup kochen (5 min), kurz abkühlen, mit 150 g grob gehackter dunkler Schokolade verrühren — Glasur muss in einem Schwall über die Torte fließen, NICHT mit Messer streichen!", "12 h ruhen lassen. Mit Schlagobers servieren." @@ -116,7 +116,7 @@ "eh": "Komplexes Mehlspeisen-Rezept — Klassiker zum Üben von Schaumbildung, Unterheben, Glasieren. Hoher Zuckergehalt — diskutiere ‚Anlassgebäck' vs. Alltagsessen.", "gw": "Kakao aus Westafrika, Marillen lokal — die Sachertorte ist ein Welt-vs-Region-Beispiel auf einem Teller. Wie weit ist die Kakaobohne gereist?", "bu": "Kakao-Anbau in Côte d'Ivoire/Ghana: Kinderarbeit, Regenwald-Rodung — kritische Auseinandersetzung mit fairem Handel.", - "de": "Sachertorte vs. ‚Original Sacher-Torte' — Markenrechtsstreit Hotel Sacher vs. Demel (1934–1963). Was schützt eine Marke vs. ein Rezept?" + "de": "Sachertorte vs. ‚Original Sacher-Torte' — Markenrechtsstreit Hotel Sacher vs. Demel (1934 – 1963). Was schützt eine Marke vs. ein Rezept?" }, "fact": "Franz Sacher erfand das Rezept 1832 mit 16 Jahren als Lehrling für Fürst Metternich. Den Streit, ob die Marillenmarmelade in der Mitte ODER nur außen sein darf, haben Sacher und Demel über 30 Jahre lang vor Gericht geführt — verloren hat keiner: heute gibt es beide ‚Originale'.", "diff_note": "echtes Konditor-Handwerk — Eiklarschnee, Glasur in einem Schwall, kein Streichen" @@ -219,7 +219,7 @@ "1 Pkg. Plunderteig (TK, aufgetaut) ausrollen, in 8 Quadrate à 10 cm schneiden.", "Auf jede Mitte 1 EL Topfenmasse setzen. Ecken zur Mitte einklappen und leicht andrücken — wie ein Geschenkpaket.", "Mit verquirltem Ei bestreichen.", - "Im Rohr 18–20 min backen, bis sie goldbraun und aufgegangen sind.", + "Im Rohr 18 – 20 min backen, bis sie goldbraun und aufgegangen sind.", "Lauwarm mit Staubzucker bestreut servieren." ], "tipp": "Mit selbstgemachtem Plunder­teig (Touren-Teig) noch luftiger — aber dauert 6 h. Mit TK-Teig sind sie in 50 min am Tisch." @@ -280,7 +280,7 @@ "20 min auf einem Blech bei Raumtemperatur ‚abstehen lassen' — Oberfläche muss antrocknen.", "Lauge: 1 L kaltes Wasser mit 30 g Natriumhydroxid (Achtung: ätzend, Handschuhe!) ODER alternativ 30 g Natron in heißem Wasser für die einfache Variante.", "Brezeln kurz in Lauge tauchen (10 sec), abtropfen, mit grobem Salz bestreuen, in der Schmetterling-Form mit Messer einschneiden.", - "Bei 220 °C 18–20 min backen, bis sie tief mahagoni-braun sind.", + "Bei 220 °C 18 – 20 min backen, bis sie tief mahagoni-braun sind.", "Obatzda: 200 g reifer Camembert mit 100 g Frischkäse, 1 fein gehackter Zwiebel, 1 TL Paprika, Pfeffer, einem Schuss Bier glatt verrühren. Mit Schnittlauch servieren.", "Brezel kurz warm halten, mit Obatzda und Radieschen." ], diff --git a/App/sims/weltkueche/assets/data/dishes-tranche-c.json b/App/sims/weltkueche/assets/data/dishes-tranche-c.json index 81d6f0e..1a32410 100644 --- a/App/sims/weltkueche/assets/data/dishes-tranche-c.json +++ b/App/sims/weltkueche/assets/data/dishes-tranche-c.json @@ -32,15 +32,15 @@ "time_min": 1800, "steps": [ "Teig (24 h vorher): 500 g italienisches Tipo-00-Mehl mit 320 ml Wasser, 2 g frischer Hefe, 15 g Salz verkneten — 15 min lang per Hand.", - "Teig 4 h bei Raumtemperatur gehen lassen, dann in 4 Kugeln teilen (Pizza-Bälle). 18–24 h im Kühlschrank reifen lassen.", - "Ofen mit Pizzastein auf maximaler Hitze (250–300 °C) 1 h vorheizen.", + "Teig 4 h bei Raumtemperatur gehen lassen, dann in 4 Kugeln teilen (Pizza-Bälle). 18 – 24 h im Kühlschrank reifen lassen.", + "Ofen mit Pizzastein auf maximaler Hitze (250 – 300 °C) 1 h vorheizen.", "Teig auf bemehlter Fläche per Hand ausdrücken — niemals mit Nudelholz! Rand stehen lassen.", "Belag: 80 g zerdrückte San-Marzano-Tomaten (aus der Dose, NICHT gekocht) gleichmäßig verteilen. 100 g Mozzarella di Bufala in groben Stücken auflegen.", - "5–6 frische Basilikum-Blätter darauf, 1 EL Olivenöl extra vergine im Spiralmuster.", - "Auf den heißen Stein gleiten lassen — 60–90 Sekunden backen, bis der Rand schwarze Bläschen wirft.", + "5 – 6 frische Basilikum-Blätter darauf, 1 EL Olivenöl extra vergine im Spiralmuster.", + "Auf den heißen Stein gleiten lassen — 60 – 90 Sekunden backen, bis der Rand schwarze Bläschen wirft.", "Sofort essen — eine Pizza Margherita wartet auf niemanden." ], - "tipp": "Im Holzofen 60 sec, im Haushaltsofen mit Stein 4–5 min. Der Rand MUSS dunkle Bläschen haben (‚leoparding') — das ist das Qualitätsmerkmal." + "tipp": "Im Holzofen 60 sec, im Haushaltsofen mit Stein 4 – 5 min. Der Rand MUSS dunkle Bläschen haben (‚leoparding') — das ist das Qualitätsmerkmal." }, "nutrition": { "portion_g": 280, @@ -419,7 +419,7 @@ "bu": "Lamm hat hohen Klima-Footprint. Diskussion: Festtagsgericht oder Alltagsessen?", "de": "‚Moussaka' kommt vom arabischen ‚musaqqa'a' = ‚gekühlt' — wurde traditionell auch kalt gegessen. Sprachwege durch die Mittelmeer-Geschichte." }, - "fact": "Die heutige Moussaka mit Béchamel ist eine Erfindung des griechischen Kochs Nikolaos Tselementes (1878–1958), der die griechische Küche im 1920er-Jahre nach französischen Vorbildern modernisierte. Vor ihm gab's Moussaka ohne die weiße Sauce.", + "fact": "Die heutige Moussaka mit Béchamel ist eine Erfindung des griechischen Kochs Nikolaos Tselementes (1878 – 1958), der die griechische Küche im 1920er-Jahre nach französischen Vorbildern modernisierte. Vor ihm gab's Moussaka ohne die weiße Sauce.", "diff_note": "drei Komponenten (Aubergine, Ragout, Béchamel) + langes Backen — Marathon" }, "kanelbulle": { @@ -460,7 +460,7 @@ "Von der langen Seite eng aufrollen — wie Strudel. Mit scharfem Messer 16 gleich dicke Scheiben schneiden.", "Scheiben auf gefettetes Blech setzen, abgedeckt 45 min nachgehen lassen.", "Mit verquirltem Ei bestreichen, mit Hagelzucker bestreuen.", - "Bei 220 °C 10–12 min backen — sie sollen goldbraun, aber innen noch saftig sein.", + "Bei 220 °C 10 – 12 min backen — sie sollen goldbraun, aber innen noch saftig sein.", "Sofort essen — oder mit Tee am ‚Kanelbullens dag' (4. Oktober) feiern." ], "tipp": "Kardamom ist die Geheimwaffe — er macht den Unterschied zwischen ‚schwedisch' und ‚nur Zimtschnecke'. Nicht weglassen!" @@ -518,7 +518,7 @@ "Fülle: 400 g mehlige Erdäpfel weichkochen, schälen, durchpressen. Mit 200 g Magertopfen + 1 fein gehackter und in Butter glasiger Zwiebel + Salz + Pfeffer mischen.", "Teig hauchdünn ausrollen (2 mm), Kreise mit Glas (Ø 8 cm) ausstechen.", "Auf jeden Kreis 1 TL Fülle, zu Halbmond zusammenklappen, Rand fest andrücken — wie Kärntner Kasnudeln.", - "In siedendem Salzwasser 4–5 min ziehen lassen, bis sie an die Oberfläche kommen.", + "In siedendem Salzwasser 4 – 5 min ziehen lassen, bis sie an die Oberfläche kommen.", "TOPPING: 2 große Zwiebeln in feine Ringe, in 50 g Butter goldbraun rösten.", "Pierogi auf Tellern anrichten, mit den Röstzwiebeln + 2 EL Sahne pro Portion krönen. Mit Schnittlauch bestreuen." ], @@ -535,7 +535,7 @@ }, "lehrplan": { "eh": "Teigtaschen-Familie: Maultaschen (DE), Kasnudeln (AT), Pierogi (PL), Ravioli (IT). Diskussion: warum gibt es DIESE Form so verbreitet?", - "gw": "Polen + Westukraine — Grenzland-Küche. Historische Region ‚Galizien' (1772–1918 österreichisch). Wie Politik die Küche prägt.", + "gw": "Polen + Westukraine — Grenzland-Küche. Historische Region ‚Galizien' (1772 – 1918 österreichisch). Wie Politik die Küche prägt.", "bu": "Hauptzutaten lokal: Erdäpfel, Topfen, Zwiebel. Klima-Footprint sehr niedrig — vegetarische Variante.", "de": "‚Pierogi' = Pluralform, Singular ist ‚pierog'. Im Deutschen oft falsch verwendet (‚ein Pierogi'). Sprachgebrauch in der Migration." }, diff --git a/App/sims/weltkueche/assets/data/dishes-tranche-d.json b/App/sims/weltkueche/assets/data/dishes-tranche-d.json index a528cb7..4659877 100644 --- a/App/sims/weltkueche/assets/data/dishes-tranche-d.json +++ b/App/sims/weltkueche/assets/data/dishes-tranche-d.json @@ -239,8 +239,8 @@ "FALAFEL-PASTE: Kichererbsen mit 1 großen Zwiebel + 4 Knoblauchzehen + 1 großem Bund Petersilie + ½ Bund Koriandergrün + 2 TL Kreuzkümmel + 1 TL Korianderpulver + 1 TL Salz fein im Cutter zerkleinern.", "1 TL Backpulver + 2 EL Mehl unterheben — macht innen luftig.", "Aus der Masse 16 walnussgroße Bällchen formen (oder mit Falafel-Form pressen). 15 min im Kühlschrank ruhen.", - "FRITTIEREN: Öl auf 170 °C erhitzen. Falafel in 2 Portionen 4–5 min frittieren, bis sie tiefbraun und außen knusprig sind. Auf Küchenpapier abtropfen.", - "HUMMUS: 1 Dose Kichererbsen (eingelegt) abgespült, mit 3 EL Tahini, 2 EL Zitronensaft, 1 Knoblauchzehe, 4 EL Olivenöl, ½ TL Kumin, 1 TL Salz, 4–6 EL Eiswasser zu cremiger Paste mixen — 4 min lang!", + "FRITTIEREN: Öl auf 170 °C erhitzen. Falafel in 2 Portionen 4 – 5 min frittieren, bis sie tiefbraun und außen knusprig sind. Auf Küchenpapier abtropfen.", + "HUMMUS: 1 Dose Kichererbsen (eingelegt) abgespült, mit 3 EL Tahini, 2 EL Zitronensaft, 1 Knoblauchzehe, 4 EL Olivenöl, ½ TL Kumin, 1 TL Salz, 4 – 6 EL Eiswasser zu cremiger Paste mixen — 4 min lang!", "Hummus in Schüssel anrichten, Vertiefung mit Olivenöl + Paprikapulver füllen.", "Falafel mit warmem Fladenbrot, Hummus, Tahini-Sauce, gehackten Tomaten/Gurken und Petersilie servieren." ], diff --git a/App/sims/weltkueche/assets/data/dishes.json b/App/sims/weltkueche/assets/data/dishes.json index 7ad635f..60d526c 100644 --- a/App/sims/weltkueche/assets/data/dishes.json +++ b/App/sims/weltkueche/assets/data/dishes.json @@ -39,7 +39,7 @@ "800 g festkochende Erdäpfel mit Schale weichkochen (etwa 20 min), kalt werden lassen, schälen, in 1 cm dicke Scheiben oder Würfel.", "200 g durchwachsenen Speck in eine große Pfanne geben (kein extra Fett), bei mittlerer Hitze knusprig auslassen, herausnehmen.", "2 mittelgroße Zwiebeln fein würfeln, im ausgelassenen Speckfett goldgelb dünsten.", - "Die Erdäpfel zugeben, mit 1 EL Butterschmalz vermengen, 8–10 Minuten knusprig braten — nur 1–2 Mal vorsichtig wenden.", + "Die Erdäpfel zugeben, mit 1 EL Butterschmalz vermengen, 8 – 10 Minuten knusprig braten — nur 1 – 2 Mal vorsichtig wenden.", "Mit Salz, frisch gemahlenem Pfeffer und 1 TL Majoran würzen. Speck wieder unterheben.", "Pro Portion 1 Spiegelei separat braten (Eigelb soll flüssig bleiben), auf das Gröstl setzen, mit reichlich Schnittlauchröllchen bestreuen." ], @@ -96,10 +96,10 @@ "steps": [ "Teig: 300 g glattes Mehl, 1 Ei, 1 EL Öl, ca. 130 ml lauwarmes Wasser, eine Prise Salz zu einem geschmeidigen Teig kneten. 30 min ruhen lassen.", "Fülle: 200 g Kartoffeln weichkochen, schälen, durch die Presse drücken. Mit 250 g Topfen, 1 EL gehackter frischer Minze (oder Bohnenkraut), 1 EL Petersilie, Salz und Pfeffer verkneten.", - "Den Teig hauchdünn ausrollen (1–2 mm), Kreise mit 10 cm Durchmesser ausstechen.", + "Den Teig hauchdünn ausrollen (1 – 2 mm), Kreise mit 10 cm Durchmesser ausstechen.", "Auf jeden Kreis 1 TL Fülle setzen, zu einem Halbmond zusammenklappen, Rand fest andrücken.", "Den Rand mit dem ‚Krendeln' verzieren: mit Daumen und Zeigefinger eine geriffelte Wulst eindrehen — das ist die Kärntner Kunst!", - "In siedendem Salzwasser 5–7 min ziehen lassen (nicht sprudelnd kochen!).", + "In siedendem Salzwasser 5 – 7 min ziehen lassen (nicht sprudelnd kochen!).", "Mit zerlassener Butter überschwemmen und sofort servieren." ], "tipp": "Das ‚Krendeln' braucht Übung — wer es nicht schafft, kann den Rand mit einer Gabel andrücken. Original aber: die geriffelte Wulst gehört dazu." @@ -266,7 +266,7 @@ "8 reife Wachauer Marillen waschen, einen kleinen Schnitt machen, den Kern herausnehmen. Loch mit 1 Würfelzucker füllen.", "Topfenteig (ohne Erdäpfel): 250 g gut abgetropften Topfen mit 1 Ei, 40 g weicher Butter, einer Prise Salz und etwas abgeriebener Bio-Zitronenschale glatt rühren. 120 g griffiges Mehl und 60 g Grieß untermengen, rasch zu einem geschmeidigen Teig verkneten. 30 min kalt ruhen lassen — der Grieß quillt, dann lässt sich der Teig gut formen.", "Den Teig in 8 Portionen teilen. Jede Portion zu einem Fladen drücken, eine Marille hineinwickeln, fest verschließen — kein Loch lassen, sonst läuft der Saft aus!", - "In viel Salzwasser bei kleiner Hitze 12–14 min ziehen lassen — die Knödel müssen schwimmen, aber nicht sprudeln.", + "In viel Salzwasser bei kleiner Hitze 12 – 14 min ziehen lassen — die Knödel müssen schwimmen, aber nicht sprudeln.", "150 g Butter in einer Pfanne zerlassen, 150 g Semmelbrösel darin goldbraun rösten.", "Knödel mit dem Schaumlöffel herausheben, in den Bröseln wälzen, mit reichlich Staubzucker bestreuen." ], @@ -384,7 +384,7 @@ "6 Eidotter einzeln einrühren. 130 g geschmolzene und ausgekühlte dunkle Schokolade unterheben.", "6 Eiklar mit 110 g Zucker zu festem Schnee schlagen. Drittelweise unter die Schokomasse heben — vorsichtig, sonst geht die Luft raus.", "130 g griffiges Mehl darüber sieben, locker unterheben. In die Form füllen, glattstreichen.", - "Im Rohr 50–60 min backen. Stäbchenprobe: kommt sauber raus, ist die Torte fertig. In der Form 10 min ruhen, stürzen, kalt werden lassen.", + "Im Rohr 50 – 60 min backen. Stäbchenprobe: kommt sauber raus, ist die Torte fertig. In der Form 10 min ruhen, stürzen, kalt werden lassen.", "Torte horizontal halbieren. 200 g Marillenmarmelade glatt rühren (oder kurz erwärmen), zwischen die Hälften streichen UND oben + außen dünn darauf streichen.", "Glasur: 200 g Zucker mit 125 ml Wasser zu Sirup kochen (5 min), kurz abkühlen, mit 150 g grob gehackter dunkler Schokolade verrühren — Glasur muss in einem Schwall über die Torte fließen, NICHT mit Messer streichen!", "12 h ruhen lassen. Mit Schlagobers servieren." @@ -404,7 +404,7 @@ "eh": "Komplexes Mehlspeisen-Rezept — Klassiker zum Üben von Schaumbildung, Unterheben, Glasieren. Hoher Zuckergehalt — diskutiere ‚Anlassgebäck' vs. Alltagsessen.", "gw": "Kakao aus Westafrika, Marillen lokal — die Sachertorte ist ein Welt-vs-Region-Beispiel auf einem Teller. Wie weit ist die Kakaobohne gereist?", "bu": "Kakao-Anbau in Côte d'Ivoire/Ghana: Kinderarbeit, Regenwald-Rodung — kritische Auseinandersetzung mit fairem Handel.", - "de": "Sachertorte vs. ‚Original Sacher-Torte' — Markenrechtsstreit Hotel Sacher vs. Demel (1934–1963). Was schützt eine Marke vs. ein Rezept?" + "de": "Sachertorte vs. ‚Original Sacher-Torte' — Markenrechtsstreit Hotel Sacher vs. Demel (1934 – 1963). Was schützt eine Marke vs. ein Rezept?" }, "fact": "Franz Sacher erfand das Rezept 1832 mit 16 Jahren als Lehrling für Fürst Metternich. Den Streit, ob die Marillenmarmelade in der Mitte ODER nur außen sein darf, haben Sacher und Demel über 30 Jahre lang vor Gericht geführt — verloren hat keiner: heute gibt es beide ‚Originale'.", "diff_note": "echtes Konditor-Handwerk — Eiklarschnee, Glasur in einem Schwall, kein Streichen", @@ -504,7 +504,7 @@ "1 Pkg. Plunderteig (TK, aufgetaut) ausrollen, in 8 Quadrate à 10 cm schneiden.", "Auf jede Mitte 1 EL Topfenmasse setzen. Ecken zur Mitte einklappen und leicht andrücken — wie ein Geschenkpaket.", "Mit verquirltem Ei bestreichen.", - "Im Rohr 18–20 min backen, bis sie goldbraun und aufgegangen sind.", + "Im Rohr 18 – 20 min backen, bis sie goldbraun und aufgegangen sind.", "Lauwarm mit Staubzucker bestreut servieren." ], "tipp": "Mit selbstgemachtem Plunder­teig (Touren-Teig) noch luftiger — aber dauert 6 h. Mit TK-Teig sind sie in 50 min am Tisch." @@ -561,7 +561,7 @@ "20 min auf einem Blech bei Raumtemperatur ‚abstehen lassen' — Oberfläche muss antrocknen.", "Lauge: 1 L kaltes Wasser mit 30 g Natriumhydroxid (Achtung: ätzend, Handschuhe!) ODER alternativ 30 g Natron in heißem Wasser für die einfache Variante.", "Brezeln kurz in Lauge tauchen (10 sec), abtropfen, mit grobem Salz bestreuen, in der Schmetterling-Form mit Messer einschneiden.", - "Bei 220 °C 18–20 min backen, bis sie tief mahagoni-braun sind.", + "Bei 220 °C 18 – 20 min backen, bis sie tief mahagoni-braun sind.", "Obatzda: 200 g reifer Camembert mit 100 g Frischkäse, 1 fein gehackter Zwiebel, 1 TL Paprika, Pfeffer, einem Schuss Milch glatt verrühren. Mit Schnittlauch servieren.", "Brezel kurz warm halten, mit Obatzda und Radieschen." ], @@ -900,15 +900,15 @@ "time_min": 1800, "steps": [ "Teig (24 h vorher): 500 g italienisches Tipo-00-Mehl mit 320 ml Wasser, 2 g frischer Hefe, 15 g Salz verkneten — 15 min lang per Hand.", - "Teig 4 h bei Raumtemperatur gehen lassen, dann in 4 Kugeln teilen (Pizza-Bälle). 18–24 h im Kühlschrank reifen lassen.", - "Ofen mit Pizzastein auf maximaler Hitze (250–300 °C) 1 h vorheizen.", + "Teig 4 h bei Raumtemperatur gehen lassen, dann in 4 Kugeln teilen (Pizza-Bälle). 18 – 24 h im Kühlschrank reifen lassen.", + "Ofen mit Pizzastein auf maximaler Hitze (250 – 300 °C) 1 h vorheizen.", "Teig auf bemehlter Fläche per Hand ausdrücken — niemals mit Nudelholz! Rand stehen lassen.", "Belag: 80 g zerdrückte San-Marzano-Tomaten (aus der Dose, NICHT gekocht) gleichmäßig verteilen. 100 g Mozzarella di Bufala in groben Stücken auflegen.", - "5–6 frische Basilikum-Blätter darauf, 1 EL Olivenöl extra vergine im Spiralmuster.", - "Auf den heißen Stein gleiten lassen — 60–90 Sekunden backen, bis der Rand schwarze Bläschen wirft.", + "5 – 6 frische Basilikum-Blätter darauf, 1 EL Olivenöl extra vergine im Spiralmuster.", + "Auf den heißen Stein gleiten lassen — 60 – 90 Sekunden backen, bis der Rand schwarze Bläschen wirft.", "Sofort essen — eine Pizza Margherita wartet auf niemanden." ], - "tipp": "Im Holzofen 60 sec, im Haushaltsofen mit Stein 4–5 min. Der Rand MUSS dunkle Bläschen haben (‚leoparding') — das ist das Qualitätsmerkmal." + "tipp": "Im Holzofen 60 sec, im Haushaltsofen mit Stein 4 – 5 min. Der Rand MUSS dunkle Bläschen haben (‚leoparding') — das ist das Qualitätsmerkmal." }, "nutrition": { "portion_g": 280, @@ -1278,7 +1278,7 @@ "bu": "Lamm hat hohen Klima-Footprint. Diskussion: Festtagsgericht oder Alltagsessen?", "de": "‚Moussaka' kommt vom arabischen ‚musaqqa'a' = ‚gekühlt' — wurde traditionell auch kalt gegessen. Sprachwege durch die Mittelmeer-Geschichte." }, - "fact": "Die heutige Moussaka mit Béchamel ist eine Erfindung des griechischen Kochs Nikolaos Tselementes (1878–1958), der die griechische Küche im 1920er-Jahre nach französischen Vorbildern modernisierte. Vor ihm gab's Moussaka ohne die weiße Sauce.", + "fact": "Die heutige Moussaka mit Béchamel ist eine Erfindung des griechischen Kochs Nikolaos Tselementes (1878 – 1958), der die griechische Küche im 1920er-Jahre nach französischen Vorbildern modernisierte. Vor ihm gab's Moussaka ohne die weiße Sauce.", "diff_note": "drei Komponenten (Aubergine, Ragout, Béchamel) + langes Backen — Marathon", "id": "moussaka", "heimat": "griechenland" @@ -1318,7 +1318,7 @@ "Von der langen Seite eng aufrollen — wie Strudel. Mit scharfem Messer 16 gleich dicke Scheiben schneiden.", "Scheiben auf gefettetes Blech setzen, abgedeckt 45 min nachgehen lassen.", "Mit verquirltem Ei bestreichen, mit Hagelzucker bestreuen.", - "Bei 220 °C 10–12 min backen — sie sollen goldbraun, aber innen noch saftig sein.", + "Bei 220 °C 10 – 12 min backen — sie sollen goldbraun, aber innen noch saftig sein.", "Sofort essen — oder mit Tee am ‚Kanelbullens dag' (4. Oktober) feiern." ], "tipp": "Kardamom ist die Geheimwaffe — er macht den Unterschied zwischen ‚schwedisch' und ‚nur Zimtschnecke'. Nicht weglassen!" @@ -1375,7 +1375,7 @@ "Fülle: 400 g mehlige Erdäpfel weichkochen, schälen, durchpressen. Mit 200 g Magertopfen + 1 fein gehackter und in Butter glasiger Zwiebel + Salz + Pfeffer mischen.", "Teig hauchdünn ausrollen (2 mm), Kreise mit Glas (Ø 8 cm) ausstechen.", "Auf jeden Kreis 1 TL Fülle, zu Halbmond zusammenklappen, Rand fest andrücken — wie Kärntner Kasnudeln.", - "In siedendem Salzwasser 4–5 min ziehen lassen, bis sie an die Oberfläche kommen.", + "In siedendem Salzwasser 4 – 5 min ziehen lassen, bis sie an die Oberfläche kommen.", "TOPPING: 2 große Zwiebeln in feine Ringe, in 50 g Butter goldbraun rösten.", "Pierogi auf Tellern anrichten, mit den Röstzwiebeln + 2 EL Sahne pro Portion krönen. Mit Schnittlauch bestreuen." ], @@ -1392,7 +1392,7 @@ }, "lehrplan": { "eh": "Teigtaschen-Familie: Maultaschen (DE), Kasnudeln (AT), Pierogi (PL), Ravioli (IT). Diskussion: warum gibt es DIESE Form so verbreitet?", - "gw": "Polen + Westukraine — Grenzland-Küche. Historische Region ‚Galizien' (1772–1918 österreichisch). Wie Politik die Küche prägt.", + "gw": "Polen + Westukraine — Grenzland-Küche. Historische Region ‚Galizien' (1772 – 1918 österreichisch). Wie Politik die Küche prägt.", "bu": "Hauptzutaten lokal: Erdäpfel, Topfen, Zwiebel. Klima-Footprint sehr niedrig — vegetarische Variante.", "de": "‚Pierogi' = Pluralform, Singular ist ‚pierog'. Im Deutschen oft falsch verwendet (‚ein Pierogi'). Sprachgebrauch in der Migration." }, @@ -1683,8 +1683,8 @@ "FALAFEL-PASTE: Kichererbsen mit 1 großen Zwiebel + 4 Knoblauchzehen + 1 großem Bund Petersilie + ½ Bund Koriandergrün + 2 TL Kreuzkümmel + 1 TL Korianderpulver + 1 TL Salz fein im Cutter zerkleinern.", "1 TL Backpulver + 2 EL Mehl unterheben — macht innen luftig.", "Aus der Masse 16 walnussgroße Bällchen formen (oder mit Falafel-Form pressen). 15 min im Kühlschrank ruhen.", - "FRITTIEREN: Öl auf 170 °C erhitzen. Falafel in 2 Portionen 4–5 min frittieren, bis sie tiefbraun und außen knusprig sind. Auf Küchenpapier abtropfen.", - "HUMMUS: 1 Dose Kichererbsen (eingelegt) abgespült, mit 3 EL Tahini, 2 EL Zitronensaft, 1 Knoblauchzehe, 4 EL Olivenöl, ½ TL Kumin, 1 TL Salz, 4–6 EL Eiswasser zu cremiger Paste mixen — 4 min lang!", + "FRITTIEREN: Öl auf 170 °C erhitzen. Falafel in 2 Portionen 4 – 5 min frittieren, bis sie tiefbraun und außen knusprig sind. Auf Küchenpapier abtropfen.", + "HUMMUS: 1 Dose Kichererbsen (eingelegt) abgespült, mit 3 EL Tahini, 2 EL Zitronensaft, 1 Knoblauchzehe, 4 EL Olivenöl, ½ TL Kumin, 1 TL Salz, 4 – 6 EL Eiswasser zu cremiger Paste mixen — 4 min lang!", "Hummus in Schüssel anrichten, Vertiefung mit Olivenöl + Paprikapulver füllen.", "Falafel mit warmem Fladenbrot, Hummus, Tahini-Sauce, gehackten Tomaten/Gurken und Petersilie servieren." ], diff --git a/App/sims/weltkueche/assets/data/production-matrix.json b/App/sims/weltkueche/assets/data/production-matrix.json index a453c48..71de2cd 100644 --- a/App/sims/weltkueche/assets/data/production-matrix.json +++ b/App/sims/weltkueche/assets/data/production-matrix.json @@ -103,7 +103,7 @@ "uganda", "tansania" ], - "fact": "Aus einer Kakaofrucht kommen ~30–40 Bohnen; für 100 g Schokolade braucht man rund 100 Bohnen." + "fact": "Aus einer Kakaofrucht kommen ~30 – 40 Bohnen; für 100 g Schokolade braucht man rund 100 Bohnen." }, "vanille": { "nm": "Vanille", diff --git a/App/sims/weltkueche/game.html b/App/sims/weltkueche/game.html index 5fd7aad..cc0a6d2 100644 --- a/App/sims/weltkueche/game.html +++ b/App/sims/weltkueche/game.html @@ -363,7 +363,7 @@ let C = { /* ====================== ZUTATEN-BAUSTEINE ====================== */ let ING = { pfeffer:{nm:"Schwarzer Pfeffer",ic:"🧂",correct:["vietnam","indien"],choices:["vietnam","indien","island","kanada"], - econ:{leader:"Vietnam",share:"~40 % des Welt-Pfefferexports",world:"~550.000 t / Jahr weltweit",price:"ca. 2–4 € / 100 g"}, + econ:{leader:"Vietnam",share:"~40 % des Welt-Pfefferexports",world:"~550.000 t / Jahr weltweit",price:"ca. 2 – 4 € / 100 g"}, note:"Pfeffer ist eine tropische Kletterpflanze und wächst nur nahe am Äquator. In Island oder Kanada ist es viel zu kalt.", more:"Pfeffer war im Mittelalter so wertvoll, dass man ihn „schwarzes Gold“ nannte und damit sogar bezahlte."}, olivenoel:{nm:"Olivenöl",ic:"🫒",correct:["spanien","italien"],choices:["spanien","italien","schweden","polen"], @@ -371,31 +371,31 @@ let ING = { note:"Olivenbäume lieben das milde Mittelmeerklima. In Schweden oder Polen sind die Winter zu kalt.", more:"Ein Olivenbaum kann über 1000 Jahre alt werden und trägt jedes Jahr aufs Neue Früchte."}, hartweizen:{nm:"Hartweizen (Teig)",ic:"🌾",correct:["kanada","italien"],choices:["kanada","italien","norwegen","saudi"], - econ:{leader:"Kanada",share:"weltgrößter Hartweizen-Exporteur (~50 % Welthandel)",world:"~770 Mio t Weizen / Jahr",price:"ca. 0,10–0,20 € / 100 g (Mehl)"}, + econ:{leader:"Kanada",share:"weltgrößter Hartweizen-Exporteur (~50 % Welthandel)",world:"~770 Mio t Weizen / Jahr",price:"ca. 0,10 – 0,20 € / 100 g (Mehl)"}, note:"Weizen braucht gemäßigtes Klima mit genug Regen – nicht zu kalt wie Norwegen, nicht zu trocken wie Saudi-Arabien.", more:"Hartweizen (Durum) ist besonders eiweißreich – darum hält Pasta beim Kochen ihre Form."}, tomaten:{nm:"Tomaten (Sauce)",ic:"🍅",correct:["italien","spanien"],choices:["italien","spanien","norwegen","island"], - econ:{leader:"Italien & Spanien (EU)",share:"China ist weltweit Nr. 1, in Europa führen Italien & Spanien",world:"~190 Mio t Tomaten / Jahr",price:"ca. 0,15–0,25 € / 100 g (Dose)"}, + econ:{leader:"Italien & Spanien (EU)",share:"China ist weltweit Nr. 1, in Europa führen Italien & Spanien",world:"~190 Mio t Tomaten / Jahr",price:"ca. 0,15 – 0,25 € / 100 g (Dose)"}, note:"Tomaten lieben Sonne und Wärme. Im hohen Norden wachsen sie nur im beheizten Gewächshaus.", more:"Die berühmten Pizza- und Pastasaucen kommen meist aus süditalienischen Tomaten, etwa aus der Gegend um Neapel."}, kakao:{nm:"Kakao",ic:"🍫",correct:["elfenbein","ghana"],choices:["elfenbein","ghana","deutschland","kanada"], - econ:{leader:"Elfenbeinküste",share:"~40 % der Weltproduktion (mit Ghana ~60 %)",world:"~5 Mio t Kakaobohnen / Jahr",price:"ca. 1–2 € / 100 g (Kakaopulver)"}, + econ:{leader:"Elfenbeinküste",share:"~40 % der Weltproduktion (mit Ghana ~60 %)",world:"~5 Mio t Kakaobohnen / Jahr",price:"ca. 1 – 2 € / 100 g (Kakaopulver)"}, note:"Der Kakaobaum wächst nur in heißen, feuchten Gebieten nahe am Äquator – Deutschland und Kanada sind zu kalt.", - more:"Aus einer Kakaofrucht kommen ~30–40 Bohnen; für 100 g Schokolade braucht man rund 100 Bohnen."}, + more:"Aus einer Kakaofrucht kommen ~30 – 40 Bohnen; für 100 g Schokolade braucht man rund 100 Bohnen."}, rohrzucker:{nm:"Rohrzucker",ic:"🧊",correct:["brasilien","indien"],choices:["brasilien","indien","norwegen","finnland"], econ:{leader:"Brasilien",share:"weltgrößter Zucker-Exporteur",world:"~180 Mio t Zucker / Jahr",price:"ca. 0,10 € / 100 g"}, note:"Zuckerrohr ist eine tropische Pflanze. (In Europa gewinnt man Zucker stattdessen aus Zuckerrüben.)", more:"Aus Zuckerrohr macht Brasilien auch Biosprit (Ethanol) für Autos."}, vanille:{nm:"Vanille",ic:"🌼",correct:["madagaskar","indonesien"],choices:["madagaskar","indonesien","frankreich","japan"], - econ:{leader:"Madagaskar",share:"~75–80 % der Weltproduktion",world:"weltweit nur ~7.000 t / Jahr",price:"ca. 30–60 € / 100 g (echte Schoten)"}, + econ:{leader:"Madagaskar",share:"~75 – 80 % der Weltproduktion",world:"weltweit nur ~7.000 t / Jahr",price:"ca. 30 – 60 € / 100 g (echte Schoten)"}, note:"Vanille ist nach Safran das teuerste Gewürz der Welt – jede Blüte muss von Hand bestäubt werden.", more:"Die Vanille-Orchidee blüht nur einen einzigen Tag im Jahr – darum ist echte Vanille so selten."}, reis:{nm:"Reis",ic:"🍚",correct:["indien","thailand"],choices:["indien","thailand","island","norwegen"], - econ:{leader:"Indien",share:"weltgrößter Reis-Exporteur (~40 % Welthandel)",world:"~520 Mio t / Jahr",price:"ca. 0,15–0,30 € / 100 g"}, + econ:{leader:"Indien",share:"weltgrößter Reis-Exporteur (~40 % Welthandel)",world:"~520 Mio t / Jahr",price:"ca. 0,15 – 0,30 € / 100 g"}, note:"Reis wächst auf warmen, überfluteten Feldern. Island und Norwegen sind dafür viel zu kalt.", more:"Für mehr als die Hälfte der Menschheit ist Reis das wichtigste Grundnahrungsmittel."}, kurkuma:{nm:"Kurkuma",ic:"🟡",correct:["indien"],choices:["indien","schweden","kanada","russland"], - econ:{leader:"Indien",share:"~75–80 % der Weltproduktion",world:"fast die ganze Welternte aus Südasien",price:"ca. 1–2 € / 100 g"}, + econ:{leader:"Indien",share:"~75 – 80 % der Weltproduktion",world:"fast die ganze Welternte aus Südasien",price:"ca. 1 – 2 € / 100 g"}, note:"Kurkuma gibt dem Curry die gelbe Farbe und ist eine tropische Wurzel aus Südasien.", more:"Kurkuma färbt so stark, dass es auch als natürlicher Lebensmittelfarbstoff (E100) verwendet wird."}, kokos:{nm:"Kokosmilch",ic:"🥥",correct:["indonesien","philippinen"],choices:["indonesien","philippinen","deutschland","russland"], @@ -403,35 +403,35 @@ let ING = { note:"Kokospalmen brauchen tropische Küsten: Sonne, Wärme und sandigen Boden.", more:"Eine Kokospalme trägt bis zu 100 Nüsse pro Jahr – über viele Jahrzehnte hinweg."}, ingwer:{nm:"Ingwer",ic:"🫚",correct:["indien","china"],choices:["indien","china","norwegen","island"], - econ:{leader:"Indien",share:"Indien & China sind die größten Produzenten",world:"~4 Mio t / Jahr",price:"ca. 0,60–1,00 € / 100 g"}, + econ:{leader:"Indien",share:"Indien & China sind die größten Produzenten",world:"~4 Mio t / Jahr",price:"ca. 0,60 – 1,00 € / 100 g"}, note:"Ingwer ist eine tropische Wurzel und braucht Wärme und Feuchtigkeit zum Wachsen.", more:"Ingwer wird seit über 3000 Jahren als Gewürz und Heilmittel verwendet."}, zimt:{nm:"Zimt",ic:"🪵",correct:["srilanka","indonesien"],choices:["srilanka","indonesien","schweden","deutschland"], - econ:{leader:"Sri Lanka",share:"Heimat des echten Ceylon-Zimts",world:"~250.000 t Zimt / Jahr",price:"ca. 2–4 € / 100 g"}, + econ:{leader:"Sri Lanka",share:"Heimat des echten Ceylon-Zimts",world:"~250.000 t Zimt / Jahr",price:"ca. 2 – 4 € / 100 g"}, note:"Überraschung: Im schwedischen Klassiker steckt KEIN schwedischer Zimt – er kommt aus Sri Lanka, vom anderen Ende der Welt!", more:"Zimt ist die getrocknete, gerollte Rinde eines Baumes – die typischen „Stangen“ sind eingerollte Rindenstücke."}, kardamom:{nm:"Kardamom",ic:"🫛",correct:["guatemala","indien"],choices:["guatemala","indien","norwegen","italien"], - econ:{leader:"Guatemala",share:"weltgrößter Kardamom-Exporteur",world:"~40.000 t / Jahr",price:"ca. 5–10 € / 100 g"}, + econ:{leader:"Guatemala",share:"weltgrößter Kardamom-Exporteur",world:"~40.000 t / Jahr",price:"ca. 5 – 10 € / 100 g"}, note:"Kardamom ist eines der teuersten Gewürze der Welt (Platz 3 nach Safran und Vanille).", more:"Kardamom kam erst um 1900 nach Guatemala – heute exportiert das Land mehr davon als die Ursprungsregion Indien."}, banane:{nm:"Banane",ic:"🍌",correct:["ecuador","philippinen"],choices:["ecuador","philippinen","deutschland","kanada"], - econ:{leader:"Ecuador",share:"weltgrößter Bananen-Exporteur (~25–30 %)",world:"~135 Mio t Bananen / Jahr",price:"ca. 0,15–0,25 € / 100 g"}, + econ:{leader:"Ecuador",share:"weltgrößter Bananen-Exporteur (~25 – 30 %)",world:"~135 Mio t Bananen / Jahr",price:"ca. 0,15 – 0,25 € / 100 g"}, note:"Bananen brauchen ganzjährig tropische Wärme – deshalb reisen sie tausende Kilometer zu uns.", more:"Bananen werden grün geerntet und reifen auf dem langen Schiffsweg nach Europa nach."}, mandeln:{nm:"Mandeln",ic:"🌰",correct:["usa","spanien"],choices:["usa","spanien","norwegen","russland"], - econ:{leader:"USA",share:"Kalifornien: ~75–80 % der Weltproduktion",world:"~1,4 Mio t Mandeln / Jahr",price:"ca. 1,50–2,50 € / 100 g"}, + econ:{leader:"USA",share:"Kalifornien: ~75 – 80 % der Weltproduktion",world:"~1,4 Mio t Mandeln / Jahr",price:"ca. 1,50 – 2,50 € / 100 g"}, note:"Fast alle Mandeln wachsen im sonnigen Kalifornien und rund ums Mittelmeer.", more:"Mandelbäume brauchen Bienen zur Bestäubung – in Kalifornien werden dafür Milliarden Bienen herangekarrt."}, kaffee:{nm:"Kaffee",ic:"☕",correct:["brasilien","vietnam"],choices:["brasilien","vietnam","uk","schweden"], - econ:{leader:"Brasilien",share:"~35 % der Weltproduktion (Vietnam Nr. 2)",world:"~10 Mio t Rohkaffee / Jahr",price:"ca. 1–2 € / 100 g (Bohnen)"}, + econ:{leader:"Brasilien",share:"~35 % der Weltproduktion (Vietnam Nr. 2)",world:"~10 Mio t Rohkaffee / Jahr",price:"ca. 1 – 2 € / 100 g (Bohnen)"}, note:"Lustig: Schweden trinkt am meisten Kaffee pro Kopf – angebaut wird dort aber keine einzige Bohne.", more:"Kaffee ist nach Erdöl eine der meistgehandelten Rohstoff-Waren der Welt."}, orange:{nm:"Orangensaft",ic:"🍊",correct:["brasilien","spanien"],choices:["brasilien","spanien","norwegen","island"], - econ:{leader:"Brasilien",share:"weltgrößter Orangen-Produzent; in Europa führt Spanien",world:"~75 Mio t Orangen / Jahr",price:"ca. 0,15–0,30 € / 100 ml (Saft)"}, + econ:{leader:"Brasilien",share:"weltgrößter Orangen-Produzent; in Europa führt Spanien",world:"~75 Mio t Orangen / Jahr",price:"ca. 0,15 – 0,30 € / 100 ml (Saft)"}, note:"Orangen sind Zitrusfrüchte – sie brauchen warmes, frostfreies Klima.", more:"Fast die Hälfte aller Orangen wird zu Saft verarbeitet; Brasilien ist der größte Saft-Exporteur."}, sesam:{nm:"Sesam",ic:"⚪",correct:["indien","sudan"],choices:["indien","sudan","island","norwegen"], - econ:{leader:"Sudan / Indien",share:"gehören zu den größten Produzenten weltweit",world:"~6,5 Mio t Sesam / Jahr",price:"ca. 0,80–1,50 € / 100 g"}, + econ:{leader:"Sudan / Indien",share:"gehören zu den größten Produzenten weltweit",world:"~6,5 Mio t Sesam / Jahr",price:"ca. 0,80 – 1,50 € / 100 g"}, note:"Sesam liebt Hitze und Trockenheit – deshalb wächst er in Afrika und Asien, nicht im kalten Norden.", more:"Aus Sesam wird die Paste Tahini gemacht – Grundzutat von Hummus."}, soja:{nm:"Sojabohnen (Sojasauce)",ic:"🫘",correct:["usa","brasilien"],choices:["usa","brasilien","island","saudi"], @@ -439,39 +439,39 @@ let ING = { note:"Soja braucht viel Fläche und mildes bis warmes Klima – Island ist zu kalt, Saudi-Arabien zu trocken.", more:"Der größte Teil der Welt-Sojaernte wird gar nicht von Menschen gegessen, sondern als Tierfutter verwendet."}, nori:{nm:"Nori (Seetang)",ic:"🟢",correct:["japan","suedkorea"],choices:["japan","suedkorea","oesterreich","schweiz"], - econ:{leader:"Japan / Südkorea",share:"fast die gesamte Welt-Noriproduktion",world:"Millionen Tonnen Algen / Jahr",price:"ca. 5–10 € / 100 g (Noriblätter)"}, + econ:{leader:"Japan / Südkorea",share:"fast die gesamte Welt-Noriproduktion",world:"Millionen Tonnen Algen / Jahr",price:"ca. 5 – 10 € / 100 g (Noriblätter)"}, note:"Nori ist eine Meeresalge. Österreich und die Schweiz sind Binnenländer ohne Meer – dort kann gar kein Seetang wachsen!", more:"Nori wird auf Netzen im flachen Küstenwasser „angebaut“ und wie Gemüse geerntet."}, avocado:{nm:"Avocado",ic:"🥑",correct:["mexiko"],choices:["mexiko","norwegen","island","polen"], - econ:{leader:"Mexiko",share:"~30 % der Weltproduktion, weltgrößter Exporteur",world:"~9 Mio t / Jahr",price:"ca. 0,80–1,20 € / 100 g"}, + econ:{leader:"Mexiko",share:"~30 % der Weltproduktion, weltgrößter Exporteur",world:"~9 Mio t / Jahr",price:"ca. 0,80 – 1,20 € / 100 g"}, note:"Avocados wachsen in warmen, frostfreien Regionen – Mexiko ist das Avocado-Land Nr. 1.", more:"Avocadobäume brauchen sehr viel Wasser – in trockenen Anbaugebieten ist das ein Umweltproblem."}, limette:{nm:"Limette",ic:"🟢",correct:["mexiko","indien"],choices:["mexiko","indien","norwegen","finnland"], - econ:{leader:"Mexiko / Indien",share:"größte Produzenten von Limetten & Zitronen",world:"~20 Mio t Limetten & Zitronen / Jahr",price:"ca. 0,30–0,50 € / 100 g"}, + econ:{leader:"Mexiko / Indien",share:"größte Produzenten von Limetten & Zitronen",world:"~20 Mio t Limetten & Zitronen / Jahr",price:"ca. 0,30 – 0,50 € / 100 g"}, note:"Wie alle Zitrusfrüchte braucht die Limette Wärme und verträgt keinen Frost.", more:"Limettensaft hält angeschnittene Avocado grün – die Säure bremst das Braunwerden."}, mais:{nm:"Mais (Tortilla)",ic:"🌽",correct:["usa","brasilien"],choices:["usa","brasilien","island","saudi"], - econ:{leader:"USA",share:"USA & Brasilien sind große Mais-Exporteure",world:"~1,2 Mrd t Mais / Jahr",price:"ca. 0,10–0,20 € / 100 g (Mehl)"}, + econ:{leader:"USA",share:"USA & Brasilien sind große Mais-Exporteure",world:"~1,2 Mrd t Mais / Jahr",price:"ca. 0,10 – 0,20 € / 100 g (Mehl)"}, note:"Mais stammt ursprünglich aus Mexiko, wächst heute aber weltweit – nur nicht im ewigen Eis oder in der reinen Wüste.", more:"Mais ist mengenmäßig das meistangebaute Getreide der Welt – noch vor Weizen und Reis."}, erdnuss:{nm:"Erdnüsse",ic:"🥜",correct:["china","indien"],choices:["china","indien","norwegen","island"], - econ:{leader:"China",share:"China & Indien sind die größten Produzenten",world:"~50 Mio t / Jahr",price:"ca. 0,40–0,80 € / 100 g"}, + econ:{leader:"China",share:"China & Indien sind die größten Produzenten",world:"~50 Mio t / Jahr",price:"ca. 0,40 – 0,80 € / 100 g"}, note:"Erdnüsse reifen UNTER der Erde und brauchen warmen, lockeren Boden.", more:"Botanisch sind Erdnüsse keine Nüsse, sondern Hülsenfrüchte – verwandt mit Erbsen und Bohnen."}, chili:{nm:"Chili",ic:"🌶️",correct:["indien","china"],choices:["indien","china","norwegen","finnland"], - econ:{leader:"Indien",share:"Indien ist weltgrößter Chili-Produzent und -Exporteur",world:"~40 Mio t Chilis & Paprika / Jahr",price:"ca. 1–3 € / 100 g (getrocknet)"}, + econ:{leader:"Indien",share:"Indien ist weltgrößter Chili-Produzent und -Exporteur",world:"~40 Mio t Chilis & Paprika / Jahr",price:"ca. 1 – 3 € / 100 g (getrocknet)"}, note:"Chilis lieben Hitze – im kühlen Norden reifen sie kaum aus.", more:"Die Schärfe kommt vom Stoff Capsaicin; gemessen wird sie in Scoville-Einheiten."}, kichererbsen:{nm:"Kichererbsen",ic:"🟤",correct:["indien"],choices:["indien","norwegen","island","schweden"], - econ:{leader:"Indien",share:"~70 % der Weltproduktion",world:"~15 Mio t / Jahr",price:"ca. 0,20–0,40 € / 100 g"}, + econ:{leader:"Indien",share:"~70 % der Weltproduktion",world:"~15 Mio t / Jahr",price:"ca. 0,20 – 0,40 € / 100 g"}, note:"Kichererbsen mögen Wärme und Trockenheit – im nassen, kalten Norden gedeihen sie schlecht.", more:"Aus Kichererbsen werden Hummus und Falafel gemacht – Grundnahrung im Nahen Osten."}, kumin:{nm:"Kreuzkümmel",ic:"🌿",correct:["indien"],choices:["indien","norwegen","kanada","polen"], - econ:{leader:"Indien",share:"größter Produzent und Exporteur",world:"Hauptanbau in Indien & Vorderasien",price:"ca. 1–2 € / 100 g"}, + econ:{leader:"Indien",share:"größter Produzent und Exporteur",world:"Hauptanbau in Indien & Vorderasien",price:"ca. 1 – 2 € / 100 g"}, note:"Kreuzkümmel braucht ein heißes, trockenes Klima zum Reifen.", more:"Vorsicht: Kreuzkümmel wird oft mit Kümmel verwechselt – schmeckt aber ganz anders."}, apfel:{nm:"Äpfel",ic:"🍎",correct:["oesterreich","polen"],choices:["oesterreich","polen","saudi","island"], - econ:{leader:"Polen (EU) / China (Welt)",share:"China ist weltweit Nr. 1, Polen größter EU-Produzent",world:"~95 Mio t Äpfel / Jahr",price:"ca. 0,15–0,30 € / 100 g"}, + econ:{leader:"Polen (EU) / China (Welt)",share:"China ist weltweit Nr. 1, Polen größter EU-Produzent",world:"~95 Mio t Äpfel / Jahr",price:"ca. 0,15 – 0,30 € / 100 g"}, note:"Äpfel mögen es gemäßigt, mit kühlem Winter. In der Wüste oder Arktis wachsen sie nicht.", more:"Ein heimischer Apfel reist oft nur wenige Kilometer – ganz anders als Vanille oder Kakao vom anderen Ende der Welt."}, }; @@ -583,10 +583,10 @@ function climateImpactBlock(dish) { if (!imp.details.length) return ''; const modeIcon = { schiff: '🚢', bahn: '🚂', lkw: '🚚', flugzeug: '✈️' }; let categoryRef = ''; - if (dish.category === 'regional-at') categoryRef = '🏔 typischer AT-regionaler Wert: 30–80 g'; - else if (dish.category === 'dach') categoryRef = '🏘 typischer DACH-Wert: 80–200 g'; - else if (dish.category === 'europa') categoryRef = '🇪🇺 typischer Europa-Wert: 200–500 g'; - else if (dish.category === 'exotisch') categoryRef = '🌍 typischer Exotik-Wert: 500–1500 g'; + if (dish.category === 'regional-at') categoryRef = '🏔 typischer AT-regionaler Wert: 30 – 80 g'; + else if (dish.category === 'dach') categoryRef = '🏘 typischer DACH-Wert: 80 – 200 g'; + else if (dish.category === 'europa') categoryRef = '🇪🇺 typischer Europa-Wert: 200 – 500 g'; + else if (dish.category === 'exotisch') categoryRef = '🌍 typischer Exotik-Wert: 500 – 1500 g'; // Bewertung let badge = '🌱', verdict = 'sehr klimafreundlich'; if (imp.total >= 500) { badge = '🔥'; verdict = 'klimaintensiv — viel Welthandel'; } @@ -612,7 +612,7 @@ function climateImpactBlock(dish) {
          ${dish.category === 'exotisch' || imp.total > 300 ? `
          💭 Was meinst du? Lokale Küche hat winzigen CO₂-Fußabdruck, aber begrenzte Vielfalt. - Globale Küche bringt Vitamin-/Geschmacksvielfalt — kostet aber 10–30× mehr Klima. + Globale Küche bringt Vitamin-/Geschmacksvielfalt — kostet aber 10 – 30× mehr Klima. Wo ist deine Balance?
          ` : ''}
          `; @@ -1548,7 +1548,7 @@ function explainChoice(ingKey, key, isCorrect){ return {cls:'no', badge:'✗', text:`Klimatisch oder logistisch kein Lieferant für uns — wächst hier nicht im relevanten Umfang oder gelangt nicht in unsere Märkte.`}; } -/* Volltabelle: jede der 4–5 Karten-Optionen kriegt einen erklärenden Satz. +/* Volltabelle: jede der 4 – 5 Karten-Optionen kriegt einen erklärenden Satz. * Schüler:innen sehen so auch, was sie NICHT angeklickt haben (Lerngewinn: * was wäre theoretisch möglich gewesen, was wäre falsch gewesen). */ function allChoicesHTML(ingKey, task, attempted){ diff --git a/App/stilauswahl.html b/App/stilauswahl.html index c3349b5..f5cf300 100644 --- a/App/stilauswahl.html +++ b/App/stilauswahl.html @@ -41,7 +41,7 @@ footer{text-align:center;padding:2rem;color:#8a8a8a;font-size:.78rem;max-width:8

          🎨 Alle Stilvarianten

          -

          Welcher visuelle Stil passt am besten für ein Geografie-Lernprogramm für Jugendliche (10–14)?

          +

          Welcher visuelle Stil passt am besten für ein Geografie-Lernprogramm für Jugendliche (10 – 14)?

          50 Stile · Klicke deine Favoriten
          @@ -112,7 +112,7 @@ footer{text-align:center;padding:2rem;color:#8a8a8a;font-size:.78rem;max-width:8

          🎭 Künstlerische Stile (13)

          -

          C Retro-Futurismus / Risograph

          Körnige Texturen, 3–4 Farben, cooles Wissenschaftsposter.

          ✓ Cool-Faktor✓ Wiedererkennbar✗ „Alt"?
          +

          C Retro-Futurismus / Risograph

          Körnige Texturen, 3 – 4 Farben, cooles Wissenschaftsposter.

          ✓ Cool-Faktor✓ Wiedererkennbar✗ „Alt"?

          F Aquarell / Watercolor

          Weiche Texturen, natürliche Farben, Naturkunde-Ästhetik.

          ✓ Einzigartig✓ Beruhigend✗ Wenig „digital"
          @@ -124,7 +124,7 @@ footer{text-align:center;padding:2rem;color:#8a8a8a;font-size:.78rem;max-width:8

          V Buntglas / Stained Glass

          Schwarze Bleilinien, Juwelenfarben. Mittelalter trifft Modern.

          ✓ Dekorativ✗ Schwer für UI
          -

          Y Linolschnitt / Block Print

          Kräftig geschnitzte Formen, 2–3 Farben, handgemacht.

          ✓ Markant✗ Zu grob für Details
          +

          Y Linolschnitt / Block Print

          Kräftig geschnitzte Formen, 2 – 3 Farben, handgemacht.

          ✓ Markant✗ Zu grob für Details

          AB Art Nouveau / Jugendstil

          Fließende Linien, dekorative Rahmen, Mucha-Ästhetik.

          ✓ Elegant✗ Aufwändig✗ „Alt"?
          @@ -185,7 +185,7 @@ footer{text-align:center;padding:2rem;color:#8a8a8a;font-size:.78rem;max-width:8
          -

          💡 Mein Ranking für Jugendliche (10–14):

          +

          💡 Mein Ranking für Jugendliche (10 – 14):

          🥇 AH (Ghibli) — emotional, warm, bei der Zielgruppe extrem beliebt
          🥈 AK (Stickerei) — überwältigend einzigartig, warm, niemand hat sowas
          🥉 AE (Gouache) — handgemalt, einladend, hebt sich komplett ab
          diff --git a/App/teacher.html b/App/teacher.html index 1bd093b..0ab1d73 100644 --- a/App/teacher.html +++ b/App/teacher.html @@ -641,7 +641,7 @@ function _liveBarColor(pct, goodWhen) { if (goodWhen === 'mid') return '#9a9a9a'; return pct >= 60 ? '#5a8a5e' : pct >= 30 ? '#c9913a' : '#c07a6b'; } -// Mini-Balken UNTER der Zahl (Cockpit „Aktuell"). pct 0–100. +// Mini-Balken UNTER der Zahl (Cockpit „Aktuell"). pct 0 – 100. function _liveMiniBar(pct, color) { pct = Math.max(0, Math.min(100, pct||0)); return '

          ' @@ -1145,7 +1145,7 @@ async function renderLiveCockpit() { html += '
        '; // === C) Klassen-Fleiß über Zeit + Zeitraum-Filter === - var rangeBtns = [['day','Tag','Heute · 25 Stunden 0–24 · Schulkernzeit 8–13 Uhr hervorgehoben'], + var rangeBtns = [['day','Tag','Heute · 25 Stunden 0 – 24 · Schulkernzeit 8 – 13 Uhr hervorgehoben'], ['week','Woche','Aktuelle Kalenderwoche · Mo–So · heutiger Tag markiert'], ['month','Monat','Letzte 30 Tage · alle Tage sichtbar'], ['year','Schuljahr','Aktuelles Schuljahr · ab Schulanfang (Land-abh.) bis Schulende']]; @@ -1882,8 +1882,8 @@ function _renderKlimaCompareBody(klimaRows) { html += '
        '; html += '
        ' + '≥ 75 — gut' - + '50–74 — mittel' - + '25–49 — schwach' + + '50 – 74 — mittel' + + '25 – 49 — schwach' + '< 25 — kritisch' + '
        '; html += '
        '; @@ -2043,7 +2043,7 @@ async function renderLiveSummary() { // Auto-Zoom: minStart / maxEnd über ALLE Sessions ermitteln, dann auf volle // Stundenränder runden und 10 min Polster. Wenn niemand aktiv war, - // zeigen wir 08–14 Uhr als Standard-Bereich. + // zeigen wir 08 – 14 Uhr als Standard-Bereich. var minMs = Infinity, maxMs = -Infinity; students.forEach(function(s){ (s.sessions||[]).forEach(function(sess){ @@ -2664,7 +2664,7 @@ function ivBuildOverview(cockpit, weeks, studentsCount, matrix){ var m=IV_META[key]; h+='
        '+IV_ICON[key]+'

        '+m[0]+'

        '+m[1]+'

        '+rows.length+'
        '; if(rows.length){ - h+='
        ErfolgAktivVerlaufZuletzt
        '; + h+='
        ErfolgAktivVerlaufZuletzt
        '; rows.forEach(function(r){ h+=''; }); @@ -3865,7 +3865,7 @@ function renderFleiss() { html += '
        '; return; } - var hPct = _fleissBar(b.sum, sumMax, scale); // 0–100 % + var hPct = _fleissBar(b.sum, sumMax, scale); // 0 – 100 % var hPx = Math.max(2, Math.round(hPct / 100 * maxBarHeight)); // Tooltip: Datum/Bucket + Modul-Aufteilung var titleLines = [esc(f.buckets[idx]) + ' · ' + _fleissFmtTime(b.sum)];