Halloj. Äsch, efter lite pulande fick jag ordning på det, av någon anledning så fick jag ju bara "sv" som sträng när det var svenskt och "en-US" när jag ställde in IE på det. därför att IE i sin stora vishet bestämt sej att svenska/sverige är sv och svenska/finland är sv-FI För att ge en förklaring till hur tex localization i ASP.Net fungerar så kanske saker och ting blir lättare att förstå, eller inte vet jag ;) Eftersom jag själv "sitter i" sv-FI så måste jag bara påpeka ett grovt sakfel. Mange takk. Simon: "Få knas på" har jag aldrig hört förut. <b>Har varit snäll och ändrat nu...</b> Det där är en mycket bra fråga. Jag vet inte vart jag fått det ifrån, men jag antar att jag fått det ifrån min barndom någongång c:a 3 mil sydväst om Jönköping.Få knas på vilket språk webbläsaren använder.
Försöker få lite knas på UICulture och Culturebegreppen.
Sidor med fasta labels är översatta och använder sidnamn.aspx.sv-SE.resx och motsvarande för
engelska. Funkar klockrent MEN:
Nu har jag en sida där själva informationen ligger i en databas. Jag jag har följande struktur:
------------------------------------------
ID | pID | PageText | Lang |
------------------------------------------
1 | Info | Texten här | sv-SE |
------------------------------------------
2 | Info | Text here | en-US |
------------------------------------------
Hur fanken lyckas jag få till det så jag får fram rätt språk på rätt sida så att säga?
Jag har försökt med:
<code>
Dim sCulture As String
sCulture = System.Threading.Thread.CurrentThread.CurrentUICulture.ToString()
If sCulture = "sv-SE" Then
' VISA DEN SVENSKA TEXTEN
Else
' VISA DEN ENGELSKA TEXTEN
End If
</code>
men jag får ALLTID den engelska texten av någon anledning som jag inte riktigt förstår.
Någon som förstår vad jag menar och vet hur man löser det?
//JohannesSv: Få knas på vilket språk webbläsaren använder.
Varför blir det så?
//JohannesSv:Få knas på vilket språk webbläsaren använder.
För övrigt så för att få det att funka måste du söka efter enbart tex sv om du inte får en exakt match på sv-SE.Sv:Få knas på vilket språk webbläsaren använder.
Som grund borde det finnas en standard översättning. I reusrshanteringen som finns i .Net så är det tex filen resource.resx. Denna fil kanske oftas innehåller tex Engelska, eller Svenska.. Se denna standard som en root mapp i en applikation. Under denna finns översättning per språk, men på rot nivå. Vad jag menar med rot nivå är tex "SV", "EN" etc. Där lägger vi rätt översättning per rätt språk. Sedan finns det underspråk (olika kulturer), tex vi har "sv-Fi" (svenska-finska), "en-US" (Amerikansk-engeleska). Vi har även "sv-SE" som är sveriges Svenska. Så om vi ser på det hela har vi följande struktur:
default - Sv - sv-SE
| |__ sv-FI
|
| - En - en-US
|__en-XX
Om vi nu går över till resurshanteringen i .Net så får den en kultur, tex "sv-SE". Den använder sig av den för att se om den hittar filen resurs.sv-SE.resx, hittar den inte den filen så klättrar den upp i strukturen en nivå till SV och letar efter resurs.sv.resx. Hittar den inte den så tar den resouce.resx filen (standard filen). Finns inte den, så smäller det. Som standard i tex ASP.net 2.0 så skickas det språk som användaren har ställt in i browsern, tex Internet Explorer har en Language option där det står tex "sv-SE" eller något annat kul (Tools->Internet Options -> Languages) till servern. Denn a kultur får sedan tråden.
Så det är grunden till hur det fungerar. Om man nu bygger sin egna hantering av språk, så kan det vara bra att följa samma struktur.
Det finns lite att läsa om resurshanteringen i ASP.Net 2.0 på min blog:
http://fredrik.nsquared2.com/ViewPost.aspx?PostId=92
/Fredrik Normén [ASP.Net MVP]
blog: http://fredrik.nsquared2.comSv: Få knas på vilket språk webbläsaren använder.
<b>tex vi har "sv-Fi" (sverige-finska)</b>
Detta är alltså <b>svenska</b> i <b>Finland</b> och <b>inte</b> finska i SverigeSv: Få knas på vilket språk webbläsaren använder.
Det där var hjälpsamt, jag har försökt läsa så gått det går i mina stora röda böcker, men det står inte så jäkla mycket där tycker jag,
så man har fått chansa en del. Det funkar däremot förvånansvärt bra än så länge. :)Sv:Få knas på vilket språk webbläsaren använder.
Sorry ;(
Hoppas du inte tog illa upp ;) Har varit snäll och ändrat nu...
/Fredrik Normén [ASP.Net MVP]
blog: http://fredrik.nsquared2.comSv: Få knas på vilket språk webbläsaren använder.
Googlade och fick 175 träffar. De flesta verkar vara i betydelsen fått problem med men några har samma betydelse som här (dvs få koll på).
Bara nyfiken på om det är en dialekt, försvenskat uttryck eller något nytt.Sv: Få knas på vilket språk webbläsaren använder.
Tja "svenska-finska" är ju inte mycket bättre :p
Men nej, inte tog jag illa upp :)Sv:Få knas på vilket språk webbläsaren använder.
//Johannes