这个locales.yml文件结构有什么问题以及如何修复它? (铁路项目)

时间:2014-02-03 15:54:04

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

假设我有views/admin/views/user/controller/admin/controller/user/(等)文件夹,那么构建我的locales.yml文件的正确方法是什么呢?工作正常吗?

现在,它看起来像这样:

en:
  views:
    admin:
      index:
        phrase1: Text1
        phrase2: Text2
        ... 
      new:
      show:
      ...
    user:
      index:
      new:
      show:
  controllers:
    ...
    etc

但是当我在<%= t :phrase1 %>代码中添加/views/admin/index.html.erb时,它不起作用(既不是这也不是<%= t ".phrase1" %>所以它不是语法错误)。但是,如果我将phrase1: Text1放在en:行的下方(任何子词典上方),一切正常。

1 个答案:

答案 0 :(得分:2)

您必须使用密钥才能获得翻译。将它看作树状结构。你必须告诉最后一页的整个路径。

在您的情况下,它是以下密钥:

"views.admin.index.phrase1"

例如,我们可以有一个如下所示的翻译文件:

en:
  home:
    salutation: "Welcome home"
  admin:
    salutation: "Welcome back master"

如您所见,我们有两个名为称呼的键。如果我们只使用“称呼”作为关键,就不可能分辨出我们需要哪一个。

使用路径home.salutationadmin.salutation可明确我们需要的文字值。

此外,必须输入整个键的一个原因比键入一部分更好。假设您能够编写一个依赖于上下文的转换,它将为该键设置前缀。当在控制器中时,它会在视图controllers.中添加views.,依此类推。

如果您输入完整密钥,您将始终在项目中找到它的使用位置。

如果你开始编写部分密钥,比如说dog,你会在代码中找到每个有dog字但不完全是controllers.home.dog的地方。什么时候调试和更改语言,你会很乐意使用完整的密钥。