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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • gepatchte PHP Version 7.4 für Windows
  • Рейтинг онлайн казино 2026 — полный разбор
  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
Weiter

Neue Kommentare

  • Danke Schmittrich. Die Frage
    vor 19 Stunden 50 Minuten
  • Keine Antwort auf die Frage nach dem Woher
    vor 22 Stunden 31 Minuten
  • Danke ich werde mir die
    vor 5 Wochen 5 Tagen
  • Vielen Dank für Ihren
    vor 6 Wochen 1 Tag
  • Composer ist sehr ratsam
    vor 6 Wochen 3 Tagen
  • Vielen Dank für den
    vor 6 Wochen 5 Tagen
  • Die alten CMS Vergleiche von contentmanager.de
    vor 6 Wochen 6 Tagen
  • Gut gemacht
    vor 6 Wochen 6 Tagen
  • Layout Builder etc. z.B. für Landing Pages
    vor 6 Wochen 6 Tagen
  • Links
    vor 7 Wochen 1 Tag

Statistik

Beiträge im Forum: 250320
Registrierte User: 20569

Neue User:

  • AnthonyhoF
  • CasinoTopsam
  • Philiphelve

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 3 Gäste online.

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