Avatar billede noob2003 Nybegynder
25. marts 2006 - 15:11 Der er 17 kommentarer og
2 løsninger

Sprog detection

Jeg søger oplysninger på hvordan jeg kan finde ud af hvad sprog bruger har hvis dansk "dansk tekstfil" ellers engelsk tekstfil.

jeg ved man kan include men kan ikke lige finde ud af hvordan man skriver det i index.php  og dansk.php / engelsk.php

nogen der kan hæpe mig med disse problemer ???
Avatar billede noob2003 Nybegynder
25. marts 2006 - 15:11 #1
hælpe = hjælpe ;)
Avatar billede jensgram Nybegynder
25. marts 2006 - 15:29 #2
$_SERVER['HTTP_ACCEPT_LANGUAGE'] indeholder det der skal bruges. Del den ved kommaer og tag dem fra en ende af, indtil du møder noget, du kan genkende (en, da osv)...

Et udklip fra en "intelligent" vælger, jeg skrev engang:

            $accept_lang = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); // Split HTTP-Accept-Language on ','
            for ($i = 0; $i < sizeof($accept_lang); $i++) { // Iterate through accepted languages
                $accept_lang[$i] = trim(ereg_replace(';(.)*$', '', $accept_lang[$i])); // Trim current chunk and remove everything after ';' - eg: ';q=0.5'
                if ($this->_IsValidLanguage($accept_lang[$i]) == true) { // See if the current language is valid
                    $language = $accept_lang[$i]; // If yes - use current language
                    break; // End loop
                }
            }
Avatar billede jensgram Nybegynder
25. marts 2006 - 15:31 #3
Du kan så udskifte

if ($this->_IsValidLanguage($accept_lang[$i]) == true) { // See if the current language is valid
    $language = $accept_lang[$i]; // If yes - use current language
    break; // End loop
}

Med

if ($accept_lang[$i] == "da") {
    // til dansk.php
} elseif ($accept_lang[$i] == "en") {
    // engelsk.php
}

osv. Evt. med en switch i stedet.
Avatar billede noob2003 Nybegynder
25. marts 2006 - 16:17 #4
vil det sige den skal være sådan ???

?
$accept_lang = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); // Split HTTP-Accept-Language on ','
            for ($i = 0; $i < sizeof($accept_lang); $i++) { // Iterate through accepted languages
                $accept_lang[$i] = trim(ereg_replace(';(.)*$', '', $accept_lang[$i])); // Trim current chunk and remove everything after ';' - eg: ';q=0.5'
if ($accept_lang[$i] == "da") {
    include("danish.php");
} elseif ($accept_lang[$i] == "en") {
    include("english.php");
}
?>
Avatar billede showsource Seniormester
25. marts 2006 - 16:35 #5
Hvis du kun vil tjekke for da,

$lang_str = $_SERVER["HTTP_ACCEPT_LANGUAGE"];

    if(false !== ($la = strpos($lang_str, "da"))) {
    echo"dansk";
    }else{
    echo"Andet";
    }

evt. bruge en switch() hvis du har flere forskellige sprog.
Avatar billede noob2003 Nybegynder
25. marts 2006 - 16:46 #6
showsource>> tror jeg har et problem med php opsætningen af apache2"windows/php 5.1.2 for den er blank
Avatar billede showsource Seniormester
25. marts 2006 - 18:42 #7
hmm, har lige opgraderet til PHP 5.1.2, og det virker fint nok på min 1.3.33 og 2'er.
Har du kun dette i filen?

<?php

$lang_str = $_SERVER["HTTP_ACCEPT_LANGUAGE"];

    if(false !== ($la = strpos($lang_str, "en"))) {
    echo"dansk";
    }else{
    echo"Andet";
    }

?>
Avatar billede showsource Seniormester
25. marts 2006 - 18:50 #8
skulle selvf. være "da" og ikke "en"
tjekkede med min NS :O)
Avatar billede noob2003 Nybegynder
25. marts 2006 - 22:05 #9
min viser  "andet" med
<?php

$lang_str = $_SERVER["HTTP_ACCEPT_LANGUAGE"];

    if(false !== ($la = strpos($lang_str, "da"))) {
    echo"dansk";
    }else{
    echo"Andet";
    }

?>
Avatar billede noob2003 Nybegynder
25. marts 2006 - 22:10 #10
Sorry  min fejl 40  glemte at update siden
Avatar billede showsource Seniormester
26. marts 2006 - 15:28 #11
virker det for dig?
Avatar billede noob2003 Nybegynder
26. marts 2006 - 16:11 #12
jeps sidder lige og arbejder med den pt.
Avatar billede noob2003 Nybegynder
26. marts 2006 - 16:17 #13
hvordan henter man define("_NICKNAME","Brugernavn"); fra lang-danish.php ind i filen så der står brugernavn ??
har tilføjet dette i min index.php

<?php

$lang_str = $_SERVER["HTTP_ACCEPT_LANGUAGE"];

    if(false !== ($la = strpos($lang_str, "da"))) {
    include("language/lang-danish.php");
    }else{
    include("language/lang-english.php");
    }

?>
Avatar billede jensgram Nybegynder
26. marts 2006 - 16:56 #14
Den bør vel (nu er jeg ikke så skrap mht. inkluderede konstanter) kaldes som ex:

print _NICKNAME;
Avatar billede noob2003 Nybegynder
26. marts 2006 - 17:21 #15
nope virker ikke
Avatar billede noob2003 Nybegynder
26. marts 2006 - 17:27 #16
fandt det, det var    "._NICKNAME."
Avatar billede noob2003 Nybegynder
26. marts 2006 - 17:28 #17
Tid til at uddele points, så svar vil være velkommen nu ;)
Avatar billede jensgram Nybegynder
26. marts 2006 - 18:05 #18
Nu ved jeg ikke hvor meget hjælp jeg var til, men her er et svar.
Avatar billede showsource Seniormester
26. marts 2006 - 20:02 #19
så får du også et fra mig :O)
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