Ruby-Rails上的Refinery CMS:博客模块中的字符串翻译/本地化



在精炼厂CMS的博客模块中,源代码中有一些字符串我想翻译。当我覆盖博客模块的_post.html.erb视图时,里面有这样的代码:

 <%= content_tag(:span, 
   "#{t('by', :scope => 'refinery.blog.posts.show')} #{@post.author.username}",
   :class => "blog_author") if @post.author.present? %>

我想本地化"by"字符串,这样在博客中,默认的英语"by authorname"就会被另一种语言的短语所取代。

现在,我修改了rails-config/locates目录中的en.yml和hr.yml本地化文件,并添加了翻译。但是,这对页面上显示的字符串没有任何影响。

我曾尝试将config/application.rb中的configuration.i18n.default_locale变量设置为:en和我想要的语言,但这也没有任何效果。

例如,如果我将initializers/rerefiner/i18n.rb中的config.current_locale变量更改为:de,则可以转换refiner及其博客模块的管理界面。然而,博客条目中的字符串保持不变。

我还在精炼博客组件的gems库中添加了一个yml文件,其中包含我所在地区的翻译,但它仍然不起作用。

如有任何关于如何翻译炼油厂博客模块中的字符串的帮助,我们将不胜感激。我在互联网上搜索了如何翻译炼油厂,但并没有找到任何关于博客组件翻译的具体信息,只有rails的一般指南,这似乎对炼油厂博客没有帮助。

我正在使用以下宝石版本:

  • 轨道(4.2.4)
  • 轨道-i18n(4.0.7)
  • 枕木(4.2.4)
  • 精磨机(3.0.0 1d13007)
  • refinerycms充当索引(2.0.1)
  • refinerycms身份验证设计(1.0.4)
  • refinerycms博客(3.0.0 5ee8336)
  • 精磨机核心(3.0.0 1d13007)
  • refinerycms-i18n(3.0.1 ff93ad9)
  • refinerycms图像(3.0.0 1d13007)
  • refinerycms页面(3.0.0 1d13007)
  • refinerycms资源(3.0.0 1d13007)
  • refinerycms搜索(3.0.0 aa8098c)
  • refinerycms设置(3.0.0)
  • refinerycms-wymeditor(1.0.6)

提前谢谢!

p.S

我已将翻译字符串添加到hr.yml并设置

config.i18n.default_locale = :hr
config.i18n.locale = :hr

应用程序.rb.中

在轨道控制台中,我得到:

*I18n.locale* => :hr, 
 I18n.translate('hello') => "Pozdrav svima" 

但是,当我启动应用程序时,rails服务器消息中有:

*Parameters: {"locale"=>:en}*

没有翻译工作。。。为什么?

根据rails区域设置指南可以根据url设置应用程序区域设置。对于localhost,区域设置为english。为了改变这一点,可以修改application_controller.rb

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
  before_action :set_locale
  def set_locale
    I18n.locale = I18n.default_locale
  end
end

最新更新