Entityform - Einsatz multilinguale Website - Probleme mit Sprachwechsel nach Absenden

am 19.07.2015 - 11:28 Uhr in
Guten Morgen,
ich habe eine multilinguale Website erstellt. Als Modul für das Kontaktformular nutze ich Entityform.
Ich habe für jede Sprache einen Entityformtyp für mein Kontaktformular erstellt, mit dem Modul "Entityform Block" in einen Block umgewandelt. Die Blöcke wurden jeweils einer Sprache zugeordnet und werden im Inhalt einer Node mit dem Namen "Kontaktformular" angezeigt. Diese Node wurde mit Entitytranslation übersetzt.
Soweit, so gut - klappt alles prima.
Wenn eine Benutzer das Kontaktformular abgesendet hat, landet er auf der Bestätigungsseite (confirm) mit der URL contact/confirm?entityform_id=21
Diese URL setzt sich zusammen aus
- dem Maschinennamen des entityformtyps (contact)
- confirm und der
- ID des Entitytypes (entityform_id=21)
Problem:
Wenn ich von der Confirmseite die Sprache über den Sprachblock wechseln möchte, wrden verschiedenen Fehlermeldung angezeigt und es wird auf den Loginbereich weitergeleitet.
Notice: Undefined index: entityform_id in entityform_access() (line 275 of XXXXXXXXXXXXXXXXXXXXXXXXXX\sites\all\modules\entityform\entityform.module).
Notice: Undefined index: entityform_id in entityform_access() (line 275 of XXXXXXXXXXXXXXXXXXXXXXXXXXsites\all\modules\entityform\entityform.module).
Access denied. You must log in to view this page
Zum einen zeigen die Sprachlinks im Sprachblock nicht den komplette Link, sondern nur contact/confirm und nicht die ID des Entityformstypes:
Deutsch: eform/contact-de/confirm
English: eform/contact-de/confirm
Französisch:eform/contact-de/confirm
Zum anderne wäre ein Wechsel von einer Sprach zur anderen auch gar nicht möglich, weil ich für jede Sprache einen eigenen Entityform-Typen mit einer eigenen ID eingerichtet habe.
D.h. bei Aufrufen der Seite mit dem Konatkformularblock wird der Pfad der Node (contact) angezeigt und ein Sprachwechsel über die Sprachbox ist ohne weiteres möglich.
Sobald ich aber das Formular abgeschickt habe erscheint die URL des Entityformtypes: contact/confirm?entityform_id=21. Hier ist ein Sprachwechsel nicht mehr möglich, da die Links im Sprachblock nicht die ID des Entityformtypes enthalten.
Es gäbe noch eine andere Möglichkeit, die entityforms in eine Multilinguale Seite einzubeinden:
- Für jede Sprache einen Entityform-Typ erstellen: de, en, fr
- Inhaltstyp erstellen und erstellten Entityform-Typ per Module "Entity-Reference" einbinden.
- Mit den betreffenden Inhaltstyp ein Node erstellen und die sprachlich differenzierten Entity-Types einbinden.
Hat jemand Erfahrungen damit gesammelt oder lauern da evtl. andere Fallstricke.
minimalist
- Anmelden oder Registrieren um Kommentare zu schreiben
Du brauchst nicht je Sprache
am 19.07.2015 - 13:40 Uhr
Du brauchst nicht je Sprache ein Entityform anlegen, sondern nur eines für alle Sprachen und innerhalb der Fields übersetzen, dann werden bei Wechsel der Sprache auch die richtigen Feldnamen/Bezeichnungen in der jeweiligen Sprache angezeigt.
Unter Berechtigungen einmal gucken ob die User das Entity Form (bzw. alle 3 Forms) ausfüllen dürfen, das Modul ist etwas eigenwillig besonders in Kombi mit Entityform Block.
Grundconfig auf Berechtigungen checken:
admin/config/content/entityform
jedes einzelne Form auf Berechtigungen checken:
admin/structure/entityform_types/manage/dein-entityform-name_kontaktform
Grüße Jenna
Vielen Dank, Janna, aber wie
am 19.07.2015 - 14:36 Uhr
Vielen Dank, Janna,
aber wie übersetzt man dann die Submit-Buttons etc.?
Daran bin ich nämlich gescheitert und so auf die Idee gekomme, drei Entityformtypen zu verwenden.
Die Fields und Bezeichnungen
am 19.07.2015 - 16:41 Uhr
Die Fields und Bezeichnungen mit Entity Translation: /admin/config/regional/entity_translation
Der Submit Button ist allerdings ein kurioses Problem, siehe mein Thread http://www.drupalcenter.de/node/50769
In der Standard Drupal Übersetzung (String Translation) war der 2x drin, blöderweise habe ich einen davon gelöscht und es bis jetzt auch nicht wieder hinbekommen.
Heisst, mein eines Entity Form ist komplett dreisprachig, nur der Submit Button weigert sich hartnäckig und heisst momentan in jeder Sprache Submit.
Allerdings, hätte ich den einen String nicht gelöscht, hätte es funktioniert, vielleicht kriegst du das so hin, daher bloß keine doppelten Strings löschen die in irgendeiner Form mit dem Submit Button zusammen hängen.
Guck mal unter der Drupal Translation ob du ihn dort übersetzen kannst: /admin/config/regional/translate/translate
Mir war das zu doof wegen des einen Buttons drei Formulare anzulegen, ich bin auch noch an einer Lösung dran und schreibe dir hier rein sowie ich das repariert bekommen habe. Man kann ja auch Token einsetzen, ich war dann schon so weit 3 Pages anzulegen mit dem Titel "Senden" "Send" usw. und diesen Titel per Token als Submit zu ersetzen. Andere Token habe ich bis jetzt nicht finden können die von dem Button angenommen werden um ihn sozusagen auszutricksen.
Grüße Jenna
Guten Abend Jenna, danke für
am 19.07.2015 - 20:44 Uhr
Guten Abend Jenna,
danke für den Tipp. Den Submit-Button habe ich nur als Beispiel genannt:
Es sind ja auch die ganzen Settings, die nicht übersetzt werden können. Was ist mit den "Form Overrides" und den "Submission Pages Settings"? Die möchte ihc natürlich uach übersetzt haben. Sollte es mit Rules möglich sein, diese Bereich mittels Token zu übersetzen? Ich habe dazu aber noch keinen Lösungsansatz gefunden.
Evtl. müssen auch die Entityform Submission Rules übersetzt.werden.
minimalist