gpt4 book ai didi

symfony - 如何在 Controller 内生成 symfony2 翻译?

转载 作者:行者123 更新时间:2023-12-02 16:27:05 24 4
gpt4 key购买 nike

Symfony2 项目。我正在使用 JMSTranslationsBundle。

这是来自 Controller 内部函数的片段:

if ($user->isAccountConfirmed()) {
$this->toolbar->addInfo('user.account.confirmed');
}

如何在 .xliff 文件中生成“user.account.confirmed”的翻译?我的意思是,我应该向这个函数添加什么代码才能翻译它?

最佳答案

查看available extraction methods ,它说明没有适用于您的案例的自动提取。

您将需要使用trans (或解释的任何其他方法)在您的模板或 Controller 中。如果没有此提示,提取器将无法找到您的消息。我个人使用过 TranslationContainerInterface在我的一个项目中。

这样,您只需在 Controller 中定义一个新方法,该方法返回“待翻译”字符串:

<?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')
];
}
}
<小时/>

另一种解决方案是直接使用 translater service 。然后,对该服务的调用应该再次对提取器可见。例如:

/** @var $translator \Symfony\Component\Translation\TranslatorInterface */
$translator = $this->get('translator');

if ($user->isAccountConfirmed()) {
$this->toolbar->addInfo(
$translator->trans('user.account.confirmed')
);
}

关于symfony - 如何在 Controller 内生成 symfony2 翻译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33540385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com