Согласно Rails 3.2 API Документам , чтобы использовать разные локали для number_to_currency
, мне нужно сделать следующее:
<%= number_to_currency(1234567890.506, :locale => :fr) %>
Я ожидал следующий вывод:
# => 1 234 567 890,51 €
Несмотря на то, что я буквально использую именно эту вещь в своем приложении, и она продолжает выводить следующее:
$1,234,567,890.51
Когда я проверяю available_locales
в своем приложении, я получаю следующее:
> I18n.available_locales
=> [:en, :de, :es, :fr, :ja, :pl, :"pt-BR", :ru, :sv, :"zh-CN"]
Так что ДОЛЖНО работать, но это не так.
Чего мне не хватает?
Обновление 1
За комментарий @ s3tjan, я немного покопался в этой связанной проблеме Rails, и это привело меня к моему application.rb
, где я обнаружил I18n.enforce_available_locales = false
.Я изменил это на true и перезапустил сервер.
Когда я повторил попытку выше, я теперь получаю эту ошибку:
ActionView::Template::Error (:fr is not a valid locale):
Не уверен, как это исправить.
Обновление 2
Так что я просто понимаю, что у меня никогда не было файла локали в моем config/locales
.Что я действительно хочу, так это использовать фунты стерлингов для валюты, поэтому я добавил файл en-GB.yml
в свой config/locales
, а затем перезапустил сервер и консоль.
В моем application.rb
у меня есть следующее:
I18n.enforce_available_locales = true
Затем я проверил свою консоль и получил это:
[1] pry(main)> I18n.available_locales
=> [:en, :de, :es, :fr, :ja, :pl, :"pt-BR", :ru, :sv, :"zh-CN", :"en-GB"]
[2] pry(main)>
Так что :"en-GB"
былоуспешно добавлен в путь загрузки моего приложения.
Но когда я делаю это на мой взгляд:
<%= number_to_currency(1234567890.506, :locale => :"en-GB") %>
Это ошибка, которую я получаю:
:"en-GB" is not a valid locale excluded from capture due to environment or should_capture callback
ActionView::Template::Error (:"en-GB" is not a valid locale):
Так ещене работает.
Обновление 3
Мой en-GB.yml
файл был взят непосредственно из https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en-GB.yml
Так что это выглядит именно так.Я все еще получаю ту же ошибку:
ActionView::Template::Error (:"en-GB" is not a valid locale):