/ 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
Sprog-versionering af site, hvordan?
Fra : Jakob Munck


Dato : 13-02-06 20:48

Jeg påtænker at lave en portal, hvor de centrale tekster og menuer skal
kunne vises på dansk, engelsk, tysk og fransk, altså på 4 sprog, efter
brugerens valg. Men jeg spekulerer over, hvordan man egentlig lettest laver
en sådan sproglig versionering? Det handler vel om at have teksterne i nogle
tekstfiler, hvorfra de hentet ind til siderne, hvor de skal bruges. Eller er
det bedre at have teksterne i en database, hvorfra de hentes?

Jeg kan ikke helt overskue, hvad der er den bedste måde at lave en sådan
versionering, så hvis nogen har erfaring med det, vil jeg meget gerne høre.
Hvad gør man? Hvordan gør man det?


v.h.
Jakob



 
 
Johan Holst Nielsen (13-02-2006)
Kommentar
Fra : Johan Holst Nielsen


Dato : 13-02-06 21:00

Jakob Munck wrote:
> Jeg påtænker at lave en portal, hvor de centrale tekster og menuer skal
> kunne vises på dansk, engelsk, tysk og fransk, altså på 4 sprog, efter
> brugerens valg. Men jeg spekulerer over, hvordan man egentlig lettest laver
> en sådan sproglig versionering? Det handler vel om at have teksterne i nogle
> tekstfiler, hvorfra de hentet ind til siderne, hvor de skal bruges. Eller er
> det bedre at have teksterne i en database, hvorfra de hentes?
>
> Jeg kan ikke helt overskue, hvad der er den bedste måde at lave en sådan
> versionering, så hvis nogen har erfaring med det, vil jeg meget gerne høre.
> Hvad gør man? Hvordan gør man det?

Afhænger meget af hvor tit det skal redigeres, hvor meget man gider gøre
ud af det osv....

Du kan vælge blot at lave en fil - som includes med alt tekst i er
konstanter, variabler eller hvad du ønsker.

Hvis du vil over i lidt mere kan f.eks. gettext være en mulighed -
funger er rigtigt godt når det først er oppe og køre - tjek
www.php.net/gettext

Alternativt er PEAR Translation/Translation2 pakker også en mulighed :)
www.pear.php.net/translation2
www.pear.php.net/translation


:)
Håber det kunne bruge det til lidt.

Mvh
Johan

Jakob Munck (15-02-2006)
Kommentar
Fra : Jakob Munck


Dato : 15-02-06 08:02


> Du kan vælge blot at lave en fil - som includes med alt tekst i er
> konstanter, variabler eller hvad du ønsker.
>


Det virker umiddelbart som det mest simple. Men hvordan får man så brugeren
til at vælge indlæsning af netop de includes, som har at gøre med hans
sproglige præferancer?


v.h.
Jakob



Johan Holst Nielsen (15-02-2006)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-02-06 11:23

Jakob Munck wrote:
>>Du kan vælge blot at lave en fil - som includes med alt tekst i er
>>konstanter, variabler eller hvad du ønsker.
>>
>
> Det virker umiddelbart som det mest simple. Men hvordan får man så brugeren
> til at vælge indlæsning af netop de includes, som har at gøre med hans
> sproglige præferancer?

f.eks.

<?php
session_start();
$allowLanguages = array('en','da','de');'
$defaultLanguage = 'en';
$currentLanguage = '';
if(isset($_GET['setLanguage']) &&
in_array($_GET['setLanguage'],$allowLanguages)) {
$_SESSION['lang'] = $_GET['setLanguage'];
$currentLanguage = $_GET['setLanguage'];
}
elseif(in_array($_SESSION['lang'],$allowLanguages)) {
$currentLanguage = $_SESSION['lang'];
}
else {
$currentLanguage = $defaultLanguage;
}

require('./language/LANG_'.$currentLanguage.'.inc.php');
?>

Kunne være en muligt :) Blot ud fra hovedet - så måske kan det laves
lidt smukkere og smartere :)

Men kort sagt - du skrifter sprog via GET parametren - der sidder en
session. Du kan evt. udskifte denne med en cookie - så den virker over
flere session på dit website - sidst, men ikke mindst - kunne du krydre
den med lidt ip2country :)

mvh
Johan

?>

Jakob Munck (15-02-2006)
Kommentar
Fra : Jakob Munck


Dato : 15-02-06 12:04

Tak for hjælpen, jeg ser på det.

v.h.
Jakob



Leif Neland (15-02-2006)
Kommentar
Fra : Leif Neland


Dato : 15-02-06 13:17

Jakob Munck wrote:
>> Du kan vælge blot at lave en fil - som includes med alt tekst i er
>> konstanter, variabler eller hvad du ønsker.
>>
>
>
> Det virker umiddelbart som det mest simple. Men hvordan får man så
> brugeren til at vælge indlæsning af netop de includes, som har at
> gøre med hans sproglige præferancer?
>
>
Du bør se på brugerens foretrukne sprog i browseren, i variablen
$_SERVER["HTTP_ACCEPT_LANGUAGE"]

Jeg har for eksemplets skyld valgt dansk, svensk, engelsk og amerikansk, og
får dette:
"da,sv;q=0.8,en;q=0.5,en-us;q=0.3"

Så algoritmen må være:
Hvis (sprogvalg via get-variabel og sproget findes)
{Brug dette sprog og gem det i session-variabel}
Ellers hvis (sprog i session-variabel og sproget findes)
{brug dette sprog}
Ellers hvis (sprogvalg i $_SERVER["HTTP_ACCEPT_LANGUAGE"] og dette sprog
findes)
{brug dette sprog}
Ellers {brug standard sprog}

Det er vigtigt at verificere at det valgte sprog findes, så man ikke kan
snyde serveren med f.ex.
showpage.php?language=../../../etc/passwd/

Leif

Du vælger så det første sprog af brugerens ønsker, hvis du har det



Johan Holst Nielsen (15-02-2006)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-02-06 13:47

Leif Neland wrote:
> Jakob Munck wrote:
>
>>>Du kan vælge blot at lave en fil - som includes med alt tekst i er
>>>konstanter, variabler eller hvad du ønsker.
>>>
>>
>>
>>Det virker umiddelbart som det mest simple. Men hvordan får man så
>>brugeren til at vælge indlæsning af netop de includes, som har at
>>gøre med hans sproglige præferancer?
>>
>>
>
> Du bør se på brugerens foretrukne sprog i browseren, i variablen
> $_SERVER["HTTP_ACCEPT_LANGUAGE"]
>
> Jeg har for eksemplets skyld valgt dansk, svensk, engelsk og amerikansk, og
> får dette:
> "da,sv;q=0.8,en;q=0.5,en-us;q=0.3"
>
> Så algoritmen må være:
> Hvis (sprogvalg via get-variabel og sproget findes)
> {Brug dette sprog og gem det i session-variabel}
> Ellers hvis (sprog i session-variabel og sproget findes)
> {brug dette sprog}
> Ellers hvis (sprogvalg i $_SERVER["HTTP_ACCEPT_LANGUAGE"] og dette sprog
> findes)
> {brug dette sprog}
> Ellers {brug standard sprog}

HTTP_ACCEPT_LANGUAGE er fint - men mange bruger det ikke :) Jeg har
"en-us" som eneste - og ville egentlig gerne læse dansk. Men den er fint
at smide med. Men nogle der har en opfattelse af hvor mange der egentlig
indstiller dem til sine behov?

Synes dog også sagnes man kan lave en ip2country - og den vil typisk
være mere præcis (okay - ved der er udenlandskdanskere - men de kan nok
finde ud af at skifte sprog).

> Det er vigtigt at verificere at det valgte sprog findes, så man ikke kan
> snyde serveren med f.ex.
> showpage.php?language=../../../etc/passwd/

Yes :) Det er der dog også taget højde for i mit eksempel :)

mvh
Johan

Leif Neland (15-02-2006)
Kommentar
Fra : Leif Neland


Dato : 15-02-06 21:58


> HTTP_ACCEPT_LANGUAGE er fint - men mange bruger det ikke :) Jeg har
> "en-us" som eneste - og ville egentlig gerne læse dansk. Men den er
> fint at smide med. Men nogle der har en opfattelse af hvor mange der
> egentlig indstiller dem til sine behov?
>
Oftest så er sproget som default det samme som standardsproget i OS'et, dvs
er din windows svensk, så er browserens foretrukne sprog også svensk. Og det
er vel passende for vel 98% af brugerne.

Leif



Johan Holst Nielsen (15-02-2006)
Kommentar
Fra : Johan Holst Nielsen


Dato : 15-02-06 22:31

Leif Neland wrote:
>>HTTP_ACCEPT_LANGUAGE er fint - men mange bruger det ikke :) Jeg har
>>"en-us" som eneste - og ville egentlig gerne læse dansk. Men den er
>>fint at smide med. Men nogle der har en opfattelse af hvor mange der
>>egentlig indstiller dem til sine behov?
>>
>
> Oftest så er sproget som default det samme som standardsproget i OS'et, dvs
> er din windows svensk, så er browserens foretrukne sprog også svensk. Og det
> er vel passende for vel 98% af brugerne.

Ja :) Muligvis - men mange kører jo med Engelsk software (f.eks. hader
jeg dansk windows, firefox, ie, thunderbird osv). Men det er muligvis
korrekt. Men ville gerne stadig se en statistik over hvor mange der
_tilpasser_ accept language til deres behov.

mvh
Johan

Leif Neland (16-02-2006)
Kommentar
Fra : Leif Neland


Dato : 16-02-06 06:48

---- Original Message ----
From: "Johan Holst Nielsen" <spam@phpgeek.dk>
Newsgroups: dk.edb.internet.webdesign.serverside.php
Sent: Wednesday, February 15, 2006 10:31 PM
Subject: Re: Sprog-versionering af site, hvordan?

> Leif Neland wrote:
>>> HTTP_ACCEPT_LANGUAGE er fint - men mange bruger det ikke :) Jeg har
>>> "en-us" som eneste - og ville egentlig gerne læse dansk. Men den er
>>> fint at smide med. Men nogle der har en opfattelse af hvor mange der
>>> egentlig indstiller dem til sine behov?
>>>
>>
>> Oftest så er sproget som default det samme som standardsproget i
>> OS'et, dvs er din windows svensk, så er browserens foretrukne sprog
>> også svensk. Og det er vel passende for vel 98% af brugerne.
>
> Ja :) Muligvis - men mange kører jo med Engelsk software (f.eks. hader
> jeg dansk windows, firefox, ie, thunderbird osv). Men det er muligvis
> korrekt. Men ville gerne stadig se en statistik over hvor mange der
> _tilpasser_ accept language til deres behov.
>
IE og Opera har dansk som foretrukket sprog som standard.
Firefox har ikke noget, og sendte slet ikke HTTP_ACCEPT_LANGUAGE før jeg
udfyldt det.

Leif



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

Månedens bedste
Årets bedste
Sidste års bedste