ruby - 在没有 Rails 的情况下在 Ruby 中本地化数字

标签 ruby localization

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

我在 Rails 的 ActionView 中找到了 NumberHelper 类,并且 this question说明如何将它包含在非 Rails 应用程序中。但是,让我的应用程序依赖于整个事件模型框架似乎只是为了获得一些数字本地化例程而矫枉过正。

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

最佳答案

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

它可以做与 I18n 相同的事情,但更灵活并且还可以本地化数字。它不依赖于其他 gem。

基本用法:

  • 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 中)

关于ruby - 在没有 Rails 的情况下在 Ruby 中本地化数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888726/

相关文章:

Ruby:对不包括某些符号的数组进行排序

ruby lambda 捕获 : a weird effect and workaround

asp.net - 如何控制模型验证错误的显示语言

delphi翻译工具

ruby - 如何在某些类型的参数上使用 RSpec 正则表达式参数匹配

ruby 为哈希数组设置哈希键

ruby-on-rails - 如果你想在生产模式下使用它,如何解决 "You need to add gem ' 守护进程到你的 Gemfile 的错误?

iphone - IOS:将语言添加为 Localizable.strings

ios - iOS 应用如何知道最终用户的语言选择?

c# - 在设计时更改 AppResources