diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9c9fd75..a6976f9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+### 2.0.4 - 2025-12-16
+
+- Fixed problems with YouTube not playing videos due to YouTube's referrerer policy.
+- Ensure and future-proof compatibility with phpBB4.
+- Added language packs:
+ - Romanian
+
### 2.0.3 - 2025-09-20
- Added an amendment to the forum privacy policy regarding how embedded content may affect user privacy.
diff --git a/composer.json b/composer.json
index 916fed9..19faa44 100644
--- a/composer.json
+++ b/composer.json
@@ -3,7 +3,7 @@
"type": "phpbb-extension",
"description": "An official phpBB extension that allows users to embed content from allowed sites using a [media] BBCode, or from simply posting a supported URL in plain text.",
"homepage": "https://www.phpbb.com/customise/db/extension/mediaembed/",
- "version": "2.0.3",
+ "version": "2.0.4",
"license": "GPL-2.0-only",
"authors": [
{
diff --git a/language/pl/acp.php b/language/pl/acp.php
index fdc2ee6..b83503f 100644
--- a/language/pl/acp.php
+++ b/language/pl/acp.php
@@ -26,19 +26,19 @@
'ACP_MEDIA_BBCODE_LEGEND' => 'BBCode',
'ACP_MEDIA_DISPLAY_BBCODE' => 'Wyświetl znacznik BBcode [media] na forum',
'ACP_MEDIA_DISPLAY_BBCODE_EXPLAIN' => 'Jeśli wybrano Nie, to znacznik [media] nie będzie wyświetlony, jednakże nadal można go używać na forum.',
- 'ACP_MEDIA_OPTIONS_LEGEND' => 'Options',
+ 'ACP_MEDIA_OPTIONS_LEGEND' => 'Opcje',
'ACP_MEDIA_ALLOW_SIG' => 'Znacznik [media] w podpisach',
'ACP_MEDIA_ALLOW_SIG_EXPLAIN' => 'Zezwól na używanie multimediów w sygnaturze.',
- 'ACP_MEDIA_CACHE_LEGEND' => 'Content caching',
+ 'ACP_MEDIA_CACHE_LEGEND' => 'Buforowanie zawartości',
'ACP_MEDIA_ENABLE_CACHE' => 'Pamięć podręczna osadzania multimediów',
'ACP_MEDIA_ENABLE_CACHE_EXPLAIN' => 'W niektórych przypadkach ładowanie multimediów może działać wolniej, np. podczas ponownego ładowania treści przy edycji posta. Włączenie pamięci podręcznej może poprawić wydajność osadzania multimediów.',
'ACP_MEDIA_PARSE_URLS' => 'Konwersja adresów URL',
'ACP_MEDIA_PARSE_URLS_EXPLAIN' => 'Jeśli wybrano Tak, to adresy URL zostaną przekonwertowane bez użycia znacznika BBCode [media] lub [url]. Ta opcja wpłynie tylko na nowo osadzone multimedia. Dotychczasowe adresy URL nie zostaną przetworzone.',
- 'ACP_MEDIA_WIDTH_LEGEND' => 'Content sizing',
- 'ACP_MEDIA_FULL_WIDTH' => 'Enable full width content',
- 'ACP_MEDIA_FULL_WIDTH_EXPLAIN' => 'Enable this to expand most Media Embed content to fill the full width of the post content area while maintaining its native aspect ratio.',
- 'ACP_MEDIA_MAX_WIDTH' => 'Custom max-width content',
- 'ACP_MEDIA_MAX_WIDTH_EXPLAIN' => 'Use this field to define custom max-width values for individual sites. This will override the default size and the full width option above. Enter each site on a new line, using the format siteId:width with either px or %. For example:
youtube:80%
funnyordie:480px
Tip: Hover your mouse over a site on the Manage sites page to reveal the site id name to use here.',
+ 'ACP_MEDIA_WIDTH_LEGEND' => 'Rozmiar zawartości',
+ 'ACP_MEDIA_FULL_WIDTH' => 'Tryb pełnoekranowy',
+ 'ACP_MEDIA_FULL_WIDTH_EXPLAIN' => 'Włącz tę opcję, aby rozszerzyć większość osadzonych multimediów do szerokości obszaru treści posta, zachowując jednocześnie jego natywne proporcje.',
+ 'ACP_MEDIA_MAX_WIDTH' => 'Niestandardowy tryb pełnoekranowy',
+ 'ACP_MEDIA_MAX_WIDTH_EXPLAIN' => 'Użyj tego pola, aby zdefiniować maksymalną szerokość multimediów dla poszczególnych witryn. Zastąpi to domyślną szerokość zdefiniowana w polu wyżej. Wprowadź każdą witrynę w nowym wierszu, używając formatu siteId:szerokość przy pomocy px lub %. Na przykład:
youtube:80%
funnyordie:480px
Wskazówka: Najedź kursorem myszy na witrynę na stronie ”Zarządzaj stronami”, aby wyświetlić nazwę identyfikatora witryny do użycia w tym miejscu.',
'ACP_MEDIA_PURGE_CACHE' => 'Wyczyść pamięć podręczną',
'ACP_MEDIA_PURGE_CACHE_EXPLAIN' => 'Pamięć podręczna osadzania multimediów jest codziennie, automatycznie czyszczona. Można ją usunąć teraz poprzez kliknięcie przycisku.',
'ACP_MEDIA_SITE_TITLE' => 'ID strony: %s',
diff --git a/language/ro/acp.php b/language/ro/acp.php
new file mode 100644
index 0000000..d4864a6
--- /dev/null
+++ b/language/ro/acp.php
@@ -0,0 +1,54 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ */
+
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+if (empty($lang) || !is_array($lang))
+{
+ $lang = [];
+}
+
+$lang = array_merge($lang, [
+ // Settings
+ 'ACP_MEDIA_SETTINGS' => 'Setări de încorporare media',
+ 'ACP_MEDIA_SETTINGS_EXPLAIN' => 'Aici puteți configura setările pentru Media Embed PlugIn.',
+ 'ACP_MEDIA_BBCODE_LEGEND' => 'BBCode',
+ 'ACP_MEDIA_DISPLAY_BBCODE' => 'Afișați [MEDIA] BBCode pe pagina de postare',
+ 'ACP_MEDIA_DISPLAY_BBCODE_EXPLAIN' => 'Dacă nu este permis, butonul BBCode nu va fi afișat, totuși utilizatorii pot folosi în continuare eticheta [media] în postările lor.',
+ 'ACP_MEDIA_OPTIONS_LEGEND' => 'Opțiuni',
+ 'ACP_MEDIA_ALLOW_SIG' => 'Permiteți în semnăturile utilizatorilor',
+ 'ACP_MEDIA_ALLOW_SIG_EXPLAIN' => 'Permiteți semnăturilor utilizatorilor să afișeze conținut media încorporat.',
+ 'ACP_MEDIA_CACHE_LEGEND' => 'Memorarea în cache a conținutului',
+ 'ACP_MEDIA_ENABLE_CACHE' => 'Activați cacheul Media Embed',
+ 'ACP_MEDIA_ENABLE_CACHE_EXPLAIN' => 'În unele cazuri, este posibil să observați o performanță mai lentă decât cea normală atunci când încărcați conținut media de pe alte site-uri, mai ales când încărcați același conținut de mai multe ori (de exemplu, când editați o postare). Activarea acestui lucru va stoca în cache informațiile pe care Media Embed le adună de pe site-uri la nivel local și ar trebui să îmbunătățească performanța.',
+ 'ACP_MEDIA_PARSE_URLS' => 'Convertiți adrese URL simple',
+ 'ACP_MEDIA_PARSE_URLS_EXPLAIN' => 'Activați această opțiune pentru a converti adresele URL simple (nu sunt incluse în etichete [media] sau [url]) în conținut media încorporat. Rețineți că modificarea acestei setări va afecta numai postările noi, deoarece postările existente au fost deja analizate.',
+ 'ACP_MEDIA_WIDTH_LEGEND' => 'Dimensiunea conținutului',
+ 'ACP_MEDIA_FULL_WIDTH' => 'Activați conținutul cu lățime completă',
+ 'ACP_MEDIA_FULL_WIDTH_EXPLAIN' => 'Activați această opțiune pentru a extinde majoritatea conținutului Media Embed pentru a umple întreaga lățime a zonei de conținut postare, păstrând în același timp raportul de aspect nativ.',
+ 'ACP_MEDIA_MAX_WIDTH' => 'Conținut personalizat cu lățime maximă',
+ 'ACP_MEDIA_MAX_WIDTH_EXPLAIN' => 'Utilizați acest câmp pentru a defini valori personalizate pentru lățimea maximă pentru site-uri individuale. Aceasta va suprascrie dimensiunea implicită și opțiunea de lățime completă de mai sus. Introduceți fiecare site pe o nouă linie, folosind formatul siteId:width fie cu px, fie cu %. De exemplu:
youtube:80%
funnyordie:480px
Sfat: treceți mouse-ul peste un site din pagina Gestionați site-urile pentru a dezvălui numele de cod al site-ului de utilizat aici.',
+ 'ACP_MEDIA_PURGE_CACHE' => 'Ștergeți memoria cache încorporată',
+ 'ACP_MEDIA_PURGE_CACHE_EXPLAIN' => 'Cacheul Media Embed este curățat automat o dată pe zi, totuși acest buton poate fi folosit pentru a-și curăța manual memoria cache acum.',
+ 'ACP_MEDIA_SITE_TITLE' => 'Id-ul site-ului: %s',
+ 'ACP_MEDIA_SITE_DISABLED' => 'Acest site intră în conflict cu un BBCode existent: [%s]',
+ 'ACP_MEDIA_ERROR_MSG' => 'Au fost întâlnite următoarele erori:
%s',
+ 'ACP_MEDIA_INVALID_SITE' => '%1$s:%2$s :: “%1$s” nu este un ID valid de site',
+ 'ACP_MEDIA_INVALID_WIDTH' => '%1$s:%2$s :: “%2$s” nu este o lățime validă în „px” sau “%%”',
+
+ // Manage sites
+ 'ACP_MEDIA_MANAGE' => 'Gestionați site-urile de încorporare media',
+ 'ACP_MEDIA_MANAGE_EXPLAIN' => 'Aici puteți gestiona site-urile din care doriți să permiteți pluginului Media Embed să afișeze conținut.',
+ 'ACP_MEDIA_SITES_ERROR' => 'Nu există site-uri media de afișat.',
+ 'ACP_MEDIA_SITES_MISSING' => 'Următoarele site-uri nu mai sunt acceptate sau nu mai funcționează. Vă rugăm să retrimiteți această pagină pentru a le elimina.',
+]);
diff --git a/language/ro/common.php b/language/ro/common.php
new file mode 100644
index 0000000..9be890b
--- /dev/null
+++ b/language/ro/common.php
@@ -0,0 +1,42 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ */
+
+/**
+ * DO NOT CHANGE
+ */
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+if (empty($lang) || !is_array($lang))
+{
+ $lang = [];
+}
+
+// DEVELOPERS PLEASE NOTE
+//
+// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
+//
+// Placeholders can now contain order information, e.g. instead of
+// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
+// translators to re-order the output of data while ensuring it remains correct
+//
+// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
+// equally where a string contains only two placeholders which are used to wrap text
+// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
+//
+// Some characters you may want to copy&paste:
+// ’ » “ ” …
+//
+
+$lang = array_merge($lang, [
+ 'BBCODE_MEDIA_HELP' => 'Media Embed: [media]http://media_url[/media]',
+]);
diff --git a/language/ro/help.php b/language/ro/help.php
new file mode 100644
index 0000000..89eb4e1
--- /dev/null
+++ b/language/ro/help.php
@@ -0,0 +1,54 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ */
+
+/**
+ * DO NOT CHANGE
+ */
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+if (empty($lang) || !is_array($lang))
+{
+ $lang = [];
+}
+
+// DEVELOPERS PLEASE NOTE
+//
+// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
+//
+// Placeholders can now contain order information, e.g. instead of
+// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
+// translators to re-order the output of data while ensuring it remains correct
+//
+// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
+// equally where a string contains only two placeholders which are used to wrap text
+// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
+//
+// Some characters you may want to copy&paste:
+// ’ » “ ” …
+//
+
+$lang = array_merge($lang, [
+ 'HELP_EMBEDDING_MEDIA' => 'Încorporarea media',
+ 'HELP_EMBEDDING_MEDIA_QUESTION' => 'Cum să încorporați media de pe alte site-uri în postări',
+ 'HELP_EMBEDDING_MEDIA_ANSWER' => 'Utilizatorii pot încorpora conținut, cum ar fi videoclipuri și audio de pe site-uri permise folosind
+ etichetele [media][/media] sau pur și simplu de la postarea unui mesaj acceptat
+ URL în text simplu. De exemplu:
+ [media]%1$s[/media]
+
Așa cum sa menționat mai sus, linkul ar putea fi folosit și fără
+ etichete [media].
+
Exemplul prezentat aici ar genera:
%2$s
+
Sunt acceptate următoarele site-uri:
%3$s.
+
Pentru documentația completă despre site-urile acceptate și exemple de adrese URL,
+ accesați
+ Documentația pluginului MediaEmbed.',
+]);
diff --git a/language/ro/info_acp_mediaembed.php b/language/ro/info_acp_mediaembed.php
new file mode 100644
index 0000000..31ab8cb
--- /dev/null
+++ b/language/ro/info_acp_mediaembed.php
@@ -0,0 +1,30 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ */
+
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+if (empty($lang) || !is_array($lang))
+{
+ $lang = [];
+}
+
+$lang = array_merge($lang, [
+ 'ACP_PHPBB_MEDIA_EMBED' => 'Media Embed',
+ 'ACP_PHPBB_MEDIA_EMBED_MANAGE' => 'Gestionați site-urile',
+ 'ACP_PHPBB_MEDIA_EMBED_SETTINGS' => 'Setări',
+
+ // Log keys
+ 'LOG_PHPBB_MEDIA_EMBED_CACHE_PURGED'=> 'Memoria cache pentru Media Embed a fost eliminată',
+ 'LOG_PHPBB_MEDIA_EMBED_MANAGE' => 'Site-urile Media Embed au fost actualizate',
+ 'LOG_PHPBB_MEDIA_EMBED_SETTINGS' => 'Setările pentru Media Embed au fost actualizate',
+]);
diff --git a/language/ro/install.php b/language/ro/install.php
new file mode 100644
index 0000000..0b9296a
--- /dev/null
+++ b/language/ro/install.php
@@ -0,0 +1,43 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ */
+
+/**
+ * DO NOT CHANGE
+ */
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+if (empty($lang) || !is_array($lang))
+{
+ $lang = [];
+}
+
+// DEVELOPERS PLEASE NOTE
+//
+// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
+//
+// Placeholders can now contain order information, e.g. instead of
+// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
+// translators to re-order the output of data while ensuring it remains correct
+//
+// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
+// equally where a string contains only two placeholders which are used to wrap text
+// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
+//
+// Some characters you may want to copy&paste:
+// ’ » “ ” …
+//
+
+$lang = array_merge($lang, [
+ 'PHPBB_VERSION_ERROR' => 'Forumul dvs. pare să folosească o versiune mai veche a phpBB. phpBB ' . \phpbb\mediaembed\ext::PHPBB_MINIMUM . ' sau mai nou este necesar pentru a utiliza această extensie.',
+ 'S9E_MEDIAEMBED_ERROR' => 'Am detectat extensia s9e/mediaembed. Pluginul Media Embed al phpBB nu poate fi instalat până când nu dezactivați, curățați și ștergeți toate fișierele legate de extensia s9e/mediaembed.',
+]);
diff --git a/language/ro/permissions_mediaembed.php b/language/ro/permissions_mediaembed.php
new file mode 100644
index 0000000..fe8235c
--- /dev/null
+++ b/language/ro/permissions_mediaembed.php
@@ -0,0 +1,36 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ */
+
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+if (empty($lang) || !is_array($lang))
+{
+ $lang = [];
+}
+
+// DEVELOPERS PLEASE NOTE
+//
+// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
+//
+// Placeholders can now contain order information, e.g. instead of
+// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
+// translators to re-order the output of data while ensuring it remains correct
+//
+// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
+// equally where a string contains only two placeholders which are used to wrap text
+// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
+
+$lang = array_merge($lang, [
+ 'ACL_F_MEDIAEMBED' => 'Poate folosi eticheta [media] BBCode',
+ 'ACL_U_PM_MEDIAEMBED' => 'Poate folosi eticheta [media] BBCode în mesajele private',
+]);
diff --git a/language/ro/ucp.php b/language/ro/ucp.php
new file mode 100644
index 0000000..810e490
--- /dev/null
+++ b/language/ro/ucp.php
@@ -0,0 +1,29 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ */
+
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+if (empty($lang) || !is_array($lang))
+{
+ $lang = [];
+}
+
+$lang = array_merge($lang, [
+ 'MEDIA_EMBED_PRIVACY_POLICY' => '
+
+