Diese Änderungen liefen bereits live auf dem Server, lagen dort aber ausschließlich als nicht eingecheckte Arbeitskopie — bei jedem Deploy (stash/pull/pop) und bei jedem Serverproblem wären sie verloren gewesen. Deshalb hier unverändert in git übernommen, bevor darauf aufgebaut wird. Enthalten (nicht von mir gebaut, nur gesichert): - Supporter: eigener fester Zugangscode statt Einmalcode-Login (Migration 0009, lib/crypto.js scrypt-Hash, routes/supporter.js, abonnieren.html, supporter.html, i18n-abonnieren/-supporter) - Stimmen: Profilbilder (Migration 0010, routes/testimonials.js) - Event-Bild-Upload: voller Pfad statt relativem (routes/events.js) - Neue/überarbeitete Hintergrundbilder für viele Seiten - Teilen-Funktion (streamplan.js, i18n-index/-streamplan, main.css) Co-Authored-By: Claude Opus 5 <[email protected]>
143 lines
6.5 KiB
JavaScript
143 lines
6.5 KiB
JavaScript
/* =====================================================================
|
|
i18n-supporter.js — Übersetzungs-Wörterbuch NUR für supporter.html
|
|
Alle 5 Sprachen vollständig gepflegt (de, de-CH, en, fr, pt).
|
|
|
|
Hinweis: Die dynamisch aus der API befüllten Inhalte (Status-Labels,
|
|
Prämien-Namen, Archiv-Texte) werden aktuell noch fest auf Deutsch
|
|
generiert (siehe <script> unten im HTML) — vollständige Mehrsprachigkeit
|
|
für diese dynamischen Texte ist als Ausbaustufe vorgemerkt, hier zunächst
|
|
nur der statische Seitenrahmen (Überschriften/Buttons).
|
|
===================================================================== */
|
|
|
|
window.I18N_PAGE = {
|
|
su_eyebrow: {
|
|
de: "👑 Supporter-Bereich", "de-CH": "👑 Supporter-Bereich",
|
|
en: "👑 Supporter Area", fr: "👑 Espace Supporter", pt: "👑 Área do Apoiador",
|
|
},
|
|
su_lade: {
|
|
de: "Dein Supporter-Bereich", "de-CH": "Dis Supporter-Bereich",
|
|
en: "Your Supporter Area", fr: "Ton espace Supporter", pt: "Sua Área de Apoiador",
|
|
},
|
|
su_lead: {
|
|
de: "Danke, dass du Dogfather dauerhaft unterstützt.", "de-CH": "Danke, dass du Dogfather duurhaft unterstützisch.",
|
|
en: "Thank you for supporting Dogfather long-term.", fr: "Merci de soutenir Dogfather durablement.", pt: "Obrigado por apoiar Dogfather a longo prazo.",
|
|
},
|
|
su_fenster1_h2: {
|
|
de: "Mein Abo", "de-CH": "Mis Abo",
|
|
en: "My Subscription", fr: "Mon abonnement", pt: "Minha assinatura",
|
|
},
|
|
su_stat_status: {
|
|
de: "Status", "de-CH": "Status",
|
|
en: "Status", fr: "Statut", pt: "Status",
|
|
},
|
|
su_stat_preis: {
|
|
de: "Monatlicher Preis", "de-CH": "Monetliche Priis",
|
|
en: "Monthly price", fr: "Prix mensuel", pt: "Preço mensal",
|
|
},
|
|
su_stat_naechste_zahlung: {
|
|
de: "Nächste Zahlung", "de-CH": "Nächsti Zahlig",
|
|
en: "Next payment", fr: "Prochain paiement", pt: "Próximo pagamento",
|
|
},
|
|
su_stat_monate: {
|
|
de: "Bezahlte Monate gesamt", "de-CH": "Bezahlti Monet insgsamt",
|
|
en: "Total paid months", fr: "Total des mois payés", pt: "Total de meses pagos",
|
|
},
|
|
su_stat_zyklus: {
|
|
de: "Aktueller Zyklus", "de-CH": "Aktuelle Zyklus",
|
|
en: "Current cycle", fr: "Cycle actuel", pt: "Ciclo atual",
|
|
},
|
|
su_stat_details_hinweis: {
|
|
de: "Details ansehen", "de-CH": "Details aaluege",
|
|
en: "View details", fr: "Voir les détails", pt: "Ver detalhes",
|
|
},
|
|
su_kein_abo_text: {
|
|
de: "Du hast noch kein aktives Abo.", "de-CH": "Du häsch no kein aktivs Abo.",
|
|
en: "You don't have an active subscription yet.", fr: "Tu n'as pas encore d'abonnement actif.", pt: "Você ainda não tem uma assinatura ativa.",
|
|
},
|
|
su_kein_abo_btn: {
|
|
de: "Jetzt abonnieren", "de-CH": "Jetzt abonniere",
|
|
en: "Subscribe now", fr: "S'abonner maintenant", pt: "Assine agora",
|
|
},
|
|
su_kein_abo_soon: {
|
|
de: "Coming soon…", "de-CH": "Coming soon…",
|
|
en: "Coming soon…", fr: "Coming soon…", pt: "Coming soon…",
|
|
},
|
|
su_kein_abo_hinweis: {
|
|
de: "Alles hier ist schon für dich vorbereitet — sobald das Abo startet, kannst du es mit einem Klick aktivieren.",
|
|
"de-CH": "Alles da isch scho für di parat — sobald s Abo startet, chasch es mit eim Klick aktiviere.",
|
|
en: "Everything here is already set up for you — as soon as the subscription starts, you can activate it with one click.",
|
|
fr: "Tout est déjà prêt pour toi — dès le lancement de l'abonnement, tu pourras l'activer en un clic.",
|
|
pt: "Tudo aqui já está preparado para você — assim que a assinatura começar, você poderá ativá-la com um clique.",
|
|
},
|
|
su_fenster2_h2: {
|
|
de: "Mein aktueller Fortschritt", "de-CH": "Mis aktuelle Fortschritt",
|
|
en: "My Current Progress", fr: "Ma progression actuelle", pt: "Meu progresso atual",
|
|
},
|
|
su_archiv_h2: {
|
|
de: "Mein Sammlungsarchiv", "de-CH": "Mis Sammligsarchiv",
|
|
en: "My Collection Archive", fr: "Mes archives de collection", pt: "Meu arquivo de coleção",
|
|
},
|
|
su_verwalten_h2: {
|
|
de: "Abo verwalten", "de-CH": "Abo verwalte",
|
|
en: "Manage Subscription", fr: "Gérer l'abonnement", pt: "Gerenciar assinatura",
|
|
},
|
|
su_feld_name: {
|
|
de: "Name / Anzeigename", "de-CH": "Name / Aazeigename",
|
|
en: "Name / display name", fr: "Nom / pseudo", pt: "Nome / nome de exibição",
|
|
},
|
|
su_feld_tiktok: {
|
|
de: "TikTok-Benutzername", "de-CH": "TikTok-Benutzername",
|
|
en: "TikTok username", fr: "Nom d'utilisateur TikTok", pt: "Nome de usuário do TikTok",
|
|
},
|
|
su_btn_profil_speichern: {
|
|
de: "Speichern", "de-CH": "Spichere",
|
|
en: "Save", fr: "Enregistrer", pt: "Salvar",
|
|
},
|
|
su_profil_gespeichert: {
|
|
de: "Gespeichert.", "de-CH": "Gspicheret.",
|
|
en: "Saved.", fr: "Enregistré.", pt: "Salvo.",
|
|
},
|
|
su_btn_kuendigen: {
|
|
de: "Abo kündigen", "de-CH": "Abo kündige",
|
|
en: "Cancel subscription", fr: "Résilier l'abonnement", pt: "Cancelar assinatura",
|
|
},
|
|
su_btn_logout: {
|
|
de: "Ausloggen", "de-CH": "Uslogge",
|
|
en: "Log out", fr: "Se déconnecter", pt: "Sair",
|
|
},
|
|
su_nicht_eingeloggt: {
|
|
de: "Du bist nicht eingeloggt.", "de-CH": "Du bisch nid yyglogget.",
|
|
en: "You're not logged in.", fr: "Tu n'es pas connecté(e).", pt: "Você não está conectado.",
|
|
},
|
|
su_zum_abo: {
|
|
de: "Zur DogiCrew 🩵", "de-CH": "Zur DogiCrew 🩵",
|
|
en: "Go to the DogiCrew 🩵", fr: "Aller à la DogiCrew 🩵", pt: "Ir para a DogiCrew 🩵",
|
|
},
|
|
|
|
/* Supporter-Abstimmungen (20.08.2026) */
|
|
su_poll_eyebrow: {
|
|
de: "🗳️ Aktuelle Abstimmung", "de-CH": "🗳️ Aktueui Abstimmig",
|
|
en: "🗳️ Current Poll", fr: "🗳️ Sondage en cours", pt: "🗳️ Enquete atual",
|
|
},
|
|
su_poll_btn_abstimmen: {
|
|
de: "Abstimmen", "de-CH": "Abstimme",
|
|
en: "Vote", fr: "Voter", pt: "Votar",
|
|
},
|
|
su_poll_bitte_waehlen: {
|
|
de: "Bitte wähle eine Antwort aus.", "de-CH": "Bitte wähl e Antwort us.",
|
|
en: "Please choose an answer.", fr: "Merci de choisir une réponse.", pt: "Por favor, escolha uma resposta.",
|
|
},
|
|
su_poll_danke: {
|
|
de: "Danke, deine Stimme wurde gezählt! 💙", "de-CH": "Danke, dini Stimm isch zellt worde! 💙",
|
|
en: "Thanks, your vote was counted! 💙", fr: "Merci, ton vote a été pris en compte ! 💙", pt: "Obrigado, seu voto foi contado! 💙",
|
|
},
|
|
su_poll_stimmen: {
|
|
de: "Stimmen", "de-CH": "Stimme",
|
|
en: "votes", fr: "votes", pt: "votos",
|
|
},
|
|
su_poll_fehler: {
|
|
de: "Abstimmen hat leider nicht geklappt. Bitte versuch es nochmal.", "de-CH": "Abstimme het leider nid klappt. Bitte versuech's nomol.",
|
|
en: "Voting didn't work. Please try again.", fr: "Le vote a échoué. Merci de réessayer.", pt: "A votação falhou. Por favor, tente novamente.",
|
|
},
|
|
};
|