gpt4 book ai didi

ruby-on-rails - 翻译 Rails 时区

转载 作者:行者123 更新时间:2023-12-03 21:18:46 26 4
gpt4 key购买 nike

几个月前我们将网站国际化,但忘记了一个部分:用户选择时区的下拉菜单。

你如何翻译以下行:

  = f.time_zone_select :timezone, ActiveSupport::TimeZone.all

最佳答案

我遇到了同样的问题。但是,当我尝试实现 Peter's solution 时,我想到了一个更简单的解决方案。 time_zone_select helper 拿了 :model选项,默认为 ActiveSupport::TimeZone .根据 API 文档,这个模型所要做的就是在 all 中返回一个时区对象数组。方法。然后我们可以覆盖 to_s返回翻译的方法(如果未找到翻译,则默认为原始)。这是类(class):

# lib/i18n_time_zone.rb
class I18nTimeZone < ActiveSupport::TimeZone
def self.all
super.map { |z| create(z.name, z.utc_offset) }
end

def to_s
translated_name = I18n.t(name, :scope => :timezones, :default => name)
"(GMT#{formatted_offset}) #{translated_name}"
end
end

在 View 中:
<%= time_zone_select :user, :time_zone, nil, :model => I18nTimeZone %>

与之前一样在翻译文件中指定翻译:
# es.yml
es:
timezones:
"International Date Line West": "Línea de fecha internacional del oeste"
"Pacific Time (US & Canada)": "Tiempo pacífico (& de los E.E.U.U.; Canadá)"
# and so on

关于ruby-on-rails - 翻译 Rails 时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1396623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com