Hvad med at flytte dine initialiseringer af labels ud i en sub, som du så kan kalde igen, når teksten skal ændres? Husk at teste for Page.IsPostBack i din OnLoad event.
Mht. at gemme sprogvalget, så kan du smide det i session variabel så det ikke bliver glemt mellem siderne.
Jeg har i min global.asax denne linie. Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("da-DK");
Den sætter standard sproget og den virker på alle undersider, hvordan kan det så være at når jeg sætter denne på en side at den ikke bliver ved med at virke (så snart jeg skifter side er den tilbage til den der er sat i global.asax)?
Hvordan kan jeg sætter sproget til det sprog der er valgt i browseren?
Du sætter sproget til browserens med følgende linier:
Threading.Thread.CurrentThread.CurrentCulture = Globalization.CultureInfo.CreateSpecificCulture(Request.UserLanguages(0)) Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo(Request.UserLanguages(0))
Og så vidt jeg lige kan forstå, så virker din kode da som den skal: Siderne anvender dén værdi, der er sat i global.asax, med mindre der er angivet noget andet på den enkelte side?
Der noget jeg ikke helt forstår, hvor kan jeg i global.asax sætte sproget uden at skulle ligge det i en session, mens jeg skal ligge det i en session når jeg skifter sprog på den enkelte side?
Hvis sprogvalget er individuelt, skal du ikke sætte det i global.asax: Så er det jo den enkelte besøgende der afgør det. Du skal med andre ord sætte brugerens valg på hver side, og den nemmeste måde at gemme valget fra side til side, er at smide det i en Session-variabel...
Når en bruger kommer ind på siden skal den vises på det sprog der er valgt i personens windows. Der skal også være mulighed for at ændre det sprog siden bliver vist i, dette kan gøres på de enkelte sider.
Når jeg har sat koden i global.asax:
Threading.Thread.CurrentThread.CurrentCulture = Globalization.CultureInfo.CreateSpecificCulture(Request.UserLanguages(0)) Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo(Request.UserLanguages(0))
Vises siden for den enkelte bruger i det sprog personens windows afvikles i.
Det jeg ikke helt forstår er hvorfor jeg skal sætte sproget på hver side når man i global.asax kan nøjes med at sætte det en gang.
Meningen med global.asax er, at det er gældende for hele websitet og alle dets brugere: Med mindre du angiver andet på de enkelte sider, er det den værdi fra global.asax der gælder. Hvis brugeren derfor vælger et andet sprog, bliver du jo nød til at sætte det på hver side som brugeren browser.
På den siderne laver du bare et tjek på, om brugeren har lavet et valg tidligere (dvs. din Session-variabel med sprog-valget er tom), og sætter sproget for siden derefter.
I hvilken event i global.asax sætter du sproget? Application_Start eller Session_Start?
Hvis brugeren kan vælge sprog på alle siderne, kommer du ikke udenom at skulle sætte sproget på et eller andet tidspunkt på hver eneste side: Derfor kan du ligeså godt droppe koden i global.asax, og lave en sub der ordner det på hver side. Det er forresten oplagt at ligge den slags funktionalitet en baseclass, som du så nedarver dine aspx-siders codebehind fra.
Jeg vil bare gerne forstå hvorfor jeg i global.asax kan sætte sproget en gang også slår den igennen på alle siderne, uden at jeg skal bruge session eller nogen anden for midlertidig variabel
Jeg tror jeg bruger cookies til at gemme det valgt spog. Kan man i asp.net undersøge om der kan oprettes en cookie på client maskinen, og hvis ikke der kan så bruge session istedet?
Nå men eller blev det vel lukketid,
jakobg>> En stor tak for dit ihærdige forsøge på at skære tingene ud i pap for mig (forstår det stadig ikke helt :-)).
Request.Browser.Cookies viser om browseren understøtter cookies, men ikke om de rent faktisk er slået til: Den bedste måde at være HELT sikker på, er at oprette en cookie, og så forsøge at læse den igen fra en anden side. Ikke så kønt, men effektivt... Du kan evt. Redirect'e til den side, som tjekker din cookie.
Og det var vist et helt nyt spørgsmål? :)
Synes godt om
Ny brugerNybegynder
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.