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
- Exposer
lang : Ajouter une option dans l'UI et dans les commandes Tauri pour transmettre un code langue jusqu'à SearchOptions::lang.
- 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.
- 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.
- 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.
Contexte
Dans le cadre de la PR #207 (ajout du crate
waveflow-syncedlyrics), la fonctionadd_translationsdanssrc-tauri/crates/syncedlyrics/src/providers/musixmatch.rsa été identifiée comme code mort : les deux call sites (external_lyrics_searchetSearchOptions::synced) passent toujourslang: 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
lang: Ajouter une option dans l'UI et dans les commandes Tauri pour transmettre un code langue jusqu'àSearchOptions::lang.line == subtitle_matched_linene fonctionnerait pas car les lignes LRC portent un préfixe[mm:ss.xx]. La logique de merge dansadd_translationsdevra extraire/ignorer ce préfixe avant de faire correspondre les lignes.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.Demandeur
@InstaZDLL — soulevé lors de la revue de la PR #207.