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're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Archive /

Our old forums are still available as a read-only archive.

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

i18n multilingual sites: add a default language and limit list of languages in translation tab

Go to End

2 Posts   1657 Views


126 Posts

19 November 2008 at 2:49pm


I am trying to build my first Silverstripe multilingual site. How can I add Māori to the list in the translation tab and remove all other languages (without touching the core code)? The site should only be in English (en_NZ) as a default language and Māori (mi_NZ).

Any help would be greatly appreciated.



126 Posts

19 November 2008 at 5:05pm

Edited: 19/11/2008 5:08pm

As a temporary solution I simply went to /sapphire/core/i18n.php and added the language/s I wanted and then commented all of the languages I did not need:

*  A list of commonly used languages, in the form
*  langcode => array( EnglishName, NativeName)
public static $common_languages = array(
		'en' => array('English', 'English'),
		'mi' => array('Maori', 'Māori')

		/* deactivated languages for future reference
		'af' => array('Afrikaans', 'Afrikaans'),
		... etc ...
		'zu' => array('Zulu', 'isiZulu')


This just leaves English and Māori to toggle below the site tree and the translation tab only offers Māori.

It seems to work well. However, this method means changing the core code. I was hoping to find a nicer way so I don't need to do this. Something like a setting for the _conf.php file, e.g. the imaginary methods:

i18n::setCommonLanguages = array('en' => array('English', 'English'));
or addCommonLanguages(), removeCommonLanguages() or removeAllCommonLanguages()

Maybe I just did not find it, but there was nothing obvious in the API. Or maybe it's just too late in the day :)

If you know of any better way please let me know.