내 웹 사이트에 여러 언어와 UI 문화를 표시하고 싶습니다. 나는 자동으로 그렇게 브라우저에서 문화를 집어 들고는 IIS 7 플래그를 활성화 한 :ASP.NET MVC 3의 문화 문제
<globalization
enableClientBasedCulture="true"
culture="en-GB"
uiCulture="auto:en"/>
이 그 올바른 자원 파일을로드에서 완벽하게 작동하고 올바른 문화가 표시됩니다 (GB 0.00 0, DE는 00).
그러나 이것은 예기치 않은 문제가 외부 서비스와 관련되어 있습니다 (예 : PayPal과의 인터페이스 코드). ToString("0.00")
-
var paymentDetails = new PaymentDetailsType
{
ItemTotal = new BasicAmountType
{
currencyID = currencyCode,
Value = basket.SubTotal.ToString("0.00")
},
...
}
이 코드는 기본적으로 문화가 (독일어 예 DE에 대한) 소수점으로 쉼표를 가지를 선택하면 페이팔은 항상 점 소수점을 필요로하지만 같은, 그래서 '50.25'
같은 형식 문자열을 생성 '50,25'
을 생성하므로 내 코드가 실패합니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 나는 여전히 문화를 사용자 문화로 설정하고 싶지만 내 코드의 특정 부분을 자신의 문화를 사용하도록 설정하고 싶습니다.
나는 특정 문화에서 ToString()
방법으로 먹일 수 있지만, 이것은 매우 hackish 것 같습니다. 더 전문적인 깨끗한 접근법?
특정 문화에 먹이 :
여기에 두 번째 System.IFormatProvider 매개 변수를 사용 된 toString 과부하 (에 대한 링크)입니다. –