J86*_*J86 2 globalization resources internationalization ruby-on-rails-3.1
所以我有我的简单rails应用程序(不是数据驱动),我已经管理(在Stackoverflow的帮助下)本地化它.所以我可以用英语或德语查看Web应用程序.我使用捆绑的i18n库完成了这项工作.一切都很好,与之合作是一种快乐.
但是,现在,我想根据活动的区域设置加载不同的图像和/或css文件.我想要一个简洁的解决方案来解决这个问题.不是:
if i18n.locale = "en"
// show this particular image
else
// show that particular image
Run Code Online (Sandbox Code Playgroud)
上面的内容在我看来并不整齐,想象一下if语句或switch语句会多长时间获得更多的语言环境.
所以我在想,有没有办法可以扩展javascript_include_tag,stylesheet_link_tag和image_tag的功能,以便进行语言环境处理?
我想是这样的:
stylesheet_link_tag "default.css", :locale => true
Run Code Online (Sandbox Code Playgroud)
很高兴有,如果是真的,插入的样式表将是:
<link href="stylesheets/default.es.css" type="text/css" rel="stylesheet" />
Run Code Online (Sandbox Code Playgroud)
假设我的新位置是西班牙语.那将是可爱和干净的.
这可以在Ruby on Rails中实现吗?如果是的话,我会喜欢一些代码示例,因为我相对于rails而言是n00b.
谢谢.
您可以在包含资产时引用区域设置.假设您要包含特定于当前区域设置的样式表:
stylesheet_link_tag "custom_#{I18n.locale}.css"
Run Code Online (Sandbox Code Playgroud)
如果当前语言环境是en,则将查找该custom_en.css文件.
但请注意:您应该确保为要使用的每个区域设置创建一个文件.