Zweisprachigkeit
Zweisprachigkeit
Hallo,
kann mir jemand schreiben wie der Webmaster die Webpräsenz
http://mohr.styleventure.de/
bezüglich der Zweisprachigkeit gelöst hat.
Es scheinen zwei Home Kategorien vorzuliegen de_home und en_home
Wie kriegt man das hin?
Vielen Dank
kann mir jemand schreiben wie der Webmaster die Webpräsenz
http://mohr.styleventure.de/
bezüglich der Zweisprachigkeit gelöst hat.
Es scheinen zwei Home Kategorien vorzuliegen de_home und en_home
Wie kriegt man das hin?
Vielen Dank
hallo
so wie es aussieht hat er die variante hier verwendet.
http://www.phpwcms.de/forum/viewtopic.php?t=3278
so wie es aussieht hat er die variante hier verwendet.
http://www.phpwcms.de/forum/viewtopic.php?t=3278
Mhhh, wie kommst du darauf, dass dieses Script verwendet wurde?
Für diese einfache Umschaltung braucht es kein externes Script.
In home (hier root) einen Artikel anlegen und weiterleiten nach index.php?de_home
Der Rest wird durch die direkte Umschaltung gemacht, du arbeitest logischerweise mit zwei Vorlagen.
DE:
-----------------
{NAV_LIST_UL:FP,1,,act_path,active}
EN:
-----------------
{NAV_LIST_UL:FP,2,,act_path,active}
Gruß Knut
Für diese einfache Umschaltung braucht es kein externes Script.
Code: Select all
root (root)
+ de_home (Home) (ID=1)
++ de_erste (Erste)
++ de_zweite (Zweite)
++ de_dritte (Dritte))
++ ........
+ en_home (Home) (ID=2)
++ en_first (First)
++ en_second (Second)
++ en_third (Third)
++ ........
Der Rest wird durch die direkte Umschaltung gemacht, du arbeitest logischerweise mit zwei Vorlagen.
DE:
-----------------
{NAV_LIST_UL:FP,1,,act_path,active}
EN:
-----------------
{NAV_LIST_UL:FP,2,,act_path,active}
Gruß Knut
Last edited by flip-flop on Fri 13. Jul 2007, 19:12, edited 2 times in total.
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
Danke Flip Flop ...
... aber wie bekomme ich es hin, dass en und de auf dem gleichen Level wie Root ist
Danke
Danke
O ha, verschrieben, ist an der Korrektur vorbeigelaufen.
Nun schau noch einmal hin.
Knut


Nun schau noch einmal hin.
Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
- marcus@localhorst
- Posts: 815
- Joined: Fri 28. May 2004, 11:31
- Location: localhorst
- Contact:
hallo,
falls es jemanden interessiert, ich hab hier ein kleines skript (was bestimmt sehr suboptimal ist, aber funktioniert!).
Ausgangssituation war, jemand englischsprachiges kommt über die suchmaschine auf die seite und wenn er auf englisch schalten will, dann landet er auf der startseite und muss erst wieder zum artikel finden. also habe ich für die wichtigen oberkategorien verknüpfungen erstellt.
teste es hier: http:__www.powertechnik.com/aid=3.phtml (auf englisch schalten)
bewerkstelligt habe ich es so:
datei frontend_init/language_switch.php
datei frontend_render/language_switch.php
{LANG_SWITCH} ins template schreiben, um die flaggen darzustellen (kann sein, das du die englandflagge der famfamfam icons in en.png umbennen musst, weil die mit gb.png ausgezeichnet ist)
hier noch das css für die flaggen:
Noch kurz, In der 1. Datei werden die Referenzen zu den Seiten festgelegt und das Cookie der aktuellen sprache gesetzt.
Hier müssen die ganzen Array Variablen angepasst werden!
In der 2. Datei wird das Replacementtag ersetzt und mit dem Link zur anderssprachigen korrospondierenden Strukturebene versehen.
Ich hoffe das ist nachvollziehbar und funktioniert im besten falle gleich
Vielleicht hab ich auch was vergessen - bin grad in eile
grüße
marcus
falls es jemanden interessiert, ich hab hier ein kleines skript (was bestimmt sehr suboptimal ist, aber funktioniert!).
Ausgangssituation war, jemand englischsprachiges kommt über die suchmaschine auf die seite und wenn er auf englisch schalten will, dann landet er auf der startseite und muss erst wieder zum artikel finden. also habe ich für die wichtigen oberkategorien verknüpfungen erstellt.
teste es hier: http:__www.powertechnik.com/aid=3.phtml (auf englisch schalten)
bewerkstelligt habe ich es so:
datei frontend_init/language_switch.php
Code: Select all
<?php
$lang[0]['lang'] = "de";
$lang[0]['id'] = "1";
$lang[0]['alias'] = "powertechnik"; //startseite deutsch
$lang[1]['lang'] = "en";
$lang[1]['id'] = "29";
$lang[1]['alias'] = "powertechnik_en"; //startseite englisch
// verknüpfung der IDS der korrospondierenden Strukturebenen
// um den language switch zu erleichtern
$lang[0]['link'] = array(
"1", //startseite
"4", //produkte
"13", //lautsprechersysteme
"15", //PA
"16", //EM
"18", //WF
"19", //G
"20", //spezial
"12" // Kontakt
);
$lang[1]['link'] = array(
"29", //startseite
"31", //produkte
"32", // lautsprechersysteme
"33", //PA
"34", //EM
"35", //WF
"36", //G
"37", //spezial
"53" // Kontakt
);
if(isset($LEVEL_ID[1]) && $LEVEL_ID[1] == $lang[1]['id']){
setcookie("setlang",$lang[1]['lang'],0,"/");
}else{
setcookie("setlang",$lang[0]['lang'],0,"/");
}
?>
Code: Select all
<?php
//print_r($LEVEL_ID[1]);
//print_r($GLOBALS);
if( ! (strpos($content["all"],'{LANG_SWITCH}')===false)) {
//in frontend_init werden die sprachen und dieverse übersetzungen definiert!
/*// -----------------------------------------------------------------------------
// suche die korrospondierende ID für die entsprechenden cat ID
# prüfen welche sprache / struktebene aktuell ist
1# die aktuelle cat_id im aktuellen lang array suchen und den key merken
2# wird kein definierter key gefunden, wird geprüft ob im LEVEL_ID ein Key forhanden ist, der definiert wurde,
also eine ebene höher gehen, dafür ist die funktion array_vergleich da.
3# sollte überhauptnix greifen, dann ebene 0 = startseite
*/
$link_arr_key = 0;
//echo $content["cat_id"];
function array_vergleich($a,$b) {
$keys = array_intersect($a,$b);
$key = array_search(end($keys),$b);
return $key;
}
foreach($lang as $key => $value){
//print_r(array_vergleich($LEVEL_ID,$value['link']));
$link_id = $content["cat_id"];
//echo $key."->";
#1
if (!array_search($link_id,$value['link'])=== false){
$link_arr_key = array_search($link_id,$value['link']);
//echo "definiert!";
break;
#2
}elseif(array_vergleich($LEVEL_ID,$value['link'])){
//$link_arr_key = (array_search(end($LEVEL_ID),$value['link']));
$link_arr_key = array_vergleich($LEVEL_ID,$value['link']);
break;
//echo "ebene hoch definiert!";
#3
}else{
//echo "nix - default";
$link_arr_key = 0;
}
}
// -----------------------------------------------------------------------------
$lang_switch = "";
foreach($lang as $key => $value){
if(isset($LEVEL_ID[1]) && $LEVEL_ID[1] == $value['id']){
$lang_switch .= '<img src="img/famfamfam/flag_icons/png/'.$value['lang'].'.png" alt="'.$value['lang'].'" class="active_lang" />';
}else{
$lang_switch .= '<a href="index.php?id='.$value['link'][$link_arr_key].',0,0,1,0,0">';
$lang_switch .= '<img src="img/famfamfam/flag_icons/png/'.$value['lang'].'.png" alt="'.$value['lang'].'" class="inactive_lang" />';
$lang_switch .= '</a>';
}
}
$lang_switch = '<div class="lang_switch">'.$lang_switch.'</div>';
$content["all"] = str_replace('{LANG_SWITCH}', $lang_switch, $content["all"]);
}
?>
hier noch das css für die flaggen:
Code: Select all
.lang_switch img {
border:0 none transparent;
/* border:1px solid red; */
margin-left:5px;
width:16px;
height:11px;
}
.lang_switch img.active_lang {
filter:alpha(opacity=50);
-moz-opacity:0.5;
opacity: 0.5;
}
.lang_switch {
text-align:right;
}
Hier müssen die ganzen Array Variablen angepasst werden!
In der 2. Datei wird das Replacementtag ersetzt und mit dem Link zur anderssprachigen korrospondierenden Strukturebene versehen.
Ich hoffe das ist nachvollziehbar und funktioniert im besten falle gleich

Vielleicht hab ich auch was vergessen - bin grad in eile

grüße
marcus
wenn marcus nich mal wieder mitm php knüller reingegrätscht hätte, würd ich getz erst ma qoten:
greetz
PS: und getz muss ich erst ma checken, ob ich marcus' post raffe...
wie kommt man nur auf sone ideen bzw. kriegt dat dann auch noch hin in php
PS#2: endlich sommer (wird muckelig warm inne bude) --> schönes WE an ALLEEEEEEE!
respekt, klasse, sofort merken....claus wrote:"... sprach: es gibt kein anderes root neben mir..."
Odr

greetz
PS: und getz muss ich erst ma checken, ob ich marcus' post raffe...

wie kommt man nur auf sone ideen bzw. kriegt dat dann auch noch hin in php


PS#2: endlich sommer (wird muckelig warm inne bude) --> schönes WE an ALLEEEEEEE!
- marcus@localhorst
- Posts: 815
- Joined: Fri 28. May 2004, 11:31
- Location: localhorst
- Contact:
Hallo und DANKE an alle.
Habe mit dem Skript von Oliver
probiert die zweisprachigkeit hinzubekommen - scheint zu funktionieren aber:
Wie schaffe ich es, dass nur die Navigatiion der jeweiligen Sprache sichtbar ist???
DANKE
Habe mit dem Skript von Oliver
Code: Select all
[PHP]
if(!$GLOBALS['aktion'][0]) {
switch( strtolower( substr( $_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2 ) ) ) {
case 'de': header('Location: '.$GLOBALS['phpwcms']['site'].$GLOBALS['phpwcms']['root'].'index.php?de');
exit();
break;
default: header('Location: '.$GLOBALS['phpwcms']['site'].$GLOBALS['phpwcms']['root'].'index.php?en');
exit();
}
}
[/PHP]
Wie schaffe ich es, dass nur die Navigatiion der jeweiligen Sprache sichtbar ist???
DANKE
Wie was Zweisprachigkeit hinbekommen?
Du brauchst kein Skript dazu. So etwas kommt u.U. später wenn spezielle Anforderungen erfüllt werden sollen.
Fange doch erst einmal einfach an, hier die Lösung auf dem Silbertablett: http://www.phpwcms.de/forum/viewtopic.php?p=89231#89231
Du brauchst logischerweise für jede Sprache eine eigene Vorlage die dann an die entsprechende Kategorie gebunden wird.
Knut
Du brauchst kein Skript dazu. So etwas kommt u.U. später wenn spezielle Anforderungen erfüllt werden sollen.
Fange doch erst einmal einfach an, hier die Lösung auf dem Silbertablett: http://www.phpwcms.de/forum/viewtopic.php?p=89231#89231
Die Antwort steht im obigen post.Wie schaffe ich es, dass nur die Navigatiion der jeweiligen Sprache sichtbar ist???
Du brauchst logischerweise für jede Sprache eine eigene Vorlage die dann an die entsprechende Kategorie gebunden wird.
Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )