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

Sprachumschalter: Nur die andere Sprache anzeigen

Eingetragen von druppaler (1)
am 12.06.2012 - 19:36 Uhr in
  • Übersetzungen

Hallo,

ich glaube, die Lösung ist sehr einfach, aber ich stehe gerade irgendwie auf dem Schlauch. Bei einer Drupal 7.14-Seite habe ich die Mehrsprachigkeit aktiviert und konfiguriert. Es funktioniert auch alles wunderbar. Weiter ist vorgegeben, dass alle Beiträge übersetzt werden müssen.

Irgendwie schaffe ich es aber nicht, den Sprachumschalter so zu konfigurieren, dass er mir immer nur "die andere Sprache" anzeigt. Also, wenn beispielsweise der Besucher die Seite auf Deutsch betrachtet, soll der Sprachumschalter die englische Flagge anzeigen. Betrachtet der Besucher die Seite auf Englisch, soll der Sprachumschalter die englisch Sprache anzeigen. Ich bekomme das nicht hin :(

Weiter habe mithilfe des Moduls pathauto vorgegeben, dass die übersetzten Beiträge eine andere URL als die Quell-Beiträge erhalten. Daher kann ich es leider nicht so switchen, dass in der URL aus ".../de/..." einfach ".../en/..." wird bzw. umgekehrt.

Auch wichtig ist mir, dass über den Sprachumschalter dann zur gewünschten Übersetzung geswitcht werden kann.

Wer kann helfen oder verrät mir die Suchmaschinen-Schlagworte?

‹ [gelöst] standardsprache wird nach *.po-import nicht mehr angezeigt Nach drupal Installation weiterhin nur "Englisch" ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst das Ganze auch über

Eingetragen von SteffenR@drupal.org (2262)
am 13.06.2012 - 08:23 Uhr

Du kannst das Ganze auch über CSS "machen".. Das i18n Modul schreibt dir im Normalfall die aktuelle Sprache in die body-Klassen.
Hier solltest du auf einer deutschen Seite die Klasse i18n-de finden.

Über folgenden Code-Snippet kannst du die aktuelle Sprache dann ausblenden:

.i18n-de .language-switcher-locale-url li.de {display:none}
.i18n-en .language-switcher-locale-url li.en {display:none}

Dies funktioniert in der Form aber nur, wenn du den Standard-Sprachumschalter von Drupal bzw. i18n verwendest.
Überprüfen kannst du das Ganze mit Firebug - hier siehst du genau, welche Klassen auf den Elementen liegen und kannst das Ganze so auch einfach testen..

SteffenR

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke und Frage

Eingetragen von Stefano Sabino (31)
am 15.05.2013 - 12:53 Uhr

Hat mir sehr geholfen

und gibt es noch eine Möglichkeit, das wenn eine Seite in der Sprache gar nicht gibt, die Sprach Auswahl ausgeblendet wird, anstelle durchgestrichen ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Seite für nicht Vorhandene Seiten

Eingetragen von Stefano Sabino (31)
am 17.05.2013 - 13:01 Uhr

Fals jemanden, gerne Sprachen Ausblenden will, wenn eine Seite nicht Existiert , kann man mit diesen CSS Befehl ausblenden lassen

.locale-untranslated{
display: none;
}

Gruss Stefano

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sprachumschalter

Eingetragen von stBorchert (6003)
am 17.05.2013 - 13:40 Uhr

Falls Du bei Inhalten nur die Links zu Sprachen anzeigen willst, in die der Inhalt übersetzt wurde, geht das über diese Funktion (in einem eigenen kleinen Modul, welches ich der Einfachheit halber hier mal "DINGENS" genannt habe):

<?php
/**
* Implements hook_language_switch_links_alter().
*/
function DINGENS_language_switch_links_alter(array &$links, $type, $path) {
  global
$language;

 
$language_type = variable_get('translation_language_type', LANGUAGE_TYPE_INTERFACE);

  if (
$type == $language_type && preg_match("!^node/(\d+)(/.+|)!", $path, $matches)) {
   
$node = node_load((int) $matches[1]);
   
$content_language = entity_language('node', $node);
    if (
$content_language == LANGUAGE_NONE) {
     
$links = array();
      return;
    }

    if (empty(
$node->tnid)) {
     
// If the node cannot be found nothing needs to be done. If it does not
      // have translations it might be a language neutral node, in which case we
      // must leave the language switch links unaltered. This is true also for
      // nodes not having translation support enabled.
     
if (empty($node) || $content_language == LANGUAGE_NONE || !translation_supported_type($node->type)) {
        return;
      }
     
$langcode = entity_language('node', $node);
     
$translations = array($langcode => $node);
    }
    else {
     
$translations = translation_node_get_translations($node->tnid);
    }

   
// Remove link to current language.
   
unset($links[$language->language]);

    foreach (
$links as $langcode => $link) {
      if (isset(
$translations[$langcode]) && $translations[$langcode]->status) {
       
// Translation in a different node.
       
$links[$langcode]['href'] = 'node/' . $translations[$langcode]->nid . $matches[2];
      }
      else {
       
// No translation in this language, or no permission to view.
       
unset($links[$langcode]);
      }
    }
  }
}
?>

Damit werden Dir dann auch wirklich nur Links zu den verfügbaren Übersetzungen eines Inhalts angezeigt.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sprachumschalter

Eingetragen von Stefano Sabino (31)
am 23.05.2013 - 09:52 Uhr

werde es mal austesten, im 2. release, aber hei Danke

Gruss Stefano

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Tagen 17 Stunden
  • Hey danke
    vor 3 Tagen 12 Stunden
  • Update: jetzt gibt's ein
    vor 4 Tagen 6 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 1 Tag
  • Da scheint die Terminologie
    vor 1 Woche 1 Tag
  • Kannst doch auch alles direkt
    vor 1 Woche 6 Tagen
  • In der entsprechenden View
    vor 1 Woche 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 6 Tagen
  • gelöst
    vor 4 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 9 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