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.

Archive /

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

Moderators: martimiz, Sean, biapar, Willr, Ingo

template in 2 language


Go to End
Reply


7 Posts   3494 Views

Avatar
Webbear

Community Member, 5 Posts

26 May 2008 at 6:07pm

first, I love SS and I also like the i18n!
Now, I'm getting into troubles because I have to build a template for two language (german and french). On my testinstallation I can switch between languages quite easily using the same alias (url) and linking it with ?lang=de or ?lang=fr. Also the meta tag 'content' is changing correctly. But I'd like to switch also some 'default' links like 'print this page' or even the sitetitle in a h1 and those thing I wrote in the template (and want to let it there). I tried the _t function. The language file is correctly created in folder lang in mysite by /i18n/textcollector/.
But there is no switch of the lang file.
I might have missed an important fact in the config file:

i18n::enable();
i18n::set_locale('de_CH');
i18n::set_default_lang('de');

Can anbody help me with this? Thanks a lot
Webbear

Avatar
cliersch

Community Member, 75 Posts

26 May 2008 at 11:46pm

Do you want to use 2 different SS-Installations?
If you want to switch a template between two languages you have to change the set_local parameters in the _config.php.
To switch between German an French:
i18n::set_locale('de_DE');
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
//i18n::set_locale('fr_FR');
//setlocale (LC_ALL, 'fr_FR@euro', 'fr_FR', 'fr', 'fr');

Avatar
Webbear

Community Member, 5 Posts

27 May 2008 at 9:45am

thanks tiga
but sorry, this didn't work out. Don't want to have to ss installation for two languages.
I want one installation, one template with translations of i.e. contact ->Kontakt or drucken -> imprimer.

Avatar
Webbear

Community Member, 5 Posts

29 May 2008 at 12:45am

After trying more with i18n and ss I see better how ss works.
The problem I have is not setting the locale (and getting the right lang file) but 'changing' the local setting by url (?lang=fr) to get the right language file.

Avatar
lekoala

Community Member, 30 Posts

29 May 2008 at 1:50am

I had the same trouble... what I did was adding in the init of page.php this bit of code :

/*set locale */
$curLang=Session::get('currentLang');
switch($curLang) {
case "fr":
i18n::set_locale('fr_FR');;
break;
case "en":
i18n::set_locale('en_US');
break;
}
/*end of set locale*/

thus, when you set your language with ?lang=en for instance, it will update the locale accordingly... this is only working if you use one locale per language, obviously...

Avatar
Webbear

Community Member, 5 Posts

29 May 2008 at 4:53am

Thanks lekoala
coming closer! Where exactly you put this lines in page.php ? And what did you write in _config.php? (It's quite hot those days in Switzerland, brain's getting very slow...)

Avatar
lekoala

Community Member, 30 Posts

29 May 2008 at 7:34pm

no worries... here it comes :

class Page_Controller extends ContentController {
function init() {
parent::init();

/*set locale */
$curLang=Session::get('currentLang');
switch($curLang) {
case "fr":
i18n::set_locale('fr_FR');;
break;
case "nl":
i18n::set_locale('nl_NL');
break;
case "en":
i18n::set_locale('en_US');
break;
}
/*end of set locale*/
Requirements::themedCSS("layout");
Requirements::themedCSS("typography");
Requirements::themedCSS("form");
}

By the way, I'm not sure that's the best (and recommended) way to deal with locales, but... it works. so...

in _config.php, you just have to make sure that i18n is enabled.

//enable multi lingual support
i18n::enable();

then you can run the textcollector and translate everything... as a side note, here is a sample line of code for translating a template

// in mysite/lang/en_US.php
$lang['en_US']['ActivityPage.ss']['MUST_BE_REGISTERED'] = 'You must be registered to join this event';