webForumDet fria alternativet

Bygga sida med stöd för flera språk

PHP

8 svar · 751 visningar · startad av Dies_Irae

Medlem sedan aug. 2001145 inlägg
Frågan#1

Hallå,

Tänker höra om ni har någon erfarenhet av detta eller någon idee hur man på ett så effektift sätt som möjligt kunna bygga en sida där man kan lägga till flera språk senare.

Medlem sedan juni 20006 031 inlägg
Medlem sedan aug. 2001145 inlägg
#3

Tackar, en metod. Hade gärna sätt fler

Medlem sedan juli 20033 147 inlägg
#4

Rent spontant hade jag löst det med databaser.
En tabell som innehåller kategorier, och en för språkfälten.

tbl_lang_cat
id (int)
category (varchar)

tbl_lang
catid (int)
description (varchar)
phrase (longtext)

/r Sen hade jag nog byggt upp det med arrayer utifrån databasen.
Typ:

while($row = mysql_fetch_assoc($sql)) {
    $language[$row['description']] = $row['phrase'];
}

Dock väldigt otestat. :)

Osäker på hur fnuttarna ska se ut, har ingen möjlighet att testa.
Men du förstår principen. :)

Medlem sedan aug. 2001145 inlägg
#5

Jag va lite inne på att ha de i dbn också faktiskt.

Skulle vara ganska lätt att göra ett script för att översätta till ett annat språk då man bara kollar vilka kategorier som inte är översatta och generera en sida där någon kan sitta och skriva översättningarna som inte är gjorda men vet inte om de är snabbt nog att ha all text i databasen sådär.

Medlem sedan juli 20033 147 inlägg
#6

Dies_Irae skrev:

men vet inte om de är snabbt nog att ha all text i databasen sådär.

Det beror helt på hur du kodar.

Medlem sedan aug. 2001145 inlägg
#7

Melea, skulle du vilja vara lite mer specifik på hur du skulle göra för att få de bra nog?

Medlem sedan juli 20033 147 inlägg
#8

Uppriktigt sagt är jag inte superbra på PHP, men jag kan göra ett försök.

tbl_lang (innehåller olika språk)
id (int)
language (varchar)

tbl_lang_cat (innehåller olika kategorier, ex. index, news, links)
id (int)
langid (int)
category (varchar)

tbl_lang_phrase (innehåller fraser för de olika kategorierna, ex. catid = 1, description = welcome, phrase = välkommen)
catid (int)
description (varchar)
phrase (longtext)

Sen hade jag byggt upp strukturen så att man sparar vilken språk man använder i en kaka.
Sedan kollar man vilken sida man är inne på, och kör sql-frågan utifrån den sidan, och hämtar alltså endast de postar i tbl_lang_phrase som tillhör den aktuella sidan.
Efter det hade jag kört en loop och lagt alla fraser i en array, som jag beskrev i mitt tidigare inlägg.

while($row = mysql_fetch_assoc($sql)) { 
    $language[$row['description']] = $row['phrase']; 
}

Och skrivit ut dem såhär:

echo $language['welcome'];

Hoppas det inte blev för luddigt. :)

Medlem sedan aug. 2001145 inlägg
#9

De låter som en bra ide, tackar.

265 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)