Mehrsprachige Autorenbox

  • 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:

    Code
    echo Text::_($this->escape($this->escape($fields[2]->value))); 

    Oder du verzichtest auf das "About me" Feld und packst direkt den Sprachkey in die Ausgabe:

    Code
    echo Text::_('COM_CONTENT_AUTHOR_INFO_' . $user->username);

    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

  • 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.