3218 Posts in 854 Topics by 813 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 918 Views |
-
[SOLVED] Problem with translations _t() returns always same language

16 August 2011 at 3:50am
Hey there,
I have an annoying problem using the _t() function in my templates. I'm trying to translate the search result template and for that matter I created two languagefiles in the mysite/lang folder, de_DE.php and en_US.php . But the template only displays the german texts, no matter which language I choose. You can try it out for yourself @ http://sng.cotec-it-systeme.de/
en_US.php
global $lang;
$lang['en_US']['Page_results']['NoResults'] = 'Sorry, your search query did not return any results';
$lang['en_US']['Page_results']['MoreAbout'] = 'more about';
$lang['en_US']['Page_results']['NextPage'] = 'Next page';
$lang['en_US']['Page_results']['PrevPage'] = 'Previous page';
$lang['en_US']['Page_results']['GoToPage'] = 'Go to page';
$lang['en_US']['SearchForm']['SearchResults'] = 'Search results';de_DE.php
i18n::include_locale_file('sleepNgo', 'en_US');
global $lang;
if(array_key_exists('de_DE', $lang) && is_array($lang['de_DE'])) {
$lang['de_DE'] = array_merge($lang['en_US'], $lang['de_DE']);
} else {
$lang['de_DE'] = $lang['en_US'];
}$lang['de_DE']['Page_results']['NoResults'] = '2Zu Ihrer Suche gibt es leider keine Ergebnisse.';
$lang['de_DE']['Page_results']['MoreAbout'] = '2Mehr zu';
$lang['de_DE']['Page_results']['NextPage'] = '2Nächste Seite';
$lang['de_DE']['Page_results']['PrevPage'] = '2Vorherige Seite';
$lang['de_DE']['Page_results']['GoToPage'] = '2Gehe zu Seite';
$lang['de_DE']['SearchForm']['SearchResults'] = '2Suchergebnisse';_config.php (snippet)
i18n::set_locale('de_DE');
Translatable::set_default_locale('de_DE');
Translatable::set_allowed_locales(array(
'de_DE',
'en_US',
)
);
Object::add_extension('SiteTree', 'Translatable');
Object::add_extension('SiteConfig', 'Translatable');Page_results.ss (snippet)
<a class="readMoreLink" href="$Link" title="<% _t('Page_results.MoreAbout','1Mehr zu') %> "{$Title}"">
<% _t('Page_results.MoreAbout','1Mehr zu') %> "{$Title}"...
</a>What am I doing wrong?
greetings
Martin -
Re: [SOLVED] Problem with translations _t() returns always same language

16 August 2011 at 4:12am
If you're doing direct template translation then it needs to be Page_results.ss not just Page_results. Also leave out the domain so it says just MoreAbout instead of Page_results.MoreAbout since the _t() function in the template automatically gets its name as the namespace.
So <% _t('MoreAbout','1Mehr zu') %> will become $lang['en_US']['Page_results.ss']['MoreAbout']
-
Re: [SOLVED] Problem with translations _t() returns always same language

17 August 2011 at 9:20am
Sadly, this doesn't work either. Again, only the german texts from de_DE.php are being displayed.
If I remove (or rename) the de_DE.php file, the fallback text of the _f() function in the template shows up, no matter which language is currently active. I don't get it, it seems like the english translations aren't even being read.
Any ideas?
-
Re: [SOLVED] Problem with translations _t() returns always same language

17 August 2011 at 10:37pm
Hello Dreadmaaan!
Here's a solution to your problem: http://silverstripe.org/template-questions/show/16714?start=8#post306577
-
Re: [SOLVED] Problem with translations _t() returns always same language

18 August 2011 at 10:06am
That worked. Thank you so much!
| 918 Views | ||
|
Page:
1
|
Go to Top |


