Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

All other Modules /

Discuss all other Modules here.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Translatable on SilverStripe 3.1.x - add locales not present in i18n::$common_locales


Go to End


5 Posts   3441 Views

Avatar
DL

Community Member, 13 Posts

17 January 2014 at 4:32am

Edited: 18/01/2014 12:07am

Hi All,
I'm using SilverStripe 3.1.x and the Translatable module and it only allows me to create pages in the locales listed in the i18n::$common_locales array. I need to be able to create pages in the following locales: en_GB (English UK - this is my default locale), fr_FR (French, France), nl_NL (Dutch, Netherlands), fr_BE (French, Belgium) and nl_BE (Dutch, Belgium). The first 3 locales are ok, but I cannot seem to be able to add locales fr_BE and nl_BE to the list of allowed locales. Does anyone know how I can do this?

The locales that I would like to include (fr_BE and nl_BE) are present in the i18n::$all_locales array, but how do I get them to appear in the drop-down list of translations so that it is available for the content editor to select in order to create content in that locale?

I have tried the old method of adding a new locale by adding it through mysite/_config.php as follows:

i18n::$common_locales['fr_BE'] = array('French (Belgium)', 'français (Belgique)');
i18n::$common_locales['nl_BE'] = array('Dutch (Belgium)', 'Nederlands (België)');

(as described at the bottom of this page (SS v2.3)), but it does not work in SS 3.1.x, instead I get the following fatal error:

Fatal error: Cannot access private property i18n::$common_locales in /Applications/MAMP/htdocs/.../mysite/_config.php

I have also tried explicitly setting the allowed locales in mysite/_config.php as follows, but only English UK, French and Dutch appears, but not French (Beligium) and Dutch (Belgium):

Translatable::set_allowed_locales(array(
        'en_GB', //English UK
        'fr_FR', //French
        'nl_NL', //Dutch, Holland
        'fr_BE',  //French, Belgium
        'nl_BE',  //Dutch, Belgium
        'it_IT' //Italian
));

Any help/suggestions, would be greatly appreciated! Thanks in advance.

Avatar
Nobrainer Web

Community Member, 138 Posts

7 February 2014 at 10:57pm

Hi,

A bit late, but perhaps for future visitors

i18n::set_locale('da_DK');
Translatable::set_default_locale('da_DK');

SiteTree::add_extension('Translatable');
SiteConfig::add_extension('Translatable');
Translatable::set_allowed_locales(array('da_DK', 'en_US', 'sv_SE'));

is what i have in mysite/_cinfig.php and that works fine.

Avatar
ocean

Community Member, 37 Posts

18 February 2014 at 10:51pm

I'm having a similar problem to D-L, latest install of everything yesterday via composer etc...

es_MX is not showing up as an option in CMS even though it is set in Translatable::set_allowed_locales

Note, I had this setup and working with the code base from about a year ago using SS3.05, so something changed which stopped certain country codes working, in this case es_MX, the main language used in a current project undergoing updates, so this is a pretty major holdback right now!

I posted the issue on github yesterday [url= https://github.com/silverstripe/silverstripe-translatable/issues/159] [url]https://github.com/silverstripe/silverstripe-translatable/issues/159

Any ideas?

Sean

Avatar
ocean

Community Member, 37 Posts

19 February 2014 at 5:47am

tried adding this to i18n.php common_languages function (as that is where the language selector menu in CMS seems to be pulling in labels from) but has not worked:

'es_MX' => array(
'name' => 'Spanish (MX)',
'native' => 'Español (MX)'
),

Any ideas?

This is quite urgent and major blockage in terms of the project I'm working on, can anyone help?

Best wishes
Sean

p.s. I have to say, sometimes working on SS projects is like wandering around in the wilderness!!! Just saying, compared to other projects and frameworks, certain things seem very sketchy and little supported which should be standard. Anyways, thanks for any help you may offer with this.

Avatar
ocean

Community Member, 37 Posts

19 February 2014 at 6:29am

Correction:
after adding to common_locales (instead of common languages) in i18n.php es_MX is now showing in CMS menu!

I feel this should be in core by design, though is something to take up with SS framework devs I suppose.