如何设置padrino模块的人性化名称?

时间:2018-01-31 16:38:54

标签: padrino

你好吗? 我刚刚安装了padrino框架管理面板。 它在管理模块中显示了几个选项卡。 我想重命名标签。但怎么办呢? 这是视图边码

<%= link_to project_module.human_name, url(project_module.path) %>

在这里,我无法设置project_module的human_name。 这是application.rb中的模块定义

access_control.roles_for :admin do |role|
      role.project_module :accounts, '/accounts'
      role.project_module :venues, '/venues'
      role.project_module :shows, '/shows'
end

现在标签标签是帐户,场地,节目。 如何将它们设置为Users,MyVenues,MyShows? 感谢

1 个答案:

答案 0 :(得分:1)

今晚似乎也遇到了这个问题。这似乎是Padrino核心框架中的一个小错误。

开箱即用的标准导航逻辑永远不会产生正确的本地化文本。它呈现函数.humanize

的输出

https://github.com/padrino/padrino-framework/blob/8bd3796d45eae5e3f7dc52316c8c25c44563f8cd/padrino-admin/lib/padrino-admin/access_control.rb#L176

充其量,人性化功能将使文本更新。见https://apidock.com/rails/String/humanize

您可以使用I18n.t()可本地化的函数替换human_name引用:

  %ul.nav.navbar-nav.pull-left
        - project_modules.each do |project_module|
          %li{:class => "navbar-module #{('active' if request.path_info =~ /^#{project_module.path}/)}"}
            =link_to I18n.t(project_module.name), url(project_module.path)

请参阅http://padrinorb.com/guides/features/localization/以供参考。

注意,导航不能识别模型,因此您的翻译文本需要在yml文件中的语言环境引用下。

实施例

en:
  accounts: Users
  venues: MyVenue
  shows: MyShows

这应该可以解决问题。如果您有任何问题,请告诉我。