即时开发symfony 3项目,我的翻译问题。 在我的开发中,翻译工作正常,但在Prod envioment中,我得到了翻译变量。
我正在使用twig,我翻译的文字如下:
{% trans %}frontend.search.label.title.search{% endtrans %}
此变量,从以下位置获取文本: 应用/资源/翻译/ messages.en.yml
frontend.search.label.title.search: Search a station
frontend.search.label.select.status: Status
frontend.search.label.button.search: Search
frontend.search.label.button.createstation: Create new station
frontend.search.label.button.managenewfields: Manage new fields
frontend.search.input.error: Please enter search criteria
但是当我去Prod envioment时,文字显示如下:
我使用以下代码设置用户的语言:
$this->session->set('_locale', $user->getlanguage()->getLanguageCode());
这是听众:
<?php
// src/AppBundle/EventListener/UserLocaleListener.php
namespace loginBundle\EventListener;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Doctrine\ORM\EntityManager;
/**
* Stores the locale of the user in the session after the
* login. This can be used by the LocaleListener afterwards.
*/
class UserLocaleListener
{
/**
* @var EntityManager
*/
public $em;
/**
* @var Session
*/
private $session;
public function __construct(Session $session, EntityManager $em)
{
$this->em = $em;
$this->session = $session;
}
/**
* @param InteractiveLoginEvent $event
*/
public function onInteractiveLogin(InteractiveLoginEvent $event)
{
$user = $event->getAuthenticationToken()->getUser();
if (null !== $user->getlanguage()->getLanguageCode() && $user->getlanguage()->getLanguageCode() != '00') {
$this->session->set('_locale', $user->getlanguage()->getLanguageCode());
}else{
$em = $this->em;
$DefaultLang = $em->getRepository('AppBundle:M01Language')->findOneBylanguageDefault(1);
$this->session->set('_locale', $DefaultLang->getLanguageCode());
}
}
}
在我的config.yml中我有这个翻译代码:
/* .......... */
parameters:
locale: en
app.locales: en|es|fr
locale_supported: ['en','es','fr']
framework:
#esi: ~
translator: { fallbacks: ["%locale%"] }
/* .......... */
请帮助,抱歉我的英语不好。
[解决]
我删除var / cache / Prod中的所有文件和文件夹,但名称为&#34; doctrine&#34;的文件夹除外。
刷新并运行!!
谢谢。