Changeset 3709329
- Timestamp:
- 09/23/2026 12:28:41 PM (5 weeks ago)
- Location:
- wedispatch-audio-text-to-speech/trunk
- Files:
-
- 1 added
- 12 edited
-
admin/aide.php (modified) (1 diff)
-
admin/connexion.php (modified) (1 diff)
-
admin/contenus.php (modified) (1 diff)
-
admin/premiers-pas.php (added)
-
admin/vue-ensemble.php (modified) (10 diffs)
-
blocks/player/block.json (modified) (1 diff)
-
languages/wedispatch-audio-text-to-speech-fr_FR-74879c86dde9a42f9fc0130289f8d81b.json (modified) (1 diff)
-
languages/wedispatch-audio-text-to-speech-fr_FR.l10n.php (modified) (1 diff)
-
languages/wedispatch-audio-text-to-speech-fr_FR.mo (modified) ( previous)
-
languages/wedispatch-audio-text-to-speech-fr_FR.po (modified) (39 diffs)
-
languages/wedispatch-audio-text-to-speech.pot (modified) (41 diffs)
-
readme.txt (modified) (6 diffs)
-
wedispatch-audio-text-to-speech.php (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wedispatch-audio-text-to-speech/trunk/admin/aide.php
r3657775 r3709329 24 24 array(__('Service address', 'wedispatch-audio-text-to-speech'), wp_parse_url(WEDISPATCH_API, PHP_URL_HOST)), 25 25 array(__('Connection state', 'wedispatch-audio-text-to-speech'), $etat['titre']), 26 array(__('Reading mode', 'wedispatch-audio-text-to-speech'), get_option('wedispatch_mode', 'auto')),26 array(__('Reading mode', 'wedispatch-audio-text-to-speech'), wedispatch_mode_site()), 27 27 array(__('Content types', 'wedispatch-audio-text-to-speech'), implode(', ', wedispatch_post_types())), 28 28 array(__('Player position', 'wedispatch-audio-text-to-speech'), get_option('wedispatch_position', 'before')), -
wedispatch-audio-text-to-speech/trunk/admin/connexion.php
r3657775 r3709329 171 171 : array('type' => 'error', 'texte' => $r['error']), 60); 172 172 173 wp_safe_redirect(wedispatch_url_ecran('reglages')); 173 // APRÈS UNE CONNEXION RÉUSSIE, ON ARRIVE SUR LA VUE D'ENSEMBLE (1.30.0), là où se trouve « Écouter 174 // mon dernier article ». On arrivait sur les Réglages : le site était connecté, et l'écran 175 // montrait un formulaire de clé et des cases à cocher au lieu du geste qui fait entendre le 176 // produit. Deux sites connectés en production n'ont jamais produit un seul audio. 177 wp_safe_redirect(wedispatch_url_ecran($r['ok'] ? '' : 'reglages')); 174 178 exit; 175 179 }); -
wedispatch-audio-text-to-speech/trunk/admin/contenus.php
r3660519 r3709329 50 50 // suspension. C'est l'étiquette qui change, pas ce qu'on peut faire. 51 51 $suspendu = get_post_meta($post->ID, '_wedispatch_suspendu', true); 52 // Un refus faute de crédits se dit sur la ligne, avec le message du service (1.30.0). 53 $refus = get_post_meta($post->ID, '_wedispatch_refus', true); 54 if ($refus) { 55 return array( 56 'code' => 'aucun', 57 'label' => __('Not voiced: credits', 'wedispatch-audio-text-to-speech'), 58 'note' => (string) $refus, 59 ); 60 } 52 61 return array( 53 62 'code' => 'aucun', -
wedispatch-audio-text-to-speech/trunk/admin/vue-ensemble.php
r3660519 r3709329 223 223 224 224 /** 225 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 226 * PASSER EN AUTOMATIQUE, UNE FOIS LE PREMIER AUDIO ENTENDU (1.30.0, 23/09/2026) 227 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 228 * 229 * Le manuel est le défaut d'un site neuf depuis la 1.30.0 (voir `wedispatch_fixer_mode_par_defaut`). 230 * C'est prudent, et ce n'est pas la promesse du produit : « vos articles lus dès la publication ». 231 * La bascule est donc offerte ici, au bon moment : quand le site a déjà UN audio, que l'éditeur a 232 * pu écouter. Avant, elle serait une décision à l'aveugle ; après, elle tient en un clic. 233 */ 234 function wedispatch_carte_passage_auto() { 235 if (wedispatch_mode_site() !== 'manuel' || !wedispatch_a_un_audio()) return; 236 ?> 237 <div class="wedispatch-carte"> 238 <h2><?php esc_html_e('Let every new post get its audio', 'wedispatch-audio-text-to-speech'); ?></h2> 239 <p><?php esc_html_e('This site is in manual mode: nothing is read aloud unless someone asks. In automatic mode, every post you publish gets its audio a few seconds later, and each one uses credits according to its length. You can come back to manual at any time in Settings.', 'wedispatch-audio-text-to-speech'); ?></p> 240 <form method="post" action="<?php echo esc_url(wedispatch_url_ecran()); ?>" class="wedispatch-actions"> 241 <?php wp_nonce_field('wedispatch_passage_auto'); ?> 242 <input type="hidden" name="wd_passage_auto" value="1" /> 243 <button type="submit" class="button button-primary"><?php esc_html_e('Switch to automatic', 'wedispatch-audio-text-to-speech'); ?></button> 244 </form> 245 </div> 246 <?php 247 } 248 249 /** Traite « Passer en automatique ». Rend array('type','texte') ou null. */ 250 function wedispatch_traiter_passage_auto() { 251 if (empty($_POST['wd_passage_auto'])) return null; 252 if (!current_user_can('manage_options')) return null; 253 check_admin_referer('wedispatch_passage_auto'); 254 update_option('wedispatch_mode', 'auto'); 255 return array('type' => 'success', 'texte' => __('Automatic mode is on: the next post you publish gets its audio on its own.', 'wedispatch-audio-text-to-speech')); 256 } 257 258 /** 259 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 260 * L'ESSAI : UN SEUL CONTENU, CELUI QUI TIENT (1.30.0, 23/09/2026) 261 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 262 * 263 * La carte générale proposait « Sonoriser les 5 prochains contenus » à un essai de cinq crédits, 264 * et les mettait en file : le premier long article mangeait tout, les quatre suivants étaient 265 * refusés en tâche de fond, là où personne ne lit un refus. Mesuré en production : un article de 266 * presse moyen dépasse à lui seul l'essai entier. 267 * 268 * Ici, on cherche parmi les contenus récents sans audio LE PREMIER QUI TIENT dans ce qui reste, 269 * et on ne propose que lui. La taille d'un crédit vient du service (`credit_chars`), jamais d'ici : 270 * on compare, on ne divise pas. Si aucun ne tient, on le dit, et on donne les deux issues vraies. 271 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 272 */ 273 function wedispatch_carte_essai($u, $reste) { 274 $taille = isset($u['credit_chars']) ? (int) $u['credit_chars'] : 0; 275 $candidat = 0; 276 if ($taille > 0) { 277 foreach (wedispatch_sans_audio(20)['ids'] as $id) { 278 $p = get_post($id); 279 if ($p && mb_strlen(wedispatch_article_text($p)) <= $reste * $taille) { $candidat = $id; break; } 280 } 281 } 282 $premier = !wedispatch_a_un_audio(); 283 ?> 284 <div class="wedispatch-carte wedispatch-carte-suggestion"> 285 <h2><?php echo esc_html($premier 286 ? __('Hear your first audio', 'wedispatch-audio-text-to-speech') 287 : __('Use your trial', 'wedispatch-audio-text-to-speech')); ?></h2> 288 <p><?php 289 printf( 290 /* translators: 1: number of trial credits left, 2: number of characters one credit covers. */ 291 esc_html__('Your trial has %1$s left, and they do not expire. A credit covers %2$s characters, so a long post uses several.', 'wedispatch-audio-text-to-speech'), 292 '<strong>' . esc_html(sprintf( 293 /* translators: %s: number of credits left. */ 294 _n('%s credit', '%s credits', $reste, 'wedispatch-audio-text-to-speech'), 295 number_format_i18n($reste) 296 )) . '</strong>', 297 esc_html(number_format_i18n($taille)) 298 ); 299 ?></p> 300 <?php if ($candidat) : ?> 301 <form method="post" action="<?php echo esc_url(wedispatch_url_ecran()); ?>" class="wedispatch-actions"> 302 <?php wp_nonce_field('wedispatch_reste'); ?> 303 <input type="hidden" name="wd_reste" value="1" /> 304 <input type="hidden" name="wd_reste_id" value="<?php echo esc_attr($candidat); ?>" /> 305 <button type="submit" class="button button-primary button-hero"><?php 306 /* translators: %s: title of the post that will be read aloud. */ 307 echo esc_html(sprintf(__('Read “%s” aloud', 'wedispatch-audio-text-to-speech'), wp_trim_words(get_the_title($candidat), 10))); 308 ?></button> 309 </form> 310 <p class="description"><?php esc_html_e('Your most recent post that fits in what your trial has left. Nothing else is sent: this site stays in manual mode until you switch it to automatic in Settings.', 'wedispatch-audio-text-to-speech'); ?></p> 311 <?php else : ?> 312 <p><?php esc_html_e('Your recent posts are all longer than what your trial has left. Pick a shorter one in My content & audio, or choose a plan: the price follows the volume you publish.', 'wedispatch-audio-text-to-speech'); ?></p> 313 <p class="wedispatch-actions"> 314 <a class="button button-primary" href="<?php echo esc_url(WEDISPATCH_API . '/dashboard/billing'); ?>" target="_blank" rel="noopener"><?php 315 esc_html_e('Choose a plan', 'wedispatch-audio-text-to-speech'); ?></a> 316 <a class="button" href="<?php echo esc_url(add_query_arg('wd_etat', 'aucun', wedispatch_url_ecran('contenus'))); ?>"><?php 317 esc_html_e('Choose a post myself', 'wedispatch-audio-text-to-speech'); ?></a> 318 </p> 319 <?php endif; ?> 320 </div> 321 <?php 322 } 323 324 /** 225 325 * Traite le bouton « sonoriser ce qui reste ». Rend array('type','texte') ou null. 226 326 * … … 233 333 if (!current_user_can('manage_options')) return null; 234 334 check_admin_referer('wedispatch_reste'); 335 336 // L'ESSAI PROPOSE UN SEUL CONTENU, DÉSIGNÉ (1.30.0) : celui qui tient dans ce qui reste. Il est 337 // revérifié ici, jamais cru sur parole : publié, lu à voix haute par ce site, sans audio, et 338 // modifiable par la personne qui clique. 339 $un_seul = isset($_POST['wd_reste_id']) ? (int) $_POST['wd_reste_id'] : 0; 340 if ($un_seul) { 341 $p = get_post($un_seul); 342 if (!$p || $p->post_status !== 'publish' || !wedispatch_handles_post_type($p->post_type) 343 || get_post_meta($un_seul, '_wedispatch_article_id', true) || !current_user_can('edit_post', $un_seul)) { 344 return array('type' => 'info', 'texte' => __('This item can no longer be voiced from here. Open My content & audio to pick another one.', 'wedispatch-audio-text-to-speech')); 345 } 346 wp_schedule_single_event(time() + 5, 'wedispatch_generate_lot_event', array(array($un_seul))); 347 return array('type' => 'success', 'texte' => __('Your first audio is on its way. It usually takes under a minute: open the post to hear it, the player appears on its own.', 'wedispatch-audio-text-to-speech')); 348 } 235 349 236 350 $demande = isset($_POST['wd_reste_n']) ? (int) $_POST['wd_reste_n'] : 0; … … 304 418 $combien = min($reste, count($liste['ids'])); 305 419 $titres = array_slice($liste['ids'], 0, $apercu); 420 421 if (!empty($u['trial'])) { wedispatch_carte_essai($u, $reste); return; } 306 422 ?> 307 423 <div class="wedispatch-carte wedispatch-carte-suggestion"> … … 325 441 ?> 326 442 <p><?php 443 // « Perdu à la fin du mois » n'est dit que si le service le dit (`resets_monthly`) : un 444 // essai ne se remet jamais à zéro, et le lui annoncer le poussait à dépenser en hâte. 327 445 printf( 328 /* translators: 1: number of credits left in the plan, 2: number of published items without audio. */ 329 esc_html__('You have %1$s left this month, and %2$s that have no audio yet. What is not used before the end of the month is lost.', 'wedispatch-audio-text-to-speech'), 446 empty($u['resets_monthly']) 447 /* translators: 1: number of credits left, 2: number of published items without audio. */ 448 ? esc_html__('You have %1$s left, and %2$s that have no audio yet.', 'wedispatch-audio-text-to-speech') 449 /* translators: 1: number of credits left in the plan, 2: number of published items without audio. */ 450 : esc_html__('You have %1$s left this month, and %2$s that have no audio yet. What is not used before the end of the month is lost.', 'wedispatch-audio-text-to-speech'), 330 451 '<strong>' . esc_html(sprintf( 331 452 /* translators: %s: number of credits left. */ … … 373 494 } 374 495 496 /** 497 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 498 * VINGT SECONDES DE SON PROPRE ARTICLE, AVANT D'AVOIR UN COMPTE (1.30.0, 23/09/2026) 499 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 500 * 501 * Arbitrage de Julien : « extrait sans compte ». Jusqu'ici, le module ne faisait rien tant que le 502 * site n'était pas connecté, et l'on demandait de créer un compte à quelqu'un qui n'avait jamais 503 * entendu la voix. Mesuré le même jour : 225 téléchargements, moins de dix installations actives. 504 * 505 * UN CLIC, UN ENVOI, LE TEXTE NON GARDÉ. Le seul appel que le module fasse avant connexion, et 506 * seulement quand un administrateur clique : le DÉBUT du contenu publié le plus récent (le service 507 * coupe de son côté à vingt secondes, quoi qu'on lui envoie), sa langue et l'adresse du site. Pas 508 * de clé. Le MP3 revient dans la réponse et s'affiche dans la même page, en `data:` : rien n'est 509 * stocké dans WordPress. Le service ne garde pas le texte ; il note la dépense et le nom du site. 510 * 511 * LA RÉPONSE EST BORNÉE (relecture du 23/09) : vingt secondes à 64 kbit/s font environ 160 Ko. 512 * Un mégaoctet au plus est lu, aucune redirection n'est suivie (la réponse ne peut venir que de 513 * `WEDISPATCH_API`), et un contenu protégé par mot de passe n'est jamais envoyé. 514 */ 515 function wedispatch_dernier_publie() { 516 $q = new WP_Query(array( 517 'post_type' => wedispatch_post_types(), 518 'post_status' => 'publish', 519 'posts_per_page' => 5, 520 'orderby' => 'date', 521 'order' => 'DESC', 522 'fields' => 'ids', 523 'no_found_rows' => true, 524 'ignore_sticky_posts' => true, 525 'has_password' => false, 526 )); 527 // Le plus récent qui a assez de texte pour s'entendre : une page de contact de trois mots ne 528 // dit rien de la voix. 529 foreach (($q->posts ? $q->posts : array()) as $id) { 530 $p = get_post($id); 531 if ($p && mb_strlen(wedispatch_article_text($p)) >= 100) return (int) $id; 532 } 533 return 0; 534 } 535 536 /** Traite « Écouter un extrait ». Rend array('type','texte'[,'audio','titre']) ou null. */ 537 function wedispatch_traiter_extrait() { 538 if (empty($_POST['wd_extrait'])) return null; 539 if (!current_user_can('manage_options')) return null; 540 check_admin_referer('wedispatch_extrait'); 541 542 $id = wedispatch_dernier_publie(); 543 if (!$id) { 544 return array('type' => 'info', 'texte' => __('There is no published post long enough to make a sample from yet.', 'wedispatch-audio-text-to-speech')); 545 } 546 $post = get_post($id); 547 $r = wp_remote_post(WEDISPATCH_API . '/api/v1/extrait', array( 548 'headers' => array('Content-Type' => 'application/json'), 549 'body' => wp_json_encode(array( 550 // Le début seulement : le service n'en lit que vingt secondes, le reste n'a pas à partir. 551 'texte' => mb_substr(wedispatch_article_text($post), 0, 800), 552 'langue' => wedispatch_post_language($id), 553 'site' => home_url('/'), 554 )), 555 'timeout' => 20, 556 'redirection' => 0, 557 'limit_response_size' => MB_IN_BYTES, 558 )); 559 $code = is_wp_error($r) ? 0 : (int) wp_remote_retrieve_response_code($r); 560 $type = is_wp_error($r) ? '' : wp_remote_retrieve_header($r, 'content-type'); 561 if (is_array($type)) $type = reset($type); 562 $son = is_wp_error($r) ? '' : (string) wp_remote_retrieve_body($r); 563 if ($code === 200 && strpos((string) $type, 'audio/mpeg') === 0 && $son !== '' && strlen($son) < MB_IN_BYTES) { 564 return array( 565 'type' => 'success', 566 'texte' => __('Here is how your post sounds. Connect the site to get the whole post, and the player on the page.', 'wedispatch-audio-text-to-speech'), 567 // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode -- encodage d'un MP3 pour un attribut `data:`, pas d'obfuscation. 568 'audio' => base64_encode($son), 569 'titre' => get_the_title($id), 570 ); 571 } 572 // Les messages du service sont en français : on dit la cause dans la langue de l'écran. 573 if ($code === 429) { 574 $texte = __('Several samples were played in the last hour. Try again later, or connect the site to voice every post.', 'wedispatch-audio-text-to-speech'); 575 } elseif ($code === 503) { 576 $texte = __('Samples are not available right now. Connecting the site still works, and trying it is free.', 'wedispatch-audio-text-to-speech'); 577 } else { 578 $texte = __('The sample could not be produced. Try again in a moment.', 'wedispatch-audio-text-to-speech'); 579 } 580 return array('type' => 'warning', 'texte' => $texte); 581 } 582 583 /** Le bouton de l'extrait, et le lecteur une fois l'extrait revenu. */ 584 function wedispatch_bloc_extrait($extrait) { 585 if (!empty($extrait['audio'])) : ?> 586 <p><strong><?php echo esc_html($extrait['titre']); ?></strong></p> 587 <?php // base64 : lettres, chiffres, « + », « / » et « = » seulement. esc_url écarterait le 588 // schéma `data:`, esc_attr suffit à un contenu qui ne peut pas contenir de guillemet. ?> 589 <audio controls autoplay preload="auto" src="<?php echo esc_attr('data:audio/mpeg;base64,' . $extrait['audio']); ?>"></audio> 590 <?php return; endif; 591 if (!wedispatch_dernier_publie()) return; 592 ?> 593 <form method="post" action="<?php echo esc_url(wedispatch_url_ecran()); ?>" class="wedispatch-actions"> 594 <?php wp_nonce_field('wedispatch_extrait'); ?> 595 <input type="hidden" name="wd_extrait" value="1" /> 596 <button type="submit" class="button"><?php esc_html_e('Hear a 20-second sample of my latest post', 'wedispatch-audio-text-to-speech'); ?></button> 597 </form> 598 <p class="description"><?php esc_html_e('No account needed. Only the opening of your most recent post is sent, when you click, and the text is not kept.', 'wedispatch-audio-text-to-speech'); ?></p> 599 <?php 600 } 601 375 602 function wedispatch_ecran_accueil() { 376 603 if (!current_user_can('manage_options')) return; 377 604 378 $message_reste = wedispatch_traiter_reste(); 605 $extrait = get_option('wedispatch_api_key', '') ? null : wedispatch_traiter_extrait(); 606 $message_reste = $extrait; 607 if (!$message_reste) $message_reste = wedispatch_traiter_reste(); 379 608 if (!$message_reste) $message_reste = wedispatch_traiter_signatures(); 609 if (!$message_reste) $message_reste = wedispatch_traiter_passage_auto(); 380 610 381 611 // Le bouton « Rafraîchir » vide la réserve. Jeton de formulaire parce que l'action déclenche un … … 426 656 427 657 wedispatch_entete_ecran(__('WeDispatch', 'wedispatch-audio-text-to-speech'), $etat); 658 // Le retour d'une connexion réussie arrive ici depuis la 1.30.0 : le message doit y être lu. 659 wedispatch_message_connexion(); 428 660 429 661 if ($message_reste) { … … 454 686 <div class="wedispatch-chiffre"> 455 687 <strong><?php echo esc_html( 456 get_option('wedispatch_mode', 'auto') === 'manuel'688 wedispatch_mode_site() === 'manuel' 457 689 ? __('Manual', 'wedispatch-audio-text-to-speech') 458 690 : __('Auto', 'wedispatch-audio-text-to-speech') … … 524 756 <?php wedispatch_carte_podcast($compte); ?> 525 757 <?php wedispatch_carte_reste($compte); ?> 758 <?php wedispatch_carte_passage_auto(); ?> 526 759 <?php wedispatch_carte_signatures(); ?> 527 760 <?php endif; ?> … … 534 767 <h2><?php esc_html_e('Next step', 'wedispatch-audio-text-to-speech'); ?></h2> 535 768 <?php if ($etat['etat'] === 'sans-cle') : ?> 536 <p><?php esc_html_e('C reate a WeDispatch account, generate an API key from your account area, and paste it into the settings. Nothing is sent anywhere until that key is in place.', 'wedispatch-audio-text-to-speech'); ?></p>769 <p><?php esc_html_e('Connect this site in one click: you sign in or create your WeDispatch account, and the site is authorised on the way. There is no key to copy, and trying it is free. Nothing is sent anywhere unless you click.', 'wedispatch-audio-text-to-speech'); ?></p> 537 770 <p class="wedispatch-actions"> 538 771 <?php // Le geste attendu, en premier : connecter. Le collage manuel reste offert à côté, … … 542 775 esc_html_e('Paste my API key', 'wedispatch-audio-text-to-speech'); ?></a> 543 776 </p> 777 <?php // Avant de demander un compte, faire entendre la voix sur SON texte. ?> 778 <?php wedispatch_bloc_extrait($extrait); ?> 544 779 <?php elseif ($etat['etat'] === 'refusee') : ?> 545 780 <p><?php esc_html_e('The key stored on this site is not accepted. The most common reason is a key created for a different WeDispatch environment: a key is only valid where it was created.', 'wedispatch-audio-text-to-speech'); ?></p> -
wedispatch-audio-text-to-speech/trunk/blocks/player/block.json
r3665684 r3709329 3 3 "apiVersion": 3, 4 4 "name": "wedispatch/player", 5 "version": "1. 29.0",5 "version": "1.30.0", 6 6 "title": "WeDispatch audio player", 7 7 "category": "embed", -
wedispatch-audio-text-to-speech/trunk/languages/wedispatch-audio-text-to-speech-fr_FR-74879c86dde9a42f9fc0130289f8d81b.json
r3665684 r3709329 1 {"translation-revision-date":"2026-0 8-25T13:58:47+00:00","generator":"WP-CLI\/2.12.0","source":"blocks\/player\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_FR","plural-forms":"nplurals=2; plural=(n > 1);"},"WeDispatch audio player":["Lecteur audio WeDispatch"],"The audio version of this article appears here once it has been generated.":["La version audio de cet article s'affiche ici une fois qu'elle a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9e."]}}}1 {"translation-revision-date":"2026-09-23T09:39:18+00:00","generator":"WP-CLI\/2.12.0","source":"blocks\/player\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_FR","plural-forms":"nplurals=2; plural=(n > 1);"},"WeDispatch audio player":["Lecteur audio WeDispatch"],"The audio version of this article appears here once it has been generated.":["La version audio de cet article s'affiche ici une fois qu'elle a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9e."]}}} -
wedispatch-audio-text-to-speech/trunk/languages/wedispatch-audio-text-to-speech-fr_FR.l10n.php
r3665684 r3709329 1 1 <?php 2 return ['domain'=>NULL,'plural-forms'=>'nplurals=2; plural=(n > 1);','language'=>'fr_FR','project-id-version'=>'WeDispatch – Text to Speech & Audio Articles','pot-creation-date'=>'2026-0 8-25T13:58:47+00:00','po-revision-date'=>'2026-08-25T13:58:47+00:00','x-generator'=>'wedispatch','messages'=>['Turns your posts, pages and custom post types into audio automatically when they are published, and shows an accessible player in the article. Requires a WeDispatch account (external service).'=>'Transforme vos articles, pages et types de contenu personnalisés en audio dès leur publication, et affiche un lecteur accessible dans l\'article. Nécessite un compte WeDispatch (service externe).','Help & checks'=>'Aide et vérifications','Plugin version'=>'Version de l\'extension','WordPress version'=>'Version de WordPress','PHP version'=>'Version de PHP','Service address'=>'Adresse du service','Connection state'=>'État de la connexion','Reading mode'=>'Mode de lecture','Content types'=>'Types de contenu','Player position'=>'Position du lecteur','Who can listen'=>'Qui peut écouter','Hourly access refresh'=>'Rafraîchissement horaire des accès','not scheduled'=>'non planifié','Site language'=>'Langue du site','Page cache emptied after each audio'=>'Cache de page vidé après chaque audio','no known cache plugin detected'=>'aucune extension de cache connue détectée','Checks'=>'Vérifications','These two checks call the service from this server, exactly as the plugin does when publishing. They spend nothing from your plan.'=>'Ces deux vérifications appellent le service depuis ce serveur, exactement comme le fait l\'extension à la publication. Elles ne consomment rien de votre forfait.','Check the API key'=>'Vérifier la clé API','Check subscriber-only audio'=>'Vérifier l\'audio réservé aux abonnés','Diagnostics'=>'Diagnostic','Paste this into your support request: it answers most of the questions we would otherwise have to ask.'=>'À coller dans votre demande de support : cela répond à la plupart des questions que nous devrions poser sinon.','Diagnostics, as text'=>'Diagnostic, en texte','Going further'=>'Pour aller plus loin','Documentation'=>'Documentation','My account area'=>'Mon espace client','Contact support'=>'Contacter le support','The player is placed with the WeDispatch audio player block, the widget of the same name, or the [wedispatch] shortcode.'=>'Le lecteur se place avec le bloc « Lecteur audio WeDispatch », le widget du même nom, ou le code court [wedispatch].','Not allowed'=>'Non autorisé','My subscription'=>'Mon abonnement','The plan cannot be read until the site is connected.'=>'Le forfait ne peut pas être lu tant que le site n\'est pas connecté.','%s credit per month'=>'%s crédit par mois' . "\0" . '%s crédits par mois','Refresh'=>'Rafraîchir','This account cannot generate audio yet.'=>'Ce compte ne peut pas encore générer d\'audio.','Subscribe to a plan to switch generation on.'=>'Souscrivez un forfait pour activer la génération.','Longest item accepted'=>'Contenu le plus long accepté','%s characters'=>'%s caractères','Regenerations per item'=>'Régénérations par contenu','Languages'=>'Langues','Synchronised transcript'=>'Transcript synchronisé','off (can be switched on in your account area)'=>'désactivé (réglable dans l\'espace client)','on'=>'activé','Change my monthly volume'=>'Changer mon volume mensuel','Choose my monthly volume'=>'Choisir mon volume mensuel','Manage my API keys'=>'Gérer mes clés API','Every feature is included, whatever your volume: the only question your subscription asks is how many credits per month. An item costs one credit per thousand characters started, so a long read costs several. The volume is chosen in your account area, where a slider shows what each step costs and what it gives you.'=>'Toutes les fonctionnalités sont incluses, quel que soit votre volume : la seule question que pose votre abonnement est combien de crédits par mois. Un contenu coûte un crédit par millier de caractères entamé, un contenu long en coûte donc plusieurs. Le volume se choisit dans votre espace client, où un curseur montre ce que coûte chaque palier et ce qu\'il vous donne.','This connection took too long. Please start again.'=>'Cette connexion a pris trop de temps. Merci de recommencer.','The service answered with an unexpected code (%d).'=>'Le service a répondu par un code inattendu (%d).','Connection cancelled. Nothing has changed.'=>'Connexion annulée. Rien n\'a changé.','This site is connected. Your API key was created and stored for you.'=>'Ce site est connecté. Votre clé API a été créée et enregistrée pour vous.','This site no longer uses your WeDispatch account. Your settings and your audio are untouched: connecting again puts everything back.'=>'Ce site n\'utilise plus votre compte WeDispatch. Vos réglages et vos audios sont intacts : reconnecter remet tout en place.','Disconnect this site?'=>'Déconnecter ce site ?','What is removed from this site'=>'Ce qui est retiré de ce site','The API key stored here, and everything read from your account.'=>'La clé API enregistrée ici, et tout ce qui a été lu de votre compte.','The secret that lets subscriber-only audio be listened to, and its hourly refresh.'=>'Le secret qui permet d\'écouter l\'audio réservé aux abonnés, et son renouvellement horaire.','What is kept'=>'Ce qui est conservé','Your settings: reading mode, content types, voices, player position.'=>'Vos réglages : mode de lecture, types de contenu, voix, position du lecteur.','The link between each item and its audio. Connecting the same account again puts everything back, and regenerates nothing.'=>'Le lien entre chaque contenu et son audio. Reconnecter le même compte remet tout en place, et ne régénère rien.','What this cannot do for you'=>'Ce que cela ne peut pas faire à votre place','The key keeps existing on wedispatch.fr and stays valid until you revoke it there. This site simply stops using it. Audio already published keeps being served.'=>'La clé continue d\'exister sur wedispatch.fr et reste valable tant que vous ne l\'y révoquez pas. Ce site cesse simplement de l\'utiliser. Les audios déjà publiés continuent d\'être servis.','Disconnect this site'=>'Déconnecter ce site','Cancel'=>'Annuler','Revoke the key on wedispatch.fr'=>'Révoquer la clé sur wedispatch.fr','Connect this site to WeDispatch'=>'Connecter ce site à WeDispatch','Automatic audio paused'=>'Sonorisation automatique suspendue','No audio'=>'Aucun audio','Text changed since'=>'Texte modifié depuis','Up to date'=>'À jour','This link has expired. Please try again.'=>'Ce lien a expiré. Merci de recommencer.','You are not allowed to edit this item.'=>'Vous n\'avez pas le droit de modifier ce contenu.','Queued. The audio will be prepared in the background.'=>'Mis en file. L\'audio sera préparé en tâche de fond.','The player no longer appears on this item. The audio itself still exists in your WeDispatch account.'=>'Le lecteur n\'apparaît plus sur ce contenu. L\'audio, lui, existe toujours dans votre compte WeDispatch.','Pick an action and at least one item.'=>'Choisissez une action et au moins un contenu.','%d item detached.'=>'%d contenu détaché.' . "\0" . '%d contenus détachés.','%d item queued.'=>'%d contenu mis en file.' . "\0" . '%d contenus mis en file.','%d item skipped: you may not edit it.'=>'%d contenu ignoré : vous n\'avez pas le droit de le modifier.' . "\0" . '%d contenus ignorés : vous n\'avez pas le droit de les modifier.','My content & audio'=>'Mes contenus et audio','Content type'=>'Type de contenu','All content types'=>'Tous les types de contenu','Audio state'=>'État de l\'audio','Any audio state'=>'Tous les états','With audio'=>'Avec audio','Search'=>'Rechercher','Search titles'=>'Rechercher dans les titres','Filter'=>'Filtrer','Bulk action'=>'Action groupée','Bulk actions'=>'Actions groupées','Generate or rebuild the audio'=>'Générer ou refaire l\'audio','Remove the player from these items'=>'Retirer le lecteur de ces contenus','Apply'=>'Appliquer','%s item'=>'%s contenu' . "\0" . '%s contenus','site voice'=>'voix du site','account default voice'=>'voix par défaut du compte','Select all'=>'Tout sélectionner','Title'=>'Titre','Audio'=>'Audio','Voice'=>'Voix','Listens'=>'Écoutes','Last edited'=>'Modifié le','Select %s'=>'Sélectionner %s','Generate the audio'=>'Générer l\'audio','Rebuild the audio'=>'Refaire l\'audio','Listen on the site'=>'Écouter sur le site','Transcript'=>'Transcript','SRT'=>'SRT','Check the display'=>'Vérifier l\'affichage','Remove the player'=>'Retirer le lecteur','Account default voice'=>'Voix par défaut du compte','no audio yet'=>'pas encore d\'audio','Nothing matches these filters.'=>'Aucun contenu ne correspond à ces filtres.','Previous'=>'Précédent','Next'=>'Suivant','Bulk actions queue the work in the background: WordPress prepares the audio a few seconds later, without holding this page. Come back and refresh to follow it.'=>'Les actions groupées mettent le travail en file : WordPress prépare l\'audio quelques secondes plus tard, sans retenir cette page. Revenez et rafraîchissez pour suivre.','Bar'=>'Barre','Card'=>'Carte','Minimal'=>'Minimal','Banner'=>'Bandeau','Compact'=>'Compact','Magazine'=>'Magazine','word-by-word timing'=>'un calage mot à mot','a short summary'=>'un résumé court','chapters in the article'=>'des chapitres dans l\'article','Audio jingle before the article'=>'Jingle audio avant l\'article','The address of an MP3 played before every article. Leave it empty to remove it. It must be a public https address: this file is fetched by every listener’s browser.'=>'L\'adresse d\'un MP3 joué avant chaque article. Laissez vide pour le retirer. Une adresse https publique est exigée : ce fichier est chargé par le navigateur de chaque auditeur.','Background music'=>'Musique de fond','The address of an MP3 played quietly under the reading. Same rule: a public https address.'=>'L\'adresse d\'un MP3 joué doucement sous la lecture. Même règle : une adresse https publique.','Music volume'=>'Volume de la musique','From 0 to 100, as a share of the voice. Around 15 keeps the music behind the words.'=>'De 0 à 100, en proportion de la voix. Autour de 15, la musique reste derrière les mots.','Length of the free preview'=>'Durée de l\'extrait gratuit','In seconds, from 5 to 300. How much a visitor hears before the subscribe prompt. Only used when the audio is reserved.'=>'En secondes, de 5 à 300. Ce qu\'un visiteur entend avant l\'invitation à s\'abonner. Utilisé seulement quand l\'audio est réservé.','Subscribe prompt: title'=>'Invitation à s\'abonner : titre','Subscribe prompt: message'=>'Invitation à s\'abonner : message','Subscribe prompt: button'=>'Invitation à s\'abonner : bouton','Subscribe prompt: where the button goes'=>'Invitation à s\'abonner : destination du bouton','A public https address, usually your own subscription page.'=>'Une adresse https publique, en général votre propre page d\'abonnement.','Do not impose a font'=>'Ne pas imposer de police','System'=>'Système','Serif'=>'Serif','Monospace'=>'Chasse fixe','Rounded'=>'Arrondie','Slow'=>'Lente','Normal'=>'Normale','Brisk'=>'Enlevée','Highlight the text as it is read'=>'Surligner le texte au fil de la lecture','The words light up one by one during playback. It needs word-level timing, which not every audio tier produces.'=>'Les mots s\'allument un à un pendant l\'écoute. Cela demande un calage mot à mot, que tous les paliers audio ne produisent pas.','Read a short summary before the article'=>'Lire un résumé court avant l\'article','A few sentences that say what the article is about, read before it.'=>'Quelques phrases qui disent de quoi parle l\'article, lues avant lui.','Let listeners download the audio'=>'Permettre le téléchargement de l\'audio','A download button in the player. Useful for listening offline, on a commute or with no signal.'=>'Un bouton de téléchargement dans le lecteur. Utile pour écouter hors ligne, dans les transports ou sans réseau.','Show sharing buttons'=>'Afficher les boutons de partage','Sharing links in the player. No third-party script is loaded and no visitor is tracked.'=>'Des liens de partage dans le lecteur. Aucun script tiers n\'est chargé et aucun visiteur n\'est tracé.','%1$s must be between %2$s and %3$s.'=>'%1$s doit être compris entre %2$s et %3$s.','%s must be a public https address, 500 characters at most.'=>'%s doit être une adresse https publique, de 500 caractères au maximum.','A jingle address must be a public https address.'=>'L\'adresse d\'un jingle doit être une adresse https publique.','Nothing to change.'=>'Rien à modifier.','The WeDispatch service has not been updated yet, so this screen cannot save. Nothing has changed, and your player is untouched.'=>'Le service WeDispatch n\'a pas encore été mis à jour : cet écran ne peut pas enregistrer. Rien n\'a changé, et votre lecteur est intact.','The service did not answer.'=>'Le service n\'a pas répondu.','Saved. Your player changes on every article, right away.'=>'Enregistré. Votre lecteur change sur tous les articles, tout de suite.','%s (set in your account area)'=>'%s (réglé dans votre espace client)','Comes with the paid plans.'=>'Vient avec les forfaits payants.','Player'=>'Lecteur','The player is set on your WeDispatch account'=>'Le lecteur se règle sur votre compte WeDispatch','These settings live with your account, so the same player appears everywhere your audio is published. Connect the site and they can be changed from here.'=>'Ces réglages vivent avec votre compte : le même lecteur apparaît partout où votre audio est publié. Connectez le site et ils se modifient d\'ici.','Go to the settings'=>'Aller aux réglages','This screen is ahead of the service'=>'Cet écran est en avance sur le service','Your version of the plugin can set the player from here, but the WeDispatch service has not been updated yet. Nothing is wrong: your player works, and its settings are exactly as you left them. This screen will start working on its own, with no action from you.'=>'Votre version du module sait régler le lecteur d\'ici, mais le service WeDispatch n\'a pas encore été mis à jour. Rien n\'est cassé : votre lecteur fonctionne, et ses réglages sont exactement tels que vous les avez laissés. Cet écran se mettra à marcher tout seul, sans rien faire de votre côté.','Set the player on my account meanwhile'=>'Régler le lecteur sur mon compte en attendant','Check again'=>'Vérifier à nouveau','The player settings could not be read'=>'Les réglages du lecteur n\'ont pas pu être lus','Nothing has been lost: your player keeps the settings it already had. This screen simply will not change them while it cannot show them.'=>'Rien n\'est perdu : votre lecteur garde les réglages qu\'il avait. Cet écran refuse simplement de les modifier tant qu\'il ne peut pas les montrer.','Run the checks'=>'Lancer les vérifications','Appearance'=>'Apparence','These settings belong to your WeDispatch account, so the same player appears everywhere your audio is published, not only on this site.'=>'Ces réglages appartiennent à votre compte WeDispatch : le même lecteur apparaît partout où votre audio est publié, pas seulement sur ce site.','Player layout'=>'Modèle de lecteur','Your plan uses the default layout. The others come with the paid plans.'=>'Votre forfait utilise le modèle par défaut. Les autres viennent avec les forfaits payants.','This layout needs %s. An item that does not have it is served with the compact bar instead, without an error.'=>'Ce gabarit demande %s. Un contenu qui ne l\'a pas est servi avec la barre compacte à la place, sans erreur.','Font'=>'Police','System fonts only: a player never loads anything from a third party, so your readers are not exposed to one.'=>'Uniquement des polices système : un lecteur ne charge jamais rien chez un tiers, vos lecteurs n\'y sont donc pas exposés.','Default speed'=>'Vitesse par défaut','The speed a listener starts at. They can always change it themselves.'=>'La vitesse à laquelle un auditeur démarre. Il peut toujours la changer lui-même.','Finer appearance settings, including a stylesheet of your own, are available in your WeDispatch account. They apply to this site as well.'=>'Les réglages d\'apparence plus fins, dont votre propre feuille de style, sont dans votre compte WeDispatch. Ils valent aussi pour ce site.','Open player appearance in your account'=>'Ouvrir l\'apparence du lecteur dans votre compte','Sound around the reading'=>'L\'habillage sonore','Advertising break inside long items'=>'Coupure publicitaire dans les contenus longs','Enabled'=>'Activé','Only applies to items long enough for a break to make sense, and only if an ad source is set on your account.'=>'Ne s\'applique qu\'aux contenus assez longs pour qu\'une coupure ait du sens, et seulement si une régie est réglée sur votre compte.','A different jingle per category'=>'Un jingle différent par rubrique','Leave a line empty to use the jingle above. These are stored on your account by category name, so a category from another site of yours is kept even though it does not appear here.'=>'Laissez une ligne vide pour utiliser le jingle ci-dessus. Ces jingles sont rangés sur votre compte par nom de rubrique : une rubrique d\'un autre de vos sites est conservée, même si elle n\'apparaît pas ici.','How to pronounce your words'=>'Comment prononcer vos mots','One per line, written on the left and pronounced on the right, separated by an equals sign. Useful for place names, brands and initials that the voice gets wrong.'=>'Une par ligne, l\'écrit à gauche et le prononcé à droite, séparés par un signe égal. Utile pour les noms de lieux, les marques et les sigles que la voix écorche.','A line without an equals sign is ignored rather than guessed at: an invented pronunciation would be heard on every article. Up to 200 entries.'=>'Une ligne sans signe égal est ignorée plutôt que devinée : une prononciation inventée s\'entendrait sur tous les articles. 200 entrées au maximum.','What the player offers'=>'Ce que propose le lecteur','Highlighting is unavailable on the audio tier this account uses: it needs word-level timing, which that tier does not produce. Nothing is lost, and audio already made keeps its timing.'=>'Le surlignage est indisponible sur le palier audio de ce compte : il demande un calage mot à mot que ce palier ne produit pas. Rien n\'est perdu, et les audios déjà fabriqués gardent leur calage.','What a visitor reads when the audio is reserved'=>'Ce que lit un visiteur quand l\'audio est réservé','Your audio is open to everyone right now, so none of this is shown to anyone. You can write it in advance: it takes effect the day you reserve your audio, which is done from your account area.'=>'Votre audio est ouvert à tous pour le moment : rien de tout ceci n\'est montré à qui que ce soit. Vous pouvez l\'écrire d\'avance, cela prendra effet le jour où vous réserverez votre audio, depuis votre espace client.','Shown once the free preview ends, in the player itself.'=>'Affiché à la fin de l\'extrait gratuit, dans le lecteur lui-même.','Save the player'=>'Enregistrer le lecteur','Reload from my account'=>'Relire depuis mon compte','Everyone'=>'Tout le monde','Your subscribers'=>'Vos abonnés','Your registered users'=>'Vos inscrits','other visitors only hear a preview.'=>'les autres visiteurs n\'entendent qu\'un extrait.','This one is not changed from here, and that is deliberate: switching it moves every audio file you have ever published from one storage area to another. Done halfway, it would silence your whole archive. Your account area runs the full sequence.'=>'Celui-ci ne se change pas d\'ici, et c\'est délibéré : le basculer déplace tous les fichiers audio que vous avez publiés d\'un espace de stockage à un autre. Fait à moitié, il rendrait muettes toutes vos archives. Votre espace client exécute la séquence entière.','Change it on my account'=>'Le changer sur mon compte','Which roles count as subscribers'=>'Quels rôles comptent comme abonnés','Overview'=>'Vue d\'ensemble','Voices'=>'Voix','Statistics'=>'Statistiques','Settings'=>'Réglages','WeDispatch: %s'=>'WeDispatch : %s','%1$s of %2$s'=>'%1$s sur %2$s','Content'=>'Contenu','To the end'=>'Jusqu\'au bout','Untitled'=>'Sans titre','and %s preview'=>'et %s extrait' . "\0" . 'et %s extraits','By byline'=>'Par signature','%s byline'=>'%s signature' . "\0" . '%s signatures','Byline'=>'Signature','Items'=>'Contenus','Unsigned'=>'Non signé','Every item counts here, including those with no byline: the rows add up to the totals above. Each completion rate is worked out on that byline’s own listens.'=>'Tous les contenus comptent ici, y compris ceux sans signature : la somme des lignes redonne les totaux ci-dessus. Chaque taux d\'écoute complète est calculé sur les écoutes de cette signature.','No figures without a connection'=>'Pas de chiffres sans connexion','Listening figures are counted by WeDispatch and read with your API key. Once the site is connected, they appear here.'=>'Les écoutes sont comptées par WeDispatch et lues avec votre clé API. Dès que le site est connecté, elles apparaissent ici.','The figures could not be read'=>'Les chiffres n\'ont pas pu être lus','Try again'=>'Réessayer','No listens yet'=>'Aucune écoute pour l\'instant','WeDispatch counts a listen when a visitor presses play on one of your pages. Nothing has been counted so far. If audio has just gone live, give it a little time; if the player does not appear on your articles, the checks will say why.'=>'WeDispatch compte une écoute quand un visiteur appuie sur lecture sur l\'une de vos pages. Rien n\'a encore été compté. Si l\'audio vient d\'être mis en ligne, laissez-lui un peu de temps ; si le lecteur n\'apparaît pas sur vos articles, les vérifications diront pourquoi.','The last 30 days'=>'Les 30 derniers jours','listen'=>'écoute' . "\0" . 'écoutes','first period counted'=>'première période comptée','%s versus the 30 days before'=>'%s par rapport aux 30 jours d\'avant','over the 30 days before'=>'sur les 30 jours d\'avant','Since the beginning'=>'Depuis le début','listened to the end'=>'écoutées jusqu\'au bout','%s of listens'=>'%s des écoutes','clicks on the subscribe prompt'=>'clics sur l\'invitation à s\'abonner','%s of the times it was shown'=>'%s des fois où elle a été montrée','ad played'=>'publicité diffusée' . "\0" . 'publicités diffusées','preview'=>'extrait' . "\0" . 'extraits','reserved audio, heard partly'=>'audio réservé, entendu en partie','Your most listened content'=>'Vos contenus les plus écoutés','A listen is counted when a visitor presses play. “To the end” is the share of listens that reached the end of the audio.'=>'Une écoute est comptée quand un visiteur appuie sur lecture. « Jusqu\'au bout » est la part des écoutes qui ont atteint la fin de l\'audio.','Counted on this key, published elsewhere'=>'Comptés sur cette clé, publiés ailleurs','These items were produced with the same API key from another site, or have since been deleted here. They are shown because they count towards the totals above.'=>'Ces contenus ont été produits avec la même clé API depuis un autre site, ou ont été supprimés d\'ici depuis. Ils sont montrés parce qu\'ils comptent dans les totaux ci-dessus.','Refresh the figures'=>'Rafraîchir les chiffres','Counted %s ago.'=>'Compté il y a %s.','The voice catalogue could not be read, so nothing was changed.'=>'Le catalogue des voix n\'a pas pu être lu : rien n\'a été modifié.','%d rule saved.'=>'%d règle enregistrée.' . "\0" . '%d règles enregistrées.','%d voice was rejected: it is not in your plan catalogue.'=>'%d voix a été refusée : elle ne figure pas au catalogue de votre forfait.' . "\0" . '%d voix ont été refusées : elles ne figurent pas au catalogue de votre forfait.','How the voice of an item is chosen'=>'Comment la voix d\'un contenu est choisie','In Auto mode, WeDispatch goes down this list and stops at the first rule that applies. Everything on this page is one of these rules.'=>'En mode Auto, WeDispatch descend cette liste et s\'arrête à la première règle qui s\'applique. Tout ce que porte cette page est l\'une de ces règles.','The category of the item'=>'La rubrique du contenu','%s category has a voice'=>'%s rubrique a une voix' . "\0" . '%s rubriques ont une voix','no category has a voice yet'=>'aucune rubrique n\'a encore de voix','The author of the item'=>'L\'auteur du contenu','%s author has a voice'=>'%s auteur a une voix' . "\0" . '%s auteurs ont une voix','no author has a voice yet'=>'aucun auteur n\'a encore de voix','The site voice'=>'La voix du site','not set'=>'non définie','The account default voice'=>'La voix par défaut du compte','always applies, and is set in your WeDispatch account'=>'s\'applique toujours, et se règle dans votre compte WeDispatch','The voice list is not available right now'=>'La liste des voix n\'est pas disponible pour le moment','The rules above are still in force: nothing has been lost. But this page will not let you change them while it cannot show which voices your plan offers, because an empty list would quietly erase the choices already made.'=>'Les règles ci-dessus restent en vigueur : rien n\'a été perdu. Mais cette page ne vous laissera pas les modifier tant qu\'elle ne peut pas montrer les voix qu\'offre votre forfait : une liste vide effacerait en silence les choix déjà faits.','Site voice'=>'Voix du site','Used whenever no category and no author says otherwise. This is the same setting as the one on the Settings screen.'=>'Utilisée dès qu\'aucune rubrique et aucun auteur n\'en décide autrement. C\'est le même réglage que celui de l\'écran Réglages.','A default voice per language'=>'Une voix par défaut par langue','This one belongs to your WeDispatch account, not to this site: it is the voice applied when nothing else says otherwise, whatever the language of the item. Leave a line empty to fall back to the account default voice.'=>'Celle-ci appartient à votre compte WeDispatch, pas à ce site : c\'est la voix appliquée quand rien d\'autre n\'en décide, selon la langue du contenu. Laissez une ligne vide pour revenir à la voix par défaut du compte.','A voice per category'=>'Une voix par rubrique','%s category'=>'%s rubrique' . "\0" . '%s rubriques','Sport does not have to sound like the obituaries. A category voice wins over everything else.'=>'Le sport n\'est pas obligé de sonner comme le carnet du jour. Une voix de rubrique l\'emporte sur tout le reste.','A voice per category comes with the paid plans.'=>'Une voix par rubrique vient avec les forfaits payants.','Any category voice already set here keeps working: nothing has been erased, and this table opens again the day the plan does.'=>'Toute voix de rubrique déjà réglée ici continue de s\'appliquer : rien n\'a été effacé, et ce tableau se rouvre le jour où le forfait le rouvre.','See my plan'=>'Voir mon forfait','Category'=>'Rubrique','Showing the %1$s largest categories out of %2$s. The rest can be set one by one from the Categories screen.'=>'Les %1$s plus grandes rubriques sur %2$s sont affichées. Les autres se règlent une à une depuis l\'écran Catégories.','A voice per author'=>'Une voix par auteur','%s author'=>'%s auteur' . "\0" . '%s auteurs','Only the people who have actually published in the content types you read aloud are listed. An author voice applies when no category says otherwise.'=>'Seules les personnes qui ont réellement publié dans les types de contenu que vous sonorisez sont listées. Une voix d\'auteur s\'applique quand aucune rubrique n\'en décide autrement.','Author'=>'Auteur','Showing %1$s authors out of %2$s. The rest can be set one by one from their profile.'=>'%1$s auteurs affichés sur %2$s. Les autres se règlent un à un depuis leur profil.','Save the voices'=>'Enregistrer les voix','The voices your plan offers'=>'Les voix qu\'offre votre forfait','%s voice'=>'%s voix' . "\0" . '%s voix','signature voices'=>'voix signature','A voice native to one language reads that language best. Voices listed under “All languages” read every language of the account.'=>'Une voix native d\'une langue lit cette langue au mieux. Les voix classées sous « Toutes les langues » lisent toutes les langues du compte.','Refresh the voice list'=>'Rafraîchir la liste des voix','My WeDispatch account'=>'Mon compte WeDispatch','Expired form. Nothing was saved: reload the page and try again.'=>'Formulaire expiré. Rien n\'a été enregistré : rechargez la page et recommencez.','Both boxes are needed: the word as it is written, and the way it should be said.'=>'Les deux champs sont nécessaires : le mot tel qu\'il s\'écrit, et la façon dont il doit se dire.','The service refused the correction: %s'=>'Le service a refusé la correction : %s','Saved. It applies to every audio generated from now on, on this site and everywhere your account generates audio. Already existing audio keeps its sound until you rebuild it.'=>'Enregistré. La correction s\'applique à tous les audios générés à partir de maintenant, sur ce site et partout où votre compte en génère. Les audios déjà produits gardent leur son tant que vous ne les refaites pas.','The removal did not go through: %s'=>'Le retrait n\'est pas passé : %s','Removed. Future audio reads the word as written again.'=>'Retiré. Les prochains audios liront de nouveau le mot tel qu\'il s\'écrit.','Pronunciations'=>'Prononciations','A proper name read wrong? Write it as it is written, then as it should be said. The correction lives on your WeDispatch account and applies to every audio generated from now on.'=>'Un nom propre mal lu ? Écrivez-le tel qu\'il s\'écrit, puis tel qu\'il doit se dire. La correction vit sur votre compte WeDispatch et s\'applique à tous les audios générés à partir de maintenant.','The list could not be read from the service just now. Your corrections are safe; reload in a moment.'=>'La liste n\'a pas pu être lue à l\'instant. Vos corrections sont en sécurité ; rechargez dans un moment.','Written'=>'Écrit','Said as'=>'Dit','Remove'=>'Retirer','As written'=>'Tel qu\'il s\'écrit','As it should be said'=>'Tel qu\'il doit se dire','Save this pronunciation'=>'Enregistrer cette prononciation','Already generated audio keeps its sound: rebuild an item from the Contents screen to hear the correction.'=>'Les audios déjà produits gardent leur son : refaites un contenu depuis l\'écran des contenus pour entendre la correction.','Every item already carries its byline.'=>'Tous les contenus portent déjà leur signature.','%d byline queued.'=>'%d signature mise en file.' . "\0" . '%d signatures mises en file.','Add the missing bylines'=>'Poser les signatures manquantes','%s item already has its audio but no byline. Sending the byline again costs nothing: the text has not changed, so no audio is produced and nothing is taken off your monthly volume.'=>'%s contenu a déjà son audio mais pas de signature. Renvoyer la signature ne coûte rien : le texte n\'a pas changé, aucun audio n\'est fabriqué et rien n\'est pris sur votre volume mensuel.' . "\0" . '%s contenus ont déjà leur audio mais pas de signature. Renvoyer les signatures ne coûte rien : les textes n\'ont pas changé, aucun audio n\'est fabriqué et rien n\'est pris sur votre volume mensuel.','Post the bylines'=>'Poser les signatures','Bylines feed the “By byline” table on the Statistics screen. An item whose text has changed since it was turned into audio is not in this list: it will carry its byline the next time it is generated.'=>'Les signatures alimentent le tableau « Par signature » de l\'écran Statistiques. Un contenu dont le texte a changé depuis sa sonorisation ne figure pas dans cette liste : il portera sa signature à sa prochaine génération.','Nothing left to use this month.'=>'Il ne reste rien à utiliser ce mois-ci.','Every published item already has its audio.'=>'Tous les contenus publiés ont déjà leur audio.','Use what is left this month'=>'Utiliser ce qui reste ce mois-ci','You have %1$s left this month, and %2$s that have no audio yet. What is not used before the end of the month is lost.'=>'Il vous reste %1$s ce mois-ci, et %2$s n\'ont pas encore d\'audio. Ce qui n\'est pas utilisé avant la fin du mois est perdu.','%s credit'=>'%s crédit' . "\0" . '%s crédits','%s published item'=>'%s contenu publié' . "\0" . '%s contenus publiés','An item costs at least one credit, and a long one costs several: depending on their length, the last ones may not go through this month.'=>'Un contenu coûte au moins un crédit, et un contenu long en coûte plusieurs : selon leur longueur, les derniers ne passeront peut-être pas ce mois-ci.','Voice the next %s item'=>'Sonoriser le prochain contenu' . "\0" . 'Sonoriser les %s prochains contenus','Choose them myself'=>'Les choisir moi-même','The most recent ones first. They are queued in the background: WordPress prepares the audio a few seconds later, without holding this page.'=>'Les plus récents d\'abord. Ils sont mis en file en arrière-plan : WordPress prépare l\'audio quelques secondes plus tard, sans retenir cette page.','Plugin activated'=>'Extension activée','Site connected to WeDispatch'=>'Site connecté à WeDispatch','Default voice chosen'=>'Voix par défaut choisie','First audio generated'=>'Premier audio généré','Player seen on the public page'=>'Lecteur vu sur la page publique','Where this site stands'=>'Où en est ce site','item with audio'=>'contenu sonorisé' . "\0" . 'contenus sonorisés','published item eligible'=>'contenu publié éligible' . "\0" . 'contenus publiés éligibles','Manual'=>'Manuel','Auto'=>'Auto','reading mode'=>'mode de lecture','Content types read aloud: %s.'=>'Contenus sonorisés : %s.','Getting started'=>'Mise en route','done'=>'fait','still to do'=>'reste à faire','This month'=>'Ce mois-ci','Plan and credits'=>'Forfait et crédits','Next step'=>'Prochaine étape','Create a WeDispatch account, generate an API key from your account area, and paste it into the settings. Nothing is sent anywhere until that key is in place.'=>'Créez un compte WeDispatch, générez une clé API depuis votre espace, puis collez-la dans les réglages. Rien n\'est envoyé nulle part tant que cette clé n\'est pas en place.','Paste my API key'=>'Coller ma clé API','The key stored on this site is not accepted. The most common reason is a key created for a different WeDispatch environment: a key is only valid where it was created.'=>'La clé enregistrée sur ce site n\'est pas acceptée. La cause la plus fréquente est une clé créée sur un autre environnement WeDispatch : une clé n\'est valable que là où elle a été créée.','Replace the key'=>'Remplacer la clé','The service could not be reached from this server. Your key is not in question. This usually clears on its own; if it does not, your host may be blocking outgoing requests.'=>'Le service n\'a pas pu être joint depuis ce serveur. Votre clé n\'est pas en cause. Cela se rétablit généralement seul ; sinon, votre hébergeur bloque peut-être les requêtes sortantes.','Generate the audio, automatically or by hand'=>'Générer l\'audio, automatiquement ou à la main','Choose where the player sits in the article'=>'Choisir où le lecteur se pose dans l\'article','Pick the voices: site, per category, per author'=>'Choisir les voix : site, rubrique, signature','Check that the player really shows up'=>'Vérifier que le lecteur s\'affiche vraiment','The look of the player: model, style, colours'=>'L\'apparence du lecteur : modèle, style, couleurs','Detailed listening statistics'=>'Les statistiques d\'écoute détaillées','Plan, credits and invoices'=>'Forfait, crédits et factures','Signature voice, gated audio, translations'=>'Voix signature, audio réservé, traductions','What lives where'=>'Ce qui se fait où','The product lives in two places. Here, inside WordPress: what touches your content. In your WeDispatch account: what touches your listeners and your plan.'=>'Le produit vit à deux endroits. Ici, dans WordPress : ce qui touche à vos contenus. Dans votre compte WeDispatch : ce qui touche à vos auditeurs et à votre forfait.','Here, in WordPress'=>'Ici, dans WordPress','In your WeDispatch account'=>'Dans votre compte WeDispatch','Your articles are a podcast'=>'Vos articles sont un podcast','Every audio this site publishes also lands in an RSS podcast feed. Submit it once to the platforms, and your articles follow your readers into their podcast app.'=>'Chaque audio publié par ce site alimente aussi un flux podcast RSS. Soumettez-le une fois aux plateformes, et vos articles suivent vos lecteurs dans leur application de podcast.','Podcast feed address'=>'Adresse du flux podcast','Submit to Spotify'=>'Soumettre à Spotify','Submit to Apple Podcasts'=>'Soumettre à Apple Podcasts','The feed is public by construction, like every podcast feed. Platforms refresh it on their own; there is nothing to resubmit when you publish.'=>'Le flux est public par construction, comme tout flux podcast. Les plateformes le relèvent d\'elles-mêmes ; il n\'y a rien à resoumettre quand vous publiez.','of %s credit this month'=>'sur %s crédit ce mois-ci' . "\0" . 'sur %s crédits ce mois-ci','of %s characters this month (internal measure: your plan is counted in credits)'=>'sur %s caractères ce mois-ci (mesure interne : votre forfait se compte en crédits)','credit this month, with no monthly ceiling on this plan'=>'crédit ce mois-ci, sans plafond mensuel sur ce forfait' . "\0" . 'crédits ce mois-ci, sans plafond mensuel sur ce forfait','characters this month (internal measure), with no monthly ceiling on this plan'=>'caractères ce mois-ci (mesure interne), sans plafond mensuel sur ce forfait','%s credit left.'=>'%s crédit restant.' . "\0" . '%s crédits restants.','Unused credits are not carried over: the count starts again at the beginning of each month.'=>'Les crédits non consommés ne sont pas reportés : le compte repart au début de chaque mois.','(%s characters)'=>'(%s caractères)','No API key has been entered'=>'Aucune clé API renseignée','This content has never been turned into audio'=>'Ce contenu n\'a jamais été sonorisé','Not connected'=>'Non connecté','Paste the API key from your WeDispatch account to get started.'=>'Collez la clé API de votre compte WeDispatch pour démarrer.','Connected'=>'Connecté','Service unreachable'=>'Service injoignable','API key refused'=>'Clé API refusée','%s article/month'=>'%s article/mois' . "\0" . '%s articles/mois','Plan: %s'=>'Forfait : %s','Open the settings'=>'Ouvrir les réglages','This site talks to %s. A key created on another environment is refused, however valid it is there.'=>'Ce site parle à %s. Une clé créée sur un autre environnement est refusée, si valable soit-elle là-bas.','This screen is in English, and your WordPress is not'=>'Cet écran est en anglais, et votre WordPress ne l\'est pas','WeDispatch has no translation for %s yet. If you speak it, you can write one. Translations live on WordPress.org, and once your language team has reviewed yours, WordPress installs it on every site automatically.'=>'WeDispatch n\'a pas encore de traduction en %s. Si vous parlez cette langue, vous pouvez en écrire une. Les traductions vivent sur WordPress.org, et une fois la vôtre relue par votre équipe de langue, WordPress l\'installe automatiquement sur tous les sites.','Please upload it from your own WordPress.org account rather than sending us a file, so that your language team can give feedback to you directly.'=>'Envoyez-la depuis votre propre compte WordPress.org plutôt que de nous transmettre un fichier : c\'est ce qui permet à votre équipe de langue de vous répondre directement.','Translate WeDispatch'=>'Traduire WeDispatch','How translating works'=>'Comment se passe une traduction','Do not tell me again'=>'Ne plus me le dire','The player did not show up on my pages'=>'Le lecteur ne s\'affichait pas sur mes pages','The voice or the reading did not convince me'=>'La voix ou la lecture ne m\'a pas convaincu','It was harder to set up than I expected'=>'L\'installation a été plus compliquée que prévu','Price, or I only wanted to try it out'=>'Le prix, ou je voulais seulement essayer','Temporary: I will switch it back on'=>'C\'est temporaire : je vais la réactiver','Before you go, one question'=>'Une question avant de partir','It is optional, and your answer changes what we fix next. You can deactivate without answering.'=>'C\'est facultatif, et votre réponse change ce que nous corrigeons ensuite. Vous pouvez désactiver sans répondre.','Something else'=>'Autre chose','Anything you would like to add'=>'Ce que vous voulez ajouter','Anything you would like to add (optional)'=>'Ce que vous voulez ajouter (facultatif)','If you send it, we receive: the reason you picked, your comment, and the plugin version. Nothing else. No content, no addresses, nothing about your visitors.'=>'Si vous l\'envoyez, nous recevons : le motif choisi, votre commentaire et la version de l\'extension. Rien d\'autre : aucun contenu, aucune adresse, rien sur vos visiteurs.','Send and deactivate'=>'Envoyer et désactiver','Deactivate without answering'=>'Désactiver sans répondre','This content has no audio yet'=>'Ce contenu n\'a pas encore d\'audio','Nothing can be displayed as long as no audio version exists.'=>'Rien ne peut s\'afficher tant qu\'aucune version audio n\'existe.','Generate the audio first, then run this check again.'=>'Générez d\'abord l\'audio, puis relancez cette vérification.','The player is set to manual placement'=>'Le lecteur est en placement manuel','With this setting, WeDispatch never inserts the player on its own: it waits for the block or the shortcode.'=>'Avec ce réglage, WeDispatch ne pose jamais le lecteur de lui-même : il attend le bloc ou le code court.','Either add the WeDispatch block to this content, or switch the position setting back to automatic.'=>'Ajoutez le bloc WeDispatch à ce contenu, ou remettez le réglage de position sur automatique.','The player is on the page'=>'Le lecteur est bien sur la page','Placement is manual, and the block is indeed in place.'=>'Le placement est manuel, et le bloc est bien posé.','The page could not be read'=>'La page n\'a pas pu être lue','This site could not call itself: %s. Some hosts block these loopback requests. This says nothing about the player: it only means the check could not look.'=>'Ce site n\'a pas pu s\'appeler lui-même : %s. Certains hébergeurs bloquent ces requêtes en boucle locale. Cela ne dit rien du lecteur : seulement que la vérification n\'a pas pu regarder.','no response'=>'aucune réponse','Open the page yourself in a private window: what you see there is the truth.'=>'Ouvrez la page vous-même dans une fenêtre privée : ce que vous y voyez fait foi.','Found in the HTML served to visitors.'=>'Trouvé dans le HTML servi aux visiteurs.','The player is missing from the page'=>'Le lecteur est absent de la page','The audio exists and placement is automatic, but nothing was found in the page. This almost always means the theme or the page builder renders the content without going through WordPress, so no plugin can insert anything into it.'=>'L\'audio existe et le placement est automatique, mais rien n\'a été trouvé dans la page. Cela veut presque toujours dire que le thème ou le constructeur de pages rend le contenu sans passer par WordPress : aucune extension ne peut alors y insérer quoi que ce soit.','Add the WeDispatch block where you want the player, or paste the [wedispatch] shortcode. Both work regardless of the theme.'=>'Ajoutez le bloc WeDispatch où vous voulez le lecteur, ou collez le code court [wedispatch]. Les deux fonctionnent quel que soit le thème.','HTTP %d'=>'HTTP %d','Read the transcript'=>'Lire le transcript','More audio articles'=>'D\'autres articles à écouter','Listen next'=>'À écouter ensuite','Some of your content is never read aloud'=>'Une partie de vos contenus n\'est jamais lue','This site has %s that WeDispatch does not touch, because only Posts are enabled.'=>'Ce site compte %s que WeDispatch ne touche pas, parce que seuls les articles sont activés.','Choose what gets read'=>'Choisir ce qui est lu','French'=>'Français','English'=>'Anglais','Spanish'=>'Espagnol','German'=>'Allemand','Italian'=>'Italien','Hindi'=>'Hindi','Chinese'=>'Chinois','Arabic'=>'Arabe','Portuguese'=>'Portugais','Japanese'=>'Japonais','Hebrew'=>'Hébreu','Korean'=>'Coréen','Dutch'=>'Néerlandais','Swedish'=>'Suédois','Polish'=>'Polonais','Tamil'=>'Tamoul','Telugu'=>'Télougou','Russian'=>'Russe','Turkish'=>'Turc','Thai'=>'Thaï','Filipino'=>'Filipino','Czech'=>'Tchèque','Finnish'=>'Finnois','Female'=>'Femme','Male'=>'Homme','Checking…'=>'Vérification…','The key is accepted by the service.'=>'La clé est acceptée par le service.','This site can attest to its visitors’ status. Nothing else to do.'=>'Ce site sait attester du statut de ses visiteurs. Rien d\'autre à faire.','failed'=>'échec','Network error'=>'Erreur réseau','Looking at the public page…'=>'Lecture de la page publique…','Network error: the check could not run.'=>'Erreur réseau : la vérification n\'a pas pu s\'exécuter.','Enter your API key to list the voices'=>'Renseignez la clé API pour lister les voix','This voice is not available on your plan. Please pick another one'=>'Voix indisponible avec votre forfait, choisissez-en une autre','%s (voice list unavailable right now: this setting is kept)'=>'%s (liste des voix indisponible pour l\'instant : ce réglage est conservé)','Your signature voices'=>'Vos voix signature','All languages'=>'Toutes les langues','Listen'=>'Écouter','Stop'=>'Arrêter','No sample for this voice yet.'=>'Pas encore d\'extrait pour cette voix.','label separator: '=>' : ','category “%s”'=>'rubrique « %s »','category'=>'rubrique','author'=>'auteur','Content not found'=>'Contenu introuvable','Automatic audio is paused for this site in your account area.'=>'La sonorisation automatique est suspendue pour ce site dans votre espace client.','Text too short (100 characters minimum). Save the draft first'=>'Texte trop court (100 caractères minimum). Enregistrez le brouillon d\'abord','the site default voice'=>'la voix par défaut du site','the “%s” category'=>'la rubrique « %s »','%s uses a voice that is no longer in your plan catalogue.'=>'%s utilise une voix qui ne figure plus au catalogue de votre forfait.' . "\0" . '%s utilisent des voix qui ne figurent plus au catalogue de votre forfait.','Your content is still read aloud, with the account default voice, until a new choice is made.'=>'Vos contenus restent sonorisés, avec la voix par défaut du compte, jusqu\'à ce qu\'un nouveau choix soit fait.','Pick a voice'=>'Choisir une voix','Connect this site'=>'Connecter ce site','One click: you sign in or create your account on wedispatch.fr, you authorise this site, and the key is created and stored here for you. Nothing to copy, and your password never enters WordPress.'=>'Un clic : vous vous connectez ou créez votre compte sur wedispatch.fr, vous autorisez ce site, et la clé est créée puis enregistrée ici pour vous. Rien à copier, et votre mot de passe n\'entre jamais dans WordPress.','Connecting again replaces the key stored on this site.'=>'Se reconnecter remplace la clé enregistrée sur ce site.','Turn your content into audio. Paste the API key from your account area (%s).'=>'Transformez vos contenus en audio. Collez la clé API de votre espace client (%s).','API key'=>'Clé API','Never share this key.'=>'Ne partagez jamais cette clé.','Default mode'=>'Mode par défaut','the audio is generated on its own when you publish. The voice is picked automatically, in this order: category, then author, then site voice.'=>'l\'audio se génère tout seul à la publication. La voix est choisie automatiquement dans cet ordre : rubrique, puis auteur, puis voix du site.','nothing is turned into audio on its own. The author picks the voice and clicks “Generate” in the editor panel, then publishes. This is also how you stop this site sending anything automatically, without touching your account area.'=>'rien n\'est sonorisé tout seul. L\'auteur choisit la voix et clique sur « Générer » dans le panneau de l\'éditeur, puis publie. C\'est aussi ainsi qu\'on empêche ce site d\'envoyer quoi que ce soit automatiquement, sans toucher à l\'espace client.','Can be set per item in the “WeDispatch” editor panel, which also shows the voice Auto mode will use.'=>'Réglable contenu par contenu dans l\'encart « WeDispatch » de l\'éditeur, qui affiche aussi la voix retenue en Auto.','Content to read aloud'=>'Contenus à sonoriser','Posts, pages, products, and any custom post type your theme or your plugins register. Unticking everything falls back to posts.'=>'Articles, pages, fiches produit, et tout type de contenu déclaré par votre thème ou vos extensions. Tout décocher revient aux articles.','Site default voice'=>'Voix par défaut du site','Used in Auto mode when the author has not set a voice of their own (in their profile).'=>'Utilisée en mode Auto si l\'auteur n\'a pas défini sa propre voix (dans son profil).','Content edited after publication'=>'Contenus corrigés après publication','Rebuild the audio automatically when the text of an item that already has audio changes'=>'Refaire l\'audio automatiquement quand le texte d\'un contenu déjà sonorisé change','Off by default. Without this option the audio that is online keeps being served and the item is marked “to regenerate”: you rebuild it once the text has settled, from the “Generate audio” button in the editor panel.'=>'Désactivé par défaut. Sans cette option, l\'audio en ligne continue d\'être servi et le contenu est marqué « à régénérer » : vous relancez quand le texte est stabilisé, depuis le bouton « Générer l\'audio » de l\'encart de l\'éditeur.','Every automatic rebuild uses one generation from your plan.'=>'Chaque reprise automatique consomme une génération de votre forfait.','At the top of the article'=>'En tête d\'article','At the bottom of the article'=>'En fin d\'article','Manual: block, widget or [wedispatch] shortcode'=>'Manuel : bloc, widget ou code court [wedispatch]','Under the article'=>'Sous l\'article','Show the transcript, folded, under the article'=>'Afficher le transcript, replié, sous l\'article','An audio player alone meets no obligation towards a deaf or hard of hearing reader. The transcript is built from the word-level timing already captured for highlighting: no AI, no extra cost. It is also text that search engines index.'=>'Un lecteur audio seul ne remplit aucune obligation envers une personne sourde ou malentendante. Le transcript est fabriqué à partir du calage mot à mot déjà capturé pour le surlignage : aucune IA, aucun coût supplémentaire. C\'est aussi du texte que les moteurs de recherche indexent.','Show “Listen next” under the article'=>'Afficher « À écouter ensuite » sous l\'article','Same category first, then the most recent. The list depends on the article being read, never on who is reading it: your listeners are not tracked or profiled. Only content published on this site is suggested.'=>'Même rubrique d\'abord, puis les plus récents. La liste dépend de l\'article affiché, jamais de qui le lit : vos auditeurs ne sont ni tracés ni profilés. Seuls les contenus publiés sur ce site sont proposés.','the player is open to all your visitors.'=>'le lecteur est ouvert à tous vos visiteurs.','You can reserve the full article for your registered users or your subscribers: everyone else hears a preview, and the player then invites them to create an account. The setting lives in your account area (Player, then “Who can listen”).'=>'Vous pouvez réserver l\'article complet à vos inscrits ou à vos abonnés : les autres n\'entendent qu\'un extrait, puis le lecteur les invite à créer un compte. Le réglage est dans votre espace client (Lecteur, puis « Qui peut écouter »).','Nothing to code'=>'Rien à coder','this plugin takes care of it.'=>'ce module s\'en occupe.','This plugin passes each visitor’s status on automatically.'=>'Ce module transmet automatiquement le statut de chaque visiteur.','API key missing or invalid: without it, every visitor gets the preview only.'=>'Clé API absente ou invalide : sans elle, tous vos visiteurs n\'auront que l\'extrait.','Who counts as a subscriber on this site?'=>'Qui, sur ce site, est un abonné ?','Tick the WordPress role or roles of your paying subscribers. A signed-in user with none of those roles counts as merely registered.'=>'Cochez le ou les rôles WordPress de vos abonnés payants. Un utilisateur connecté qui n\'a aucun de ces rôles est considéré comme simplement inscrit.','No role ticked: nobody is recognised as a subscriber, so nobody hears the full article. Tick at least one role.'=>'Aucun rôle coché : personne n\'est reconnu comme abonné, donc personne n\'entend l\'article complet. Cochez au moins un rôle.','Are your subscriptions something other than roles (WooCommerce Subscriptions, MemberPress, an in-house system)? A developer hooks into the %1$s filter: three lines, documented in %2$s.'=>'Vos abonnements ne sont pas des rôles (WooCommerce Subscriptions, MemberPress, système maison) ? Un développeur branche le filtre %1$s : trois lignes, documentées dans %2$s.','our documentation'=>'notre documentation','Check that everything works'=>'Vérifier que tout fonctionne','Your readers stay anonymous to WeDispatch: this site attests to a status (“subscriber”), never to an identity. No personal data leaves your server.'=>'Vos lecteurs restent anonymes pour WeDispatch : ce site atteste d\'un statut (« abonné »), jamais d\'une identité. Aucune donnée personnelle ne sort d\'ici.','No key has been entered'=>'Aucune clé renseignée','No API key has been entered.'=>'Aucune clé API renseignée.','Secret not found. Is the API key valid?'=>'Secret introuvable. La clé API est-elle valide ?','Unreadable response from the WeDispatch server.'=>'Réponse illisible du serveur WeDispatch.','Token refused'=>'Jeton refusé','Audio voice'=>'Voix audio','In Auto mode, your content will be read aloud with this voice.'=>'En mode Auto, vos contenus seront lus avec cette voix.','A voice already set here keeps working: nothing has been erased.'=>'Une voix déjà réglée ici continue de s\'appliquer : rien n\'a été effacé.','WeDispatch voice'=>'Voix WeDispatch','In Auto mode, posts in this category are read aloud with this voice (it takes priority over the author’s voice).'=>'En mode Auto, les articles de cette rubrique seront lus avec cette voix (prioritaire sur la voix de l\'auteur).','In Auto mode, takes priority over the author’s voice for posts in this category.'=>'En mode Auto, prioritaire sur la voix de l\'auteur pour les articles de cette rubrique.','WeDispatch Audio'=>'WeDispatch Audio','Mode'=>'Mode','Site default (%s)'=>'Défaut du site (%s)','Auto: generated on publication'=>'Auto : généré à la publication','Manual: I generate it here'=>'Manuel : je génère ici','In Auto mode'=>'En Auto','this item will be read by:'=>'ce contenu sera lu par :','Voice picked via: %s. Priority is category, then author, then site.'=>'Voix choisie via : %s. Priorité rubrique, puis auteur, puis site.','Voice (Manual mode)'=>'Voix (mode Manuel)','Used in Manual mode only. In Auto mode the routing above decides.'=>'Utilisée uniquement en mode Manuel. En Auto, c\'est l\'aiguillage ci-dessus qui décide.','Audio status:'=>'État audio :','Generated'=>'Généré','Not generated'=>'Non généré','Generate audio'=>'Générer l\'audio','Save the draft before generating.'=>'Enregistrez le brouillon avant de générer.','Generating…'=>'Génération…','Scheduled'=>'Programmé','Preparing…'=>'En préparation…','network error'=>'erreur réseau','Audio version of this article'=>'Version audio de cet article','WeDispatch audio player'=>'Lecteur audio WeDispatch','The audio version of the article being read. Shows nothing on pages that have no audio.'=>'La version audio de l\'article consulté. N\'affiche rien sur les pages qui n\'ont pas d\'audio.','Listen to this article'=>'Écouter cet article','Title:'=>'Titre :','The audio version of this article appears here once it has been generated.'=>'La version audio de cet article s\'affiche ici une fois qu\'elle a été générée.','block titleWeDispatch audio player'=>'Lecteur audio WeDispatch','block descriptionPlaces the audio version of this article exactly where you want it.'=>'Place la version audio de cet article exactement où vous le voulez.','block keywordtext to speech'=>'synthèse vocale','block keywordlisten'=>'écouter','block keywordaccessibility'=>'accessibilité']];2 return ['domain'=>NULL,'plural-forms'=>'nplurals=2; plural=(n > 1);','language'=>'fr_FR','project-id-version'=>'WeDispatch – Text to Speech & Audio Articles','pot-creation-date'=>'2026-09-23T09:39:18+00:00','po-revision-date'=>'2026-09-23T09:39:18+00:00','x-generator'=>'wedispatch','messages'=>['Turns your posts, pages and custom post types into audio automatically when they are published, and shows an accessible player in the article. Requires a WeDispatch account (external service).'=>'Transforme vos articles, pages et types de contenu personnalisés en audio dès leur publication, et affiche un lecteur accessible dans l\'article. Nécessite un compte WeDispatch (service externe).','Help & checks'=>'Aide et vérifications','Plugin version'=>'Version de l\'extension','WordPress version'=>'Version de WordPress','PHP version'=>'Version de PHP','Service address'=>'Adresse du service','Connection state'=>'État de la connexion','Reading mode'=>'Mode de lecture','Content types'=>'Types de contenu','Player position'=>'Position du lecteur','Who can listen'=>'Qui peut écouter','Hourly access refresh'=>'Rafraîchissement horaire des accès','not scheduled'=>'non planifié','Site language'=>'Langue du site','Page cache emptied after each audio'=>'Cache de page vidé après chaque audio','no known cache plugin detected'=>'aucune extension de cache connue détectée','Checks'=>'Vérifications','These two checks call the service from this server, exactly as the plugin does when publishing. They spend nothing from your plan.'=>'Ces deux vérifications appellent le service depuis ce serveur, exactement comme le fait l\'extension à la publication. Elles ne consomment rien de votre forfait.','Check the API key'=>'Vérifier la clé API','Check subscriber-only audio'=>'Vérifier l\'audio réservé aux abonnés','Diagnostics'=>'Diagnostic','Paste this into your support request: it answers most of the questions we would otherwise have to ask.'=>'À coller dans votre demande de support : cela répond à la plupart des questions que nous devrions poser sinon.','Diagnostics, as text'=>'Diagnostic, en texte','Going further'=>'Pour aller plus loin','Documentation'=>'Documentation','My account area'=>'Mon espace client','Contact support'=>'Contacter le support','The player is placed with the WeDispatch audio player block, the widget of the same name, or the [wedispatch] shortcode.'=>'Le lecteur se place avec le bloc « Lecteur audio WeDispatch », le widget du même nom, ou le code court [wedispatch].','Not allowed'=>'Non autorisé','My subscription'=>'Mon abonnement','The plan cannot be read until the site is connected.'=>'Le forfait ne peut pas être lu tant que le site n\'est pas connecté.','%s credit per month'=>'%s crédit par mois' . "\0" . '%s crédits par mois','Refresh'=>'Rafraîchir','This account cannot generate audio yet.'=>'Ce compte ne peut pas encore générer d\'audio.','Subscribe to a plan to switch generation on.'=>'Souscrivez un forfait pour activer la génération.','Longest item accepted'=>'Contenu le plus long accepté','%s characters'=>'%s caractères','Regenerations per item'=>'Régénérations par contenu','Languages'=>'Langues','Synchronised transcript'=>'Transcript synchronisé','off (can be switched on in your account area)'=>'désactivé (réglable dans l\'espace client)','on'=>'activé','Change my monthly volume'=>'Changer mon volume mensuel','Choose my monthly volume'=>'Choisir mon volume mensuel','Manage my API keys'=>'Gérer mes clés API','Every feature is included, whatever your volume: the only question your subscription asks is how many credits per month. An item costs one credit per thousand characters started, so a long read costs several. The volume is chosen in your account area, where a slider shows what each step costs and what it gives you.'=>'Toutes les fonctionnalités sont incluses, quel que soit votre volume : la seule question que pose votre abonnement est combien de crédits par mois. Un contenu coûte un crédit par millier de caractères entamé, un contenu long en coûte donc plusieurs. Le volume se choisit dans votre espace client, où un curseur montre ce que coûte chaque palier et ce qu\'il vous donne.','This connection took too long. Please start again.'=>'Cette connexion a pris trop de temps. Merci de recommencer.','The service answered with an unexpected code (%d).'=>'Le service a répondu par un code inattendu (%d).','Connection cancelled. Nothing has changed.'=>'Connexion annulée. Rien n\'a changé.','This site is connected. Your API key was created and stored for you.'=>'Ce site est connecté. Votre clé API a été créée et enregistrée pour vous.','This site no longer uses your WeDispatch account. Your settings and your audio are untouched: connecting again puts everything back.'=>'Ce site n\'utilise plus votre compte WeDispatch. Vos réglages et vos audios sont intacts : reconnecter remet tout en place.','Disconnect this site?'=>'Déconnecter ce site ?','What is removed from this site'=>'Ce qui est retiré de ce site','The API key stored here, and everything read from your account.'=>'La clé API enregistrée ici, et tout ce qui a été lu de votre compte.','The secret that lets subscriber-only audio be listened to, and its hourly refresh.'=>'Le secret qui permet d\'écouter l\'audio réservé aux abonnés, et son renouvellement horaire.','What is kept'=>'Ce qui est conservé','Your settings: reading mode, content types, voices, player position.'=>'Vos réglages : mode de lecture, types de contenu, voix, position du lecteur.','The link between each item and its audio. Connecting the same account again puts everything back, and regenerates nothing.'=>'Le lien entre chaque contenu et son audio. Reconnecter le même compte remet tout en place, et ne régénère rien.','What this cannot do for you'=>'Ce que cela ne peut pas faire à votre place','The key keeps existing on wedispatch.fr and stays valid until you revoke it there. This site simply stops using it. Audio already published keeps being served.'=>'La clé continue d\'exister sur wedispatch.fr et reste valable tant que vous ne l\'y révoquez pas. Ce site cesse simplement de l\'utiliser. Les audios déjà publiés continuent d\'être servis.','Disconnect this site'=>'Déconnecter ce site','Cancel'=>'Annuler','Revoke the key on wedispatch.fr'=>'Révoquer la clé sur wedispatch.fr','Connect this site to WeDispatch'=>'Connecter ce site à WeDispatch','Not voiced: credits'=>'Non sonorisé : crédits','Automatic audio paused'=>'Sonorisation automatique suspendue','No audio'=>'Aucun audio','Text changed since'=>'Texte modifié depuis','Up to date'=>'À jour','This link has expired. Please try again.'=>'Ce lien a expiré. Merci de recommencer.','You are not allowed to edit this item.'=>'Vous n\'avez pas le droit de modifier ce contenu.','Queued. The audio will be prepared in the background.'=>'Mis en file. L\'audio sera préparé en tâche de fond.','The player no longer appears on this item. The audio itself still exists in your WeDispatch account.'=>'Le lecteur n\'apparaît plus sur ce contenu. L\'audio, lui, existe toujours dans votre compte WeDispatch.','Pick an action and at least one item.'=>'Choisissez une action et au moins un contenu.','%d item detached.'=>'%d contenu détaché.' . "\0" . '%d contenus détachés.','%d item queued.'=>'%d contenu mis en file.' . "\0" . '%d contenus mis en file.','%d item skipped: you may not edit it.'=>'%d contenu ignoré : vous n\'avez pas le droit de le modifier.' . "\0" . '%d contenus ignorés : vous n\'avez pas le droit de les modifier.','My content & audio'=>'Mes contenus et audio','Content type'=>'Type de contenu','All content types'=>'Tous les types de contenu','Audio state'=>'État de l\'audio','Any audio state'=>'Tous les états','With audio'=>'Avec audio','Search'=>'Rechercher','Search titles'=>'Rechercher dans les titres','Filter'=>'Filtrer','Bulk action'=>'Action groupée','Bulk actions'=>'Actions groupées','Generate or rebuild the audio'=>'Générer ou refaire l\'audio','Remove the player from these items'=>'Retirer le lecteur de ces contenus','Apply'=>'Appliquer','%s item'=>'%s contenu' . "\0" . '%s contenus','site voice'=>'voix du site','account default voice'=>'voix par défaut du compte','Select all'=>'Tout sélectionner','Title'=>'Titre','Audio'=>'Audio','Voice'=>'Voix','Listens'=>'Écoutes','Last edited'=>'Modifié le','Select %s'=>'Sélectionner %s','Generate the audio'=>'Générer l\'audio','Rebuild the audio'=>'Refaire l\'audio','Listen on the site'=>'Écouter sur le site','Transcript'=>'Transcript','SRT'=>'SRT','Check the display'=>'Vérifier l\'affichage','Remove the player'=>'Retirer le lecteur','Account default voice'=>'Voix par défaut du compte','no audio yet'=>'pas encore d\'audio','Nothing matches these filters.'=>'Aucun contenu ne correspond à ces filtres.','Previous'=>'Précédent','Next'=>'Suivant','Bulk actions queue the work in the background: WordPress prepares the audio a few seconds later, without holding this page. Come back and refresh to follow it.'=>'Les actions groupées mettent le travail en file : WordPress prépare l\'audio quelques secondes plus tard, sans retenir cette page. Revenez et rafraîchissez pour suivre.','Bar'=>'Barre','Card'=>'Carte','Minimal'=>'Minimal','Banner'=>'Bandeau','Compact'=>'Compact','Magazine'=>'Magazine','word-by-word timing'=>'un calage mot à mot','a short summary'=>'un résumé court','chapters in the article'=>'des chapitres dans l\'article','Audio jingle before the article'=>'Jingle audio avant l\'article','The address of an MP3 played before every article. Leave it empty to remove it. It must be a public https address: this file is fetched by every listener’s browser.'=>'L\'adresse d\'un MP3 joué avant chaque article. Laissez vide pour le retirer. Une adresse https publique est exigée : ce fichier est chargé par le navigateur de chaque auditeur.','Background music'=>'Musique de fond','The address of an MP3 played quietly under the reading. Same rule: a public https address.'=>'L\'adresse d\'un MP3 joué doucement sous la lecture. Même règle : une adresse https publique.','Music volume'=>'Volume de la musique','From 0 to 100, as a share of the voice. Around 15 keeps the music behind the words.'=>'De 0 à 100, en proportion de la voix. Autour de 15, la musique reste derrière les mots.','Length of the free preview'=>'Durée de l\'extrait gratuit','In seconds, from 5 to 300. How much a visitor hears before the subscribe prompt. Only used when the audio is reserved.'=>'En secondes, de 5 à 300. Ce qu\'un visiteur entend avant l\'invitation à s\'abonner. Utilisé seulement quand l\'audio est réservé.','Subscribe prompt: title'=>'Invitation à s\'abonner : titre','Subscribe prompt: message'=>'Invitation à s\'abonner : message','Subscribe prompt: button'=>'Invitation à s\'abonner : bouton','Subscribe prompt: where the button goes'=>'Invitation à s\'abonner : destination du bouton','A public https address, usually your own subscription page.'=>'Une adresse https publique, en général votre propre page d\'abonnement.','Do not impose a font'=>'Ne pas imposer de police','System'=>'Système','Serif'=>'Serif','Monospace'=>'Chasse fixe','Rounded'=>'Arrondie','Slow'=>'Lente','Normal'=>'Normale','Brisk'=>'Enlevée','Highlight the text as it is read'=>'Surligner le texte au fil de la lecture','The words light up one by one during playback. It needs word-level timing, which not every audio tier produces.'=>'Les mots s\'allument un à un pendant l\'écoute. Cela demande un calage mot à mot, que tous les paliers audio ne produisent pas.','Read a short summary before the article'=>'Lire un résumé court avant l\'article','A few sentences that say what the article is about, read before it.'=>'Quelques phrases qui disent de quoi parle l\'article, lues avant lui.','Let listeners download the audio'=>'Permettre le téléchargement de l\'audio','A download button in the player. Useful for listening offline, on a commute or with no signal.'=>'Un bouton de téléchargement dans le lecteur. Utile pour écouter hors ligne, dans les transports ou sans réseau.','Show sharing buttons'=>'Afficher les boutons de partage','Sharing links in the player. No third-party script is loaded and no visitor is tracked.'=>'Des liens de partage dans le lecteur. Aucun script tiers n\'est chargé et aucun visiteur n\'est tracé.','%1$s must be between %2$s and %3$s.'=>'%1$s doit être compris entre %2$s et %3$s.','%s must be a public https address, 500 characters at most.'=>'%s doit être une adresse https publique, de 500 caractères au maximum.','A jingle address must be a public https address.'=>'L\'adresse d\'un jingle doit être une adresse https publique.','Nothing to change.'=>'Rien à modifier.','The WeDispatch service has not been updated yet, so this screen cannot save. Nothing has changed, and your player is untouched.'=>'Le service WeDispatch n\'a pas encore été mis à jour : cet écran ne peut pas enregistrer. Rien n\'a changé, et votre lecteur est intact.','The service did not answer.'=>'Le service n\'a pas répondu.','Saved. Your player changes on every article, right away.'=>'Enregistré. Votre lecteur change sur tous les articles, tout de suite.','%s (set in your account area)'=>'%s (réglé dans votre espace client)','Comes with the paid plans.'=>'Vient avec les forfaits payants.','Player'=>'Lecteur','The player is set on your WeDispatch account'=>'Le lecteur se règle sur votre compte WeDispatch','These settings live with your account, so the same player appears everywhere your audio is published. Connect the site and they can be changed from here.'=>'Ces réglages vivent avec votre compte : le même lecteur apparaît partout où votre audio est publié. Connectez le site et ils se modifient d\'ici.','Go to the settings'=>'Aller aux réglages','This screen is ahead of the service'=>'Cet écran est en avance sur le service','Your version of the plugin can set the player from here, but the WeDispatch service has not been updated yet. Nothing is wrong: your player works, and its settings are exactly as you left them. This screen will start working on its own, with no action from you.'=>'Votre version du module sait régler le lecteur d\'ici, mais le service WeDispatch n\'a pas encore été mis à jour. Rien n\'est cassé : votre lecteur fonctionne, et ses réglages sont exactement tels que vous les avez laissés. Cet écran se mettra à marcher tout seul, sans rien faire de votre côté.','Set the player on my account meanwhile'=>'Régler le lecteur sur mon compte en attendant','Check again'=>'Vérifier à nouveau','The player settings could not be read'=>'Les réglages du lecteur n\'ont pas pu être lus','Nothing has been lost: your player keeps the settings it already had. This screen simply will not change them while it cannot show them.'=>'Rien n\'est perdu : votre lecteur garde les réglages qu\'il avait. Cet écran refuse simplement de les modifier tant qu\'il ne peut pas les montrer.','Run the checks'=>'Lancer les vérifications','Appearance'=>'Apparence','These settings belong to your WeDispatch account, so the same player appears everywhere your audio is published, not only on this site.'=>'Ces réglages appartiennent à votre compte WeDispatch : le même lecteur apparaît partout où votre audio est publié, pas seulement sur ce site.','Player layout'=>'Modèle de lecteur','Your plan uses the default layout. The others come with the paid plans.'=>'Votre forfait utilise le modèle par défaut. Les autres viennent avec les forfaits payants.','This layout needs %s. An item that does not have it is served with the compact bar instead, without an error.'=>'Ce gabarit demande %s. Un contenu qui ne l\'a pas est servi avec la barre compacte à la place, sans erreur.','Font'=>'Police','System fonts only: a player never loads anything from a third party, so your readers are not exposed to one.'=>'Uniquement des polices système : un lecteur ne charge jamais rien chez un tiers, vos lecteurs n\'y sont donc pas exposés.','Default speed'=>'Vitesse par défaut','The speed a listener starts at. They can always change it themselves.'=>'La vitesse à laquelle un auditeur démarre. Il peut toujours la changer lui-même.','Finer appearance settings, including a stylesheet of your own, are available in your WeDispatch account. They apply to this site as well.'=>'Les réglages d\'apparence plus fins, dont votre propre feuille de style, sont dans votre compte WeDispatch. Ils valent aussi pour ce site.','Open player appearance in your account'=>'Ouvrir l\'apparence du lecteur dans votre compte','Sound around the reading'=>'L\'habillage sonore','Advertising break inside long items'=>'Coupure publicitaire dans les contenus longs','Enabled'=>'Activé','Only applies to items long enough for a break to make sense, and only if an ad source is set on your account.'=>'Ne s\'applique qu\'aux contenus assez longs pour qu\'une coupure ait du sens, et seulement si une régie est réglée sur votre compte.','A different jingle per category'=>'Un jingle différent par rubrique','Leave a line empty to use the jingle above. These are stored on your account by category name, so a category from another site of yours is kept even though it does not appear here.'=>'Laissez une ligne vide pour utiliser le jingle ci-dessus. Ces jingles sont rangés sur votre compte par nom de rubrique : une rubrique d\'un autre de vos sites est conservée, même si elle n\'apparaît pas ici.','How to pronounce your words'=>'Comment prononcer vos mots','One per line, written on the left and pronounced on the right, separated by an equals sign. Useful for place names, brands and initials that the voice gets wrong.'=>'Une par ligne, l\'écrit à gauche et le prononcé à droite, séparés par un signe égal. Utile pour les noms de lieux, les marques et les sigles que la voix écorche.','A line without an equals sign is ignored rather than guessed at: an invented pronunciation would be heard on every article. Up to 200 entries.'=>'Une ligne sans signe égal est ignorée plutôt que devinée : une prononciation inventée s\'entendrait sur tous les articles. 200 entrées au maximum.','What the player offers'=>'Ce que propose le lecteur','Highlighting is unavailable on the audio tier this account uses: it needs word-level timing, which that tier does not produce. Nothing is lost, and audio already made keeps its timing.'=>'Le surlignage est indisponible sur le palier audio de ce compte : il demande un calage mot à mot que ce palier ne produit pas. Rien n\'est perdu, et les audios déjà fabriqués gardent leur calage.','What a visitor reads when the audio is reserved'=>'Ce que lit un visiteur quand l\'audio est réservé','Your audio is open to everyone right now, so none of this is shown to anyone. You can write it in advance: it takes effect the day you reserve your audio, which is done from your account area.'=>'Votre audio est ouvert à tous pour le moment : rien de tout ceci n\'est montré à qui que ce soit. Vous pouvez l\'écrire d\'avance, cela prendra effet le jour où vous réserverez votre audio, depuis votre espace client.','Shown once the free preview ends, in the player itself.'=>'Affiché à la fin de l\'extrait gratuit, dans le lecteur lui-même.','Save the player'=>'Enregistrer le lecteur','Reload from my account'=>'Relire depuis mon compte','Everyone'=>'Tout le monde','Your subscribers'=>'Vos abonnés','Your registered users'=>'Vos inscrits','other visitors only hear a preview.'=>'les autres visiteurs n\'entendent qu\'un extrait.','This one is not changed from here, and that is deliberate: switching it moves every audio file you have ever published from one storage area to another. Done halfway, it would silence your whole archive. Your account area runs the full sequence.'=>'Celui-ci ne se change pas d\'ici, et c\'est délibéré : le basculer déplace tous les fichiers audio que vous avez publiés d\'un espace de stockage à un autre. Fait à moitié, il rendrait muettes toutes vos archives. Votre espace client exécute la séquence entière.','Change it on my account'=>'Le changer sur mon compte','Which roles count as subscribers'=>'Quels rôles comptent comme abonnés','Overview'=>'Vue d\'ensemble','Voices'=>'Voix','Statistics'=>'Statistiques','Settings'=>'Réglages','WeDispatch: %s'=>'WeDispatch : %s','Connect'=>'Connecter','WeDispatch is installed.'=>'WeDispatch est installé.','Connect this site to hear your posts read aloud: your account is created on the way, and trying it is free. Nothing is sent unless you click.'=>'Connectez ce site pour entendre vos articles lus à voix haute : votre compte se crée au passage, et l\'essai est gratuit. Rien n\'est envoyé sans un clic de votre part.','See what it does'=>'Voir ce que ça fait','Do not show this again'=>'Ne plus afficher','A post was not read aloud.'=>'Un article n\'a pas été lu à voix haute.','“%s”'=>'« %s »','Choose a plan'=>'Choisir un forfait','See my content'=>'Voir mes contenus','%1$s of %2$s'=>'%1$s sur %2$s','Content'=>'Contenu','To the end'=>'Jusqu\'au bout','Untitled'=>'Sans titre','and %s preview'=>'et %s extrait' . "\0" . 'et %s extraits','By byline'=>'Par signature','%s byline'=>'%s signature' . "\0" . '%s signatures','Byline'=>'Signature','Items'=>'Contenus','Unsigned'=>'Non signé','Every item counts here, including those with no byline: the rows add up to the totals above. Each completion rate is worked out on that byline’s own listens.'=>'Tous les contenus comptent ici, y compris ceux sans signature : la somme des lignes redonne les totaux ci-dessus. Chaque taux d\'écoute complète est calculé sur les écoutes de cette signature.','No figures without a connection'=>'Pas de chiffres sans connexion','Listening figures are counted by WeDispatch and read with your API key. Once the site is connected, they appear here.'=>'Les écoutes sont comptées par WeDispatch et lues avec votre clé API. Dès que le site est connecté, elles apparaissent ici.','The figures could not be read'=>'Les chiffres n\'ont pas pu être lus','Try again'=>'Réessayer','No listens yet'=>'Aucune écoute pour l\'instant','WeDispatch counts a listen when a visitor presses play on one of your pages. Nothing has been counted so far. If audio has just gone live, give it a little time; if the player does not appear on your articles, the checks will say why.'=>'WeDispatch compte une écoute quand un visiteur appuie sur lecture sur l\'une de vos pages. Rien n\'a encore été compté. Si l\'audio vient d\'être mis en ligne, laissez-lui un peu de temps ; si le lecteur n\'apparaît pas sur vos articles, les vérifications diront pourquoi.','The last 30 days'=>'Les 30 derniers jours','listen'=>'écoute' . "\0" . 'écoutes','first period counted'=>'première période comptée','%s versus the 30 days before'=>'%s par rapport aux 30 jours d\'avant','over the 30 days before'=>'sur les 30 jours d\'avant','Since the beginning'=>'Depuis le début','listened to the end'=>'écoutées jusqu\'au bout','%s of listens'=>'%s des écoutes','clicks on the subscribe prompt'=>'clics sur l\'invitation à s\'abonner','%s of the times it was shown'=>'%s des fois où elle a été montrée','ad played'=>'publicité diffusée' . "\0" . 'publicités diffusées','preview'=>'extrait' . "\0" . 'extraits','reserved audio, heard partly'=>'audio réservé, entendu en partie','Your most listened content'=>'Vos contenus les plus écoutés','A listen is counted when a visitor presses play. “To the end” is the share of listens that reached the end of the audio.'=>'Une écoute est comptée quand un visiteur appuie sur lecture. « Jusqu\'au bout » est la part des écoutes qui ont atteint la fin de l\'audio.','Counted on this key, published elsewhere'=>'Comptés sur cette clé, publiés ailleurs','These items were produced with the same API key from another site, or have since been deleted here. They are shown because they count towards the totals above.'=>'Ces contenus ont été produits avec la même clé API depuis un autre site, ou ont été supprimés d\'ici depuis. Ils sont montrés parce qu\'ils comptent dans les totaux ci-dessus.','Refresh the figures'=>'Rafraîchir les chiffres','Counted %s ago.'=>'Compté il y a %s.','The voice catalogue could not be read, so nothing was changed.'=>'Le catalogue des voix n\'a pas pu être lu : rien n\'a été modifié.','%d rule saved.'=>'%d règle enregistrée.' . "\0" . '%d règles enregistrées.','%d voice was rejected: it is not in your plan catalogue.'=>'%d voix a été refusée : elle ne figure pas au catalogue de votre forfait.' . "\0" . '%d voix ont été refusées : elles ne figurent pas au catalogue de votre forfait.','How the voice of an item is chosen'=>'Comment la voix d\'un contenu est choisie','In Auto mode, WeDispatch goes down this list and stops at the first rule that applies. Everything on this page is one of these rules.'=>'En mode Auto, WeDispatch descend cette liste et s\'arrête à la première règle qui s\'applique. Tout ce que porte cette page est l\'une de ces règles.','The category of the item'=>'La rubrique du contenu','%s category has a voice'=>'%s rubrique a une voix' . "\0" . '%s rubriques ont une voix','no category has a voice yet'=>'aucune rubrique n\'a encore de voix','The author of the item'=>'L\'auteur du contenu','%s author has a voice'=>'%s auteur a une voix' . "\0" . '%s auteurs ont une voix','no author has a voice yet'=>'aucun auteur n\'a encore de voix','The site voice'=>'La voix du site','not set'=>'non définie','The account default voice'=>'La voix par défaut du compte','always applies, and is set in your WeDispatch account'=>'s\'applique toujours, et se règle dans votre compte WeDispatch','The voice list is not available right now'=>'La liste des voix n\'est pas disponible pour le moment','The rules above are still in force: nothing has been lost. But this page will not let you change them while it cannot show which voices your plan offers, because an empty list would quietly erase the choices already made.'=>'Les règles ci-dessus restent en vigueur : rien n\'a été perdu. Mais cette page ne vous laissera pas les modifier tant qu\'elle ne peut pas montrer les voix qu\'offre votre forfait : une liste vide effacerait en silence les choix déjà faits.','Site voice'=>'Voix du site','Used whenever no category and no author says otherwise. This is the same setting as the one on the Settings screen.'=>'Utilisée dès qu\'aucune rubrique et aucun auteur n\'en décide autrement. C\'est le même réglage que celui de l\'écran Réglages.','A default voice per language'=>'Une voix par défaut par langue','This one belongs to your WeDispatch account, not to this site: it is the voice applied when nothing else says otherwise, whatever the language of the item. Leave a line empty to fall back to the account default voice.'=>'Celle-ci appartient à votre compte WeDispatch, pas à ce site : c\'est la voix appliquée quand rien d\'autre n\'en décide, selon la langue du contenu. Laissez une ligne vide pour revenir à la voix par défaut du compte.','A voice per category'=>'Une voix par rubrique','%s category'=>'%s rubrique' . "\0" . '%s rubriques','Sport does not have to sound like the obituaries. A category voice wins over everything else.'=>'Le sport n\'est pas obligé de sonner comme le carnet du jour. Une voix de rubrique l\'emporte sur tout le reste.','A voice per category comes with the paid plans.'=>'Une voix par rubrique vient avec les forfaits payants.','Any category voice already set here keeps working: nothing has been erased, and this table opens again the day the plan does.'=>'Toute voix de rubrique déjà réglée ici continue de s\'appliquer : rien n\'a été effacé, et ce tableau se rouvre le jour où le forfait le rouvre.','See my plan'=>'Voir mon forfait','Category'=>'Rubrique','Showing the %1$s largest categories out of %2$s. The rest can be set one by one from the Categories screen.'=>'Les %1$s plus grandes rubriques sur %2$s sont affichées. Les autres se règlent une à une depuis l\'écran Catégories.','A voice per author'=>'Une voix par auteur','%s author'=>'%s auteur' . "\0" . '%s auteurs','Only the people who have actually published in the content types you read aloud are listed. An author voice applies when no category says otherwise.'=>'Seules les personnes qui ont réellement publié dans les types de contenu que vous sonorisez sont listées. Une voix d\'auteur s\'applique quand aucune rubrique n\'en décide autrement.','Author'=>'Auteur','Showing %1$s authors out of %2$s. The rest can be set one by one from their profile.'=>'%1$s auteurs affichés sur %2$s. Les autres se règlent un à un depuis leur profil.','Save the voices'=>'Enregistrer les voix','The voices your plan offers'=>'Les voix qu\'offre votre forfait','%s voice'=>'%s voix' . "\0" . '%s voix','signature voices'=>'voix signature','A voice native to one language reads that language best. Voices listed under “All languages” read every language of the account.'=>'Une voix native d\'une langue lit cette langue au mieux. Les voix classées sous « Toutes les langues » lisent toutes les langues du compte.','Refresh the voice list'=>'Rafraîchir la liste des voix','My WeDispatch account'=>'Mon compte WeDispatch','Expired form. Nothing was saved: reload the page and try again.'=>'Formulaire expiré. Rien n\'a été enregistré : rechargez la page et recommencez.','Both boxes are needed: the word as it is written, and the way it should be said.'=>'Les deux champs sont nécessaires : le mot tel qu\'il s\'écrit, et la façon dont il doit se dire.','The service refused the correction: %s'=>'Le service a refusé la correction : %s','Saved. It applies to every audio generated from now on, on this site and everywhere your account generates audio. Already existing audio keeps its sound until you rebuild it.'=>'Enregistré. La correction s\'applique à tous les audios générés à partir de maintenant, sur ce site et partout où votre compte en génère. Les audios déjà produits gardent leur son tant que vous ne les refaites pas.','The removal did not go through: %s'=>'Le retrait n\'est pas passé : %s','Removed. Future audio reads the word as written again.'=>'Retiré. Les prochains audios liront de nouveau le mot tel qu\'il s\'écrit.','Pronunciations'=>'Prononciations','A proper name read wrong? Write it as it is written, then as it should be said. The correction lives on your WeDispatch account and applies to every audio generated from now on.'=>'Un nom propre mal lu ? Écrivez-le tel qu\'il s\'écrit, puis tel qu\'il doit se dire. La correction vit sur votre compte WeDispatch et s\'applique à tous les audios générés à partir de maintenant.','The list could not be read from the service just now. Your corrections are safe; reload in a moment.'=>'La liste n\'a pas pu être lue à l\'instant. Vos corrections sont en sécurité ; rechargez dans un moment.','Written'=>'Écrit','Said as'=>'Dit','Remove'=>'Retirer','As written'=>'Tel qu\'il s\'écrit','As it should be said'=>'Tel qu\'il doit se dire','Save this pronunciation'=>'Enregistrer cette prononciation','Already generated audio keeps its sound: rebuild an item from the Contents screen to hear the correction.'=>'Les audios déjà produits gardent leur son : refaites un contenu depuis l\'écran des contenus pour entendre la correction.','Every item already carries its byline.'=>'Tous les contenus portent déjà leur signature.','%d byline queued.'=>'%d signature mise en file.' . "\0" . '%d signatures mises en file.','Add the missing bylines'=>'Poser les signatures manquantes','%s item already has its audio but no byline. Sending the byline again costs nothing: the text has not changed, so no audio is produced and nothing is taken off your monthly volume.'=>'%s contenu a déjà son audio mais pas de signature. Renvoyer la signature ne coûte rien : le texte n\'a pas changé, aucun audio n\'est fabriqué et rien n\'est pris sur votre volume mensuel.' . "\0" . '%s contenus ont déjà leur audio mais pas de signature. Renvoyer les signatures ne coûte rien : les textes n\'ont pas changé, aucun audio n\'est fabriqué et rien n\'est pris sur votre volume mensuel.','Post the bylines'=>'Poser les signatures','Bylines feed the “By byline” table on the Statistics screen. An item whose text has changed since it was turned into audio is not in this list: it will carry its byline the next time it is generated.'=>'Les signatures alimentent le tableau « Par signature » de l\'écran Statistiques. Un contenu dont le texte a changé depuis sa sonorisation ne figure pas dans cette liste : il portera sa signature à sa prochaine génération.','Let every new post get its audio'=>'Donner un audio à chaque nouvel article','This site is in manual mode: nothing is read aloud unless someone asks. In automatic mode, every post you publish gets its audio a few seconds later, and each one uses credits according to its length. You can come back to manual at any time in Settings.'=>'Ce site est en mode manuel : rien n\'est lu à voix haute sans qu\'on le demande. En mode automatique, chaque article publié reçoit son audio quelques secondes plus tard, et chacun consomme des crédits selon sa longueur. Vous pouvez revenir au manuel à tout moment dans les Réglages.','Switch to automatic'=>'Passer en automatique','Automatic mode is on: the next post you publish gets its audio on its own.'=>'Le mode automatique est activé : le prochain article publié recevra son audio tout seul.','Hear your first audio'=>'Écouter votre premier audio','Use your trial'=>'Utiliser votre essai','Your trial has %1$s left, and they do not expire. A credit covers %2$s characters, so a long post uses several.'=>'Votre essai compte encore %1$s, et ils n\'expirent pas. Un crédit couvre %2$s caractères : un long article en consomme plusieurs.','%s credit'=>'%s crédit' . "\0" . '%s crédits','Read “%s” aloud'=>'Lire « %s » à voix haute','Your most recent post that fits in what your trial has left. Nothing else is sent: this site stays in manual mode until you switch it to automatic in Settings.'=>'Votre article le plus récent qui tient dans ce qui reste de l\'essai. Rien d\'autre n\'est envoyé : ce site reste en mode manuel jusqu\'à ce que vous passiez en automatique dans les Réglages.','Your recent posts are all longer than what your trial has left. Pick a shorter one in My content & audio, or choose a plan: the price follows the volume you publish.'=>'Vos articles récents dépassent tous ce qui reste de l\'essai. Choisissez-en un plus court dans Mes contenus et audio, ou choisissez un forfait : le prix suit le volume que vous publiez.','Choose a post myself'=>'Choisir un article moi-même','This item can no longer be voiced from here. Open My content & audio to pick another one.'=>'Ce contenu ne peut plus être sonorisé d\'ici. Ouvrez Mes contenus et audio pour en choisir un autre.','Your first audio is on its way. It usually takes under a minute: open the post to hear it, the player appears on its own.'=>'Votre premier audio est en route. Il faut en général moins d\'une minute : ouvrez l\'article pour l\'écouter, le lecteur s\'affiche tout seul.','Nothing left to use this month.'=>'Il ne reste rien à utiliser ce mois-ci.','Every published item already has its audio.'=>'Tous les contenus publiés ont déjà leur audio.','Use what is left this month'=>'Utiliser ce qui reste ce mois-ci','You have %1$s left, and %2$s that have no audio yet.'=>'Il vous reste %1$s, et %2$s sans audio.','You have %1$s left this month, and %2$s that have no audio yet. What is not used before the end of the month is lost.'=>'Il vous reste %1$s ce mois-ci, et %2$s n\'ont pas encore d\'audio. Ce qui n\'est pas utilisé avant la fin du mois est perdu.','%s published item'=>'%s contenu publié' . "\0" . '%s contenus publiés','An item costs at least one credit, and a long one costs several: depending on their length, the last ones may not go through this month.'=>'Un contenu coûte au moins un crédit, et un contenu long en coûte plusieurs : selon leur longueur, les derniers ne passeront peut-être pas ce mois-ci.','Voice the next %s item'=>'Sonoriser le prochain contenu' . "\0" . 'Sonoriser les %s prochains contenus','Choose them myself'=>'Les choisir moi-même','The most recent ones first. They are queued in the background: WordPress prepares the audio a few seconds later, without holding this page.'=>'Les plus récents d\'abord. Ils sont mis en file en arrière-plan : WordPress prépare l\'audio quelques secondes plus tard, sans retenir cette page.','There is no published post long enough to make a sample from yet.'=>'Aucun article publié n\'est encore assez long pour en faire un extrait.','Here is how your post sounds. Connect the site to get the whole post, and the player on the page.'=>'Voici comment sonne votre article. Connectez le site pour avoir l\'article entier, et le lecteur sur la page.','Several samples were played in the last hour. Try again later, or connect the site to voice every post.'=>'Plusieurs extraits ont été écoutés dans l\'heure. Réessayez plus tard, ou connectez le site pour sonoriser chaque article.','Samples are not available right now. Connecting the site still works, and trying it is free.'=>'Les extraits ne sont pas disponibles pour le moment. La connexion du site fonctionne toujours, et l\'essai est gratuit.','The sample could not be produced. Try again in a moment.'=>'L\'extrait n\'a pas pu être produit. Réessayez dans un instant.','Hear a 20-second sample of my latest post'=>'Écouter 20 secondes de mon dernier article','No account needed. Only the opening of your most recent post is sent, when you click, and the text is not kept.'=>'Sans compte. Seul le début de votre article le plus récent est envoyé, au moment du clic, et le texte n\'est pas conservé.','Plugin activated'=>'Extension activée','Site connected to WeDispatch'=>'Site connecté à WeDispatch','Default voice chosen'=>'Voix par défaut choisie','First audio generated'=>'Premier audio généré','Player seen on the public page'=>'Lecteur vu sur la page publique','Where this site stands'=>'Où en est ce site','item with audio'=>'contenu sonorisé' . "\0" . 'contenus sonorisés','published item eligible'=>'contenu publié éligible' . "\0" . 'contenus publiés éligibles','Manual'=>'Manuel','Auto'=>'Auto','reading mode'=>'mode de lecture','Content types read aloud: %s.'=>'Contenus sonorisés : %s.','Getting started'=>'Mise en route','done'=>'fait','still to do'=>'reste à faire','This month'=>'Ce mois-ci','Plan and credits'=>'Forfait et crédits','Next step'=>'Prochaine étape','Connect this site in one click: you sign in or create your WeDispatch account, and the site is authorised on the way. There is no key to copy, and trying it is free. Nothing is sent anywhere unless you click.'=>'Connectez ce site en un clic : vous vous connectez ou créez votre compte WeDispatch, et le site est autorisé au passage. Aucune clé à copier, et l\'essai est gratuit. Rien n\'est envoyé nulle part sans un clic de votre part.','Paste my API key'=>'Coller ma clé API','The key stored on this site is not accepted. The most common reason is a key created for a different WeDispatch environment: a key is only valid where it was created.'=>'La clé enregistrée sur ce site n\'est pas acceptée. La cause la plus fréquente est une clé créée sur un autre environnement WeDispatch : une clé n\'est valable que là où elle a été créée.','Replace the key'=>'Remplacer la clé','The service could not be reached from this server. Your key is not in question. This usually clears on its own; if it does not, your host may be blocking outgoing requests.'=>'Le service n\'a pas pu être joint depuis ce serveur. Votre clé n\'est pas en cause. Cela se rétablit généralement seul ; sinon, votre hébergeur bloque peut-être les requêtes sortantes.','Generate the audio, automatically or by hand'=>'Générer l\'audio, automatiquement ou à la main','Choose where the player sits in the article'=>'Choisir où le lecteur se pose dans l\'article','Pick the voices: site, per category, per author'=>'Choisir les voix : site, rubrique, signature','Check that the player really shows up'=>'Vérifier que le lecteur s\'affiche vraiment','The look of the player: model, style, colours'=>'L\'apparence du lecteur : modèle, style, couleurs','Detailed listening statistics'=>'Les statistiques d\'écoute détaillées','Plan, credits and invoices'=>'Forfait, crédits et factures','Signature voice, gated audio, translations'=>'Voix signature, audio réservé, traductions','What lives where'=>'Ce qui se fait où','The product lives in two places. Here, inside WordPress: what touches your content. In your WeDispatch account: what touches your listeners and your plan.'=>'Le produit vit à deux endroits. Ici, dans WordPress : ce qui touche à vos contenus. Dans votre compte WeDispatch : ce qui touche à vos auditeurs et à votre forfait.','Here, in WordPress'=>'Ici, dans WordPress','In your WeDispatch account'=>'Dans votre compte WeDispatch','Your articles are a podcast'=>'Vos articles sont un podcast','Every audio this site publishes also lands in an RSS podcast feed. Submit it once to the platforms, and your articles follow your readers into their podcast app.'=>'Chaque audio publié par ce site alimente aussi un flux podcast RSS. Soumettez-le une fois aux plateformes, et vos articles suivent vos lecteurs dans leur application de podcast.','Podcast feed address'=>'Adresse du flux podcast','Submit to Spotify'=>'Soumettre à Spotify','Submit to Apple Podcasts'=>'Soumettre à Apple Podcasts','The feed is public by construction, like every podcast feed. Platforms refresh it on their own; there is nothing to resubmit when you publish.'=>'Le flux est public par construction, comme tout flux podcast. Les plateformes le relèvent d\'elles-mêmes ; il n\'y a rien à resoumettre quand vous publiez.','of %s credit this month'=>'sur %s crédit ce mois-ci' . "\0" . 'sur %s crédits ce mois-ci','of %s characters this month (internal measure: your plan is counted in credits)'=>'sur %s caractères ce mois-ci (mesure interne : votre forfait se compte en crédits)','credit this month, with no monthly ceiling on this plan'=>'crédit ce mois-ci, sans plafond mensuel sur ce forfait' . "\0" . 'crédits ce mois-ci, sans plafond mensuel sur ce forfait','characters this month (internal measure), with no monthly ceiling on this plan'=>'caractères ce mois-ci (mesure interne), sans plafond mensuel sur ce forfait','%s credit left.'=>'%s crédit restant.' . "\0" . '%s crédits restants.','Unused credits are not carried over: the count starts again at the beginning of each month.'=>'Les crédits non consommés ne sont pas reportés : le compte repart au début de chaque mois.','(%s characters)'=>'(%s caractères)','No API key has been entered'=>'Aucune clé API renseignée','This content has never been turned into audio'=>'Ce contenu n\'a jamais été sonorisé','Not connected'=>'Non connecté','Paste the API key from your WeDispatch account to get started.'=>'Collez la clé API de votre compte WeDispatch pour démarrer.','Connected'=>'Connecté','Service unreachable'=>'Service injoignable','API key refused'=>'Clé API refusée','%s article/month'=>'%s article/mois' . "\0" . '%s articles/mois','Plan: %s'=>'Forfait : %s','Open the settings'=>'Ouvrir les réglages','This site talks to %s. A key created on another environment is refused, however valid it is there.'=>'Ce site parle à %s. Une clé créée sur un autre environnement est refusée, si valable soit-elle là-bas.','This screen is in English, and your WordPress is not'=>'Cet écran est en anglais, et votre WordPress ne l\'est pas','WeDispatch has no translation for %s yet. If you speak it, you can write one. Translations live on WordPress.org, and once your language team has reviewed yours, WordPress installs it on every site automatically.'=>'WeDispatch n\'a pas encore de traduction en %s. Si vous parlez cette langue, vous pouvez en écrire une. Les traductions vivent sur WordPress.org, et une fois la vôtre relue par votre équipe de langue, WordPress l\'installe automatiquement sur tous les sites.','Please upload it from your own WordPress.org account rather than sending us a file, so that your language team can give feedback to you directly.'=>'Envoyez-la depuis votre propre compte WordPress.org plutôt que de nous transmettre un fichier : c\'est ce qui permet à votre équipe de langue de vous répondre directement.','Translate WeDispatch'=>'Traduire WeDispatch','How translating works'=>'Comment se passe une traduction','Do not tell me again'=>'Ne plus me le dire','The player did not show up on my pages'=>'Le lecteur ne s\'affichait pas sur mes pages','The voice or the reading did not convince me'=>'La voix ou la lecture ne m\'a pas convaincu','It was harder to set up than I expected'=>'L\'installation a été plus compliquée que prévu','Price, or I only wanted to try it out'=>'Le prix, ou je voulais seulement essayer','Temporary: I will switch it back on'=>'C\'est temporaire : je vais la réactiver','Before you go, one question'=>'Une question avant de partir','It is optional, and your answer changes what we fix next. You can deactivate without answering.'=>'C\'est facultatif, et votre réponse change ce que nous corrigeons ensuite. Vous pouvez désactiver sans répondre.','Something else'=>'Autre chose','Anything you would like to add'=>'Ce que vous voulez ajouter','Anything you would like to add (optional)'=>'Ce que vous voulez ajouter (facultatif)','If you send it, we receive: the reason you picked, your comment, and the plugin version. Nothing else. No content, no addresses, nothing about your visitors.'=>'Si vous l\'envoyez, nous recevons : le motif choisi, votre commentaire et la version de l\'extension. Rien d\'autre : aucun contenu, aucune adresse, rien sur vos visiteurs.','Send and deactivate'=>'Envoyer et désactiver','Deactivate without answering'=>'Désactiver sans répondre','This content has no audio yet'=>'Ce contenu n\'a pas encore d\'audio','Nothing can be displayed as long as no audio version exists.'=>'Rien ne peut s\'afficher tant qu\'aucune version audio n\'existe.','Generate the audio first, then run this check again.'=>'Générez d\'abord l\'audio, puis relancez cette vérification.','The player is set to manual placement'=>'Le lecteur est en placement manuel','With this setting, WeDispatch never inserts the player on its own: it waits for the block or the shortcode.'=>'Avec ce réglage, WeDispatch ne pose jamais le lecteur de lui-même : il attend le bloc ou le code court.','Either add the WeDispatch block to this content, or switch the position setting back to automatic.'=>'Ajoutez le bloc WeDispatch à ce contenu, ou remettez le réglage de position sur automatique.','The player is on the page'=>'Le lecteur est bien sur la page','Placement is manual, and the block is indeed in place.'=>'Le placement est manuel, et le bloc est bien posé.','The page could not be read'=>'La page n\'a pas pu être lue','This site could not call itself: %s. Some hosts block these loopback requests. This says nothing about the player: it only means the check could not look.'=>'Ce site n\'a pas pu s\'appeler lui-même : %s. Certains hébergeurs bloquent ces requêtes en boucle locale. Cela ne dit rien du lecteur : seulement que la vérification n\'a pas pu regarder.','no response'=>'aucune réponse','Open the page yourself in a private window: what you see there is the truth.'=>'Ouvrez la page vous-même dans une fenêtre privée : ce que vous y voyez fait foi.','Found in the HTML served to visitors.'=>'Trouvé dans le HTML servi aux visiteurs.','The player is missing from the page'=>'Le lecteur est absent de la page','The audio exists and placement is automatic, but nothing was found in the page. This almost always means the theme or the page builder renders the content without going through WordPress, so no plugin can insert anything into it.'=>'L\'audio existe et le placement est automatique, mais rien n\'a été trouvé dans la page. Cela veut presque toujours dire que le thème ou le constructeur de pages rend le contenu sans passer par WordPress : aucune extension ne peut alors y insérer quoi que ce soit.','Add the WeDispatch block where you want the player, or paste the [wedispatch] shortcode. Both work regardless of the theme.'=>'Ajoutez le bloc WeDispatch où vous voulez le lecteur, ou collez le code court [wedispatch]. Les deux fonctionnent quel que soit le thème.','HTTP %d'=>'HTTP %d','Read the transcript'=>'Lire le transcript','More audio articles'=>'D\'autres articles à écouter','Listen next'=>'À écouter ensuite','Some of your content is never read aloud'=>'Une partie de vos contenus n\'est jamais lue','This site has %s that WeDispatch does not touch, because only Posts are enabled.'=>'Ce site compte %s que WeDispatch ne touche pas, parce que seuls les articles sont activés.','Choose what gets read'=>'Choisir ce qui est lu','French'=>'Français','English'=>'Anglais','Spanish'=>'Espagnol','German'=>'Allemand','Italian'=>'Italien','Hindi'=>'Hindi','Chinese'=>'Chinois','Arabic'=>'Arabe','Portuguese'=>'Portugais','Japanese'=>'Japonais','Hebrew'=>'Hébreu','Korean'=>'Coréen','Dutch'=>'Néerlandais','Swedish'=>'Suédois','Polish'=>'Polonais','Tamil'=>'Tamoul','Telugu'=>'Télougou','Russian'=>'Russe','Turkish'=>'Turc','Thai'=>'Thaï','Filipino'=>'Filipino','Czech'=>'Tchèque','Finnish'=>'Finnois','Female'=>'Femme','Male'=>'Homme','Checking…'=>'Vérification…','The key is accepted by the service.'=>'La clé est acceptée par le service.','This site can attest to its visitors’ status. Nothing else to do.'=>'Ce site sait attester du statut de ses visiteurs. Rien d\'autre à faire.','failed'=>'échec','Network error'=>'Erreur réseau','Looking at the public page…'=>'Lecture de la page publique…','Network error: the check could not run.'=>'Erreur réseau : la vérification n\'a pas pu s\'exécuter.','Enter your API key to list the voices'=>'Renseignez la clé API pour lister les voix','This voice is not available on your plan. Please pick another one'=>'Voix indisponible avec votre forfait, choisissez-en une autre','%s (voice list unavailable right now: this setting is kept)'=>'%s (liste des voix indisponible pour l\'instant : ce réglage est conservé)','Your signature voices'=>'Vos voix signature','All languages'=>'Toutes les langues','Listen'=>'Écouter','Stop'=>'Arrêter','No sample for this voice yet.'=>'Pas encore d\'extrait pour cette voix.','label separator: '=>' : ','category “%s”'=>'rubrique « %s »','category'=>'rubrique','author'=>'auteur','Content not found'=>'Contenu introuvable','Automatic audio is paused for this site in your account area.'=>'La sonorisation automatique est suspendue pour ce site dans votre espace client.','Not enough credits left for this item.'=>'Il ne reste pas assez de crédits pour ce contenu.','Text too short (100 characters minimum). Save the draft first'=>'Texte trop court (100 caractères minimum). Enregistrez le brouillon d\'abord','the site default voice'=>'la voix par défaut du site','the “%s” category'=>'la rubrique « %s »','%s uses a voice that is no longer in your plan catalogue.'=>'%s utilise une voix qui ne figure plus au catalogue de votre forfait.' . "\0" . '%s utilisent des voix qui ne figurent plus au catalogue de votre forfait.','Your content is still read aloud, with the account default voice, until a new choice is made.'=>'Vos contenus restent sonorisés, avec la voix par défaut du compte, jusqu\'à ce qu\'un nouveau choix soit fait.','Pick a voice'=>'Choisir une voix','Connect this site'=>'Connecter ce site','One click: you sign in or create your account on wedispatch.fr, you authorise this site, and the key is created and stored here for you. Nothing to copy, and your password never enters WordPress.'=>'Un clic : vous vous connectez ou créez votre compte sur wedispatch.fr, vous autorisez ce site, et la clé est créée puis enregistrée ici pour vous. Rien à copier, et votre mot de passe n\'entre jamais dans WordPress.','Connecting again replaces the key stored on this site.'=>'Se reconnecter remplace la clé enregistrée sur ce site.','Already have an API key? You can also paste it here. It is in your account area (%s).'=>'Vous avez déjà une clé API ? Vous pouvez aussi la coller ici. Elle se trouve dans votre espace client (%s).','API key'=>'Clé API','Never share this key.'=>'Ne partagez jamais cette clé.','Default mode'=>'Mode par défaut','the audio is generated on its own when you publish. The voice is picked automatically, in this order: category, then author, then site voice.'=>'l\'audio se génère tout seul à la publication. La voix est choisie automatiquement dans cet ordre : rubrique, puis auteur, puis voix du site.','nothing is turned into audio on its own. The author picks the voice and clicks “Generate” in the editor panel, then publishes. This is also how you stop this site sending anything automatically, without touching your account area.'=>'rien n\'est sonorisé tout seul. L\'auteur choisit la voix et clique sur « Générer » dans le panneau de l\'éditeur, puis publie. C\'est aussi ainsi qu\'on empêche ce site d\'envoyer quoi que ce soit automatiquement, sans toucher à l\'espace client.','Can be set per item in the “WeDispatch” editor panel, which also shows the voice Auto mode will use.'=>'Réglable contenu par contenu dans l\'encart « WeDispatch » de l\'éditeur, qui affiche aussi la voix retenue en Auto.','Content to read aloud'=>'Contenus à sonoriser','Posts, pages, products, and any custom post type your theme or your plugins register. Unticking everything falls back to posts.'=>'Articles, pages, fiches produit, et tout type de contenu déclaré par votre thème ou vos extensions. Tout décocher revient aux articles.','Site default voice'=>'Voix par défaut du site','Used in Auto mode when the author has not set a voice of their own (in their profile).'=>'Utilisée en mode Auto si l\'auteur n\'a pas défini sa propre voix (dans son profil).','Content edited after publication'=>'Contenus corrigés après publication','Rebuild the audio automatically when the text of an item that already has audio changes'=>'Refaire l\'audio automatiquement quand le texte d\'un contenu déjà sonorisé change','Off by default. Without this option the audio that is online keeps being served and the item is marked “to regenerate”: you rebuild it once the text has settled, from the “Generate audio” button in the editor panel.'=>'Désactivé par défaut. Sans cette option, l\'audio en ligne continue d\'être servi et le contenu est marqué « à régénérer » : vous relancez quand le texte est stabilisé, depuis le bouton « Générer l\'audio » de l\'encart de l\'éditeur.','Every automatic rebuild uses one generation from your plan.'=>'Chaque reprise automatique consomme une génération de votre forfait.','At the top of the article'=>'En tête d\'article','At the bottom of the article'=>'En fin d\'article','Manual: block, widget or [wedispatch] shortcode'=>'Manuel : bloc, widget ou code court [wedispatch]','Under the article'=>'Sous l\'article','Show the transcript, folded, under the article'=>'Afficher le transcript, replié, sous l\'article','An audio player alone meets no obligation towards a deaf or hard of hearing reader. The transcript is built from the word-level timing already captured for highlighting: no AI, no extra cost. It is also text that search engines index.'=>'Un lecteur audio seul ne remplit aucune obligation envers une personne sourde ou malentendante. Le transcript est fabriqué à partir du calage mot à mot déjà capturé pour le surlignage : aucune IA, aucun coût supplémentaire. C\'est aussi du texte que les moteurs de recherche indexent.','Show “Listen next” under the article'=>'Afficher « À écouter ensuite » sous l\'article','Same category first, then the most recent. The list depends on the article being read, never on who is reading it: your listeners are not tracked or profiled. Only content published on this site is suggested.'=>'Même rubrique d\'abord, puis les plus récents. La liste dépend de l\'article affiché, jamais de qui le lit : vos auditeurs ne sont ni tracés ni profilés. Seuls les contenus publiés sur ce site sont proposés.','the player is open to all your visitors.'=>'le lecteur est ouvert à tous vos visiteurs.','You can reserve the full article for your registered users or your subscribers: everyone else hears a preview, and the player then invites them to create an account. The setting lives in your account area (Player, then “Who can listen”).'=>'Vous pouvez réserver l\'article complet à vos inscrits ou à vos abonnés : les autres n\'entendent qu\'un extrait, puis le lecteur les invite à créer un compte. Le réglage est dans votre espace client (Lecteur, puis « Qui peut écouter »).','Nothing to code'=>'Rien à coder','this plugin takes care of it.'=>'ce module s\'en occupe.','This plugin passes each visitor’s status on automatically.'=>'Ce module transmet automatiquement le statut de chaque visiteur.','API key missing or invalid: without it, every visitor gets the preview only.'=>'Clé API absente ou invalide : sans elle, tous vos visiteurs n\'auront que l\'extrait.','Who counts as a subscriber on this site?'=>'Qui, sur ce site, est un abonné ?','Tick the WordPress role or roles of your paying subscribers. A signed-in user with none of those roles counts as merely registered.'=>'Cochez le ou les rôles WordPress de vos abonnés payants. Un utilisateur connecté qui n\'a aucun de ces rôles est considéré comme simplement inscrit.','No role ticked: nobody is recognised as a subscriber, so nobody hears the full article. Tick at least one role.'=>'Aucun rôle coché : personne n\'est reconnu comme abonné, donc personne n\'entend l\'article complet. Cochez au moins un rôle.','Are your subscriptions something other than roles (WooCommerce Subscriptions, MemberPress, an in-house system)? A developer hooks into the %1$s filter: three lines, documented in %2$s.'=>'Vos abonnements ne sont pas des rôles (WooCommerce Subscriptions, MemberPress, système maison) ? Un développeur branche le filtre %1$s : trois lignes, documentées dans %2$s.','our documentation'=>'notre documentation','Check that everything works'=>'Vérifier que tout fonctionne','Your readers stay anonymous to WeDispatch: this site attests to a status (“subscriber”), never to an identity. No personal data leaves your server.'=>'Vos lecteurs restent anonymes pour WeDispatch : ce site atteste d\'un statut (« abonné »), jamais d\'une identité. Aucune donnée personnelle ne sort d\'ici.','No key has been entered'=>'Aucune clé renseignée','No API key has been entered.'=>'Aucune clé API renseignée.','Secret not found. Is the API key valid?'=>'Secret introuvable. La clé API est-elle valide ?','Unreadable response from the WeDispatch server.'=>'Réponse illisible du serveur WeDispatch.','Token refused'=>'Jeton refusé','Audio voice'=>'Voix audio','In Auto mode, your content will be read aloud with this voice.'=>'En mode Auto, vos contenus seront lus avec cette voix.','A voice already set here keeps working: nothing has been erased.'=>'Une voix déjà réglée ici continue de s\'appliquer : rien n\'a été effacé.','WeDispatch voice'=>'Voix WeDispatch','In Auto mode, posts in this category are read aloud with this voice (it takes priority over the author’s voice).'=>'En mode Auto, les articles de cette rubrique seront lus avec cette voix (prioritaire sur la voix de l\'auteur).','In Auto mode, takes priority over the author’s voice for posts in this category.'=>'En mode Auto, prioritaire sur la voix de l\'auteur pour les articles de cette rubrique.','WeDispatch Audio'=>'WeDispatch Audio','Mode'=>'Mode','Site default (%s)'=>'Défaut du site (%s)','Auto: generated on publication'=>'Auto : généré à la publication','Manual: I generate it here'=>'Manuel : je génère ici','In Auto mode'=>'En Auto','this item will be read by:'=>'ce contenu sera lu par :','Voice picked via: %s. Priority is category, then author, then site.'=>'Voix choisie via : %s. Priorité rubrique, puis auteur, puis site.','Voice (Manual mode)'=>'Voix (mode Manuel)','Used in Manual mode only. In Auto mode the routing above decides.'=>'Utilisée uniquement en mode Manuel. En Auto, c\'est l\'aiguillage ci-dessus qui décide.','Audio status:'=>'État audio :','Generated'=>'Généré','Not generated'=>'Non généré','Generate audio'=>'Générer l\'audio','Save the draft before generating.'=>'Enregistrez le brouillon avant de générer.','Generating…'=>'Génération…','Scheduled'=>'Programmé','Preparing…'=>'En préparation…','network error'=>'erreur réseau','Audio version of this article'=>'Version audio de cet article','WeDispatch audio player'=>'Lecteur audio WeDispatch','The audio version of the article being read. Shows nothing on pages that have no audio.'=>'La version audio de l\'article consulté. N\'affiche rien sur les pages qui n\'ont pas d\'audio.','Listen to this article'=>'Écouter cet article','Title:'=>'Titre :','The audio version of this article appears here once it has been generated.'=>'La version audio de cet article s\'affiche ici une fois qu\'elle a été générée.']]; -
wedispatch-audio-text-to-speech/trunk/languages/wedispatch-audio-text-to-speech-fr_FR.po
r3665684 r3709329 40 40 #: admin/aide.php:17 41 41 #: admin/menu.php:66 42 #: wedispatch-audio-text-to-speech.php:1 64642 #: wedispatch-audio-text-to-speech.php:1733 43 43 msgid "Help & checks" 44 44 msgstr "Aide et vérifications" … … 73 73 74 74 #: admin/aide.php:28 75 #: wedispatch-audio-text-to-speech.php:1 53675 #: wedispatch-audio-text-to-speech.php:1623 76 76 msgid "Player position" 77 77 msgstr "Position du lecteur" … … 79 79 #: admin/aide.php:29 80 80 #: admin/lecteur.php:883 81 #: wedispatch-audio-text-to-speech.php:1 57181 #: wedispatch-audio-text-to-speech.php:1658 82 82 msgid "Who can listen" 83 83 msgstr "Qui peut écouter" … … 154 154 #: inc/diagnostic.php:164 155 155 #: inc/diagnostic.php:168 156 #: wedispatch-audio-text-to-speech.php:1 680157 #: wedispatch-audio-text-to-speech.php: 1971156 #: wedispatch-audio-text-to-speech.php:1767 157 #: wedispatch-audio-text-to-speech.php:2058 158 158 msgid "Not allowed" 159 159 msgstr "Non autorisé" … … 177 177 178 178 #: admin/compte.php:92 179 #: admin/vue-ensemble.php: 511179 #: admin/vue-ensemble.php:743 180 180 msgid "Refresh" 181 181 msgstr "Rafraîchir" … … 255 255 msgstr "Ce site est connecté. Votre clé API a été créée et enregistrée pour vous." 256 256 257 #: admin/connexion.php:24 0257 #: admin/connexion.php:244 258 258 msgid "This site no longer uses your WeDispatch account. Your settings and your audio are untouched: connecting again puts everything back." 259 259 msgstr "Ce site n'utilise plus votre compte WeDispatch. Vos réglages et vos audios sont intacts : reconnecter remet tout en place." 260 260 261 #: admin/connexion.php:25 2261 #: admin/connexion.php:256 262 262 msgid "Disconnect this site?" 263 263 msgstr "Déconnecter ce site ?" 264 264 265 #: admin/connexion.php:25 4265 #: admin/connexion.php:258 266 266 msgid "What is removed from this site" 267 267 msgstr "Ce qui est retiré de ce site" 268 268 269 #: admin/connexion.php:2 56269 #: admin/connexion.php:260 270 270 msgid "The API key stored here, and everything read from your account." 271 271 msgstr "La clé API enregistrée ici, et tout ce qui a été lu de votre compte." 272 272 273 #: admin/connexion.php:2 57273 #: admin/connexion.php:261 274 274 msgid "The secret that lets subscriber-only audio be listened to, and its hourly refresh." 275 275 msgstr "Le secret qui permet d'écouter l'audio réservé aux abonnés, et son renouvellement horaire." 276 276 277 #: admin/connexion.php:26 0277 #: admin/connexion.php:264 278 278 msgid "What is kept" 279 279 msgstr "Ce qui est conservé" 280 280 281 #: admin/connexion.php:26 2281 #: admin/connexion.php:266 282 282 msgid "Your settings: reading mode, content types, voices, player position." 283 283 msgstr "Vos réglages : mode de lecture, types de contenu, voix, position du lecteur." 284 284 285 #: admin/connexion.php:26 3285 #: admin/connexion.php:267 286 286 msgid "The link between each item and its audio. Connecting the same account again puts everything back, and regenerates nothing." 287 287 msgstr "Le lien entre chaque contenu et son audio. Reconnecter le même compte remet tout en place, et ne régénère rien." 288 288 289 #: admin/connexion.php:2 66289 #: admin/connexion.php:270 290 290 msgid "What this cannot do for you" 291 291 msgstr "Ce que cela ne peut pas faire à votre place" 292 292 293 #: admin/connexion.php:2 67293 #: admin/connexion.php:271 294 294 msgid "The key keeps existing on wedispatch.fr and stays valid until you revoke it there. This site simply stops using it. Audio already published keeps being served." 295 295 msgstr "La clé continue d'exister sur wedispatch.fr et reste valable tant que vous ne l'y révoquez pas. Ce site cesse simplement de l'utiliser. Les audios déjà publiés continuent d'être servis." 296 296 297 #: admin/connexion.php:27 1298 #: wedispatch-audio-text-to-speech.php:1 448297 #: admin/connexion.php:275 298 #: wedispatch-audio-text-to-speech.php:1535 299 299 msgid "Disconnect this site" 300 300 msgstr "Déconnecter ce site" 301 301 302 #: admin/connexion.php:27 3302 #: admin/connexion.php:277 303 303 msgid "Cancel" 304 304 msgstr "Annuler" 305 305 306 #: admin/connexion.php:27 5306 #: admin/connexion.php:279 307 307 msgid "Revoke the key on wedispatch.fr" 308 308 msgstr "Révoquer la clé sur wedispatch.fr" 309 309 310 #: admin/connexion.php:301 310 #: admin/connexion.php:305 311 #: admin/premiers-pas.php:97 311 312 msgid "Connect this site to WeDispatch" 312 313 msgstr "Connecter ce site à WeDispatch" 313 314 314 #: admin/contenus.php:55 315 #: admin/contenus.php:57 316 msgid "Not voiced: credits" 317 msgstr "Non sonorisé : crédits" 318 319 #: admin/contenus.php:64 315 320 msgid "Automatic audio paused" 316 321 msgstr "Sonorisation automatique suspendue" 317 322 318 #: admin/contenus.php: 56319 #: admin/contenus.php:2 21323 #: admin/contenus.php:65 324 #: admin/contenus.php:230 320 325 msgid "No audio" 321 326 msgstr "Aucun audio" 322 327 323 #: admin/contenus.php: 62328 #: admin/contenus.php:71 324 329 msgid "Text changed since" 325 330 msgstr "Texte modifié depuis" 326 331 327 #: admin/contenus.php: 64332 #: admin/contenus.php:73 328 333 msgid "Up to date" 329 334 msgstr "À jour" 330 335 331 #: admin/contenus.php: 96336 #: admin/contenus.php:105 332 337 #: admin/lecteur.php:312 333 338 #: admin/voix.php:162 … … 335 340 msgstr "Ce lien a expiré. Merci de recommencer." 336 341 337 #: admin/contenus.php: 99342 #: admin/contenus.php:108 338 343 #: inc/front.php:175 339 344 msgid "You are not allowed to edit this item." 340 345 msgstr "Vous n'avez pas le droit de modifier ce contenu." 341 346 342 #: admin/contenus.php:1 03347 #: admin/contenus.php:112 343 348 msgid "Queued. The audio will be prepared in the background." 344 349 msgstr "Mis en file. L'audio sera préparé en tâche de fond." 345 350 346 #: admin/contenus.php:11 0351 #: admin/contenus.php:119 347 352 msgid "The player no longer appears on this item. The audio itself still exists in your WeDispatch account." 348 353 msgstr "Le lecteur n'apparaît plus sur ce contenu. L'audio, lui, existe toujours dans votre compte WeDispatch." 349 354 350 #: admin/contenus.php:12 0355 #: admin/contenus.php:129 351 356 msgid "Pick an action and at least one item." 352 357 msgstr "Choisissez une action et au moins un contenu." 353 358 354 359 #. translators: %d: number of items. 355 #: admin/contenus.php:1 47360 #: admin/contenus.php:156 356 361 #, php-format 357 362 msgid "%d item detached." … … 362 367 #. translators: %d: number of items. 363 368 #. translators: %d: number of items queued. 364 #: admin/contenus.php:1 49365 #: admin/vue-ensemble.php: 263369 #: admin/contenus.php:158 370 #: admin/vue-ensemble.php:377 366 371 #, php-format 367 372 msgid "%d item queued." … … 371 376 372 377 #. translators: %d: number of items the current user may not edit. 373 #: admin/contenus.php:1 52378 #: admin/contenus.php:161 374 379 #, php-format 375 380 msgid "%d item skipped: you may not edit it." … … 378 383 msgstr[1] "%d contenus ignorés : vous n'avez pas le droit de les modifier." 379 384 380 #: admin/contenus.php:20 0385 #: admin/contenus.php:209 381 386 #: admin/menu.php:60 382 387 #: admin/statistiques.php:367 … … 384 389 msgstr "Mes contenus et audio" 385 390 386 #: admin/contenus.php:21 0391 #: admin/contenus.php:219 387 392 msgid "Content type" 388 393 msgstr "Type de contenu" 389 394 390 #: admin/contenus.php:2 12395 #: admin/contenus.php:221 391 396 msgid "All content types" 392 397 msgstr "Tous les types de contenu" 393 398 394 #: admin/contenus.php:2 18399 #: admin/contenus.php:227 395 400 msgid "Audio state" 396 401 msgstr "État de l'audio" 397 402 398 #: admin/contenus.php:22 0403 #: admin/contenus.php:229 399 404 msgid "Any audio state" 400 405 msgstr "Tous les états" 401 406 402 #: admin/contenus.php:2 22407 #: admin/contenus.php:231 403 408 msgid "With audio" 404 409 msgstr "Avec audio" 405 410 406 #: admin/contenus.php:2 24411 #: admin/contenus.php:233 407 412 msgid "Search" 408 413 msgstr "Rechercher" 409 414 410 #: admin/contenus.php:2 26415 #: admin/contenus.php:235 411 416 msgid "Search titles" 412 417 msgstr "Rechercher dans les titres" 413 418 414 #: admin/contenus.php:2 27419 #: admin/contenus.php:236 415 420 msgid "Filter" 416 421 msgstr "Filtrer" 417 422 418 #: admin/contenus.php:2 34423 #: admin/contenus.php:243 419 424 msgid "Bulk action" 420 425 msgstr "Action groupée" 421 426 422 #: admin/contenus.php:2 36427 #: admin/contenus.php:245 423 428 msgid "Bulk actions" 424 429 msgstr "Actions groupées" 425 430 426 #: admin/contenus.php:2 37431 #: admin/contenus.php:246 427 432 msgid "Generate or rebuild the audio" 428 433 msgstr "Générer ou refaire l'audio" 429 434 430 #: admin/contenus.php:2 38435 #: admin/contenus.php:247 431 436 msgid "Remove the player from these items" 432 437 msgstr "Retirer le lecteur de ces contenus" 433 438 434 #: admin/contenus.php:24 0439 #: admin/contenus.php:249 435 440 msgid "Apply" 436 441 msgstr "Appliquer" … … 439 444 #. translators: %s: number of items. 440 445 #. translators: %s: number of items in this category. 441 #: admin/contenus.php:2 45446 #: admin/contenus.php:254 442 447 #: admin/statistiques.php:136 443 448 #: admin/voix.php:451 … … 448 453 msgstr[1] "%s contenus" 449 454 450 #: admin/contenus.php:2 54451 #: wedispatch-audio-text-to-speech.php:69 1455 #: admin/contenus.php:263 456 #: wedispatch-audio-text-to-speech.php:692 452 457 msgid "site voice" 453 458 msgstr "voix du site" 454 459 455 #: admin/contenus.php:2 55456 #: wedispatch-audio-text-to-speech.php:69 2457 #: wedispatch-audio-text-to-speech.php:19 00460 #: admin/contenus.php:264 461 #: wedispatch-audio-text-to-speech.php:693 462 #: wedispatch-audio-text-to-speech.php:1987 458 463 msgid "account default voice" 459 464 msgstr "voix par défaut du compte" 460 465 461 #: admin/contenus.php:2 79466 #: admin/contenus.php:288 462 467 msgid "Select all" 463 468 msgstr "Tout sélectionner" 464 469 465 #: admin/contenus.php:2 82470 #: admin/contenus.php:291 466 471 msgid "Title" 467 472 msgstr "Titre" 468 473 469 #: admin/contenus.php:2 83474 #: admin/contenus.php:292 470 475 msgid "Audio" 471 476 msgstr "Audio" 472 477 473 #: admin/contenus.php:2 84478 #: admin/contenus.php:293 474 479 #: admin/voix.php:441 475 480 #: admin/voix.php:485 … … 477 482 msgstr "Voix" 478 483 479 #: admin/contenus.php:2 86484 #: admin/contenus.php:295 480 485 #: admin/statistiques.php:145 481 486 #: admin/statistiques.php:228 … … 483 488 msgstr "Écoutes" 484 489 485 #: admin/contenus.php:2 88490 #: admin/contenus.php:297 486 491 msgid "Last edited" 487 492 msgstr "Modifié le" 488 493 489 494 #. translators: %s: title of the item. 490 #: admin/contenus.php:3 17495 #: admin/contenus.php:326 491 496 #, php-format 492 497 msgid "Select %s" 493 498 msgstr "Sélectionner %s" 494 499 495 #: admin/contenus.php:3 31500 #: admin/contenus.php:340 496 501 msgid "Generate the audio" 497 502 msgstr "Générer l'audio" 498 503 499 #: admin/contenus.php:3 32504 #: admin/contenus.php:341 500 505 msgid "Rebuild the audio" 501 506 msgstr "Refaire l'audio" 502 507 503 #: admin/contenus.php:3 36508 #: admin/contenus.php:345 504 509 msgid "Listen on the site" 505 510 msgstr "Écouter sur le site" 506 511 507 #: admin/contenus.php:3 46512 #: admin/contenus.php:355 508 513 msgid "Transcript" 509 514 msgstr "Transcript" 510 515 511 #: admin/contenus.php:3 48516 #: admin/contenus.php:357 512 517 msgid "SRT" 513 518 msgstr "SRT" 514 519 515 #: admin/contenus.php:3 56520 #: admin/contenus.php:365 516 521 msgid "Check the display" 517 522 msgstr "Vérifier l'affichage" 518 523 519 #: admin/contenus.php:3 58524 #: admin/contenus.php:367 520 525 msgid "Remove the player" 521 526 msgstr "Retirer le lecteur" 522 527 523 #: admin/contenus.php:3 67524 #: wedispatch-audio-text-to-speech.php:44 3528 #: admin/contenus.php:376 529 #: wedispatch-audio-text-to-speech.php:444 525 530 msgid "Account default voice" 526 531 msgstr "Voix par défaut du compte" 527 532 528 #: admin/contenus.php:3 86533 #: admin/contenus.php:395 529 534 msgid "no audio yet" 530 535 msgstr "pas encore d'audio" 531 536 532 #: admin/contenus.php: 395537 #: admin/contenus.php:404 533 538 msgid "Nothing matches these filters." 534 539 msgstr "Aucun contenu ne correspond à ces filtres." 535 540 536 #: admin/contenus.php:4 06541 #: admin/contenus.php:415 537 542 msgid "Previous" 538 543 msgstr "Précédent" 539 544 540 #: admin/contenus.php:4 07545 #: admin/contenus.php:416 541 546 msgid "Next" 542 547 msgstr "Suivant" 543 548 544 #: admin/contenus.php:4 17549 #: admin/contenus.php:426 545 550 msgid "Bulk actions queue the work in the background: WordPress prepares the audio a few seconds later, without holding this page. Come back and refresh to follow it." 546 551 msgstr "Les actions groupées mettent le travail en file : WordPress prépare l'audio quelques secondes plus tard, sans retenir cette page. Revenez et rafraîchissez pour suivre." … … 793 798 #: admin/statistiques.php:369 794 799 #: admin/voix.php:363 795 #: admin/vue-ensemble.php: 550796 #: admin/vue-ensemble.php: 556800 #: admin/vue-ensemble.php:785 801 #: admin/vue-ensemble.php:791 797 802 msgid "Run the checks" 798 803 msgstr "Lancer les vérifications" … … 910 915 911 916 #: admin/lecteur.php:886 912 #: wedispatch-audio-text-to-speech.php:1 574917 #: wedispatch-audio-text-to-speech.php:1661 913 918 msgid "Everyone" 914 919 msgstr "Tout le monde" 915 920 916 921 #: admin/lecteur.php:888 917 #: wedispatch-audio-text-to-speech.php:1 582922 #: wedispatch-audio-text-to-speech.php:1669 918 923 msgid "Your subscribers" 919 924 msgstr "Vos abonnés" 920 925 921 926 #: admin/lecteur.php:889 922 #: wedispatch-audio-text-to-speech.php:1 583927 #: wedispatch-audio-text-to-speech.php:1670 923 928 msgid "Your registered users" 924 929 msgstr "Vos inscrits" 925 930 926 931 #: admin/lecteur.php:891 927 #: wedispatch-audio-text-to-speech.php:1 584932 #: wedispatch-audio-text-to-speech.php:1671 928 933 msgid "other visitors only hear a preview." 929 934 msgstr "les autres visiteurs n'entendent qu'un extrait." … … 943 948 #: admin/menu.php:45 944 949 #: admin/menu.php:46 945 #: admin/vue-ensemble.php: 427950 #: admin/vue-ensemble.php:657 946 951 msgid "WeDispatch" 947 952 msgstr "" 948 953 949 954 #: admin/menu.php:59 955 #: admin/premiers-pas.php:67 950 956 msgid "Overview" 951 957 msgstr "Vue d'ensemble" … … 962 968 963 969 #: admin/menu.php:64 964 #: admin/vue-ensemble.php: 519965 #: wedispatch-audio-text-to-speech.php:1 429970 #: admin/vue-ensemble.php:751 971 #: wedispatch-audio-text-to-speech.php:1516 966 972 msgid "Settings" 967 973 msgstr "Réglages" … … 972 978 msgid "WeDispatch: %s" 973 979 msgstr "WeDispatch : %s" 980 981 #: admin/premiers-pas.php:68 982 msgid "Connect" 983 msgstr "Connecter" 984 985 #: admin/premiers-pas.php:93 986 msgid "WeDispatch is installed." 987 msgstr "WeDispatch est installé." 988 989 #: admin/premiers-pas.php:94 990 msgid "Connect this site to hear your posts read aloud: your account is created on the way, and trying it is free. Nothing is sent unless you click." 991 msgstr "Connectez ce site pour entendre vos articles lus à voix haute : votre compte se crée au passage, et l'essai est gratuit. Rien n'est envoyé sans un clic de votre part." 992 993 #: admin/premiers-pas.php:99 994 msgid "See what it does" 995 msgstr "Voir ce que ça fait" 996 997 #: admin/premiers-pas.php:101 998 #: admin/premiers-pas.php:151 999 msgid "Do not show this again" 1000 msgstr "Ne plus afficher" 1001 1002 #: admin/premiers-pas.php:139 1003 msgid "A post was not read aloud." 1004 msgstr "Un article n'a pas été lu à voix haute." 1005 1006 #. translators: %s: title of the post that was not read aloud. 1007 #: admin/premiers-pas.php:142 1008 #, php-format 1009 msgid "“%s”" 1010 msgstr "« %s »" 1011 1012 #: admin/premiers-pas.php:147 1013 #: admin/vue-ensemble.php:315 1014 msgid "Choose a plan" 1015 msgstr "Choisir un forfait" 1016 1017 #: admin/premiers-pas.php:149 1018 msgid "See my content" 1019 msgstr "Voir mes contenus" 974 1020 975 1021 #. translators: 1: number of items shown, 2: total number of items. … … 1261 1307 1262 1308 #: admin/voix.php:431 1263 #: wedispatch-audio-text-to-speech.php:1 8131309 #: wedispatch-audio-text-to-speech.php:1900 1264 1310 msgid "A voice per category comes with the paid plans." 1265 1311 msgstr "Une voix par rubrique vient avec les forfaits payants." … … 1449 1495 msgstr "Les signatures alimentent le tableau « Par signature » de l'écran Statistiques. Un contenu dont le texte a changé depuis sa sonorisation ne figure pas dans cette liste : il portera sa signature à sa prochaine génération." 1450 1496 1497 #: admin/vue-ensemble.php:238 1498 msgid "Let every new post get its audio" 1499 msgstr "Donner un audio à chaque nouvel article" 1500 1501 #: admin/vue-ensemble.php:239 1502 msgid "This site is in manual mode: nothing is read aloud unless someone asks. In automatic mode, every post you publish gets its audio a few seconds later, and each one uses credits according to its length. You can come back to manual at any time in Settings." 1503 msgstr "Ce site est en mode manuel : rien n'est lu à voix haute sans qu'on le demande. En mode automatique, chaque article publié reçoit son audio quelques secondes plus tard, et chacun consomme des crédits selon sa longueur. Vous pouvez revenir au manuel à tout moment dans les Réglages." 1504 1451 1505 #: admin/vue-ensemble.php:243 1452 msgid "Nothing left to use this month." 1453 msgstr "Il ne reste rien à utiliser ce mois-ci." 1454 1455 #: admin/vue-ensemble.php:252 1456 msgid "Every published item already has its audio." 1457 msgstr "Tous les contenus publiés ont déjà leur audio." 1458 1459 #: admin/vue-ensemble.php:308 1460 msgid "Use what is left this month" 1461 msgstr "Utiliser ce qui reste ce mois-ci" 1462 1463 #. translators: 1: number of credits left in the plan, 2: number of published items without audio. 1464 #: admin/vue-ensemble.php:329 1465 #, php-format 1466 msgid "You have %1$s left this month, and %2$s that have no audio yet. What is not used before the end of the month is lost." 1467 msgstr "Il vous reste %1$s ce mois-ci, et %2$s n'ont pas encore d'audio. Ce qui n'est pas utilisé avant la fin du mois est perdu." 1506 msgid "Switch to automatic" 1507 msgstr "Passer en automatique" 1508 1509 #: admin/vue-ensemble.php:255 1510 msgid "Automatic mode is on: the next post you publish gets its audio on its own." 1511 msgstr "Le mode automatique est activé : le prochain article publié recevra son audio tout seul." 1512 1513 #: admin/vue-ensemble.php:286 1514 msgid "Hear your first audio" 1515 msgstr "Écouter votre premier audio" 1516 1517 #: admin/vue-ensemble.php:287 1518 msgid "Use your trial" 1519 msgstr "Utiliser votre essai" 1520 1521 #. translators: 1: number of trial credits left, 2: number of characters one credit covers. 1522 #: admin/vue-ensemble.php:291 1523 #, php-format 1524 msgid "Your trial has %1$s left, and they do not expire. A credit covers %2$s characters, so a long post uses several." 1525 msgstr "Votre essai compte encore %1$s, et ils n'expirent pas. Un crédit couvre %2$s caractères : un long article en consomme plusieurs." 1468 1526 1469 1527 #. translators: %s: number of credits left. 1470 #: admin/vue-ensemble.php:332 1528 #: admin/vue-ensemble.php:294 1529 #: admin/vue-ensemble.php:453 1471 1530 #, php-format 1472 1531 msgid "%s credit" … … 1475 1534 msgstr[1] "%s crédits" 1476 1535 1536 #. translators: %s: title of the post that will be read aloud. 1537 #: admin/vue-ensemble.php:307 1538 #, php-format 1539 msgid "Read “%s” aloud" 1540 msgstr "Lire « %s » à voix haute" 1541 1542 #: admin/vue-ensemble.php:310 1543 msgid "Your most recent post that fits in what your trial has left. Nothing else is sent: this site stays in manual mode until you switch it to automatic in Settings." 1544 msgstr "Votre article le plus récent qui tient dans ce qui reste de l'essai. Rien d'autre n'est envoyé : ce site reste en mode manuel jusqu'à ce que vous passiez en automatique dans les Réglages." 1545 1546 #: admin/vue-ensemble.php:312 1547 msgid "Your recent posts are all longer than what your trial has left. Pick a shorter one in My content & audio, or choose a plan: the price follows the volume you publish." 1548 msgstr "Vos articles récents dépassent tous ce qui reste de l'essai. Choisissez-en un plus court dans Mes contenus et audio, ou choisissez un forfait : le prix suit le volume que vous publiez." 1549 1550 #: admin/vue-ensemble.php:317 1551 msgid "Choose a post myself" 1552 msgstr "Choisir un article moi-même" 1553 1554 #: admin/vue-ensemble.php:344 1555 msgid "This item can no longer be voiced from here. Open My content & audio to pick another one." 1556 msgstr "Ce contenu ne peut plus être sonorisé d'ici. Ouvrez Mes contenus et audio pour en choisir un autre." 1557 1558 #: admin/vue-ensemble.php:347 1559 msgid "Your first audio is on its way. It usually takes under a minute: open the post to hear it, the player appears on its own." 1560 msgstr "Votre premier audio est en route. Il faut en général moins d'une minute : ouvrez l'article pour l'écouter, le lecteur s'affiche tout seul." 1561 1562 #: admin/vue-ensemble.php:357 1563 msgid "Nothing left to use this month." 1564 msgstr "Il ne reste rien à utiliser ce mois-ci." 1565 1566 #: admin/vue-ensemble.php:366 1567 msgid "Every published item already has its audio." 1568 msgstr "Tous les contenus publiés ont déjà leur audio." 1569 1570 #: admin/vue-ensemble.php:424 1571 msgid "Use what is left this month" 1572 msgstr "Utiliser ce qui reste ce mois-ci" 1573 1574 #. translators: 1: number of credits left, 2: number of published items without audio. 1575 #: admin/vue-ensemble.php:448 1576 #, php-format 1577 msgid "You have %1$s left, and %2$s that have no audio yet." 1578 msgstr "Il vous reste %1$s, et %2$s sans audio." 1579 1580 #. translators: 1: number of credits left in the plan, 2: number of published items without audio. 1581 #: admin/vue-ensemble.php:450 1582 #, php-format 1583 msgid "You have %1$s left this month, and %2$s that have no audio yet. What is not used before the end of the month is lost." 1584 msgstr "Il vous reste %1$s ce mois-ci, et %2$s n'ont pas encore d'audio. Ce qui n'est pas utilisé avant la fin du mois est perdu." 1585 1477 1586 #. translators: %s: number of published items without audio. 1478 #: admin/vue-ensemble.php: 3371587 #: admin/vue-ensemble.php:458 1479 1588 #, php-format 1480 1589 msgid "%s published item" … … 1483 1592 msgstr[1] "%s contenus publiés" 1484 1593 1485 #: admin/vue-ensemble.php: 3431594 #: admin/vue-ensemble.php:464 1486 1595 msgid "An item costs at least one credit, and a long one costs several: depending on their length, the last ones may not go through this month." 1487 1596 msgstr "Un contenu coûte au moins un crédit, et un contenu long en coûte plusieurs : selon leur longueur, les derniers ne passeront peut-être pas ce mois-ci." 1488 1597 1489 1598 #. translators: %s: number of items to queue. 1490 #: admin/vue-ensemble.php: 3611599 #: admin/vue-ensemble.php:482 1491 1600 #, php-format 1492 1601 msgid "Voice the next %s item" … … 1495 1604 msgstr[1] "Sonoriser les %s prochains contenus" 1496 1605 1497 #: admin/vue-ensemble.php: 3651606 #: admin/vue-ensemble.php:486 1498 1607 msgid "Choose them myself" 1499 1608 msgstr "Les choisir moi-même" 1500 1609 1501 #: admin/vue-ensemble.php: 3691610 #: admin/vue-ensemble.php:490 1502 1611 msgid "The most recent ones first. They are queued in the background: WordPress prepares the audio a few seconds later, without holding this page." 1503 1612 msgstr "Les plus récents d'abord. Ils sont mis en file en arrière-plan : WordPress prépare l'audio quelques secondes plus tard, sans retenir cette page." 1504 1613 1505 #: admin/vue-ensemble.php:394 1614 #: admin/vue-ensemble.php:544 1615 msgid "There is no published post long enough to make a sample from yet." 1616 msgstr "Aucun article publié n'est encore assez long pour en faire un extrait." 1617 1618 #: admin/vue-ensemble.php:566 1619 msgid "Here is how your post sounds. Connect the site to get the whole post, and the player on the page." 1620 msgstr "Voici comment sonne votre article. Connectez le site pour avoir l'article entier, et le lecteur sur la page." 1621 1622 #: admin/vue-ensemble.php:574 1623 msgid "Several samples were played in the last hour. Try again later, or connect the site to voice every post." 1624 msgstr "Plusieurs extraits ont été écoutés dans l'heure. Réessayez plus tard, ou connectez le site pour sonoriser chaque article." 1625 1626 #: admin/vue-ensemble.php:576 1627 msgid "Samples are not available right now. Connecting the site still works, and trying it is free." 1628 msgstr "Les extraits ne sont pas disponibles pour le moment. La connexion du site fonctionne toujours, et l'essai est gratuit." 1629 1630 #: admin/vue-ensemble.php:578 1631 msgid "The sample could not be produced. Try again in a moment." 1632 msgstr "L'extrait n'a pas pu être produit. Réessayez dans un instant." 1633 1634 #: admin/vue-ensemble.php:596 1635 msgid "Hear a 20-second sample of my latest post" 1636 msgstr "Écouter 20 secondes de mon dernier article" 1637 1638 #: admin/vue-ensemble.php:598 1639 msgid "No account needed. Only the opening of your most recent post is sent, when you click, and the text is not kept." 1640 msgstr "Sans compte. Seul le début de votre article le plus récent est envoyé, au moment du clic, et le texte n'est pas conservé." 1641 1642 #: admin/vue-ensemble.php:624 1506 1643 msgid "Plugin activated" 1507 1644 msgstr "Extension activée" 1508 1645 1509 #: admin/vue-ensemble.php: 3991646 #: admin/vue-ensemble.php:629 1510 1647 msgid "Site connected to WeDispatch" 1511 1648 msgstr "Site connecté à WeDispatch" 1512 1649 1513 #: admin/vue-ensemble.php: 4041650 #: admin/vue-ensemble.php:634 1514 1651 msgid "Default voice chosen" 1515 1652 msgstr "Voix par défaut choisie" 1516 1653 1517 #: admin/vue-ensemble.php: 4091654 #: admin/vue-ensemble.php:639 1518 1655 msgid "First audio generated" 1519 1656 msgstr "Premier audio généré" 1520 1657 1521 #: admin/vue-ensemble.php: 4211658 #: admin/vue-ensemble.php:651 1522 1659 msgid "Player seen on the public page" 1523 1660 msgstr "Lecteur vu sur la page publique" 1524 1661 1525 #: admin/vue-ensemble.php: 4381662 #: admin/vue-ensemble.php:670 1526 1663 msgid "Where this site stands" 1527 1664 msgstr "Où en est ce site" 1528 1665 1529 #: admin/vue-ensemble.php: 4451666 #: admin/vue-ensemble.php:677 1530 1667 msgid "item with audio" 1531 1668 msgid_plural "items with audio" … … 1533 1670 msgstr[1] "contenus sonorisés" 1534 1671 1535 #: admin/vue-ensemble.php: 4511672 #: admin/vue-ensemble.php:683 1536 1673 msgid "published item eligible" 1537 1674 msgid_plural "published items eligible" … … 1539 1676 msgstr[1] "contenus publiés éligibles" 1540 1677 1541 #: admin/vue-ensemble.php: 4571542 #: wedispatch-audio-text-to-speech.php:1 4871543 #: wedispatch-audio-text-to-speech.php:1 8981678 #: admin/vue-ensemble.php:689 1679 #: wedispatch-audio-text-to-speech.php:1574 1680 #: wedispatch-audio-text-to-speech.php:1985 1544 1681 msgid "Manual" 1545 1682 msgstr "Manuel" 1546 1683 1547 #: admin/vue-ensemble.php: 4581548 #: wedispatch-audio-text-to-speech.php:1 4831549 #: wedispatch-audio-text-to-speech.php:1 8971684 #: admin/vue-ensemble.php:690 1685 #: wedispatch-audio-text-to-speech.php:1570 1686 #: wedispatch-audio-text-to-speech.php:1984 1550 1687 msgid "Auto" 1551 1688 msgstr "Auto" 1552 1689 1553 #: admin/vue-ensemble.php: 4601690 #: admin/vue-ensemble.php:692 1554 1691 msgid "reading mode" 1555 1692 msgstr "mode de lecture" 1556 1693 1557 1694 #. translators: %s: comma-separated list of content type names, e.g. "Posts, Pages". 1558 #: admin/vue-ensemble.php: 4711695 #: admin/vue-ensemble.php:703 1559 1696 #, php-format 1560 1697 msgid "Content types read aloud: %s." 1561 1698 msgstr "Contenus sonorisés : %s." 1562 1699 1563 #: admin/vue-ensemble.php: 4791700 #: admin/vue-ensemble.php:711 1564 1701 msgid "Getting started" 1565 1702 msgstr "Mise en route" 1566 1703 1567 #: admin/vue-ensemble.php: 4951704 #: admin/vue-ensemble.php:727 1568 1705 msgid "done" 1569 1706 msgstr "fait" 1570 1707 1571 #: admin/vue-ensemble.php: 4961708 #: admin/vue-ensemble.php:728 1572 1709 msgid "still to do" 1573 1710 msgstr "reste à faire" 1574 1711 1575 #: admin/vue-ensemble.php: 5081712 #: admin/vue-ensemble.php:740 1576 1713 msgid "This month" 1577 1714 msgstr "Ce mois-ci" 1578 1715 1579 #: admin/vue-ensemble.php: 5161580 #: wedispatch-audio-text-to-speech.php:1 6441716 #: admin/vue-ensemble.php:748 1717 #: wedispatch-audio-text-to-speech.php:1731 1581 1718 msgid "Plan and credits" 1582 1719 msgstr "Forfait et crédits" 1583 1720 1584 #: admin/vue-ensemble.php: 5341721 #: admin/vue-ensemble.php:767 1585 1722 msgid "Next step" 1586 1723 msgstr "Prochaine étape" 1587 1724 1588 #: admin/vue-ensemble.php: 5361589 msgid "C reate a WeDispatch account, generate an API key from your account area, and paste it into the settings. Nothing is sent anywhere until that key is in place."1590 msgstr "C réez un compte WeDispatch, générez une clé API depuis votre espace, puis collez-la dans les réglages. Rien n'est envoyé nulle part tant que cette clé n'est pas en place."1591 1592 #: admin/vue-ensemble.php: 5421725 #: admin/vue-ensemble.php:769 1726 msgid "Connect this site in one click: you sign in or create your WeDispatch account, and the site is authorised on the way. There is no key to copy, and trying it is free. Nothing is sent anywhere unless you click." 1727 msgstr "Connectez ce site en un clic : vous vous connectez ou créez votre compte WeDispatch, et le site est autorisé au passage. Aucune clé à copier, et l'essai est gratuit. Rien n'est envoyé nulle part sans un clic de votre part." 1728 1729 #: admin/vue-ensemble.php:775 1593 1730 msgid "Paste my API key" 1594 1731 msgstr "Coller ma clé API" 1595 1732 1596 #: admin/vue-ensemble.php: 5451733 #: admin/vue-ensemble.php:780 1597 1734 msgid "The key stored on this site is not accepted. The most common reason is a key created for a different WeDispatch environment: a key is only valid where it was created." 1598 1735 msgstr "La clé enregistrée sur ce site n'est pas acceptée. La cause la plus fréquente est une clé créée sur un autre environnement WeDispatch : une clé n'est valable que là où elle a été créée." 1599 1736 1600 #: admin/vue-ensemble.php: 5481737 #: admin/vue-ensemble.php:783 1601 1738 msgid "Replace the key" 1602 1739 msgstr "Remplacer la clé" 1603 1740 1604 #: admin/vue-ensemble.php: 5531741 #: admin/vue-ensemble.php:788 1605 1742 msgid "The service could not be reached from this server. Your key is not in question. This usually clears on its own; if it does not, your host may be blocking outgoing requests." 1606 1743 msgstr "Le service n'a pas pu être joint depuis ce serveur. Votre clé n'est pas en cause. Cela se rétablit généralement seul ; sinon, votre hébergeur bloque peut-être les requêtes sortantes." 1607 1744 1608 #: admin/vue-ensemble.php: 5851745 #: admin/vue-ensemble.php:820 1609 1746 msgid "Generate the audio, automatically or by hand" 1610 1747 msgstr "Générer l'audio, automatiquement ou à la main" 1611 1748 1612 #: admin/vue-ensemble.php: 5861749 #: admin/vue-ensemble.php:821 1613 1750 msgid "Choose where the player sits in the article" 1614 1751 msgstr "Choisir où le lecteur se pose dans l'article" 1615 1752 1616 #: admin/vue-ensemble.php: 5871753 #: admin/vue-ensemble.php:822 1617 1754 msgid "Pick the voices: site, per category, per author" 1618 1755 msgstr "Choisir les voix : site, rubrique, signature" 1619 1756 1620 #: admin/vue-ensemble.php: 5881757 #: admin/vue-ensemble.php:823 1621 1758 msgid "Check that the player really shows up" 1622 1759 msgstr "Vérifier que le lecteur s'affiche vraiment" 1623 1760 1624 #: admin/vue-ensemble.php: 5911761 #: admin/vue-ensemble.php:826 1625 1762 msgid "The look of the player: model, style, colours" 1626 1763 msgstr "L'apparence du lecteur : modèle, style, couleurs" 1627 1764 1628 #: admin/vue-ensemble.php: 5921765 #: admin/vue-ensemble.php:827 1629 1766 msgid "Detailed listening statistics" 1630 1767 msgstr "Les statistiques d'écoute détaillées" 1631 1768 1632 #: admin/vue-ensemble.php: 5931769 #: admin/vue-ensemble.php:828 1633 1770 msgid "Plan, credits and invoices" 1634 1771 msgstr "Forfait, crédits et factures" 1635 1772 1636 #: admin/vue-ensemble.php: 5941773 #: admin/vue-ensemble.php:829 1637 1774 msgid "Signature voice, gated audio, translations" 1638 1775 msgstr "Voix signature, audio réservé, traductions" 1639 1776 1640 #: admin/vue-ensemble.php: 5981777 #: admin/vue-ensemble.php:833 1641 1778 msgid "What lives where" 1642 1779 msgstr "Ce qui se fait où" 1643 1780 1644 #: admin/vue-ensemble.php: 5991781 #: admin/vue-ensemble.php:834 1645 1782 msgid "The product lives in two places. Here, inside WordPress: what touches your content. In your WeDispatch account: what touches your listeners and your plan." 1646 1783 msgstr "Le produit vit à deux endroits. Ici, dans WordPress : ce qui touche à vos contenus. Dans votre compte WeDispatch : ce qui touche à vos auditeurs et à votre forfait." 1647 1784 1648 #: admin/vue-ensemble.php: 6021785 #: admin/vue-ensemble.php:837 1649 1786 msgid "Here, in WordPress" 1650 1787 msgstr "Ici, dans WordPress" 1651 1788 1652 #: admin/vue-ensemble.php: 6101789 #: admin/vue-ensemble.php:845 1653 1790 msgid "In your WeDispatch account" 1654 1791 msgstr "Dans votre compte WeDispatch" 1655 1792 1656 #: admin/vue-ensemble.php: 6361793 #: admin/vue-ensemble.php:871 1657 1794 msgid "Your articles are a podcast" 1658 1795 msgstr "Vos articles sont un podcast" 1659 1796 1660 #: admin/vue-ensemble.php: 6371797 #: admin/vue-ensemble.php:872 1661 1798 msgid "Every audio this site publishes also lands in an RSS podcast feed. Submit it once to the platforms, and your articles follow your readers into their podcast app." 1662 1799 msgstr "Chaque audio publié par ce site alimente aussi un flux podcast RSS. Soumettez-le une fois aux plateformes, et vos articles suivent vos lecteurs dans leur application de podcast." 1663 1800 1664 #: admin/vue-ensemble.php: 6401801 #: admin/vue-ensemble.php:875 1665 1802 msgid "Podcast feed address" 1666 1803 msgstr "Adresse du flux podcast" 1667 1804 1668 #: admin/vue-ensemble.php: 6471805 #: admin/vue-ensemble.php:882 1669 1806 msgid "Submit to Spotify" 1670 1807 msgstr "Soumettre à Spotify" 1671 1808 1672 #: admin/vue-ensemble.php: 6491809 #: admin/vue-ensemble.php:884 1673 1810 msgid "Submit to Apple Podcasts" 1674 1811 msgstr "Soumettre à Apple Podcasts" 1675 1812 1676 #: admin/vue-ensemble.php: 6511813 #: admin/vue-ensemble.php:886 1677 1814 msgid "The feed is public by construction, like every podcast feed. Platforms refresh it on their own; there is nothing to resubmit when you publish." 1678 1815 msgstr "Le flux est public par construction, comme tout flux podcast. Les plateformes le relèvent d'elles-mêmes ; il n'y a rien à resoumettre quand vous publiez." 1679 1816 1680 1817 #. translators: %s: number of items included each month. 1681 #: admin/vue-ensemble.php: 7561818 #: admin/vue-ensemble.php:991 1682 1819 #, php-format 1683 1820 msgid "of %s credit this month" … … 1687 1824 1688 1825 #. translators: %s: number of characters included in the plan each month. 1689 #: admin/vue-ensemble.php: 7691826 #: admin/vue-ensemble.php:1004 1690 1827 #, php-format 1691 1828 msgid "of %s characters this month (internal measure: your plan is counted in credits)" … … 1693 1830 1694 1831 #. translators: %s is not used; the count is rendered just before. 1695 #: admin/vue-ensemble.php: 7761832 #: admin/vue-ensemble.php:1011 1696 1833 msgid "credit this month, with no monthly ceiling on this plan" 1697 1834 msgid_plural "credits this month, with no monthly ceiling on this plan" … … 1699 1836 msgstr[1] "crédits ce mois-ci, sans plafond mensuel sur ce forfait" 1700 1837 1701 #: admin/vue-ensemble.php: 7861838 #: admin/vue-ensemble.php:1021 1702 1839 msgid "characters this month (internal measure), with no monthly ceiling on this plan" 1703 1840 msgstr "caractères ce mois-ci (mesure interne), sans plafond mensuel sur ce forfait" 1704 1841 1705 1842 #. translators: %s: number of items left this month. 1706 #: admin/vue-ensemble.php: 8001843 #: admin/vue-ensemble.php:1035 1707 1844 #, php-format 1708 1845 msgid "%s credit left." … … 1711 1848 msgstr[1] "%s crédits restants." 1712 1849 1713 #: admin/vue-ensemble.php: 8061850 #: admin/vue-ensemble.php:1041 1714 1851 msgid "Unused credits are not carried over: the count starts again at the beginning of each month." 1715 1852 msgstr "Les crédits non consommés ne sont pas reportés : le compte repart au début de chaque mois." 1716 1853 1717 1854 #. translators: %s: number of characters used this month. 1718 #: admin/vue-ensemble.php: 8101855 #: admin/vue-ensemble.php:1045 1719 1856 #, php-format 1720 1857 msgid "(%s characters)" … … 1723 1860 #: inc/api.php:39 1724 1861 #: inc/api.php:109 1725 #: wedispatch-audio-text-to-speech.php: 8901726 #: wedispatch-audio-text-to-speech.php:1 1871727 #: wedispatch-audio-text-to-speech.php:1 7151862 #: wedispatch-audio-text-to-speech.php:941 1863 #: wedispatch-audio-text-to-speech.php:1272 1864 #: wedispatch-audio-text-to-speech.php:1802 1728 1865 msgid "No API key has been entered" 1729 1866 msgstr "Aucune clé API renseignée" 1730 1867 1731 1868 #: inc/api.php:252 1732 #: wedispatch-audio-text-to-speech.php:1 1881869 #: wedispatch-audio-text-to-speech.php:1273 1733 1870 msgid "This content has never been turned into audio" 1734 1871 msgstr "Ce contenu n'a jamais été sonorisé" … … 1774 1911 #. translators: %s: the address of the WeDispatch service this site talks to. 1775 1912 #: inc/api.php:461 1776 #: wedispatch-audio-text-to-speech.php:1 4731913 #: wedispatch-audio-text-to-speech.php:1560 1777 1914 #, php-format 1778 1915 msgid "This site talks to %s. A key created on another environment is refused, however valid it is there." … … 1958 2095 msgstr "Choisir ce qui est lu" 1959 2096 1960 #: wedispatch-audio-text-to-speech.php:2 692097 #: wedispatch-audio-text-to-speech.php:270 1961 2098 msgid "French" 1962 2099 msgstr "Français" 1963 2100 1964 #: wedispatch-audio-text-to-speech.php:27 02101 #: wedispatch-audio-text-to-speech.php:271 1965 2102 msgid "English" 1966 2103 msgstr "Anglais" 1967 2104 1968 #: wedispatch-audio-text-to-speech.php:27 12105 #: wedispatch-audio-text-to-speech.php:272 1969 2106 msgid "Spanish" 1970 2107 msgstr "Espagnol" 1971 2108 1972 #: wedispatch-audio-text-to-speech.php:27 22109 #: wedispatch-audio-text-to-speech.php:273 1973 2110 msgid "German" 1974 2111 msgstr "Allemand" 1975 2112 1976 #: wedispatch-audio-text-to-speech.php:27 32113 #: wedispatch-audio-text-to-speech.php:274 1977 2114 msgid "Italian" 1978 2115 msgstr "Italien" 1979 2116 1980 #: wedispatch-audio-text-to-speech.php:27 42117 #: wedispatch-audio-text-to-speech.php:275 1981 2118 msgid "Hindi" 1982 2119 msgstr "Hindi" 1983 2120 1984 #: wedispatch-audio-text-to-speech.php:27 52121 #: wedispatch-audio-text-to-speech.php:276 1985 2122 msgid "Chinese" 1986 2123 msgstr "Chinois" 1987 2124 1988 #: wedispatch-audio-text-to-speech.php:27 62125 #: wedispatch-audio-text-to-speech.php:277 1989 2126 msgid "Arabic" 1990 2127 msgstr "Arabe" 1991 2128 1992 #: wedispatch-audio-text-to-speech.php:27 72129 #: wedispatch-audio-text-to-speech.php:278 1993 2130 msgid "Portuguese" 1994 2131 msgstr "Portugais" 1995 2132 1996 #: wedispatch-audio-text-to-speech.php:27 82133 #: wedispatch-audio-text-to-speech.php:279 1997 2134 msgid "Japanese" 1998 2135 msgstr "Japonais" 1999 2136 2000 #: wedispatch-audio-text-to-speech.php:2 792137 #: wedispatch-audio-text-to-speech.php:280 2001 2138 msgid "Hebrew" 2002 2139 msgstr "Hébreu" 2003 2140 2004 #: wedispatch-audio-text-to-speech.php:28 02141 #: wedispatch-audio-text-to-speech.php:281 2005 2142 msgid "Korean" 2006 2143 msgstr "Coréen" 2007 2144 2008 #: wedispatch-audio-text-to-speech.php:28 12145 #: wedispatch-audio-text-to-speech.php:282 2009 2146 msgid "Dutch" 2010 2147 msgstr "Néerlandais" 2011 2148 2012 #: wedispatch-audio-text-to-speech.php:28 22149 #: wedispatch-audio-text-to-speech.php:283 2013 2150 msgid "Swedish" 2014 2151 msgstr "Suédois" 2015 2152 2016 #: wedispatch-audio-text-to-speech.php:28 32153 #: wedispatch-audio-text-to-speech.php:284 2017 2154 msgid "Polish" 2018 2155 msgstr "Polonais" 2019 2156 2020 #: wedispatch-audio-text-to-speech.php:28 42157 #: wedispatch-audio-text-to-speech.php:285 2021 2158 msgid "Tamil" 2022 2159 msgstr "Tamoul" 2023 2160 2024 #: wedispatch-audio-text-to-speech.php:28 52161 #: wedispatch-audio-text-to-speech.php:286 2025 2162 msgid "Telugu" 2026 2163 msgstr "Télougou" 2027 2164 2028 #: wedispatch-audio-text-to-speech.php:28 62165 #: wedispatch-audio-text-to-speech.php:287 2029 2166 msgid "Russian" 2030 2167 msgstr "Russe" 2031 2168 2032 #: wedispatch-audio-text-to-speech.php:28 72169 #: wedispatch-audio-text-to-speech.php:288 2033 2170 msgid "Turkish" 2034 2171 msgstr "Turc" 2035 2172 2036 #: wedispatch-audio-text-to-speech.php:28 82173 #: wedispatch-audio-text-to-speech.php:289 2037 2174 msgid "Thai" 2038 2175 msgstr "Thaï" 2039 2176 2040 #: wedispatch-audio-text-to-speech.php:2 892177 #: wedispatch-audio-text-to-speech.php:290 2041 2178 msgid "Filipino" 2042 2179 msgstr "Filipino" 2043 2180 2044 #: wedispatch-audio-text-to-speech.php:29 02181 #: wedispatch-audio-text-to-speech.php:291 2045 2182 msgid "Czech" 2046 2183 msgstr "Tchèque" 2047 2184 2048 #: wedispatch-audio-text-to-speech.php:29 12185 #: wedispatch-audio-text-to-speech.php:292 2049 2186 msgid "Finnish" 2050 2187 msgstr "Finnois" 2051 2188 2052 #: wedispatch-audio-text-to-speech.php:34 22189 #: wedispatch-audio-text-to-speech.php:343 2053 2190 msgid "Female" 2054 2191 msgstr "Femme" 2055 2192 2056 #: wedispatch-audio-text-to-speech.php:34 32193 #: wedispatch-audio-text-to-speech.php:344 2057 2194 msgid "Male" 2058 2195 msgstr "Homme" 2059 2196 2060 2197 #. translators: 1: voice name, 2: Female or Male, 3: speaking style. 2061 #: wedispatch-audio-text-to-speech.php:34 72198 #: wedispatch-audio-text-to-speech.php:348 2062 2199 #, php-format 2063 2200 msgid "%1$s (%2$s, %3$s)" … … 2065 2202 2066 2203 #. translators: 1: voice name, 2: Female or Male. 2067 #: wedispatch-audio-text-to-speech.php:35 02204 #: wedispatch-audio-text-to-speech.php:351 2068 2205 #, php-format 2069 2206 msgid "%1$s (%2$s)" 2070 2207 msgstr "" 2071 2208 2072 #: wedispatch-audio-text-to-speech.php:41 22209 #: wedispatch-audio-text-to-speech.php:413 2073 2210 msgid "Checking…" 2074 2211 msgstr "Vérification…" 2075 2212 2076 #: wedispatch-audio-text-to-speech.php:41 32213 #: wedispatch-audio-text-to-speech.php:414 2077 2214 msgid "The key is accepted by the service." 2078 2215 msgstr "La clé est acceptée par le service." 2079 2216 2080 #: wedispatch-audio-text-to-speech.php:41 42217 #: wedispatch-audio-text-to-speech.php:415 2081 2218 msgid "This site can attest to its visitors’ status. Nothing else to do." 2082 2219 msgstr "Ce site sait attester du statut de ses visiteurs. Rien d'autre à faire." 2083 2220 2084 #: wedispatch-audio-text-to-speech.php:41 52085 #: wedispatch-audio-text-to-speech.php: 19452221 #: wedispatch-audio-text-to-speech.php:416 2222 #: wedispatch-audio-text-to-speech.php:2032 2086 2223 msgid "failed" 2087 2224 msgstr "échec" 2088 2225 2089 #: wedispatch-audio-text-to-speech.php:41 62226 #: wedispatch-audio-text-to-speech.php:417 2090 2227 msgid "Network error" 2091 2228 msgstr "Erreur réseau" 2092 2229 2093 #: wedispatch-audio-text-to-speech.php:43 32230 #: wedispatch-audio-text-to-speech.php:434 2094 2231 msgid "Looking at the public page…" 2095 2232 msgstr "Lecture de la page publique…" 2096 2233 2097 #: wedispatch-audio-text-to-speech.php:43 42234 #: wedispatch-audio-text-to-speech.php:435 2098 2235 msgid "Network error: the check could not run." 2099 2236 msgstr "Erreur réseau : la vérification n'a pas pu s'exécuter." 2100 2237 2101 #: wedispatch-audio-text-to-speech.php:44 62238 #: wedispatch-audio-text-to-speech.php:447 2102 2239 msgid "Enter your API key to list the voices" 2103 2240 msgstr "Renseignez la clé API pour lister les voix" 2104 2241 2105 #: wedispatch-audio-text-to-speech.php:47 02242 #: wedispatch-audio-text-to-speech.php:471 2106 2243 msgid "This voice is not available on your plan. Please pick another one" 2107 2244 msgstr "Voix indisponible avec votre forfait, choisissez-en une autre" 2108 2245 2109 2246 #. translators: %s: the stored voice identifier, shown because the voice list could not be read. 2110 #: wedispatch-audio-text-to-speech.php:47 22247 #: wedispatch-audio-text-to-speech.php:473 2111 2248 #, php-format 2112 2249 msgid "%s (voice list unavailable right now: this setting is kept)" 2113 2250 msgstr "%s (liste des voix indisponible pour l'instant : ce réglage est conservé)" 2114 2251 2115 #: wedispatch-audio-text-to-speech.php:51 12252 #: wedispatch-audio-text-to-speech.php:512 2116 2253 msgid "Your signature voices" 2117 2254 msgstr "Vos voix signature" 2118 2255 2119 #: wedispatch-audio-text-to-speech.php:51 22256 #: wedispatch-audio-text-to-speech.php:513 2120 2257 msgid "All languages" 2121 2258 msgstr "Toutes les langues" 2122 2259 2123 #: wedispatch-audio-text-to-speech.php:53 72124 #: wedispatch-audio-text-to-speech.php:54 02260 #: wedispatch-audio-text-to-speech.php:538 2261 #: wedispatch-audio-text-to-speech.php:541 2125 2262 msgid "Listen" 2126 2263 msgstr "Écouter" 2127 2264 2128 #: wedispatch-audio-text-to-speech.php:53 82265 #: wedispatch-audio-text-to-speech.php:539 2129 2266 msgid "Stop" 2130 2267 msgstr "Arrêter" 2131 2268 2132 #: wedispatch-audio-text-to-speech.php:5 392269 #: wedispatch-audio-text-to-speech.php:540 2133 2270 msgid "No sample for this voice yet." 2134 2271 msgstr "Pas encore d'extrait pour cette voix." 2135 2272 2136 2273 #. translators: separator between a bold label and the sentence that explains it. French adds a no-break space before the colon. 2137 #: wedispatch-audio-text-to-speech.php:66 12274 #: wedispatch-audio-text-to-speech.php:662 2138 2275 msgctxt "label separator" 2139 2276 msgid ": " … … 2141 2278 2142 2279 #. translators: %s: category name. 2143 #: wedispatch-audio-text-to-speech.php:68 42280 #: wedispatch-audio-text-to-speech.php:685 2144 2281 #, php-format 2145 2282 msgid "category “%s”" 2146 2283 msgstr "rubrique « %s »" 2147 2284 2148 #: wedispatch-audio-text-to-speech.php:68 62285 #: wedispatch-audio-text-to-speech.php:687 2149 2286 msgid "category" 2150 2287 msgstr "rubrique" 2151 2288 2152 #: wedispatch-audio-text-to-speech.php:6 892289 #: wedispatch-audio-text-to-speech.php:690 2153 2290 msgid "author" 2154 2291 msgstr "auteur" 2155 2292 2156 #: wedispatch-audio-text-to-speech.php: 8882157 #: wedispatch-audio-text-to-speech.php:10 182293 #: wedispatch-audio-text-to-speech.php:939 2294 #: wedispatch-audio-text-to-speech.php:1097 2158 2295 msgid "Content not found" 2159 2296 msgstr "Contenu introuvable" 2160 2297 2161 #: wedispatch-audio-text-to-speech.php: 9702298 #: wedispatch-audio-text-to-speech.php:1027 2162 2299 msgid "Automatic audio is paused for this site in your account area." 2163 2300 msgstr "La sonorisation automatique est suspendue pour ce site dans votre espace client." 2164 2301 2165 #: wedispatch-audio-text-to-speech.php:1022 2302 #: wedispatch-audio-text-to-speech.php:1058 2303 msgid "Not enough credits left for this item." 2304 msgstr "Il ne reste pas assez de crédits pour ce contenu." 2305 2306 #: wedispatch-audio-text-to-speech.php:1101 2166 2307 msgid "Text too short (100 characters minimum). Save the draft first" 2167 2308 msgstr "Texte trop court (100 caractères minimum). Enregistrez le brouillon d'abord" 2168 2309 2169 #: wedispatch-audio-text-to-speech.php:1 3772310 #: wedispatch-audio-text-to-speech.php:1464 2170 2311 msgid "the site default voice" 2171 2312 msgstr "la voix par défaut du site" 2172 2313 2173 2314 #. translators: %s: category name. 2174 #: wedispatch-audio-text-to-speech.php:1 3912315 #: wedispatch-audio-text-to-speech.php:1478 2175 2316 #, php-format 2176 2317 msgid "the “%s” category" … … 2178 2319 2179 2320 #. translators: %s: comma-separated list, e.g. "the site default voice, the “Sport” category". 2180 #: wedispatch-audio-text-to-speech.php:14 022321 #: wedispatch-audio-text-to-speech.php:1489 2181 2322 #, php-format 2182 2323 msgid "%s uses a voice that is no longer in your plan catalogue." … … 2185 2326 msgstr[1] "%s utilisent des voix qui ne figurent plus au catalogue de votre forfait." 2186 2327 2187 #: wedispatch-audio-text-to-speech.php:14 112328 #: wedispatch-audio-text-to-speech.php:1498 2188 2329 msgid "Your content is still read aloud, with the account default voice, until a new choice is made." 2189 2330 msgstr "Vos contenus restent sonorisés, avec la voix par défaut du compte, jusqu'à ce qu'un nouveau choix soit fait." 2190 2331 2191 #: wedispatch-audio-text-to-speech.php:14 122332 #: wedispatch-audio-text-to-speech.php:1499 2192 2333 msgid "Pick a voice" 2193 2334 msgstr "Choisir une voix" 2194 2335 2195 #: wedispatch-audio-text-to-speech.php:1 4402336 #: wedispatch-audio-text-to-speech.php:1527 2196 2337 msgid "Connect this site" 2197 2338 msgstr "Connecter ce site" 2198 2339 2199 #: wedispatch-audio-text-to-speech.php:1 4412340 #: wedispatch-audio-text-to-speech.php:1528 2200 2341 msgid "One click: you sign in or create your account on wedispatch.fr, you authorise this site, and the key is created and stored here for you. Nothing to copy, and your password never enters WordPress." 2201 2342 msgstr "Un clic : vous vous connectez ou créez votre compte sur wedispatch.fr, vous autorisez ce site, et la clé est créée puis enregistrée ici pour vous. Rien à copier, et votre mot de passe n'entre jamais dans WordPress." 2202 2343 2203 #: wedispatch-audio-text-to-speech.php:1 4492344 #: wedispatch-audio-text-to-speech.php:1536 2204 2345 msgid "Connecting again replaces the key stored on this site." 2205 2346 msgstr "Se reconnecter remplace la clé enregistrée sur ce site." 2206 2347 2207 2348 #. translators: %s: link to the WeDispatch account area. 2208 #: wedispatch-audio-text-to-speech.php:1 4552209 #, php-format 2210 msgid " Turn your content into audio. Paste the API key fromyour account area (%s)."2211 msgstr " Transformez vos contenus en audio. Collez la clé API devotre espace client (%s)."2212 2213 #: wedispatch-audio-text-to-speech.php:1 4632349 #: wedispatch-audio-text-to-speech.php:1542 2350 #, php-format 2351 msgid "Already have an API key? You can also paste it here. It is in your account area (%s)." 2352 msgstr "Vous avez déjà une clé API ? Vous pouvez aussi la coller ici. Elle se trouve dans votre espace client (%s)." 2353 2354 #: wedispatch-audio-text-to-speech.php:1550 2214 2355 msgid "API key" 2215 2356 msgstr "Clé API" 2216 2357 2217 #: wedispatch-audio-text-to-speech.php:1 4662358 #: wedispatch-audio-text-to-speech.php:1553 2218 2359 msgid "Never share this key." 2219 2360 msgstr "Ne partagez jamais cette clé." 2220 2361 2221 #: wedispatch-audio-text-to-speech.php:1 4792362 #: wedispatch-audio-text-to-speech.php:1566 2222 2363 msgid "Default mode" 2223 2364 msgstr "Mode par défaut" 2224 2365 2225 #: wedispatch-audio-text-to-speech.php:1 4842366 #: wedispatch-audio-text-to-speech.php:1571 2226 2367 msgid "the audio is generated on its own when you publish. The voice is picked automatically, in this order: category, then author, then site voice." 2227 2368 msgstr "l'audio se génère tout seul à la publication. La voix est choisie automatiquement dans cet ordre : rubrique, puis auteur, puis voix du site." 2228 2369 2229 #: wedispatch-audio-text-to-speech.php:1 4882370 #: wedispatch-audio-text-to-speech.php:1575 2230 2371 msgid "nothing is turned into audio on its own. The author picks the voice and clicks “Generate” in the editor panel, then publishes. This is also how you stop this site sending anything automatically, without touching your account area." 2231 2372 msgstr "rien n'est sonorisé tout seul. L'auteur choisit la voix et clique sur « Générer » dans le panneau de l'éditeur, puis publie. C'est aussi ainsi qu'on empêche ce site d'envoyer quoi que ce soit automatiquement, sans toucher à l'espace client." 2232 2373 2233 #: wedispatch-audio-text-to-speech.php:1 4892374 #: wedispatch-audio-text-to-speech.php:1576 2234 2375 msgid "Can be set per item in the “WeDispatch” editor panel, which also shows the voice Auto mode will use." 2235 2376 msgstr "Réglable contenu par contenu dans l'encart « WeDispatch » de l'éditeur, qui affiche aussi la voix retenue en Auto." 2236 2377 2237 #: wedispatch-audio-text-to-speech.php:1 4932378 #: wedispatch-audio-text-to-speech.php:1580 2238 2379 msgid "Content to read aloud" 2239 2380 msgstr "Contenus à sonoriser" 2240 2381 2241 #: wedispatch-audio-text-to-speech.php:15 112382 #: wedispatch-audio-text-to-speech.php:1598 2242 2383 msgid "Posts, pages, products, and any custom post type your theme or your plugins register. Unticking everything falls back to posts." 2243 2384 msgstr "Articles, pages, fiches produit, et tout type de contenu déclaré par votre thème ou vos extensions. Tout décocher revient aux articles." 2244 2385 2245 #: wedispatch-audio-text-to-speech.php:1 5162386 #: wedispatch-audio-text-to-speech.php:1603 2246 2387 msgid "Site default voice" 2247 2388 msgstr "Voix par défaut du site" 2248 2389 2249 #: wedispatch-audio-text-to-speech.php:1 5182390 #: wedispatch-audio-text-to-speech.php:1605 2250 2391 msgid "Used in Auto mode when the author has not set a voice of their own (in their profile)." 2251 2392 msgstr "Utilisée en mode Auto si l'auteur n'a pas défini sa propre voix (dans son profil)." 2252 2393 2253 #: wedispatch-audio-text-to-speech.php:1 5212394 #: wedispatch-audio-text-to-speech.php:1608 2254 2395 msgid "Content edited after publication" 2255 2396 msgstr "Contenus corrigés après publication" 2256 2397 2257 #: wedispatch-audio-text-to-speech.php:1 5272398 #: wedispatch-audio-text-to-speech.php:1614 2258 2399 msgid "Rebuild the audio automatically when the text of an item that already has audio changes" 2259 2400 msgstr "Refaire l'audio automatiquement quand le texte d'un contenu déjà sonorisé change" 2260 2401 2261 #: wedispatch-audio-text-to-speech.php:1 5302402 #: wedispatch-audio-text-to-speech.php:1617 2262 2403 msgid "Off by default. Without this option the audio that is online keeps being served and the item is marked “to regenerate”: you rebuild it once the text has settled, from the “Generate audio” button in the editor panel." 2263 2404 msgstr "Désactivé par défaut. Sans cette option, l'audio en ligne continue d'être servi et le contenu est marqué « à régénérer » : vous relancez quand le texte est stabilisé, depuis le bouton « Générer l'audio » de l'encart de l'éditeur." 2264 2405 2265 #: wedispatch-audio-text-to-speech.php:1 5312406 #: wedispatch-audio-text-to-speech.php:1618 2266 2407 msgid "Every automatic rebuild uses one generation from your plan." 2267 2408 msgstr "Chaque reprise automatique consomme une génération de votre forfait." 2268 2409 2269 #: wedispatch-audio-text-to-speech.php:1 5392410 #: wedispatch-audio-text-to-speech.php:1626 2270 2411 msgid "At the top of the article" 2271 2412 msgstr "En tête d'article" 2272 2413 2273 #: wedispatch-audio-text-to-speech.php:1 5402414 #: wedispatch-audio-text-to-speech.php:1627 2274 2415 msgid "At the bottom of the article" 2275 2416 msgstr "En fin d'article" 2276 2417 2277 #: wedispatch-audio-text-to-speech.php:1 5412418 #: wedispatch-audio-text-to-speech.php:1628 2278 2419 msgid "Manual: block, widget or [wedispatch] shortcode" 2279 2420 msgstr "Manuel : bloc, widget ou code court [wedispatch]" 2280 2421 2281 #: wedispatch-audio-text-to-speech.php:1 5462422 #: wedispatch-audio-text-to-speech.php:1633 2282 2423 msgid "Under the article" 2283 2424 msgstr "Sous l'article" 2284 2425 2285 #: wedispatch-audio-text-to-speech.php:1 5542426 #: wedispatch-audio-text-to-speech.php:1641 2286 2427 msgid "Show the transcript, folded, under the article" 2287 2428 msgstr "Afficher le transcript, replié, sous l'article" 2288 2429 2289 #: wedispatch-audio-text-to-speech.php:1 5572430 #: wedispatch-audio-text-to-speech.php:1644 2290 2431 msgid "An audio player alone meets no obligation towards a deaf or hard of hearing reader. The transcript is built from the word-level timing already captured for highlighting: no AI, no extra cost. It is also text that search engines index." 2291 2432 msgstr "Un lecteur audio seul ne remplit aucune obligation envers une personne sourde ou malentendante. Le transcript est fabriqué à partir du calage mot à mot déjà capturé pour le surlignage : aucune IA, aucun coût supplémentaire. C'est aussi du texte que les moteurs de recherche indexent." 2292 2433 2293 #: wedispatch-audio-text-to-speech.php:1 5632434 #: wedispatch-audio-text-to-speech.php:1650 2294 2435 msgid "Show “Listen next” under the article" 2295 2436 msgstr "Afficher « À écouter ensuite » sous l'article" 2296 2437 2297 #: wedispatch-audio-text-to-speech.php:1 5662438 #: wedispatch-audio-text-to-speech.php:1653 2298 2439 msgid "Same category first, then the most recent. The list depends on the article being read, never on who is reading it: your listeners are not tracked or profiled. Only content published on this site is suggested." 2299 2440 msgstr "Même rubrique d'abord, puis les plus récents. La liste dépend de l'article affiché, jamais de qui le lit : vos auditeurs ne sont ni tracés ni profilés. Seuls les contenus publiés sur ce site sont proposés." 2300 2441 2301 #: wedispatch-audio-text-to-speech.php:1 5742442 #: wedispatch-audio-text-to-speech.php:1661 2302 2443 msgid "the player is open to all your visitors." 2303 2444 msgstr "le lecteur est ouvert à tous vos visiteurs." 2304 2445 2305 #: wedispatch-audio-text-to-speech.php:1 5762446 #: wedispatch-audio-text-to-speech.php:1663 2306 2447 msgid "You can reserve the full article for your registered users or your subscribers: everyone else hears a preview, and the player then invites them to create an account. The setting lives in your account area (Player, then “Who can listen”)." 2307 2448 msgstr "Vous pouvez réserver l'article complet à vos inscrits ou à vos abonnés : les autres n'entendent qu'un extrait, puis le lecteur les invite à créer un compte. Le réglage est dans votre espace client (Lecteur, puis « Qui peut écouter »)." 2308 2449 2309 #: wedispatch-audio-text-to-speech.php:1 5772450 #: wedispatch-audio-text-to-speech.php:1664 2310 2451 msgid "Nothing to code" 2311 2452 msgstr "Rien à coder" 2312 2453 2313 #: wedispatch-audio-text-to-speech.php:1 5772454 #: wedispatch-audio-text-to-speech.php:1664 2314 2455 msgid "this plugin takes care of it." 2315 2456 msgstr "ce module s'en occupe." 2316 2457 2317 #: wedispatch-audio-text-to-speech.php:1 5862458 #: wedispatch-audio-text-to-speech.php:1673 2318 2459 msgid "This plugin passes each visitor’s status on automatically." 2319 2460 msgstr "Ce module transmet automatiquement le statut de chaque visiteur." 2320 2461 2321 #: wedispatch-audio-text-to-speech.php:1 5882462 #: wedispatch-audio-text-to-speech.php:1675 2322 2463 msgid "API key missing or invalid: without it, every visitor gets the preview only." 2323 2464 msgstr "Clé API absente ou invalide : sans elle, tous vos visiteurs n'auront que l'extrait." 2324 2465 2325 #: wedispatch-audio-text-to-speech.php:1 5932466 #: wedispatch-audio-text-to-speech.php:1680 2326 2467 msgid "Who counts as a subscriber on this site?" 2327 2468 msgstr "Qui, sur ce site, est un abonné ?" 2328 2469 2329 #: wedispatch-audio-text-to-speech.php:1 5952470 #: wedispatch-audio-text-to-speech.php:1682 2330 2471 msgid "Tick the WordPress role or roles of your paying subscribers. A signed-in user with none of those roles counts as merely registered." 2331 2472 msgstr "Cochez le ou les rôles WordPress de vos abonnés payants. Un utilisateur connecté qui n'a aucun de ces rôles est considéré comme simplement inscrit." 2332 2473 2333 #: wedispatch-audio-text-to-speech.php:16 122474 #: wedispatch-audio-text-to-speech.php:1699 2334 2475 msgid "No role ticked: nobody is recognised as a subscriber, so nobody hears the full article. Tick at least one role." 2335 2476 msgstr "Aucun rôle coché : personne n'est reconnu comme abonné, donc personne n'entend l'article complet. Cochez au moins un rôle." 2336 2477 2337 2478 #. translators: 1: filter name, in a code tag. 2: link to the documentation. 2338 #: wedispatch-audio-text-to-speech.php:1 6192479 #: wedispatch-audio-text-to-speech.php:1706 2339 2480 #, php-format 2340 2481 msgid "Are your subscriptions something other than roles (WooCommerce Subscriptions, MemberPress, an in-house system)? A developer hooks into the %1$s filter: three lines, documented in %2$s." 2341 2482 msgstr "Vos abonnements ne sont pas des rôles (WooCommerce Subscriptions, MemberPress, système maison) ? Un développeur branche le filtre %1$s : trois lignes, documentées dans %2$s." 2342 2483 2343 #: wedispatch-audio-text-to-speech.php:1 6212484 #: wedispatch-audio-text-to-speech.php:1708 2344 2485 msgid "our documentation" 2345 2486 msgstr "notre documentation" 2346 2487 2347 #: wedispatch-audio-text-to-speech.php:1 6282488 #: wedispatch-audio-text-to-speech.php:1715 2348 2489 msgid "Check that everything works" 2349 2490 msgstr "Vérifier que tout fonctionne" 2350 2491 2351 #: wedispatch-audio-text-to-speech.php:1 6322492 #: wedispatch-audio-text-to-speech.php:1719 2352 2493 msgid "Your readers stay anonymous to WeDispatch: this site attests to a status (“subscriber”), never to an identity. No personal data leaves your server." 2353 2494 msgstr "Vos lecteurs restent anonymes pour WeDispatch : ce site atteste d'un statut (« abonné »), jamais d'une identité. Aucune donnée personnelle ne sort d'ici." 2354 2495 2355 #: wedispatch-audio-text-to-speech.php:1 6592496 #: wedispatch-audio-text-to-speech.php:1746 2356 2497 msgid "No key has been entered" 2357 2498 msgstr "Aucune clé renseignée" 2358 2499 2359 #: wedispatch-audio-text-to-speech.php:1 6832500 #: wedispatch-audio-text-to-speech.php:1770 2360 2501 msgid "No API key has been entered." 2361 2502 msgstr "Aucune clé API renseignée." 2362 2503 2363 #: wedispatch-audio-text-to-speech.php:1 6892504 #: wedispatch-audio-text-to-speech.php:1776 2364 2505 msgid "Secret not found. Is the API key valid?" 2365 2506 msgstr "Secret introuvable. La clé API est-elle valide ?" 2366 2507 2367 #: wedispatch-audio-text-to-speech.php:17 022508 #: wedispatch-audio-text-to-speech.php:1789 2368 2509 msgid "Unreadable response from the WeDispatch server." 2369 2510 msgstr "Réponse illisible du serveur WeDispatch." 2370 2511 2371 #: wedispatch-audio-text-to-speech.php:17 082512 #: wedispatch-audio-text-to-speech.php:1795 2372 2513 msgid "Token refused" 2373 2514 msgstr "Jeton refusé" 2374 2515 2375 #: wedispatch-audio-text-to-speech.php:1 7382516 #: wedispatch-audio-text-to-speech.php:1825 2376 2517 msgid "Audio voice" 2377 2518 msgstr "Voix audio" 2378 2519 2379 #: wedispatch-audio-text-to-speech.php:1 7402520 #: wedispatch-audio-text-to-speech.php:1827 2380 2521 msgid "In Auto mode, your content will be read aloud with this voice." 2381 2522 msgstr "En mode Auto, vos contenus seront lus avec cette voix." 2382 2523 2383 #: wedispatch-audio-text-to-speech.php:1 8152524 #: wedispatch-audio-text-to-speech.php:1902 2384 2525 msgid "A voice already set here keeps working: nothing has been erased." 2385 2526 msgstr "Une voix déjà réglée ici continue de s'appliquer : rien n'a été effacé." 2386 2527 2387 #: wedispatch-audio-text-to-speech.php:1 8262388 #: wedispatch-audio-text-to-speech.php:1 8432528 #: wedispatch-audio-text-to-speech.php:1913 2529 #: wedispatch-audio-text-to-speech.php:1930 2389 2530 msgid "WeDispatch voice" 2390 2531 msgstr "Voix WeDispatch" 2391 2532 2392 #: wedispatch-audio-text-to-speech.php:1 8292533 #: wedispatch-audio-text-to-speech.php:1916 2393 2534 msgid "In Auto mode, posts in this category are read aloud with this voice (it takes priority over the author’s voice)." 2394 2535 msgstr "En mode Auto, les articles de cette rubrique seront lus avec cette voix (prioritaire sur la voix de l'auteur)." 2395 2536 2396 #: wedispatch-audio-text-to-speech.php:1 8472537 #: wedispatch-audio-text-to-speech.php:1934 2397 2538 msgid "In Auto mode, takes priority over the author’s voice for posts in this category." 2398 2539 msgstr "En mode Auto, prioritaire sur la voix de l'auteur pour les articles de cette rubrique." 2399 2540 2400 #: wedispatch-audio-text-to-speech.php:1 8802541 #: wedispatch-audio-text-to-speech.php:1967 2401 2542 msgid "WeDispatch Audio" 2402 2543 msgstr "WeDispatch Audio" 2403 2544 2404 #: wedispatch-audio-text-to-speech.php:19 022545 #: wedispatch-audio-text-to-speech.php:1989 2405 2546 msgid "Mode" 2406 2547 msgstr "Mode" 2407 2548 2408 2549 #. translators: %s: the site-wide default, either Auto or Manual. 2409 #: wedispatch-audio-text-to-speech.php:19 062550 #: wedispatch-audio-text-to-speech.php:1993 2410 2551 #, php-format 2411 2552 msgid "Site default (%s)" 2412 2553 msgstr "Défaut du site (%s)" 2413 2554 2414 #: wedispatch-audio-text-to-speech.php:19 072555 #: wedispatch-audio-text-to-speech.php:1994 2415 2556 msgid "Auto: generated on publication" 2416 2557 msgstr "Auto : généré à la publication" 2417 2558 2418 #: wedispatch-audio-text-to-speech.php:19 082559 #: wedispatch-audio-text-to-speech.php:1995 2419 2560 msgid "Manual: I generate it here" 2420 2561 msgstr "Manuel : je génère ici" 2421 2562 2422 #: wedispatch-audio-text-to-speech.php:19 122563 #: wedispatch-audio-text-to-speech.php:1999 2423 2564 msgid "In Auto mode" 2424 2565 msgstr "En Auto" 2425 2566 2426 #: wedispatch-audio-text-to-speech.php:19 122567 #: wedispatch-audio-text-to-speech.php:1999 2427 2568 msgid "this item will be read by:" 2428 2569 msgstr "ce contenu sera lu par :" 2429 2570 2430 2571 #. translators: %s: where the voice comes from: a category, the author, or the site. 2431 #: wedispatch-audio-text-to-speech.php: 19162572 #: wedispatch-audio-text-to-speech.php:2003 2432 2573 #, php-format 2433 2574 msgid "Voice picked via: %s. Priority is category, then author, then site." 2434 2575 msgstr "Voix choisie via : %s. Priorité rubrique, puis auteur, puis site." 2435 2576 2436 #: wedispatch-audio-text-to-speech.php: 19192577 #: wedispatch-audio-text-to-speech.php:2006 2437 2578 msgid "Voice (Manual mode)" 2438 2579 msgstr "Voix (mode Manuel)" 2439 2580 2440 #: wedispatch-audio-text-to-speech.php: 19212581 #: wedispatch-audio-text-to-speech.php:2008 2441 2582 msgid "Used in Manual mode only. In Auto mode the routing above decides." 2442 2583 msgstr "Utilisée uniquement en mode Manuel. En Auto, c'est l'aiguillage ci-dessus qui décide." 2443 2584 2444 #: wedispatch-audio-text-to-speech.php: 19232585 #: wedispatch-audio-text-to-speech.php:2010 2445 2586 msgid "Audio status:" 2446 2587 msgstr "État audio :" 2447 2588 2448 #: wedispatch-audio-text-to-speech.php: 19252449 #: wedispatch-audio-text-to-speech.php: 19422589 #: wedispatch-audio-text-to-speech.php:2012 2590 #: wedispatch-audio-text-to-speech.php:2029 2450 2591 msgid "Generated" 2451 2592 msgstr "Généré" 2452 2593 2453 #: wedispatch-audio-text-to-speech.php: 19262594 #: wedispatch-audio-text-to-speech.php:2013 2454 2595 msgid "Not generated" 2455 2596 msgstr "Non généré" 2456 2597 2457 #: wedispatch-audio-text-to-speech.php: 19272598 #: wedispatch-audio-text-to-speech.php:2014 2458 2599 msgid "Generate audio" 2459 2600 msgstr "Générer l'audio" 2460 2601 2461 #: wedispatch-audio-text-to-speech.php: 19292602 #: wedispatch-audio-text-to-speech.php:2016 2462 2603 msgid "Save the draft before generating." 2463 2604 msgstr "Enregistrez le brouillon avant de générer." 2464 2605 2465 #: wedispatch-audio-text-to-speech.php: 19412606 #: wedispatch-audio-text-to-speech.php:2028 2466 2607 msgid "Generating…" 2467 2608 msgstr "Génération…" 2468 2609 2469 #: wedispatch-audio-text-to-speech.php: 19432610 #: wedispatch-audio-text-to-speech.php:2030 2470 2611 msgid "Scheduled" 2471 2612 msgstr "Programmé" 2472 2613 2473 #: wedispatch-audio-text-to-speech.php: 19442614 #: wedispatch-audio-text-to-speech.php:2031 2474 2615 msgid "Preparing…" 2475 2616 msgstr "En préparation…" 2476 2617 2477 #: wedispatch-audio-text-to-speech.php: 19462618 #: wedispatch-audio-text-to-speech.php:2033 2478 2619 msgid "network error" 2479 2620 msgstr "erreur réseau" 2480 2621 2481 #: wedispatch-audio-text-to-speech.php:2 0882622 #: wedispatch-audio-text-to-speech.php:2175 2482 2623 msgid "Audio version of this article" 2483 2624 msgstr "Version audio de cet article" 2484 2625 2485 #: wedispatch-audio-text-to-speech.php:2 1782626 #: wedispatch-audio-text-to-speech.php:2265 2486 2627 #: blocks/player/index.js:37 2487 2628 msgid "WeDispatch audio player" 2488 2629 msgstr "Lecteur audio WeDispatch" 2489 2630 2490 #: wedispatch-audio-text-to-speech.php:2 1802631 #: wedispatch-audio-text-to-speech.php:2267 2491 2632 msgid "The audio version of the article being read. Shows nothing on pages that have no audio." 2492 2633 msgstr "La version audio de l'article consulté. N'affiche rien sur les pages qui n'ont pas d'audio." 2493 2634 2494 #: wedispatch-audio-text-to-speech.php:22 062635 #: wedispatch-audio-text-to-speech.php:2293 2495 2636 msgid "Listen to this article" 2496 2637 msgstr "Écouter cet article" 2497 2638 2498 #: wedispatch-audio-text-to-speech.php:22 092639 #: wedispatch-audio-text-to-speech.php:2296 2499 2640 msgid "Title:" 2500 2641 msgstr "Titre :" … … 2503 2644 msgid "The audio version of this article appears here once it has been generated." 2504 2645 msgstr "La version audio de cet article s'affiche ici une fois qu'elle a été générée." 2505 2506 #: blocks/player/block.json2507 msgctxt "block title"2508 msgid "WeDispatch audio player"2509 msgstr "Lecteur audio WeDispatch"2510 2511 #: blocks/player/block.json2512 msgctxt "block description"2513 msgid "Places the audio version of this article exactly where you want it."2514 msgstr "Place la version audio de cet article exactement où vous le voulez."2515 2516 #: blocks/player/block.json2517 msgctxt "block keyword"2518 msgid "audio"2519 msgstr ""2520 2521 #: blocks/player/block.json2522 msgctxt "block keyword"2523 msgid "text to speech"2524 msgstr "synthèse vocale"2525 2526 #: blocks/player/block.json2527 msgctxt "block keyword"2528 msgid "listen"2529 msgstr "écouter"2530 2531 #: blocks/player/block.json2532 msgctxt "block keyword"2533 msgid "podcast"2534 msgstr ""2535 2536 #: blocks/player/block.json2537 msgctxt "block keyword"2538 msgid "accessibility"2539 msgstr "accessibilité" -
wedispatch-audio-text-to-speech/trunk/languages/wedispatch-audio-text-to-speech.pot
r3665684 r3709329 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: WeDispatch Audio Text to Speech 1. 29.0\n"5 "Project-Id-Version: WeDispatch Audio Text to Speech 1.30.0\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wedispatch-audio-text-to-speech\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2026-0 8-25T13:57:57+00:00\n"12 "POT-Creation-Date: 2026-09-23T09:39:17+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 42 42 #: admin/aide.php:17 43 43 #: admin/menu.php:66 44 #: wedispatch-audio-text-to-speech.php:1 64644 #: wedispatch-audio-text-to-speech.php:1733 45 45 msgid "Help & checks" 46 46 msgstr "" … … 75 75 76 76 #: admin/aide.php:28 77 #: wedispatch-audio-text-to-speech.php:1 53677 #: wedispatch-audio-text-to-speech.php:1623 78 78 msgid "Player position" 79 79 msgstr "" … … 81 81 #: admin/aide.php:29 82 82 #: admin/lecteur.php:883 83 #: wedispatch-audio-text-to-speech.php:1 57183 #: wedispatch-audio-text-to-speech.php:1658 84 84 msgid "Who can listen" 85 85 msgstr "" … … 156 156 #: inc/diagnostic.php:164 157 157 #: inc/diagnostic.php:168 158 #: wedispatch-audio-text-to-speech.php:1 680159 #: wedispatch-audio-text-to-speech.php: 1971158 #: wedispatch-audio-text-to-speech.php:1767 159 #: wedispatch-audio-text-to-speech.php:2058 160 160 msgid "Not allowed" 161 161 msgstr "" … … 179 179 180 180 #: admin/compte.php:92 181 #: admin/vue-ensemble.php: 511181 #: admin/vue-ensemble.php:743 182 182 msgid "Refresh" 183 183 msgstr "" … … 257 257 msgstr "" 258 258 259 #: admin/connexion.php:24 0259 #: admin/connexion.php:244 260 260 msgid "This site no longer uses your WeDispatch account. Your settings and your audio are untouched: connecting again puts everything back." 261 261 msgstr "" 262 262 263 #: admin/connexion.php:25 2263 #: admin/connexion.php:256 264 264 msgid "Disconnect this site?" 265 265 msgstr "" 266 266 267 #: admin/connexion.php:25 4267 #: admin/connexion.php:258 268 268 msgid "What is removed from this site" 269 269 msgstr "" 270 270 271 #: admin/connexion.php:2 56271 #: admin/connexion.php:260 272 272 msgid "The API key stored here, and everything read from your account." 273 273 msgstr "" 274 274 275 #: admin/connexion.php:2 57275 #: admin/connexion.php:261 276 276 msgid "The secret that lets subscriber-only audio be listened to, and its hourly refresh." 277 277 msgstr "" 278 278 279 #: admin/connexion.php:26 0279 #: admin/connexion.php:264 280 280 msgid "What is kept" 281 281 msgstr "" 282 282 283 #: admin/connexion.php:26 2283 #: admin/connexion.php:266 284 284 msgid "Your settings: reading mode, content types, voices, player position." 285 285 msgstr "" 286 286 287 #: admin/connexion.php:26 3287 #: admin/connexion.php:267 288 288 msgid "The link between each item and its audio. Connecting the same account again puts everything back, and regenerates nothing." 289 289 msgstr "" 290 290 291 #: admin/connexion.php:2 66291 #: admin/connexion.php:270 292 292 msgid "What this cannot do for you" 293 293 msgstr "" 294 294 295 #: admin/connexion.php:2 67295 #: admin/connexion.php:271 296 296 msgid "The key keeps existing on wedispatch.fr and stays valid until you revoke it there. This site simply stops using it. Audio already published keeps being served." 297 297 msgstr "" 298 298 299 #: admin/connexion.php:27 1300 #: wedispatch-audio-text-to-speech.php:1 448299 #: admin/connexion.php:275 300 #: wedispatch-audio-text-to-speech.php:1535 301 301 msgid "Disconnect this site" 302 302 msgstr "" 303 303 304 #: admin/connexion.php:27 3304 #: admin/connexion.php:277 305 305 msgid "Cancel" 306 306 msgstr "" 307 307 308 #: admin/connexion.php:27 5308 #: admin/connexion.php:279 309 309 msgid "Revoke the key on wedispatch.fr" 310 310 msgstr "" 311 311 312 #: admin/connexion.php:301 312 #: admin/connexion.php:305 313 #: admin/premiers-pas.php:97 313 314 msgid "Connect this site to WeDispatch" 314 315 msgstr "" 315 316 316 #: admin/contenus.php:55 317 #: admin/contenus.php:57 318 msgid "Not voiced: credits" 319 msgstr "" 320 321 #: admin/contenus.php:64 317 322 msgid "Automatic audio paused" 318 323 msgstr "" 319 324 320 #: admin/contenus.php: 56321 #: admin/contenus.php:2 21325 #: admin/contenus.php:65 326 #: admin/contenus.php:230 322 327 msgid "No audio" 323 328 msgstr "" 324 329 325 #: admin/contenus.php: 62330 #: admin/contenus.php:71 326 331 msgid "Text changed since" 327 332 msgstr "" 328 333 329 #: admin/contenus.php: 64334 #: admin/contenus.php:73 330 335 msgid "Up to date" 331 336 msgstr "" 332 337 333 #: admin/contenus.php: 96338 #: admin/contenus.php:105 334 339 #: admin/lecteur.php:312 335 340 #: admin/voix.php:162 … … 337 342 msgstr "" 338 343 339 #: admin/contenus.php: 99344 #: admin/contenus.php:108 340 345 #: inc/front.php:175 341 346 msgid "You are not allowed to edit this item." 342 347 msgstr "" 343 348 344 #: admin/contenus.php:1 03349 #: admin/contenus.php:112 345 350 msgid "Queued. The audio will be prepared in the background." 346 351 msgstr "" 347 352 348 #: admin/contenus.php:11 0353 #: admin/contenus.php:119 349 354 msgid "The player no longer appears on this item. The audio itself still exists in your WeDispatch account." 350 355 msgstr "" 351 356 352 #: admin/contenus.php:12 0357 #: admin/contenus.php:129 353 358 msgid "Pick an action and at least one item." 354 359 msgstr "" 355 360 356 361 #. translators: %d: number of items. 357 #: admin/contenus.php:1 47362 #: admin/contenus.php:156 358 363 #, php-format 359 364 msgid "%d item detached." … … 364 369 #. translators: %d: number of items. 365 370 #. translators: %d: number of items queued. 366 #: admin/contenus.php:1 49367 #: admin/vue-ensemble.php: 263371 #: admin/contenus.php:158 372 #: admin/vue-ensemble.php:377 368 373 #, php-format 369 374 msgid "%d item queued." … … 373 378 374 379 #. translators: %d: number of items the current user may not edit. 375 #: admin/contenus.php:1 52380 #: admin/contenus.php:161 376 381 #, php-format 377 382 msgid "%d item skipped: you may not edit it." … … 380 385 msgstr[1] "" 381 386 382 #: admin/contenus.php:20 0387 #: admin/contenus.php:209 383 388 #: admin/menu.php:60 384 389 #: admin/statistiques.php:367 … … 386 391 msgstr "" 387 392 388 #: admin/contenus.php:21 0393 #: admin/contenus.php:219 389 394 msgid "Content type" 390 395 msgstr "" 391 396 392 #: admin/contenus.php:2 12397 #: admin/contenus.php:221 393 398 msgid "All content types" 394 399 msgstr "" 395 400 396 #: admin/contenus.php:2 18401 #: admin/contenus.php:227 397 402 msgid "Audio state" 398 403 msgstr "" 399 404 400 #: admin/contenus.php:22 0405 #: admin/contenus.php:229 401 406 msgid "Any audio state" 402 407 msgstr "" 403 408 404 #: admin/contenus.php:2 22409 #: admin/contenus.php:231 405 410 msgid "With audio" 406 411 msgstr "" 407 412 408 #: admin/contenus.php:2 24413 #: admin/contenus.php:233 409 414 msgid "Search" 410 415 msgstr "" 411 416 412 #: admin/contenus.php:2 26417 #: admin/contenus.php:235 413 418 msgid "Search titles" 414 419 msgstr "" 415 420 416 #: admin/contenus.php:2 27421 #: admin/contenus.php:236 417 422 msgid "Filter" 418 423 msgstr "" 419 424 420 #: admin/contenus.php:2 34425 #: admin/contenus.php:243 421 426 msgid "Bulk action" 422 427 msgstr "" 423 428 424 #: admin/contenus.php:2 36429 #: admin/contenus.php:245 425 430 msgid "Bulk actions" 426 431 msgstr "" 427 432 428 #: admin/contenus.php:2 37433 #: admin/contenus.php:246 429 434 msgid "Generate or rebuild the audio" 430 435 msgstr "" 431 436 432 #: admin/contenus.php:2 38437 #: admin/contenus.php:247 433 438 msgid "Remove the player from these items" 434 439 msgstr "" 435 440 436 #: admin/contenus.php:24 0441 #: admin/contenus.php:249 437 442 msgid "Apply" 438 443 msgstr "" … … 441 446 #. translators: %s: number of items. 442 447 #. translators: %s: number of items in this category. 443 #: admin/contenus.php:2 45448 #: admin/contenus.php:254 444 449 #: admin/statistiques.php:136 445 450 #: admin/voix.php:451 … … 450 455 msgstr[1] "" 451 456 452 #: admin/contenus.php:2 54453 #: wedispatch-audio-text-to-speech.php:69 1457 #: admin/contenus.php:263 458 #: wedispatch-audio-text-to-speech.php:692 454 459 msgid "site voice" 455 460 msgstr "" 456 461 457 #: admin/contenus.php:2 55458 #: wedispatch-audio-text-to-speech.php:69 2459 #: wedispatch-audio-text-to-speech.php:19 00462 #: admin/contenus.php:264 463 #: wedispatch-audio-text-to-speech.php:693 464 #: wedispatch-audio-text-to-speech.php:1987 460 465 msgid "account default voice" 461 466 msgstr "" 462 467 463 #: admin/contenus.php:2 79468 #: admin/contenus.php:288 464 469 msgid "Select all" 465 470 msgstr "" 466 471 467 #: admin/contenus.php:2 82472 #: admin/contenus.php:291 468 473 msgid "Title" 469 474 msgstr "" 470 475 471 #: admin/contenus.php:2 83476 #: admin/contenus.php:292 472 477 msgid "Audio" 473 478 msgstr "" 474 479 475 #: admin/contenus.php:2 84480 #: admin/contenus.php:293 476 481 #: admin/voix.php:441 477 482 #: admin/voix.php:485 … … 479 484 msgstr "" 480 485 481 #: admin/contenus.php:2 86486 #: admin/contenus.php:295 482 487 #: admin/statistiques.php:145 483 488 #: admin/statistiques.php:228 … … 485 490 msgstr "" 486 491 487 #: admin/contenus.php:2 88492 #: admin/contenus.php:297 488 493 msgid "Last edited" 489 494 msgstr "" 490 495 491 496 #. translators: %s: title of the item. 492 #: admin/contenus.php:3 17497 #: admin/contenus.php:326 493 498 #, php-format 494 499 msgid "Select %s" 495 500 msgstr "" 496 501 497 #: admin/contenus.php:3 31502 #: admin/contenus.php:340 498 503 msgid "Generate the audio" 499 504 msgstr "" 500 505 501 #: admin/contenus.php:3 32506 #: admin/contenus.php:341 502 507 msgid "Rebuild the audio" 503 508 msgstr "" 504 509 505 #: admin/contenus.php:3 36510 #: admin/contenus.php:345 506 511 msgid "Listen on the site" 507 512 msgstr "" 508 513 509 #: admin/contenus.php:3 46514 #: admin/contenus.php:355 510 515 msgid "Transcript" 511 516 msgstr "" 512 517 513 #: admin/contenus.php:3 48518 #: admin/contenus.php:357 514 519 msgid "SRT" 515 520 msgstr "" 516 521 517 #: admin/contenus.php:3 56522 #: admin/contenus.php:365 518 523 msgid "Check the display" 519 524 msgstr "" 520 525 521 #: admin/contenus.php:3 58526 #: admin/contenus.php:367 522 527 msgid "Remove the player" 523 528 msgstr "" 524 529 525 #: admin/contenus.php:3 67526 #: wedispatch-audio-text-to-speech.php:44 3530 #: admin/contenus.php:376 531 #: wedispatch-audio-text-to-speech.php:444 527 532 msgid "Account default voice" 528 533 msgstr "" 529 534 530 #: admin/contenus.php:3 86535 #: admin/contenus.php:395 531 536 msgid "no audio yet" 532 537 msgstr "" 533 538 534 #: admin/contenus.php: 395539 #: admin/contenus.php:404 535 540 msgid "Nothing matches these filters." 536 541 msgstr "" 537 542 538 #: admin/contenus.php:4 06543 #: admin/contenus.php:415 539 544 msgid "Previous" 540 545 msgstr "" 541 546 542 #: admin/contenus.php:4 07547 #: admin/contenus.php:416 543 548 msgid "Next" 544 549 msgstr "" 545 550 546 #: admin/contenus.php:4 17551 #: admin/contenus.php:426 547 552 msgid "Bulk actions queue the work in the background: WordPress prepares the audio a few seconds later, without holding this page. Come back and refresh to follow it." 548 553 msgstr "" … … 795 800 #: admin/statistiques.php:369 796 801 #: admin/voix.php:363 797 #: admin/vue-ensemble.php: 550798 #: admin/vue-ensemble.php: 556802 #: admin/vue-ensemble.php:785 803 #: admin/vue-ensemble.php:791 799 804 msgid "Run the checks" 800 805 msgstr "" … … 912 917 913 918 #: admin/lecteur.php:886 914 #: wedispatch-audio-text-to-speech.php:1 574919 #: wedispatch-audio-text-to-speech.php:1661 915 920 msgid "Everyone" 916 921 msgstr "" 917 922 918 923 #: admin/lecteur.php:888 919 #: wedispatch-audio-text-to-speech.php:1 582924 #: wedispatch-audio-text-to-speech.php:1669 920 925 msgid "Your subscribers" 921 926 msgstr "" 922 927 923 928 #: admin/lecteur.php:889 924 #: wedispatch-audio-text-to-speech.php:1 583929 #: wedispatch-audio-text-to-speech.php:1670 925 930 msgid "Your registered users" 926 931 msgstr "" 927 932 928 933 #: admin/lecteur.php:891 929 #: wedispatch-audio-text-to-speech.php:1 584934 #: wedispatch-audio-text-to-speech.php:1671 930 935 msgid "other visitors only hear a preview." 931 936 msgstr "" … … 945 950 #: admin/menu.php:45 946 951 #: admin/menu.php:46 947 #: admin/vue-ensemble.php: 427952 #: admin/vue-ensemble.php:657 948 953 msgid "WeDispatch" 949 954 msgstr "" 950 955 951 956 #: admin/menu.php:59 957 #: admin/premiers-pas.php:67 952 958 msgid "Overview" 953 959 msgstr "" … … 964 970 965 971 #: admin/menu.php:64 966 #: admin/vue-ensemble.php: 519967 #: wedispatch-audio-text-to-speech.php:1 429972 #: admin/vue-ensemble.php:751 973 #: wedispatch-audio-text-to-speech.php:1516 968 974 msgid "Settings" 969 975 msgstr "" … … 973 979 #, php-format 974 980 msgid "WeDispatch: %s" 981 msgstr "" 982 983 #: admin/premiers-pas.php:68 984 msgid "Connect" 985 msgstr "" 986 987 #: admin/premiers-pas.php:93 988 msgid "WeDispatch is installed." 989 msgstr "" 990 991 #: admin/premiers-pas.php:94 992 msgid "Connect this site to hear your posts read aloud: your account is created on the way, and trying it is free. Nothing is sent unless you click." 993 msgstr "" 994 995 #: admin/premiers-pas.php:99 996 msgid "See what it does" 997 msgstr "" 998 999 #: admin/premiers-pas.php:101 1000 #: admin/premiers-pas.php:151 1001 msgid "Do not show this again" 1002 msgstr "" 1003 1004 #: admin/premiers-pas.php:139 1005 msgid "A post was not read aloud." 1006 msgstr "" 1007 1008 #. translators: %s: title of the post that was not read aloud. 1009 #: admin/premiers-pas.php:142 1010 #, php-format 1011 msgid "“%s”" 1012 msgstr "" 1013 1014 #: admin/premiers-pas.php:147 1015 #: admin/vue-ensemble.php:315 1016 msgid "Choose a plan" 1017 msgstr "" 1018 1019 #: admin/premiers-pas.php:149 1020 msgid "See my content" 975 1021 msgstr "" 976 1022 … … 1263 1309 1264 1310 #: admin/voix.php:431 1265 #: wedispatch-audio-text-to-speech.php:1 8131311 #: wedispatch-audio-text-to-speech.php:1900 1266 1312 msgid "A voice per category comes with the paid plans." 1267 1313 msgstr "" … … 1451 1497 msgstr "" 1452 1498 1499 #: admin/vue-ensemble.php:238 1500 msgid "Let every new post get its audio" 1501 msgstr "" 1502 1503 #: admin/vue-ensemble.php:239 1504 msgid "This site is in manual mode: nothing is read aloud unless someone asks. In automatic mode, every post you publish gets its audio a few seconds later, and each one uses credits according to its length. You can come back to manual at any time in Settings." 1505 msgstr "" 1506 1453 1507 #: admin/vue-ensemble.php:243 1454 msgid "Nothing left to use this month." 1455 msgstr "" 1456 1457 #: admin/vue-ensemble.php:252 1458 msgid "Every published item already has its audio." 1459 msgstr "" 1460 1461 #: admin/vue-ensemble.php:308 1462 msgid "Use what is left this month" 1463 msgstr "" 1464 1465 #. translators: 1: number of credits left in the plan, 2: number of published items without audio. 1466 #: admin/vue-ensemble.php:329 1467 #, php-format 1468 msgid "You have %1$s left this month, and %2$s that have no audio yet. What is not used before the end of the month is lost." 1508 msgid "Switch to automatic" 1509 msgstr "" 1510 1511 #: admin/vue-ensemble.php:255 1512 msgid "Automatic mode is on: the next post you publish gets its audio on its own." 1513 msgstr "" 1514 1515 #: admin/vue-ensemble.php:286 1516 msgid "Hear your first audio" 1517 msgstr "" 1518 1519 #: admin/vue-ensemble.php:287 1520 msgid "Use your trial" 1521 msgstr "" 1522 1523 #. translators: 1: number of trial credits left, 2: number of characters one credit covers. 1524 #: admin/vue-ensemble.php:291 1525 #, php-format 1526 msgid "Your trial has %1$s left, and they do not expire. A credit covers %2$s characters, so a long post uses several." 1469 1527 msgstr "" 1470 1528 1471 1529 #. translators: %s: number of credits left. 1472 #: admin/vue-ensemble.php:332 1530 #: admin/vue-ensemble.php:294 1531 #: admin/vue-ensemble.php:453 1473 1532 #, php-format 1474 1533 msgid "%s credit" … … 1477 1536 msgstr[1] "" 1478 1537 1538 #. translators: %s: title of the post that will be read aloud. 1539 #: admin/vue-ensemble.php:307 1540 #, php-format 1541 msgid "Read “%s” aloud" 1542 msgstr "" 1543 1544 #: admin/vue-ensemble.php:310 1545 msgid "Your most recent post that fits in what your trial has left. Nothing else is sent: this site stays in manual mode until you switch it to automatic in Settings." 1546 msgstr "" 1547 1548 #: admin/vue-ensemble.php:312 1549 msgid "Your recent posts are all longer than what your trial has left. Pick a shorter one in My content & audio, or choose a plan: the price follows the volume you publish." 1550 msgstr "" 1551 1552 #: admin/vue-ensemble.php:317 1553 msgid "Choose a post myself" 1554 msgstr "" 1555 1556 #: admin/vue-ensemble.php:344 1557 msgid "This item can no longer be voiced from here. Open My content & audio to pick another one." 1558 msgstr "" 1559 1560 #: admin/vue-ensemble.php:347 1561 msgid "Your first audio is on its way. It usually takes under a minute: open the post to hear it, the player appears on its own." 1562 msgstr "" 1563 1564 #: admin/vue-ensemble.php:357 1565 msgid "Nothing left to use this month." 1566 msgstr "" 1567 1568 #: admin/vue-ensemble.php:366 1569 msgid "Every published item already has its audio." 1570 msgstr "" 1571 1572 #: admin/vue-ensemble.php:424 1573 msgid "Use what is left this month" 1574 msgstr "" 1575 1576 #. translators: 1: number of credits left, 2: number of published items without audio. 1577 #: admin/vue-ensemble.php:448 1578 #, php-format 1579 msgid "You have %1$s left, and %2$s that have no audio yet." 1580 msgstr "" 1581 1582 #. translators: 1: number of credits left in the plan, 2: number of published items without audio. 1583 #: admin/vue-ensemble.php:450 1584 #, php-format 1585 msgid "You have %1$s left this month, and %2$s that have no audio yet. What is not used before the end of the month is lost." 1586 msgstr "" 1587 1479 1588 #. translators: %s: number of published items without audio. 1480 #: admin/vue-ensemble.php: 3371589 #: admin/vue-ensemble.php:458 1481 1590 #, php-format 1482 1591 msgid "%s published item" … … 1485 1594 msgstr[1] "" 1486 1595 1487 #: admin/vue-ensemble.php: 3431596 #: admin/vue-ensemble.php:464 1488 1597 msgid "An item costs at least one credit, and a long one costs several: depending on their length, the last ones may not go through this month." 1489 1598 msgstr "" 1490 1599 1491 1600 #. translators: %s: number of items to queue. 1492 #: admin/vue-ensemble.php: 3611601 #: admin/vue-ensemble.php:482 1493 1602 #, php-format 1494 1603 msgid "Voice the next %s item" … … 1497 1606 msgstr[1] "" 1498 1607 1499 #: admin/vue-ensemble.php: 3651608 #: admin/vue-ensemble.php:486 1500 1609 msgid "Choose them myself" 1501 1610 msgstr "" 1502 1611 1503 #: admin/vue-ensemble.php: 3691612 #: admin/vue-ensemble.php:490 1504 1613 msgid "The most recent ones first. They are queued in the background: WordPress prepares the audio a few seconds later, without holding this page." 1505 1614 msgstr "" 1506 1615 1507 #: admin/vue-ensemble.php:394 1616 #: admin/vue-ensemble.php:544 1617 msgid "There is no published post long enough to make a sample from yet." 1618 msgstr "" 1619 1620 #: admin/vue-ensemble.php:566 1621 msgid "Here is how your post sounds. Connect the site to get the whole post, and the player on the page." 1622 msgstr "" 1623 1624 #: admin/vue-ensemble.php:574 1625 msgid "Several samples were played in the last hour. Try again later, or connect the site to voice every post." 1626 msgstr "" 1627 1628 #: admin/vue-ensemble.php:576 1629 msgid "Samples are not available right now. Connecting the site still works, and trying it is free." 1630 msgstr "" 1631 1632 #: admin/vue-ensemble.php:578 1633 msgid "The sample could not be produced. Try again in a moment." 1634 msgstr "" 1635 1636 #: admin/vue-ensemble.php:596 1637 msgid "Hear a 20-second sample of my latest post" 1638 msgstr "" 1639 1640 #: admin/vue-ensemble.php:598 1641 msgid "No account needed. Only the opening of your most recent post is sent, when you click, and the text is not kept." 1642 msgstr "" 1643 1644 #: admin/vue-ensemble.php:624 1508 1645 msgid "Plugin activated" 1509 1646 msgstr "" 1510 1647 1511 #: admin/vue-ensemble.php: 3991648 #: admin/vue-ensemble.php:629 1512 1649 msgid "Site connected to WeDispatch" 1513 1650 msgstr "" 1514 1651 1515 #: admin/vue-ensemble.php: 4041652 #: admin/vue-ensemble.php:634 1516 1653 msgid "Default voice chosen" 1517 1654 msgstr "" 1518 1655 1519 #: admin/vue-ensemble.php: 4091656 #: admin/vue-ensemble.php:639 1520 1657 msgid "First audio generated" 1521 1658 msgstr "" 1522 1659 1523 #: admin/vue-ensemble.php: 4211660 #: admin/vue-ensemble.php:651 1524 1661 msgid "Player seen on the public page" 1525 1662 msgstr "" 1526 1663 1527 #: admin/vue-ensemble.php: 4381664 #: admin/vue-ensemble.php:670 1528 1665 msgid "Where this site stands" 1529 1666 msgstr "" 1530 1667 1531 #: admin/vue-ensemble.php: 4451668 #: admin/vue-ensemble.php:677 1532 1669 msgid "item with audio" 1533 1670 msgid_plural "items with audio" … … 1535 1672 msgstr[1] "" 1536 1673 1537 #: admin/vue-ensemble.php: 4511674 #: admin/vue-ensemble.php:683 1538 1675 msgid "published item eligible" 1539 1676 msgid_plural "published items eligible" … … 1541 1678 msgstr[1] "" 1542 1679 1543 #: admin/vue-ensemble.php: 4571544 #: wedispatch-audio-text-to-speech.php:1 4871545 #: wedispatch-audio-text-to-speech.php:1 8981680 #: admin/vue-ensemble.php:689 1681 #: wedispatch-audio-text-to-speech.php:1574 1682 #: wedispatch-audio-text-to-speech.php:1985 1546 1683 msgid "Manual" 1547 1684 msgstr "" 1548 1685 1549 #: admin/vue-ensemble.php: 4581550 #: wedispatch-audio-text-to-speech.php:1 4831551 #: wedispatch-audio-text-to-speech.php:1 8971686 #: admin/vue-ensemble.php:690 1687 #: wedispatch-audio-text-to-speech.php:1570 1688 #: wedispatch-audio-text-to-speech.php:1984 1552 1689 msgid "Auto" 1553 1690 msgstr "" 1554 1691 1555 #: admin/vue-ensemble.php: 4601692 #: admin/vue-ensemble.php:692 1556 1693 msgid "reading mode" 1557 1694 msgstr "" 1558 1695 1559 1696 #. translators: %s: comma-separated list of content type names, e.g. "Posts, Pages". 1560 #: admin/vue-ensemble.php: 4711697 #: admin/vue-ensemble.php:703 1561 1698 #, php-format 1562 1699 msgid "Content types read aloud: %s." 1563 1700 msgstr "" 1564 1701 1565 #: admin/vue-ensemble.php: 4791702 #: admin/vue-ensemble.php:711 1566 1703 msgid "Getting started" 1567 1704 msgstr "" 1568 1705 1569 #: admin/vue-ensemble.php: 4951706 #: admin/vue-ensemble.php:727 1570 1707 msgid "done" 1571 1708 msgstr "" 1572 1709 1573 #: admin/vue-ensemble.php: 4961710 #: admin/vue-ensemble.php:728 1574 1711 msgid "still to do" 1575 1712 msgstr "" 1576 1713 1577 #: admin/vue-ensemble.php: 5081714 #: admin/vue-ensemble.php:740 1578 1715 msgid "This month" 1579 1716 msgstr "" 1580 1717 1581 #: admin/vue-ensemble.php: 5161582 #: wedispatch-audio-text-to-speech.php:1 6441718 #: admin/vue-ensemble.php:748 1719 #: wedispatch-audio-text-to-speech.php:1731 1583 1720 msgid "Plan and credits" 1584 1721 msgstr "" 1585 1722 1586 #: admin/vue-ensemble.php: 5341723 #: admin/vue-ensemble.php:767 1587 1724 msgid "Next step" 1588 1725 msgstr "" 1589 1726 1590 #: admin/vue-ensemble.php: 5361591 msgid "C reate a WeDispatch account, generate an API key from your account area, and paste it into the settings. Nothing is sent anywhere until that key is in place."1592 msgstr "" 1593 1594 #: admin/vue-ensemble.php: 5421727 #: admin/vue-ensemble.php:769 1728 msgid "Connect this site in one click: you sign in or create your WeDispatch account, and the site is authorised on the way. There is no key to copy, and trying it is free. Nothing is sent anywhere unless you click." 1729 msgstr "" 1730 1731 #: admin/vue-ensemble.php:775 1595 1732 msgid "Paste my API key" 1596 1733 msgstr "" 1597 1734 1598 #: admin/vue-ensemble.php: 5451735 #: admin/vue-ensemble.php:780 1599 1736 msgid "The key stored on this site is not accepted. The most common reason is a key created for a different WeDispatch environment: a key is only valid where it was created." 1600 1737 msgstr "" 1601 1738 1602 #: admin/vue-ensemble.php: 5481739 #: admin/vue-ensemble.php:783 1603 1740 msgid "Replace the key" 1604 1741 msgstr "" 1605 1742 1606 #: admin/vue-ensemble.php: 5531743 #: admin/vue-ensemble.php:788 1607 1744 msgid "The service could not be reached from this server. Your key is not in question. This usually clears on its own; if it does not, your host may be blocking outgoing requests." 1608 1745 msgstr "" 1609 1746 1610 #: admin/vue-ensemble.php: 5851747 #: admin/vue-ensemble.php:820 1611 1748 msgid "Generate the audio, automatically or by hand" 1612 1749 msgstr "" 1613 1750 1614 #: admin/vue-ensemble.php: 5861751 #: admin/vue-ensemble.php:821 1615 1752 msgid "Choose where the player sits in the article" 1616 1753 msgstr "" 1617 1754 1618 #: admin/vue-ensemble.php: 5871755 #: admin/vue-ensemble.php:822 1619 1756 msgid "Pick the voices: site, per category, per author" 1620 1757 msgstr "" 1621 1758 1622 #: admin/vue-ensemble.php: 5881759 #: admin/vue-ensemble.php:823 1623 1760 msgid "Check that the player really shows up" 1624 1761 msgstr "" 1625 1762 1626 #: admin/vue-ensemble.php: 5911763 #: admin/vue-ensemble.php:826 1627 1764 msgid "The look of the player: model, style, colours" 1628 1765 msgstr "" 1629 1766 1630 #: admin/vue-ensemble.php: 5921767 #: admin/vue-ensemble.php:827 1631 1768 msgid "Detailed listening statistics" 1632 1769 msgstr "" 1633 1770 1634 #: admin/vue-ensemble.php: 5931771 #: admin/vue-ensemble.php:828 1635 1772 msgid "Plan, credits and invoices" 1636 1773 msgstr "" 1637 1774 1638 #: admin/vue-ensemble.php: 5941775 #: admin/vue-ensemble.php:829 1639 1776 msgid "Signature voice, gated audio, translations" 1640 1777 msgstr "" 1641 1778 1642 #: admin/vue-ensemble.php: 5981779 #: admin/vue-ensemble.php:833 1643 1780 msgid "What lives where" 1644 1781 msgstr "" 1645 1782 1646 #: admin/vue-ensemble.php: 5991783 #: admin/vue-ensemble.php:834 1647 1784 msgid "The product lives in two places. Here, inside WordPress: what touches your content. In your WeDispatch account: what touches your listeners and your plan." 1648 1785 msgstr "" 1649 1786 1650 #: admin/vue-ensemble.php: 6021787 #: admin/vue-ensemble.php:837 1651 1788 msgid "Here, in WordPress" 1652 1789 msgstr "" 1653 1790 1654 #: admin/vue-ensemble.php: 6101791 #: admin/vue-ensemble.php:845 1655 1792 msgid "In your WeDispatch account" 1656 1793 msgstr "" 1657 1794 1658 #: admin/vue-ensemble.php: 6361795 #: admin/vue-ensemble.php:871 1659 1796 msgid "Your articles are a podcast" 1660 1797 msgstr "" 1661 1798 1662 #: admin/vue-ensemble.php: 6371799 #: admin/vue-ensemble.php:872 1663 1800 msgid "Every audio this site publishes also lands in an RSS podcast feed. Submit it once to the platforms, and your articles follow your readers into their podcast app." 1664 1801 msgstr "" 1665 1802 1666 #: admin/vue-ensemble.php: 6401803 #: admin/vue-ensemble.php:875 1667 1804 msgid "Podcast feed address" 1668 1805 msgstr "" 1669 1806 1670 #: admin/vue-ensemble.php: 6471807 #: admin/vue-ensemble.php:882 1671 1808 msgid "Submit to Spotify" 1672 1809 msgstr "" 1673 1810 1674 #: admin/vue-ensemble.php: 6491811 #: admin/vue-ensemble.php:884 1675 1812 msgid "Submit to Apple Podcasts" 1676 1813 msgstr "" 1677 1814 1678 #: admin/vue-ensemble.php: 6511815 #: admin/vue-ensemble.php:886 1679 1816 msgid "The feed is public by construction, like every podcast feed. Platforms refresh it on their own; there is nothing to resubmit when you publish." 1680 1817 msgstr "" 1681 1818 1682 1819 #. translators: %s: number of items included each month. 1683 #: admin/vue-ensemble.php: 7561820 #: admin/vue-ensemble.php:991 1684 1821 #, php-format 1685 1822 msgid "of %s credit this month" … … 1689 1826 1690 1827 #. translators: %s: number of characters included in the plan each month. 1691 #: admin/vue-ensemble.php: 7691828 #: admin/vue-ensemble.php:1004 1692 1829 #, php-format 1693 1830 msgid "of %s characters this month (internal measure: your plan is counted in credits)" … … 1695 1832 1696 1833 #. translators: %s is not used; the count is rendered just before. 1697 #: admin/vue-ensemble.php: 7761834 #: admin/vue-ensemble.php:1011 1698 1835 msgid "credit this month, with no monthly ceiling on this plan" 1699 1836 msgid_plural "credits this month, with no monthly ceiling on this plan" … … 1701 1838 msgstr[1] "" 1702 1839 1703 #: admin/vue-ensemble.php: 7861840 #: admin/vue-ensemble.php:1021 1704 1841 msgid "characters this month (internal measure), with no monthly ceiling on this plan" 1705 1842 msgstr "" 1706 1843 1707 1844 #. translators: %s: number of items left this month. 1708 #: admin/vue-ensemble.php: 8001845 #: admin/vue-ensemble.php:1035 1709 1846 #, php-format 1710 1847 msgid "%s credit left." … … 1713 1850 msgstr[1] "" 1714 1851 1715 #: admin/vue-ensemble.php: 8061852 #: admin/vue-ensemble.php:1041 1716 1853 msgid "Unused credits are not carried over: the count starts again at the beginning of each month." 1717 1854 msgstr "" 1718 1855 1719 1856 #. translators: %s: number of characters used this month. 1720 #: admin/vue-ensemble.php: 8101857 #: admin/vue-ensemble.php:1045 1721 1858 #, php-format 1722 1859 msgid "(%s characters)" … … 1725 1862 #: inc/api.php:39 1726 1863 #: inc/api.php:109 1727 #: wedispatch-audio-text-to-speech.php: 8901728 #: wedispatch-audio-text-to-speech.php:1 1871729 #: wedispatch-audio-text-to-speech.php:1 7151864 #: wedispatch-audio-text-to-speech.php:941 1865 #: wedispatch-audio-text-to-speech.php:1272 1866 #: wedispatch-audio-text-to-speech.php:1802 1730 1867 msgid "No API key has been entered" 1731 1868 msgstr "" 1732 1869 1733 1870 #: inc/api.php:252 1734 #: wedispatch-audio-text-to-speech.php:1 1881871 #: wedispatch-audio-text-to-speech.php:1273 1735 1872 msgid "This content has never been turned into audio" 1736 1873 msgstr "" … … 1776 1913 #. translators: %s: the address of the WeDispatch service this site talks to. 1777 1914 #: inc/api.php:461 1778 #: wedispatch-audio-text-to-speech.php:1 4731915 #: wedispatch-audio-text-to-speech.php:1560 1779 1916 #, php-format 1780 1917 msgid "This site talks to %s. A key created on another environment is refused, however valid it is there." … … 1960 2097 msgstr "" 1961 2098 1962 #: wedispatch-audio-text-to-speech.php:2 692099 #: wedispatch-audio-text-to-speech.php:270 1963 2100 msgid "French" 1964 2101 msgstr "" 1965 2102 1966 #: wedispatch-audio-text-to-speech.php:27 02103 #: wedispatch-audio-text-to-speech.php:271 1967 2104 msgid "English" 1968 2105 msgstr "" 1969 2106 1970 #: wedispatch-audio-text-to-speech.php:27 12107 #: wedispatch-audio-text-to-speech.php:272 1971 2108 msgid "Spanish" 1972 2109 msgstr "" 1973 2110 1974 #: wedispatch-audio-text-to-speech.php:27 22111 #: wedispatch-audio-text-to-speech.php:273 1975 2112 msgid "German" 1976 2113 msgstr "" 1977 2114 1978 #: wedispatch-audio-text-to-speech.php:27 32115 #: wedispatch-audio-text-to-speech.php:274 1979 2116 msgid "Italian" 1980 2117 msgstr "" 1981 2118 1982 #: wedispatch-audio-text-to-speech.php:27 42119 #: wedispatch-audio-text-to-speech.php:275 1983 2120 msgid "Hindi" 1984 2121 msgstr "" 1985 2122 1986 #: wedispatch-audio-text-to-speech.php:27 52123 #: wedispatch-audio-text-to-speech.php:276 1987 2124 msgid "Chinese" 1988 2125 msgstr "" 1989 2126 1990 #: wedispatch-audio-text-to-speech.php:27 62127 #: wedispatch-audio-text-to-speech.php:277 1991 2128 msgid "Arabic" 1992 2129 msgstr "" 1993 2130 1994 #: wedispatch-audio-text-to-speech.php:27 72131 #: wedispatch-audio-text-to-speech.php:278 1995 2132 msgid "Portuguese" 1996 2133 msgstr "" 1997 2134 1998 #: wedispatch-audio-text-to-speech.php:27 82135 #: wedispatch-audio-text-to-speech.php:279 1999 2136 msgid "Japanese" 2000 2137 msgstr "" 2001 2138 2002 #: wedispatch-audio-text-to-speech.php:2 792139 #: wedispatch-audio-text-to-speech.php:280 2003 2140 msgid "Hebrew" 2004 2141 msgstr "" 2005 2142 2006 #: wedispatch-audio-text-to-speech.php:28 02143 #: wedispatch-audio-text-to-speech.php:281 2007 2144 msgid "Korean" 2008 2145 msgstr "" 2009 2146 2010 #: wedispatch-audio-text-to-speech.php:28 12147 #: wedispatch-audio-text-to-speech.php:282 2011 2148 msgid "Dutch" 2012 2149 msgstr "" 2013 2150 2014 #: wedispatch-audio-text-to-speech.php:28 22151 #: wedispatch-audio-text-to-speech.php:283 2015 2152 msgid "Swedish" 2016 2153 msgstr "" 2017 2154 2018 #: wedispatch-audio-text-to-speech.php:28 32155 #: wedispatch-audio-text-to-speech.php:284 2019 2156 msgid "Polish" 2020 2157 msgstr "" 2021 2158 2022 #: wedispatch-audio-text-to-speech.php:28 42159 #: wedispatch-audio-text-to-speech.php:285 2023 2160 msgid "Tamil" 2024 2161 msgstr "" 2025 2162 2026 #: wedispatch-audio-text-to-speech.php:28 52163 #: wedispatch-audio-text-to-speech.php:286 2027 2164 msgid "Telugu" 2028 2165 msgstr "" 2029 2166 2030 #: wedispatch-audio-text-to-speech.php:28 62167 #: wedispatch-audio-text-to-speech.php:287 2031 2168 msgid "Russian" 2032 2169 msgstr "" 2033 2170 2034 #: wedispatch-audio-text-to-speech.php:28 72171 #: wedispatch-audio-text-to-speech.php:288 2035 2172 msgid "Turkish" 2036 2173 msgstr "" 2037 2174 2038 #: wedispatch-audio-text-to-speech.php:28 82175 #: wedispatch-audio-text-to-speech.php:289 2039 2176 msgid "Thai" 2040 2177 msgstr "" 2041 2178 2042 #: wedispatch-audio-text-to-speech.php:2 892179 #: wedispatch-audio-text-to-speech.php:290 2043 2180 msgid "Filipino" 2044 2181 msgstr "" 2045 2182 2046 #: wedispatch-audio-text-to-speech.php:29 02183 #: wedispatch-audio-text-to-speech.php:291 2047 2184 msgid "Czech" 2048 2185 msgstr "" 2049 2186 2050 #: wedispatch-audio-text-to-speech.php:29 12187 #: wedispatch-audio-text-to-speech.php:292 2051 2188 msgid "Finnish" 2052 2189 msgstr "" 2053 2190 2054 #: wedispatch-audio-text-to-speech.php:34 22191 #: wedispatch-audio-text-to-speech.php:343 2055 2192 msgid "Female" 2056 2193 msgstr "" 2057 2194 2058 #: wedispatch-audio-text-to-speech.php:34 32195 #: wedispatch-audio-text-to-speech.php:344 2059 2196 msgid "Male" 2060 2197 msgstr "" 2061 2198 2062 2199 #. translators: 1: voice name, 2: Female or Male, 3: speaking style. 2063 #: wedispatch-audio-text-to-speech.php:34 72200 #: wedispatch-audio-text-to-speech.php:348 2064 2201 #, php-format 2065 2202 msgid "%1$s (%2$s, %3$s)" … … 2067 2204 2068 2205 #. translators: 1: voice name, 2: Female or Male. 2069 #: wedispatch-audio-text-to-speech.php:35 02206 #: wedispatch-audio-text-to-speech.php:351 2070 2207 #, php-format 2071 2208 msgid "%1$s (%2$s)" 2072 2209 msgstr "" 2073 2210 2074 #: wedispatch-audio-text-to-speech.php:41 22211 #: wedispatch-audio-text-to-speech.php:413 2075 2212 msgid "Checking…" 2076 2213 msgstr "" 2077 2214 2078 #: wedispatch-audio-text-to-speech.php:41 32215 #: wedispatch-audio-text-to-speech.php:414 2079 2216 msgid "The key is accepted by the service." 2080 2217 msgstr "" 2081 2218 2082 #: wedispatch-audio-text-to-speech.php:41 42219 #: wedispatch-audio-text-to-speech.php:415 2083 2220 msgid "This site can attest to its visitors’ status. Nothing else to do." 2084 2221 msgstr "" 2085 2222 2086 #: wedispatch-audio-text-to-speech.php:41 52087 #: wedispatch-audio-text-to-speech.php: 19452223 #: wedispatch-audio-text-to-speech.php:416 2224 #: wedispatch-audio-text-to-speech.php:2032 2088 2225 msgid "failed" 2089 2226 msgstr "" 2090 2227 2091 #: wedispatch-audio-text-to-speech.php:41 62228 #: wedispatch-audio-text-to-speech.php:417 2092 2229 msgid "Network error" 2093 2230 msgstr "" 2094 2231 2095 #: wedispatch-audio-text-to-speech.php:43 32232 #: wedispatch-audio-text-to-speech.php:434 2096 2233 msgid "Looking at the public page…" 2097 2234 msgstr "" 2098 2235 2099 #: wedispatch-audio-text-to-speech.php:43 42236 #: wedispatch-audio-text-to-speech.php:435 2100 2237 msgid "Network error: the check could not run." 2101 2238 msgstr "" 2102 2239 2103 #: wedispatch-audio-text-to-speech.php:44 62240 #: wedispatch-audio-text-to-speech.php:447 2104 2241 msgid "Enter your API key to list the voices" 2105 2242 msgstr "" 2106 2243 2107 #: wedispatch-audio-text-to-speech.php:47 02244 #: wedispatch-audio-text-to-speech.php:471 2108 2245 msgid "This voice is not available on your plan. Please pick another one" 2109 2246 msgstr "" 2110 2247 2111 2248 #. translators: %s: the stored voice identifier, shown because the voice list could not be read. 2112 #: wedispatch-audio-text-to-speech.php:47 22249 #: wedispatch-audio-text-to-speech.php:473 2113 2250 #, php-format 2114 2251 msgid "%s (voice list unavailable right now: this setting is kept)" 2115 2252 msgstr "" 2116 2253 2117 #: wedispatch-audio-text-to-speech.php:51 12254 #: wedispatch-audio-text-to-speech.php:512 2118 2255 msgid "Your signature voices" 2119 2256 msgstr "" 2120 2257 2121 #: wedispatch-audio-text-to-speech.php:51 22258 #: wedispatch-audio-text-to-speech.php:513 2122 2259 msgid "All languages" 2123 2260 msgstr "" 2124 2261 2125 #: wedispatch-audio-text-to-speech.php:537 2262 #: wedispatch-audio-text-to-speech.php:538 2263 #: wedispatch-audio-text-to-speech.php:541 2264 msgid "Listen" 2265 msgstr "" 2266 2267 #: wedispatch-audio-text-to-speech.php:539 2268 msgid "Stop" 2269 msgstr "" 2270 2126 2271 #: wedispatch-audio-text-to-speech.php:540 2127 msgid "Listen"2128 msgstr ""2129 2130 #: wedispatch-audio-text-to-speech.php:5382131 msgid "Stop"2132 msgstr ""2133 2134 #: wedispatch-audio-text-to-speech.php:5392135 2272 msgid "No sample for this voice yet." 2136 2273 msgstr "" 2137 2274 2138 2275 #. translators: separator between a bold label and the sentence that explains it. French adds a no-break space before the colon. 2139 #: wedispatch-audio-text-to-speech.php:66 12276 #: wedispatch-audio-text-to-speech.php:662 2140 2277 msgctxt "label separator" 2141 2278 msgid ": " … … 2143 2280 2144 2281 #. translators: %s: category name. 2145 #: wedispatch-audio-text-to-speech.php:68 42282 #: wedispatch-audio-text-to-speech.php:685 2146 2283 #, php-format 2147 2284 msgid "category “%s”" 2148 2285 msgstr "" 2149 2286 2150 #: wedispatch-audio-text-to-speech.php:68 62287 #: wedispatch-audio-text-to-speech.php:687 2151 2288 msgid "category" 2152 2289 msgstr "" 2153 2290 2154 #: wedispatch-audio-text-to-speech.php:6 892291 #: wedispatch-audio-text-to-speech.php:690 2155 2292 msgid "author" 2156 2293 msgstr "" 2157 2294 2158 #: wedispatch-audio-text-to-speech.php: 8882159 #: wedispatch-audio-text-to-speech.php:10 182295 #: wedispatch-audio-text-to-speech.php:939 2296 #: wedispatch-audio-text-to-speech.php:1097 2160 2297 msgid "Content not found" 2161 2298 msgstr "" 2162 2299 2163 #: wedispatch-audio-text-to-speech.php: 9702300 #: wedispatch-audio-text-to-speech.php:1027 2164 2301 msgid "Automatic audio is paused for this site in your account area." 2165 2302 msgstr "" 2166 2303 2167 #: wedispatch-audio-text-to-speech.php:1022 2304 #: wedispatch-audio-text-to-speech.php:1058 2305 msgid "Not enough credits left for this item." 2306 msgstr "" 2307 2308 #: wedispatch-audio-text-to-speech.php:1101 2168 2309 msgid "Text too short (100 characters minimum). Save the draft first" 2169 2310 msgstr "" 2170 2311 2171 #: wedispatch-audio-text-to-speech.php:1 3772312 #: wedispatch-audio-text-to-speech.php:1464 2172 2313 msgid "the site default voice" 2173 2314 msgstr "" 2174 2315 2175 2316 #. translators: %s: category name. 2176 #: wedispatch-audio-text-to-speech.php:1 3912317 #: wedispatch-audio-text-to-speech.php:1478 2177 2318 #, php-format 2178 2319 msgid "the “%s” category" … … 2180 2321 2181 2322 #. translators: %s: comma-separated list, e.g. "the site default voice, the “Sport” category". 2182 #: wedispatch-audio-text-to-speech.php:14 022323 #: wedispatch-audio-text-to-speech.php:1489 2183 2324 #, php-format 2184 2325 msgid "%s uses a voice that is no longer in your plan catalogue." … … 2187 2328 msgstr[1] "" 2188 2329 2189 #: wedispatch-audio-text-to-speech.php:14 112330 #: wedispatch-audio-text-to-speech.php:1498 2190 2331 msgid "Your content is still read aloud, with the account default voice, until a new choice is made." 2191 2332 msgstr "" 2192 2333 2193 #: wedispatch-audio-text-to-speech.php:14 122334 #: wedispatch-audio-text-to-speech.php:1499 2194 2335 msgid "Pick a voice" 2195 2336 msgstr "" 2196 2337 2197 #: wedispatch-audio-text-to-speech.php:1 4402338 #: wedispatch-audio-text-to-speech.php:1527 2198 2339 msgid "Connect this site" 2199 2340 msgstr "" 2200 2341 2201 #: wedispatch-audio-text-to-speech.php:1 4412342 #: wedispatch-audio-text-to-speech.php:1528 2202 2343 msgid "One click: you sign in or create your account on wedispatch.fr, you authorise this site, and the key is created and stored here for you. Nothing to copy, and your password never enters WordPress." 2203 2344 msgstr "" 2204 2345 2205 #: wedispatch-audio-text-to-speech.php:1 4492346 #: wedispatch-audio-text-to-speech.php:1536 2206 2347 msgid "Connecting again replaces the key stored on this site." 2207 2348 msgstr "" 2208 2349 2209 2350 #. translators: %s: link to the WeDispatch account area. 2210 #: wedispatch-audio-text-to-speech.php:1 4552211 #, php-format 2212 msgid " Turn your content into audio. Paste the API key fromyour account area (%s)."2213 msgstr "" 2214 2215 #: wedispatch-audio-text-to-speech.php:1 4632351 #: wedispatch-audio-text-to-speech.php:1542 2352 #, php-format 2353 msgid "Already have an API key? You can also paste it here. It is in your account area (%s)." 2354 msgstr "" 2355 2356 #: wedispatch-audio-text-to-speech.php:1550 2216 2357 msgid "API key" 2217 2358 msgstr "" 2218 2359 2219 #: wedispatch-audio-text-to-speech.php:1 4662360 #: wedispatch-audio-text-to-speech.php:1553 2220 2361 msgid "Never share this key." 2221 2362 msgstr "" 2222 2363 2223 #: wedispatch-audio-text-to-speech.php:1 4792364 #: wedispatch-audio-text-to-speech.php:1566 2224 2365 msgid "Default mode" 2225 2366 msgstr "" 2226 2367 2227 #: wedispatch-audio-text-to-speech.php:1 4842368 #: wedispatch-audio-text-to-speech.php:1571 2228 2369 msgid "the audio is generated on its own when you publish. The voice is picked automatically, in this order: category, then author, then site voice." 2229 2370 msgstr "" 2230 2371 2231 #: wedispatch-audio-text-to-speech.php:1 4882372 #: wedispatch-audio-text-to-speech.php:1575 2232 2373 msgid "nothing is turned into audio on its own. The author picks the voice and clicks “Generate” in the editor panel, then publishes. This is also how you stop this site sending anything automatically, without touching your account area." 2233 2374 msgstr "" 2234 2375 2235 #: wedispatch-audio-text-to-speech.php:1 4892376 #: wedispatch-audio-text-to-speech.php:1576 2236 2377 msgid "Can be set per item in the “WeDispatch” editor panel, which also shows the voice Auto mode will use." 2237 2378 msgstr "" 2238 2379 2239 #: wedispatch-audio-text-to-speech.php:1 4932380 #: wedispatch-audio-text-to-speech.php:1580 2240 2381 msgid "Content to read aloud" 2241 2382 msgstr "" 2242 2383 2243 #: wedispatch-audio-text-to-speech.php:15 112384 #: wedispatch-audio-text-to-speech.php:1598 2244 2385 msgid "Posts, pages, products, and any custom post type your theme or your plugins register. Unticking everything falls back to posts." 2245 2386 msgstr "" 2246 2387 2247 #: wedispatch-audio-text-to-speech.php:1 5162388 #: wedispatch-audio-text-to-speech.php:1603 2248 2389 msgid "Site default voice" 2249 2390 msgstr "" 2250 2391 2251 #: wedispatch-audio-text-to-speech.php:1 5182392 #: wedispatch-audio-text-to-speech.php:1605 2252 2393 msgid "Used in Auto mode when the author has not set a voice of their own (in their profile)." 2253 2394 msgstr "" 2254 2395 2255 #: wedispatch-audio-text-to-speech.php:1 5212396 #: wedispatch-audio-text-to-speech.php:1608 2256 2397 msgid "Content edited after publication" 2257 2398 msgstr "" 2258 2399 2259 #: wedispatch-audio-text-to-speech.php:1 5272400 #: wedispatch-audio-text-to-speech.php:1614 2260 2401 msgid "Rebuild the audio automatically when the text of an item that already has audio changes" 2261 2402 msgstr "" 2262 2403 2263 #: wedispatch-audio-text-to-speech.php:1 5302404 #: wedispatch-audio-text-to-speech.php:1617 2264 2405 msgid "Off by default. Without this option the audio that is online keeps being served and the item is marked “to regenerate”: you rebuild it once the text has settled, from the “Generate audio” button in the editor panel." 2265 2406 msgstr "" 2266 2407 2267 #: wedispatch-audio-text-to-speech.php:1 5312408 #: wedispatch-audio-text-to-speech.php:1618 2268 2409 msgid "Every automatic rebuild uses one generation from your plan." 2269 2410 msgstr "" 2270 2411 2271 #: wedispatch-audio-text-to-speech.php:1 5392412 #: wedispatch-audio-text-to-speech.php:1626 2272 2413 msgid "At the top of the article" 2273 2414 msgstr "" 2274 2415 2275 #: wedispatch-audio-text-to-speech.php:1 5402416 #: wedispatch-audio-text-to-speech.php:1627 2276 2417 msgid "At the bottom of the article" 2277 2418 msgstr "" 2278 2419 2279 #: wedispatch-audio-text-to-speech.php:1 5412420 #: wedispatch-audio-text-to-speech.php:1628 2280 2421 msgid "Manual: block, widget or [wedispatch] shortcode" 2281 2422 msgstr "" 2282 2423 2283 #: wedispatch-audio-text-to-speech.php:1 5462424 #: wedispatch-audio-text-to-speech.php:1633 2284 2425 msgid "Under the article" 2285 2426 msgstr "" 2286 2427 2287 #: wedispatch-audio-text-to-speech.php:1 5542428 #: wedispatch-audio-text-to-speech.php:1641 2288 2429 msgid "Show the transcript, folded, under the article" 2289 2430 msgstr "" 2290 2431 2291 #: wedispatch-audio-text-to-speech.php:1 5572432 #: wedispatch-audio-text-to-speech.php:1644 2292 2433 msgid "An audio player alone meets no obligation towards a deaf or hard of hearing reader. The transcript is built from the word-level timing already captured for highlighting: no AI, no extra cost. It is also text that search engines index." 2293 2434 msgstr "" 2294 2435 2295 #: wedispatch-audio-text-to-speech.php:1 5632436 #: wedispatch-audio-text-to-speech.php:1650 2296 2437 msgid "Show “Listen next” under the article" 2297 2438 msgstr "" 2298 2439 2299 #: wedispatch-audio-text-to-speech.php:1 5662440 #: wedispatch-audio-text-to-speech.php:1653 2300 2441 msgid "Same category first, then the most recent. The list depends on the article being read, never on who is reading it: your listeners are not tracked or profiled. Only content published on this site is suggested." 2301 2442 msgstr "" 2302 2443 2303 #: wedispatch-audio-text-to-speech.php:1 5742444 #: wedispatch-audio-text-to-speech.php:1661 2304 2445 msgid "the player is open to all your visitors." 2305 2446 msgstr "" 2306 2447 2307 #: wedispatch-audio-text-to-speech.php:1 5762448 #: wedispatch-audio-text-to-speech.php:1663 2308 2449 msgid "You can reserve the full article for your registered users or your subscribers: everyone else hears a preview, and the player then invites them to create an account. The setting lives in your account area (Player, then “Who can listen”)." 2309 2450 msgstr "" 2310 2451 2311 #: wedispatch-audio-text-to-speech.php:1 5772452 #: wedispatch-audio-text-to-speech.php:1664 2312 2453 msgid "Nothing to code" 2313 2454 msgstr "" 2314 2455 2315 #: wedispatch-audio-text-to-speech.php:1 5772456 #: wedispatch-audio-text-to-speech.php:1664 2316 2457 msgid "this plugin takes care of it." 2317 2458 msgstr "" 2318 2459 2319 #: wedispatch-audio-text-to-speech.php:1 5862460 #: wedispatch-audio-text-to-speech.php:1673 2320 2461 msgid "This plugin passes each visitor’s status on automatically." 2321 2462 msgstr "" 2322 2463 2323 #: wedispatch-audio-text-to-speech.php:1 5882464 #: wedispatch-audio-text-to-speech.php:1675 2324 2465 msgid "API key missing or invalid: without it, every visitor gets the preview only." 2325 2466 msgstr "" 2326 2467 2327 #: wedispatch-audio-text-to-speech.php:1 5932468 #: wedispatch-audio-text-to-speech.php:1680 2328 2469 msgid "Who counts as a subscriber on this site?" 2329 2470 msgstr "" 2330 2471 2331 #: wedispatch-audio-text-to-speech.php:1 5952472 #: wedispatch-audio-text-to-speech.php:1682 2332 2473 msgid "Tick the WordPress role or roles of your paying subscribers. A signed-in user with none of those roles counts as merely registered." 2333 2474 msgstr "" 2334 2475 2335 #: wedispatch-audio-text-to-speech.php:16 122476 #: wedispatch-audio-text-to-speech.php:1699 2336 2477 msgid "No role ticked: nobody is recognised as a subscriber, so nobody hears the full article. Tick at least one role." 2337 2478 msgstr "" 2338 2479 2339 2480 #. translators: 1: filter name, in a code tag. 2: link to the documentation. 2340 #: wedispatch-audio-text-to-speech.php:1 6192481 #: wedispatch-audio-text-to-speech.php:1706 2341 2482 #, php-format 2342 2483 msgid "Are your subscriptions something other than roles (WooCommerce Subscriptions, MemberPress, an in-house system)? A developer hooks into the %1$s filter: three lines, documented in %2$s." 2343 2484 msgstr "" 2344 2485 2345 #: wedispatch-audio-text-to-speech.php:1 6212486 #: wedispatch-audio-text-to-speech.php:1708 2346 2487 msgid "our documentation" 2347 2488 msgstr "" 2348 2489 2349 #: wedispatch-audio-text-to-speech.php:1 6282490 #: wedispatch-audio-text-to-speech.php:1715 2350 2491 msgid "Check that everything works" 2351 2492 msgstr "" 2352 2493 2353 #: wedispatch-audio-text-to-speech.php:1 6322494 #: wedispatch-audio-text-to-speech.php:1719 2354 2495 msgid "Your readers stay anonymous to WeDispatch: this site attests to a status (“subscriber”), never to an identity. No personal data leaves your server." 2355 2496 msgstr "" 2356 2497 2357 #: wedispatch-audio-text-to-speech.php:1 6592498 #: wedispatch-audio-text-to-speech.php:1746 2358 2499 msgid "No key has been entered" 2359 2500 msgstr "" 2360 2501 2361 #: wedispatch-audio-text-to-speech.php:1 6832502 #: wedispatch-audio-text-to-speech.php:1770 2362 2503 msgid "No API key has been entered." 2363 2504 msgstr "" 2364 2505 2365 #: wedispatch-audio-text-to-speech.php:1 6892506 #: wedispatch-audio-text-to-speech.php:1776 2366 2507 msgid "Secret not found. Is the API key valid?" 2367 2508 msgstr "" 2368 2509 2369 #: wedispatch-audio-text-to-speech.php:17 022510 #: wedispatch-audio-text-to-speech.php:1789 2370 2511 msgid "Unreadable response from the WeDispatch server." 2371 2512 msgstr "" 2372 2513 2373 #: wedispatch-audio-text-to-speech.php:17 082514 #: wedispatch-audio-text-to-speech.php:1795 2374 2515 msgid "Token refused" 2375 2516 msgstr "" 2376 2517 2377 #: wedispatch-audio-text-to-speech.php:1 7382518 #: wedispatch-audio-text-to-speech.php:1825 2378 2519 msgid "Audio voice" 2379 2520 msgstr "" 2380 2521 2381 #: wedispatch-audio-text-to-speech.php:1 7402522 #: wedispatch-audio-text-to-speech.php:1827 2382 2523 msgid "In Auto mode, your content will be read aloud with this voice." 2383 2524 msgstr "" 2384 2525 2385 #: wedispatch-audio-text-to-speech.php:1 8152526 #: wedispatch-audio-text-to-speech.php:1902 2386 2527 msgid "A voice already set here keeps working: nothing has been erased." 2387 2528 msgstr "" 2388 2529 2389 #: wedispatch-audio-text-to-speech.php:1 8262390 #: wedispatch-audio-text-to-speech.php:1 8432530 #: wedispatch-audio-text-to-speech.php:1913 2531 #: wedispatch-audio-text-to-speech.php:1930 2391 2532 msgid "WeDispatch voice" 2392 2533 msgstr "" 2393 2534 2394 #: wedispatch-audio-text-to-speech.php:1 8292535 #: wedispatch-audio-text-to-speech.php:1916 2395 2536 msgid "In Auto mode, posts in this category are read aloud with this voice (it takes priority over the author’s voice)." 2396 2537 msgstr "" 2397 2538 2398 #: wedispatch-audio-text-to-speech.php:1 8472539 #: wedispatch-audio-text-to-speech.php:1934 2399 2540 msgid "In Auto mode, takes priority over the author’s voice for posts in this category." 2400 2541 msgstr "" 2401 2542 2402 #: wedispatch-audio-text-to-speech.php:1 8802543 #: wedispatch-audio-text-to-speech.php:1967 2403 2544 msgid "WeDispatch Audio" 2404 2545 msgstr "" 2405 2546 2406 #: wedispatch-audio-text-to-speech.php:19 022547 #: wedispatch-audio-text-to-speech.php:1989 2407 2548 msgid "Mode" 2408 2549 msgstr "" 2409 2550 2410 2551 #. translators: %s: the site-wide default, either Auto or Manual. 2411 #: wedispatch-audio-text-to-speech.php:19 062552 #: wedispatch-audio-text-to-speech.php:1993 2412 2553 #, php-format 2413 2554 msgid "Site default (%s)" 2414 2555 msgstr "" 2415 2556 2416 #: wedispatch-audio-text-to-speech.php:19 072557 #: wedispatch-audio-text-to-speech.php:1994 2417 2558 msgid "Auto: generated on publication" 2418 2559 msgstr "" 2419 2560 2420 #: wedispatch-audio-text-to-speech.php:19 082561 #: wedispatch-audio-text-to-speech.php:1995 2421 2562 msgid "Manual: I generate it here" 2422 2563 msgstr "" 2423 2564 2424 #: wedispatch-audio-text-to-speech.php:19 122565 #: wedispatch-audio-text-to-speech.php:1999 2425 2566 msgid "In Auto mode" 2426 2567 msgstr "" 2427 2568 2428 #: wedispatch-audio-text-to-speech.php:19 122569 #: wedispatch-audio-text-to-speech.php:1999 2429 2570 msgid "this item will be read by:" 2430 2571 msgstr "" 2431 2572 2432 2573 #. translators: %s: where the voice comes from: a category, the author, or the site. 2433 #: wedispatch-audio-text-to-speech.php: 19162574 #: wedispatch-audio-text-to-speech.php:2003 2434 2575 #, php-format 2435 2576 msgid "Voice picked via: %s. Priority is category, then author, then site." 2436 2577 msgstr "" 2437 2578 2438 #: wedispatch-audio-text-to-speech.php: 19192579 #: wedispatch-audio-text-to-speech.php:2006 2439 2580 msgid "Voice (Manual mode)" 2440 2581 msgstr "" 2441 2582 2442 #: wedispatch-audio-text-to-speech.php: 19212583 #: wedispatch-audio-text-to-speech.php:2008 2443 2584 msgid "Used in Manual mode only. In Auto mode the routing above decides." 2444 2585 msgstr "" 2445 2586 2446 #: wedispatch-audio-text-to-speech.php: 19232587 #: wedispatch-audio-text-to-speech.php:2010 2447 2588 msgid "Audio status:" 2448 2589 msgstr "" 2449 2590 2450 #: wedispatch-audio-text-to-speech.php: 19252451 #: wedispatch-audio-text-to-speech.php: 19422591 #: wedispatch-audio-text-to-speech.php:2012 2592 #: wedispatch-audio-text-to-speech.php:2029 2452 2593 msgid "Generated" 2453 2594 msgstr "" 2454 2595 2455 #: wedispatch-audio-text-to-speech.php: 19262596 #: wedispatch-audio-text-to-speech.php:2013 2456 2597 msgid "Not generated" 2457 2598 msgstr "" 2458 2599 2459 #: wedispatch-audio-text-to-speech.php: 19272600 #: wedispatch-audio-text-to-speech.php:2014 2460 2601 msgid "Generate audio" 2461 2602 msgstr "" 2462 2603 2463 #: wedispatch-audio-text-to-speech.php: 19292604 #: wedispatch-audio-text-to-speech.php:2016 2464 2605 msgid "Save the draft before generating." 2465 2606 msgstr "" 2466 2607 2467 #: wedispatch-audio-text-to-speech.php: 19412608 #: wedispatch-audio-text-to-speech.php:2028 2468 2609 msgid "Generating…" 2469 2610 msgstr "" 2470 2611 2471 #: wedispatch-audio-text-to-speech.php: 19432612 #: wedispatch-audio-text-to-speech.php:2030 2472 2613 msgid "Scheduled" 2473 2614 msgstr "" 2474 2615 2475 #: wedispatch-audio-text-to-speech.php: 19442616 #: wedispatch-audio-text-to-speech.php:2031 2476 2617 msgid "Preparing…" 2477 2618 msgstr "" 2478 2619 2479 #: wedispatch-audio-text-to-speech.php: 19462620 #: wedispatch-audio-text-to-speech.php:2033 2480 2621 msgid "network error" 2481 2622 msgstr "" 2482 2623 2483 #: wedispatch-audio-text-to-speech.php:2 0882624 #: wedispatch-audio-text-to-speech.php:2175 2484 2625 msgid "Audio version of this article" 2485 2626 msgstr "" 2486 2627 2487 #: wedispatch-audio-text-to-speech.php:2 1782628 #: wedispatch-audio-text-to-speech.php:2265 2488 2629 #: blocks/player/index.js:37 2489 2630 msgid "WeDispatch audio player" 2490 2631 msgstr "" 2491 2632 2492 #: wedispatch-audio-text-to-speech.php:2 1802633 #: wedispatch-audio-text-to-speech.php:2267 2493 2634 msgid "The audio version of the article being read. Shows nothing on pages that have no audio." 2494 2635 msgstr "" 2495 2636 2496 #: wedispatch-audio-text-to-speech.php:22 062637 #: wedispatch-audio-text-to-speech.php:2293 2497 2638 msgid "Listen to this article" 2498 2639 msgstr "" 2499 2640 2500 #: wedispatch-audio-text-to-speech.php:22 092641 #: wedispatch-audio-text-to-speech.php:2296 2501 2642 msgid "Title:" 2502 2643 msgstr "" … … 2505 2646 msgid "The audio version of this article appears here once it has been generated." 2506 2647 msgstr "" 2507 2508 #: blocks/player/block.json2509 msgctxt "block title"2510 msgid "WeDispatch audio player"2511 msgstr ""2512 2513 #: blocks/player/block.json2514 msgctxt "block description"2515 msgid "Places the audio version of this article exactly where you want it."2516 msgstr ""2517 2518 #: blocks/player/block.json2519 msgctxt "block keyword"2520 msgid "audio"2521 msgstr ""2522 2523 #: blocks/player/block.json2524 msgctxt "block keyword"2525 msgid "text to speech"2526 msgstr ""2527 2528 #: blocks/player/block.json2529 msgctxt "block keyword"2530 msgid "listen"2531 msgstr ""2532 2533 #: blocks/player/block.json2534 msgctxt "block keyword"2535 msgid "podcast"2536 msgstr ""2537 2538 #: blocks/player/block.json2539 msgctxt "block keyword"2540 msgid "accessibility"2541 msgstr "" -
wedispatch-audio-text-to-speech/trunk/readme.txt
r3665684 r3709329 1 1 === WeDispatch Audio Text to Speech === 2 2 Contributors: toutestfaisable 3 Tags: text to speech, tts, audio, accessibility, podcast3 Tags: text to speech, accessibility, audio, read aloud, podcast 4 4 Requires at least: 6.3 5 5 Tested up to: 7.0 6 6 Requires PHP: 7.4 7 Stable tag: 1. 29.07 Stable tag: 1.30.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html 10 10 11 Text to speech for a whole site: posts, pages and products become audio when published, with an accessible player and natural voices.11 Your articles read aloud the moment you publish. Natural voices, accessible player, nothing to do. Free for your first articles. 12 12 13 13 == Description == 14 14 15 WeDispatch gives written content a voice. Every time something is published, the text is sent to 16 the WeDispatch service, read aloud by professional voices, and an audio player appears on the page. 17 Writers change nothing about the way they work: they publish, the audio appears. 15 Your readers get an audio version of every article. Your writers do nothing: they publish, and the 16 audio appears with the text. It is free to start, no credit card, and it takes about two minutes to 17 connect a site. 18 19 = Try it in two minutes = 20 21 1. Install and activate the plugin. 22 2. WeDispatch, then "Connect this site to WeDispatch". Your account is created on the way, and the 23 key is stored here for you. Nothing to copy. 24 3. On the overview, click "Read it aloud": your latest post that fits your trial is voiced first. 25 4. Open the page: the player is there, and your article is read aloud. 26 5. Happy with it? Switch to automatic, and every new post gets its audio on publication. 27 28 Your first articles are on us. Paid plans start when you need volume, and they are on wedispatch.fr. 29 30 = Who uses it = 31 32 * **Newsrooms.** The audio is ready when the article goes live, including for scheduled pieces, and nobody has to remember a separate step on a busy day. 33 * **Sites with an accessibility duty.** Public bodies and large companies covered by the European Accessibility Act, EN 301 549 or RGAA: this removes one specific barrier, properly, and says honestly what it does not do. 34 * **Shops and content sites.** Product descriptions and long guides get an audio version, which is read where a screen cannot be looked at. 18 35 19 36 It was built inside a newsroom, for newsrooms, but nothing about it is specific to news. Any site 20 37 that publishes text can use it: a magazine, a documentation site, an online shop, a public body 21 with an accessibility obligation. 38 with an accessibility obligation. Every time something is published, the text is sent to the 39 WeDispatch service, read aloud by professional voices, and an audio player appears on the page. 22 40 23 41 = Why a newsroom cares = … … 59 77 * Loaded through the standard WordPress script queue, deferred and in the footer, so caching and performance plugins handle it like any other asset. 60 78 79 = Works with = 80 81 The player is a block, a widget and the `[wedispatch]` shortcode, so it drops into any builder that 82 accepts one of the three. 83 84 * **Page builders**: Elementor, Divi and WPBakery, through the block, the widget or the shortcode. 85 * **WooCommerce**: product descriptions are read aloud like any other content type; tick "Products" in Settings. 86 * **Multilingual**: Polylang and WPML. The language of each item is detected, and read by a native voice. 87 * **SEO**: Yoast SEO and Rank Math. The optional transcript is plain text under the article and does not alter your schema. 88 * **Caching and CDN**: WP Rocket, LiteSpeed Cache and Cloudflare. The script is queued the standard WordPress way, deferred and in the footer, so it is handled like any other asset. 89 * **WordPress.com**: on plans that allow plugins. 90 61 91 = Translated, not just translatable = 62 92 … … 74 104 This plugin is the connector for an online service: it requires a WeDispatch account. The service 75 105 is paid for (plans are listed on wedispatch.fr). Connecting the site creates its key for you, from 76 the WeDispatch menu ; until a site is connected, the plugin performs no processing at all and makes77 no request.106 the WeDispatch menu. Until a site is connected, the plugin makes no request on its own: only the 107 connection itself, and the short sample described below, each when an administrator clicks for it. 78 108 79 109 == External services == … … 86 116 87 117 * **Generating an audio version**, sent to `https://wedispatch.fr/api/v1/podcasts`: the **text content** of the item, its **title**, its **canonical URL**, its **WordPress ID**, its **category**, its **language**, its **go-live date** if it is scheduled, and the chosen voice. Triggered when an item is published or scheduled (Auto mode), or when someone clicks "Generate audio" (Manual mode). 118 * **Sample before connecting**, sent to `https://wedispatch.fr/api/v1/extrait`: the **opening** of the most recent published item (well under a page; the service reads only the first 20 seconds of it), its **language**, and the **address of the site**. No API key, no account. **Sent only when an administrator clicks "Hear a 20-second sample of my latest post"** on the WeDispatch overview of a site that is not connected yet. The answer is the audio sample itself, shown in the page and not stored; the text is used to produce the sample and is not kept. The service records that a sample was produced for the site address, to count its own spending. 88 119 * **Voice catalogue**, request to `https://wedispatch.fr/api/v1/voices`: no personal data, only the API key for authentication. Triggered when the settings screens are displayed (cached for 1 hour). 89 120 * **Subscription and usage**, request to `https://wedispatch.fr/api/v1/account` and `https://wedispatch.fr/api/v1/usage`: only the API key. Triggered when the settings page is displayed, to show the plan. … … 116 147 == Frequently Asked Questions == 117 148 149 = Is there a free plan? = 150 151 Yes. Your first articles are on us, so you can hear your own content before deciding anything. Paid 152 plans start when you need volume, and they are listed on wedispatch.fr. The plugin reads what is 153 left from your account, so what you see in WordPress is always your real allowance. 154 155 = Do I need a credit card to try it? = 156 157 No. You create the account, connect the site and publish. A payment method is only asked for when 158 you choose a paid plan. 159 160 = Does it work with Elementor, Divi or WPBakery? = 161 162 Yes. The player is available as an editor block, as a widget and as the `[wedispatch]` shortcode, 163 and every one of those three builders accepts at least one of them. You can also leave the player at 164 the top or the bottom of the article and not place anything by hand. 165 166 = Does it work with WooCommerce? = 167 168 Yes. Products are a content type like any other: tick "Products" in Settings and product 169 descriptions get an audio version when they are published. 170 118 171 = Does the plugin work without a WeDispatch account? = 119 172 120 173 No. It is the connector for an online service: the site has to be connected to a WeDispatch 121 account. Until then, no processing takes place and no request is made. 174 account. Until then, nothing is read aloud and no request is made on its own. Two things happen only 175 when you click: connecting the site, and, on the WeDispatch overview, a button that lets you hear 20 176 seconds of your latest post, read by the service, before creating an account. 122 177 123 178 = The player is not showing up on my page. What now? = … … 211 266 212 267 == Changelog == 268 269 = 1.30.0 = 270 * **New: the plugin tells you where to start.** Right after activation you land on the WeDispatch overview, the plugin list has a "Connect" link, and until the site is connected a notice on the dashboard and the Plugins screen offers the one-click connection. Each administrator can close it for good. 271 * **New: after connecting, you land on the overview, not on the settings.** It offers to read one post aloud straight away: during the trial, the most recent post that fits what the trial has left, so the first audio never fails for being too long. 272 * **New: hear your own post before creating an account.** On a site that is not connected yet, the overview offers a 20-second sample of your latest post. It is sent only when you click, needs no account, and the text is not kept. 273 * **Changed: new sites start in manual mode.** Nothing is read aloud on its own until you decide, and once a first audio exists the overview offers automatic mode in one click. Sites already connected keep the mode they had: nothing changes for them on update. 274 * **New: a post refused for lack of credits says so.** The service's message now shows on the post's line in My content & audio, and a notice on the dashboard gives the way out. Until now these posts simply read "No audio". 275 * The trial is no longer described as "lost at the end of the month": trial credits do not expire. 276 * The overview no longer asks you to copy an API key: connecting the site creates it for you. 213 277 214 278 = 1.29.0 = -
wedispatch-audio-text-to-speech/trunk/wedispatch-audio-text-to-speech.php
r3665684 r3709329 4 4 * Plugin URI: https://wedispatch.fr 5 5 * Description: Turns your posts, pages and custom post types into audio automatically when they are published, and shows an accessible player in the article. Requires a WeDispatch account (external service). 6 * Version: 1. 29.06 * Version: 1.30.0 7 7 * Requires at least: 6.3 8 8 * Requires PHP: 7.4 … … 32 32 */ 33 33 define('WEDISPATCH_API', 'https://wedispatch.fr'); 34 define('WEDISPATCH_VERSION', '1. 29.0');34 define('WEDISPATCH_VERSION', '1.30.0'); 35 35 /** 36 36 * L'adresse publique du dossier de l'extension. … … 70 70 require_once __DIR__ . '/admin/menu.php'; 71 71 require_once __DIR__ . '/admin/connexion.php'; 72 require_once __DIR__ . '/admin/premiers-pas.php'; 72 73 require_once __DIR__ . '/admin/vue-ensemble.php'; 73 74 require_once __DIR__ . '/admin/contenus.php'; … … 830 831 wp_schedule_event(time() + 60, 'hourly', 'wedispatch_refresh_access_event'); 831 832 } 833 // L'ACTIVATION MÈNE QUELQUE PART (1.30.0). Jusqu'ici elle ne faisait que planifier une tâche : 834 // l'éditeur revenait sur la liste des extensions et devait trouver le menu tout seul. Mesuré en 835 // production le 23/09/2026 : 225 téléchargements, moins de dix installations actives, et des 836 // sites connectés sans un seul audio. Le drapeau est lu une fois, au premier écran 837 // d'administration qui suit (`admin/premiers-pas.php`), et seulement si le site n'est pas 838 // encore connecté : une réactivation après mise à jour ne détourne personne. 839 // 840 // UN DRAPEAU QUI EXPIRE, ET JAMAIS EN LIGNE DE COMMANDE. Une activation par WP-CLI ou par l'API 841 // posait le drapeau sans passer par un écran : l'administrateur était redirigé plus tard, sur 842 // une page sans rapport. Une minute suffit à l'écran qui suit un clic « Activer ». 843 if (!get_option('wedispatch_api_key', '') && !(defined('WP_CLI') && WP_CLI)) { 844 set_transient('wedispatch_bienvenue', 1, MINUTE_IN_SECONDS); 845 } 846 wedispatch_fixer_mode_par_defaut(); 832 847 }); 848 849 /** 850 * Le mode du site, écrit une fois pour toutes s'il ne l'a jamais été. 851 * 852 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 853 * MANUEL PAR DÉFAUT DEPUIS LA 1.30.0, ET PERSONNE NE BASCULE À SON INSU 854 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 855 * 856 * Arbitrage de Julien, 23/09/2026 : un site nouvellement connecté ne sonorise rien tout seul. 857 * L'automatique consommait l'essai sur le premier long article publié, et un client payant a reçu 858 * un geste de vingt crédits pour des audios qu'il n'avait pas choisis. 859 * 860 * MAIS LE DÉFAUT D'UNE OPTION JAMAIS ENREGISTRÉE SE LIT À CHAQUE CHARGEMENT : changer `'auto'` en 861 * `'manuel'` dans `get_option` aurait coupé, à la mise à jour, la sonorisation des sites connectés 862 * qui n'ont jamais ouvert leurs réglages. Leurs articles auraient cessé d'avoir un audio, sans un 863 * mot. On écrit donc la valeur une fois : un site déjà connecté garde l'automatique qu'il avait, 864 * un site neuf part en manuel. 865 */ 866 function wedispatch_fixer_mode_par_defaut() { 867 if (get_option('wedispatch_mode', null) !== null) return; 868 add_option('wedispatch_mode', get_option('wedispatch_api_key', '') ? 'auto' : 'manuel'); 869 } 870 871 /** 872 * Le mode du site : `auto` ou `manuel`. Une seule lecture, un seul défaut. 873 * 874 * LA FIXATION SE FAIT ICI, À LA PREMIÈRE LECTURE, ET PAS SUR `admin_init`. Une mise à jour ne 875 * rejoue pas le crochet d'activation, et l'éditeur de blocs publie par l'API REST, où `admin_init` 876 * ne passe pas : la première lecture du mode après la mise à jour peut être celle qui décide de 877 * sonoriser un article publié. Si elle retombait sur le nouveau défaut, un site connecté perdrait 878 * l'automatique au moment précis où il s'en sert. 879 */ 880 function wedispatch_mode_site() { 881 wedispatch_fixer_mode_par_defaut(); 882 return get_option('wedispatch_mode', 'manuel') === 'auto' ? 'auto' : 'manuel'; 883 } 833 884 register_deactivation_hook(__FILE__, function () { 834 885 wp_clear_scheduled_hook('wedispatch_refresh_access_event'); … … 839 890 function wedispatch_effective_mode($post_id) { 840 891 $mode = get_post_meta($post_id, '_wedispatch_mode', true); 841 if (!$mode || $mode === 'site') $mode = get_option('wedispatch_mode', 'auto');892 if (!$mode || $mode === 'site') $mode = wedispatch_mode_site(); 842 893 return $mode === 'manuel' ? 'manuel' : 'auto'; 843 894 } … … 927 978 } 928 979 980 // Un 429 n'est un refus de crédits que s'il porte le décompte (`quota`) : le service répond 981 // aussi 429 à une rafale de publications (dix par minute), et ce n'est pas un forfait à changer. 982 if ($code === 402 || ($code === 429 && is_array($data) && isset($data['quota']))) { 983 wedispatch_noter_refus($post_id, is_array($data) && !empty($data['error']) ? (string) $data['error'] : ''); 984 } 929 985 if (!empty($data['article_id'])) { 930 986 update_post_meta($post_id, '_wedispatch_article_id', sanitize_text_field($data['article_id'])); … … 937 993 wedispatch_noter_signature($post_id, $body); 938 994 delete_post_meta($post_id, '_wedispatch_suspendu'); 995 delete_post_meta($post_id, '_wedispatch_refus'); 939 996 // Le transcript en réserve décrit l'audio d'AVANT. Le garder ferait lire sous l'article un 940 997 // texte que plus personne n'entend, pendant douze heures, sans qu'aucun écran le signale. … … 980 1037 function wedispatch_noter_suspension($post_id, $data) { 981 1038 update_post_meta($post_id, '_wedispatch_suspendu', wedispatch_message_suspension($data)); 1039 } 1040 1041 /** 1042 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 1043 * UN REFUS FAUTE DE CRÉDITS SE VOIT DANS WORDPRESS (1.30.0, 23/09/2026) 1044 * ═══════════════════════════════════════════════════════════════════════════════════════════════ 1045 * 1046 * Le service répondait déjà en clair (« Cet article demande 19 crédits et votre essai en compte 1047 * cinq… »), et ce message n'arrivait jamais à l'éditeur : en automatique, le résultat de l'envoi 1048 * était jeté ; en lot, les refus étaient comptés et jamais montrés. L'écran Contenus disait « Pas 1049 * d'audio », comme pour un article jamais envoyé. Deux sites connectés en production n'ont jamais 1050 * produit un audio, et rien ne permet de savoir s'ils ont été refusés. 1051 * 1052 * Le message du service est gardé sur le contenu (affiché sur sa ligne), et le dernier refus du 1053 * site est retenu pour l'avis d'administration qui propose de choisir un forfait. Un envoi réussi 1054 * efface la trace du contenu. Le texte vient du service : le module ne réécrit pas un refus. 1055 */ 1056 function wedispatch_noter_refus($post_id, $message) { 1057 $message = trim(wp_strip_all_tags((string) $message)); 1058 if ($message === '') $message = __('Not enough credits left for this item.', 'wedispatch-audio-text-to-speech'); 1059 update_post_meta($post_id, '_wedispatch_refus', $message); 1060 update_option('wedispatch_dernier_refus', array('message' => $message, 'quand' => time(), 'post' => (int) $post_id), false); 982 1061 } 983 1062 … … 1156 1235 continue; 1157 1236 } 1237 if (isset($ligne['status']) && $ligne['status'] === 'quota') { 1238 wedispatch_noter_refus($post_id, isset($ligne['error']) ? $ligne['error'] : ''); 1239 $erreurs++; 1240 continue; 1241 } 1158 1242 if (empty($ligne['article_id'])) { $erreurs++; continue; } 1159 1243 update_post_meta($post_id, '_wedispatch_article_id', sanitize_text_field($ligne['article_id'])); … … 1161 1245 wedispatch_noter_signature($post_id, $par_ref[$ref]['body']); 1162 1246 delete_post_meta($post_id, '_wedispatch_suspendu'); 1247 delete_post_meta($post_id, '_wedispatch_refus'); 1163 1248 wedispatch_oublier_transcript($ligne['article_id']); 1164 1249 // Par contenu, jamais en bloc : un lot de cinquante ne doit pas vider tout le cache d'un … … 1269 1354 // enregistrement des réglages — le site repasserait en sonorisation automatique, donc 1270 1355 // facturée, sans que personne l'ait demandé. 1271 'sanitize_callback' => function ($v) { return wedispatch_sanitize_choix($v, array('auto', 'manuel'), 'auto'); }, 1272 'default' => 'auto', 1356 // Le repli de la liste blanche est « manuel » depuis la 1.30.0 : une valeur inconnue ne doit 1357 // jamais rallumer une sonorisation facturée. 1358 'sanitize_callback' => function ($v) { return wedispatch_sanitize_choix($v, array('auto', 'manuel'), 'manuel'); }, 1359 'default' => 'manuel', 1273 1360 )); 1274 1361 register_setting('wedispatch', 'wedispatch_voice', array( … … 1421 1508 1422 1509 $key = get_option('wedispatch_api_key', ''); 1423 $mode = get_option('wedispatch_mode', 'auto');1510 $mode = wedispatch_mode_site(); 1424 1511 $voice = get_option('wedispatch_voice', ''); 1425 1512 $pos = get_option('wedispatch_position', 'before'); … … 1453 1540 printf( 1454 1541 /* translators: %s: link to the WeDispatch account area. */ 1455 esc_html__(' Turn your content into audio. Paste the API key fromyour account area (%s).', 'wedispatch-audio-text-to-speech'),1542 esc_html__('Already have an API key? You can also paste it here. It is in your account area (%s).', 'wedispatch-audio-text-to-speech'), 1456 1543 '<a href="' . esc_url(WEDISPATCH_API . '/dashboard/api-keys') . '" target="_blank" rel="noopener">wedispatch.fr</a>' 1457 1544 ); … … 1893 1980 $voice = get_post_meta($post->ID, '_wedispatch_voice', true); 1894 1981 $aid = get_post_meta($post->ID, '_wedispatch_article_id', true); 1895 $global_is_auto = get_option('wedispatch_mode', 'auto') !== 'manuel';1982 $global_is_auto = wedispatch_mode_site() === 'auto'; 1896 1983 $global = $global_is_auto 1897 1984 ? __('Auto', 'wedispatch-audio-text-to-speech')
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)