Contao-Camp 2024
Ergebnis 1 bis 3 von 3

Thema: Translation mit %s und Variablen

  1. #1
    Contao-Nutzer
    Registriert seit
    17.01.2020.
    Beiträge
    111

    Standard Translation mit %s und Variablen

    Hallo liebe Community,

    ich versuche meine Website (Contao 4.4.53 noch) mehrsprachig zu machen und bin nun auf zwei kleinere Probleme gestoßen. Aktuell habe ich verschiedene Sprachen mit dem Sprachenwechsler erstellt und entsprechend notwendige Übersetzungsdateien angelegt, die auch soweit alle ihren Zweck erfüllen.

    Das erste Problem taucht auf, wenn ich ein Formular habe, wo sich zwei Inputfelder befinden, die auf optional gesetzt sind (HTML 5 Validation ist aufgrund der Mehrsprachigkeit deaktiviert). Es soll nun entweder das erste Inputfeld genutzt werden oder das zweite. Wenn ich im validateFormFieldListener abfrage, ob die Values der Inputs leer sind, dann gebe ich folgende Fehlermeldung an:

    PHP-Code:
    $widget->addError($GLOBALS['TL_LANG']['ERR']['mandatory']) 
    Das Problem an der Sache ist jedoch, dass ich einerseits zwar die jeweiligen Sprachen so angezeigt bekomme, jedoch wird das "%s" innerhalb der Fehlermeldung nicht mit dem entsprechenden Feldnamen ersetzt, sondern er gibt mir "%s" aus, so dass die Fehlermeldung letztendlich
    Field "%s" must not be empty!
    genau so dargestellt wird. Ich könnte die Fehlermeldung zwar umformulieren ohne das "%s", aber gibt es auch eine Lösung ohne die Fehlermeldung umschreiben zu müssen?

    Das zweite Problem ist ähnlich. Ich möchte beim Vergessen des Passworts eine Mail verschicken, wo der Link + Token übergeben wird. Aufgrund der Mehrsprachigkeit muss ich den Text je nach Sprache angeben, weshalb ich in der jeweiligen Sprachdatei eine Mail verfasst habe, die abgesendet werden soll, jedoch steht dort drin auch die Variable für den Aktivierungstoken (bei nur einer Sprache hatte ich das im Hook verwendet und funktionierte). Beim Versand der Mail wird somit nur der Text in die Mail geschrieben, aber die PHP Variable mit dem Token ist natürlich leer. Gibt es auch hier eine andere Möglichkeit, den Token irgendwie einfügen zu können? Ich hatte mir überlegt, dass ich dann die Übersetzung der Mail in 2 Teile aufteilen muss und im Hook dann die Tokenvariable dazwischen setze, aber gäbe es auch eine Lösung, wo man ein Platzhalter oder Argument einsetzen kann?

    Danke für die Hilfe!

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.935

    Standard

    Dein erstes Problem z.B. so ähnlich https://github.com/contao/contao/blo...pload.php#L107
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Nutzer
    Registriert seit
    17.01.2020.
    Beiträge
    111

    Standard

    Vielen Dank für den Hinweis, der hat perfekt funktioniert!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •