Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Redmine插件本地化_Ruby On Rails_Plugins_Internationalization_Redmine - Fatal编程技术网

Ruby on rails Redmine插件本地化

Ruby on rails Redmine插件本地化,ruby-on-rails,plugins,internationalization,redmine,Ruby On Rails,Plugins,Internationalization,Redmine,我正在为redmine开发一个插件,在本地化视图时遇到了问题。 我是rails和redmine插件开发的新手,所以这里可能缺少一些东西。 我正在使用从redmine信息中获取的以下环境: Environment: Redmine version 2.3.3.stable Ruby version 1.9.3-p448 (2013-06-27) [x86_64-linux] Rails version

我正在为redmine开发一个插件,在本地化视图时遇到了问题。 我是rails和redmine插件开发的新手,所以这里可能缺少一些东西。 我正在使用从redmine信息中获取的以下环境:

Environment:
  Redmine version                2.3.3.stable
  Ruby version                   1.9.3-p448 (2013-06-27) [x86_64-linux]
  Rails version                  3.2.13
  Environment                    production
  Database adapter               Mysql2
据我所知,当我的区域设置文件包含activerecord.attributes.Model.xxx中的条目时,我可以使用*human\u attribute\u name:attribute*方法获取属性的本地化字符串。 我有两个模型公司和客户

在我的观点中,我使用的例子是:

  ...
  <h4><%= link_to company.name, company_path(company.id)  %> </h4>

  <b><%= Company.human_attribute_name(:branch) %></b> :
  <%= company.branch %>
  <br>
  <b><%= Company.human_attribute_name(:url) %></b>  :
  <%= company.url %>
  ...
activerecord.attributes部分不工作*human_attribute_name*只返回标准属性名,即:branch=>branch。 activerecord.models部分工作正常。。因此,公司/新网站中的提交按钮被标记为Erstelle Unternehmen 区域设置的label.helpers部分起作用,因此在标签的形式_中,属性是本地化的,即:branch=>Branche。 一般部分,即show_all=>Alles Anzigen也可以工作。 如果没有label.helpers部分,标签的表单_将停止本地化。 翻译似乎有效,但属性部分肯定有一些我找不到的错误。 我抛出了我的de.yml,它似乎是有效的yaml,所以没有yaml格式问题


有人能告诉我我的视图/翻译有什么问题吗?

通过使用助手解决了这个问题: app/helpers/companys\u helper.rb:

module CompaniesHelper
  def t_att(model, attribute)
    t("activerecord.attributes.#{model}.#{attribute}")
  end
end
因此,在视图中,您可以使用

<p>
<%= t_att(:company, :branch) %> :
<%= company.branch %>
</p>
所以你得到了
布兰奇:xyz

同样的问题。我不知道为什么人名在Redmine插件中不起作用。您可以使用t'activerecord.attributes.company.branch'代替,但它不太干净…谢谢。这可能是一个解决方法。包装activerecord.attributes.{model}.{attribute}并在视图中创建一个可以使用的帮助器方法,即t_att:model,:attribute,这样您就可以在中心级别上更改转换路径,并识别缺少的属性/转换。这是可行的,但感觉不正确。
<p>
<%= t_att(:company, :branch) %> :
<%= company.branch %>
</p>