Problem mit dem Sprachwechsel und Template-Zuweisung!

Gesperrt
uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Problem mit dem Sprachwechsel und Template-Zuweisung!

Beitrag von uups »

Ich arbeite z.Zt. an einem mehrsprachigen Projekt. Damit der Sprachwechsel "richtig" funktioniert habe ich pro Sprache je ein Layout (inkl. Template) erstellt mit dem jeweils entsprechenden Sprachwechsel.

Auf der deutschen Seite:
<? echo '<a href="front_content.php?'."idcat=$idcat&idart=$idart&changelang=4".'">english</a>'; ?>

Auf der englischen Seite:
<? echo '<a href="front_content.php?'."idcat=$idcat&idart=$idart&changelang=1".'">deutsch</a>'; ?>

Damit das funktioniert weise ich in beiden Sprachen die verschiedenen Templates zu.

Jetzt habe ich mit grossem Schrecken festgestellt, dass keine sep., sprachabhängige Zuweisung von Templates möglich ist. Wenn ich ich in der deutschen Version das Template setze wird das ebenfalls ich der englischen Version geändert. Ist das ein Bug?? (In der Version 4.4.2 hats nämlich funktioniert...)

Oder gibts eine einfachere Möglichkeit einen Sprachwechsel zu realisieren (natürlich ohne "Umweg" über die Startseite)


uups..!
Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Beitrag von Alex »

Hi uups,

echt gesagt: Keine Ahnung, früher habe ich den Sprachwechsel auch mal so gemacht wie Du. Da lief es noch ohne Probleme mit den unterschiedlichen Templates...

Irgendwann habe ich dann mal ein Sprachmodul geschrieben, was du einfach einbinden musst. Dieses erkennt die derzeitige Sprache und bietet die anderen als Flagge an... Diese wird nur angezeigt, wenn die anderssprachige Kategorie online geschaltet ist...


Code: Alles auswählen

OUTPUT: 
<?php 
//Sprachmodul - Version 2.1 
//für Contenido 4.4.x 
//Alexander Zimmerhofer - alexander(at)zimmerhofer.org 

//Konfiguration... 
//Diese Zeilen konfigurieren das Modul... 
//Aufbau $picture["Sprach-ID"] = "PFAD zur Flagge"; 
$picture["1"] = "upload/design/brd.gif"; 
$picture["3"] = "upload/design/gb.gif"; 


//AB HIER NICHTS MEHR ÄNDERN... 
$mydb = new DB_Contenido; 

$mydb ->query ("SELECT idlang, online FROM ".$cfg["tab"]["art_lang"]." WHERE idart=$idart ORDER BY idlang ASC"); 

while ($mydb -> next_record()) 
{ 
while(list($lang_id,$picture_pfad) = each($picture)) 
{ 
if (($lang != ($mydb->f("idlang"))) and (($mydb->f("idlang")) == $lang_id) and (($mydb->f("online")) == 1)) 
{ 
echo "<a href=".$sess->url("front_content.php?client=$client&changelang=".($mydb->f("idlang"))."&idart=$idart"); 
echo "><img src=".$picture_pfad." border='0'></a>&nbsp;"; 
} 
} 
reset($picture); 
} 
?> 


Viel Spaß damit

Alex
Zuletzt geändert von Alex am Sa 26. Jun 2004, 08:36, insgesamt 3-mal geändert.
Contenido 4.4.4 & 4.5.3-CVS
uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups »

Ja, in der Version 4.4.2 lief es prima!! Der Bug scheint nur in der aktuellen Version (4.4.4) vorhanden zu sein!

Ich werde deine Lösung ausprobieren. Allerdings wäre für mein Projekt die Lösung mit den Templates besser, da pro Sprache ein anderer Logotext erscheinen soll undTextlinks wie "nach oben" und "zurück" in jedem Sprachlayout vorhanden sind!

Wie löst du das?

Z.Zt. vergebe ich PRO Artikel das entsprechende Template, was aber nicht so elegant (und eher zeitaufwändig ist...)
Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Beitrag von Alex »

Hi uups,

das mit dem Logo ist auch kein Problem, mache ich nämlich auch :-).

Auch da steht in meinem layout ein Switch-Befehl, der die Variable $lang überprüft. Schau dir einfach das mit dem Sprachmodul an...

Ich mache es heute so, dass ich das Template nur noch bei der Kategorie festlegen... Es gibt nur noch ein Layout, aber mit unterschiedlichen Templates

Alex
Contenido 4.4.4 & 4.5.3-CVS
uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups »

Das Sprachmodul ist super! Aber leider nur für zwei Sprachen...

Hat du auch eine Lösung für DREI Sprachen? Bzw. welche Änderungen müssten gemacht werden? Hab's probiert, aber ich krieg's nicht so richtig hin...

Und wie siet der Switch-Befehl für die Sprachabfrage des Logos usw. aus?
Wäre das sowas:

[code]
<?
switch ($l)
{
case 1: $start = "Zurück zur Startseite"; // deutsch
$logo = "images/logo_d.gif";
$suche = "Suche";
$zurück = "zurück";
$oben = "nach oben";

break;
case 3: $start = "Page de départ"; // franzoesisch
$logo = "images/logo_f.gif";
$suche = "Recherche";
$zurück = "zurück"; // weiss ich noch nicht... :-(
$oben = "nach oben";

break;
case 4: $start = "Home"; // deutsch
$logo = "images/logo_e.gif";
$suche = "Search";
$zurück = "back";
$oben = "up";
break;
}
?>
[/code]
Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Beitrag von Alex »

Hi!

1.

Ich habe gerade ein erweitertes Modul veröffentlicht (http://www.contenido.de/forum/viewtopic.php?p=25564). Schau mal rein... Damit müsstest du nur oben unter Konfiguration einen neuen Pfad als Array eintragen, mehr brauchst du dann nicht mehr anzupassen...

2.

Der Code ist okay, denke ich... Du hast ihn im Layout drin? Und fügst dann die einzelnen Übersetzungen per echo ein? Ja müsste gehen... Allerdings muss es switch ($lang) statt $l heißen...

Viele Grüße

Alex
Contenido 4.4.4 & 4.5.3-CVS
uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups »

Danke für den Tipp! Der Switch-Befehl funktioniert problemlos. :D

Ich habe dein Modul integriert. Klappt ganz gut! :D

Einzig das mit der dritten Sprache will nicht funzen. Wie muss ich das Modul ergänzen? Wie du siehst, ist PHP nicht meine Stärke... :oops:

Die Sprachen haben folgende Nummern
1 deutsch
3 französisch
4 englich

1 + 3 funktioniert gut! Einfach die zweite bzw. dritte Flagge wird nicht angezeigt...

Wäre froh, wenn du mir das mit dem Array kurz posten könntest... :?

uups...!?
Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Beitrag von Alex »

Hi!

ich habe es zwar nicht ausprobiert, denke aber...

Code: Alles auswählen

$picture["4"] = "upload/design/xxx.gif";
 
müsste gehen... Die Zeile musst du nur oben einfügen...

Dabei meine ich es als Ergänzung von...
http://contenido.de/forum/viewtopic.php?t=4821

Das ist ja die neue Version des Skripts...

Funktioniert es dann?

Alex
Contenido 4.4.4 & 4.5.3-CVS
uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups »

Leider nein. Ich hatte es eben auch so eingetragen!

Es wird leider immer nur EINE Flagge angezeigt. Bei deutsch die französische und umgekehrt. Die englische Flagge fehlt...

Eine Idee?
Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Beitrag von Alex »

Mmh...

Der Artikel und die Kategorie ist online? Das wird nämlich kontrolliert, sonst wird die Flagge nicht angezeigt... Und der Pfad muss korrekt sein, kontrolliere das bitte auch.

Wenn alles so ist, muss ich mir morgen den Code nochmals vornehmen...

Ich habe ihn nur mit 2 Sprachen getestet...

Alex
Contenido 4.4.4 & 4.5.3-CVS
uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups »

Mensch bin ich doof! :oops: :roll:

Das war's...

Vlelen Dank!!!!


Gruss
Renato
Gesperrt