/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408936
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste