Es werden nur Mails versendet in Sprache der Administrationsoberfläche
am 12.06.2014 - 15:32 Uhr in
Hallo Liebe Gemeinde.
Ich habe ein Problem mit einer mehrsprachigen Webseite, wo ich einfach nicht weiterkomme. Ich habe schon überall gepostet (außer hier: -)) und frage mich ob ich der Einzige bin der dieses Problem hat. Zum Problem, wenn ich aus der Administration Bereich eine Mail verschicken möchte, wo der Benutzer eine andere Sprache hat als die des Administration Bereich, bekommt er trotzdem die Mail in Sprache die im Administration Bereich eingestellt ist. (Was für ein langer Satz :-))
Vielleicht ein wenig kompliziert erklärt. Mal anders, ich habe eine Seite in Deutsch und Englisch wobei die Administration in Deutsch eingestellt ist. Wenn ich eine Mail aus dem Admin Bereich an einem Benutzer mit voreingestellte Sprache Englisch versende, über Rules eingestellt, bekommt er sie in deutscher Sprache. Schickt das System die Nachricht wird sie in seiner Sprache gesendet.
Alle Sprachen die gesendet werden sollen, sind auch in der Sprache übersetzt.
Welche Module?
Drupal Commerce Kickstart 2
i18n
entity_translation
Hier ein Beispiel wenn ein Kunde eine Bestellung abschließt, bekommt er seine Bestätigungsmail in seiner Sprache. Wenn er eine weitere bekommen soll, über Statusänderung und sie aus der Administration Oberfläche gesendet werden soll, wie Statusänderung kommt die Mail in der Sprache der Admin Oberfläche. Wenn Deutsch über Präfix mysite.de/de/node/1 eingestellt ist, in Deutsch und wenn Englisch über Präfix mysite.de/en/node/1 kommt die Mail in Englisch an.
Ich habe schon alles durch gesucht und gepostet in den vorhandenen Module und Bereiche, wie auf Drupal Commerce Guys http://www.drupalcommerce.org/questions/13854/change-custom-messagetype-..., oder Commerce Messages https://drupal.org/node/2278831. Ich dachte, dass dieses nur mit diese Module zusammenhängt. Aber jetzt habe ich Commerce Billy Mail installiert und auch hier ist es so, obwohl richtig übersetzt. Auch hier habe ich gepostet https://drupal.org/node/2282899. Weil meine Englisch nicht gerade das beste ist und ich ein Talent habe alles kompliziert zu erklären, schreibe ich es noch mal in ein Deutsches Forum (Community), in der Hoffnung, das ich es in meiner Muttersprache besser erklären kann.
Es kann auch sein das es nicht viele Seiten mit diesem Module in Deutsch/Englisch sind, das halte ich aber ehe für unmöglich. Aber es scheint entweder ich übersehe was oder es ist wirklich ein Problem, das noch keiner hatte.
Meine Vermutung ist das sich vielleicht Übersetzungsmodule beißen, aber darüber habe ich nichts gefunden und auch auf anderen Seiten sind diese Module gleichzeitig installiert.
Ich hoffe das jemand so ein Problem schon hatte und es lösen konnte.
Viele Grüße
Patrick
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich hatte ein ähnliches
am 12.06.2014 - 17:57 Uhr
Ich hatte ein ähnliches Problem mit Rules in einem anderen Zusammenhang, dabei sollte ein PDF per Rules generiert werden, wobei die PDFs immer in der gerade auf der Webseite aktuell eingestellten Sprache erstellt wurden, statt in der, die der jeweilige (Ziel-)Nutzer eingestellt hat. Das ist halt grundsätzlich so, dass Drupal die aktuell eingestellte Sprache nimmt, wenn Inhalte angezeigt oder erstellt werden.
Eigentlich sollte/ müsste das dann wohl im jeweiligen Modul berücksichtigt werden. Ich habe das gelöst, indem ich die globale $language-Variable auf die Sprache des Users gesetzt habe:
global $language;
$language->language = $nutzer->language;
Wobei $nutzer das durch
user_load()
geladene User-Objekt für den jeweiligen Nutzer war.Danach folgte der PHP-Code, mit dem die Inhalte des PDF generiert wurden - und voila: die Inhalte wurden richtig in der Sprache des jeweiligen Nutzers erzeugt.
Kurzum: wenn es das Modul, was Du nutzt, nicht vorsieht, kann es sein, dass Du da ohne eigene Programmierung nichts dran ändern kannst. Aber vielleicht hilft Dir das ja schon weiter.
Viele Grüße,
Tobias
Vielen Dank für den Hinweis
am 12.06.2014 - 19:25 Uhr
Vielen Dank für den Hinweis Tobias. Ich werde mir jetzt den Kopf zerbrechen wie ich es einbauen kann. Bei mir generiert auch Rules die e-mails. Normalerweise müsste man doch eigenen php-code ausführen per Rules als Bedingung einbauen können? Ich werde suchen probieren und berichten….
wenn das über rules laufen
am 13.06.2014 - 06:33 Uhr
wenn das über rules laufen sollte, kann man doch bei der action die sprache noch wählen, meine ich...
C.A.W. Webdesign
Najaaaaa.... also das hat bei
am 13.06.2014 - 07:31 Uhr
Najaaaaa.... also das hat bei mir nicht funktioniert - wenn Du in einer Action vor der Action zum Versenden der Email die globale $language-Variable veränderst, gilt das wohl nur in der ersten Action. Bedeutet: ich musste das in jeder Action, die irgendeinen Inhalt erstellt, selber tun und dann die eigentliche Magie auch über einen eigenen PHP-Code erledigen lassen. Es funktionierte nicht, das nur in einer Action am Anfang der Rule zu tun, auf dem Weg zu den nächsten Actions ging die Veränderung dann verloren. Zumindest war das in dem Drupal6-Projekt so, aber ich nehme mal an, das hat mit der Drupal-Version nichts zu tun.
Daher weiß ich jetzt auch nicht, ob das in Deinem Fall so hilft - je nach dem, wie das von Dir verwendete Module die Action anbietet, hilft das vielleicht. Vielleicht gibt es einen hook, mit dem Du Dich in die Erstellung der Email einklinken kannst?!
Jedenfalls kenne ich das Problem, es hat mir auch einiges Kopfzerbrechen gebracht!!!
@caw das ist richtig das man
am 13.06.2014 - 09:10 Uhr
@caw das ist richtig das man die Sprache auswählen kann, das Problem ist bei mir, das Rules überprüfen muss welche eingestellte Sprache der Benutzer hat und danach die Mail in dessen Sprache senden soll. Leider habe ich bis jetzt noch nichts funktionierendes hinbekommen.
@tobi-berlin du hast recht
am 13.06.2014 - 09:16 Uhr
@tobi-berlin du hast recht bis jetzt funktioniert es auf keinen Fall. Ich arbeite jetzt schon Stunden mit Rules und versuche einen Weg zu erkunden, aber ich glaube du hast Recht das das Hoffnungslos ist. Ich gehe auch davon aus das das über ein Module selber und das Module selber gesteuert werden muss. Aber leider ist das so das die Module Schreiber nicht immer die Zeit finden auf alles zu antworten. Vielleicht hätten sie bessere Möglichkeiten da sie ihre Module kennen und wissen welche Schnittstellen angeknüpft werden können. Zumindest einen weg in ihr eigenen Modulen könnten sie vielleicht geben das man dort weitermachen kann.
Also weiter und suchen...
Also ich muss sagen, dass ich
am 14.06.2014 - 09:08 Uhr
Also ich muss sagen, dass ich kurz vor dem Aufgeben bin. Ich habe jetzt mir Rules hin und her probiert, aber keine Chance. Das man das Module selber angreifen muss scheint dann jetzt auch logisch. Wo man aber ansetzen sollte, ist mir ein Rätzel. Nun ja, auch wenn ich Drupal liebe, an solchen Tagen hasse ich es.
Rein vom Logischen sollte das eigentlich nicht passieren, alles andere in der Übersetzung geht ja. Was mich am meisten wundert, ist das ich das Gefühl habe, das dieses Problem wohl gar nicht so häufig aufkommt, wenn man im Netz danach sucht, ist es doch schon ganz rar gesät.
Ich frage mich wie die anderen Drupal Commerce Besitzer dieses gelöst haben, es scheint ja dann bei allen anderen zu funktionieren, was ich bezweifel. Da gehe ich ehe mal von aus das hier eigene Module geschrieben wurden. Ich würde mich schon sehr interessieren wie man unter diesem Problem doch beim eigenen Module angreifen könnte.
Ich kann schon verstehen,
am 14.06.2014 - 10:06 Uhr
Ich kann schon verstehen, dass so etwas einen zum Verzweifeln bringt, aber man muss eben immer bedenken, dass Drupal Open Source ist - der Grundgedanke dahinter ist ja nicht, ein perfektes Produkt abzuliefern, sondern gemeinsam an solchen Sachen zu arbeiten. Da hilft nur: entweder durchbeißen und mitfrickeln oder jemanden engagieren, der das für einen erledigt. Aber nachdem man durch solche Frickeleien mal durchgekommen ist und entdeckt, wie durchdacht Drupal eigentlich ist, kann man es nur noch lieben und weiß irgendwann: es gibt IMMER eine Lösung ;-)
Aber dann lass uns doch mal konkreter werden - Du sprichst da mehrere Module an, um welches Modul geht es denn konkret? So allgemein "Mails übersetzen" geht nicht, weil Drupal zwar eine Funktion zum Versenden einer Mail mitbringt, diese aber die Mail-Texte von einer anderen Funktion erhalten muss. Man muss also schauen: welches Modul verwendest Du und wo wird in diesem Modul die Mail zusammengestellt.
@tobi-berlin, bitte nicht
am 14.06.2014 - 12:18 Uhr
@tobi-berlin, bitte nicht falsch verstehen, ich weiss das Drupal ein Open Source ist und ich weiss das man hier mithelfen sollte. Und das versuche ich auch aus meiner sicht zu machen. Da ich kein Programmierer bin, kann ich mich in Module schreiben nicht einbringen. Was ich aber mache und das jetzt schon öfters ist. Wenn in einem Module was fehlen das ich gebrauchen kann, habe ich es mir schreiben lassen und sofort drupal.org dem Module als Patch zu Verfügung gestellt. Das ist für mich selbst verständlich und ein Dankeschön an die Gemeinde. Ich habe bei einigen Drupal Projekte gespendet, das sie erstellt werden.
Ich hoffe das jetzt ein wenig meine Sichtweite über Open Source heller geworden ist :-)
Die Übersetzung für Mails mache ich mit i18n mit Variable funktioniert perfekt.
Zu den Modulen Selber die aus meiner Sicht das Problem machen.
Ich meine es ist https://drupal.org/project/commerce_message das zum Versenden einer Bestellbestätigung da ist (und natürlich auch mehr). Nur um zu senden von zwischen Nachrichten und Status Änderung oder Abschluss einer Bestellung (z. B. Tracking Nummer versenden) muss man einen neuen Nachrichten Typ erstellen und über Rules zusammen bauen lassen.
Da die Nachrichten über Statusänderung aus den Admin –Bereich versandt werden greift hier wohl auch die Sprache des Admin Bereichs zu.
Ich hatte versucht den Einfacheren wegzunehmen und habe es mit diesem Module versucht https://drupal.org/sandbox/mglaman/2220855 . Soweit hat auch alles geklappt nur mit der Übersetzung haut es nicht hin.
Dann wurde Commerce-messages aktualisiert und das Klonen von Nachrichten-Typen funktioniert jetzt so, das man auf das Sandbox Module verzichten kann.
Hier muss aber über Rules ebenfalls das Versenden gebaut werden. Ich habe ein paar Screenshots hochgeladen, vielleicht ein besserer Einblick.
Leider ist ein Bild ein wenig klein hier nochmal in größer http://share.febko.de/repository/drupal/commerce/rules/22-05-_2014_18-05...
„Nachtrag: Zum versenden von Rechnungen benutze ich Commerce Billy und Commerce Billy Mail. Auch mit Rules.“
Und das ist mein Problem zum Versenden mit Übersetzung.
Ich habe jetzt mal das ganze
am 14.06.2014 - 17:41 Uhr
Ich habe jetzt mal das Module commerce_message für zusätzlich Nachrichten Typen und die passenden Rules umgeschrieben (ich weiss, dass man das nicht macht). Vielleicht hat mal jemand lust das zu testen, um zu sehen, das die neuen Nachrichten Typs nicht in der eingestellten Sprache des Benutzer versendet werden.
Das Module schreibt jetzt zwei neue Nachrichten Typen „Order Processing notify“ und „Ordner complete notify“. Beiden werden durch Rules aufgefordert eine Nachricht beim Ändern des Status „Verarbeitung läuft“ und „Abgeschlossen“ zu schicken.
Hier auch, die Nachricht vom System wird in der richtigen Sprache versenden und die selbst versendete per Status ändern leider nicht.