No translation for the language 'es_ES' available

Permalink 1 user found helpful
Any Help!

Got this error in one of my site.

Notice: No translation for the language 'es_ES' available. in /home3/blindsi4/public_html/concrete/libraries/3rdparty/Zend/Translate/Adapter.php on line 443

What to do? I do have internationalization & translation manager installed.

Rony

ronyDdeveloper
 
ronyDdeveloper replied on at Permalink Reply
ronyDdeveloper
Bump!
Ale replied on at Permalink Reply
Does the translation manager handle the actual translation files or do you still have to copy them manually to the site? There should be a file named messages.mo at folder yoursite/languages/es_ES/LC_MESSAGES/ to get the translation work properly.

You can get the needed files from Transifex:
https://www.transifex.com/projects/p/concrete5/...
ronyDdeveloper replied on at Permalink Reply
ronyDdeveloper
I cannot see any file called messages.mo under the specified directory. Only messages.po is there.

Rony
Ale replied on at Permalink Reply
As far as I know, the .po files are just gettext "catalog" files that are actually not usable by the site. They must be converted to .mo format. You can do this with Poedit:http://www.poedit.net/download.php...

Just open the .po file in the editor and save it. The software should automatically create according .mo file to the same directory where the .po was.
Mainio replied on at Permalink Best Answer Reply
Mainio
Just noticed this and adding a note here for any future readers as this got solved at our support thread.

First of all, Translations Manager does create the .mo files automatically when you save the translation. It's a fully automated translations tool for concrete5, no need for manual uploads or file handing or external software installations.

I believe the first issue was simply because the translation was not yet saved and the .mo file was not created. But there was another issue after that with the following error message:
Warning: fread(): Length parameter must be greater than 0 in /home3/blindsi4/public_html/concrete/libraries/3rdparty/Zend/Translate/Adapter/Gettext.php on line 49
Notice: No translation for the language 'es_ES' available. in /home3/blindsi4/public_html/concrete/libraries/3rdparty/Zend/Translate/Adapter.php on line 443


This was because the Spanish translation in this case was totally empty, meaning no strings were translated in it. This caused the system to create an empty .mo file which apparently does not load properly with the Zend gettext translation adapter that concrete5 uses.

So, if anyone else is experiencing this error, make sure your translation has at least 1 translated string or remove the whole translation if you don't need it.