Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

localizer - Sprachauswahl Darstellung über Drop Down

Eingetragen von sebastianv (10)
am 02.04.2007 - 15:31 Uhr in
  • Module

Hallo Community,

ich möchte eine Seite erstellen wo es sehr viele unterschiedliche sprachen geben wird.

Aus diesem Grund möchte ich die Sprachauswahl ungern über eine Liste mit Links realisieren, sondern hätte die zur Auswahl stehenden Sprachen gerne in einem DropDown (PullDown?) Menü.

Habt ihr eine Idee wie ich dies so anpassen kann?

Für die mehrsprachigkeit nutze ich derzeit das Modul localizer auf der 4er Drupal Versionmit welchem ich sehr zufrieden bin.

Freu mich auf eure Antworten.

Danke

‹ Kontakt Probleme mit Schriftgröße/ Kritik an unserer neuen Seite ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Mit dem Modul localizer habe

Eingetragen von quiptime (4972)
am 02.04.2007 - 20:54 Uhr

Mit dem Modul localizer habe ich nocht nicht gearbeitet.

Nachfolgend rede ich von der Verwendung eines PHP Template Theme.

Blabla:
Ich koennte mir vorstellen das die Ausgabe der Umschaltung der Sprachen gethemed werden kann. Was durchaus einen hohen Sinn macht. Sehe Dir also im localizer Modul die "function theme_"... an. Wenn ich richtig liege solltest Du fuendig werden.
Na und dann heisst es ein Template fuer einen Block anlegen. Fuer den Block "block-localizer". In diesem Template kannst Du die Liste in ein Dropdown umwandeln koennen.

Konkret:
Bitte hier weiterlesen: Customizing the ui locale switching block

Dort wird aber nur lapidar gesagt "In a block with input format PHP add this code". Wo das nun sein soll bleibt offen.

So hab ich es bisher gemacht:

Der Ansatz an dieser Stelle ist ein Blocktemplate. Es gibt eine "block.tpl.php". In 5.x so:

<div id="block-<?php print $block->module .'-'. $block->delta; ?>" class="block block-<?php print $block->module ?>">

<?php if ($block->subject): ?>
  <h2><?php print $block->subject ?></h2>
<?php endif;?>

  <div class="content"><?php print $block->content ?></div>
</div>

Hier fuegst Du eine Erweiterung ein in der Du in Abhaengigkeit von einem bestimmten $block->delta eine eigene Templatedatei mit beliebigem Namen ansprichst.

Sehe Dir den HTML-Code des normalen localizer Menublockes an. Vermutlich etwa so:

<div class="block block-localizer" id="block-localizer-0">
  <h2 class="title">Language</h2>
    <div class="content"><div class="item-list"><ul><li><a href="/switchuilocale/en?destination=home" title="English"><img src="/modules/localizer/flags/en.png" class="localizer-flag" alt="English" height="12" width="16"> English</a></li><li><a href="/switchuilocale/it?destination=it%2Fhome" title="Italiano"><img src="/modules/localizer/flags/it.png" class="localizer-flag" alt="Italiano" height="12" width="16"> Italiano</a></li></ul></div></div>
</div>

In diesem Beispiel ist das Block-Delta: 0

Damit bastelst Du im "block.tpl.php" nun die Abfrage. Etwa so:

<?php //$Id: block.tpl.php, v 1.1 2007/04/02 quiptime Exp $

if ( $block->module == 'block-localizer' && $block->delta == '0' ) {
    include
'block-languages.tpl.php';
    return; }
?>

/* Hier der normale Blockcode */
<div id="block-<?php print $block->module .'-'. $block->delta; ?>" class="block block-<?php print $block->module ?>">

<?php if ($block->subject): ?>
  <h2><?php print $block->subject ?></h2>
<?php endif;?>

  <div class="content"><?php print $block->content ?></div>
</div>

"block-languages.tpl.php" ist der selbst gewaehlte Name des Template. In dieses Template kommt der normale Code aus "block.tpl.php" rein.

An dieser Stelle ist aber noch nicht der Zusammenhang mit dem Code aus dem obigen Link hergestellt.
Das Template "block-languages.tpl.php" koennte mit dem Code aus dem obigen Link so aussehen:

<?php //$Id: block-languages.tpl.php, v 1.0 2007/04/02 quiptime Exp $

$languages=localizer_block_switchuilocale_links(variable_get('localizer_switchblock_showflags', TRUE), variable_get('localizer_switchblock_showlangname',TRUE), variable_get('localizer_switchblock_flagseparator', ' ', FALSE))
?>


<div id="block-<?php print $block->module .'-'. $block->delta; ?>" class="block block-<?php print $block->module ?>">

<?php if ($block->subject): ?>
  <h2><?php print $block->subject ?></h2>
<?php endif;?>

  <div class="content">
    <?php 
   
echo '<ul>';
    foreach(
$languages as $i=>$link) {
      echo
'<li>' . $link . '</li>';
    }
    echo
'</ul>';
   
?>

  </div>

</div>

Nun muss die normale Listenausgabe

    echo '<ul>';
    foreach($languages as $i=>$link) {
      echo '<li>' . $link . '</li>';
    }
    echo '</ul>';

noch in ein Dropdownmenu geaendert werden.

 
PS

@sebastianv

Den Code hier habe ich nicht getestet. Ich habe ihn nur auf die Schnelle nach meiner Logik zusammengestellt um Dir einen Loesungsweg aufzuzeigen.

-------------
quiptime

Da geht noch was.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Selected-Item in Drop-Down Menü Problem

Eingetragen von bit7 (57)
am 03.08.2007 - 17:26 Uhr

Die Sprachauswahl mit dem Modul Localizer habe ich über Auswahllisten per Drop-Down Menü gelöst.
Das Problem ist, dass ich gerne die ausgewählte Sprache als "selected" markiert haben möchte, was mit meiner Lösung nicht geht.

Gibt es eine Möglichkeit mit der Form-API so was hinzu bekommen?
Da ich wenig Ahnung von PHP habe, würde ich auf etwas Unterstützung freuen.

Im Prinzip möchte ich die Sprachauswahl genau so wie auf der Webseite von www.mozilla.com im Footer.
Wie ich gelesen habe wurde die Mozilla auch mit Drupal umgesetzt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das müsste sich machen

Eingetragen von pebosi (2645)
am 03.08.2007 - 18:28 Uhr

Das müsste sich machen lassen, wie ist denn dein bisheriger Code?

gruß pebosi

gruß pebosi
--
https://pebosi.net

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mein Code habe ich direkt in

Eingetragen von bit7 (57)
am 03.08.2007 - 21:47 Uhr

Mein Code habe ich direkt in page.tpl.php eingebunden und sieht folgender Maßen aus:

        <form id="lang_form" dir="ltr" method="get" action="">
            <label for="locale">Sprache wählen:</label>
           
<select id="locale" name="locale" dir="ltr" onchange="this.form.submit()">
    <option selected="selected">Deutsch</option>
    <option value="de" >Deutsch</option>
    <option value="en" >English</option>
    <option value="it" >Italiano</option>
</select>
        </form>

Wie schon erwähnt, sollte die Option selected="selected" dynamisch sein. Moment ist das fest.
Im Moment habe ich keine Ahnung, was man da machen kann...

Irgendwie muss Mozilla, dass ja programmiert haben. Ich frage mich nur wie :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schaut euch den Quelltext

Eingetragen von Tobias Bähr (4019)
am 03.08.2007 - 22:02 Uhr

Schaut euch den Quelltext doch einfach an! bzw die ggf css attribute!

<select id="flang" name="flang" dir="ltr" onchange="this.form.submit()">    <option value="ca" >Catal&#224;</option>
    <option value="cs" >&#268;e&#353;tina</option>

    <option value="da" >Dansk</option>
    <option value="de" >Deutsch</option>
    <option value="el" >&#917;&#955;&#955;&#951;&#957;&#953;&#954;&#940;</option>
    <option value="es" >Espa&#241;ol</option>
    <option value="eu" >Euskara</option>
    <option value="en-GB" >English (British)</option>

    <option value="en-US" selected="selected">English (US)</option>
    <option value="fr" >Fran&#231;ais</option>
    <option value="he" >&#1506;&#1489;&#1512;&#1497;&#1514;</option>
    <option value="it" >Italiano</option>
    <option value="lt" >Lietuvi&#371;</option>
    <option value="hu" >Magyar</option>

    <option value="nl" >Nederlands</option>
    <option value="no" >Norsk bokm&#229;l</option>
    <option value="pl" >Polski</option>
    <option value="pt-BR" >Portugu&#234;s (do Brasil)</option>
    <option value="pt-PT" >Portugu&#234;s (Europeu)</option>

    <option value="ro" >Rom&#226;n&#259;</option>
    <option value="ru" >&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;</option>
    <option value="sk" >Slovensk&#253;</option>
    <option value="fi" >Suomi</option>
    <option value="tr" >T&#252;rk&#231;e</option>

    <option value="zh-CN" >&#20013;&#25991; (&#31616;&#20307;)</option>
    <option value="ja" >&#26085;&#26412;&#35486;</option>
    <option value="ko" >&#54620;&#44397;&#50612;</option>
    <option value="zh-TW" >&#27491;&#39636;&#20013;&#25991; (&#32321;&#39636;)</option>
</select>

http://kochazubi.net

Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Den Queltext habe ich mir

Eingetragen von bit7 (57)
am 03.08.2007 - 22:13 Uhr

Den Queltext habe ich mir schon angeschaut. Hilf mir aber nicht weiter. Ich weiß nicht, wie diese Zeile dynamisch gesetzt wird:

    <option value="en-US" selected="selected">English (US)</option>

Dort befindet man sich ja gerade auf der englischen Seite. Wenn man auf die deutsche Seite geht, wird dann die dt. option auf "selected" gesetzt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hier mal ein Ansatz mit der

Eingetragen von pebosi (2645)
am 04.08.2007 - 12:21 Uhr

Hier mal ein Ansatz mit der Forms API:

<?php
function lang_form () {
$options_lang = array (
   
'de' => 'Deutsch',
   
'en' => 'Englisch',
   
'it' => 'Italiano',
);
 
$form['lang_form'] = array(
   
'#type' => 'select',
   
'#title' => 'Sprache wählen',
   
'#default_value' => (arg(0) ? arg(0) : 'de'),
   
'#options' => $options_lang,
);

return
$form;
}

print
drupal_get_form('lang_form');
?>

gruß pebosi

gruß pebosi
--
https://pebosi.net

  • Anmelden oder Registrieren um Kommentare zu schreiben

DropDown Menü select für 4.7

Eingetragen von bit7 (57)
am 04.08.2007 - 15:52 Uhr

Hi peposi,

danke für Deinen Lösungs-Ansatz. Ich beschäftige mich gerade etwas mit der forms api.
Wie ich festgestellt habe, funktioniert Dein Code in Drupal 5.0 aber nicht in Drupal 4.7.
Die Funktion drupal_get_form in 4.7 wird etwas anders aufgerufen. So sieht der Code jetzt für 4.7 aus:

<?php    
            $options_lang
= array (
               
'de' => 'Deutsch',
               
'en' => 'Englisch',
               
'it' => 'Italiano',
            );
        
             
$form['testform'] = array(
               
'#type' => 'select',
               
'#title' => 'Sprache wählen',
               
'#default_value' => (arg(0) ? arg(0) : 'de'),
               
'#options' => $options_lang,
              );
           
             
$output = drupal_get_form('testform', $form);
              print
$output;
       
?>

Funktioniert soweit gut. Ich kann die Sprachen auswählen. Wie bekomme ich es aber hin, dass die Auswahl auch per get-Methode gesendet wird. Damit ich die erforderlichen Parameter ?locale=de in der URL erhalte.

Schönen Gruß,
bit7

  • Anmelden oder Registrieren um Kommentare zu schreiben

Laut

Eingetragen von pebosi (2645)
am 04.08.2007 - 16:10 Uhr

Laut http://api.drupal.org/api/function/drupal_get_form/4.7 musst du als ersten Paramenter "NULL" übergeben für "GET"

gruß pebosi

gruß pebosi
--
https://pebosi.net

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie sieht der Aufruf-Code

Eingetragen von bit7 (57)
am 04.08.2007 - 16:27 Uhr

Wie sieht der Aufruf-Code den konkret aus peposi? Sorry, dass ich auch hier nochmal nachfrage.
Das mit den Callback habe ich noch nicht ganz verstanden...

  • Anmelden oder Registrieren um Kommentare zu schreiben

probiers mal so: $output =

Eingetragen von pebosi (2645)
am 04.08.2007 - 16:45 Uhr

probiers mal so:

$output = drupal_get_form(NULL, $form);

gruß pebosi

gruß pebosi
--
https://pebosi.net

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die mozilla Lösung

Eingetragen von liegerad@drupal.org (1)
am 28.10.2007 - 12:47 Uhr

Ganz unten im Footer Bereich:
http://svn.mozilla.org/projects/kubla/trunk/sites/all/themes/rustico/pag...

und demnächst auch auf: http://extensions.services.openoffice.org/ :-)

Gruss
Thorsten

  • Anmelden oder Registrieren um Kommentare zu schreiben

Super Idee dort

Eingetragen von bit7 (57)
am 28.10.2007 - 23:01 Uhr

Super Idee dort reinzuschauen. Das Template von Mozilla werde ich mir mal genauer anschauen. Danke für den Link.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal 10 und Thema Bartik
  • Wie in hook_views_query_alter() einen join auf Tabelle url_alias durchführen?
  • Strukturierte Daten Fehler
  • fbsmp\plugins Hilfe
  • Migration über feeds von D6 auf D8
  • Theme Classy sei installiert, ist aber nicht bei Themes
  • Composer 1 zu Composer 2
  • Bitte um Einschätzung: Upgrade von Drupal 7 auf 9
  • Scroll zu View-Ergebnissen nachdem Filter angewendet ist
  • SQL-Injection? User hat sich Zugriff aufs Admin-Konto geholt und Änderungen vorgenommen.
  • [gelöst] Persönliches Kontaktformular, oder interne User Nachrichten
  • Webform Progress Symbol (Loading icon)?
Weiter

Neue Kommentare

  • Superfish
    vor 2 Tagen 23 Stunden
  • Auch für superfish gibt es
    vor 3 Tagen 2 Stunden
  • Versuchs mal mit
    vor 3 Tagen 2 Stunden
  • Drupal 10 läuft
    vor 3 Tagen 3 Stunden
  • Da wirst Du den Bug wohl selbst beheben müssen
    vor 4 Tagen 22 Stunden
  • Gleiches Problem: bootstrap 4
    vor 1 Woche 26 Minuten
  • Da wirst Du den Bug wohl
    vor 1 Woche 3 Stunden
  • Immer noch composer 1 zu 2
    vor 1 Woche 17 Stunden
  • Beziehung Branche Adresse!
    vor 6 Tagen 3 Stunden
  • Sorry, dann gab es das bei
    vor 1 Woche 20 Stunden

Statistik

Beiträge im Forum: 248398
Registrierte User: 19752

Neue User:

  • Aman_Musani
  • Dustinjex
  • Rickywap

» Alle User anzeigen

User nach Punkten sortiert:
wla9289
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 12 Gäste online.

Benutzer online

  • wla

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association