Я хочу отображать несколько языков и культур интерфейса на моем веб-сайте.Я включил флаг IIS 7, который автоматически выбирает культуру из браузера следующим образом:
<globalization
enableClientBasedCulture="true"
culture="en-GB"
uiCulture="auto:en"/>
Это отлично работает, поскольку загружаются правильные файлы ресурсов и отображается правильная культура (0,00 для ГБ;0,00 для DE).
Однако возникла неожиданная проблема с вмешательством в мои внешние службы, например, вот код для взаимодействия с PayPal.
var paymentDetails = new PaymentDetailsType
{
ItemTotal = new BasicAmountType
{
currencyID = currencyCode,
Value = basket.SubTotal.ToString("0.00")
},
...
}
Этот код в основномсоздает строку, отформатированную так: '50.25'
, однако, поскольку PayPal всегда требует десятичного разделителя, при выборе культуры с запятой в качестве десятичного разделителя (например, DE - немецкий), ToString("0.00")
генерирует '50,25'
и т. д.мой код не работает.
Какой лучший способ исправить это?Я по-прежнему хочу, чтобы культура была настроена на культуру пользователя, однако я хочу настроить определенные части своего кода на использование своей собственной культуры.
Я знаю, что в определенной культуре я могу использовать метод ToString()
, ноэто выглядит очень хакерским .Есть еще профессиональные подходы?