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

Enable translation of templates (i18n)


Go to End


2 Posts   11232 Views

Avatar
Tobbe

Community Member, 25 Posts

9 March 2008 at 1:26am

Hi,

I have been struggling some time trying to translate some of the templates of my site. This example below is done on a fresh install of SS 2.2.1.

This is what I tried and what happens...

1) add the i18n::enable(); to my _config.php file in mysite folder.
2) run the /db/build
3) open my Page.ss file in my Theme directory and add <% _t('LOGOTEXT', 'my logo') %> to the template
4) run the /i18n/textcollector and it says it created three files (cms, saphire, auth_openid). Shouldn't it create one for mysite too?
5) I try to go to my site, I get FATAL ERROR: Locale file /lang/en_US.php should exist
At line 1251 in C:\xampp\htdocs\ss2\sapphire\core\i18n.php

I tried to create a new en_US.php file and place it in a lang folder. But where should it be placed? I thought I should place it in the mysite folder, but that doesn't work.

Anyone that can see that I have done wrong?

many thanks!

Avatar
MIke

Community Member, 7 Posts

22 April 2008 at 3:14am

I know that you are still working on a i18n modules final versions. But I have the same kind of issue, I do not success to use themes and the function _t in a templates.
From what i read in the log irc, I can forget to use this in the templates of the widget but it works in the templates of a pages.
So my questions is very similar than tobbe.

Where should I put my lang folder:
- mysite\lang\en_US.php (in my site)
- or themes\Mythemes\lang\en_US.php or themes\lang\en_US.php (in a theme folder)

Or both ?

And after when you run http://localhost/silverstripe-v2.2.1/i18n/textcollector/
Should you see appears this folders ? because in fact I tried the 3 solutions above and at each time I just saw :

Collecting text...

Created file: C:/wamp/www/silverstripe-v2.2.1/auth_openid/lang/en_US.php
Created file: C:/wamp/www/silverstripe-v2.2.1/cms/lang/en_US.php
Created file: C:/wamp/www/silverstripe-v2.2.1/sapphire/lang/en_US.php
Done!

Notice: I am able to use the class that I had in mysite/lang in the file code/page.php by the _t
But not in the templates... Could you explain me the difference? How to manage templates and lang ?

Thank you very much