Plugin Directory

Changeset 3791779


Ignore:
Timestamp:
11/09/2026 03:24:33 AM (2 hours ago)
Author:
guardafoto
Message:

GuardaFoto 1.1.2: panel Extrae la foto aqui junto a la imagen destacada + arreglo de la caja del editor clasico

Location:
guardafoto
Files:
1 added
11 edited
9 copied

Legend:

Unmodified
Added
Removed
  • guardafoto/tags/1.1.2/assets/admin.css

    r3791747 r3791779  
    199199}
    200200
     201/* Classic editor meta box: it sits in the narrow side column, next to
     202   the featured-image box — stack the controls and use a single column. */
     203#guardafoto .guardafoto-admin-controls {
     204        flex-direction: column;
     205}
     206
     207#guardafoto .guardafoto-admin-controls .button {
     208        width: 100%;
     209}
     210
     211#guardafoto .guardafoto-admin-grid {
     212        grid-template-columns: 1fr;
     213}
     214
     215#guardafoto .guardafoto-card-img {
     216        height: auto;
     217        max-height: 170px;
     218}
     219
     220#guardafoto .guardafoto-admin-input {
     221        width: 100%;
     222}
     223
    201224/* Block editor panel: stack the controls, cards in one column. */
    202225.guardafoto-editor-panel .guardafoto-admin-controls {
  • guardafoto/tags/1.1.2/assets/admin.js

    r3791761 r3791779  
    434434                }
    435435
    436                 form.addEventListener('submit', function (event) {
     436                function onSubmit(event) {
    437437                        event.preventDefault();
    438438                        resetOutput();
    … …  
    472472                                input.disabled = false;
    473473                        });
    474                 });
     474                }
     475
     476                form.addEventListener('submit', onSubmit);
     477                if (form.tagName !== 'FORM') {
     478                        // Container variant (classic editor meta box, which lives inside
     479                        // the post edit form): there is no form submit, so the button
     480                        // click and the Enter key run the lookup instead.
     481                        button.addEventListener('click', onSubmit);
     482                        input.addEventListener('keydown', function (event) {
     483                                if (event.key === 'Enter') {
     484                                        onSubmit(event);
     485                                }
     486                        });
     487                }
    475488        }
    476489
  • guardafoto/tags/1.1.2/assets/editor.js

    r3791761 r3791779  
    1818        var createElement = element.createElement;
    1919        var useState = element.useState;
     20        var useEffect = element.useEffect;
    2021        var Button = components ? components.Button : null;
     22
     23        var PANEL_ID = 'guardafoto/guardafoto-panel';
     24
     25        /*
     26         * Open the GuardaFoto document panel when the editor loads, so the
     27         * "Extract the photo here" box is already visible in the sidebar —
     28         * next to the featured image — without the author hunting for it.
     29         * The panel state lives in the editor store on current WordPress
     30         * and in the edit-post store on older versions; try both.
     31         */
     32        function openPanelOnLoad() {
     33                if (!data || !data.select || !data.dispatch) {
     34                        return;
     35                }
     36                var stores = ['core/editor', 'core/edit-post'];
     37                for (var i = 0; i < stores.length; i++) {
     38                        try {
     39                                var selector = data.select(stores[i]);
     40                                var dispatcher = data.dispatch(stores[i]);
     41                                if (
     42                                        selector &&
     43                                        dispatcher &&
     44                                        typeof selector.isEditorPanelOpened === 'function' &&
     45                                        typeof dispatcher.toggleEditorPanelOpened === 'function'
     46                                ) {
     47                                        if (!selector.isEditorPanelOpened(PANEL_ID)) {
     48                                                dispatcher.toggleEditorPanelOpened(PANEL_ID);
     49                                        }
     50                                        return;
     51                                }
     52                        } catch (error) {
     53                                /* Store not available in this version; try the next one. */
     54                        }
     55                }
     56        }
    2157
    2258        var config = window.guardafotoAdminConfig || {};
    … …  
    178214                var setNotes = notesState[1];
    179215
     216                if (useEffect) {
     217                        useEffect(function () {
     218                                openPanelOnLoad();
     219                        }, []);
     220                }
     221
    180222                function setNote(index, message, ok) {
    181223                        var next = {};
    … …  
    497539                        {
    498540                                name: 'guardafoto-panel',
    499                                 title: 'GuardaFoto',
     541                                className: 'guardafoto-extract-panel',
     542                                title: text.panelTitle || 'GuardaFoto — Extract the photo here',
    500543                                icon: 'download'
    501544                        },
  • guardafoto/tags/1.1.2/guardafoto.php

    r3791761 r3791779  
    44 * Plugin URI:        https://guardafoto.com/
    55 * Description:       Adds a free tool that lets visitors paste a YouTube, Spotify, Deezer or Apple Music link and download its public profile photo, banner, thumbnail or cover in the sizes published by the platform — and download the video itself from TikTok and Instagram links. Includes a dashboard tool to import photos straight into the Media Library.
    6  * Version:           1.1.1
     6 * Version:           1.1.2
    77 * Requires at least: 5.8
    88 * Requires PHP:      7.4
    … …  
    2121}
    2222
    23 define( 'GUARDAFOTO_VERSION', '1.1.1' );
     23define( 'GUARDAFOTO_VERSION', '1.1.2' );
    2424define( 'GUARDAFOTO_API_ENDPOINT', 'https://guardafoto.com/api/resolve' );
    2525
    … …  
    457457                'intro'          => __( 'Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X or Twitch link. You can download each photo, or import it straight into this site\'s Media Library.', 'guardafoto' ),
    458458                'editorIntro'    => __( 'Paste a public link and use its photo in this post: import it to the Media Library, set it as the featured image, or insert it into the content.', 'guardafoto' ),
     459                'panelTitle'     => __( 'GuardaFoto — Extract the photo here', 'guardafoto' ),
    459460                'label'          => __( 'Link', 'guardafoto' ),
    460461                'placeholder'    => __( 'https://www.youtube.com/watch?v=…', 'guardafoto' ),
    … …  
    540541        <div class="guardafoto-admin" data-guardafoto-admin data-context="<?php echo esc_attr( $context ); ?>" data-post-id="<?php echo esc_attr( (string) $post_id ); ?>">
    541542                <p class="guardafoto-admin-intro"><?php echo esc_html( $intro ); ?></p>
    542                 <form class="guardafoto-admin-form" data-guardafoto-admin-form novalidate>
     543                <?php
     544                // In the classic editor the meta box lives inside the post edit
     545                // form, and a nested <form> is dropped by the browser's parser —
     546                // so there the lookup box uses a plain container and a button of
     547                // type "button", and admin.js wires the click and the Enter key
     548                // instead of a form submit.
     549                if ( 'classic' === $context ) :
     550                        ?>
     551                        <div class="guardafoto-admin-form" data-guardafoto-admin-form>
     552                        <?php else : ?>
     553                        <form class="guardafoto-admin-form" data-guardafoto-admin-form novalidate>
     554                        <?php endif; ?>
    543555                        <label class="guardafoto-admin-label" for="<?php echo esc_attr( $input_id ); ?>"><?php echo esc_html( $strings['label'] ); ?></label>
    544556                        <div class="guardafoto-admin-controls">
    … …  
    553565                                        placeholder="<?php echo esc_attr( $strings['placeholder'] ); ?>"
    554566                                >
    555                                 <button class="button button-primary guardafoto-admin-button" type="submit"><?php echo esc_html( $strings['button'] ); ?></button>
     567                                <button class="button button-primary guardafoto-admin-button" type="<?php echo 'classic' === $context ? 'button' : 'submit'; ?>"><?php echo esc_html( $strings['button'] ); ?></button>
    556568                        </div>
    557                 </form>
     569                <?php echo 'classic' === $context ? '</div>' : '</form>'; ?>
    558570                <div class="guardafoto-admin-status" data-guardafoto-admin-status role="status" aria-live="polite" hidden></div>
    559571                <div class="guardafoto-admin-error" data-guardafoto-admin-error role="alert" hidden></div>
    … …  
    610622 * block editor (the block editor gets its own GuardaFoto panel instead).
    611623 *
     624 * The box lives in the side column with high priority, right where the
     625 * featured-image box is, and carries the same "Extract the photo here"
     626 * title as the block-editor panel, so the tool is found where the author
     627 * is already looking for a photo.
     628 *
    612629 * @return void
    613630 */
    … …  
    616633                return;
    617634        }
     635
     636        $strings = guardafoto_admin_strings();
    618637
    619638        $screens = get_post_types( array( 'public' => true ), 'names' );
    … …  
    627646                add_meta_box(
    628647                        'guardafoto',
    629                         'GuardaFoto',
     648                        $strings['panelTitle'],
    630649                        'guardafoto_meta_box_render',
    631650                        $screen,
    632651                        'side',
    633                         'default'
     652                        'high'
    634653                );
    635654        }
    … …  
    713732                'guardafoto-editor',
    714733                plugins_url( 'assets/editor.js', __FILE__ ),
    715                 array( 'wp-plugins', 'wp-edit-post', 'wp-element', 'wp-components', 'wp-data', 'wp-blocks' ),
     734                array( 'wp-plugins', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-components', 'wp-data', 'wp-blocks' ),
    716735                GUARDAFOTO_VERSION,
    717736                true
  • guardafoto/tags/1.1.2/languages/guardafoto-es_ES.po

    r3791761 r3791779  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: GuardaFoto 1.1.1
    6 "
    7 "Report-Msgid-Bugs-To: https://guardafoto.com/contact/
    8 "
    9 "Last-Translator: A3Q Global
    10 "
    11 "Language-Team: Español
    12 "
    13 "Language: es_ES
    14 "
    15 "MIME-Version: 1.0
    16 "
    17 "Content-Type: text/plain; charset=UTF-8
    18 "
    19 "Content-Transfer-Encoding: 8bit
    20 "
    21 "Plural-Forms: nplurals=2; plural=(n != 1);
    22 "
    23 
     5"Project-Id-Version: GuardaFoto 1.1.2\n"
     6"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/guardafoto\n"
     7"POT-Creation-Date: 2026-11-09T03:08:38+00:00\n"
     8"PO-Revision-Date: 2026-11-08 19:10-0800\n"
     9"Last-Translator: A3Q Global\n"
     10"Language-Team: Español\n"
     11"Language: es_ES\n"
     12"MIME-Version: 1.0\n"
     13"Content-Type: text/plain; charset=UTF-8\n"
     14"Content-Transfer-Encoding: 8bit\n"
     15"Plural-Forms: nplurals=2; plural=(n != 1);\n"
    2416
    2517#. Plugin Name of the plugin
    26 #: guardafoto.php
    27 #: guardafoto.php:412
     18#: guardafoto.php guardafoto.php:412
    2819msgid "GuardaFoto"
    2920msgstr "GuardaFoto"
    … …  
    3627#. Description of the plugin
    3728#: guardafoto.php
    38 msgid "Adds a free tool that lets visitors paste a YouTube, Spotify, Deezer or Apple Music link and download its public profile photo, banner, thumbnail or cover in the sizes published by the platform — and download the video itself from TikTok and Instagram links. Includes a dashboard tool to import photos straight into the Media Library."
    39 msgstr "Añade una herramienta gratuita que permite a los visitantes pegar un enlace de YouTube, Spotify, Deezer o Apple Music y descargar su foto de perfil, banner, miniatura o portada pública en los tamaños que publica la plataforma, y descargar el propio video desde enlaces de TikTok e Instagram. Incluye una herramienta en el panel para importar fotos directamente a la biblioteca de medios."
     29msgid ""
     30"Adds a free tool that lets visitors paste a YouTube, Spotify, Deezer or "
     31"Apple Music link and download its public profile photo, banner, thumbnail or "
     32"cover in the sizes published by the platform — and download the video itself "
     33"from TikTok and Instagram links. Includes a dashboard tool to import photos "
     34"straight into the Media Library."
     35msgstr ""
     36"Añade una herramienta gratuita que permite a los visitantes pegar un enlace "
     37"de YouTube, Spotify, Deezer o Apple Music y descargar su foto de perfil, "
     38"banner, miniatura o portada pública en los tamaños que publica la "
     39"plataforma, y descargar el propio video desde enlaces de TikTok e Instagram. "
     40"Incluye una herramienta en el panel para importar fotos directamente a la "
     41"biblioteca de medios."
    4042
    4143#. Author of the plugin
    … …  
    5153#: guardafoto.php:189
    5254msgid "Paste a YouTube, Spotify, Deezer, Apple Music, TikTok or Instagram link"
    53 msgstr "Pega un enlace de YouTube, Spotify, Deezer, Apple Music, TikTok o Instagram"
     55msgstr ""
     56"Pega un enlace de YouTube, Spotify, Deezer, Apple Music, TikTok o Instagram"
    5457
    5558#: guardafoto.php:190
    … …  
    6265
    6366#: guardafoto.php:192
    64 msgid "Works with YouTube channels and videos, plus supported artists, albums, songs and playlists — and with public TikTok and Instagram videos."
    65 msgstr "Funciona con canales y videos de YouTube, artistas, álbumes, canciones y playlists compatibles, y con los videos públicos de TikTok e Instagram."
    66 
    67 #: guardafoto.php:193
    68 #: guardafoto.php:212
    69 #: guardafoto.php:462
     67msgid ""
     68"Works with YouTube channels and videos, plus supported artists, albums, "
     69"songs and playlists — and with public TikTok and Instagram videos."
     70msgstr ""
     71"Funciona con canales y videos de YouTube, artistas, álbumes, canciones y "
     72"playlists compatibles, y con los videos públicos de TikTok e Instagram."
     73
     74#: guardafoto.php:193 guardafoto.php:212 guardafoto.php:463
    7075msgid "Looking up the photo…"
    7176msgstr "Buscando la foto…"
    … …  
    7580msgstr "Resultado de GuardaFoto"
    7681
    77 #: guardafoto.php:195
    78 #: guardafoto.php:483
     82#: guardafoto.php:195 guardafoto.php:484
    7983msgid "Type"
    8084msgstr "Tipo"
    8185
    82 #: guardafoto.php:196
    83 #: guardafoto.php:484
     86#: guardafoto.php:196 guardafoto.php:485
    8487msgid "Size"
    8588msgstr "Tamaño"
    8689
    87 #: guardafoto.php:197
    88 #: guardafoto.php:223
    89 #: guardafoto.php:473
     90#: guardafoto.php:197 guardafoto.php:223 guardafoto.php:474
    9091msgid "Download"
    9192msgstr "Descargar"
    9293
    93 #: guardafoto.php:198
    94 #: guardafoto.php:225
    95 #: guardafoto.php:243
    96 #: guardafoto.php:247
    97 #: guardafoto.php:485
    98 #: guardafoto.php:507
    99 #: guardafoto.php:511
     94#: guardafoto.php:198 guardafoto.php:225 guardafoto.php:243 guardafoto.php:247
     95#: guardafoto.php:486 guardafoto.php:508 guardafoto.php:512
    10096msgid "Video"
    10197msgstr "Video"
    … …  
    106102
    107103#: guardafoto.php:214
    108 msgid "Found it. The files are listed below — pick a size or the video to download."
    109 msgstr "Listo. Abajo están los archivos: elige un tamaño o el video para descargar."
    110 
    111 #: guardafoto.php:215
    112 #: guardafoto.php:465
     104msgid ""
     105"Found it. The files are listed below — pick a size or the video to download."
     106msgstr ""
     107"Listo. Abajo están los archivos: elige un tamaño o el video para descargar."
     108
     109#: guardafoto.php:215 guardafoto.php:466
    113110msgid "Paste a link first."
    114111msgstr "Primero pega un enlace."
    115112
    116113#: guardafoto.php:216
    117 msgid "That link is not supported. Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok or Instagram link."
    118 msgstr "Ese enlace no es compatible. Pega un enlace público de YouTube, Spotify, Deezer, Apple Music, TikTok o Instagram."
    119 
    120 #: guardafoto.php:217
    121 #: guardafoto.php:467
     114msgid ""
     115"That link is not supported. Paste a public YouTube, Spotify, Deezer, Apple "
     116"Music, TikTok or Instagram link."
     117msgstr ""
     118"Ese enlace no es compatible. Pega un enlace público de YouTube, Spotify, "
     119"Deezer, Apple Music, TikTok o Instagram."
     120
     121#: guardafoto.php:217 guardafoto.php:468
    122122msgid "That link could not be found, or it is not public."
    123123msgstr "Ese enlace no se encontró o no es público."
    124124
    125 #: guardafoto.php:218
    126 #: guardafoto.php:468
     125#: guardafoto.php:218 guardafoto.php:469
    127126msgid "Too many lookups right now. Please wait a moment and try again."
    128 msgstr "Hay demasiadas búsquedas en este momento. Espera un momento e inténtalo de nuevo."
    129 
    130 #: guardafoto.php:219
    131 #: guardafoto.php:469
    132 msgid "The lookup service could not complete that request. Please try again in a moment."
    133 msgstr "El servicio de búsqueda no pudo completar la solicitud. Inténtalo de nuevo en un momento."
     127msgstr ""
     128"Hay demasiadas búsquedas en este momento. Espera un momento e inténtalo de "
     129"nuevo."
     130
     131#: guardafoto.php:219 guardafoto.php:470
     132msgid ""
     133"The lookup service could not complete that request. Please try again in a "
     134"moment."
     135msgstr ""
     136"El servicio de búsqueda no pudo completar la solicitud. Inténtalo de nuevo "
     137"en un momento."
    134138
    135139#: guardafoto.php:220
    136 msgid "The photo service could not be reached. Check your connection and try again."
    137 msgstr "No se pudo contactar con el servicio de fotos. Revisa tu conexión e inténtalo de nuevo."
    138 
    139 #: guardafoto.php:221
    140 #: guardafoto.php:471
     140msgid ""
     141"The photo service could not be reached. Check your connection and try again."
     142msgstr ""
     143"No se pudo contactar con el servicio de fotos. Revisa tu conexión e "
     144"inténtalo de nuevo."
     145
     146#: guardafoto.php:221 guardafoto.php:472
    141147msgid "No downloadable files were returned for that link."
    142148msgstr "No se devolvieron archivos descargables para ese enlace."
    143149
    144 #: guardafoto.php:222
    145 #: guardafoto.php:472
    146 msgid "Instagram profile photos cannot be downloaded: Meta shows them only to logged-in accounts."
    147 msgstr "Las fotos de perfil de Instagram no se pueden descargar: Meta solo las muestra a cuentas con la sesión iniciada."
     150#: guardafoto.php:222 guardafoto.php:473
     151msgid ""
     152"Instagram profile photos cannot be downloaded: Meta shows them only to "
     153"logged-in accounts."
     154msgstr ""
     155"Las fotos de perfil de Instagram no se pueden descargar: Meta solo las "
     156"muestra a cuentas con la sesión iniciada."
    148157
    149158#: guardafoto.php:224
    … …  
    151160msgstr "Archivo"
    152161
    153 #: guardafoto.php:226
    154 #: guardafoto.php:486
     162#: guardafoto.php:226 guardafoto.php:487
    155163msgid "Video file"
    156164msgstr "Archivo de video"
    157165
    158 #: guardafoto.php:228
    159 #: guardafoto.php:492
     166#: guardafoto.php:228 guardafoto.php:493
    160167msgid "YouTube"
    161168msgstr "YouTube"
    162169
    163 #: guardafoto.php:229
    164 #: guardafoto.php:493
     170#: guardafoto.php:229 guardafoto.php:494
    165171msgid "Spotify"
    166172msgstr "Spotify"
    167173
    168 #: guardafoto.php:230
    169 #: guardafoto.php:494
     174#: guardafoto.php:230 guardafoto.php:495
    170175msgid "Deezer"
    171176msgstr "Deezer"
    172177
    173 #: guardafoto.php:231
    174 #: guardafoto.php:495
     178#: guardafoto.php:231 guardafoto.php:496
    175179msgid "Apple Music"
    176180msgstr "Apple Music"
    177181
    178 #: guardafoto.php:232
    179 #: guardafoto.php:496
     182#: guardafoto.php:232 guardafoto.php:497
    180183msgid "TikTok"
    181184msgstr "TikTok"
    182185
    183 #: guardafoto.php:233
    184 #: guardafoto.php:497
     186#: guardafoto.php:233 guardafoto.php:498
    185187msgid "Instagram"
    186188msgstr "Instagram"
    187189
    188 #: guardafoto.php:234
    189 #: guardafoto.php:498
     190#: guardafoto.php:234 guardafoto.php:499
    190191msgid "X"
    191192msgstr "X"
    192193
    193 #: guardafoto.php:235
    194 #: guardafoto.php:499
     194#: guardafoto.php:235 guardafoto.php:500
    195195msgid "Twitch"
    196196msgstr "Twitch"
    197197
    198 #: guardafoto.php:238
    199 #: guardafoto.php:502
     198#: guardafoto.php:238 guardafoto.php:503
    200199msgid "Profile photo"
    201200msgstr "Foto de perfil"
    202201
    203 #: guardafoto.php:239
    204 #: guardafoto.php:503
     202#: guardafoto.php:239 guardafoto.php:504
    205203msgid "Banner"
    206204msgstr "Banner"
    207205
    208 #: guardafoto.php:240
    209 #: guardafoto.php:504
     206#: guardafoto.php:240 guardafoto.php:505
    210207msgid "Thumbnail"
    211208msgstr "Miniatura"
    212209
    213 #: guardafoto.php:241
    214 #: guardafoto.php:505
     210#: guardafoto.php:241 guardafoto.php:506
    215211msgid "Cover"
    216212msgstr "Portada"
    217213
    218 #: guardafoto.php:242
    219 #: guardafoto.php:506
     214#: guardafoto.php:242 guardafoto.php:507
    220215msgid "Image"
    221216msgstr "Imagen"
    222217
    223 #: guardafoto.php:246
    224 #: guardafoto.php:510
     218#: guardafoto.php:246 guardafoto.php:511
    225219msgid "Channel"
    226220msgstr "Canal"
    227221
    228 #: guardafoto.php:248
    229 #: guardafoto.php:512
     222#: guardafoto.php:248 guardafoto.php:513
    230223msgid "Artist"
    231224msgstr "Artista"
    232225
    233 #: guardafoto.php:249
    234 #: guardafoto.php:513
     226#: guardafoto.php:249 guardafoto.php:514
    235227msgid "Album"
    236228msgstr "Álbum"
    237229
    238 #: guardafoto.php:250
    239 #: guardafoto.php:514
     230#: guardafoto.php:250 guardafoto.php:515
    240231msgid "Song"
    241232msgstr "Canción"
    242233
    243 #: guardafoto.php:251
    244 #: guardafoto.php:515
     234#: guardafoto.php:251 guardafoto.php:516
    245235msgid "Playlist"
    246236msgstr "Playlist"
    247237
    248 #: guardafoto.php:252
    249 #: guardafoto.php:516
     238#: guardafoto.php:252 guardafoto.php:517
    250239msgid "Podcast"
    251240msgstr "Pódcast"
    252241
    253 #: guardafoto.php:253
    254 #: guardafoto.php:517
     242#: guardafoto.php:253 guardafoto.php:518
    255243msgid "Episode"
    256244msgstr "Episodio"
    257245
    258 #: guardafoto.php:254
    259 #: guardafoto.php:518
     246#: guardafoto.php:254 guardafoto.php:519
    260247msgid "Profile"
    261248msgstr "Perfil"
    262249
    263 #: guardafoto.php:255
    264 #: guardafoto.php:519
     250#: guardafoto.php:255 guardafoto.php:520
    265251msgid "Reel"
    266252msgstr "Reel"
    267253
    268 #: guardafoto.php:256
    269 #: guardafoto.php:520
     254#: guardafoto.php:256 guardafoto.php:521
    270255msgid "Post"
    271256msgstr "Publicación"
    272257
    273 #: guardafoto.php:413
    274 #: assets/block.js:21
    275 msgid "Add a public profile photo, banner, thumbnail and cover downloader using the free GuardaFoto API."
    276 msgstr "Añade un descargador de fotos de perfil, banners, miniaturas y portadas públicas con la API gratuita de GuardaFoto."
     258#: guardafoto.php:413 assets/block.js:21
     259msgid ""
     260"Add a public profile photo, banner, thumbnail and cover downloader using the "
     261"free GuardaFoto API."
     262msgstr ""
     263"Añade un descargador de fotos de perfil, banners, miniaturas y portadas "
     264"públicas con la API gratuita de GuardaFoto."
    277265
    278266#: guardafoto.php:457
    279 msgid "Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X or Twitch link. You can download each photo, or import it straight into this site's Media Library."
    280 msgstr "Pega un enlace público de YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X o Twitch. Podrás descargar cada foto o importarla directamente a la biblioteca de medios de este sitio."
     267msgid ""
     268"Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X "
     269"or Twitch link. You can download each photo, or import it straight into this "
     270"site's Media Library."
     271msgstr ""
     272"Pega un enlace público de YouTube, Spotify, Deezer, Apple Music, TikTok, "
     273"Instagram, X o Twitch. Podrás descargar cada foto o importarla directamente "
     274"a la biblioteca de medios de este sitio."
    281275
    282276#: guardafoto.php:458
    283 msgid "Paste a public link and use its photo in this post: import it to the Media Library, set it as the featured image, or insert it into the content."
    284 msgstr "Pega un enlace público y usa su foto en esta entrada: impórtala a Medios, ponla como imagen destacada o insértala en el contenido."
     277msgid ""
     278"Paste a public link and use its photo in this post: import it to the Media "
     279"Library, set it as the featured image, or insert it into the content."
     280msgstr ""
     281"Pega un enlace público y usa su foto en esta entrada: impórtala a Medios, "
     282"ponla como imagen destacada o insértala en el contenido."
    285283
    286284#: guardafoto.php:459
     285msgid "GuardaFoto — Extract the photo here"
     286msgstr "GuardaFoto — Extrae la foto aquí"
     287
     288#: guardafoto.php:460
    287289msgid "Link"
    288290msgstr "Enlace"
    289291
    290 #: guardafoto.php:460
     292#: guardafoto.php:461
    291293msgid "https://www.youtube.com/watch?v=…"
    292294msgstr "https://www.youtube.com/watch?v=…"
    293295
    294 #: guardafoto.php:461
     296#: guardafoto.php:462
    295297msgid "Look up the photo"
    296298msgstr "Buscar la foto"
    297299
    298 #: guardafoto.php:463
     300#: guardafoto.php:464
    299301msgid "Photo found. Download it or import it to the Media Library."
    300302msgstr "Foto encontrada. Descárgala o impórtala a Medios."
    301303
    302 #: guardafoto.php:464
     304#: guardafoto.php:465
    303305msgid "Found it. The photos and the video from that link are listed below."
    304306msgstr "Listo. Abajo están las fotos y el video de ese enlace."
    305307
    306 #: guardafoto.php:466
    307 msgid "That link is not supported. Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X or Twitch link."
    308 msgstr "Ese enlace no es compatible. Pega un enlace público de YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X o Twitch."
    309 
    310 #: guardafoto.php:470
     308#: guardafoto.php:467
     309msgid ""
     310"That link is not supported. Paste a public YouTube, Spotify, Deezer, Apple "
     311"Music, TikTok, Instagram, X or Twitch link."
     312msgstr ""
     313"Ese enlace no es compatible. Pega un enlace público de YouTube, Spotify, "
     314"Deezer, Apple Music, TikTok, Instagram, X o Twitch."
     315
     316#: guardafoto.php:471
    311317msgid "The request could not be completed. Check the connection and try again."
    312 msgstr "No se pudo completar la petición. Revisa la conexión e inténtalo de nuevo."
    313 
    314 #: guardafoto.php:474
     318msgstr ""
     319"No se pudo completar la petición. Revisa la conexión e inténtalo de nuevo."
     320
     321#: guardafoto.php:475
    315322msgid "Import to Media Library"
    316323msgstr "Importar a Medios"
    317324
    318 #: guardafoto.php:475
     325#: guardafoto.php:476
    319326msgid "Importing…"
    320327msgstr "Importando…"
    321328
    322 #: guardafoto.php:476
     329#: guardafoto.php:477
    323330msgid "Imported ✓"
    324331msgstr "Importada ✓"
    325332
    326 #: guardafoto.php:477
     333#: guardafoto.php:478
    327334msgid "View in Media Library"
    328335msgstr "Ver en Medios"
    329336
    330 #: guardafoto.php:478
     337#: guardafoto.php:479
    331338msgid "Import & set as featured image"
    332339msgstr "Importar y poner como imagen destacada"
    333340
    334 #: guardafoto.php:479
     341#: guardafoto.php:480
    335342msgid "Featured image set ✓"
    336343msgstr "Imagen destacada puesta ✓"
    337344
    338 #: guardafoto.php:480
     345#: guardafoto.php:481
    339346msgid "The photo was imported, but it could not be set as the featured image."
    340347msgstr "La foto se importó, pero no se pudo poner como destacada."
    341348
    342 #: guardafoto.php:481
     349#: guardafoto.php:482
    343350msgid "Import & insert into content"
    344351msgstr "Importar e insertar en el contenido"
    345352
    346 #: guardafoto.php:482
     353#: guardafoto.php:483
    347354msgid "Inserted into the content ✓"
    348355msgstr "Insertada en el contenido ✓"
    349356
    350 #: guardafoto.php:487
    351 msgid "Videos are download-only: this version does not import them into the Media Library."
    352 msgstr "Los videos solo se descargan: en esta versión no se importan a la biblioteca de medios."
    353 
    354357#: guardafoto.php:488
    355 msgid "This video is {size} and exceeds this site's upload limit ({limit}): it can only be downloaded."
    356 msgstr "Este video pesa {size} y supera el límite de subida de este sitio ({limit}): solo se puede descargar."
     358msgid ""
     359"Videos are download-only: this version does not import them into the Media "
     360"Library."
     361msgstr ""
     362"Los videos solo se descargan: en esta versión no se importan a la biblioteca "
     363"de medios."
    357364
    358365#: guardafoto.php:489
     366msgid ""
     367"This video is {size} and exceeds this site's upload limit ({limit}): it can "
     368"only be downloaded."
     369msgstr ""
     370"Este video pesa {size} y supera el límite de subida de este sitio ({limit}): "
     371"solo se puede descargar."
     372
     373#: guardafoto.php:490
    359374msgid "The photo could not be imported."
    360375msgstr "No se pudo importar la foto."
    361376
    362 #: guardafoto.php:490
     377#: guardafoto.php:491
    363378msgid "You are not allowed to do that."
    364379msgstr "No tienes permiso para hacer eso."
    365380
    366 #: guardafoto.php:599
     381#: guardafoto.php:600
    367382msgid "You are not allowed to use this tool."
    368383msgstr "No tienes permiso para usar esta herramienta."
    … …  
    375390msgid "Automatic (site language)"
    376391msgstr "Automático (idioma del sitio)"
    377 
  • guardafoto/tags/1.1.2/languages/guardafoto.pot

    r3791761 r3791779  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: GuardaFoto 1.1.1\n"
     5"Project-Id-Version: GuardaFoto 1.1.2\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/guardafoto\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-11-09T02:47:37+00:00\n"
     12"POT-Creation-Date: 2026-11-09T03:08:38+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
    … …  
    5959#: guardafoto.php:193
    6060#: guardafoto.php:212
    61 #: guardafoto.php:462
     61#: guardafoto.php:463
    6262msgid "Looking up the photo…"
    6363msgstr ""
    … …  
    6868
    6969#: guardafoto.php:195
    70 #: guardafoto.php:483
     70#: guardafoto.php:484
    7171msgid "Type"
    7272msgstr ""
    7373
    7474#: guardafoto.php:196
    75 #: guardafoto.php:484
     75#: guardafoto.php:485
    7676msgid "Size"
    7777msgstr ""
    … …  
    7979#: guardafoto.php:197
    8080#: guardafoto.php:223
    81 #: guardafoto.php:473
     81#: guardafoto.php:474
    8282msgid "Download"
    8383msgstr ""
    … …  
    8787#: guardafoto.php:243
    8888#: guardafoto.php:247
    89 #: guardafoto.php:485
    90 #: guardafoto.php:507
    91 #: guardafoto.php:511
     89#: guardafoto.php:486
     90#: guardafoto.php:508
     91#: guardafoto.php:512
    9292msgid "Video"
    9393msgstr ""
    … …  
    102102
    103103#: guardafoto.php:215
    104 #: guardafoto.php:465
     104#: guardafoto.php:466
    105105msgid "Paste a link first."
    106106msgstr ""
    … …  
    111111
    112112#: guardafoto.php:217
    113 #: guardafoto.php:467
     113#: guardafoto.php:468
    114114msgid "That link could not be found, or it is not public."
    115115msgstr ""
    116116
    117117#: guardafoto.php:218
    118 #: guardafoto.php:468
     118#: guardafoto.php:469
    119119msgid "Too many lookups right now. Please wait a moment and try again."
    120120msgstr ""
    121121
    122122#: guardafoto.php:219
    123 #: guardafoto.php:469
     123#: guardafoto.php:470
    124124msgid "The lookup service could not complete that request. Please try again in a moment."
    125125msgstr ""
    … …  
    130130
    131131#: guardafoto.php:221
    132 #: guardafoto.php:471
     132#: guardafoto.php:472
    133133msgid "No downloadable files were returned for that link."
    134134msgstr ""
    135135
    136136#: guardafoto.php:222
    137 #: guardafoto.php:472
     137#: guardafoto.php:473
    138138msgid "Instagram profile photos cannot be downloaded: Meta shows them only to logged-in accounts."
    139139msgstr ""
    … …  
    144144
    145145#: guardafoto.php:226
    146 #: guardafoto.php:486
     146#: guardafoto.php:487
    147147msgid "Video file"
    148148msgstr ""
    149149
    150150#: guardafoto.php:228
    151 #: guardafoto.php:492
     151#: guardafoto.php:493
    152152msgid "YouTube"
    153153msgstr ""
    154154
    155155#: guardafoto.php:229
    156 #: guardafoto.php:493
     156#: guardafoto.php:494
    157157msgid "Spotify"
    158158msgstr ""
    159159
    160160#: guardafoto.php:230
    161 #: guardafoto.php:494
     161#: guardafoto.php:495
    162162msgid "Deezer"
    163163msgstr ""
    164164
    165165#: guardafoto.php:231
    166 #: guardafoto.php:495
     166#: guardafoto.php:496
    167167msgid "Apple Music"
    168168msgstr ""
    169169
    170170#: guardafoto.php:232
    171 #: guardafoto.php:496
     171#: guardafoto.php:497
    172172msgid "TikTok"
    173173msgstr ""
    174174
    175175#: guardafoto.php:233
    176 #: guardafoto.php:497
     176#: guardafoto.php:498
    177177msgid "Instagram"
    178178msgstr ""
    179179
    180180#: guardafoto.php:234
    181 #: guardafoto.php:498
     181#: guardafoto.php:499
    182182msgid "X"
    183183msgstr ""
    184184
    185185#: guardafoto.php:235
    186 #: guardafoto.php:499
     186#: guardafoto.php:500
    187187msgid "Twitch"
    188188msgstr ""
    189189
    190190#: guardafoto.php:238
    191 #: guardafoto.php:502
     191#: guardafoto.php:503
    192192msgid "Profile photo"
    193193msgstr ""
    194194
    195195#: guardafoto.php:239
    196 #: guardafoto.php:503
     196#: guardafoto.php:504
    197197msgid "Banner"
    198198msgstr ""
    199199
    200200#: guardafoto.php:240
    201 #: guardafoto.php:504
     201#: guardafoto.php:505
    202202msgid "Thumbnail"
    203203msgstr ""
    204204
    205205#: guardafoto.php:241
    206 #: guardafoto.php:505
     206#: guardafoto.php:506
    207207msgid "Cover"
    208208msgstr ""
    209209
    210210#: guardafoto.php:242
    211 #: guardafoto.php:506
     211#: guardafoto.php:507
    212212msgid "Image"
    213213msgstr ""
    214214
    215215#: guardafoto.php:246
    216 #: guardafoto.php:510
     216#: guardafoto.php:511
    217217msgid "Channel"
    218218msgstr ""
    219219
    220220#: guardafoto.php:248
    221 #: guardafoto.php:512
     221#: guardafoto.php:513
    222222msgid "Artist"
    223223msgstr ""
    224224
    225225#: guardafoto.php:249
    226 #: guardafoto.php:513
     226#: guardafoto.php:514
    227227msgid "Album"
    228228msgstr ""
    229229
    230230#: guardafoto.php:250
    231 #: guardafoto.php:514
     231#: guardafoto.php:515
    232232msgid "Song"
    233233msgstr ""
    234234
    235235#: guardafoto.php:251
    236 #: guardafoto.php:515
     236#: guardafoto.php:516
    237237msgid "Playlist"
    238238msgstr ""
    239239
    240240#: guardafoto.php:252
    241 #: guardafoto.php:516
     241#: guardafoto.php:517
    242242msgid "Podcast"
    243243msgstr ""
    244244
    245245#: guardafoto.php:253
    246 #: guardafoto.php:517
     246#: guardafoto.php:518
    247247msgid "Episode"
    248248msgstr ""
    249249
    250250#: guardafoto.php:254
    251 #: guardafoto.php:518
     251#: guardafoto.php:519
    252252msgid "Profile"
    253253msgstr ""
    254254
    255255#: guardafoto.php:255
    256 #: guardafoto.php:519
     256#: guardafoto.php:520
    257257msgid "Reel"
    258258msgstr ""
    259259
    260260#: guardafoto.php:256
    261 #: guardafoto.php:520
     261#: guardafoto.php:521
    262262msgid "Post"
    263263msgstr ""
    … …  
    277277
    278278#: guardafoto.php:459
     279msgid "GuardaFoto — Extract the photo here"
     280msgstr ""
     281
     282#: guardafoto.php:460
    279283msgid "Link"
    280284msgstr ""
    281285
    282 #: guardafoto.php:460
     286#: guardafoto.php:461
    283287msgid "https://www.youtube.com/watch?v=…"
    284288msgstr ""
    285289
    286 #: guardafoto.php:461
     290#: guardafoto.php:462
    287291msgid "Look up the photo"
    288292msgstr ""
    289293
    290 #: guardafoto.php:463
     294#: guardafoto.php:464
    291295msgid "Photo found. Download it or import it to the Media Library."
    292296msgstr ""
    293297
    294 #: guardafoto.php:464
     298#: guardafoto.php:465
    295299msgid "Found it. The photos and the video from that link are listed below."
    296300msgstr ""
    297301
    298 #: guardafoto.php:466
     302#: guardafoto.php:467
    299303msgid "That link is not supported. Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X or Twitch link."
    300304msgstr ""
    301305
    302 #: guardafoto.php:470
     306#: guardafoto.php:471
    303307msgid "The request could not be completed. Check the connection and try again."
    304308msgstr ""
    305309
    306 #: guardafoto.php:474
     310#: guardafoto.php:475
    307311msgid "Import to Media Library"
    308312msgstr ""
    309313
    310 #: guardafoto.php:475
     314#: guardafoto.php:476
    311315msgid "Importing…"
    312316msgstr ""
    313317
    314 #: guardafoto.php:476
     318#: guardafoto.php:477
    315319msgid "Imported ✓"
    316320msgstr ""
    317321
    318 #: guardafoto.php:477
     322#: guardafoto.php:478
    319323msgid "View in Media Library"
    320324msgstr ""
    321325
    322 #: guardafoto.php:478
     326#: guardafoto.php:479
    323327msgid "Import & set as featured image"
    324328msgstr ""
    325329
    326 #: guardafoto.php:479
     330#: guardafoto.php:480
    327331msgid "Featured image set ✓"
    328332msgstr ""
    329333
    330 #: guardafoto.php:480
     334#: guardafoto.php:481
    331335msgid "The photo was imported, but it could not be set as the featured image."
    332336msgstr ""
    333337
    334 #: guardafoto.php:481
     338#: guardafoto.php:482
    335339msgid "Import & insert into content"
    336340msgstr ""
    337341
    338 #: guardafoto.php:482
     342#: guardafoto.php:483
    339343msgid "Inserted into the content ✓"
    340344msgstr ""
    341345
    342 #: guardafoto.php:487
     346#: guardafoto.php:488
    343347msgid "Videos are download-only: this version does not import them into the Media Library."
    344348msgstr ""
    345349
    346 #: guardafoto.php:488
     350#: guardafoto.php:489
    347351msgid "This video is {size} and exceeds this site's upload limit ({limit}): it can only be downloaded."
    348352msgstr ""
    349353
    350 #: guardafoto.php:489
     354#: guardafoto.php:490
    351355msgid "The photo could not be imported."
    352356msgstr ""
    353357
    354 #: guardafoto.php:490
     358#: guardafoto.php:491
    355359msgid "You are not allowed to do that."
    356360msgstr ""
    357361
    358 #: guardafoto.php:599
     362#: guardafoto.php:600
    359363msgid "You are not allowed to use this tool."
    360364msgstr ""
  • guardafoto/tags/1.1.2/readme.txt

    r3791761 r3791779  
    55Tested up to: 7.1
    66Requires PHP: 7.4
    7 Stable tag: 1.1.1
     7Stable tag: 1.1.2
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    4343
    4444* A **GuardaFoto page in the admin menu**: paste a link, download each photo, or import it straight into your Media Library.
    45 * A **GuardaFoto panel in the block editor** while you write a post: import a photo and set it as the featured image, import it and insert it into the content, or just import it to the Media Library.
    46 * A **GuardaFoto meta box in the classic editor** with the same three actions: featured image (the featured-image box updates without reloading), insert into the content, or plain import.
     45* A **GuardaFoto panel in the block editor** while you write a post, in the document sidebar right by the featured image and titled **"GuardaFoto — Extract the photo here"**: import a photo and set it as the featured image, import it and insert it into the content, or just import it to the Media Library.
     46* A **GuardaFoto meta box in the classic editor**, in the side column next to the featured-image box with the same "Extract the photo here" title and the same three actions: featured image (the featured-image box updates without reloading), insert into the content, or plain import.
    4747
    4848The plugin adds no visible credit and no external links to the front end, and it makes no external request when it is activated or when a page is merely viewed. The external lookup described below happens only after a visitor submits a link in the tool, or after an administrator submits one in the dashboard page, the editor panel or the classic meta box.
    … …  
    1191192. A resolved result with its preview and verified download sizes.
    1201203. The GuardaFoto page in wp-admin: paste a link, download each photo or import it straight into the Media Library.
     1214. Writing a post: the "GuardaFoto — Extract the photo here" panel in the editor sidebar, next to the featured image, ready to import a photo without leaving the post.
    121122
    122123== Changelog ==
     124
     125= 1.1.2 =
     126* The block-editor panel is now titled "GuardaFoto — Extract the photo here" and sits in the document sidebar right by the featured image, open and ready while you write: paste a link and import the photo, set it as the featured image or insert it into the content — no hunting through menus.
     127* The classic-editor meta box moved to the side column with high priority, next to the featured-image box, with the same "Extract the photo here" title and the full set of actions adapted to the narrow column.
     128* Fixed the classic-editor lookup, which could not run inside the post edit form (a form cannot live inside another form): the box now works from a plain container, wired to its button and the Enter key.
     129* The new title is translated like everything else: in Spanish it reads "GuardaFoto — Extrae la foto aquí".
    123130
    124131= 1.1.1 =
    … …  
    151158== Upgrade Notice ==
    152159
     160= 1.1.2 =
     161The editor tool is now where you look for a photo: "GuardaFoto — Extract the photo here", next to the featured image in both editors.
     162
    153163= 1.1.1 =
    154164The whole plugin now speaks your site's language: complete English/Spanish internationalisation for the tool, the dashboard and the editor.
  • guardafoto/trunk/assets/admin.css

    r3791747 r3791779  
    199199}
    200200
     201/* Classic editor meta box: it sits in the narrow side column, next to
     202   the featured-image box — stack the controls and use a single column. */
     203#guardafoto .guardafoto-admin-controls {
     204        flex-direction: column;
     205}
     206
     207#guardafoto .guardafoto-admin-controls .button {
     208        width: 100%;
     209}
     210
     211#guardafoto .guardafoto-admin-grid {
     212        grid-template-columns: 1fr;
     213}
     214
     215#guardafoto .guardafoto-card-img {
     216        height: auto;
     217        max-height: 170px;
     218}
     219
     220#guardafoto .guardafoto-admin-input {
     221        width: 100%;
     222}
     223
    201224/* Block editor panel: stack the controls, cards in one column. */
    202225.guardafoto-editor-panel .guardafoto-admin-controls {
  • guardafoto/trunk/assets/admin.js

    r3791761 r3791779  
    434434                }
    435435
    436                 form.addEventListener('submit', function (event) {
     436                function onSubmit(event) {
    437437                        event.preventDefault();
    438438                        resetOutput();
    … …  
    472472                                input.disabled = false;
    473473                        });
    474                 });
     474                }
     475
     476                form.addEventListener('submit', onSubmit);
     477                if (form.tagName !== 'FORM') {
     478                        // Container variant (classic editor meta box, which lives inside
     479                        // the post edit form): there is no form submit, so the button
     480                        // click and the Enter key run the lookup instead.
     481                        button.addEventListener('click', onSubmit);
     482                        input.addEventListener('keydown', function (event) {
     483                                if (event.key === 'Enter') {
     484                                        onSubmit(event);
     485                                }
     486                        });
     487                }
    475488        }
    476489
  • guardafoto/trunk/assets/editor.js

    r3791761 r3791779  
    1818        var createElement = element.createElement;
    1919        var useState = element.useState;
     20        var useEffect = element.useEffect;
    2021        var Button = components ? components.Button : null;
     22
     23        var PANEL_ID = 'guardafoto/guardafoto-panel';
     24
     25        /*
     26         * Open the GuardaFoto document panel when the editor loads, so the
     27         * "Extract the photo here" box is already visible in the sidebar —
     28         * next to the featured image — without the author hunting for it.
     29         * The panel state lives in the editor store on current WordPress
     30         * and in the edit-post store on older versions; try both.
     31         */
     32        function openPanelOnLoad() {
     33                if (!data || !data.select || !data.dispatch) {
     34                        return;
     35                }
     36                var stores = ['core/editor', 'core/edit-post'];
     37                for (var i = 0; i < stores.length; i++) {
     38                        try {
     39                                var selector = data.select(stores[i]);
     40                                var dispatcher = data.dispatch(stores[i]);
     41                                if (
     42                                        selector &&
     43                                        dispatcher &&
     44                                        typeof selector.isEditorPanelOpened === 'function' &&
     45                                        typeof dispatcher.toggleEditorPanelOpened === 'function'
     46                                ) {
     47                                        if (!selector.isEditorPanelOpened(PANEL_ID)) {
     48                                                dispatcher.toggleEditorPanelOpened(PANEL_ID);
     49                                        }
     50                                        return;
     51                                }
     52                        } catch (error) {
     53                                /* Store not available in this version; try the next one. */
     54                        }
     55                }
     56        }
    2157
    2258        var config = window.guardafotoAdminConfig || {};
    … …  
    178214                var setNotes = notesState[1];
    179215
     216                if (useEffect) {
     217                        useEffect(function () {
     218                                openPanelOnLoad();
     219                        }, []);
     220                }
     221
    180222                function setNote(index, message, ok) {
    181223                        var next = {};
    … …  
    497539                        {
    498540                                name: 'guardafoto-panel',
    499                                 title: 'GuardaFoto',
     541                                className: 'guardafoto-extract-panel',
     542                                title: text.panelTitle || 'GuardaFoto — Extract the photo here',
    500543                                icon: 'download'
    501544                        },
  • guardafoto/trunk/guardafoto.php

    r3791761 r3791779  
    44 * Plugin URI:        https://guardafoto.com/
    55 * Description:       Adds a free tool that lets visitors paste a YouTube, Spotify, Deezer or Apple Music link and download its public profile photo, banner, thumbnail or cover in the sizes published by the platform — and download the video itself from TikTok and Instagram links. Includes a dashboard tool to import photos straight into the Media Library.
    6  * Version:           1.1.1
     6 * Version:           1.1.2
    77 * Requires at least: 5.8
    88 * Requires PHP:      7.4
    … …  
    2121}
    2222
    23 define( 'GUARDAFOTO_VERSION', '1.1.1' );
     23define( 'GUARDAFOTO_VERSION', '1.1.2' );
    2424define( 'GUARDAFOTO_API_ENDPOINT', 'https://guardafoto.com/api/resolve' );
    2525
    … …  
    457457                'intro'          => __( 'Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X or Twitch link. You can download each photo, or import it straight into this site\'s Media Library.', 'guardafoto' ),
    458458                'editorIntro'    => __( 'Paste a public link and use its photo in this post: import it to the Media Library, set it as the featured image, or insert it into the content.', 'guardafoto' ),
     459                'panelTitle'     => __( 'GuardaFoto — Extract the photo here', 'guardafoto' ),
    459460                'label'          => __( 'Link', 'guardafoto' ),
    460461                'placeholder'    => __( 'https://www.youtube.com/watch?v=…', 'guardafoto' ),
    … …  
    540541        <div class="guardafoto-admin" data-guardafoto-admin data-context="<?php echo esc_attr( $context ); ?>" data-post-id="<?php echo esc_attr( (string) $post_id ); ?>">
    541542                <p class="guardafoto-admin-intro"><?php echo esc_html( $intro ); ?></p>
    542                 <form class="guardafoto-admin-form" data-guardafoto-admin-form novalidate>
     543                <?php
     544                // In the classic editor the meta box lives inside the post edit
     545                // form, and a nested <form> is dropped by the browser's parser —
     546                // so there the lookup box uses a plain container and a button of
     547                // type "button", and admin.js wires the click and the Enter key
     548                // instead of a form submit.
     549                if ( 'classic' === $context ) :
     550                        ?>
     551                        <div class="guardafoto-admin-form" data-guardafoto-admin-form>
     552                        <?php else : ?>
     553                        <form class="guardafoto-admin-form" data-guardafoto-admin-form novalidate>
     554                        <?php endif; ?>
    543555                        <label class="guardafoto-admin-label" for="<?php echo esc_attr( $input_id ); ?>"><?php echo esc_html( $strings['label'] ); ?></label>
    544556                        <div class="guardafoto-admin-controls">
    … …  
    553565                                        placeholder="<?php echo esc_attr( $strings['placeholder'] ); ?>"
    554566                                >
    555                                 <button class="button button-primary guardafoto-admin-button" type="submit"><?php echo esc_html( $strings['button'] ); ?></button>
     567                                <button class="button button-primary guardafoto-admin-button" type="<?php echo 'classic' === $context ? 'button' : 'submit'; ?>"><?php echo esc_html( $strings['button'] ); ?></button>
    556568                        </div>
    557                 </form>
     569                <?php echo 'classic' === $context ? '</div>' : '</form>'; ?>
    558570                <div class="guardafoto-admin-status" data-guardafoto-admin-status role="status" aria-live="polite" hidden></div>
    559571                <div class="guardafoto-admin-error" data-guardafoto-admin-error role="alert" hidden></div>
    … …  
    610622 * block editor (the block editor gets its own GuardaFoto panel instead).
    611623 *
     624 * The box lives in the side column with high priority, right where the
     625 * featured-image box is, and carries the same "Extract the photo here"
     626 * title as the block-editor panel, so the tool is found where the author
     627 * is already looking for a photo.
     628 *
    612629 * @return void
    613630 */
    … …  
    616633                return;
    617634        }
     635
     636        $strings = guardafoto_admin_strings();
    618637
    619638        $screens = get_post_types( array( 'public' => true ), 'names' );
    … …  
    627646                add_meta_box(
    628647                        'guardafoto',
    629                         'GuardaFoto',
     648                        $strings['panelTitle'],
    630649                        'guardafoto_meta_box_render',
    631650                        $screen,
    632651                        'side',
    633                         'default'
     652                        'high'
    634653                );
    635654        }
    … …  
    713732                'guardafoto-editor',
    714733                plugins_url( 'assets/editor.js', __FILE__ ),
    715                 array( 'wp-plugins', 'wp-edit-post', 'wp-element', 'wp-components', 'wp-data', 'wp-blocks' ),
     734                array( 'wp-plugins', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-components', 'wp-data', 'wp-blocks' ),
    716735                GUARDAFOTO_VERSION,
    717736                true
  • guardafoto/trunk/languages/guardafoto-es_ES.po

    r3791761 r3791779  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: GuardaFoto 1.1.1
    6 "
    7 "Report-Msgid-Bugs-To: https://guardafoto.com/contact/
    8 "
    9 "Last-Translator: A3Q Global
    10 "
    11 "Language-Team: Español
    12 "
    13 "Language: es_ES
    14 "
    15 "MIME-Version: 1.0
    16 "
    17 "Content-Type: text/plain; charset=UTF-8
    18 "
    19 "Content-Transfer-Encoding: 8bit
    20 "
    21 "Plural-Forms: nplurals=2; plural=(n != 1);
    22 "
    23 
     5"Project-Id-Version: GuardaFoto 1.1.2\n"
     6"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/guardafoto\n"
     7"POT-Creation-Date: 2026-11-09T03:08:38+00:00\n"
     8"PO-Revision-Date: 2026-11-08 19:10-0800\n"
     9"Last-Translator: A3Q Global\n"
     10"Language-Team: Español\n"
     11"Language: es_ES\n"
     12"MIME-Version: 1.0\n"
     13"Content-Type: text/plain; charset=UTF-8\n"
     14"Content-Transfer-Encoding: 8bit\n"
     15"Plural-Forms: nplurals=2; plural=(n != 1);\n"
    2416
    2517#. Plugin Name of the plugin
    26 #: guardafoto.php
    27 #: guardafoto.php:412
     18#: guardafoto.php guardafoto.php:412
    2819msgid "GuardaFoto"
    2920msgstr "GuardaFoto"
    … …  
    3627#. Description of the plugin
    3728#: guardafoto.php
    38 msgid "Adds a free tool that lets visitors paste a YouTube, Spotify, Deezer or Apple Music link and download its public profile photo, banner, thumbnail or cover in the sizes published by the platform — and download the video itself from TikTok and Instagram links. Includes a dashboard tool to import photos straight into the Media Library."
    39 msgstr "Añade una herramienta gratuita que permite a los visitantes pegar un enlace de YouTube, Spotify, Deezer o Apple Music y descargar su foto de perfil, banner, miniatura o portada pública en los tamaños que publica la plataforma, y descargar el propio video desde enlaces de TikTok e Instagram. Incluye una herramienta en el panel para importar fotos directamente a la biblioteca de medios."
     29msgid ""
     30"Adds a free tool that lets visitors paste a YouTube, Spotify, Deezer or "
     31"Apple Music link and download its public profile photo, banner, thumbnail or "
     32"cover in the sizes published by the platform — and download the video itself "
     33"from TikTok and Instagram links. Includes a dashboard tool to import photos "
     34"straight into the Media Library."
     35msgstr ""
     36"Añade una herramienta gratuita que permite a los visitantes pegar un enlace "
     37"de YouTube, Spotify, Deezer o Apple Music y descargar su foto de perfil, "
     38"banner, miniatura o portada pública en los tamaños que publica la "
     39"plataforma, y descargar el propio video desde enlaces de TikTok e Instagram. "
     40"Incluye una herramienta en el panel para importar fotos directamente a la "
     41"biblioteca de medios."
    4042
    4143#. Author of the plugin
    … …  
    5153#: guardafoto.php:189
    5254msgid "Paste a YouTube, Spotify, Deezer, Apple Music, TikTok or Instagram link"
    53 msgstr "Pega un enlace de YouTube, Spotify, Deezer, Apple Music, TikTok o Instagram"
     55msgstr ""
     56"Pega un enlace de YouTube, Spotify, Deezer, Apple Music, TikTok o Instagram"
    5457
    5558#: guardafoto.php:190
    … …  
    6265
    6366#: guardafoto.php:192
    64 msgid "Works with YouTube channels and videos, plus supported artists, albums, songs and playlists — and with public TikTok and Instagram videos."
    65 msgstr "Funciona con canales y videos de YouTube, artistas, álbumes, canciones y playlists compatibles, y con los videos públicos de TikTok e Instagram."
    66 
    67 #: guardafoto.php:193
    68 #: guardafoto.php:212
    69 #: guardafoto.php:462
     67msgid ""
     68"Works with YouTube channels and videos, plus supported artists, albums, "
     69"songs and playlists — and with public TikTok and Instagram videos."
     70msgstr ""
     71"Funciona con canales y videos de YouTube, artistas, álbumes, canciones y "
     72"playlists compatibles, y con los videos públicos de TikTok e Instagram."
     73
     74#: guardafoto.php:193 guardafoto.php:212 guardafoto.php:463
    7075msgid "Looking up the photo…"
    7176msgstr "Buscando la foto…"
    … …  
    7580msgstr "Resultado de GuardaFoto"
    7681
    77 #: guardafoto.php:195
    78 #: guardafoto.php:483
     82#: guardafoto.php:195 guardafoto.php:484
    7983msgid "Type"
    8084msgstr "Tipo"
    8185
    82 #: guardafoto.php:196
    83 #: guardafoto.php:484
     86#: guardafoto.php:196 guardafoto.php:485
    8487msgid "Size"
    8588msgstr "Tamaño"
    8689
    87 #: guardafoto.php:197
    88 #: guardafoto.php:223
    89 #: guardafoto.php:473
     90#: guardafoto.php:197 guardafoto.php:223 guardafoto.php:474
    9091msgid "Download"
    9192msgstr "Descargar"
    9293
    93 #: guardafoto.php:198
    94 #: guardafoto.php:225
    95 #: guardafoto.php:243
    96 #: guardafoto.php:247
    97 #: guardafoto.php:485
    98 #: guardafoto.php:507
    99 #: guardafoto.php:511
     94#: guardafoto.php:198 guardafoto.php:225 guardafoto.php:243 guardafoto.php:247
     95#: guardafoto.php:486 guardafoto.php:508 guardafoto.php:512
    10096msgid "Video"
    10197msgstr "Video"
    … …  
    106102
    107103#: guardafoto.php:214
    108 msgid "Found it. The files are listed below — pick a size or the video to download."
    109 msgstr "Listo. Abajo están los archivos: elige un tamaño o el video para descargar."
    110 
    111 #: guardafoto.php:215
    112 #: guardafoto.php:465
     104msgid ""
     105"Found it. The files are listed below — pick a size or the video to download."
     106msgstr ""
     107"Listo. Abajo están los archivos: elige un tamaño o el video para descargar."
     108
     109#: guardafoto.php:215 guardafoto.php:466
    113110msgid "Paste a link first."
    114111msgstr "Primero pega un enlace."
    115112
    116113#: guardafoto.php:216
    117 msgid "That link is not supported. Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok or Instagram link."
    118 msgstr "Ese enlace no es compatible. Pega un enlace público de YouTube, Spotify, Deezer, Apple Music, TikTok o Instagram."
    119 
    120 #: guardafoto.php:217
    121 #: guardafoto.php:467
     114msgid ""
     115"That link is not supported. Paste a public YouTube, Spotify, Deezer, Apple "
     116"Music, TikTok or Instagram link."
     117msgstr ""
     118"Ese enlace no es compatible. Pega un enlace público de YouTube, Spotify, "
     119"Deezer, Apple Music, TikTok o Instagram."
     120
     121#: guardafoto.php:217 guardafoto.php:468
    122122msgid "That link could not be found, or it is not public."
    123123msgstr "Ese enlace no se encontró o no es público."
    124124
    125 #: guardafoto.php:218
    126 #: guardafoto.php:468
     125#: guardafoto.php:218 guardafoto.php:469
    127126msgid "Too many lookups right now. Please wait a moment and try again."
    128 msgstr "Hay demasiadas búsquedas en este momento. Espera un momento e inténtalo de nuevo."
    129 
    130 #: guardafoto.php:219
    131 #: guardafoto.php:469
    132 msgid "The lookup service could not complete that request. Please try again in a moment."
    133 msgstr "El servicio de búsqueda no pudo completar la solicitud. Inténtalo de nuevo en un momento."
     127msgstr ""
     128"Hay demasiadas búsquedas en este momento. Espera un momento e inténtalo de "
     129"nuevo."
     130
     131#: guardafoto.php:219 guardafoto.php:470
     132msgid ""
     133"The lookup service could not complete that request. Please try again in a "
     134"moment."
     135msgstr ""
     136"El servicio de búsqueda no pudo completar la solicitud. Inténtalo de nuevo "
     137"en un momento."
    134138
    135139#: guardafoto.php:220
    136 msgid "The photo service could not be reached. Check your connection and try again."
    137 msgstr "No se pudo contactar con el servicio de fotos. Revisa tu conexión e inténtalo de nuevo."
    138 
    139 #: guardafoto.php:221
    140 #: guardafoto.php:471
     140msgid ""
     141"The photo service could not be reached. Check your connection and try again."
     142msgstr ""
     143"No se pudo contactar con el servicio de fotos. Revisa tu conexión e "
     144"inténtalo de nuevo."
     145
     146#: guardafoto.php:221 guardafoto.php:472
    141147msgid "No downloadable files were returned for that link."
    142148msgstr "No se devolvieron archivos descargables para ese enlace."
    143149
    144 #: guardafoto.php:222
    145 #: guardafoto.php:472
    146 msgid "Instagram profile photos cannot be downloaded: Meta shows them only to logged-in accounts."
    147 msgstr "Las fotos de perfil de Instagram no se pueden descargar: Meta solo las muestra a cuentas con la sesión iniciada."
     150#: guardafoto.php:222 guardafoto.php:473
     151msgid ""
     152"Instagram profile photos cannot be downloaded: Meta shows them only to "
     153"logged-in accounts."
     154msgstr ""
     155"Las fotos de perfil de Instagram no se pueden descargar: Meta solo las "
     156"muestra a cuentas con la sesión iniciada."
    148157
    149158#: guardafoto.php:224
    … …  
    151160msgstr "Archivo"
    152161
    153 #: guardafoto.php:226
    154 #: guardafoto.php:486
     162#: guardafoto.php:226 guardafoto.php:487
    155163msgid "Video file"
    156164msgstr "Archivo de video"
    157165
    158 #: guardafoto.php:228
    159 #: guardafoto.php:492
     166#: guardafoto.php:228 guardafoto.php:493
    160167msgid "YouTube"
    161168msgstr "YouTube"
    162169
    163 #: guardafoto.php:229
    164 #: guardafoto.php:493
     170#: guardafoto.php:229 guardafoto.php:494
    165171msgid "Spotify"
    166172msgstr "Spotify"
    167173
    168 #: guardafoto.php:230
    169 #: guardafoto.php:494
     174#: guardafoto.php:230 guardafoto.php:495
    170175msgid "Deezer"
    171176msgstr "Deezer"
    172177
    173 #: guardafoto.php:231
    174 #: guardafoto.php:495
     178#: guardafoto.php:231 guardafoto.php:496
    175179msgid "Apple Music"
    176180msgstr "Apple Music"
    177181
    178 #: guardafoto.php:232
    179 #: guardafoto.php:496
     182#: guardafoto.php:232 guardafoto.php:497
    180183msgid "TikTok"
    181184msgstr "TikTok"
    182185
    183 #: guardafoto.php:233
    184 #: guardafoto.php:497
     186#: guardafoto.php:233 guardafoto.php:498
    185187msgid "Instagram"
    186188msgstr "Instagram"
    187189
    188 #: guardafoto.php:234
    189 #: guardafoto.php:498
     190#: guardafoto.php:234 guardafoto.php:499
    190191msgid "X"
    191192msgstr "X"
    192193
    193 #: guardafoto.php:235
    194 #: guardafoto.php:499
     194#: guardafoto.php:235 guardafoto.php:500
    195195msgid "Twitch"
    196196msgstr "Twitch"
    197197
    198 #: guardafoto.php:238
    199 #: guardafoto.php:502
     198#: guardafoto.php:238 guardafoto.php:503
    200199msgid "Profile photo"
    201200msgstr "Foto de perfil"
    202201
    203 #: guardafoto.php:239
    204 #: guardafoto.php:503
     202#: guardafoto.php:239 guardafoto.php:504
    205203msgid "Banner"
    206204msgstr "Banner"
    207205
    208 #: guardafoto.php:240
    209 #: guardafoto.php:504
     206#: guardafoto.php:240 guardafoto.php:505
    210207msgid "Thumbnail"
    211208msgstr "Miniatura"
    212209
    213 #: guardafoto.php:241
    214 #: guardafoto.php:505
     210#: guardafoto.php:241 guardafoto.php:506
    215211msgid "Cover"
    216212msgstr "Portada"
    217213
    218 #: guardafoto.php:242
    219 #: guardafoto.php:506
     214#: guardafoto.php:242 guardafoto.php:507
    220215msgid "Image"
    221216msgstr "Imagen"
    222217
    223 #: guardafoto.php:246
    224 #: guardafoto.php:510
     218#: guardafoto.php:246 guardafoto.php:511
    225219msgid "Channel"
    226220msgstr "Canal"
    227221
    228 #: guardafoto.php:248
    229 #: guardafoto.php:512
     222#: guardafoto.php:248 guardafoto.php:513
    230223msgid "Artist"
    231224msgstr "Artista"
    232225
    233 #: guardafoto.php:249
    234 #: guardafoto.php:513
     226#: guardafoto.php:249 guardafoto.php:514
    235227msgid "Album"
    236228msgstr "Álbum"
    237229
    238 #: guardafoto.php:250
    239 #: guardafoto.php:514
     230#: guardafoto.php:250 guardafoto.php:515
    240231msgid "Song"
    241232msgstr "Canción"
    242233
    243 #: guardafoto.php:251
    244 #: guardafoto.php:515
     234#: guardafoto.php:251 guardafoto.php:516
    245235msgid "Playlist"
    246236msgstr "Playlist"
    247237
    248 #: guardafoto.php:252
    249 #: guardafoto.php:516
     238#: guardafoto.php:252 guardafoto.php:517
    250239msgid "Podcast"
    251240msgstr "Pódcast"
    252241
    253 #: guardafoto.php:253
    254 #: guardafoto.php:517
     242#: guardafoto.php:253 guardafoto.php:518
    255243msgid "Episode"
    256244msgstr "Episodio"
    257245
    258 #: guardafoto.php:254
    259 #: guardafoto.php:518
     246#: guardafoto.php:254 guardafoto.php:519
    260247msgid "Profile"
    261248msgstr "Perfil"
    262249
    263 #: guardafoto.php:255
    264 #: guardafoto.php:519
     250#: guardafoto.php:255 guardafoto.php:520
    265251msgid "Reel"
    266252msgstr "Reel"
    267253
    268 #: guardafoto.php:256
    269 #: guardafoto.php:520
     254#: guardafoto.php:256 guardafoto.php:521
    270255msgid "Post"
    271256msgstr "Publicación"
    272257
    273 #: guardafoto.php:413
    274 #: assets/block.js:21
    275 msgid "Add a public profile photo, banner, thumbnail and cover downloader using the free GuardaFoto API."
    276 msgstr "Añade un descargador de fotos de perfil, banners, miniaturas y portadas públicas con la API gratuita de GuardaFoto."
     258#: guardafoto.php:413 assets/block.js:21
     259msgid ""
     260"Add a public profile photo, banner, thumbnail and cover downloader using the "
     261"free GuardaFoto API."
     262msgstr ""
     263"Añade un descargador de fotos de perfil, banners, miniaturas y portadas "
     264"públicas con la API gratuita de GuardaFoto."
    277265
    278266#: guardafoto.php:457
    279 msgid "Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X or Twitch link. You can download each photo, or import it straight into this site's Media Library."
    280 msgstr "Pega un enlace público de YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X o Twitch. Podrás descargar cada foto o importarla directamente a la biblioteca de medios de este sitio."
     267msgid ""
     268"Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X "
     269"or Twitch link. You can download each photo, or import it straight into this "
     270"site's Media Library."
     271msgstr ""
     272"Pega un enlace público de YouTube, Spotify, Deezer, Apple Music, TikTok, "
     273"Instagram, X o Twitch. Podrás descargar cada foto o importarla directamente "
     274"a la biblioteca de medios de este sitio."
    281275
    282276#: guardafoto.php:458
    283 msgid "Paste a public link and use its photo in this post: import it to the Media Library, set it as the featured image, or insert it into the content."
    284 msgstr "Pega un enlace público y usa su foto en esta entrada: impórtala a Medios, ponla como imagen destacada o insértala en el contenido."
     277msgid ""
     278"Paste a public link and use its photo in this post: import it to the Media "
     279"Library, set it as the featured image, or insert it into the content."
     280msgstr ""
     281"Pega un enlace público y usa su foto en esta entrada: impórtala a Medios, "
     282"ponla como imagen destacada o insértala en el contenido."
    285283
    286284#: guardafoto.php:459
     285msgid "GuardaFoto — Extract the photo here"
     286msgstr "GuardaFoto — Extrae la foto aquí"
     287
     288#: guardafoto.php:460
    287289msgid "Link"
    288290msgstr "Enlace"
    289291
    290 #: guardafoto.php:460
     292#: guardafoto.php:461
    291293msgid "https://www.youtube.com/watch?v=…"
    292294msgstr "https://www.youtube.com/watch?v=…"
    293295
    294 #: guardafoto.php:461
     296#: guardafoto.php:462
    295297msgid "Look up the photo"
    296298msgstr "Buscar la foto"
    297299
    298 #: guardafoto.php:463
     300#: guardafoto.php:464
    299301msgid "Photo found. Download it or import it to the Media Library."
    300302msgstr "Foto encontrada. Descárgala o impórtala a Medios."
    301303
    302 #: guardafoto.php:464
     304#: guardafoto.php:465
    303305msgid "Found it. The photos and the video from that link are listed below."
    304306msgstr "Listo. Abajo están las fotos y el video de ese enlace."
    305307
    306 #: guardafoto.php:466
    307 msgid "That link is not supported. Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X or Twitch link."
    308 msgstr "Ese enlace no es compatible. Pega un enlace público de YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X o Twitch."
    309 
    310 #: guardafoto.php:470
     308#: guardafoto.php:467
     309msgid ""
     310"That link is not supported. Paste a public YouTube, Spotify, Deezer, Apple "
     311"Music, TikTok, Instagram, X or Twitch link."
     312msgstr ""
     313"Ese enlace no es compatible. Pega un enlace público de YouTube, Spotify, "
     314"Deezer, Apple Music, TikTok, Instagram, X o Twitch."
     315
     316#: guardafoto.php:471
    311317msgid "The request could not be completed. Check the connection and try again."
    312 msgstr "No se pudo completar la petición. Revisa la conexión e inténtalo de nuevo."
    313 
    314 #: guardafoto.php:474
     318msgstr ""
     319"No se pudo completar la petición. Revisa la conexión e inténtalo de nuevo."
     320
     321#: guardafoto.php:475
    315322msgid "Import to Media Library"
    316323msgstr "Importar a Medios"
    317324
    318 #: guardafoto.php:475
     325#: guardafoto.php:476
    319326msgid "Importing…"
    320327msgstr "Importando…"
    321328
    322 #: guardafoto.php:476
     329#: guardafoto.php:477
    323330msgid "Imported ✓"
    324331msgstr "Importada ✓"
    325332
    326 #: guardafoto.php:477
     333#: guardafoto.php:478
    327334msgid "View in Media Library"
    328335msgstr "Ver en Medios"
    329336
    330 #: guardafoto.php:478
     337#: guardafoto.php:479
    331338msgid "Import & set as featured image"
    332339msgstr "Importar y poner como imagen destacada"
    333340
    334 #: guardafoto.php:479
     341#: guardafoto.php:480
    335342msgid "Featured image set ✓"
    336343msgstr "Imagen destacada puesta ✓"
    337344
    338 #: guardafoto.php:480
     345#: guardafoto.php:481
    339346msgid "The photo was imported, but it could not be set as the featured image."
    340347msgstr "La foto se importó, pero no se pudo poner como destacada."
    341348
    342 #: guardafoto.php:481
     349#: guardafoto.php:482
    343350msgid "Import & insert into content"
    344351msgstr "Importar e insertar en el contenido"
    345352
    346 #: guardafoto.php:482
     353#: guardafoto.php:483
    347354msgid "Inserted into the content ✓"
    348355msgstr "Insertada en el contenido ✓"
    349356
    350 #: guardafoto.php:487
    351 msgid "Videos are download-only: this version does not import them into the Media Library."
    352 msgstr "Los videos solo se descargan: en esta versión no se importan a la biblioteca de medios."
    353 
    354357#: guardafoto.php:488
    355 msgid "This video is {size} and exceeds this site's upload limit ({limit}): it can only be downloaded."
    356 msgstr "Este video pesa {size} y supera el límite de subida de este sitio ({limit}): solo se puede descargar."
     358msgid ""
     359"Videos are download-only: this version does not import them into the Media "
     360"Library."
     361msgstr ""
     362"Los videos solo se descargan: en esta versión no se importan a la biblioteca "
     363"de medios."
    357364
    358365#: guardafoto.php:489
     366msgid ""
     367"This video is {size} and exceeds this site's upload limit ({limit}): it can "
     368"only be downloaded."
     369msgstr ""
     370"Este video pesa {size} y supera el límite de subida de este sitio ({limit}): "
     371"solo se puede descargar."
     372
     373#: guardafoto.php:490
    359374msgid "The photo could not be imported."
    360375msgstr "No se pudo importar la foto."
    361376
    362 #: guardafoto.php:490
     377#: guardafoto.php:491
    363378msgid "You are not allowed to do that."
    364379msgstr "No tienes permiso para hacer eso."
    365380
    366 #: guardafoto.php:599
     381#: guardafoto.php:600
    367382msgid "You are not allowed to use this tool."
    368383msgstr "No tienes permiso para usar esta herramienta."
    … …  
    375390msgid "Automatic (site language)"
    376391msgstr "Automático (idioma del sitio)"
    377 
  • guardafoto/trunk/languages/guardafoto.pot

    r3791761 r3791779  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: GuardaFoto 1.1.1\n"
     5"Project-Id-Version: GuardaFoto 1.1.2\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/guardafoto\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-11-09T02:47:37+00:00\n"
     12"POT-Creation-Date: 2026-11-09T03:08:38+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
    … …  
    5959#: guardafoto.php:193
    6060#: guardafoto.php:212
    61 #: guardafoto.php:462
     61#: guardafoto.php:463
    6262msgid "Looking up the photo…"
    6363msgstr ""
    … …  
    6868
    6969#: guardafoto.php:195
    70 #: guardafoto.php:483
     70#: guardafoto.php:484
    7171msgid "Type"
    7272msgstr ""
    7373
    7474#: guardafoto.php:196
    75 #: guardafoto.php:484
     75#: guardafoto.php:485
    7676msgid "Size"
    7777msgstr ""
    … …  
    7979#: guardafoto.php:197
    8080#: guardafoto.php:223
    81 #: guardafoto.php:473
     81#: guardafoto.php:474
    8282msgid "Download"
    8383msgstr ""
    … …  
    8787#: guardafoto.php:243
    8888#: guardafoto.php:247
    89 #: guardafoto.php:485
    90 #: guardafoto.php:507
    91 #: guardafoto.php:511
     89#: guardafoto.php:486
     90#: guardafoto.php:508
     91#: guardafoto.php:512
    9292msgid "Video"
    9393msgstr ""
    … …  
    102102
    103103#: guardafoto.php:215
    104 #: guardafoto.php:465
     104#: guardafoto.php:466
    105105msgid "Paste a link first."
    106106msgstr ""
    … …  
    111111
    112112#: guardafoto.php:217
    113 #: guardafoto.php:467
     113#: guardafoto.php:468
    114114msgid "That link could not be found, or it is not public."
    115115msgstr ""
    116116
    117117#: guardafoto.php:218
    118 #: guardafoto.php:468
     118#: guardafoto.php:469
    119119msgid "Too many lookups right now. Please wait a moment and try again."
    120120msgstr ""
    121121
    122122#: guardafoto.php:219
    123 #: guardafoto.php:469
     123#: guardafoto.php:470
    124124msgid "The lookup service could not complete that request. Please try again in a moment."
    125125msgstr ""
    … …  
    130130
    131131#: guardafoto.php:221
    132 #: guardafoto.php:471
     132#: guardafoto.php:472
    133133msgid "No downloadable files were returned for that link."
    134134msgstr ""
    135135
    136136#: guardafoto.php:222
    137 #: guardafoto.php:472
     137#: guardafoto.php:473
    138138msgid "Instagram profile photos cannot be downloaded: Meta shows them only to logged-in accounts."
    139139msgstr ""
    … …  
    144144
    145145#: guardafoto.php:226
    146 #: guardafoto.php:486
     146#: guardafoto.php:487
    147147msgid "Video file"
    148148msgstr ""
    149149
    150150#: guardafoto.php:228
    151 #: guardafoto.php:492
     151#: guardafoto.php:493
    152152msgid "YouTube"
    153153msgstr ""
    154154
    155155#: guardafoto.php:229
    156 #: guardafoto.php:493
     156#: guardafoto.php:494
    157157msgid "Spotify"
    158158msgstr ""
    159159
    160160#: guardafoto.php:230
    161 #: guardafoto.php:494
     161#: guardafoto.php:495
    162162msgid "Deezer"
    163163msgstr ""
    164164
    165165#: guardafoto.php:231
    166 #: guardafoto.php:495
     166#: guardafoto.php:496
    167167msgid "Apple Music"
    168168msgstr ""
    169169
    170170#: guardafoto.php:232
    171 #: guardafoto.php:496
     171#: guardafoto.php:497
    172172msgid "TikTok"
    173173msgstr ""
    174174
    175175#: guardafoto.php:233
    176 #: guardafoto.php:497
     176#: guardafoto.php:498
    177177msgid "Instagram"
    178178msgstr ""
    179179
    180180#: guardafoto.php:234
    181 #: guardafoto.php:498
     181#: guardafoto.php:499
    182182msgid "X"
    183183msgstr ""
    184184
    185185#: guardafoto.php:235
    186 #: guardafoto.php:499
     186#: guardafoto.php:500
    187187msgid "Twitch"
    188188msgstr ""
    189189
    190190#: guardafoto.php:238
    191 #: guardafoto.php:502
     191#: guardafoto.php:503
    192192msgid "Profile photo"
    193193msgstr ""
    194194
    195195#: guardafoto.php:239
    196 #: guardafoto.php:503
     196#: guardafoto.php:504
    197197msgid "Banner"
    198198msgstr ""
    199199
    200200#: guardafoto.php:240
    201 #: guardafoto.php:504
     201#: guardafoto.php:505
    202202msgid "Thumbnail"
    203203msgstr ""
    204204
    205205#: guardafoto.php:241
    206 #: guardafoto.php:505
     206#: guardafoto.php:506
    207207msgid "Cover"
    208208msgstr ""
    209209
    210210#: guardafoto.php:242
    211 #: guardafoto.php:506
     211#: guardafoto.php:507
    212212msgid "Image"
    213213msgstr ""
    214214
    215215#: guardafoto.php:246
    216 #: guardafoto.php:510
     216#: guardafoto.php:511
    217217msgid "Channel"
    218218msgstr ""
    219219
    220220#: guardafoto.php:248
    221 #: guardafoto.php:512
     221#: guardafoto.php:513
    222222msgid "Artist"
    223223msgstr ""
    224224
    225225#: guardafoto.php:249
    226 #: guardafoto.php:513
     226#: guardafoto.php:514
    227227msgid "Album"
    228228msgstr ""
    229229
    230230#: guardafoto.php:250
    231 #: guardafoto.php:514
     231#: guardafoto.php:515
    232232msgid "Song"
    233233msgstr ""
    234234
    235235#: guardafoto.php:251
    236 #: guardafoto.php:515
     236#: guardafoto.php:516
    237237msgid "Playlist"
    238238msgstr ""
    239239
    240240#: guardafoto.php:252
    241 #: guardafoto.php:516
     241#: guardafoto.php:517
    242242msgid "Podcast"
    243243msgstr ""
    244244
    245245#: guardafoto.php:253
    246 #: guardafoto.php:517
     246#: guardafoto.php:518
    247247msgid "Episode"
    248248msgstr ""
    249249
    250250#: guardafoto.php:254
    251 #: guardafoto.php:518
     251#: guardafoto.php:519
    252252msgid "Profile"
    253253msgstr ""
    254254
    255255#: guardafoto.php:255
    256 #: guardafoto.php:519
     256#: guardafoto.php:520
    257257msgid "Reel"
    258258msgstr ""
    259259
    260260#: guardafoto.php:256
    261 #: guardafoto.php:520
     261#: guardafoto.php:521
    262262msgid "Post"
    263263msgstr ""
    … …  
    277277
    278278#: guardafoto.php:459
     279msgid "GuardaFoto — Extract the photo here"
     280msgstr ""
     281
     282#: guardafoto.php:460
    279283msgid "Link"
    280284msgstr ""
    281285
    282 #: guardafoto.php:460
     286#: guardafoto.php:461
    283287msgid "https://www.youtube.com/watch?v=…"
    284288msgstr ""
    285289
    286 #: guardafoto.php:461
     290#: guardafoto.php:462
    287291msgid "Look up the photo"
    288292msgstr ""
    289293
    290 #: guardafoto.php:463
     294#: guardafoto.php:464
    291295msgid "Photo found. Download it or import it to the Media Library."
    292296msgstr ""
    293297
    294 #: guardafoto.php:464
     298#: guardafoto.php:465
    295299msgid "Found it. The photos and the video from that link are listed below."
    296300msgstr ""
    297301
    298 #: guardafoto.php:466
     302#: guardafoto.php:467
    299303msgid "That link is not supported. Paste a public YouTube, Spotify, Deezer, Apple Music, TikTok, Instagram, X or Twitch link."
    300304msgstr ""
    301305
    302 #: guardafoto.php:470
     306#: guardafoto.php:471
    303307msgid "The request could not be completed. Check the connection and try again."
    304308msgstr ""
    305309
    306 #: guardafoto.php:474
     310#: guardafoto.php:475
    307311msgid "Import to Media Library"
    308312msgstr ""
    309313
    310 #: guardafoto.php:475
     314#: guardafoto.php:476
    311315msgid "Importing…"
    312316msgstr ""
    313317
    314 #: guardafoto.php:476
     318#: guardafoto.php:477
    315319msgid "Imported ✓"
    316320msgstr ""
    317321
    318 #: guardafoto.php:477
     322#: guardafoto.php:478
    319323msgid "View in Media Library"
    320324msgstr ""
    321325
    322 #: guardafoto.php:478
     326#: guardafoto.php:479
    323327msgid "Import & set as featured image"
    324328msgstr ""
    325329
    326 #: guardafoto.php:479
     330#: guardafoto.php:480
    327331msgid "Featured image set ✓"
    328332msgstr ""
    329333
    330 #: guardafoto.php:480
     334#: guardafoto.php:481
    331335msgid "The photo was imported, but it could not be set as the featured image."
    332336msgstr ""
    333337
    334 #: guardafoto.php:481
     338#: guardafoto.php:482
    335339msgid "Import & insert into content"
    336340msgstr ""
    337341
    338 #: guardafoto.php:482
     342#: guardafoto.php:483
    339343msgid "Inserted into the content ✓"
    340344msgstr ""
    341345
    342 #: guardafoto.php:487
     346#: guardafoto.php:488
    343347msgid "Videos are download-only: this version does not import them into the Media Library."
    344348msgstr ""
    345349
    346 #: guardafoto.php:488
     350#: guardafoto.php:489
    347351msgid "This video is {size} and exceeds this site's upload limit ({limit}): it can only be downloaded."
    348352msgstr ""
    349353
    350 #: guardafoto.php:489
     354#: guardafoto.php:490
    351355msgid "The photo could not be imported."
    352356msgstr ""
    353357
    354 #: guardafoto.php:490
     358#: guardafoto.php:491
    355359msgid "You are not allowed to do that."
    356360msgstr ""
    357361
    358 #: guardafoto.php:599
     362#: guardafoto.php:600
    359363msgid "You are not allowed to use this tool."
    360364msgstr ""
  • guardafoto/trunk/readme.txt

    r3791761 r3791779  
    55Tested up to: 7.1
    66Requires PHP: 7.4
    7 Stable tag: 1.1.1
     7Stable tag: 1.1.2
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    4343
    4444* A **GuardaFoto page in the admin menu**: paste a link, download each photo, or import it straight into your Media Library.
    45 * A **GuardaFoto panel in the block editor** while you write a post: import a photo and set it as the featured image, import it and insert it into the content, or just import it to the Media Library.
    46 * A **GuardaFoto meta box in the classic editor** with the same three actions: featured image (the featured-image box updates without reloading), insert into the content, or plain import.
     45* A **GuardaFoto panel in the block editor** while you write a post, in the document sidebar right by the featured image and titled **"GuardaFoto — Extract the photo here"**: import a photo and set it as the featured image, import it and insert it into the content, or just import it to the Media Library.
     46* A **GuardaFoto meta box in the classic editor**, in the side column next to the featured-image box with the same "Extract the photo here" title and the same three actions: featured image (the featured-image box updates without reloading), insert into the content, or plain import.
    4747
    4848The plugin adds no visible credit and no external links to the front end, and it makes no external request when it is activated or when a page is merely viewed. The external lookup described below happens only after a visitor submits a link in the tool, or after an administrator submits one in the dashboard page, the editor panel or the classic meta box.
    … …  
    1191192. A resolved result with its preview and verified download sizes.
    1201203. The GuardaFoto page in wp-admin: paste a link, download each photo or import it straight into the Media Library.
     1214. Writing a post: the "GuardaFoto — Extract the photo here" panel in the editor sidebar, next to the featured image, ready to import a photo without leaving the post.
    121122
    122123== Changelog ==
     124
     125= 1.1.2 =
     126* The block-editor panel is now titled "GuardaFoto — Extract the photo here" and sits in the document sidebar right by the featured image, open and ready while you write: paste a link and import the photo, set it as the featured image or insert it into the content — no hunting through menus.
     127* The classic-editor meta box moved to the side column with high priority, next to the featured-image box, with the same "Extract the photo here" title and the full set of actions adapted to the narrow column.
     128* Fixed the classic-editor lookup, which could not run inside the post edit form (a form cannot live inside another form): the box now works from a plain container, wired to its button and the Enter key.
     129* The new title is translated like everything else: in Spanish it reads "GuardaFoto — Extrae la foto aquí".
    123130
    124131= 1.1.1 =
    … …  
    151158== Upgrade Notice ==
    152159
     160= 1.1.2 =
     161The editor tool is now where you look for a photo: "GuardaFoto — Extract the photo here", next to the featured image in both editors.
     162
    153163= 1.1.1 =
    154164The whole plugin now speaks your site's language: complete English/Spanish internationalisation for the tool, the dashboard and the editor.
Note: See TracChangeset for help on using the changeset viewer.