我有一个 Ruby 应用程序,它没有使用 Rails,但需要本地化。我一直在使用I18n gem,它适用于日期、时间和字符串。不过,它似乎不做数字,除非我遗漏了一些东西。
我在 Rails 的 ActionView 中找到了 NumberHelper 类,这个问题说明了如何将它包含在非 Rails 应用程序中。然而,让我的应用程序依赖于整个 activemodel 框架似乎只是为了获得一些数字本地化例程。
有没有更好的方法来解决这个问题?我应该改用其他 Ruby 本地化库之一吗?
我为此使用了 gem R18n:https ://github.com/ai/r18n
它可以做与 I18n 相同的事情,但更灵活,还可以本地化数字。它没有其他宝石的依赖关系。
基本用法:
r18n-core
到 Gemfile然后要么:
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 中)