[Erledigt] horiz. Menü in anderer Sprache

Begonnen von moeller, 15 Oktober 2008, 18:02:06

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

moeller

Hallo!
Ich benutzte das Theme mx-mysticjade.
Meine Menüpunkte im oberen, horiz. Menü linken zu internen Seiten, z.B.: 2 => array('title' => SOLCENTER, 'link' => 'modules.php?name=Content&pa=showpage&pid=1'),
Was muss ich machen, um beim wechseln der Sprache auch das obere Menü in einer übersetzten Version darzustellen und den übersetzten Seiten zu linken?

Grüsse
moeller
Elektronischer Gruss aus dk
Willi

bajazzo

Hi,
Namenskonstanten in Language files reinschreiben. Siehe meine Seite, ist genauso aufgebaut.
Egal welche Theme, sobald Sprachwechel im Spiel ist, kommst um den Abgleich von Language Files nicht drum herum.
Schöne Grüße aus Berlin
Genie ist die grenzenlose Bereitschaft, sich Mühe zu geben.

moeller

Okay, so wie auf deiner Seite hätte ich das auch gerne.
Was muss ich denn in die Sprach files schreiben? Kannst du mir mal ein Beispiel geben? Ich bin total ahnungslos.
Und die links, wo kommen die denn hin?
Und die settings.php, was steht dann da drin?

Gruesse aus dk
moeller
Elektronischer Gruss aus dk
Willi

bajazzo

ich kenn zwar nicht deine Theme, aber das Prinzip ist einfach.

Die Links werden z.B. in settings definiert in form:

$dein_link = "<a href=\"modules.php?name=Team\" title=\""._ABOUTUS2."\">"._ABOUTUS."</a>";

oder so ähnlich. Die _ABOUTUS und _ABOUTUS2 werden jeweils aus der languages/german oder /english oder so abgerufen.
Nicht in die Modul lang sondern in haupt lang dateien.

Dürfte auch schon alles sein. :=)
Genie ist die grenzenlose Bereitschaft, sich Mühe zu geben.

moeller

Das Theme heisst mx-mysticjade.
Mein Menü sieht anders aus als in deinem Beispiel, da ist das Problem.
Mein Menü:

$themesetting['headnav'] = array(
    1 => array('title' => _HOME,      'link' => './'),
    2 => array('title' => SOLCENTER, 'link' => 'modules.php?name=Content&pa=showpage&pid=1'),
    3 => array('title' => GOLFSIMULATOR,   'link' => 'modules.php?name=Content&pa=showpage&pid=2'),
    4 => array('title' => FITNESS, 'link' => 'modules.php?name=Content&pa=showpage&pid=3'),
    5 => array('title' => BILLEDER, 'link' => 'modules.php?name=Content&pa=showpage&pid=4'),
    6 => array('title' => OnlineBooking, 'link' => 'http://www.h-hallen.dk'),
);

Da brauchte ich ein Beispiel für.
Elektronischer Gruss aus dk
Willi

bajazzo

ist doch das selbe in grün  ;)

Wenn du Namenskonstanten in die Language Files reinschreibst, dann sollte das schon funzen.

Also, gibt es in deinen:
languages/german
languages/english
languages/was weis ich

so einen Eintrag:

define("_GOLFSIMULATOR","Golfsimulator");

?
Übrigens, Sprachkonstanten werden in PMX mit _ (unterschtrich) definiert.
Genie ist die grenzenlose Bereitschaft, sich Mühe zu geben.

moeller

Nein, gibt es nicht. Kann ich aber anlegen.
Elektronischer Gruss aus dk
Willi

Sitki

#7
Hi :)

bajazzo hat es eigentlich erklärt. ;)

ZitatDas Theme heisst mx-mysticjade.

1. in der settings.php

$themesetting['headnav'] = array(
    1 => array('title' => _HOME,      'link' => './'),
    2 => array('title' => _SOLCENTER, 'link' => 'modules.php?name=Content&pa=showpage&pid=1'),
    3 => array('title' => _GOLFSIMULATOR,   'link' => 'modules.php?name=Content&pa=showpage&pid=2'),
    4 => array('title' => _FITNESS, 'link' => 'modules.php?name=Content&pa=showpage&pid=3'),
    5 => array('title' => _BILLEDER, 'link' => 'modules.php?name=Content&pa=showpage&pid=4'),
    6 => array('title' => _ONLINEBOOKING, 'link' => 'http://www.h-hallen.dk'),


2. in der theme.html
hier müssen die beiden zusätzlichen Links ergänzt werden

   <li>{MENUITEM_1}
            </li>
            <li>{MENUITEM_2}
            </li>
            <li>{MENUITEM_3}
            </li>
            <li>{MENUITEM_4}
            </li>
            <li>{MENUITEM_5}
            </li>
            <li>{MENUITEM_6}
            </li>


3. /html/language/
hier ergänzt du die folgenden Sprachkonstanten in die jeweiligen zu verwendenden Sprachdateien, am besten ans Ende vor dem ?> .

z.B.
lang-german.php
//mx-mysticjade
define("_SOLCENTER","2. Deutsch");
define("_GOLFSIMULATOR","3. Deutsch");
define("_FITNESS", "4. Deutsch");
define("_BILLEDER","5. Deutsch");
define("_ONLINEBOOKING","6. Deutsch");


lang-turkish.php
//mx-mysticjade
define("_SOLCENTER","2. Türkisch");
define("_GOLFSIMULATOR","3. Türkisch");
define("_FITNESS", "4. Türkisch");
define("_BILLEDER","5. Türkisch");
define("_ONLINEBOOKING","6. Türkisch");


Die Textaufzählungen 2. Deutsch, 3. Deutsch, ... und 2. Türkisch, 3. Türkisch, ... musst du natürlich mit deinen richtigen Sprachtexten ersetzen.

>> Testseite



PS: Alternative Sprachdateienanpassung (betrifft nur die Sprachdateien): Eigene Sprachdateien
viele Grüße

Kein Support über PN, Mail oder Messenger!
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

moeller

Ich arbeite ja mit bajazzos Erklärung, krieg das aber nicht richtig hin.
Im language file steht jetzt:

// topmenu
define("_GOLFSIMULATOR", "<a href=\"modules.php?name=Content&pa=showpage&pid=2\">GOLFSIMULATOR</a>");
?>

Dabei wird der Link aber mit grossen Buchstaben übergeben und kann somit nicht gefunden werden.

domain/hallen/MODULES.PHP?NAME=CONTENT&PA=SHOWPAGE&PID=2

Was mach ich denn falsch?

Elektronischer Gruss aus dk
Willi

Sitki

Moin :)

ich habe dir doch in meiner Antwort eine ausführliche Anleitung geschrieben. Hast du mal versucht, dies so umzusetzen. ???
viele Grüße

Kein Support über PN, Mail oder Messenger!
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

moeller

Ich zeig dir zum Schluss meine aktuellen Daten.

Streng nach deiner Anweisung komme ich soweit, dass beim wechseln der Sprache auch der Text im Menu geändert wird.
Kann aber z.B. mit dem deutschen Link SOLARIUM nur die dänische Seite SOLCENTER (pid=1) aufrufen.

Jetzt bleibt es noch, dass der Link mit geändern wird, zu der Seite wo der deutsche Text steht (pid=12).

Würdest du mir das auch noch erklären?

Grüsse
moeller

DIe aktuellen Daten.

theme.html:
          <ul>
            <li>{MENUITEM_1}
            </li>
            <li>{MENUITEM_2}
            </li>
            <li>{MENUITEM_3}
            </li>
            <li>{MENUITEM_4}
            </li>
            <li>{MENUITEM_5}
            </li>
          </ul>

settings.php:
$themesetting['headnav'] = array(
    1 => array('title' => _HOME,      'link' => './'),
    2 => array('title' => _SOLCENTER, 'link' => 'modules.php?name=Content&pa=showpage&pid=1'),
    3 => array('title' => _GOLFSIMULATOR,   'link' => 'modules.php?name=Content&pa=showpage&pid=2'),
    4 => array('title' => _FITNESS, 'link' => 'modules.php?name=Content&pa=showpage&pid=3'),
    5 => array('title' => _BILLEDER, 'link' => 'modules.php?name=Content&pa=showpage&pid=4'),
);

lang-danish.php:
// topmenu
define("_SOLCENTER", "SOLCENTER");
define("_GOLFSIMULATOR", "GOLFSIMULATOR");
define("_FITNESS", "FITNESS");
define("_BILLEDER", "BILLEDER");
?>

lang-german.php:
// topmenu
define("_SOLCENTER", "SOLARIUM");
define("_GOLFSIMULATOR", "GOLFSIMULATOR");
define("_FITNESS", "FITNESS");
define("_BILLEDER", "BILDER");

Elektronischer Gruss aus dk
Willi

JoergK

Hoi ;)

Mit etwas erweitertem Code und manueller Einstellung der PIDs sollte es mit dem folgenden Code in der settings.php funktionieren, dass je nach gewählter Sprache die entsprechenden Contentseiten verlinkt sind:


<?php

$content_pid 
= array();
switch (
$GLOBALS['currentlang']) {
    case 
'danish':
        
// Hier die entsprechenden PIDs fuer die,
        // zu den Links passenden, daenischsprachigen Inhaltsseiten einstellen.
        
$content_pid['1'] = 1;
        
$content_pid['2'] = 2;
        
$content_pid['3'] = 3;
        
$content_pid['4'] = 4;
        break;
    case 
'german':
        
// Hier die entsprechenden PIDs fuer die,
        // zu den Links passenden, deutschsprachigen Inhaltsseiten einstellen.
        
$content_pid['1'] = 5;
        
$content_pid['2'] = 6;
        
$content_pid['3'] = 7;
        
$content_pid['4'] = 8;
        break;
}

$themesetting['headnav'] = array(
    
=> array('title' => _HOME,      'link' => './'),
    
=> array('title' => _SOLCENTER'link' => 'modules.php?name=Content&pa=showpage&pid=' $content_pid['1']),
    
=> array('title' => _GOLFSIMULATOR,   'link' => 'modules.php?name=Content&pa=showpage&pid=' $content_pid['2']),
    
=> array('title' => _FITNESS'link' => 'modules.php?name=Content&pa=showpage&pid=' $content_pid['3']),
    
=> array('title' => _BILLEDER'link' => 'modules.php?name=Content&pa=showpage&pid=' $content_pid['4']),
);

?>



Ich hab das nicht getestet, sondern nur mal schnell aus dem Kopf heraus zusammengeschrieben. ;)
Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

moeller

Mit dem erweiterten Code funktioniert das.
Ich bedanke mich bei euch Dreien fuer die Geduld die Ihr mit mir gehabt habt.

Jetzt habe ich noch ein kleines Schoenheitsproblem mit dem Menue. Vielleicht kann das auch noch geloest werden?

Ich haette gerne den Link "Online Booking" zurueck ins Menue.
Aber, der Link muss in einem neuen Fenster geoeffnet werden, sonst geht da was schief beim Bookingprozess.

Kann mir jemand sagen, was ich z.B. der Zeile:
6 => array('title' => ONLINEBOOKING, 'link' => 'http://www.h-hallen.dk'),
hinzufuegen muss um den Link in einem neuen Fenster zu oeffnen. Der Link gilt fuer beide Sprachen.

Gruesse
moeller
Elektronischer Gruss aus dk
Willi

JoergK

Hoi ;)

Zitat
Aber, der Link muss in einem neuen Fenster geoeffnet werden, sonst geht da was schief beim Bookingprozess.

Um eine Zielangabe (Attribut "target") unabhängig von der Position des Menüpunkts hinzufügen zu können, sind zwei Änderungen nötig. Zum einen in der functions.php:

Finde
<?php

$part
[] = array('{MENUITEM_' $i '}''<a href="' $link['link'] . '"><span>' strtoupper($link['title']) . '</span></a>');

?>


Ersetze mit
<?php

$part
[] = array('{MENUITEM_' $i '}''<a href="' $link['link'] . '" ' $link['more'] . '><span>' strtoupper($link['title']) . '</span></a>');

?>


Und dann muß das Array $themesetting['headnav'] noch in der settings.php erweitert werden:
<?php

$themesetting
['headnav'] = array(
    
=> array('title' => _HOME,      'link' => './''more' => ''),
    
=> array('title' => _SOLCENTER'link' => 'modules.php?name=Content&pa=showpage&pid=' $content_pid['1'], 'more' => ''),
    
=> array('title' => _GOLFSIMULATOR,   'link' => 'modules.php?name=Content&pa=showpage&pid=' $content_pid['2'], 'more' => ''),
    
=> array('title' => _FITNESS'link' => 'modules.php?name=Content&pa=showpage&pid=' $content_pid['3'], 'more' => ''),
    
=> array('title' => _BILLEDER'link' => 'modules.php?name=Content&pa=showpage&pid=' $content_pid['4'], 'more' => ''),
    
=> array('title' => ONLINEBOOKING'link' => 'http://www.h-hallen.dk''more' => 'target="_blank"'),
);

?>


So kannst Du individuell einem Menüpunkt ein Zielfenster zuweisen, oder halt den Wert als leeren String übergeben, wenn es im eigenen Fenster aufgehen soll.

Auch diese Erweiterung ist ungetestet, sollte aber funktionieren. ;)
Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

moeller

Tuts leider nicht, oeffnet im eigenen Fenster.
Elektronischer Gruss aus dk
Willi

JoergK

Hoi ;)

Ich hab's grad mal lokal angetestet, da funktioniert das.

Hast Du auch die Änderung in der functions.php gemacht?

Guck Dir mal den Quelltext der Browserausgabe an, steht das Attribut target="_blank" drin?

Und dann schau mal bitte in Deine Browser- und/oder Addoneinstellungen, bei einigen kann man einstellen, dass trotz target-Attribut ein Link im eigenen Fenster geöffnet werden soll.
Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

moeller

Tschuldigung  :red:
Natuerlich klappt das, wenn man die_Aenderung_ in der funcions.php macht. Ich hab nur die Zeile in der functions.php gesehen und dachte, das steht ja schon da. Danke fuer deine Hilfe.

Gruesse aus dk
moeller
Elektronischer Gruss aus dk
Willi