Frage zur Mehrspachigkeit

Hallo,

ich beschäftige mich gerade damit, eine Seite zweisprachig aufzuziehen (deutsch/englisch), die bisher nur in deutsch vorhanden ist. Dabei sollen alle Inhalte auch in Englisch präsent sein.

Bei den Artikeln gibt es ja die Möglichkeit, dass man einen Artikel als die Übersetzung eines anderen Artikel markieren kann, doch bei Rubriken finde ich keine Funktion dieser Art. Liegt das daran, dass es a) es gar nicht geht, b) ich zu doof zum finden bin oder c) das eine etwas komplizierte Lösung voraussetzt....

viele Grüße
Heiko

Hallo Heiko,

um die Sprache von Rubriken einstellen zu können, mußt Du diese Option unter Konfiguration/Sprachverwaltung/Mehrsprachigkeit aktivieren.
Der URL hesißt so: ecrire/config-multilang.php3

have a lot of fun,
klaus++

Heiko schrieb:

Hallo,

ich beschäftige mich gerade damit, eine Seite zweisprachig aufzuziehen (deutsch/englisch), die bisher nur in deutsch vorhanden ist. Dabei sollen alle Inhalte auch in Englisch präsent sein.

Bei den Artikeln gibt es ja die Möglichkeit, dass man einen Artikel als die Übersetzung eines anderen Artikel markieren kann, doch bei Rubriken finde ich keine Funktion dieser Art. Liegt das daran, dass es a) es gar nicht geht, b) ich zu doof zum finden bin oder c) das eine etwas komplizierte Lösung voraussetzt....

viele Grüße
Heiko
_______________________________________________
Spip-de@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-de

Am 10.11.2005 16:30 schrieb klaus++:

Hallo Heiko,

um die Sprache von Rubriken einstellen zu können, mußt Du diese Option
unter Konfiguration/Sprachverwaltung/Mehrsprachigkeit aktivieren.
Der URL hesißt so: ecrire/config-multilang.php3

have a lot of fun,
klaus++

Hallo Klaus,

ja das hab ich eingestellt. Ich kann auch Rubriken Sprachen zuordnen.
Was ich aber will, ist z.B. der deutschen Rubrik "Über uns" die
englsiche Rubrik "About us" zuweisen , so wie das bei den Artikeln geht
(Referenzartikel etc.). Auf der Webseite sollte quasi dann ein Link sein
"Englische Version" und das klappt z. Zt. nur mit den Artikeln. Da gibt
es den Filter {traduction}, um anderssprachige Versionen des Artikels
anzuzeigen. Für Rubriken find ich das nicht. Oder gibt es da einen
Workaround?

viele Grüße
Heiko
--
Heiko Jansen, Bochum, Germany
e.mail[1]: heiko.jansen@rub.de
e.mail[2]: heiko@schaustall.de
web: http://www.heiko-jansen.de
ENCRYPT YOUR E-MAILS! VERSCHLÜSSELT EURE MAILS!
PGP-Key auf Anfrage oder auf der Webseite

Hallo Heiko,

die Lösung für Deine Idee liegt in der Logik von Rubriken und Artikeln versteckt:
Rubriken sind nur Container, die Inhalte werden in Artikeln verwaltet. Das System zur Verfolgung des Stands der Übersetzungen bezieht sich auf Inhalte, also auf Artikel.

Wenn Du die inhaltliche Beziehung zwischen Rubriken, d.h. darstellen willst, führt der Weg dahin über die Analyse der Beziehungen zwischen den Artikeln der Rubriken. Du prüfst, ob eine Rubrik Übersetzungen enthält, deren ursprüngliche Version in der aktuellen Rubrik steht - und umgekehrt. Sollte dem so sein, zeigst Du nicht die in anderen Rubriken gefundenen Artikel an, sondern die Rubrik in der sie stehen.

Damit die Sache nicht unendlich kompliziert wird, trägst Du Sorge, dass die Rubriken, welche Originale und Übersetzungen enthalten, sich auf einer Ebene befinden. Am einfachsten ist es, wenn sie sich direkt in der obersten Ebene befinden (racine bzw. id_parent=0). Solltest Du vorhaben, Rubriken mit unterschiedlichen Sprachen fröhlich zu mischen und zu verschachteln, garantiere ich für nette Stunden beim Knacken der einen oder anderen Kopfnuss.

Sorry, den Code für die BOUCLES zu schreiben dauert mir jetzt etwas zu lange, u.U. komme ich später dazu. Vielleicht helfen meine Bemerkungen aber auch so. Wenn nicht, schreib' ruhig wieder.

klaus++

Heiko Jansen schrieb:

Am 10.11.2005 16:30 schrieb klaus++:

Hallo Heiko,

um die Sprache von Rubriken einstellen zu können, mußt Du diese Option unter Konfiguration/Sprachverwaltung/Mehrsprachigkeit aktivieren.
Der URL hesißt so: ecrire/config-multilang.php3

have a lot of fun,
klaus++

Hallo Klaus,

ja das hab ich eingestellt. Ich kann auch Rubriken Sprachen zuordnen.
Was ich aber will, ist z.B. der deutschen Rubrik "Über uns" die
englsiche Rubrik "About us" zuweisen , so wie das bei den Artikeln geht
(Referenzartikel etc.). Auf der Webseite sollte quasi dann ein Link sein
"Englische Version" und das klappt z. Zt. nur mit den Artikeln. Da gibt
es den Filter {traduction}, um anderssprachige Versionen des Artikels
anzuzeigen. Für Rubriken find ich das nicht. Oder gibt es da einen
Workaround?

viele Grüße
Heiko

klaus++ schrieb:

Hallo Heiko,

die Lösung für Deine Idee liegt in der Logik von Rubriken und Artikeln versteckt:
Rubriken sind nur Container, die Inhalte werden in Artikeln verwaltet. Das System zur Verfolgung des Stands der Übersetzungen bezieht sich auf Inhalte, also auf Artikel.

Wenn Du die inhaltliche Beziehung zwischen Rubriken, d.h. darstellen willst, führt der Weg dahin über die Analyse der Beziehungen zwischen den Artikeln der Rubriken. Du prüfst, ob eine Rubrik Übersetzungen enthält, deren ursprüngliche Version in der aktuellen Rubrik steht - und umgekehrt. Sollte dem so sein, zeigst Du nicht die in anderen Rubriken gefundenen Artikel an, sondern die Rubrik in der sie stehen.

Damit die Sache nicht unendlich kompliziert wird, trägst Du Sorge, dass die Rubriken, welche Originale und Übersetzungen enthalten, sich auf einer Ebene befinden. Am einfachsten ist es, wenn sie sich direkt in der obersten Ebene befinden (racine bzw. id_parent=0). Solltest Du vorhaben, Rubriken mit unterschiedlichen Sprachen fröhlich zu mischen und zu verschachteln, garantiere ich für nette Stunden beim Knacken der einen oder anderen Kopfnuss.

Sorry, den Code für die BOUCLES zu schreiben dauert mir jetzt etwas zu lange, u.U. komme ich später dazu. Vielleicht helfen meine Bemerkungen aber auch so. Wenn nicht, schreib' ruhig wieder.

klaus++

Hallo Klaus,

in die eine Richtung hat es geklappt, also von fremdsprachig nach deutsch, hier ein kurzes Beispiel:

<BOUCLE_lang2(ARTICLES) {origine_traduction} >
<BOUCLE_lang1(RUBRIQUES) {branche}>
<a href="#URL_RUBRIQUE">deutsch</a>
</BOUCLE_lang1>
</BOUCLE_lang2>

Für deutsche Rubriken, die einen Link zur fremdsprachigen Version enthalten sollen, wollte ich nun {origine_traduction} gegen {traduction} tauschen, aber dann wird nix angezeigt, aber ich finde meinen Denkfehler nicht....

viele Grüße
Heiko

Was wirklich überraschend einfach geht, ist, wenn man auf Stufe Artikel die Mehrsprachigkeit aktiviert, jeder Artikel hat dann eine Hauptsprache und beliebig viele Übersetzungen, die im Redaktionsmenü einfach verwaltet werden können (ab SPIP 172, sicher SPIP 1.82d).
Da lässt sich der Sprachwechsel für den Artikel sehr einfach bewerkstelligen, und wir letztendlich gesteuert durch &lang=xy.
(wichtig: in mes_options.php muss $forcer_lang=true gesetzt sein)

Ich werde noch etwas experimentieren - keine Ahnung, ob es möglich ist, dass die Artikel-Gruppen unter unterschiedlichen Sprach-Rubriken sein können...
Ev. macht das auch gar keinen Sinn, es ginge ja nur darum, damit die Rubrik auch die korrekte Sprache hat.

Was aber sicher geht, ist auf Rubrikebene mit <multi> zu arbeiten, z.B. für die Rubriktitel. Ansonsten kann man den Content ja in den Artikeln führen.
So ist eine mehrsprachige Site sehr einfach zu bewerkstelligen.

Patrick

Die Lösung, die ich verwenden will/wollte, scheint noch irgend einen Haken zu haben (v.a. wenn nicht alle üubersetzungen vorhanden sind).
Ich hab mehrere Sprachen, die Artikel sind in einer Gruppe zusammengefasst, so weit so gut.

Sobald eine Sprache im System verwendet wird, müssen offenbar alle Artikel in diese Sprache übersetzt werden, ansonsten kommt eine Leerseite {lang?} wirkt irgendwie nur, wenn die Sprache im ganzen System nicht verwendet wird.
Als Test hab ich in einem neuen Artikel deutsch auf *neue* Sprache holländisch übersetzt.
Von nun an,. zeigt der andere Artikel (de,en,it,es) eine leere Site, wenn lang=nl angegeben wird.
Vor der Spracheinführung von holländisch, resultierete lang=nl in der Sprache Deutsch, was man ja erwartet.

Wenn nicht automatisch auf die Defaultsprache gewechselt wird, wird die BOUCLE-Programmierung einiges komplexer....
Vielleicht gibt's ja noch einen Trick, den ich noch nicht kenne.

Gruss
Patrick

Hallo Patrick,

Diesen Code habe ich unter SPIP 1.82d getestet:
<B_sprache1>
  gewünschte Sprache gefunden!<br />
<BOUCLE_sprache1(ARTICLES){id_rubrique}{lang?}{0,5}>
  #TITRE <br />
</BOUCLE_sprache1>
  Das waren die Ergebnisse in der gewünschten Sprache
</B_sprache1>

  <B_sprache2>
      gewünschte Sprache nicht gefunden. Hier Artikel auf Deutsch:<br />
  <BOUCLE_sprache2(ARTICLES){id_rubrique}{lang=de}{0,5}>
    #TITRE <br />
  </BOUCLE_sprache2>
    Ende Sprache 2
  </B_sprache2>

<//B_sprache1>

Er verhält sich folgendermassen:
Ich wähle eine Rubrik, die portugiesische und deutsche Artikel enthält. Es gibt auch Artikel auf Französisch in anderen Rubriken.
lang=de - gefunden
lang=pt - gefunden
lang=fr - nicht gefunden (BOUCLE_sprache2 wird ausgeführt)
lang=xx (Sprache, die Redakteure für Artikel verwenden können) - nicht gefunden (BOUCLE_sprache2 wird ausgeführt)
lang=yy (public_sprachcode.php3 vorhanden) - nicht gefunden (BOUCLE_sprache2 wird ausgeführt)
lang=zz (andere Eingabe) - Hauptsprache der Website wird verwendet (bei mir Deutsch), SPIP ändert URL-Parameter nach lang=de und gibt aus "gefunden", da neuer Wert "de" des Parameters übergeben wird

Es macht übrigens keinen großen Unterschied, ob $forcer_lang=true; gesetzt ist. Wenn diese Konfigurationsvariable gesetzt ist, ändert SPIP den URL, das sonstige Verhalten bleibt gleich.

Um ein sinnvolles Verhalten Deiner Anwendung zu erzielen solltest Du folgende Situation herstellen:
1. Alle Sprachen, die ein Besucher auswählen kann, müssen mit mindestens einem Artikel vorhanden sein oder zumindest den Redakteuren bei der Sprachauswahl für Artikel zur Verfügung stehen.
2. Für den Fall, dass die gewünschte Sprache nicht vorhanden ist, z.B. weil die jeweilige Rubrik keine Artikel in der gewünschten Sprache enthält, muss ein alternatives Verhalten im letzten Teil der Schleife (vor //B_deineschleife) definiert werden.

Viel Erfolg,
klaus++

Patrick Ogay schrieb:

Die Lösung, die ich verwenden will/wollte, scheint noch irgend einen Haken zu haben (v.a. wenn nicht alle üubersetzungen vorhanden sind).
Ich hab mehrere Sprachen, die Artikel sind in einer Gruppe zusammengefasst, so weit so gut.

Sobald eine Sprache im System verwendet wird, müssen offenbar alle Artikel in diese Sprache übersetzt werden, ansonsten kommt eine Leerseite {lang?} wirkt irgendwie nur, wenn die Sprache im ganzen System nicht verwendet wird.
Als Test hab ich in einem neuen Artikel deutsch auf *neue* Sprache holländisch übersetzt.
Von nun an,. zeigt der andere Artikel (de,en,it,es) eine leere Site, wenn lang=nl angegeben wird.
Vor der Spracheinführung von holländisch, resultierete lang=nl in der Sprache Deutsch, was man ja erwartet.

Wenn nicht automatisch auf die Defaultsprache gewechselt wird, wird die BOUCLE-Programmierung einiges komplexer....
Vielleicht gibt's ja noch einen Trick, den ich noch nicht kenne.

Gruss
Patrick

_______________________________________________
Spip-de@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-de