From f8be520689679c2dc83a3ed5e75be160a379b817 Mon Sep 17 00:00:00 2001 From: erseco Date: Fri, 19 Jun 2026 13:23:15 +0100 Subject: [PATCH 1/2] fix(teacher-mode): reveal via core ?exe-teacher URL param, drop CSS/JS injection eXeLearning packages hide teacher-only content by default and expose an in-page "teacher layer" selector through the ?exe-teacher=1 URL parameter (upstream exelearning/exelearning#1972, fixes exelearning/exelearning#1772). The plugin now appends that parameter to the embed instead of injecting CSS/JS into the package. - Shortcode (public/class-shortcodes.php): append ?exe-teacher=1 when teacher_mode or teacher_mode_visible is on; drop the toggler-hiding and activate-on-load inline scripts from render_preview_script. - Block (includes/class-elp-upload-block.php): append ?exe-teacher=1 in build_preview_url when teacherModeVisible is on; remove teacher_mode_hide_script. - Relabel the block control to "Show teacher layer selector" with homogeneous help; refresh the admin shortcode reference, SHORTCODES.md and readme.txt. - i18n: translate the three changed strings across all 10 catalogs; rebuild .mo and the elp-upload.js .json. - Tests: rewrite the teacher-mode shortcode/block tests for the URL-param model. --- admin/class-admin-settings.php | 4 +- assets/js/elp-upload.js | 3 +- docs/SHORTCODES.md | 28 ++++---- includes/class-elp-upload-block.php | 31 +++----- ...g-ca-4cf813b039eac98ce62f176afa8fc8fe.json | 7 +- languages/exelearning-ca.mo | Bin 22320 -> 23655 bytes languages/exelearning-ca.po | 13 ++-- ...ncia-4cf813b039eac98ce62f176afa8fc8fe.json | 7 +- languages/exelearning-ca_valencia.mo | Bin 22360 -> 23693 bytes languages/exelearning-ca_valencia.po | 13 ++-- ...e_DE-4cf813b039eac98ce62f176afa8fc8fe.json | 7 +- languages/exelearning-de_DE.mo | Bin 22748 -> 24065 bytes languages/exelearning-de_DE.po | 13 ++-- ...g-eo-4cf813b039eac98ce62f176afa8fc8fe.json | 7 +- languages/exelearning-eo.mo | Bin 21845 -> 23182 bytes languages/exelearning-eo.po | 13 ++-- ...s_ES-4cf813b039eac98ce62f176afa8fc8fe.json | 7 +- languages/exelearning-es_ES.mo | Bin 22502 -> 23843 bytes languages/exelearning-es_ES.po | 13 ++-- ...g-eu-4cf813b039eac98ce62f176afa8fc8fe.json | 7 +- languages/exelearning-eu.mo | Bin 22299 -> 23621 bytes languages/exelearning-eu.po | 13 ++-- ...l_ES-4cf813b039eac98ce62f176afa8fc8fe.json | 7 +- languages/exelearning-gl_ES.mo | Bin 22325 -> 23661 bytes languages/exelearning-gl_ES.po | 13 ++-- ...t_IT-4cf813b039eac98ce62f176afa8fc8fe.json | 7 +- languages/exelearning-it_IT.mo | Bin 22306 -> 23634 bytes languages/exelearning-it_IT.po | 13 ++-- ...t_PT-4cf813b039eac98ce62f176afa8fc8fe.json | 7 +- languages/exelearning-pt_PT.mo | Bin 22558 -> 23903 bytes languages/exelearning-pt_PT.po | 13 ++-- ...o_RO-4cf813b039eac98ce62f176afa8fc8fe.json | 7 +- languages/exelearning-ro_RO.mo | Bin 22839 -> 24233 bytes languages/exelearning-ro_RO.po | 13 ++-- languages/exelearning.pot | 7 +- public/class-shortcodes.php | 67 +++++------------- readme.txt | 4 +- tests/unit/ElpUploadBlockTest.php | 38 ++++++++++ tests/unit/ShortcodesTest.php | 41 ++++++++--- 39 files changed, 247 insertions(+), 176 deletions(-) diff --git a/admin/class-admin-settings.php b/admin/class-admin-settings.php index 4e4aa18..ac3bb49 100644 --- a/admin/class-admin-settings.php +++ b/admin/class-admin-settings.php @@ -122,12 +122,12 @@ private function render_help_section() { teacher_mode 0 - + teacher_mode_visible 1 - + show_download diff --git a/assets/js/elp-upload.js b/assets/js/elp-upload.js index 6919d67..2d8831e 100644 --- a/assets/js/elp-upload.js +++ b/assets/js/elp-upload.js @@ -410,7 +410,8 @@ step: 10, }), el( ToggleControl, { - label: __( 'Show Teacher Mode toggler', 'exelearning' ), + label: __( 'Show teacher layer selector', 'exelearning' ), + help: __( 'If disabled, the teacher layer selector is hidden in the embedded eXeLearning content.', 'exelearning' ), checked: attributes.teacherModeVisible !== false, onChange: function( value ) { setAttributes( { teacherModeVisible: value } ); diff --git a/docs/SHORTCODES.md b/docs/SHORTCODES.md index 05f31d7..42ab7cf 100644 --- a/docs/SHORTCODES.md +++ b/docs/SHORTCODES.md @@ -30,26 +30,30 @@ Library, e.g. in the URL `…/upload.php?item=123`). |-----------|------|---------|----------------|-------------| | `id` | int | `0` | Any attachment ID | **Required.** Media Library attachment ID of the `.elpx` package. Nothing renders without a valid ID. | | `height` | int | `600` | Pixels | Height of the preview iframe (and of the screenshot poster) in pixels. | -| `teacher_mode` | bool | `0` | `0`/`1`, `false`/`true`, `no`/`yes` | When enabled, the embedded content loads with **teacher mode active**, so teacher-only content is shown from the start. | -| `teacher_mode_visible` | bool | `1` | `0`/`1`, `false`/`true`, `no`/`yes` | Controls whether the teacher-mode **toggle button** is visible inside the embed. Set to `0` to hide it. | +| `teacher_mode` | bool | `0` | `0`/`1`, `false`/`true`, `no`/`yes` | When enabled, the **teacher layer selector** is offered in the embed so viewers can reveal teacher-only content. It no longer auto-reveals on load — the viewer turns it on. | +| `teacher_mode_visible` | bool | `1` | `0`/`1`, `false`/`true`, `no`/`yes` | Controls whether the **teacher layer selector** is available inside the embed. Set to `0` to hide it. | | `show_download` | bool | `0` | `0`/`1`, `false`/`true`, `no`/`yes` | When enabled, renders a multi-format download button in the toolbar. | | `download_formats` | string | *(empty → all)* | Comma-separated list of `elpx`, `html5`, `scorm12`, `ims`, `epub3` | Restricts the download button to the listed formats. Empty means all available formats. Only applies when `show_download` is enabled. | | `screenshot` | string | `no` | `no`, `poster`, `only` | Controls whether the package screenshot is shown. See [Screenshots](#screenshots). | ### Teacher mode -eXeLearning packages can mark content as *teacher-only*. The embedded viewer -ships a toggle that switches teacher mode on and off; the two attributes above -control it independently: +eXeLearning packages can mark content as *teacher-only*. Exported packages hide +that content by default and expose an in-page **teacher layer selector** to +reveal it through the `?exe-teacher=1` URL parameter. The plugin appends that +parameter to the embed instead of injecting any CSS or JavaScript into the +package: -- `teacher_mode` decides the **initial state** (off by default). -- `teacher_mode_visible` decides whether the **toggle button** is shown. +- `teacher_mode_visible` (default `1`) decides whether the **selector is + available** in the embed. Set it to `0` to hide it. +- `teacher_mode` (default `0`), when enabled, also makes the selector available. + It no longer auto-reveals teacher content on load — the selector is shown but + stays off until the viewer turns it on. -They compose freely. For example, to always present teacher content and hide the -toggle so visitors cannot switch it off: +For example, to offer the selector explicitly: ```text -[exelearning id="123" teacher_mode="1" teacher_mode_visible="0"] +[exelearning id="123" teacher_mode="1"] ``` ### Screenshots @@ -81,13 +85,13 @@ Custom height: [exelearning id="123" height="800"] ``` -Activate teacher mode on load: +Offer the teacher layer selector: ```text [exelearning id="123" teacher_mode="1"] ``` -Hide the teacher-mode toggle: +Hide the teacher layer selector: ```text [exelearning id="123" teacher_mode_visible="0"] diff --git a/includes/class-elp-upload-block.php b/includes/class-elp-upload-block.php index a5daa56..2d2cb93 100644 --- a/includes/class-elp-upload-block.php +++ b/includes/class-elp-upload-block.php @@ -220,7 +220,17 @@ private function maybe_render_download_button( $data ) { * @return string Escaped preview URL. */ private function build_preview_url( $data ) { - return esc_url( ExeLearning_Content_Proxy::get_proxy_url( $data['extracted_dir'] ) ); + $url = ExeLearning_Content_Proxy::get_proxy_url( $data['extracted_dir'] ); + + // eXeLearning core hides teacher-only content by default and exposes an in-page + // "teacher layer" selector via ?exe-teacher=1 (shown but off until the viewer + // turns it on). No host-side CSS/JS injection is needed — opt in by carrying the + // parameter on the iframe src when this block should offer the selector. + if ( ! empty( $data['teacher_mode_visible'] ) ) { + $url .= ( false === strpos( $url, '?' ) ? '?' : '&' ) . 'exe-teacher=1'; + } + + return esc_url( $url ); } /** @@ -287,25 +297,6 @@ private function render_block_preview( $data, $download_html ) { esc_attr( get_the_title( $data['attachment_id'] ) ) ); - if ( ! $data['teacher_mode_visible'] ) { - $html .= $this->teacher_mode_hide_script( $data['container_id'] ); - } - return $html; } - - /** - * Inline script that hides the teacher-mode toggler inside the preview - * iframe. The iframe is same-origin, so we inject a small stylesheet into - * its document on load. - * - * @param string $container_id Wrapper element id. - * @return string Script HTML. - */ - private function teacher_mode_hide_script( $container_id ) { - return sprintf( - '', - esc_js( $container_id ) - ); - } } diff --git a/languages/exelearning-ca-4cf813b039eac98ce62f176afa8fc8fe.json b/languages/exelearning-ca-4cf813b039eac98ce62f176afa8fc8fe.json index d1df3b1..6c6262d 100644 --- a/languages/exelearning-ca-4cf813b039eac98ce62f176afa8fc8fe.json +++ b/languages/exelearning-ca-4cf813b039eac98ce62f176afa8fc8fe.json @@ -43,8 +43,11 @@ "This is an eXeLearning v2 source file. The content will be displayed on the frontend if exported HTML is available.": [ "Aquest \u00e9s un fitxer font d'eXeLearning v2. El contingut es mostrar\u00e0 al frontend si hi ha HTML exportat disponible." ], - "Show Teacher Mode toggler": [ - "Mostra el commutador de Mode Professor" + "Show teacher layer selector": [ + "Mostrar el selector de capa docent" + ], + "If disabled, the teacher layer selector is hidden in the embedded eXeLearning content.": [ + "Si es desactiva, el selector de capa docent s'ocultar\u00e0 al contingut eXeLearning incrustat." ], "More download formats": [ "M\u00e9s formats de baixada" diff --git a/languages/exelearning-ca.mo b/languages/exelearning-ca.mo index be66f390313c78d6dc0e00528cd03d61049e8bc8..51a308490075c0c0b8d2c6ff2286d98249ae75ea 100644 GIT binary patch delta 5344 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 DV>AJ2 diff --git a/languages/exelearning-ca.po b/languages/exelearning-ca.po index 6b8edc9..8fcc41e 100644 --- a/languages/exelearning-ca.po +++ b/languages/exelearning-ca.po @@ -393,8 +393,8 @@ msgid "File copy appears truncated." msgstr "La còpia del fitxer sembla estar truncada." #: assets/js/elp-upload.js:413 -msgid "Show Teacher Mode toggler" -msgstr "Mostra el commutador de Mode Professor" +msgid "Show teacher layer selector" +msgstr "Mostrar el selector de capa docent" #: includes/class-exelearning-editor.php:179 #: includes/class-exelearning-editor.php:212 @@ -652,12 +652,13 @@ msgid "Height of the preview, in pixels." msgstr "Alçada de la previsualització, en píxels." #: admin/class-admin-settings.php:125 -msgid "When enabled, the content loads with teacher mode active." -msgstr "Quan s'activa, el contingut es carrega amb el mode docent actiu." +msgid "When enabled, the teacher layer selector is offered so viewers can reveal teacher content." +msgstr "Quan s'activa, s'ofereix el selector de capa docent perquè qui el vegi pugui mostrar el contingut docent." #: admin/class-admin-settings.php:130 -msgid "Whether the teacher-mode toggle button is shown." -msgstr "Si es mostra el botó per commutar el mode docent." +#: assets/js/elp-upload.js:414 +msgid "If disabled, the teacher layer selector is hidden in the embedded eXeLearning content." +msgstr "Si es desactiva, el selector de capa docent s'ocultarà al contingut eXeLearning incrustat." #: admin/class-admin-settings.php:135 msgid "When enabled, shows a multi-format download button." diff --git a/languages/exelearning-ca_valencia-4cf813b039eac98ce62f176afa8fc8fe.json b/languages/exelearning-ca_valencia-4cf813b039eac98ce62f176afa8fc8fe.json index efe3822..9bcbd8d 100644 --- a/languages/exelearning-ca_valencia-4cf813b039eac98ce62f176afa8fc8fe.json +++ b/languages/exelearning-ca_valencia-4cf813b039eac98ce62f176afa8fc8fe.json @@ -43,8 +43,11 @@ "This is an eXeLearning v2 source file. The content will be displayed on the frontend if exported HTML is available.": [ "Este \u00e9s un fitxer font d'eXeLearning v2. El contingut es mostrar\u00e0 en el frontend si hi ha HTML exportat disponible." ], - "Show Teacher Mode toggler": [ - "Mostrar el commutador de Mode Professor" + "Show teacher layer selector": [ + "Mostrar el selector de capa docent" + ], + "If disabled, the teacher layer selector is hidden in the embedded eXeLearning content.": [ + "Si es desactiva, el selector de capa docent s'ocultar\u00e0 al contingut eXeLearning incrustat." ], "More download formats": [ "M\u00e9s formats de baixada" diff --git a/languages/exelearning-ca_valencia.mo b/languages/exelearning-ca_valencia.mo index 20ab3ec345b52e13ae9391b272a9de8e963831aa..1d89c86fde4e5bc9f2940f3019b0fcbd24146df7 100644 GIT binary patch delta 5314 zcmaLZd303O0mtzhwh$l-B#^Mb5W*HnSi+vj5;j=`5Rhr3yAJP@sTYK~xqGdPGliDixuv{r=`XD1WrR<1e3k-@JF<-QJTA zcSfx|5Va~P*elAIR&geBeBQ*Ep_IPBVc0d%m`PZPx}+MT@jcAOOE?OfBpK5bXJ8Cg zVgp==jqzD*f$K0H!#Ey~C7GaUNFkBC>tb8X!*onQFZRMGur2PyY&?zav34_K24W|y zgKks@y;u(`Q5~O;opBlJdAm^^IovF0OmhmSI57aP;}L9^Y@ff3YTypG!v-nF#9}v8 z2L~d9F=KHsx=;hzjJj?+s$=_*KAVHcq?xn01V0N>P*1${LOoxAYG4s+gv(GPehoA6 zGG<`{^O=f+Q6nqDPPhUy@D0?AUB-?W)zX;O*co}G8HpNDu#iG43QLe{%|=v*4x%nR ziCyp-s^{@stn+Eu2XjzU>PK}bh#K)G=lnKgQq3OJz>Z@rJcCoX+?=DJsp?Gk3a~F~ zN}oq<`XV)QoM%C-Gbd=3i?#o_C}NK8LU4Aykh``J)C_V=t`6F?icKKZ4e} zQJ;s)aVyTmOxCdiSE6R%-^eY-$GfSw;AM=#O+n|x4rF=EZq$g+qc+tQ)Y9BR?SWXP z;bF8;*UiV?xC|TNVbl_xK*nIMpoIw`WDu`1x&D0+<1)YI8f^|2f3 zhCWyuN1z@&8Z{%+u#xV=>D1RVT@=ktq$!imv}$Gx_@nwW*dN14dqMLR1+8ff>ixBP z+G~`H4XMvYjo6QgcoMa_KEWn<2NN)k-e~i+b<9S!`yjGC%zV^+8&Cr~fRXqAC@`#QTA`%zEB0$qn%x?Rri$59VFi-~vv*?;D1 zOwjw^l)E)`9k4Mj!g?6O5x5?c@iOM)cc>AKWghifR-zhw9d-TtSO;6Pvo)Z0s19Ue z3id_aHvxmX-~|ern)S$jG5hc#yo%Sb=RkWCCFj@;_Cq$h8HV~mm7$hmDYn41I28Aw zcKc0?#XG2h#qji2n2^i*tATEuSciG2sr?A`dfY%Y@DJ>S|HM2@f57gj7g;5<#;Kn~ zt@$m?z>b6L%~pWyN3#<3g*}2Az!!sp_Q(?l+YiV>-8dCBlBK96c?H$u-Kd66V{`l- z`3RckL+rhhgK^ZCqGmFL8o*oF0IN|0KI@#n9;8r<6JOyB{2OYm$1;EA=te#GUDQ(5 zpl0Y_jB$T<|;xy1*QTA;TF_hxQg2SO-9+9xFzx^lYq6^zHT>ZWXBM(G%VWe*8cQv!bhl|$8Okt z9LtF_G1!H|ehSax6&!-zhwLxf4%|)s8g{@nB#>Uj28!R-$wLOzsNjy!{O8HCG(>;^#-SYB1mBXC%(Ztm^I!00A*uq z>V>Eqp2CK>18LjrN6kb$AB_x5$0VGH&2bhcgkGaGXTJCT-7UF&@JV1GvTPcP>L8{O=>`y*kJ%SnHt4Y!2om`6S!?-1U$$fkP+h9 z%J%akAB%ULAI1A*8Yxi4Iev-T$xQNl=UgqUOIneW&N=aCvWT=*#X0)m^W*@jaL!HD z^PeE6$XW7J5>IsGkm5t+J)&>L&&iL;gXGub zaT3%=;Wbj5+&wx_c$*v~=bV!zj$LuIQ{IfLNfW2O*6~q1OjeK!#6`xC`;SpnCg0uv z6RCvAB=RScN;Z-iT!3q0wo?R;Bgg~czjl=YXN`#o>EV7pxkG9{Z@(B?e>&e-ZCo? z+L@XXI-L|9l^L#^l2$J?v`w?7|MR}^#5SE9h0+reLhp3>I<&P*{K)^`e)+6f9-qf; z`OB@jUe7#_&u2Q z*VWbXl>WEhZV!!AxGZ;hF?U)1j^)Kwr2&`k*hY&+)tI+zc2$7s@Qn4id}Y)aVX?2u zA8-XS!_m1%qeC^rTDJ22K&#=p!yk(c@6PWU<(gPUkNq9*_Jqf2Oy2oFaJNF_2Pgu4j(Rs;HXnvK}w@2Yjx`lkasj96f1b?f(Em8JT7P delta 3965 zcmXxl3vg7`9mnw#l57%4LLM6d6Oy|`fh5EvBtg3&fdT;`#E^$ZEIu}yZ8p;+o7vm| zor;UKMI3b0K@>)i@ev=T0cA%WL=?x-`e?1~0F9PfOKV!HElBA@Ezs{T_m;`*=bW?W zp7THd^S{e|hZ4s2Cp_Sd8U7Vy>eF!v&ZNH#Z^I58K~4FZj}%OsYD^7gcw6vFa6g zHP+!eOv0V00QaB=M^J(P6ie_hYQN7=fqa?G`Df5b$T7x``S=>%fEv%sbrz_=S@at) z0|Tf4Bk0A=xEOb!4srrD?<6X)zoIg92Kh6|JaiY%h|y3adr*;&q84}&b;83~gP-D6 zn8zv=xD0)0qfYiP&c&lxhNn>(%e%~&IarG`@n)QkKR_KQ_7IH%8ZV>n=ol)XGpLD| zuoS0Hb0S}g8t=pfIEYH=GpK;#s1qM|$3I4vFyp9$UBF40$RcDYW;`_78So;9G+|T` zZE_}LI|8wXJv9!H(%bJU41q87~KxVrOVR4p{4QojjR^?Q*$%+pwhZ=eFdfXYNVg`o8= z!2F4z=rydw6R1?C6gmNBAxSgEs0`HO5VoO;@@-ULXHZ4{ zFH}Gm3(3D;qYQSJg{X-YIFV|cN52uT!l>)x*i8RJ)Rh%lP9|);nf_C#Kqrxw7OX~P z>@K_=N70X^vtq_n(Fjo~2k;S8#4C!O1qQL2{^Qt$$K7!s?`ApuHr$Gv@fJ+GlIz1T zDgz&()@z>aRR4NZhHrQKTVgZ_#@vfK@qScs96?>p2~-XI1v~K@)Vy|H>RRl=bli!$ zq7mfJ9O1*l&u{^Hh(g6zkDA|%s-@UXG#*JHVoYH`m6!^ts0Xq!5q+qQuS8{}2ET=2 zOy~J0P$@sauTKSjipo$H_ooaup!$QT=N?1WjhQhTy4#aTfto4I(p}9(y*6#Aliz~5 z_!9CWnDQyNp4*B#;8QqV@Bb(bo;7cyHaw4I`ibHg zD_|bsH=&JPcodbH;`vU-s_`27b=a~G3x+=LC7 zjl0l;`*1lPMBVLI*oN6P&WXCQp8h?k1%HN`|94EnS_(u5@}mM+jtZ;=^;{TZn(#CY zrRE@V3+4m74!^-a;VLS~!iuY%1=paiXdUL^7RN@Dmr)VFi&|(LXW+Dj&VMphs9Nd3Ox%qM za3AUbV>lTT}vii+$c`tTgyhTcWa_%LdG8!FIIR6uXxN<5B5 zShU#5%pz2Ot?Tzunc0P^g=difW9B8NVSa@beDMV;bp_uxW*AqZ7J40ZvfralmPmzZ zp+e-1GV_oa%&n*z*o&(A575HjU?ctqm5~MtDNXNx3k{`mEqZYfefVQkik`ta7{>tq z*8RSInY$q>kiDo3j-uwji3;>{+=?D{uf_W@8Q($=`U z#=WSjor5}YD_(&=!VY{6gLo17jWS(Sptk zTpEYmfnT^2j$uCIm#`4?uX9rCM`dCSDu5vB$_^vfYCgma%x!T}??VN=5R0(~Yj7K8 z;?WlJuLXa}fbQ-T{v&}R!4&#mv^qs}9`(Loz(kzZ<}8qp`tP+A7h?eZJpTmFr~kWl zC-qs}kFKr(Ror2>zavJ&&%o=LgkNJBUc#AJcD?h!N}NJ}J?i8?#60{MHUBJnvET+L z&?;07HK8&YL%|D1*f7T~7Qfd4br(-g!mt!Gn!_}Sf@tnV<#Y<=UJS82WKrkGN zTFsH}kYz`Ddip|9(;kj&u(~4~2Kpj_ZmVn9wj%@a^~ELWvxAWVJ2YTh`eMl1&})Y+ z+g+hwD+Gde@A^=DTSZR7JX`DX@&6g+6EmDW+(oV4A!~@u2DZ0WS@GPea8gP~`O;`8 zU~j*();qPMveG}l#$R1kMx(MazOi;=dVKYgH&T32E7WHNBmMoucAz^Fwb**%1Z$#^ z?}mnkBGK)hRkPwvtGY8PCngTqy#qbNwiOz(f`Mo>)Dy4*{aspQBB<_2P^VJ#!|}&D l>k~@bdo{N|GGs>sn${Ju-;7&>oXFjEA_6@eU%0k4@qhQN`k(*+ diff --git a/languages/exelearning-ca_valencia.po b/languages/exelearning-ca_valencia.po index 249cd1d..deb0073 100644 --- a/languages/exelearning-ca_valencia.po +++ b/languages/exelearning-ca_valencia.po @@ -393,8 +393,8 @@ msgid "File copy appears truncated." msgstr "La còpia del fitxer pareix estar truncada." #: assets/js/elp-upload.js:413 -msgid "Show Teacher Mode toggler" -msgstr "Mostrar el commutador de Mode Professor" +msgid "Show teacher layer selector" +msgstr "Mostrar el selector de capa docent" #: includes/class-exelearning-editor.php:179 #: includes/class-exelearning-editor.php:212 @@ -652,12 +652,13 @@ msgid "Height of the preview, in pixels." msgstr "Alçada de la previsualització, en píxels." #: admin/class-admin-settings.php:125 -msgid "When enabled, the content loads with teacher mode active." -msgstr "Quan s'activa, el contingut es carrega amb el mode docent actiu." +msgid "When enabled, the teacher layer selector is offered so viewers can reveal teacher content." +msgstr "Quan s'activa, s'ofereix el selector de capa docent perquè qui el veja puga mostrar el contingut docent." #: admin/class-admin-settings.php:130 -msgid "Whether the teacher-mode toggle button is shown." -msgstr "Si es mostra el botó per commutar el mode docent." +#: assets/js/elp-upload.js:414 +msgid "If disabled, the teacher layer selector is hidden in the embedded eXeLearning content." +msgstr "Si es desactiva, el selector de capa docent s'ocultarà al contingut eXeLearning incrustat." #: admin/class-admin-settings.php:135 msgid "When enabled, shows a multi-format download button." diff --git a/languages/exelearning-de_DE-4cf813b039eac98ce62f176afa8fc8fe.json b/languages/exelearning-de_DE-4cf813b039eac98ce62f176afa8fc8fe.json index b88c90c..38e1faa 100644 --- a/languages/exelearning-de_DE-4cf813b039eac98ce62f176afa8fc8fe.json +++ b/languages/exelearning-de_DE-4cf813b039eac98ce62f176afa8fc8fe.json @@ -43,8 +43,11 @@ "This is an eXeLearning v2 source file. The content will be displayed on the frontend if exported HTML is available.": [ "Dies ist eine eXeLearning v2-Quelldatei. Der Inhalt wird im Frontend angezeigt, wenn exportiertes HTML verf\u00fcgbar ist." ], - "Show Teacher Mode toggler": [ - "Umschalter f\u00fcr Lehrermodus anzeigen" + "Show teacher layer selector": [ + "Lehrerebenen-Auswahl anzeigen" + ], + "If disabled, the teacher layer selector is hidden in the embedded eXeLearning content.": [ + "Wenn deaktiviert, wird die Lehrerebenen-Auswahl im eingebetteten eXeLearning-Inhalt ausgeblendet." ], "More download formats": [ "Weitere Download-Formate" diff --git a/languages/exelearning-de_DE.mo b/languages/exelearning-de_DE.mo index 36913feb39ea4b9c32cba621810d721a0d4d3d04..fd160029103207a6de86b92d7e30c161d003a0d0 100644 GIT binary patch delta 5308 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 diff --git a/languages/exelearning-de_DE.po b/languages/exelearning-de_DE.po index e221a1b..9c9efe8 100644 --- a/languages/exelearning-de_DE.po +++ b/languages/exelearning-de_DE.po @@ -393,8 +393,8 @@ msgid "File copy appears truncated." msgstr "Die Dateikopie scheint abgeschnitten zu sein." #: assets/js/elp-upload.js:413 -msgid "Show Teacher Mode toggler" -msgstr "Umschalter für Lehrermodus anzeigen" +msgid "Show teacher layer selector" +msgstr "Lehrerebenen-Auswahl anzeigen" #: includes/class-exelearning-editor.php:179 #: includes/class-exelearning-editor.php:212 @@ -652,12 +652,13 @@ msgid "Height of the preview, in pixels." msgstr "Höhe der Vorschau in Pixeln." #: admin/class-admin-settings.php:125 -msgid "When enabled, the content loads with teacher mode active." -msgstr "Wenn aktiviert, wird der Inhalt mit aktivem Lehrermodus geladen." +msgid "When enabled, the teacher layer selector is offered so viewers can reveal teacher content." +msgstr "Wenn aktiviert, wird die Lehrerebenen-Auswahl angeboten, damit Betrachter Lehrinhalte einblenden können." #: admin/class-admin-settings.php:130 -msgid "Whether the teacher-mode toggle button is shown." -msgstr "Legt fest, ob die Umschaltfläche für den Lehrermodus angezeigt wird." +#: assets/js/elp-upload.js:414 +msgid "If disabled, the teacher layer selector is hidden in the embedded eXeLearning content." +msgstr "Wenn deaktiviert, wird die Lehrerebenen-Auswahl im eingebetteten eXeLearning-Inhalt ausgeblendet." #: admin/class-admin-settings.php:135 msgid "When enabled, shows a multi-format download button." diff --git a/languages/exelearning-eo-4cf813b039eac98ce62f176afa8fc8fe.json b/languages/exelearning-eo-4cf813b039eac98ce62f176afa8fc8fe.json index d11377b..bfaaeba 100644 --- a/languages/exelearning-eo-4cf813b039eac98ce62f176afa8fc8fe.json +++ b/languages/exelearning-eo-4cf813b039eac98ce62f176afa8fc8fe.json @@ -43,8 +43,11 @@ "This is an eXeLearning v2 source file. The content will be displayed on the frontend if exported HTML is available.": [ "\u0108i tio estas eXeLearning v2 fontdosiero. La enhavo estos montrata en la fasado se eksportita HTML estas disponebla." ], - "Show Teacher Mode toggler": [ - "Montri la \u015daltilon de Instruista Re\u011dimo" + "Show teacher layer selector": [ + "Montri la elekton de instruista tavolo" + ], + "If disabled, the teacher layer selector is hidden in the embedded eXeLearning content.": [ + "Se mal\u015daltita, la elekto de instruista tavolo estas ka\u015dita en la enkorpigita eXeLearning-enhavo." ], "More download formats": [ "Pliaj el\u015dutformatoj" diff --git a/languages/exelearning-eo.mo b/languages/exelearning-eo.mo index 2eb3203627159d13107deb09d56651f4e741faa5..c989fcdec3cc857c2406b766340eb6dc2a3103be 100644 GIT binary patch delta 5323 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