Avatar billede whyme Nybegynder
19. juli 2004 - 17:15 Der er 10 kommentarer og
1 løsning

Bedst metode til at have flere sprog på et website?

Hejsa.

Jeg vil gerne lave et website med 2 sprog. Engelsk og Dansk.

Jeg har besluttet mig for at det skal være MySQL database baseret. Således at hvis man skriver en nyhed ind i systemet, skal man skrive den på dansk og engelsk, inden man submitter.

Men hvordan vil i foreslå tabellerne kunne se ud, for at kende forskel på sprog? (kunne være jeg vil tilføje eks. norsk/svensk senere)

og hvordan vil en funktion være, som man vil inkludere på siderne, som henter det rigtige sprog fra databasen, hvorefter jeg kan udskrive de rigtige tekster på de rigtige sider?

Håber i forstår hvad jeg mener - på forhånd tak
Avatar billede bufferzone Praktikant
19. juli 2004 - 17:23 #1
Det kommer lidt an på hvad du mener med bedst. Jeg kender ikke ret meget til PHP, men er det søgemaskiner vi taler om, og ønsker du at gøre dig godt i både engelske og danske søgemaskiner, så bør du generere to forskellige sites. Et dk site til det danske og et com eller co.uk site til de engelske. Selve databasen kan godt være samplaceret, men det eren fordel hvis du har forskellige IP adresser til de to sites
Avatar billede michael_stim Ekspert
19. juli 2004 - 17:26 #2
Jeg bruger sessions på min side, og adder i databasen 3 gange via en adminside hver gang jeg opdaterer.
www.stimose.se
noget du kan bruge?
Avatar billede whyme Nybegynder
19. juli 2004 - 17:52 #3
bufferzone: jeg kan godt se din point. Det er dog ikke internationalt brug, det er mere til folk som bedre forstår engelsk i danmark, end dansk - kald det en service.

michael_stim: Det ser ud som noget jeg kunne bruge... men indholdet er ikke det samme hvis man tager svensk/engelsk, som i den danske version.... er det fordi du ikke har skrevet noget deri, eller?
Avatar billede jammerlab Nybegynder
19. juli 2004 - 17:57 #4
Har lavet en hjemmeside på samme måde som du ønsker... jeg valgte at bruge metoden at lave en lang=$lang i alle links... så hvis lang=eng så printer den engelsk text og omvendt med lang=dk... men jeg blev også forslået at lave det i 2 mapper... www.domæne.dk/eng/ www.domæne.dk/dk/
Avatar billede michael_stim Ekspert
19. juli 2004 - 18:11 #5
Ja,dovenskab ;o) Lavede först Engelsk/Svensk-siderne senere.
Avatar billede michael_stim Ekspert
19. juli 2004 - 18:18 #6
Jeg har gjordt som sådan at jeg har en dropdownbox  der välger sprog. Så er det bare INSERT INTO $tabelnavn (variabel fra DD-Box) (räkke1, räkke2) VALUES ($something, something2).
Når man så trykker på flagene starter man en session:
session_start();
require_once('admin/open_connection.php');
if(isset($_SESSION['lang']) && $_SESSION['lang']=="danish")
    {
        $query="SELECT * FROM velkommen" or die(mysql_error());
    }

    else if(isset($_SESSION['lang']) && $_SESSION['lang']=="swedish")
    {
            $query="SELECT * FROM Svelkommen" or die(mysql_error());
    }

    else if(isset($_SESSION['lang']) && $_SESSION['lang']=="english")
    {
            $query="SELECT * FROM Evelkommen" or die(mysql_error());
    }

    else
    {
        $query="SELECT * FROM velkommen" or die(mysql_error());
    }
Avatar billede michael_stim Ekspert
19. juli 2004 - 18:21 #7
if (isset($_POST['english_x']))
{
    $_SESSION['lang']='english';
}
if (isset($_POST['swedish_x']))
{
    $_SESSION['lang']='swedish';
}
if (isset($_POST['danish_x']))
{
    $_SESSION['lang']='danish';
}

Dette er koden for "tryk på flag"
Avatar billede whyme Nybegynder
19. juli 2004 - 21:34 #8
Det vil sige at du har 3 tabeller?

alså en
svelkommen (svensk)
evelkommen (engelsk)
velkommen (dansk)
?

Hvordan har du lavet tabellen?

laver du så bare ALLE steder hvor der er tekst en:

<?php
  echo $row[tekst]
?>
?

det skal vel være i en form for array man udskriver for eller noget?... hvordan er du sikker på du udskriver det rigtige fra tabellen til det rigtige sted på dit site?
Avatar billede michael_stim Ekspert
19. juli 2004 - 21:49 #9
require_once('admin/open_connection.php'); //Åbner databasen
$query="SELECT * FROM gastebog ORDER BY id DESC" or die(mysql_error());//Bestemmer hvad der skal hentes fra hvilken tabel
$result=mysql_query($query,$länk);//Laver et resultatset
//Som du så i sqlqueryen er det resultatet fra gästebog der skal hentes

//Laver en loop der körer igennem så länge der er resultat i databasen
while ($row=mysql_fetch_array($result)) {
        $navn=$row['navn'];//Henter resultat fra hver räkke og lever dem til variabler
        $epost=$row['epost'];
        $links=$row['link'];
        $dato=$row['dato'];
        $tekst=nl2br(htmlentities($row['tekst']));
        $streng = str_replace('http://', '', $links);

//Så skriver du dem bare ud med en:
$echo $varabelnavn
}
Avatar billede whyme Nybegynder
19. juli 2004 - 21:57 #10
Jeg har sådan en funktion her:
function t($nr) {
    if ($_SESSION['lang']) {
        echo $_SESSION['lang'][$nr];
    } else {
        // skal laves som if, hvis der er flere sprogfiler
        $setsprog = "da.txt";
        $fh = fopen("lang/$setsprog","r");

        while ($line = fgets($fh)) {
            $tekst = explode(": ",$line);
            $txt[$tekst[0]] = $tekst[1];
        }
        session_register('language');
        $_SESSION['lang'] = $txt;
        echo("$txt[$nr]");
    }
}


Så kan man udskrive tekst via:

echo t(3);

så udskriver den hvad der står i sprogfilen på linie 3.

Det er lidt alá det jeg skal bruge, men bare database baseret - hvordan vil jeg skulle lave det?
Avatar billede whyme Nybegynder
30. juli 2004 - 23:51 #11
lukker
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