symfony 3 - 翻译不适用于prod

时间:2016-06-07 11:55:29

标签: php translation symfony

即时开发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

This is Dev envioment result

但是当我去Prod envioment时,文字显示如下:

Prod envioment result

我使用以下代码设置用户的语言:

$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;的文件夹除外。

刷新并运行!!

谢谢。

0 个答案:

没有答案