Ankündigung

Einklappen
Keine Ankündigung bisher.

Übersetzungsbüro Texte zur Verfügung stellen

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

  • Übersetzungsbüro Texte zur Verfügung stellen

    Hallo zusammen,

    wir stehen gerade vor der Herausforderung eine Kundenwebseite mit intensiver Nutzung von CustomElements und CustomCatalog in 6 Sprachen auszurollen. Dafür werden in vielen Firmen Übersetzungsbüros beauftragt, die ihre zu übersetzenden Texte im xlf Format zur Verfügung gestellt bekommen.
    Contao lässt sich mit den language Tools von menatwork, ganz gut exportieren, um es den Büros zukommen zu lassen. Die fertigen Übersetzungen werden dann einfach per Knopfdruck reimportiert. Leider hatten wir anfänglich, als die Wahl auf CE/CC viel nicht daran gedacht, die Möglichkeiten zu prüfen, ob das grundsätzlich möglich ist.
    CC z. Bsp. erzeugt keine Sprachvarianten der Objekte, sobald man eine Sprache hinzufügt. Das geschieht erst mit dem Speichern des übersetzten Datensatzes. Um eine Webseite händisch zu übersetzen mit Sicherheit ein komfortabler Weg, aber im großen Rahmen nicht gut geeignet.

    Meine Frage an dieser Stelle: Wird darüber nachgedacht, eine Unterstützung für den Übersetzungsexport anzubieten? Entweder als eigenes Tool oder in Kooperation mit den Language Tools?

    Beste Grüße
    Andy

  • #2
    CC basiert auf Contao Standards, damit werden auch Übersetzungen im xlf Format unterstützt, weil Contao dies unterstützt. Das Format muss dem späteren TL_LANG globalen Array entsprechen.

    Contao kann nur Feldnamen und Feldbeschreibung übersetzen. Feldwerte sind datenbankbasiert.

    Zum reinen Übersetzen ist kein eigenständiger Sprachdatensatz nötig. Gesonderte Sprachdatensätze sind strenggenommen nur nötig, wenn sich Verknüpfungen oder statische Referenzen (Alias) ändern sollen.

    Die Ausgabe im Frontend muss (ohne eigenständige Sprachdatensätze) über den TL_LANG Array laufen. Contao kennt keine dyn. Übersetzung für das Frontend. Dies ist auch im Core oder anderen Modulen immer hardcodiert -> es gibt keine allgemeingültige Logik (wie es der DCA Array im Backend vormacht)
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Hi Tim,

      vielen Dank für die rasche Rückmeldung.
      Wie schon gesagt, handelt es sich dabei um eine Erweiterung, die durch jede Seite durchläuft und deren Inhalte so gut als als möglich zusammenstellt und als xlf zur Verfügung stellt. Alles was in der tl_content abgelegt wird, kann damit erfasst werden und Besonderheiten, die von den Entwicklern berücksichtigt wurden auch. Es werden zum Beispiel die CustomElements von Rocksolid in den Export eingebunden.
      Grundsätzlich ist dafür ein eigener Sprachzweig notwendig, da und das hast du richtig angemerkt, Contao keine dynamische Übersetzung im Frontend kennt. Deswegen wäre es auch notwendig, dass alle Objekte in der jeweiligen Sprache vorliegen, damit ein Export durchgeführt werden kann. Objekte die nicht vorhanden sind, können nicht exportiert werden.

      Gruß Andy

      Kommentar


      • #4
        Klingt für mich nach einer Erweiterung dieser besagten Erweiterung für CC Tabellen. Falls diese Erw. halbwegs flexibel programmiert ist, wird es irgendwo eine Einstellung geben (sicher nicht einfach im Backend), die weitere Tabellen erlaubt / einbezieht. Das sollte unabhängig davon sein wie die Tabelle erstellt wurde - manuell, statische Erweiterung oder durch flexible Systeme wie CC oder auch MM.

        Das CE von Rocksolid wird übernommen, weil es direkt in tl_content seine Daten speichert und weil die tl_content vorgesehen ist.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Ja genau. Mit CC habe ich aktuell nur das Problem, dass es nach Aktivierung einer Sprache, noch keine Objekte zum Exportieren gibt, unabhängig davon, ob ich das Tool dazu bewegen kann CC-Tabellen zu berücksichtigen. Gibt es da von Eurer Seite eine Möglichkeit, das automatisiert erledigen zu lassen -> Erzeuge mir aus allen Basiseinträgen jeweilige Sprachvarianten oder so ähnlich. Evtl. kann man das auch auf SQL-Ebene erledigen lassen. Sind ja "nur" 2 Tabellen beteiligt.

          Gruß Andy

          Kommentar


          • #6
            Gibt es da von Eurer Seite eine Möglichkeit, das automatisiert erledigen zu lassen
            Nein, gibt es nicht. Es sollen keine "ungenutzten" Einträge im System liegen.
            Auf SQL Ebene geht alles. Alle gewünschten Einträge duplizieren und über die tl_pct_customcatalog_language die Sprachreferenzen manuell / automatisiert setzen.
            Ich würde einen eigenen oncreate_callback nutzen und beim duplizieren von Basis-Einträgen entsprechend reagieren.
            Zuletzt geändert von Tim; 16.05.2018, 07:27.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Danke für die Info. Dann werde ich etwas bauen, was mir die Einträge automatisch anlegt und bei der Gelegenheit gleich eine XLF-Datei ausspuckt. Zumindest mal für die CC-Objekte.

              Was ganz anderes: Ich habe mal etwas mit den Sprachen rumgespielt und da ist mir aufgefallen, dass CC beim Öffnen einer neuen Sprachversion einen Datensatz mit dem Hinweis (Kopie) anlegt, der leider nicht immer verschwindet, wenn man ihn nicht explizit speichert. Dieser Datensatz wird dann auch als Basisobjekt abgelegt, aber ohne Sprache.

              Noch was anderes: Wie bekomme ich nur die aktive Sprachen angezeigt. Zur Zeit werden leider alle angezeigt, auch die Objekte in anderen Sprachen. Wir verwenden eine Custom-Catalog Liste mit eigenem SQL und Checkbox "Aktive Sprache filtern". Wo liegt hier der Hund begraben? Liegt das evtl. am eigenen SQL. Brauche ich dazu etwa einen Filter?

              Gruß Andy

              Kommentar


              • #8
                Wie CC mit Sprachen arbeitet ist hier aufgezeigt: http://forum.premium-contao-themes.c...-lieben-lernen
                Die online Demos und der Demo-Login auf cc.premium-contao-themes.com haben ebenfalls ein mehrsprachiges Beispiel
                Zuletzt geändert von Tim; 16.05.2018, 07:28.
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  Hi Tim,
                  ich kenne die Doku zur Mehrsprachigkeit und habe alles wie beschrieben eingerichtet.

                  ZITAT:
                  Frontend:

                  Die CC-Liste ist hier sehr smart. Man kann direkt die aktive Sprache vorfiltern lassen. Dann schaut CC nach der Sprachvariablen des aktiven Zweigs. Fertig aus.

                  Genau das scheint aber nicht zu klappen. Auch der Versuch mit ?language=de oder ?language=en führt zu keiner Filterung. Die Contao Installation hat zwei Sprachbäume, die jeweils unter einer eigenen Domain erreichbar sind. Es werden aber immer alle CustomCatalog Objekte in allen Sprachen ausgegeben. Muss ich hier noch irgendwo etwas aktivieren?
                  Gibt es eine einfache Möglichkeit zu prüfen, ob oder wo da etwas nicht stimmt?

                  Gruß Andy

                  Kommentar


                  • #10
                    Brauche ich grundsätzlich einen Sprachwechsler-Filter, auch wenn ich nicht manuell filtern möchte?

                    Kommentar


                    • #11
                      Zitat von Ynda Beitrag anzeigen
                      Brauche ich grundsätzlich einen Sprachwechsler-Filter, auch wenn ich nicht manuell filtern möchte?
                      Nein. Aber getrennte Webseiten-Startpunkte und die Option "Aktive Sprache filtern" muss in den Liste-Modulen natürlich aktiv sein.
                      http://www.premium-contao-themes.com

                      Kommentar


                      • #12
                        Das ist es ja. Aber ich bekomme trotzdem immer alle Einträge. Wo kann ich zur Fehlersuche anfangen? Mir fehlt da grad ein guter Ansatz, jetzt mal abgesehen von den einschlägigen Logs, die aber leider keine unnatürlichen Aktivitäten aufzeigen.

                        Kommentar


                        • #13
                          Hi Tim,
                          jetzt habe ich bei einem anderen Projekt den CustomCatalog auf Mehrsprachigkeit umgestellt und habe das gleiche Problem wieder. Trotz dem Haken bei aktive Sprache filtern, werden immer alle Sprachvarianten ausgegeben.
                          Wir verwenden nur eine CustomCatalog Liste ohne Filter und/oder Filtersets. Aktive Sprache filtern ist aktiv und bei leerem Filter alle anzeigen auch. Das funktioniert auch alles wunderbar, solange die Mehrsprachigkeit nicht aktiv ist. Sind beides Contao 3.5.35 Installationen.

                          Ich komme grad nicht weiter. An welcher Stelle im Code, wird denn die "aktive Sprache gefiltert"? Evtl. kann ich mal prüfen, ob das überhaupt passiert.

                          Gruß Andy

                          Kommentar


                          • #14

                            Hi Tim, ich habe mir mal die pct_customelements_plugin_customcatalog/PCT/CustomElements/Plugins/CustomCatalog/Frontend/ModuleList.php angeschaut und in Zeile 136 einen Break eingebaut mit entsprechendem Dump.
                            PHP-Code:
                            dump($objFilterCollection) ;
                            $objLanguageFilter->setLanguage($strLanguage) ;
                            $objLanguageFilter->filterActiveLanguage true;
                            $objFilterCollection->add($objLanguageFilter) ;
                            dump($objFilterCollection) ; 
                            Der Inhalt von $objFilterCollection scheint vorher und nachher identisch zu sein, bis auf den Wert intCount. Der ist vorher 1 dann 2. Was mich irritiert, ist das Array arrFilters.
                            Ich würde annehmen, dass hier dann noch der LanguageFilter dazu kommt. Sieht aber vorher wie nachher so aus:
                            PHP-Code:
                            [arrFilters:protected] => Array         (
                                        [
                            0] => PCT\CustomElements\Filters\SimpleFilter Object
                                            
                            (
                                                [
                            arrValue:protected] => Array
                                                    (
                                                    )
                                                 [
                            strName:protected] =>
                                                 [
                            strField:protected] =>
                                                 [
                            bolIsStrict:protected] => 1
                                                
                            [blnDoNotRender:protected] =>
                                                 [
                            arrModified:protected] => Array
                                                    (
                                                        [
                            arrOptions] => 1
                                                    
                            )
                                                 [
                            arrTranslations:protected] => Array
                                                    (
                                                    )
                                                 [
                            arrResultCounts:protected] => Array
                                                    (
                                                    )
                                                 [
                            strTable:protected] =>
                                                 [
                            arrData:protected] => Array
                                                    (
                                                    )
                                                 [
                            objOrigin:protected] =>
                                                 [
                            objModel:protected] =>
                                                 [
                            arrOptions] => Array
                                                    (
                                                        [
                            column] => id
                                                        
                            [where] => published=1
                                                    
                            )
                                             )
                                     ) 
                            oder interpretiere ich hier etwas grundlegend falsch?
                            Gruß Andy
                            Zuletzt geändert von Ynda; 18.05.2018, 12:19.

                            Kommentar


                            • #15
                              Viel Zauberei ist da nicht bei. Ich habe es hier einmal schnell aufgebaut: http://cc.unlimited-c4.premium-conta...com/liste.html
                              Schick mir mal die Lizenznummer als PN, dann richte ich dir nächste Woche einen Zugang zu dem unlimitierten Backend ein.
                              http://www.premium-contao-themes.com

                              Kommentar

                              Lädt...
                              X