Avatar billede tblaster Nybegynder
24. oktober 2006 - 14:46 Der er 7 kommentarer og
2 løsninger

Konverter HTTP_ACCEPT_LANGUAGE til landekode (da til dk)

Er der nogen der kan hjælpe med at konverter værdien som  Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") returner til en landekode?

For mit vedkommende returner den da men jeg vil gerne have dk.
Avatar billede tjaz Nybegynder
24. oktober 2006 - 14:47 #1
Replace(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"), "da", "dk")
Avatar billede tblaster Nybegynder
24. oktober 2006 - 14:55 #2
Den skal virke til samtlige sprog og ikke kun det danske. Hvis der ikke findes en smart funktion til det skal der nok oprettes 2 lister med værdierne som skal oversættes. Jeg har fundet en liste med alle landekoder (og landenavne) men kan ikke finde en der har de tilhørende http_accept_languages.

Landekoder:
"--", "AP", "EU", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BM", "BN", "BO", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "FX", "GA", "GB", "GD", "GE", "GF", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IO", "IQ", "IR", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "ST", "SV", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TM", "TN", "TO", "TP", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "YU", "ZA", "ZM", "ZR", "ZW", "A1", "A2"
Avatar billede tjaz Nybegynder
24. oktober 2006 - 14:58 #3
well jeg gjorde hvad du bad om ... men kender desværre ikke nogen "nem" løsning til samtlige landekoder
Avatar billede hiks Nybegynder
25. oktober 2006 - 21:40 #4
du kan vel smide de landekoder ind i et array eller tekstfil og løbe det igennem til du støder på værdien og så returnere den.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/indexsrv/html/ixuwebqy_7gfn.asp

her kan du se forkortelserne brugt i HTTP_ACCEPT_LANGUAGE.

/hiks
Avatar billede tjaz Nybegynder
26. oktober 2006 - 00:45 #5
tjah, når du har begge lister, så er det faktisk ikke så stort et problem :) ... så er det bare at få de forskellige landekoder til at stå overfor hinanden i de 2 arrays :)

<%
browserCodes = "DA,SV,EN-GB"
countryCodes = "DK,SE,UK"

arrBrowser = Split(browserCodes, ",")
arrCountry = Split(countryCodes, ",")

For t = LBound(arrBrowser) to UBound(arrBrowser)
    If UCase(arrBrowser(t)) &"" = UCase(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")) Then
          response.write UCase(arrCountry(t))
    End If
Next
%>
Avatar billede tjaz Nybegynder
26. oktober 2006 - 00:54 #6
du skal dog være opmærksom på at ovenstående løsning kun er gældende for IE, hvis du skal have den til at virke for FireFox virker nedenstående også i den danske version (så går ud fra at det er gældnede for andre sprog også, men om det er de samme landekoder de bruger ved jeg ikke - det er det for danmark):

<%
browserCodes = "DA,SV,EN-GB"
countryCodes = "DK,SE,UK"

arrBrowser = Split(browserCodes, ",")
arrCountry = Split(countryCodes, ",")
arrLanguage = Split(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"), ",")

For t = LBound(arrBrowser) to UBound(arrBrowser)
    If UCase(arrBrowser(t)) &"" = UCase(arrLanguage(0)) Then
          response.write arrCountry(t)
    End If
Next
%>
Avatar billede tblaster Nybegynder
26. oktober 2006 - 10:16 #7
Men er der nogen der kan hjælpe med at finde en liste som HTTP_ACCEPT_LANGUAGE returner?
Avatar billede hiks Nybegynder
26. oktober 2006 - 18:32 #8
kig lige igen på det link jeg sendte til dig!

/hiks
Avatar billede tblaster Nybegynder
26. oktober 2006 - 19:34 #9
Sorry, havde ikke lige set at du havde skrevet. Vi lige kigge på det men kan det passe at listen ikke er længere?
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
Kurser inden for grundlæggende programmering

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