ruby-on-rails – 具有所有月份名称的本地化下拉列表
发布时间:2020-12-17 02:56:21 所属栏目:百科 来源:网络整理
导读:我试图在Rails 4中提供所有月份的下拉列表.我是这样做的: select % (1..12).each do |month| % option value="%= month %"%= Date::MONTHNAMES[month] %/option % end %/select 现在的问题是我想本地化它,但我不能在简单的字符串上使用locate方法应用月份的
我试图在Rails 4中提供所有月份的下拉列表.我是这样做的:
<select > <% (1..12).each do |month| %> <option value="<%= month %>"><%= Date::MONTHNAMES[month] %></option> <% end %> </select> 现在的问题是我想本地化它,但我不能在简单的字符串上使用locate方法应用月份的名称. 我该怎么解决这个问题? 更新 我知道我可以自己翻译,但我希望,因为Rails非常友好地用英语给我一个名字,如果有任何方式Rails可以用其他语言给我. 解决方法
首先,安装
rails-i18n gem.这个gem包含许多语言环境的本地化数据.请务必小心根据Rails版本安装的gem版本(如README中所述).
接下来,在application.rb配置中定义需要支持的语言环境(在README中再次描述): config.i18n.available_locales = [:cs,:en,:es,:de] 然后,您可以在任何地方简单地使用I18n.l(即I18n的localize方法)并使其仅打印给定语言环境中的月份名称(有关格式化选项,请参阅本地化in the Rails guides和 您需要在一年中生成一系列日期(例如,所有月份的第一天). # 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,locale: :de) } # => ["Januar","Februar","M?rz","Mai","Dezember"] dates.map{ |d| I18n.l(d,locale: :cs) } # => ["leden","únor","b?ezen","duben","květen","listopad","prosinec"] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |