【发布时间】:2012-05-01 07:10:06
【问题描述】:
我目前正在研究 Michael Hartl 的 Rails Tutorial,同时尝试书中未涵盖的其他一些内容。在完成创建静态页面的Chapter 5 之后,我决定将视图代码更改为 HAML,将页面国际化,并将静态内容放入单独的(非部分)Markdown 文件中,使用 RDiscount gem 来呈现它们。例如:
app/views/static_pages/about.html.haml
- provide(:title, t('.about_us'))
:markdown
#{render file: "static_pages/about.#{params[:locale]}.md"}
在 static_pages 目录下,我有 Markdown 文件,例如 about.en.md、about.it.md、about .ja.md 等,因此在 :locale 参数中进行插值决定了渲染哪种语言的 Markdown 文件。
我的问题是:
- static_pages 目录有点挤满了 Markdown 文件,因此是否有任何合理的默认/最佳实践位置(可能在 app 目录之外)来保存这些 Markdown文件,它们可能会被不需要了解应用内部运作的人编辑?
- 有什么更好的方法来实现在视图中渲染多语言 Markdown 文件?我使用
:locale和双字符串插值似乎不太优雅。 -
有没有办法更改此代码,以便我可以将 Ruby 变量传递到 Markdown 文件中?例如,我知道我可以在 Markdown 中使用
#{language}变量,只需将 about.en.md 更改为 HAML 部分 (_about.en.html.haml) 并将代码更改为如下所示:app/views/static_pages/about.html.haml
- provide(:title, t('.about_us')) :markdown #{render "about.#{params[:locale]}", language: 'Markdown!'}但是,有没有办法在不将 Markdown 文件更改为另一种类型的文件的情况下做到这一点?如果存在这种方式,是否推荐/可行?
【问题讨论】:
标签: internationalization haml markdown ruby-on-rails-3.2 railstutorial.org