Mehrsprachigkeit

Hilfe zu Modulen und Tags
User avatar
hardy
Translator
Translator
Posts: 12
Joined: Thu Feb 18, 2010 6:05 am

Re: Mehrsprachigkeit

Post by hardy »

Den Lösungsansatz mit Advanced Content und der Sessionvariable finde ich sehr interessant. Den Menütext für die zweite(z.b. englische) Sprache lässt sich sicher im Menütemplate umbiegen.
Was aber nach wie vor gleicht bleibt, ist der Seitenalias. Und somit habe ich zwar englischen Text und Menütext, aber die URL in der Adresszeile bleibt deutsch. :'(
Dadurch steht halt http:website.de/reservierung statt http:website.de/booking bei der englischen Auswahl. Den Alias kann ich aber nicht verändern, weil sonst die Links ins Leere laufen.

Schade, hätte das Ganze gerne mal umgesetzt, da viele unserer Kunden Mehrsprachigkeit verlangen.
Hardy

Wenn man von Etwas keine Ahnung hat, braucht man auch keine Angst davor zu haben.

skype:hardyclas
Dejavu

Re: Mehrsprachigkeit

Post by Dejavu »

Ja das ist auch ein punkt welcher mich ein wenig stört.

Die config_lang.php ist bei mir identisch mit der posteten. Daran liegt es leider nicht :(
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am

Re: Mehrsprachigkeit

Post by nicmare »

Ich habe nicht jeden Post verfolgt aber ich wollte mal meinen Senf und mein Feedback zu MLE abgeben:
Grundsätzlich funktioniert es gut. Was mich aber megamäßig stört: deutsche und englische Sprachseite haben den selben alias. Und dementsprechend die selbe uri. also zb www.url.de/en_US/ueber-uns ist dann das selbe wie www.url.de/de_DE/ueber-uns . man muss sich also entscheiden welche sprache man für die aliase benutzt. noch unsinniger wirds dann bei mehreren sprachen  >:(
owr_bgld

Re: Mehrsprachigkeit

Post by owr_bgld »

nicmare wrote: noch unsinniger wirds dann bei mehreren sprachen  >:(
Wieder ein Grund mehr für babel  ;D
NaN

Re: Mehrsprachigkeit

Post by NaN »

Das mit dem Alias ist leider nicht so einfach.
Das Seiten-Alias ist sowas wie eine ID.
Da kann man nicht einfach unterschiedliche Aliases ein und derselben Seite zuordnen.

Allerdings wäre das echt cool.
Zumal dann dieser "lang" Parameter wegfallen würde.
Die Sprache kann man ja dann ganz einfach über das Alias ermitteln.
Also kein domain/de-DE/startseite sondern einfach nur noch domain/startseite (bzw. domain/home usw.)

Aber so wie CMSms derzeit funktioniert, müsste man dazu alle Seiten mehrfach anlegen (lassen). Und dann könnte man auch gleich mit einer entsprechenden Seitenstruktur (und evtl. Babel arbeiten).

Übrigens macht MLE auch nichts weiter, als alle Inhalte mehrfach als Inhaltsblöcke anzulegen. Jeder Inhaltsblock bekommt einfach das Kürzel der ausgewählten Sprache angehängt. Und im Backend und Frontend werden eben nur die Blöcke geladen, deren Name mit der jeweiligen Sprache endet.

Bsp.: {content block="sidebar"} wird in der Datenbank z.B. einfach als "sidebar_de" gespeichert. Das gleiche mit Menütext und Titel.

Nur eben beim Alias gehts leider nicht so einfach.
Es sei denn man erstellt eine Tabelle, in der man völlig unabhängig von der Inhaltsverwaltung die Beziehung zwischen übersetztem Seiten-Alias und der zugehörigen Content ID speichert. Wann immer also eine Seite aufgerufen wird, müsste man zunächst in dieser Tabelle schauen, welcher Inhalt zu diesem Alias gehört. Und dann erst mit der zugehörigen Content ID die eigentlichen Inhalte aus den entsprechenden Tabellen auslesen.

Naja, und je mehr ich darüber nachdenke, desto mehr komme ich zu dem Schluss, dass CMSms konzeptionell einfach noch nicht für Mehrsprachigkeit gemacht ist. Es lässt sich zwar irgendwie realisien, jedoch muss man da immer Kompromisse machen. Egal wie man es letztendlich umsetzt.

Denn selbst bei der MLE Version muss man jedes einzelne Modul anpassen um alle Inhalte in unterschiedlichen Sprachen anlegen zu können. Oder man muss die Modul-Inhalte mehrfach verwalten. Und dann kann man ab einem gewissen Umfang auch gleich auf MLE verzichten. Denn dann stellt das mehrfache Verwalten der Seiten eher das kleinere Übel dar.

Zumindest was diese Sache mit den Inhaltsblöcken (content_en, content_de etc.) angeht, könnte ich mir vorstellen, dass sich das auch mit einem entsprechenden Inhaltstypen realisieren ließe. (Ist ja bei der MLE auch nichts anderes als ein modifizierter Inhaltstyp) Wird aber dann nicht ganz so komfortabel (man kann z.B. bei der Liste der Seiten nicht einfach zwischen den Sprachen hin und her schalten)
Ich muss mir mal das Babel Modul anschauen. Mal sehen wie die das gelöst haben.
owr_bgld

Re: Mehrsprachigkeit

Post by owr_bgld »

@NaN - ich hätte da einen Gedankenanstoß für dich  ;D
Es gibt ja z.B. das Modul "MovedPages", dass 301-Fehlermeldungen mit Weiterleitungen bzw. 410-Meldungen bringt.

Da wäre also eventuell grundsätzlich die Frage, ob es nicht die Möglichkeit für ein Modul gäbe, in welchen man zu (z.B.) deutschen Version die aliase in anderen Sprachen eintragen kann und damit dann diese in jenen Sprachen "abfängt" und einfach den jweiligen Inhalt zur deutschen Version in den anderen Sprachen anzeigt.

Also sozusagen - wenn im AdvancedContent ein Bereich eingebaut ist, in welchen die "Alias"-aliase der anderen Sprachen gespeichert sind. Und beim Aufruf einer unbekannten alias wird vor dem Sprung auf die Fehlerseite einfach die Datenbank nach den "Alias"-aliasen abgefragt.

Oder denke ich da zu kompliziert?
NaN

Re: Mehrsprachigkeit

Post by NaN »

Grundsätzlich wäre das möglich.
Ähnlich funktioniert ja das MultiDomain Modul.
Man kann jeder Seite eine eigene Domain zuweisen.
Und dann wird auf die entsprechende Domain umgeleitet.

Aber wenn man auf eine andere Seite umleitet, dann leitet man eben auf eine andere Seite um. D.h. die neue Adresse steht dann auch in der Adressleiste. (also ein und dasselbe Alias für alle Sprachen) Wozu dann die ganze Prozedur? Nur damit der User eine weitere (von den bereits unendlich vielen) Möglichkeit hat, auf meine Seite zu gelangen?

Hm... ich glaube bei den Aliases wird man nicht um den ein oder anderen Hack herumkommen. Das heißt man müsste beim "Aufschlüsseln" der URL ansetzen (lib/classes/class.pageinfo.inc.php in der Funktion LoadPageInfoByContentAlias(): Diese Funktion, ein paar Zeilen in der Index.php und die Modulfunktion zum Generieren von Links - insbesondere bei Pretty URLs - halte ich übrigens für die Wurzel allen Übels was das URL Handling angeht. Mit ein paar Zeilen Code könnte man jede Seite nur unter einer einzigen URL erreichbar machen. Aber das und die damit einhergehenden Probleme hatte ich ja schon woanders mal erwähnt - man könnte nicht mehr alle möglichen Parameter in der URL mitschleifen und müsste dann wieder sehr viele Module anpassen :( Es wäre ja auch zu schön, wenn's mal einfach wäre... ::) )
TeXnik
Forum Members
Forum Members
Posts: 132
Joined: Thu Aug 07, 2008 12:45 pm

Re: Mehrsprachigkeit

Post by TeXnik »

Jeder Seite kann unter MLE ein eigenes Alias zugewiesen werden. Unter dem Reiter Optionen gibt es ein Eingabefeld für alias.
NaN

Re: Mehrsprachigkeit

Post by NaN »

Dass man jeder Seite ein eigenes Alias zuweisen kann, ist ja nichts Neues.
Aber es ist für alle Sprachen ein und dasselbe Alias.
D.h. das Alias "startseite" bleibt "startseite" auch wenn ich die Sprache Englisch ausgewählt habe.
Und das lässt sich leider nicht so ohne weiteres ändern.
Ich könnte "home" draus machen, aber dann gilt es wieder für alle Sprachen.
Auch für Russisch.
Man keiner Seite eben nur ein einziges Alias zuweisen, aber leider keines, in der jeweiligen Sprache.
Darum geht es hier.
Last edited by NaN on Tue Jul 06, 2010 12:56 am, edited 1 time in total.
Andiministrator

Re: Mehrsprachigkeit

Post by Andiministrator »

So, nun möchte ich hier auch mal meinen Senf mit dazu geben :D

Thema MLE:
Habe ich zwei Mal im Einsatz gehabt, aber letztenendes wegen ständigen Upgrade-Problemen und Inkompatibilität von Modulen wieder auf die Base-Version von CMSms umgestellt. Wie man eine Mehrsprachigkeit mit der Base von CMSms lösen kann, wurde ja schon desöfteren hier gezeigt. Wir verwenden einfach mehrere Seiten-Bäume, einen für jede Sprache. Dazu gibt es ein Sprachmenü, welches einfach auf die Startseite jeder Sprache verweist. Durch die URL (z.B. beispiel.de/en/findet-den-loeffel/) kann man dann auf einer Seite herausfinden, auf welcher Sprache man gerade ist und das in eine Smarty-Variable schreiben, die wiederum von Modulen wie dem Menü-Manager ausgewertet werden kann ...

Thema Babel:
Haben wir ebenfalls mehrfach im Einsatz und funktioniert auch soweit ganz gut. Aus meiner Sicht macht der Einsatz dieses Moduls aber nur Sinn, wenn man die Variante mit den identischen Seiten-Bäumen wählt, d.h. dass bei einer Sprachumschaltung die aktuelle Seite in der neuen Sprache angezeigt wird. Ansonsten ist man mit der Lösung von oben flexibler und resourcen-sparender.
Weiterhin habe ich teilweise Probleme mit den URLs, die durch Babel erzeugt werden (beim Einsatz von Pretty URLs), die unterscheiden sich desöfteren und sind somit ein Problem aus SEO-Sicht (Duplicate Content).

Thema Aliase:
Wie NaN bereits schreibt, sehe auch ich keine Möglichkeit, das Thema anzugehen ohne verschiedene Core-Files zu verändern. Deshalb denke ich, dass dieses Thema eher zusammen mit dem Entwickler-Team besprochen werden sollte. Eine Möglichkeit dazu wäre die GeekMoot im September in Amsterdam.
TeXnik
Forum Members
Forum Members
Posts: 132
Joined: Thu Aug 07, 2008 12:45 pm

Re: Mehrsprachigkeit

Post by TeXnik »

NaN wrote:
Dass man jeder Seite ein eigenes Alias zuweisen kann, ist ja nichts Neues.
Aber es ist für alle Sprachen ein und dasselbe Alias.
D.h. das Alias "startseite" bleibt "startseite" auch wenn ich die Sprache Englisch ausgewählt habe.
Und das lässt sich leider nicht so ohne weiteres ändern.
Ich könnte "home" draus machen, aber dann gilt es wieder für alle Sprachen.
Auch für Russisch.
Man keiner Seite eben nur ein einziges Alias zuweisen, aber leider keines, in der jeweiligen Sprache.
Darum geht es hier.
Ja ich hatte unrecht. Ich hatte die Funktion selbst noch nie genutzt und nur gesehen, daß sie für eine Seite in jeder Sprache verfügbar war. Ändere ich aber den alias in irgendeiner einer Sprache, so ändert er sich für alle anderen Sprachen auch.
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am

Re: Mehrsprachigkeit

Post by nicmare »

So, ich habe mir mal dieses babel modul installiert und komme soweit klar aber da gibts es laut Hilfe diese language strings. habe einen namens "Sprachwahl" angelegt und für beide Felder (deutsch und englisch) einen Wert eingegeben.
Diesen kann man dann wohl per {babel show="welcome text"} im Template (oder wo auch immer) benutzen. Aber bei mir kommt garnix. und mit {get_template_vars} erscheint auch nichts was mit babel zu tun hat. ich benutze CMSms 1.6.7. Wie geht das? auch die "altmodische" Variante mit "{if $page_lang == "de_DE"}… klappt nicht. $page_lang taucht ebenfalls nicht bei {get_template–vars} auf.
owr_bgld

Re: Mehrsprachigkeit

Post by owr_bgld »

normalerweise müsste das dann ja {babel show="Sprachwahl"} heißen.

Also du willst ja den Text des Feldes "Sprachwahl" in der jeweiligen Sprache anzeigen. Oder habe ich da falsch gedacht? Groß/kleinschreibung beachtet?
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am

Re: Mehrsprachigkeit

Post by nicmare »

ja richtig. das habe ich verwendet. hatte jetzt nur den string aus der hilfe kopiert für die erklärung hier.

mein template fängt übrigens so an:

Code: Select all

{process_pagedata}
{content block="Media" wysiwyg="false" assign="Media"}
{content assign="Column1"}
{content block="Inhalt rechts" assign="Column2"}
und dann versuche ich

Code: Select all

{babel show="Sprachwahl"}
aufzurufen aber nichts wird angezeigt. also die seite ganz normal aber an der stelle von dem babel tag erscheint nichts
Last edited by nicmare on Fri Jul 30, 2010 1:56 pm, edited 1 time in total.
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am

Re: Mehrsprachigkeit

Post by nicmare »

also wnen ich es mache wie hier, dann gehts. keine ahnugn wieso. habe jetzt einfach {babel action="assign"} vorm Template hinzugefügt
Last edited by nicmare on Fri Jul 30, 2010 2:11 pm, edited 1 time in total.
Post Reply

Return to “Module und Tags”