我正在尝试以编程方式从管理员发送自定义电子邮件,我需要在发送电子邮件之前添加一些字符串。我想根据选择的语言来翻译这些字符串。我使用了下面的代码,但是它不起作用,字符串保留为英语。
$localeInterface = $objectManager-
>create('Magento\Framework\Locale\ResolverInterface');
$localeInterface->setLocale('de_DE');
$localeInterface->setDefaultLocale('de_DE');
echo __('Some string');
谢谢!
答案 0 :(得分:0)
您可以使用getDictionary()
类的\Magento\Framework\App\Language\Dictionary
函数将字符串转换为另一个语言环境,如下所述:
protected $_dictionary;
public function __construct(
...
\Magento\Framework\App\Language\Dictionary $dictionary,
...
) {
...
$this->_dictionary = $dictionary;
...
}
public function execute() {
...
$arrString = $this->_dictionary->getDictionary('de_DE')['Some String'];
...
}
在$arrString
变量中,您将在源代码中将短语作为键,并将字符串转换作为值。
我希望它可以解决您的问题。