繁体   English   中英

翻译不起作用 Symfony

[英]Translation doesn't work Symfony

我正在尝试翻译我的平台。 首先我做了一个简单的布局来尝试转换。 当我确定它时,我会针对真实情况进行处理。 你可以看到控制器、index.html.twig、config.yml、messages.es和messages.en:

....

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Translation\Translator;

class DummyController extends Controller
{
    /**
     * @Route("/prova",name="role_public_dummy")
     * @Template()
     */
    public function indexAction(Request $request)
    {
        //$locale = $request->getLocale();
        $request=$this->getRequest();
        $locale = $request->getPreferredLanguage();//catching browser language
        $request->setLocale($locale);
        $this->get('session')->set('_locale', $locale);

        return array();

    }

}

index.html.twig

{% trans %}index.1{% endtrans %}

配置文件

framework:
    #esi:             ~
    translator:      { fallback: "%locale%" }
    secret:          "%secret%"
    router:
        resource: "%kernel.root_dir%/config/routing.yml"
        strict_requirements: ~
    form:            ~
    csrf_protection: ~
    validation:      { enable_annotations: true }
    templating:
        engines: ['twig']
        #assets_version: SomeVersionScheme
    default_locale:  "%locale%"
    trusted_hosts:   ~
    trusted_proxies: ~
    session:
        # handler_id set to null will use default session handler from php.ini
        handler_id:  ~
    fragments:       ~
    http_method_override: true

消息.es

index.1: "CASA"

消息.en

index.1: "HOME"

所以,我不明白为什么 symfony 在使用“trans”函数时总是使用语言环境“en”。 就好像它没有捕获会话的语言环境。

您正在尝试将区域设置设置为Request对象,但在控制器中它对Translator服务没有影响,因为它之前已经配置过了。 我想您应该尝试直接为您的Translator服务设置语言环境或创建单独的操作,您只需将语言环境设置为会话并重定向到其他操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM