我发现很多文章都在谈论i18n与Rails,Nanoc,但没有关于一个非常简单(我认为)的事情:如何在nanoc文章上国际化日期。
我有一个非常简单的设置,例如这里是我的index.html页面的片段:
<%= link_to(post[:title], post.path) %> - <%= post[:created_at] %>
这是一篇虚拟文章:
---
title: Test
created_at: 1 January 1970
---
编译时会给出这个结果:
Test - 1 January 1970
但我希望这个日期是法语,就像这样:
Test - 1 Janvier 1970
答案 0 :(得分:1)
你可以使用Rails&#39;国际化宝石i18n
,它自己完成这项任务。这是一个简单的例子:
如果您正在使用Bundler,请编辑您的nanoc项目Gemfile
以包含i18n
gem:
gem 'i18n'
否则,请在您的计算机上本地安装gem(您可能需要超级用户权限):
gem install i18n
在您的nanoc项目中添加法语翻译文件,例如tr/fr.yml
。将这些(最小)内容放入其中:
---
fr:
date:
formats:
default: ! '%-d %B %Y'
month_names:
-
- janvier
- février
- mars
- avril
- mai
- juin
- juillet
- août
- septembre
- octobre
- novembre
- décembre
添加帮助程序以执行翻译,例如在lib/translate_date.rb
,使用以下代码:
require 'date'
require 'i18n'
# Load our translation files
I18n.load_path = Dir['./tr/*.yml']
# Set the default locale to French
I18n.locale = :fr
# Translates a date string into the default locale.
def translate_date(date)
I18n.l Date.parse(date, '%d %B %Y')
end
现在将其放在index.html
文件
<%= link_to(post[:title], post.path) %> - <%= translate_date(post[:created_at]) %>
你应该得到你想要的输出。