You might want to have a look at the data model we use in zena (http://
zenadmin.org/en/documentation/list333.html), the translated texts are
stored in the "versions" table. The table also stores current
publications along with redactions and old texts.

We do not store language preferences in a session but use a prefix on
urls "/en/..." or "/fr/..." so that cached content is served correctly
for each language choice.

Gaspard

On 2 jan, 21:42, JDS no spam <[email protected]> wrote:
> If you're going to have mulitple languages for a page then you'd best
> do a little bit of database normalisation otherwise you'll end up with
> pageBodyFrench, pageBodyItalian, pageBodyGreek, pageBodySwahili etc
>
> You have a model called Language
>
> iso_language_code (seehttp://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
> language_name
>
> Then you have your Page
> page_name_etc
>
> Then you have a many to many model PageLanguageBodyText
>
> language_id
> page_id
> body_text
>
> Then
>
> Class Language << ActiveRecord::Base
> has_many :page_language_body_texts
> has_and_belongs_to_many :pages, :through=>:page_language_body_text
> end
>
> Class Page << ActiveRecord::Base
> has_many :page_language_body_texts
> has_and_belongs_to_many :languages, :through=>:page_language_body_text
> end
>
> If the linking table had only the foreign keys required for joining
> the other two tables then there would be no need for a model, you'd
> just create the migration. But in this case you do have extra
> information so you have to have a model to access that information
> hence
>
> Class PageLanguageBodyText << ActiveRecord::Base
> belongs_to :page
> belongs_to :language
> end
>
> You'd need to tidy up the names a bit.
>
> You'd then have to modify your CMS to allow you to edit the page body
> text inside the form for your page, even though it's now been split
> out to its own model.
>
> Cheers
>
> John Small
>
> On Jan 2, 2:24 pm, bingo bob <[email protected]> wrote:
>
> > I've got a nice little site running which I rather like. All's running
> > tickety boo (the site is English language). It has a rudimentary CMS
> > with it, basically I have a page model such that Page.name and Page.body
> > exist. I simply allow the user to enter the page name and body and I
> > throw the content onto various pages around the site. As I say works
> > well.
>
> > Next feature - I'd like to do the site in French, German and Spanish as
> > well.
>
> > So.. my plan is this...
>
> > Just update the page model to include Page.name Page.body AND
> > Page.bodyFrench, Page.bodyGerman, Page.bodySpanish.
>
> > I'd then update my admin views to show text areas for all the new
> > languages and allow the user to update them all, that'd work fine I
> > think.
>
> > How do I implement this though from a browser perspective?
>
> > I'd like to put a challenge on the front page of the asking for which
> > language the user wants the site. Maybe flags int he time honoured sense
> > or whatever.
>
> > Thing is though, How do I store this information so that my app knows
> > which page to display for this user. I;ve heard of Sessions? but haven't
> > used them yet, is that how to do it, any tips or code fragment to get me
> > started would be grately apprecaited. wer wer
>
> > cheers,
>
> > bb
> > --
> > Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to