feat(i18n): French and German localization (phase 5)
- Add full message catalogs and content for French (fr) and German (de) - Implement ASCII canonical slugs for French and German routes - Add language-specific search endpoints (/api/busca/fr, /api/busca/de) - Configure strict 404 responses for /fr/livro and /de/livro - Localize SEO, OpenGraph (fr_FR, de_DE), Twitter and JSON-LD schemas - Add localized code example comments across 14 examples for fr and de - Enable 'fr' and 'de' in ENABLED_LOCALES with root negotiation and redirect - Extend test suite in check-i18n, smoke-imagem and verifica-vazamentos Co-Authored-By: Antigravity <noreply@google.com>
This commit is contained in:
1 parent
7b673aeb4b
commit
7fce46b9e1
104 files changed
+33369
-686
No files matched your search
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"Common": {
|
||||
"siteName": "ESPDocs",
|
||||
"author": "Lucas Rayan Guerra",
|
||||
"organization": "Ciência Embarcada",
|
||||
"skipToContent": "Passer au contenu",
|
||||
"allRightsReserved": "Contenu sous licence MIT. Conçu pour la communauté des systèmes embarqués.",
|
||||
"backToHome": "Retour à l'accueil",
|
||||
"explore": "Explorer",
|
||||
"tools": "Outils",
|
||||
"project": "Projet",
|
||||
"loading": "Chargement...",
|
||||
"search": "Rechercher...",
|
||||
"officialDocumentation": "Documentation officielle",
|
||||
"community": "Communauté",
|
||||
"mitLicense": "Licence MIT"
|
||||
},
|
||||
"Header": {
|
||||
"brand": "ESPDocs",
|
||||
"homeAria": "ESPDocs, page d'accueil",
|
||||
"navAria": "Navigation principale",
|
||||
"mobileNavAria": "Navigation mobile",
|
||||
"openMenu": "Ouvrir le menu de navigation",
|
||||
"closeMenu": "Fermer le menu",
|
||||
"navigationTitle": "Navigation",
|
||||
"whereToGo": "Où aller",
|
||||
"selectChip": "Sélectionner la puce",
|
||||
"selectMyChip": "Choisir ma puce",
|
||||
"hardware": "Matériel",
|
||||
"hardwareDesc": "12 puces, brochages et spécifications",
|
||||
"series": "Séries ESP32",
|
||||
"seriesDesc": "12 puces, brochages et spécifications",
|
||||
"comparator": "Comparateur",
|
||||
"comparatorDesc": "Jusqu'à quatre séries côte à côte",
|
||||
"catalog": "Catalogue de cartes",
|
||||
"catalogDesc": "DevKits, brochages et points de vente",
|
||||
"tools": "Outils",
|
||||
"selector": "Sélecteur intelligent",
|
||||
"selectorDesc": "La bonne puce pour votre projet",
|
||||
"diagnostics": "Diagnostic",
|
||||
"diagnosticsDesc": "Brownout, bootloops, WDT et plus",
|
||||
"components": "ESP Component Registry",
|
||||
"componentsDesc": "Pilotes et manifestes idf_component.yml",
|
||||
"library": "Bibliothèque",
|
||||
"frameworks": "Frameworks et SDKs",
|
||||
"frameworksDesc": "ESP-IDF, Arduino, Rust et Matter",
|
||||
"glossary": "Glossaire technique",
|
||||
"glossaryDesc": "Termes figurant dans les fiches techniques",
|
||||
"about": "À propos du projet",
|
||||
"aboutDesc": "Auteur, méthode et open source"
|
||||
},
|
||||
"Footer": {
|
||||
"ariaLabel": "Pied de page ESPDocs",
|
||||
"description": "Documentation indépendante de l'écosystème ESP32. Données ouvertes, curation éditoriale et liens vers les sources officielles.",
|
||||
"exploreTitle": "Explorer",
|
||||
"toolsTitle": "Outils",
|
||||
"projectTitle": "Projet",
|
||||
"authorTitle": "Auteur",
|
||||
"reportIssue": "Signaler un problème",
|
||||
"repository": "Dépôt",
|
||||
"personalSite": "Site personnel",
|
||||
"linkedin": "LinkedIn"
|
||||
},
|
||||
"Home": {
|
||||
"badge": "Documentation ouverte ESP32",
|
||||
"titleLine1": "L'ESP32,",
|
||||
"titleLine2": " sans artifice.",
|
||||
"lede": "Spécifications, brochages, comparatifs et diagnostics en une seule lecture. Moins d'allers-retours dans les fiches techniques, plus de temps à l'établi.",
|
||||
"chooseMyChip": "Choisir ma puce",
|
||||
"exploreSeries": "Explorer les {count} séries",
|
||||
"seriesCount": "{count} séries de puces",
|
||||
"frameworkCount": "{count} frameworks",
|
||||
"portugueseFlag": "100 % en français",
|
||||
"featuredSeries": "Séries en vedette",
|
||||
"featuredDesc": "L'essentiel de chaque famille avant d'ouvrir la fiche technique.",
|
||||
"fullIndex": "Index complet",
|
||||
"toolsTitle": "Commencez par le problème.",
|
||||
"toolsEyebrow": "Outils",
|
||||
"toolsDesc": "Des outils pour sélectionner la bonne puce, diagnostiquer les erreurs matérielles et accélérer le développement."
|
||||
},
|
||||
"NotFound": {
|
||||
"eyebrow": "Erreur 404",
|
||||
"title": "Cette page n'existe pas.",
|
||||
"lede": "L'URL a peut-être changé ou a été mal saisie. Choisissez l'un de ces chemins pour continuer.",
|
||||
"backToHome": "Retour à l'accueil",
|
||||
"seriesTitle": "Séries ESP32",
|
||||
"seriesDesc": "12 familles, avec brochages et spécifications.",
|
||||
"selectorTitle": "Sélecteur de puces",
|
||||
"selectorDesc": "Répondez à huit questions et trouvez les modèles recommandés.",
|
||||
"comparatorTitle": "Comparateur",
|
||||
"comparatorDesc": "Jusqu'à quatre séries côte à côte.",
|
||||
"glossaryTitle": "Glossaire",
|
||||
"glossaryDesc": "Termes matériels expliqués clairement."
|
||||
},
|
||||
"Sobre": {
|
||||
"label": "Projet indépendant",
|
||||
"title": "À propos d'ESPDocs",
|
||||
"lede": "Une plateforme non officielle organisant les informations techniques sur l'ESP32 et reliant directement à la documentation officielle d'Espressif. Conçue pour la communauté du matériel open source.",
|
||||
"viewRepository": "Voir le dépôt",
|
||||
"features": {
|
||||
"portugueseTitle": "Contenu soigné",
|
||||
"portugueseDesc": "Des données techniques structurées et présentées clairement, sans le bruit des fiches techniques.",
|
||||
"visualCompareTitle": "Comparaisons visuelles",
|
||||
"visualCompareDesc": "Tableaux et diagrammes pour sélectionner la bonne série sans ouvrir dix fiches techniques.",
|
||||
"centralizedAccessTitle": "Accès centralisé",
|
||||
"centralizedAccessDesc": "Liens directs vers la documentation officielle, les dépôts et les exemples.",
|
||||
"openSourceTitle": "Open source",
|
||||
"openSourceDesc": "Les contributions sont les bienvenues sur Gitea."
|
||||
}
|
||||
},
|
||||
"Series": {
|
||||
"title": "Séries ESP32",
|
||||
"description": "12 séries ESP32 côte à côte : ESP32, S2, S3, S31, C2, C3, C5, C6, C61, P4, H2 et H4. Architecture, mémoire, radio, périphériques et brochages de chacune.",
|
||||
"pinout": "Brochage",
|
||||
"specifications": "Spécifications",
|
||||
"peripherals": "Périphériques",
|
||||
"architecture": "Architecture",
|
||||
"memory": "Mémoire",
|
||||
"radio": "Radio",
|
||||
"security": "Sécurité matérielle"
|
||||
},
|
||||
"Catalogo": {
|
||||
"title": "Catalogue de cartes de développement",
|
||||
"description": "DevKits officiels et tiers avec brochages, interfaces et liens d'achat.",
|
||||
"filterBySeries": "Filtrer par série",
|
||||
"searchBoards": "Rechercher des cartes..."
|
||||
},
|
||||
"Comparacao": {
|
||||
"title": "Comparateur de séries ESP32",
|
||||
"description": "Comparez jusqu'à 4 séries côte à côte avec les spécifications complètes de traitement, radio, mémoire et brochages."
|
||||
},
|
||||
"Componentes": {
|
||||
"title": "ESP Component Registry",
|
||||
"description": "Pilotes, bibliothèques et manifestes idf_component.yml prêts à l'emploi pour ESP-IDF."
|
||||
},
|
||||
"Diagnostico": {
|
||||
"title": "Diagnostic et dépannage",
|
||||
"description": "Brownout, bootloops, paniques de CPU, FreeRTOS et bonnes pratiques matérielles."
|
||||
},
|
||||
"Frameworks": {
|
||||
"title": "Frameworks et SDKs",
|
||||
"description": "Guides et aperçus des principaux environnements de développement : ESP-IDF, Arduino, MicroPython, Rust et ESP-Matter."
|
||||
},
|
||||
"Glossario": {
|
||||
"title": "Glossaire technique",
|
||||
"description": "Explications pratiques des concepts matériels, périphériques, radio et architecture présents dans les fiches techniques."
|
||||
},
|
||||
"Seletor": {
|
||||
"title": "Sélecteur intelligent d'ESP32",
|
||||
"description": "Répondez à des questions objectives sur votre projet et trouvez la série idéale selon des critères techniques."
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user