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