hey, i want my site in different languages, such as english, dutch, french and german. How should i start? i have already a partial site in english. I worked mostly with php. There my solution was working with templates, put them in folders like NL, ENG, FR, ..., and based an a session variabele, load the right template. something like this $tpl = new HTML_Template_IT("./templates/nl/"); $lang = "nl"; if ( isset($_SESSION["lang"]) ) { $lang = $_SESSION["lang"]; switch($lang) { case "eng": { $tpl = new HTML_Template_IT("./templates/eng/"); break; } case "nl": default: { $tpl = new HTML_Template_IT("./templates/nl/"); break; } } }else{ $tpl = new HTML_Template_IT("./templates/nl/"); } But how to do this in ruby on rails? Cuz i dont know how to load an other template. it is all automatic ex. u have a index.rhtml def index some stuff end the index.rhtml is loaded, but what if u have to load a template based on a paramater, like i used to do in php???? thanks for the help
If you have the Agile book, you''ll want to look at p370. If not: class YourController < ApplicationController layout :determine_layout ... private def determine_layout # return the layout for whatever language you like end end - james On 11/15/05, Brutyn Nick <brutyn_nick-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org> wrote:> hey, > > i want my site in different languages, such as english, dutch, french and > german. How should i start? i have already a partial site in english. > > I worked mostly with php. There my solution was working with templates, put them > in folders like NL, ENG, FR, ..., and based an a session variabele, load the > right template. > > something like this > > $tpl = new HTML_Template_IT("./templates/nl/"); > $lang = "nl"; > if ( isset($_SESSION["lang"]) ) > { > $lang = $_SESSION["lang"]; > switch($lang) > { > case "eng": > { > $tpl = new HTML_Template_IT("./templates/eng/"); > break; > } > case "nl": > default: > { > $tpl = new HTML_Template_IT("./templates/nl/"); > break; > } > } > }else{ > $tpl = new HTML_Template_IT("./templates/nl/"); > } > > But how to do this in ruby on rails? Cuz i dont know how to load an other > template. it is all automatic ex. > > u have a index.rhtml > > def index > some stuff > end > > the index.rhtml is loaded, but what if u have to load a template based on a > paramater, like i used to do in php???? > > > thanks for the help > > > _______________________________________________ > Rails mailing list > Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails >
On Tuesday 15 Nov 2005 10:24, Brutyn Nick wrote:> i want my site in different languages, such as english, dutch, french and > german. How should i start? i have already a partial site in english.You might want to check Multilingual Rails, which was here, but seems to have gone offline within in the last few days: http://www.tuxsoft.se/oss/rails/multilingual Google Cache works for the instructions, and if you want the source, I could email it to you, since I downloaded it last week. Cheers, ~Dave -- Dave Silvester Rent-A-Monkey Website Development Web: http://www.rentamonkey.com/
thanks for this i want to use the global rhtml (application.rhtml) also, then in the @content_for_layout, the specific language rhtml. How should i do this?? if i do def determine_layout "clients/test" end it must be in the clients folder, and i want also the application.rhtml, now he doesnt thanks in advance
sure that would be great thanks mail it to brutyn_nick-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org thanks ;)
i forgot 1 think ex in clients controller i have index and list def index end def list end for each of these pages i need the application.rhtml and the correct second rhtml in the specified language how must i create my folder structure ??? something like this? clients\ eng\ index.rhtml list.rhtml nl\ index.rhtml list.rhtml and for ex the list.rhtml, i use a session variabele @session[:lang] if @session[:lang] == "nl" ...load the application.rhtml and clients\nl\list.rhtml end if @session[:lang] == "eng" ...load the application.rhtml and clients\eng\list.rhtml end does anyone know how to do this??Or got any better idea?
I''m solving this problem in a CMS I wrote, using routes. I can code the lang value straight into the url map.connect '':lang/:accessname'', :controller => ''page'', :action => ''show'' So "/en/index" shows the english version, and "/de/index" shows the german version. I prefer coding the lang field into the url instead of the session variable. A German website can then easily link to the german page. Then I have translated images in "/images/en" and "/images/de". I pull content from the database using the lang field and the accessname. Hope this helps, Brett On Nov 15, 2005, at 7:20 AM, Brutyn Nick wrote:> i forgot 1 think > ex in clients controller i have index and list > def index > > end > def list > > end > > for each of these pages i need the application.rhtml and the > correct second > rhtml in the specified language > how must i create my folder structure ??? > something like this? > clients\ > eng\ > index.rhtml > list.rhtml > nl\ > index.rhtml > list.rhtml > and for ex the list.rhtml, i use a session variabele @session[:lang] > > if @session[:lang] == "nl" > ...load the application.rhtml and clients\nl\list.rhtml > end > if @session[:lang] == "eng" > ...load the application.rhtml and clients\eng\list.rhtml > end > > does anyone know how to do this??Or got any better idea? > > > _______________________________________________ > Rails mailing list > Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails
There have been some big efforts lately to create a multilingual plugin for Rails that hopefully will go into the core eventually. A lot of people are asking for this to be core Rails. You can download the beta plugin svn://rashgash.co.il/rails-plugins/multilingual/trunk Peter _______________________________________________ Rails mailing list Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org http://lists.rubyonrails.org/mailman/listinfo/rails