Hallo zusammen, ich stehe vor einem Problem und weiß nicht ob das mit Wordpress lösbar ist. Ich habe eine Homepage in mehreren Sprachen. Dafür benutze ich das Plugin "qTranslate", welches ich sehr gut finde. Für die unterschiedlichen Seiten habe ich auch unterschiedliche Themes erstellt und zugewieß. So das alles war bis jetzt kein Problem. Jetzt müssen aber auch die unterschiedlichen Sprachen unterschiedliche Teplates haben. z.B. die Deutsche Seite hat einen anderen Look (und Logos im Header) als die Englische. Ist sowas mit Wordpress überhaupt möglich? Wenn ja, wie aufwendig ist das bzw. wie könnte man das lösen? Danke für die Mühe für eine Beantwortung und LG Michael
Unterschiedliche Themes für unterschiedliche Sprachen?
-
-
- Gerade eben
- Anzeige
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
- ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
- ✔️ Deutsche Server & DSGVO-konform
- ✔️ Persönlicher Support (kein 0815-Ticket-System)
-
Brauchst Du denn wirklich ein ganz verschiedenes Theme oder reichen verschiedene Stylesheets? Letzteres sollte recht einfach zu machen sein, wobei ich qTranslate nicht kenne. Aber ich nehme an, Du kannst da irgendwie die Sprache der aktuellen Seite kriegen, richtig? Für Single-Seiten müsste das zumindest gehen und eigentlich ja auch für Übersichtsseiten wie Kategorien etc.
Wenn das geht, kannst Du damit entweder ein zweites Stylesheet laden, welches bestimmte Dinge anhand der Sprache überschreibt oder gleich zwei komplett verschiedene Stylesheets. Ersteres ist aber vermutlich einfacher zu pflegen, denke ich. Zum Beispiel so (header.php):
PHP<?php $lang = ...; // Sprache der aktuellen Seite von qTranslate holen ?> <!-- default stylesheet --> <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" /> <?php if ($lang == 'de') { ?> <!-- Stylesheet Deutsch --> <link rel="stylesheet" href="<?php bloginfo('template_directory'); ?>/css/style_de.css" type="text/css" media="screen" /> <?php } else if ($lang == 'en') { ?> <!-- Stylesheet Englisch --> <link rel="stylesheet" href="<?php bloginfo('template_directory'); ?>/css/style_en.css" type="text/css" media="screen" /> <?php } ?>Das würde zuerst das normale Stylesheet style.css laden und dann für deutsche Seiten noch style_de.css und für englische style_en.css, aus dem Unterordner "css". Mit etwas Glück kannst Du auch das Headerlogo im Stylesheet setzen, dann wäre das ja am einfachsten.
-
Brauchst Du denn wirklich ein ganz verschiedenes Theme oder reichen verschiedene Stylesheets? Letzteres sollte recht einfach zu machen sein, wobei ich qTranslate nicht kenne. Aber ich nehme an, Du kannst da irgendwie die Sprache der aktuellen Seite kriegen, richtig? Für Single-Seiten müsste das zumindest gehen und eigentlich ja auch für Übersichtsseiten wie Kategorien etc.
Wenn das geht, kannst Du damit entweder ein zweites Stylesheet laden, welches bestimmte Dinge anhand der Sprache überschreibt oder gleich zwei komplett verschiedene Stylesheets. Ersteres ist aber vermutlich einfacher zu pflegen, denke ich. Zum Beispiel so (header.php):
PHP<?php $lang = ...; // Sprache der aktuellen Seite von qTranslate holen ?> <!-- default stylesheet --> <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" /> <?php if ($lang == 'de') { ?> <!-- Stylesheet Deutsch --> <link rel="stylesheet" href="<?php bloginfo('template_directory'); ?>/css/style_de.css" type="text/css" media="screen" /> <?php } else if ($lang == 'en') { ?> <!-- Stylesheet Englisch --> <link rel="stylesheet" href="<?php bloginfo('template_directory'); ?>/css/style_en.css" type="text/css" media="screen" /> <?php } ?>Das würde zuerst das normale Stylesheet style.css laden und dann für deutsche Seiten noch style_de.css und für englische style_en.css, aus dem Unterordner "css". Mit etwas Glück kannst Du auch das Headerlogo im Stylesheet setzen, dann wäre das ja am einfachsten.
[COLOR=#000000]Hallo, vielen Dank für die rasche Antwort... Das hört sich total gut an! Wäre auf alles Fälle eine Lösung.
Nur, was meinst du mit: Sprache der aktuelle Seite kriegen? Ich verstehe das nicht.[COLOR=#0000CC]<?php $lang [/COLOR][COLOR=#006600]= ...; [/COLOR][COLOR=#FF9900]// Sprache der aktuellen Seite von qTranslate holen [/COLOR][COLOR=#0000CC]?>
[/COLOR][/COLOR][COLOR=#000000][FONT=verdana]Wenn ich auf HOme gehe habe ich den link (für Deutsch) http://localhost/wordpress/?lang=de
und für Englisch http://localhost/wordpress/?lang=enSorry dass ich mühsam bin! Liebe Grüße, Michael
[/FONT][/COLOR] -
Zitat
Nur, was meinst du mit: Sprache der aktuelle Seite kriegen? Ich verstehe das nicht.
[COLOR=#000000]
Ich nehme mal an (und ich habe mit qTranslate noch nie gearbeitet), dass das Plugin jeder Seite eine Sprache zuweist und dann Seiten verschiedener Sprachen, die den gleichen Inhalt darstellen, verknüpft. Oder?[/COLOR][COLOR=#000000][FONT=verdana] Angesprochen wird das dann scheinbar über den URL-Parameter, also müsstest Du dessen Wert kriegen, um zu wissen, ob Du aktuell auf einer deutschen oder einer englischen Seite bist.
Hm, die Doku des Plugins ist gut versteckt. Habe dann aber doch diese Seite gefunden:
http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=3&t=9Es gibt eine Funktion, welche die aktuelle Sprache zurückgibt. Mein Beispielcode müsste also so lauten:
[/FONT][/COLOR]
PHP<!-- default stylesheet --> <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" /> <?php $lang = function_exists('qtrans_getLanguage') ? qtrans_getLanguage() : 'de'; /* Sprache der aktuellen Seite von qTranslate holen*/ ?> <?php if ($lang == 'de') { ?> <!-- Stylesheet Deutsch --> <link rel="stylesheet" href="<?php bloginfo('template_directory'); ?>/css/style_de.css" type="text/css" media="screen" /> <?php } else if ($lang == 'en') { ?> <!-- Stylesheet Englisch --> <link rel="stylesheet" href="<?php bloginfo('template_directory'); ?>/css/style_en.css" type="text/css" media="screen" /> <?php } ?>Hab es mal noch etwas verbessert. Wenn qTranslate nicht aktiv ist, würde immer das deutsche Stylesheet eingebunden.
-
Hi, also du warst eine wirklich große Hilfe. Es funktioniert einwandfrei und ist, so finde ich, ein guter Workaround!
Eine frage habe ich leider noch... Was müsste ich tun, um noch für eine dritte Sprache z.B Französisch einfügen. Code ist fr, das weiß ich...
Einfach
[COLOR=#000000][COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]} else if ([/COLOR][COLOR=#0000BB]$lang [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#DD0000]'fr'[/COLOR][COLOR=#007700]) { [/COLOR][COLOR=#0000BB]?>
[/COLOR] <!-- Stylesheet Englisch -->
<link rel="stylesheet" href="[COLOR=#0000BB]<?php bloginfo[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'template_directory'[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]?>[/COLOR]/css/style_fr.css" type="text/css" media="screen" />[/COLOR]funktioniert leider nicht... da bekomm ich eine Fehlermeldung!
Vielen, vielen Dank für dein Hilfe und alles Beste. Michael
-
Hm, so hier denke ich (und denk bitte dran, in Deinen Postings die Code-Kennzeichnung zu benutzen für Code):
PHP
Alles anzeigen<!-- default stylesheet --> <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" /> <?php $lang = function_exists('qtrans_getLanguage') ? qtrans_getLanguage() : 'de'; /* Sprache der aktuellen Seite von qTranslate holen */ ?> <?php if ($lang == 'de') { ?> <!-- Stylesheet Deutsch --> <link rel="stylesheet" href="<?php bloginfo('template_directory'); ?>/css/style_de.css" type="text/css" media="screen" /> <?php } else if ($lang == 'en') { ?> <!-- Stylesheet Englisch --> <link rel="stylesheet" href="<?php bloginfo('template_directory'); ?>/css/style_en.css" type="text/css" media="screen" /> <?php } else if ($lang == 'fr') { ?> <!-- Stylesheet Franzoesisch --> <link rel="stylesheet" href="<?php bloginfo('template_directory'); ?>/css/style_fr.css" type="text/css" media="screen" /> <?php } ?>
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!