Avatar billede jonatan Nybegynder
05. maj 2003 - 15:02 Der er 28 kommentarer og
1 løsning

Automatisk til andet sprog.

Hej:

Jeg har fået fat i det her php der skulle gøre at man bliver automatisk sendt til det rigtig sprog. (efter hvad for en sprog man har installeret på din browser).

<?php
    switch ( $HTTP_ACCEPT_LANGUAGE ) {
        case "en";
            include "engelsk_index.htm";
            break;
        default;
            include "dasnk_index.htm";
        }
?>

Spørgsmålet er så: Virker den overhovedet? jeg kan ikke får den til at virke. Kan nogen af jer skrive en lille beskrivelse til hvordan den virker eller evt. lave en ny script til mig som virker bedre og måske med flere valg muligheder...
Avatar billede exp Juniormester
05. maj 2003 - 15:11 #1
<?php
    switch ( $HTTP_ACCEPT_LANGUAGE ) {
        case "en";
            include "engelsk_index.htm";
            break;
        default;
            include "dansk_index.htm";
        }
?>

måske...
Avatar billede jakoba Nybegynder
05. maj 2003 - 15:12 #2
der er mange landekode, og desværre også mange varianter. jeg har fx set

'en'      engesk
'en-us'  engelsk som i usa
'en-br'  engelsk som i storbrittanien

de betyder allesammen 'engelsk', så hvis du fx nøjes med de 2 første bogstaver af $HTTP_ACCEPT_LANGUAGE kan det være det virker lidt bedre.

desværre nok kun lidt, der er flere underligheder :(
Avatar billede jonatan Nybegynder
05. maj 2003 - 15:17 #3
Er der så andre andre muligheder man kan bruge? det behøver ikke være php..

Måske kunne man lave sådan så nå folk kommer ind på min forside og vælger dansk eller engelsk for første gang bliver det gemt i en cookie så de ikke skal vælge sproget hver eneste gang???
Avatar billede jakoba Nybegynder
05. maj 2003 - 15:18 #4
du kunne evt prøve at gemme alle de $HTTP_ACCEPT_LANGUAGE værdier du får i en file eller en database. så ville vi have grundlag for at lave noget bedre.
Avatar billede exp Juniormester
05. maj 2003 - 15:19 #5
det er da en udemærket mulighed... Så er brugerne heller ikke bundet af udenlandske installationer!
Avatar billede jonatan Nybegynder
05. maj 2003 - 15:23 #6
ok... jeg bange for jeg ikke kan finde ud af det. Hvordna laver jeg en fil der gemmer $HTTP_ACCEPT_LANGUAGE  i en fil eller database?
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 15:24 #7
Der kan stå mere end en: Det kræver en split:

$_SERVER["HTTP_ACCEPT_LANGUAGE"] = "en,da,gd"
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 15:26 #8
Og hvis du har danske og engelske sider, skal du løbe igennem fx.
en "gd,en,da" og vise den engelske, da du ikke har den gæliske
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 15:27 #9
..og så få dem, der har lavet dit oprindelige script til at smide det væk igen :)
Avatar billede jonatan Nybegynder
05. maj 2003 - 15:32 #10
ok.. jeg tror er ved at være med nu... Kunne jeg være rigtig besværlige og får jer til at skrive hele koden?
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 15:37 #11
Noget i retning af (utestet)

$sprog='da';  // default, hvis intet angivet
$ss = split(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
foreach ($ss as $s) {
  if (eregi('^en',$s)) { $sprog='en'; break; }
  if (eregi('^da',$s)) { $sprog='da'; break; }
}
switch ($sprog) {
case 'en': include "engelsk_index.htm";
            break;
case 'da': include "dansk_index.htm";
            break;
}
Avatar billede jonatan Nybegynder
05. maj 2003 - 15:47 #12
Nope! den virker ikke
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 15:53 #13
Hvad virker ikke? *g*
Avatar billede jonatan Nybegynder
05. maj 2003 - 16:17 #14
$sprog='da';  // default, hvis intet angivet
$ss = split(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
foreach ($ss as $s) {
  if (eregi('^en',$s)) { $sprog='en'; break; }
  if (eregi('^da',$s)) { $sprog='da'; break; }
}
switch ($sprog) {
case 'en': include "engelsk_index.htm";
            break;
case 'da': include "dansk_index.htm";
            break;
}

<-- virker ikke. Eller, jeg kan ikke får det til det .. *S*
Avatar billede jonatan Nybegynder
05. maj 2003 - 16:21 #15
Grin du bare! men jeg er total spasser til det her..! :o)
Avatar billede jonatan Nybegynder
05. maj 2003 - 16:34 #16
Jeg takker MEGET for jeres hjælp! jeg har nu fundet ud af hvordan jeg kan gøre det i java script i stedet! Alligevel er jeg villig til at give jer point, i skal bare lige "svar".
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 19:09 #17
Du skal da ikke gøre det i JavaScript når du kan i PHP.
JavaScript skal man kun bruge hvis det er nødvendigt.

Vil du ikke gøre som jeg beder dig om: fortælle mig hvad der
går galt=?Så fikser vi det. Som sagt er det utestet.
Avatar billede jonatan Nybegynder
05. maj 2003 - 20:02 #18
det den gør galt er at den ikke sender videre.. Men er det ikke ligemeget om det er i php eller javascript så længe det virker?
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:06 #19
"den ikke sender videre" ... øhm, på hvilken måde ... ja, undskyld jeg spørger.

Folk kan slå javascript fra - eller du kan skrive javascript som
en gammel, eller en strikt browser ikke forstår. Men du kan ikke
få PHP-koden til at fejle - når den altså lige virker....
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:09 #20
Jeg kan sige dig, at det virker hos mig - kopieret direkte fra min kode ovenfor.
Avatar billede jonatan Nybegynder
05. maj 2003 - 20:15 #21
<script language='javascript'>

if ( navigator.userLanguage == 'da' ) {
    self.location.href = "dk/index.htm";
} else {
    self.location.href = "uk/index.htm";
}
</script>

Som i kan se så sender den dasnke browser over til til dansk delen af siden og alt hvad der ikke er dansk til engelske del. Kan det ikke også lade sig gøre i php ? For de øveste eksempler virker vist kun til dansk og engelsk
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:22 #22
Jamen, hvad skriver du da siden du ikke kan få det PHP til at virke.

navigator.userLanguage virker ikke i alle browsere (i hvert fald ikke
lidt ældre). Hvis brugeren siger at han primært vil have Albansk, og
sekundært dansk, så får han engelsk. Det gør han ikke med min løsning.
Der får han dansk.
Avatar billede jonatan Nybegynder
05. maj 2003 - 20:29 #23
ok..Jeg ved ikke, men tror ikke vi er 100% enige om hvad jeg mener.

Primær sprog er dansk og det er kun for danske bruger.
Sekunder sprog er engelsk og det er for ALLE dem som ikke er danske bruger.
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:33 #24
Jamen, sådan virker sprogindstillingerne i en browser ikke.
Ikke fordi der er mange der indstiller det, men en bruger
har mulighed for at prioritere hvilke sprog han ønsker.
Hvis dansk står på den liste før engelsk skal du da vise
den på dansk. Og ikke på engelsk. Det gør mit script.
Du skal bare have det til at virke hos dig! Det er alt.
Avatar billede jonatan Nybegynder
05. maj 2003 - 20:38 #25
ok... vi prøver.

Sådan ser min  html ud, hvor ville du indsætte koderne hen?

<html>

<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<STYLE type="text/css">
<!--
BODY {
scrollbar-face-color: #B1B6BC;
scrollbar-highlight-color: #FFFFFF;
scrollbar-3dlight-color: #676767;
scrollbar-darkshadow-color: #000000;
scrollbar-shadow-color: #404040;
scrollbar-arrow-color: #000000;
scrollbar-track-color: #C0C0C0;
}
-->
</STYLE>
<title>Velkommen til Fri-Web.dk - Gratis og ubegrænset server plads til dine
hjemmesider</title>
<base target="_self">
</head>

<body bgcolor="#FFFFFF" text="#336699" background="dk/image/back.jpg" link="#336699" vlink="#336699" alink="#E6F2FF">
<p align="center"><b><font size="3" face="Tahoma">Velkommen til Fri-Web.dk</font></b><br><br>
<table border="0" width="100%" bordercolorlight="#336699" bordercolordark="#336699" bordercolor="#336699" bgcolor="#666666" cellpadding="5" cellspacing="1" height="391">
  <tr>
    <td width="15%" valign="top" bordercolorlight="#000080" bordercolordark="#000080" bgcolor="#B1B6BC" rowspan="2" height="380">&nbsp;</td>
    <td width="64%" height="320" valign="top" bordercolorlight="#336699" bordercolordark="#336699" bordercolor="#336699" bgcolor="#CCCCCC">
      <p align="center">&nbsp;</p>
      <p align="center"><font face="Tahoma" size="2">Nu er det muligt at vælger
      2 sprog på Fri-Web.dk, Dansk og engelsk.</font></p>
      <p align="center"><font face="Tahoma" size="2"><b>Tryk på Flaget for at
      komme videre</b></font></p>
      <table border="0" width="100%">
        <tr>
          <td width="20%"></td>
          <td width="20%"><font face="Tahoma" size="2">
         
          <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://active.macromedia.com/flash4/cabs/swflash.cab#version=4,0,0,0"
  id="engelsk" width="200" height="100">
  <param name="movie" value="image/dansk.swf">
  <param name="quality" value="high">
  <param name="bgcolor" value="#CCCCCC">
  <embed name="engelsk" src="image/dasnk.swf" quality="high" bgcolor="#CCCCCC"
    width="247" height="107"
    type="application/x-shockwave-flash"
    pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
  </embed>
</object>
         
            </font></td>
          <td width="20%"></td>
          <td width="20%"><font face="Tahoma" size="2">
         
         
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://active.macromedia.com/flash4/cabs/swflash.cab#version=4,0,0,0"
  id="engelsk" width="200" height="100">
  <param name="movie" value="image/engelsk.swf">
  <param name="quality" value="high">
  <param name="bgcolor" value="#CCCCCC">
  <embed name="engelsk" src="image/engelsk.swf" quality="high" bgcolor="#CCCCCC"
    width="247" height="107"
    type="application/x-shockwave-flash"
    pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
  </embed>
</object>
         
         
         
            </font></td>
          <td width="20%"></td>
        </tr>
        <tr>
          <td width="20%" align="center"></td>
          <td width="20%" align="center"><font face="Tahoma" size="2"><b><a href="dk/index.htm">Dansk
            Version</a></b></font></td>
          <td width="20%" align="center"></td>
          <td width="20%" align="center"><font face="Tahoma" size="2"><b><a href="uk/index.htm">English
            Version</a></b></font></td>
          <td width="20%" align="center"></td>
        </tr>
      </table>
      <p align="center"><font face="Tahoma" size="1"><b>Bemærk:</b> På Dasnk
      Version er din hjemmeside adresse <a href="www.fri-web.dk/dk/dit_bruger_navn/</a></font></p>" target="_blank">http://www.fri-web.dk/dk/dit_bruger_navn/">www.fri-web.dk/dk/dit_bruger_navn/</a></font></p>
      <p align="center"><font face="Tahoma" size="1">Please Note:
      ................................................ <a href="www.fri-web.dk/uk/your_</a>account_name/</font></p>" target="_blank">http://www.fri-web.dk/uk/your_">www.fri-web.dk/uk/your_</a>account_name/</font></p>
    </td>
    <td width="15%" valign="top" bordercolorlight="#000080" bordercolordark="#000080" bgcolor="#B1B6BC" rowspan="2" height="380">&nbsp;</td>
  </tr>
  <tr>
    <td width="64%" height="49" valign="top" bordercolorlight="#336699" bordercolordark="#336699" bordercolor="#336699" bgcolor="#B1B6BC">
      <p align="center">
     
     
     
      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://active.macromedia.com/flash4/cabs/swflash.cab#version=4,0,0,0"
  id="overskrift1" width="468" height="60">
  <param name="movie" value="image/bundbanner.swf">
  <param name="quality" value="high">
  <param name="bgcolor" value="#B1B6BC">
  <embed name="overskrift" src="image/bundbanner.swf" quality="high" bgcolor="#B1B6BC" width="468" height="60" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
    width="468" height="60"
    type="application/x-shockwave-flash"
    pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
  </embed>
</object> 





</td>
  </tr>
</table>

<p align="center"><b><span style="mso-char-type: symbol; mso-symbol-font-family: Symbol; mso-ascii-font-family: Times New Roman; mso-fareast-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman; mso-ansi-language: DA; mso-fareast-language: DA; mso-bidi-language: AR-SA">
<font face="Tahoma" size="1" color="#336699">©
Copyright 2002 - 2003 Fri-Web.dk - <a href="mailto:Webmaster@fri-web.dk">Webmaster@fri-web.dk</a></font><font face="Tahoma" color="#336666" size="1">&nbsp;</font></span></b></p>

</body>

</html>
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 20:42 #26
Frontpage, ja så. Det kunne du jo bare have sagt.

Du laver en fil i notesblok ! Skriv

<?
.....alt det jeg skrev
?>

og gem den som index.php (ikke som index.php.txt)

Ret filnavnene for dansk og engelsk, hvis de ikke passer.
Fjern/omdøb eventuelle andre index.* eller default.* filer
du måtte have og upload index.php.

Med lidt held så virker det.
Avatar billede jonatan Nybegynder
05. maj 2003 - 20:52 #27
<?
$sprog='da';  // default, hvis intet angivet
$ss = split(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
foreach ($ss as $s) {
  if (eregi('^en',$s)) { $sprog='en'; break; }
  if (eregi('^da',$s)) { $sprog='da'; break; }
}
switch ($sprog) {
case 'en': include "http://www.fri-web.dk/nummer6/uk/index.htm";
            break;
case 'da': include "http://www.fri-web.dk/nummer6/dk/index.htm";
            break;
}
?>


Så kan du prøve at går ind på adressen http://www.fri-web.dk/nummer6/ og se hvad der sker..

Du skal måske lige vide at i roden af mappen nummer6 er index.php som vi lige har lavet. Så er der 2 mapper. En der hedder uk og en der hedder dk. ind i mapperne er så filerne for de diverse sprog og begger mapper hedder index filen index.htm
Avatar billede erikjacobsen Ekspert
05. maj 2003 - 21:43 #28
Inkluderer du filerne fra uk/index.htm, men det sker i scriptet
index.php, derfor tror den rammefilerne ligger i roden.

Du kan redirekte fra PHP (header("Location: ...")) men så kan man
se hvad du gør. Istedet for vil jeg anbefale dig at skrive

<frame name="header" scrolling="no" noresize target="main" src="uk/top.htm">
  <frame name="main" src="uk/forsiden.htm" scrolling="auto">
Avatar billede jonatan Nybegynder
05. juni 2003 - 16:30 #29
fik det til at virke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester