de 2012 >> Navigation Top >> Forum >> Forum

Forum

DynPG Forum

Foren

Login

Suchen

Forenübersicht - Allgemeines Forum - Sprachwechsel

fspwerbetech

Beiträge: 7

Sprachwechsel
Gruezi mitenand

Muss eine Website mit zwei Sprachen erstellen. Wie kann ich das am Rationellsten lösen?

Vielen Dank für Ihre Antwort.

23.08.2007 16:01

ZITIEREN | ANTWORTEN

Daniel Schliebner

Beiträge: 382

Hallo!

Mit DynPG würde ich folgende Herangehensweise empfehlen:

1. Je Sprache eine eigene Gruppenstruktur erstellen:

- Site
-- German
--- Neuigkeiten
--- Weiteres
-- English
--- News
--- Misc


2. Sprachdatei "[SPRACHE].lang.php" erstellen/anpassen in "/cms/localised/"


3. Ggf. noch differenzierte Templatesets für die verschiedenen Sprachen in
"/cms/tpl/MyCMS/" z.B. "default" kopieren und in "eng" umbenennen.


4. Sprachen und Templates in der PHP-Seite im Frontend umstellen mithilfe der Befehle:

$GLOBALS["DynPG"]->setupLanguage('[SPRACHE]');
$GLOBALS["DynPG"]->setupTemplate('[SPRACHE]');


Dabei sollten also die Namen der Templatesets und die der Sprachkürtel (also [SPRACHE]) identisch sein, damit das Umschalten einfacher geht.

Im Frontend können Sie das dann dynamisch umschalten lassen, indem Sie z.B. also einfach zwei Seiten anlegen, einmal z.B. mithilfe einer differenzierten Verzeichnisstruktur derart:

german/index.php
german/news.php
german/misc.php
english/index.php
english/news.php
english/misc.php
Mit freundlichen Grüßen

ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de

Bietzkestraße 18A
10315 Berlin
GERMANY

Tel.: +49 30 33980300

23.08.2007 16:21

ZITIEREN | ANTWORTEN

fspwerbetech

Beiträge: 7

Funktioniert das auch mit der Navigation
Gruezi Herr Schliebner

Funktioniert das System auch mit dem Tool Navigation von Dynpg?

Vielen Dank für Ihre prompte Antwort.

Liebe Grüsse

23.08.2007 16:52

ZITIEREN | ANTWORTEN

Daniel Schliebner

Beiträge: 382

Hallo!

Ja, hier ist es am sinnvollsten, wenn Sie auf den Seiten jeweils die nicht aktiven Sprachen im Menü über einen Befehl ausblenden. Angenommen es haben also die Gruppen "German die ID 1" und "English die ID 2" dann würden sie auf den deutschen Seiten die Englische Gruppe ausblenden mit:

$GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'implode_subtree', Array(2));

existiert also noch eine weitere Sprache "Spanisch mit ID 3", dann würden sie diese Gruppen mithilfe

$GLOBALS["DynPG"]->SetParam_PlugIn_Param('DPGdynmenu', 'implode_subtree', Array(2, 3));

ausblenden.

Alternativ lässt sich das natürlich auch mittels CSS lösen, indem Sie auf den Sprachseiten jeweils ein eigenen CSS-File für die Sprache erstellen und in diesem die anderen Sprachen ausblenden.
Mit freundlichen Grüßen

ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de

Bietzkestraße 18A
10315 Berlin
GERMANY

Tel.: +49 30 33980300

23.08.2007 17:04

ZITIEREN | ANTWORTEN

fspwerbetech

Beiträge: 7

Vielen Dank
Werde es gerne so versuchen! Vielen Dank für Ihre prompte Hilfe.

Liebe Grüsse

23.08.2007 17:30

ZITIEREN | ANTWORTEN

longis

Beiträge: 131

ID Ausblendung funktioniert nicht
Gruezi Herr Schliebner

Nun habe ich den Versuch gemacht mit der Ausblendung der ID: Leider funktioniert dies nicht.

Können Sie mir nochmals Tipps geben, was ich noch versuchen könnte?

Vielen Dank
Liebe Grüsse
Marlies

29.08.2007 11:15

ZITIEREN | ANTWORTEN

longis

Beiträge: 131

Wo müssen die Einträge hin?
Gruezi Herr Schliebner

Leider ist mir vieles unklar. Werde nicht schlau, wo und welche Datei ich anpassen sollte. Könnten Sie mir nochmals auf die Sprünge helfen?

2. Sprachdatei "[SPRACHE].lang.php" erstellen/anpassen in "/cms/localised/"
>Wo liegt diese Datei?

3. Ggf. noch differenzierte Templatesets für die verschiedenen Sprachen in
"/cms/tpl/MyCMS/" z.B. "default" kopieren und in "eng" umbenennen.
>Habe ich erstellt.

4. Sprachen und Templates in der PHP-Seite im Frontend umstellen mithilfe der Befehle:

$GLOBALS["DynPG"]->setupLanguage('[SPRACHE]');
$GLOBALS["DynPG"]->setupTemplate('[SPRACHE]');
>Müssen diese Einträge in der Navigation vergeben werden?

Vielen Dank
Liebe Grüsse
Marlies

29.08.2007 17:05

ZITIEREN | ANTWORTEN

Daniel Schliebner

Beiträge: 382

Hallo!

A)

Zitat
2. Sprachdatei "[SPRACHE].lang.php" erstellen/anpassen in "/cms/localised/"


Wenn DynPG im Ordner "cms" liegt, dann eben "/cms/localised/" in. Ggf. irritiert hier [SPRACHE]. Dies sollte ein Platzhalter für ein Sprachkürzel Ihrer Wahl sein. Standardmäßig liegen bereits zwei Dateien in diesem Ordner: eine für Deutsch (de.lang.php) und eine für Englisch (en.lang.php). Wenn Sie eine weitere Sprache verwenden möchten, müssen Sie hier auch eine weitere Sprachdatei anlegen (also z.B. fr.lang.php für Französisch).


B)

Zitat
3. Ggf. noch differenzierte Templatesets für die verschiedenen Sprachen in "/cms/tpl/MyCMS/" z.B. "default" kopieren und in "eng" umbenennen.
>Habe ich erstellt.


Ok, ich hatte aber nicht bedacht, dass für die Englische Sprache bereits standardmäßig ein angepasstes Template exisitiert ("en"). Benennen Sie also z.B. nun einfach den Ordner "eng" um in "fr" um die die oben beschriebene Sprachdatei mit diesem Template zu ergänzen.

Allgemein brauchen Sie also für eine neue Sprache immer eine neue Sprachdatei (A) und ein entsprechendes Templateset (B).


Zitat
4. Sprachen und Templates in der PHP-Seite im Frontend umstellen mithilfe der Befehle:

$GLOBALS["DynPG"]->setupLanguage('[SPRACHE]');
$GLOBALS["DynPG"]->setupTemplate('[SPRACHE]');
>Müssen diese Einträge in der Navigation vergeben werden?


Nein. Vorweg: [SPRACHE] meint hier wieder das Sprach-Kürzel der zu verwendenden Sprache (de für Deutsch, en für Englisch, fr für Französisch, ...). Diese Umschaltung der zu verwendenden Sprache sollten Sie in den Dateien vornehmen, welche diese Sprache verwenden sollen. Also wenn Sie z.B. eine Dateiaufteilung wie in meinem ersten Beitrag wählen würden, dann wäre es sinnvoll diese Umschaltung wiefolgt vorzunehmen:

----
In den Dateien

german/index.php
german/news.php
german/misc.php

die Umschaltung

$GLOBALS["DynPG"]->setupLanguage('de');
$GLOBALS["DynPG"]->setupTemplate('default');


In den Dateien

english/index.php
english/news.php
english/misc.php

die Umschaltung

$GLOBALS["DynPG"]->setupLanguage('en');
$GLOBALS["DynPG"]->setupTemplate('en');
----

Diese beiden Codezeilen können Sie z.B. direkt nach

$GLOBALS["DynPG"]->SetParam_PathToRoot('cms/');

setzen.


Zitat
Nun habe ich den Versuch gemacht mit der Ausblendung der ID: Leider funktioniert dies nicht.


Um den Menüpunkt selbst auszublenden nutzen Sie bitte noch CSS. Der Befehl oben erreicht nur, dass die Unterpunkte ausgeblendet/nicht geladen werden.

Platzieren Sie die Zeile an die Stelle, wo sie auch das Menü einbinden (vermutlich über WriteArticle()). Stellen Sie auch sicher, dass die ID (hier "2") mit der Gruppe im Backend übereinstimmt, welche Sie ausblenden möchten.


Ich hoffe, ich konnte damit erstmal weiterhelfen...
Mit freundlichen Grüßen

ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de

Bietzkestraße 18A
10315 Berlin
GERMANY

Tel.: +49 30 33980300

29.08.2007 17:38

ZITIEREN | ANTWORTEN

Patrick Wicki

Beiträge: 131

Hallo Herr Schliebner

Auch ich bin gerade an der Knacknuss zweisprachige Website. Was mich etwas irritiert ist die Gruppenstruktur bezw. ob ich das so richtig verstehe:

-- German
--- Neuigkeiten
--- Weiteres
-- English
--- News
--- Misc

Hab dies bei meiner Probeseite kurz gemacht. Das Problem ist allerdings, dass ich dann nur noch "German" und "English" in der Navi sehe. Ich möchte aber das "Neuigkeiten" und "Weiteres" in der entsprechenden Sprache zu sehen sind (also im Aussehen wie der Menüpunkt "Home"). Oder verstehe ich da etwas falsch?

Ein Muster sehen Sie hier: http://www.wivisions.com/dynpg_muster3

Ich danke Ihnen für Ihre Hilfe.
Freundliche Grüsse
Patrick Wicki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wivisions GmbH -> www.wivisions.ch

31.01.2009 17:23

ZITIEREN | ANTWORTEN

Daniel Schliebner

Beiträge: 382

Hallo Herr Wicki,

Sie haben das schon korrekt eingerichtet, wobei es ggf. besser wäre, wenn Sie den Menü-Punkt "Home" auch noch die die Untergruppen "German" und "English" verschieben - damit wäre es auch einfacher ein einheitlichen Aussehen der Menüpunkte zu erreichen.

Wenn Sie dies entsprechend einrichten, wird Ihnen auf der Webseite natürlich erstmal nur die Punkte "German" und "English" angezeigt werden. Nun können Sie aber wie oben im Beitrag beschrieben verfahren. D.h. Sie erstellen sich je Sprache eine eigene php-Seite mit eigenem Menü, wo sie dann die entprechende Gruppe (d.h. "German" oder "English" expandieren) und den Menüpunkt "German" bzw. "English" per CSS ausblenden (siehe oben im Beitrag für genauere Beschreibungen).

Vielleicht noch einmal zusammengefasst: die Idee besteht also darin, die Seite im Backend über die Gruppenstruktur so aufzubauen, dass Sie je Sprache einen eigenen Gruppenbaum aufbauen, indem dann erst die Seitenstruktur abgebldet wird (durch "Home", "News", "Weiteres", ...).

Ich hoffe, das konnte erst einmal weiterhelfen.
Mit freundlichen Grüßen

ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de

Bietzkestraße 18A
10315 Berlin
GERMANY

Tel.: +49 30 33980300

31.01.2009 19:29

ZITIEREN | ANTWORTEN

Patrick Wicki

Beiträge: 131

Hallo Herr Schliebner
Besten Dank für Ihre Erklärungen. Ok ich werde das so versuchen. Jedoch ist mir noch immer nicht klar, wie ich es dann anstelle, dass ich die Punkte unter "Deutsch":

Produkte
Verkaufsstützpunkte
Onlineshop
Sponsoring & Events

das Aussehen haben, wie jetzt Home, Deutsch und Französisch?
Freundliche Grüsse
Patrick Wicki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wivisions GmbH -> www.wivisions.ch

31.01.2009 21:37

ZITIEREN | ANTWORTEN

Daniel Schliebner

Beiträge: 382

Hallo Herr Wicki,

die Menüpunkte, welche Sie entsprechend gestalten wollen, sind Gruppen der Ebene 1. Das Aussehen bestimmen Sie in der menu.css im Ordner /plugins/DPGdynmenu/styles/. Dort finden Sie u.a. den Block

/* -------------------------------------- */
/* [level 0] */
/* -------------------------------------- */

und den Block

/* -------------------------------------- */
/* [level 1] */
/* -------------------------------------- */

Die Stildefinitionen unter dem ersten Block definieren im Wesentlichen die Stile der ersten Ebene (also das, was jetzt als "Home", "Deutsch" und ""English" angezeigt wird). D.h. in den Stildefinitionen unter dem zweiten Block müssen Sie genau jene Angaben machen, wie Sie im ersten Block zu finden sind (d.h. konkret die Angaben für margin, border-* und padding).
Mit freundlichen Grüßen

ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de

Bietzkestraße 18A
10315 Berlin
GERMANY

Tel.: +49 30 33980300

01.02.2009 12:25

ZITIEREN | ANTWORTEN

Patrick Wicki

Beiträge: 131

Hallo Herr Schliebner

Besten Dank für Ihre Erklärung. Es ist noch nicht alles ganz klar (bezgl. den verschiedenen Anpassungen der Templates) ich werde es jedoch einfach mal versuchen.
Freundliche Grüsse
Patrick Wicki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wivisions GmbH -> www.wivisions.ch

03.02.2009 11:50

ZITIEREN | ANTWORTEN

Patrick Wicki

Beiträge: 131

Hallo Herr Schliebner

Ich hab das jetzt mal so wie im Thread besprochen umgesetzt. Das Level 0 im menu.css hab ich einfach mit der display:none ausgeschaltet. Leider ist jetzt noch ein Fehler den ich nicht hinkriege.

Hier in deutsch und hier in französisch klappt das wunderbar.

Jedoch fehlt auf der deutschen Startseite sowie auf der französischen Startseite wird leider die Navigation nicht eingespiesen. Ich finde aber keine Erklärung warum.

Ausserdem stelle ich auch fest, dass die Umschaltung der Sprachseiten nicht richtig klappt (siehe rechts oben bei Sprachvermerk).

Können Sie mir vielleicht weiterhelfen?
Freundliche Grüsse
Patrick Wicki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wivisions GmbH -> www.wivisions.ch

12.02.2009 15:16

ZITIEREN | ANTWORTEN

Daniel Schliebner

Beiträge: 382

Hallo Herr Wicki,

haben Sie in der Zwischenzeit noch etwas geändert? Das sieht doch ansonsten korrekt aus? Wenn ich von den jeweiligen Startseiten

http://www.wivisions.com/dynpg_muster3/index.php
http://www.wivisions.com/dynpg_muster3/index_fr.php

ausgehe, dann bleibe ich stets in den korrekten Sprachen. Ich kann soweit nichts fehlerhaftes mehr entdecken. Übersehe ich etwas? Prinzipiell muss lediglich sichergestellt werden, dass man beim surfen auf einer ausgewählten Sprache in den jeweiligen Bereichen bleibt (d.h. bei französisch auf den PHP-Seiten *_fr.php)...
Mit freundlichen Grüßen

ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de

Bietzkestraße 18A
10315 Berlin
GERMANY

Tel.: +49 30 33980300

13.02.2009 19:23

ZITIEREN | ANTWORTEN

Patrick Wicki

Beiträge: 131

Hallo Herr Schliebner

Zitat
haben Sie in der Zwischenzeit noch etwas geändert? Das sieht doch ansonsten korrekt aus? Wenn ich von den jeweiligen Startseiten.

Nein nein Sie übersehen nichts. Herr Gamper hat mir bezgl.

- der Umschaltung des CSS für Unsichtbarkeit von Level 0 in der Navi (wäre nie drauf gekommen dass ich da ein Extra-CSS nach dem regulären DynPG-CSS einbauen müsste)
- dem genauen Einsatz der einzelnen Sprachgruppenausblendung in der navi.php, geholfen.

Soweit denke ich sollte es jetzt mal klappen. Ich werde dies nun noch versuchen auf die offizielle Seite einzubauen. Danke für Ihr Feedback und ein schönes Wochenende.
Freundliche Grüsse
Patrick Wicki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wivisions GmbH -> www.wivisions.ch

13.02.2009 19:45

ZITIEREN | ANTWORTEN

robertpaul

Beiträge: 61

Sprachwechsel die Zweite
Hallo lieber Support,
ich steh jetzt auch auftragsbedingt vor der Frage, wie ich eine zweisprachige Seite (Englisch/Deutsch) aufstelle. Man ist ja geneigt den einfacheren Weg zu gehen, aber nachdem ich diesen Thread gelesen habe, möchte ich es auch über das dynpg versuchen.

Das Anlegen der Gruppen ( deutsch / english ) mit den nachfolgenden Submenus ist klar.
Das umschalten der Sprache müsste dann in zwei navi.php´s geschehen. z.B für die Standardseite in deutsch (index.html - include navi.php) und für Englisch (index_en.html - include navi_en.php)

Leider habe ich Verständnisprobleme mit dem Punkt \\"Ausblenden der nicht benötigten Menusprachversion\\"!
Wo und welches CSS muss ich anbringen, zum ausblenden der jeweiligen Gruppe? (wird denn jede Gruppe mit einer eindeutigen ID angelegt?)
Wo setzte ich:

$GLOBALS[\\"DynPG\\"]->SetParam_PlugIn_Param(\\'DPGdynmenu\\', \\'implode_subtree\\', Array(2));

ein? Muss es zusätzlich zum ausblenden per CSS angegeben werden?

Würde mich freuen, wenn mir da ein wenig auf die Sprünge geholfen werden kann.

mfg
Robert

03.02.2010 10:42

ZITIEREN | ANTWORTEN

Daniel Schliebner

Beiträge: 382

Hallo!

Es geht darum, dass im Menü der jeweiligen Sprach(-seite) natürlich nur die Gruppen (d.h. Menüpunkte) der jeweiligen Sprache angezeigt werden sollen.

Zitat
Das umschalten der Sprache müsste dann in zwei navi.php´s geschehen. z.B für die Standardseite in deutsch (index.html - include navi.php) und für Englisch (index_en.html - include navi_en.php)


Genau richtig. Der Unterschied in den navi.php-Dateien besteht nun darin, dass zusätzlich angegeben wird, welche Gruppen ausgeblendet werden müssen (in der navi_en.php müssen alle Punkte der deutschen Gruppen ausgeblendet werden). Dies geschieht mit dem Global

$GLOBALS[\\"DynPG\\"]->SetParam_PlugIn_Param(\\'DPGdynmenu\\', \\'implode_subtree\\', Array(2));

wobei die \\"2\\" also für die auszublendende Gruppen-ID steht.

Zitat
wird denn jede Gruppe mit einer eindeutigen ID angelegt?


Ja, jede Gruppe hat eine eindeutige ID, welche dem Backend zu entnehmen ist.

Des Weiteren sollten sie auf der \\"index_en.php\\" noch die Sprache und die Templates auf englisch umstellen. Am besten ist, wenn Sie dies direkt hinter

<?php
require(\\'dynpg/getcontent.php\\');
$GLOBALS[\\"DynPG\\"]->SetParam_PathToRoot(\\'dynpg/\\');
?>

unterbringen. Dies geht wiefolgt:

$GLOBALS[\\"DynPG\\"]->setupTemplate(\\'en\\');
$GLOBALS[\\"DynPG\\"]->setupLanguage(\\'en\\');

Ich hoffe, dies konnte ersteinmal weiterhelfen.
Mit freundlichen Grüßen

ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de

Bietzkestraße 18A
10315 Berlin
GERMANY

Tel.: +49 30 33980300

03.02.2010 14:15

ZITIEREN | ANTWORTEN

Chris

Beiträge: 510

Gruezi Robert,

Also grundsätzlich können Sie das .css wie gewohnt verwenden um die (nicht) benötigten Gruppenebenen ein- oder auszublenden und zwar über beide Sprachen. Damit in Deutsch nun die seine Untergruppen dargestellt werden und in Englisch dessen, müssen/können folgende Global-Parameter in das jeweilige navi.php der gewünschten Sprache:

$GLOBALS[\\"DynPG\\"]->SetParam_PlugIn_Param(\\'DPGdynmenu\\', \\'real_expand\\', TRUE);
$GLOBALS[\\"DynPG\\"]->SetParam_PlugIn_Param(\\'DPGdynmenu\\', \\'fetch_only\\', 14);
$GLOBALS[\\"DynPG\\"]->SetParam_PlugIn_Param(\\'DPGdynmenu\\', \\'expand_subtree\\', Array(14));

Was diese Menu-Parameter genau bedeuten, können Sie unserem Wiki entnehmen:
http://www.dynpg.org/wiki_de/index.php/Modul_Dynamische_Navigation#Globalsreferenz

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.02.2010 14:23

ZITIEREN | ANTWORTEN

Torsten

Beiträge: 9

Da die Frage zur Mehrsprachigkeit mit DynPG ja immer wieder mal auftaucht, gibt es dazu jetzt auch eine Anleitung im Wiki.
----------------------------------------------------------------------------------
Responsible for translating, maintaining and improving the user documentation.

21.03.2010 13:46

ZITIEREN | ANTWORTEN