"Hilfe" in Komponenten

  • Kennt jemand eine bessere Lösung dafür, die Komponenten-Hilfe Mehrsprachig zu gestalten?

    Im Moment lese ich die eingestellte Sprache des eingelogten Admins aus, ist diese nicht gesetzt, oder nicht "de-DE", wird eine englische Hilfe angeboten, ansonsten die deutsche.


    im Fall von Joomla 3.9.x:

    Code
    1. $user = JFactory::getUser();
    2. $params = $user->get('_params');
    3. $helpdesc_id = ((isset($params['admin_language']) && $params['admin_language'] == 'de-DE') ? 40 : 24); // id 40 = de / id 24
    4. $helpdesc_url = 'https://example.org/index.php?option=com_content&view=article&id=' . $helpdesc_id . '&tmpl=component';
    5. JToolBarHelper::help('screen.foo.bar', false, $helpdesc_url);




    oder im Fall von Joomla4:


    Code
    1. $user = JFactory::getUser();
    2. $params = $user->get('_params');
    3. $helpdesc_id = ((isset($params['admin_language']) && $params['admin_language'] == 'de-DE') ? 40 : 24);
    4. $helpdesc_url = 'https://example.org/index.php?option=com_content&view=article&id=' . $helpdesc_id . '&tmpl=component';
    5. JToolBarHelper::help('screen.foo.bar', false, $helpdesc_url);
    6. $toolbar->help('COMPONENTS_HELP_THIRDPARTY', false, $helpdesc_url, 'com_thirdparty');

    Linux ist wie guter Sex, man kann es beschreiben oder darüber reden, man weiß erst, was es bedeutet, wenn man es erlebt hat.

  • Ich würde ja für jede Hilfsseite eine Kategorie (Typ: Blog, Sprache: all) anlegen und darin dann alle Übersetzungen der Hilfe reinwerfen. Dann hast du keine Hard-Coded IDs auf Artikel und kannst ohne Probleme weitere Artikel und Sprachen dazu packen. In der Hilfe verlinkst du einfach auf die Kategorie (und kannst eventuell noch den Language-Tag direkt mitgeben).


    Die Korrekte Sprache bekommst du so: https://github.com/joomla/joom…joomla/joomla.php#L82-L83

  • Ich würde ja für jede Hilfsseite eine Kategorie (Typ: Blog, Sprache: all) anlegen und darin dann alle Übersetzungen der Hilfe reinwerfen. Dann hast du keine Hard-Coded IDs auf Artikel und kannst ohne Probleme weitere Artikel und Sprachen dazu packen. In der Hilfe verlinkst du einfach auf die Kategorie (und kannst eventuell noch den Language-Tag direkt mitgeben).


    Die Korrekte Sprache bekommst du so: https://github.com/joomla/joom…joomla/joomla.php#L82-L83

    Die Idee ist richtig gut, warum habe ich da nicht dran gedacht? Das einzige Problem, was dabei auftaucht ist:

    Wenn ich auf eine Kategorie verlinke und der Benutzer sich die Sprache selber auswählt (über den entsprechenden Artikel), dann wird (vermutlich) das "&tmpl=component" in der URL nicht mit übernommen und eine normale Webseite angezeigt.

    Linux ist wie guter Sex, man kann es beschreiben oder darüber reden, man weiß erst, was es bedeutet, wenn man es erlebt hat.

  • So sieht es bei mir aus, die Kategorien sind auch schon gefüllt (Struktur im Page-Builder).


    Das Problem an der ganzen Sache ist: Die Sprache kann im Joomla gesetzt werden, oder auch nicht.

    Wenn der Admin sein Profil nicht aufruft, ist das "params"-Feld in der DB komplett leer, erst wenn der Admin sein Profil aufruft und speichert, steht dort etwas drin... und dann kann zusätzlich das "backend-language" leer sein (wenn er die Sprache für das BE nicht eingestellt hat).