tractatus/public/locales/fr/media-inquiry.json
TheFlow b21cda335d feat(i18n): add multilingual support to case-submission and media-inquiry pages
Adds German and French translations for form submission pages with
dynamic message handling and language selector integration.

**Pages Updated:**
- case-submission.html: Added data-i18n attributes and language selector
- media-inquiry.html: Added data-i18n attributes and language selector

**Translation Files Created:**
- EN/DE/FR for case-submission (form labels, help text, dynamic messages)
- EN/DE/FR for media-inquiry (form labels, help text, dynamic messages)

**JavaScript Updates:**
- case-submission.js: Added i18n translation helper for dynamic content
- media-inquiry.js: Added i18n translation helper for dynamic content
- Submit buttons and error messages now translate based on selected language

**Features:**
- Language flags visible in navbar for easy switching
- Form labels and help text translate on language change
- Submit button text updates during submission ("Submitting..." → "Einreichen..." in DE)
- Success/error messages display in user's selected language
- All translations via DeepL API for professional quality

**Technical Details:**
- Uses cache-busting timestamps for translation fetches (prevents stale cache)
- Submit buttons use <span data-i18n> for translatable content
- Form JavaScript uses window.i18nTranslations for dynamic text

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 16:41:54 +13:00

29 lines
No EOL
1.7 KiB
JSON

{
"page": {
"title": "Interrogation des médias | Tractatus AI Safety",
"heading": "Enquête auprès des médias",
"description": "Demandes de renseignements de la part de la presse et des médias sur le cadre Tractatus. Nous examinons toutes les demandes et y répondons rapidement."
},
"form": {
"contact_info_heading": "Informations sur le contact",
"contact_name_label": "Votre nom",
"contact_email_label": "Adresse électronique",
"contact_outlet_label": "Point de vente des médias/organisation",
"contact_outlet_help": "Publication, site web, podcast ou organisation que vous représentez",
"contact_phone_label": "Numéro de téléphone (facultatif)",
"inquiry_details_heading": "Détails de la demande",
"inquiry_subject_label": "Sujet",
"inquiry_message_label": "Message",
"inquiry_deadline_label": "Date limite (le cas échéant)",
"inquiry_deadline_help": "Quelle est la date limite de réponse ?",
"submit_button": "Soumettre une demande",
"submit_help": "Nous examinons toutes les demandes des médias et y répondons généralement dans les 24 à 48 heures."
},
"privacy_note": "Vos coordonnées sont traitées conformément à nos <a href=\"/about/values.html\" class=\"hover:underline transition-colors text-tractatus-link\">principes de confidentialité</a>. Nous ne transmettons jamais les demandes des médias à des tiers.",
"messages": {
"submitting": "Soumettre...",
"success": "Nous vous remercions de votre demande. Nous l'examinerons et vous répondrons dans les plus brefs délais.",
"error": "Une erreur s'est produite. Veuillez réessayer.",
"network_error": "Erreur de réseau. Veuillez vérifier votre connexion et réessayer."
}
}