Darüber habe ich mir mal Gedanken gemacht. Ich finde diese Flaggen auch nicht immer passend bzw. viele Websites verwenden nur Kürzel wie "EN", "DE" usw.Michael_G wrote: ↑Thu Jun 03, 2021 8:54 pmHeutzutage soll man keine Flaggen mehr verwenden, weil diese eher Länder als Sprachen darstellen (so liest man vielerorts).
Logisch, es sind ja Länderflaggen. Aber gemeint ist eben, dass eine Flagge wie die britische den Amerikanern und Kanadiern nicht gefallen wird wie Du das in Osteuropa auch kennst, da haben manche ein schlechtes Gefühl bei einer Flagge.
Neutraler und was die echte Sprache angeht, realistischer ist die Verwendung von ISO-Code 2 oder einfach ausgeschrieben, wenn Platz ist.
Möglichkeit 1
Man erstellt Flaggen entsprechender Größe mit den Kürzeln und liefert sie mit dem Template im Ordner ./templates/flags aus. Diese werden dann anstatt der ./userfiles/images/flags eingebunden.
Gefällt mir nicht so
Möglichkeit 2
Man kopiert die function languagemenu() in der tplfuncs.php, erstellt eine Benutzerdefinierte function languagemenu_custom() und platziert diese oben in der template.htm
Zusätzlich habe ich noch eine Config-Option eingebaut, die dem User ermöglicht zu wählen zwischen Sprachkürzel oder Flaggen.
template.htm unter <!DOCTYPE html> einfügen
Code: Select all
<?php
/**
* Returns a customized language menu (letters (2 characters eg. "EN") or flags)
*/
// Config languagemenu (show letters or flags)
$cf['language']['flags']=""; // true = show flags
function languagemenu_custom()
{
global $pth, $cf, $sl;
$r = XH_secondLanguages();
array_unshift($r, $cf['language']['default']);
$i = array_search($sl, $r);
unset($r[$i]);
$langNames = explode(';', $cf['language']['2nd_lang_names']);
foreach ($langNames as $value) {
$langName[substr($value, 0, 2)] = substr($value, 3);
}
$t = '';
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;
if (isset($cf['language']['flags'])
&& $cf['language']['flags'] == 'true'
) {
$el = file_exists($img)
? '<img src="' . $img . '" alt="' . $title . '" title="'
. $title . '" class="flag">'
: $title;
$t .= '<a href="' . $url . '">' . $el . '</a> ';
} else {
$t .= '<a href="' . $url . '" title="'. $title . '"><span>' . $lang . '</span></a> ';
}
}
return $t;
}
?>
Code: Select all
<?php echo languagemenu_custom();?>
Code: Select all
<?=languagemenu_custom()?>
Code: Select all
<div class="languagemenu"><?=languagemenu_custom()?></div>
Code: Select all
.languagemenu {
line-height: normal;
margin: 2rem 0.5rem 1rem;
position: relative;
text-align: center;
}
.languagemenu a {
display: inline-block;
}
.languagemenu a:hover {
color: inherit;
}
.languagemenu a span {
color: #000;
font-size: 1.5rem;
line-height: normal;
padding: 0 5px;
text-transform: uppercase;
}
.languagemenu a img.flag {
display: block;
height: 24px;
padding: 6px 4px;
width: 32px;
}
Also ich mache den Daumen schon mal hoch , wer noch?