forked from ORGANISATION-KA-INTERNATIONALE/FEDIVERSE-OKI
Réécriture SvelteKit statique (Svelte 5 runes + TS, adapter-static)
- Données PeerTube (GADE), Castopod (KUTE) et Mastodon (BOKANTE) bakées au build via +page.server.ts (throttle + retry 429 + déduplication) - Charte OKI complète : tokens, thème sombre par défaut (clair opt-in, anti-FOUC), Archivo/Inter self-hébergées, flag-bar, sprite SVG (zéro emoji en interface, zéro Font Awesome/CDN) - i18n FR/EN par routage [[locale]], bundles JSON, hreflang, %lang% serveur - Pages : accueil, /video/[uuid] (embed, téléchargements, partage, commentaires, JSON-LD VideoObject), /categories/[id], /recherche (index JSON baké, recherche client), /direct (live + annonce multi-fuseaux), /dons, /mentions-legales, /offline + 404 kréyòl - Motion gwoka : KineticText (scrub view()), ScrollProgressBar, FlagChip, reveal syncopé, View Transitions, gate prefers-reduced-motion unique - PWA : manifest + Workbox generateSW (fallback /offline/), registerSW statique - Sécurité : CSP par page en <meta> (SHA-256 des inline via scripts/postbuild-csp.mjs) + headers globaux (_headers Cloudflare et .htaccess o2switch), redirections des anciennes URLs PHP - Doc : docs/DEPLOIEMENT-SVELTEKIT.md
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"meta": {
|
||||
"homeTitle": "ANNU KUTE CED — Hub multimédia du podcast",
|
||||
"homeDescription": "Vidéos, épisodes audio et actualités du podcast ANNU KUTE CED : la chaîne PeerTube, le podcast Castopod et la timeline Mastodon réunis en un seul lieu, sans dépendre des grandes plateformes.",
|
||||
"videoDescription": "Regarder « {title} » sur le hub multimédia ANNU KUTE CED.",
|
||||
"categoryTitle": "Catégorie {name}",
|
||||
"categoryDescription": "Vidéos de la catégorie {name} sur le hub ANNU KUTE CED.",
|
||||
"searchTitle": "Recherche",
|
||||
"searchDescription": "Rechercher des vidéos dans le hub multimédia ANNU KUTE CED.",
|
||||
"directTitle": "Direct",
|
||||
"directDescription": "Le direct d'ANNU KUTE CED en cours et l'annonce du prochain live.",
|
||||
"donsTitle": "Soutenir",
|
||||
"donsDescription": "Soutenir le podcast ANNU KUTE CED : dons ponctuels ou mensuels.",
|
||||
"legalTitle": "Mentions légales",
|
||||
"legalDescription": "Mentions légales du hub multimédia ANNU KUTE CED.",
|
||||
"offlineTitle": "Hors ligne",
|
||||
"notFoundTitle": "Page introuvable"
|
||||
},
|
||||
"nav": {
|
||||
"home": "Accueil",
|
||||
"direct": "Direct",
|
||||
"donate": "Soutenir",
|
||||
"categories": "Catégories",
|
||||
"hashtags": "Hashtags",
|
||||
"searchPlaceholder": "Rechercher…",
|
||||
"searchLabel": "Recherche de vidéos",
|
||||
"searchButton": "Lancer la recherche",
|
||||
"searchHelp": "Tapez vos mots-clés pour rechercher des vidéos. Préfixez par # pour chercher un hashtag.",
|
||||
"socialLabel": "Réseaux sociaux",
|
||||
"mainLabel": "Navigation principale",
|
||||
"openMenu": "Ouvrir le menu de navigation",
|
||||
"closeMenu": "Fermer le menu",
|
||||
"themeToggle": "Basculer entre mode sombre et clair",
|
||||
"installApp": "Installer l'application",
|
||||
"langSwitch": "English version",
|
||||
"backHome": "Retour à l'accueil",
|
||||
"moreSocial": "Voir plus de réseaux sociaux",
|
||||
"skipToContent": "Aller au contenu"
|
||||
},
|
||||
"home": {
|
||||
"shorts": "Shorts",
|
||||
"recent": "Vidéos récentes",
|
||||
"trending": "Tendances",
|
||||
"podcast": "Derniers épisodes",
|
||||
"podcastSubtitle": "Le podcast audio sur KUTE — Castopod",
|
||||
"timeline": "Actualités",
|
||||
"timelineSubtitle": "La timeline Mastodon sur BOKANTE",
|
||||
"seeMore": "Voir plus",
|
||||
"seeAllVideos": "Toutes les vidéos sur GADE",
|
||||
"seeAllEpisodes": "Tous les épisodes sur KUTE",
|
||||
"seeMorePosts": "Voir plus de posts",
|
||||
"popularTags": "Hashtags populaires",
|
||||
"about": "À propos",
|
||||
"liveNow": "EN DIRECT",
|
||||
"watchLive": "Regarder le direct"
|
||||
},
|
||||
"video": {
|
||||
"views": "{count} vues",
|
||||
"publishedOn": "Publié le {date}",
|
||||
"download": "Télécharger",
|
||||
"share": "Partager",
|
||||
"copyLink": "Copier le lien",
|
||||
"copied": "Lien copié",
|
||||
"embedCode": "Code d'intégration",
|
||||
"comments": "Commentaires",
|
||||
"noComments": "Aucun commentaire pour le moment.",
|
||||
"suggested": "Vidéos suggérées",
|
||||
"license": "Licence",
|
||||
"category": "Catégorie",
|
||||
"tags": "Hashtags",
|
||||
"watchOnPeertube": "Regarder sur GADE — PeerTube",
|
||||
"duration": "Durée",
|
||||
"by": "par {channel}"
|
||||
},
|
||||
"category": {
|
||||
"videosIn": "Vidéos de la catégorie",
|
||||
"empty": "Aucune vidéo dans cette catégorie pour le moment."
|
||||
},
|
||||
"search": {
|
||||
"title": "Recherche",
|
||||
"resultsFor": "Résultats pour « {query} »",
|
||||
"tagResults": "Vidéos avec le hashtag #{tag}",
|
||||
"noResults": "Aucun résultat pour « {query} ».",
|
||||
"hint": "Recherchez par mots-clés ou par hashtag avec le préfixe #.",
|
||||
"loading": "Chargement de l'index de recherche…",
|
||||
"resultCount": "{count} résultat(s)"
|
||||
},
|
||||
"direct": {
|
||||
"title": "Direct",
|
||||
"liveNow": "Le direct est en cours",
|
||||
"noLive": "Aucun direct en cours",
|
||||
"noLiveText": "Le prochain live n'est pas encore annoncé. Suivez-nous sur Mastodon pour être prévenu.",
|
||||
"nextLive": "Prochain live",
|
||||
"followForNews": "Suivre sur Mastodon",
|
||||
"inTimezones": "L'horaire dans votre territoire"
|
||||
},
|
||||
"podcast": {
|
||||
"listen": "Écouter",
|
||||
"play": "Lire l'épisode {title}",
|
||||
"pause": "Mettre en pause",
|
||||
"next": "Épisode suivant",
|
||||
"nowPlaying": "En cours de lecture",
|
||||
"episodeFrom": "Épisode du {date}",
|
||||
"mute": "Couper le son",
|
||||
"unmute": "Rétablir le son"
|
||||
},
|
||||
"timeline": {
|
||||
"reload": "Rafraîchir",
|
||||
"postFrom": "Post du {date}",
|
||||
"mediaAlt": "Média du post"
|
||||
},
|
||||
"donate": {
|
||||
"title": "Soutenir ANNU KUTE CED",
|
||||
"intro": "Le budget ne doit jamais être un frein — mais vos dons nous aident à maintenir le podcast, l'hébergement et les outils libres.",
|
||||
"oneTime": "Don ponctuel",
|
||||
"monthly": "Don mensuel",
|
||||
"liberapay": "Soutenir via Liberapay",
|
||||
"kofi": "Soutenir via Ko-fi",
|
||||
"custom": "Montant libre",
|
||||
"whyTitle": "Pourquoi donner",
|
||||
"whyText": "Vos dons financent l'hébergement éthique, le temps de production et les outils libres de l'écosystème.",
|
||||
"contact": "Pour d'autres moyens de soutien, écrivez-nous :",
|
||||
"notConfigured": "La page de dons est en cours de configuration. Contactez-nous pour soutenir le podcast."
|
||||
},
|
||||
"legal": {
|
||||
"title": "Mentions légales",
|
||||
"editor": "Éditeur du site",
|
||||
"host": "Hébergement",
|
||||
"contact": "Contact",
|
||||
"license": "Licence",
|
||||
"sourceCode": "Code source",
|
||||
"data": "Données personnelles",
|
||||
"dataText": "Ce site ne dépose aucun cookie de suivi et ne collecte aucune donnée personnelle. Les contenus multimédias sont servis par les instances de l'écosystème (GADE, KUTE, BOKANTE).",
|
||||
"serviceDescription": "est le hub multimédia du podcast ANNU KUTE CED."
|
||||
},
|
||||
"footer": {
|
||||
"contact": "CONTACT",
|
||||
"categories": "Catégories",
|
||||
"hashtags": "Hashtags",
|
||||
"legal": "Informations légales",
|
||||
"legalNotice": "Mentions légales",
|
||||
"sourceCode": "Code source",
|
||||
"copyright": "Licence libre GNU AGPL-V3",
|
||||
"federated": "Un service libre opéré par ORGANISATION KA INTERNATIONALE",
|
||||
"instances": "L'écosystème"
|
||||
},
|
||||
"offline": {
|
||||
"title": "Pa gen koneksyon",
|
||||
"text": "Vous êtes hors ligne. Les pages déjà visitées restent disponibles.",
|
||||
"cta": "Retour à l'accueil"
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Paj la pa la",
|
||||
"text": "Cette page n'existe pas ou a été déplacée.",
|
||||
"cta": "Retour à l'accueil"
|
||||
},
|
||||
"a11y": {
|
||||
"videoThumbnail": "Vignette de la vidéo {title}",
|
||||
"channelAvatar": "Avatar de la chaîne {channel}",
|
||||
"logo": "Logo ANNU KUTE CED",
|
||||
"episodeCover": "Pochette de l'épisode {title}",
|
||||
"progressLabel": "Progression de lecture de la page"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user