Я хочу отображать на моем сайте несколько языков и культуры пользовательского интерфейса. Я включил флаг IIS 7, который улавливает культуру из браузера автоматически так:Проблемы с культурой в ASP.NET MVC 3
<globalization
enableClientBasedCulture="true"
culture="en-GB"
uiCulture="auto:en"/>
Это прекрасно работает в том, что файлы правильные ресурсы загружены, и отображается правильная культура (+0,00 для GB; 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()
, но это кажется очень хакерским. Любые более профессиональные чистые подходы?
Кормление в конкретной культуре _exactly_, что вам нужно сделать, как это то, что требует PayPal. –