2016-08-16 4 views
1

Ich benutze die letzte Version von Symfony (3.1.3) Ich möchte Trans Multi Vars. aber ich finde nicht und gute LösungSymfony Translations

jetzt ich tue:

{% block h1 %}{{ 'service.create'|trans }} {{ ('service'|trans) }}{% endblock %} 

Ich versuche:

{% block h1 %}{{ 'service','service.create'|trans }} }} { %endblock %} 

aber kein Glück.

Ich versuche auch mit

{% trans %}service.create|service{% endtrans %} 

dank

+0

Ich bin nicht sicher, ob das funktioniert, aber Sie können dies versuchen: '{% block h1%} {{('Service', 'service.create') | trans}}}} {% endblock%} ', Vielleicht das: http://stackoverflow.com/questions/22984545/how-to-late-concatenated-string-in-twig-template-using-symfony2-translator oder dieses http: // stackoverflow com/questions/7730355/translating-using-variables-in-symfony2-Zweig-ist-möglich kann Ihnen helfen. – Perry

+0

nicht gut..Eine geöffnete Klammer ist nicht ordnungsgemäß geschlossen. Unerwartete Token "Interpunktion" von Wert "," ("Interpunktion" erwartet mit Wert ")") –

+0

ersetzen ',' mit '~'. Warum sind die Variablen auch in Anführungszeichen eingeschlossen? –

Antwort

0

Sie Strings in Backend übersetzen kann:

public function indexAction($name) 
{ 
    $translated = $this->get('translator')->trans('Hello '.$name); 

    return new Response($translated); 
} 

Oder in Zweig-Vorlagen:

<h1>{{ 'service.create'|trans }}</h1> 

Jedes Mal, erstellen Sie eine neue Übersetzung Ressource (oder ein Bündel installieren, die eine Übersetzung Ressource enthält), sollten Sie Ihren Cache löschen, so dass Symfony die neuen Übersetzungs-Ressourcen entdecken:

php bin/console cache:clear 

Weitere Informationen: http://symfony.com/doc/current/translation.html

0

Ich musste nur multi vars trans. Zweig nicht unterstützen ...

1

Sie Parameter in Ihrer Übersetzung wie folgt verwenden können:

Und in Ihrem messages.ru.yml

... 
service: 
    create: ... %separator% ... 
    ... 

Wenn Ihr separator in html , add raw wie folgt:

{{ 'service.create'|trans({'%separator%': '<br>'})|raw }} 

Sie haben mehr Details in symfony doc here

0

Wenn Sie eine „service.yml.en“ Datei oder so etwas haben:

{{ service.create|trans({}, "service") }} 

Hier ist der Übersetzer in Ihrer service.yml.en Datei suchen und Laden Sie den richtigen Übersetzungsschlüssel.

Wenn Sie vorab Übersetzungen tun möchten, können Sie Vars wie die (zum Beispiel) verwenden:

{{ (className|lower ~ "." ~ field)|trans({}, className|lower) }} 

hier, wenn Sie einen „user.yml.en“ haben, und Sie wollen, wie etwas laden " user.width ", es wird funktionieren.

Viel Glück :)

Verwandte Themen