我正在Sitecore 8.0 Update 2中构建自动化任务,以自动发送一些电子邮件。这些电子邮件需要使用不同的语言。
我一直使用这种方法:
Sitecore.Globalization.Translate.TextByDomain("General Dictionary", "some-key");
但是,当我尝试使用此代码时:
Sitecore.Globalization.Translate.TextByLanguage("some-key", Sitecore.Context.Language);
它不起作用(即使我只使用当前的上下文语言)。 我几乎找不到关于此的文档。我需要做些什么才能让它发挥作用?
答案 0 :(得分:3)
正如@jammykam建议的那样,也许您需要使用SiteContextSwitcher类包装代码,因为Sitecore.Context.Database可能在任务代理执行期间引用Core数据库,因为上下文站点是“ scheduler ” 所以你的代码应该是:
using (var switcher = new SiteContextSwitcher((SiteContextFactory.GetSiteContext("website"))))
{
//Rest of your code
}
答案 1 :(得分:0)
我查看了Sitecore.Globalization.Translate.TextByLanguage方法并且可以正常工作。
请问,请检查“核心”数据库中是否存在翻译。 Sitecore用于在“主”数据库中存储字典项,但现在它将翻译存储在“核心”数据库中。