Skip to content

feat(lyrics): exposer les options de langue pour les paroles traduites (Musixmatch) #208

@coderabbitai

Description

@coderabbitai

Contexte

Dans le cadre de la PR #207 (ajout du crate waveflow-syncedlyrics), la fonction add_translations dans src-tauri/crates/syncedlyrics/src/providers/musixmatch.rs a été identifiée comme code mort : les deux call sites (external_lyrics_search et SearchOptions::synced) passent toujours lang: None, ce qui signifie que la branche de traduction n'est jamais atteinte.

Commentaire d'origine : #207 (comment)

Objectif

Permettre à l'utilisateur de choisir une langue cible pour les paroles synchronisées, afin d'obtenir des paroles traduites via l'API Musixmatch (crowd.track.translations.get).

Points à traiter lors de l'implémentation

  1. Exposer lang : Ajouter une option dans l'UI et dans les commandes Tauri pour transmettre un code langue jusqu'à SearchOptions::lang.
  2. Fusion LRC correcte : La comparaison naïve line == subtitle_matched_line ne fonctionnerait pas car les lignes LRC portent un préfixe [mm:ss.xx]. La logique de merge dans add_translations devra extraire/ignorer ce préfixe avant de faire correspondre les lignes.
  3. Erreur non fatale : L'appel add_translations(...).await? doit devenir non bloquant — si la traduction échoue (erreur réseau, API indisponible), les paroles de base doivent être retournées et l'erreur loggée en warning.
  4. Throttling : Prévoir un throttle similaire aux autres appels réseau dans le waterfall du préchargement bibliothèque.

Demandeur

@InstaZDLL — soulevé lors de la revue de la PR #207.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions