当我为我的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方法的模型。但我知道这不是最好的做法。
你能告诉我你是怎么解决的吗?还有更好的方法吗?