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.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

Help with the _t function


Go to End


3 Posts   3071 Views

Avatar
yurigoul

Community Member, 203 Posts

18 December 2009 at 11:30am

Can someone please explain to me how I have to use the _t function in my templates with php and with js?

I have translatable and i18n turned on in my config and everything seems ok (login page is German and I can create translations)

In sapphire/lang/de_DE.php it says: $lang['de_DE']['SearchForm']['SEARCH'] = 'Suche';
In sapphire/lang/en_US.php it says: $lang['de_DE']['SearchForm']['SEARCH'] = 'Search';

I use _t('SEARCHFORM.SEARCH') in my page.php to set the text of the searchbutton, but the searchbutton gets no text (and there is no error).

i18n.js loads de_DE and en_US language files, and the translation for SEARCHFORM.SEARCH is in those files. However, if I use <% _t('SEARCHFORM.SEARCH') %> the result is again empty.

I have looked everywhere in wiki and forum and book, but I can not find anything, so it must be something fairly obvious that I am missing :-)

Avatar
Juanitou

Community Member, 323 Posts

18 December 2009 at 12:01pm

Hi!

Well, SearchForm and SEARCHFORM are two different strings, aren’t they?

Hope it helps,
Juan

Avatar
yurigoul

Community Member, 203 Posts

18 December 2009 at 1:13pm

Edited: 18/12/2009 1:46pm

Ok both now work, I feel a bit stupid

I thought one would go over the js and one not, but they both go over the php

Alas they are now somehow both in german... I will look into it

EDIT: it worked completely as soon as I reinserted the code below into the page_controller->init even though it changes the language of the login form (part is in german, the other part is in english):

if($this->dataRecord->hasExtension('Translatable')) {
i18n::set_locale($this->dataRecord->Locale);
}