Sitecore:按语言翻译

时间:2015-07-06 09:26:34

标签: sitecore translation sitecore8

我正在Sitecore 8.0 Update 2中构建自动化任务,以自动发送一些电子邮件。这些电子邮件需要使用不同的语言。

我一直使用这种方法:

Sitecore.Globalization.Translate.TextByDomain("General Dictionary", "some-key");

但是,当我尝试使用此代码时:

Sitecore.Globalization.Translate.TextByLanguage("some-key", Sitecore.Context.Language); 

它不起作用(即使我只使用当前的上下文语言)。 我几乎找不到关于此的文档。我需要做些什么才能让它发挥作用?

2 个答案:

答案 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用于在“主”数据库中存储字典项,但现在它将翻译存储在“核心”数据库中。

  1. 将shell切换到'核心'数据库。
  2. 转到词典:/ sitecore / system / Dictionary
  3. 通过字符串中的第一个字母找到您的密钥:“some-key” - > “S”。
  4. 检查此密钥是否存在转换。
    • 选择DictionaryKey项> “一些键”
    • 在语言之间切换并检查翻译是否存在。