在精炼厂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 / locales目录中的en.yml和hr.yml本地化文件,并添加了翻译。但是,这对我页面上显示的字符串没有任何影响。
我已尝试将 config / application.rb 中的 config.i18n.default_locale 变量设置为:en 并使用我想要的语言但是这也没有完成任何事情。
我来的最远的是,如果我将 initializers / refinery / i18n.rb 中的 config.current_locale 变量更改为:de 例如,它具有翻译炼油厂及其博客模块的管理界面的效果。然而,博客条目中的字符串保持不变。
我还在精炼厂博客组件的gems库中添加了一个带有我的语言环境翻译的yml文件,但它仍然不起作用。
有关如何翻译精炼厂博客模块中的字符串的任何帮助将不胜感激。我在互联网上搜索了如何翻译炼油厂,但没有找到任何具体的信息来翻译博客组件,只有导轨的一般指南,这似乎对炼油厂博客没有帮助。
我使用以下宝石版本:
提前谢谢!
P.S
我已将翻译字符串添加到 hr.yml 并设置
config.i18n.default_locale = :hr
config.i18n.locale = :hr
application.rb 中的。
在rails控制台中,我得到:
*I18n.locale* => :hr,
I18n.translate('hello') => "Pozdrav svima"
但是,当我启动应用程序时,在rails服务器消息中有:
*Parameters: {"locale"=>:en}*
并且没有翻译工作......为什么?
答案 0 :(得分:0)
根据rails locale guide 可以根据URL设置应用程序区域设置。对于localhost,语言环境设置为英语。要更改此设置,可以修改 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