为什么我的翻译密钥被忽略

时间:2017-03-06 02:29:07

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

我使用带有spree 3.2.0.rc3的rails 5.0.2。我在翻译文件中有这个键:

ru:
  spree:
    shipment_states:
      canceled: 'отменен'
      canceled_test: 'test'

在开发过程中,我抓住了I18n :: MissingTranslationData异常,并显示消息:' 翻译缺失:ru.spree.shipment_states.canceled '。我可以在异常页面的控制台上看到,我的翻译已经加载(' canceled_test' 键已添加),但'已取消' 键因某些原因被忽略:

>> (I18n.t '.')[:spree][:shipment_states]
=> {:backorder=>"задерживается", :canceled=>nil, :partial=>"частично", :pending=>"ожидает", :ready=>"готов", :shipped=>"отправлен", :canceled_test=>"test"}

为什么呢?我该怎么调试呢?

1 个答案:

答案 0 :(得分:0)

检查你的application.rb是否存在一行:

config.i18n.default_locale = :ru

然后尝试将所有状态添加到'shipment_states'。在我的情况下获得了以下代码:

ru:
  spree:
    shipment_states:
      backorder: 'Задерживается'
      canceled: 'Отменен'
      partial: 'Доставлен частично'
      pending: 'Ожидает подтверждения'
      ready: 'Готов к отправке'
      shipped: 'Отправлен'