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.

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   1828 Views

Avatar
Anatol

126 Posts

19 November 2008 at 2:49pm

Hi,

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.

Cheers!
Anatol

Avatar
Anatol

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.

Cheers!
Anatol