Rails最佳实践:模型和控制器的翻译

时间:2014-07-15 18:23:28

标签: ruby-on-rails ruby-on-rails-4 internationalization rails-i18n

当我为我的rails应用程序实现翻译时,我经常说到我在模型中或在我想要翻译的控制器中定义了一些字符串。

例如 in controllers ,当我使用重定向时,Flash会发出通知或警告:

redirect_to events_path, notice: 'All events deleted.'

def redirect_back!(message)
  (message != '' and message != nil) ? redirect_to(:back, alert: message) : redirect_to(:back)
  rescue ActionController::RedirectBackError
    redirect_to root_path, alert: 'Please allow in your browser the transmission of the referer.'
end

在模型中我经常使用枚举(因为rails 4.1)并为它们定义一个方法,该方法返回枚举的可读字符串。例如:

def readable_status
    if self.unprocessed?
        return 'Unbearbeitet'
    elsif self.processed?
        return 'In Bearbeitung'
    elsif self.completed?
        return 'Korrigiert'
    elsif self.rejected?
        return 'Abgewiesen'
    end
end

对我来说(我是德国人)这种方法非常重要,因为我们的许多客户都不接受英文枚举符号(例如本例中的“未处理”)。

通常我在所有控制器中include ActionView::Helpers::TranslationHelper使用translate方法的模型。但我知道这不是最好的做法。

你能告诉我你是怎么解决的吗?还有更好的方法吗?

0 个答案:

没有答案