diff --git a/admin/class-admin-settings.php b/admin/class-admin-settings.php
index 14c9580..4e4aa18 100644
--- a/admin/class-admin-settings.php
+++ b/admin/class-admin-settings.php
@@ -18,12 +18,18 @@
*/
class ExeLearning_Admin_Settings {
+ /**
+ * Nonce action for the content-delivery AJAX toggle.
+ */
+ const PROXY_ASSETS_NONCE = 'exelearning_proxy_assets';
+
/**
* Constructor.
*/
public function __construct() {
add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
add_filter( 'plugin_action_links_' . plugin_basename( EXELEARNING_PLUGIN_FILE ), array( $this, 'add_action_links' ) );
+ add_action( 'wp_ajax_exelearning_toggle_proxy_assets', array( $this, 'ajax_toggle_proxy_assets' ) );
}
/**
@@ -65,6 +71,7 @@ public function display_settings_page() {
render_editor_status_section(); ?>
render_styles_section(); ?>
+ render_content_delivery_section(); ?>
render_help_section(); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __( 'Insufficient permissions.', 'exelearning' ) ), 403 );
+ }
+ $nonce = isset( $_REQUEST['_ajax_nonce'] ) ? sanitize_text_field( wp_unslash( (string) $_REQUEST['_ajax_nonce'] ) ) : '';
+ if ( ! wp_verify_nonce( $nonce, self::PROXY_ASSETS_NONCE ) ) {
+ wp_send_json_error( array( 'message' => __( 'Invalid or missing security token.', 'exelearning' ) ), 403 );
+ }
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Nonce verified above.
+ $raw = isset( $_POST['enabled'] ) ? sanitize_text_field( wp_unslash( (string) $_POST['enabled'] ) ) : '';
+ $enabled = in_array( strtolower( $raw ), array( '1', 'true', 'on', 'yes' ), true );
+
+ update_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS, $enabled ? 1 : 0, false );
+ wp_send_json_success( array( 'enabled' => $enabled ) );
+ }
+
/**
* Render the style management section.
*
diff --git a/docs/HOOKS.md b/docs/HOOKS.md
index 0dafa88..8668c33 100644
--- a/docs/HOOKS.md
+++ b/docs/HOOKS.md
@@ -400,3 +400,4 @@ The plugin also exposes a few low-level configuration filters used as safety lim
| `exelearning_max_extract_bytes` | `1073741824` (1 GB) | Maximum uncompressed extraction size. |
| `exelearning_styles_max_zip_size` | `20 MB` | Maximum uploaded style ZIP size. |
| `exelearning_content_origin` | `''` | Origin URL used when serving extracted content. |
+| `exelearning_proxy_assets` | `false` | Whether package assets (CSS, JS, fonts, images, media) are served through the WordPress content proxy with explicit `Content-Type` headers instead of being linked directly from the uploads directory. Overrides the **Content delivery** setting; useful to force the mode on for servers with an incorrect MIME configuration (e.g. JavaScript returned as `text/plain` with `nosniff`). |
diff --git a/includes/class-content-proxy.php b/includes/class-content-proxy.php
index 7dfaee5..d2a5e36 100644
--- a/includes/class-content-proxy.php
+++ b/includes/class-content-proxy.php
@@ -22,6 +22,17 @@
*/
class ExeLearning_Content_Proxy {
+ /**
+ * Option name for the optional asset-proxy mode (issue #53).
+ *
+ * When truthy, every package asset (CSS, JS, fonts, images, media…) is
+ * routed through this proxy so WordPress can send explicit Content-Type
+ * headers, instead of being linked directly from the uploads directory.
+ *
+ * @var string
+ */
+ const OPTION_PROXY_ASSETS = 'exelearning_proxy_assets';
+
/**
* MIME types for common file extensions.
*
@@ -32,6 +43,7 @@ class ExeLearning_Content_Proxy {
'htm' => 'text/html',
'css' => 'text/css',
'js' => 'application/javascript',
+ 'mjs' => 'application/javascript',
'json' => 'application/json',
'xml' => 'application/xml',
'png' => 'image/png',
@@ -400,7 +412,42 @@ private static function is_html_path( $path ) {
private static function is_proxied_path( $path ) {
$clean_path = strtok( $path, '?#' );
$extension = strtolower( pathinfo( $clean_path, PATHINFO_EXTENSION ) );
- return in_array( $extension, array( 'html', 'htm', 'svg', 'xml' ), true );
+
+ // Script-capable documents are always proxied for hardened headers.
+ if ( in_array( $extension, array( 'html', 'htm', 'svg', 'xml' ), true ) ) {
+ return true;
+ }
+
+ // Optional asset-proxy mode (issue #53): when enabled, route every
+ // package asset through the proxy so WordPress emits explicit
+ // Content-Type headers, working around servers that return the wrong
+ // MIME type (e.g. JavaScript served as text/plain with nosniff).
+ if ( '' !== $extension && self::is_asset_proxy_enabled() ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Whether the optional asset-proxy mode is enabled.
+ *
+ * Defaults to disabled, keeping direct uploads URLs for performance. The
+ * stored option can be overridden at runtime with the
+ * `exelearning_proxy_assets` filter, e.g. to force the mode on for a
+ * specific environment.
+ *
+ * @return bool
+ */
+ public static function is_asset_proxy_enabled() {
+ $enabled = (bool) get_option( self::OPTION_PROXY_ASSETS, false );
+
+ /**
+ * Filter whether package assets are served through the WordPress proxy.
+ *
+ * @param bool $enabled Whether the asset-proxy mode is enabled.
+ */
+ return (bool) apply_filters( 'exelearning_proxy_assets', $enabled );
}
/**
diff --git a/languages/exelearning-ca.mo b/languages/exelearning-ca.mo
index 3eef543..be66f39 100644
Binary files a/languages/exelearning-ca.mo and b/languages/exelearning-ca.mo differ
diff --git a/languages/exelearning-ca.po b/languages/exelearning-ca.po
index d663129..6b8edc9 100644
--- a/languages/exelearning-ca.po
+++ b/languages/exelearning-ca.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Domain: exelearning\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
@@ -24,22 +24,22 @@ msgstr "Configuració"
msgid "Date"
msgstr "Data"
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr "Elimina"
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr "Títol"
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr "eXeLearning"
@@ -58,8 +58,8 @@ msgstr "Connector per gestionar fitxers .elp d'eXeLearning a WordPress. Puja, ge
msgid "INTEF"
msgstr "INTEF"
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr "Configuració d'eXeLearning"
@@ -71,7 +71,7 @@ msgstr "Estat"
msgid "Edit"
msgstr "Edita"
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr "Error: contingut d'eXeLearning no trobat"
@@ -92,19 +92,19 @@ msgid "Open in new tab"
msgstr "Obre en una pestanya nova"
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr "Llicència:"
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr "Idioma:"
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr "Tipus de recurs:"
@@ -120,6 +120,7 @@ msgstr "Utilitza aquest fitxer"
msgid "Invalid nonce."
msgstr "Nonce no vàlid."
+#: admin/class-admin-settings.php:247
#: admin/class-admin-styles.php:164
#: admin/class-admin-upload.php:41
msgid "Insufficient permissions."
@@ -158,28 +159,28 @@ msgstr "Carregant projecte..."
msgid "Error"
msgstr "Error"
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr "Identificador de contingut no vàlid."
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr "Ruta de fitxer no vàlida."
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr "Fitxer no trobat."
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr "Accés denegat."
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr "Aquest contingut d'eXeLearning és un fitxer font i no es pot previsualitzar directament."
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr "Descarrega el fitxer"
@@ -215,7 +216,7 @@ msgstr "No tens permís per editar aquest fitxer."
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -324,7 +325,7 @@ msgstr "Veure a pantalla completa"
msgid "eXeLearning Info"
msgstr "Informació d'eXeLearning"
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr "Versió:"
@@ -405,75 +406,75 @@ msgstr "Si us plau, espereu mentre es desa l'arxiu."
msgid "You have unsaved changes. Are you sure you want to close?"
msgstr "Teniu canvis sense desar. Esteu segurs que voleu tancar?"
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr "Editor integrat"
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr "L'editor integrat és necessari per editar fitxers eXeLearning."
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr "Si us plau, instal·leu-lo amb el botó de sota."
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr "Estat:"
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr "Instal·lat"
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr "Instal·lat el:"
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr "Actualitza a l'última versió"
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr "No instal·lat"
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr "L'editor integrat d'eXeLearning no està instal·lat. Podeu descarregar i instal·lar l'última versió automàticament des de GitHub."
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr "Descarrega i instal·la l'editor"
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr "Els desenvolupadors també poden compilar l'editor des del codi font amb %s."
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr "Torna-ho a provar"
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr "Instal·lant..."
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr "Descarregant i instal·lant l'editor. Això pot trigar un minut..."
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr "Obre l'editor"
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr "La instal·lació ha fallat."
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr "Error de xarxa. Si us plau, comproveu la connexió i torneu-ho a provar."
@@ -614,191 +615,193 @@ msgstr "Aquest fitxer no s'ha pogut processar com a eXeLearning."
msgid "https://exelearning.net/"
msgstr "https://exelearning.net/"
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr "Ajuda"
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr "Incrusta un paquet .elpx penjat a qualsevol lloc amb el codi curt [exelearning], referenciant el fitxer pel seu ID d'adjunt a la Biblioteca multimèdia."
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr "Exemples de codi curt"
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr "Atributs"
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr "Atribut"
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr "Per defecte"
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr "Descripció"
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr "Obligatori. ID d'adjunt del paquet .elpx a la Biblioteca multimèdia."
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr "Alçada de la previsualització, en píxels."
-#: admin/class-admin-settings.php:118
+#: 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."
-#: admin/class-admin-settings.php:123
+#: 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."
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr "Quan s'activa, mostra un botó de baixada multiformat."
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr "tots"
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr "Formats separats per comes a oferir: elpx, html5, scorm12, ims, epub3."
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr "Mostra la captura de pantalla del paquet: no, poster (clic per carregar) o only (només imatge). Requereix eXeLearning 4.0.1 o superior."
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr "Hooks per a desenvolupadors"
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr "La sortida del codi curt es pot personalitzar amb els filtres exelearning_shortcode_atts, exelearning_preview_url i exelearning_shortcode_output, entre altres accions i filtres."
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr "Referència completa del codi curt"
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr "Referència dels hooks per a desenvolupadors"
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr "Estils"
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr "Penja paquets d'estils d'eXeLearning i controla quins estils mostra l'editor incrustat."
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr "Política d'importació"
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr "Bloca els estils importats per usuaris"
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr "Quan s'activa, l'editor incrustat amaga la pestanya «Estils d'usuari» i es nega silenciosament a instal·lar un estil inclòs en un projecte .elpx importat. Els usuaris només poden triar de la llista aprovada per l'administrador de sota. Això reprodueix el comportament eXeLearning ONLINE_THEMES_INSTALL=false."
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr "Penja un estil nou"
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr "Penja l'estil"
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr "Mida màxima del fitxer: %s. Només s'accepten paquets .zip que continguin un config.xml vàlid."
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr "Estils penjats"
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr "Encara no hi ha estils penjats."
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr "Id"
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr "Versió"
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr "Habilitat"
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr "Accions"
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr "Estils integrats"
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr "Els estils integrats no estan disponibles perquè l'editor incrustat no està instal·lat."
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr "Els estils integrats desactivats s'amaguen de l'editor. Els estils penjats es poden desactivar o eliminar en qualsevol moment. Els projectes existents que referencien un estil que falta utilitzen l'estil per defecte de l'editor."
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr "S'està penjant…"
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr "Estil instal·lat."
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr "La pujada ha fallat."
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
msgid "Network error."
msgstr "Error de xarxa."
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
msgid "Update failed."
msgstr "L'actualització ha fallat."
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr "Voleu eliminar aquest estil? Aquesta acció no es pot desfer."
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr "Estil eliminat."
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr "L'eliminació ha fallat."
@@ -812,6 +815,7 @@ msgstr "No es pot accedir al fitxer penjat."
msgid "Missing style id."
msgstr "Falta l'identificador de l'estil."
+#: admin/class-admin-settings.php:251
#: admin/class-admin-styles.php:168
msgid "Invalid or missing security token."
msgstr "Testimoni de seguretat no vàlid o absent."
@@ -1008,3 +1012,15 @@ msgstr "Mostra el botó de baixada"
#: assets/js/elp-upload.js:435
msgid "Available formats"
msgstr "Formats disponibles"
+
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr "Lliurament de contingut"
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr "Serveix els recursos del paquet a través del proxy de WordPress"
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr "Utilitzeu aquesta opció només si el vostre servidor web retorna tipus MIME incorrectes per als recursos del paquet, per exemple fitxers JavaScript servits com a text/plain. Quan està activada, els fitxers CSS, JavaScript, tipus de lletra, imatges i altres fitxers del paquet es serveixen a través de WordPress perquè el plugin pugui enviar capçaleres Content-Type explícites. Això pot reduir el rendiment perquè les peticions les gestiona PHP en lloc de servir-se directament des del servidor web."
diff --git a/languages/exelearning-ca_valencia.mo b/languages/exelearning-ca_valencia.mo
index 8cc9f73..20ab3ec 100644
Binary files a/languages/exelearning-ca_valencia.mo and b/languages/exelearning-ca_valencia.mo differ
diff --git a/languages/exelearning-ca_valencia.po b/languages/exelearning-ca_valencia.po
index 328bc5c..249cd1d 100644
--- a/languages/exelearning-ca_valencia.po
+++ b/languages/exelearning-ca_valencia.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Domain: exelearning\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
@@ -24,22 +24,22 @@ msgstr "Configuració"
msgid "Date"
msgstr "Data"
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr "Eliminar"
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr "Títol"
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr "eXeLearning"
@@ -58,8 +58,8 @@ msgstr "Connector per a gestionar fitxers .elp d'eXeLearning en WordPress. Puja,
msgid "INTEF"
msgstr "INTEF"
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr "Configuració d'eXeLearning"
@@ -71,7 +71,7 @@ msgstr "Estat"
msgid "Edit"
msgstr "Editar"
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr "Error: contingut d'eXeLearning no trobat"
@@ -92,19 +92,19 @@ msgid "Open in new tab"
msgstr "Obrir en una pestanya nova"
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr "Llicència:"
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr "Idioma:"
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr "Tipus de recurs:"
@@ -120,6 +120,7 @@ msgstr "Utilitzar este fitxer"
msgid "Invalid nonce."
msgstr "Nonce no vàlid."
+#: admin/class-admin-settings.php:247
#: admin/class-admin-styles.php:164
#: admin/class-admin-upload.php:41
msgid "Insufficient permissions."
@@ -158,28 +159,28 @@ msgstr "Carregant projecte..."
msgid "Error"
msgstr "Error"
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr "Identificador de contingut no vàlid."
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr "Ruta de fitxer no vàlida."
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr "Fitxer no trobat."
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr "Accés denegat."
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr "Este contingut d'eXeLearning és un fitxer font i no es pot previsualitzar directament."
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr "Descarregar el fitxer"
@@ -215,7 +216,7 @@ msgstr "No tens permís per a editar este fitxer."
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -324,7 +325,7 @@ msgstr "Veure a pantalla completa"
msgid "eXeLearning Info"
msgstr "Informació d'eXeLearning"
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr "Versió:"
@@ -405,75 +406,75 @@ msgstr "Per favor, espereu mentre es guarda l'arxiu."
msgid "You have unsaved changes. Are you sure you want to close?"
msgstr "Teniu canvis sense guardar. Esteu segurs que voleu tancar?"
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr "Editor integrat"
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr "L'editor integrat és necessari per a editar fitxers eXeLearning."
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr "Per favor, instal·leu-lo amb el botó de baix."
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr "Estat:"
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr "Instal·lat"
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr "Instal·lat el:"
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr "Actualitza a l'última versió"
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr "No instal·lat"
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr "L'editor integrat d'eXeLearning no està instal·lat. Podeu descarregar i instal·lar l'última versió automàticament des de GitHub."
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr "Descarrega i instal·la l'editor"
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr "Els desenvolupadors també poden compilar l'editor des del codi font usant %s."
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr "Torna a intentar-ho"
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr "Instal·lant..."
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr "Descarregant i instal·lant l'editor. Açò pot tardar un minut..."
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr "Obri l'editor"
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr "La instal·lació ha fallat."
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr "Error de xarxa. Per favor, comproveu la connexió i torneu a intentar-ho."
@@ -614,191 +615,193 @@ msgstr "Aquest fitxer no s'ha pogut processar com a eXeLearning."
msgid "https://exelearning.net/"
msgstr "https://exelearning.net/"
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr "Ajuda"
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr "Incrusta un paquet .elpx penjat a qualsevol lloc amb el codi curt [exelearning], referenciant el fitxer pel seu ID d'adjunt a la Biblioteca multimèdia."
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr "Exemples de codi curt"
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr "Atributs"
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr "Atribut"
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr "Per defecte"
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr "Descripció"
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr "Obligatori. ID d'adjunt del paquet .elpx a la Biblioteca multimèdia."
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr "Alçada de la previsualització, en píxels."
-#: admin/class-admin-settings.php:118
+#: 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."
-#: admin/class-admin-settings.php:123
+#: 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."
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr "Quan s'activa, mostra un botó de baixada multiformat."
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr "tots"
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr "Formats separats per comes a oferir: elpx, html5, scorm12, ims, epub3."
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr "Mostra la captura de pantalla del paquet: no, poster (clic per carregar) o only (només imatge). Requereix eXeLearning 4.0.1 o superior."
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr "Hooks per a desenvolupadors"
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr "La sortida del codi curt es pot personalitzar amb els filtres exelearning_shortcode_atts, exelearning_preview_url i exelearning_shortcode_output, entre altres accions i filtres."
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr "Referència completa del codi curt"
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr "Referència dels hooks per a desenvolupadors"
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr "Estils"
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr "Penja paquets d'estils d'eXeLearning i controla quins estils mostra l'editor incrustat."
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr "Política d'importació"
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr "Bloca els estils importats per usuaris"
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr "Quan s'activa, l'editor incrustat amaga la pestanya «Estils d'usuari» i es nega silenciosament a instal·lar un estil inclòs en un projecte .elpx importat. Els usuaris només poden triar de la llista aprovada per l'administrador de sota. Això reprodueix el comportament eXeLearning ONLINE_THEMES_INSTALL=false."
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr "Penja un estil nou"
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr "Penja l'estil"
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr "Mida màxima del fitxer: %s. Només s'accepten paquets .zip que continguin un config.xml vàlid."
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr "Estils penjats"
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr "Encara no hi ha estils penjats."
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr "Id"
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr "Versió"
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr "Habilitat"
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr "Accions"
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr "Estils integrats"
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr "Els estils integrats no estan disponibles perquè l'editor incrustat no està instal·lat."
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr "Els estils integrats desactivats s'amaguen de l'editor. Els estils penjats es poden desactivar o eliminar en qualsevol moment. Els projectes existents que referencien un estil que falta utilitzen l'estil per defecte de l'editor."
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr "S'està penjant…"
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr "Estil instal·lat."
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr "La pujada ha fallat."
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
msgid "Network error."
msgstr "Error de xarxa."
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
msgid "Update failed."
msgstr "L'actualització ha fallat."
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr "Voleu eliminar aquest estil? Aquesta acció no es pot desfer."
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr "Estil eliminat."
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr "L'eliminació ha fallat."
@@ -812,6 +815,7 @@ msgstr "No es pot accedir al fitxer penjat."
msgid "Missing style id."
msgstr "Falta l'identificador de l'estil."
+#: admin/class-admin-settings.php:251
#: admin/class-admin-styles.php:168
msgid "Invalid or missing security token."
msgstr "Testimoni de seguretat no vàlid o absent."
@@ -1008,3 +1012,15 @@ msgstr "Mostra el botó de baixada"
#: assets/js/elp-upload.js:435
msgid "Available formats"
msgstr "Formats disponibles"
+
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr "Lliurament de contingut"
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr "Servix els recursos del paquet a través del proxy de WordPress"
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr "Utilitzeu esta opció només si el vostre servidor web torna tipus MIME incorrectes per als recursos del paquet, per exemple fitxers JavaScript servits com a text/plain. Quan està activada, els fitxers CSS, JavaScript, tipus de lletra, imatges i altres fitxers del paquet es servixen a través de WordPress perquè el plugin puga enviar capçaleres Content-Type explícites. Açò pot reduir el rendiment perquè les peticions les gestiona PHP en lloc de servir-se directament des del servidor web."
diff --git a/languages/exelearning-de_DE.mo b/languages/exelearning-de_DE.mo
index 0f24b42..36913fe 100644
Binary files a/languages/exelearning-de_DE.mo and b/languages/exelearning-de_DE.mo differ
diff --git a/languages/exelearning-de_DE.po b/languages/exelearning-de_DE.po
index 405c4dc..e221a1b 100644
--- a/languages/exelearning-de_DE.po
+++ b/languages/exelearning-de_DE.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Domain: exelearning\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
@@ -24,22 +24,22 @@ msgstr "Einstellungen"
msgid "Date"
msgstr "Datum"
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr "Löschen"
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr "Titel"
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr "eXeLearning"
@@ -58,8 +58,8 @@ msgstr "Plugin zur Unterstützung von eXeLearning .elp-Dateien in WordPress. Hoc
msgid "INTEF"
msgstr "INTEF"
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr "eXeLearning-Einstellungen"
@@ -71,7 +71,7 @@ msgstr "Status"
msgid "Edit"
msgstr "Bearbeiten"
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr "Fehler: eXeLearning-Inhalt nicht gefunden"
@@ -92,19 +92,19 @@ msgid "Open in new tab"
msgstr "In neuem Tab öffnen"
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr "Lizenz:"
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr "Sprache:"
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr "Ressourcentyp:"
@@ -120,6 +120,7 @@ msgstr "Diese Datei verwenden"
msgid "Invalid nonce."
msgstr "Ungültiger Nonce."
+#: admin/class-admin-settings.php:247
#: admin/class-admin-styles.php:164
#: admin/class-admin-upload.php:41
msgid "Insufficient permissions."
@@ -158,28 +159,28 @@ msgstr "Projekt wird geladen..."
msgid "Error"
msgstr "Fehler"
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr "Ungültige Inhaltskennung."
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr "Ungültiger Dateipfad."
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr "Datei nicht gefunden."
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr "Zugriff verweigert."
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr "Dieser eXeLearning-Inhalt ist eine Quelldatei und kann nicht direkt in der Vorschau angezeigt werden."
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr "Datei herunterladen"
@@ -215,7 +216,7 @@ msgstr "Sie haben keine Berechtigung, diese Datei zu bearbeiten."
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -324,7 +325,7 @@ msgstr "Vollbild anzeigen"
msgid "eXeLearning Info"
msgstr "eXeLearning-Info"
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr "Version:"
@@ -405,75 +406,75 @@ msgstr "Bitte warten Sie, während die Datei gespeichert wird."
msgid "You have unsaved changes. Are you sure you want to close?"
msgstr "Sie haben ungespeicherte Änderungen. Möchten Sie wirklich schließen?"
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr "Eingebetteter Editor"
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr "Der eingebettete Editor wird zum Bearbeiten von eXeLearning-Dateien benötigt."
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr "Bitte installieren Sie ihn über die Schaltfläche unten."
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr "Status:"
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr "Installiert"
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr "Installiert am:"
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr "Auf neueste Version aktualisieren"
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr "Nicht installiert"
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr "Der eingebettete eXeLearning-Editor ist nicht installiert. Sie können die neueste Version automatisch von GitHub herunterladen und installieren."
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr "Editor herunterladen und installieren"
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr "Entwickler können den Editor auch aus dem Quellcode mit %s erstellen."
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr "Erneut versuchen"
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr "Installiere..."
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr "Editor wird heruntergeladen und installiert. Dies kann eine Minute dauern..."
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr "Editor öffnen"
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr "Installation fehlgeschlagen."
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr "Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung und versuchen Sie es erneut."
@@ -614,191 +615,193 @@ msgstr "Diese Datei konnte nicht als eXeLearning verarbeitet werden."
msgid "https://exelearning.net/"
msgstr "https://exelearning.net/"
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr "Hilfe"
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr "Betten Sie ein hochgeladenes .elpx-Paket überall mit dem Shortcode [exelearning] ein und verweisen Sie über die Anhang-ID der Mediathek auf die Datei."
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr "Shortcode-Beispiele"
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr "Attribute"
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr "Attribut"
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr "Standard"
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr "Beschreibung"
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr "Erforderlich. Anhang-ID des .elpx-Pakets in der Mediathek."
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr "Höhe der Vorschau in Pixeln."
-#: admin/class-admin-settings.php:118
+#: 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."
-#: admin/class-admin-settings.php:123
+#: 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."
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr "Wenn aktiviert, wird eine Download-Schaltfläche mit mehreren Formaten angezeigt."
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr "alle"
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr "Durch Kommas getrennte Formate: elpx, html5, scorm12, ims, epub3."
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr "Paket-Screenshot anzeigen: no, poster (zum Laden klicken) oder only (nur Bild). Erfordert eXeLearning 4.0.1 oder neuer."
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr "Entwickler-Hooks"
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr "Die Shortcode-Ausgabe kann unter anderem mit den Filtern exelearning_shortcode_atts, exelearning_preview_url und exelearning_shortcode_output angepasst werden."
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr "Vollständige Shortcode-Referenz"
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr "Referenz der Entwickler-Hooks"
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr "Stile"
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr "Laden Sie eXeLearning-Stilpakete hoch und steuern Sie, welche Stile der eingebettete Editor anbietet."
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr "Importrichtlinie"
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr "Von Benutzern importierte Stile blockieren"
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr "Wenn aktiviert, blendet der eingebettete Editor den Tab „Benutzerstile“ aus und weigert sich stillschweigend, einen in ein importiertes .elpx-Projekt eingebetteten Stil zu installieren. Benutzer können nur aus der unten stehenden, vom Administrator genehmigten Liste wählen. Dies entspricht dem Verhalten von eXeLearning ONLINE_THEMES_INSTALL=false."
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr "Neuen Stil hochladen"
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr "Stil hochladen"
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr "Maximale Dateigröße: %s. Es werden nur .zip-Pakete mit einer gültigen config.xml akzeptiert."
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr "Hochgeladene Stile"
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr "Noch keine hochgeladenen Stile."
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr "ID"
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr "Version"
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr "Aktiviert"
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr "Aktionen"
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr "Integrierte Stile"
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr "Integrierte Stile sind nicht verfügbar, da der eingebettete Editor nicht installiert ist."
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr "Deaktivierte integrierte Stile werden im Editor ausgeblendet. Hochgeladene Stile können jederzeit deaktiviert oder gelöscht werden. Bestehende Projekte, die auf einen fehlenden Stil verweisen, verwenden den Standardstil des Editors."
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr "Wird hochgeladen…"
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr "Stil installiert."
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr "Hochladen fehlgeschlagen."
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
msgid "Network error."
msgstr "Netzwerkfehler."
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
msgid "Update failed."
msgstr "Aktualisierung fehlgeschlagen."
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr "Diesen Stil löschen? Dies kann nicht rückgängig gemacht werden."
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr "Stil gelöscht."
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr "Löschen fehlgeschlagen."
@@ -812,6 +815,7 @@ msgstr "Auf die hochgeladene Datei kann nicht zugegriffen werden."
msgid "Missing style id."
msgstr "Fehlende Stil-ID."
+#: admin/class-admin-settings.php:251
#: admin/class-admin-styles.php:168
msgid "Invalid or missing security token."
msgstr "Ungültiges oder fehlendes Sicherheitstoken."
@@ -1008,3 +1012,15 @@ msgstr "Download-Schaltfläche anzeigen"
#: assets/js/elp-upload.js:435
msgid "Available formats"
msgstr "Verfügbare Formate"
+
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr "Auslieferung von Inhalten"
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr "Paket-Assets über den WordPress-Proxy ausliefern"
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr "Verwenden Sie diese Option nur, wenn Ihr Webserver falsche MIME-Typen für Paket-Assets zurückgibt, zum Beispiel JavaScript-Dateien, die als text/plain ausgeliefert werden. Wenn aktiviert, werden CSS-, JavaScript-, Schriftart-, Bild- und andere Paketdateien über WordPress ausgeliefert, sodass das Plugin explizite Content-Type-Header senden kann. Dies kann die Leistung verringern, da die Anfragen von PHP verarbeitet werden, anstatt direkt vom Webserver ausgeliefert zu werden."
diff --git a/languages/exelearning-eo.mo b/languages/exelearning-eo.mo
index 40c3627..2eb3203 100644
Binary files a/languages/exelearning-eo.mo and b/languages/exelearning-eo.mo differ
diff --git a/languages/exelearning-eo.po b/languages/exelearning-eo.po
index 2b9f677..82dbb9e 100644
--- a/languages/exelearning-eo.po
+++ b/languages/exelearning-eo.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Domain: exelearning\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
@@ -24,22 +24,22 @@ msgstr "Agordoj"
msgid "Date"
msgstr "Dato"
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr "Forigi"
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr "Titolo"
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr "eXeLearning"
@@ -58,8 +58,8 @@ msgstr "Kromprogramo por subteni eXeLearning .elp-dosierojn en WordPress. Alŝut
msgid "INTEF"
msgstr "INTEF"
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr "Agordoj de eXeLearning"
@@ -71,7 +71,7 @@ msgstr "Stato"
msgid "Edit"
msgstr "Redakti"
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr "Eraro: eXeLearning-enhavo ne trovita"
@@ -92,19 +92,19 @@ msgid "Open in new tab"
msgstr "Malfermi en nova langeto"
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr "Licenco:"
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr "Lingvo:"
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr "Rimeda tipo:"
@@ -120,6 +120,7 @@ msgstr "Uzi ĉi tiun dosieron"
msgid "Invalid nonce."
msgstr "Nevalida nonce."
+#: admin/class-admin-settings.php:247
#: admin/class-admin-styles.php:164
#: admin/class-admin-upload.php:41
msgid "Insufficient permissions."
@@ -158,28 +159,28 @@ msgstr "Ŝargante projekton..."
msgid "Error"
msgstr "Eraro"
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr "Nevalida enhava identigilo."
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr "Nevalida dosiera vojo."
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr "Dosiero ne trovita."
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr "Aliro rifuzita."
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr "Ĉi tiu eXeLearning-enhavo estas fontdosiero kaj ne povas esti antaŭrigardata rekte."
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr "Elŝuti dosieron"
@@ -215,7 +216,7 @@ msgstr "Vi ne havas permeson redakti ĉi tiun dosieron."
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -324,7 +325,7 @@ msgstr "Vidi tutekrane"
msgid "eXeLearning Info"
msgstr "Informoj pri eXeLearning"
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr "Versio:"
@@ -405,75 +406,75 @@ msgstr "Bonvolu atendi dum la dosiero estas konservata."
msgid "You have unsaved changes. Are you sure you want to close?"
msgstr "Vi havas nekonservitajn ŝanĝojn. Ĉu vi certas, ke vi volas fermi?"
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr "Integra redaktilo"
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr "La integra redaktilo estas bezonata por redakti eXeLearning-dosierojn."
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr "Bonvolu instali ĝin per la suba butono."
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr "Stato:"
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr "Instalita"
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr "Instalita je:"
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr "Ĝisdatigi al la plej nova versio"
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr "Ne instalita"
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr "La integra eXeLearning-redaktilo ne estas instalita. Vi povas aŭtomate elŝuti kaj instali la plej novan version de GitHub."
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr "Elŝuti kaj instali redaktilon"
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr "Programistoj ankaŭ povas kompili la redaktilon el la fontkodo per %s."
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr "Reprovi"
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr "Instalado..."
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr "Elŝutado kaj instalado de la redaktilo. Tio povas daŭri minuton..."
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr "Malfermi redaktilon"
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr "Instalado malsukcesis."
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr "Reta eraro. Bonvolu kontroli vian konekton kaj reprovi."
@@ -614,191 +615,193 @@ msgstr "Ĉi tiu dosiero ne povis esti prilaborita kiel eXeLearning."
msgid "https://exelearning.net/"
msgstr "https://exelearning.net/"
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr "Helpo"
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr "Enkorpigu alŝutitan .elpx-pakaĵon ie ajn per la kodo [exelearning], referencante la dosieron per ĝia aldonaĵo-ID en la Aŭdvida Biblioteko."
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr "Ekzemploj de kodo"
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr "Atributoj"
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr "Atributo"
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr "Defaŭlta"
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr "Priskribo"
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr "Deviga. Aldonaĵo-ID de la .elpx-pakaĵo en la Aŭdvida Biblioteko."
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr "Alteco de la antaŭrigardo, en bilderoj."
-#: admin/class-admin-settings.php:118
+#: admin/class-admin-settings.php:125
msgid "When enabled, the content loads with teacher mode active."
msgstr "Kiam ŝaltita, la enhavo ŝargiĝas kun la instruista reĝimo aktiva."
-#: admin/class-admin-settings.php:123
+#: admin/class-admin-settings.php:130
msgid "Whether the teacher-mode toggle button is shown."
msgstr "Ĉu la ŝaltbutono de la instruista reĝimo estas montrata."
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr "Kiam ŝaltita, montras elŝutbutonon kun pluraj formatoj."
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr "ĉiuj"
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr "Komseparitaj formatoj proponotaj: elpx, html5, scorm12, ims, epub3."
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr "Montri la ekrankopion de la pakaĵo: no, poster (klaku por ŝargi) aŭ only (nur bildo). Bezonas eXeLearning 4.0.1 aŭ pli novan."
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr "Hokoj por programistoj"
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr "La eligo de la kodo agordeblas per la filtriloj exelearning_shortcode_atts, exelearning_preview_url kaj exelearning_shortcode_output, inter aliaj agoj kaj filtriloj."
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr "Kompleta referenco de la kodo"
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr "Referenco de la programistaj hokoj"
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr "Stiloj"
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr "Alŝutu eXeLearning-stilpakaĵojn kaj regu kiujn stilojn la enkorpigita redaktilo montras."
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr "Importa politiko"
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr "Bloki uzant-importitajn stilojn"
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr "Kiam ŝaltita, la enkorpigita redaktilo kaŝas la langeton «Uzantaj stiloj» kaj silente rifuzas instali stilon inkluzivitan en importita .elpx-projekto. Uzantoj povas elekti nur el la malsupra listo aprobita de la administranto. Tio spegulas la konduton eXeLearning ONLINE_THEMES_INSTALL=false."
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr "Alŝuti novan stilon"
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr "Alŝuti stilon"
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr "Maksimuma dosiergrandeco: %s. Akceptiĝas nur .zip-pakaĵoj kun valida config.xml."
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr "Alŝutitaj stiloj"
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr "Ankoraŭ neniuj alŝutitaj stiloj."
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr "Id"
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr "Versio"
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr "Ŝaltita"
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr "Agoj"
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr "Enkonstruitaj stiloj"
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr "Enkonstruitaj stiloj ne disponeblas ĉar la enkorpigita redaktilo ne estas instalita."
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr "Malŝaltitaj enkonstruitaj stiloj estas kaŝitaj de la redaktilo. Alŝutitaj stiloj povas esti malŝaltitaj aŭ forigitaj iam ajn. Ekzistantaj projektoj kiuj referencas mankantan stilon uzas la defaŭltan stilon de la redaktilo."
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr "Alŝutante…"
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr "Stilo instalita."
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr "Alŝuto malsukcesis."
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
msgid "Network error."
msgstr "Reta eraro."
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
msgid "Update failed."
msgstr "Ĝisdatigo malsukcesis."
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr "Ĉu forigi ĉi tiun stilon? Tio ne povas esti malfarita."
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr "Stilo forigita."
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr "Forigo malsukcesis."
@@ -812,6 +815,7 @@ msgstr "La alŝutita dosiero ne estas alirebla."
msgid "Missing style id."
msgstr "Mankas stilo-ID."
+#: admin/class-admin-settings.php:251
#: admin/class-admin-styles.php:168
msgid "Invalid or missing security token."
msgstr "Nevalida aŭ mankanta sekureca ĵetono."
@@ -1008,3 +1012,15 @@ msgstr "Montri elŝutbutonon"
#: assets/js/elp-upload.js:435
msgid "Available formats"
msgstr "Disponeblaj formatoj"
+
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr "Liverado de enhavo"
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr "Servi pakaĵajn risurcojn tra la WordPress-prokurilo"
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr "Uzu ĉi tiun opcion nur se via retservilo redonas malĝustajn MIME-tipojn por pakaĵaj risurcoj, ekzemple JavaScript-dosieroj servataj kiel text/plain. Kiam ĝi estas ŝaltita, CSS-, JavaScript-, tiparaj, bildaj kaj aliaj pakaĵaj dosieroj estas servataj tra WordPress por ke la kromprogramo povu sendi eksplicitajn Content-Type-kapliniojn. Tio povas malpliigi la efikecon ĉar la petoj estas traktataj de PHP anstataŭ esti servataj rekte de la retservilo."
diff --git a/languages/exelearning-es_ES.mo b/languages/exelearning-es_ES.mo
index bc6343d..3bab426 100644
Binary files a/languages/exelearning-es_ES.mo and b/languages/exelearning-es_ES.mo differ
diff --git a/languages/exelearning-es_ES.po b/languages/exelearning-es_ES.po
index ba3d4e1..a76667a 100644
--- a/languages/exelearning-es_ES.po
+++ b/languages/exelearning-es_ES.po
@@ -16,9 +16,9 @@ msgstr ""
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr "eXeLearning"
@@ -42,214 +42,216 @@ msgstr "INTEF"
msgid "https://exelearning.net/"
msgstr "https://exelearning.net/"
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
msgstr "Ajustes"
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr "Ajustes de eXeLearning"
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr "Estilos"
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr "Sube paquetes de estilos de eXeLearning y controla qué estilos muestra el editor embebido."
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr "Política de importación"
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr "Bloquear estilos importados por usuarios"
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr "Cuando está activado, el editor embebido oculta la pestaña «Estilos de usuario» y rechaza silenciosamente la instalación de cualquier estilo incluido en un proyecto .elpx importado. Los usuarios solo pueden elegir entre la lista aprobada por la administración que se muestra debajo. Este comportamiento replica el de eXeLearning ONLINE_THEMES_INSTALL=false."
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr "Subir un nuevo estilo"
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr "Subir estilo"
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr "Tamaño máximo de archivo: %s. Solo se aceptan paquetes .zip que contengan un config.xml válido."
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr "Estilos subidos"
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr "Aún no hay estilos subidos."
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr "Título"
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr "Id"
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr "Versión"
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr "Instalado"
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr "Habilitado"
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr "Acciones"
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr "Eliminar"
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr "Estilos integrados"
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr "Los estilos integrados no están disponibles porque el editor embebido no está instalado."
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr "Los estilos integrados deshabilitados se ocultan del editor. Los estilos subidos se pueden deshabilitar o eliminar en cualquier momento. Los proyectos existentes que hagan referencia a un estilo inexistente utilizarán el estilo predeterminado del editor."
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr "Subiendo…"
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr "Estilo instalado."
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr "Error al subir."
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
msgid "Network error."
msgstr "Error de red."
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
msgid "Update failed."
msgstr "Error al actualizar."
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr "¿Eliminar este estilo? Esta acción no se puede deshacer."
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr "Estilo eliminado."
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr "Error al eliminar."
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr "Editor integrado"
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr "El editor integrado es necesario para editar archivos eXeLearning."
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr "Por favor, instálalo usando el botón de abajo."
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr "Estado:"
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr "Versión:"
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr "Instalado el:"
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr "Actualizar a la última versión"
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr "No instalado"
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr "El editor integrado de eXeLearning no está instalado. Puedes descargar e instalar la última versión automáticamente desde GitHub."
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr "Descargar e instalar editor"
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr "Los desarrolladores también pueden compilar el editor desde el código fuente usando %s."
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr "Reintentar"
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr "Instalando..."
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr "Descargando e instalando el editor. Esto puede tardar un minuto..."
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr "Abrir editor"
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr "La instalación falló."
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr "Error de red. Por favor, comprueba tu conexión e inténtalo de nuevo."
@@ -275,11 +277,13 @@ msgstr "No se puede acceder al archivo subido."
msgid "Missing style id."
msgstr "Falta el identificador del estilo."
+#: admin/class-admin-settings.php:247
#: admin/class-admin-styles.php:164
#: admin/class-admin-upload.php:41
msgid "Insufficient permissions."
msgstr "Permisos insuficientes."
+#: admin/class-admin-settings.php:251
#: admin/class-admin-styles.php:168
msgid "Invalid or missing security token."
msgstr "Token de seguridad no válido o ausente."
@@ -321,20 +325,20 @@ msgstr "Cargando proyecto..."
msgid "Error"
msgstr "Error"
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr "Identificador de contenido no válido."
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr "Ruta de archivo no válida."
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr "Archivo no encontrado."
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr "Acceso denegado."
@@ -420,16 +424,16 @@ msgstr "Este no es un archivo eXeLearning (.elpx)."
msgid "Failed to create directory for extracted files."
msgstr "Error al crear el directorio para los archivos extraídos."
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr "Error: contenido de eXeLearning no encontrado"
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr "Descargar archivo"
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr "Este contenido de eXeLearning es un archivo fuente y no puede previsualizarse directamente."
@@ -464,7 +468,7 @@ msgstr "No tienes permiso para editar este archivo."
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -771,14 +775,14 @@ msgid "exported"
msgstr "exportado"
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr "Licencia:"
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr "Idioma:"
@@ -829,8 +833,8 @@ msgstr "Metadatos de eXeLearning"
msgid "Open in new tab"
msgstr "Abrir en nueva pestaña"
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr "Tipo de recurso:"
@@ -917,79 +921,79 @@ msgstr "Este es un archivo fuente de eXeLearning v2. El contenido se mostrará e
msgid "Load interactive content"
msgstr "Cargar contenido interactivo"
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr "Ayuda"
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr "Incrusta un paquete .elpx subido en cualquier lugar con el código corto [exelearning], referenciando el archivo por su ID de adjunto en la Biblioteca de medios."
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr "Ejemplos de código corto"
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr "Atributos"
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr "Atributo"
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr "Por defecto"
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr "Descripción"
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr "Obligatorio. ID de adjunto del paquete .elpx en la Biblioteca de medios."
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr "Altura de la previsualización, en píxeles."
-#: admin/class-admin-settings.php:118
+#: admin/class-admin-settings.php:125
msgid "When enabled, the content loads with teacher mode active."
msgstr "Cuando se activa, el contenido se carga con el modo docente activo."
-#: admin/class-admin-settings.php:123
+#: admin/class-admin-settings.php:130
msgid "Whether the teacher-mode toggle button is shown."
msgstr "Si se muestra el botón para conmutar el modo docente."
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr "Cuando se activa, muestra un botón de descarga multiformato."
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr "todos"
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr "Formatos separados por comas a ofrecer: elpx, html5, scorm12, ims, epub3."
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr "Muestra la captura de pantalla del paquete: no, poster (clic para cargar) u only (solo imagen). Requiere eXeLearning 4.0.1 o superior."
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr "Hooks para desarrolladores"
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr "La salida del código corto se puede personalizar con los filtros exelearning_shortcode_atts, exelearning_preview_url y exelearning_shortcode_output, entre otras acciones y filtros."
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr "Referencia completa del código corto"
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr "Referencia de hooks para desarrolladores"
@@ -1008,3 +1012,15 @@ msgstr "Paquete IMS (_ims.zip)"
#: assets/js/elp-upload.js:40
msgid "EPUB3 (.epub)"
msgstr "EPUB3 (.epub)"
+
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr "Entrega de contenido"
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr "Servir los recursos del paquete a través del proxy de WordPress"
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr "Use esta opción solo si su servidor web devuelve tipos MIME incorrectos para los recursos del paquete, por ejemplo archivos JavaScript servidos como text/plain. Cuando está activada, los archivos CSS, JavaScript, fuentes, imágenes y otros archivos del paquete se sirven a través de WordPress para que el plugin pueda enviar cabeceras Content-Type explícitas. Esto puede reducir el rendimiento porque las solicitudes las gestiona PHP en lugar de servirse directamente desde el servidor web."
diff --git a/languages/exelearning-eu.mo b/languages/exelearning-eu.mo
index e64588e..fa088ac 100644
Binary files a/languages/exelearning-eu.mo and b/languages/exelearning-eu.mo differ
diff --git a/languages/exelearning-eu.po b/languages/exelearning-eu.po
index 00e4f0d..2279471 100644
--- a/languages/exelearning-eu.po
+++ b/languages/exelearning-eu.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Domain: exelearning\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
@@ -24,22 +24,22 @@ msgstr "Ezarpenak"
msgid "Date"
msgstr "Data"
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr "Ezabatu"
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr "Izenburua"
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr "eXeLearning"
@@ -58,8 +58,8 @@ msgstr "eXeLearning .elp fitxategiak WordPressen kudeatzeko plugina. Igo, kudeat
msgid "INTEF"
msgstr "INTEF"
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr "eXeLearning ezarpenak"
@@ -71,7 +71,7 @@ msgstr "Egoera"
msgid "Edit"
msgstr "Editatu"
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr "Errorea: eXeLearning edukia ez da aurkitu"
@@ -92,19 +92,19 @@ msgid "Open in new tab"
msgstr "Ireki fitxa berrian"
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr "Lizentzia:"
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr "Hizkuntza:"
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr "Baliabide mota:"
@@ -120,6 +120,7 @@ msgstr "Erabili fitxategi hau"
msgid "Invalid nonce."
msgstr "Nonce baliogabea."
+#: admin/class-admin-settings.php:247
#: admin/class-admin-styles.php:164
#: admin/class-admin-upload.php:41
msgid "Insufficient permissions."
@@ -158,28 +159,28 @@ msgstr "Proiektua kargatzen..."
msgid "Error"
msgstr "Errorea"
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr "Eduki identifikatzaile baliogabea."
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr "Fitxategi bide baliogabea."
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr "Fitxategia ez da aurkitu."
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr "Sarbidea ukatua."
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr "eXeLearning eduki hau iturburu fitxategia da eta ezin da zuzenean aurreikusi."
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr "Deskargatu fitxategia"
@@ -215,7 +216,7 @@ msgstr "Ez duzu fitxategi hau editatzeko baimenik."
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -324,7 +325,7 @@ msgstr "Ikusi pantaila osoan"
msgid "eXeLearning Info"
msgstr "eXeLearning informazioa"
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr "Bertsioa:"
@@ -405,75 +406,75 @@ msgstr "Mesedez, itxaron fitxategia gordetzen den bitartean."
msgid "You have unsaved changes. Are you sure you want to close?"
msgstr "Gorde gabeko aldaketak dituzu. Ziur zaude itxi nahi duzula?"
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr "Editorea txertatua"
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr "Editore txertatua beharrezkoa da eXeLearning fitxategiak editatzeko."
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr "Mesedez, instalatu beheko botoia erabiliz."
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr "Egoera:"
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr "Instalatuta"
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr "Instalazio-data:"
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr "Eguneratu azken bertsiora"
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr "Instalatu gabe"
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr "eXeLearning editore txertatua ez dago instalatuta. Azken bertsioa automatikoki deskargatu eta instalatu dezakezu GitHub-etik."
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr "Deskargatu eta instalatu editorea"
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr "Garatzaileek editorea iturburu-kodetik ere konpilatu dezakete %s erabiliz."
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr "Saiatu berriro"
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr "Instalatzen..."
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr "Editorea deskargatzen eta instalatzen. Minutu bat behar izan dezake..."
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr "Ireki editorea"
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr "Instalazioak huts egin du."
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr "Sare-errorea. Mesedez, egiaztatu konexioa eta saiatu berriro."
@@ -614,191 +615,193 @@ msgstr "Fitxategi hau ezin izan da eXeLearning gisa prozesatu."
msgid "https://exelearning.net/"
msgstr "https://exelearning.net/"
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr "Laguntza"
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr "Txertatu igotako .elpx pakete bat edonon [exelearning] kode laburrarekin, fitxategia Multimedia Liburutegiko eranskin IDaren bidez aipatuz."
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr "Kode laburraren adibideak"
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr "Atributuak"
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr "Atributua"
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr "Lehenetsia"
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr "Deskribapena"
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr ".elpx paketearen Multimedia Liburutegiko eranskin IDa. Beharrezkoa."
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr "Aurrebistaren altuera, pixeletan."
-#: admin/class-admin-settings.php:118
+#: admin/class-admin-settings.php:125
msgid "When enabled, the content loads with teacher mode active."
msgstr "Gaituta dagoenean, edukia irakasle modua aktibatuta kargatzen da."
-#: admin/class-admin-settings.php:123
+#: admin/class-admin-settings.php:130
msgid "Whether the teacher-mode toggle button is shown."
msgstr "Irakasle moduaren txandakatze-botoia erakusten den ala ez."
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr "Gaituta dagoenean, formatu anitzeko deskarga-botoia erakusten du."
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr "guztiak"
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr "Komaz bereizitako formatuak eskaintzeko: elpx, html5, scorm12, ims, epub3."
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr "Erakutsi paketearen pantaila-argazkia: no, poster (egin klik kargatzeko) edo only (irudia soilik). eXeLearning 4.0.1 edo berriagoa behar du."
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr "Garatzaileentzako hook-ak"
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr "Kode laburraren irteera exelearning_shortcode_atts, exelearning_preview_url eta exelearning_shortcode_output iragazkiekin pertsonaliza daiteke, beste ekintza eta iragazki batzuen artean."
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr "Kode laburraren erreferentzia osoa"
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr "Garatzaileentzako hook-en erreferentzia"
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr "Estiloak"
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr "Igo eXeLearning estilo-paketeak eta kontrolatu txertatutako editoreak zein estilo erakusten dituen."
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr "Inportazio-politika"
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr "Erabiltzaileek inportatutako estiloak blokeatu"
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr "Gaituta dagoenean, txertatutako editoreak «Erabiltzaile-estiloak» fitxa ezkutatzen du eta isilean uko egiten dio inportatutako .elpx proiektu batean sartutako estilo bat instalatzeari. Erabiltzaileek beheko administratzaileak onartutako zerrendatik bakarrik aukera dezakete. Honek eXeLearning ONLINE_THEMES_INSTALL=false portaera islatzen du."
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr "Igo estilo berri bat"
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr "Igo estiloa"
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr "Fitxategiaren gehienezko tamaina: %s. config.xml baliodun bat duten .zip paketeak soilik onartzen dira."
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr "Igotako estiloak"
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr "Oraindik ez dago igotako estilorik."
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr "Id"
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr "Bertsioa"
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr "Gaituta"
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr "Ekintzak"
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr "Estilo integratuak"
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr "Estilo integratuak ez daude erabilgarri txertatutako editorea instalatuta ez dagoelako."
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr "Desgaitutako estilo integratuak editoretik ezkutatzen dira. Igotako estiloak edozein unetan desgaitu edo ezaba daitezke. Falta den estilo bat aipatzen duten proiektuek editorearen estilo lehenetsia erabiltzen dute."
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr "Igotzen…"
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr "Estiloa instalatu da."
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr "Igoerak huts egin du."
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
msgid "Network error."
msgstr "Sare-errorea."
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
msgid "Update failed."
msgstr "Eguneratzeak huts egin du."
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr "Estilo hau ezabatu? Ekintza hau ezin da desegin."
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr "Estiloa ezabatu da."
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr "Ezabatzeak huts egin du."
@@ -812,6 +815,7 @@ msgstr "Igotako fitxategia ezin da atzitu."
msgid "Missing style id."
msgstr "Estiloaren IDa falta da."
+#: admin/class-admin-settings.php:251
#: admin/class-admin-styles.php:168
msgid "Invalid or missing security token."
msgstr "Segurtasun-token baliogabea edo falta dena."
@@ -1008,3 +1012,15 @@ msgstr "Erakutsi deskarga-botoia"
#: assets/js/elp-upload.js:435
msgid "Available formats"
msgstr "Formatu erabilgarriak"
+
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr "Edukiaren entrega"
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr "Paketearen baliabideak WordPress-en proxyaren bidez zerbitzatu"
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr "Erabili aukera hau soilik zure web zerbitzariak paketearen baliabideentzat MIME mota okerrak itzultzen baditu, adibidez text/plain gisa zerbitzatzen diren JavaScript fitxategiak. Gaituta dagoenean, CSS, JavaScript, letra-tipo, irudi eta paketearen beste fitxategi batzuk WordPress-en bidez zerbitzatzen dira, pluginak Content-Type goiburu esplizituak bidali ahal izateko. Horrek errendimendua murriztu dezake, eskaerak PHPk kudeatzen baititu web zerbitzaritik zuzenean zerbitzatu beharrean."
diff --git a/languages/exelearning-gl_ES.mo b/languages/exelearning-gl_ES.mo
index 14a9852..b7178af 100644
Binary files a/languages/exelearning-gl_ES.mo and b/languages/exelearning-gl_ES.mo differ
diff --git a/languages/exelearning-gl_ES.po b/languages/exelearning-gl_ES.po
index 812cb16..128776d 100644
--- a/languages/exelearning-gl_ES.po
+++ b/languages/exelearning-gl_ES.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Domain: exelearning\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
@@ -24,22 +24,22 @@ msgstr "Axustes"
msgid "Date"
msgstr "Data"
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr "Eliminar"
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr "Título"
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr "eXeLearning"
@@ -58,8 +58,8 @@ msgstr "Complemento para xestionar ficheiros .elp de eXeLearning en WordPress. S
msgid "INTEF"
msgstr "INTEF"
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr "Axustes de eXeLearning"
@@ -71,7 +71,7 @@ msgstr "Estado"
msgid "Edit"
msgstr "Editar"
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr "Erro: contido de eXeLearning non atopado"
@@ -92,19 +92,19 @@ msgid "Open in new tab"
msgstr "Abrir nunha nova pestana"
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr "Licenza:"
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr "Idioma:"
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr "Tipo de recurso:"
@@ -120,6 +120,7 @@ msgstr "Usar este ficheiro"
msgid "Invalid nonce."
msgstr "Nonce non válido."
+#: admin/class-admin-settings.php:247
#: admin/class-admin-styles.php:164
#: admin/class-admin-upload.php:41
msgid "Insufficient permissions."
@@ -158,28 +159,28 @@ msgstr "Cargando proxecto..."
msgid "Error"
msgstr "Erro"
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr "Identificador de contido non válido."
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr "Ruta de ficheiro non válida."
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr "Ficheiro non atopado."
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr "Acceso denegado."
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr "Este contido de eXeLearning é un ficheiro fonte e non se pode previsualizar directamente."
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr "Descargar ficheiro"
@@ -215,7 +216,7 @@ msgstr "Non tes permiso para editar este ficheiro."
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -324,7 +325,7 @@ msgstr "Ver a pantalla completa"
msgid "eXeLearning Info"
msgstr "Información de eXeLearning"
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr "Versión:"
@@ -405,75 +406,75 @@ msgstr "Por favor, agarde mentres se garda o ficheiro."
msgid "You have unsaved changes. Are you sure you want to close?"
msgstr "Ten cambios sen gardar. Está seguro de que desexa pechar?"
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr "Editor integrado"
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr "O editor integrado é necesario para editar ficheiros eXeLearning."
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr "Por favor, instáleo usando o botón de abaixo."
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr "Estado:"
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr "Instalado"
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr "Instalado o:"
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr "Actualizar á última versión"
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr "Non instalado"
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr "O editor integrado de eXeLearning non está instalado. Podes descargar e instalar a última versión automaticamente dende GitHub."
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr "Descargar e instalar o editor"
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr "Os desenvolvedores tamén poden compilar o editor dende o código fonte usando %s."
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr "Tentar de novo"
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr "Instalando..."
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr "Descargando e instalando o editor. Isto pode levar un minuto..."
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr "Abrir editor"
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr "A instalación fallou."
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr "Erro de rede. Por favor, comproba a túa conexión e téntao de novo."
@@ -614,191 +615,193 @@ msgstr "Non se puido procesar este ficheiro como eXeLearning."
msgid "https://exelearning.net/"
msgstr "https://exelearning.net/"
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr "Axuda"
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr "Incorpora en calquera lugar un paquete .elpx subido co código curto [exelearning], referenciando o ficheiro polo seu ID de anexo na Biblioteca multimedia."
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr "Exemplos de código curto"
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr "Atributos"
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr "Atributo"
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr "Predeterminado"
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr "Descrición"
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr "Obrigatorio. ID de anexo do paquete .elpx na Biblioteca multimedia."
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr "Altura da vista previa, en píxeles."
-#: admin/class-admin-settings.php:118
+#: admin/class-admin-settings.php:125
msgid "When enabled, the content loads with teacher mode active."
msgstr "Cando se activa, o contido cárgase co modo docente activo."
-#: admin/class-admin-settings.php:123
+#: admin/class-admin-settings.php:130
msgid "Whether the teacher-mode toggle button is shown."
msgstr "Se se amosa o botón para conmutar o modo docente."
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr "Cando se activa, amosa un botón de descarga multiformato."
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr "todos"
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr "Formatos separados por comas a ofrecer: elpx, html5, scorm12, ims, epub3."
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr "Amosar a captura de pantalla do paquete: no, poster (preme para cargar) ou only (só imaxe). Require eXeLearning 4.0.1 ou superior."
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr "Hooks para desenvolvedores"
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr "A saída do código curto pode personalizarse cos filtros exelearning_shortcode_atts, exelearning_preview_url e exelearning_shortcode_output, entre outras accións e filtros."
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr "Referencia completa do código curto"
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr "Referencia dos hooks para programadores"
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr "Estilos"
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr "Sube paquetes de estilos de eXeLearning e controla que estilos amosa o editor incrustado."
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr "Política de importación"
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr "Bloquear os estilos importados por usuarios"
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr "Cando se activa, o editor incrustado agocha a pestana «Estilos de usuario» e négase silenciosamente a instalar un estilo incluído nun proxecto .elpx importado. Os usuarios só poden escoller da lista aprobada polo administrador de embaixo. Isto reproduce o comportamento eXeLearning ONLINE_THEMES_INSTALL=false."
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr "Subir un novo estilo"
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr "Subir estilo"
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr "Tamaño máximo do ficheiro: %s. Só se aceptan paquetes .zip que conteñan un config.xml válido."
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr "Estilos subidos"
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr "Aínda non hai estilos subidos."
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr "Id"
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr "Versión"
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr "Habilitado"
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr "Accións"
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr "Estilos integrados"
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr "Os estilos integrados non están dispoñibles porque o editor incrustado non está instalado."
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr "Os estilos integrados desactivados agóchanse do editor. Os estilos subidos pódense desactivar ou eliminar en calquera momento. Os proxectos existentes que referencian un estilo que falta usan o estilo predeterminado do editor."
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr "Subindo…"
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr "Estilo instalado."
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr "Produciuse un erro ao subir."
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
msgid "Network error."
msgstr "Erro de rede."
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
msgid "Update failed."
msgstr "Produciuse un erro ao actualizar."
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr "Eliminar este estilo? Esta acción non se pode desfacer."
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr "Estilo eliminado."
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr "Produciuse un erro ao eliminar."
@@ -812,6 +815,7 @@ msgstr "Non se pode acceder ao ficheiro subido."
msgid "Missing style id."
msgstr "Falta o identificador do estilo."
+#: admin/class-admin-settings.php:251
#: admin/class-admin-styles.php:168
msgid "Invalid or missing security token."
msgstr "Testemuño de seguranza non válido ou ausente."
@@ -1008,3 +1012,15 @@ msgstr "Amosar o botón de descarga"
#: assets/js/elp-upload.js:435
msgid "Available formats"
msgstr "Formatos dispoñibles"
+
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr "Entrega de contido"
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr "Servir os recursos do paquete a través do proxy de WordPress"
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr "Use esta opción só se o seu servidor web devolve tipos MIME incorrectos para os recursos do paquete, por exemplo ficheiros JavaScript servidos como text/plain. Cando está activada, os ficheiros CSS, JavaScript, fontes, imaxes e outros ficheiros do paquete sérvense a través de WordPress para que o complemento poida enviar cabeceiras Content-Type explícitas. Isto pode reducir o rendemento porque as solicitudes xestiónaas PHP en lugar de servirse directamente desde o servidor web."
diff --git a/languages/exelearning-it_IT.mo b/languages/exelearning-it_IT.mo
index 39f673d..fdd7d1c 100644
Binary files a/languages/exelearning-it_IT.mo and b/languages/exelearning-it_IT.mo differ
diff --git a/languages/exelearning-it_IT.po b/languages/exelearning-it_IT.po
index e03b310..6626e91 100644
--- a/languages/exelearning-it_IT.po
+++ b/languages/exelearning-it_IT.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Domain: exelearning\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
@@ -24,22 +24,22 @@ msgstr "Impostazioni"
msgid "Date"
msgstr "Data"
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr "Elimina"
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr "Titolo"
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr "eXeLearning"
@@ -58,8 +58,8 @@ msgstr "Plugin per gestire i file .elp di eXeLearning in WordPress. Carica, gest
msgid "INTEF"
msgstr "INTEF"
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr "Impostazioni di eXeLearning"
@@ -71,7 +71,7 @@ msgstr "Stato"
msgid "Edit"
msgstr "Modifica"
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr "Errore: contenuto eXeLearning non trovato"
@@ -92,19 +92,19 @@ msgid "Open in new tab"
msgstr "Apri in una nuova scheda"
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr "Licenza:"
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr "Lingua:"
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr "Tipo di risorsa:"
@@ -120,6 +120,7 @@ msgstr "Usa questo file"
msgid "Invalid nonce."
msgstr "Nonce non valido."
+#: admin/class-admin-settings.php:247
#: admin/class-admin-styles.php:164
#: admin/class-admin-upload.php:41
msgid "Insufficient permissions."
@@ -158,28 +159,28 @@ msgstr "Caricamento progetto..."
msgid "Error"
msgstr "Errore"
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr "Identificatore di contenuto non valido."
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr "Percorso file non valido."
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr "File non trovato."
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr "Accesso negato."
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr "Questo contenuto eXeLearning è un file sorgente e non può essere visualizzato in anteprima direttamente."
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr "Scarica file"
@@ -215,7 +216,7 @@ msgstr "Non hai il permesso di modificare questo file."
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -324,7 +325,7 @@ msgstr "Visualizza a schermo intero"
msgid "eXeLearning Info"
msgstr "Informazioni eXeLearning"
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr "Versione:"
@@ -405,75 +406,75 @@ msgstr "Attendere prego, il file è in fase di salvataggio."
msgid "You have unsaved changes. Are you sure you want to close?"
msgstr "Hai modifiche non salvate. Sei sicuro di voler chiudere?"
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr "Editor integrato"
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr "L'editor integrato è necessario per modificare i file eXeLearning."
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr "Installalo utilizzando il pulsante qui sotto."
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr "Stato:"
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr "Installato"
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr "Installato il:"
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr "Aggiorna all'ultima versione"
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr "Non installato"
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr "L'editor integrato di eXeLearning non è installato. Puoi scaricare e installare l'ultima versione automaticamente da GitHub."
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr "Scarica e installa l'editor"
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr "Gli sviluppatori possono anche compilare l'editor dal codice sorgente usando %s."
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr "Riprova"
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr "Installazione in corso..."
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr "Download e installazione dell'editor in corso. Potrebbe richiedere un minuto..."
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr "Apri editor"
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr "Installazione fallita."
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr "Errore di rete. Controlla la connessione e riprova."
@@ -614,191 +615,193 @@ msgstr "Impossibile elaborare questo file come eXeLearning."
msgid "https://exelearning.net/"
msgstr "https://exelearning.net/"
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr "Aiuto"
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr "Incorpora ovunque un pacchetto .elpx caricato con lo shortcode [exelearning], facendo riferimento al file tramite il suo ID allegato nella Libreria media."
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr "Esempi di shortcode"
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr "Attributi"
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr "Attributo"
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr "Predefinito"
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr "Descrizione"
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr "Obbligatorio. ID allegato del pacchetto .elpx nella Libreria media."
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr "Altezza dell'anteprima, in pixel."
-#: admin/class-admin-settings.php:118
+#: admin/class-admin-settings.php:125
msgid "When enabled, the content loads with teacher mode active."
msgstr "Se attivato, il contenuto viene caricato con la modalità docente attiva."
-#: admin/class-admin-settings.php:123
+#: admin/class-admin-settings.php:130
msgid "Whether the teacher-mode toggle button is shown."
msgstr "Indica se viene mostrato il pulsante di attivazione della modalità docente."
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr "Se attivato, mostra un pulsante di download multiformato."
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr "tutti"
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr "Formati separati da virgole da offrire: elpx, html5, scorm12, ims, epub3."
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr "Mostra lo screenshot del pacchetto: no, poster (clic per caricare) o only (solo immagine). Richiede eXeLearning 4.0.1 o successivo."
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr "Hook per sviluppatori"
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr "L'output dello shortcode può essere personalizzato con i filtri exelearning_shortcode_atts, exelearning_preview_url ed exelearning_shortcode_output, tra le altre azioni e filtri."
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr "Riferimento completo dello shortcode"
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr "Riferimento dei hook per sviluppatori"
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr "Stili"
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr "Carica pacchetti di stile eXeLearning e controlla quali stili espone l'editor incorporato."
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr "Criteri di importazione"
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr "Blocca gli stili importati dagli utenti"
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr "Se attivato, l'editor incorporato nasconde la scheda «Stili utente» e rifiuta silenziosamente di installare uno stile incluso in un progetto .elpx importato. Gli utenti possono scegliere solo dall'elenco approvato dall'amministratore qui sotto. Ciò rispecchia il comportamento di eXeLearning ONLINE_THEMES_INSTALL=false."
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr "Carica un nuovo stile"
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr "Carica stile"
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr "Dimensione massima del file: %s. Sono accettati solo pacchetti .zip contenenti un config.xml valido."
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr "Stili caricati"
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr "Nessuno stile caricato."
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr "ID"
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr "Versione"
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr "Abilitato"
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr "Azioni"
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr "Stili integrati"
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr "Gli stili integrati non sono disponibili perché l'editor incorporato non è installato."
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr "Gli stili integrati disabilitati sono nascosti nell'editor. Gli stili caricati possono essere disabilitati o eliminati in qualsiasi momento. I progetti esistenti che fanno riferimento a uno stile mancante usano lo stile predefinito dell'editor."
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr "Caricamento…"
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr "Stile installato."
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr "Caricamento non riuscito."
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
msgid "Network error."
msgstr "Errore di rete."
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
msgid "Update failed."
msgstr "Aggiornamento non riuscito."
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr "Eliminare questo stile? Questa operazione non può essere annullata."
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr "Stile eliminato."
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr "Eliminazione non riuscita."
@@ -812,6 +815,7 @@ msgstr "Il file caricato non è accessibile."
msgid "Missing style id."
msgstr "ID dello stile mancante."
+#: admin/class-admin-settings.php:251
#: admin/class-admin-styles.php:168
msgid "Invalid or missing security token."
msgstr "Token di sicurezza non valido o mancante."
@@ -1008,3 +1012,15 @@ msgstr "Mostra il pulsante di download"
#: assets/js/elp-upload.js:435
msgid "Available formats"
msgstr "Formati disponibili"
+
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr "Distribuzione dei contenuti"
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr "Servire le risorse del pacchetto tramite il proxy di WordPress"
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr "Utilizza questa opzione solo se il tuo server web restituisce tipi MIME errati per le risorse del pacchetto, ad esempio file JavaScript serviti come text/plain. Quando è attivata, i file CSS, JavaScript, dei caratteri, delle immagini e altri file del pacchetto vengono serviti tramite WordPress affinché il plugin possa inviare intestazioni Content-Type esplicite. Questo può ridurre le prestazioni perché le richieste vengono gestite da PHP anziché essere servite direttamente dal server web."
diff --git a/languages/exelearning-pt_PT.mo b/languages/exelearning-pt_PT.mo
index 81cb13e..176e497 100644
Binary files a/languages/exelearning-pt_PT.mo and b/languages/exelearning-pt_PT.mo differ
diff --git a/languages/exelearning-pt_PT.po b/languages/exelearning-pt_PT.po
index e932a62..1b9d8be 100644
--- a/languages/exelearning-pt_PT.po
+++ b/languages/exelearning-pt_PT.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Domain: exelearning\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
@@ -24,22 +24,22 @@ msgstr "Definições"
msgid "Date"
msgstr "Data"
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr "Eliminar"
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr "Título"
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr "eXeLearning"
@@ -58,8 +58,8 @@ msgstr "Plugin para gerir ficheiros .elp do eXeLearning no WordPress. Carregue,
msgid "INTEF"
msgstr "INTEF"
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr "Definições do eXeLearning"
@@ -71,7 +71,7 @@ msgstr "Estado"
msgid "Edit"
msgstr "Editar"
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr "Erro: conteúdo eXeLearning não encontrado"
@@ -92,19 +92,19 @@ msgid "Open in new tab"
msgstr "Abrir num novo separador"
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr "Licença:"
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr "Idioma:"
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr "Tipo de recurso:"
@@ -120,6 +120,7 @@ msgstr "Usar este ficheiro"
msgid "Invalid nonce."
msgstr "Nonce inválido."
+#: admin/class-admin-settings.php:247
#: admin/class-admin-styles.php:164
#: admin/class-admin-upload.php:41
msgid "Insufficient permissions."
@@ -158,28 +159,28 @@ msgstr "A carregar projeto..."
msgid "Error"
msgstr "Erro"
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr "Identificador de conteúdo inválido."
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr "Caminho de ficheiro inválido."
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr "Ficheiro não encontrado."
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr "Acesso negado."
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr "Este conteúdo eXeLearning é um ficheiro fonte e não pode ser pré-visualizado diretamente."
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr "Descarregar ficheiro"
@@ -215,7 +216,7 @@ msgstr "Não tem permissão para editar este ficheiro."
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -324,7 +325,7 @@ msgstr "Ver em ecrã inteiro"
msgid "eXeLearning Info"
msgstr "Informações do eXeLearning"
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr "Versão:"
@@ -405,75 +406,75 @@ msgstr "Por favor, aguarde enquanto o ficheiro está a ser guardado."
msgid "You have unsaved changes. Are you sure you want to close?"
msgstr "Tem alterações não guardadas. Tem a certeza de que pretende fechar?"
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr "Editor integrado"
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr "O editor integrado é necessário para editar ficheiros eXeLearning."
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr "Por favor, instale-o usando o botão abaixo."
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr "Estado:"
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr "Instalado"
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr "Instalado em:"
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr "Atualizar para a última versão"
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr "Não instalado"
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr "O editor integrado do eXeLearning não está instalado. Pode descarregar e instalar a última versão automaticamente a partir do GitHub."
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr "Descarregar e instalar o editor"
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr "Os programadores também podem compilar o editor a partir do código-fonte usando %s."
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr "Tentar novamente"
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr "A instalar..."
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr "A descarregar e instalar o editor. Isto pode demorar um minuto..."
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr "Abrir editor"
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr "A instalação falhou."
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr "Erro de rede. Por favor, verifique a sua ligação e tente novamente."
@@ -614,191 +615,193 @@ msgstr "Não foi possível processar este ficheiro como eXeLearning."
msgid "https://exelearning.net/"
msgstr "https://exelearning.net/"
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr "Ajuda"
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr "Incorpore um pacote .elpx carregado em qualquer lugar com o shortcode [exelearning], referenciando o ficheiro pelo seu ID de anexo na Biblioteca de Média."
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr "Exemplos de shortcode"
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr "Atributos"
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr "Atributo"
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr "Predefinido"
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr "Descrição"
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr "Obrigatório. ID de anexo do pacote .elpx na Biblioteca de Média."
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr "Altura da pré-visualização, em pixels."
-#: admin/class-admin-settings.php:118
+#: admin/class-admin-settings.php:125
msgid "When enabled, the content loads with teacher mode active."
msgstr "Quando ativado, o conteúdo carrega com o modo professor ativo."
-#: admin/class-admin-settings.php:123
+#: admin/class-admin-settings.php:130
msgid "Whether the teacher-mode toggle button is shown."
msgstr "Define se o botão de alternância do modo professor é mostrado."
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr "Quando ativado, mostra um botão de transferência multiformato."
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr "todos"
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr "Formatos separados por vírgulas a oferecer: elpx, html5, scorm12, ims, epub3."
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr "Mostrar a captura de ecrã do pacote: no, poster (clique para carregar) ou only (apenas imagem). Requer eXeLearning 4.0.1 ou superior."
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr "Hooks para programadores"
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr "A saída do shortcode pode ser personalizada com os filtros exelearning_shortcode_atts, exelearning_preview_url e exelearning_shortcode_output, entre outras ações e filtros."
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr "Referência completa do shortcode"
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr "Referência dos hooks para programadores"
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr "Estilos"
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr "Carregue pacotes de estilo eXeLearning e controle quais estilos o editor incorporado expõe."
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr "Política de importação"
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr "Bloquear estilos importados por utilizadores"
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr "Quando ativado, o editor incorporado oculta o separador «Estilos de utilizador» e recusa silenciosamente instalar um estilo incluído num projeto .elpx importado. Os utilizadores só podem escolher na lista aprovada pelo administrador abaixo. Isto reproduz o comportamento eXeLearning ONLINE_THEMES_INSTALL=false."
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr "Carregar um novo estilo"
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr "Carregar estilo"
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr "Tamanho máximo do ficheiro: %s. Apenas são aceites pacotes .zip que contenham um config.xml válido."
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr "Estilos carregados"
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr "Ainda não há estilos carregados."
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr "ID"
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr "Versão"
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr "Ativado"
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr "Ações"
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr "Estilos incorporados"
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr "Os estilos incorporados não estão disponíveis porque o editor incorporado não está instalado."
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr "Os estilos incorporados desativados ficam ocultos no editor. Os estilos carregados podem ser desativados ou eliminados a qualquer momento. Os projetos existentes que referenciam um estilo em falta usam o estilo predefinido do editor."
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr "A carregar…"
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr "Estilo instalado."
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr "Falha no carregamento."
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
msgid "Network error."
msgstr "Erro de rede."
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
msgid "Update failed."
msgstr "Falha na atualização."
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr "Eliminar este estilo? Esta ação não pode ser desfeita."
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr "Estilo eliminado."
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr "Falha ao eliminar."
@@ -812,6 +815,7 @@ msgstr "O ficheiro carregado não está acessível."
msgid "Missing style id."
msgstr "ID de estilo em falta."
+#: admin/class-admin-settings.php:251
#: admin/class-admin-styles.php:168
msgid "Invalid or missing security token."
msgstr "Token de segurança inválido ou em falta."
@@ -1008,3 +1012,15 @@ msgstr "Mostrar o botão de transferência"
#: assets/js/elp-upload.js:435
msgid "Available formats"
msgstr "Formatos disponíveis"
+
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr "Entrega de conteúdo"
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr "Servir os recursos do pacote através do proxy do WordPress"
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr "Utilize esta opção apenas se o seu servidor web devolver tipos MIME incorretos para os recursos do pacote, por exemplo ficheiros JavaScript servidos como text/plain. Quando ativada, os ficheiros CSS, JavaScript, tipos de letra, imagens e outros ficheiros do pacote são servidos através do WordPress para que o plugin possa enviar cabeçalhos Content-Type explícitos. Isto pode reduzir o desempenho porque os pedidos são processados pelo PHP em vez de serem servidos diretamente pelo servidor web."
diff --git a/languages/exelearning-ro_RO.mo b/languages/exelearning-ro_RO.mo
index 3f54144..bb01541 100644
Binary files a/languages/exelearning-ro_RO.mo and b/languages/exelearning-ro_RO.mo differ
diff --git a/languages/exelearning-ro_RO.po b/languages/exelearning-ro_RO.po
index d1be9ca..e5bfbe8 100644
--- a/languages/exelearning-ro_RO.po
+++ b/languages/exelearning-ro_RO.po
@@ -14,7 +14,7 @@ msgstr ""
"X-Domain: exelearning\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2);\n"
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
@@ -24,22 +24,22 @@ msgstr "Setări"
msgid "Date"
msgstr "Data"
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr "Șterge"
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr "Titlu"
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr "eXeLearning"
@@ -58,8 +58,8 @@ msgstr "Plugin pentru gestionarea fișierelor .elp eXeLearning în WordPress. Î
msgid "INTEF"
msgstr "INTEF"
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr "Setări eXeLearning"
@@ -71,7 +71,7 @@ msgstr "Stare"
msgid "Edit"
msgstr "Editează"
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr "Eroare: conținutul eXeLearning nu a fost găsit"
@@ -92,19 +92,19 @@ msgid "Open in new tab"
msgstr "Deschide într-o filă nouă"
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr "Licență:"
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr "Limbă:"
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr "Tip de resursă:"
@@ -120,6 +120,7 @@ msgstr "Folosește acest fișier"
msgid "Invalid nonce."
msgstr "Nonce invalid."
+#: admin/class-admin-settings.php:247
#: admin/class-admin-styles.php:164
#: admin/class-admin-upload.php:41
msgid "Insufficient permissions."
@@ -158,28 +159,28 @@ msgstr "Se încarcă proiectul..."
msgid "Error"
msgstr "Eroare"
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr "Identificator de conținut invalid."
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr "Cale de fișier invalidă."
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr "Fișier negăsit."
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr "Acces refuzat."
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr "Acest conținut eXeLearning este un fișier sursă și nu poate fi previzualizat direct."
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr "Descarcă fișierul"
@@ -215,7 +216,7 @@ msgstr "Nu aveți permisiunea de a edita acest fișier."
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -325,7 +326,7 @@ msgstr "Vizualizare pe ecran complet"
msgid "eXeLearning Info"
msgstr "Informații eXeLearning"
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr "Versiune:"
@@ -406,75 +407,75 @@ msgstr "Vă rugăm așteptați în timp ce fișierul este salvat."
msgid "You have unsaved changes. Are you sure you want to close?"
msgstr "Aveți modificări nesalvate. Sunteți sigur că doriți să închideți?"
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr "Editor integrat"
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr "Editorul integrat este necesar pentru editarea fișierelor eXeLearning."
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr "Vă rugăm să îl instalați folosind butonul de mai jos."
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr "Stare:"
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr "Instalat"
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr "Instalat la:"
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr "Actualizare la ultima versiune"
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr "Neinstalat"
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr "Editorul integrat eXeLearning nu este instalat. Puteți descărca și instala automat ultima versiune de pe GitHub."
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr "Descarcă și instalează editorul"
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr "Dezvoltatorii pot compila editorul din codul sursă folosind %s."
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr "Reîncercați"
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr "Se instalează..."
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr "Se descarcă și instalează editorul. Acest lucru poate dura un minut..."
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr "Deschide editorul"
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr "Instalarea a eșuat."
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr "Eroare de rețea. Vă rugăm să verificați conexiunea și să reîncercați."
@@ -618,191 +619,193 @@ msgstr "Acest fișier nu a putut fi procesat ca eXeLearning."
msgid "https://exelearning.net/"
msgstr "https://exelearning.net/"
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr "Ajutor"
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr "Încorporează oriunde un pachet .elpx încărcat cu shortcode-ul [exelearning], referențiind fișierul prin ID-ul de atașament din Biblioteca media."
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr "Exemple de shortcode"
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr "Atribute"
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr "Atribut"
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr "Implicit"
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr "Descriere"
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr "Obligatoriu. ID-ul de atașament al pachetului .elpx din Biblioteca media."
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr "Înălțimea previzualizării, în pixeli."
-#: admin/class-admin-settings.php:118
+#: admin/class-admin-settings.php:125
msgid "When enabled, the content loads with teacher mode active."
msgstr "Când este activat, conținutul se încarcă cu modul profesor activ."
-#: admin/class-admin-settings.php:123
+#: admin/class-admin-settings.php:130
msgid "Whether the teacher-mode toggle button is shown."
msgstr "Dacă este afișat butonul de comutare a modului profesor."
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr "Când este activat, afișează un buton de descărcare în mai multe formate."
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr "toate"
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr "Formate separate prin virgulă de oferit: elpx, html5, scorm12, ims, epub3."
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr "Afișează captura de ecran a pachetului: no, poster (clic pentru încărcare) sau only (doar imagine). Necesită eXeLearning 4.0.1 sau mai nou."
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr "Hook-uri pentru dezvoltatori"
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr "Rezultatul shortcode-ului poate fi personalizat cu filtrele exelearning_shortcode_atts, exelearning_preview_url și exelearning_shortcode_output, printre alte acțiuni și filtre."
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr "Referință completă a shortcode-ului"
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr "Referință pentru hook-urile dezvoltatorilor"
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr "Stiluri"
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr "Încarcă pachete de stiluri eXeLearning și controlează ce stiluri expune editorul încorporat."
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr "Politică de import"
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr "Blochează stilurile importate de utilizatori"
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr "Când este activat, editorul încorporat ascunde fila „Stiluri utilizator” și refuză în tăcere să instaleze un stil inclus într-un proiect .elpx importat. Utilizatorii pot alege doar din lista aprobată de administrator de mai jos. Aceasta reproduce comportamentul eXeLearning ONLINE_THEMES_INSTALL=false."
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr "Încarcă un stil nou"
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr "Încarcă stilul"
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr "Dimensiunea maximă a fișierului: %s. Sunt acceptate doar pachete .zip care conțin un config.xml valid."
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr "Stiluri încărcate"
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr "Încă nu există stiluri încărcate."
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr "Id"
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr "Versiune"
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr "Activat"
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr "Acțiuni"
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr "Stiluri integrate"
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr "Stilurile integrate nu sunt disponibile deoarece editorul încorporat nu este instalat."
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr "Stilurile integrate dezactivate sunt ascunse în editor. Stilurile încărcate pot fi dezactivate sau șterse oricând. Proiectele existente care referențiază un stil lipsă folosesc stilul implicit al editorului."
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr "Se încarcă…"
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr "Stil instalat."
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr "Încărcarea a eșuat."
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
msgid "Network error."
msgstr "Eroare de rețea."
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
msgid "Update failed."
msgstr "Actualizarea a eșuat."
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr "Ștergeți acest stil? Această acțiune nu poate fi anulată."
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr "Stil șters."
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr "Ștergerea a eșuat."
@@ -816,6 +819,7 @@ msgstr "Fișierul încărcat nu este accesibil."
msgid "Missing style id."
msgstr "Lipsește ID-ul stilului."
+#: admin/class-admin-settings.php:251
#: admin/class-admin-styles.php:168
msgid "Invalid or missing security token."
msgstr "Token de securitate invalid sau lipsă."
@@ -1012,3 +1016,15 @@ msgstr "Afișează butonul de descărcare"
#: assets/js/elp-upload.js:435
msgid "Available formats"
msgstr "Formate disponibile"
+
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr "Livrarea conținutului"
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr "Servește resursele pachetului prin proxy-ul WordPress"
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr "Folosiți această opțiune numai dacă serverul dvs. web returnează tipuri MIME incorecte pentru resursele pachetului, de exemplu fișiere JavaScript servite ca text/plain. Când este activată, fișierele CSS, JavaScript, fonturile, imaginile și alte fișiere ale pachetului sunt servite prin WordPress pentru ca pluginul să poată trimite anteturi Content-Type explicite. Acest lucru poate reduce performanța deoarece cererile sunt gestionate de PHP în loc să fie servite direct de serverul web."
diff --git a/languages/exelearning.pot b/languages/exelearning.pot
index 9bc54fa..929c2e6 100644
--- a/languages/exelearning.pot
+++ b/languages/exelearning.pot
@@ -15,9 +15,9 @@ msgstr ""
#. Plugin Name of the plugin
#: exelearning.php
-#: admin/class-admin-settings.php:51
+#: admin/class-admin-settings.php:57
#: includes/class-mime-types.php:73
-#: includes/integrations/class-media-library.php:382
+#: includes/integrations/class-media-library.php:381
msgid "eXeLearning"
msgstr ""
@@ -41,290 +41,315 @@ msgstr ""
msgid "https://exelearning.net/"
msgstr ""
-#: admin/class-admin-settings.php:39
+#: admin/class-admin-settings.php:45
#: public/views/elp-list.php:63
#: assets/js/elp-upload.js:401
msgid "Settings"
msgstr ""
-#: admin/class-admin-settings.php:50
-#: admin/class-admin-settings.php:64
+#: admin/class-admin-settings.php:56
+#: admin/class-admin-settings.php:70
msgid "eXeLearning Settings"
msgstr ""
-#: admin/class-admin-settings.php:86
+#: admin/class-admin-settings.php:93
msgid "Help"
msgstr ""
-#: admin/class-admin-settings.php:88
+#: admin/class-admin-settings.php:95
msgid "Embed an uploaded .elpx package anywhere with the [exelearning] shortcode, referencing the file by its Media Library attachment ID."
msgstr ""
-#: admin/class-admin-settings.php:91
+#: admin/class-admin-settings.php:98
msgid "Shortcode examples"
msgstr ""
-#: admin/class-admin-settings.php:95
+#: admin/class-admin-settings.php:102
msgid "Attributes"
msgstr ""
-#: admin/class-admin-settings.php:99
+#: admin/class-admin-settings.php:106
msgid "Attribute"
msgstr ""
-#: admin/class-admin-settings.php:100
+#: admin/class-admin-settings.php:107
msgid "Default"
msgstr ""
-#: admin/class-admin-settings.php:101
+#: admin/class-admin-settings.php:108
msgid "Description"
msgstr ""
-#: admin/class-admin-settings.php:108
+#: admin/class-admin-settings.php:115
msgid "Required. Media Library attachment ID of the .elpx package."
msgstr ""
-#: admin/class-admin-settings.php:113
+#: admin/class-admin-settings.php:120
msgid "Height of the preview, in pixels."
msgstr ""
-#: admin/class-admin-settings.php:118
+#: admin/class-admin-settings.php:125
msgid "When enabled, the content loads with teacher mode active."
msgstr ""
-#: admin/class-admin-settings.php:123
+#: admin/class-admin-settings.php:130
msgid "Whether the teacher-mode toggle button is shown."
msgstr ""
-#: admin/class-admin-settings.php:128
+#: admin/class-admin-settings.php:135
msgid "When enabled, shows a multi-format download button."
msgstr ""
-#: admin/class-admin-settings.php:132
+#: admin/class-admin-settings.php:139
msgid "all"
msgstr ""
-#: admin/class-admin-settings.php:133
+#: admin/class-admin-settings.php:140
msgid "Comma-separated formats to offer: elpx, html5, scorm12, ims, epub3."
msgstr ""
-#: admin/class-admin-settings.php:138
+#: admin/class-admin-settings.php:145
msgid "Show the package screenshot: no, poster (click to load), or only (image only). Requires eXeLearning 4.0.1 or newer."
msgstr ""
-#: admin/class-admin-settings.php:143
+#: admin/class-admin-settings.php:150
msgid "Developer hooks"
msgstr ""
-#: admin/class-admin-settings.php:145
+#: admin/class-admin-settings.php:152
msgid "The shortcode output can be customized with the exelearning_shortcode_atts, exelearning_preview_url, and exelearning_shortcode_output filters, among other actions and filters."
msgstr ""
-#: admin/class-admin-settings.php:150
+#: admin/class-admin-settings.php:157
msgid "Full shortcode reference"
msgstr ""
-#: admin/class-admin-settings.php:154
+#: admin/class-admin-settings.php:161
msgid "Developer hooks reference"
msgstr ""
-#: admin/class-admin-settings.php:180
+#: admin/class-admin-settings.php:183
+msgid "Content delivery"
+msgstr ""
+
+#: admin/class-admin-settings.php:187
+msgid "Serve package assets through the WordPress proxy"
+msgstr ""
+
+#: admin/class-admin-settings.php:191
+msgid "Use this option only if your web server returns incorrect MIME types for package assets, for example JavaScript files served as text/plain. When enabled, CSS, JavaScript, fonts, images and other package files are served through WordPress so the plugin can send explicit Content-Type headers. This can reduce performance because requests are handled by PHP instead of being served directly by the web server."
+msgstr ""
+
+#: admin/class-admin-settings.php:225
+#: admin/class-admin-settings.php:469
+#: admin/class-admin-settings.php:490
+msgid "Update failed."
+msgstr ""
+
+#: admin/class-admin-settings.php:231
+#: admin/class-admin-settings.php:451
+#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:494
+#: admin/class-admin-settings.php:519
+msgid "Network error."
+msgstr ""
+
+#: admin/class-admin-settings.php:247
+#: admin/class-admin-styles.php:164
+#: admin/class-admin-upload.php:41
+msgid "Insufficient permissions."
+msgstr ""
+
+#: admin/class-admin-settings.php:251
+#: admin/class-admin-styles.php:168
+msgid "Invalid or missing security token."
+msgstr ""
+
+#: admin/class-admin-settings.php:281
msgid "Styles"
msgstr ""
-#: admin/class-admin-settings.php:182
+#: admin/class-admin-settings.php:283
msgid "Upload eXeLearning style packages and control which styles the embedded editor exposes."
msgstr ""
-#: admin/class-admin-settings.php:185
+#: admin/class-admin-settings.php:286
msgid "Import policy"
msgstr ""
-#: admin/class-admin-settings.php:189
+#: admin/class-admin-settings.php:290
msgid "Block user-imported styles"
msgstr ""
-#: admin/class-admin-settings.php:193
+#: admin/class-admin-settings.php:294
msgid "When enabled, the embedded editor hides the \"User styles\" tab and silently refuses to install a style bundled inside an imported .elpx project. Users may only choose from the admin-approved list below. This mirrors the eXeLearning ONLINE_THEMES_INSTALL=false behavior."
msgstr ""
-#: admin/class-admin-settings.php:196
+#: admin/class-admin-settings.php:297
msgid "Upload a new style"
msgstr ""
-#: admin/class-admin-settings.php:201
+#: admin/class-admin-settings.php:302
msgid "Upload style"
msgstr ""
#. translators: %s: human-readable max file size.
-#: admin/class-admin-settings.php:208
+#: admin/class-admin-settings.php:309
#, php-format
msgid "Maximum file size: %s. Only .zip packages containing a valid config.xml are accepted."
msgstr ""
-#: admin/class-admin-settings.php:217
+#: admin/class-admin-settings.php:318
msgid "Uploaded styles"
msgstr ""
-#: admin/class-admin-settings.php:219
+#: admin/class-admin-settings.php:320
msgid "No uploaded styles yet."
msgstr ""
-#: admin/class-admin-settings.php:224
-#: admin/class-admin-settings.php:267
+#: admin/class-admin-settings.php:325
+#: admin/class-admin-settings.php:368
#: includes/class-elp-list-table.php:49
msgid "Title"
msgstr ""
-#: admin/class-admin-settings.php:225
-#: admin/class-admin-settings.php:268
+#: admin/class-admin-settings.php:326
+#: admin/class-admin-settings.php:369
msgid "Id"
msgstr ""
-#: admin/class-admin-settings.php:226
-#: admin/class-admin-settings.php:269
+#: admin/class-admin-settings.php:327
+#: admin/class-admin-settings.php:370
msgid "Version"
msgstr ""
-#: admin/class-admin-settings.php:227
-#: admin/class-admin-settings.php:457
+#: admin/class-admin-settings.php:328
+#: admin/class-admin-settings.php:558
msgid "Installed"
msgstr ""
-#: admin/class-admin-settings.php:228
-#: admin/class-admin-settings.php:244
-#: admin/class-admin-settings.php:270
-#: admin/class-admin-settings.php:285
+#: admin/class-admin-settings.php:329
+#: admin/class-admin-settings.php:345
+#: admin/class-admin-settings.php:371
+#: admin/class-admin-settings.php:386
msgid "Enabled"
msgstr ""
-#: admin/class-admin-settings.php:229
+#: admin/class-admin-settings.php:330
msgid "Actions"
msgstr ""
-#: admin/class-admin-settings.php:249
+#: admin/class-admin-settings.php:350
#: includes/class-elp-list-table.php:109
msgid "Delete"
msgstr ""
-#: admin/class-admin-settings.php:258
+#: admin/class-admin-settings.php:359
msgid "Built-in styles"
msgstr ""
-#: admin/class-admin-settings.php:261
+#: admin/class-admin-settings.php:362
msgid "Built-in styles are not available because the embedded editor is not installed."
msgstr ""
-#: admin/class-admin-settings.php:295
+#: admin/class-admin-settings.php:396
msgid "Disabled built-in styles are hidden from the editor. Uploaded styles can be disabled or deleted at any time. Existing projects that reference a missing style fall back to the editor default."
msgstr ""
-#: admin/class-admin-settings.php:341
+#: admin/class-admin-settings.php:442
msgid "Uploading…"
msgstr ""
-#: admin/class-admin-settings.php:344
+#: admin/class-admin-settings.php:445
#: admin/class-admin-styles.php:71
msgid "Style installed."
msgstr ""
-#: admin/class-admin-settings.php:347
+#: admin/class-admin-settings.php:448
msgid "Upload failed."
msgstr ""
-#: admin/class-admin-settings.php:350
-#: admin/class-admin-settings.php:372
-#: admin/class-admin-settings.php:393
-#: admin/class-admin-settings.php:418
-msgid "Network error."
-msgstr ""
-
-#: admin/class-admin-settings.php:368
-#: admin/class-admin-settings.php:389
-msgid "Update failed."
-msgstr ""
-
-#: admin/class-admin-settings.php:404
+#: admin/class-admin-settings.php:505
msgid "Delete this style? This cannot be undone."
msgstr ""
-#: admin/class-admin-settings.php:413
+#: admin/class-admin-settings.php:514
msgid "Style deleted."
msgstr ""
-#: admin/class-admin-settings.php:415
+#: admin/class-admin-settings.php:516
msgid "Delete failed."
msgstr ""
-#: admin/class-admin-settings.php:442
+#: admin/class-admin-settings.php:543
msgid "Embedded Editor"
msgstr ""
-#: admin/class-admin-settings.php:447
+#: admin/class-admin-settings.php:548
msgid "The embedded editor is required to edit eXeLearning files."
msgstr ""
-#: admin/class-admin-settings.php:448
+#: admin/class-admin-settings.php:549
msgid "Please install it using the button below."
msgstr ""
-#: admin/class-admin-settings.php:456
-#: admin/class-admin-settings.php:479
+#: admin/class-admin-settings.php:557
+#: admin/class-admin-settings.php:580
msgid "Status:"
msgstr ""
-#: admin/class-admin-settings.php:461
+#: admin/class-admin-settings.php:562
#: includes/integrations/class-media-library.php:186
msgid "Version:"
msgstr ""
-#: admin/class-admin-settings.php:465
+#: admin/class-admin-settings.php:566
msgid "Installed on:"
msgstr ""
-#: admin/class-admin-settings.php:473
+#: admin/class-admin-settings.php:574
msgid "Update to Latest Version"
msgstr ""
-#: admin/class-admin-settings.php:480
+#: admin/class-admin-settings.php:581
msgid "Not installed"
msgstr ""
-#: admin/class-admin-settings.php:482
+#: admin/class-admin-settings.php:583
msgid "The embedded eXeLearning editor is not installed. You can download and install the latest version automatically from GitHub."
msgstr ""
-#: admin/class-admin-settings.php:487
+#: admin/class-admin-settings.php:588
msgid "Download & Install Editor"
msgstr ""
#. translators: %s: make build-editor command
-#: admin/class-admin-settings.php:502
+#: admin/class-admin-settings.php:603
#, php-format
msgid "Developers can also build the editor from source using %s."
msgstr ""
-#: admin/class-admin-settings.php:525
+#: admin/class-admin-settings.php:626
msgid "Try Again"
msgstr ""
-#: admin/class-admin-settings.php:535
+#: admin/class-admin-settings.php:636
msgid "Installing..."
msgstr ""
-#: admin/class-admin-settings.php:538
+#: admin/class-admin-settings.php:639
msgid "Downloading and installing the editor. This may take a minute..."
msgstr ""
-#: admin/class-admin-settings.php:555
+#: admin/class-admin-settings.php:656
msgid "Open Editor"
msgstr ""
-#: admin/class-admin-settings.php:559
+#: admin/class-admin-settings.php:660
msgid "Installation failed."
msgstr ""
-#: admin/class-admin-settings.php:563
+#: admin/class-admin-settings.php:664
msgid "Network error. Please check your connection and try again."
msgstr ""
@@ -350,15 +375,6 @@ msgstr ""
msgid "Missing style id."
msgstr ""
-#: admin/class-admin-styles.php:164
-#: admin/class-admin-upload.php:41
-msgid "Insufficient permissions."
-msgstr ""
-
-#: admin/class-admin-styles.php:168
-msgid "Invalid or missing security token."
-msgstr ""
-
#: admin/class-admin-upload.php:36
msgid "Invalid nonce."
msgstr ""
@@ -396,20 +412,20 @@ msgstr ""
msgid "Error"
msgstr ""
-#: includes/class-content-proxy.php:112
+#: includes/class-content-proxy.php:124
msgid "Invalid content identifier."
msgstr ""
-#: includes/class-content-proxy.php:137
+#: includes/class-content-proxy.php:149
msgid "Invalid file path."
msgstr ""
-#: includes/class-content-proxy.php:149
+#: includes/class-content-proxy.php:161
msgid "File not found."
msgstr ""
-#: includes/class-content-proxy.php:164
-#: includes/class-content-proxy.php:172
+#: includes/class-content-proxy.php:176
+#: includes/class-content-proxy.php:184
msgid "Access denied."
msgstr ""
@@ -495,16 +511,16 @@ msgstr ""
msgid "Failed to create directory for extracted files."
msgstr ""
-#: includes/class-elp-upload-block.php:154
+#: includes/class-elp-upload-block.php:159
msgid "Error: eXeLearning content not found"
msgstr ""
-#: includes/class-elp-upload-block.php:234
+#: includes/class-elp-upload-block.php:239
#: public/class-shortcodes.php:190
msgid "Download file"
msgstr ""
-#: includes/class-elp-upload-block.php:247
+#: includes/class-elp-upload-block.php:252
msgid "This eXeLearning content is a source file and cannot be previewed directly."
msgstr ""
@@ -539,7 +555,7 @@ msgstr ""
#: includes/class-exelearning-editor.php:175
#: includes/class-exelearning-editor.php:208
#: includes/integrations/class-media-library.php:195
-#: includes/integrations/class-media-library.php:350
+#: includes/integrations/class-media-library.php:349
#: assets/js/elp-upload.js:423
#: assets/js/elp-upload.js:463
msgid "Edit in eXeLearning"
@@ -846,14 +862,14 @@ msgid "exported"
msgstr ""
#: includes/integrations/class-media-library.php:189
-#: includes/integrations/class-media-library.php:369
-#: includes/integrations/class-media-library.php:408
+#: includes/integrations/class-media-library.php:368
+#: includes/integrations/class-media-library.php:407
msgid "License:"
msgstr ""
#: includes/integrations/class-media-library.php:190
-#: includes/integrations/class-media-library.php:370
-#: includes/integrations/class-media-library.php:412
+#: includes/integrations/class-media-library.php:369
+#: includes/integrations/class-media-library.php:411
msgid "Language:"
msgstr ""
@@ -904,8 +920,8 @@ msgstr ""
msgid "Open in new tab"
msgstr ""
-#: includes/integrations/class-media-library.php:371
-#: includes/integrations/class-media-library.php:416
+#: includes/integrations/class-media-library.php:370
+#: includes/integrations/class-media-library.php:415
msgid "Resource Type:"
msgstr ""
diff --git a/tests/unit/AdminSettingsTest.php b/tests/unit/AdminSettingsTest.php
index 6b2dd57..54f6c73 100644
--- a/tests/unit/AdminSettingsTest.php
+++ b/tests/unit/AdminSettingsTest.php
@@ -201,4 +201,160 @@ public function test_display_settings_page_help_links_to_docs() {
$this->assertStringContainsString( 'docs/SHORTCODES.md', $output );
$this->assertStringContainsString( 'docs/HOOKS.md', $output );
}
+
+ /**
+ * Clean up AJAX state and the content-delivery option between tests.
+ */
+ public function tear_down() {
+ $this->disable_ajax_die_handler();
+ delete_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS );
+ $_POST = array();
+ $_REQUEST = array();
+ parent::tear_down();
+ }
+
+ /**
+ * The settings page renders the content-delivery (asset-proxy) section.
+ */
+ public function test_display_settings_page_outputs_content_delivery_section() {
+ wp_set_current_user( $this->factory->user->create( array( 'role' => 'administrator' ) ) );
+
+ ob_start();
+ $this->settings->display_settings_page();
+ $output = ob_get_clean();
+
+ $this->assertStringContainsString( 'exelearning-content-delivery-card', $output );
+ $this->assertStringContainsString( 'exelearning-proxy-assets', $output );
+ }
+
+ /**
+ * The constructor registers the content-delivery AJAX toggle.
+ */
+ public function test_constructor_registers_proxy_assets_ajax_action() {
+ $this->assertNotFalse(
+ has_action( 'wp_ajax_exelearning_toggle_proxy_assets', array( $this->settings, 'ajax_toggle_proxy_assets' ) )
+ );
+ }
+
+ /**
+ * Toggling the asset-proxy option on then off persists through the option.
+ */
+ public function test_toggle_proxy_assets_round_trip() {
+ $this->setup_admin();
+
+ $_POST['enabled'] = '1';
+ $response = $this->expect_json_response(
+ function () {
+ $this->settings->ajax_toggle_proxy_assets();
+ }
+ );
+ $this->assertTrue( $response['success'] );
+ $this->assertTrue( (bool) get_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS ) );
+ $this->assertTrue( ExeLearning_Content_Proxy::is_asset_proxy_enabled() );
+
+ $_POST['enabled'] = '';
+ $this->expect_json_response(
+ function () {
+ $this->settings->ajax_toggle_proxy_assets();
+ }
+ );
+ $this->assertFalse( (bool) get_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS ) );
+ $this->assertFalse( ExeLearning_Content_Proxy::is_asset_proxy_enabled() );
+ }
+
+ /**
+ * The toggle rejects users without manage_options.
+ */
+ public function test_toggle_proxy_assets_rejects_non_admin() {
+ wp_set_current_user( $this->factory->user->create( array( 'role' => 'subscriber' ) ) );
+ $_REQUEST['_ajax_nonce'] = wp_create_nonce( ExeLearning_Admin_Settings::PROXY_ASSETS_NONCE );
+ $_POST['enabled'] = '1';
+ $this->enable_ajax_die_handler();
+
+ $response = $this->expect_json_response(
+ function () {
+ $this->settings->ajax_toggle_proxy_assets();
+ }
+ );
+ $this->assertFalse( $response['success'] );
+ $this->assertFalse( get_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS, false ) );
+ }
+
+ /**
+ * The toggle rejects requests with an invalid nonce.
+ */
+ public function test_toggle_proxy_assets_rejects_bad_nonce() {
+ wp_set_current_user( $this->factory->user->create( array( 'role' => 'administrator' ) ) );
+ $_REQUEST['_ajax_nonce'] = 'not-a-valid-nonce';
+ $_POST['enabled'] = '1';
+ $this->enable_ajax_die_handler();
+
+ $response = $this->expect_json_response(
+ function () {
+ $this->settings->ajax_toggle_proxy_assets();
+ }
+ );
+ $this->assertFalse( $response['success'] );
+ $this->assertFalse( get_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS, false ) );
+ }
+
+ // ------------------------------------------------------------------
+ // Helpers (AJAX die-handler harness, mirrors AdminStylesTest).
+ // ------------------------------------------------------------------
+
+ /**
+ * Create an admin and seed a valid nonce so the toggle guard passes.
+ */
+ private function setup_admin() {
+ wp_set_current_user( $this->factory->user->create( array( 'role' => 'administrator' ) ) );
+ $_REQUEST['_ajax_nonce'] = wp_create_nonce( ExeLearning_Admin_Settings::PROXY_ASSETS_NONCE );
+ $this->enable_ajax_die_handler();
+ }
+
+ /**
+ * Run a callable expecting wp_send_json_* to die, returning the captured
+ * JSON payload.
+ *
+ * @param callable $fn Callable that invokes an AJAX handler.
+ * @return array
+ */
+ private function expect_json_response( callable $fn ) {
+ ob_start();
+ try {
+ $fn();
+ $this->fail( 'Expected WPDieException but none was thrown.' );
+ } catch ( WPDieException $e ) {
+ // Normal exit path for AJAX endpoints.
+ }
+ $decoded = json_decode( ob_get_clean(), true );
+ $this->assertIsArray( $decoded, 'AJAX handler did not emit JSON' );
+ return $decoded;
+ }
+
+ private function enable_ajax_die_handler() {
+ add_filter( 'wp_doing_ajax', '__return_true' );
+ add_filter(
+ 'wp_die_ajax_handler',
+ function () {
+ return array( $this, 'wp_die_handler' );
+ },
+ 1
+ );
+ }
+
+ private function disable_ajax_die_handler() {
+ remove_filter( 'wp_doing_ajax', '__return_true' );
+ remove_all_filters( 'wp_die_ajax_handler' );
+ }
+
+ /**
+ * Die handler that raises WPDieException instead of exiting the process.
+ *
+ * @param string|WP_Error $message Die message.
+ * @param string $title Page title.
+ * @param string|array $args wp_die args.
+ */
+ public function wp_die_handler( $message, $title = '', $args = array() ) {
+ throw new WPDieException( is_scalar( $message ) ? (string) $message : '' );
+ }
}
diff --git a/tests/unit/ContentProxyTest.php b/tests/unit/ContentProxyTest.php
index 04d11e3..d714de4 100644
--- a/tests/unit/ContentProxyTest.php
+++ b/tests/unit/ContentProxyTest.php
@@ -1040,4 +1040,143 @@ public function test_content_origin_rejects_non_bare_origin() {
remove_filter( 'exelearning_content_origin', $cb );
}
+
+ /**
+ * The MIME map serves ES modules (.mjs) as JavaScript so module scripts
+ * execute under strict MIME checking (issue #53).
+ */
+ public function test_mime_types_includes_mjs() {
+ $property = new ReflectionProperty( ExeLearning_Content_Proxy::class, 'mime_types' );
+ $property->setAccessible( true );
+ $mime_types = $property->getValue( $this->proxy );
+
+ $this->assertEquals( 'application/javascript', $mime_types['mjs'] );
+ }
+
+ /**
+ * The asset-proxy mode is disabled by default, preserving direct uploads URLs.
+ */
+ public function test_is_asset_proxy_enabled_defaults_false() {
+ delete_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS );
+ $this->assertFalse( ExeLearning_Content_Proxy::is_asset_proxy_enabled() );
+ }
+
+ /**
+ * The asset-proxy mode reflects the stored option.
+ */
+ public function test_is_asset_proxy_enabled_reads_option() {
+ update_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS, 1 );
+ $this->assertTrue( ExeLearning_Content_Proxy::is_asset_proxy_enabled() );
+
+ update_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS, 0 );
+ $this->assertFalse( ExeLearning_Content_Proxy::is_asset_proxy_enabled() );
+ }
+
+ /**
+ * The `exelearning_proxy_assets` filter overrides the stored option in
+ * both directions.
+ */
+ public function test_is_asset_proxy_enabled_filter_overrides() {
+ // Force on while the option is off.
+ delete_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS );
+ $on = static function () {
+ return true;
+ };
+ add_filter( 'exelearning_proxy_assets', $on );
+ $this->assertTrue( ExeLearning_Content_Proxy::is_asset_proxy_enabled() );
+ remove_filter( 'exelearning_proxy_assets', $on );
+
+ // Force off while the option is on.
+ update_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS, 1 );
+ $off = static function () {
+ return false;
+ };
+ add_filter( 'exelearning_proxy_assets', $off );
+ $this->assertFalse( ExeLearning_Content_Proxy::is_asset_proxy_enabled() );
+ remove_filter( 'exelearning_proxy_assets', $off );
+ }
+
+ /**
+ * With the asset-proxy mode disabled (default), only script-capable
+ * documents are proxied; ordinary assets are served directly.
+ */
+ public function test_is_proxied_path_assets_direct_when_disabled() {
+ delete_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS );
+ $method = new ReflectionMethod( ExeLearning_Content_Proxy::class, 'is_proxied_path' );
+ $method->setAccessible( true );
+
+ foreach ( array( 'a.html', 'a.htm', 'a.svg', 'a.xml' ) as $p ) {
+ $this->assertTrue( $method->invoke( null, $p ), $p );
+ }
+ foreach ( array( 'a.css', 'a.js', 'a.mjs', 'a.png', 'a.json', 'a.woff2' ) as $p ) {
+ $this->assertFalse( $method->invoke( null, $p ), $p );
+ }
+ }
+
+ /**
+ * With the asset-proxy mode enabled, every known asset is proxied while
+ * script-capable documents remain proxied and extensionless paths stay
+ * direct.
+ */
+ public function test_is_proxied_path_assets_proxied_when_enabled() {
+ update_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS, 1 );
+ $method = new ReflectionMethod( ExeLearning_Content_Proxy::class, 'is_proxied_path' );
+ $method->setAccessible( true );
+
+ foreach ( array( 'a.css', 'a.js', 'a.mjs', 'a.png', 'a.json', 'a.woff2', 'a.html', 'a.svg', 'x.css?v=1' ) as $p ) {
+ $this->assertTrue( $method->invoke( null, $p ), $p );
+ }
+ // Extensionless paths (e.g. pretty-permalink navigation) stay direct.
+ $this->assertFalse( $method->invoke( null, 'page' ), 'page' );
+ }
+
+ /**
+ * When disabled, asset URLs in HTML keep pointing at the uploads directory.
+ */
+ public function test_rewrite_relative_urls_assets_use_uploads_when_disabled() {
+ delete_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS );
+ $method = new ReflectionMethod( ExeLearning_Content_Proxy::class, 'rewrite_relative_urls' );
+ $method->setAccessible( true );
+
+ $hash = str_repeat( 'a', 40 );
+ $html = '';
+ $result = $method->invoke( $this->proxy, $html, $hash, '' );
+
+ $this->assertStringContainsString( 'uploads/exelearning/', $result );
+ $this->assertStringNotContainsString( 'exelearning/v1/content/', $result );
+ }
+
+ /**
+ * When enabled, asset URLs in HTML are rewritten to the proxy endpoint.
+ */
+ public function test_rewrite_relative_urls_assets_use_proxy_when_enabled() {
+ update_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS, 1 );
+ $method = new ReflectionMethod( ExeLearning_Content_Proxy::class, 'rewrite_relative_urls' );
+ $method->setAccessible( true );
+
+ $hash = str_repeat( 'a', 40 );
+ $html = '';
+ $result = $method->invoke( $this->proxy, $html, $hash, '' );
+
+ $this->assertStringContainsString( 'exelearning/v1/content/', $result );
+ $this->assertStringContainsString( 'js/app.js', $result );
+ $this->assertStringContainsString( 'css/main.css', $result );
+ $this->assertStringNotContainsString( 'uploads/exelearning/', $result );
+ }
+
+ /**
+ * External and special URLs are never proxied, even with the mode enabled.
+ */
+ public function test_rewrite_relative_urls_external_not_proxied_when_enabled() {
+ update_option( ExeLearning_Content_Proxy::OPTION_PROXY_ASSETS, 1 );
+ $method = new ReflectionMethod( ExeLearning_Content_Proxy::class, 'rewrite_relative_urls' );
+ $method->setAccessible( true );
+
+ $hash = str_repeat( 'a', 40 );
+ $html = ''
+ . '
'
+ . 'x';
+
+ $this->assertEquals( $html, $method->invoke( $this->proxy, $html, $hash, '' ) );
+ }
}