Avatar billede jenslyn_s Nybegynder
24. november 2003 - 17:16 Der er 7 kommentarer og
2 løsninger

auto detect sprog

Har et site med 3 sprog, som vælges med følgende links:
---------->
<a href="<? echo $_SERVER["PHP_SELF"];?>?lang=dk">dansk</a><br>
<a href="<? echo $_SERVER["PHP_SELF"];?>?lang=de">deutsch</a><br>
<a href="<? echo $_SERVER["PHP_SELF"];?>?lang=uk">english</a>
------------->
Men vil gerne have at den starter sitet med det sprog som
$_SERVER['HTTP_ACCEPT_LANGUAGE'] finder... how?

Jan Povl
Avatar billede jensgram Nybegynder
25. november 2003 - 00:07 #1
Måske kan du bruge dette: http://www.eksperten.dk/spm/425376
Avatar billede jensgram Nybegynder
25. november 2003 - 00:09 #2
Det ville blive:

$ml = new JgMultiLanguage();
$ml->SetLanguages('da', 'de', 'en'); // Vi bruger lige de officielle landekoder
$ml->SetIntelliLanguage('dk', $_GET['lang']); // vil benytte 'da', hvis ikke der findes et match i HTTP_ACCEPT_LANGUAGE. Desuden kan brugeren overskrive alt ved at skrive fx. ?lang=da (osv.)
print $ml->GetByLanguage('Hejsa', 'Gutentag', 'Hello');
Avatar billede jenslyn_s Nybegynder
25. november 2003 - 08:06 #3
Jeg har prøvet at tilføje dette i min fil, men den vil ikke redirecte når jeg sætter den til at være den samme fil + i.ex.:  ?lang=da
-dette har jeg sat i toppen, og virker, når jeg sætter den til at gå til en anden fil--->
//sprog detect
$country = $_SERVER["HTTP_ACCEPT_LANGUAGE"];

$country = substr( $country, 0, 2 );  // kun de 2 første bogstaver

switch ($country) {
    case "da":
            $location="linksvis.php?lang=da";
        break;
    case "fr":
            $location="linksvis.php?lang=uk";
        break;
    case "en":
            $location="linksvis.php?lang=uk";
        break;
    case "ge":
            $location="linksvis.php?lang=de";
        break;
    case "sv":
            $location="linksvis.php?lang=da";
        break;
    default:
          $location="linksvis.php?lang=uk";
        break;
}
header( "location: " .$location  );    // send den side istedetfor
exit();
Avatar billede jensgram Nybegynder
25. november 2003 - 08:43 #4
$ml = new JgMultiLanguage();
$ml->SetLanguages('da', 'de', 'en', 'fr', 'sv'); // Vi bruger lige de officielle landekoder
$ml->SetIntelliLanguage('dk', $_GET['lang']); // vil benytte 'da', hvis ikke der findes et match i HTTP_ACCEPT_LANGUAGE. Desuden kan brugeren overskrive alt ved at skrive fx. ?lang=da (osv.)
$location = $ml->GetByLanguage('da', 'de', 'uk', 'uk', 'da');
header('Location: linkvis.php?lang=' . $location);
Avatar billede jensgram Nybegynder
26. november 2003 - 02:50 #5
Hov, det skulle slf være:

$ml = new JgMultiLanguage();
$ml->SetLanguages('da', 'de', 'en', 'fr', 'sv'); // Vi bruger lige de officielle landekoder
$ml->SetIntelliLanguage('da', $_GET['lang']); // vil benytte 'da', hvis ikke der findes et match i HTTP_ACCEPT_LANGUAGE. Desuden kan brugeren overskrive alt ved at skrive fx. ?lang=da (osv.)
$location = $ml->GetByLanguage('da', 'de', 'uk', 'uk', 'da');
header('Location: linkvis.php?lang=' . $location);

Og nu er det vel ikke på linkvis.php at du vælger? I så fald vil siden hele tiden reloade.

Desuden er vi vel enige om, at du også har inkluderet de to klasser, jeg postede i http://www.eksperten.dk/spm/425376 ?!?
Avatar billede jensgram Nybegynder
05. december 2003 - 09:41 #6
...
Avatar billede jenslyn_s Nybegynder
19. marts 2004 - 00:15 #7
point?
Avatar billede jensgram Nybegynder
24. marts 2004 - 20:56 #8
Ja tak, hvis du vel at maerke kunne bruge mit svar.

- Jens Gram
Avatar billede jensgram Nybegynder
10. maj 2004 - 17:16 #9
Ups - havde overset dette spm. Kunne du bruge det?
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