Mehrsprachig mittels templates

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
krishu
ConPresso-User
Beiträge: 82
Registriert: 15.12.2005 09:51
Kontaktdaten:

Beitrag von krishu »

Hallo,

danke, das ist eine gute Idee.
Mit dem Thema Cookies setze ich mich gerade auseinander.

Noch eine ganz doofe Frage: wie rufe ich aus PHP-Code heraus eine JS-Funktion auf?

Der Trick mit onload ist solala, da er ja u. U. vor dem Laden des Textes ausgeführt wird. in Mozilla klappts, in IE nicht. aber den Browser-Sprachcheck und auch Cookies auslesen kann man ja am Ende des Dokuments machen ...

Gruß
Christian
Ich habe keine Ahnung. Leider.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

krishu hat geschrieben:Noch eine ganz doofe Frage: wie rufe ich aus PHP-Code heraus eine JS-Funktion auf?
Mit

Code: Alles auswählen

echo '<script type="text/javascript"><!-- funktion(); .... --></script>';
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
krishu
ConPresso-User
Beiträge: 82
Registriert: 15.12.2005 09:51
Kontaktdaten:

Beitrag von krishu »

Hi,

danke;

das mit onload funzt doch auch im IE .... (gibt es bei dieser Funktion manchmal Probleme?)

Jetzt sieht es in etwa so aus:

Code: Alles auswählen

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
      <!--

      function SwitchToEnglish()
      {
        keks1="krishu_de_lang=1";
        document.cookie=keks1;
        if (document.all)
        {
          for (i=0;i<document.all.length;i++)
          {
            if (document.all[i].className=='DE')
            {
            document.all[i].className='DE_hidden';
            }
            if (document.all[i].className=='EN_hidden')
            {
            document.all[i].className='EN';
            }
          }
        }

        if (document.getElementById && !document.all)
        {
          var elemente=document.getElementsByTagName("*");
          for (i=0;i<elemente.length;i++)
          {
            if (elemente[i].className=='DE')
            {
            elemente[i].className='DE_hidden';
            }
            if (elemente[i].className=='EN_hidden')
            {
            elemente[i].className='EN';
            }
          }
        }
      }
      //-->
      </SCRIPT>

 <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
      <!--

      function DeutscheSprache()
      {
        keks1="krishu_de_lang=0";
        document.cookie=keks1;
        if (document.all)
        {
          for (i=0;i<document.all.length;i++)
          {
            if (document.all[i].className=='DE_hidden')
            {
            document.all[i].className='DE';
            }
            if (document.all[i].className=='EN')
            {
            document.all[i].className='EN_hidden';
            }
          }
        }

        if (document.getElementById && !document.all)
        {
          var elemente=document.getElementsByTagName("*");
          for (i=0;i<elemente.length;i++)
          {
            if (elemente[i].className=='DE_hidden')
            {
            elemente[i].className='DE';
            }
            if (elemente[i].className=='EN')
            {
            elemente[i].className='EN_hidden';
            }
          }
        }
      }

      //-->
      </SCRIPT>




<?php include_once(CPO_BASEDIR.'_include/unterrubriken.inc.php');?>


<html>
<head>
    <link rel="stylesheet" type="text/css" href="../_cfg/style.css" />
    <title>
        website.de • <?php echo htmlspecialchars($cpoRubricSettings['title']); ?>
    </title>
</head>
<body background="../_data/bodybg.gif" 
<?php
if (isset($_COOKIE["krishu_de_lang"]) && $_COOKIE["krishu_de_lang"] == '0')
 {
   echo 'onload="javascript:DeutscheSprache();"';
 }
   else 
 {
    if (isset($_COOKIE["krishu_de_lang"]) && $_COOKIE["krishu_de_lang"] == '1')
    {
     echo 'onload="javascript:SwitchToEnglish();" ';
    }
    else
    {
      if (getenv('HTTP_ACCEPT_LANGUAGE') == "de")  
      {
        echo 'onload="javascript:DeutscheSprache();"';
       }
       else
       {
        echo 'onload="javascript:SwitchToEnglish();"';
       }
     }
   }
?>

 
 >

Gruß
Christian
Zuletzt geändert von krishu am 05.08.2006 11:54, insgesamt 1-mal geändert.
Ich habe keine Ahnung. Leider.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Bist Du Dir da sicher...?

Code: Alles auswählen

      if (getenv('HTTP_ACCEPT_LANGUAGE') != "de")  
      { 
        echo 'onload="javascript:DeutscheSprache();"'; 
       } 
 
also "wenn der Browser kein Deutsch versteht, dann nehmen wir erst recht deutsch"...?

Ich hatte es extra so formuliert, daß der Zustand, wenn kein Deutsch kommen soll geprüft werden soll... wenn Du die Browsersprache umstellst kannst Du es ja auch testen...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
krishu
ConPresso-User
Beiträge: 82
Registriert: 15.12.2005 09:51
Kontaktdaten:

Beitrag von krishu »

Hi,

jaja :oops:

hatte das soeben selbst gemerkt (immerhin!) ... ist oben im Code korrigiert.

Danke und Gruß
Christian
Ich habe keine Ahnung. Leider.
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hallo zusammen,

es ist spaet und ich bin muede, aber eine Sache, die ich oefters mal gesehen habe, ist z.B. dem body eine id zu geben und dann die Elemente zu schachteln

#de .englisch {display: none;}

blendet dann z.B. alle mit class="englisch" Elementen aus, wenn der body die id "de" hat. mit Javascript braucht man dann nur noch die id eines Elementes aendern.

Balu
krishu
ConPresso-User
Beiträge: 82
Registriert: 15.12.2005 09:51
Kontaktdaten:

Beitrag von krishu »

Hi,

habe ich jetzt nicht ganz verstanden, klingt aber verlockend ... ;)
Wobei es ja jetzt schon funktioniert. Eventuell könnte man so aber Serverkapazitäten schonen?

Werde jetzt mal schauen, was ich mit String-Replacement machen kann, um im Backend nicht diese vielen furchbaren DIVs schreiben und sehen zu müssen, macht die Sache ziemlich unübersichtlich.

Gruß
CHristian
Ich habe keine Ahnung. Leider.
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Hallo zusammen,

hier mal der Vollständigkeit halber mal eine Lösung für die mehrsprachige Navigation mittels printnavigation: http://community.conpresso.de/viewtopic.php?t=3742

Gruß Matthias V
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Antworten