Ergebnis 1 bis 14 von 14

Thema: languages - wie trage ich 'title_' elemente ein?

  1. #1
    Contao-Nutzer
    Registriert seit
    16.09.2009.
    Beiträge
    75

    Standard languages - wie trage ich 'title_' elemente ein?

    ich versuche gerade mein neues modul, für mehrsrachigkeit fit zu machen, denn derzeit werden erst die variablen namen angezeigt.
    dazu schreibe ich in /modules/meinmodul/lanugages/de/tl_meinmodul.php werte rein, was auch zu 90% funktioniert, nur die titles die in der DCA palette definiert sind, werden nicht übersetzt.

    also für ne palette wie die in der file /meinmodul/dca/tl_meinmodul_map.php
    PHP-Code:
    'default'            =>'{title_map},map;' 
    in der file /meinmodul/languages/de/tl_meinmodul.php
    PHP-Code:
    $GLOBALS['TL_LANG']['meinmodul']['title_map'][0] = 'Karte'// klappt nicht
    $GLOBALS['TL_LANG']['meinmodul']['title_map'] = 'Karte'// klappt auch nicht
    $GLOBALS['TL_LANG']['meinmodul']['map'][0] = 'Karte'// klappt für non- 'title_' elemente 
    natürlich habe ich die title_map zeilen nicht gleichzeitig probiert, sondern hintereinander... was mache ich hier falsch?

  2. #2
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    tl_meinmodul_map.php != tl_meinmodul.php

    Probiers doch einfach mal deine Sprachvariablen mit der gleichen Namenskonvension wie das DCA zu erstellen.

    /dca/tl_meinmodul_map.php
    /languages/de/tl_meinmodul_map.php

    Und in der Sprachdatei sollte dann auch folgendes funktionieren:

    $GLOBALS
    ['TL_LANG']['tl_meinmodul_map']['title_map'] = 'Karte';
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  3. #3
    Contao-Nutzer
    Registriert seit
    16.09.2009.
    Beiträge
    75

    Standard

    ich hatte zwar in meinem /dca/tl_module.php definiert, dass meine lanuage file tl_meinmodul ist
    PHP-Code:
    /**
     * Table tl_module
     */
    $this->loadLanguageFile('tl_meinmodul'); 
    und es wurden auch ALLE anderen felder korrekt übernommen, lediglich die der 'title_' elemente nicht

    habe das jetzt so geändert wie du geschrieben hat (und hab die tl_module entfernt... jetzt klappts

    allerdings wird mir jetzt im titel folgendes angezeigt:
    Code:
    Fundorte » Array
    ich weiss zwar warum da Array drin steht, & woher diese Information für das Modul kommt, hab ich nicht rausgefunden wie ich das korrekt angeben kann

    also in der languages/de/modules.php
    hab ich folgendes stehen: (0 ist der name, 1 ist der tooltip, titelleiste wird aber wie oben gezeigt mit Array betitelt)
    PHP-Code:
    $GLOBALS['TL_LANG']['MOD']['tl_meinmodul_map'][0] = 'Fundorte';
    $GLOBALS['TL_LANG']['MOD']['tl_meinmodul_map'][1] = 'Fundorte verwalten'
    schreibe ich den eintrag um, auf nen normalen String
    PHP-Code:
    $GLOBALS['TL_LANG']['MOD']['tl_meinmodul_map'] = 'Fundort'
    so wird
    Code:
    F » Fundort
    reingeschrieben, also auch nichts korrektes
    aber meines wissens sollte das schon ein array werden...
    Geändert von lumo (26.05.2015 um 09:50 Uhr)

  4. #4
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von lumo Beitrag anzeigen
    ich hatte zwar in meinem /dca/tl_module.php definiert, dass meine lanuage file tl_meinmodul ist
    PHP-Code:
    /**
     * Table tl_module
     */
    $this->loadLanguageFile('tl_geolocate'); 
    Damit definiert man nicht, sondern läd eine Sprachdatei nach. In dem Fall tl_geolocate und nicht tl_meinmodul.

    Wie auch immer. Halte dich doch einfach an die Systemvorgaben anstatt dir was eigenes zu basteln, du siehst ja, dass es nicht funktioniert.

    Bei dem anderen kann ich dir nicht helfen, weil du auch immer nur Auszüge postet, anstatt deine Dateien damit man den Zusammenhang versteht.
    Wichtig ist nur eins, Legenden sind keine Arrays, sondern Text. Und alle Felder im DCA wollen ein Array als Sprachvariable.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  5. #5
    Contao-Nutzer
    Registriert seit
    16.09.2009.
    Beiträge
    75

    Standard

    ich hab mein modul nach dem tutorial aus dem wiki aufgebaut und versuche mich an die 'vorgaben' zu halten.
    leider sind die meisten dokumente aus 2010/2011, oder nicht mehr aktuell?

    leider kann ich keine komplette doku finden, die den Aufbau 'gut' beschreibt.
    vieles wird als 'eh logisch' angesehen - in welchen ordner welche files mit welchen namen kommen zb.
    wer mit Contao von Typolight-zeiten grossgeworden ist, bei dem wird das zutreffen. für mich als 'neueinsteiger' ists da etwas härter, da vieles für mich nicht logisch ist.

    Danke für deine Hilfe - ich bin echt froh, dass es aktive Hilfe hier im Forum gibt! (ich kann auch den kompletten Code hochladen, wird sowieso nichts commerzielles) nur wollte ich den Aufwand,
    etwas durchzugrasen minimieren und habe darum nur das gepostet, was für mich relevant erschien.

    ich möchte im nächsten zug (wenn ein bestehender fundort bearbeitet wird, die koordinaten und den zoom) in das javascript schreiben, wäre das möglich?
    den jetzigen code hab ich als geolocate.zip unten angehängt.
    Angehängte Dateien Angehängte Dateien

  6. #6
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Hi,

    was ich dir sehr empfehlen kann ist der Crashkurs von Tristan: https://www.youtube.com/playlist?lis...DE9846C628F23D
    Darin wird der perfekte Aufbau einer Erweiterung erklärt inkl. Sprachdateien. Sogar für Contao 3 (und seitdem hat sich nicht mehr viel geändert)

    So, nun kurz zu deinem "Problem".
    Die DCA Dateien sehen gut aus.....


    In deiner config.php würde ich den Key (tl_geolocate_map => geolocate_map) ändern, denn so heißt ja bereits eine Tabelle, hier könnte der Fehler liegen


    config.php (Original)
    PHP-Code:
    array_insert($GLOBALS['BE_MOD'], 0, array( 
            
    'geolocate' => array( 
                
    'tl_geolocate_map' => array( 
                    
    'tables' => array('tl_geolocate_map'/* additional media table -> */'tl_geolocate_media'),
                    
    'icon'   => 'system/modules/geolocate/assets/images/gmaps.png'
                
    )
            ) 
        )
    ); 

    Probier mal lieber das hier...
    PHP-Code:
    array_insert($GLOBALS['BE_MOD'], 0, array( 
            
    'geolocate' => array( 
                
    'geolocate_map' => array( 
                    
    'tables' => array('tl_geolocate_map'/* additional media table -> */'tl_geolocate_media'),
                    
    'icon'   => 'system/modules/geolocate/assets/images/gmaps.png'
                
    )
            ) 
        )
    ); 
    Und somit ändert sich auch die Sprachdatei in /de/module.php
    PHP-Code:
    <?php
    $GLOBALS
    ['TL_LANG']['MOD']['geolocate'][0] = 'Verortung';
    $GLOBALS['TL_LANG']['MOD']['geolocate'][1] = 'Verortung verwalten';

    $GLOBALS['TL_LANG']['MOD']['geolocate_map'][0] = 'Fundorte';
    $GLOBALS['TL_LANG']['MOD']['geolocate_map'][1] = 'Fundorte verwalten';
    ?>
    Es könnte sein, dass du bei dem Hauptbegriff (Verortung) kein Array benötigst, da es ja die erste Ebene ist.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  7. #7
    Contao-Nutzer
    Registriert seit
    16.09.2009.
    Beiträge
    75

    Standard

    danke für den link!

    ich hab die Änderungen mal so gemacht wie du geschrieben hast, das mit dem Problem ist damit leider noch nicht behoben.

    was mich etwas wundert ist dass mein zweites kleines modul, das genau gleich aufgebaut ist, die titelleiste korrekt hat, also keine Array Ausgabe!
    und ich kann keinen Unterschied finden...

    dieses modul ist abhängig von 'MultiImageManagementWidget', aber daran kanns wohl nicht liegen

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

    Standard

    Ohne source code können wir nur mutmaßen.

  9. #9
    Contao-Nutzer
    Registriert seit
    16.09.2009.
    Beiträge
    75

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ohne source code können wir nur mutmaßen.
    Der Sourcecode ist ja in der zip angehängt...

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

    Standard

    Sorry, übersehen

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

    Standard

    Ha, witzig. Ich musste feststellen, dass in meinen Extensions auch überall Lorem » Array im Titel steht . Mal analysieren warum das so ist.

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

    Standard

    Des Rätsels Lösung: man darf im Eintrag von $GLOBALS['BE_MOD'] nicht den Tabellennamen für das Backend Modul verwenden - denn ansonsten denkt Contao, dass man sich in der Ansicht bereits in einem Submodul des Backend Moduls befindet. Siehe system/modules/core/classes/Backend.php#L581. In den Core Modulen wird das auch so gemacht. Bei News ist es zB
    PHP-Code:
    $GLOBALS['BE_MOD']['content']['news'
    und nicht
    PHP-Code:
    $GLOBALS['BE_MOD']['content']['tl_news'
    Dementsprechend steht in der languages/xx/modules.php dann auch
    PHP-Code:
    $GLOBALS['TL_LANG']['MOD']['news'][0] = ;
    $GLOBALS['TL_LANG']['MOD']['news'][1] = 
    the_scrat hat hier eigentlich schon die richtige Lösung gepostet: https://community.contao.org/de/show...l=1#post370793
    Geändert von Spooky (26.05.2015 um 12:31 Uhr)

  13. #13
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Aber ist das nicht genau das, was ich bereits oben erwähnt hatte? Statt tl_geolocate_map einfach geolocate_map (ist ja keine direkte Tabellenbezeichnung).

    In meinen Erweiterungen habe ich das übrigens nicht mit dieser Arraybezeichnung. Das Lorem » Array erscheint doch eh nur, wenn ich in die Bearbeitung eines Datensatzes wechsel, oder nicht? Davor steht der reguläre Titel in der Kopfzeile
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

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

    Standard

    Zitat Zitat von the_scrat Beitrag anzeigen
    Aber ist das nicht genau das, was ich bereits oben erwähnt hatte? Statt tl_geolocate_map einfach geolocate_map (ist ja keine direkte Tabellenbezeichnung).

    In meinen Erweiterungen habe ich das übrigens nicht mit dieser Arraybezeichnung. Das Lorem » Array erscheint doch eh nur, wenn ich in die Bearbeitung eines Datensatzes wechsel, oder nicht? Davor steht der reguläre Titel in der Kopfzeile
    Ja, wie gesagt, wenn man fälschlicherweise, so wie ich und auch lumo das Backendmodul in $GLOBALS['BE_MOD'] genau so benennt wie die Tabelle, dann passiert das. Und ja, du hattest eigentlich die Lösung schon gepostet . Die richtige... meine ist im übrigen eigentlich eh falsch ;P, da dort ja jetzt zwei mal 'geolocate' verwendet wird (für die Backend Sektion so wie für das Modul selbst). Ich editiere das mal um.

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
  •