{"id":500,"date":"2026-03-10T20:59:30","date_gmt":"2026-03-10T20:59:30","guid":{"rendered":"http:\/\/sofapiano.com\/?page_id=500"},"modified":"2026-05-12T17:37:39","modified_gmt":"2026-05-12T17:37:39","slug":"prhase-lab","status":"publish","type":"page","link":"https:\/\/sofapiano.com\/es\/prhase-lab\/","title":{"rendered":"Phrase Lab"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"500\" class=\"elementor elementor-500\">\n\t\t\t\t<div class=\"elementor-element elementor-element-449d24af e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"449d24af\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-67fc9083 e-con-full e-flex e-con e-child\" data-id=\"67fc9083\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-607c7ed4 elementor-widget elementor-widget-image\" data-id=\"607c7ed4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/sofapiano.com\">\n\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/sofapiano.com\/wp-content\/uploads\/elementor\/thumbs\/Bild_27-4-26_um_16.34-removebg-preview-rmmp07afd9f5wlbqb64sjgr1vqj9oegk0d4u4fbu8o.png\" title=\"Bild_27-4-26_um_16.34-removebg-preview\" alt=\"Bild_27-4-26_um_16.34-removebg-preview\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-22bf0452 elementor-widget elementor-widget-eael-creative-button\" data-id=\"22bf0452\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-creative-button.default\">\n\t\t\t\t\t        <div class=\"eael-creative-button-wrapper\">\n\n            <a class=\"eael-creative-button eael-creative-button--default eael-cb-icon-position-left\" href=\"https:\/\/sofapiano.com\/my-sentences\/\" data-text=\"Go!\">\n            \t    \n                <div class=\"creative-button-inner\">\n\n                                            <span class=\"eael-creative-button-icon-left\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-star\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"><\/path><\/svg><\/span>                    \n                    <span class=\"cretive-button-text\">My saved Sentences<\/span>\n\n                                    <\/div>\n\t                        <\/a>\n        <\/div>\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-131b4a66 e-con-full e-flex e-con e-child\" data-id=\"131b4a66\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-48c74ada e-con-full e-flex e-con e-child\" data-id=\"48c74ada\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5775dfae eael_simple_menu_hamburger_disable_selected_menu_no eael-simple-menu-hamburger-align-right eael-hamburger--tablet elementor-widget elementor-widget-eael-simple-menu\" data-id=\"5775dfae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-simple-menu.default\">\n\t\t\t\t\t<style>\n                        @media screen and (max-width: 1024px) {\n                            .eael-hamburger--tablet {\n                                .eael-simple-menu-horizontal,\n                                .eael-simple-menu-vertical {\n                                    display: none;\n                                }\n                            }\n                            .eael-hamburger--tablet {\n                                .eael-simple-menu-container .eael-simple-menu-toggle {\n                                    display: block;\n                                }\n                            }\n                        }\n                        .eael-simple-menu-container.eael-simple-menu--loading > ul {\n                            display: -webkit-box !important;\n                            display: -ms-flexbox !important;\n                            display: flex !important;\n                            list-style: none !important;\n                        }\n                        .eael-simple-menu-container.eael-simple-menu--loading li ul {\n                            visibility: hidden !important;\n                            opacity: 0 !important;\n                        }\n                    <\/style>            <div data-hamburger-icon=\"&lt;svg aria-hidden=&quot;true&quot; class=&quot;e-font-icon-svg e-fas-bars&quot; viewBox=&quot;0 0 448 512&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;&lt;path d=&quot;M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;\" data-indicator-icon=\"&lt;svg aria-hidden=&quot;true&quot; class=&quot;e-font-icon-svg e-fas-angle-down&quot; viewBox=&quot;0 0 320 512&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;&lt;path d=&quot;M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;\" data-dropdown-indicator-icon=\"&lt;svg class=&quot;e-font-icon-svg e-fas-angle-down&quot; viewBox=&quot;0 0 320 512&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;&lt;path d=&quot;M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;\" class=\"eael-simple-menu-container eael-simple-menu--loading eael-simple-menu-align-right eael-simple-menu-dropdown-align-left preset-3\" data-hamburger-breakpoints=\"{&quot;mobile&quot;:&quot;M\\u00f3vil vertical (&gt; 767px)&quot;,&quot;tablet&quot;:&quot;Tableta vertical (&gt; 1024px)&quot;,&quot;desktop&quot;:&quot;Escritorio (&gt; 2400px)&quot;,&quot;none&quot;:&quot;Ninguno&quot;}\" data-hamburger-device=\"tablet\">\n                <ul id=\"menu-language\" class=\"eael-simple-menu eael-simple-menu-dropdown-animate-to-top eael-simple-menu-indicator eael-simple-menu-horizontal\"><li id=\"menu-item-11218\" class=\"trp-language-switcher-container trp-menu-ls-item trp-menu-ls-desktop menu-item menu-item-type-post_type menu-item-object-language_switcher current-language-menu-item menu-item-11218\"><a href=\"https:\/\/sofapiano.com\/es\/wp-json\/wp\/v2\/pages\/500#TRPLINKPROCESSED\"><span class=\"trp-menu-ls-label\" data-no-translation title=\"\"><img loading=\"lazy\" src=\"https:\/\/sofapiano.com\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/4x3\/en_US.svg\" class=\"trp-flag-image\" alt=\"Change language to English\" loading=\"lazy\" decoding=\"async\" width=\"18\" height=\"14\" \/><\/span><\/a><\/li>\n<\/ul>                <button class=\"eael-simple-menu-toggle\">\n                    <span class=\"sr-only \">Men\u00fa conmutador hamburguesa<\/span>\n                    <svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-bars\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"><\/path><\/svg>                <\/button>\n            <\/div>\n            \t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-141e75a0 elementor-widget__width-auto elementor-widget-tablet__width-initial elementor-widget elementor-widget-html\" data-id=\"141e75a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n    \/* --- VARIABLEN --- *\/\n    :root {\n        --gemini-icon-size: 25px;         \/* Etwas gr\u00f6\u00dfer f\u00fcr bessere Sichtbarkeit *\/\n        --gemini-accent: #FF5544;        \n        --gemini-modal-z: 999999;        \n    }\n\n    \/* CONTAINER F\u00dcR ZENTRIERUNG *\/\n    .gemini-wrapper {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        width: 100%;\n        padding: px 10;\n    }\n\n    \/* ICON BUTTON *\/\n    .gemini-help-trigger {\n        background: none !important;\n        border: none !important;\n        padding: 0 !important;\n        cursor: pointer !important;\n        display: flex !important;\n        outline: none !important;\n        transition: transform 0.2s ease;\n    }\n\n    .gemini-help-svg {\n        width: var(--gemini-icon-size) !important;\n        height: var(--gemini-icon-size) !important;\n        stroke: #000000 !important;\n        stroke-width: 2;\n        fill: transparent !important;\n        transition: all 0.3s ease-in-out !important;\n    }\n\n    \/* HOVER & KLICK *\/\n    .gemini-help-trigger:hover .gemini-help-svg {\n        fill: var(--gemini-accent) !important;\n        stroke: var(--gemini-accent) !important;\n    }\n\n    .gemini-help-trigger:hover .gemini-help-svg path,\n    .gemini-help-trigger:hover .gemini-help-svg line {\n        stroke: #ffffff !important;\n    }\n\n    .gemini-help-trigger:active {\n        transform: scale(0.9);\n    }\n\n    \/* MODAL OVERLAY *\/\n    .gemini-modal-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        background: rgba(0,0,0,0.7);\n        z-index: var(--gemini-modal-z);\n        font-family: sans-serif;\n    }\n\n    .gemini-modal-box {\n        position: relative;\n        background: #fff;\n        width: 90%;\n        max-width: 400px;\n        margin: 15vh auto;\n        padding: 30px;\n        border-radius: 15px;\n        box-shadow: 0 20px 40px rgba(0,0,0,0.3);\n    }\n\n    .gemini-close {\n        position: absolute;\n        top: 15px;\n        right: 20px;\n        font-size: 24px;\n        cursor: pointer;\n        color: #333;\n        font-weight: bold;\n    }\n\n    \/* AKKORDEON *\/\n    .gemini-acc-item { border-bottom: 1px solid #eee; }\n    \n    .gemini-acc-header {\n        width: 100%;\n        padding: 15px 0;\n        background: none;\n        border: none;\n        text-align: left;\n        font-weight: bold;\n        font-size: 16px;\n        cursor: pointer;\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n    }\n\n    .gemini-acc-content {\n        max-height: 0;\n        overflow: hidden;\n        transition: max-height 0.3s ease-out;\n    }\n\n    \/* FORMULAR *\/\n    .gemini-modal-box input, \n    .gemini-modal-box textarea {\n        width: 100% !important;\n        margin: 10px 0 !important;\n        padding: 12px !important;\n        border: 1px solid #ddd !important;\n        border-radius: 8px !important;\n        box-sizing: border-box; \/* Verhindert das \u00dcberlaufen *\/\n    }\n\n    .gemini-submit {\n        width: 100%;\n        padding: 14px;\n        background: #000;\n        color: #fff;\n        border: none;\n        border-radius: 8px;\n        cursor: pointer;\n        font-weight: bold;\n        margin-top: 15px;\n        transition: background 0.3s;\n    }\n\n    .gemini-submit:hover { background: var(--gemini-accent); }\n<\/style>\n\n<!-- HTML STRUKTUR -->\n<div class=\"gemini-wrapper\">\n    <button class=\"gemini-help-trigger\" id=\"geminiOpen\" aria-label=\"Hilfe \u00f6ffnen\">\n        <svg class=\"gemini-help-svg\" viewBox=\"0 0 24 24\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n            <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\n            <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"><\/path>\n            <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"><\/line>\n        <\/svg>\n    <\/button>\n<\/div>\n\n<div class=\"gemini-modal-overlay\" id=\"geminiModal\">\n    <div class=\"gemini-modal-box\">\n        <span class=\"gemini-close\" id=\"geminiClose\">&times;<\/span>\n        <h2 style=\"margin: 0 0 15px 0; font-size: 22px;\">Kontakt<\/h2>\n        \n        <div class=\"gemini-acc-item\">\n            <button class=\"gemini-acc-header\">Deine Daten <span>+<\/span><\/button>\n            <div class=\"gemini-acc-content\">\n                <input type=\"text\" placeholder=\"Name\">\n                <input type=\"email\" placeholder=\"E-Mail\">\n            <\/div>\n        <\/div>\n\n        <div class=\"gemini-acc-item\">\n            <button class=\"gemini-acc-header\">Deine Nachricht <span>+<\/span><\/button>\n            <div class=\"gemini-acc-content\">\n                <textarea rows=\"4\" placeholder=\"Wie k\u00f6nnen wir helfen?\"><\/textarea>\n            <\/div>\n        <\/div>\n\n        <button class=\"gemini-submit\" onclick=\"alert('Nachricht erfolgreich gesendet!')\">Jetzt abschicken<\/button>\n    <\/div>\n<\/div>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n    const modal = document.getElementById(\"geminiModal\");\n    const openBtn = document.getElementById(\"geminiOpen\");\n    const closeBtn = document.getElementById(\"geminiClose\");\n\n    \/\/ Modal Funktionen\n    if(openBtn) {\n        openBtn.onclick = (e) => {\n            e.preventDefault();\n            modal.style.display = \"block\";\n        };\n    }\n\n    if(closeBtn) {\n        closeBtn.onclick = () => {\n            modal.style.display = \"none\";\n        };\n    }\n\n    \/\/ Schlie\u00dfen bei Klick au\u00dferhalb der Box\n    window.onclick = (e) => { \n        if (e.target == modal) {\n            modal.style.display = \"none\";\n        }\n    };\n\n    \/\/ Akkordeon Logik\n    const headers = document.querySelectorAll(\".gemini-acc-header\");\n    headers.forEach(header => {\n        header.addEventListener(\"click\", function() {\n            const content = this.nextElementSibling;\n            const isOpen = content.style.maxHeight;\n\n            \/\/ Alle anderen schlie\u00dfen (optional, f\u00fcr sauberen Look)\n            headers.forEach(h => {\n                h.nextElementSibling.style.maxHeight = null;\n                h.querySelector(\"span\").innerText = \"+\";\n            });\n\n            \/\/ Aktuelles umschalten\n            if (!isOpen || isOpen === \"0px\") {\n                content.style.maxHeight = content.scrollHeight + \"px\";\n                this.querySelector(\"span\").innerText = \"-\";\n            } else {\n                content.style.maxHeight = null;\n                this.querySelector(\"span\").innerText = \"+\";\n            }\n        });\n    });\n});\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-63fa73e1 elementor-widget__width-initial stax-condition-yes stax-user_role_enabled-yes elementor-widget elementor-widget-eael-creative-button\" data-id=\"63fa73e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-creative-button.default\">\n\t\t\t\t\t        <div class=\"eael-creative-button-wrapper\">\n\n            <a class=\"eael-creative-button eael-creative-button--default eael-cb-icon-position-left\" href=\"https:\/\/sofapiano.com\/membership-join\/\" data-text=\"\">\n            \t    \n                <div class=\"creative-button-inner\">\n\n                                            <span class=\"eael-creative-button-icon-left\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-user-plus\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"><\/path><\/svg><\/span>                    \n                    <span class=\"cretive-button-text\">Register<\/span>\n\n                                    <\/div>\n\t                        <\/a>\n        <\/div>\n        \t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f516b4d stax-condition-yes stax-user_role_enabled-yes elementor-widget elementor-widget-eael-creative-button\" data-id=\"4f516b4d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-creative-button.default\">\n\t\t\t\t\t        <div class=\"eael-creative-button-wrapper\">\n\n            <a class=\"eael-creative-button eael-creative-button--default eael-cb-icon-position-left\" href=\"https:\/\/sofapiano.com\/membership-login\/\" data-text=\"\">\n            \t    \n                <div class=\"creative-button-inner\">\n\n                                            <span class=\"eael-creative-button-icon-left\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-sign-in-alt\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"><\/path><\/svg><\/span>                    \n                    <span class=\"cretive-button-text\">Log In<\/span>\n\n                                    <\/div>\n\t                        <\/a>\n        <\/div>\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3b2d2106 e-flex e-con-boxed e-con e-parent\" data-id=\"3b2d2106\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-403a7c41 elementor-widget elementor-widget-html\" data-id=\"403a7c41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"de\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Lern-App Live Dashboard<\/title>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@tailwindcss\/browser@4\"><\/script>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n    <style>\n        body { background-color: #f3f4f6; font-family: 'Segoe UI', sans-serif; }\n    <\/style>\n<\/head>\n<body class=\"p-4 md:p-8\">\n\n    <div class=\"max-w-7xl mx-auto\">\n        <header class=\"mb-8 flex flex-col md:flex-row justify-between items-start md:items-center bg-white p-6 rounded-2xl shadow-xs border border-gray-100\">\n            <div>\n                <h1 class=\"text-2xl font-bold text-gray-900\">Lern-App Live Dashboard<\/h1>\n                <p class=\"text-sm text-gray-500\">Echtzeit-Daten direkt aus deinem Google Sheet<\/p>\n            <\/div>\n            <div id=\"loading-status\" class=\"mt-4 md:mt-0 bg-yellow-50 text-yellow-700 px-4 py-2 rounded-lg text-sm font-semibold border border-yellow-100 animate-pulse\">\n                Verbinde mit Google Sheet...\n            <\/div>\n        <\/header>\n\n        <div class=\"bg-white p-6 rounded-2xl shadow-xs border border-gray-100 mb-8 flex flex-col sm:flex-row items-center gap-4\">\n            <div class=\"w-full sm:w-auto\">\n                <label for=\"userSelectFilter\" class=\"block text-sm font-semibold text-gray-700 mb-1\">User-ID ausw\u00e4hlen:<\/label>\n                <select id=\"userSelectFilter\" class=\"w-full sm:w-64 px-4 py-2 border border-gray-200 rounded-lg focus:outline-none focus:border-blue-500 font-medium text-gray-800 bg-gray-50\">\n                    <option value=\"ALL\">-- Alle User anzeigen --<\/option>\n                <\/select>\n            <\/div>\n            <p class=\"text-xs text-gray-500 sm:mt-6\">W\u00e4hle einen User aus, um Diagramme und KPIs (S\u00e4tze pro Tag aus Spalte A) nur f\u00fcr ihn zu berechnen.<\/p>\n        <\/div>\n\n        <div class=\"grid grid-cols-1 md:grid-cols-4 gap-6 mb-8\">\n            <div class=\"bg-white p-6 rounded-2xl shadow-xs border border-gray-100 flex items-center justify-between\">\n                <div>\n                    <p class=\"text-sm font-medium text-gray-500 uppercase tracking-wider\">S\u00e4tze Gesamt<\/p>\n                    <h3 id=\"kpi-total-sentences\" class=\"text-3xl font-bold text-gray-900 mt-1\">0<\/h3>\n                <\/div>\n                <div class=\"p-3 rounded-full bg-blue-50 text-blue-600\">\n                    <svg class=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"><\/path><\/svg>\n                <\/div>\n            <\/div>\n\n            <div class=\"bg-white p-6 rounded-2xl shadow-xs border border-gray-100 flex items-center justify-between\">\n                <div>\n                    <p class=\"text-sm font-medium text-gray-500 uppercase tracking-wider\">Letzte 7 Tage<\/p>\n                    <h3 id=\"kpi-seven-days\" class=\"text-3xl font-bold text-gray-900 mt-1\">0<\/h3>\n                <\/div>\n                <div class=\"p-3 rounded-full bg-green-50 text-green-600\">\n                    <svg class=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 002-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"><\/path><\/svg>\n                <\/div>\n            <\/div>\n\n            <div class=\"bg-white p-6 rounded-2xl shadow-xs border border-gray-100 flex items-center justify-between\">\n                <div>\n                    <p class=\"text-sm font-medium text-gray-500 uppercase tracking-wider\">Erfolgsquote<\/p>\n                    <h3 id=\"kpi-success-rate\" class=\"text-3xl font-bold text-gray-900 mt-1\">0%<\/h3>\n                <\/div>\n                <div class=\"p-3 rounded-full bg-purple-50 text-purple-600\">\n                    <svg class=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\"><\/path><\/svg>\n                <\/div>\n            <\/div>\n\n            <div class=\"bg-white p-6 rounded-2xl shadow-xs border border-gray-100 flex items-center justify-between\">\n                <div>\n                    <p class=\"text-sm font-medium text-gray-500 uppercase tracking-wider\">Bookmarks<\/p>\n                    <h3 id=\"kpi-bookmarks\" class=\"text-3xl font-bold text-gray-900 mt-1\">0<\/h3>\n                <\/div>\n                <div class=\"p-3 rounded-full bg-yellow-50 text-yellow-600\">\n                    <svg class=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z\"><\/path><\/svg>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8\">\n            <div class=\"bg-white p-6 rounded-2xl shadow-xs border border-gray-100 lg:col-span-2\">\n                <h3 class=\"text-lg font-bold text-gray-900 mb-4\">Aktivit\u00e4tsverlauf (S\u00e4tze pro Tag \/ Spalte A)<\/h3>\n                <div class=\"relative h-64\">\n                    <canvas id=\"activityChart\"><\/canvas>\n                <\/div>\n            <\/div>\n            <div class=\"bg-white p-6 rounded-2xl shadow-xs border border-gray-100\">\n                <h3 class=\"text-lg font-bold text-gray-900 mb-4\">User-Verteilung<\/h3>\n                <div class=\"relative h-64 flex justify-center\">\n                    <canvas id=\"userChart\"><\/canvas>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"bg-white rounded-2xl shadow-xs border border-gray-100 overflow-hidden\">\n            <div class=\"p-6 border-b border-gray-100 flex flex-col md:flex-row justify-between items-center gap-4\">\n                <h3 class=\"text-lg font-bold text-gray-900\">Live Log-Eintr\u00e4ge<\/h3>\n                <input type=\"text\" id=\"tableSearch\" placeholder=\"Suche nach Text in S\u00e4tzen...\" class=\"w-full md:w-64 px-4 py-2 text-sm border border-gray-200 rounded-lg focus:outline-none focus:border-blue-500\">\n            <\/div>\n            <div class=\"overflow-x-auto\">\n                <table class=\"w-full text-left text-sm text-gray-500\">\n                    <thead class=\"bg-gray-50 text-gray-700 uppercase text-xs tracking-wider\">\n                        <tr>\n                            <th class=\"px-6 py-4\">Tag (A)<\/th>\n                            <th class=\"px-6 py-4\">Zeitstempel (B)<\/th>\n                            <th class=\"px-6 py-4\">User-ID (C)<\/th>\n                            <th class=\"px-6 py-4\">Level (F)<\/th>\n                            <th class=\"px-6 py-4\">Satz Deutsch (H)<\/th>\n                            <th class=\"px-6 py-4\">Aktion (J)<\/th>\n                            <th class=\"px-6 py-4\">Status (K)<\/th>\n                        <\/tr>\n                    <\/thead>\n                    <tbody id=\"logTableBody\" class=\"divide-y divide-gray-100\"><\/tbody>\n                <\/table>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        \/\/ Dein exakter Google-Sheets CSV-Link\n        const csvUrl = \"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vQKr3dzH93sPFdNpovrvhdUIEgTOd16cC2IztEb-zIseHoAERwxciBHuzchaeyN7WVDWuLYxS7Crom5\/pub?gid=1415533144&single=true&output=csv\";\n\n        let globalRawData = [];\n        let activityChart, userChart;\n\n        \/\/ Sicheres CSV-Parsing (ber\u00fccksichtigt Kommas in Texten innerhalb von Anf\u00fchrungszeichen)\n        function parseCSVLine(text) {\n            let p = '', r = [];\n            let q = false;\n            for (let i = 0; i < text.length; i++) {\n                let c = text[i];\n                if (c === '\"') { q = !q; }\n                else if (c === ',' && !q) { r.push(p); p = ''; }\n                else { p += c; }\n            }\n            r.push(p);\n            return r;\n        }\n\n        async function fetchLiveDocs() {\n            try {\n                const response = await fetch(csvUrl);\n                if (!response.ok) throw new Error(\"Netzwerkfehler\");\n                const csvText = await response.text();\n                \n                const lines = csvText.split(\/\\r?\\n\/);\n                const data = [];\n                const uniqueUsers = new Set();\n                \n                \/\/ Schleife ab Index 1 (Kopfzeile \u00fcberspringen)\n                for (let i = 1; i < lines.length; i++) {\n                    if (!lines[i].trim()) continue;\n                    \n                    const columns = parseCSVLine(lines[i]);\n                    \n                    if(columns.length >= 11) {\n                        const uId = columns[2]?.trim(); \/\/ Spalte C: User-ID\n                        if (uId && uId !== \"User-ID\") uniqueUsers.add(uId);\n\n                        data.push({\n                            tag: columns[0]?.trim(),         \/\/ Spalte A: Tag\n                            timestamp: columns[1]?.trim(),   \/\/ Spalte B: Zeitstempel\n                            userId: uId,                     \/\/ Spalte C: User-ID\n                            level: columns[5]?.trim(),       \/\/ Spalte F: Level\n                            deutsch: columns[7]?.trim(),     \/\/ Spalte H: Deutsch\n                            aktion: columns[9]?.trim(),      \/\/ Spalte J: Aktion\n                            status: columns[10]?.trim()      \/\/ Spalte K: Status\n                        });\n                    }\n                }\n\n                globalRawData = data;\n                \n                \/\/ Dropdown bef\u00fcllen\n                populateUserDropdown(Array.from(uniqueUsers));\n\n                const statusElement = document.getElementById('loading-status');\n                statusElement.innerText = \"Live-Daten geladen\";\n                statusElement.className = \"mt-4 md:mt-0 bg-green-50 text-green-700 px-4 py-2 rounded-lg text-sm font-semibold border border-green-100 animate-none\";\n\n                \/\/ Dashboard berechnen\n                updateDashboardDisplay();\n\n            } catch (error) {\n                console.error(\"Fehler beim Abruf:\", error);\n                const statusElement = document.getElementById('loading-status');\n                statusElement.innerText = \"Fehler beim Laden!\";\n                statusElement.className = \"mt-4 md:mt-0 bg-red-50 text-red-700 px-4 py-2 rounded-lg text-sm font-semibold border border-red-100 animate-none\";\n            }\n        }\n\n        function populateUserDropdown(users) {\n            const select = document.getElementById('userSelectFilter');\n            select.innerHTML = '<option value=\"ALL\">-- Alle User anzeigen --<\/option>';\n            users.sort().forEach(user => {\n                const opt = document.createElement('option');\n                opt.value = user;\n                opt.textContent = user;\n                select.appendChild(opt);\n            });\n        }\n\n        function updateDashboardDisplay() {\n            const selectedUser = document.getElementById('userSelectFilter').value;\n            \n            \/\/ Filter nach User\n            const filteredData = selectedUser === \"ALL\" \n                ? globalRawData \n                : globalRawData.filter(item => item.userId === selectedUser);\n\n            \/\/ 1. KPI: S\u00e4tze Gesamt\n            document.getElementById('kpi-total-sentences').innerText = filteredData.length;\n\n            \/\/ 2. KPI: Letzte 7 Tage basierend auf dem aktuellsten Log-Datum (12.05.2026)\n            const basisDatum = new Date(\"2026-05-12\");\n            const siebenTageInMs = 7 * 24 * 60 * 60 * 1000;\n            const last7DaysCount = filteredData.filter(item => {\n                if(!item.tag) return false;\n                const parts = item.tag.split('.');\n                if(parts.length < 3) return false;\n                const eintragsDatum = new Date(`${parts[2]}-${parts[1]}-${parts[0]}`);\n                return (basisDatum - eintragsDatum) <= siebenTageInMs;\n            }).length;\n            document.getElementById('kpi-seven-days').innerText = last7DaysCount;\n\n            \/\/ 3. KPI: Erfolgsquote\n            const checks = filteredData.filter(item => item.aktion === 'Check');\n            const richtigeChecks = checks.filter(item => item.status && item.status.toLowerCase() === 'richtig').length;\n            const successRate = checks.length > 0 ? Math.round((richtigeChecks \/ checks.length) * 100) : 0;\n            document.getElementById('kpi-success-rate').innerText = `${successRate}%`;\n\n            \/\/ 4. KPI: Bookmarks\n            const bookmarkCount = filteredData.filter(item => item.aktion === 'Bookmark gesetzt').length;\n            document.getElementById('kpi-bookmarks').innerText = bookmarkCount;\n\n            \/\/ --- Diagramm 1: S\u00e4tze pro Tag (Rein aus Spalte A berechnet) ---\n            const dateCounts = {};\n            filteredData.forEach(item => { \n                if(item.tag) dateCounts[item.tag] = (dateCounts[item.tag] || 0) + 1; \n            });\n            const sortedDates = Object.keys(dateCounts).sort((a, b) => new Date(a.split('.').reverse().join('-')) - new Date(b.split('.').reverse().join('-')));\n            const chartDataValues = sortedDates.map(date => dateCounts[date]);\n\n            if (activityChart) activityChart.destroy();\n            const ctxActivity = document.getElementById('activityChart').getContext('2d');\n            activityChart = new Chart(ctxActivity, {\n                type: 'line',\n                data: {\n                    labels: sortedDates,\n                    datasets: [{\n                        label: selectedUser === \"ALL\" ? 'S\u00e4tze aller User' : `S\u00e4tze von ${selectedUser}`,\n                        data: chartDataValues,\n                        borderColor: '#2563eb',\n                        backgroundColor: 'rgba(37, 99, 235, 0.05)',\n                        fill: true,\n                        tension: 0.15,\n                        borderWidth: 2\n                    }]\n                },\n                options: { \n                    responsive: true, \n                    maintainAspectRatio: false,\n                    scales: { y: { beginAtZero: true, ticks: { precision: 0 } } }\n                }\n            });\n\n            \/\/ --- Diagramm 2: User-Verteilung ---\n            const userCounts = {};\n            filteredData.forEach(item => { \n                if(item.userId) userCounts[item.userId] = (userCounts[item.userId] || 0) + 1; \n            });\n\n            if (userChart) userChart.destroy();\n            const ctxUser = document.getElementById('userChart').getContext('2d');\n            userChart = new Chart(ctxUser, {\n                type: 'doughnut',\n                data: {\n                    labels: Object.keys(userCounts),\n                    datasets: [{\n                        data: Object.values(userCounts),\n                        backgroundColor: ['#3b82f6', '#10b981', '#f59e0b', '#ec4899', '#8b5cf6'],\n                    }]\n                },\n                options: { responsive: true, maintainAspectRatio: false }\n            });\n\n            renderTable(filteredData);\n        }\n\n        function renderTable(data) {\n            const tbody = document.getElementById('logTableBody');\n            tbody.innerHTML = \"\";\n\n            const searchVal = document.getElementById('tableSearch').value.toLowerCase();\n            \n            data.forEach(item => {\n                if (searchVal && !item.deutsch.toLowerCase().includes(searchVal)) return;\n\n                let statusBadge = item.status === 'Richtig' \n                    ? '<span class=\"bg-green-100 text-green-800 text-xs px-2 py-1 rounded font-semibold\">Richtig<\/span>'\n                    : (item.status === 'Falsch' ? '<span class=\"bg-red-100 text-red-800 text-xs px-2 py-1 rounded font-semibold\">Falsch<\/span>' : '<span class=\"bg-gray-100 text-gray-500 text-xs px-2 py-1 rounded\">-<\/span>');\n\n                let aktionBadge = item.aktion.includes('gesetzt') \n                    ? `<span class=\"text-yellow-600 text-xs font-medium\">\u2b50 ${item.aktion}<\/span>`\n                    : (item.aktion.includes('entfernt') ? `<span class=\"text-gray-400 text-xs\">\ud83d\uddd1\ufe0f ${item.aktion}<\/span>` : `<span class=\"text-blue-600 text-xs font-medium\">\ud83d\udd0d ${item.aktion}<\/span>`);\n\n                const row = `\n                    <tr class=\"hover:bg-gray-50 transition\">\n                        <td class=\"px-6 py-4 whitespace-nowrap text-sm text-gray-600 font-medium\">${item.tag}<\/td>\n                        <td class=\"px-6 py-4 whitespace-nowrap text-sm text-gray-500\">${item.timestamp}<\/td>\n                        <td class=\"px-6 py-4 whitespace-nowrap text-sm font-bold text-gray-700\">${item.userId}<\/td>\n                        <td class=\"px-6 py-4 whitespace-nowrap\"><span class=\"px-2 py-0.5 bg-gray-100 text-gray-800 rounded text-xs font-bold\">${item.level}<\/span><\/td>\n                        <td class=\"px-6 py-4 text-sm text-gray-900 max-w-xs truncate\" title=\"${item.deutsch}\">${item.deutsch}<\/td>\n                        <td class=\"px-6 py-4 whitespace-nowrap\">${aktionBadge}<\/td>\n                        <td class=\"px-6 py-4 whitespace-nowrap\">${statusBadge}<\/td>\n                    <\/tr>\n                `;\n                tbody.innerHTML += row;\n            });\n        }\n\n        \/\/ Event Listeners\n        document.getElementById('userSelectFilter').addEventListener('change', updateDashboardDisplay);\n        document.getElementById('tableSearch').addEventListener('input', updateDashboardDisplay);\n\n        \/\/ Start\n        fetchLiveDocs();\n    <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>My saved Sentences Hamburger Toggle Menu &times; Kontakt Deine Daten + Deine Nachricht + Jetzt abschicken Hallo Lern-App Live Dashboard Lern-App Live Dashboard Echtzeit-Daten direkt aus deinem Google Sheet Verbinde mit Google Sheet&#8230; User-ID ausw\u00e4hlen: &#8212; Alle User anzeigen &#8212; W\u00e4hle einen User aus, um Diagramme und KPIs (S\u00e4tze pro Tag aus Spalte A) nur [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-500","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Phrase Lab - sofapiano<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sofapiano.com\/es\/prhase-lab\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Phrase Lab - sofapiano\" \/>\n<meta property=\"og:description\" content=\"My saved Sentences Hamburger Toggle Menu &times; Kontakt Deine Daten + Deine Nachricht + Jetzt abschicken Hallo Lern-App Live Dashboard Lern-App Live Dashboard Echtzeit-Daten direkt aus deinem Google Sheet Verbinde mit Google Sheet&#8230; User-ID ausw\u00e4hlen: &#8212; Alle User anzeigen &#8212; W\u00e4hle einen User aus, um Diagramme und KPIs (S\u00e4tze pro Tag aus Spalte A) nur [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sofapiano.com\/es\/prhase-lab\/\" \/>\n<meta property=\"og:site_name\" content=\"sofapiano\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-12T17:37:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sofapiano.com\/wp-content\/uploads\/elementor\/thumbs\/Bild_27-4-26_um_16.34-removebg-preview-rmmp07afd9f5wlbqb64sjgr1vqj9oegk0d4u4fbu8o.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"231 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sofapiano.com\\\/prhase-lab\\\/\",\"url\":\"https:\\\/\\\/sofapiano.com\\\/prhase-lab\\\/\",\"name\":\"Phrase Lab - sofapiano\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sofapiano.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sofapiano.com\\\/prhase-lab\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sofapiano.com\\\/prhase-lab\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sofapiano.com\\\/wp-content\\\/uploads\\\/elementor\\\/thumbs\\\/Bild_27-4-26_um_16.34-removebg-preview-rmmp07afd9f5wlbqb64sjgr1vqj9oegk0d4u4fbu8o.png\",\"datePublished\":\"2026-03-10T20:59:30+00:00\",\"dateModified\":\"2026-05-12T17:37:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sofapiano.com\\\/prhase-lab\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sofapiano.com\\\/prhase-lab\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/sofapiano.com\\\/prhase-lab\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sofapiano.com\\\/wp-content\\\/uploads\\\/elementor\\\/thumbs\\\/Bild_27-4-26_um_16.34-removebg-preview-rmmp07afd9f5wlbqb64sjgr1vqj9oegk0d4u4fbu8o.png\",\"contentUrl\":\"https:\\\/\\\/sofapiano.com\\\/wp-content\\\/uploads\\\/elementor\\\/thumbs\\\/Bild_27-4-26_um_16.34-removebg-preview-rmmp07afd9f5wlbqb64sjgr1vqj9oegk0d4u4fbu8o.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sofapiano.com\\\/prhase-lab\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\\\/\\\/sofapiano.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Phrase Lab\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sofapiano.com\\\/#website\",\"url\":\"https:\\\/\\\/sofapiano.com\\\/\",\"name\":\"sofapiano\",\"description\":\"Learn German through translation\",\"publisher\":{\"@id\":\"https:\\\/\\\/sofapiano.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sofapiano.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sofapiano.com\\\/#organization\",\"name\":\"sofapiano\",\"url\":\"https:\\\/\\\/sofapiano.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/sofapiano.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sofapiano.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Bild-27-4-26-um-16.34.jpeg\",\"contentUrl\":\"https:\\\/\\\/sofapiano.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Bild-27-4-26-um-16.34.jpeg\",\"width\":1946,\"height\":1272,\"caption\":\"sofapiano\"},\"image\":{\"@id\":\"https:\\\/\\\/sofapiano.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Phrase Lab - sofapiano","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sofapiano.com\/es\/prhase-lab\/","og_locale":"es_ES","og_type":"article","og_title":"Phrase Lab - sofapiano","og_description":"My saved Sentences Hamburger Toggle Menu &times; Kontakt Deine Daten + Deine Nachricht + Jetzt abschicken Hallo Lern-App Live Dashboard Lern-App Live Dashboard Echtzeit-Daten direkt aus deinem Google Sheet Verbinde mit Google Sheet&#8230; User-ID ausw\u00e4hlen: &#8212; Alle User anzeigen &#8212; W\u00e4hle einen User aus, um Diagramme und KPIs (S\u00e4tze pro Tag aus Spalte A) nur [&hellip;]","og_url":"https:\/\/sofapiano.com\/es\/prhase-lab\/","og_site_name":"sofapiano","article_modified_time":"2026-05-12T17:37:39+00:00","og_image":[{"url":"https:\/\/sofapiano.com\/wp-content\/uploads\/elementor\/thumbs\/Bild_27-4-26_um_16.34-removebg-preview-rmmp07afd9f5wlbqb64sjgr1vqj9oegk0d4u4fbu8o.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"231 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/sofapiano.com\/prhase-lab\/","url":"https:\/\/sofapiano.com\/prhase-lab\/","name":"Phrase Lab - sofapiano","isPartOf":{"@id":"https:\/\/sofapiano.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sofapiano.com\/prhase-lab\/#primaryimage"},"image":{"@id":"https:\/\/sofapiano.com\/prhase-lab\/#primaryimage"},"thumbnailUrl":"https:\/\/sofapiano.com\/wp-content\/uploads\/elementor\/thumbs\/Bild_27-4-26_um_16.34-removebg-preview-rmmp07afd9f5wlbqb64sjgr1vqj9oegk0d4u4fbu8o.png","datePublished":"2026-03-10T20:59:30+00:00","dateModified":"2026-05-12T17:37:39+00:00","breadcrumb":{"@id":"https:\/\/sofapiano.com\/prhase-lab\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sofapiano.com\/prhase-lab\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/sofapiano.com\/prhase-lab\/#primaryimage","url":"https:\/\/sofapiano.com\/wp-content\/uploads\/elementor\/thumbs\/Bild_27-4-26_um_16.34-removebg-preview-rmmp07afd9f5wlbqb64sjgr1vqj9oegk0d4u4fbu8o.png","contentUrl":"https:\/\/sofapiano.com\/wp-content\/uploads\/elementor\/thumbs\/Bild_27-4-26_um_16.34-removebg-preview-rmmp07afd9f5wlbqb64sjgr1vqj9oegk0d4u4fbu8o.png"},{"@type":"BreadcrumbList","@id":"https:\/\/sofapiano.com\/prhase-lab\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/sofapiano.com\/"},{"@type":"ListItem","position":2,"name":"Phrase Lab"}]},{"@type":"WebSite","@id":"https:\/\/sofapiano.com\/#website","url":"https:\/\/sofapiano.com\/","name":"sofapiano","description":"Aprende alem\u00e1n a trav\u00e9s de la traducci\u00f3n","publisher":{"@id":"https:\/\/sofapiano.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sofapiano.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/sofapiano.com\/#organization","name":"sofapiano","url":"https:\/\/sofapiano.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/sofapiano.com\/#\/schema\/logo\/image\/","url":"https:\/\/sofapiano.com\/wp-content\/uploads\/2026\/04\/Bild-27-4-26-um-16.34.jpeg","contentUrl":"https:\/\/sofapiano.com\/wp-content\/uploads\/2026\/04\/Bild-27-4-26-um-16.34.jpeg","width":1946,"height":1272,"caption":"sofapiano"},"image":{"@id":"https:\/\/sofapiano.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/sofapiano.com\/es\/wp-json\/wp\/v2\/pages\/500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sofapiano.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sofapiano.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sofapiano.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sofapiano.com\/es\/wp-json\/wp\/v2\/comments?post=500"}],"version-history":[{"count":9,"href":"https:\/\/sofapiano.com\/es\/wp-json\/wp\/v2\/pages\/500\/revisions"}],"predecessor-version":[{"id":12589,"href":"https:\/\/sofapiano.com\/es\/wp-json\/wp\/v2\/pages\/500\/revisions\/12589"}],"wp:attachment":[{"href":"https:\/\/sofapiano.com\/es\/wp-json\/wp\/v2\/media?parent=500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}