Dan zal je dus per taal de html moeten vertalen.

dan krijg je een opzet met mapjes.

/domain/en/example.html
/domain/nl/voorbeeld.html
/domain/es/ejemplo.html

Html is een static taal, dus daar kan je weinig dynamische dingen mee doen.
Ik moet dus op de locatie van de index.html een map aanmaken genaamd 'en' (en de andere talen) en daar de pagina's example.html in zetten?
Als je MVC gebruikt dan kun je de router de geïmplementeerde talen uit de url laten halen.

Met de PHP gettext extensie kun je dan string in zo opschrijven _("This is a string"), en de vertalingen daarvan in aparte submappen opslaan.

Er is zelfs een leuke editor voor die precies kan uitzoeken wat er al vertaald is, en wat nog moet. Ook is er de mogelijkheid om vertalingen uit te besteden aan derden.

Je zult daar wel wat tijd in moeten investeren om dat allemaal aan de gang te krijgen, en het laat zich niet zo 1-2-3 in een forum uitleggen.


RewriteEngine On
Options +FollowSymLinks
RewriteBase /

RewriteRule ^([[:lower:]]{2})/(.*) http://www.domeinnaam.com/$2?taal=$1 [P,L]


probeer dit in .htaccess en als het goed is dan zou
www.domeinnaam.com/nl/voorbeeld
www.domeinnaam.com/voorbeeld?taal=nl
moeten worden.
Zodat je in je php kan doen:
if ($_GET['taal'] == 'nl') echo 'Taal ingesteld op Nederlands';
Wow, een hoop lastige woorden. Ik ga het wel even ergens uitzoeken dan..
@Flip: haha, als ik nog ooit iets moet weten over .htaccess klop ik bij jou aan :-))

n.b. zo split je alle talen eruit, wij halen in de router alleen de talen waarvan een vertaling beschikbaar is eruit.

[size=xsmall]Toevoeging op 25/08/2012 21:07:27:[/size]

Ruben Fonteijne op 25/08/2012 21:01:18

Wow, een hoop lastige woorden. Ik ga het wel even ergens uitzoeken dan..


Multi language is iets heel ingewikkelds. Microsoft kan b.v. nog steeds niet goed omgaan met locales.

Vergeet ook niet dat als je de taal veranderd, ook het datum formaat, decimale punt en een hoop andere ellende ook veranderd.
Jongens, ik ben helemaal niet zo goed bekend met al die dingen. Kan het ook gewoon makkelijk? haha.
Wil je alleen bepaalde talen, en/nl in dit voorbeeld, schrijf dan:
RewriteRule ^(en|nl)/(.*) http://www.domeinnaam.com/$2?taal=$1 [P,L] 
Het is inmiddels gelukt, zonder lastige codes. Bij de locatie van de index.html mappen aangemaakt, genaamd en, es en nl. Daar weer de pagina's home.html ingezet en dan kwestie van doorlinken naar ../es/home.html. Thanks for the help.

www.apartmentscalallonga.com
Ruben Fonteijne op 26/08/2012 13:51:44

Het is inmiddels gelukt, zonder lastige codes. Bij de locatie van de index.html mappen aangemaakt, genaamd en, es en nl. Daar weer de pagina's home.html ingezet en dan kwestie van doorlinken naar ../es/home.html. Thanks for the help.

www.apartmentscalallonga.com


Dan maak je telkens een andere pagina aan??

is het niet makelijker om rewrite url te gebruiken en dan alles in php te schrijven zoals dit:


RewriteRule ^(.*)/(.*) http://www.apartmentscalallonga.com/?page=$2&lang=$1 [L]


index.php:

<?php
$lang = $_GET["lang"];
// geef de goede taal door
switch($lang){
	case 'nl':
		$lang = 'nederlands';
	break;
	case 'en':
		$lang = 'english';
	break;
	case 'es':
		$lang = 'espanole';
	break;
	default:
		$lang = 'nederlands';
	break;
}
//include pagina met array met des betreffende taal
include('/lang/'.$lang.'.php');
//paginas in alle talen:
$paginas = array (
 'thuis' => 'home',
 'casa' => 'home',
 'home' => 'home'
);
//Ga naar home als er geen pagina word op gevraagt
if($_GET["page"]){
	$page = $paginas[$_GET["page"]];
}else{
	$page = 'home';
}
//include eventuel de layout hier
include("up.php");
//Checken of pagina bestaat
if(file_exists('/pages/'.$page.'.php')){
	include('/pages/'.$page.'.php');
}else{
	echo $lang["error404"];
}
//include eventuel de layout hier
include("down.php");
?>


/lang/espanole.php:

<?php
//korte spaanse array (hou de array namen in het engels en vraag de namen ook in het engels op!)
$lang = array (
 'welcome' => 'bienvenido en a website',
 'error404'=> 'no página esta es con nombre'
);
?>


/pages/home.php:

<?php
//maak hier danj gewoon wat mooist voor home ;)
	echo $lang['welcome'];
?>

(is een kleine script miss dat je hier wat meer mee kan ;))

Reageren