Mehrsprachigkeitsproblem

Having trouble installing serendipity?
Post Reply
mkengel
Regular
Posts: 5
Joined: Mon Dec 31, 2007 3:58 pm

Mehrsprachigkeitsproblem

Post by mkengel »

Auch ich habe Probleme mit dem Anzeigen zweier Sprachen in einem Blog - ich habe zwar untenstehende Nachricht gefunden, verstehe aber nicht, wo ich was aendern muss.
Bitte um Nachricht, um welche Dateien es sich handelt und in welchem Unterdirektory die sich befinden.
Vielen Dank
Michael

----
Also eine komplette Umschaltung der Überschriften zwischen 2 Sprachen funktioniert, was allerdings die multilingualen Einträge angeht, sieht es schlecht aus.
Ich habe den WYSIWYG-Editor deaktiviert, Sonderzeichen eingefügt und in der internen Vorschau werden diese auch korrekt angezeigt.
Wenn ich den Beitrag allerdings speichere und dann im Blog anschaue, sind wieder nur ?? zu sehen.
Allerdings sind schon in der Datenbank eben diese ??? angekommen, auch wenn ich manuell in den jeweiligen Eintrag in der DB die Sonderzeichen einfüge und speichere, sind sie sofort wieder zerstört.
Was mach ich nur falsch?
In PHPMyAdmin steht bei Kollation der einzelnen Tabellen der DB ein wildes Gemisch aus "utf8_general_ci" "utf8_unicode_ci" und "latin1_swedisch_ci" an! Sollte dort nicht eigentlich nur "utf8_unicode_ci" stehen?
Ich hab dummerweise keinen Plan davon, wie ich das wieder richtig biege. Kann ich das in jeder Tabelle per Hand ändern oder geht das irgendwie automatisch zu machen?

UPDATE:
hab manuell die Kollation für "entries" "entrycat" und "entryproperties" komplett auf "utf8_unicode_ci" umgestellt und einen neuen Beitrag mit Sonderzeichen angelegt
UND ES GEHT.
AUCH MIT DEM WYSIWYG-Editor !
designor
Regular
Posts: 14
Joined: Sun Dec 09, 2007 4:58 pm
Contact:

multilingual mehrsprachig

Post by designor »

Nach einer PM mit der Bitte um genauere Erklärung hier mein Versuch.

Also eins vorweg: Ich habe vor ca. 2 Jahren mit einer deutsch-sorbischen Website begonnen, anfangs statisches HTML, dann dynamisch per PHP mit selbst geschriebenen Skripten. Da die Pflege der eigenen Skripte aber zu aufwenig wurde, bin ich dann vor 6 Monaten umgestiegen, also selbst noch Anfänger im Umgang mit S9Y.

Vor ca. 4 Wochen habe ich dann wieder die Idee der Zwei- bzw. Mehrsprachigkeit aufgegriffen und versucht, diese in S9Y umzusetzen. Dabei bin ich auf mehrere Problemchen und Schönheitsfehler gestoßen, die mit Hilfe von Garvin Hicking gelöst werden konnten.

Vielen Dank an dieser Stelle für die wirklich schnelle Unterstützung!!

Hier nun meine Erfahrungen zum Thema Mehrsprachigkeit:

Als erstes benötigt man einmal das Ereignis-Plugin "Multilinguale Einträge" und die Seitenleisten-Plugins "Sprachauswahl" und "Sprachabhängiger HTML Nugget".
Das Ereignis-Plugin stellt die Möglichkeit bereit, jeden Beitrag in mehreren Sprachen zu verfassen und diese über das Frontend im einzelnen Beitrag umzuschalten. Man kann also das Blog z.B. in Deutsch lesen, einen einzelnen Multilingual-Beitrag aber auf Englisch umschalten, ohne daß das Blog komplett in Englisch erscheint.
Das Plugin "Sprachauswahl" stellt die Möglichkeit bereit, das Blog komplett auf eine andere Sprache einzustellen, es erscheinen dann die Infos unter den Beiträgen, Datum etc. und die Administrator-Oberfläche in der jeweiligen Sprache. Welche Begriffe alles übersetzt sind, hängt von der zuständigen Sprachdatei ab, zu finden im Ordner "lang". Dort gibt es einen Ordner "UTF-8", in dem liegen die Sprachdateien für Blogs mit der Zeichensatz-Auswahl "UTF-8" arbeiten ("konfiguration/generelle einstellungen").
Das Plugin "Sprachabhängiger HTML Nugget" blendet je nach gewählter Sprache des Blogs in der Seitenleiste die Inhalte ein, die im "Nugget" stehen. Ein Nugget für "Deutsch" enthält vielleicht ein Bild, während einer für "Englisch" eine Liste an derselben Stelle ausgibt.

Wenn euch die Reihenfolge der Sprachen nicht gefällt, wie sie in der Auswahlliste erscheinen, hilft "serendipity_config.inc.php" weiter:
ab ca. Zeile 107 sollte folgendes erscheinen bei der Reihenfolge "Deutsch - Englisch - Dänisch"

Code: Select all

/* Availiable languages */
$serendipity['languages'] = array('de' => 'Deutsch',
								  'en' => 'English',
                                  'da' => 'Danish',
....
hier könnt ihr die Reihenfolge der Sprachen ändern, indem ihr sie in den Zeilen verschiebt, also z.B. für "Dänisch - Deutsch - Englisch" einfach ändern in:

Code: Select all

/* Availiable languages */
$serendipity['languages'] = array('da' => 'Danish',
								  'de' => 'Deutsch',
								  'en' => 'English',
....

Mit den genannten drei Plugins und der eventuellen Anpassung der "serendipity_config.inc.php" sollte jetzt schon mal ein Blog mit mehrsprachiger Oberfläche und Einträgen laufen.

Bleibt als nächstes das Ärgernis, daß die Überschriften vieler Seitenleisten-Plugins im Backend von S9Y vergeben werden und somit immer nur einen Namen tragen, egal in welcher Sprache:
"Blog abonnieren" z.B. oder "Kategorien" oder "Umfragen". Einige dieser Überschriften lassen sich direkt in der Sprachdatei anpassen, andere wieder nicht.
Die Lösung für dieses Problem kam von Garvin: http://board.s9y.org/viewtopic.php?p=67180#67180

Ich trage also im Backend statt des gewünschten Namens z. B. ein --> FRONTENDNAME_FAQ und erzeuge in allen! vom Blog benutzten Sprachdateien folgende Zeile:

Code: Select all

@define('FRONTENDNAME_FAQ','hier kommt die gewünschte Überschrift hin');
dann wird in der "sidebar.tpl" jedes! verwendeten Templates folgendes:

Code: Select all

{if $item.title != ""}<h3 class="serendipitySideBarTitle {$item.class}">{$item.title}</h3>{/if} 
in folgendes

Code: Select all

{if $item.title != ""}<h3 class="serendipitySideBarTitle {$item.class}">{$item.title|@constant}</h3>{/if} 
Abschließend wird eine vorhandene "config.inc.php" im Ordner jedes! verwendeten Templates angelegt oder angepaßt, folgende Zeile muß drin vorkommen:

Code: Select all

$serendipity['smarty']->security = false; 
So, wer also ein Blog in 10 Sprachen und mit 15 verschiedenen Templates anbieten möchte, der hat jetzt richtig Arbeit :-)

Wer z. B. den Subtitel des Blogs auch je nach Sprache ändern möchte, muß in der "index.tpl" seines Templates folgendes ändern:

Code: Select all

<div id="serendipity_banner"><a id="topofpage"></a>
    <h1><a class="homelink1" href="{$serendipityBaseURL}">{$head_title|@default:$blogTitle|truncate:80:" ..."}</a></h1>
    <h2><a class="homelink2" href="{$serendipityBaseURL}">{$head_subtitle|@default:$blogDescription}</a></h2>
</div>
in

Code: Select all

<div id="serendipity_banner"><a id="topofpage"></a>
    <h1><a class="homelink1" href="{$serendipityBaseURL}">{$head_title|@default:$blogTitle|truncate:80:" ..."}</a></h1>
    <h2><a class="homelink2" href="{$serendipityBaseURL}">{$blogDescription|@constant}</a></h2>
</div>

dann noch im Backend unter "konfiguration/generelle einstellungen" in das Feld "Blog-Beschreibung" HEAD_SUBTITLE eintragen
und in den Sprachdateien jeweils wieder diese Zeile einsetzen

Code: Select all

@define('HEAD_SUBTITLE','die gewünschte Beschreibung');

Im nächsten Posting etwas mehr über meine Version, die Datumsanzeige in Sprachen zu übersetzen, die der Server nicht bereitstellt.

Torsten
Post Reply