diff --git a/.agents/skills/changelog/SKILL.md b/.agents/skills/changelog/SKILL.md new file mode 100644 index 0000000..f65888c --- /dev/null +++ b/.agents/skills/changelog/SKILL.md @@ -0,0 +1,156 @@ +--- + +name: changelog +description: Generate a draft CHANGELOG entry for the next release from merged GitHub pull requests. Asks the user for the target version before starting. +---------------------------------------------------------------------------------------------------------------------------------------------------------- + +# Skill: Generate CHANGELOG draft + +> **This skill produces a working draft, not a finished changelog.** The output is a starting point to make the task easier — the maintainer must review, edit and refine every entry before committing. + +Generate a draft entry for `CHANGELOG.md` based on the pull requests merged since the last published release. + +If you can modify files, insert the new entry into `CHANGELOG.md` as described below. Otherwise, output the completed block ready to be inserted manually. + +--- + +## 0. Ask for the target version + +**Before doing anything else**, ask the user: + +> What will the version number and type be for this release? +> Examples: `v4.0.0-rc2`, `v4.0.1`, `v4.1.0-beta1` + +Wait for the answer. Use that value verbatim for the heading — do not infer or calculate it from the existing CHANGELOG. + +The release date is **today's date** in `YYYY-MM-DD` format. + +--- + +## 1. Find the latest published release on GitHub + +Fetch the latest release to get the cut-off timestamp: + +```sh +gh release view --repo exelearning/mod_exeweb --json tagName,publishedAt +``` + +Record: + +* **`tagName`** — the git tag of the last release (e.g. `v4.0.0-rc1`). +* **`publishedAt`** — the ISO timestamp used to filter merged PRs. + +--- + +## 2. Collect all merged PRs since the last release + +```sh +gh pr list \ + --repo exelearning/mod_exeweb \ + --state merged \ + --search "merged:>YYYY-MM-DDTHH:MM:SSZ" \ + --json number,title,body,labels,mergedAt \ + --limit 200 +``` + +> Replace the timestamp with the `publishedAt` value from step 1. + +If the result reaches the limit, continue fetching additional pages until all merged PRs have been processed. + +For each PR, read: + +* **`title`** — the PR headline. +* **`body`** — the **full description**. This is the primary source; many PRs bundle several unrelated changes under a single title. +* **`labels`** — supporting context only. When labels conflict with the PR body, prefer the PR body. +* **`mergedAt`** — for verification if needed. + +If a PR body references issues with `Closes #NNN` or `Fixes #NNN`, fetch them too: + +```sh +gh issue view NNN --repo exelearning/mod_exeweb --json title,body +``` + +--- + +## 3. Write the entries + +Follow the **exact style** of the existing changelog entries in `CHANGELOG.md`. + +### Style rules + +* **One sentence per bullet.** Start with a capital letter; no trailing full stop. +* Describe the **outcome for users**, not the implementation. + + * ✅ `Sort iDevice: exercises with identical cards are now correctly validated` + * ❌ `Fixed a bug in the validation logic of SortIdevice.js` +* Use component prefixes only when they improve clarity and match the style already used in the changelog (e.g. `TinyMCE:`, `File Manager:`). +* Avoid technical jargon unless it is already common in the existing changelog (e.g. `blob:`, `asset://`, `SCORM`). +* Dependency upgrades: `package-name: OLD → NEW` (lowercase, `→`, no extra words). +* Group related entries together. + +### What NOT to include + +* Duplicate entries for the same fix. +* Multiple translation-only bullets when they can reasonably be combined. +* Dependency-only PRs with no user-visible effect may be grouped into a single bullet if there are many minor updates. +* Merge commits. +* Version-bump-only PRs. +* Purely internal changes (CI, tests, linting, formatting) unless they have a significant user or developer impact. + +--- + +## 4. Assemble the block + +```markdown +## vX.Y.Z-type – YYYY-MM-DD + +- … +- … +``` + +--- + +## 5. Insert into `CHANGELOG.md` + +Insert the new block immediately after the `# CHANGELOG` heading, before the previous version entry. + +```markdown +# CHANGELOG + +## vX.Y.Z-type – YYYY-MM-DD +… +… + +## v4.0.0-rc1 – 2026-04-07 +… +``` + +Do **not** modify any existing content below the insertion point. + +--- + +## 6. Remind the user this is a draft + +After generating the entry, tell the user: + +> ⚠️ This is a draft. Please review every entry before committing: +> +> * Check that descriptions are accurate and clear for end users. +> * Merge or remove redundant entries. +> * Add anything the PRs may not have described explicitly. + +--- + +## Reference: existing entry style + +```markdown +## v4.0.1 – 2026-06-09 + +- Show the eXeLearning "Edit" button on the activity view when "Display" is set to "In pop-up", "Open" or "New window". +- Remove the legacy "In frame" display option and migrate existing activities to "Embed" during upgrade. +- Fix embedded editor version detection in release packages so the correct eXeLearning version is reported. +- Improve accessibility by updating embedded content frame titles dynamically based on the activity and page title. +- Exclude development files from release packages. +- Update the README to clarify Moodle compatibility, editor modes and support information. +- Automatically install and configure the embedded editor in Playground environments. +``` diff --git a/.distignore b/.distignore index 3d2a2e5..8a9a25b 100644 --- a/.distignore +++ b/.distignore @@ -2,6 +2,7 @@ .github .gitignore .aider* +.agents .claude .DS_Store .distignore diff --git a/AGENTS.md b/AGENTS.md index 681b676..defb9dc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -120,6 +120,14 @@ Uses Moodle's file API — packages stored in `mod_exeweb/package` filearea, exp - GitHub Actions `release.yml` triggers on git tags: fetches editor, builds, packages, uploads to GitHub Release - `check-editor-releases.yml` runs daily to auto-release when new editor versions appear +## Agent skills (`.agents/`) + +The `.agents/skills/` directory contains Claude Code project skills — reusable prompt workflows invoked with `/skill-name` in the Claude Code CLI. They are development tooling only and are excluded from release packages via `.distignore`. + +| Skill | File | Purpose | +|-------|------|---------| +| `changelog` | `.agents/skills/changelog/SKILL.md` | Draft a CHANGELOG entry from merged GitHub PRs since the last release | + ## Twin-plugin checks (mod_exeweb ↔ mod_exescorm) `mod_exeweb` and [`mod_exescorm`](https://github.com/exelearning/mod_exescorm) share large amounts of code, history, and bug surface (embedded editor, action bar, packaging pipeline, online callbacks, etc.). **Before closing a fix, always cross-check the sibling plugin:** diff --git a/CHANGELOG.md b/CHANGELOG.md index 4160ba5..ad89066 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # CHANGELOG +## v4.0.2 – 2026-07-07 + +- Allow saving the plugin settings page without requiring an optional package template file. +- Fix Playground environments loading an outdated embedded editor version when `.editor-version` had already been updated. +- Automatically keep the Playground blueprint editor URL in sync with `.editor-version` on each release. +- Review and complete the Spanish (es) translation. +- Review all language packs and add placeholder translations for newly introduced strings in incomplete translations. + +--- + ## v4.0.1 – 2026-06-09 - Show the eXeLearning "Edit" button on the activity view when "Display" is set to "In pop-up", "Open" or "New window". diff --git a/lang/ca/exeweb.php b/lang/ca/exeweb.php index c4e7c5d..16a548c 100644 --- a/lang/ca/exeweb.php +++ b/lang/ca/exeweb.php @@ -59,12 +59,12 @@ $string['exeonline:baseuri_desc'] = 'URL de eXeLearning'; $string['exeonline:hmackey1'] = 'Clave de firma'; $string['exeonline:hmackey1_desc'] = 'Clave utilizada para firmar los datos enviados al servidor de eXeLearning, de forma que podamos estar seguros de que se originaron en este servidor. Utilice un máximo de 32 caracteres.'; -$string['exeonline:tokenexpiration'] = 'Caducidad del token'; -$string['exeonline:tokenexpiration_desc'] = 'Tiempo máximo (en segundos) para editar el paquete en eXeLearning y volver a Moodle.'; $string['exeonline:provider_name'] = 'Nom del proveïdor'; $string['exeonline:provider_name_desc'] = 'Nom del proveïdor d\'eXeLearning. Aquest s\'utilitza per identificar el proveidor a la interfície d\'eXeLearning.'; $string['exeonline:provider_version'] = 'Versió del proveïdor'; $string['exeonline:provider_version_desc'] = 'Versió del proveïdor d\'eXeLearning. Aquest s\'utilitza per identificar el proveidor a la interfície d\'eXeLearning.'; +$string['exeonline:tokenexpiration'] = 'Caducidad del token'; +$string['exeonline:tokenexpiration_desc'] = 'Tiempo máximo (en segundos) para editar el paquete en eXeLearning y volver a Moodle.'; $string['exeweb:forbiddenfileslist'] = 'Archivos prohibidos, lista RE'; $string['exeweb:forbiddenfileslist_desc'] = 'Aquí puede cofigurar una lista de archivos prohibidos. Introduzca cada archivo prohibido como una expresión regular PHP (RE) en una nueva línea. Por ejemplo:'; $string['exeweb:mandatoryfileslist'] = ' Ficheros obligatorios, lista RE'; @@ -126,10 +126,11 @@ $string['exewebdetails_typedate'] = '{$a->type} {$a->date}'; $string['exewebdetails_sizetypedate'] = '{$a->size} {$a->type} {$a->date}'; $string['exeorigin'] = 'Tipo'; -$string['exeorigin_help'] = 'Este ajuste determina cómo se incluye el paquete en el curso. Hay dos opciones: +$string['exeorigin_help'] = 'Aquest ajust determina com s\'inclou el paquet al curs. Les opcions poden incloure: -* Paquete subido - Permite elegir el zip creado con eXeLearning por medio del selector de archivos. -* Crear/Editar con eXeLearning - Crea la actividad y te lleva a eXeLearning para editar el contenido. Al terminar, eXeLearning lo enviará de vuelta a Moodle.'; +* Paquet pujat - Permet triar el zip creat amb eXeLearning per mitjà del selector de fitxers. +* Crear amb eXeLearning (editor integrat) - Crea l\'activitat usant l\'editor integrat. Podreu editar-la directament des de la pàgina de visualització de l\'activitat. +* Crear/Editar amb eXeLearning - Crea l\'activitat i t\'acompanya a eXeLearning per editar el contingut. En acabar, eXeLearning ho enviarà de tornada a Moodle.'; $string['exeweb:exportexeweb'] = 'Exportar recurso'; $string['exeweb:view'] = 'Ver recurso'; $string['search:activity'] = 'Fichero'; @@ -149,10 +150,35 @@ Si el tipo de archivo es desconocido para el sistema, no se muestra.'; $string['uploadeddate'] = 'Subido {$a}'; $string['embeddededitorsettings'] = 'Tipus d\'editor'; -$string['embeddededitorstatus'] = 'Editor incrustat'; -$string['editorlatestversionongithub'] = 'Última versió a GitHub:'; +$string['editormode'] = 'Mode d\'editor'; +$string['editormodedesc'] = 'Seleccioneu quin editor voleu utilitzar per crear i editar contingut eXeLearning. La configuració de connexió online només s\'aplica quan es selecciona el mode "eXeLearning Online".'; +$string['editormodeonline'] = 'eXeLearning Online (servidor remot)'; +$string['editormodeembedded'] = 'Editor integrat (incrustat)'; +$string['embeddednotinstalledcontactadmin'] = 'Els fitxers de l\'editor integrat no estan instal·lats. Contacteu amb l\'administrador del lloc per instal·lar-lo.'; +$string['embeddednotinstalledadmin'] = 'Els fitxers de l\'editor integrat no estan instal·lats. Podeu instal·lar-lo des de la configuració del connector.'; +$string['editembedded'] = 'Editar amb eXeLearning'; +$string['editembedded_integrated'] = 'Integrat'; +$string['editembedded_help'] = 'Obre l\'editor eXeLearning integrat per editar el contingut directament dins de Moodle.'; +$string['editormissing'] = 'L\'editor integrat eXeLearning no està instal·lat. Contacteu amb l\'administrador.'; +$string['editorreaderror'] = 'No s\'han pogut llegir els fitxers de l\'editor integrat eXeLearning. Comproveu els permisos dels fitxers i contacteu amb l\'administrador.'; +$string['embeddedtypehelp'] = 'Es crearà l\'activitat i podreu editar-la amb l\'editor eXeLearning integrat des de la pàgina de visualització de l\'activitat.'; +$string['saving'] = 'Desant...'; +$string['savedsuccess'] = 'Canvis desats correctament'; +$string['savetomoodle'] = 'Desar a Moodle'; +$string['savingwait'] = 'Si us plau, espereu mentre es desa l\'arxiu.'; +$string['unsavedchanges'] = 'Teniu canvis sense desar. Esteu segurs que voleu tancar?'; +$string['typeembedded'] = 'Crear amb eXeLearning (editor integrat)'; +$string['typeexewebcreate'] = 'Crear amb eXeLearning'; +$string['typeexewebedit'] = 'Editar amb eXeLearning'; +$string['typelocal'] = 'Paquet pujat'; + +$string['teachermodevisible'] = 'Mostra el selector de capa docent'; +$string['teachermodevisible_help'] = 'Si es desactiva, s\'ocultarà el selector de capa docent dins del recurs incrustat.'; + +// Gestió de l'editor incrustat. $string['manageembeddededitor'] = 'Gestiona l\'editor incrustat'; $string['manageembeddededitor_desc'] = 'Instal·la, actualitza o repara l\'editor incrustat d\'eXeLearning.'; +$string['embeddededitorstatus'] = 'Editor incrustat'; $string['editorsource_moodledata'] = 'Instal·lat (gestionat per administració)'; $string['editorsource_bundled'] = 'Inclòs amb el connector'; $string['editorsource_none'] = 'No instal·lat'; @@ -168,6 +194,7 @@ $string['editormoodledatadir'] = 'Directori de dades'; $string['editorbundleddir'] = 'Directori inclòs'; $string['editorlatestversion'] = 'Última versió disponible'; +$string['editorlatestversionongithub'] = 'Última versió a GitHub:'; $string['editorstatusinfo'] = 'L\'editor incrustat serveix recursos estàtics per a l\'editor integrat d\'eXeLearning. Els orígens es comproven en aquest ordre: instal·lat per administració (moodledata) i després inclòs amb el connector (dist/).'; $string['editorgithubconnecterror'] = 'No s\'ha pogut connectar amb GitHub: {$a}'; $string['editorgithubapierror'] = 'GitHub ha retornat l\'estat HTTP {$a}. Torneu-ho a provar més tard.'; @@ -223,24 +250,59 @@ $string['editoruninstalledsuccess'] = 'Editor desinstal·lat correctament'; $string['editorupdatedsuccess'] = 'Editor actualitzat correctament'; $string['editorrepairsuccess'] = 'Editor reparat correctament'; -$string['editormode'] = 'Mode d\'editor'; -$string['editormodedesc'] = 'Seleccioneu quin editor voleu utilitzar per crear i editar contingut eXeLearning. La configuració de connexió online només s\'aplica quan es selecciona el mode "eXeLearning Online".'; -$string['editormodeonline'] = 'eXeLearning Online (servidor remot)'; -$string['editormodeembedded'] = 'Editor integrat (incrustat)'; -$string['embeddednotinstalledcontactadmin'] = 'Els fitxers de l\'editor integrat no estan instal·lats. Contacteu amb l\'administrador del lloc per instal·lar-lo.'; -$string['embeddednotinstalledadmin'] = 'Els fitxers de l\'editor integrat no estan instal·lats. Podeu instal·lar-lo des de la configuració del connector.'; -$string['editembedded'] = 'Editar amb eXeLearning'; -$string['editembedded_integrated'] = 'Integrat'; -$string['editembedded_help'] = 'Obre l\'editor eXeLearning integrat per editar el contingut directament dins de Moodle.'; -$string['editormissing'] = 'L\'editor integrat eXeLearning no està instal·lat. Contacteu amb l\'administrador.'; -$string['editorreaderror'] = 'No s\'han pogut llegir els fitxers de l\'editor integrat eXeLearning. Comproveu els permisos dels fitxers i contacteu amb l\'administrador.'; -$string['embeddedtypehelp'] = 'Es crearà l\'activitat i podreu editar-la amb l\'editor eXeLearning integrat des de la pàgina de visualització de l\'activitat.'; -$string['saving'] = 'Desant...'; -$string['savedsuccess'] = 'Canvis desats correctament'; -$string['savetomoodle'] = 'Desar a Moodle'; -$string['savingwait'] = 'Si us plau, espereu mentre es desa l\'arxiu.'; -$string['unsavedchanges'] = 'Teniu canvis sense desar. Esteu segurs que voleu tancar?'; -$string['typeembedded'] = 'Crear amb eXeLearning (editor integrat)'; -$string['typeexewebcreate'] = 'Crear con eXeLearning'; -$string['typeexewebedit'] = 'Editar con eXeLearning'; -$string['typelocal'] = 'Paquete subido'; + +$string['editoruploadmissingfile'] = 'No s\'ha pujat cap fitxer ZIP de l\'editor.'; +$string['editoruploadfailed'] = 'No s\'ha pogut pujar el paquet de l\'editor: {$a}'; + +// Gestió d'estils. +$string['stylesmanager'] = 'Estils'; +$string['stylesmanager_hint'] = 'Puja paquets d\'estils d\'eXeLearning i controla quins estils exposa l\'editor integrat.'; +$string['stylesmanager_intro'] = 'Gestiona els estils d\'eXeLearning disponibles per a l\'editor integrat. Els estils integrats es poden ocultar de manera individual. Els estils pujats es poden habilitar, deshabilitar o eliminar en qualsevol moment.'; +$string['stylesmanager_manage'] = 'Gestionar estils instal·lats'; +$string['stylesmanager_manage_hint'] = 'Obre la pàgina d\'estils per habilitar o deshabilitar els estils integrats, o per eliminar estils pujats.'; +$string['stylesonlywhenembedded'] = 'L\'editor integrat no està activat. Els estils gestionats aquí només s\'apliquen quan el mode de l\'editor és «integrat».'; +$string['stylesblockimport'] = 'Bloquejar estils importats per l\'usuari'; +$string['stylesblockimport_desc'] = 'Quan està activat, l\'editor integrat oculta la pestanya «Estils importats» i refusa instal·lar un estil inclòs en un projecte .elpx importat. L\'usuari només podrà triar de la llista aprovada per l\'administrador. Equival al comportament d\'eXeLearning ONLINE_THEMES_INSTALL=false.'; +$string['stylesupload_label'] = 'Paquet ZIP d\'estil'; +$string['stylesupload_submit'] = 'Pujar estil'; +$string['stylesupload_hint'] = 'Mida màxima: {$a}. Només s\'accepten paquets .zip amb un config.xml vàlid.'; +$string['stylesupload_success'] = 'Estil «{$a}» instal·lat.'; +$string['stylesupload_success_many'] = 'Instal·lats: {$a}'; +$string['stylesupload_goto_settings'] = 'Pujar estils des de la pàgina de configuració del connector'; +$string['stylesupload_failed'] = 'La pujada de l\'estil ha fallat.'; +$string['stylesupload_missing'] = 'El fitxer pujat no existeix o no es pot llegir.'; +$string['stylesupload_empty'] = 'El fitxer pujat és buit.'; +$string['stylesupload_toolarge'] = 'L\'estil pujat supera la mida màxima permesa de {$a}.'; +$string['stylesupload_nozip'] = 'L\'extensió PHP ZipArchive no està disponible.'; +$string['stylesupload_badzip'] = 'El fitxer pujat no és un ZIP vàlid.'; +$string['stylesupload_badentry'] = 'El fitxer ZIP conté entrades que no es poden llegir.'; +$string['stylesupload_unsafe'] = 'Entrada de fitxer no segura rebutjada: {$a}'; +$string['stylesupload_multiconfig'] = 'El fitxer conté més d\'un config.xml.'; +$string['stylesupload_noconfig'] = 'Al paquet d\'estil li falta el config.xml.'; +$string['stylesupload_mixedroots'] = 'El fitxer ha de contenir una única carpeta arrel o tenir tots els fitxers a l\'arrel.'; +$string['stylesupload_badext'] = 'Tipus de fitxer no permès al paquet d\'estil: {$a}'; +$string['stylesupload_configread'] = 'No s\'ha pogut llegir config.xml del fitxer.'; +$string['stylesupload_badxml'] = 'config.xml no és XML vàlid.'; +$string['stylesupload_noname'] = 'config.xml ha de declarar un element .'; +$string['stylesupload_traversal'] = 'S\'ha bloquejat un intent d\'escalada de directoris durant l\'extracció.'; +$string['stylesupload_readfailed'] = 'No s\'ha pogut llegir un fitxer del ZIP durant l\'extracció.'; +$string['stylesupload_writefailed'] = 'No s\'ha pogut escriure un fitxer extret.'; +$string['stylesnocss'] = 'L\'estil pujat no conté cap full d\'estils.'; +$string['stylesinstallfailed'] = 'No s\'ha pogut instal·lar l\'estil: {$a}'; +$string['stylesuploaded'] = 'Estils pujats'; +$string['stylesuploaded_empty'] = 'Encara no hi ha estils pujats.'; +$string['stylesuploaded_hint'] = 'Activa o desactiva els estils pujats. Desmarca\'ls per ocultar-los de l\'editor; elimina\'ls per esborrar-los definitivament.'; +$string['stylesbuiltin'] = 'Estils integrats'; +$string['stylesbuiltin_empty'] = 'Els estils integrats no estan disponibles perquè l\'editor integrat no està instal·lat.'; +$string['stylesbuiltin_hint'] = 'Desmarca un estil per ocultar-lo de l\'editor. Els estils integrats desactivats no s\'eliminen; el projecte sempre pot recórrer a l\'estil per defecte.'; +$string['stylestable_title'] = 'Títol'; +$string['stylestable_id'] = 'Id'; +$string['stylestable_version'] = 'Versió'; +$string['stylestable_installed'] = 'Instal·lat'; +$string['stylestable_enabled'] = 'Habilitat'; +$string['stylestable_actions'] = 'Accions'; +$string['stylesenable'] = 'Habilitar'; +$string['stylesdisable'] = 'Deshabilitar'; +$string['stylesdelete'] = 'Eliminar'; +$string['stylesdelete_confirm'] = 'Eliminar aquest estil? Aquesta acció no es pot desfer.'; +$string['stylesdelete_success'] = 'Estil eliminat.'; diff --git a/lang/es/exeweb.php b/lang/es/exeweb.php index d0a44ac..6f224b2 100644 --- a/lang/es/exeweb.php +++ b/lang/es/exeweb.php @@ -59,12 +59,12 @@ $string['exeonline:baseuri_desc'] = 'URL de eXeLearning'; $string['exeonline:hmackey1'] = 'Clave de firma'; $string['exeonline:hmackey1_desc'] = 'Clave utilizada para firmar los datos enviados al servidor de eXeLearning, de forma que podamos estar seguros de que se originaron en este servidor. Utilice un máximo de 32 caracteres.'; -$string['exeonline:tokenexpiration'] = 'Caducidad del token'; -$string['exeonline:tokenexpiration_desc'] = 'Tiempo máximo (en segundos) para editar el paquete en eXeLearning y volver a Moodle.'; $string['exeonline:provider_name'] = 'Nombre del entorno'; $string['exeonline:provider_name_desc'] = 'Nombre del proveedor de eXeLearning. Este se utiliza para identificar el proveedor en la interfaz de eXeLearning.'; $string['exeonline:provider_version'] = 'Versión del entorno'; $string['exeonline:provider_version_desc'] = 'Versión del proveedor de eXeLearning. Este se utiliza para identificar el proveedor en la interfaz de eXeLearning.'; +$string['exeonline:tokenexpiration'] = 'Caducidad del token'; +$string['exeonline:tokenexpiration_desc'] = 'Tiempo máximo (en segundos) para editar el paquete en eXeLearning y volver a Moodle.'; $string['exeweb:forbiddenfileslist'] = 'Archivos prohibidos, lista RE'; $string['exeweb:forbiddenfileslist_desc'] = 'Aquí puede cofigurar una lista de archivos prohibidos. Introduzca cada archivo prohibido como una expresión regular PHP (RE) en una nueva línea. Por ejemplo:'; $string['exeweb:mandatoryfileslist'] = ' Ficheros obligatorios, lista RE'; @@ -150,10 +150,35 @@ Si el tipo de archivo es desconocido para el sistema, no se muestra.'; $string['uploadeddate'] = 'Subido {$a}'; $string['embeddededitorsettings'] = 'Tipo de editor'; -$string['embeddededitorstatus'] = 'Editor embebido'; -$string['editorlatestversionongithub'] = 'Última versión en GitHub:'; +$string['editormode'] = 'Modo de editor'; +$string['editormodedesc'] = 'Seleccione qué editor usar para crear y editar contenido eXeLearning. La configuración de conexión online solo aplica cuando se selecciona el modo "eXeLearning Online".'; +$string['editormodeonline'] = 'eXeLearning Online (servidor remoto)'; +$string['editormodeembedded'] = 'Editor integrado (embebido)'; +$string['embeddednotinstalledcontactadmin'] = 'Los archivos del editor integrado no están instalados. Contacte con el administrador del sitio para instalarlo.'; +$string['embeddednotinstalledadmin'] = 'Los archivos del editor integrado no están instalados. Puede instalarlo desde la configuración del plugin.'; +$string['editembedded'] = 'Editar con eXeLearning'; +$string['editembedded_integrated'] = 'Integrado'; +$string['editembedded_help'] = 'Abre el editor eXeLearning integrado para editar el contenido directamente dentro de Moodle.'; +$string['editormissing'] = 'El editor integrado eXeLearning no está instalado. Contacte con el administrador.'; +$string['editorreaderror'] = 'No se pudieron leer los archivos del editor integrado eXeLearning. Compruebe los permisos de los archivos y contacte con el administrador.'; +$string['embeddedtypehelp'] = 'Se creará la actividad y podrá editarla usando el editor eXeLearning integrado desde la página de visualización de la actividad.'; +$string['saving'] = 'Guardando...'; +$string['savedsuccess'] = 'Cambios guardados correctamente'; +$string['savetomoodle'] = 'Guardar en Moodle'; +$string['savingwait'] = 'Por favor, espere mientras se guarda el archivo.'; +$string['unsavedchanges'] = 'Tiene cambios sin guardar. ¿Está seguro de que desea cerrar?'; +$string['typeembedded'] = 'Crear con eXeLearning (editor integrado)'; +$string['typeexewebcreate'] = 'Crear con eXeLearning'; +$string['typeexewebedit'] = 'Editar con eXeLearning'; +$string['typelocal'] = 'Paquete subido'; + +$string['teachermodevisible'] = 'Mostrar el selector de capa docente'; +$string['teachermodevisible_help'] = 'Si se desactiva, se ocultará el selector de capa docente dentro del recurso incrustado.'; + +// Gestión del editor embebido. $string['manageembeddededitor'] = 'Gestionar editor embebido'; $string['manageembeddededitor_desc'] = 'Instalar, actualizar o reparar el editor embebido de eXeLearning.'; +$string['embeddededitorstatus'] = 'Editor embebido'; $string['editorsource_moodledata'] = 'Instalado (gestionado por administración)'; $string['editorsource_bundled'] = 'Incluido con el plugin'; $string['editorsource_none'] = 'No instalado'; @@ -169,6 +194,7 @@ $string['editormoodledatadir'] = 'Directorio de datos'; $string['editorbundleddir'] = 'Directorio incluido'; $string['editorlatestversion'] = 'Última versión disponible'; +$string['editorlatestversionongithub'] = 'Última versión en GitHub:'; $string['editorstatusinfo'] = 'El editor embebido sirve recursos estáticos para el editor integrado de eXeLearning. Los orígenes se comprueban en este orden: instalado por administración (moodledata) y después incluido en el plugin (dist/).'; $string['editorgithubconnecterror'] = 'No se pudo conectar con GitHub: {$a}'; $string['editorgithubapierror'] = 'GitHub devolvió el estado HTTP {$a}. Inténtelo de nuevo más tarde.'; @@ -224,30 +250,6 @@ $string['editoruninstalledsuccess'] = 'Editor desinstalado correctamente'; $string['editorupdatedsuccess'] = 'Editor actualizado correctamente'; $string['editorrepairsuccess'] = 'Editor reparado correctamente'; -$string['editormode'] = 'Modo de editor'; -$string['editormodedesc'] = 'Seleccione qué editor usar para crear y editar contenido eXeLearning. La configuración de conexión online solo aplica cuando se selecciona el modo "eXeLearning Online".'; -$string['editormodeonline'] = 'eXeLearning Online (servidor remoto)'; -$string['editormodeembedded'] = 'Editor integrado (embebido)'; -$string['embeddednotinstalledcontactadmin'] = 'Los archivos del editor integrado no están instalados. Contacte con el administrador del sitio para instalarlo.'; -$string['embeddednotinstalledadmin'] = 'Los archivos del editor integrado no están instalados. Puede instalarlo desde la configuración del plugin.'; -$string['editembedded'] = 'Editar con eXeLearning'; -$string['editembedded_integrated'] = 'Integrado'; -$string['editembedded_help'] = 'Abre el editor eXeLearning integrado para editar el contenido directamente dentro de Moodle.'; -$string['editormissing'] = 'El editor integrado eXeLearning no está instalado. Contacte con el administrador.'; -$string['editorreaderror'] = 'No se pudieron leer los archivos del editor integrado eXeLearning. Compruebe los permisos de los archivos y contacte con el administrador.'; -$string['embeddedtypehelp'] = 'Se creará la actividad y podrá editarla usando el editor eXeLearning integrado desde la página de visualización de la actividad.'; -$string['saving'] = 'Guardando...'; -$string['savedsuccess'] = 'Cambios guardados correctamente'; -$string['savetomoodle'] = 'Guardar en Moodle'; -$string['savingwait'] = 'Por favor, espere mientras se guarda el archivo.'; -$string['unsavedchanges'] = 'Tiene cambios sin guardar. ¿Está seguro de que desea cerrar?'; -$string['typeembedded'] = 'Crear con eXeLearning (editor integrado)'; -$string['typeexewebcreate'] = 'Crear con eXeLearning'; -$string['typeexewebedit'] = 'Editar con eXeLearning'; -$string['typelocal'] = 'Paquete subido'; - -$string['teachermodevisible'] = 'Mostrar el selector de capa docente'; -$string['teachermodevisible_help'] = 'Si se desactiva, se ocultará el selector de capa docente dentro del recurso incrustado.'; $string['editoruploadmissingfile'] = 'No se ha subido ningún archivo ZIP del editor.'; $string['editoruploadfailed'] = 'No se pudo subir el paquete del editor: {$a}'; diff --git a/lang/eu/exeweb.php b/lang/eu/exeweb.php index 7cdc298..5c0e711 100644 --- a/lang/eu/exeweb.php +++ b/lang/eu/exeweb.php @@ -59,10 +59,10 @@ $string['exeonline:baseuri_desc'] = 'URL de eXeLearning'; $string['exeonline:hmackey1'] = 'Clave de firma'; $string['exeonline:hmackey1_desc'] = 'Clave utilizada para firmar los datos enviados al servidor de eXeLearning, de forma que podamos estar seguros de que se originaron en este servidor. Utilice un máximo de 32 caracteres.'; -$string['exeonline:provider_name'] = 'Provider name'; -$string['exeonline:provider_name_desc'] = 'Name of the eXeLearning provider. This is used to identify the provider in the eXeLearning interface.'; -$string['exeonline:provider_version'] = 'Provider version'; -$string['exeonline:provider_version_desc'] = 'Version of the eXeLearning provider. This is used to identify the provider in the eXeLearning interface.'; +$string['exeonline:provider_name'] = 'Hornitzaile-izena'; +$string['exeonline:provider_name_desc'] = 'eXeLearning hornitzailearen izena. Hau eXeLearning interfazean hornitzailea identifikatzeko erabiltzen da.'; +$string['exeonline:provider_version'] = 'Hornitzaile-bertsioa'; +$string['exeonline:provider_version_desc'] = 'eXeLearning hornitzailearen bertsioa. Hau eXeLearning interfazean hornitzailea identifikatzeko erabiltzen da.'; $string['exeonline:tokenexpiration'] = 'Caducidad del token'; $string['exeonline:tokenexpiration_desc'] = 'Tiempo máximo (en segundos) para editar el paquete en eXeLearning y volver a Moodle.'; $string['exeweb:forbiddenfileslist'] = 'Archivos prohibidos, lista RE'; @@ -126,10 +126,11 @@ $string['exewebdetails_typedate'] = '{$a->type} {$a->date}'; $string['exewebdetails_sizetypedate'] = '{$a->size} {$a->type} {$a->date}'; $string['exeorigin'] = 'Tipo'; -$string['exeorigin_help'] = 'Este ajuste determina cómo se incluye el paquete en el curso. Hay dos opciones: +$string['exeorigin_help'] = 'Ezarpen honek pakeatea nola txertatzen den zehazten du ikastaro batean. Aukerak honakoak dira: -* Paquete subido - Permite elegir el zip creado con eXeLearning por medio del selector de archivos. -* Crear/Editar con eXeLearning - Crea la actividad y te lleva a eXeLearning para editar el contenido. Al terminar, eXeLearning lo enviará de vuelta a Moodle.'; +* Igotako paketea - eXeLearning-ekin sortutako zip-a hautatzeko aukera ematen du fitxategi-hautatzailearen bidez. +* Sortu eXeLearning-ekin (editore txertatua) - Jarduera editore txertatuarekin sortzen da. Jarduera bistaratze-orritik zuzenean editatu dezakezu. +* Sortu/Editatu eXeLearning-ekin - Jarduera sortzen du eta eXeLearning-era eramaten zaitu edukia editatzeko. Amaitutakoan, eXeLearning-ek Moodle-ra bidaliko du.'; $string['exeweb:exportexeweb'] = 'Exportar recurso'; $string['exeweb:view'] = 'Ver recurso'; $string['search:activity'] = 'Fichero'; @@ -149,10 +150,35 @@ Si el tipo de archivo es desconocido para el sistema, no se muestra.'; $string['uploadeddate'] = 'Subido {$a}'; $string['embeddededitorsettings'] = 'Editore mota'; -$string['embeddededitorstatus'] = 'Editore txertatua'; -$string['editorlatestversionongithub'] = 'GitHub-eko azken bertsioa:'; +$string['editormode'] = 'Editore modua'; +$string['editormodedesc'] = 'Aukeratu zein editore erabili eXeLearning edukia sortu eta editatzeko. Online konexio-ezarpenak soilik aplikatzen dira "eXeLearning Online" modua hautatzen denean.'; +$string['editormodeonline'] = 'eXeLearning Online (urruneko zerbitzaria)'; +$string['editormodeembedded'] = 'Editore txertatua (integratua)'; +$string['embeddednotinstalledcontactadmin'] = 'Editore txertatuaren fitxategiak ez daude instalatuta. Jarri harremanetan guneko administratzailearekin instalatzeko.'; +$string['embeddednotinstalledadmin'] = 'Editore txertatuaren fitxategiak ez daude instalatuta. Pluginaren ezarpenetan instala dezakezu.'; +$string['editembedded'] = 'Editatu eXeLearning-ekin'; +$string['editembedded_integrated'] = 'Integratua'; +$string['editembedded_help'] = 'Ireki eXeLearning editore txertatua edukia zuzenean Moodle-n editatzeko.'; +$string['editormissing'] = 'eXeLearning editore txertatua ez dago instalatuta. Jarri harremanetan administratzailearekin.'; +$string['editorreaderror'] = 'Ezin izan dira eXeLearning editore txertatuaren fitxategiak irakurri. Egiaztatu fitxategien baimenak eta jarri harremanetan administratzailearekin.'; +$string['embeddedtypehelp'] = 'Jarduera sortuko da eta eXeLearning editore txertatuarekin editatu ahal izango duzu jardueraren ikuspegi-orritik.'; +$string['saving'] = 'Gordetzen...'; +$string['savedsuccess'] = 'Aldaketak ondo gorde dira'; +$string['savetomoodle'] = 'Moodle-n gorde'; +$string['savingwait'] = 'Mesedez, itxaron fitxategia gordetzen den bitartean.'; +$string['unsavedchanges'] = 'Gorde gabeko aldaketak dituzu. Ziur zaude itxi nahi duzula?'; +$string['typeembedded'] = 'Sortu eXeLearning-ekin (editore txertatua)'; +$string['typeexewebcreate'] = 'Sortu eXeLearning-ekin'; +$string['typeexewebedit'] = 'Editatu eXeLearning-ekin'; +$string['typelocal'] = 'Igotako paketea'; + +$string['teachermodevisible'] = 'Erakutsi irakasle-geruzaren hautatzailea'; +$string['teachermodevisible_help'] = 'Desaktibatuz gero, barne-baliabidearen irakasle-geruzaren hautatzailea ezkutatuko da.'; + +// Editore txertatuaren kudeaketa. $string['manageembeddededitor'] = 'Kudeatu editore txertatua'; $string['manageembeddededitor_desc'] = 'Instalatu, eguneratu edo konpondu eXeLearning editore txertatua.'; +$string['embeddededitorstatus'] = 'Editore txertatua'; $string['editorsource_moodledata'] = 'Instalatua (administrazioak kudeatua)'; $string['editorsource_bundled'] = 'Pluginarekin batera dator'; $string['editorsource_none'] = 'Instalatu gabe'; @@ -168,6 +194,7 @@ $string['editormoodledatadir'] = 'Datuen direktorioa'; $string['editorbundleddir'] = 'Barneko direktorioa'; $string['editorlatestversion'] = 'Eskuragarri dagoen azken bertsioa'; +$string['editorlatestversionongithub'] = 'GitHub-eko azken bertsioa:'; $string['editorstatusinfo'] = 'Editore txertatuak baliabide estatikoak zerbitzatzen ditu eXeLearning editore integraturako. Jatorriak ordena honetan egiaztatzen dira: administrazioak instalatutakoa (moodledata) eta, ondoren, pluginarekin datorrena (dist/).'; $string['editorgithubconnecterror'] = 'Ezin izan da GitHub-era konektatu: {$a}'; $string['editorgithubapierror'] = 'GitHub-ek HTTP egoera hau itzuli du: {$a}. Saiatu berriro geroago.'; @@ -223,24 +250,59 @@ $string['editoruninstalledsuccess'] = 'Editorea ondo desinstalatu da'; $string['editorupdatedsuccess'] = 'Editorea ondo eguneratu da'; $string['editorrepairsuccess'] = 'Editorea ondo konpondu da'; -$string['editormode'] = 'Editore modua'; -$string['editormodedesc'] = 'Aukeratu zein editore erabili eXeLearning edukia sortu eta editatzeko. Online konexio-ezarpenak soilik aplikatzen dira "eXeLearning Online" modua hautatzen denean.'; -$string['editormodeonline'] = 'eXeLearning Online (urruneko zerbitzaria)'; -$string['editormodeembedded'] = 'Editore txertatua (integratua)'; -$string['embeddednotinstalledcontactadmin'] = 'Editore txertatuaren fitxategiak ez daude instalatuta. Jarri harremanetan guneko administratzailearekin instalatzeko.'; -$string['embeddednotinstalledadmin'] = 'Editore txertatuaren fitxategiak ez daude instalatuta. Pluginaren ezarpenetan instala dezakezu.'; -$string['editembedded'] = 'Editatu eXeLearning-ekin'; -$string['editembedded_integrated'] = 'Integratua'; -$string['editembedded_help'] = 'Ireki eXeLearning editore txertatua edukia zuzenean Moodle-n editatzeko.'; -$string['editormissing'] = 'eXeLearning editore txertatua ez dago instalatuta. Jarri harremanetan administratzailearekin.'; -$string['editorreaderror'] = 'Ezin izan dira eXeLearning editore txertatuaren fitxategiak irakurri. Egiaztatu fitxategien baimenak eta jarri harremanetan administratzailearekin.'; -$string['embeddedtypehelp'] = 'Jarduera sortuko da eta eXeLearning editore txertatuarekin editatu ahal izango duzu jardueraren ikuspegi-orritik.'; -$string['saving'] = 'Gordetzen...'; -$string['savedsuccess'] = 'Aldaketak ondo gorde dira'; -$string['savetomoodle'] = 'Moodle-n gorde'; -$string['savingwait'] = 'Mesedez, itxaron fitxategia gordetzen den bitartean.'; -$string['unsavedchanges'] = 'Gorde gabeko aldaketak dituzu. Ziur zaude itxi nahi duzula?'; -$string['typeembedded'] = 'Sortu eXeLearning-ekin (editore txertatua)'; -$string['typeexewebcreate'] = 'Crear con eXeLearning'; -$string['typeexewebedit'] = 'Editar con eXeLearning'; -$string['typelocal'] = 'Paquete subido'; + +$string['editoruploadmissingfile'] = 'Ez da editorearen ZIP fitxategirik igo.'; +$string['editoruploadfailed'] = 'Errorea editorearen paketea igotzerakoan: {$a}'; + +// Estiloen kudeaketa. +$string['stylesmanager'] = 'Estiloak'; +$string['stylesmanager_hint'] = 'Igo eXeLearning estilo-paketeak eta kontrolatu zein estilo eskaintzen dituen editore txertatuak.'; +$string['stylesmanager_intro'] = 'Kudeatu editore txertatuarako eskuragarri dauden eXeLearning estiloak. Barneko estiloak banaka ezkuta daitezke. Igotako estiloak edozein unetan gaitu, desgaitu edo ezabatu daitezke.'; +$string['stylesmanager_manage'] = 'Kudeatu instalatutako estiloak'; +$string['stylesmanager_manage_hint'] = 'Ireki estiloen orria barneko estiloak gaitu edo desgaitzeko, edo igotakoak ezabatzeko.'; +$string['stylesonlywhenembedded'] = 'Editore txertatua ez dago aktibo. Hemen kudeatutako estiloak soilik aplikatzen dira editoreak «txertatua» moduan dagoenean.'; +$string['stylesblockimport'] = 'Blokeatu erabiltzaileak inportatutako estiloak'; +$string['stylesblockimport_desc'] = 'Aktibatuta dagoenean, editore txertatuak «Inportatutako estiloak» fitxa ezkutatzen du eta inportatutako .elpx proiektu batean bildutako estiloak instalatzeari uko egiten dio. Erabiltzaileek soilik administratzaileak onartutako zerrendatik hautatu ahal izango dute. eXeLearning ONLINE_THEMES_INSTALL=false jokabidearen baliokidea da.'; +$string['stylesupload_label'] = 'Estilo ZIP paketea'; +$string['stylesupload_submit'] = 'Igo estiloa'; +$string['stylesupload_hint'] = 'Gehieneko tamaina: {$a}. Soilik config.xml balioduna duten .zip paketeak onartzen dira.'; +$string['stylesupload_success'] = '«{$a}» estiloa instalatuta.'; +$string['stylesupload_success_many'] = 'Instalatuta: {$a}'; +$string['stylesupload_goto_settings'] = 'Igo estiloak pluginaren konfigurazio-orritik'; +$string['stylesupload_failed'] = 'Estiloa igotzeak huts egin du.'; +$string['stylesupload_missing'] = 'Igotako fitxategia ez dago edo ezin da irakurri.'; +$string['stylesupload_empty'] = 'Igotako fitxategia hutsik dago.'; +$string['stylesupload_toolarge'] = 'Igotako estiloak onartutako gehieneko tamaina gainditzen du: {$a}.'; +$string['stylesupload_nozip'] = 'PHP ZipArchive hedapena ez dago erabilgarri.'; +$string['stylesupload_badzip'] = 'Igotako fitxategia ez da ZIP balioduna.'; +$string['stylesupload_badentry'] = 'ZIP fitxategiak ezin diren sarrerak ditu.'; +$string['stylesupload_unsafe'] = 'Fitxategi ez-segurua baztertua: {$a}'; +$string['stylesupload_multiconfig'] = 'Fitxategiak config.xml bat baino gehiago ditu.'; +$string['stylesupload_noconfig'] = 'Estilo-paketeak config.xml falta zaio.'; +$string['stylesupload_mixedroots'] = 'Fitxategiak karpeta bakarreko erroa eduki behar du edo fitxategi guztiak erroan egon behar dira.'; +$string['stylesupload_badext'] = 'Estilo-paketan onartzen ez den fitxategi-mota: {$a}'; +$string['stylesupload_configread'] = 'Ezin izan da config.xml irakurri fitxategitik.'; +$string['stylesupload_badxml'] = 'config.xml ez da XML balioduna.'; +$string['stylesupload_noname'] = 'config.xml-k elementua deklaratu behar du.'; +$string['stylesupload_traversal'] = 'Direktorioetan zeharreko saiakera bat blokeatu da erauzketan.'; +$string['stylesupload_readfailed'] = 'Ezin izan da ZIP fitxategi bat irakurri erauzketan.'; +$string['stylesupload_writefailed'] = 'Ezin izan da fitxategi erauzi bat idatzi.'; +$string['stylesnocss'] = 'Igotako estiloak ez du estilo-orrialderik.'; +$string['stylesinstallfailed'] = 'Ezin izan da estiloa instalatu: {$a}'; +$string['stylesuploaded'] = 'Igotako estiloak'; +$string['stylesuploaded_empty'] = 'Oraindik ez dago igotako estilorik.'; +$string['stylesuploaded_hint'] = 'Gaitu edo desgaitu igotako estiloak. Desmarkatu editoretik ezkutatzeko; ezabatu betirako kentzeko.'; +$string['stylesbuiltin'] = 'Barneko estiloak'; +$string['stylesbuiltin_empty'] = 'Barneko estiloak ez daude eskuragarri editore txertatua instalatuta ez dagoelako.'; +$string['stylesbuiltin_hint'] = 'Desmarkatu estilo bat editoretik ezkutatzeko. Desgaitutako barneko estiloak ez dira ezabatzen; proiektuak beti jo dezake estilo lehenetsiara.'; +$string['stylestable_title'] = 'Izenburua'; +$string['stylestable_id'] = 'Id'; +$string['stylestable_version'] = 'Bertsioa'; +$string['stylestable_installed'] = 'Instalatuta'; +$string['stylestable_enabled'] = 'Gaituta'; +$string['stylestable_actions'] = 'Ekintzak'; +$string['stylesenable'] = 'Gaitu'; +$string['stylesdisable'] = 'Desgaitu'; +$string['stylesdelete'] = 'Ezabatu'; +$string['stylesdelete_confirm'] = 'Estilo hau ezabatu? Ekintza hau ezin da desegin.'; +$string['stylesdelete_success'] = 'Estiloa ezabatuta.'; diff --git a/lang/gl/exeweb.php b/lang/gl/exeweb.php index 0592538..5a45a4f 100644 --- a/lang/gl/exeweb.php +++ b/lang/gl/exeweb.php @@ -59,10 +59,10 @@ $string['exeonline:baseuri_desc'] = 'URL de eXeLearning'; $string['exeonline:hmackey1'] = 'Clave de sinatura'; $string['exeonline:hmackey1_desc'] = 'Clave empregada para asinar os datos enviados ao servidor de eXeLearning, de xeito que poidamos estar seguros de que se orixinaron neste servidor. Empregue un máximo de 32 caracteres.'; -$string['exeonline:provider_name'] = 'Provider name'; -$string['exeonline:provider_name_desc'] = 'Name of the eXeLearning provider. This is used to identify the provider in the eXeLearning interface.'; -$string['exeonline:provider_version'] = 'Provider version'; -$string['exeonline:provider_version_desc'] = 'Version of the eXeLearning provider. This is used to identify the provider in the eXeLearning interface.'; +$string['exeonline:provider_name'] = 'Nome do provedor'; +$string['exeonline:provider_name_desc'] = 'Nome do provedor de eXeLearning. Emprégase para identificar o provedor na interface de eXeLearning.'; +$string['exeonline:provider_version'] = 'Versión do provedor'; +$string['exeonline:provider_version_desc'] = 'Versión do provedor de eXeLearning. Emprégase para identificar o provedor na interface de eXeLearning.'; $string['exeonline:tokenexpiration'] = 'Caducidade do token'; $string['exeonline:tokenexpiration_desc'] = 'Tempo máximo (en segundos) para editar o paquete en eXeLearning e volver a Moodle.'; $string['exeweb:forbiddenfileslist'] = 'Ficheiros prohibidos, lista RE'; @@ -125,9 +125,10 @@ $string['exewebdetails_typedate'] = '{$a->type} {$a->date}'; $string['exewebdetails_sizetypedate'] = '{$a->size} {$a->type} {$a->date}'; $string['exeorigin'] = 'Tipo'; -$string['exeorigin_help'] = 'Este axuste determina como se inclúe o paquete no curso. Hai dúas opcións: +$string['exeorigin_help'] = 'Este axuste determina como se inclúe o paquete no curso. As opcións poden incluír: * Paquete subido - Permite elixir o zip creado con eXeLearning por medio do selector de ficheiros. +* Crear con eXeLearning (editor integrado) - Crea a actividade usando o editor integrado. Poderá editala directamente dende a páxina de visualización da actividade. * Crear/Editar con eXeLearning - Crea a actividade e abre eXeLearning para editar o contido. Ao rematar, eXeLearning enviará o paquete de contido de volta a Moodle.'; $string['exeweb:exportexeweb'] = 'Exportar recurso'; $string['exeweb:view'] = 'Ver recurso'; @@ -148,10 +149,35 @@ Se o tipo de ficheiro é descoñecido para o sistema, nos se amosa.'; $string['uploadeddate'] = 'Enviado {$a}'; $string['embeddededitorsettings'] = 'Tipo de editor'; -$string['embeddededitorstatus'] = 'Editor embebido'; -$string['editorlatestversionongithub'] = 'Última versión en GitHub:'; +$string['editormode'] = 'Modo de editor'; +$string['editormodedesc'] = 'Seleccione que editor usar para crear e editar contido eXeLearning. A configuración de conexión online só aplica cando se selecciona o modo "eXeLearning Online".'; +$string['editormodeonline'] = 'eXeLearning Online (servidor remoto)'; +$string['editormodeembedded'] = 'Editor integrado (embebido)'; +$string['embeddednotinstalledcontactadmin'] = 'Os ficheiros do editor integrado non están instalados. Contacte co administrador do sitio para instalalo.'; +$string['embeddednotinstalledadmin'] = 'Os ficheiros do editor integrado non están instalados. Pode instalalo desde a configuración do complemento.'; +$string['editembedded'] = 'Editar con eXeLearning'; +$string['editembedded_integrated'] = 'Integrado'; +$string['editembedded_help'] = 'Abre o editor eXeLearning integrado para editar o contido directamente dentro de Moodle.'; +$string['editormissing'] = 'O editor integrado eXeLearning non está instalado. Contacte co administrador.'; +$string['editorreaderror'] = 'Non se puideron ler os ficheiros do editor integrado eXeLearning. Comprobe os permisos dos ficheiros e contacte co administrador.'; +$string['embeddedtypehelp'] = 'Crearase a actividade e poderá editala usando o editor eXeLearning integrado dende a páxina de visualización da actividade.'; +$string['saving'] = 'Gardando...'; +$string['savedsuccess'] = 'Cambios gardados correctamente'; +$string['savetomoodle'] = 'Gardar en Moodle'; +$string['savingwait'] = 'Por favor, agarde mentres se garda o ficheiro.'; +$string['unsavedchanges'] = 'Ten cambios sen gardar. Está seguro de que desexa pechar?'; +$string['typeembedded'] = 'Crear con eXeLearning (editor integrado)'; +$string['typeexewebcreate'] = 'Crear con eXeLearning'; +$string['typeexewebedit'] = 'Editar con eXeLearning'; +$string['typelocal'] = 'Paquete enviado'; + +$string['teachermodevisible'] = 'Mostrar o selector de capa docente'; +$string['teachermodevisible_help'] = 'Se se desactiva, ocultarase o selector de capa docente dentro do recurso incrustado.'; + +// Xestión do editor embebido. $string['manageembeddededitor'] = 'Xestionar editor embebido'; $string['manageembeddededitor_desc'] = 'Instalar, actualizar ou reparar o editor embebido de eXeLearning.'; +$string['embeddededitorstatus'] = 'Editor embebido'; $string['editorsource_moodledata'] = 'Instalado (xestionado pola administración)'; $string['editorsource_bundled'] = 'Incluído co plugin'; $string['editorsource_none'] = 'Non instalado'; @@ -167,6 +193,7 @@ $string['editormoodledatadir'] = 'Directorio de datos'; $string['editorbundleddir'] = 'Directorio incluído'; $string['editorlatestversion'] = 'Última versión dispoñible'; +$string['editorlatestversionongithub'] = 'Última versión en GitHub:'; $string['editorstatusinfo'] = 'O editor embebido serve recursos estáticos para o editor integrado de eXeLearning. As orixes compróbanse nesta orde: instalado pola administración (moodledata) e despois incluído co plugin (dist/).'; $string['editorgithubconnecterror'] = 'Non se puido conectar con GitHub: {$a}'; $string['editorgithubapierror'] = 'GitHub devolveu o estado HTTP {$a}. Ténteo de novo máis tarde.'; @@ -222,24 +249,59 @@ $string['editoruninstalledsuccess'] = 'Editor desinstalado correctamente'; $string['editorupdatedsuccess'] = 'Editor actualizado correctamente'; $string['editorrepairsuccess'] = 'Editor reparado correctamente'; -$string['editormode'] = 'Modo de editor'; -$string['editormodedesc'] = 'Seleccione que editor usar para crear e editar contido eXeLearning. A configuración de conexión online só aplica cando se selecciona o modo "eXeLearning Online".'; -$string['editormodeonline'] = 'eXeLearning Online (servidor remoto)'; -$string['editormodeembedded'] = 'Editor integrado (embebido)'; -$string['embeddednotinstalledcontactadmin'] = 'Os ficheiros do editor integrado non están instalados. Contacte co administrador do sitio para instalalo.'; -$string['embeddednotinstalledadmin'] = 'Os ficheiros do editor integrado non están instalados. Pode instalalo desde a configuración do complemento.'; -$string['editembedded'] = 'Editar con eXeLearning'; -$string['editembedded_integrated'] = 'Integrado'; -$string['editembedded_help'] = 'Abre o editor eXeLearning integrado para editar o contido directamente dentro de Moodle.'; -$string['editormissing'] = 'O editor integrado eXeLearning non está instalado. Contacte co administrador.'; -$string['editorreaderror'] = 'Non se puideron ler os ficheiros do editor integrado eXeLearning. Comprobe os permisos dos ficheiros e contacte co administrador.'; -$string['embeddedtypehelp'] = 'Crearase a actividade e poderá editala usando o editor eXeLearning integrado dende a páxina de visualización da actividade.'; -$string['saving'] = 'Gardando...'; -$string['savedsuccess'] = 'Cambios gardados correctamente'; -$string['savetomoodle'] = 'Gardar en Moodle'; -$string['savingwait'] = 'Por favor, agarde mentres se garda o ficheiro.'; -$string['unsavedchanges'] = 'Ten cambios sen gardar. Está seguro de que desexa pechar?'; -$string['typeembedded'] = 'Crear con eXeLearning (editor integrado)'; -$string['typeexewebcreate'] = 'Crear con eXeLearning'; -$string['typeexewebedit'] = 'Editar con eXeLearning'; -$string['typelocal'] = 'Paquete enviado'; + +$string['editoruploadmissingfile'] = 'Non se subiu ningún ficheiro ZIP do editor.'; +$string['editoruploadfailed'] = 'Non se puido subir o paquete do editor: {$a}'; + +// Xestión de estilos. +$string['stylesmanager'] = 'Estilos'; +$string['stylesmanager_hint'] = 'Sube paquetes de estilos de eXeLearning e controla que estilos expón o editor integrado.'; +$string['stylesmanager_intro'] = 'Xestiona os estilos de eXeLearning dispoñibles para o editor integrado. Os estilos integrados pódense ocultar de xeito individual. Os estilos subidos pódense habilitar, deshabilitar ou eliminar en calquera momento.'; +$string['stylesmanager_manage'] = 'Xestionar estilos instalados'; +$string['stylesmanager_manage_hint'] = 'Abre a páxina de estilos para habilitar ou deshabilitar os estilos integrados, ou para eliminar estilos subidos.'; +$string['stylesonlywhenembedded'] = 'O editor integrado non está activado. Os estilos xestionados aquí só se aplican cando o modo do editor é «integrado».'; +$string['stylesblockimport'] = 'Bloquear estilos importados polo usuario'; +$string['stylesblockimport_desc'] = 'Cando está activado, o editor integrado oculta a lapela «Estilos importados» e rexeita instalar un estilo incluído nun proxecto .elpx importado. O usuario só poderá elixir da lista aprobada polo administrador. Equivale ao comportamento de eXeLearning ONLINE_THEMES_INSTALL=false.'; +$string['stylesupload_label'] = 'Paquete ZIP de estilo'; +$string['stylesupload_submit'] = 'Subir estilo'; +$string['stylesupload_hint'] = 'Tamaño máximo: {$a}. Só se aceptan paquetes .zip cun config.xml válido.'; +$string['stylesupload_success'] = 'Estilo «{$a}» instalado.'; +$string['stylesupload_success_many'] = 'Instalados: {$a}'; +$string['stylesupload_goto_settings'] = 'Subir estilos dende a páxina de configuración do complemento'; +$string['stylesupload_failed'] = 'A subida do estilo fallou.'; +$string['stylesupload_missing'] = 'O ficheiro subido non existe ou non se pode ler.'; +$string['stylesupload_empty'] = 'O ficheiro subido está baleiro.'; +$string['stylesupload_toolarge'] = 'O estilo subido supera o tamaño máximo permitido de {$a}.'; +$string['stylesupload_nozip'] = 'A extensión PHP ZipArchive non está dispoñible.'; +$string['stylesupload_badzip'] = 'O ficheiro subido non é un ZIP válido.'; +$string['stylesupload_badentry'] = 'O ficheiro ZIP contén entradas que non se poden ler.'; +$string['stylesupload_unsafe'] = 'Entrada de ficheiro non segura rexeitada: {$a}'; +$string['stylesupload_multiconfig'] = 'O ficheiro contén máis dun config.xml.'; +$string['stylesupload_noconfig'] = 'Ao paquete de estilo fáltalle o config.xml.'; +$string['stylesupload_mixedroots'] = 'O ficheiro debe conter un único cartafole raíz ou ter todos os ficheiros na raíz.'; +$string['stylesupload_badext'] = 'Tipo de ficheiro non permitido no paquete de estilo: {$a}'; +$string['stylesupload_configread'] = 'Non se puido ler config.xml do ficheiro.'; +$string['stylesupload_badxml'] = 'config.xml non é XML válido.'; +$string['stylesupload_noname'] = 'config.xml debe declarar un elemento .'; +$string['stylesupload_traversal'] = 'Bloqueouse un intento de escalada de directorios durante a extracción.'; +$string['stylesupload_readfailed'] = 'Non se puido ler un ficheiro do ZIP durante a extracción.'; +$string['stylesupload_writefailed'] = 'Non se puido escribir un ficheiro extraído.'; +$string['stylesnocss'] = 'O estilo subido non contén ningunha folla de estilos.'; +$string['stylesinstallfailed'] = 'Non se puido instalar o estilo: {$a}'; +$string['stylesuploaded'] = 'Estilos subidos'; +$string['stylesuploaded_empty'] = 'Aínda non hai estilos subidos.'; +$string['stylesuploaded_hint'] = 'Activa ou desactiva os estilos subidos. Desmárcaos para ocultarlos do editor; elimínaos para borrárlos definitivamente.'; +$string['stylesbuiltin'] = 'Estilos integrados'; +$string['stylesbuiltin_empty'] = 'Os estilos integrados non están dispoñibles porque o editor integrado non está instalado.'; +$string['stylesbuiltin_hint'] = 'Desmarca un estilo para ocultarlo do editor. Os estilos integrados desactivados non se eliminan; o proxecto sempre pode recorrer ao estilo por defecto.'; +$string['stylestable_title'] = 'Título'; +$string['stylestable_id'] = 'Id'; +$string['stylestable_version'] = 'Versión'; +$string['stylestable_installed'] = 'Instalado'; +$string['stylestable_enabled'] = 'Habilitado'; +$string['stylestable_actions'] = 'Accións'; +$string['stylesenable'] = 'Habilitar'; +$string['stylesdisable'] = 'Deshabilitar'; +$string['stylesdelete'] = 'Eliminar'; +$string['stylesdelete_confirm'] = 'Eliminar este estilo? Esta acción non se pode desfacer.'; +$string['stylesdelete_success'] = 'Estilo eliminado.';