Mehrsprachig Website

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Mehrsprachig Website

Post by cmb » Thu Oct 09, 2014 12:08 pm

Ralf H. wrote:Also anderer Vorschlag: 2. content.htm (z.B. englische) sollte dann evtl. auf gleiche Ebene wie die Hauptsprache kommen, aber z.B. heißen:
content_en.htm
Wo die content.htm liegt und wie sie heißt, würde bzgl. der relativen URLs nichts ändern. Diese beziehen sich auf die index.php, die ursprünglich aufgerufen wurde. Was hinter den Kulissen passiert, weiß der Browser ja nicht, und es ist dieser, der die Bilder abruft. Man könnte nun dem Browser mitteilen, dass er eine andere Base-URL nehmen soll, aber ich gehe davon aus, dass dann überall nachgebessert werden müsste (Core + Plugins).
Ralf H. wrote:Die .htaccess scheint man zusätzlich nicht zu brauchen, da das selbe drin steht?!
Stimmt, die .htaccess für die Content-Ordner der Zweitsprachen ist mittlerweile eigentlich überflüssig. Vielleicht sollten wir die aus dem 2lang/ Ordner entfernen.
Christoph M. Becker – Plugins for CMSimple_XH

Ralf H.
Posts: 495
Joined: Sun Feb 16, 2014 1:45 pm
Location: Münsterland
Contact:

Re: Mehrsprachig Website

Post by Ralf H. » Thu Oct 09, 2014 12:27 pm

cmb wrote:
Ralf H. wrote:Also anderer Vorschlag: 2. content.htm (z.B. englische) sollte dann evtl. auf gleiche Ebene wie die Hauptsprache kommen, aber z.B. heißen:
content_en.htm
Wo die content.htm liegt und wie sie heißt, würde bzgl. der relativen URLs nichts ändern.
Verstehe ich nicht.
In der englischen content.htm sollte ich doch wegen unterschiedlicher Verzeichnisebenen die ./userfiles/ nach ../userfiles/ ändern.

Das sollte dann doch entfallen können, wenn content.htm und content_en.htm auf der selben Verzeichnisebene sind.

lg,
Ralf
Badminton Individual-/Gruppentraining im Münsterland:
http://www.badminton-tips.de (deutsch)

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Mehrsprachig Website

Post by cmb » Thu Oct 09, 2014 12:38 pm

Ralf H. wrote:In der englischen content.htm sollte ich doch wegen unterschiedlicher Verzeichnisebenen die ./userfiles/ nach ../userfiles/ ändern.
Ja, das ist richtig.
Ralf H. wrote:Das sollte dann doch entfallen können, wenn content.htm und content_en.htm auf der selben Verzeichnisebene sind.
Die dt. Site ruft man über http://example.com/index.php auf, die engl. über http://example.com/en/index.php (das index.php kann man weglassen, weil der Server das ggf. automatisch ergänzt). Für den Browser liegt also die engl. Website eine Verzeichnisebene unter der deutschen. Wo content.htm liegt, davon weiß der Browser nichts.
Christoph M. Becker – Plugins for CMSimple_XH

Ralf H.
Posts: 495
Joined: Sun Feb 16, 2014 1:45 pm
Location: Münsterland
Contact:

Re: Mehrsprachig Website

Post by Ralf H. » Thu Oct 09, 2014 7:39 pm

Ich muss gestehen, dass sich eine 2. Sprache wegen dieser unterschiedlichen Verzeichnisstrukturen extrem schwierig gestaltet.
Ich habe es jetzt durch hin und her probieren geschafft, dass zumindest das Template in beiden Sprachen richtig angezeigt wird. Da musste ich bei dem Ferrari-Template (im Gegensatz zu anderen Templates) tricksen, und weis noch nicht warum.

Nun kommen aber Probleme mit Plugins auf. Comments z.B. geht nicht mit der Methode, wie sie in der Hilfe für 2. Sprache erklärt ist.
8. Zweitsprachen und Subsites

Comments_XH speichert die Daten der Kommentare im content Ordner der aktuellen Seite. Bei Zweitsprachen und Subsites ist das der content Ordner im entsprechenden Verzeichnis, z. B. der Ordner:

./fr/content/comments/

für die Sprache "fr" (Französisch).

Sie müssen also das Verzeichnis "comments/" aus dem Verzeichnis "content/" des Downloads mit all seinen Unterverzeichnissen und Dateien in das Verzeichnis "content/" der Zweitsprache oder Subsite hochladen und allen Verzeichnissen Schreibrechte geben (chmod 777).
Dieses Content-Verzeichnis gibt es doch gar nicht im en-Ordner laut eurer Beschreibung.

lg,
Ralf
Badminton Individual-/Gruppentraining im Münsterland:
http://www.badminton-tips.de (deutsch)

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Mehrsprachig Website

Post by cmb » Thu Oct 09, 2014 7:58 pm

Ralf H. wrote:Ich habe es jetzt durch hin und her probieren geschafft, dass zumindest das Template in beiden Sprachen richtig angezeigt wird. Da musste ich bei dem Ferrari-Template (im Gegensatz zu anderen Templates) tricksen, und weis noch nicht warum.
Das liegt daran, dass im Template einige Pfade hart kodiert sind. Z.B. in Zeile 20:

Code: Select all

<?php echo tag('img src="./templates/ferrariclub/images/head.jpg" alt="Home"');?>
Das kann man wie folgt umschreiben, so dass es dann in Haupt- und Zweitsprachen funktioniert:

Code: Select all

<?php echo tag('img src="' . $pth['folder']['base'] . '/templates/ferrariclub/images/head.jpg" alt="Home"');?>
$pth['folder']['base'] ist entweder "./" (für die Hauptsprache) oder "../" (für Zweitsprachen).

In diesem Fall geht es aber noch eleganter:

Code: Select all

<?php echo tag('img src="' . $pth['folder']['templateimages'] . 'head.jpg" alt="Home"');?>
Das alt Attribut solltest Du vielleicht besser internationalisieren:

Code: Select all

<?php echo tag('img src="' . $pth['folder']['templateimages'] . 'head.jpg" alt="' . $tx['locator']['home'] . '"');?>
Ralf H. wrote:Nun kommen aber Probleme mit Plugins auf. Comments z.B. geht nicht mit der Methode, wie sie in der Hilfe für 2. Sprache erklärt ist.
Das liegt zunächst einmal daran, dass Comments für CMSimple 4 gemacht ist, und bei CMSimple 4 noch die alte Verzeichnisstruktur für Zweitsprachen gilt (da wurde content.htm im Zweitsprachenordner gespeichert). Probier einfach mal den Ordner comments/ aus dem Download nach content/en/ hoch zu laden. Dann sollte es eigentlich funktionieren, falls sich Comments an die uralte Konvention hält $pth['folder']['content'] zu verwenden statt den Pfad hart zu kodieren.
Christoph M. Becker – Plugins for CMSimple_XH

Ralf H.
Posts: 495
Joined: Sun Feb 16, 2014 1:45 pm
Location: Münsterland
Contact:

Re: Mehrsprachig Website

Post by Ralf H. » Thu Oct 09, 2014 10:58 pm

Danke Christoph,

werde mich mit beiden Themen morgen beschäftigen.

lg,
Ralf
Badminton Individual-/Gruppentraining im Münsterland:
http://www.badminton-tips.de (deutsch)

Ralf H.
Posts: 495
Joined: Sun Feb 16, 2014 1:45 pm
Location: Münsterland
Contact:

Re: Mehrsprachig Website

Post by Ralf H. » Fri Oct 10, 2014 9:22 am

cmb wrote:...
Das kann man wie folgt umschreiben, so dass es dann in Haupt- und Zweitsprachen funktioniert:

Code: Select all

<?php echo tag('img src="' . $pth['folder']['base'] . '/templates/ferrariclub/images/head.jpg" alt="Home"');?>
$pth['folder']['base'] ist entweder "./" (für die Hauptsprache) oder "../" (für Zweitsprachen).

In diesem Fall geht es aber noch eleganter:

Code: Select all

<?php echo tag('img src="' . $pth['folder']['templateimages'] . 'head.jpg" alt="Home"');?>
Das alt Attribut solltest Du vielleicht besser internationalisieren:

Code: Select all

<?php echo tag('img src="' . $pth['folder']['templateimages'] . 'head.jpg" alt="' . $tx['locator']['home'] . '"');?>
Gehen alle 3 Methoden.
Wenn ich dich richtig verstehe, ist Methode 3 die beste. Also nehme ich die. ;)

Muss hier nicht auch noch was geändert werden?

Code: Select all

<!--[if lt IE 9]>
	<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
<![endif]-->
<!--[if IE 7]>
	<link rel="stylesheet" href="./templates/responsivehtml/IE7.css">
<![endif]-->
lg,
Ralf
Badminton Individual-/Gruppentraining im Münsterland:
http://www.badminton-tips.de (deutsch)

Ralf H.
Posts: 495
Joined: Sun Feb 16, 2014 1:45 pm
Location: Münsterland
Contact:

Re: Mehrsprachig Website

Post by Ralf H. » Fri Oct 10, 2014 9:34 am

cmb wrote:
Ralf H. wrote:Nun kommen aber Probleme mit Plugins auf. Comments z.B. geht nicht mit der Methode, wie sie in der Hilfe für 2. Sprache erklärt ist.
Das liegt zunächst einmal daran, dass Comments für CMSimple 4 gemacht ist, und bei CMSimple 4 noch die alte Verzeichnisstruktur für Zweitsprachen gilt (da wurde content.htm im Zweitsprachenordner gespeichert). Probier einfach mal den Ordner comments/ aus dem Download nach content/en/ hoch zu laden. Dann sollte es eigentlich funktionieren, falls sich Comments an die uralte Konvention hält $pth['folder']['content'] zu verwenden statt den Pfad hart zu kodieren.
Das muss meiner Meinung nach anders gelöst werden, da scheinbar nur 1ne config.php für beide Sprachen angepasst wird.
Wenn die für en dann passt, dann stimmt sie für de nicht mehr?!

Es sollen die selben Kommentare auf der deutschen und englischen Seite angezeigt werden, also kann es doch eigentlich auch nur 1nen Ordner mit den gespeicherten Kommentaren geben?!

lg,
Ralf
Badminton Individual-/Gruppentraining im Münsterland:
http://www.badminton-tips.de (deutsch)

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Mehrsprachig Website

Post by cmb » Fri Oct 10, 2014 10:57 am

Ralf H. wrote:Wenn ich dich richtig verstehe, ist Methode 3 die beste.
Ja.
Ralf H. wrote:Muss hier nicht auch noch was geändert werden?
Bei dem Link-Element muss ebenfalls wieder $pth['folder']['base'] statt des Punkts eingesetzt werden, oder auch:

Code: Select all

<link rel="stylesheet" href="<?php echo $pth['folder']['template']?>IE7.css">
Ralf H. wrote:Das muss meiner Meinung nach anders gelöst werden, da scheinbar nur 1ne config.php für beide Sprachen angepasst wird.
Wenn die für en dann passt, dann stimmt sie für de nicht mehr?!
Das kommt darauf an, wie die Option content_path behandelt wird. Bei Comments 3.7 scheint sie relativ zum Installationsverzeichnis gedacht zu sein. In plugins/comments/index.php Zeile 103ff findet man:

Code: Select all

    if($co_author_folder)
    {
        $content_path=$pth['folder']['base'] . $co_author_folder . $plugin_cf['comments']['content_path'];
    }
    else
    {
        $content_path='./' . $plugin_cf['comments']['content_path'];
    }
Im Zweiten Fall (dem für Dich relevanten) ist ./ allerdings hart kodiert, so dass sich content_path dann auf das jeweilige Sprachverzeichnis bezieht. Die selbe Inkonsistenz findet sich auch in einigen anderen Funktionen (offensichtlich Copy&Paste programmiert). Vermutlich klappt es, wenn man "./" überall durch $pth['folder']['base'] ersetzt. Einfacher wäre es natürlich, wenn man das globale $content_path in Zeile 39 anpassen könnte; $content_path ist ja schließlich in all diesen Funktionen als global "deklariert". Aber das nutzt eben nichts, weil $content_path in den Funktionen wieder neu berechnet wird. Scheint so, als habe der Programmierer die Übersicht verloren. Vielleicht wurde die Neuberechnung in den Funktionen aber auch nötig, weil das globale $content_path ebenfalls von einem anderen Plugin gesetzt wurde und dann alles durcheinander kam. Die bessere Lösung wäre es dann aber gewesen einen eindeutigeren Variablennamen zu verwenden (z.B. $comments_content_path).
Christoph M. Becker – Plugins for CMSimple_XH

Ralf H.
Posts: 495
Joined: Sun Feb 16, 2014 1:45 pm
Location: Münsterland
Contact:

Re: Mehrsprachig Website

Post by Ralf H. » Fri Oct 10, 2014 3:22 pm

cmb wrote:Bei dem Link-Element muss ebenfalls wieder $pth['folder']['base'] statt des Punkts eingesetzt werden, oder auch:

Code: Select all

<link rel="stylesheet" href="<?php echo $pth['folder']['template']?>IE7.css">
Erledigt.
cmb wrote:Das kommt darauf an, wie die Option content_path behandelt wird. Bei Comments 3.7 scheint sie relativ zum Installationsverzeichnis gedacht zu sein. In plugins/comments/index.php Zeile 103ff findet man:

Code: Select all

    if($co_author_folder)
    {
        $content_path=$pth['folder']['base'] . $co_author_folder . $plugin_cf['comments']['content_path'];
    }
    else
    {
        $content_path='./' . $plugin_cf['comments']['content_path'];
    } 
Habe jetzt alle else-Verzeichnisse gleich den if-Verzeichnissen gesetzt.
Die Kommentare werden jetzt auf deutscher/englischer Seite angezeigt und neue können auch dort erstellt werden.
Aus Admin-Menü bearbeiten geht nur aus deutscher Seite, aber das stört nicht.

Ich werde sofort das Plugin ändern, sobald ein ähnlich komfortables für cmsimple_xh verfügbar ist. Comments ist echt gut, aber eben nicht für xh gemacht.

lg,
Ralf
Badminton Individual-/Gruppentraining im Münsterland:
http://www.badminton-tips.de (deutsch)

Post Reply