Hallo xena,
das von dir beschriebene Anwendungsszenario ist kein einfaches. Hier muss man sich vor der Implementierung Gedanken machen, denn sonst verbaut man sich die Möglichkeit der Mehrsprachigkeit. Grundsätzlich ist es ratsam, in der Konzeptionsphase alles als mehrsprachig zu definieren. Wichtig dabei ist es, dass das eingesetzte Framework bzw. die eingesetzten Scripten Eigenschaften wie Sprache entsprechend bereithalten, da es sonst schwierig ist, die nötigen Informationen für Mehrsprachigkeit an eingebundene Module weiterzugeben.
Der Lösungsansatz ist IMHO an die Anwendung gebunden. In einem CMS, das sicher seine Daten in einer Datenbank ablegen wird, sollte dies im Datenmodell vorgesehen sein, in einer Applikation, die ein eigenes Backend oder einen eigenen Datenpool hat, kann eine Sprachdatei genügen. Wichtig ist dabei - wie bereits gesagt - dass dein CMS-Rahmen eine Schnittstelle für das Einbinden von Modulen bietet, die Mehrsprachigkeit ermöglicht. Wird beispielsweise die Sprache deiner CMS-Seite umgeschalten, muss das dem Modul auch mitgeteilt werden.
Datenhaltungstechnisch ist muss eine weitere Abstraktionsebene eingezogen werden. Wird in einer Tabelle bisher ein Inhalt direkt gespeichert, brauchst du jetzt eine weitere Tabelle, die die Sprachabhängigen Werte speichert. Bei Navigationsknoten verhält sich das ähnlich - auch hier werden die Werte in eigenen Tabellen gespeichert und zum eigentlichen Navigationspunkt verknüpft. Um hier generisch zu bleiben, sollte ein sprachabhängiger Text zu einer Sprache assoziiert sein, so kann man eine saubere n:m-Beziehung aufbauen.
Als Anregung hier mal ein UML, das ich zu einem anderen Thread erstellt habe:

Zum Thema sprachabhängige Konfiguration von Modulen kannst du dir ja mal den Artikel unter adventure-php-framework.org, Kapitel 5, ansehen.
_________________
Grüße,
Dr.E.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a look at www.adventure-php-framework.org!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~