On 03.10.2008, at 14:51, Karel Minarik wrote:

>
> Hello Iain,
>
> *please* don't advise people to use `session` for setting locale! That
> is an unfortunate choice by the official i18n demo app and completely
> breaks RESTfullnes of anything. (ie. completely breaks even such
> simple thing like sending someone a URL and expecting that she'll see
> the same thing.)
>
> One should set locale from params, hostname, accepted-language header,
> whatever, just *not* session.
>
>
> Karel
>
> On Oct 2, 9:01 pm, "Iain Hecker" <[EMAIL PROTECTED]> wrote:
>> Hi,
>>
>> You're missing a few parts. First is the loading of the files into
>> I18n. Put this into your environment:
>>
>> I18n.load_translations(*Dir.glob(LOCALES_DIRECTORY+'/**/*.yml'))
>>
>> look here how to get 
>> available_locales:http://rails-i18n.org/wiki/pages/i18n-available_locales(put
>>  
>>  it in an
>> initializer)
>>
>> Secondly, you need to set the proper locale at every request, so in
>> your before_filter you need to default to the locale stored in the
>> user's session or from preferences stored in the database.
>>
>> def set_locale
>>   I18n.locale = params[:locale] or session[:locale] or  
>> I18n.default_locale
>>   session[:locale] = I18n.locale
>> end
>>
>> Hope this helps,
>>
>> Iain
>>
>> On Thu, Oct 2, 2008 at 19:14, Redd Vinylene  
>> <[EMAIL PROTECTED]> wrote:
>>
>>> Hello hello! I just finished translating my app, however my
>>> translations won't load. So first, what am I doing wrong? And  
>>> second,
>>> is there anything that can be done better? I'm a bit confused since
>>> every tutorial and demo app seems to have its own way of doing  
>>> things.
>>> Alright, that's it. Thanks everyone!
>>
>>> /myapp
>>> /myapp/lang
>>> /myapp/lang/en
>>> /myapp/lang/en/en.yml
>>> /myapp/lang/en/en_about.yml
>>> /myapp/lang/en/en_app.yml
>>> /myapp/lang/is/is.yml
>>> /myapp/lang/is/is_about.yml
>>> /myapp/lang/is/is_app.yml
>>
>>> ## /myapp/config/environment.rb
>>
>>> I18n.default_locale = "en"
>>
>>> LOCALES_DIRECTORY = "#{RAILS_ROOT}/lang/"
>>
>>> LOCALES_AVAILABLE = Dir["#{LOCALES_DIRECTORY}/*/*.yml"].collect do  
>>> |locale_file|
>>>  File.basename(locale_file, ".yml")
>>> end.uniq
>>
>>> ## /myapp/app/controllers/application.rb
>>
>>> before_filter :set_locale
>>
>>> def set_locale
>>>  I18n.locale = params[:locale] if params[:locale]
>>> end
>>
>>> ## /myapp/app/helpers/application_helper.rb
>>
>>> def t(*args)
>>>  translate(*args)
>>> end
>>
>>> ## /myapp/app/views/admin/preferences/edit.html.erb
>>
>>> <%= f.label "locale", t(:"locale") %><%= f.select("locale",
>>> options_for_select(LOCALES_AVAILABLE, I18n.locale) %>
>>
>>> --
>>> http://www.home.no/reddvinylene
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"rails-i18n" 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/rails-i18n?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to