Uutiset:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu
Advertisement:

Sprachumschaltung mit drop-down-Liste (so wie hier)?

Aloittaja Dirk67, joulukuu 03, 2006, 12:22:12 IP

« edellinen - seuraava »

Dirk67

Hi,

hier in diesem Board ist ja oben so eine Sprachumschaltung als drop-down-Liste realisiert,

ist das ein Mod, den man irgendwo runterladen kann,
oder wie kann ich das sonst realisieren ?
Board-Info Server-Info
using: SMF 1.1.3 PHP Version: 4.4.1
charset = UTF-8 MySQL Version: 4.1.22-debug-log
Mods: - User Email System Server Version: Apache/1.3 (Unix) mod_ssl
        - AVV by HarzeM GD Version: bundled (2.0.28 compatible)


web is what we make it .

dieter4

Dies ist kein Mod und wurde vom SMF-Team hier eingebaut. Mit etwas HTML und PHP Kenntnissen ist dies einfach zu realisieren.

Dirk67

hab's (in einer einfacheren Form) hinbekommen  ;D , Danke
Board-Info Server-Info
using: SMF 1.1.3 PHP Version: 4.4.1
charset = UTF-8 MySQL Version: 4.1.22-debug-log
Mods: - User Email System Server Version: Apache/1.3 (Unix) mod_ssl
        - AVV by HarzeM GD Version: bundled (2.0.28 compatible)


web is what we make it .

ianus

#3
Grüße!

Um diesen Beitrag, vor allem für Leser die die Suchfunktion benutzt haben und nicht enttäuscht einen Beitrag ohne Antwort finden wollen, etwas anzureichern, hier ein Lösungsvorschlag.

Zwar wird die Sprachauswahl nicht so hübsch in einem drop down verpackt, doch immerhin.


//Einfügen der Sprachauswahl
echo'
<a href="javascript:window.location += (window.location.href.indexOf(\'?\') != -1 ? \';\' : \'?\') + \'language=german\';void(0);"><img src="', $settings['images_url'], '/de.gif" border="0px" alt="De" /></a>
<a href="javascript:window.location += (window.location.href.indexOf(\'?\') != -1 ? \';\' : \'?\') + \'language=english\';void(0);"><img src="', $settings['images_url'], '/us.gif" border="0px" alt="En" /></a><br />
';
//Einfügen der Sprachauswahl


Wohin...
Diese Zeilen gehören in die index.template.php des verwendeten Themas

Ich habe die Zeilen direkt vor
// If the user is logged in, display stuff like their name, new messages, etc.
eingefügt. So erscheint die Auswahl direkt über dem Hallo Gast oder Hallo Mitgliedsname.
Generell kann man sich aber auch einen anderen Platz aussuchen.

Für wenn...
Dieser code erlaubt es, die Forensprache umzustellen. Diese Umstellung ist aber nur temporär. Wenn die Seite geschlossen wird, muss der Leser erneut die Sprache auswählen.
So ist dies vor allem dann interessant, wenn viele Gäste das Forum lesen, den Mitglieder werden ohnehin die bevorzugte Sprache in ihrem Profil einstellen.

Welche Sprache...
Generell lässt sich jede beliebige Sprache verwenden. Das Sprachpaket muss aber vorhanden sein. Es nütz nichts language=french zu benutzen, wenn das französische Sprachpaket nicht verfügbar ist.

Die Bilder, ...
also dieser Teil
<img src="', $settings['images_url'], '/us.gif" border="0px" alt="En" />
müssen natürlich vorher in den images Ordner hochgeladen werden.
Wenn man keine Bilder verwenden will, nimmt man
<a href="javascript:window.location += (window.location.indexOf('?') != -1 ? ';' : '?') + 'language=german';void(0);">...</a>


Wer nun der englischen Sprache mächtig ist, findet eine ausführliche Erklärung dieser Lösung von [Unknown] in folgendem Faden:
http://www.simplemachines.org/community/index.php?topic=17595.0

Habt noch viel Spaß und Erfolg bei dem was Ihr tut.



Lainaa
Mit etwas HTML und PHP Kenntnissen ist dies einfach zu realisieren.

hab's (in einer einfacheren Form) hinbekommen  ;D , Danke
Ach?

noex

"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

Dirk67

#5
Lainaus käyttäjältä: ianus - joulukuu 04, 2006, 05:54:36 AP
Um diesen Beitrag, vor allem für Leser die die Suchfunktion benutzt haben und nicht enttäuscht einen Beitrag ohne Antwort finden wollen, etwas anzureichern, hier ein Lösungsvorschlag.

OK dann hier auch noch meine "quick and dirty" Lösung:




// MOD DFB_________________________________________________________--

echo '<form action="http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . '" method="post" class="smalltext" style="float: right;">';

?>

<label for="language_select" class="smalltext">language:</label>
<select id="language_select" name="language" onchange="this.form.submit()" class="smalltext">
  <option value="" selected="selected">select...</option>
  <option value="german-utf8">German</option>
  <option value="english-utf8">English</option>
  <option value="french-utf8">French</option>
  <option value="spanish-utf8">Spanish</option>
</select>&nbsp;<noscript><input type="submit" value="Go" /></noscript>
</form>


<?php
echo '<span class="middletext">';

// MOD DFB END _________________________________________________________--


diese Zeilen einfügen vor:
// If the user is logged in, display stuff like their name, new messages, etc.
if ($context['user']['is_logged'])
{
echo '



Vor diesen einzufügenden Zeilen steht der Block:
if (!empty($context['user']['avatar']))
echo '
<td class="windowbg" valign="middle">', $context['user']['avatar']['image'], '</td>';

echo '
<td colspan="2" width="100%" valign="top" class="windowbg2"><span class="middletext">';


Dort entfernt man das <span class="middletext"> (um validen Code zu erzeugen [kein <form> innerhalb <span>])
der Block wird also zu:
if (!empty($context['user']['avatar']))
echo '
<td class="windowbg" valign="middle">', $context['user']['avatar']['image'], '</td>';

echo '
<td colspan="2" width="100%" valign="top" class="windowbg2">';


Diese Lösung kann noch verbessert werden, indem man erkennt welche Sprache der User gerade gewählt hat und dementsprechend das selected="selected" setzt...

Ebenso kann man natürlich die drop-down Liste dynamisch erzeugen lassen mit den Sprachen die installiert sind.
Wie das geht, kann man abgucken in den Profil-Settings unter .../index.php?action=profile;u=xxx;sa=account

....
Board-Info Server-Info
using: SMF 1.1.3 PHP Version: 4.4.1
charset = UTF-8 MySQL Version: 4.1.22-debug-log
Mods: - User Email System Server Version: Apache/1.3 (Unix) mod_ssl
        - AVV by HarzeM GD Version: bundled (2.0.28 compatible)


web is what we make it .

Advertisement: