2

我有一个 Ruby 应用程序,它没有使用 Rails,但需要本地化。我一直在使用I18n gem,它适用于日期、时间和字符串。不过,它似乎不做数字,除非我遗漏了一些东西。

我在 Rails 的 ActionView 中找到了 NumberHelper 类,这个问题说明了如何将它包含在非 Rails 应用程序中。然而,让我的应用程序依赖于整个 activemodel 框架似乎只是为了获得一些数字本地化例程。

有没有更好的方法来解决这个问题?我应该改用其他 Ruby 本地化库之一吗?

4

1 回答 1

1

我为此使用了 gem R18n:https ://github.com/ai/r18n

它可以做与 I18n 相同的事情,但更灵活,还可以本地化数字。它没有其他宝石的依赖关系。

基本用法:

  • 添加r18n-core到 Gemfile
  • 用 `R18n.extension_places << 'path/to/yml/files' 初始化

然后要么:

i18n = R18n::I18n.new('en')
i18n.t[:foo][:bar] # => "Translated text"
i18n.l(123.45) # => "123.45"

或者更静态的版本:

R18n.locale = 'en'
R18n.t[:foo][:bar]
R18n.l(123.45)

Rails 和 sinatra 的助手存在(在其他 gem 中)

于 2014-07-19T21:00:02.033 回答