Ankündigung

Einklappen
Keine Ankündigung bisher.

Attributtyp 'Auswahl, einfach' - Sprachabhängig

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Attributtyp 'Auswahl, einfach' - Sprachabhängig

    Hallo Leute,

    ich bin leider nicht mehr so tief drin in CC und muss jetzt eine bestehende Installation erweitern.

    Ich habe einen CC mit einer Auflistung von Items und diversen Detailangaben dazu. Es gibt zwei Sprachen, DE und EN. Der CC soll um ein Auswahlfeld erweitert werden, womit man später jedem Item eine Kategoriebezeichnung zuweisen kann. Das ist soweit klar.

    Die Zuweisung der Kategoriebezeichnung soll aber in der jeweiligen Sprache erfolgen. Wenn also im Backend der Spracheintrag für DE gemacht wird, dann soll das Auswahlfeld die deutschen Werte der Kategoriebezeichnung anbieten, bzw. eintragen. Wenn im Backend der Spracheintrag für EN gemacht wird, dann soll das Auswahlfeld die englischen Werte der Kategoriebezeichnung anbieten, bzw. eintragen.

    Wie war da noch mal der Weg?
    Danke schon mal vorab!!

  • #2
    Also eine Möglichkeit ist wohl der Einsatz der guten alten Inserttags, direkt im Attribut 'Auswahl, einfach'. Allerdings wird damit dann wohl später ein filtern schwierig.
    Zuletzt geändert von Brubbel; 18.06.2019, 09:30.

    Kommentar


    • #3
      Inserttags gehen nicht im Backend.

      Willst du auch unterschiedliche Werte? Wenn nicht, definiere eine "reference" über die dcaconfig.php für das Feld und vergebe einen TL_LANG Array, der z.B. über die langconfig sprachspezifisch ist.

      Der Core als auch meine Module machen das quasi für fast alle Auswahlfelder, deren lesbares Label übersetzt sein soll.

      Beispiel aus dem Contao Core: tl_content.floating

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: screenshot_4603.jpg
Ansichten: 19
Größe: 54,2 KB
ID: 15612
      Zuletzt geändert von Tim; 18.06.2019, 09:54.
      http://www.premium-contao-themes.com

      Kommentar


      • #4
        Ich brauche die Unterscheidung nicht für das Backend.
        Ich muss am Ende einen landessprachlichen Eintrag im Datensatz haben, damit ich diesen im Frontend ausgeben/filtern kann.
        Beispiel:
        Ich habe CC "Buchsammlung".
        Ich habe 2 Felder mit Attributtyp "Text" und 1 Feld mit Attributtyp "Auswahl, einfach".
        Ich habe 2 Sprachen, DE und EN
        Wenn ich das Inhaltselement baue und das Feld mit "Auswahl, einfach" angebe, dann muss ich dort Werte eintragen, z.B. "Roman" oder "Fachliteratur" aber eben bereits in einer Sprache. Für das Backend und die Eintragungen der Datensätze in den verschiedenen Sprachen wäre das noch zweitrangig. Der Redakteuer versteht beide Sprachen. Aber wenn er für den englischen Datensatz die Option "Fachliteratur" auswählt, dann steht in der Datenbank eben auch "Fachliteratur" im eigentlich englischen Datensatz.

        Wie würde man das am besten machen, so dass für einem englischen Datensatz eben nicht "Fachliteratur", sondern "specialist literature" stehen würde?



        Kommentar


        • #5
          Schritt 1 wäre den CC auf mehrsprachig stellen.
          Dann kann je Sprache ein autarker Datensatz angelegt werden. Freitext-Felder sind jetzt selbsterklärend. Man gibt dort den engl. Text bei Engl. Datensatz ein.

          Auswahlen würde ich auch hier mit Referenz machen oder du spendierst ein eigenes Auswahl-Feld je Sprache. Im Template nutzt man ebenfalls die Referenz als lesbare Ausgabe. Werte sind ja unique.
          http://www.premium-contao-themes.com

          Kommentar


          • #6
            Der erste Teil ist klar. Die alte Umgebung funktioniert so bereits und verwendet die Freitext-Felder. Das ist alles problemlos, da die Werte dann ja auch so in der DB stehen.

            Mein Problem sind die Werte aus einem Select-Feld. Das mit der Referenz hatte ich gleich am Anfang verworfen, weil da doch die Sprache des Backends ausgewertet wird und nicht die, die man bei der Eingabe des CC Datensatzes auswählt. Ich dachte auch bisher, damit würde ich nur die Anzeige steuern können? Der Wert, der am Ende in die DB eingetragen wird, ist immer gleich.
            Aber vielleicht ist das auch in Ordnung. Im Grunde hast Du ja Recht, ich kann ja auch einfach im Template die lesbare Ausgabe wieder sprachabhängig machen. Die Werte, die ich intern zur Abfage nutze, kommen ja nie ans Tageslicht.

            Falls es mal jemandem hilft, hier die Ausgabe im Frontendtemplate:

            PHP-Code:
            <li class="name">
            <a href="<?php echo $entry->links('detail')->url?>"><?php echo $GLOBALS['TL_LANG']['Continents'][$entry->field('continent')->value()]; ?>
            </a>
            </li>
            langconfig.php sieht dann so aus:
            HTML-Code:
            // Sprache: DEUTSCH
            if ($GLOBALS['TL_LANGUAGE'] == 'de')
                    {
                      $GLOBALS['TL_LANG']['Continents']['EU'] = 'Europa';
                      $GLOBALS['TL_LANG']['Continents']['NA'] = 'Nordamerika';
                    }
            
            if ($GLOBALS['TL_LANGUAGE'] == 'en')
                    {
                      $GLOBALS['TL_LANG']['Continents']['EU'] = 'Europe';
                      $GLOBALS['TL_LANG']['Continents']['NA'] = 'North America';
                    }
            
            EU, NA, wären dann die Werte, die aus dem Auswahlfeld selektiert wurden.

            Vielen Dank für den Anschubser!!

            Kommentar


            • #7
              Genauso wird das gemacht! (So arbeitet aus das Referenz-System im Backend.)

              ( Ich persönlich mache immer eine Sprache zum Fallback bzw. Default. Also z.B. die Array-Werte für EN, nicht nach "en" abfragen, sondern einfach roh ohne if setzen und darunter die Sprach-Abweichungen. )
              http://www.premium-contao-themes.com

              Kommentar

              Lädt...
              X