refactor(wording): "Spende/spenden" -> "Freiwilliger Unterstützungsbeitrag/Beitrag" (v1.7.7)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 45m18s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 45m18s
Sichtbare Texte umgestellt (Routen /spenden und Code-Namen unverändert): - Home, Unterstützungsseite (/spenden), Danke-Seite, Layout-Titel - Admin-Tab "Unterstützung", Texte + Button "Jetzt unterstützen" - settings-tab Stripe-/Unterstützungs-Konfiguration - Nutzungsbedingungen/Unterstützen: "Spendenbescheinigung" -> "Bescheinigung" - Stripe-Checkout-Position: "Freiwilliger Unterstützungsbeitrag für Lageplan" Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "lageplan",
|
"name": "lageplan",
|
||||||
"version": "1.7.6",
|
"version": "1.7.7",
|
||||||
"description": "Feuerwehr Lageplan - Krokier-App für Einsatzdokumentation",
|
"description": "Feuerwehr Lageplan - Krokier-App für Einsatzdokumentation",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ export default function AdminPage() {
|
|||||||
<TabsTrigger value="soma" className="gap-2"><AlertTriangle className="w-4 h-4" />SOMA</TabsTrigger>
|
<TabsTrigger value="soma" className="gap-2"><AlertTriangle className="w-4 h-4" />SOMA</TabsTrigger>
|
||||||
<TabsTrigger value="suggestions" className="gap-2"><ClipboardList className="w-4 h-4" />Wörterliste</TabsTrigger>
|
<TabsTrigger value="suggestions" className="gap-2"><ClipboardList className="w-4 h-4" />Wörterliste</TabsTrigger>
|
||||||
<TabsTrigger value="hose-types" className="gap-2"><Settings className="w-4 h-4" />Schläuche</TabsTrigger>
|
<TabsTrigger value="hose-types" className="gap-2"><Settings className="w-4 h-4" />Schläuche</TabsTrigger>
|
||||||
<TabsTrigger value="donate" className="gap-2"><Heart className="w-4 h-4" />Spenden</TabsTrigger>
|
<TabsTrigger value="donate" className="gap-2"><Heart className="w-4 h-4" />Unterstützung</TabsTrigger>
|
||||||
</TabsList>
|
</TabsList>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
@@ -169,14 +169,14 @@ export default function AdminPage() {
|
|||||||
<h3 className="font-semibold text-lg">Lageplan unterstützen</h3>
|
<h3 className="font-semibold text-lg">Lageplan unterstützen</h3>
|
||||||
<p className="text-sm text-muted-foreground mt-1">
|
<p className="text-sm text-muted-foreground mt-1">
|
||||||
Lageplan ist ein kostenloses Projekt — entwickelt von einem aktiven Feuerwehrmann
|
Lageplan ist ein kostenloses Projekt — entwickelt von einem aktiven Feuerwehrmann
|
||||||
in seiner Freizeit. Ohne Firma, ohne Investoren. Deine Spende hilft, den Betrieb und die
|
in seiner Freizeit. Ein freiwilliger Beitrag hilft, den Betrieb und die
|
||||||
Weiterentwicklung zu finanzieren.
|
Weiterentwicklung zu finanzieren.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="bg-muted/50 rounded-lg p-4 mb-6">
|
<div className="bg-muted/50 rounded-lg p-4 mb-6">
|
||||||
<p className="text-sm font-medium mb-2">Wohin fliesst deine Spende?</p>
|
<p className="text-sm font-medium mb-2">Wohin fliesst dein Beitrag?</p>
|
||||||
<ul className="text-sm text-muted-foreground space-y-1">
|
<ul className="text-sm text-muted-foreground space-y-1">
|
||||||
<li className="flex items-center gap-2"><Shield className="w-3.5 h-3.5 text-primary shrink-0" /> Server-Hosting in der Schweiz (monatliche Kosten)</li>
|
<li className="flex items-center gap-2"><Shield className="w-3.5 h-3.5 text-primary shrink-0" /> Server-Hosting in der Schweiz (monatliche Kosten)</li>
|
||||||
<li className="flex items-center gap-2"><Settings className="w-3.5 h-3.5 text-primary shrink-0" /> Entwicklung neuer Features und Bugfixes</li>
|
<li className="flex items-center gap-2"><Settings className="w-3.5 h-3.5 text-primary shrink-0" /> Entwicklung neuer Features und Bugfixes</li>
|
||||||
@@ -188,7 +188,7 @@ export default function AdminPage() {
|
|||||||
<Button asChild>
|
<Button asChild>
|
||||||
<a href="/spenden" target="_blank" rel="noopener noreferrer">
|
<a href="/spenden" target="_blank" rel="noopener noreferrer">
|
||||||
<Heart className="w-4 h-4 mr-2" />
|
<Heart className="w-4 h-4 mr-2" />
|
||||||
Jetzt spenden
|
Jetzt unterstützen
|
||||||
</a>
|
</a>
|
||||||
</Button>
|
</Button>
|
||||||
<Button variant="outline" asChild>
|
<Button variant="outline" asChild>
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ export async function POST(req: NextRequest) {
|
|||||||
price_data: {
|
price_data: {
|
||||||
currency: 'chf',
|
currency: 'chf',
|
||||||
product_data: {
|
product_data: {
|
||||||
name: 'Spende für Lageplan',
|
name: 'Freiwilliger Unterstützungsbeitrag für Lageplan',
|
||||||
description: `Freiwillige Spende von CHF ${amount} für die Weiterentwicklung`,
|
description: `Freiwilliger Unterstützungsbeitrag von CHF ${amount} für die Weiterentwicklung`,
|
||||||
},
|
},
|
||||||
unit_amount: amountInCents,
|
unit_amount: amountInCents,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ export default function NutzungsbedingungenPage() {
|
|||||||
<li>Beiträge sind freiwillig und erfolgen ohne Anspruch auf eine Gegenleistung.</li>
|
<li>Beiträge sind freiwillig und erfolgen ohne Anspruch auf eine Gegenleistung.</li>
|
||||||
<li>Beiträge begründen keinen Anspruch auf Funktionen, Support, Verfügbarkeit oder bevorzugte Behandlung.</li>
|
<li>Beiträge begründen keinen Anspruch auf Funktionen, Support, Verfügbarkeit oder bevorzugte Behandlung.</li>
|
||||||
<li>Zahlungsanbieter können Gebühren abziehen.</li>
|
<li>Zahlungsanbieter können Gebühren abziehen.</li>
|
||||||
<li>Es wird keine steuerlich abzugsfähige Spendenbescheinigung versprochen.</li>
|
<li>Es wird keine steuerlich abzugsfähige Bescheinigung versprochen.</li>
|
||||||
<li>Bei versehentlicher Zahlung besteht eine Kontaktmöglichkeit zur Prüfung einer Rückerstattung ({legal.supportEmail}).</li>
|
<li>Bei versehentlicher Zahlung besteht eine Kontaktmöglichkeit zur Prüfung einer Rückerstattung ({legal.supportEmail}).</li>
|
||||||
<li>Es wird keine Gemeinnützigkeit oder Steuerbefreiung behauptet, solange diese nicht schriftlich bestätigt ist.</li>
|
<li>Es wird keine Gemeinnützigkeit oder Steuerbefreiung behauptet, solange diese nicht schriftlich bestätigt ist.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -333,8 +333,8 @@ export default function LandingPage() {
|
|||||||
Hinter jeder Funktion stecken Stunden an Entwicklung, Testing und Feinschliff.
|
Hinter jeder Funktion stecken Stunden an Entwicklung, Testing und Feinschliff.
|
||||||
Server-Hosting, Domain, SSL-Zertifikate — das alles kostet. Ich finanziere das aktuell
|
Server-Hosting, Domain, SSL-Zertifikate — das alles kostet. Ich finanziere das aktuell
|
||||||
komplett aus eigener Tasche, weil mir das Projekt am Herzen liegt.
|
komplett aus eigener Tasche, weil mir das Projekt am Herzen liegt.
|
||||||
Wenn du Lageplan nützlich findest, kannst du die Weiterentwicklung mit einer freiwilligen
|
Wenn du Lageplan nützlich findest, kannst du die Weiterentwicklung mit einem freiwilligen
|
||||||
Spende unterstützen. Jeder Beitrag hilft, neue Features zu bauen und die Server am Laufen zu halten.
|
Beitrag unterstützen. Jeder Beitrag hilft, neue Features zu bauen und die Server am Laufen zu halten.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -586,7 +586,7 @@ function SupportSection() {
|
|||||||
<Link href="/spenden">
|
<Link href="/spenden">
|
||||||
<Button className="bg-red-600 hover:bg-red-700 h-12 text-base px-8">
|
<Button className="bg-red-600 hover:bg-red-700 h-12 text-base px-8">
|
||||||
<Heart className="w-4 h-4 mr-2" />
|
<Heart className="w-4 h-4 mr-2" />
|
||||||
Zur Spendenseite
|
Zur Unterstützungsseite
|
||||||
</Button>
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ export default function DankePage() {
|
|||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p className="text-xl text-gray-500 mb-2">
|
<p className="text-xl text-gray-500 mb-2">
|
||||||
Deine Spende ist angekommen.
|
Dein Beitrag ist angekommen.
|
||||||
</p>
|
</p>
|
||||||
<p className="text-gray-400 mb-10 max-w-md mx-auto">
|
<p className="text-gray-400 mb-10 max-w-md mx-auto">
|
||||||
Dein Beitrag hilft direkt dabei, Lageplan weiterzuentwickeln und die Server am Laufen zu halten.
|
Dein Beitrag hilft direkt dabei, Lageplan weiterzuentwickeln und die Server am Laufen zu halten.
|
||||||
@@ -40,7 +40,7 @@ export default function DankePage() {
|
|||||||
<div className="bg-red-50 rounded-2xl p-8 border border-red-100 mb-10">
|
<div className="bg-red-50 rounded-2xl p-8 border border-red-100 mb-10">
|
||||||
<Heart className="w-8 h-8 text-red-500 mx-auto mb-3" />
|
<Heart className="w-8 h-8 text-red-500 mx-auto mb-3" />
|
||||||
<p className="text-gray-700 font-medium">
|
<p className="text-gray-700 font-medium">
|
||||||
«Jede Spende motiviert mich, weiterzumachen. Danke von Herzen!»
|
«Jeder Beitrag motiviert mich, weiterzumachen. Danke von Herzen!»
|
||||||
</p>
|
</p>
|
||||||
<p className="text-sm text-gray-500 mt-2">— Pepe Ziberi, Entwickler von Lageplan</p>
|
<p className="text-sm text-gray-500 mt-2">— Pepe Ziberi, Entwickler von Lageplan</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import type { Metadata } from 'next'
|
import type { Metadata } from 'next'
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Spenden',
|
title: 'Unterstützen',
|
||||||
description: 'Unterstützen Sie die Weiterentwicklung von Lageplan.ch – der kostenlosen Krokier-App für Schweizer Feuerwehren.',
|
description: 'Freiwilliger Unterstützungsbeitrag für die Weiterentwicklung von Lageplan.ch – der kostenlosen Krokier-App für Schweizer Feuerwehren.',
|
||||||
robots: { index: true, follow: true },
|
robots: { index: true, follow: true },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ export default function SpendenPage() {
|
|||||||
<h1 className="text-4xl font-extrabold text-gray-900 mb-4">Lageplan unterstützen</h1>
|
<h1 className="text-4xl font-extrabold text-gray-900 mb-4">Lageplan unterstützen</h1>
|
||||||
<p className="text-lg text-gray-500 max-w-xl mx-auto">
|
<p className="text-lg text-gray-500 max-w-xl mx-auto">
|
||||||
Lageplan ist ein kostenloses Herzensprojekt von einem Feuerwehrmann für Feuerwehrleute.
|
Lageplan ist ein kostenloses Herzensprojekt von einem Feuerwehrmann für Feuerwehrleute.
|
||||||
Mit deiner Spende hilfst du, die Weiterentwicklung und den Betrieb zu finanzieren.
|
Mit deinem freiwilligen Beitrag hilfst du, die Weiterentwicklung und den Betrieb zu finanzieren.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -94,7 +94,7 @@ export default function SpendenPage() {
|
|||||||
<div className="flex items-start gap-4">
|
<div className="flex items-start gap-4">
|
||||||
<Lightbulb className="w-7 h-7 text-red-500 shrink-0 mt-0.5" />
|
<Lightbulb className="w-7 h-7 text-red-500 shrink-0 mt-0.5" />
|
||||||
<div>
|
<div>
|
||||||
<h3 className="font-bold text-gray-900 mb-2">Wohin fliesst deine Spende?</h3>
|
<h3 className="font-bold text-gray-900 mb-2">Wohin fliesst dein Beitrag?</h3>
|
||||||
<ul className="space-y-2 text-sm text-gray-600">
|
<ul className="space-y-2 text-sm text-gray-600">
|
||||||
<li className="flex items-center gap-2"><Shield className="w-4 h-4 text-red-500 shrink-0" /> Server-Hosting und Infrastruktur (monatliche Kosten)</li>
|
<li className="flex items-center gap-2"><Shield className="w-4 h-4 text-red-500 shrink-0" /> Server-Hosting und Infrastruktur (monatliche Kosten)</li>
|
||||||
<li className="flex items-center gap-2"><Sparkles className="w-4 h-4 text-red-500 shrink-0" /> Entwicklung neuer Features (PWA, Vorlagen, Einsatzpläne)</li>
|
<li className="flex items-center gap-2"><Sparkles className="w-4 h-4 text-red-500 shrink-0" /> Entwicklung neuer Features (PWA, Vorlagen, Einsatzpläne)</li>
|
||||||
@@ -206,7 +206,7 @@ export default function SpendenPage() {
|
|||||||
{/* CTA */}
|
{/* CTA */}
|
||||||
{stripeConfigured === false ? (
|
{stripeConfigured === false ? (
|
||||||
<div className="bg-yellow-50 border border-yellow-200 text-yellow-800 rounded-lg p-4 text-sm text-center">
|
<div className="bg-yellow-50 border border-yellow-200 text-yellow-800 rounded-lg p-4 text-sm text-center">
|
||||||
Spenden sind aktuell nicht möglich. Die Zahlungsabwicklung wird gerade eingerichtet.
|
Beiträge sind aktuell nicht möglich. Die Zahlungsabwicklung wird gerade eingerichtet.
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<Button
|
<Button
|
||||||
@@ -217,7 +217,7 @@ export default function SpendenPage() {
|
|||||||
{isLoading ? (
|
{isLoading ? (
|
||||||
<><Loader2 className="w-4 h-4 mr-2 animate-spin" /> Weiterleitung zu Stripe...</>
|
<><Loader2 className="w-4 h-4 mr-2 animate-spin" /> Weiterleitung zu Stripe...</>
|
||||||
) : (
|
) : (
|
||||||
<><Heart className="w-4 h-4 mr-2" /> CHF {amount} spenden</>
|
<><Heart className="w-4 h-4 mr-2" /> CHF {amount} beitragen</>
|
||||||
)}
|
)}
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
@@ -236,7 +236,7 @@ export default function SpendenPage() {
|
|||||||
freiwillig und erfolgt ohne Anspruch auf eine Gegenleistung. Daraus entsteht insbesondere kein
|
freiwillig und erfolgt ohne Anspruch auf eine Gegenleistung. Daraus entsteht insbesondere kein
|
||||||
Anspruch auf Funktionen, Support, Verfügbarkeit, bevorzugte Behandlung oder eine bestimmte
|
Anspruch auf Funktionen, Support, Verfügbarkeit, bevorzugte Behandlung oder eine bestimmte
|
||||||
Weiterentwicklung. Zahlungs- und Transaktionsgebühren des Zahlungsanbieters (Stripe) können vom
|
Weiterentwicklung. Zahlungs- und Transaktionsgebühren des Zahlungsanbieters (Stripe) können vom
|
||||||
Beitrag abgezogen werden. Es wird keine steuerlich abzugsfähige Spendenbescheinigung ausgestellt,
|
Beitrag abgezogen werden. Es wird keine steuerlich abzugsfähige Bescheinigung ausgestellt,
|
||||||
solange keine entsprechende behördliche Anerkennung besteht. Es handelt sich um eine einmalige
|
solange keine entsprechende behördliche Anerkennung besteht. Es handelt sich um eine einmalige
|
||||||
Zahlung; es wird keine wiederkehrende Zahlung eingerichtet. Details zur Zahlungsabwicklung siehe{' '}
|
Zahlung; es wird keine wiederkehrende Zahlung eingerichtet. Details zur Zahlungsabwicklung siehe{' '}
|
||||||
<Link href="/datenschutz" className="text-red-600 underline">Datenschutzerklärung</Link>.
|
<Link href="/datenschutz" className="text-red-600 underline">Datenschutzerklärung</Link>.
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export default function UnterstuetzenPage() {
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Zahlungs- und Transaktionsgebühren des eingesetzten Zahlungsanbieters (Stripe) können vom Beitrag
|
Zahlungs- und Transaktionsgebühren des eingesetzten Zahlungsanbieters (Stripe) können vom Beitrag
|
||||||
abgezogen werden. {legal.projectName} stellt keine steuerlich abzugsfähige Spendenbescheinigung aus,
|
abgezogen werden. {legal.projectName} stellt keine steuerlich abzugsfähige Bescheinigung aus,
|
||||||
solange keine entsprechende behördliche Anerkennung besteht.
|
solange keine entsprechende behördliche Anerkennung besteht.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -284,10 +284,10 @@ export function SettingsTab({ onNavigateTab }: SettingsTabProps) {
|
|||||||
<div className="border rounded-lg p-6 md:col-span-2">
|
<div className="border rounded-lg p-6 md:col-span-2">
|
||||||
<h3 className="font-semibold text-lg mb-4 flex items-center gap-2">
|
<h3 className="font-semibold text-lg mb-4 flex items-center gap-2">
|
||||||
<CreditCard className="w-5 h-5 text-primary" />
|
<CreditCard className="w-5 h-5 text-primary" />
|
||||||
Stripe / Spenden-Konfiguration
|
Stripe / Unterstützungs-Konfiguration
|
||||||
</h3>
|
</h3>
|
||||||
<p className="text-sm text-muted-foreground mb-4">
|
<p className="text-sm text-muted-foreground mb-4">
|
||||||
Stripe API-Keys für die Spendenseite konfigurieren. Unterstützt Kreditkarte, Twint und weitere Zahlungsmethoden.
|
Stripe API-Keys für die Unterstützungsseite konfigurieren. Unterstützt Kreditkarte, Twint und weitere Zahlungsmethoden.
|
||||||
Keys findest du im <a href="https://dashboard.stripe.com/apikeys" target="_blank" rel="noopener noreferrer" className="text-primary underline">Stripe Dashboard</a>.
|
Keys findest du im <a href="https://dashboard.stripe.com/apikeys" target="_blank" rel="noopener noreferrer" className="text-primary underline">Stripe Dashboard</a>.
|
||||||
</p>
|
</p>
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||||
|
|||||||
Reference in New Issue
Block a user