Language customization error error/Unable to find the filename for the component...

Language customization error error/Unable to find the filename for the component...

by Simon Brigadenko -
Number of replies: 8

Good day!

We updated our LMS from moodle 3.7.2 to 3.9+ according to upgrade guide recommendations, then we update all installed language packs via Administration> Site administration> Language> Language packs

And we have 2 problems:

1) the some strings of language customization that we saved in moodle 3.7 were lost

2) When saving strings of language customization, an error occurs: "error / Unable to find the filename for the component block_course_overview" while the "block_course_overview" block has never been set (neither in 3.7 nor in 3.9).


Could you please explain what we have done wrong when updating?

Only clearing (truncate) of the `tool_customlang_components` and `tool_customlang` tables has helped.

Average of ratings: -
In reply to Simon Brigadenko

Re: Language customization error error/Unable to find the filename for the component...

by lucas Rodrigues -

I have the same problem! Did you manage to find a way Simon?

Can anyone help us?


error / Unable to find the filename for the component block_participants

I turned on the debug, but did not bring any information. I don't even know which block is this block_participants.

thanks

In reply to lucas Rodrigues

Re: Language customization error error/Unable to find the filename for the component...

by Simon Brigadenko -

Good afternoon!

Unfortunately, only clearing of the tables has helped. Make a backup of tables beforehand.

In reply to Simon Brigadenko

Re: Language customization error error/Unable to find the filename for the component...

by Šimon Zajíček -

I did find what causes this issue, there for a way how to resolve. The problem how I understand it is, when you modify your language package for a module or plugin which do not exists in the newer version. In My case it was block community…

 

For the solution use this MySQL query to find all altered string. Put in your Database management system (adminer,phpMyAdmin…)

SELECT s.*, c.name AS component

                  FROM mdl_tool_customlang s

                  JOIN mdl_tool_customlang_components c ON s.componentid = c.id

                 WHERE s.local IS NOT NULL OR s.modified = 1

              ORDER BY componentid, stringid 

Look for id of a record with component which is stated in the error message (in your case block_course_overview). Then find the id in table mdl_tool_customlang

For this record/records set the master to NULL and modified to 0 and you are good to go.

And yes some string were lost in my case too, but after this you and alter it 😊 Hope this helps.

 



Average of ratings: Useful (5)
In reply to Šimon Zajíček

Re: Language customization error error/Unable to find the filename for the component...

by Christos Rodosthenous -
Hello,

I had the same issue and I found this post. I tried the suggested solution but it did not work. I did some troubleshooting and I tried also changing the local field to NULL and not only the master. That did the trick.

For anyone interested, this is the updated query:

UPDATE mdl_tool_customlang SET master=NULL,local=NULL,modified=0 where componentid=<COMPONENTID>

Make sure to identify first the componentid using the query in the previous post.

Average of ratings: Useful (3)
In reply to Šimon Zajíček

This forum post has been removed

The content of this forum post has been removed and can no longer be accessed.
In reply to Simon Brigadenko

Re: Language customization error error/Unable to find the filename for the component...

by Dennie Walker -
In case there's anyone still struggling with this, my solution was to manually go into the DB and remove from the table mdl_tool_customlang_components the plugins that are no longer installed on my system.

Additional errors may continue to pop up indicating that there are other dead plugin components to remove, simply search for them in the above named table and delete them until you get the all clear to save your customized language strings.

Hope this is helpful.
Average of ratings: Useful (2)
In reply to Dennie Walker

Re: Language customization error error/Unable to find the filename for the component...

by Simon Brigadenko -
Thanks for the help!
In reply to Simon Brigadenko

Re: Language customization error error/Unable to find the filename for the component...

by Klaus Steitz -
Picture of Plugin developers Picture of Testers
There is even a more simple fix, remove all content from the table mdl_tool_customlang - it´s just a caching-table, content will be rewritten by next lang-customizing-start:
TRUNCATE TABLE mdl_tool_customlang;

Works fine with all our moodle-systems.
Credits to Andreas Grabs; Details see also:
https://tracker.moodle.org/browse/MDL-67515
Average of ratings: Useful (2)