From 01681b58ff51bde20b3fe3e21c2b4cdb56b69a5a Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 27 Apr 2026 01:43:01 +0200 Subject: [PATCH] i18n(gifts): add namespace JSONs for de/en/es/fr/it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Locale-only — page patches in follow-up commit. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../web/src/lib/i18n/locales/gifts/de.json | 69 +++++++++++++++++++ .../web/src/lib/i18n/locales/gifts/en.json | 69 +++++++++++++++++++ .../web/src/lib/i18n/locales/gifts/es.json | 69 +++++++++++++++++++ .../web/src/lib/i18n/locales/gifts/fr.json | 69 +++++++++++++++++++ .../web/src/lib/i18n/locales/gifts/it.json | 69 +++++++++++++++++++ 5 files changed, 345 insertions(+) create mode 100644 apps/mana/apps/web/src/lib/i18n/locales/gifts/de.json create mode 100644 apps/mana/apps/web/src/lib/i18n/locales/gifts/en.json create mode 100644 apps/mana/apps/web/src/lib/i18n/locales/gifts/es.json create mode 100644 apps/mana/apps/web/src/lib/i18n/locales/gifts/fr.json create mode 100644 apps/mana/apps/web/src/lib/i18n/locales/gifts/it.json diff --git a/apps/mana/apps/web/src/lib/i18n/locales/gifts/de.json b/apps/mana/apps/web/src/lib/i18n/locales/gifts/de.json new file mode 100644 index 000000000..039357613 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/gifts/de.json @@ -0,0 +1,69 @@ +{ + "page": { + "title": "Geschenke", + "subtitle": "Verschenke Credits an Freunde", + "action_retry": "Erneut versuchen", + "action_redeem": "Code einlösen", + "action_create_gift": "Geschenk erstellen", + "tab_received": "Erhalten ({count})", + "tab_created": "Erstellt ({count})", + "tab_create": "Erstellen", + "section_received": "Erhaltene Geschenke", + "empty_received": "Du hast noch keine Geschenke erhalten", + "label_from": "Von {name}", + "section_created": "Erstellte Geschenk-Codes", + "empty_created": "Du hast noch keine Geschenke erstellt", + "action_copy_link_title": "Link kopieren", + "action_cancel_title": "Stornieren", + "label_credits": "Credits", + "label_redeemed": "Eingelöst", + "label_redeemed_yes": "Ja", + "label_redeemed_no": "Nein", + "label_created": "Erstellt", + "label_valid_until": "Gültig bis", + "section_create": "Neues Geschenk erstellen", + "label_available_credits": "Verfügbare Credits", + "label_credits_input": "Credits", + "label_type": "Art", + "type_simple": "Einfach (Code teilen)", + "type_personalized": "Persönlich (für bestimmte E-Mail)", + "label_target_email": "E-Mail des Empfängers", + "placeholder_target_email": "empfaenger@example.com", + "hint_personalized": "Wird automatisch eingelöst, wenn sich diese Person registriert.", + "label_message": "Nachricht (optional)", + "placeholder_message": "z.B. Alles Gute zum Geburtstag!", + "action_creating": "Wird erstellt...", + "action_create": "✨ Geschenk-Code erstellen", + "created_title": "Geschenk erstellt!", + "created_subtitle": "Teile diesen Link mit dem Empfänger", + "action_copy_link": "Link kopieren", + "action_copy_code": "Code kopieren", + "action_create_another": "Weiteres Geschenk erstellen", + "info_title": "So funktioniert's", + "info_step1_title": "Credits wählen", + "info_step1_body": "Bestimme, wie viele Credits du verschenken möchtest.", + "info_step2_title": "Code erstellen", + "info_step2_body": "Ein einzigartiger 6-stelliger Code wird generiert.", + "info_step3_title": "Link teilen", + "info_step3_body": "Sende den Link oder Code an den Empfänger.", + "info_step4_title": "Einlösen", + "info_step4_body": "Der Empfänger erhält die Credits auf sein Konto.", + "info_note_strong": "Hinweis:", + "info_note_body": "Die Credits werden beim Erstellen von deinem Konto abgezogen. Falls der Code nicht eingelöst wird, kannst du ihn stornieren und die Credits zurückerhalten.", + "err_min_credit": "Mindestens 1 Credit erforderlich", + "err_email_required": "E-Mail-Adresse ist für persönliche Geschenke erforderlich", + "toast_created": "Geschenk-Code erstellt!", + "err_create": "Erstellen fehlgeschlagen", + "confirm_cancel": "Möchtest du den Code {code} wirklich stornieren? Die nicht eingelösten Credits werden erstattet.", + "toast_refunded": "{count} Credits erstattet", + "err_cancel": "Stornieren fehlgeschlagen", + "toast_clipboard": "In Zwischenablage kopiert", + "status_active": "Aktiv", + "status_depleted": "Eingelöst", + "status_expired": "Abgelaufen", + "status_cancelled": "Storniert", + "status_refunded": "Erstattet", + "type_simple_label": "Einfach", + "type_personalized_label": "Persönlich" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/gifts/en.json b/apps/mana/apps/web/src/lib/i18n/locales/gifts/en.json new file mode 100644 index 000000000..c75becee7 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/gifts/en.json @@ -0,0 +1,69 @@ +{ + "page": { + "title": "Gifts", + "subtitle": "Give credits to friends", + "action_retry": "Retry", + "action_redeem": "Redeem code", + "action_create_gift": "Create gift", + "tab_received": "Received ({count})", + "tab_created": "Created ({count})", + "tab_create": "Create", + "section_received": "Received gifts", + "empty_received": "You haven't received any gifts yet", + "label_from": "From {name}", + "section_created": "Created gift codes", + "empty_created": "You haven't created any gifts yet", + "action_copy_link_title": "Copy link", + "action_cancel_title": "Cancel", + "label_credits": "Credits", + "label_redeemed": "Redeemed", + "label_redeemed_yes": "Yes", + "label_redeemed_no": "No", + "label_created": "Created", + "label_valid_until": "Valid until", + "section_create": "Create new gift", + "label_available_credits": "Available credits", + "label_credits_input": "Credits", + "label_type": "Type", + "type_simple": "Simple (share code)", + "type_personalized": "Personalized (for a specific email)", + "label_target_email": "Recipient's email", + "placeholder_target_email": "recipient@example.com", + "hint_personalized": "Auto-redeemed when this person signs up.", + "label_message": "Message (optional)", + "placeholder_message": "e.g. Happy birthday!", + "action_creating": "Creating...", + "action_create": "✨ Create gift code", + "created_title": "Gift created!", + "created_subtitle": "Share this link with the recipient", + "action_copy_link": "Copy link", + "action_copy_code": "Copy code", + "action_create_another": "Create another gift", + "info_title": "How it works", + "info_step1_title": "Pick credits", + "info_step1_body": "Decide how many credits you want to gift.", + "info_step2_title": "Create code", + "info_step2_body": "A unique 6-character code is generated.", + "info_step3_title": "Share link", + "info_step3_body": "Send the link or code to the recipient.", + "info_step4_title": "Redeem", + "info_step4_body": "The recipient gets the credits on their account.", + "info_note_strong": "Note:", + "info_note_body": "Credits are deducted from your account on creation. If the code is never redeemed, you can cancel it and get the credits back.", + "err_min_credit": "At least 1 credit required", + "err_email_required": "Email address required for personalized gifts", + "toast_created": "Gift code created!", + "err_create": "Creation failed", + "confirm_cancel": "Really cancel code {code}? Unredeemed credits will be refunded.", + "toast_refunded": "{count} credits refunded", + "err_cancel": "Cancellation failed", + "toast_clipboard": "Copied to clipboard", + "status_active": "Active", + "status_depleted": "Redeemed", + "status_expired": "Expired", + "status_cancelled": "Cancelled", + "status_refunded": "Refunded", + "type_simple_label": "Simple", + "type_personalized_label": "Personalized" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/gifts/es.json b/apps/mana/apps/web/src/lib/i18n/locales/gifts/es.json new file mode 100644 index 000000000..e8b872326 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/gifts/es.json @@ -0,0 +1,69 @@ +{ + "page": { + "title": "Regalos", + "subtitle": "Regala créditos a amigos", + "action_retry": "Reintentar", + "action_redeem": "Canjear código", + "action_create_gift": "Crear regalo", + "tab_received": "Recibidos ({count})", + "tab_created": "Creados ({count})", + "tab_create": "Crear", + "section_received": "Regalos recibidos", + "empty_received": "Aún no has recibido regalos", + "label_from": "De {name}", + "section_created": "Códigos de regalo creados", + "empty_created": "Aún no has creado regalos", + "action_copy_link_title": "Copiar enlace", + "action_cancel_title": "Cancelar", + "label_credits": "Créditos", + "label_redeemed": "Canjeado", + "label_redeemed_yes": "Sí", + "label_redeemed_no": "No", + "label_created": "Creado", + "label_valid_until": "Válido hasta", + "section_create": "Crear nuevo regalo", + "label_available_credits": "Créditos disponibles", + "label_credits_input": "Créditos", + "label_type": "Tipo", + "type_simple": "Simple (compartir código)", + "type_personalized": "Personalizado (para un email concreto)", + "label_target_email": "Email del destinatario", + "placeholder_target_email": "destinatario@example.com", + "hint_personalized": "Se canjea automáticamente cuando esta persona se registra.", + "label_message": "Mensaje (opcional)", + "placeholder_message": "p. ej. ¡Feliz cumpleaños!", + "action_creating": "Creando...", + "action_create": "✨ Crear código de regalo", + "created_title": "¡Regalo creado!", + "created_subtitle": "Comparte este enlace con el destinatario", + "action_copy_link": "Copiar enlace", + "action_copy_code": "Copiar código", + "action_create_another": "Crear otro regalo", + "info_title": "Cómo funciona", + "info_step1_title": "Elige créditos", + "info_step1_body": "Decide cuántos créditos quieres regalar.", + "info_step2_title": "Crear código", + "info_step2_body": "Se genera un código único de 6 caracteres.", + "info_step3_title": "Compartir enlace", + "info_step3_body": "Envía el enlace o código al destinatario.", + "info_step4_title": "Canjear", + "info_step4_body": "El destinatario recibe los créditos en su cuenta.", + "info_note_strong": "Nota:", + "info_note_body": "Los créditos se descuentan de tu cuenta al crear el código. Si nunca se canjea, puedes cancelarlo y recuperar los créditos.", + "err_min_credit": "Se requiere al menos 1 crédito", + "err_email_required": "El email es obligatorio para regalos personalizados", + "toast_created": "¡Código de regalo creado!", + "err_create": "Error al crear", + "confirm_cancel": "¿Cancelar realmente el código {code}? Los créditos no canjeados se reembolsarán.", + "toast_refunded": "{count} créditos reembolsados", + "err_cancel": "Error al cancelar", + "toast_clipboard": "Copiado al portapapeles", + "status_active": "Activo", + "status_depleted": "Canjeado", + "status_expired": "Caducado", + "status_cancelled": "Cancelado", + "status_refunded": "Reembolsado", + "type_simple_label": "Simple", + "type_personalized_label": "Personalizado" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/gifts/fr.json b/apps/mana/apps/web/src/lib/i18n/locales/gifts/fr.json new file mode 100644 index 000000000..41c60179b --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/gifts/fr.json @@ -0,0 +1,69 @@ +{ + "page": { + "title": "Cadeaux", + "subtitle": "Offre des crédits à tes amis", + "action_retry": "Réessayer", + "action_redeem": "Utiliser le code", + "action_create_gift": "Créer un cadeau", + "tab_received": "Reçus ({count})", + "tab_created": "Créés ({count})", + "tab_create": "Créer", + "section_received": "Cadeaux reçus", + "empty_received": "Tu n'as pas encore reçu de cadeaux", + "label_from": "De {name}", + "section_created": "Codes cadeaux créés", + "empty_created": "Tu n'as pas encore créé de cadeaux", + "action_copy_link_title": "Copier le lien", + "action_cancel_title": "Annuler", + "label_credits": "Crédits", + "label_redeemed": "Utilisé", + "label_redeemed_yes": "Oui", + "label_redeemed_no": "Non", + "label_created": "Créé", + "label_valid_until": "Valable jusqu'au", + "section_create": "Créer un nouveau cadeau", + "label_available_credits": "Crédits disponibles", + "label_credits_input": "Crédits", + "label_type": "Type", + "type_simple": "Simple (partager le code)", + "type_personalized": "Personnalisé (pour un email spécifique)", + "label_target_email": "Email du destinataire", + "placeholder_target_email": "destinataire@example.com", + "hint_personalized": "Utilisé automatiquement lorsque cette personne s'inscrit.", + "label_message": "Message (optionnel)", + "placeholder_message": "p. ex. Joyeux anniversaire !", + "action_creating": "Création...", + "action_create": "✨ Créer un code cadeau", + "created_title": "Cadeau créé !", + "created_subtitle": "Partage ce lien avec le destinataire", + "action_copy_link": "Copier le lien", + "action_copy_code": "Copier le code", + "action_create_another": "Créer un autre cadeau", + "info_title": "Comment ça marche", + "info_step1_title": "Choisis les crédits", + "info_step1_body": "Décide combien de crédits tu veux offrir.", + "info_step2_title": "Créer un code", + "info_step2_body": "Un code unique à 6 caractères est généré.", + "info_step3_title": "Partager le lien", + "info_step3_body": "Envoie le lien ou le code au destinataire.", + "info_step4_title": "Utiliser", + "info_step4_body": "Le destinataire reçoit les crédits sur son compte.", + "info_note_strong": "Note :", + "info_note_body": "Les crédits sont débités de ton compte à la création. Si le code n'est pas utilisé, tu peux l'annuler et récupérer les crédits.", + "err_min_credit": "Au moins 1 crédit requis", + "err_email_required": "L'email est obligatoire pour les cadeaux personnalisés", + "toast_created": "Code cadeau créé !", + "err_create": "Échec de la création", + "confirm_cancel": "Vraiment annuler le code {code} ? Les crédits non utilisés seront remboursés.", + "toast_refunded": "{count} crédits remboursés", + "err_cancel": "Échec de l'annulation", + "toast_clipboard": "Copié dans le presse-papiers", + "status_active": "Actif", + "status_depleted": "Utilisé", + "status_expired": "Expiré", + "status_cancelled": "Annulé", + "status_refunded": "Remboursé", + "type_simple_label": "Simple", + "type_personalized_label": "Personnalisé" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/gifts/it.json b/apps/mana/apps/web/src/lib/i18n/locales/gifts/it.json new file mode 100644 index 000000000..b56686e0e --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/gifts/it.json @@ -0,0 +1,69 @@ +{ + "page": { + "title": "Regali", + "subtitle": "Regala crediti agli amici", + "action_retry": "Riprova", + "action_redeem": "Riscatta codice", + "action_create_gift": "Crea regalo", + "tab_received": "Ricevuti ({count})", + "tab_created": "Creati ({count})", + "tab_create": "Crea", + "section_received": "Regali ricevuti", + "empty_received": "Non hai ancora ricevuto regali", + "label_from": "Da {name}", + "section_created": "Codici regalo creati", + "empty_created": "Non hai ancora creato regali", + "action_copy_link_title": "Copia link", + "action_cancel_title": "Annulla", + "label_credits": "Crediti", + "label_redeemed": "Riscattato", + "label_redeemed_yes": "Sì", + "label_redeemed_no": "No", + "label_created": "Creato", + "label_valid_until": "Valido fino a", + "section_create": "Crea nuovo regalo", + "label_available_credits": "Crediti disponibili", + "label_credits_input": "Crediti", + "label_type": "Tipo", + "type_simple": "Semplice (condividi codice)", + "type_personalized": "Personalizzato (per un'email specifica)", + "label_target_email": "Email del destinatario", + "placeholder_target_email": "destinatario@example.com", + "hint_personalized": "Riscattato automaticamente quando questa persona si registra.", + "label_message": "Messaggio (opzionale)", + "placeholder_message": "es. Buon compleanno!", + "action_creating": "Creazione...", + "action_create": "✨ Crea codice regalo", + "created_title": "Regalo creato!", + "created_subtitle": "Condividi questo link con il destinatario", + "action_copy_link": "Copia link", + "action_copy_code": "Copia codice", + "action_create_another": "Crea un altro regalo", + "info_title": "Come funziona", + "info_step1_title": "Scegli i crediti", + "info_step1_body": "Decidi quanti crediti vuoi regalare.", + "info_step2_title": "Crea il codice", + "info_step2_body": "Viene generato un codice unico di 6 caratteri.", + "info_step3_title": "Condividi il link", + "info_step3_body": "Invia il link o il codice al destinatario.", + "info_step4_title": "Riscatta", + "info_step4_body": "Il destinatario riceve i crediti sul proprio account.", + "info_note_strong": "Nota:", + "info_note_body": "I crediti vengono scalati dal tuo account alla creazione. Se il codice non viene riscattato, puoi annullarlo e riottenere i crediti.", + "err_min_credit": "Serve almeno 1 credito", + "err_email_required": "L'email è obbligatoria per i regali personalizzati", + "toast_created": "Codice regalo creato!", + "err_create": "Creazione fallita", + "confirm_cancel": "Annullare davvero il codice {code}? I crediti non riscattati verranno rimborsati.", + "toast_refunded": "{count} crediti rimborsati", + "err_cancel": "Annullamento fallito", + "toast_clipboard": "Copiato negli appunti", + "status_active": "Attivo", + "status_depleted": "Riscattato", + "status_expired": "Scaduto", + "status_cancelled": "Annullato", + "status_refunded": "Rimborsato", + "type_simple_label": "Semplice", + "type_personalized_label": "Personalizzato" + } +}