l10n支持红宝石

时间:2014-07-01 09:16:42

标签: ruby localization

我可以使用python locale module和posix本地化数据库解析本地化日期:

import locale, datetime

locale.setlocale(locale.LC_TIME, 'tr_TR.UTF-8')
print datetime.datetime.strptime("1 Haziran 2014", "%d %B %Y")

===

修改

此示例加载locale和datetime模块,解析本地化日期以创建python的datetime类的实例。我正在寻找可以使用posix数据库解析本地化日期的Ruby代码。

===

红宝石中是否有相同的含量?如果在C ++中有像python的语言环境模块或Boost.Locale这样的ruby库,你能给出示例代码吗?我尝试了gettext gemlocale gem(我设置了当前的区域设置并尝试了Time.strptime,但失败了。)

我不希望自定义gsub或i18n配置文件解析。我要求使用posix数据库来解析日期的代码。

2 个答案:

答案 0 :(得分:0)

Gemfile

中需要2个自定义宝石

慢性:

$ git clone git://github.com/mojombo/chronic.git
$ cd chronic && gem build chronic.gemspec
$ gem install chronic-*.gem

Chronic-l10n:

$ git clone git://github.com/luan/chronic-l10n.git
$ cd chronic-l10n && gem build chronic-l10n.gemspec
$ gem install chronic-l10n-*.gem

<强>用法:

require 'chronic'
require 'chronic-l10n'

Time.now   #=> Sun Aug 27 23:18:25 PDT 2006

Chronic.locale = :'pt-BR'

Chronic.parse('amanhã')
  #=> Mon Aug 28 12:00:00 PDT 2006

Chronic.parse('segunda', :context => :past)
  #=> Mon Aug 21 12:00:00 PDT 2006

Chronic.parse('essa terça 5:00')
  #=> Tue Aug 29 17:00:00 PDT 2006

Chronic.parse('essa terça 5:00', :ambiguous_time_range => :none)
  #=> Tue Aug 29 05:00:00 PDT 2006

Chronic.parse('27 de maio', :now => Time.local(2000, 1, 1))
  #=> Sat May 27 12:00:00 PDT 2000

Chronic.parse('27 de maio', :guess => false)
  #=> Sun May 27 00:00:00 PDT 2007..Mon May 28 00:00:00 PDT 2007

Chronic.parse('6/4/2012', :endian_precedence => :little)
  #=> Fri Apr 06 00:00:00 PDT 2012

答案 1 :(得分:0)

目前似乎没有ruby gem或代码可以加载posix数据库并使用strptime样式标志解析日期。 (不接受复制粘贴答案)