Avatar billede jones279 Nybegynder
12. august 2005 - 11:13 Der er 30 kommentarer og
2 løsninger

Skift mellem sprog

Hejsa! Jeg vil gerne have muligheden for at kunne skifte mellem forskellige sprog. I min database har jeg lavet de samme tupler bare efterfulgt af forskellige landekoder, fx. nyhederDK og nyhederUK... Hvordan skifter jeg så mellem dem?

Jeg ved ikke om jeg egentligt burde have kombineret de 2 spørgsmål jeg har lavet, altså http://www.eksperten.dk/spm/639522 og det her... Det er muligt de hænger sammen... Så stor er min logiske sans heller ikke :)
Avatar billede dr_chaos Nybegynder
12. august 2005 - 11:18 #1
måske kan du bruge dette her:
http://www.eksperten.dk/spm/633748
også et sprog spørgsmål som minder om dit og som jeg hjalp med at svare på.
Avatar billede jones279 Nybegynder
12. august 2005 - 11:24 #2
Men hvordan skal databasen bygges op så det bliver rigtigt? Jeg tror ikke det passer helt med min så?!
Avatar billede keysersoze Ekspert
12. august 2005 - 11:32 #3
jeg ville have én side som kunne håndtere begge sprog - de statiske tekster kunne du lægge i databasen eller i en xml-fil.

Til dynamiske tekster (eller for den sags skyld også statiske tekster) kunne en database-opbygning være således;

SPROG
id
type

TEKSTER
id
sprog_id
tekst

går du så ind på en side kan du hente din tekster fra databasen hvor id fx er lig 57 og sprog er lig 2
Avatar billede dr_chaos Nybegynder
12. august 2005 - 11:33 #4
Når du smider data ind i din tabel kan du have en kolonne der angiver sprog.
f.eks. ved en nyhed kan du have en tabel struktur som ser ud på denne måde:
NyhedsID | overskrift | tekst | sprog

Hvor sprog kan varierer mellem f.eks. UK eller DK.
Når du så henter data så kan du bruger
SELECT * FROM Nyhed WHERE sprog ='"&Session("Sprog")&"'
Avatar billede jones279 Nybegynder
12. august 2005 - 11:40 #5
"Problemet" er, at jeg gerne vil have at det er nøjagtigt de samme nyheder der ligger på alle siderne... Hvis det så endelig er, at den ikke er oversat til svensk, skal den bare vise den engelske som standard!
Avatar billede keysersoze Ekspert
12. august 2005 - 11:49 #6
så går du ind og forsøger at hente den nyhed du vil vise - men er resultatet tomt (dvs EOF) henter du bare den engelske.
Avatar billede jones279 Nybegynder
12. august 2005 - 11:51 #7
Men hvordan får jeg databasen til at vide, at det er samme nyhed? Altså de kan jo ikke have samme ID...
Avatar billede keysersoze Ekspert
12. august 2005 - 12:17 #8
jo - det kan du sagtens for id og sprog_id er en sammensat nøgle og derfor vil selve posterne altid være unikke men id alene kan gå igen på flere nyheder.
Avatar billede jones279 Nybegynder
12. august 2005 - 12:19 #9
FUCKING SMART!!! SELVFØLGELIG!!!!... Der gik lige et lys op for mig :D Tak! Så kom jeg lidt videre... Så er det bare ASP'en der skal laves ordentligt :) Jeg er ikke helt sikker på, hvordan jeg får et klik på et flag til at blive til en parameter i adresselinien, så jeg kan trække den ned!
Avatar billede keysersoze Ekspert
12. august 2005 - 12:34 #10
<a href="?side=nyheder&lang=uk">link</a>

eller hvis du henter fra en database så fx

<a href="?side=nyheder&lang=<%=rs("lang")%>">link</a>
Avatar billede jones279 Nybegynder
12. august 2005 - 13:03 #11
Jamen hvordan får jeg paramteren til at blive "uk" hvis man klikker på det engelske flag?
Avatar billede keysersoze Ekspert
12. august 2005 - 13:12 #12
som skrevet ovenstående - enten hardkoder du linket ind i din href eller også hvis du henter dynamisk fra databasen så sætter du parameteren vha indholdet databasen.

Når dette så er gjort kan du enten huske valget vha en session eller også kan du føre paramteren med på alle dine links.
Avatar billede jones279 Nybegynder
12. august 2005 - 13:14 #13
Jamen det er jeg jo med på! Men jeg er ikke med på hvordan jeg får parameter overført fx lang=uk efter man har klikket på det engelske flag!
Avatar billede keysersoze Ekspert
12. august 2005 - 13:46 #14
når du siger overført - hvad tænker du så på præcist? hvordan du får det i adressebaren, hvordan du benytter parameteren på den side du kommer til eller?
Avatar billede jones279 Nybegynder
12. august 2005 - 13:53 #15
Altså for at være helt ærlig, har jeg ingen anelse om hvordan jeg kommer fra A-Z... Jeg har lavet min db nu, så jeg har en parameter der hedder id og en der hedder sprog... På en eller anden måde, skal jeg jo have knyttet de flag jeg har på siden til, at når man klikker på dem, så reloader siden - og der er et nyt sprog :)

Jeg afsætter lige lidt flere points, for det her kræver vist lidt forklaring :D
Avatar billede keysersoze Ekspert
12. august 2005 - 14:03 #16
du kan jo bare indsætte et flag sådan;

<a href="?side=nyheder&sprog=3">engelsk flag</a>

og på den side du så kommer til kan du til enhver en tid kalde variablen

request.querystring("sprog")

som i mit eksempel giver dig tallet 3
Avatar billede jones279 Nybegynder
12. august 2005 - 14:10 #17
Jamen jeg er ikke med på hvor jeg skal kalde den variable - og jeg er slet ikke med på, hvordan jeg får den til at sætte et standard sprog!? :)
Avatar billede jones279 Nybegynder
12. august 2005 - 14:10 #18
Jeg er lidt tungnem lige her :)
Avatar billede keysersoze Ekspert
12. august 2005 - 14:19 #19
<a href="?side=nyheder&sprog=uk">engelsk flag</a>

ovenstående linie er hardcode - det er det du skriver direkte ind i din html-kode i notepad eller hvad du end bruger

request.querystring("sprog")

Dette er måden hvorpå du får den værdi ud der står i din adressebar og den kan du gøre med lige præcis hvad du vil. fx kan du skrive

SIDESPROG = request.querystring("sprog")
If SIDESPROG = "" Then
  SIDESPROG = "da
End If

Så vil du overalt på siden kunne bruge variablen SIDESPROG til at bestemme hvilket sprog siden skal vises på - fx som her poster der hives ud af databasen;

SQL = "SELECT * FROM nyheder WHERE id = " & Request.Querystring("id") & " And sprog_id = '" & SIDESPROG & "'"
Avatar billede jones279 Nybegynder
12. august 2005 - 14:19 #20
Jeg ved heller ikke helt, hvordan jeg sørger for, at hvis nu jeg er inde på fx default.asp?page=kontakt - så behøver der jo på flaget kun at blive sat &sprog=uk - men hvad nu hvis man lige er kommet ind på siden og der bare står default.asp ? Så skal man jo pludselig skrive ?sprog=uk i stedet...?
Avatar billede jones279 Nybegynder
12. august 2005 - 14:20 #21
Arh okay, glem lige min besked før - tror det der gav lidt mening! Jeg leger lige :)
Avatar billede jones279 Nybegynder
12. august 2005 - 14:25 #22
Jeg må lige lege videre når jeg kommer hjem, jeg er sgu lidt lost i det her!!... :/
Avatar billede keysersoze Ekspert
12. august 2005 - 14:29 #23
Avatar billede jones279 Nybegynder
12. august 2005 - 14:36 #24
Takker... Jeg er med på alt det der - sidder bare fast i hvordan det skal skrive, så fx min menu fungerer! Altså at forside ændrer sig til Frontpage... Det fylder bare meget kode for så lidt!.... Og jeg kan ikke rigtig få det til at spille! :/
Avatar billede keysersoze Ekspert
12. august 2005 - 14:48 #25
hvorfor vil du have at forside skal ændre sig til frontpage?
Avatar billede jones279 Nybegynder
12. august 2005 - 14:48 #26
Ved godt det her er et meget meget dumt spørgsmål... Men tror det vil løse en del for mig ;)

Hvis jeg bare skriver fx. <%=RS("sprog")%> - så virker det ikke... Jeg skal vel skrive noget inden et eller andet sted på siden?! Det er lige på en blank asp side!...
Avatar billede jones279 Nybegynder
12. august 2005 - 14:49 #27
Sorry... Glem lige den ovenover - jeg tog fejl af den og request.querystring :D
Avatar billede jones279 Nybegynder
12. august 2005 - 14:50 #28
Ja, altså, sådan at når der står Forside i menuen - så når man klikker på det engelske flag skal det ændre sig til Frontpage...
Avatar billede jones279 Nybegynder
12. august 2005 - 14:51 #29
Går snart kold over, at det ikke virker - heh...
Avatar billede keysersoze Ekspert
12. august 2005 - 14:54 #30
hvis du vil have at du kan skifte mellem forside og frontpage bliver du nød til at gemme den værdi et eller andet sted. Jeg ville bruge en XML-fil men det er også muligt at gemme i databasen - og som med alt andet lade udtrækket blive styret af sprog-variablen.
Avatar billede keysersoze Ekspert
31. januar 2006 - 19:58 #31
lukketid?
Avatar billede dr_chaos Nybegynder
04. februar 2006 - 16:38 #32
Du mangler at lukke spørgsmålet.
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