2017-01-31 11 views
1

У меня есть консольное приложение, которое отправляет аудиторские письма по расписанию. В электронной почте присутствуют как испанский, так и английский.Перевести динамический текст с английского на испанский в dotnet

Мы отправляем дату аудита также по электронной почте. Например: Понедельник, 09 января 2017 года. Этот текст также я хочу преобразовать на испанский. Есть ли способ конвертировать английский в испанский с помощью сторонних инструментов?

Я не могу использовать файлы ресурсов для перевода, потому что в этом случае текст динамический, который исходит из db, и он изменяется для каждого письма.

+0

Оба текста электронной почты на английском и испанском языках существуют в вашем db? –

+0

Refer: http://stackoverflow.com/questions/9022100/datetime-tostring-month-and-day-language –

ответ

3

Вы можете указать испанскую культуру методу строки:

DateTime dt = DateTime.Now; 
// Creates a CultureInfo for Spanish 
CultureInfo ci = new CultureInfo("es"); 
var strFormat = "ddd MMM dd,yyyy"; //please use yours format 
Console.WriteLine(dt.ToString(strFormat, ci)); 
+0

спасибо. Я попробую это –

+0

это сработало! благодаря! –

2
using System.Globalization; 

var date = DateTime.Parse("Monday, January 09, 2017"); 
var culture = new CultureInfo("es-ES"); 
Console.WriteLine(date.ToString("D", culture)); 

Выход

lunes, 9 de enero de 2017 
0

Если вы посмотрите на MailMessage.BodyEncoding собственности, вы обратите внимание на следующее:

The default character set is "us-ascii".

Попробуйте изменить кодировку перед отправкой:

message.BodyEncoding = Encoding.UTF8; 

(я предполагаю, что вы отправляете с помощью System.Net.Mail.MailMessage. Если вы используете System.Net.Mail.SmtpClient напрямую, я бы рекомендовал переключиться на использование класса MailMessage и передать его этому SmtpClient.

Смежные вопросы