C5-8.4+ How to translate Express and custom Dashboard data/pages?

Permalink
I know how to translate strings for blocks (.po/.mo files). I know how to add locales and to clone page trees and then simply to translate text in content blocks.

But what about Express data and custom Dashboard data/pages showing Express data? How can they be translated? Will the Express data be cloned? The Dashboard won't certainly be cloned. So what do I do that?

Should I use 2 Express or DB sets for each language? Or there's an easier way in C5?

Thank you.

linuxoid
 
mlocati replied on at Permalink Reply
mlocati
You'd need attributes that support multilingual.
A while back I started a project (https://github.com/mlocati/concrete5-multilingual-attributes-2... ) that implements multilingual attributes, but I still have to find some spare time to complete it.
linuxoid replied on at Permalink Reply
linuxoid
Well, when I make a block, a single page or a package - I can translate strings.

Is there anything in C5 which would translate Express attributes for example? When you set up an attribute in the Dashboard, you name it. How can that string - the attribute name be translated?

There's a Translate Site Interface menu. I scanned the site, added the 'site' folder, added translation to some attributes, saved it, saved to file but it doesn't seem to translate anything though. Does it only translate when the locale is set or only when the basics language is chosen?
linuxoid replied on at Permalink Reply
linuxoid
I've set the interface, locale, default locale, initial locale, everything to the language and cleared cache - still doesn't translate the words from Translate Site Interface. I've checked the site translation file created, the translations have been added.
linuxoid replied on at Permalink Reply 4 Attachments
linuxoid
I went back to the Translate Site Interface and it's empty now. Reloading the strings doesn't do anything. If I click on Save to File (that tab is still open), it says: "Invalid language identifier".

Looks like a bug. Where have all the strings gone?

[UPDATE]

Well, I've changed the locale back to US and everything appeared again. Changed the locale back to Russian and everything's gone again. Must definitely be a bug. Looks like after the translation is saved once, it's not workable anymore.

[UPDATE 2]

Aha, what happens is that after I changed the locale initial language and then changed the locale itself to en_US but then changed it back to ru_RU the initial local stayed the same. In order to load strings for translation, e.g. EN to RU, the initial language and locale have to be set accordingly to English and Russian.

But, regardless, the strings are not translated anyway!

[UPDATE 3]

After deleting the language files, recycling everything and clearing cache, some strings started being translated in some places but not all (see attached screenshots).

E.g. The Model, Fuel and Category are translated, appear translated inside the table of the Express Object List but not in the table headers. How come?

For example, the fuel type (Petrol) is translated everywhere except for the Express Object Detail. Why not here? It's shown as <td><?=$car->getCarFuel()?></td>. The Translate Site Interface found only 1 string 'Petrol' and it's a SelectAttributeValue.