Montag, Januar 27, 2020

Übersetzen mit Hilfe von Variablen in Symfony2 + Zweig möglich ist?

Die erste Ausgabe der string nicht übersetzt:

{{ chart.name~'.short'|trans({}, "charts") }}

Dieser arbeitet (ist der gleiche text, der chart.name~'.short' ausgeben sollte):

{{ 'charts.region.area.short'|trans({}, "charts") }}

Bin ich etwas fehlt? Es scheint, es ist unmöglich zu übersetzen dynamischen text in Twig?

BEARBEITEN: Einstellung einer Variablen (warum?):

{% set name = chart.name ~ '.short' %}
{{ name|trans({}, "charts") }}
InformationsquelleAutor gremo | 2011-10-11

2 Kommentare

  1. 27

    Symfony/Zweig versucht zu übersetzen .short und verketten es mit Inhalt chart.name. Verwenden Sie Klammern, um die erwartete Ausgabe:

    {{ (chart.name~'.short')|trans({}, "charts") }}
    • Ich danke Ihnen sehr. Ich dachte, das Rohr war so etwas wie „pipe alle vor“…
    • Die Filter können tatsächlich nützlich sein, nicht nur für die Ausgabe. Für Beispiel-code, wie dies {% if user_input|upper == 'YES' %}...{% endif %} oder {% if rows|length == 0 %}no rows{% endif %} können verwendet werden, um zu vermeiden, unnötige Daten-manipulation in der Steuerung.
    • Ja, eine Menge. Auch wenn ich mich Anfang Symfony2 + Zweig, ich versuche zu lernen „best practice“, wie dein Beispiel. Ich werde versuchen, alles, was im Zusammenhang der Darstellung in den Ansichten, vermeiden Sie auch zu nennen übersetzer (deshalb meine Frage) im Controller. Meiner Meinung nach übersetzer sollte entfernt werden von der controller-Klasse… es ist ein Teil der GUI!
    • Halten Sie den controller so schlank wie möglich ist die grundlegende „gute Praxis“ in der MVC-design 😉
    • Wenn Sie brauchen, um zu verketten, Umgekehrt würde es so Aussehen: {{ (‚Verträge.Staaten.’~Objekt.currentState) }} Quelle: blog.webdevilopers.net/…
  2. 0

    wenn mit multilanguage mit symfony2 zu Zweig, die Sie benötigen, um:

    Setzen der Request-Gebietsschema, das gibt das Gebietsschema, in dem der tran-Zweig-tag übersetzen das Wort.

    was ich Tat, war Folgendes:

    1 – Controller Artikel:

     $this->getRequest()->setLocale('es_AR');   //setting the locale to spanish in Argentina
    
     return $this->render('LoginLoginBundle:Default:welcome.html.twig');   //render a twig file

    2 – Zweig-Datei hat eine

    <h2>{% trans %} hello {% endtrans %}</h2>

    code mit dem Zweig-tag trans, verwenden Sie es so oder {{ „Text“ – |trans }}, weil {% trans “ Hallo %} nicht mehr funktioniert,

    3 – im Datei-messeges.es.yml hab ich

    Hallo: Hola

    Dieser geht um die übersetzung des Wortes in die

    {% trans %} Hallo {% endtrans %}

    ,Erz über ändern können Sie die hello-word-für alle, die Sie mögen und ändern Sie es in der messeges.es.yml-Datei, Beispiel: 1: Hola bringen Hola, wenn das Gebietsschema festgelegt ist Spanisch, sonst bringt ein 1

Kostenlose Online-Tests