> Should I:
> 1. Make a separate field for each translation and add a method in the
> model to return the correct translation to use in templates?
> 2. Make a separate table for translations in general with a foreign
> key to the original record and look up the translation that way?
I think you should:
3. Save every item the same way as original(default language) with
information about i18n of its content.
for article, add one column to table, like 'i18n' or 'language'.
in my cms, every item can be langualized that way.
to receive correct items, I check what language is requested from URI
(domain.xx/en/articles/slug), store it by router, so whenever I need
main menu in another language, I simply gather rows with designated
lang. I may be used with complicated mechanisms too. easy, intuitive