Question

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.

Was it helpful?

Solution

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

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top