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:
Hoe betrouwbaar is dit script? En wat houden de volgende dingen precies in:
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?
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?