Spree/Solidus:格式化货币以在价格前显示代码 space "€ 99"
Spree/Solidus: format currency to show symbol before price with space "€ 99"
我使用 Rails 4 和 Solidus 1.2
如何将价格格式化为在数字前带有 space 的货币符号,例如“€ 99”?
Spree/Solidus 使用 Ruby Money Gem 来处理货币,我在 https://github.com/RubyMoney/money/blob/master/lib/money/money/formatting.rb 中看到有一个配置选项
Spree::Money.default_formatting_rules[:symbol_before_without_space] = true
但没有 Spree::Money.default_formatting_rules[:symbol_before_with_space] = true
在我的初始化程序中:
# config/initializers/spree.rb
Money::Currency.register({
:priority => 1,
:iso_code => "EUR",
:iso_numeric => "978",
:name => "Euro",
:symbol => "€",
:subunit => "Cent",
:subunit_to_unit => 100,
:separator => ".",
:delimiter => ","
})
而且我还尝试在我的本地化文件中格式化 de.yml:
---
de:
number:
currency:
format: "%u %n"
但是价格格式仍然是“104,90 €”而不是“€ 104,90”。
我不想使用字符串插值来格式化货币。是否有我缺少的配置选项?
好吧,这很尴尬,但我不得不设置
Spree::Money.default_formatting_rules[:symbol_before_without_space] = false
得到我想要的格式。
你需要做
Spree::Money.default_formatting_rules[:symbol_position] = :before
我使用 Rails 4 和 Solidus 1.2 如何将价格格式化为在数字前带有 space 的货币符号,例如“€ 99”?
Spree/Solidus 使用 Ruby Money Gem 来处理货币,我在 https://github.com/RubyMoney/money/blob/master/lib/money/money/formatting.rb 中看到有一个配置选项
Spree::Money.default_formatting_rules[:symbol_before_without_space] = true
但没有 Spree::Money.default_formatting_rules[:symbol_before_with_space] = true
在我的初始化程序中:
# config/initializers/spree.rb
Money::Currency.register({
:priority => 1,
:iso_code => "EUR",
:iso_numeric => "978",
:name => "Euro",
:symbol => "€",
:subunit => "Cent",
:subunit_to_unit => 100,
:separator => ".",
:delimiter => ","
})
而且我还尝试在我的本地化文件中格式化 de.yml:
---
de:
number:
currency:
format: "%u %n"
但是价格格式仍然是“104,90 €”而不是“€ 104,90”。
我不想使用字符串插值来格式化货币。是否有我缺少的配置选项?
好吧,这很尴尬,但我不得不设置
Spree::Money.default_formatting_rules[:symbol_before_without_space] = false
得到我想要的格式。
你需要做
Spree::Money.default_formatting_rules[:symbol_position] = :before