Saf*_*fas 4 translation symfony
Symfony2项目。我正在使用JMSTranslationsBundle。
这是控制器内部函数的片段:
if ($user->isAccountConfirmed()) {
$this->toolbar->addInfo('user.account.confirmed');
}
Run Code Online (Sandbox Code Playgroud)
如何在.xliff文件中为“ user.account.confirmed”生成翻译?我的意思是,我应该在此函数中添加什么代码才能进行翻译?
查看可用的提取方法,它说明您的案件没有自动提取。
您将需要trans
在模板或控制器中使用(或说明的任何其他方法)。没有此提示,提取程序将无法找到您的消息。我个人在我的一个项目中使用过TranslationContainerInterface。
这样,您只需在控制器中定义一个新方法,该方法将返回“待翻译”字符串:
<?php
// ...
use JMS\TranslationBundle\Translation\TranslationContainerInterface;
use JMS\TranslationBundle\Model\Message;
class AcmeController extends Controller implements TranslationContainerInterface
{
/**
* {@inheritdoc}
*/
static function getTranslationMessages()
{
return [
Message::create('user.account.confirmed')
];
}
}
Run Code Online (Sandbox Code Playgroud)
另一种解决方案是直接使用翻译器服务。然后,对该服务的调用应该再次对提取器可见。例如:
/** @var $translator \Symfony\Component\Translation\TranslatorInterface */
$translator = $this->get('translator');
if ($user->isAccountConfirmed()) {
$this->toolbar->addInfo(
$translator->trans('user.account.confirmed')
);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7303 次 |
最近记录: |