首先,安装rails-i18n gem。此 gem 包含许多语言环境的本地化数据。请根据 Rails 版本(如 README 中所述)特别注意您安装的 gem 版本。
接下来,定义您需要在 application.rb 配置中支持的语言环境(如自述文件中所述):
config.i18n.available_locales = [:cs, :en, :es, :de]
然后,您可以在任何地方简单地使用 I18n.l(即 I18n 的 localize 方法)并使其仅打印给定语言环境中的月份名称(请参阅@987654328 上的更多信息@in the Rails guides 和 strftime 用于格式化选项)。
您需要为此首先生成一年中的日期序列(例如所有月份的第一天)。
# generate dates for each month in the year
dates = (1..12).map{|d| Date.parse("#{'%02d' % d}/01") }
# => [Fri, 01 Jan 2016, Mon, 01 Feb 2016, Tue, 01 Mar 2016, Fri, ..., 01 Nov 2016, Thu, 01 Dec 2016]
# use these dates to get month names in the given locale
dates.map{ |d| I18n.l(d, format: "%B", locale: :en) }
# => ["January", "February", "March", "April", "May", ..., "November", "December"]
dates.map{ |d| I18n.l(d, format: "%B", locale: :de) }
# => ["Januar", "Februar", "März", "April", "Mai", ..., "November", "Dezember"]
dates.map{ |d| I18n.l(d, format: "%B", locale: :cs) }
# => ["leden", "únor", "březen", "duben", "květen", ..., "listopad", "prosinec"]