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