我尝试翻译我的网络应用并遵循以下指南:Ruby on Rails Guides
我为我的语言(希腊语)制作了我的el.yml,我的Gemfile有gem'trail-i18n',而我在application_controller中的代码有
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options={})
logger.debug "default_url_options is passed options: #{options.inspect}\n"
{ :locale => I18n.locale }
end
在我的application.html.erb中,我使用
<%= l(Time.now, :format => :short) %></p
一切都很好,我的用户用希腊语查看时间。但是来自Users的前5个ID是admins和admins_controller处理文章。当管理员查看时间时会出现此错误:
I18n::MissingTranslationData in Admin#articles
Showing /home/panagiotis/projects/diplomatiki/app/views/layouts/application.html.erb where line #43 raised:
translation missing: el?state=4.time.formats.short
-
class AdminController < ApplicationController
class ApplicationController < ActionController::Base
所有使用ApplicationController的原因是什么不使用AdminController(继承)?
答案 0 :(得分:0)
我的问题的最终解决方案删除了以下代码
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options={})
logger.debug "default_url_options is passed options: #{options.inspect}\n"
{ :locale => I18n.locale }
end
使用此代码所有链接都有像el这样的扩展名吗?我的默认链接不起作用 现在我用l(Time.now,:format =&gt;:short)一切都用希腊语。