Compare commits

...
3 Commits
Author SHA1 Message Date
Nick SzaunigandClaude Sonnet 5 a0f61d328c fix: Uebersetzungs-Inkonsistenzen vereinheitlichen (spring harvest, intense)
Docker Image bauen und veroeffentlichen / build-and-push (push) Successful in 2m37s
"Spring flow" -> "spring harvest", passend zum Rest der englischen Texte.
"robust" -> "intense" fuer kraeftig in beiden Admin-Produktformularen,
passend zum bereits kundenseitig verwendeten product.tasteIntense.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-09-13 00:34:57 +02:00
Nick SzaunigandClaude Sonnet 5 88a3e367e6 fix: letzten AI-Slop-Rest in Honigwissen-Artikel entfernen
"Here's why it happens" war ein Throat-Clearing-Opener, den die
deutsche Originalfassung ("Wir erklaeren, woran das liegt") gar nicht
hatte. Jetzt woertlich angeglichen.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-09-12 19:14:02 +02:00
Nick SzaunigandClaude Sonnet 5 a52faea3ad fix: Chargen-Bild-Fallback pro Slot statt alles-oder-nichts
/charge/[code] zeigt zwei Bild-Slots (Produkt-/Standortfoto). Die
bisherige Logik ersetzte bei JEDEM eigenen Chargenfoto beide Slots
komplett durch batch.images — wer nur ein Chargenfoto pflegte, verlor
dadurch das zweite (Standort-)Bild der Ernte statt es weiter anzuzeigen.
Jeder Slot faellt jetzt einzeln auf das jeweilige Erntebild zurueck.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-09-12 18:39:43 +02:00
2 changed files with 12 additions and 6 deletions

No files matched your search

+8 -2
View File
@@ -40,8 +40,14 @@ export default async function BatchPage(props: PageProps<"/charge/[code]">) {
{ label: t.chargePage.stepBestBefore, value: formatDate(batch.bestBeforeDate, locale) }, { label: t.chargePage.stepBestBefore, value: formatDate(batch.bestBeforeDate, locale) },
]; ];
// Eigene Chargenfotos (z.B. Etikett/Abfuellung dieser konkreten Charge) // Eigene Chargenfotos (z.B. Etikett/Abfuellung dieser konkreten Charge)
// gehen vor, falls gepflegt — sonst wie bisher die Erntebilder. // gehen PRO Slot vor, falls gepflegt — sonst faellt genau dieser Slot auf
const displayImages = batch.images.length > 0 ? batch.images : batch.harvest.images; // das entsprechende Erntebild zurueck. Bewusst NICHT alles-oder-nichts:
// wer nur ein Chargenfoto pflegt, soll nicht das zweite (Standort-)Bild
// verlieren, nur weil die Charge kein zweites eigenes Foto hat.
const displayImages = [
batch.images[0] ?? batch.harvest.images[0] ?? null,
batch.images[1] ?? batch.harvest.images[1] ?? null,
];
return ( return (
<div className="py-20"> <div className="py-20">
+4 -4
View File
@@ -446,7 +446,7 @@ export const en: Dictionary = {
wissenArticles: { wissenArticles: {
"warum-kristallisiert-honig": { "warum-kristallisiert-honig": {
title: "Why does honey crystallize?", title: "Why does honey crystallize?",
excerpt: "Crystallization is a natural process, not a quality defect. Here's why it happens.", excerpt: "Crystallization is a natural process, not a quality defect. We explain why.",
body: [ body: [
"Honey consists mainly of the sugars glucose and fructose, plus water. Glucose tends to crystallize out over time, a completely natural, physical process, not a sign of poor quality.", "Honey consists mainly of the sugars glucose and fructose, plus water. Glucose tends to crystallize out over time, a completely natural, physical process, not a sign of poor quality.",
"The higher a honey variety's glucose content, the faster it crystallizes. That's why single-origin honeys can differ noticeably in how quickly they set.", "The higher a honey variety's glucose content, the faster it crystallizes. That's why single-origin honeys can differ noticeably in how quickly they set.",
@@ -894,7 +894,7 @@ export const en: Dictionary = {
deleteConfirm: (label) => `Really delete "${label}"? This cannot be undone.`, deleteConfirm: (label) => `Really delete "${label}"? This cannot be undone.`,
noHarvestsYet: "No harvests created yet.", noHarvestsYet: "No harvests created yet.",
newHarvestHeading: "Create new harvest", newHarvestHeading: "Create new harvest",
typeLabel: "Type (e.g. Spring flow)", typeLabel: "Type (e.g. spring harvest)",
yearLabel: "Year", yearLabel: "Year",
harvestDateLabel: "Harvest date", harvestDateLabel: "Harvest date",
locationLabel: "Location", locationLabel: "Location",
@@ -954,7 +954,7 @@ export const en: Dictionary = {
consistencyLabel: "Consistency", consistencyLabel: "Consistency",
intensityMildLabel: "mild (1-5)", intensityMildLabel: "mild (1-5)",
intensityFloralLabel: "floral (1-5)", intensityFloralLabel: "floral (1-5)",
intensityKraeftigLabel: "robust (1-5)", intensityKraeftigLabel: "intense (1-5)",
weightLabel: "Weight (g)", weightLabel: "Weight (g)",
stockLabel: "Inventory (jars)", stockLabel: "Inventory (jars)",
priceLabel: "Price (cents)", priceLabel: "Price (cents)",
@@ -982,7 +982,7 @@ export const en: Dictionary = {
consistencyPlaceholder: "smooth", consistencyPlaceholder: "smooth",
intensityMildLabel: "Mild intensity (1-5)", intensityMildLabel: "Mild intensity (1-5)",
intensityFloralLabel: "Floral intensity (1-5)", intensityFloralLabel: "Floral intensity (1-5)",
intensityKraeftigLabel: "Robust intensity (1-5)", intensityKraeftigLabel: "Intense intensity (1-5)",
weightLabel: "Weight (g)", weightLabel: "Weight (g)",
stockLabel: "Inventory (jars)", stockLabel: "Inventory (jars)",
priceLabel: "Price (cents)", priceLabel: "Price (cents)",