|  | 		    
					
        
         
          
         
	
          | |  | Automatisk valg af sprog Fra : Martin Kristensen
 | 
 Dato :  01-07-03 11:26
 | 
 |  | På min aktuelle hjemmeside understøtter jeg flere sprog.
 
 Det fungerer p.t. sådan, at default-sproget er dansk - og brugeren
 skal så vælge hvis han vil se siderne i et andet sprog, ved at klikke
 på et flag svarende til det pågældende sprog (engelsk, tysk etc.).
 
 Jeg har bemærket at nogle sites fungerer således, at brugerens
 browserindstillinger aflæses til at automatisk give brugeren det sprog
 som han helst vil have. Så kan man altid give ham muligheden for at
 vælge et andet ved "flag-metoden".
 
 Hvordan laver jeg sådan en aflæsning af browserindstillingerne og får
 vist den rigtige startside afhængig af favorit-sprog-indstillingerne ?
 
 Hilsen,
 
 Martin
 
 
 |  |  | 
  Jonas Jalling (01-07-2003) 
 
	
          | |  | Kommentar Fra : Jonas Jalling
 | 
 Dato :  01-07-03 11:49
 | 
 |  | Martin Kristensen wrote:
 > På min aktuelle hjemmeside understøtter jeg flere sprog.
 >
 > Det fungerer p.t. sådan, at default-sproget er dansk - og brugeren
 > skal så vælge hvis han vil se siderne i et andet sprog, ved at klikke
 > på et flag svarende til det pågældende sprog (engelsk, tysk etc.).
 >
 > Jeg har bemærket at nogle sites fungerer således, at brugerens
 > browserindstillinger aflæses til at automatisk give brugeren det sprog
 > som han helst vil have. Så kan man altid give ham muligheden for at
 > vælge et andet ved "flag-metoden".
 >
 > Hvordan laver jeg sådan en aflæsning af browserindstillingerne og får
 > vist den rigtige startside afhængig af favorit-sprog-indstillingerne ?
 >
 > Hilsen,
 >
 > Martin
 
 Hej Martin,
 
 Det er variablen $_SERVER[HTTP_ACCEPT_LANGUAGE] du skal kigge på. Den
 indeholder hvilket sprog, som klienten bruger. F.eks: da, en, de, fr, it
 .... osv.
 
 --
 Med venlig hilsen
 Jonas Jalling
 
 
 
 
 |  |  | 
  Lars Dybdahl (01-07-2003) 
 
	
          | |  | Kommentar Fra : Lars Dybdahl
 | 
 Dato :  01-07-03 11:51
 | 
 |  | 
 
            Den kode som genereres af http://www.cat-photo.com/  er således:
 $langs=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
 reset ($langs);
 while (list($key,$value)=each($langs)) {
   $cur=explode(";",$value);
   $first=substr($cur[0],0,2);
   if (strpos(" en,da,de",$first)>0) {
     if ($first!="")
       if ($first!="en")
         Header ("Location: index-".$first.".php");
     break;
   }
 }
 I dette tilfælde akcepteres sprogene engelsk (en), dansk (da) og tysk (de),
 og der viderestilles til den pågældende side. Sprogkoderne finder du her:
http://www.loc.gov/standards/iso639-2/langcodes.html Hilsen,
 Lars.
 -- 
 Freelance programmør
 Programmering mod timebetaling
            
             |  |  | 
  Troels Arvin (01-07-2003) 
 
	
          | |  | Kommentar Fra : Troels Arvin
 | 
 Dato :  01-07-03 11:58
 | 
 |  | On Tue, 01 Jul 2003 03:25:32 -0700, Martin Kristensen wrote:
 
 > Hvordan laver jeg sådan en aflæsning af browserindstillingerne og får
 > vist den rigtige startside afhængig af favorit-sprog-indstillingerne ?
 
 Der er flere måder at gøre det på.
 
 Et par hints:
 
 En browser udsender HTTP-headeren "Accept-Language", når den
 efterspørger en URL. Værdien af denne kan i PHP aflæses i
 $_SERVER["HTTP_ACCEPT_LANGUAGE"].
 
 Når en URL kan have forskelligt output alt efter hvad browserens
 Accept-Language værdi havde, _skal_ URL'en udsende en header, der angiver
 dette (således at caches har en chance for at operere nogenlunde
 fornuftigt), fx. - i PHP:
 <?php header('Vary: Accept-Language'); ?>
 
 En Vary-header kan have flere værdier, hvis der varieres som funktion af
 flere værdier (kunne fx. også være Accept-Encoding og lign.).
 
 Bemærk, at en del brugere ikke har indstillet deres browser korrekt.
 Derfor bør man overveje kun benytte ovenstående som _del_ af en
 beslutningskæde mht. sprog-valg. Kæden kan også bruge informationer som
 de følgende til at forsøge at foretage et godt gæt:
 - Publikums domæne (hvis det ender på .dk er der en god chance
 for, at der er tale om en dansker).
 - Evt. tidligere valg, som brugeren har taget og gemt, enten via
 eksplicitte bruger-indstillinger, hvis man har et brugersystem,
 eller gemt i en cookie).
 
 Hvis disse informationer benyttes, så husk at sætte URL'ens
 caching-status til "Private", således at kun brugeren selv cacher, og
 ikke evt. mellemliggende proxies:
 <?php
 header('Cache-Control: private'); // til moderne browsere
 header('Pragma: no-cache'); // ad hensyn til gamle browsere
 ?>
 
 /Troels
 
 
 |  |  | 
  Peter Brodersen (01-07-2003) 
 
	
          | |  | Kommentar Fra : Peter Brodersen
 | 
 Dato :  01-07-03 23:36
 | 
 |  | On Tue, 01 Jul 2003 12:58:16 +0200, Troels Arvin <troels@itu.dk>
 wrote:
 
 >Værdien af denne kan i PHP aflæses i
 >$_SERVER["HTTP_ACCEPT_LANGUAGE"].
 
 ... og gør man brug af den, bør man parse den hensigtsmæssigt. Et
 simpelt tjek om den tilfældigvis lige er "da", vil ikke være nok.
 
 Jeg ved dog ikke om der findes oplagte funktioner til dette - evt
 PEAR-moduler...
 
 --
 - Peter Brodersen
 
 
 |  |  | 
 |  |