site in verschillende talen
ik krijg de laatste tijd steeds meer reacties op mijn website van buiten nederland.
daarom wil ik graag dat mensen op mijn site kunnen kiezen voor een nederlandse versie en een engelse versie, hoe kan ik dit maken?
greetzz
Wat je zou kunnen doen is elk database item een veld mee geven zoals language_id en daar het ID inzetten bij welke taal hij hoort. Dit language_id komt uit een tabel waar alle talen van je site in zitten. Aan de keuze van de gebruiker kun je zien welke taal hij gekozen heeft en haal je dus van die taal de ID uit de database, hier mee kun je dan weer alle juiste gegevens ut de database halen.
http://www.phphulp.nl/php/forum/topic/taal-keuze-integreren/79322/
Dit is puur om de teksten op je site te kunnen vertalen.
Gewijzigd op 06/08/2011 13:21:43 door - Ariën -
Oetzie cookie op 06/08/2011 13:14:28:
Is het een HTML site of een PHP site met database?
Wat je zou kunnen doen is elk database item een veld mee geven zoals language_id en daar het ID inzetten bij welke taal hij hoort. Dit language_id komt uit een tabel waar alle talen van je site in zitten. Aan de keuze van de gebruiker kun je zien welke taal hij gekozen heeft en haal je dus van die taal de ID uit de database, hier mee kun je dan weer alle juiste gegevens ut de database halen.
Wat je zou kunnen doen is elk database item een veld mee geven zoals language_id en daar het ID inzetten bij welke taal hij hoort. Dit language_id komt uit een tabel waar alle talen van je site in zitten. Aan de keuze van de gebruiker kun je zien welke taal hij gekozen heeft en haal je dus van die taal de ID uit de database, hier mee kun je dan weer alle juiste gegevens ut de database halen.
ik werk nog niet met een database, is er ergens meer informatie te vinden hoe ik dat kan doen? ik heb er helaas niet zo veel verstand van...
Toevoeging op 06/08/2011 13:34:14:
- Aar - op 06/08/2011 13:18:44:
Makkelijke oplossing, zonder databases:
http://www.phphulp.nl/php/forum/topic/taal-keuze-integreren/79322/
Dit is puur om de teksten op je site te kunnen vertalen.
http://www.phphulp.nl/php/forum/topic/taal-keuze-integreren/79322/
Dit is puur om de teksten op je site te kunnen vertalen.
dankje... ik zal er naar kijken
B Mulder op 06/08/2011 13:33:42:
ik werk nog niet met een database, is er ergens meer informatie te vinden hoe ik dat kan doen? ik heb er helaas niet zo veel verstand van...
http://www.phptuts.nl/view/41/
misschien heb ik een idee,
ik heb de inhoud van mijn pagina's dus de text in een aparte map staan. het zijn allemaal aparte txt bestandjes. kan ik in zon bestandje niet een deel voor nl en een deel voor eng zetten?
Heb je al eens die link bekeken naar dat andere topic ;-)?
alvast bedankt :) ik zou het zeer op prijs stellen
Maar het komt op hetzelfde neer.
Wat vind je dan lastig?
maar is het mogelijk dat ik dit heb voor index.txt:
$lang eng
engelse tekst
$lang nl
nederlandse tekst.
zoiets?
Wat jij wilt is precies in dat topic omschreven.
Mooi voorbeeld. Als je het niet snapt, vertel dan even waarop je vastloopt.
Gewijzigd op 06/08/2011 18:23:10 door - Ariën -
ik wil zegmaar weinig hoeven aanpassen in mijn site. de tekst hoeft alleen maar vertaald te worden, dat wil ik dan overzichtelijk in die txt bestandjes, ze hoeven geen php te zijn want die txtjes worden geinclude in een php bestand..
nou ja, dan kan je dat op een zelfde manier doen voor andere talen. Dus bijvoorbeeld:
index.php?lang=NL en index.php?lang=EN. Dan zorg je dat je de txt-files van NL en EN apart hebt. Dit kan bijvoorbeeld door alle txtjes in het Nederlands in de map NL te zetten enz.
en dan zal erin je PHP code ongeveer zo uit kunnen zien:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$lang = 'NL'; // default waarde
$get_lang = strtoupper($_GET['lang']);
if ($get_lang == 'NL') {
$lang = 'NL';
} elseif ($get_lang == 'EN') {
$lang = 'EN';
}
// Hier je pagina selectie etc.... maar dan met de juiste map
// Uiteraard ook controleren of het bestand bestaat enz. maar dat heb je waarschijnlijk al
// bijv. /NL/home.txt of /EN/home.txt
include('/'. $lang .'/home.txt');
?>
$lang = 'NL'; // default waarde
$get_lang = strtoupper($_GET['lang']);
if ($get_lang == 'NL') {
$lang = 'NL';
} elseif ($get_lang == 'EN') {
$lang = 'EN';
}
// Hier je pagina selectie etc.... maar dan met de juiste map
// Uiteraard ook controleren of het bestand bestaat enz. maar dat heb je waarschijnlijk al
// bijv. /NL/home.txt of /EN/home.txt
include('/'. $lang .'/home.txt');
?>
Mocht je het helemaal mooi doen wil je uiteraard je URL van www.jewebsite.nl/NL/ of www.jewebsite.nl/EN/ willen hebben en dan kun je zoiets als dit gebruiken in je .htaccess.
Dus als ik het goed begrijp heb je een pagina zeg index.php die voor jou die txtjes uitleest en include. Dan zal dat vast op basis van index.php?pagina=home of zo gaan denk ik[/quote]
dat index.php?pagina=home.... betekent dat dat je maar 1 phpbestand hebt die verschillende txt's kan includen?
anders bedoel ik het volgende: (sorry als ik onduidelijk ben of niet goed luister...)
ik heb een pagina die include de inhoud van de pagina bijvoorbeeld index.
dan wil ik in dat index.txt bestand:
(ongeveer)
$lang eng
welcome on studiobj.nl
$lang nl
welkom op studiobj.nl
zoiets...
Voordelen:
- Niemand anders kan het vertaal-bestand uitlezen
- Het is sneller en makkelijker te onderhouden.
Dus kijk nog eens naar mijn gegeven link. Enige basiskennis van PHP is wel nodig.
In combinatie met wat ik eerder gepost heb en dit moet het zeker lukken om je script werkend te krijgen B Mulder. Verder zal ik het niet voorkauwen......
Oke dan, hier een voorbeeldje van wat het stukje kan zijn om alles in een text-bestand te houden. Omdat het in een text-bestand zit zal je moeten zoeken naar de offsets van wanneer Engelse en Nederlandse teksten beginnen. Het is maar een voorbeeld van hoe je dat stukje kunt doen maar er ontbreken nog wat foutafhandeling enz. wat het productie waardig zal maken. (hou er rekening mee!)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// uiteraard moet je wel controleren of de file bestaat enz...
$lines = file('index.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// Offsets bepalen
$key1 = array_search('$lang eng', $lines);
$key2 = array_search('$lang nl', $lines);
// Splitsen
$lang_nl = array_slice($lines, $key2+1);
$lang_en = array_slice($lines, $key1+1, $key2-1);
// Print nederlands
foreach($lang_nl as $line) {
echo $line .'<br />';
}
// Print engels
foreach($lang_en as $line) {
echo $line .'<br />';
}
?>
// uiteraard moet je wel controleren of de file bestaat enz...
$lines = file('index.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// Offsets bepalen
$key1 = array_search('$lang eng', $lines);
$key2 = array_search('$lang nl', $lines);
// Splitsen
$lang_nl = array_slice($lines, $key2+1);
$lang_en = array_slice($lines, $key1+1, $key2-1);
// Print nederlands
foreach($lang_nl as $line) {
echo $line .'<br />';
}
// Print engels
foreach($lang_en as $line) {
echo $line .'<br />';
}
?>
En het text-bestand ziet eruit zoals je zelf aangeeft hoe het moet zijn:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
$lang eng
welcome on studiobj.nl
next line
$lang nl
welkom op studiobj.nl
volgende regel
welcome on studiobj.nl
next line
$lang nl
welkom op studiobj.nl
volgende regel
Nog even een toevoeging van wat - Aar - zegt klopt wel. Maarja, ligt er maar net aan wie de website zal gaan onderhouden. Je geeft als voordeel op dat het makkelijker te onderhouden is, maar dat is maar net te vraag juist wie dat doet. Want uit eigen ervaring zijn soms mensen bang om php te openen omdat ze niet weten hoe het werkt. En tegen iemand zeggen het is een txt bestand is kan geruststellend zijn.
Gewijzigd op 08/08/2011 13:11:51 door Benny Lava
Quote:
Want uit eigen ervaring zijn soms mensen bang om php te openen omdat ze niet weten hoe het werkt. En tegen iemand zeggen het is een txt bestand is kan geruststellend zijn.
De uitleg om aan te geven hoe het werkt is ook niet echt rocket-science.. ;-)
Ik weet haast zeker dat die manier met text-bestanden die Benny omschrijft enorm trager is dan mijn manier.
- Aar - op 08/08/2011 14:01:46:
De uitleg om aan te geven hoe het werkt is ook niet echt rocket-science.. ;-)
Ik weet haast zeker dat die manier met text-bestanden die Benny omschrijft enorm trager is dan mijn manier.
Ik weet haast zeker dat die manier met text-bestanden die Benny omschrijft enorm trager is dan mijn manier.
Haha, nee inderdaad ;)