Ergebnis 1 bis 7 von 7

Thema: Sprachabhängige Optionen in tl_calendar_events

  1. #1
    Contao-Nutzer Avatar von worxer
    Registriert seit
    29.04.2011.
    Beiträge
    65

    Standard Sprachabhängige Optionen in tl_calendar_events

    Hallo zusammen,

    ich habe in der tl_calendar_events.php (contao/dca/tl_calendar_events.php) ein neues Feld "kursart" hinzugefügt, das folgende Definition hat:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_calendar_events']['fields']['kursart'] = [
        
    'exclude' => true,
        
    'inputType' => 'select',
        
    'options' => ['Intensivkurs''Abendkurs'],
        
    'reference' => &$GLOBALS['TL_LANG']['tl_calendar_events']['kursart_options'],
        
    'eval' => ['tl_class' => 'w50''maxlength' => 255'mandatory' => true],
        
    'sql' => ['type' => 'string''length' => 32'default' => NULL'notnull' => false],
    ]; 
    In zwei Sprachdateien habe ich die Übersetzungen wie folgt definiert:

    Deutsch (languages/de/tl_calendar_events.php):

    PHP-Code:
    $GLOBALS['TL_LANG']['tl_calendar_events']['kursart_options'] = [
        
    'Intensivkurs' => 'Intensivkurs',
        
    'Abendkurs' => 'Abendkurs',
    ]; 
    Englisch (languages/en/tl_calendar_events.php):

    PHP-Code:
    $GLOBALS['TL_LANG']['tl_calendar_events']['kursart_options'] = [
        
    'Intensivkurs' => 'Intensive Course',
        
    'Abendkurs' => 'Evening Course',
    ]; 
    Im Backend funktioniert die sprachabhängige Ausgabe einwandfrei, allerdings wird im Frontend immer die deutsche Version der Optionen ausgegeben, unabhängig von der aktuellen Sprache.

    Hat jemand eine Idee, warum die Übersetzung im Frontend nicht funktioniert? Oder gibt es eventuell einen anderen Best-Practice-Ansatz, um sprachabhängige Optionen sauber umzusetzen? Bin für jeden Hinweis dankbar!

    Danke vorab für eure Unterstützung!

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Wie lässt du das im Frontend ausgeben? So eine Funktion gibt es von Haus aus nicht.
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Nutzer Avatar von worxer
    Registriert seit
    29.04.2011.
    Beiträge
    65

    Standard

    Mein Code im Template sieht derzeit so aus

    PHP-Code:
    <?php if ($this->kursart): ?><?= $this->kursart ?><?php endif; ?>
    Aber ich höre schon raus, dass das nicht ausreicht. Was wäre denn der einfachste Weg, um die Auswahl eines options Feldes übersetzt im Frontend auszugeben? Ich könnte natürlich auch gleich die englische Bezeichnung, zusätzlich zu den deutschen in die Liste schreiben. Dann muss der Redakteur einfach auswählen ...

  4. #4
    Contao-Nutzer Avatar von worxer
    Registriert seit
    29.04.2011.
    Beiträge
    65

    Standard

    Ggf. wäre das auch noch ein Weg? (Quelle)

    PHP-Code:
    <?php if($GLOBALS['TL_LANGUAGE'] == 'en'): ?>
        <!-- English Content -->
    <?php elseif($GLOBALS['TL_LANGUAGE'] == 'de'): ?>
        <!-- Deutscher Inhalt -->
    <?php endif; ?>

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Achsoo, du willst einfach nur den gespeicherten Wert ausgeben - aber übersetzt.

    Das machst du so:
    PHP-Code:
    <?= $this->trans('tl_calendar_events.kursart_options.'.$this->kursart, [], 'contao_tl_calendar_events'?>
    » sponsor me via GitHub or Revolut

  6. #6
    Contao-Nutzer Avatar von worxer
    Registriert seit
    29.04.2011.
    Beiträge
    65

    Standard

    Du bis der Held! Danke

    Noch eine letzte Frage (die hier eigentlich nicht hingehört) zum routing der Sprache am Startpunkt:

    Bei mir sieht das derzeit so aus:

    Startpunkt (de)
    - Domainname: www.domain.de
    - Sprache: de
    - Sprachen-Fallback: aktiviert
    - Seitenalias der ersten Unterseite (Startseite): index

    Startpunkt (en)
    - Domainname: www.domain.de (also wie oben)
    - URL-Präfix: en
    - Sprache: en
    - Sprachen-Fallback: nicht aktiviert
    - Seitenalias der ersten Unterseite (Startseite): ?

    Gebe ich nun www.domain.de/en ein, springt die Seite immer wieder auf www.domain.de.
    Wie muss denn meine Konfiguration aussehen, damit www.domain.de/en auf die erste Unterseite des en Seitenbaumes verweist?

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Zitat Zitat von worxer Beitrag anzeigen
    Noch eine letzte Frage (die hier eigentlich nicht hingehört)
    Daher auch lieber einen eigenen Thread öffnen (oder suchen, ob es dazu schon etwas gibt)
    » sponsor me via GitHub or Revolut

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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