Meertalige website met PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom Corremans

Tom Corremans

07/10/2012 16:04:21
Quote Anchor link
Hallo,

Ik moet voor mijn eindwerk een website maken die meertalig is, in het Frans, Nederlands en Engels. Ik heb alle vertalingen in mijn mysql database gestopt in de tabel "tblWebsite" met een veld "id" (Auto increment), "tekstNederlands", "tekstEngels", "tekstFrans". Ik heb alle tekst uit mijn website vertaald en in de velden gestopt. Elke tekst heeft zijn eigen ID uit het veld "id". Nu wil ik de talen laten veranderen door op links te klikken die ik bovenaan mijn website heb gezet.

Quote:
<div class="talen">
<ul>
<li><a href="#" class="nl">Nederlands</a></li>
<li><a href="#" class="en">English</a></li>
<li class="last"><a href="#" class="fr">Fran&ccedil;ais</a></li>
</ul>
</div>


Ik heb ook een bestand dat connectie maakt met mijn databank.

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
include("php/db.php");
?>


Alleen weet ik nu niet precies hoe ik de juiste tekst uit mijn databank moet halen. Mijn gedachtegang was een variabele maken, bv. als de variabele 1 is moet de tekst veranderen naar het Nederlands, als de variabele 2 is moet de tekst veranderen naar Engels en als de variabele 3 is moet de tekst veranderen naar Frans. De pagina mag refreshen als er op de links wordt geklikt. Ik zou meerdere pagina's kunnen maken maar mijn eindwerk vereist dat ik het uit de databank haal. Weet iemand hoe ik dit het beste zou kunnen doen?

Bedankt!

Tom
Gewijzigd op 07/10/2012 16:04:46 door Tom Corremans
 
PHP hulp

PHP hulp

25/12/2024 06:14:41
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/10/2012 18:14:39
Quote Anchor link
geef je kolommen een naam net de taal extensie bv. tekst_nl.
Dan kan je dit doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$lang
= (isset($_GET['lang']) ? $_GET['lang'] : 'nl';
$column = 'tekst_' . $lang;
$sql = "SELECT " . $column . " FROM jouwtabel WHERE id = 1";
?>
 
Jaron T

Jaron T

07/10/2012 18:21:57
Quote Anchor link
Ik zou persoonlijk nooit voor een meertalige oplossing kiezen waar de verschillende talen in kolommen staan binnen je tabel. Dit is echt een drama als je meerdere velden/talen krijgt.

Je kan het beter zo aanpakken;

text
- id
- url

text_language
- id
- text_id
- language_id
- title
- content

language
- id
- name

Ahv bovenstaande tabellen kan je met 1 query (joins) de correcte inhoud dynamisch krijgen
 
Tom Corremans

Tom Corremans

07/10/2012 18:22:56
Quote Anchor link
Ger van Steenderen op 07/10/2012 18:14:39:
geef je kolommen een naam net de taal extensie bv. tekst_nl.
Dan kan je dit doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$lang
= (isset($_GET['lang']) ? $_GET['lang'] : 'nl';
$column = 'tekst_' . $lang;
$sql = "SELECT " . $column . " FROM jouwtabel WHERE id = 1";
?>


Bedankt voor je antwoord!

Alleen krijg ik een parse error op de tweede lijn.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$lang = (isset($_GET['lang']) ? $_GET['lang'] : 'nl';


Is er hier iets mis bij het vraagteken?
 
Jaron T

Jaron T

07/10/2012 18:23:59
Quote Anchor link
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'nl';
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/10/2012 18:59:21
Quote Anchor link
Haakje te weinig dus: (isset($_GET['lang']))

Toevoeging op 07/10/2012 19:00:44:

@Jaron
Helemaal met je eens over het normaliseren :-)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/10/2012 21:45:37
Quote Anchor link
$_SERVER["HTTP_ACCEPT_LANGUAGE"] geeft je de taal die ingesteld staat in de browser van de bezoeker van jouw website.

met het volgende regeltje krijg je 'nl', 'en', 'fr' etc. in de variabele $language

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$language
= substr(strtolower( $_SERVER["HTTP_ACCEPT_LANGUAGE"]), 0, 2);
?>
 
Tom Corremans

Tom Corremans

07/10/2012 21:51:48
Quote Anchor link
Bedankt iedereen voor jullie hulp! Mijn probleem is opgelost. Zonder jullie was het nooit gelukt :)
 



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.