Валюта зависит от страны-части локали.Поскольку en
не содержит часть страны, это недопустимый аргумент для создания экземпляра Currency.
Другими словами: вы ожидаете $
, US$
, AU$
или £
Язык "en"?Или что-то другое?Там нет валюты для "английский".Существуют валюты для США, Великобритании, Австралии и т. Д., Но не для английского.
Редактировать Если пользователь правильно настроил свой браузер, то вы действительно получите локаль с разделами «Страна» и «Язык» (например, en-US
).Эти локали можно использовать так, как вы это сделали в своем вопросе.
НО вам следует рассмотреть возможность использования геотаргетинга на основе IP-адреса.Существуют базы данных, такие как GEO-IP и MaxMind .Имейте в виду, что есть различия - американский студент в семестре за границей в Германии занимается серфингом со своим ноутбуком.Его браузер может вернуть en-US
, но база данных GEO-IP, скорее всего, будет нацелена на Germany
.Но, может быть, это именно то, что вам нужно?!
Наконец, вы можете использовать один из этих подходов в качестве основного фактора таргетинга, а второй - в качестве резервного.Если оба не удаются, переключитесь на значение по умолчанию (например, US $)