Forum

DynPG Forum

Foren

Login

Suchen

Forenübersicht - DynPG Software-Forum - Sprachenwechsel

newcomer

Beiträge: 118

Sprachenwechsel
Hallo

Nun sollte ich einen Sprachwechsel machen aber es funktioniert nicht.
Habe wie im Tutorial beschrieben im Backend zwei Grupppenstrukturen gemacht mit en und de.
Dann habe ich für die Wappen den php Code mit der navigation.php eingebunden wie im Download Beispiel im Turorial.
Die navigation.php natürlich in meinen inc. Ordner kopiert. In dieser Datei habe ich für die Arrays die jeweiligen ID Gruppen Nummern zum Beispiel de=5 und en=20 eingetragen.
Leider funktioniert es bei mir nicht.
Entweder muss ich die Arrays anderst angeben oder muss ich noch etwas beachten? Muss ich noch etwas in der config.php Datei ändern die habe ich auch in den inc. Ordner kopiert verstehe zwar nicht ganz warum.

Liebe Grüsse Chantal

31.08.2012 15:18

ZITIEREN | ANTWORTEN

Urs Gamper

Beiträge: 530

Hoi Chantal

Grundsätzlich zu der angesprochenen confi.php. Dies betrifft nur die Lösung, wenn du das vorgeschlagene Beispiel nimmst. Sonst benötigst du diese nicht.

Für die beiden Sprachen hast du je ein Navi-Include erstellt?
In diesen hast du auch nachfolgende Zeilen?

$GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'fetch_only', 4);
$GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'expand_subtree', Array(4));

Hier müsstest du natürlich die Gruppen-ID ändern.

Wichtig ist auch, dass du ganz zu Beginn der englischen Seite folgende Zeile drin hast:
$GLOBALS["DynPG"]->SetupLanguage('en');

Damit wird auf die englische Sprachdatei verwiesen.

Ich hoffe, dass dir dies etwas weiterhilft.

Grüessli
Urs
gamper media GmbH
5621 Zufikon
+41-56-631 80 23

31.08.2012 16:40

ZITIEREN | ANTWORTEN

newcomer

Beiträge: 118

Sali Urs

Ja vorher hatte ich die Navigation des Beispiels, nun habe ich mein Navi-Include dupliziert und als e_navi bennant, deine Snippets nachgetragen oder korrigiert.
Nun sehe ich zwar im Browser wenn ich auf das englisch Wappen klicke
Zitat
http://test.alphatax.lu/index.php?lang=en
aber die Navi bleibt trotzdem in deutsch??
Im Backend habe ich ja eine en-Navi-Struktur erstellt mit der ID 20.
Habe dir mal die e_navi.php angehängt, evtl. siehst du was ich falsch gemacht habe.
Danke für deine Hilfe.

Liebe Grüsse
Chantal
Attachments
1 Attachment (Dateityp: zip, Größe: 2 Kb)

31.08.2012 23:26

ZITIEREN | ANTWORTEN

Chris

Beiträge: 510

hi chantal,

es gibt versch. Möglichkeiten für einen Sprachwechsel. Evtl. ist der aus der Dokumentation nicht der einfachste, weil dieser nur eine Inhaltsdatei (.php) für beide Sprachen verwendet und dann dynamisch die jeweiligen Snippets einbindet, je nachdem welche Sprache gewählt wurde.

Eine "einfachere" Variante wäre folgendes:

1. Gruppenstruktur mit Hauptgruppe pro Sprache in DynPG anlegen
2. .php-Indexseite pro Sprache anlegen (index.php + index_en.php)
3. Pro Sprache ein Navi-Snippet und in die jeweilige index includieren

Somit werden also alle PHP-Seiten pro Sprache "doppelt" angelegt, können aber einen eigenen Namen etc. haben (google wirksam) und diese inkludieren dann ihre "eigenen" (zb. Navi) oder auch "gesharte" (zb. Inhalt) Snippets.

Der Sprachwechsel muss dann noch so umgebaut werden, das die jeweilige Sprache auf dessen index zeigt.

mfg
chris.w.
*************************************
Christoph Würsch
Urbanización Aranjuez
Asturianas No° 23
Asuncion / Paraguay
-------------------------------------
Tel: +595 (0)21 332 984
-------------------------------------
http://www.chriswuersch.com
*************************************

03.09.2012 18:55

ZITIEREN | ANTWORTEN

newcomer

Beiträge: 118

Hallo Chris

Danke für deinen Vorschlag, das klappt von der Startseite auch wunderbar.

Aber mit dieser Methode kann ich nicht auf einer Folgeseite direkt den Sprachwechsel anzeigen lassen.
Ich versuchte auf den Folgeseiten den Sprachwechsel mit den Folgeseiten zu verlinken, aber so findet er den Weg nicht.
Nun habe ich in den Folgeseiten auch die Index.php oder index_en.php angegeben, dann springt er beim Sprachwechsel natürlich immer auf die Startseite.
Wie kann ich mit dieser Methode bewerkstelligen dass er von einer Seite auf englisch wechselt aber auch auf dieser Seite bleibt?

Liebe Grüsse Chantal

07.09.2012 08:05

ZITIEREN | ANTWORTEN

Chris

Beiträge: 510

Hi Chantal,

Momentan ist es mit dem DynPG nicht möglich von einem Inhalt in einer Sprache direkt auf denselben Inhalt einer anderen Sprache zu verlinken.

Die jeweiligen Artikel haben ja 2 versch. Gruppenstrukturen und können untereinander im Backend nicht verknüpft werden, desshalb kennt das DynPG die Zuordnung zwischen den Artikeln in versch. Sprachen nicht.

Sobald wir mal seeehr viel Zeit haben oder einen guten Sponsor finden ;), werden wir dieses Feature implementieren.

Meine Frage hierzu ist eigentlich immer diesseble, warum willst Du einen solchen direkten Inhaltsswitcher, wem bringt das etwas? Ein "normaler" Webseitenbesucher klickt entweder auf Deutsch oder Englisch und zwar direkt wenn er auf die Seite kommt und wechselt das dann nicht mehr. Warum möchte der auch den Text den er in englisch gelesen hatte jetzt gleich auch noch in Deutsch lesen ;)

Wenn Du das aber möchtest, kannst natürlich selbst einen solchen "inteligenten" Switcher generieren. Damit so etwas dynamisch möglich ist, müsstest Du vermutlich das DynPG erweitern und ein eigenes Plugin schreiben oder Du machst es einfach und zwar hardcodiert per Gruppen IDs, indem Du in diesem include zb. ein array definierst und so die beiden Inhalte der Sprachen verknüpfst, damit Du weisst wohin weitergeleitet werden muss.

zb:

Zitat

// definition der aktuellen Seitensprache (könnte ausserhalb des includes definiert werden)!
$lang = 'de';

// ab hier würde das ganze als include integriert

// id DE nach id EN mappen
$de-en = array('6' => '21', '7' => '23');
$en-de = array_flip($de-en);

// auslesen der aktuellen id
$actID = (isset($_GET['read_category'])?$_GET['read_category']:(isset($_GET['read_group'])?$_GET['read_group']:(isset($_GET['read_article'])?$_GET['read_article']:($lang == 'de')?'6':'21')));

// schreiben der Sprachnavigationen
$linkParam = (isset($_GET['read_category'])?'read_category':(isset($_GET['read_group'])?'read_group':(isset($_GET['read_article'])?'read_article':'')));

// generieren des DE Links
$linkDE = ((isset($de-en[$actID]) || $actID == 21 || !isset($en-de[$actID]))?'index.php':'steuerreporting.php').(!empty($linkParam) && isset($en-de[$actID])?'?'.$linkParam.'='.$en-de[$actID]:'');

// generieren des EN Links
$linkEN = ((isset($en-de[$actID]) || $actID == 6 || !isset($de-en[$actID]))?'index_en.php':'taxreporting.php').(!empty($linkParam) && isset($de-en[$actID])?'?'.$linkParam.'='.$de-en[$actID]:'');


usw... ;)

gruss
chris.w.
*************************************
Christoph Würsch
Urbanización Aranjuez
Asturianas No° 23
Asuncion / Paraguay
-------------------------------------
Tel: +595 (0)21 332 984
-------------------------------------
http://www.chriswuersch.com
*************************************

07.09.2012 15:41

ZITIEREN | ANTWORTEN

newcomer

Beiträge: 118

Hallo Chris

Das habe ich nicht gewusst das dies mit dynpg nicht funktioniert.
Deine Argumentation ist einleuchtend und ich werde das dem Kunden so weiter kommunizieren. Sonst muss ich halt dann dein inlude Vorschlag genauer ansehen.
Noch eine andere Frage ich möchte ein sitmap erstellen.
Habe wie laut tutorial eine sitmap.php erstellt das snippet im sitmap.php content durch das des tutorials ersetzt und auch die ID der navi ergänzt. Im backend eine sitmap gruppe erstellt und im d_navi.php unter array die ID der sitmap gruppe eingetragen.
Naja aber es funktioniert bei mir wiedermal nicht.
Ich denke ich habe das mit dem sitmap.php snippet nicht ganz verstanden.
Kannst du mir da auch noch kurz helfen :-).
Danke

Liebe Grüsse
Chantal

10.09.2012 10:56

ZITIEREN | ANTWORTEN

Chris

Beiträge: 510

hi chantal,

die sitemap basiert grundsätzlich auf dem dynmenu plugin. das heisst es müsste mit folgenden dachen funktionieren:

1. sitemap.php erstellen
3. DynMenu Artikel mit Platzhalter im DynPG erstellen.
2. Navi-Snippet (analog Hauptnavigation, evtl. erweitert damit auch die artikel angezeigt werden) einbinden. Das Snippet muss so konfiguriert werden, das der Navi-Artikel gelesen und die korrekte Menustruktur dargestellt wird.
4. Backendgruppe erstellen und über das navi-Snippet auf die sitemap.php verlinken.

d_navi.php muss im Snippet der menu konfiguration also nicht die gruppe der sitemap eingetragen haben, sondern die der hauptnavigationsgruppe (genau gleich wie das normale navi snippet) und beim Article die des DynMenu-Platzhalter Artikels.

Evtl. müsste dann im Snippet von Punkt 2 noch gewisse Parameter umgestellt werden, sollten diese irgendwo in einem anderen Snippet verstellt worden sein.

gruss
chris.w.

mfg
chris.w.
*************************************
Christoph Würsch
Urbanización Aranjuez
Asturianas No° 23
Asuncion / Paraguay
-------------------------------------
Tel: +595 (0)21 332 984
-------------------------------------
http://www.chriswuersch.com
*************************************

10.09.2012 14:46

ZITIEREN | ANTWORTEN

newcomer

Beiträge: 118

Hallo Chris

Sorry das ich so schwer von Begriff bin :/
1. die sitmap.php ist eine Kopie von index.php muss ich da ein Snippet oder so abändern und wenn was genau?
2.
Zitat
Navi-Snippet (analog Hauptnavigation, evtl. erweitert damit auch die artikel angezeigt werden) einbinden. Das Snippet muss so konfiguriert werden, das der Navi-Artikel gelesen und die korrekte Menustruktur dargestellt wird.
??? Das Navi Snippet also das Snippet im d_navi.php muss ich wo einbinden in die sitmap.php??? Im d_navi.php hat es unter Array eine query für sitmap, habe da versucht die Hauptnavigruppe ID5 anzugeben, wahrscheinlich völlig falsch?

3. Den DynMenu Artikel habe ich bereits (Artikel Nr. 1) im Backend :)

4.Habe im Backend eine Gruppe erstellt sitmap, hier braucht es doch einen Artikel???
Zitat
über das navi-Snippet auf die sitemap.php verlinken
???
Vielleicht kannst du mir das nochmal erklären, sonst muss ich die Übung abbrechen.
Liebe Grüsse
Chantal

11.09.2012 08:48

ZITIEREN | ANTWORTEN

Urs Gamper

Beiträge: 530

Hoi Chantal
Zitat
die sitmap.php ist eine Kopie von index.php muss ich da ein Snippet oder so abändern und wenn was genau?

Genau. Binde dort eine Kopie deines navi-Includes ein. Eine Kopie deshalb, weil du mit der Zeile
$GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'expand_subtree', Array(5, 12, 13));
festlegen musst, welche Gruppen Untergruppen haben und angezeigt werden müssen.

Punkt 3 erübrigt sich dann wohl...

Zitat
4.Habe im Backend eine Gruppe erstellt sitmap, hier braucht es doch einen Artikel???

Nein den braucht es nicht, wenn du im navi-Include auf die Sitemap verweist wie z.B.:
12 => Array(
'page' => '../sitemap.php{query}',
'successors' => true
),
Die 12 mit der ID deiner Gruppe sitemap ersetzen.

Grüessli
Urs
gamper media GmbH
5621 Zufikon
+41-56-631 80 23

11.09.2012 11:45

ZITIEREN | ANTWORTEN

newcomer

Beiträge: 118

Hallo Urs und Chris

Danke für eure Unterstützung habs geschafft!
Eigentlich ganz einfach wenn man weiss wie :-)

Grüsse
Chantal

14.09.2012 10:36

ZITIEREN | ANTWORTEN