- Joomla Version
- 5.2.3
- PHP Version
- PHP 8.3.x
- Hoster
- ionos
Hi,
ich habe unter meinen Artikel eine Autorenbox nach dieser Anleitung erstellt.
Nun ist meine Webseite zweisprachig. Wie kann ich die Autorenbox zweisprachig machen?
MfG neoman
Hi,
ich habe unter meinen Artikel eine Autorenbox nach dieser Anleitung erstellt.
Nun ist meine Webseite zweisprachig. Wie kann ich die Autorenbox zweisprachig machen?
MfG neoman
Hallo,
eine Möglichkeit wäre, dass du mit Sprachstrings arbeitest, die du dann via "System => Sprach-Overrides" übersetzen kannst. Eine Alternative wäre, dass du für jede Sprache ein Custom-Field anlegst, dass der User befüllen kann und die du dann je nach Sprache ausgibst.
Wie mache ich das mit den Sprachstrings? Also wie das generell funktioniert ist mir bekannt.
Ich habe ein Custom Field in Joomla erstellt, das mir dann im Backend die Möglichkeit gibt, in ein Textfeld einen Text einzutragen. Dieses Feld bzw. diesen Text zeige ich dann im Frontend unter den Artikeln an.
Nun benötige ich ja einen Text einmal für den deutschen Artikel und einen Text für den englischen. Wie mache ich das mit einen Sprach-Override?
MfG neoman
Es kommt nun drauf an, ob die Autoren ihre "About" Texte selbst anpassen sollen oder die von dir gepflegt werden.
Wenn sie diese selbst eingeben können sollen, dann brauchst du die Lösung mit den verschiedenen Textfelder pro Sprache.
Sollen die Texte nicht vom Autor angepasst werden, dann kannst du entweder in die Textarea z.B. "COM_CONTENT_AUTHOR_INFO_XXXXX", wobei du "XXXXX" z.B. mit dem Username des Autors ersetzt. Dann kannst du bei der Ausgabe folgendes machen:
Oder du verzichtest auf das "About me" Feld und packst direkt den Sprachkey in die Ausgabe:
Auch hier dann entsprechend bei "System => Sprach-Overrides" den Sprachstring anlegen und übersetzen.
Am einfachsten wäre, wenn ich in das erzeugte Feld im Backend einfach einen Sprachschlüssel einfügen könnte, das dann die jeweilige Sprache ersetzt. Wenn ich allerdings in das Feld einen Sprachschlüssel einfüge, wird dieser nicht in den Wert umgewandelt sondern direkt im Frontend ausgegeben.
Wenn sie diese selbst eingeben können sollen, dann brauchst du die Lösung mit den verschiedenen Textfelder pro Sprache.
Darf ich fragen wie ich das umsetze, wenn das oben geschilderte nicht funktioniert?
MfG neoman
Zum "wird nicht umgewandelt": Du musst bei der Ausgabe den Wert in Text::_(...) packen (siehe erstes Codebeispiel).
Zu "mehrere Felder": Du kannst ja bei den Custom Fields eine Sprache wählen, dann gibt es zwei Felder: "Über mich" und "About me" entsprechend dann die Sprache auswählen.
Aber ich muss ja dann im Override auf die Sprache abfangen, wenn ich zwei Felder habe.
Momentan sieht die Ausgabe ja mit einem Feld so aus:
echo $this->escape($fields[10]->value);
Wie müsste denn die Ausgabe aussehen, wenn ich nun zwei Felder habe, also einmal für deutsch und einmal für englisch?
MfG neoman
Der Code oben funktioniert leider nicht. Ich kann die Sprachen einzeln auslesen, aber nicht zusammen. ICh müsste irgendwie prüfen welche Sprache gerade aktiv ist und dann entweder die id 10 oder die id 11 verwenden.
Hast du noch einen anderen Codevorschlag für mich, das wäre wirklich klasse wenn das funktionieren würde.
Hab es mit einer einfachen Abfrage der Sprache hinbekommen. Danke für Deine Unterstützung bembelimen