mirror of
https://github.com/R0m1k3/podcastic.git
synced 2026-10-24 15:38:03 +02:00
Traduit l'UI en français et corrige les bugs de recherche/abonnement
- Traduit toutes les pages et composants en français (Dashboard, Login, Discover, Navigation, Header, EpisodeCard, AudioPlayer) - Corrige l'erreur 500 sur /api/podcasts/discover : z.coerce.number() au lieu de z.number() pour limit/offset (paramètres query string) - Corrige l'abonnement manuel via URL RSS : crée le podcast depuis le flux RSS au lieu de renvoyer 400 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
00d92fc668
commit
c7a5c171d1
8 files changed
+68
-51
No files matched your search
@@ -133,7 +133,7 @@ export default function AudioPlayer({ episode, onClose, userId }: AudioPlayerPro
|
||||
{/* Header */}
|
||||
<div className="sticky top-0 bg-white/80 backdrop-blur-xl border-b border-light-200">
|
||||
<div className="max-w-4xl mx-auto px-4 py-4 flex items-center justify-between">
|
||||
<h2 className="text-xl font-bold text-light-900">Now Playing</h2>
|
||||
<h2 className="text-xl font-bold text-light-900">En cours de lecture</h2>
|
||||
<button
|
||||
onClick={onClose}
|
||||
className="p-2 hover:bg-light-100 rounded-lg transition-colors"
|
||||
@@ -163,7 +163,7 @@ export default function AudioPlayer({ episode, onClose, userId }: AudioPlayerPro
|
||||
{/* Info */}
|
||||
<div className="text-center mb-8">
|
||||
<p className="text-sm font-semibold text-light-500 uppercase mb-2">
|
||||
{podcast?.author || 'Unknown Podcast'}
|
||||
{podcast?.author || 'Podcast inconnu'}
|
||||
</p>
|
||||
<h1 className="text-4xl font-bold text-light-900 mb-3">{episode.title}</h1>
|
||||
<p className="text-light-600 line-clamp-3">{episode.description}</p>
|
||||
@@ -195,7 +195,7 @@ export default function AudioPlayer({ episode, onClose, userId }: AudioPlayerPro
|
||||
}
|
||||
}}
|
||||
className="p-3 hover:bg-light-100 rounded-full transition-colors"
|
||||
title="Rewind 15s"
|
||||
title="Reculer de 15s"
|
||||
>
|
||||
<SkipBack className="w-6 h-6" />
|
||||
</button>
|
||||
@@ -220,7 +220,7 @@ export default function AudioPlayer({ episode, onClose, userId }: AudioPlayerPro
|
||||
}
|
||||
}}
|
||||
className="p-3 hover:bg-light-100 rounded-full transition-colors"
|
||||
title="Skip 30s"
|
||||
title="Avancer de 30s"
|
||||
>
|
||||
<SkipForward className="w-6 h-6" />
|
||||
</button>
|
||||
@@ -230,7 +230,7 @@ export default function AudioPlayer({ episode, onClose, userId }: AudioPlayerPro
|
||||
<div className="grid grid-cols-2 gap-6">
|
||||
{/* Playback Speed */}
|
||||
<div className="card">
|
||||
<h3 className="text-sm font-semibold text-light-900 mb-3">Speed</h3>
|
||||
<h3 className="text-sm font-semibold text-light-900 mb-3">Vitesse</h3>
|
||||
<div className="flex gap-2">
|
||||
{[0.75, 1, 1.25, 1.5, 1.75, 2].map((speed) => (
|
||||
<button
|
||||
|
||||
@@ -8,7 +8,7 @@ interface EpisodeCardProps {
|
||||
|
||||
export default function EpisodeCard({ episode, onPlay }: EpisodeCardProps) {
|
||||
const podcast = typeof episode.podcastId === 'object' ? episode.podcastId : null;
|
||||
const pubDate = new Date(episode.pubDate).toLocaleDateString('en-US', {
|
||||
const pubDate = new Date(episode.pubDate).toLocaleDateString('fr-FR', {
|
||||
month: 'short',
|
||||
day: 'numeric',
|
||||
});
|
||||
@@ -45,7 +45,7 @@ export default function EpisodeCard({ episode, onPlay }: EpisodeCardProps) {
|
||||
|
||||
{/* Podcast Title */}
|
||||
<p className="text-xs font-semibold text-light-500 uppercase tracking-wider mb-1">
|
||||
{podcast?.author || 'Unknown'}
|
||||
{podcast?.author || 'Inconnu'}
|
||||
</p>
|
||||
|
||||
{/* Episode Title */}
|
||||
|
||||
@@ -47,7 +47,7 @@ export default function Header({ title, subtitle, user, onLogout }: HeaderProps)
|
||||
onClick={onLogout}
|
||||
className="px-4 py-2 text-sm text-light-600 hover:text-light-900 transition-colors"
|
||||
>
|
||||
Logout
|
||||
Déconnexion
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -28,7 +28,7 @@ export default function Navigation() {
|
||||
}`}
|
||||
>
|
||||
<Home className="w-5 h-5" />
|
||||
<span className="font-medium">Dashboard</span>
|
||||
<span className="font-medium">Tableau de bord</span>
|
||||
</Link>
|
||||
|
||||
<Link
|
||||
@@ -40,7 +40,7 @@ export default function Navigation() {
|
||||
}`}
|
||||
>
|
||||
<Compass className="w-5 h-5" />
|
||||
<span className="font-medium">Discover</span>
|
||||
<span className="font-medium">Découvrir</span>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in new issue
Block a user