[javascript] hoe betrouwbaar is dit taal-script

Pagina: 1
Acties:

  • Gerwin
  • Registratie: Juli 2001
  • Laatst online: 08-06-2025

Gerwin

Ik ben er klaar voor!

Topicstarter
Ik heb dit scriptje op het web gevonden. Ik zocht iet waarmee ik betrouwbaar de taal van een website kan defineren. Ik wil dat met name alle Nederlanders en Belgen op een andere pagina van de site komen. Ik had eerst het difineren uit het domain van de user via PHP maar dat is niet echt betrouwbaar heb ik begrepen; iemand met een .com domein kan bijvoorbeeld best uit Nederland of Belgie komen. Hoe betrouwbaar de $HTTP_ACCEPT_LANGUAGE is weet ik niet, het kan bijvoorbeeld ook best voorkomen dat iemand enkel en-us heeft ingevuld; of dat de computer dit standaard gedaan heeft.

Nu het scriptje waarmee ik denk dat ik wel iets kan:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
function Redirect( url )
    { window.location = url; }

//Defining set of languages
lan  = new Array( "", "de", "es", "nl-be", "nl" );

//Defining pages to redirect for each language
//this is what you can edit - first element is default page, next one is german page - see sequense of languages above and so on
lan_page = new Array( "http://www.site.com/site.php", "http://www.site.com/site_de.php", "http://www.site.com/site_es.php", "http://www.site.com/site_nl-be.php", "http://www.site.com/site_nl.php" );

//Getting language settings
ul = navigator.userLanguage;
sl = navigator.systemLanguage;
bl = navigator.browserLanguage;

userLan  = 0;
sysLan   = 0;
brwsrLan = 0;

i = 1;
while( i<lan.length )
    {
    if( lan[i].indexOf( ul ) >= 0 )
        {//we got user language
        userLan = i;
        }
    else if( lan[i].indexOf( sl ) >= 0 )
        {//we got system language
        sysLan = i;
        }
    else if( lan[i].indexOf( sl ) >= 0 )
        {//we got browser language
        brwsrLan = i;
        }
    i++;
    }

comb   = 0;
resLan = 0;

if( userLan )  { comb += 4; resLan = userLan; }
if( sysLan )   { comb += 2; resLan = sysLan; }
if( brwsrLan ) { comb += 1; resLan = brwsrLan; }

switch( comb )
    {
    case 3:
    resLan = sysLan;
    break;

    case 5:
    resLan = userLan;
    break;

    case 6:
    resLan = userLan;
    break;

    case 7:
    resLan = userLan;
    break;

    default:
    }

//redirecting
Redirect( lan_page[resLan] );


Hoe betrouwbaar is dit script? En wat houden de volgende dingen precies in:

code:
1
2
3
ul = navigator.userLanguage;
sl = navigator.systemLanguage;
bl = navigator.browserLanguage;


systemLanguage lijkt de de taal van Windows, browserLanguage kan de taal van de accept language zijn of de taal waarin de browser is. Maar wat houd de "userLanguage" in?

Station van Gerwin Prins op Apple Music


Verwijderd

systemLanguage wordt gebruikt om services te runnen, en is de default als een nieuw user profiel wordt aangemaakt. userLanguage is de setting in de 'regional settings' in de control panel. Geen van beide is echt betrouwbaar. Bij velen (belgen althans) staat dit nog op English(United States).
Het volgende product is niet gratis, maar zal je misschien wel interesseren: http://www.cyscape.com/products/country/intro.asp

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:37

https://fgheysels.github.io/