Rails i18n: проблема с переводом, локаль не определена - PullRequest
5 голосов
/ 25 января 2011

У меня проблема с приложением Rails 2.3.8.Я использую рельсы i18n, чтобы сделать сайт на разных языках.Все работает отлично, везде, кроме одного места.

После успешной регистрации я делаю:

flash[:notice] = t 'path.to.locale.key'

Так же, как и везде.

Но это приводит к следующему:

translation missing: 'locale.path.to.locale.key' not found

Кажется, что он не загружает текущую локаль (или вместо «локали» будет написано «en», или «es», или что-то еще).

Любая идея, которая может быть причиной этого?

Спасибо

Ответы [ 3 ]

8 голосов
/ 25 января 2011

Может быть, вы перезаписали его где-нибудь в этом файле yml. Может быть, вы сделали слишком много вложений. Возможно, у этого ключа есть подразделы.

Удалите все из этого locale.yml, поместите только это сообщение и посмотрите, работает ли оно.

Проблема, с которой вы сталкиваетесь, время от времени случается со мной, и я всегда путаюсь в файле yml.

1 голос
/ 25 января 2011

Попробуйте установить стандартную локаль в ApplicationController, например, с параметром before_filter:

I18n.locale = params[:locale] || 'en'
0 голосов
/ 24 апреля 2014

Ну, это случилось со мной в классах почтовой программы после того, как я обновил до Rails 4.1.Он работал правильно на Rails 3 и не было никаких изменений в файлах yml.Каким-то образом i18n не увидел локаль по умолчанию.Поэтому я добавил эту строку в класс почтовой программы, чтобы исправить это.

 I18n.locale = I18n.default_locale

class ProviderMailer < ActionMailer::Base
  include Resque::Mailer
  default from: APP_CONFIG.mailer.from

  def registration_email(provider)
    @provider = provider
    I18n.locale = I18n.default_locale
    @provider_url  = "#{APP_CONFIG.base_url}/hizmetsgl/#{provider['_id']}"
    @howto_url  = "#{APP_CONFIG.base_url}/hizmetverenler"
    mail(to: provider["business_email"], subject: t('provider_mailer.registration_email.subject')) 
  end

end
...