multilingual login page (and other single pages) in concrete 8

Permalink
Hi all,

I have a multilingual site (En,Ro,Hu) on latest Concrete 8.2.0. I have added 2 more home pages (one for Ro and one for Hu) and a language selector block on each, so that, when a language is selected, I am redirected to the home page of that particular language.

On each home page there is a link to login (that points to the same /login single page). I need to have the login page displayed localized in the correct language of the home page the /login link was called from.

I had this working on a test site but really can't remember what I have done besides the regular "Multilingual setup" of Concrete5; that test site was deleted...

Any ideas?

Thanks

C

View Replies:
csebe replied on at Permalink Reply
I tracked down a bit the problem and it looks like after switching the language and being redirected to the correct homepage, there is a session variable as:
$_SESSION['_sf2_attributes']['multilingual_default_locale'] that is the locale of that language, like ro_RO for Romanian or hu_HU for Hungarian.
However, when clicking on the link to /login on one of these pages, this session variable becomes 'en_GB' when printed from the /login single page.

Why is the session information for the multilingual_default_locale reset to the site's default?
Is this normal behaviour for single pages in general or only for login?
mlocati replied on at Permalink Reply
mlocati
For me, everything works flawlessly.

Be sure that your language files (the ones under /application/languages) reflect the page languages (for instance, if you have /application/languages/hu_HU, the Hungarian page must be in "Hungarian (Hungary)").

To install the language files you can go to the dashboard/system/basics/multilingual/update dashboard page
csebe replied on at Permalink Reply
Hi Michele,

Thanks for your answer!

So, taking Romanian as example, my unix file path for it is:
/www/application/languages/ro_RO/LC_MESSAGES/messages.mo

whilst inside C5 the root Romanian page has "ro_RO" locale and the path to it (page location) is /ro

Now I can see that actually the other pages in the admin mode (dashboard) get localized depending on the language(flag) I choose in the top right of the concrete5 bar. Just the login page is not localized (in admin mode or as a visitor).

Here is my sample site:http://cars.maya-control.ro
If you feel like, I can also give you full access easily to the admin part and even to the linux machine, but I'd prefer to do it in a private message. Please let me know if it'd help.

Thanks again!

Claudiu
mlocati replied on at Permalink Reply
mlocati
I noticed that your website uses 8.2.0RC2: did you try to upgrade it to 8.2.0 ?
csebe replied on at Permalink Reply
Hi Michele,

Thank you very much for your kind help! Problem was solved indeed. Either I got confused after many installs/removes and I forgot to add the language files, or the 8.2.0RC was not ok.

Nevertheless, here is the right procedure, in case someone else ever needs it:

1. Look for "Update languages" in the intelligent search box and get to that page.
Add needed languages there:
- There is a high probability that you need to allow the webserver to write into the application/languages/ directory. For apache and linux, do:
chown -R apacheuser /webserverdir/application/languages


- If language is not installable using this automated procedure, there is still hope. Visithttps://translate.concrete5.org/translate/package/concrete5... and see if your language is translated at least partially.
If so, download the .mo file and place it in the right subdirectory in .../application/languages/ . For example, for Romanian, it should be placed in
/webserverdir/application/langiages/ro_RO/LC_MESSAGES/messages.mo


2. Look for "Multilingual" in the intelligent search box and choose it. You'll be redirected to "Multilingual setup" page.
Add here the desired locales for which you have added the translation files and set their root page names and url slugs.
(You can also set website's default language and/or auto-detection of locale based on user's browser settings).

That's it. The login links on the localized home pages should appear now translated in their respective language and the login pages should be also translated now. This, of course, if the translation files include the correspondent strings.


Thank you again for your help,

Claudiu