Meerder talen, html

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruben Fonteijne

Ruben Fonteijne

25/08/2012 20:45:56
Quote Anchor link
Zag al verschillende scripts staan op het forum voor meerdere talen in php, maar wil het graag ook in html.
Webadres moet dan worden:
www.domeinnaam.com/en/example
www.domeinnaam.com/nl/voorbeeld
www.domeinnaam.com/es/ejemplo
 
PHP hulp

PHP hulp

20/12/2024 19:04:26
 
Bart V B

Bart V B

25/08/2012 20:49:54
Quote Anchor link
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.
 
Ruben Fonteijne

Ruben Fonteijne

25/08/2012 20:52:14
Quote Anchor link
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?
 
John Berg

John Berg

25/08/2012 20:57:28
Quote Anchor link
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.

Afbeelding
Gewijzigd op 25/08/2012 20:59:00 door John Berg
 
Flip --

Flip --

25/08/2012 21:00:05
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
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';
 
Ruben Fonteijne

Ruben Fonteijne

25/08/2012 21:01:18
Quote Anchor link
Wow, een hoop lastige woorden. Ik ga het wel even ergens uitzoeken dan..
 
John Berg

John Berg

25/08/2012 21:04:54
Quote Anchor link
@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.

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.
 
Ruben Fonteijne

Ruben Fonteijne

25/08/2012 21:11:14
Quote Anchor link
Jongens, ik ben helemaal niet zo goed bekend met al die dingen. Kan het ook gewoon makkelijk? haha.
 
Flip --

Flip --

25/08/2012 21:14:40
Quote Anchor link
Wil je alleen bepaalde talen, en/nl in dit voorbeeld, schrijf dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
RewriteRule ^(en|nl)/(.*) http://www.domeinnaam.com/$2?taal=$1 [P,L]
 
Ruben Fonteijne

Ruben Fonteijne

26/08/2012 13:51:44
Quote Anchor link
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
 
ScrapZz nl

ScrapZz nl

26/08/2012 16:53:15
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
RewriteRule ^(.*)/(.*) http://www.apartmentscalallonga.com/?page=$2&lang=$1 [L]


index.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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)
PHP script in nieuw venster Selecteer het PHP script
1
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'
);
?>


/pages/home.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
//maak hier danj gewoon wat mooist voor home ;)
    echo $lang['welcome'];
?>

(is een kleine script miss dat je hier wat meer mee kan ;))
Gewijzigd op 26/08/2012 16:58:31 door ScrapZz nl
 



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.