Ga naar inhoud


Buttons website aanpassen na taalkeuze


Sjattuh

Aanbevolen berichten

Ik heb het volgende stukje code:

 

Citaat:
function siteheader($text) {

echo "<body>\r\n";

echo " <div id=\"body\">\r\n";

echo " <div id=\"header\">\r\n";

echo " <a href=\"index.php\"><img src=\"PA_logo_v2-3.PNG\" align=\"left\" style=\"margin-left: 10px;\"/></a>\r\n";

echo " <form method=\"post\"><br>\r\n";

echo " <span style=\"color:black;\">Language:</span>\r\n";

echo " <select name=\"taal\">\r\n";

echo " <option value=\"dutch\">Nederlands</option>\r\n";

echo " <option value=\"english\">English</option>\r\n";

echo " <option value=\"svensk\">Svensk</option>\r\n";

echo " <option value=\"norsk\">Norsk</option>\r\n";

echo " <option value=\"deutsch\">Deutsch</option>\r\n";

echo " <option value=\"dansk\">Dansk</option>\r\n";

echo " </select>\r\n";

echo " <input type=\"submit\" name=\"Submit\" value=\"Change\">\r\n";

echo " </form>\r\n";

echo " </div>\r\n";

echo " <div id=\"menu\">\r\n";

echo " <ul>\r\n";

echo " <li align=\"center\" class=\"menudiv\"></li>\r\n";

echo " <li><a href=\"index.php?page=home\">Home</a></li>\r\n";

echo " <li class=\"menudiv\"></li>\r\n";

echo " <li><a href=\"index.php?page=welcome\">Welcome</a></li>\r\n";

echo " <li class=\"menudiv\"></li>\r\n";

echo " <li><a href=\"index.php?page=about\">PA Property</a></li>\r\n";

echo " <li class=\"menudiv\"></li>\r\n";

echo " <li><a href=\"index.php?page=offer\">Palmiye Complex</a></li>\r\n";

echo " <li class=\"menudiv\"></li>\r\n";

echo " <li><a href=\"pictures.php\">Photo Gallery</a></li>\r\n";

echo " <li class=\"menudiv\"></li>\r\n";

echo " <li><a TARGET=\"_blank\" href=\"Palmiye PROSPECT English.pdf\">Prospect</a></li>\r\n";

echo " <li class=\"menudiv\"></li>\r\n";

echo " <li><a href=\"index.php?page=finance\">Finance</a></li>\r\n";

echo " <li class=\"menudiv\"></li>\r\n";

echo " </ul>\r\n";

echo " </div>\r\n";

 

Nu wil ik dat aan de hand van de taal keuze (zoals in het eerste deel) ik de menu buttons laat aanpassen. Een soort van:

 

Citaat:
If Language = Nederlands

echo " <li class=\"menudiv\"></li>\r\n";

echo " <li><a href=\"index.php?page=welcome\">Welkom</a></li>\r\n";

 

If Language = English

echo " <li class=\"menudiv\"></li>\r\n";

echo " <li><a href=\"index.php?page=welcome\">Welcome</a></li>\r\n";

 

Dit een beetje makkelijk te doen?

 

Weet je wat erger is dan een worm in je appel?

Een halve worm in je appel...

Link naar reactie
Delen op andere sites


Maak een aparte bestanden aan met arrays die de tekst bevatten welke je include in je code.Bijvoorbeeld op deze manier:

Code:
nl.inc$txt['welkom']="Welkom";$txt['titel']="Dit is de website van ......";uk.inc$txt['welkom']="Welcome";$txt['titel']="This is the website of ......";

Dan kan je in je code heel gemakkelijk verwijzen naar de verschillende talen. (En eventueel meer talen toevoegen later)

Uiteraard kan je i.p.v. arrays ook vars gebruiken, of in een multidimensionale array alle talen proppen, maar het basis idee is hetzelfde.

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

hmmm... Ik moet eerlijk bekennen dat ik erg nieuw ben in dit php/sql gebeuren.

 

Ik heb in het sql de talen verdeeld d.m.v. een field 'taal' waar dus een check voor in de code zit. Dit werkt allemaal prima.

 

Ik moet nu alleen de buttons mee laten veranderen en eventueel het email adres voor het contact form per taal.

Weet je wat erger is dan een worm in je appel?

Een halve worm in je appel...

Link naar reactie
Delen op andere sites

Dan pak je dus simpelweg Big Fellow's idee en combineer dat met die taalversie die de mensen hebben geselecteerd om zo te bepalen welke taalmodule je moet laden.

 

je maakt een nl.inc.php met als inhoud:

Php Code:
$txt['welkom']="Welkom";$txt['titel']="Dit is de website van ......"; 

 

en een uk.inc.php met als inhoud:

Php Code:
$txt['welkom']="Welcome";$txt['titel']="This is the website of ......"; 

 

Etc. voor duits, frans en wat je maar wilt.

 

Op basis van de taalkeuze laad je de gewenste include file:

Php Code:
if($taalversie == "uk") include_once("uk.inc.php");elseif($taalversie == "de") include_once("de.inc.php");else include_once("nl.inc.php"); 

 

 

Link naar reactie
Delen op andere sites

Ik neem aan dat de overige pagina's op je website ook in meerdere talen beschikbaar zijn. Dus je zult dat voor iedere pagina moeten doen.

 

Dus niet voor 5 verschillende taalversies 5 verschillende index.php en 5 verschillende vervolgpagina.php maken, maar:

1 pagina index.php

1 pagina vervolgpagina.php

5 include files met de teksten (5 taalversies) die in index.php en vervolgpagina.php gebruikt worden.

 

Link naar reactie
Delen op andere sites

in de link onder de button geef je parameters mee

Voorbeeld:

index.php?lang=english&page=welcom

 

Dan ga die via de get functie binnen halen om je query op de database op te bouwen;

 

$lang = $_GET['lang'];

$page = $_GET['page'];

 

Dan de query

 

$query= "SELECT head,tekst FROM taal WHERE taal=". $lang ." and page=" . $page;

 

 

 

 

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

in .asp (ik doe weinig .php) doe ik dat ook met een taal id in de url.

 

bv : http://www.sat4all.com/mijntest.asp?lng=NL&Id1=1234

dus die lng neem ik over in alle urls.

 

dan kan je snel een include file maken met alle vertalingen of iets geavanceerder kan je zelfs alle vertalingen in een database steken voor grotere systemen (zo doe ik het) omdat je dan je klanten een eigen administratiesyteem geeft waar zij ook zelf die vertalingen kunnen bijhouden en zelf zoveel talen kunnen bijmaken zonder één letter code de moeten doen of dat ik één letter code moet bijzetten.

 

maar voor gewoon gebruik, de raad volgen van de heren.

een include maken en/of een taalindicator maken.

 

nog een tip : hou je variables in je url kort.

gebruik liever : EN en NL dan enlgish, dutch.

je sleept onnodig veel character mee en wanneer je in een db moet gaan zoeken naar alle records die in de kolom taal EN hebben of englisch, dan scheelt dit weer in snelheid.

want EN = 2 te zoeken en overeen te komen characters, englisch = 8.

als je dan door een db moet snorren van honderduizenden records...dan merk je wel het verschil. Kwestie van het te weten voor je begint uiteraard.

 

succes.

Link naar reactie
Delen op andere sites

  • 4 weken later...

Wat je kan doen:

 

session_start();

 

if ($_POST[taal] == "Nederlands") $_SESSION[taal]="nl";

if ($_POST[taal] == "English") $_SESSION[taal]="en";

if ($_POST[taal] == "Deutch") $_SESSION[taal]="de";

 

include("/include/talen/".$_SESSION[taal].".inc.php");

Dan include je dus /include/talen/nl.inc.php of net welke taal je kiest.

In de nl.inc.php kun je dingen plaatsen zoals:

 

<?php

$lang[welcome] = "Welkom";

$lang[button1] = "/images/nl/button1.png";

$lang[button2] = "/images/nl/button2.png";

?>

 

Inc en.inc.php zet je dan:

<?php

$lang[welcome] = "Welcome";

$lang[button1] = "/images/en/button1.png";

$lang[button2] = "/images/en/button2.png";

?>

 

In iedere pagina waar je session_start() aanroept zie je met $_SESSION[taal] welke taal actief is. Dan hoef je geen $_GET's en $_POST's te controleren. En het is stukken veiliger.

 

Let op! bovenstaande is even uit het hoofd dus controleren op fouten!

 

Zo kun je alle talen heel makkelijk instellen en toevoegen.

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...