Avatar billede M_IB Nybegynder
01. november 2013 - 16:58 Der er 25 kommentarer

script til valg af Dansk, Engelsk el. Svensk landing site

Har side payvend.com som er Dansk, nu skal der skal laves en Engelsk og Svensk udgave. (undersider) Jeg vil gerne have et script i header der sender svenske besøgende direkte til svensk forside og ligeså de engelske. dette skulle kunne lade sig gøre ved at lure brugers browser sprog...

Kan nogen hjælpe med sådan en løsning :-)
Avatar billede moddi100 Seniormester
01. november 2013 - 17:25 #1
Hvilken type server er der tale om? Såfremt du anvender en serverside teknologi - Asp, PHP m.m. er løsningen hurtigere og bedre (i mine øjne)
Avatar billede M_IB Nybegynder
01. november 2013 - 17:52 #2
Det er en asp server, problemet er at det er en CMS løsning. Vi har faktisk ville angribe det anderledes, men det kan ikke lade sig gøre.

(se evt. denne tidligere tråd) http://www.eksperten.dk/spm/987425
Avatar billede moddi100 Seniormester
02. november 2013 - 11:05 #3
En diskussion omkring emnet, finder du her, hvor der også er foreslået en løsning, der anvender javascript biblioteket jquery.
http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference

I dit tilfælde skulle startsiden så have noget kode i stil med:
if($.cookie("js-language") === null)
{
$.ajax({
    url: "http://ajaxhttpheaders.appspot.com",
    dataType: 'jsonp',
    success: function(headers) {
        language = headers['Accept-Language'].toLowerCase();

    console.log(language)

    if(language.indexOf("da") > -1)
        alert("Dansk");
    else if(language.indexOf("sv") > -1)
        alert("Svensk");
    else if(language.indexOf("en") > -1)
        alert("Engelsk");
    else
        alert("Dit standardvalg");
    $.cookie("js-language", language)
    }
});
}


Som er baseret på at brugeren første gang bliver videresendt ud fra en cookie. Det skal dog laves mere sofistikeret ligesom din hjemmeside skal huske det, når man skifter menupunkt
Avatar billede MadsHaupt Juniormester
03. november 2013 - 15:23 #4
Du kan bruge dette:

Kode:
var l_lang;
  if (navigator.userLanguage) { // Explorer
    switch(navigator.userLanguage.substr(0, 2)) {
      case "da":
        l_lang = "Dansk";
        break;
      case "sv":
        l_lang = "Svensk";
        break;
      default:
        l_lang = "Engelsk";
    }
}
  else if (navigator.language) { // FF
      switch(navigator.language) {
        case "da":
            l_lang = "Dansk";
          break;
        case "sv":
            l_lang = "Svensk";
            break;
        default:
            l_lang = "Engelsk";
      }
}
  else {
    l_lang = "Engelsk";
}
alert(l_lang);
Avatar billede M_IB Nybegynder
04. november 2013 - 10:32 #5
Hold da op hvor går det hurtigt :-)

Beklager at jeg først annoncere de tre landing site nu, det havde jo været smart at have dem med i starten:

http://www.payvend.com/?lang=dk

http://www.payvend.com/?lang=se

http://www.payvend.com/?lang=en

skal det med i koden? jeg har ingen forstand på javascript....
Avatar billede MadsHaupt Juniormester
04. november 2013 - 20:52 #6
Hvis det du vil er at når man går ind på forsiden så vil den automatisk finde sprog og gå til den side der står på det sprog.

Så skal du bare indsætte det her i body taget i din html.

<script type="text/javascript">
var l_lang;
  if (navigator.userLanguage) { // Explorer
    switch(navigator.userLanguage.substr(0, 2)) {
      case "da":
        l_lang = "dk";
        break;
      case "sv":
        l_lang = "se";
        break;
      default:
        l_lang = "en";
    }
}
  else if (navigator.language) { // FF
      switch(navigator.language) {
        case "da":
            l_lang = "dk";
          break;
        case "sv":
            l_lang = "se";
            break;
        default:
            l_lang = "en";
      }
}
  else {
    l_lang = "en";
}
if (document.location.href.length < 30) {
document.location.href = "http://www.payvend.com/?lang=" + l_lang;
}
else {
if (l_lang != document.location.href.substr(30)) {
document.location.href = "http://www.payvend.com/?lang=" + l_lang;
}
}
</script>
Avatar billede moddi100 Seniormester
05. november 2013 - 18:42 #7
@MadsHaupt overvej hvad der sker idet han går ind på en underside? Men ellers en udemærket måde at tjekke om han allerede er redirected
Avatar billede M_IB Nybegynder
06. november 2013 - 07:09 #8
jeg prøver imorgen at sætte det ind i body på forside, og så vender jeg tilbage med resultat! :-)

så ser vi også om det virker med undersiderne.
Avatar billede MadsHaupt Juniormester
09. november 2013 - 11:01 #9
Jeg ved godt at det ikke virker på undersiderne, men man kan bruge server sproget til at få det til at virke.
Avatar billede MadsHaupt Juniormester
09. november 2013 - 11:08 #10
Du skal både bruge server sproget og javascript, får at få det til at virke, og så er det nok bedst at du bliver lidt bedre til javascript.

Her er nole javascript tutorials:
http://www.nemprogrammering.dk/Tutorials/Javascript/oversigt_java.php
http://www.youtube.com/watch?v=yQaAGmHNn9s&list=PL46F0A159EC02DF82
http://www.youtube.com/results?search_query=javascript+tutorial+for+beginners&sm=1
Avatar billede M_IB Nybegynder
13. november 2013 - 10:57 #11
Hej igen,

så fik jeg endelig tid til at teste script!

det virker ikke som det er, når man går ind på siden:

www.payvend.com
sendes jeg fint nok til
http://www.payvend.com/?lang=dk

men siden kommer ikke frem da den ligesom bliver ved med at reloade eller tjekke ? sådan står den og kører i ring med blank skærm!
Avatar billede MadsHaupt Juniormester
13. november 2013 - 16:05 #12
Jeg kan godt hjælpe dig, men hvilket server sprog bruger du?.
Avatar billede M_IB Nybegynder
13. november 2013 - 16:34 #13
det lyder da godt :-

er lidt i tvivl om hvad du spøger til?

det jo en site vi har hostet hos Scannet
de fortæller at det er en ASP server som vi tilgår gennem CMS løsning.
index side hedder default.asp

mener du med server sprog, dansk, engelsk etc?
Avatar billede MadsHaupt Juniormester
13. november 2013 - 17:20 #14
Hvis du skal få det, til at virke årten lidt skal du også programmer i asp.net.
Avatar billede moddi100 Seniormester
13. november 2013 - 17:38 #15
Var pointen ikke netop at undgå server-side programmering? For at fjerne de uendelige redirects, kan du modificere #6 til følgende:


<script type="text/javascript">
var l_lang;

if (navigator.userLanguage) { // Explorer
    switch(navigator.userLanguage.substr(0, 2)) {
      case "da":
        l_lang = "dk";
        break;
      case "sv":
        l_lang = "se";
        break;
      default:
        l_lang = "en";
    }

} else if (navigator.language) { // FF
      switch(navigator.language) {
        case "da":
            l_lang = "dk";
          break;
        case "sv":
            l_lang = "se";
            break;
        default:
            l_lang = "en";
      }
} else {
    l_lang = "en";
}

// Skift kun, når vi ikke er på undersider
// dvs. på http://www.payvend.com
if(window.location.href == "http://www.payvend.com/")
{
    // Dette tjek er unødvendigt her, men er medtaget for at vise,
    // at man også kan tjekke på andre sider, om man er redirected.
    if (window.location.search.indexOf("lang=") == -1)
    {
        document.location.href = "http://www.payvend.com/?lang=" + l_lang;
    }
}
</script>

Avatar billede M_IB Nybegynder
13. november 2013 - 17:40 #16
Okay, jeg har minimal forstand på at progarmmer, har jeg så stillet spørgsmålet i den forkerte kategori?
Avatar billede M_IB Nybegynder
13. november 2013 - 17:43 #17
jo det mener jeg også, det kunne vi jo ikke tilgå på denne CMS løsning.

jeg prøver denne :-)
Avatar billede M_IB Nybegynder
13. november 2013 - 17:46 #18
skal jeg fjerne //linjer når jeg lægger det på?
Avatar billede moddi100 Seniormester
13. november 2013 - 17:54 #19
Du har stillet spørgsmålet i den rigtige kategori, så bare rolig.

Derudover betragtes alt efter // i javascript som kommentarer, hvorfor det ikke er nødvendigt at fjerne dem selv. Dem kan du lade stå hvis du lyster.
Avatar billede M_IB Nybegynder
13. november 2013 - 18:15 #20
:-) det ser ud til at virke!

den engelske landing side hedder dog:

http://www.payvend.com/?lang=uk

og ikke "en" som jeg tidligere havde skrevet, hvor meget skal rettes så?
Avatar billede MadsHaupt Juniormester
13. november 2013 - 19:59 #21
Så der er ingen problemer nu?.
Avatar billede M_IB Nybegynder
14. november 2013 - 08:37 #22
hej,

ja det virker på svensk!

moddi100 :-)  da jeg havde opgivet forkert landing site for engelsk virker dette ikke, se #20, hvor meget skal der så rettes i script?

Tænker også at Norsk også gerne må lande på DK, skal man så indsætte en streng med "nb-NO"

Alle andre browser sprog en DK og SE og NO skal så lande på:

http://www.payvend.com/?lang=uk
Avatar billede MadsHaupt Juniormester
14. november 2013 - 15:03 #23
Jeg synes at du skulle blive lidt bedre til javascript.

Her er nole javascript tutorials: http://www.nemprogrammering.dk/Tutorials/Javascript/oversigt_java.php
http://www.youtube.com/watch?v=jkTzHEtHd54&list=PL41lfR-6DnOrwYi5d824q9-Y6z3JdSgQa

Og, når du har lært det, så vil du maget nemmere selv kunne rette i koden.

l_lang variablen er for eksempel lig med "dk" eller "se".
Avatar billede M_IB Nybegynder
14. november 2013 - 15:55 #24
det har du givet vis ret i, men jeg mangler "tiden" :-)
Avatar billede MadsHaupt Juniormester
14. november 2013 - 21:16 #25
Jeg kan godt se at det er meget svaret, men så er spørgsmålet jo hvad der tager længst tid, video tutorials'ne eller at finde ud af det på eksperten.dk hver gang du skal havde lavet et eller andet i javascript.
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