I'm building dynamic HTML emails by using RazorEngine to populate a CSHTML template. I need to send emails in multiple languages, and I'd like to use localized string resources within my template to switch languages, like so:

@Resources.EmailTemplate.OrderNumberLabel

How can I specify the culture used by RazorEngine? It always appears to use the default culture when pulling in strings. I've tried setting the thread culture before parsing with no luck:

System.Threading.Thread.CurrentThread.CurrentCulture System.Globalization.CultureInfo.CreateSpecificCulture(culture);

Note: I've seen other implementations that have used a different CSHTML file for each language, but I'd like to keep the localized content and the markup separated.

有帮助吗?

解决方案

You need to set the Thread.CurrentThread.CurrentUICulture property instead of, or in addition to, the CurrentCulture property.

其他提示

Please look at The localized templates service here http://netmvc.blogspot.ca/2012/04/localizable-text-template-engine-using.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top