在精炼厂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