簡體   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