Plugin Directory

Changeset 3709329


Ignore:
Timestamp:
09/23/2026 12:28:41 PM (5 weeks ago)
Author:
toutestfaisable
Message:

1.30.0 : de l'installation au premier audio

Location:
wedispatch-audio-text-to-speech/trunk
Files:
1 added
12 edited

Legend:

Unmodified
Added
Removed
  • wedispatch-audio-text-to-speech/trunk/admin/aide.php

    r3657775 r3709329  
    2424        array(__('Service address', 'wedispatch-audio-text-to-speech'), wp_parse_url(WEDISPATCH_API, PHP_URL_HOST)),
    2525        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()),
    2727        array(__('Content types', 'wedispatch-audio-text-to-speech'), implode(', ', wedispatch_post_types())),
    2828        array(__('Player position', 'wedispatch-audio-text-to-speech'), get_option('wedispatch_position', 'before')),
  • wedispatch-audio-text-to-speech/trunk/admin/connexion.php

    r3657775 r3709329  
    171171        : array('type' => 'error', 'texte' => $r['error']), 60);
    172172
    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'));
    174178    exit;
    175179});
  • wedispatch-audio-text-to-speech/trunk/admin/contenus.php

    r3660519 r3709329  
    5050        // suspension. C'est l'étiquette qui change, pas ce qu'on peut faire.
    5151        $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        }
    5261        return array(
    5362            'code'  => 'aucun',
  • wedispatch-audio-text-to-speech/trunk/admin/vue-ensemble.php

    r3660519 r3709329  
    223223
    224224/**
     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 */
     234function 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. */
     250function 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 */
     273function 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/**
    225325 * Traite le bouton « sonoriser ce qui reste ». Rend array('type','texte') ou null.
    226326 *
    … …  
    233333    if (!current_user_can('manage_options')) return null;
    234334    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    }
    235349
    236350    $demande = isset($_POST['wd_reste_n']) ? (int) $_POST['wd_reste_n'] : 0;
    … …  
    304418    $combien = min($reste, count($liste['ids']));
    305419    $titres = array_slice($liste['ids'], 0, $apercu);
     420
     421    if (!empty($u['trial'])) { wedispatch_carte_essai($u, $reste); return; }
    306422    ?>
    307423    <div class="wedispatch-carte wedispatch-carte-suggestion">
    … …  
    325441      ?>
    326442      <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.
    327445        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'),
    330451            '<strong>' . esc_html(sprintf(
    331452                /* translators: %s: number of credits left. */
    … …  
    373494}
    374495
     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 */
     515function 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. */
     537function 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. */
     584function 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
    375602function wedispatch_ecran_accueil() {
    376603    if (!current_user_can('manage_options')) return;
    377604
    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();
    379608    if (!$message_reste) $message_reste = wedispatch_traiter_signatures();
     609    if (!$message_reste) $message_reste = wedispatch_traiter_passage_auto();
    380610
    381611    // Le bouton « Rafraîchir » vide la réserve. Jeton de formulaire parce que l'action déclenche un
    … …  
    426656
    427657    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();
    428660
    429661    if ($message_reste) {
    … …  
    454686          <div class="wedispatch-chiffre">
    455687            <strong><?php echo esc_html(
    456               get_option('wedispatch_mode', 'auto') === 'manuel'
     688              wedispatch_mode_site() === 'manuel'
    457689                ? __('Manual', 'wedispatch-audio-text-to-speech')
    458690                : __('Auto', 'wedispatch-audio-text-to-speech')
    … …  
    524756      <?php wedispatch_carte_podcast($compte); ?>
    525757      <?php wedispatch_carte_reste($compte); ?>
     758      <?php wedispatch_carte_passage_auto(); ?>
    526759      <?php wedispatch_carte_signatures(); ?>
    527760    <?php endif; ?>
    … …  
    534767        <h2><?php esc_html_e('Next step', 'wedispatch-audio-text-to-speech'); ?></h2>
    535768        <?php if ($etat['etat'] === 'sans-cle') : ?>
    536           <p><?php esc_html_e('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.', '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>
    537770          <p class="wedispatch-actions">
    538771            <?php // Le geste attendu, en premier : connecter. Le collage manuel reste offert à côté,
    … …  
    542775              esc_html_e('Paste my API key', 'wedispatch-audio-text-to-speech'); ?></a>
    543776          </p>
     777          <?php // Avant de demander un compte, faire entendre la voix sur SON texte. ?>
     778          <?php wedispatch_bloc_extrait($extrait); ?>
    544779        <?php elseif ($etat['etat'] === 'refusee') : ?>
    545780          <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  
    33        "apiVersion": 3,
    44        "name": "wedispatch/player",
    5         "version": "1.29.0",
     5        "version": "1.30.0",
    66        "title": "WeDispatch audio player",
    77        "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-08-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  
    11<?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-08-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é']];
     2return ['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  
    4040#: admin/aide.php:17
    4141#: admin/menu.php:66
    42 #: wedispatch-audio-text-to-speech.php:1646
     42#: wedispatch-audio-text-to-speech.php:1733
    4343msgid "Help & checks"
    4444msgstr "Aide et vérifications"
    … …  
    7373
    7474#: admin/aide.php:28
    75 #: wedispatch-audio-text-to-speech.php:1536
     75#: wedispatch-audio-text-to-speech.php:1623
    7676msgid "Player position"
    7777msgstr "Position du lecteur"
    … …  
    7979#: admin/aide.php:29
    8080#: admin/lecteur.php:883
    81 #: wedispatch-audio-text-to-speech.php:1571
     81#: wedispatch-audio-text-to-speech.php:1658
    8282msgid "Who can listen"
    8383msgstr "Qui peut écouter"
    … …  
    154154#: inc/diagnostic.php:164
    155155#: inc/diagnostic.php:168
    156 #: wedispatch-audio-text-to-speech.php:1680
    157 #: wedispatch-audio-text-to-speech.php:1971
     156#: wedispatch-audio-text-to-speech.php:1767
     157#: wedispatch-audio-text-to-speech.php:2058
    158158msgid "Not allowed"
    159159msgstr "Non autorisé"
    … …  
    177177
    178178#: admin/compte.php:92
    179 #: admin/vue-ensemble.php:511
     179#: admin/vue-ensemble.php:743
    180180msgid "Refresh"
    181181msgstr "Rafraîchir"
    … …  
    255255msgstr "Ce site est connecté. Votre clé API a été créée et enregistrée pour vous."
    256256
    257 #: admin/connexion.php:240
     257#: admin/connexion.php:244
    258258msgid "This site no longer uses your WeDispatch account. Your settings and your audio are untouched: connecting again puts everything back."
    259259msgstr "Ce site n'utilise plus votre compte WeDispatch. Vos réglages et vos audios sont intacts : reconnecter remet tout en place."
    260260
    261 #: admin/connexion.php:252
     261#: admin/connexion.php:256
    262262msgid "Disconnect this site?"
    263263msgstr "Déconnecter ce site ?"
    264264
    265 #: admin/connexion.php:254
     265#: admin/connexion.php:258
    266266msgid "What is removed from this site"
    267267msgstr "Ce qui est retiré de ce site"
    268268
    269 #: admin/connexion.php:256
     269#: admin/connexion.php:260
    270270msgid "The API key stored here, and everything read from your account."
    271271msgstr "La clé API enregistrée ici, et tout ce qui a été lu de votre compte."
    272272
    273 #: admin/connexion.php:257
     273#: admin/connexion.php:261
    274274msgid "The secret that lets subscriber-only audio be listened to, and its hourly refresh."
    275275msgstr "Le secret qui permet d'écouter l'audio réservé aux abonnés, et son renouvellement horaire."
    276276
    277 #: admin/connexion.php:260
     277#: admin/connexion.php:264
    278278msgid "What is kept"
    279279msgstr "Ce qui est conservé"
    280280
    281 #: admin/connexion.php:262
     281#: admin/connexion.php:266
    282282msgid "Your settings: reading mode, content types, voices, player position."
    283283msgstr "Vos réglages : mode de lecture, types de contenu, voix, position du lecteur."
    284284
    285 #: admin/connexion.php:263
     285#: admin/connexion.php:267
    286286msgid "The link between each item and its audio. Connecting the same account again puts everything back, and regenerates nothing."
    287287msgstr "Le lien entre chaque contenu et son audio. Reconnecter le même compte remet tout en place, et ne régénère rien."
    288288
    289 #: admin/connexion.php:266
     289#: admin/connexion.php:270
    290290msgid "What this cannot do for you"
    291291msgstr "Ce que cela ne peut pas faire à votre place"
    292292
    293 #: admin/connexion.php:267
     293#: admin/connexion.php:271
    294294msgid "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."
    295295msgstr "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."
    296296
    297 #: admin/connexion.php:271
    298 #: wedispatch-audio-text-to-speech.php:1448
     297#: admin/connexion.php:275
     298#: wedispatch-audio-text-to-speech.php:1535
    299299msgid "Disconnect this site"
    300300msgstr "Déconnecter ce site"
    301301
    302 #: admin/connexion.php:273
     302#: admin/connexion.php:277
    303303msgid "Cancel"
    304304msgstr "Annuler"
    305305
    306 #: admin/connexion.php:275
     306#: admin/connexion.php:279
    307307msgid "Revoke the key on wedispatch.fr"
    308308msgstr "Révoquer la clé sur wedispatch.fr"
    309309
    310 #: admin/connexion.php:301
     310#: admin/connexion.php:305
     311#: admin/premiers-pas.php:97
    311312msgid "Connect this site to WeDispatch"
    312313msgstr "Connecter ce site à WeDispatch"
    313314
    314 #: admin/contenus.php:55
     315#: admin/contenus.php:57
     316msgid "Not voiced: credits"
     317msgstr "Non sonorisé : crédits"
     318
     319#: admin/contenus.php:64
    315320msgid "Automatic audio paused"
    316321msgstr "Sonorisation automatique suspendue"
    317322
    318 #: admin/contenus.php:56
    319 #: admin/contenus.php:221
     323#: admin/contenus.php:65
     324#: admin/contenus.php:230
    320325msgid "No audio"
    321326msgstr "Aucun audio"
    322327
    323 #: admin/contenus.php:62
     328#: admin/contenus.php:71
    324329msgid "Text changed since"
    325330msgstr "Texte modifié depuis"
    326331
    327 #: admin/contenus.php:64
     332#: admin/contenus.php:73
    328333msgid "Up to date"
    329334msgstr "À jour"
    330335
    331 #: admin/contenus.php:96
     336#: admin/contenus.php:105
    332337#: admin/lecteur.php:312
    333338#: admin/voix.php:162
    … …  
    335340msgstr "Ce lien a expiré. Merci de recommencer."
    336341
    337 #: admin/contenus.php:99
     342#: admin/contenus.php:108
    338343#: inc/front.php:175
    339344msgid "You are not allowed to edit this item."
    340345msgstr "Vous n'avez pas le droit de modifier ce contenu."
    341346
    342 #: admin/contenus.php:103
     347#: admin/contenus.php:112
    343348msgid "Queued. The audio will be prepared in the background."
    344349msgstr "Mis en file. L'audio sera préparé en tâche de fond."
    345350
    346 #: admin/contenus.php:110
     351#: admin/contenus.php:119
    347352msgid "The player no longer appears on this item. The audio itself still exists in your WeDispatch account."
    348353msgstr "Le lecteur n'apparaît plus sur ce contenu. L'audio, lui, existe toujours dans votre compte WeDispatch."
    349354
    350 #: admin/contenus.php:120
     355#: admin/contenus.php:129
    351356msgid "Pick an action and at least one item."
    352357msgstr "Choisissez une action et au moins un contenu."
    353358
    354359#. translators: %d: number of items.
    355 #: admin/contenus.php:147
     360#: admin/contenus.php:156
    356361#, php-format
    357362msgid "%d item detached."
    … …  
    362367#. translators: %d: number of items.
    363368#. translators: %d: number of items queued.
    364 #: admin/contenus.php:149
    365 #: admin/vue-ensemble.php:263
     369#: admin/contenus.php:158
     370#: admin/vue-ensemble.php:377
    366371#, php-format
    367372msgid "%d item queued."
    … …  
    371376
    372377#. translators: %d: number of items the current user may not edit.
    373 #: admin/contenus.php:152
     378#: admin/contenus.php:161
    374379#, php-format
    375380msgid "%d item skipped: you may not edit it."
    … …  
    378383msgstr[1] "%d contenus ignorés : vous n'avez pas le droit de les modifier."
    379384
    380 #: admin/contenus.php:200
     385#: admin/contenus.php:209
    381386#: admin/menu.php:60
    382387#: admin/statistiques.php:367
    … …  
    384389msgstr "Mes contenus et audio"
    385390
    386 #: admin/contenus.php:210
     391#: admin/contenus.php:219
    387392msgid "Content type"
    388393msgstr "Type de contenu"
    389394
    390 #: admin/contenus.php:212
     395#: admin/contenus.php:221
    391396msgid "All content types"
    392397msgstr "Tous les types de contenu"
    393398
    394 #: admin/contenus.php:218
     399#: admin/contenus.php:227
    395400msgid "Audio state"
    396401msgstr "État de l'audio"
    397402
    398 #: admin/contenus.php:220
     403#: admin/contenus.php:229
    399404msgid "Any audio state"
    400405msgstr "Tous les états"
    401406
    402 #: admin/contenus.php:222
     407#: admin/contenus.php:231
    403408msgid "With audio"
    404409msgstr "Avec audio"
    405410
    406 #: admin/contenus.php:224
     411#: admin/contenus.php:233
    407412msgid "Search"
    408413msgstr "Rechercher"
    409414
    410 #: admin/contenus.php:226
     415#: admin/contenus.php:235
    411416msgid "Search titles"
    412417msgstr "Rechercher dans les titres"
    413418
    414 #: admin/contenus.php:227
     419#: admin/contenus.php:236
    415420msgid "Filter"
    416421msgstr "Filtrer"
    417422
    418 #: admin/contenus.php:234
     423#: admin/contenus.php:243
    419424msgid "Bulk action"
    420425msgstr "Action groupée"
    421426
    422 #: admin/contenus.php:236
     427#: admin/contenus.php:245
    423428msgid "Bulk actions"
    424429msgstr "Actions groupées"
    425430
    426 #: admin/contenus.php:237
     431#: admin/contenus.php:246
    427432msgid "Generate or rebuild the audio"
    428433msgstr "Générer ou refaire l'audio"
    429434
    430 #: admin/contenus.php:238
     435#: admin/contenus.php:247
    431436msgid "Remove the player from these items"
    432437msgstr "Retirer le lecteur de ces contenus"
    433438
    434 #: admin/contenus.php:240
     439#: admin/contenus.php:249
    435440msgid "Apply"
    436441msgstr "Appliquer"
    … …  
    439444#. translators: %s: number of items.
    440445#. translators: %s: number of items in this category.
    441 #: admin/contenus.php:245
     446#: admin/contenus.php:254
    442447#: admin/statistiques.php:136
    443448#: admin/voix.php:451
    … …  
    448453msgstr[1] "%s contenus"
    449454
    450 #: admin/contenus.php:254
    451 #: wedispatch-audio-text-to-speech.php:691
     455#: admin/contenus.php:263
     456#: wedispatch-audio-text-to-speech.php:692
    452457msgid "site voice"
    453458msgstr "voix du site"
    454459
    455 #: admin/contenus.php:255
    456 #: wedispatch-audio-text-to-speech.php:692
    457 #: wedispatch-audio-text-to-speech.php:1900
     460#: admin/contenus.php:264
     461#: wedispatch-audio-text-to-speech.php:693
     462#: wedispatch-audio-text-to-speech.php:1987
    458463msgid "account default voice"
    459464msgstr "voix par défaut du compte"
    460465
    461 #: admin/contenus.php:279
     466#: admin/contenus.php:288
    462467msgid "Select all"
    463468msgstr "Tout sélectionner"
    464469
    465 #: admin/contenus.php:282
     470#: admin/contenus.php:291
    466471msgid "Title"
    467472msgstr "Titre"
    468473
    469 #: admin/contenus.php:283
     474#: admin/contenus.php:292
    470475msgid "Audio"
    471476msgstr "Audio"
    472477
    473 #: admin/contenus.php:284
     478#: admin/contenus.php:293
    474479#: admin/voix.php:441
    475480#: admin/voix.php:485
    … …  
    477482msgstr "Voix"
    478483
    479 #: admin/contenus.php:286
     484#: admin/contenus.php:295
    480485#: admin/statistiques.php:145
    481486#: admin/statistiques.php:228
    … …  
    483488msgstr "Écoutes"
    484489
    485 #: admin/contenus.php:288
     490#: admin/contenus.php:297
    486491msgid "Last edited"
    487492msgstr "Modifié le"
    488493
    489494#. translators: %s: title of the item.
    490 #: admin/contenus.php:317
     495#: admin/contenus.php:326
    491496#, php-format
    492497msgid "Select %s"
    493498msgstr "Sélectionner %s"
    494499
    495 #: admin/contenus.php:331
     500#: admin/contenus.php:340
    496501msgid "Generate the audio"
    497502msgstr "Générer l'audio"
    498503
    499 #: admin/contenus.php:332
     504#: admin/contenus.php:341
    500505msgid "Rebuild the audio"
    501506msgstr "Refaire l'audio"
    502507
    503 #: admin/contenus.php:336
     508#: admin/contenus.php:345
    504509msgid "Listen on the site"
    505510msgstr "Écouter sur le site"
    506511
    507 #: admin/contenus.php:346
     512#: admin/contenus.php:355
    508513msgid "Transcript"
    509514msgstr "Transcript"
    510515
    511 #: admin/contenus.php:348
     516#: admin/contenus.php:357
    512517msgid "SRT"
    513518msgstr "SRT"
    514519
    515 #: admin/contenus.php:356
     520#: admin/contenus.php:365
    516521msgid "Check the display"
    517522msgstr "Vérifier l'affichage"
    518523
    519 #: admin/contenus.php:358
     524#: admin/contenus.php:367
    520525msgid "Remove the player"
    521526msgstr "Retirer le lecteur"
    522527
    523 #: admin/contenus.php:367
    524 #: wedispatch-audio-text-to-speech.php:443
     528#: admin/contenus.php:376
     529#: wedispatch-audio-text-to-speech.php:444
    525530msgid "Account default voice"
    526531msgstr "Voix par défaut du compte"
    527532
    528 #: admin/contenus.php:386
     533#: admin/contenus.php:395
    529534msgid "no audio yet"
    530535msgstr "pas encore d'audio"
    531536
    532 #: admin/contenus.php:395
     537#: admin/contenus.php:404
    533538msgid "Nothing matches these filters."
    534539msgstr "Aucun contenu ne correspond à ces filtres."
    535540
    536 #: admin/contenus.php:406
     541#: admin/contenus.php:415
    537542msgid "Previous"
    538543msgstr "Précédent"
    539544
    540 #: admin/contenus.php:407
     545#: admin/contenus.php:416
    541546msgid "Next"
    542547msgstr "Suivant"
    543548
    544 #: admin/contenus.php:417
     549#: admin/contenus.php:426
    545550msgid "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."
    546551msgstr "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."
    … …  
    793798#: admin/statistiques.php:369
    794799#: admin/voix.php:363
    795 #: admin/vue-ensemble.php:550
    796 #: admin/vue-ensemble.php:556
     800#: admin/vue-ensemble.php:785
     801#: admin/vue-ensemble.php:791
    797802msgid "Run the checks"
    798803msgstr "Lancer les vérifications"
    … …  
    910915
    911916#: admin/lecteur.php:886
    912 #: wedispatch-audio-text-to-speech.php:1574
     917#: wedispatch-audio-text-to-speech.php:1661
    913918msgid "Everyone"
    914919msgstr "Tout le monde"
    915920
    916921#: admin/lecteur.php:888
    917 #: wedispatch-audio-text-to-speech.php:1582
     922#: wedispatch-audio-text-to-speech.php:1669
    918923msgid "Your subscribers"
    919924msgstr "Vos abonnés"
    920925
    921926#: admin/lecteur.php:889
    922 #: wedispatch-audio-text-to-speech.php:1583
     927#: wedispatch-audio-text-to-speech.php:1670
    923928msgid "Your registered users"
    924929msgstr "Vos inscrits"
    925930
    926931#: admin/lecteur.php:891
    927 #: wedispatch-audio-text-to-speech.php:1584
     932#: wedispatch-audio-text-to-speech.php:1671
    928933msgid "other visitors only hear a preview."
    929934msgstr "les autres visiteurs n'entendent qu'un extrait."
    … …  
    943948#: admin/menu.php:45
    944949#: admin/menu.php:46
    945 #: admin/vue-ensemble.php:427
     950#: admin/vue-ensemble.php:657
    946951msgid "WeDispatch"
    947952msgstr ""
    948953
    949954#: admin/menu.php:59
     955#: admin/premiers-pas.php:67
    950956msgid "Overview"
    951957msgstr "Vue d'ensemble"
    … …  
    962968
    963969#: admin/menu.php:64
    964 #: admin/vue-ensemble.php:519
    965 #: wedispatch-audio-text-to-speech.php:1429
     970#: admin/vue-ensemble.php:751
     971#: wedispatch-audio-text-to-speech.php:1516
    966972msgid "Settings"
    967973msgstr "Réglages"
    … …  
    972978msgid "WeDispatch: %s"
    973979msgstr "WeDispatch : %s"
     980
     981#: admin/premiers-pas.php:68
     982msgid "Connect"
     983msgstr "Connecter"
     984
     985#: admin/premiers-pas.php:93
     986msgid "WeDispatch is installed."
     987msgstr "WeDispatch est installé."
     988
     989#: admin/premiers-pas.php:94
     990msgid "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."
     991msgstr "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
     994msgid "See what it does"
     995msgstr "Voir ce que ça fait"
     996
     997#: admin/premiers-pas.php:101
     998#: admin/premiers-pas.php:151
     999msgid "Do not show this again"
     1000msgstr "Ne plus afficher"
     1001
     1002#: admin/premiers-pas.php:139
     1003msgid "A post was not read aloud."
     1004msgstr "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
     1009msgid "“%s”"
     1010msgstr "« %s »"
     1011
     1012#: admin/premiers-pas.php:147
     1013#: admin/vue-ensemble.php:315
     1014msgid "Choose a plan"
     1015msgstr "Choisir un forfait"
     1016
     1017#: admin/premiers-pas.php:149
     1018msgid "See my content"
     1019msgstr "Voir mes contenus"
    9741020
    9751021#. translators: 1: number of items shown, 2: total number of items.
    … …  
    12611307
    12621308#: admin/voix.php:431
    1263 #: wedispatch-audio-text-to-speech.php:1813
     1309#: wedispatch-audio-text-to-speech.php:1900
    12641310msgid "A voice per category comes with the paid plans."
    12651311msgstr "Une voix par rubrique vient avec les forfaits payants."
    … …  
    14491495msgstr "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."
    14501496
     1497#: admin/vue-ensemble.php:238
     1498msgid "Let every new post get its audio"
     1499msgstr "Donner un audio à chaque nouvel article"
     1500
     1501#: admin/vue-ensemble.php:239
     1502msgid "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."
     1503msgstr "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
    14511505#: 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."
     1506msgid "Switch to automatic"
     1507msgstr "Passer en automatique"
     1508
     1509#: admin/vue-ensemble.php:255
     1510msgid "Automatic mode is on: the next post you publish gets its audio on its own."
     1511msgstr "Le mode automatique est activé : le prochain article publié recevra son audio tout seul."
     1512
     1513#: admin/vue-ensemble.php:286
     1514msgid "Hear your first audio"
     1515msgstr "Écouter votre premier audio"
     1516
     1517#: admin/vue-ensemble.php:287
     1518msgid "Use your trial"
     1519msgstr "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
     1524msgid "Your trial has %1$s left, and they do not expire. A credit covers %2$s characters, so a long post uses several."
     1525msgstr "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."
    14681526
    14691527#. translators: %s: number of credits left.
    1470 #: admin/vue-ensemble.php:332
     1528#: admin/vue-ensemble.php:294
     1529#: admin/vue-ensemble.php:453
    14711530#, php-format
    14721531msgid "%s credit"
    … …  
    14751534msgstr[1] "%s crédits"
    14761535
     1536#. translators: %s: title of the post that will be read aloud.
     1537#: admin/vue-ensemble.php:307
     1538#, php-format
     1539msgid "Read “%s” aloud"
     1540msgstr "Lire « %s » à voix haute"
     1541
     1542#: admin/vue-ensemble.php:310
     1543msgid "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."
     1544msgstr "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
     1547msgid "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."
     1548msgstr "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
     1551msgid "Choose a post myself"
     1552msgstr "Choisir un article moi-même"
     1553
     1554#: admin/vue-ensemble.php:344
     1555msgid "This item can no longer be voiced from here. Open My content & audio to pick another one."
     1556msgstr "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
     1559msgid "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."
     1560msgstr "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
     1563msgid "Nothing left to use this month."
     1564msgstr "Il ne reste rien à utiliser ce mois-ci."
     1565
     1566#: admin/vue-ensemble.php:366
     1567msgid "Every published item already has its audio."
     1568msgstr "Tous les contenus publiés ont déjà leur audio."
     1569
     1570#: admin/vue-ensemble.php:424
     1571msgid "Use what is left this month"
     1572msgstr "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
     1577msgid "You have %1$s left, and %2$s that have no audio yet."
     1578msgstr "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
     1583msgid "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."
     1584msgstr "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
    14771586#. translators: %s: number of published items without audio.
    1478 #: admin/vue-ensemble.php:337
     1587#: admin/vue-ensemble.php:458
    14791588#, php-format
    14801589msgid "%s published item"
    … …  
    14831592msgstr[1] "%s contenus publiés"
    14841593
    1485 #: admin/vue-ensemble.php:343
     1594#: admin/vue-ensemble.php:464
    14861595msgid "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."
    14871596msgstr "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."
    14881597
    14891598#. translators: %s: number of items to queue.
    1490 #: admin/vue-ensemble.php:361
     1599#: admin/vue-ensemble.php:482
    14911600#, php-format
    14921601msgid "Voice the next %s item"
    … …  
    14951604msgstr[1] "Sonoriser les %s prochains contenus"
    14961605
    1497 #: admin/vue-ensemble.php:365
     1606#: admin/vue-ensemble.php:486
    14981607msgid "Choose them myself"
    14991608msgstr "Les choisir moi-même"
    15001609
    1501 #: admin/vue-ensemble.php:369
     1610#: admin/vue-ensemble.php:490
    15021611msgid "The most recent ones first. They are queued in the background: WordPress prepares the audio a few seconds later, without holding this page."
    15031612msgstr "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."
    15041613
    1505 #: admin/vue-ensemble.php:394
     1614#: admin/vue-ensemble.php:544
     1615msgid "There is no published post long enough to make a sample from yet."
     1616msgstr "Aucun article publié n'est encore assez long pour en faire un extrait."
     1617
     1618#: admin/vue-ensemble.php:566
     1619msgid "Here is how your post sounds. Connect the site to get the whole post, and the player on the page."
     1620msgstr "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
     1623msgid "Several samples were played in the last hour. Try again later, or connect the site to voice every post."
     1624msgstr "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
     1627msgid "Samples are not available right now. Connecting the site still works, and trying it is free."
     1628msgstr "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
     1631msgid "The sample could not be produced. Try again in a moment."
     1632msgstr "L'extrait n'a pas pu être produit. Réessayez dans un instant."
     1633
     1634#: admin/vue-ensemble.php:596
     1635msgid "Hear a 20-second sample of my latest post"
     1636msgstr "Écouter 20 secondes de mon dernier article"
     1637
     1638#: admin/vue-ensemble.php:598
     1639msgid "No account needed. Only the opening of your most recent post is sent, when you click, and the text is not kept."
     1640msgstr "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
    15061643msgid "Plugin activated"
    15071644msgstr "Extension activée"
    15081645
    1509 #: admin/vue-ensemble.php:399
     1646#: admin/vue-ensemble.php:629
    15101647msgid "Site connected to WeDispatch"
    15111648msgstr "Site connecté à WeDispatch"
    15121649
    1513 #: admin/vue-ensemble.php:404
     1650#: admin/vue-ensemble.php:634
    15141651msgid "Default voice chosen"
    15151652msgstr "Voix par défaut choisie"
    15161653
    1517 #: admin/vue-ensemble.php:409
     1654#: admin/vue-ensemble.php:639
    15181655msgid "First audio generated"
    15191656msgstr "Premier audio généré"
    15201657
    1521 #: admin/vue-ensemble.php:421
     1658#: admin/vue-ensemble.php:651
    15221659msgid "Player seen on the public page"
    15231660msgstr "Lecteur vu sur la page publique"
    15241661
    1525 #: admin/vue-ensemble.php:438
     1662#: admin/vue-ensemble.php:670
    15261663msgid "Where this site stands"
    15271664msgstr "Où en est ce site"
    15281665
    1529 #: admin/vue-ensemble.php:445
     1666#: admin/vue-ensemble.php:677
    15301667msgid "item with audio"
    15311668msgid_plural "items with audio"
    … …  
    15331670msgstr[1] "contenus sonorisés"
    15341671
    1535 #: admin/vue-ensemble.php:451
     1672#: admin/vue-ensemble.php:683
    15361673msgid "published item eligible"
    15371674msgid_plural "published items eligible"
    … …  
    15391676msgstr[1] "contenus publiés éligibles"
    15401677
    1541 #: admin/vue-ensemble.php:457
    1542 #: wedispatch-audio-text-to-speech.php:1487
    1543 #: wedispatch-audio-text-to-speech.php:1898
     1678#: admin/vue-ensemble.php:689
     1679#: wedispatch-audio-text-to-speech.php:1574
     1680#: wedispatch-audio-text-to-speech.php:1985
    15441681msgid "Manual"
    15451682msgstr "Manuel"
    15461683
    1547 #: admin/vue-ensemble.php:458
    1548 #: wedispatch-audio-text-to-speech.php:1483
    1549 #: wedispatch-audio-text-to-speech.php:1897
     1684#: admin/vue-ensemble.php:690
     1685#: wedispatch-audio-text-to-speech.php:1570
     1686#: wedispatch-audio-text-to-speech.php:1984
    15501687msgid "Auto"
    15511688msgstr "Auto"
    15521689
    1553 #: admin/vue-ensemble.php:460
     1690#: admin/vue-ensemble.php:692
    15541691msgid "reading mode"
    15551692msgstr "mode de lecture"
    15561693
    15571694#. translators: %s: comma-separated list of content type names, e.g. "Posts, Pages".
    1558 #: admin/vue-ensemble.php:471
     1695#: admin/vue-ensemble.php:703
    15591696#, php-format
    15601697msgid "Content types read aloud: %s."
    15611698msgstr "Contenus sonorisés : %s."
    15621699
    1563 #: admin/vue-ensemble.php:479
     1700#: admin/vue-ensemble.php:711
    15641701msgid "Getting started"
    15651702msgstr "Mise en route"
    15661703
    1567 #: admin/vue-ensemble.php:495
     1704#: admin/vue-ensemble.php:727
    15681705msgid "done"
    15691706msgstr "fait"
    15701707
    1571 #: admin/vue-ensemble.php:496
     1708#: admin/vue-ensemble.php:728
    15721709msgid "still to do"
    15731710msgstr "reste à faire"
    15741711
    1575 #: admin/vue-ensemble.php:508
     1712#: admin/vue-ensemble.php:740
    15761713msgid "This month"
    15771714msgstr "Ce mois-ci"
    15781715
    1579 #: admin/vue-ensemble.php:516
    1580 #: wedispatch-audio-text-to-speech.php:1644
     1716#: admin/vue-ensemble.php:748
     1717#: wedispatch-audio-text-to-speech.php:1731
    15811718msgid "Plan and credits"
    15821719msgstr "Forfait et crédits"
    15831720
    1584 #: admin/vue-ensemble.php:534
     1721#: admin/vue-ensemble.php:767
    15851722msgid "Next step"
    15861723msgstr "Prochaine étape"
    15871724
    1588 #: admin/vue-ensemble.php:536
    1589 msgid "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."
    1590 msgstr "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."
    1591 
    1592 #: admin/vue-ensemble.php:542
     1725#: admin/vue-ensemble.php:769
     1726msgid "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."
     1727msgstr "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
    15931730msgid "Paste my API key"
    15941731msgstr "Coller ma clé API"
    15951732
    1596 #: admin/vue-ensemble.php:545
     1733#: admin/vue-ensemble.php:780
    15971734msgid "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."
    15981735msgstr "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."
    15991736
    1600 #: admin/vue-ensemble.php:548
     1737#: admin/vue-ensemble.php:783
    16011738msgid "Replace the key"
    16021739msgstr "Remplacer la clé"
    16031740
    1604 #: admin/vue-ensemble.php:553
     1741#: admin/vue-ensemble.php:788
    16051742msgid "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."
    16061743msgstr "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."
    16071744
    1608 #: admin/vue-ensemble.php:585
     1745#: admin/vue-ensemble.php:820
    16091746msgid "Generate the audio, automatically or by hand"
    16101747msgstr "Générer l'audio, automatiquement ou à la main"
    16111748
    1612 #: admin/vue-ensemble.php:586
     1749#: admin/vue-ensemble.php:821
    16131750msgid "Choose where the player sits in the article"
    16141751msgstr "Choisir où le lecteur se pose dans l'article"
    16151752
    1616 #: admin/vue-ensemble.php:587
     1753#: admin/vue-ensemble.php:822
    16171754msgid "Pick the voices: site, per category, per author"
    16181755msgstr "Choisir les voix : site, rubrique, signature"
    16191756
    1620 #: admin/vue-ensemble.php:588
     1757#: admin/vue-ensemble.php:823
    16211758msgid "Check that the player really shows up"
    16221759msgstr "Vérifier que le lecteur s'affiche vraiment"
    16231760
    1624 #: admin/vue-ensemble.php:591
     1761#: admin/vue-ensemble.php:826
    16251762msgid "The look of the player: model, style, colours"
    16261763msgstr "L'apparence du lecteur : modèle, style, couleurs"
    16271764
    1628 #: admin/vue-ensemble.php:592
     1765#: admin/vue-ensemble.php:827
    16291766msgid "Detailed listening statistics"
    16301767msgstr "Les statistiques d'écoute détaillées"
    16311768
    1632 #: admin/vue-ensemble.php:593
     1769#: admin/vue-ensemble.php:828
    16331770msgid "Plan, credits and invoices"
    16341771msgstr "Forfait, crédits et factures"
    16351772
    1636 #: admin/vue-ensemble.php:594
     1773#: admin/vue-ensemble.php:829
    16371774msgid "Signature voice, gated audio, translations"
    16381775msgstr "Voix signature, audio réservé, traductions"
    16391776
    1640 #: admin/vue-ensemble.php:598
     1777#: admin/vue-ensemble.php:833
    16411778msgid "What lives where"
    16421779msgstr "Ce qui se fait où"
    16431780
    1644 #: admin/vue-ensemble.php:599
     1781#: admin/vue-ensemble.php:834
    16451782msgid "The product lives in two places. Here, inside WordPress: what touches your content. In your WeDispatch account: what touches your listeners and your plan."
    16461783msgstr "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."
    16471784
    1648 #: admin/vue-ensemble.php:602
     1785#: admin/vue-ensemble.php:837
    16491786msgid "Here, in WordPress"
    16501787msgstr "Ici, dans WordPress"
    16511788
    1652 #: admin/vue-ensemble.php:610
     1789#: admin/vue-ensemble.php:845
    16531790msgid "In your WeDispatch account"
    16541791msgstr "Dans votre compte WeDispatch"
    16551792
    1656 #: admin/vue-ensemble.php:636
     1793#: admin/vue-ensemble.php:871
    16571794msgid "Your articles are a podcast"
    16581795msgstr "Vos articles sont un podcast"
    16591796
    1660 #: admin/vue-ensemble.php:637
     1797#: admin/vue-ensemble.php:872
    16611798msgid "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."
    16621799msgstr "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."
    16631800
    1664 #: admin/vue-ensemble.php:640
     1801#: admin/vue-ensemble.php:875
    16651802msgid "Podcast feed address"
    16661803msgstr "Adresse du flux podcast"
    16671804
    1668 #: admin/vue-ensemble.php:647
     1805#: admin/vue-ensemble.php:882
    16691806msgid "Submit to Spotify"
    16701807msgstr "Soumettre à Spotify"
    16711808
    1672 #: admin/vue-ensemble.php:649
     1809#: admin/vue-ensemble.php:884
    16731810msgid "Submit to Apple Podcasts"
    16741811msgstr "Soumettre à Apple Podcasts"
    16751812
    1676 #: admin/vue-ensemble.php:651
     1813#: admin/vue-ensemble.php:886
    16771814msgid "The feed is public by construction, like every podcast feed. Platforms refresh it on their own; there is nothing to resubmit when you publish."
    16781815msgstr "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."
    16791816
    16801817#. translators: %s: number of items included each month.
    1681 #: admin/vue-ensemble.php:756
     1818#: admin/vue-ensemble.php:991
    16821819#, php-format
    16831820msgid "of %s credit this month"
    … …  
    16871824
    16881825#. translators: %s: number of characters included in the plan each month.
    1689 #: admin/vue-ensemble.php:769
     1826#: admin/vue-ensemble.php:1004
    16901827#, php-format
    16911828msgid "of %s characters this month (internal measure: your plan is counted in credits)"
    … …  
    16931830
    16941831#. translators: %s is not used; the count is rendered just before.
    1695 #: admin/vue-ensemble.php:776
     1832#: admin/vue-ensemble.php:1011
    16961833msgid "credit this month, with no monthly ceiling on this plan"
    16971834msgid_plural "credits this month, with no monthly ceiling on this plan"
    … …  
    16991836msgstr[1] "crédits ce mois-ci, sans plafond mensuel sur ce forfait"
    17001837
    1701 #: admin/vue-ensemble.php:786
     1838#: admin/vue-ensemble.php:1021
    17021839msgid "characters this month (internal measure), with no monthly ceiling on this plan"
    17031840msgstr "caractères ce mois-ci (mesure interne), sans plafond mensuel sur ce forfait"
    17041841
    17051842#. translators: %s: number of items left this month.
    1706 #: admin/vue-ensemble.php:800
     1843#: admin/vue-ensemble.php:1035
    17071844#, php-format
    17081845msgid "%s credit left."
    … …  
    17111848msgstr[1] "%s crédits restants."
    17121849
    1713 #: admin/vue-ensemble.php:806
     1850#: admin/vue-ensemble.php:1041
    17141851msgid "Unused credits are not carried over: the count starts again at the beginning of each month."
    17151852msgstr "Les crédits non consommés ne sont pas reportés : le compte repart au début de chaque mois."
    17161853
    17171854#. translators: %s: number of characters used this month.
    1718 #: admin/vue-ensemble.php:810
     1855#: admin/vue-ensemble.php:1045
    17191856#, php-format
    17201857msgid "(%s characters)"
    … …  
    17231860#: inc/api.php:39
    17241861#: inc/api.php:109
    1725 #: wedispatch-audio-text-to-speech.php:890
    1726 #: wedispatch-audio-text-to-speech.php:1187
    1727 #: wedispatch-audio-text-to-speech.php:1715
     1862#: wedispatch-audio-text-to-speech.php:941
     1863#: wedispatch-audio-text-to-speech.php:1272
     1864#: wedispatch-audio-text-to-speech.php:1802
    17281865msgid "No API key has been entered"
    17291866msgstr "Aucune clé API renseignée"
    17301867
    17311868#: inc/api.php:252
    1732 #: wedispatch-audio-text-to-speech.php:1188
     1869#: wedispatch-audio-text-to-speech.php:1273
    17331870msgid "This content has never been turned into audio"
    17341871msgstr "Ce contenu n'a jamais été sonorisé"
    … …  
    17741911#. translators: %s: the address of the WeDispatch service this site talks to.
    17751912#: inc/api.php:461
    1776 #: wedispatch-audio-text-to-speech.php:1473
     1913#: wedispatch-audio-text-to-speech.php:1560
    17771914#, php-format
    17781915msgid "This site talks to %s. A key created on another environment is refused, however valid it is there."
    … …  
    19582095msgstr "Choisir ce qui est lu"
    19592096
    1960 #: wedispatch-audio-text-to-speech.php:269
     2097#: wedispatch-audio-text-to-speech.php:270
    19612098msgid "French"
    19622099msgstr "Français"
    19632100
    1964 #: wedispatch-audio-text-to-speech.php:270
     2101#: wedispatch-audio-text-to-speech.php:271
    19652102msgid "English"
    19662103msgstr "Anglais"
    19672104
    1968 #: wedispatch-audio-text-to-speech.php:271
     2105#: wedispatch-audio-text-to-speech.php:272
    19692106msgid "Spanish"
    19702107msgstr "Espagnol"
    19712108
    1972 #: wedispatch-audio-text-to-speech.php:272
     2109#: wedispatch-audio-text-to-speech.php:273
    19732110msgid "German"
    19742111msgstr "Allemand"
    19752112
    1976 #: wedispatch-audio-text-to-speech.php:273
     2113#: wedispatch-audio-text-to-speech.php:274
    19772114msgid "Italian"
    19782115msgstr "Italien"
    19792116
    1980 #: wedispatch-audio-text-to-speech.php:274
     2117#: wedispatch-audio-text-to-speech.php:275
    19812118msgid "Hindi"
    19822119msgstr "Hindi"
    19832120
    1984 #: wedispatch-audio-text-to-speech.php:275
     2121#: wedispatch-audio-text-to-speech.php:276
    19852122msgid "Chinese"
    19862123msgstr "Chinois"
    19872124
    1988 #: wedispatch-audio-text-to-speech.php:276
     2125#: wedispatch-audio-text-to-speech.php:277
    19892126msgid "Arabic"
    19902127msgstr "Arabe"
    19912128
    1992 #: wedispatch-audio-text-to-speech.php:277
     2129#: wedispatch-audio-text-to-speech.php:278
    19932130msgid "Portuguese"
    19942131msgstr "Portugais"
    19952132
    1996 #: wedispatch-audio-text-to-speech.php:278
     2133#: wedispatch-audio-text-to-speech.php:279
    19972134msgid "Japanese"
    19982135msgstr "Japonais"
    19992136
    2000 #: wedispatch-audio-text-to-speech.php:279
     2137#: wedispatch-audio-text-to-speech.php:280
    20012138msgid "Hebrew"
    20022139msgstr "Hébreu"
    20032140
    2004 #: wedispatch-audio-text-to-speech.php:280
     2141#: wedispatch-audio-text-to-speech.php:281
    20052142msgid "Korean"
    20062143msgstr "Coréen"
    20072144
    2008 #: wedispatch-audio-text-to-speech.php:281
     2145#: wedispatch-audio-text-to-speech.php:282
    20092146msgid "Dutch"
    20102147msgstr "Néerlandais"
    20112148
    2012 #: wedispatch-audio-text-to-speech.php:282
     2149#: wedispatch-audio-text-to-speech.php:283
    20132150msgid "Swedish"
    20142151msgstr "Suédois"
    20152152
    2016 #: wedispatch-audio-text-to-speech.php:283
     2153#: wedispatch-audio-text-to-speech.php:284
    20172154msgid "Polish"
    20182155msgstr "Polonais"
    20192156
    2020 #: wedispatch-audio-text-to-speech.php:284
     2157#: wedispatch-audio-text-to-speech.php:285
    20212158msgid "Tamil"
    20222159msgstr "Tamoul"
    20232160
    2024 #: wedispatch-audio-text-to-speech.php:285
     2161#: wedispatch-audio-text-to-speech.php:286
    20252162msgid "Telugu"
    20262163msgstr "Télougou"
    20272164
    2028 #: wedispatch-audio-text-to-speech.php:286
     2165#: wedispatch-audio-text-to-speech.php:287
    20292166msgid "Russian"
    20302167msgstr "Russe"
    20312168
    2032 #: wedispatch-audio-text-to-speech.php:287
     2169#: wedispatch-audio-text-to-speech.php:288
    20332170msgid "Turkish"
    20342171msgstr "Turc"
    20352172
    2036 #: wedispatch-audio-text-to-speech.php:288
     2173#: wedispatch-audio-text-to-speech.php:289
    20372174msgid "Thai"
    20382175msgstr "Thaï"
    20392176
    2040 #: wedispatch-audio-text-to-speech.php:289
     2177#: wedispatch-audio-text-to-speech.php:290
    20412178msgid "Filipino"
    20422179msgstr "Filipino"
    20432180
    2044 #: wedispatch-audio-text-to-speech.php:290
     2181#: wedispatch-audio-text-to-speech.php:291
    20452182msgid "Czech"
    20462183msgstr "Tchèque"
    20472184
    2048 #: wedispatch-audio-text-to-speech.php:291
     2185#: wedispatch-audio-text-to-speech.php:292
    20492186msgid "Finnish"
    20502187msgstr "Finnois"
    20512188
    2052 #: wedispatch-audio-text-to-speech.php:342
     2189#: wedispatch-audio-text-to-speech.php:343
    20532190msgid "Female"
    20542191msgstr "Femme"
    20552192
    2056 #: wedispatch-audio-text-to-speech.php:343
     2193#: wedispatch-audio-text-to-speech.php:344
    20572194msgid "Male"
    20582195msgstr "Homme"
    20592196
    20602197#. translators: 1: voice name, 2: Female or Male, 3: speaking style.
    2061 #: wedispatch-audio-text-to-speech.php:347
     2198#: wedispatch-audio-text-to-speech.php:348
    20622199#, php-format
    20632200msgid "%1$s (%2$s, %3$s)"
    … …  
    20652202
    20662203#. translators: 1: voice name, 2: Female or Male.
    2067 #: wedispatch-audio-text-to-speech.php:350
     2204#: wedispatch-audio-text-to-speech.php:351
    20682205#, php-format
    20692206msgid "%1$s (%2$s)"
    20702207msgstr ""
    20712208
    2072 #: wedispatch-audio-text-to-speech.php:412
     2209#: wedispatch-audio-text-to-speech.php:413
    20732210msgid "Checking…"
    20742211msgstr "Vérification…"
    20752212
    2076 #: wedispatch-audio-text-to-speech.php:413
     2213#: wedispatch-audio-text-to-speech.php:414
    20772214msgid "The key is accepted by the service."
    20782215msgstr "La clé est acceptée par le service."
    20792216
    2080 #: wedispatch-audio-text-to-speech.php:414
     2217#: wedispatch-audio-text-to-speech.php:415
    20812218msgid "This site can attest to its visitors’ status. Nothing else to do."
    20822219msgstr "Ce site sait attester du statut de ses visiteurs. Rien d'autre à faire."
    20832220
    2084 #: wedispatch-audio-text-to-speech.php:415
    2085 #: wedispatch-audio-text-to-speech.php:1945
     2221#: wedispatch-audio-text-to-speech.php:416
     2222#: wedispatch-audio-text-to-speech.php:2032
    20862223msgid "failed"
    20872224msgstr "échec"
    20882225
    2089 #: wedispatch-audio-text-to-speech.php:416
     2226#: wedispatch-audio-text-to-speech.php:417
    20902227msgid "Network error"
    20912228msgstr "Erreur réseau"
    20922229
    2093 #: wedispatch-audio-text-to-speech.php:433
     2230#: wedispatch-audio-text-to-speech.php:434
    20942231msgid "Looking at the public page…"
    20952232msgstr "Lecture de la page publique…"
    20962233
    2097 #: wedispatch-audio-text-to-speech.php:434
     2234#: wedispatch-audio-text-to-speech.php:435
    20982235msgid "Network error: the check could not run."
    20992236msgstr "Erreur réseau : la vérification n'a pas pu s'exécuter."
    21002237
    2101 #: wedispatch-audio-text-to-speech.php:446
     2238#: wedispatch-audio-text-to-speech.php:447
    21022239msgid "Enter your API key to list the voices"
    21032240msgstr "Renseignez la clé API pour lister les voix"
    21042241
    2105 #: wedispatch-audio-text-to-speech.php:470
     2242#: wedispatch-audio-text-to-speech.php:471
    21062243msgid "This voice is not available on your plan. Please pick another one"
    21072244msgstr "Voix indisponible avec votre forfait, choisissez-en une autre"
    21082245
    21092246#. translators: %s: the stored voice identifier, shown because the voice list could not be read.
    2110 #: wedispatch-audio-text-to-speech.php:472
     2247#: wedispatch-audio-text-to-speech.php:473
    21112248#, php-format
    21122249msgid "%s (voice list unavailable right now: this setting is kept)"
    21132250msgstr "%s (liste des voix indisponible pour l'instant : ce réglage est conservé)"
    21142251
    2115 #: wedispatch-audio-text-to-speech.php:511
     2252#: wedispatch-audio-text-to-speech.php:512
    21162253msgid "Your signature voices"
    21172254msgstr "Vos voix signature"
    21182255
    2119 #: wedispatch-audio-text-to-speech.php:512
     2256#: wedispatch-audio-text-to-speech.php:513
    21202257msgid "All languages"
    21212258msgstr "Toutes les langues"
    21222259
    2123 #: wedispatch-audio-text-to-speech.php:537
    2124 #: wedispatch-audio-text-to-speech.php:540
     2260#: wedispatch-audio-text-to-speech.php:538
     2261#: wedispatch-audio-text-to-speech.php:541
    21252262msgid "Listen"
    21262263msgstr "Écouter"
    21272264
    2128 #: wedispatch-audio-text-to-speech.php:538
     2265#: wedispatch-audio-text-to-speech.php:539
    21292266msgid "Stop"
    21302267msgstr "Arrêter"
    21312268
    2132 #: wedispatch-audio-text-to-speech.php:539
     2269#: wedispatch-audio-text-to-speech.php:540
    21332270msgid "No sample for this voice yet."
    21342271msgstr "Pas encore d'extrait pour cette voix."
    21352272
    21362273#. 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:661
     2274#: wedispatch-audio-text-to-speech.php:662
    21382275msgctxt "label separator"
    21392276msgid ": "
    … …  
    21412278
    21422279#. translators: %s: category name.
    2143 #: wedispatch-audio-text-to-speech.php:684
     2280#: wedispatch-audio-text-to-speech.php:685
    21442281#, php-format
    21452282msgid "category “%s”"
    21462283msgstr "rubrique « %s »"
    21472284
    2148 #: wedispatch-audio-text-to-speech.php:686
     2285#: wedispatch-audio-text-to-speech.php:687
    21492286msgid "category"
    21502287msgstr "rubrique"
    21512288
    2152 #: wedispatch-audio-text-to-speech.php:689
     2289#: wedispatch-audio-text-to-speech.php:690
    21532290msgid "author"
    21542291msgstr "auteur"
    21552292
    2156 #: wedispatch-audio-text-to-speech.php:888
    2157 #: wedispatch-audio-text-to-speech.php:1018
     2293#: wedispatch-audio-text-to-speech.php:939
     2294#: wedispatch-audio-text-to-speech.php:1097
    21582295msgid "Content not found"
    21592296msgstr "Contenu introuvable"
    21602297
    2161 #: wedispatch-audio-text-to-speech.php:970
     2298#: wedispatch-audio-text-to-speech.php:1027
    21622299msgid "Automatic audio is paused for this site in your account area."
    21632300msgstr "La sonorisation automatique est suspendue pour ce site dans votre espace client."
    21642301
    2165 #: wedispatch-audio-text-to-speech.php:1022
     2302#: wedispatch-audio-text-to-speech.php:1058
     2303msgid "Not enough credits left for this item."
     2304msgstr "Il ne reste pas assez de crédits pour ce contenu."
     2305
     2306#: wedispatch-audio-text-to-speech.php:1101
    21662307msgid "Text too short (100 characters minimum). Save the draft first"
    21672308msgstr "Texte trop court (100 caractères minimum). Enregistrez le brouillon d'abord"
    21682309
    2169 #: wedispatch-audio-text-to-speech.php:1377
     2310#: wedispatch-audio-text-to-speech.php:1464
    21702311msgid "the site default voice"
    21712312msgstr "la voix par défaut du site"
    21722313
    21732314#. translators: %s: category name.
    2174 #: wedispatch-audio-text-to-speech.php:1391
     2315#: wedispatch-audio-text-to-speech.php:1478
    21752316#, php-format
    21762317msgid "the “%s” category"
    … …  
    21782319
    21792320#. translators: %s: comma-separated list, e.g. "the site default voice, the “Sport” category".
    2180 #: wedispatch-audio-text-to-speech.php:1402
     2321#: wedispatch-audio-text-to-speech.php:1489
    21812322#, php-format
    21822323msgid "%s uses a voice that is no longer in your plan catalogue."
    … …  
    21852326msgstr[1] "%s utilisent des voix qui ne figurent plus au catalogue de votre forfait."
    21862327
    2187 #: wedispatch-audio-text-to-speech.php:1411
     2328#: wedispatch-audio-text-to-speech.php:1498
    21882329msgid "Your content is still read aloud, with the account default voice, until a new choice is made."
    21892330msgstr "Vos contenus restent sonorisés, avec la voix par défaut du compte, jusqu'à ce qu'un nouveau choix soit fait."
    21902331
    2191 #: wedispatch-audio-text-to-speech.php:1412
     2332#: wedispatch-audio-text-to-speech.php:1499
    21922333msgid "Pick a voice"
    21932334msgstr "Choisir une voix"
    21942335
    2195 #: wedispatch-audio-text-to-speech.php:1440
     2336#: wedispatch-audio-text-to-speech.php:1527
    21962337msgid "Connect this site"
    21972338msgstr "Connecter ce site"
    21982339
    2199 #: wedispatch-audio-text-to-speech.php:1441
     2340#: wedispatch-audio-text-to-speech.php:1528
    22002341msgid "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."
    22012342msgstr "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."
    22022343
    2203 #: wedispatch-audio-text-to-speech.php:1449
     2344#: wedispatch-audio-text-to-speech.php:1536
    22042345msgid "Connecting again replaces the key stored on this site."
    22052346msgstr "Se reconnecter remplace la clé enregistrée sur ce site."
    22062347
    22072348#. translators: %s: link to the WeDispatch account area.
    2208 #: wedispatch-audio-text-to-speech.php:1455
    2209 #, php-format
    2210 msgid "Turn your content into audio. Paste the API key from your account area (%s)."
    2211 msgstr "Transformez vos contenus en audio. Collez la clé API de votre espace client (%s)."
    2212 
    2213 #: wedispatch-audio-text-to-speech.php:1463
     2349#: wedispatch-audio-text-to-speech.php:1542
     2350#, php-format
     2351msgid "Already have an API key? You can also paste it here. It is in your account area (%s)."
     2352msgstr "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
    22142355msgid "API key"
    22152356msgstr "Clé API"
    22162357
    2217 #: wedispatch-audio-text-to-speech.php:1466
     2358#: wedispatch-audio-text-to-speech.php:1553
    22182359msgid "Never share this key."
    22192360msgstr "Ne partagez jamais cette clé."
    22202361
    2221 #: wedispatch-audio-text-to-speech.php:1479
     2362#: wedispatch-audio-text-to-speech.php:1566
    22222363msgid "Default mode"
    22232364msgstr "Mode par défaut"
    22242365
    2225 #: wedispatch-audio-text-to-speech.php:1484
     2366#: wedispatch-audio-text-to-speech.php:1571
    22262367msgid "the audio is generated on its own when you publish. The voice is picked automatically, in this order: category, then author, then site voice."
    22272368msgstr "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."
    22282369
    2229 #: wedispatch-audio-text-to-speech.php:1488
     2370#: wedispatch-audio-text-to-speech.php:1575
    22302371msgid "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."
    22312372msgstr "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."
    22322373
    2233 #: wedispatch-audio-text-to-speech.php:1489
     2374#: wedispatch-audio-text-to-speech.php:1576
    22342375msgid "Can be set per item in the “WeDispatch” editor panel, which also shows the voice Auto mode will use."
    22352376msgstr "Réglable contenu par contenu dans l'encart « WeDispatch » de l'éditeur, qui affiche aussi la voix retenue en Auto."
    22362377
    2237 #: wedispatch-audio-text-to-speech.php:1493
     2378#: wedispatch-audio-text-to-speech.php:1580
    22382379msgid "Content to read aloud"
    22392380msgstr "Contenus à sonoriser"
    22402381
    2241 #: wedispatch-audio-text-to-speech.php:1511
     2382#: wedispatch-audio-text-to-speech.php:1598
    22422383msgid "Posts, pages, products, and any custom post type your theme or your plugins register. Unticking everything falls back to posts."
    22432384msgstr "Articles, pages, fiches produit, et tout type de contenu déclaré par votre thème ou vos extensions. Tout décocher revient aux articles."
    22442385
    2245 #: wedispatch-audio-text-to-speech.php:1516
     2386#: wedispatch-audio-text-to-speech.php:1603
    22462387msgid "Site default voice"
    22472388msgstr "Voix par défaut du site"
    22482389
    2249 #: wedispatch-audio-text-to-speech.php:1518
     2390#: wedispatch-audio-text-to-speech.php:1605
    22502391msgid "Used in Auto mode when the author has not set a voice of their own (in their profile)."
    22512392msgstr "Utilisée en mode Auto si l'auteur n'a pas défini sa propre voix (dans son profil)."
    22522393
    2253 #: wedispatch-audio-text-to-speech.php:1521
     2394#: wedispatch-audio-text-to-speech.php:1608
    22542395msgid "Content edited after publication"
    22552396msgstr "Contenus corrigés après publication"
    22562397
    2257 #: wedispatch-audio-text-to-speech.php:1527
     2398#: wedispatch-audio-text-to-speech.php:1614
    22582399msgid "Rebuild the audio automatically when the text of an item that already has audio changes"
    22592400msgstr "Refaire l'audio automatiquement quand le texte d'un contenu déjà sonorisé change"
    22602401
    2261 #: wedispatch-audio-text-to-speech.php:1530
     2402#: wedispatch-audio-text-to-speech.php:1617
    22622403msgid "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."
    22632404msgstr "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."
    22642405
    2265 #: wedispatch-audio-text-to-speech.php:1531
     2406#: wedispatch-audio-text-to-speech.php:1618
    22662407msgid "Every automatic rebuild uses one generation from your plan."
    22672408msgstr "Chaque reprise automatique consomme une génération de votre forfait."
    22682409
    2269 #: wedispatch-audio-text-to-speech.php:1539
     2410#: wedispatch-audio-text-to-speech.php:1626
    22702411msgid "At the top of the article"
    22712412msgstr "En tête d'article"
    22722413
    2273 #: wedispatch-audio-text-to-speech.php:1540
     2414#: wedispatch-audio-text-to-speech.php:1627
    22742415msgid "At the bottom of the article"
    22752416msgstr "En fin d'article"
    22762417
    2277 #: wedispatch-audio-text-to-speech.php:1541
     2418#: wedispatch-audio-text-to-speech.php:1628
    22782419msgid "Manual: block, widget or [wedispatch] shortcode"
    22792420msgstr "Manuel : bloc, widget ou code court [wedispatch]"
    22802421
    2281 #: wedispatch-audio-text-to-speech.php:1546
     2422#: wedispatch-audio-text-to-speech.php:1633
    22822423msgid "Under the article"
    22832424msgstr "Sous l'article"
    22842425
    2285 #: wedispatch-audio-text-to-speech.php:1554
     2426#: wedispatch-audio-text-to-speech.php:1641
    22862427msgid "Show the transcript, folded, under the article"
    22872428msgstr "Afficher le transcript, replié, sous l'article"
    22882429
    2289 #: wedispatch-audio-text-to-speech.php:1557
     2430#: wedispatch-audio-text-to-speech.php:1644
    22902431msgid "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."
    22912432msgstr "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."
    22922433
    2293 #: wedispatch-audio-text-to-speech.php:1563
     2434#: wedispatch-audio-text-to-speech.php:1650
    22942435msgid "Show “Listen next” under the article"
    22952436msgstr "Afficher « À écouter ensuite » sous l'article"
    22962437
    2297 #: wedispatch-audio-text-to-speech.php:1566
     2438#: wedispatch-audio-text-to-speech.php:1653
    22982439msgid "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."
    22992440msgstr "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."
    23002441
    2301 #: wedispatch-audio-text-to-speech.php:1574
     2442#: wedispatch-audio-text-to-speech.php:1661
    23022443msgid "the player is open to all your visitors."
    23032444msgstr "le lecteur est ouvert à tous vos visiteurs."
    23042445
    2305 #: wedispatch-audio-text-to-speech.php:1576
     2446#: wedispatch-audio-text-to-speech.php:1663
    23062447msgid "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”)."
    23072448msgstr "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 »)."
    23082449
    2309 #: wedispatch-audio-text-to-speech.php:1577
     2450#: wedispatch-audio-text-to-speech.php:1664
    23102451msgid "Nothing to code"
    23112452msgstr "Rien à coder"
    23122453
    2313 #: wedispatch-audio-text-to-speech.php:1577
     2454#: wedispatch-audio-text-to-speech.php:1664
    23142455msgid "this plugin takes care of it."
    23152456msgstr "ce module s'en occupe."
    23162457
    2317 #: wedispatch-audio-text-to-speech.php:1586
     2458#: wedispatch-audio-text-to-speech.php:1673
    23182459msgid "This plugin passes each visitor’s status on automatically."
    23192460msgstr "Ce module transmet automatiquement le statut de chaque visiteur."
    23202461
    2321 #: wedispatch-audio-text-to-speech.php:1588
     2462#: wedispatch-audio-text-to-speech.php:1675
    23222463msgid "API key missing or invalid: without it, every visitor gets the preview only."
    23232464msgstr "Clé API absente ou invalide : sans elle, tous vos visiteurs n'auront que l'extrait."
    23242465
    2325 #: wedispatch-audio-text-to-speech.php:1593
     2466#: wedispatch-audio-text-to-speech.php:1680
    23262467msgid "Who counts as a subscriber on this site?"
    23272468msgstr "Qui, sur ce site, est un abonné ?"
    23282469
    2329 #: wedispatch-audio-text-to-speech.php:1595
     2470#: wedispatch-audio-text-to-speech.php:1682
    23302471msgid "Tick the WordPress role or roles of your paying subscribers. A signed-in user with none of those roles counts as merely registered."
    23312472msgstr "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."
    23322473
    2333 #: wedispatch-audio-text-to-speech.php:1612
     2474#: wedispatch-audio-text-to-speech.php:1699
    23342475msgid "No role ticked: nobody is recognised as a subscriber, so nobody hears the full article. Tick at least one role."
    23352476msgstr "Aucun rôle coché : personne n'est reconnu comme abonné, donc personne n'entend l'article complet. Cochez au moins un rôle."
    23362477
    23372478#. translators: 1: filter name, in a code tag. 2: link to the documentation.
    2338 #: wedispatch-audio-text-to-speech.php:1619
     2479#: wedispatch-audio-text-to-speech.php:1706
    23392480#, php-format
    23402481msgid "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."
    23412482msgstr "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."
    23422483
    2343 #: wedispatch-audio-text-to-speech.php:1621
     2484#: wedispatch-audio-text-to-speech.php:1708
    23442485msgid "our documentation"
    23452486msgstr "notre documentation"
    23462487
    2347 #: wedispatch-audio-text-to-speech.php:1628
     2488#: wedispatch-audio-text-to-speech.php:1715
    23482489msgid "Check that everything works"
    23492490msgstr "Vérifier que tout fonctionne"
    23502491
    2351 #: wedispatch-audio-text-to-speech.php:1632
     2492#: wedispatch-audio-text-to-speech.php:1719
    23522493msgid "Your readers stay anonymous to WeDispatch: this site attests to a status (“subscriber”), never to an identity. No personal data leaves your server."
    23532494msgstr "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."
    23542495
    2355 #: wedispatch-audio-text-to-speech.php:1659
     2496#: wedispatch-audio-text-to-speech.php:1746
    23562497msgid "No key has been entered"
    23572498msgstr "Aucune clé renseignée"
    23582499
    2359 #: wedispatch-audio-text-to-speech.php:1683
     2500#: wedispatch-audio-text-to-speech.php:1770
    23602501msgid "No API key has been entered."
    23612502msgstr "Aucune clé API renseignée."
    23622503
    2363 #: wedispatch-audio-text-to-speech.php:1689
     2504#: wedispatch-audio-text-to-speech.php:1776
    23642505msgid "Secret not found. Is the API key valid?"
    23652506msgstr "Secret introuvable. La clé API est-elle valide ?"
    23662507
    2367 #: wedispatch-audio-text-to-speech.php:1702
     2508#: wedispatch-audio-text-to-speech.php:1789
    23682509msgid "Unreadable response from the WeDispatch server."
    23692510msgstr "Réponse illisible du serveur WeDispatch."
    23702511
    2371 #: wedispatch-audio-text-to-speech.php:1708
     2512#: wedispatch-audio-text-to-speech.php:1795
    23722513msgid "Token refused"
    23732514msgstr "Jeton refusé"
    23742515
    2375 #: wedispatch-audio-text-to-speech.php:1738
     2516#: wedispatch-audio-text-to-speech.php:1825
    23762517msgid "Audio voice"
    23772518msgstr "Voix audio"
    23782519
    2379 #: wedispatch-audio-text-to-speech.php:1740
     2520#: wedispatch-audio-text-to-speech.php:1827
    23802521msgid "In Auto mode, your content will be read aloud with this voice."
    23812522msgstr "En mode Auto, vos contenus seront lus avec cette voix."
    23822523
    2383 #: wedispatch-audio-text-to-speech.php:1815
     2524#: wedispatch-audio-text-to-speech.php:1902
    23842525msgid "A voice already set here keeps working: nothing has been erased."
    23852526msgstr "Une voix déjà réglée ici continue de s'appliquer : rien n'a été effacé."
    23862527
    2387 #: wedispatch-audio-text-to-speech.php:1826
    2388 #: wedispatch-audio-text-to-speech.php:1843
     2528#: wedispatch-audio-text-to-speech.php:1913
     2529#: wedispatch-audio-text-to-speech.php:1930
    23892530msgid "WeDispatch voice"
    23902531msgstr "Voix WeDispatch"
    23912532
    2392 #: wedispatch-audio-text-to-speech.php:1829
     2533#: wedispatch-audio-text-to-speech.php:1916
    23932534msgid "In Auto mode, posts in this category are read aloud with this voice (it takes priority over the author’s voice)."
    23942535msgstr "En mode Auto, les articles de cette rubrique seront lus avec cette voix (prioritaire sur la voix de l'auteur)."
    23952536
    2396 #: wedispatch-audio-text-to-speech.php:1847
     2537#: wedispatch-audio-text-to-speech.php:1934
    23972538msgid "In Auto mode, takes priority over the author’s voice for posts in this category."
    23982539msgstr "En mode Auto, prioritaire sur la voix de l'auteur pour les articles de cette rubrique."
    23992540
    2400 #: wedispatch-audio-text-to-speech.php:1880
     2541#: wedispatch-audio-text-to-speech.php:1967
    24012542msgid "WeDispatch Audio"
    24022543msgstr "WeDispatch Audio"
    24032544
    2404 #: wedispatch-audio-text-to-speech.php:1902
     2545#: wedispatch-audio-text-to-speech.php:1989
    24052546msgid "Mode"
    24062547msgstr "Mode"
    24072548
    24082549#. translators: %s: the site-wide default, either Auto or Manual.
    2409 #: wedispatch-audio-text-to-speech.php:1906
     2550#: wedispatch-audio-text-to-speech.php:1993
    24102551#, php-format
    24112552msgid "Site default (%s)"
    24122553msgstr "Défaut du site (%s)"
    24132554
    2414 #: wedispatch-audio-text-to-speech.php:1907
     2555#: wedispatch-audio-text-to-speech.php:1994
    24152556msgid "Auto: generated on publication"
    24162557msgstr "Auto : généré à la publication"
    24172558
    2418 #: wedispatch-audio-text-to-speech.php:1908
     2559#: wedispatch-audio-text-to-speech.php:1995
    24192560msgid "Manual: I generate it here"
    24202561msgstr "Manuel : je génère ici"
    24212562
    2422 #: wedispatch-audio-text-to-speech.php:1912
     2563#: wedispatch-audio-text-to-speech.php:1999
    24232564msgid "In Auto mode"
    24242565msgstr "En Auto"
    24252566
    2426 #: wedispatch-audio-text-to-speech.php:1912
     2567#: wedispatch-audio-text-to-speech.php:1999
    24272568msgid "this item will be read by:"
    24282569msgstr "ce contenu sera lu par :"
    24292570
    24302571#. translators: %s: where the voice comes from: a category, the author, or the site.
    2431 #: wedispatch-audio-text-to-speech.php:1916
     2572#: wedispatch-audio-text-to-speech.php:2003
    24322573#, php-format
    24332574msgid "Voice picked via: %s. Priority is category, then author, then site."
    24342575msgstr "Voix choisie via : %s. Priorité rubrique, puis auteur, puis site."
    24352576
    2436 #: wedispatch-audio-text-to-speech.php:1919
     2577#: wedispatch-audio-text-to-speech.php:2006
    24372578msgid "Voice (Manual mode)"
    24382579msgstr "Voix (mode Manuel)"
    24392580
    2440 #: wedispatch-audio-text-to-speech.php:1921
     2581#: wedispatch-audio-text-to-speech.php:2008
    24412582msgid "Used in Manual mode only. In Auto mode the routing above decides."
    24422583msgstr "Utilisée uniquement en mode Manuel. En Auto, c'est l'aiguillage ci-dessus qui décide."
    24432584
    2444 #: wedispatch-audio-text-to-speech.php:1923
     2585#: wedispatch-audio-text-to-speech.php:2010
    24452586msgid "Audio status:"
    24462587msgstr "État audio :"
    24472588
    2448 #: wedispatch-audio-text-to-speech.php:1925
    2449 #: wedispatch-audio-text-to-speech.php:1942
     2589#: wedispatch-audio-text-to-speech.php:2012
     2590#: wedispatch-audio-text-to-speech.php:2029
    24502591msgid "Generated"
    24512592msgstr "Généré"
    24522593
    2453 #: wedispatch-audio-text-to-speech.php:1926
     2594#: wedispatch-audio-text-to-speech.php:2013
    24542595msgid "Not generated"
    24552596msgstr "Non généré"
    24562597
    2457 #: wedispatch-audio-text-to-speech.php:1927
     2598#: wedispatch-audio-text-to-speech.php:2014
    24582599msgid "Generate audio"
    24592600msgstr "Générer l'audio"
    24602601
    2461 #: wedispatch-audio-text-to-speech.php:1929
     2602#: wedispatch-audio-text-to-speech.php:2016
    24622603msgid "Save the draft before generating."
    24632604msgstr "Enregistrez le brouillon avant de générer."
    24642605
    2465 #: wedispatch-audio-text-to-speech.php:1941
     2606#: wedispatch-audio-text-to-speech.php:2028
    24662607msgid "Generating…"
    24672608msgstr "Génération…"
    24682609
    2469 #: wedispatch-audio-text-to-speech.php:1943
     2610#: wedispatch-audio-text-to-speech.php:2030
    24702611msgid "Scheduled"
    24712612msgstr "Programmé"
    24722613
    2473 #: wedispatch-audio-text-to-speech.php:1944
     2614#: wedispatch-audio-text-to-speech.php:2031
    24742615msgid "Preparing…"
    24752616msgstr "En préparation…"
    24762617
    2477 #: wedispatch-audio-text-to-speech.php:1946
     2618#: wedispatch-audio-text-to-speech.php:2033
    24782619msgid "network error"
    24792620msgstr "erreur réseau"
    24802621
    2481 #: wedispatch-audio-text-to-speech.php:2088
     2622#: wedispatch-audio-text-to-speech.php:2175
    24822623msgid "Audio version of this article"
    24832624msgstr "Version audio de cet article"
    24842625
    2485 #: wedispatch-audio-text-to-speech.php:2178
     2626#: wedispatch-audio-text-to-speech.php:2265
    24862627#: blocks/player/index.js:37
    24872628msgid "WeDispatch audio player"
    24882629msgstr "Lecteur audio WeDispatch"
    24892630
    2490 #: wedispatch-audio-text-to-speech.php:2180
     2631#: wedispatch-audio-text-to-speech.php:2267
    24912632msgid "The audio version of the article being read. Shows nothing on pages that have no audio."
    24922633msgstr "La version audio de l'article consulté. N'affiche rien sur les pages qui n'ont pas d'audio."
    24932634
    2494 #: wedispatch-audio-text-to-speech.php:2206
     2635#: wedispatch-audio-text-to-speech.php:2293
    24952636msgid "Listen to this article"
    24962637msgstr "Écouter cet article"
    24972638
    2498 #: wedispatch-audio-text-to-speech.php:2209
     2639#: wedispatch-audio-text-to-speech.php:2296
    24992640msgid "Title:"
    25002641msgstr "Titre :"
    … …  
    25032644msgid "The audio version of this article appears here once it has been generated."
    25042645msgstr "La version audio de cet article s'affiche ici une fois qu'elle a été générée."
    2505 
    2506 #: blocks/player/block.json
    2507 msgctxt "block title"
    2508 msgid "WeDispatch audio player"
    2509 msgstr "Lecteur audio WeDispatch"
    2510 
    2511 #: blocks/player/block.json
    2512 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.json
    2517 msgctxt "block keyword"
    2518 msgid "audio"
    2519 msgstr ""
    2520 
    2521 #: blocks/player/block.json
    2522 msgctxt "block keyword"
    2523 msgid "text to speech"
    2524 msgstr "synthèse vocale"
    2525 
    2526 #: blocks/player/block.json
    2527 msgctxt "block keyword"
    2528 msgid "listen"
    2529 msgstr "écouter"
    2530 
    2531 #: blocks/player/block.json
    2532 msgctxt "block keyword"
    2533 msgid "podcast"
    2534 msgstr ""
    2535 
    2536 #: blocks/player/block.json
    2537 msgctxt "block keyword"
    2538 msgid "accessibility"
    2539 msgstr "accessibilité"
  • wedispatch-audio-text-to-speech/trunk/languages/wedispatch-audio-text-to-speech.pot

    r3665684 r3709329  
    33msgid ""
    44msgstr ""
    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"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wedispatch-audio-text-to-speech\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-08-25T13:57:57+00:00\n"
     12"POT-Creation-Date: 2026-09-23T09:39:17+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
    … …  
    4242#: admin/aide.php:17
    4343#: admin/menu.php:66
    44 #: wedispatch-audio-text-to-speech.php:1646
     44#: wedispatch-audio-text-to-speech.php:1733
    4545msgid "Help & checks"
    4646msgstr ""
    … …  
    7575
    7676#: admin/aide.php:28
    77 #: wedispatch-audio-text-to-speech.php:1536
     77#: wedispatch-audio-text-to-speech.php:1623
    7878msgid "Player position"
    7979msgstr ""
    … …  
    8181#: admin/aide.php:29
    8282#: admin/lecteur.php:883
    83 #: wedispatch-audio-text-to-speech.php:1571
     83#: wedispatch-audio-text-to-speech.php:1658
    8484msgid "Who can listen"
    8585msgstr ""
    … …  
    156156#: inc/diagnostic.php:164
    157157#: inc/diagnostic.php:168
    158 #: wedispatch-audio-text-to-speech.php:1680
    159 #: wedispatch-audio-text-to-speech.php:1971
     158#: wedispatch-audio-text-to-speech.php:1767
     159#: wedispatch-audio-text-to-speech.php:2058
    160160msgid "Not allowed"
    161161msgstr ""
    … …  
    179179
    180180#: admin/compte.php:92
    181 #: admin/vue-ensemble.php:511
     181#: admin/vue-ensemble.php:743
    182182msgid "Refresh"
    183183msgstr ""
    … …  
    257257msgstr ""
    258258
    259 #: admin/connexion.php:240
     259#: admin/connexion.php:244
    260260msgid "This site no longer uses your WeDispatch account. Your settings and your audio are untouched: connecting again puts everything back."
    261261msgstr ""
    262262
    263 #: admin/connexion.php:252
     263#: admin/connexion.php:256
    264264msgid "Disconnect this site?"
    265265msgstr ""
    266266
    267 #: admin/connexion.php:254
     267#: admin/connexion.php:258
    268268msgid "What is removed from this site"
    269269msgstr ""
    270270
    271 #: admin/connexion.php:256
     271#: admin/connexion.php:260
    272272msgid "The API key stored here, and everything read from your account."
    273273msgstr ""
    274274
    275 #: admin/connexion.php:257
     275#: admin/connexion.php:261
    276276msgid "The secret that lets subscriber-only audio be listened to, and its hourly refresh."
    277277msgstr ""
    278278
    279 #: admin/connexion.php:260
     279#: admin/connexion.php:264
    280280msgid "What is kept"
    281281msgstr ""
    282282
    283 #: admin/connexion.php:262
     283#: admin/connexion.php:266
    284284msgid "Your settings: reading mode, content types, voices, player position."
    285285msgstr ""
    286286
    287 #: admin/connexion.php:263
     287#: admin/connexion.php:267
    288288msgid "The link between each item and its audio. Connecting the same account again puts everything back, and regenerates nothing."
    289289msgstr ""
    290290
    291 #: admin/connexion.php:266
     291#: admin/connexion.php:270
    292292msgid "What this cannot do for you"
    293293msgstr ""
    294294
    295 #: admin/connexion.php:267
     295#: admin/connexion.php:271
    296296msgid "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."
    297297msgstr ""
    298298
    299 #: admin/connexion.php:271
    300 #: wedispatch-audio-text-to-speech.php:1448
     299#: admin/connexion.php:275
     300#: wedispatch-audio-text-to-speech.php:1535
    301301msgid "Disconnect this site"
    302302msgstr ""
    303303
    304 #: admin/connexion.php:273
     304#: admin/connexion.php:277
    305305msgid "Cancel"
    306306msgstr ""
    307307
    308 #: admin/connexion.php:275
     308#: admin/connexion.php:279
    309309msgid "Revoke the key on wedispatch.fr"
    310310msgstr ""
    311311
    312 #: admin/connexion.php:301
     312#: admin/connexion.php:305
     313#: admin/premiers-pas.php:97
    313314msgid "Connect this site to WeDispatch"
    314315msgstr ""
    315316
    316 #: admin/contenus.php:55
     317#: admin/contenus.php:57
     318msgid "Not voiced: credits"
     319msgstr ""
     320
     321#: admin/contenus.php:64
    317322msgid "Automatic audio paused"
    318323msgstr ""
    319324
    320 #: admin/contenus.php:56
    321 #: admin/contenus.php:221
     325#: admin/contenus.php:65
     326#: admin/contenus.php:230
    322327msgid "No audio"
    323328msgstr ""
    324329
    325 #: admin/contenus.php:62
     330#: admin/contenus.php:71
    326331msgid "Text changed since"
    327332msgstr ""
    328333
    329 #: admin/contenus.php:64
     334#: admin/contenus.php:73
    330335msgid "Up to date"
    331336msgstr ""
    332337
    333 #: admin/contenus.php:96
     338#: admin/contenus.php:105
    334339#: admin/lecteur.php:312
    335340#: admin/voix.php:162
    … …  
    337342msgstr ""
    338343
    339 #: admin/contenus.php:99
     344#: admin/contenus.php:108
    340345#: inc/front.php:175
    341346msgid "You are not allowed to edit this item."
    342347msgstr ""
    343348
    344 #: admin/contenus.php:103
     349#: admin/contenus.php:112
    345350msgid "Queued. The audio will be prepared in the background."
    346351msgstr ""
    347352
    348 #: admin/contenus.php:110
     353#: admin/contenus.php:119
    349354msgid "The player no longer appears on this item. The audio itself still exists in your WeDispatch account."
    350355msgstr ""
    351356
    352 #: admin/contenus.php:120
     357#: admin/contenus.php:129
    353358msgid "Pick an action and at least one item."
    354359msgstr ""
    355360
    356361#. translators: %d: number of items.
    357 #: admin/contenus.php:147
     362#: admin/contenus.php:156
    358363#, php-format
    359364msgid "%d item detached."
    … …  
    364369#. translators: %d: number of items.
    365370#. translators: %d: number of items queued.
    366 #: admin/contenus.php:149
    367 #: admin/vue-ensemble.php:263
     371#: admin/contenus.php:158
     372#: admin/vue-ensemble.php:377
    368373#, php-format
    369374msgid "%d item queued."
    … …  
    373378
    374379#. translators: %d: number of items the current user may not edit.
    375 #: admin/contenus.php:152
     380#: admin/contenus.php:161
    376381#, php-format
    377382msgid "%d item skipped: you may not edit it."
    … …  
    380385msgstr[1] ""
    381386
    382 #: admin/contenus.php:200
     387#: admin/contenus.php:209
    383388#: admin/menu.php:60
    384389#: admin/statistiques.php:367
    … …  
    386391msgstr ""
    387392
    388 #: admin/contenus.php:210
     393#: admin/contenus.php:219
    389394msgid "Content type"
    390395msgstr ""
    391396
    392 #: admin/contenus.php:212
     397#: admin/contenus.php:221
    393398msgid "All content types"
    394399msgstr ""
    395400
    396 #: admin/contenus.php:218
     401#: admin/contenus.php:227
    397402msgid "Audio state"
    398403msgstr ""
    399404
    400 #: admin/contenus.php:220
     405#: admin/contenus.php:229
    401406msgid "Any audio state"
    402407msgstr ""
    403408
    404 #: admin/contenus.php:222
     409#: admin/contenus.php:231
    405410msgid "With audio"
    406411msgstr ""
    407412
    408 #: admin/contenus.php:224
     413#: admin/contenus.php:233
    409414msgid "Search"
    410415msgstr ""
    411416
    412 #: admin/contenus.php:226
     417#: admin/contenus.php:235
    413418msgid "Search titles"
    414419msgstr ""
    415420
    416 #: admin/contenus.php:227
     421#: admin/contenus.php:236
    417422msgid "Filter"
    418423msgstr ""
    419424
    420 #: admin/contenus.php:234
     425#: admin/contenus.php:243
    421426msgid "Bulk action"
    422427msgstr ""
    423428
    424 #: admin/contenus.php:236
     429#: admin/contenus.php:245
    425430msgid "Bulk actions"
    426431msgstr ""
    427432
    428 #: admin/contenus.php:237
     433#: admin/contenus.php:246
    429434msgid "Generate or rebuild the audio"
    430435msgstr ""
    431436
    432 #: admin/contenus.php:238
     437#: admin/contenus.php:247
    433438msgid "Remove the player from these items"
    434439msgstr ""
    435440
    436 #: admin/contenus.php:240
     441#: admin/contenus.php:249
    437442msgid "Apply"
    438443msgstr ""
    … …  
    441446#. translators: %s: number of items.
    442447#. translators: %s: number of items in this category.
    443 #: admin/contenus.php:245
     448#: admin/contenus.php:254
    444449#: admin/statistiques.php:136
    445450#: admin/voix.php:451
    … …  
    450455msgstr[1] ""
    451456
    452 #: admin/contenus.php:254
    453 #: wedispatch-audio-text-to-speech.php:691
     457#: admin/contenus.php:263
     458#: wedispatch-audio-text-to-speech.php:692
    454459msgid "site voice"
    455460msgstr ""
    456461
    457 #: admin/contenus.php:255
    458 #: wedispatch-audio-text-to-speech.php:692
    459 #: wedispatch-audio-text-to-speech.php:1900
     462#: admin/contenus.php:264
     463#: wedispatch-audio-text-to-speech.php:693
     464#: wedispatch-audio-text-to-speech.php:1987
    460465msgid "account default voice"
    461466msgstr ""
    462467
    463 #: admin/contenus.php:279
     468#: admin/contenus.php:288
    464469msgid "Select all"
    465470msgstr ""
    466471
    467 #: admin/contenus.php:282
     472#: admin/contenus.php:291
    468473msgid "Title"
    469474msgstr ""
    470475
    471 #: admin/contenus.php:283
     476#: admin/contenus.php:292
    472477msgid "Audio"
    473478msgstr ""
    474479
    475 #: admin/contenus.php:284
     480#: admin/contenus.php:293
    476481#: admin/voix.php:441
    477482#: admin/voix.php:485
    … …  
    479484msgstr ""
    480485
    481 #: admin/contenus.php:286
     486#: admin/contenus.php:295
    482487#: admin/statistiques.php:145
    483488#: admin/statistiques.php:228
    … …  
    485490msgstr ""
    486491
    487 #: admin/contenus.php:288
     492#: admin/contenus.php:297
    488493msgid "Last edited"
    489494msgstr ""
    490495
    491496#. translators: %s: title of the item.
    492 #: admin/contenus.php:317
     497#: admin/contenus.php:326
    493498#, php-format
    494499msgid "Select %s"
    495500msgstr ""
    496501
    497 #: admin/contenus.php:331
     502#: admin/contenus.php:340
    498503msgid "Generate the audio"
    499504msgstr ""
    500505
    501 #: admin/contenus.php:332
     506#: admin/contenus.php:341
    502507msgid "Rebuild the audio"
    503508msgstr ""
    504509
    505 #: admin/contenus.php:336
     510#: admin/contenus.php:345
    506511msgid "Listen on the site"
    507512msgstr ""
    508513
    509 #: admin/contenus.php:346
     514#: admin/contenus.php:355
    510515msgid "Transcript"
    511516msgstr ""
    512517
    513 #: admin/contenus.php:348
     518#: admin/contenus.php:357
    514519msgid "SRT"
    515520msgstr ""
    516521
    517 #: admin/contenus.php:356
     522#: admin/contenus.php:365
    518523msgid "Check the display"
    519524msgstr ""
    520525
    521 #: admin/contenus.php:358
     526#: admin/contenus.php:367
    522527msgid "Remove the player"
    523528msgstr ""
    524529
    525 #: admin/contenus.php:367
    526 #: wedispatch-audio-text-to-speech.php:443
     530#: admin/contenus.php:376
     531#: wedispatch-audio-text-to-speech.php:444
    527532msgid "Account default voice"
    528533msgstr ""
    529534
    530 #: admin/contenus.php:386
     535#: admin/contenus.php:395
    531536msgid "no audio yet"
    532537msgstr ""
    533538
    534 #: admin/contenus.php:395
     539#: admin/contenus.php:404
    535540msgid "Nothing matches these filters."
    536541msgstr ""
    537542
    538 #: admin/contenus.php:406
     543#: admin/contenus.php:415
    539544msgid "Previous"
    540545msgstr ""
    541546
    542 #: admin/contenus.php:407
     547#: admin/contenus.php:416
    543548msgid "Next"
    544549msgstr ""
    545550
    546 #: admin/contenus.php:417
     551#: admin/contenus.php:426
    547552msgid "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."
    548553msgstr ""
    … …  
    795800#: admin/statistiques.php:369
    796801#: admin/voix.php:363
    797 #: admin/vue-ensemble.php:550
    798 #: admin/vue-ensemble.php:556
     802#: admin/vue-ensemble.php:785
     803#: admin/vue-ensemble.php:791
    799804msgid "Run the checks"
    800805msgstr ""
    … …  
    912917
    913918#: admin/lecteur.php:886
    914 #: wedispatch-audio-text-to-speech.php:1574
     919#: wedispatch-audio-text-to-speech.php:1661
    915920msgid "Everyone"
    916921msgstr ""
    917922
    918923#: admin/lecteur.php:888
    919 #: wedispatch-audio-text-to-speech.php:1582
     924#: wedispatch-audio-text-to-speech.php:1669
    920925msgid "Your subscribers"
    921926msgstr ""
    922927
    923928#: admin/lecteur.php:889
    924 #: wedispatch-audio-text-to-speech.php:1583
     929#: wedispatch-audio-text-to-speech.php:1670
    925930msgid "Your registered users"
    926931msgstr ""
    927932
    928933#: admin/lecteur.php:891
    929 #: wedispatch-audio-text-to-speech.php:1584
     934#: wedispatch-audio-text-to-speech.php:1671
    930935msgid "other visitors only hear a preview."
    931936msgstr ""
    … …  
    945950#: admin/menu.php:45
    946951#: admin/menu.php:46
    947 #: admin/vue-ensemble.php:427
     952#: admin/vue-ensemble.php:657
    948953msgid "WeDispatch"
    949954msgstr ""
    950955
    951956#: admin/menu.php:59
     957#: admin/premiers-pas.php:67
    952958msgid "Overview"
    953959msgstr ""
    … …  
    964970
    965971#: admin/menu.php:64
    966 #: admin/vue-ensemble.php:519
    967 #: wedispatch-audio-text-to-speech.php:1429
     972#: admin/vue-ensemble.php:751
     973#: wedispatch-audio-text-to-speech.php:1516
    968974msgid "Settings"
    969975msgstr ""
    … …  
    973979#, php-format
    974980msgid "WeDispatch: %s"
     981msgstr ""
     982
     983#: admin/premiers-pas.php:68
     984msgid "Connect"
     985msgstr ""
     986
     987#: admin/premiers-pas.php:93
     988msgid "WeDispatch is installed."
     989msgstr ""
     990
     991#: admin/premiers-pas.php:94
     992msgid "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."
     993msgstr ""
     994
     995#: admin/premiers-pas.php:99
     996msgid "See what it does"
     997msgstr ""
     998
     999#: admin/premiers-pas.php:101
     1000#: admin/premiers-pas.php:151
     1001msgid "Do not show this again"
     1002msgstr ""
     1003
     1004#: admin/premiers-pas.php:139
     1005msgid "A post was not read aloud."
     1006msgstr ""
     1007
     1008#. translators: %s: title of the post that was not read aloud.
     1009#: admin/premiers-pas.php:142
     1010#, php-format
     1011msgid "“%s”"
     1012msgstr ""
     1013
     1014#: admin/premiers-pas.php:147
     1015#: admin/vue-ensemble.php:315
     1016msgid "Choose a plan"
     1017msgstr ""
     1018
     1019#: admin/premiers-pas.php:149
     1020msgid "See my content"
    9751021msgstr ""
    9761022
    … …  
    12631309
    12641310#: admin/voix.php:431
    1265 #: wedispatch-audio-text-to-speech.php:1813
     1311#: wedispatch-audio-text-to-speech.php:1900
    12661312msgid "A voice per category comes with the paid plans."
    12671313msgstr ""
    … …  
    14511497msgstr ""
    14521498
     1499#: admin/vue-ensemble.php:238
     1500msgid "Let every new post get its audio"
     1501msgstr ""
     1502
     1503#: admin/vue-ensemble.php:239
     1504msgid "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."
     1505msgstr ""
     1506
    14531507#: 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."
     1508msgid "Switch to automatic"
     1509msgstr ""
     1510
     1511#: admin/vue-ensemble.php:255
     1512msgid "Automatic mode is on: the next post you publish gets its audio on its own."
     1513msgstr ""
     1514
     1515#: admin/vue-ensemble.php:286
     1516msgid "Hear your first audio"
     1517msgstr ""
     1518
     1519#: admin/vue-ensemble.php:287
     1520msgid "Use your trial"
     1521msgstr ""
     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
     1526msgid "Your trial has %1$s left, and they do not expire. A credit covers %2$s characters, so a long post uses several."
    14691527msgstr ""
    14701528
    14711529#. translators: %s: number of credits left.
    1472 #: admin/vue-ensemble.php:332
     1530#: admin/vue-ensemble.php:294
     1531#: admin/vue-ensemble.php:453
    14731532#, php-format
    14741533msgid "%s credit"
    … …  
    14771536msgstr[1] ""
    14781537
     1538#. translators: %s: title of the post that will be read aloud.
     1539#: admin/vue-ensemble.php:307
     1540#, php-format
     1541msgid "Read “%s” aloud"
     1542msgstr ""
     1543
     1544#: admin/vue-ensemble.php:310
     1545msgid "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."
     1546msgstr ""
     1547
     1548#: admin/vue-ensemble.php:312
     1549msgid "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."
     1550msgstr ""
     1551
     1552#: admin/vue-ensemble.php:317
     1553msgid "Choose a post myself"
     1554msgstr ""
     1555
     1556#: admin/vue-ensemble.php:344
     1557msgid "This item can no longer be voiced from here. Open My content & audio to pick another one."
     1558msgstr ""
     1559
     1560#: admin/vue-ensemble.php:347
     1561msgid "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."
     1562msgstr ""
     1563
     1564#: admin/vue-ensemble.php:357
     1565msgid "Nothing left to use this month."
     1566msgstr ""
     1567
     1568#: admin/vue-ensemble.php:366
     1569msgid "Every published item already has its audio."
     1570msgstr ""
     1571
     1572#: admin/vue-ensemble.php:424
     1573msgid "Use what is left this month"
     1574msgstr ""
     1575
     1576#. translators: 1: number of credits left, 2: number of published items without audio.
     1577#: admin/vue-ensemble.php:448
     1578#, php-format
     1579msgid "You have %1$s left, and %2$s that have no audio yet."
     1580msgstr ""
     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
     1585msgid "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."
     1586msgstr ""
     1587
    14791588#. translators: %s: number of published items without audio.
    1480 #: admin/vue-ensemble.php:337
     1589#: admin/vue-ensemble.php:458
    14811590#, php-format
    14821591msgid "%s published item"
    … …  
    14851594msgstr[1] ""
    14861595
    1487 #: admin/vue-ensemble.php:343
     1596#: admin/vue-ensemble.php:464
    14881597msgid "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."
    14891598msgstr ""
    14901599
    14911600#. translators: %s: number of items to queue.
    1492 #: admin/vue-ensemble.php:361
     1601#: admin/vue-ensemble.php:482
    14931602#, php-format
    14941603msgid "Voice the next %s item"
    … …  
    14971606msgstr[1] ""
    14981607
    1499 #: admin/vue-ensemble.php:365
     1608#: admin/vue-ensemble.php:486
    15001609msgid "Choose them myself"
    15011610msgstr ""
    15021611
    1503 #: admin/vue-ensemble.php:369
     1612#: admin/vue-ensemble.php:490
    15041613msgid "The most recent ones first. They are queued in the background: WordPress prepares the audio a few seconds later, without holding this page."
    15051614msgstr ""
    15061615
    1507 #: admin/vue-ensemble.php:394
     1616#: admin/vue-ensemble.php:544
     1617msgid "There is no published post long enough to make a sample from yet."
     1618msgstr ""
     1619
     1620#: admin/vue-ensemble.php:566
     1621msgid "Here is how your post sounds. Connect the site to get the whole post, and the player on the page."
     1622msgstr ""
     1623
     1624#: admin/vue-ensemble.php:574
     1625msgid "Several samples were played in the last hour. Try again later, or connect the site to voice every post."
     1626msgstr ""
     1627
     1628#: admin/vue-ensemble.php:576
     1629msgid "Samples are not available right now. Connecting the site still works, and trying it is free."
     1630msgstr ""
     1631
     1632#: admin/vue-ensemble.php:578
     1633msgid "The sample could not be produced. Try again in a moment."
     1634msgstr ""
     1635
     1636#: admin/vue-ensemble.php:596
     1637msgid "Hear a 20-second sample of my latest post"
     1638msgstr ""
     1639
     1640#: admin/vue-ensemble.php:598
     1641msgid "No account needed. Only the opening of your most recent post is sent, when you click, and the text is not kept."
     1642msgstr ""
     1643
     1644#: admin/vue-ensemble.php:624
    15081645msgid "Plugin activated"
    15091646msgstr ""
    15101647
    1511 #: admin/vue-ensemble.php:399
     1648#: admin/vue-ensemble.php:629
    15121649msgid "Site connected to WeDispatch"
    15131650msgstr ""
    15141651
    1515 #: admin/vue-ensemble.php:404
     1652#: admin/vue-ensemble.php:634
    15161653msgid "Default voice chosen"
    15171654msgstr ""
    15181655
    1519 #: admin/vue-ensemble.php:409
     1656#: admin/vue-ensemble.php:639
    15201657msgid "First audio generated"
    15211658msgstr ""
    15221659
    1523 #: admin/vue-ensemble.php:421
     1660#: admin/vue-ensemble.php:651
    15241661msgid "Player seen on the public page"
    15251662msgstr ""
    15261663
    1527 #: admin/vue-ensemble.php:438
     1664#: admin/vue-ensemble.php:670
    15281665msgid "Where this site stands"
    15291666msgstr ""
    15301667
    1531 #: admin/vue-ensemble.php:445
     1668#: admin/vue-ensemble.php:677
    15321669msgid "item with audio"
    15331670msgid_plural "items with audio"
    … …  
    15351672msgstr[1] ""
    15361673
    1537 #: admin/vue-ensemble.php:451
     1674#: admin/vue-ensemble.php:683
    15381675msgid "published item eligible"
    15391676msgid_plural "published items eligible"
    … …  
    15411678msgstr[1] ""
    15421679
    1543 #: admin/vue-ensemble.php:457
    1544 #: wedispatch-audio-text-to-speech.php:1487
    1545 #: wedispatch-audio-text-to-speech.php:1898
     1680#: admin/vue-ensemble.php:689
     1681#: wedispatch-audio-text-to-speech.php:1574
     1682#: wedispatch-audio-text-to-speech.php:1985
    15461683msgid "Manual"
    15471684msgstr ""
    15481685
    1549 #: admin/vue-ensemble.php:458
    1550 #: wedispatch-audio-text-to-speech.php:1483
    1551 #: wedispatch-audio-text-to-speech.php:1897
     1686#: admin/vue-ensemble.php:690
     1687#: wedispatch-audio-text-to-speech.php:1570
     1688#: wedispatch-audio-text-to-speech.php:1984
    15521689msgid "Auto"
    15531690msgstr ""
    15541691
    1555 #: admin/vue-ensemble.php:460
     1692#: admin/vue-ensemble.php:692
    15561693msgid "reading mode"
    15571694msgstr ""
    15581695
    15591696#. translators: %s: comma-separated list of content type names, e.g. "Posts, Pages".
    1560 #: admin/vue-ensemble.php:471
     1697#: admin/vue-ensemble.php:703
    15611698#, php-format
    15621699msgid "Content types read aloud: %s."
    15631700msgstr ""
    15641701
    1565 #: admin/vue-ensemble.php:479
     1702#: admin/vue-ensemble.php:711
    15661703msgid "Getting started"
    15671704msgstr ""
    15681705
    1569 #: admin/vue-ensemble.php:495
     1706#: admin/vue-ensemble.php:727
    15701707msgid "done"
    15711708msgstr ""
    15721709
    1573 #: admin/vue-ensemble.php:496
     1710#: admin/vue-ensemble.php:728
    15741711msgid "still to do"
    15751712msgstr ""
    15761713
    1577 #: admin/vue-ensemble.php:508
     1714#: admin/vue-ensemble.php:740
    15781715msgid "This month"
    15791716msgstr ""
    15801717
    1581 #: admin/vue-ensemble.php:516
    1582 #: wedispatch-audio-text-to-speech.php:1644
     1718#: admin/vue-ensemble.php:748
     1719#: wedispatch-audio-text-to-speech.php:1731
    15831720msgid "Plan and credits"
    15841721msgstr ""
    15851722
    1586 #: admin/vue-ensemble.php:534
     1723#: admin/vue-ensemble.php:767
    15871724msgid "Next step"
    15881725msgstr ""
    15891726
    1590 #: admin/vue-ensemble.php:536
    1591 msgid "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."
    1592 msgstr ""
    1593 
    1594 #: admin/vue-ensemble.php:542
     1727#: admin/vue-ensemble.php:769
     1728msgid "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."
     1729msgstr ""
     1730
     1731#: admin/vue-ensemble.php:775
    15951732msgid "Paste my API key"
    15961733msgstr ""
    15971734
    1598 #: admin/vue-ensemble.php:545
     1735#: admin/vue-ensemble.php:780
    15991736msgid "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."
    16001737msgstr ""
    16011738
    1602 #: admin/vue-ensemble.php:548
     1739#: admin/vue-ensemble.php:783
    16031740msgid "Replace the key"
    16041741msgstr ""
    16051742
    1606 #: admin/vue-ensemble.php:553
     1743#: admin/vue-ensemble.php:788
    16071744msgid "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."
    16081745msgstr ""
    16091746
    1610 #: admin/vue-ensemble.php:585
     1747#: admin/vue-ensemble.php:820
    16111748msgid "Generate the audio, automatically or by hand"
    16121749msgstr ""
    16131750
    1614 #: admin/vue-ensemble.php:586
     1751#: admin/vue-ensemble.php:821
    16151752msgid "Choose where the player sits in the article"
    16161753msgstr ""
    16171754
    1618 #: admin/vue-ensemble.php:587
     1755#: admin/vue-ensemble.php:822
    16191756msgid "Pick the voices: site, per category, per author"
    16201757msgstr ""
    16211758
    1622 #: admin/vue-ensemble.php:588
     1759#: admin/vue-ensemble.php:823
    16231760msgid "Check that the player really shows up"
    16241761msgstr ""
    16251762
    1626 #: admin/vue-ensemble.php:591
     1763#: admin/vue-ensemble.php:826
    16271764msgid "The look of the player: model, style, colours"
    16281765msgstr ""
    16291766
    1630 #: admin/vue-ensemble.php:592
     1767#: admin/vue-ensemble.php:827
    16311768msgid "Detailed listening statistics"
    16321769msgstr ""
    16331770
    1634 #: admin/vue-ensemble.php:593
     1771#: admin/vue-ensemble.php:828
    16351772msgid "Plan, credits and invoices"
    16361773msgstr ""
    16371774
    1638 #: admin/vue-ensemble.php:594
     1775#: admin/vue-ensemble.php:829
    16391776msgid "Signature voice, gated audio, translations"
    16401777msgstr ""
    16411778
    1642 #: admin/vue-ensemble.php:598
     1779#: admin/vue-ensemble.php:833
    16431780msgid "What lives where"
    16441781msgstr ""
    16451782
    1646 #: admin/vue-ensemble.php:599
     1783#: admin/vue-ensemble.php:834
    16471784msgid "The product lives in two places. Here, inside WordPress: what touches your content. In your WeDispatch account: what touches your listeners and your plan."
    16481785msgstr ""
    16491786
    1650 #: admin/vue-ensemble.php:602
     1787#: admin/vue-ensemble.php:837
    16511788msgid "Here, in WordPress"
    16521789msgstr ""
    16531790
    1654 #: admin/vue-ensemble.php:610
     1791#: admin/vue-ensemble.php:845
    16551792msgid "In your WeDispatch account"
    16561793msgstr ""
    16571794
    1658 #: admin/vue-ensemble.php:636
     1795#: admin/vue-ensemble.php:871
    16591796msgid "Your articles are a podcast"
    16601797msgstr ""
    16611798
    1662 #: admin/vue-ensemble.php:637
     1799#: admin/vue-ensemble.php:872
    16631800msgid "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."
    16641801msgstr ""
    16651802
    1666 #: admin/vue-ensemble.php:640
     1803#: admin/vue-ensemble.php:875
    16671804msgid "Podcast feed address"
    16681805msgstr ""
    16691806
    1670 #: admin/vue-ensemble.php:647
     1807#: admin/vue-ensemble.php:882
    16711808msgid "Submit to Spotify"
    16721809msgstr ""
    16731810
    1674 #: admin/vue-ensemble.php:649
     1811#: admin/vue-ensemble.php:884
    16751812msgid "Submit to Apple Podcasts"
    16761813msgstr ""
    16771814
    1678 #: admin/vue-ensemble.php:651
     1815#: admin/vue-ensemble.php:886
    16791816msgid "The feed is public by construction, like every podcast feed. Platforms refresh it on their own; there is nothing to resubmit when you publish."
    16801817msgstr ""
    16811818
    16821819#. translators: %s: number of items included each month.
    1683 #: admin/vue-ensemble.php:756
     1820#: admin/vue-ensemble.php:991
    16841821#, php-format
    16851822msgid "of %s credit this month"
    … …  
    16891826
    16901827#. translators: %s: number of characters included in the plan each month.
    1691 #: admin/vue-ensemble.php:769
     1828#: admin/vue-ensemble.php:1004
    16921829#, php-format
    16931830msgid "of %s characters this month (internal measure: your plan is counted in credits)"
    … …  
    16951832
    16961833#. translators: %s is not used; the count is rendered just before.
    1697 #: admin/vue-ensemble.php:776
     1834#: admin/vue-ensemble.php:1011
    16981835msgid "credit this month, with no monthly ceiling on this plan"
    16991836msgid_plural "credits this month, with no monthly ceiling on this plan"
    … …  
    17011838msgstr[1] ""
    17021839
    1703 #: admin/vue-ensemble.php:786
     1840#: admin/vue-ensemble.php:1021
    17041841msgid "characters this month (internal measure), with no monthly ceiling on this plan"
    17051842msgstr ""
    17061843
    17071844#. translators: %s: number of items left this month.
    1708 #: admin/vue-ensemble.php:800
     1845#: admin/vue-ensemble.php:1035
    17091846#, php-format
    17101847msgid "%s credit left."
    … …  
    17131850msgstr[1] ""
    17141851
    1715 #: admin/vue-ensemble.php:806
     1852#: admin/vue-ensemble.php:1041
    17161853msgid "Unused credits are not carried over: the count starts again at the beginning of each month."
    17171854msgstr ""
    17181855
    17191856#. translators: %s: number of characters used this month.
    1720 #: admin/vue-ensemble.php:810
     1857#: admin/vue-ensemble.php:1045
    17211858#, php-format
    17221859msgid "(%s characters)"
    … …  
    17251862#: inc/api.php:39
    17261863#: inc/api.php:109
    1727 #: wedispatch-audio-text-to-speech.php:890
    1728 #: wedispatch-audio-text-to-speech.php:1187
    1729 #: wedispatch-audio-text-to-speech.php:1715
     1864#: wedispatch-audio-text-to-speech.php:941
     1865#: wedispatch-audio-text-to-speech.php:1272
     1866#: wedispatch-audio-text-to-speech.php:1802
    17301867msgid "No API key has been entered"
    17311868msgstr ""
    17321869
    17331870#: inc/api.php:252
    1734 #: wedispatch-audio-text-to-speech.php:1188
     1871#: wedispatch-audio-text-to-speech.php:1273
    17351872msgid "This content has never been turned into audio"
    17361873msgstr ""
    … …  
    17761913#. translators: %s: the address of the WeDispatch service this site talks to.
    17771914#: inc/api.php:461
    1778 #: wedispatch-audio-text-to-speech.php:1473
     1915#: wedispatch-audio-text-to-speech.php:1560
    17791916#, php-format
    17801917msgid "This site talks to %s. A key created on another environment is refused, however valid it is there."
    … …  
    19602097msgstr ""
    19612098
    1962 #: wedispatch-audio-text-to-speech.php:269
     2099#: wedispatch-audio-text-to-speech.php:270
    19632100msgid "French"
    19642101msgstr ""
    19652102
    1966 #: wedispatch-audio-text-to-speech.php:270
     2103#: wedispatch-audio-text-to-speech.php:271
    19672104msgid "English"
    19682105msgstr ""
    19692106
    1970 #: wedispatch-audio-text-to-speech.php:271
     2107#: wedispatch-audio-text-to-speech.php:272
    19712108msgid "Spanish"
    19722109msgstr ""
    19732110
    1974 #: wedispatch-audio-text-to-speech.php:272
     2111#: wedispatch-audio-text-to-speech.php:273
    19752112msgid "German"
    19762113msgstr ""
    19772114
    1978 #: wedispatch-audio-text-to-speech.php:273
     2115#: wedispatch-audio-text-to-speech.php:274
    19792116msgid "Italian"
    19802117msgstr ""
    19812118
    1982 #: wedispatch-audio-text-to-speech.php:274
     2119#: wedispatch-audio-text-to-speech.php:275
    19832120msgid "Hindi"
    19842121msgstr ""
    19852122
    1986 #: wedispatch-audio-text-to-speech.php:275
     2123#: wedispatch-audio-text-to-speech.php:276
    19872124msgid "Chinese"
    19882125msgstr ""
    19892126
    1990 #: wedispatch-audio-text-to-speech.php:276
     2127#: wedispatch-audio-text-to-speech.php:277
    19912128msgid "Arabic"
    19922129msgstr ""
    19932130
    1994 #: wedispatch-audio-text-to-speech.php:277
     2131#: wedispatch-audio-text-to-speech.php:278
    19952132msgid "Portuguese"
    19962133msgstr ""
    19972134
    1998 #: wedispatch-audio-text-to-speech.php:278
     2135#: wedispatch-audio-text-to-speech.php:279
    19992136msgid "Japanese"
    20002137msgstr ""
    20012138
    2002 #: wedispatch-audio-text-to-speech.php:279
     2139#: wedispatch-audio-text-to-speech.php:280
    20032140msgid "Hebrew"
    20042141msgstr ""
    20052142
    2006 #: wedispatch-audio-text-to-speech.php:280
     2143#: wedispatch-audio-text-to-speech.php:281
    20072144msgid "Korean"
    20082145msgstr ""
    20092146
    2010 #: wedispatch-audio-text-to-speech.php:281
     2147#: wedispatch-audio-text-to-speech.php:282
    20112148msgid "Dutch"
    20122149msgstr ""
    20132150
    2014 #: wedispatch-audio-text-to-speech.php:282
     2151#: wedispatch-audio-text-to-speech.php:283
    20152152msgid "Swedish"
    20162153msgstr ""
    20172154
    2018 #: wedispatch-audio-text-to-speech.php:283
     2155#: wedispatch-audio-text-to-speech.php:284
    20192156msgid "Polish"
    20202157msgstr ""
    20212158
    2022 #: wedispatch-audio-text-to-speech.php:284
     2159#: wedispatch-audio-text-to-speech.php:285
    20232160msgid "Tamil"
    20242161msgstr ""
    20252162
    2026 #: wedispatch-audio-text-to-speech.php:285
     2163#: wedispatch-audio-text-to-speech.php:286
    20272164msgid "Telugu"
    20282165msgstr ""
    20292166
    2030 #: wedispatch-audio-text-to-speech.php:286
     2167#: wedispatch-audio-text-to-speech.php:287
    20312168msgid "Russian"
    20322169msgstr ""
    20332170
    2034 #: wedispatch-audio-text-to-speech.php:287
     2171#: wedispatch-audio-text-to-speech.php:288
    20352172msgid "Turkish"
    20362173msgstr ""
    20372174
    2038 #: wedispatch-audio-text-to-speech.php:288
     2175#: wedispatch-audio-text-to-speech.php:289
    20392176msgid "Thai"
    20402177msgstr ""
    20412178
    2042 #: wedispatch-audio-text-to-speech.php:289
     2179#: wedispatch-audio-text-to-speech.php:290
    20432180msgid "Filipino"
    20442181msgstr ""
    20452182
    2046 #: wedispatch-audio-text-to-speech.php:290
     2183#: wedispatch-audio-text-to-speech.php:291
    20472184msgid "Czech"
    20482185msgstr ""
    20492186
    2050 #: wedispatch-audio-text-to-speech.php:291
     2187#: wedispatch-audio-text-to-speech.php:292
    20512188msgid "Finnish"
    20522189msgstr ""
    20532190
    2054 #: wedispatch-audio-text-to-speech.php:342
     2191#: wedispatch-audio-text-to-speech.php:343
    20552192msgid "Female"
    20562193msgstr ""
    20572194
    2058 #: wedispatch-audio-text-to-speech.php:343
     2195#: wedispatch-audio-text-to-speech.php:344
    20592196msgid "Male"
    20602197msgstr ""
    20612198
    20622199#. translators: 1: voice name, 2: Female or Male, 3: speaking style.
    2063 #: wedispatch-audio-text-to-speech.php:347
     2200#: wedispatch-audio-text-to-speech.php:348
    20642201#, php-format
    20652202msgid "%1$s (%2$s, %3$s)"
    … …  
    20672204
    20682205#. translators: 1: voice name, 2: Female or Male.
    2069 #: wedispatch-audio-text-to-speech.php:350
     2206#: wedispatch-audio-text-to-speech.php:351
    20702207#, php-format
    20712208msgid "%1$s (%2$s)"
    20722209msgstr ""
    20732210
    2074 #: wedispatch-audio-text-to-speech.php:412
     2211#: wedispatch-audio-text-to-speech.php:413
    20752212msgid "Checking…"
    20762213msgstr ""
    20772214
    2078 #: wedispatch-audio-text-to-speech.php:413
     2215#: wedispatch-audio-text-to-speech.php:414
    20792216msgid "The key is accepted by the service."
    20802217msgstr ""
    20812218
    2082 #: wedispatch-audio-text-to-speech.php:414
     2219#: wedispatch-audio-text-to-speech.php:415
    20832220msgid "This site can attest to its visitors’ status. Nothing else to do."
    20842221msgstr ""
    20852222
    2086 #: wedispatch-audio-text-to-speech.php:415
    2087 #: wedispatch-audio-text-to-speech.php:1945
     2223#: wedispatch-audio-text-to-speech.php:416
     2224#: wedispatch-audio-text-to-speech.php:2032
    20882225msgid "failed"
    20892226msgstr ""
    20902227
    2091 #: wedispatch-audio-text-to-speech.php:416
     2228#: wedispatch-audio-text-to-speech.php:417
    20922229msgid "Network error"
    20932230msgstr ""
    20942231
    2095 #: wedispatch-audio-text-to-speech.php:433
     2232#: wedispatch-audio-text-to-speech.php:434
    20962233msgid "Looking at the public page…"
    20972234msgstr ""
    20982235
    2099 #: wedispatch-audio-text-to-speech.php:434
     2236#: wedispatch-audio-text-to-speech.php:435
    21002237msgid "Network error: the check could not run."
    21012238msgstr ""
    21022239
    2103 #: wedispatch-audio-text-to-speech.php:446
     2240#: wedispatch-audio-text-to-speech.php:447
    21042241msgid "Enter your API key to list the voices"
    21052242msgstr ""
    21062243
    2107 #: wedispatch-audio-text-to-speech.php:470
     2244#: wedispatch-audio-text-to-speech.php:471
    21082245msgid "This voice is not available on your plan. Please pick another one"
    21092246msgstr ""
    21102247
    21112248#. translators: %s: the stored voice identifier, shown because the voice list could not be read.
    2112 #: wedispatch-audio-text-to-speech.php:472
     2249#: wedispatch-audio-text-to-speech.php:473
    21132250#, php-format
    21142251msgid "%s (voice list unavailable right now: this setting is kept)"
    21152252msgstr ""
    21162253
    2117 #: wedispatch-audio-text-to-speech.php:511
     2254#: wedispatch-audio-text-to-speech.php:512
    21182255msgid "Your signature voices"
    21192256msgstr ""
    21202257
    2121 #: wedispatch-audio-text-to-speech.php:512
     2258#: wedispatch-audio-text-to-speech.php:513
    21222259msgid "All languages"
    21232260msgstr ""
    21242261
    2125 #: wedispatch-audio-text-to-speech.php:537
     2262#: wedispatch-audio-text-to-speech.php:538
     2263#: wedispatch-audio-text-to-speech.php:541
     2264msgid "Listen"
     2265msgstr ""
     2266
     2267#: wedispatch-audio-text-to-speech.php:539
     2268msgid "Stop"
     2269msgstr ""
     2270
    21262271#: wedispatch-audio-text-to-speech.php:540
    2127 msgid "Listen"
    2128 msgstr ""
    2129 
    2130 #: wedispatch-audio-text-to-speech.php:538
    2131 msgid "Stop"
    2132 msgstr ""
    2133 
    2134 #: wedispatch-audio-text-to-speech.php:539
    21352272msgid "No sample for this voice yet."
    21362273msgstr ""
    21372274
    21382275#. 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:661
     2276#: wedispatch-audio-text-to-speech.php:662
    21402277msgctxt "label separator"
    21412278msgid ": "
    … …  
    21432280
    21442281#. translators: %s: category name.
    2145 #: wedispatch-audio-text-to-speech.php:684
     2282#: wedispatch-audio-text-to-speech.php:685
    21462283#, php-format
    21472284msgid "category “%s”"
    21482285msgstr ""
    21492286
    2150 #: wedispatch-audio-text-to-speech.php:686
     2287#: wedispatch-audio-text-to-speech.php:687
    21512288msgid "category"
    21522289msgstr ""
    21532290
    2154 #: wedispatch-audio-text-to-speech.php:689
     2291#: wedispatch-audio-text-to-speech.php:690
    21552292msgid "author"
    21562293msgstr ""
    21572294
    2158 #: wedispatch-audio-text-to-speech.php:888
    2159 #: wedispatch-audio-text-to-speech.php:1018
     2295#: wedispatch-audio-text-to-speech.php:939
     2296#: wedispatch-audio-text-to-speech.php:1097
    21602297msgid "Content not found"
    21612298msgstr ""
    21622299
    2163 #: wedispatch-audio-text-to-speech.php:970
     2300#: wedispatch-audio-text-to-speech.php:1027
    21642301msgid "Automatic audio is paused for this site in your account area."
    21652302msgstr ""
    21662303
    2167 #: wedispatch-audio-text-to-speech.php:1022
     2304#: wedispatch-audio-text-to-speech.php:1058
     2305msgid "Not enough credits left for this item."
     2306msgstr ""
     2307
     2308#: wedispatch-audio-text-to-speech.php:1101
    21682309msgid "Text too short (100 characters minimum). Save the draft first"
    21692310msgstr ""
    21702311
    2171 #: wedispatch-audio-text-to-speech.php:1377
     2312#: wedispatch-audio-text-to-speech.php:1464
    21722313msgid "the site default voice"
    21732314msgstr ""
    21742315
    21752316#. translators: %s: category name.
    2176 #: wedispatch-audio-text-to-speech.php:1391
     2317#: wedispatch-audio-text-to-speech.php:1478
    21772318#, php-format
    21782319msgid "the “%s” category"
    … …  
    21802321
    21812322#. translators: %s: comma-separated list, e.g. "the site default voice, the “Sport” category".
    2182 #: wedispatch-audio-text-to-speech.php:1402
     2323#: wedispatch-audio-text-to-speech.php:1489
    21832324#, php-format
    21842325msgid "%s uses a voice that is no longer in your plan catalogue."
    … …  
    21872328msgstr[1] ""
    21882329
    2189 #: wedispatch-audio-text-to-speech.php:1411
     2330#: wedispatch-audio-text-to-speech.php:1498
    21902331msgid "Your content is still read aloud, with the account default voice, until a new choice is made."
    21912332msgstr ""
    21922333
    2193 #: wedispatch-audio-text-to-speech.php:1412
     2334#: wedispatch-audio-text-to-speech.php:1499
    21942335msgid "Pick a voice"
    21952336msgstr ""
    21962337
    2197 #: wedispatch-audio-text-to-speech.php:1440
     2338#: wedispatch-audio-text-to-speech.php:1527
    21982339msgid "Connect this site"
    21992340msgstr ""
    22002341
    2201 #: wedispatch-audio-text-to-speech.php:1441
     2342#: wedispatch-audio-text-to-speech.php:1528
    22022343msgid "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."
    22032344msgstr ""
    22042345
    2205 #: wedispatch-audio-text-to-speech.php:1449
     2346#: wedispatch-audio-text-to-speech.php:1536
    22062347msgid "Connecting again replaces the key stored on this site."
    22072348msgstr ""
    22082349
    22092350#. translators: %s: link to the WeDispatch account area.
    2210 #: wedispatch-audio-text-to-speech.php:1455
    2211 #, php-format
    2212 msgid "Turn your content into audio. Paste the API key from your account area (%s)."
    2213 msgstr ""
    2214 
    2215 #: wedispatch-audio-text-to-speech.php:1463
     2351#: wedispatch-audio-text-to-speech.php:1542
     2352#, php-format
     2353msgid "Already have an API key? You can also paste it here. It is in your account area (%s)."
     2354msgstr ""
     2355
     2356#: wedispatch-audio-text-to-speech.php:1550
    22162357msgid "API key"
    22172358msgstr ""
    22182359
    2219 #: wedispatch-audio-text-to-speech.php:1466
     2360#: wedispatch-audio-text-to-speech.php:1553
    22202361msgid "Never share this key."
    22212362msgstr ""
    22222363
    2223 #: wedispatch-audio-text-to-speech.php:1479
     2364#: wedispatch-audio-text-to-speech.php:1566
    22242365msgid "Default mode"
    22252366msgstr ""
    22262367
    2227 #: wedispatch-audio-text-to-speech.php:1484
     2368#: wedispatch-audio-text-to-speech.php:1571
    22282369msgid "the audio is generated on its own when you publish. The voice is picked automatically, in this order: category, then author, then site voice."
    22292370msgstr ""
    22302371
    2231 #: wedispatch-audio-text-to-speech.php:1488
     2372#: wedispatch-audio-text-to-speech.php:1575
    22322373msgid "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."
    22332374msgstr ""
    22342375
    2235 #: wedispatch-audio-text-to-speech.php:1489
     2376#: wedispatch-audio-text-to-speech.php:1576
    22362377msgid "Can be set per item in the “WeDispatch” editor panel, which also shows the voice Auto mode will use."
    22372378msgstr ""
    22382379
    2239 #: wedispatch-audio-text-to-speech.php:1493
     2380#: wedispatch-audio-text-to-speech.php:1580
    22402381msgid "Content to read aloud"
    22412382msgstr ""
    22422383
    2243 #: wedispatch-audio-text-to-speech.php:1511
     2384#: wedispatch-audio-text-to-speech.php:1598
    22442385msgid "Posts, pages, products, and any custom post type your theme or your plugins register. Unticking everything falls back to posts."
    22452386msgstr ""
    22462387
    2247 #: wedispatch-audio-text-to-speech.php:1516
     2388#: wedispatch-audio-text-to-speech.php:1603
    22482389msgid "Site default voice"
    22492390msgstr ""
    22502391
    2251 #: wedispatch-audio-text-to-speech.php:1518
     2392#: wedispatch-audio-text-to-speech.php:1605
    22522393msgid "Used in Auto mode when the author has not set a voice of their own (in their profile)."
    22532394msgstr ""
    22542395
    2255 #: wedispatch-audio-text-to-speech.php:1521
     2396#: wedispatch-audio-text-to-speech.php:1608
    22562397msgid "Content edited after publication"
    22572398msgstr ""
    22582399
    2259 #: wedispatch-audio-text-to-speech.php:1527
     2400#: wedispatch-audio-text-to-speech.php:1614
    22602401msgid "Rebuild the audio automatically when the text of an item that already has audio changes"
    22612402msgstr ""
    22622403
    2263 #: wedispatch-audio-text-to-speech.php:1530
     2404#: wedispatch-audio-text-to-speech.php:1617
    22642405msgid "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."
    22652406msgstr ""
    22662407
    2267 #: wedispatch-audio-text-to-speech.php:1531
     2408#: wedispatch-audio-text-to-speech.php:1618
    22682409msgid "Every automatic rebuild uses one generation from your plan."
    22692410msgstr ""
    22702411
    2271 #: wedispatch-audio-text-to-speech.php:1539
     2412#: wedispatch-audio-text-to-speech.php:1626
    22722413msgid "At the top of the article"
    22732414msgstr ""
    22742415
    2275 #: wedispatch-audio-text-to-speech.php:1540
     2416#: wedispatch-audio-text-to-speech.php:1627
    22762417msgid "At the bottom of the article"
    22772418msgstr ""
    22782419
    2279 #: wedispatch-audio-text-to-speech.php:1541
     2420#: wedispatch-audio-text-to-speech.php:1628
    22802421msgid "Manual: block, widget or [wedispatch] shortcode"
    22812422msgstr ""
    22822423
    2283 #: wedispatch-audio-text-to-speech.php:1546
     2424#: wedispatch-audio-text-to-speech.php:1633
    22842425msgid "Under the article"
    22852426msgstr ""
    22862427
    2287 #: wedispatch-audio-text-to-speech.php:1554
     2428#: wedispatch-audio-text-to-speech.php:1641
    22882429msgid "Show the transcript, folded, under the article"
    22892430msgstr ""
    22902431
    2291 #: wedispatch-audio-text-to-speech.php:1557
     2432#: wedispatch-audio-text-to-speech.php:1644
    22922433msgid "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."
    22932434msgstr ""
    22942435
    2295 #: wedispatch-audio-text-to-speech.php:1563
     2436#: wedispatch-audio-text-to-speech.php:1650
    22962437msgid "Show “Listen next” under the article"
    22972438msgstr ""
    22982439
    2299 #: wedispatch-audio-text-to-speech.php:1566
     2440#: wedispatch-audio-text-to-speech.php:1653
    23002441msgid "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."
    23012442msgstr ""
    23022443
    2303 #: wedispatch-audio-text-to-speech.php:1574
     2444#: wedispatch-audio-text-to-speech.php:1661
    23042445msgid "the player is open to all your visitors."
    23052446msgstr ""
    23062447
    2307 #: wedispatch-audio-text-to-speech.php:1576
     2448#: wedispatch-audio-text-to-speech.php:1663
    23082449msgid "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”)."
    23092450msgstr ""
    23102451
    2311 #: wedispatch-audio-text-to-speech.php:1577
     2452#: wedispatch-audio-text-to-speech.php:1664
    23122453msgid "Nothing to code"
    23132454msgstr ""
    23142455
    2315 #: wedispatch-audio-text-to-speech.php:1577
     2456#: wedispatch-audio-text-to-speech.php:1664
    23162457msgid "this plugin takes care of it."
    23172458msgstr ""
    23182459
    2319 #: wedispatch-audio-text-to-speech.php:1586
     2460#: wedispatch-audio-text-to-speech.php:1673
    23202461msgid "This plugin passes each visitor’s status on automatically."
    23212462msgstr ""
    23222463
    2323 #: wedispatch-audio-text-to-speech.php:1588
     2464#: wedispatch-audio-text-to-speech.php:1675
    23242465msgid "API key missing or invalid: without it, every visitor gets the preview only."
    23252466msgstr ""
    23262467
    2327 #: wedispatch-audio-text-to-speech.php:1593
     2468#: wedispatch-audio-text-to-speech.php:1680
    23282469msgid "Who counts as a subscriber on this site?"
    23292470msgstr ""
    23302471
    2331 #: wedispatch-audio-text-to-speech.php:1595
     2472#: wedispatch-audio-text-to-speech.php:1682
    23322473msgid "Tick the WordPress role or roles of your paying subscribers. A signed-in user with none of those roles counts as merely registered."
    23332474msgstr ""
    23342475
    2335 #: wedispatch-audio-text-to-speech.php:1612
     2476#: wedispatch-audio-text-to-speech.php:1699
    23362477msgid "No role ticked: nobody is recognised as a subscriber, so nobody hears the full article. Tick at least one role."
    23372478msgstr ""
    23382479
    23392480#. translators: 1: filter name, in a code tag. 2: link to the documentation.
    2340 #: wedispatch-audio-text-to-speech.php:1619
     2481#: wedispatch-audio-text-to-speech.php:1706
    23412482#, php-format
    23422483msgid "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."
    23432484msgstr ""
    23442485
    2345 #: wedispatch-audio-text-to-speech.php:1621
     2486#: wedispatch-audio-text-to-speech.php:1708
    23462487msgid "our documentation"
    23472488msgstr ""
    23482489
    2349 #: wedispatch-audio-text-to-speech.php:1628
     2490#: wedispatch-audio-text-to-speech.php:1715
    23502491msgid "Check that everything works"
    23512492msgstr ""
    23522493
    2353 #: wedispatch-audio-text-to-speech.php:1632
     2494#: wedispatch-audio-text-to-speech.php:1719
    23542495msgid "Your readers stay anonymous to WeDispatch: this site attests to a status (“subscriber”), never to an identity. No personal data leaves your server."
    23552496msgstr ""
    23562497
    2357 #: wedispatch-audio-text-to-speech.php:1659
     2498#: wedispatch-audio-text-to-speech.php:1746
    23582499msgid "No key has been entered"
    23592500msgstr ""
    23602501
    2361 #: wedispatch-audio-text-to-speech.php:1683
     2502#: wedispatch-audio-text-to-speech.php:1770
    23622503msgid "No API key has been entered."
    23632504msgstr ""
    23642505
    2365 #: wedispatch-audio-text-to-speech.php:1689
     2506#: wedispatch-audio-text-to-speech.php:1776
    23662507msgid "Secret not found. Is the API key valid?"
    23672508msgstr ""
    23682509
    2369 #: wedispatch-audio-text-to-speech.php:1702
     2510#: wedispatch-audio-text-to-speech.php:1789
    23702511msgid "Unreadable response from the WeDispatch server."
    23712512msgstr ""
    23722513
    2373 #: wedispatch-audio-text-to-speech.php:1708
     2514#: wedispatch-audio-text-to-speech.php:1795
    23742515msgid "Token refused"
    23752516msgstr ""
    23762517
    2377 #: wedispatch-audio-text-to-speech.php:1738
     2518#: wedispatch-audio-text-to-speech.php:1825
    23782519msgid "Audio voice"
    23792520msgstr ""
    23802521
    2381 #: wedispatch-audio-text-to-speech.php:1740
     2522#: wedispatch-audio-text-to-speech.php:1827
    23822523msgid "In Auto mode, your content will be read aloud with this voice."
    23832524msgstr ""
    23842525
    2385 #: wedispatch-audio-text-to-speech.php:1815
     2526#: wedispatch-audio-text-to-speech.php:1902
    23862527msgid "A voice already set here keeps working: nothing has been erased."
    23872528msgstr ""
    23882529
    2389 #: wedispatch-audio-text-to-speech.php:1826
    2390 #: wedispatch-audio-text-to-speech.php:1843
     2530#: wedispatch-audio-text-to-speech.php:1913
     2531#: wedispatch-audio-text-to-speech.php:1930
    23912532msgid "WeDispatch voice"
    23922533msgstr ""
    23932534
    2394 #: wedispatch-audio-text-to-speech.php:1829
     2535#: wedispatch-audio-text-to-speech.php:1916
    23952536msgid "In Auto mode, posts in this category are read aloud with this voice (it takes priority over the author’s voice)."
    23962537msgstr ""
    23972538
    2398 #: wedispatch-audio-text-to-speech.php:1847
     2539#: wedispatch-audio-text-to-speech.php:1934
    23992540msgid "In Auto mode, takes priority over the author’s voice for posts in this category."
    24002541msgstr ""
    24012542
    2402 #: wedispatch-audio-text-to-speech.php:1880
     2543#: wedispatch-audio-text-to-speech.php:1967
    24032544msgid "WeDispatch Audio"
    24042545msgstr ""
    24052546
    2406 #: wedispatch-audio-text-to-speech.php:1902
     2547#: wedispatch-audio-text-to-speech.php:1989
    24072548msgid "Mode"
    24082549msgstr ""
    24092550
    24102551#. translators: %s: the site-wide default, either Auto or Manual.
    2411 #: wedispatch-audio-text-to-speech.php:1906
     2552#: wedispatch-audio-text-to-speech.php:1993
    24122553#, php-format
    24132554msgid "Site default (%s)"
    24142555msgstr ""
    24152556
    2416 #: wedispatch-audio-text-to-speech.php:1907
     2557#: wedispatch-audio-text-to-speech.php:1994
    24172558msgid "Auto: generated on publication"
    24182559msgstr ""
    24192560
    2420 #: wedispatch-audio-text-to-speech.php:1908
     2561#: wedispatch-audio-text-to-speech.php:1995
    24212562msgid "Manual: I generate it here"
    24222563msgstr ""
    24232564
    2424 #: wedispatch-audio-text-to-speech.php:1912
     2565#: wedispatch-audio-text-to-speech.php:1999
    24252566msgid "In Auto mode"
    24262567msgstr ""
    24272568
    2428 #: wedispatch-audio-text-to-speech.php:1912
     2569#: wedispatch-audio-text-to-speech.php:1999
    24292570msgid "this item will be read by:"
    24302571msgstr ""
    24312572
    24322573#. translators: %s: where the voice comes from: a category, the author, or the site.
    2433 #: wedispatch-audio-text-to-speech.php:1916
     2574#: wedispatch-audio-text-to-speech.php:2003
    24342575#, php-format
    24352576msgid "Voice picked via: %s. Priority is category, then author, then site."
    24362577msgstr ""
    24372578
    2438 #: wedispatch-audio-text-to-speech.php:1919
     2579#: wedispatch-audio-text-to-speech.php:2006
    24392580msgid "Voice (Manual mode)"
    24402581msgstr ""
    24412582
    2442 #: wedispatch-audio-text-to-speech.php:1921
     2583#: wedispatch-audio-text-to-speech.php:2008
    24432584msgid "Used in Manual mode only. In Auto mode the routing above decides."
    24442585msgstr ""
    24452586
    2446 #: wedispatch-audio-text-to-speech.php:1923
     2587#: wedispatch-audio-text-to-speech.php:2010
    24472588msgid "Audio status:"
    24482589msgstr ""
    24492590
    2450 #: wedispatch-audio-text-to-speech.php:1925
    2451 #: wedispatch-audio-text-to-speech.php:1942
     2591#: wedispatch-audio-text-to-speech.php:2012
     2592#: wedispatch-audio-text-to-speech.php:2029
    24522593msgid "Generated"
    24532594msgstr ""
    24542595
    2455 #: wedispatch-audio-text-to-speech.php:1926
     2596#: wedispatch-audio-text-to-speech.php:2013
    24562597msgid "Not generated"
    24572598msgstr ""
    24582599
    2459 #: wedispatch-audio-text-to-speech.php:1927
     2600#: wedispatch-audio-text-to-speech.php:2014
    24602601msgid "Generate audio"
    24612602msgstr ""
    24622603
    2463 #: wedispatch-audio-text-to-speech.php:1929
     2604#: wedispatch-audio-text-to-speech.php:2016
    24642605msgid "Save the draft before generating."
    24652606msgstr ""
    24662607
    2467 #: wedispatch-audio-text-to-speech.php:1941
     2608#: wedispatch-audio-text-to-speech.php:2028
    24682609msgid "Generating…"
    24692610msgstr ""
    24702611
    2471 #: wedispatch-audio-text-to-speech.php:1943
     2612#: wedispatch-audio-text-to-speech.php:2030
    24722613msgid "Scheduled"
    24732614msgstr ""
    24742615
    2475 #: wedispatch-audio-text-to-speech.php:1944
     2616#: wedispatch-audio-text-to-speech.php:2031
    24762617msgid "Preparing…"
    24772618msgstr ""
    24782619
    2479 #: wedispatch-audio-text-to-speech.php:1946
     2620#: wedispatch-audio-text-to-speech.php:2033
    24802621msgid "network error"
    24812622msgstr ""
    24822623
    2483 #: wedispatch-audio-text-to-speech.php:2088
     2624#: wedispatch-audio-text-to-speech.php:2175
    24842625msgid "Audio version of this article"
    24852626msgstr ""
    24862627
    2487 #: wedispatch-audio-text-to-speech.php:2178
     2628#: wedispatch-audio-text-to-speech.php:2265
    24882629#: blocks/player/index.js:37
    24892630msgid "WeDispatch audio player"
    24902631msgstr ""
    24912632
    2492 #: wedispatch-audio-text-to-speech.php:2180
     2633#: wedispatch-audio-text-to-speech.php:2267
    24932634msgid "The audio version of the article being read. Shows nothing on pages that have no audio."
    24942635msgstr ""
    24952636
    2496 #: wedispatch-audio-text-to-speech.php:2206
     2637#: wedispatch-audio-text-to-speech.php:2293
    24972638msgid "Listen to this article"
    24982639msgstr ""
    24992640
    2500 #: wedispatch-audio-text-to-speech.php:2209
     2641#: wedispatch-audio-text-to-speech.php:2296
    25012642msgid "Title:"
    25022643msgstr ""
    … …  
    25052646msgid "The audio version of this article appears here once it has been generated."
    25062647msgstr ""
    2507 
    2508 #: blocks/player/block.json
    2509 msgctxt "block title"
    2510 msgid "WeDispatch audio player"
    2511 msgstr ""
    2512 
    2513 #: blocks/player/block.json
    2514 msgctxt "block description"
    2515 msgid "Places the audio version of this article exactly where you want it."
    2516 msgstr ""
    2517 
    2518 #: blocks/player/block.json
    2519 msgctxt "block keyword"
    2520 msgid "audio"
    2521 msgstr ""
    2522 
    2523 #: blocks/player/block.json
    2524 msgctxt "block keyword"
    2525 msgid "text to speech"
    2526 msgstr ""
    2527 
    2528 #: blocks/player/block.json
    2529 msgctxt "block keyword"
    2530 msgid "listen"
    2531 msgstr ""
    2532 
    2533 #: blocks/player/block.json
    2534 msgctxt "block keyword"
    2535 msgid "podcast"
    2536 msgstr ""
    2537 
    2538 #: blocks/player/block.json
    2539 msgctxt "block keyword"
    2540 msgid "accessibility"
    2541 msgstr ""
  • wedispatch-audio-text-to-speech/trunk/readme.txt

    r3665684 r3709329  
    11=== WeDispatch Audio Text to Speech ===
    22Contributors: toutestfaisable
    3 Tags: text to speech, tts, audio, accessibility, podcast
     3Tags: text to speech, accessibility, audio, read aloud, podcast
    44Requires at least: 6.3
    55Tested up to: 7.0
    66Requires PHP: 7.4
    7 Stable tag: 1.29.0
     7Stable tag: 1.30.0
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1010
    11 Text to speech for a whole site: posts, pages and products become audio when published, with an accessible player and natural voices.
     11Your articles read aloud the moment you publish. Natural voices, accessible player, nothing to do. Free for your first articles.
    1212
    1313== Description ==
    1414
    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.
     15Your readers get an audio version of every article. Your writers do nothing: they publish, and the
     16audio appears with the text. It is free to start, no credit card, and it takes about two minutes to
     17connect a site.
     18
     19= Try it in two minutes =
     20
     211. Install and activate the plugin.
     222. 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.
     243. On the overview, click "Read it aloud": your latest post that fits your trial is voiced first.
     254. Open the page: the player is there, and your article is read aloud.
     265. Happy with it? Switch to automatic, and every new post gets its audio on publication.
     27
     28Your 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.
    1835
    1936It was built inside a newsroom, for newsrooms, but nothing about it is specific to news. Any site
    2037that publishes text can use it: a magazine, a documentation site, an online shop, a public body
    21 with an accessibility obligation.
     38with an accessibility obligation. Every time something is published, the text is sent to the
     39WeDispatch service, read aloud by professional voices, and an audio player appears on the page.
    2240
    2341= Why a newsroom cares =
    … …  
    5977* Loaded through the standard WordPress script queue, deferred and in the footer, so caching and performance plugins handle it like any other asset.
    6078
     79= Works with =
     80
     81The player is a block, a widget and the `[wedispatch]` shortcode, so it drops into any builder that
     82accepts 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
    6191= Translated, not just translatable =
    6292
    … …  
    74104This plugin is the connector for an online service: it requires a WeDispatch account. The service
    75105is 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 makes
    77 no request.
     106the WeDispatch menu. Until a site is connected, the plugin makes no request on its own: only the
     107connection itself, and the short sample described below, each when an administrator clicks for it.
    78108
    79109== External services ==
    … …  
    86116
    87117* **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.
    88119* **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).
    89120* **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.
    … …  
    116147== Frequently Asked Questions ==
    117148
     149= Is there a free plan? =
     150
     151Yes. Your first articles are on us, so you can hear your own content before deciding anything. Paid
     152plans start when you need volume, and they are listed on wedispatch.fr. The plugin reads what is
     153left 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
     157No. You create the account, connect the site and publish. A payment method is only asked for when
     158you choose a paid plan.
     159
     160= Does it work with Elementor, Divi or WPBakery? =
     161
     162Yes. The player is available as an editor block, as a widget and as the `[wedispatch]` shortcode,
     163and every one of those three builders accepts at least one of them. You can also leave the player at
     164the top or the bottom of the article and not place anything by hand.
     165
     166= Does it work with WooCommerce? =
     167
     168Yes. Products are a content type like any other: tick "Products" in Settings and product
     169descriptions get an audio version when they are published.
     170
    118171= Does the plugin work without a WeDispatch account? =
    119172
    120173No. 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.
     174account. Until then, nothing is read aloud and no request is made on its own. Two things happen only
     175when you click: connecting the site, and, on the WeDispatch overview, a button that lets you hear 20
     176seconds of your latest post, read by the service, before creating an account.
    122177
    123178= The player is not showing up on my page. What now? =
    … …  
    211266
    212267== 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.
    213277
    214278= 1.29.0 =
  • wedispatch-audio-text-to-speech/trunk/wedispatch-audio-text-to-speech.php

    r3665684 r3709329  
    44 * Plugin URI: https://wedispatch.fr
    55 * 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.0
     6 * Version: 1.30.0
    77 * Requires at least: 6.3
    88 * Requires PHP: 7.4
    … …  
    3232 */
    3333define('WEDISPATCH_API', 'https://wedispatch.fr');
    34 define('WEDISPATCH_VERSION', '1.29.0');
     34define('WEDISPATCH_VERSION', '1.30.0');
    3535/**
    3636 * L'adresse publique du dossier de l'extension.
    … …  
    7070    require_once __DIR__ . '/admin/menu.php';
    7171    require_once __DIR__ . '/admin/connexion.php';
     72    require_once __DIR__ . '/admin/premiers-pas.php';
    7273    require_once __DIR__ . '/admin/vue-ensemble.php';
    7374    require_once __DIR__ . '/admin/contenus.php';
    … …  
    830831        wp_schedule_event(time() + 60, 'hourly', 'wedispatch_refresh_access_event');
    831832    }
     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();
    832847});
     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 */
     866function 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 */
     880function wedispatch_mode_site() {
     881    wedispatch_fixer_mode_par_defaut();
     882    return get_option('wedispatch_mode', 'manuel') === 'auto' ? 'auto' : 'manuel';
     883}
    833884register_deactivation_hook(__FILE__, function () {
    834885    wp_clear_scheduled_hook('wedispatch_refresh_access_event');
    … …  
    839890function wedispatch_effective_mode($post_id) {
    840891    $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();
    842893    return $mode === 'manuel' ? 'manuel' : 'auto';
    843894}
    … …  
    927978    }
    928979
     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    }
    929985    if (!empty($data['article_id'])) {
    930986        update_post_meta($post_id, '_wedispatch_article_id', sanitize_text_field($data['article_id']));
    … …  
    937993        wedispatch_noter_signature($post_id, $body);
    938994        delete_post_meta($post_id, '_wedispatch_suspendu');
     995        delete_post_meta($post_id, '_wedispatch_refus');
    939996        // Le transcript en réserve décrit l'audio d'AVANT. Le garder ferait lire sous l'article un
    940997        // texte que plus personne n'entend, pendant douze heures, sans qu'aucun écran le signale.
    … …  
    9801037function wedispatch_noter_suspension($post_id, $data) {
    9811038    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 */
     1056function 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);
    9821061}
    9831062
    … …  
    11561235            continue;
    11571236        }
     1237        if (isset($ligne['status']) && $ligne['status'] === 'quota') {
     1238            wedispatch_noter_refus($post_id, isset($ligne['error']) ? $ligne['error'] : '');
     1239            $erreurs++;
     1240            continue;
     1241        }
    11581242        if (empty($ligne['article_id'])) { $erreurs++; continue; }
    11591243        update_post_meta($post_id, '_wedispatch_article_id', sanitize_text_field($ligne['article_id']));
    … …  
    11611245        wedispatch_noter_signature($post_id, $par_ref[$ref]['body']);
    11621246        delete_post_meta($post_id, '_wedispatch_suspendu');
     1247        delete_post_meta($post_id, '_wedispatch_refus');
    11631248        wedispatch_oublier_transcript($ligne['article_id']);
    11641249        // Par contenu, jamais en bloc : un lot de cinquante ne doit pas vider tout le cache d'un
    … …  
    12691354        // enregistrement des réglages — le site repasserait en sonorisation automatique, donc
    12701355        // 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',
    12731360    ));
    12741361    register_setting('wedispatch', 'wedispatch_voice', array(
    … …  
    14211508
    14221509    $key  = get_option('wedispatch_api_key', '');
    1423     $mode = get_option('wedispatch_mode', 'auto');
     1510    $mode = wedispatch_mode_site();
    14241511    $voice = get_option('wedispatch_voice', '');
    14251512    $pos  = get_option('wedispatch_position', 'before');
    … …  
    14531540        printf(
    14541541            /* translators: %s: link to the WeDispatch account area. */
    1455             esc_html__('Turn your content into audio. Paste the API key from your 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'),
    14561543            '<a href="' . esc_url(WEDISPATCH_API . '/dashboard/api-keys') . '" target="_blank" rel="noopener">wedispatch.fr</a>'
    14571544        );
    … …  
    18931980    $voice = get_post_meta($post->ID, '_wedispatch_voice', true);
    18941981    $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';
    18961983    $global = $global_is_auto
    18971984        ? __('Auto', 'wedispatch-audio-text-to-speech')
Note: See TracChangeset for help on using the changeset viewer.