Meerder talen, html
Webadres moet dan worden:
www.domeinnaam.com/en/example
www.domeinnaam.com/nl/voorbeeld
www.domeinnaam.com/es/ejemplo
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?
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.
Gewijzigd op 25/08/2012 20:59:00 door John Berg
Code (php)
1
2
3
4
5
2
3
4
5
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^([[:lower:]]{2})/(.*) http://www.domeinnaam.com/$2?taal=$1 [P,L]
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..
n.b. zo split je alle talen eruit, wij halen in de router alleen de talen waarvan een vertaling beschikbaar is eruit.
Toevoeging op 25/08/2012 21:07:27:
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.
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
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:
index.php:
Code (php)
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
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
<?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 = $_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:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?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'
);
?>
//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:
(is een kleine script miss dat je hier wat meer mee kan ;))
Gewijzigd op 26/08/2012 16:58:31 door ScrapZz nl