Languagemenü - Flaggen oder Kürzel

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
frase
Posts: 4133
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Languagemenü - Flaggen oder Kürzel

Post by frase » Sun Jul 25, 2021 8:07 am

cmb wrote:
Sat Jul 24, 2021 9:40 pm
Danke, Ludwig, sehr schön! Die Anzeige als Flagge war immer schon "falsch", also bin ich sehr dafür, das in CMSimple_XH zu integrieren.
+1
lck wrote:
Sat Jul 24, 2021 9:31 pm
Neuer Download, Version 2 mit 5fach-Option (zus. flagsandshortname und flagsandlongname).
👍🏻

cmb
Posts: 13766
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Languagemenü - Flaggen oder Kürzel

Post by cmb » Sun Jul 25, 2021 11:20 am

lck wrote:
Sat Jul 24, 2021 10:32 pm
Mir geht es um die Hilfetexte in den Sprachdateien. Müssen alle angepasst werden oder reichen de.php und default.php?
Du meinst $tx['help']['language_menu']? Das sollte idealerweise in allen Sprachdateien angepasst werden, aber wenn keine Übersetzung da ist, dann reichen halt en.php und de.php.
Christoph M. Becker – Plugins for CMSimple_XH

Tata
Posts: 3384
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Languagemenü - Flaggen oder Kürzel

Post by Tata » Sun Jul 25, 2021 4:07 pm

Ich habe für einige Versionen auch die SK Überstzungen gegeben. Meine Erfahrung ist aber, daß es kaum jemand gelesen hat. Mir reichen die EN und DE Versionen reichlich gut. Es ist nur irgendwo zu erwähnen, dass es völlig reicht, eine der (EN/DE) Dateien umzunennen und dan zu übersetzen.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

lck
Posts: 2368
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Languagemenü - Flaggen oder Kürzel

Post by lck » Sun Jul 25, 2021 6:45 pm

cmb wrote:
Sun Jul 25, 2021 11:20 am
Du meinst $tx['help']['language_menu']? Das sollte idealerweise in allen Sprachdateien angepasst werden, aber wenn keine Übersetzung da ist, dann reichen halt en.php und de.php.
Ja, genau das meine ich. Und defauft.php, oder?
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 13766
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Languagemenü - Flaggen oder Kürzel

Post by cmb » Sun Jul 25, 2021 9:13 pm

lck wrote:
Sun Jul 25, 2021 6:45 pm
cmb wrote:
Sun Jul 25, 2021 11:20 am
Du meinst $tx['help']['language_menu']? Das sollte idealerweise in allen Sprachdateien angepasst werden, aber wenn keine Übersetzung da ist, dann reichen halt en.php und de.php.
Ja, genau das meine ich. Und defauft.php, oder?
default.php gibt es im Repo nicht; die Datei wird beim Build als Kopie von en.php erstellt. :)
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 2368
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Languagemenü - Flaggen oder Kürzel

Post by lck » Fri Jul 30, 2021 6:17 pm

cmb wrote:
Sun Jul 25, 2021 9:13 pm
default.php gibt es im Repo nicht; die Datei wird beim Build als Kopie von en.php erstellt.
Umso besser. Eine Datei weniger zu ändern.

Neuer Download, Version 3. Änderung, nur Leerzeichen vor dem </a> entfernt.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

lck
Posts: 2368
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Languagemenü - Flaggen oder Kürzel

Post by lck » Fri Jul 30, 2021 6:28 pm

Neue Frage. Wie kann man im folgenden Code, alle Ausgaben vom $t 's mit einem (oder mehreren) gemeinsamen div umschließen?

Die einzelnen $t 's wären kein Problem. Bei meinen Versuchen habe ich es sogar soweit gebracht, dass die template.htm komplett geleert wurde :o . Fragt mich jetzt aber nicht, wie. Ich war froh noch kurz vorher eine Sicherung erstellt zu haben. Aber interessant ist das allemal, dass so etwas mit einem schlichten PHP-Codefehler überhaupt geht.

Code: Select all

...
} elseif (isset($cf['language']['menu'])
		&& $cf['language']['menu'] == 'flagsandlongname'
		) {
		$t .= '<a class="flagsandlongname" href="' . $url . '">' . $el_short_long . '<span>' . $title . '</span></a>';
		}
		
    }
    return $t;
}
?>
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

frase
Posts: 4133
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Languagemenü - Flaggen oder Kürzel

Post by frase » Sat Jul 31, 2021 8:55 am

lck wrote:
Fri Jul 30, 2021 6:28 pm
Neue Frage. Wie kann man im folgenden Code, alle Ausgaben vom $t 's mit einem (oder mehreren) gemeinsamen div umschließen?
Eigentlich sollte das im Template erfolgen.
In "fhs-simple-2019" (also in deinem Beispiel) erfolgt das mit "<nav class="langMenu"><?=languagemenu();?></nav>"
Ob das ein<nav> oder <div> ist, spielt da kaum eine Rolle.

Willst du es aber über die tplfuncs.php tun, dann müsste das in etwa so aussehen (ca. ab Zeile 534):

Code: Select all

    $t = '<div class="xxx">';
    foreach ($r as $lang) {
        $url = $pth['folder']['base']
            . ($lang == $cf['language']['default'] ? '' : $lang . '/');
        $img = $pth['folder']['templateflags'] . $lang . '.gif';
        if (!file_exists($img)) {
            $img = $pth['folder']['flags'] . $lang . '.gif';
        }

        $title = isset($langName[$lang])
            ? $langName[$lang]
            : $lang;
        
        $el = file_exists($img)
            ? '<img src="' . $img . '" alt="' . $title . '" title="'
                . $title . '" class="flag">'
            : $title;
        
        $el_short_long = file_exists($img)
            ? '<img src="' . $img . '" alt="' . $title . '">'
            : $title;
        
        if (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'flags'
        ) {
        $t .= '<a href="' . $url . '">' . $el . '</a>';
        } elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'shortname'
        ) {
        $t .= '<a  class="shortname"href="' . $url . '" title="'. $title . '"><span>' . $lang . '</span></a>';
        } elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'longname'
        ) {
        $t .= '<a  class="longname" href="' . $url . '"><span>' . $title . '</span></a>';
        } elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'flagsandshortname'
        ) {
        $t .= '<a class="flagsandshortname" href="' . $url . '" title="'. $title . '">' . $el_short_long . '<span>' . $lang . '</span></a>';
        } elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'flagsandlongname'
        ) {
        $t .= '<a class="flagsandlongname" href="' . $url . '">' . $el_short_long . '<span>' . $title . '</span></a>';
        }
    }
    $t .= '</div>';
    return $t;
}
<div class="xxx"> ist der DIV um alles.

Übrigens:
Wenn du beim XH-Standard bleiben willst, dann solltest du dein Notepad++ so einstellen, dass es statt Tabs -> 4 Leerzeichen zur Einrückung verwendet.

lck
Posts: 2368
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Languagemenü - Flaggen oder Kürzel

Post by lck » Sat Jul 31, 2021 10:32 am

frase wrote:
Sat Jul 31, 2021 8:55 am
lck wrote:
Fri Jul 30, 2021 6:28 pm
Neue Frage. Wie kann man im folgenden Code, alle Ausgaben vom $t 's mit einem (oder mehreren) gemeinsamen div umschließen?
Eigentlich sollte das im Template erfolgen.
Das ist klar, das will ich aber in dem Fall nicht.
Ich will nur einen bestimmten Bereich, im Beispiel "flagsandlongname" mit einem div umgeben. Nicht alle optionalen Ausgaben. Es soll ein Dropdownmenü fix und fertig ausgegeben werden, simple einstellbar durch die Konfig-Option z.B. "dd_flagsandlongname".
frase wrote:
Sat Jul 31, 2021 8:55 am
Willst du es aber über die tplfuncs.php tun, dann müsste das in etwa so aussehen (ca. ab Zeile 534):
Wie gesagt, das ist nicht das was ich suche. Aber, du hast mich in die richtige Richtung geschubst, danke! Ich habe den Code mit folgendem Abschnitt erweitert. Das wird dann noch entsprechend erweitert.

Code: Select all

        elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'dd_flagsandlongname'
        ) {
        $t_flagsandlongname .= '<a class="flagsandlongname" href="' . $url . '">' . $el_short_long . '<span>' . $title . '</span></a>';
        $t = '<div class="xxx">' . $t_flagsandlongname . '</div>';
        }
Funktioniert. Ob's so in Ordnung ist? @Christoph
frase wrote:
Sat Jul 31, 2021 8:55 am
Übrigens:
Wenn du beim XH-Standard bleiben willst, dann solltest du dein Notepad++ so einstellen, dass es statt Tabs -> 4 Leerzeichen zur Einrückung verwendet.
Das habe ich extra immer so eingestellt, finde ich praktischer als 4 Leerzeichen. Ist das ein wirkliches Problem? Wenn ja, werde ich das in Zukunft so handhaben.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 13766
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Languagemenü - Flaggen oder Kürzel

Post by cmb » Sat Jul 31, 2021 10:36 am

lck wrote:
Fri Jul 30, 2021 6:28 pm
Neue Frage. Wie kann man im folgenden Code, alle Ausgaben vom $t 's mit einem (oder mehreren) gemeinsamen div umschließen?
Frank hat ja bereits eine Möglichkeit gepostet. Eine Alternative wäre nur die Zeile mit return $t; anzupassen:

Code: Select all

return '<div class="xxx">' . $t . '</div>';
lck wrote:
Fri Jul 30, 2021 6:28 pm
Bei meinen Versuchen habe ich es sogar soweit gebracht, dass die template.htm komplett geleert wurde :o . Fragt mich jetzt aber nicht, wie. Ich war froh noch kurz vorher eine Sicherung erstellt zu haben. Aber interessant ist das allemal, dass so etwas mit einem schlichten PHP-Codefehler überhaupt geht.
Das sollte eigentlich nicht möglich sein, es sei denn du speicherst gerade das (bearbeitete) Template aus dem Backend heraus.

Jedenfalls ist ein Backup immer gut, und es gibt viele Möglichkeiten, das anzulegen. Eine ist, das ganze in einem Git-Repo (losgelöst von github.com oder irgendeinem Code-Repo) zu verwalten. Ich mache das mit TortoiseGit. Dann einfach an gewünschtem Ort einen leeren Ordner erzeugen, und per Explorer Kontextmenü "Git Create repository here..." aufrufen, die Checkbox leer lassen und OK drücken. Dann die gewünschten Dateien in den Ordner kopieren, und dann per Explorer-Kontextmenü "Git Commit -> "master"... aufrufen; dann in der Liste unten alle Dateien markieren, und per Kontextmenü "Add" wählen, und OK drücken. Dann eine Message eingeben (etwa Original), und unten Commit drücken. Dann den Dialog schließen (Close). Fertig. Jetzt kannst du beliebige Änderungen in dem Ordner vornehmen, und mittels Explorer-Kontextmenü TortoiseGit → "Revert..." wieder auf den Ursprungszustand zurücksetzen.
lck wrote:
Sat Jul 31, 2021 10:32 am

Code: Select all

        elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'dd_flagsandlongname'
        ) {
        $t_flagsandlongname .= '<a class="flagsandlongname" href="' . $url . '">' . $el_short_long . '<span>' . $title . '</span></a>';
        $t = '<div class="xxx">' . $t_flagsandlongname . '</div>';
        }
Funktioniert. Ob's so in Ordnung ist? @Christoph
Ja, das sollte passen.
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply