RAILS:如何从生产中的某些I18n.t中消除“翻译丢失”(I18n.t后备启用)?

时间:2017-04-26 01:52:50

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

在我的Rails 4.2应用程序中,所有模块都是使用I18n.t()开发的。以下是index.html.erb的示例:

<table class="table table-hover">
  <thead>    
    <tr>
      <th><%= t('Create Date') %></th>
      <th><%= t(@for_which.sub('_', ' ').titleize) %></th>
      <th><%= t('Brief Note') %></th>
      <th><%= t('Ranking Index') %></th>
      <th><%= t('Active') %></th>
      <th><%= t('Entered By') %></th>
      <th></th>
      <th></th>
    </tr>
     </thead>
       <tbody>

local.rb下的initializers,本地设置为en

I18n.enforce_available_locales = false
I18n.default_locale = 'en' if Rails.env.production? || Rails.env.development?
I18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]

但我仍然看到生产和开发中某些translation missing的{​​{1}}错误,例如标签和索引标题如下: enter image description here

如何摆脱I18n.t的错误?

更新:即使translation missing中有以下translation missing后备,production内的错误也会显示在I18n.t中:

environment/production.rb

更新: 添加了CSS:

 # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
  # the I18n.default_locale when a translation cannot be found).
  config.i18n.fallbacks = true

但是标签,按钮和表格标题上的文字会消失: enter image description here

以下是显示标签//hide all "translation missing" warnings: body.production span.translation_missing { display: none; } 之一的html源代码的一部分:

Employee Infos

3 个答案:

答案 0 :(得分:2)

在您的 #config / application.rb 文件中,您可以执行以下操作

Rails.application.configure do |config|
  config.action_view.raise_on_missing_translations = false
end

您可以获得更多here

我希望这能够帮到你:)

答案 1 :(得分:0)

我不知道为什么,但是我只是重新启动了服务器,然后繁荣起来!奏效了。

您也可以尝试重新启动服务器:)

答案 2 :(得分:0)

使用“ Faker :: Job”代替“ Name.title”

Faker::Job
Faker::Job.title #=> "Lead Accounting Associate"

Faker::Job.field #=> "Manufacturing"

Faker::Job.seniority #=> "Lead"

Faker::Job.position #=> "Supervisor"

Faker::Job.key_skill #=> "Teamwork"

Faker::Job.employment_type #=> "Full-time"

Faker::Job.education_level #=> "Bachelor"

它对我有用:)