views w locale default template

[RAILS3]

I hesitate on how handling the locale view templates to default to one language only ..

sending admin emails will go only to one locale 'en_GB'

should I set it up into the template name and set I18n.locale to 'en_GB'

membership_renew.en_GB.html.erb

OR

whatever locale is used , if I have :

membership_renew.html

it will be the default ?

Kad Kerforn wrote in post #999856:

[RAILS3]

I hesitate on how handling the locale view templates to default to one language only ..

sending admin emails will go only to one locale 'en_GB'

should I set it up into the template name and set I18n.locale to 'en_GB'

membership_renew.en_GB.html.erb

OR

whatever locale is used , if I have :

membership_renew.html

it will be the default ?

Hi, at least I didn't completely get your problem. The way I set a default locale is:

    config.i18n.fallbacks = true     config.i18n.default_locale = :en

I have 3 languages and if one translation is not found it fallback to english.

But again, I maybe didn't get your goal.

Cheers.

I agree , not very clear .... I was referring to mailer template views I tested many cases and it seems I need to define .en_GB views ( including the locale)

I am using already the fallback... config.i18n.fallbacks = true config.i18n.default_locale = :en_EN

but I am concerned by mailer ? which seems to handle locale differently. Here is a case :

I am logged in as current_user I select :en_ES as locale for display I visit the site .. and I some point the system need to send a message to the site admin...

as mailer views I MUST have templates like : welcome.en_GB.html.erb and NOT welcome.html.erb

I agree , not very clear .... I was referring to mailer template views I tested many cases and it seems I need to define .en_GB views ( including the locale)

I am using already the fallback... config.i18n.fallbacks = true config.i18n.default_locale = :en_EN

but I am concerned by mailer ? which seems to handle locale differently. Here is a case :

I am logged in as current_user I select :en_ES as locale for display I visit the site .. and I some point the system need to send a message to the site admin...

as mailer views I MUST have templates like : welcome.en_GB.html.erb and NOT welcome.html.erb

Huh? That doesn't sound correct to me. Specifying the locale in the template filename seems very odd. Can you point me at documentation on where this would required?

Thanks Walter,

I was using a trick :

class ActionMailer::Localized < ActionMailer::Base private # we override the template_path to render localized templates (since rails does not support that :frowning: ) # This thing is not testable since you cannot access the instance of a mailer... def initialize_defaults(method_name)    super      @template = "#{method_name}.#{I18n.locale}"    end end

seems to be a very bad idea... I'm moving to another folder structure,

views    > user_mailer    > en_GB    > membership_renew.html.erb    > membership_renew.text.erb    > es_ES    > membership_renew.html.erb    > membership_renew.text.erb

so I need the template path to be: @template = "#{ActionMailer::Base::template_root}/user_mailer/ {user.language || 'en_GB'}.erb"

where should I write it ? directly in the mailer method ?... will it handle the formats : html/text ?

def membership_renew(user, membership, clip)    .... ==> @template = "#{ActionMailer::Base::template_root}/user_mailer/ {user.language || 'en_GB'}/membership_renew.erb"     mail(:to => user.email, :subject => "Your Swing Analysis Request") do |format|         format.html { render :layout => "/mailer/sbga_user_mail" }         format.text     end end

just tried .. doesn't work ... @template is bypassed

ActionView::MissingTemplate: Missing template user_mailer/ membership_renew with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml, :haml], :formats=>[:html], :locale=>[:en_GB]} in view paths "/Users/yves/Sites/rails/testsbga/app/views"

it should be looking for : template user_mailer/en_GB/ membership_renew ......with {:handlers=>[:erb

the @template path seems to be build before the call to the mailer action ...