Avatar billede dank Nybegynder
05. april 2004 - 21:36 Der er 6 kommentarer og
3 løsninger

bedste metode til at håndtere site med mange sprog

Hvad er jeres forslag til at lave et website der indeholder mange sprog. Findes der evt. en class eller lignende som kan anbefales.

Nogen geniale idéer? :)
Avatar billede phpwiz Nybegynder
05. april 2004 - 21:44 #1
jeg ville foreslå at have al tekst i en database, i 1 tabel pr. sprog.

tabel 1 : language_dk
indeholder : id, anchor, tekst

id (auto_increment)
anchor (text)
tekst (text)

eks :

tabel 1: language_dk
id              anchor                tekst
1                overskrift            Dette er min side
2                kontaktmig            mit navn og adresse og email


tabel 2: language_en
id              anchor                tekst
1                overskrift            This is my header
2                kontakt mig            This is my name, adress and email

got the idea ?
Avatar billede phpwiz Nybegynder
05. april 2004 - 21:44 #2
hov fejl :

tabel 2: language_en
id              anchor                tekst
1                overskrift            This is my header
2                kontaktmig            This is my name, adress and email
Avatar billede retry Nybegynder
05. april 2004 - 21:46 #3
Avatar billede besoft Nybegynder
05. april 2004 - 23:12 #4
Det bedste er klart at have alle tekster enten i en database, eller i hver sin tekst fil og include dem.
I tilfældet med databasen, er det da lidt kikset at have en tabel pr sprog. Hvorfor ikke udnytte database mulighederne, så der fra starten kun skal oprettes 2 tabeller, hvorefter du kan oprette så mange sprog som du har brug for, uden at skulle pille ved databasen.

Tabel 1 : LANGUAGES (lang_id [int, auto_increment], language [varchar 50])
Table 2 : CONTENT (lang_id [int], text_id [int, auto_increment], text)

Første felt i table 2 henviser til hvilket sprog den pågældende række er skrevet i.
Med fx en cookie, eller en fast variable i din kode, kan du lave din sql så den henter det ønskede sprog.

Tabellen med tekst kan naturligvis udbygges efter behov. Eller også skal du gå endnu videre med flere niveau.

Den lette løsning er med tekst filer du includer. Een tekst fil pr sprog... tekst_da.inc, tekst_en.inc, tekst_de.inc. Hvis du fx bruger en cookie til at huske hvilket sprog en besøgende sidst valgte, kan du let lave en

include("tekst_".$_COOKIE[lang].".inc");

Så fremt din cookie med sproget er gemt som "lang".

Din include fil kan laves enten med DEFINE() eller $str_tekst, alt efter hvad du lyster.

Fx.:
tekst_da.inc =
$index_overskrift = "Min overskrift";
$index_subheader = "Velkommen til min side....";
$kontakt_overskrift = "Kontakt mig";
$kontakt_subheader = "Benyt denne formular...";

tekst_en.inc =
$index_overskrift = "My header";
$index_subheader = "Welcome to my page....";
$kontakt_overskrift = "Contact me";
$kontakt_subheader = "Use this form...";

Jeg har selv benyttet både database modellen og tekst filerne. På mindre sites med begrænset antal sider, er en tekst file klart at foretrække (pftest dog med en tekst fil pr side.

Større sites er lettest at håndtere med en database og et webbaseret interface.

Held og lykke.
Avatar billede sukos Juniormester
06. april 2004 - 00:07 #5
Jeg er til ramlev.dk.

Hellere ha' en table til hvert sprog, (forside, forside_en, forside_se, forside_de)

if(isset($_COOKIE["lang"])) {...........................................
Avatar billede sukos Juniormester
06. april 2004 - 00:17 #6
æhhh,
tables = page_, page_en, page_se, page_de

if(!isset($_COOKIE["lang"])) {
$lang = "";
}else{
$lang = $_COOKIE["lang"];
}

$get = ("SELECT * FROM `page_". $lang ."`") or die (mysql_error());

æhh, navnet "forside" er jo nok lidt misvisende! :O)
Avatar billede dank Nybegynder
06. april 2004 - 00:52 #7
besoft> God og rimeligt gennemtænkt forklaring. Dog hælder jeg i sidste ende nok mest til ramlev/sukos løsningen med et lille plus for sukos's lille eksempel.

En anden fordel er at jeg bedre kan styre index'er, hvilket kan være en fordel ved mange sprog, hvor jeg føler jeg bedre kan performance tune i sidstnævne løsning. Selvom der selv. ikke er mange inserts/updates så kunne der i sidste ende (med 200 sprog) måske være retfærdighed i, at lave flere index'er på engelsk end på zwahili - hvad ved jeg...? :) I alle tilfælde kan jeg bedre lide muligheden for at skalere og ikke mindst muligheden for at være ændre ting == flexibelt.

Opretter i alle svar, så er der lidt point for jeres indsats?
Avatar billede sukos Juniormester
06. april 2004 - 06:35 #8
æhh, ok!
Avatar billede besoft Nybegynder
06. april 2004 - 08:33 #9
ok, - men fordel nu dine points efter hvor du har fundet mest hjælp (jeg er ikke ivrig efter 'ufortjente' point :-) )
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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