Ik ben bezig met een website die in meerdere talen weer te geven is. Ik heb al eens bij phpnuke of bij een wysiwyg editor gekeken maar die hebben alleen de standaard zinnen voor foutmeldingen in een txt bestand staan dus dat is voor mij geen oplossing.

Ik zat zelf te denken aan een tabel die er zo uit ziet maar ik weet niet hoe je het professioneel aan pakt

tabel

id | title | body_text | lang

en dan dat je met bijv. deze url: domeinnaam.nl?lang=nl
de nedelandse content eruit haalt en met
domeinnaam.nl?lang=uk
de engelse content eruit haalt

is dit een goeie manier of weten jullie een betere oplossing of dit de enige oplossing??
uk is tog geen language??

Mij lijkt dit een goed plan, zo houden dus.
Andere oplossingen:
- Twee aparte website's. (simpel, eenvoudig, makkelijk, veel vrijheid)
- Een tabel met kollomen: tekst NL, tekst EN.... (moeilijk uit te breiden.)
Dit is als oplossing gegeven een tijdje geleden :

hoe een gebruiker zijn voorkeurstaal van de website kan kiezen (bijv door vlaggentjes).

Je zult de inhoud van je website gewoon in twee talen moeten opslaan.
Met het commando 'include' kun je de goede taal in je pagina's zetten.
Stel dat je hyperlink voor Engels er zo uitziet:

<?php
<a href="?taal=eng"><img src="vlag_eng.gif></a>
?>

dan kun je daarna dit doen:

<?php
$talen = array ('ned', 'eng');
if (isset ($_GET['taal']) && in_array ($_GET['taal'], $talen))
{
include $_GET['taal'];
}
?>

Kleine aanpassing/uitbreiding

<?php
$talen = array ('ned' => './lang/dutch.php', 'eng' => './lang/uk.php');
if (isset ($_GET['taal']) && in_array ($_GET['taal'], $talen))
{
include $talen[$_GET['taal']];
}
?>

of je kan ook gewoon een map EN en NL aan maken op je host en dan je nederlandse bestanden in NL
en de engelse bestanden EN en als de gene registreert moet hij zijn taal aan geven
en dat word opgeslagen in de DB en aan de hand daarvan kies je de juiste folder

<?php
$query = mysql_query("SELECT * FROM users WHERE id='".$_SESSION['user_id']."'")
$ass = mysql_fetch_assoc($query);

if($ass['taal'] == NL)
{
$link = "<a href='NL/users/index.php'>Login</a>";
}
else
{
$link = "<a href='EN/users/index.php'>Login</a>";
}
?>

dat is niet echt handig, want dan heb je je hele website dubbel.
Als je het met includes doet heb je nog steeds 1 bestand voor de lay-out
en hoef je die maar één keer aan te passen als het nodig is.
Dus dit is eigenlijk de beste en makkelijkste oplossing??

nou oke bedankt
Graag gedaan en suc6 !!
<?php

session_start();

if($_SESSION['taal'] == 'nl') {

include('lang-nl.php');

}
elseif($_SESSION['taal'] == 'en') {

include('lang-en.php');

}

// en etc etc

?>

Zo zou je het kunnen doen:)

Zo hoef je ook niet achter elke link taal=nl of en te zetten;)

GR. mebus!
Leuk en aardig die sessies, maar die zijn niet te bookmarken. Zet de taal in de url en lees deze met GET weer uit.
<?php
$aLanguages = array('en', 'nl', 'pt'); // toegestane talen, iso-code

if(isset($_GET['lang']) && in_array($_GET['lang'], $aLanguages)){
$lang = $_GET['lang'];
}
else {
$lang = 'nl';
}
$link = '<a href="index.php?lang='.$lang.'">Login</a>';

include('lang-'.$lang.'.php'); // include het juiste taalbestand
?>
En ga vooral geen verschillende pagina's voor verschillende talen maken, dat is niet te onderhouden. Maak voor verschillende talen een bestand aan met de verschillende teksten, maar die teksten staan allemaal in gelijknamige variabelen. Deze variabelen kun je dan simpel gaan echoen.
nee dat bedacht ik me ook al bovendien als je iets aan het uiterlijk van de pagina wild doen moet je dus 2 bestanden aanpassen. nou is dat misschien voor een pagina niet zoveel werk maar voor 10 is het al meer werk bovendien kun je ook niet zo snel een taal toevoegen nou is dit ook niet handig als je weet ik hoeveel pagina's hebt maar toch.
Vlaggetjes zijn slecht. Verschillende landen hebben meerdere talen en meerdere landen hebben een taal. Wat doe je bijv met Belgie? Geef je die Frans of Nederlands? Of misschien Duits want dat spreken ze daar ook nog geloof ik.

Je site kopieren lijkt me ook niet zo'n geweldig idee dus ik zou idd language files / tabellen maken.

Language
lang_id | naam | afk

Vertalingen
vert_id | lang_id | vertaling

Ik zelf ben 't met files aan 't maken. Elke taal heeft zijn eigen file en die laad ik in.
jah ik het lijk mij ook handiger op er een tabel voor te maken, voor bijvoorbeeld het afhandelen van foutmeldingen (in een CMS of zo) zou het een stuk handiger kunnen zijn temiste het lijkt mij. maar dat is niet echt handig on stukken text in een file te zetten vooral als je een grote website hebt. het lijkt mij dat een stuk moeilijker om content te update of te sorteren.

Reageren