Hej Skulle kanske löst det så här: Är inte särskilt smidigt att dela upp det på olika tabeller/databaser/kolumner... Lägg allt i en tabell (typ nedan) Fördelen är att det lätt går att lägga till språk (du behöver inte ändra databas-struktur..).. Okey.. Jag publicerade en lösning på Planet Source Code för ett par år sedan, http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=7131&lngWId=4 Ja du... Det är egentligen ganska lätt att fixa dessa saker... Jag hade ändvänt mig av följande lösning jodå, upplägget i databsen är jag med på! jag kör en tabell med language_id, page_id, rubrik, text.... Det tror jag nog fungerar men sen om jag hämtar alla poster med page_id = 1 säger vi.. Hur ska jag då skriva ut dessa poster på sidan. Läs in poster i en array med GetRows. Sedan är det enkelt att hitta rätt text. Jag sorterar posterna på id, så att jag kan använda binärsökning för att snabbt hitta rätt post. okey så array. Getrows? är det en mothod till arrayen eller??+3 språk, så bygga sidan på en databas??
Ska göra en ganska enkel websida men ändå skulle jag vilja ha den på 3 olika språk, jag ska redan använda mig av en databas för lite olika funktioner på sidan så jag tänkte att man kunde bygga hela sidan på en databas och en databas för varje språk..
Men vet inte riktigt hur man ska bygga upp det eller hur databasen ska vara uppbyggd?
ska man typ ha en kolum som heter "typ" och en som heter innehåll. alltså typ:
tbl_svenska
typ innehåll
-----------------------------------------------------
rubrik_första_sida Välkommen
välkomms_text Hej och välkommen till min sida
Jag tycker inte detta verkara vara ett bra sätt?? Någon som kan ge mig lite tips och trådar för att lyckas med detta??
MvhSv: 3 språk, så bygga sidan på en databas??
TabellTexter
Sida | Swe | Eng | Fra
Sedan har du dina texter på resp rad
start_sida | Välkommen | Welcome | [Välkommen på franska]
Sedan håller du i en session vilket språk som är valt och hämtar texten med hjälp av SQL
Tex man väljet engelska
Session("lang") = "eng"
Sql:
SELECT Session("lang") FROM TabellTexter WHERE sida = 'start_sida'Sv: 3 språk, så bygga sidan på en databas??
Man kan t ex ha en session-variabel som lagrar vilket språk som skall visas, och lägga vilken sida som skall hämtas i querystring på länkar..
så om sessionvariabeln för språk är 2 och du ska hämta sida 1 så hämtar du rubrik och text där sida=1 och språk=2...
<code>
ID(löpnummer) Sida Språk Rubrik Text
1 1 1 Välkommen bla bla bla
2 1 2 Willkommen bla bla bla
3 1 3 Welcome bla bla bla
4 2 1 bla på sv bla bla
5 2 2 bla på ty bla bla
6 2 3 bla på eng bla bla
</code>
fast med lite snyggare namn.. =) Sv: 3 språk, så bygga sidan på en databas??
det tycker jag ser ganska vetigt ut.. Funderar bara på hur jag ska göra för att skriva ut allt på sidan sen . Om jag med hjälp SQL hämtar alla poster för sida=1 och språk=1 då måste jag ju skriva ut alla poster i rätt ordning på sidan..
HUr ska man lösa det då?Sv: 3 språk, så bygga sidan på en databas??
Demot är för Access men jag har kört den i SQL-Server för ett par kunder. Bl.a. www.camfilfarr.com som nu kör 23 länder 25 språk.
Har även skrivit ett inlägg om det på http://www.pdc.se/blog/DisplayEntry.aspx?eid=27Sv: 3 språk, så bygga sidan på en databas??
<b>tblLanguage</b>
LangId (auto)
LangName
----------------
1 Svenska
2 English
3 Norsk
----------------
<b>tblPages</b>
PageId (auto)
PageName
----------------
1 Startsidan
2 Nyheter
3 Gästboken
----------------
<b>tblHeadlines</b>
HeadId (auto)
HeadLang
HeadPage
HeadHeadline
----------------
1 1 1 Välkommen
2 2 1 Welcome
3 3 1 Vilkommen
4 1 2 Nyheter
5 2 2 News
o.s.v.
----------------
<b>tblNews</b>
NewsId (auto)
NewsLang
NewsPage
NewsHeadline
NewsText
NewsDate
----------------
1 1 1 Test Testar att skriva in en nyhet 2004-06-26
2 2 1 Test Testing to write som news 2004-06-26
3 3 1 Test Tester att skrive in en nyhet 2004-06-26
----------------
Så tycker jag nästan är det bästa sättet att göra då man ska göra en flerspråkig sida.
Sen så sätter du ju bara in:<code><%
If Session("lang") = "" Then
Session("lang") = "1"
End If
strSQL = "SELECT Session("lang") FROM tblHeadlines WHERE HeadPage=1
%></code>På varje sida men om du skulle använda samma sida till alla sidorna så är det ju bara att byta ut 1:an mot Request.Querystring("page") eller nåt sånt.Sv: 3 språk, så bygga sidan på en databas??
En tabell för de olika fälten som skall innehålla text
<code>
ID | Sida | Textfält
______________________
1 minSida.asp Rubrik
2 minSida.asp Brödtext
</code>
Och sist en tabell för de olika språken
<code>
ID | Språk | Text
____________________
1 svenska hej hej
2 svenska välkommen
</code>
Här kan du nu lägga till hur många texter du vill o hur många språk du vill.Sv: 3 språk, så bygga sidan på en databas??
t.ex om jag först vill skriva ut rubriken på sidan, óch sedan välkomms texten. måste jag typ hålla med RS.MoveNext och sånt? när jag kör databs frågan så kanske välkoms texten hämtas följt av rubriken på sidan!! men jag ska ju skriva rubriken först ju.....
Hade för mig att det finns något som heter dictionary? kan man ha vilkor för vilken post man vill hämta ur en sådan??Sv: 3 språk, så bygga sidan på en databas??
Sv: 3 språk, så bygga sidan på en databas??
Kanon sjysst om du vill ge ett kod exempel på hur det ser ut!
Mvh