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 - 20: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 - 09: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 - 13: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 - 14: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 - 14: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 - 10: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

  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
Weiter

Neue Kommentare

  • Die Subdomain muß auf den
    vor 1 Tag 12 Stunden
  • Verwende doch das Tag dafür,
    vor 3 Wochen 3 Tagen
  • Guckst du hier: step by step
    vor 3 Wochen 2 Tagen
  • Guckst du hier: step by step
    vor 3 Wochen 2 Tagen
  • Ich habe ja keine Angst vor
    vor 4 Wochen 5 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 5 Wochen 15 Stunden
  • Vielen Dank erst einmal, aber
    vor 5 Wochen 2 Tagen
  • Du hast die "Trusted host
    vor 5 Wochen 2 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 7 Wochen 1 Tag
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 7 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250286
Registrierte User: 20512

Neue User:

  • Pavlotog
  • burningTree
  • Marvinkep

» Alle User anzeigen

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