Multiple language for existing site

Get help with installation and running phpwcms here. Please do not post bug reports or feature requests here.
Post Reply
yoda013
Posts: 9
Joined: Tue 11. Apr 2006, 14:30

Multiple language for existing site

Post by yoda013 »

First: phpwcms is a wonderfull cms and I got my work done in very short time... thanks to the author!

Now I have created a beautiful new website in German langugage. But my customer wants to have an additional language, English.

I've read the forum articles about multiple language workarounds but still I don't know how to act right with an existing structure. So my question is:

What steps are necessary and the right ones to add a second language to an existing structure with mode rewrite turned on?

My documents name look like "www.myhost.de/kontakt.phtml".

Thank you!


For German readers [its my native language]:

Vorab: phpwcms ist ein Super-CMS und ich konnte damit in kürzester Zeit ein Projekt umsetzen... vielen Dank an den Autor!

Nachdem ich nun die erste Website mit phpwcms erfolgreich und sehr gefällig umsetzen konnte, möchte mein Kunde gerne eine zweite Sprache (Englisch) neben Deutsch integriert haben.

Ich habe zwar die Forums-Einträge über "Mehrsprachige Website mit phpwcms" gelesen, bin mir aber immer noch nicht im Klaren, wie man idealer- bzw. richtigerweise verfährt, wenn man bereits ein vollständige Struktur aufgebaut hat. Daher meine Frage:

Welche Schritte sind notwendig und die richtigen, um eine zusätzliche Sprache bei beretis bestehender Struktur hinzuzufügen und bei aktiviertem "mode rewrite"?

D.h. die Dokumente sind folgendermaßen benannt: "www.myhost.de/kontakt.phtml"

Vielen Dank!
fellchen
Posts: 158
Joined: Thu 21. Jul 2005, 15:48
Location: Wesel a. Rhein, Germany
Contact:

Post by fellchen »

Hi yoda013,

die Schnellste und auch einfachste Möglichkeit sieht so aus:

vorhandene Struktur:

Code: Select all

HOME
  - Seite 1 (de)
  - Seite 2 (de)
  - Seite 3 (de)
    - Seite 3.1 (de)
    - Seite 3.2 (de)
  - Seite 4 (de)
Schneide die einzelnen Seiten aus und füge sie in eine neue Struktur:

Code: Select all

HOME (ID:0)
  - Deutsch (ID:7)
    - Seite 1 (de) (ID:1)
    - Seite 2 (de) (ID:2)
    - Seite 3 (de) (ID:3)
      - Seite 3.1 (de) (ID:4)
      - Seite 3.2 (de) (ID:5)
    - Seite 4 (de) (ID:6)
  - Englisch (ID:8)
    - page 1 (en) (ID:9)
    - page 2 (en) (ID:10)
    - page 3 (en) (ID:11)
      - page 3.1 (en) (ID:12)
      - page 3.2 (en) (ID:13)
    - page 4 (en) (ID:14)
Erstelle also Seite "Deutsch" und füge danach durch Ausschneiden und Einfügen (kleine Buttons hinter den Seiten in der Struktur) die Seiten unter "Deutsch" wieder ein.
Somit kannst Du nun jeder Struktur die eigenen Seiten zuweisen und die Informationen übersichtlich einordnen.

Die ID's werden in der Reihenfolge der Erstellung der Seitenstruktur vergeben. Somit hat die Seite "Deutsch" in meinem Beispiel die ID:7 da sie nach der Seite 4 erstellt wurde.

Somit wäre im Layout das Tag: {NAV_TABLE_COLUMN} zu ändern in {NAV_TABLE_COLUMN:7} um die deutschen Seiten im Menü darzustellen.

Für die englischen Seiten gilt dann: {NAV_TABLE_COLUMN:8}

Bei dem Tag {BREADCRUMB} gilt das Gleiche, also:
{BREADCRUMB:7} (deutsch) und {BREADCRUMB:8} (englisch)

Ich hoffe ich konnte Dir erstmal weiterhelfen.

Marko

PS: Das war mein Jubiläums-Beitrag - der 100. :lol:
You should not take life too seriously,
or you will not even get out of it alive!
rushclub
Posts: 915
Joined: Tue 17. Feb 2004, 18:52

Post by rushclub »

fellchen wrote:PS: Das war mein Jubiläums-Beitrag - der 100. :lol:
ist deutsch die amtssprache in new-jersey? :lol:

rush
3 (!) Jahre warten reichen mir. Ich bin erst mal weg.
fellchen
Posts: 158
Joined: Thu 21. Jul 2005, 15:48
Location: Wesel a. Rhein, Germany
Contact:

Post by fellchen »

Hi rushclub,

not yet but may be soon :lol:

Nein, ich komme ursprünglich aus Deutschland, dann antworte ich für gewöhnlich auch auf Deutsch.

Marko
You should not take life too seriously,
or you will not even get out of it alive!
yoda013
Posts: 9
Joined: Tue 11. Apr 2006, 14:30

Hört sich ja gut an!

Post by yoda013 »

Vielen Dank für die schnelle Antwort - und Glückwunsch zum 100. Beitrag!

Scheint ja relativ einfach zu sein - ich probiere es in den nächsten Tagen aus und werde über den Erfolg bzw. mögliche Hürden berichten.

Funktioniert das auch mit den "sprechenden" URLs?

Analog: Funktioniert dann die Suche nur im entsprechenden Sprachteil?
yoda013
Posts: 9
Joined: Tue 11. Apr 2006, 14:30

Multi-Language-Probleme: Breadcrumb + Sitemap

Post by yoda013 »

Hallo fellchen,

habe Deine Anregung / Anleitung zum Aufbau einer mehrsprachigen Struktur befolgt und ich konnte die neue Struktur - vielen Dank - auch sehr schnell aufbauen.

Nun habe ich allerdings das Problem, dass übergeordnet die Startseite HOME mit dem Alias "index" steht. Nun kann ich zwar diese "Wurzel"-Seite auf die deutschsprachige "Wurzel" de.phtml weiterleiten, aber im breadcrumb erscheint trotzdem die Struktur ab einer Stufe höher. Erst wenn ich einen Menüpunkt darunter anklicke, wechselt die breadcrumb den Startpoint auf den deutschsprachigen Teil der Website.

Die Sitemap zeigt mir nur noch den obersten "Wurzel"-Eintrag an und keine Unterstrukturen. Nehme ich die Wurzel aus dem Sitemap-Listing heraus, dann bleibt die Sitemap vollständig leer.

Vielleicht nochmall zur Verdeutlichung die Struktur:

Code: Select all

Home (ID:0)

 - de (ID:13) "Startseite deutsch"
   - news (ID:12)
   - unternehmen (ID:1)
   - produkte (ID:2)
   - service (ID:11)
   - kontakt (ID:5)
   - impressum (ID:6)
   - sitemap (ID:8)
   - suche (ID:9)

 - en (ID:14) "Home englisch"
   - news (ID:15)
   - company (ID:16)
   - ...
Wie gesagt: Beim Aufruf der Website erscheint im breadcrumb "Home > Startseite", wobei Home die ID:0 darstellt. Klickt man auf die Seite "unternehmen", dann enthält die breadcrumb richtigerweise "Startseite > Unternehmen". Klicke ich hier wieder auf "Startseite" in der breadcrumb, dann bekomme ich erneut "Home > Startseite".

Was habe ich nicht bedacht?
pepe
Posts: 3954
Joined: Mon 19. Jan 2004, 13:46

Post by pepe »

Hi yoda013,

da ich dieses Problem mit meinem Multilanguage-Script ja auch habe, brauchte ich ebenfalls eine Lösung ....

Zwar auch nur ein Workarround... aber besser als NICHTS, finde ich :wink:
[PHP]

// --------------------------------------------------------------------------- +
// Copyright 2004-2006 by: Manfred "pepe" Peperkorn - All rights reserved.
// eMail: info[AT]webdesign-dp[DOT]de |
// --------------------------------------------------------------------------- +

// Pruefung der CAT-ID der aktuellen Ebene (Seite)
$check_id = $GLOBALS['content']['cat_id'];

if ($check_id == 13) { echo 'Startseite'; } // Prüfen auf CAT-ID der DEUTSCHEN "Startseite"
elseif ($check_id == 14) { echo 'home'; } // Prüfen auf CAT-ID der ENGLISCHEN "home" - page
else {

// Pruefung der Top-CAT-ID zur aktuellen Ebene (Seite)
while ( $GLOBALS['content']['struct'][$check_id]['acat_struct'] > 0 ) {
$check_id = $GLOBALS['content']['struct'][$check_id]['acat_struct'];
}

// Rückabe an die aufrufende Vorlage zur Generierung des BREADCRUMB-RTs
echo '{BREADCRUMB:'.$check_id.'}';
}

[PHP]
Setz das mal an die Stelle deiner {BREADCRUMB} Haut nicht ganz hin... aber fast!
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Post by flip-flop »

Hi yoda013,

schau mal hier:

Code: Select all

www .mz.ja-nek .de/test2_3.phtml
Ich würde dein RT {BREADCRUMB_LEVELS:1:10:0:>} verwenden, dann bist du das Problem los. (Ist Levelbasiert). Link auf der Seite.

Gruß Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
pepe
Posts: 3954
Joined: Mon 19. Jan 2004, 13:46

Post by pepe »

:cry: :cry: Das hat man davon.... wenn man nicht alle RTs ausprobiert... blöder pepe, blöder :cry: :cry:
User avatar
flip-flop
Moderator
Posts: 8178
Joined: Sat 21. May 2005, 21:25
Location: HAMM (Germany)
Contact:

Post by flip-flop »

@PEPE
Auf der o.g. Seite sind fast alle NAVI RTs in einem wilden Durcheinander angetestet.
Hast du nicht Lust und Zeit den {BROWSE:PREV:Text:0} {BROWSE:NEXT:Text:1} zu erweitern? Und zwar so dass er nur in einem Level arbeitet und vom Ende an den Anfang bzw. umgekehrt springt.
Am besten ein RT.
Dazu noch eine NAV_LIST_ALL bei der jeder Eintrag im Level eine eigene ID mitbringt. Schön durchnummeriert, in jedem Level bei 1 beginnend. Noch geiler wäre wenn dazu noch jeder Start- und End Artikel im Level bezeichnet wäre. Dann könnte man mit dem Teil Navis zaubern die auch grafisch sehr ansprechend sind.
Oder muss ich etwa selbst dieses krude PHP lernen?

Habe keine konkrete Anwendung, aber wäre super fürs Portfolio vom System.

Gruß Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
yoda013
Posts: 9
Joined: Tue 11. Apr 2006, 14:30

RT BREADCRUMB_LEVELS

Post by yoda013 »

Dank flip-flop,

der

Code: Select all

RT {BREADCRUMB_LEVELS:1:10:0:>}
löst das Problem.
pepe
Posts: 3954
Joined: Mon 19. Jan 2004, 13:46

Post by pepe »

Hallo flip-flop,

du überschätzt meine Kenntnisse bezüglich php bei Weitem...
Kann gerade mal mit 2 Gehhilfen laufen und weiss, wie man PHP schreibt...
Und kann aus 2 Scripts ein drittes machen, viel mehr ist aber nicht drin :oops:

Habe mich auch nie so recht in den Code von phpWCMS vertieft.
Ich versuche eher, mit den "vorhandenen" Möglichkeiten brauchbare Ergebnise zu erzielen, was mir ganz leidlich zu gelingen scheint.

Allerdings so eine Erweiterung wäre natürlich schon schön... und sinnvoll.

Irgendwann werd ich mich aber doch mal dranmachen, einen eigenen MOD zurechtzufummeln, aber im Moment bin ich noch nicht so weit :cry: Aber ich bin lernfähig und willig :wink:

Wenn was Vernünftiges dabei zustande kommt, werd ich's natürlich veröffentlichen, versprochen :lol:
Post Reply