EDIT:
狂欢核心:产品表单不处理显示与 I18n/本地化相关的product.price 和product.cost_price。要修复此问题以适合您,您需要修改核心。我将向 Spree Core 团队发布有关此问题的信息,但在此期间,我已经测试了此修复程序,它应该可以工作。
In /gems/spree_core-1.0.0/app/views/spree/admin/products/_form.html.erb,您将需要修改这些行:
<%= f.text_field :price, :value => number_with_precision(@product.price, :precision => 2) %>
是这样的:
<%= f.text_field :price, :value => number_with_precision(@product.price, :precision => I18n.t('number.currency.format.precision'), :separator => I18n.t('number.currency.format.separator'), :delimiter => I18n.t('number.currency.format.delimiter')) %>
和这个:
<%= f.text_field :cost_price, :value => number_with_precision(@product.cost_price, :precision => 2) %>
是这样的:
<%= f.text_field :cost_price, :value => number_with_precision(@product.cost_price, :precision => I18n.t('number.currency.format.precision'), :separator => I18n.t('number.currency.format.separator'), :delimiter => I18n.t('number.currency.format.delimiter')) %>
本质上,我们正在让它处理国际化的潜在价值。
原来的:
我已经准确地复制了您的文件,并尝试了一些测试来重新创建它(创建新产品、新产品变体、更改产品价格、成本价等)。要重新创建它,您需要创建一个 de_numbers.yml,并在 Spree 初始值设定项中使用“config.default_locale = 'de'”将您的本地化翻转为“de”
以下是一些建议的修复方法:
- 确保运行捆绑安装
- 在您的 Gemfile 中,确保您使用的是最新版本的 i18n (
gem 'spree_i18n', :git => 'git://github.com/spree/spree_i18n.git')
- 将空格修复为 2 个空格,而不是制表符(这是可能存在空白问题,无法读取您的 i18n 值)
- 进入 Rails 控制台,并注销这些值(即
I18n.t('数字.货币.格式.单位')
- 尝试先让它在“en”区域设置中工作,然后在“de”区域设置中工作。
- 首先将您的值放入“de.yml”或“en.yml”中,然后在放入“de_currency.yml”文件之前查看它们是否有效。