Website met meerdere talen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

J C

J C

10/01/2022 18:25:00
Quote Anchor link
Ik ben een website aan het maken die makkelijk in meerdere talen beschikbaar moet worden.

Nu heb ik ergens in mijn ontwerp een fout gemaakt.

De interne links zijn namelijk in het Nederlands.

Het domein adres bepaald de taal. (.nl is voor Nederlands en .com in voor Engels en later nog andere). Maar ik weet niet of ik hierop kan selecteren. De makkelijkste manier is om achter het domein een landcode te zetten (/NL of /EN) maar wellicht is er een nettere manier.


Edit:
Ik wil daar dit script voor gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
if ($_SERVER['HTTP_HOST'] == 'stage-drapes.nl'){
    $lang='NL';
}elseif ($_SERVER['HTTP_HOST'] == 'stage-drapes.com'){
    $lang='EN';
}elseif ($_SERVER['HTTP_HOST'] == 'stage-drapes.es'){
    $lang='ES';
}else{
    $lang='EN';
}

Alle pagina's zijn geschreven zonder tekst, maar met variabelen die verwijzen naar de tekst in de taalbestanden.

Zo kan ik makkelijk foto's en layout aanpassingen maken zonder dat ik de scripts hoef aan te passen.

Maar nu zit ik te stoeien met de inerne links. zoals https://stage-drapes.nl/molton-gordijnen#
In het engels zou hij worden https://stage-drapes.com/molton-curatains#

Toch moeten ze verwijzen naar hetzelfde script. In dit geval $path."pages/molton.php; en moet hij het taalbestand $path."languages/".$lang."/molton.php openen.


Dit is de sql die ik heb gemaakt, hij is nog niet af. Want ik moet nog bedenken hoe hij het domein herkent en dan het juiste tekstbestand selecteerd.

Maar de grootste vraag die ik heb zijn de links op de website. Hoe zou ik dit moeten aanpakken.

dit is de structuur van de 2 tabellen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
CREATE TABLE `website_podium_tekst` (
  `id` int(11) NOT NULL,
  `link` varchar(255) NOT NULL,
  `tekst` varchar(255) NOT NULL,
  `include` varchar(255) NOT NULL,
  `metadescription` text NOT NULL,
  `level` int(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

ALTER TABLE `website_podium_tekst`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `website_podium_tekst`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;

CREATE TABLE `website_podium_titel` (
  `id` int(11) NOT NULL,
  `internlink` int(11) NOT NULL,
  `lang` varchar(2) NOT NULL DEFAULT 'NL',
  `titel` varchar(100) NOT NULL,
  `menu` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `website_podium_titel`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `website_podium_titel`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=129;
COMMIT;


En dit is de sql die ik wil gebruiken

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
$maintekst=false;

$mainqry = "
    SELECT
        website_podium_tekst.link,
        website_podium_titel.internlink,
        website_podium_titel.titel,
        website_podium_tekst.include,  
        website_podium_tekst.tekst,
        website_podium_tekst.metadescription,
        website_podium_titel.id                                
    FROM
        website_podium_tekst
    INNER JOIN
        website_podium_titel
    ON
        website_podium_titel.internlink=website_podium_tekst.id
    WHERE
        website_podium_tekst.link=?
            ";        
    $stmt = $connection->prepare($mainqry);            
    $stmt->error;
    $stmt->bind_param('s', $pagina);
    $stmt->execute();
    $result = $stmt->get_result();
    $maindata = $result->fetch_assoc();
    $stmt->close();    
    
    if(isset($customtitel) && $customtitel !=''){
    $maintitel = $customtitel;
    }elseif(isset($_GET['pagina']) && $_GET['pagina'] !='' && $maindata['titel'] !=''){
    $maintitel = $maindata['titel'];
    }else{
    $maintitel = 'Stage & Drapes support';
    }

    include_once($path.'/languages/'.$lang.'/algemeen.php');

    if($maindata['metadescription'] !=''){
    $metadesc = 'Stage & Drapes support, '.$maindata['metadescription'];
    }else{
    $metadesc = 'Stage & Drapes support, het bedrijf voor al uw podia en theaterdoeken';
    }


    
    //bestand selecteren uit taal map
    if(!empty($maindata['tekst'])){
        $langfilename = $path."languages/".$lang."/".$maindata['tekst'];
        if (file_exists($langfilename)){
        include_once($langfilename);    
        }else{
        $errorcode=102;
        echo 'Het textbestand '.$langfilename.' is niet gevonden';
        }
    }

    // Algemeen script selecteren uit paginamap
    if(!empty($maindata['include'])){
        $paginafilename = $path."pages/".$maindata['include'];
        if (file_exists($paginafilename)){
        include_once($paginafilename);
        }else{
        $main .='Het script '.$maindata['include'].' is niet aanwezig';
        }
    }
?>



Toevoeging op 10/01/2022 18:26:51:

Als mijn denkwijze nou helemaal verkeerd is hoor ik dat ook graag. Ik kan nu nog alle kanten op.


Toevoeging op 10/01/2022 20:02:50:

dit topic mag weg, ik ga het tabel opnieuw opbouwen waarbij dit tabel website_podium_titel ook de link in zijn eigen taal krijgt.

Edit:
Nee, het topic zal vanzelf wel omlaag zakken.
Gewijzigd op 10/01/2022 21:04:20 door - Ariën -
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.