RTC bug PR-6.2-dev Pending

User tests: Successful: Unsuccessful:

avatar tecpromotion
tecpromotion
9 Sep 2026

Pull Request resolves # .

  • I read the Generative AI policy and my contribution is either not created with the help of AI or is compatible with the policy and GNU/GPL 2 or later.

AI disclosure: root cause analysis and patch were done with the help of Claude Code. I reviewed the change and tested it manually on a local installation, before and after, as described below.

Summary of Changes

The menu and toolbar buttons in the TinyMCE set builder (System → Plugins → Editor - TinyMCE) are always displayed in English, no matter which administrator language is used. Two things have to be fixed for that.

1. The language file is never loaded (plugins/editors/tinymce/src/Field/TinymcebuilderField.php)

TinymcebuilderField::getLayoutData() looks for media/vendor/tinymce/langs/<lang>.min.js whenever JDEBUG is off. Those files no longer exist:

  • Up to 6.1 the build produced them, build/build-modules-js/init/minify-vendor.mjs had media/vendor/tinymce/langs in its list of folders to minify.
  • The new build system dropped that step. media_source/plg_editors_tinymce/builder.mjs copies langs<major> from the tinymce-i18n package verbatim, and that package only ships plain .js files. A fresh npm ci on 6.2-dev gives 61 language files and not a single .min.js.

So $languageFile stayed empty and the layout registered no language script at all. The fix uses .js unconditionally, which is what DisplayTrait::display() already does for the editor itself.

2. Even when loaded, the language file has no effect (layouts/plugins/editors/tinymce/field/tinymcebuilder.php)

media_source/plg_editors_tinymce/js/tinymce-builder.es6.js replaces the global tinymce object with its own small stub (langCode: 'en', langStrings: {}). The builder script is registered as type="module", the language script as defer, and both run in document order with the language script first. So addI18n() is called on the real TinyMCE object and that object is then replaced by the stub with its empty langStrings.

Registering the language script as depending on the builder script makes the web asset manager emit it after the builder script. addI18n() then reaches the stub, and the builder renders on DOMContentLoaded, later than both scripts.

This second part is not 6.x specific, it applies to 5.4 as well and is submitted separately in #48434. It is included here so that this PR can be tested on its own; when #48434 has been upmerged the hunk in the layout will simply be identical.

Testing Instructions

  1. Install a non-English language pack, e.g. German, and set it as the administrator language (User Menu → Edit Account → Basic Settings → Backend Language, or Global Configuration).
  2. Go to System → Manage → Plugins and open "Editor - TinyMCE".
  3. Look at the "TinyMCE Panels" area, at the source panel below "The list of available menus and buttons".
  4. Check the menu row and hover a few toolbar buttons to see their tooltips.

Optional, to see the first part on its own: with only the change in TinymcebuilderField.php applied, <script src="/media/vendor/tinymce/langs/de.js" defer> appears in the page source, but the buttons are still English. Both changes are needed.

Actual result BEFORE applying this Pull Request

No language script in the page source at all, and the menu row is English: Edit Insert View Format Table Tools Help, the dropdowns show Formats and Paragraph, and the button tooltips are English as well.

Expected result AFTER applying this Pull Request

media/vendor/tinymce/langs/de.js is loaded and the menu row is translated: Bearbeiten Einfügen Ansicht Format Tabelle Werkzeuge Hilfe, the dropdowns show Formate and Absatz, and the tooltips are translated too.

Tested on a fresh 6.2.0-alpha4-dev installation with the German language pack 6.1.3.1.

(A string like Font Family stays English, that string simply does not exist in the TinyMCE language pack. Unrelated to this change.)

Link to documentations

Please select:

  • Documentation link for guide.joomla.org:

  • No documentation changes for guide.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • No documentation changes for manual.joomla.org needed

avatar tecpromotion tecpromotion - open - 9 Sep 2026
avatar tecpromotion tecpromotion - change - 9 Sep 2026
Status New ⇒ Pending
avatar joomla-cms-bot joomla-cms-bot - change - 9 Sep 2026
Category ⇒ Layout Front End Plugins
avatar tecpromotion tecpromotion - change - 9 Sep 2026
Title
…
[AI] [6.2] Fix untranslated buttons in the TinyMCE builder
[6.2][AI] Fix untranslated buttons in the TinyMCE builder
avatar tecpromotion tecpromotion - edited - 9 Sep 2026
avatar tecpromotion tecpromotion - change - 9 Sep 2026
Title
…
[6.2][AI] Fix untranslated buttons in the TinyMCE builder
[6.2] [AI] Fix untranslated buttons in the TinyMCE builder
avatar tecpromotion tecpromotion - edited - 9 Sep 2026
avatar brianteeman
brianteeman - comment - 10 Sep 2026

Not working for me

image
avatar brianteeman
brianteeman - comment - 10 Sep 2026

Not working for me

oops checked the wrong server

avatar brianteeman brianteeman - test_item - 10 Sep 2026 - Tested successfully
avatar brianteeman
brianteeman - comment - 10 Sep 2026

I have tested this item ✅ successfully on cdb0ecc


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/48435.

avatar brianteeman
brianteeman - comment - 10 Sep 2026

I have tested this item ✅ successfully on cdb0ecc


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/48435.

avatar heelc29 heelc29 - test_item - 10 Sep 2026 - Tested successfully
avatar heelc29
heelc29 - comment - 10 Sep 2026

I have tested this item ✅ successfully on cdb0ecc

Not all menu fields are translated:
image

Issue is that texts here

'styles' => ['label' => Text::_('PLG_TINY_TOOLBAR_BUTTON_STYLESELECT'), 'text' => 'Formats'],
'blocks' => ['label' => Text::_('PLG_TINY_TOOLBAR_BUTTON_FORMATSELECT'), 'text' => 'Paragraph'],
'fontfamily' => ['label' => Text::_('PLG_TINY_TOOLBAR_BUTTON_FONTSELECT'), 'text' => 'Font Family'],
'fontsize' => ['label' => Text::_('PLG_TINY_TOOLBAR_BUTTON_FONTSIZESELECT'), 'text' => 'Font Sizes'],

do not match the english TinyMCE texts
image


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/48435.
avatar heelc29
heelc29 - comment - 10 Sep 2026

I have tested this item ✅ successfully on cdb0ecc

Not all menu fields are translated:
image

Issue is that texts here

'styles' => ['label' => Text::_('PLG_TINY_TOOLBAR_BUTTON_STYLESELECT'), 'text' => 'Formats'],
'blocks' => ['label' => Text::_('PLG_TINY_TOOLBAR_BUTTON_FORMATSELECT'), 'text' => 'Paragraph'],
'fontfamily' => ['label' => Text::_('PLG_TINY_TOOLBAR_BUTTON_FONTSELECT'), 'text' => 'Font Family'],
'fontsize' => ['label' => Text::_('PLG_TINY_TOOLBAR_BUTTON_FONTSIZESELECT'), 'text' => 'Font Sizes'],

do not match the english TinyMCE texts
image


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/48435.
avatar richard67 richard67 - change - 10 Sep 2026
The description was changed
Status Pending ⇒ Ready to Commit
Labels Added: bug PR-6.2-dev
avatar richard67
richard67 - comment - 10 Sep 2026

RTC


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/48435.

avatar richard67 richard67 - edited - 10 Sep 2026
avatar richard67
richard67 - comment - 10 Sep 2026

RTC


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/48435.

avatar drmenzelit drmenzelit - change - 11 Sep 2026
Status Ready to Commit ⇒ Fixed in Code Base
Closed_Date 0000-00-00 00:00:00 ⇒ 2026-09-11 06:38:33
Closed_By ⇒ drmenzelit
Labels Added: RTC
avatar drmenzelit drmenzelit - close - 11 Sep 2026
avatar drmenzelit drmenzelit - merge - 11 Sep 2026
avatar drmenzelit
drmenzelit - comment - 11 Sep 2026

Thanks

Add a Comment

Login with GitHub to post a comment