Archief - Taal laten instellen door gebruiker

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Spudgun

Legacy Member
Hello op dit geweldig forum. mijn 1e post trouwens na 10134 treads te lezen. ;)

Ik heb een Php/ html prob,al dagen zitten te zoeken, :cry: namelijk

* ik wil een afbeelding ipv tekst.
* de user kan inloggen op de website en zijn talen instellen, dit word dan weergegeven op de homepage in tekstvorm.
(bvb Speaks: Englisch Dutch Italian German)
* men fotos zijn bvb images/de.gif

dit is code waar je kan instellen:

op updateprofile.php (hier denk ik waar je code moet wijzigen.
PHP:
              <td align="right" valign="top" class="form_definitions">Language 1:</td>

              <td align="left" valign="top" class="form_definitions"><select name="L1" id="select">

			    <option value="Dutch"  <? if ($tL1=="Dutch"){echo "selected";}?> >Dutch</option>

                <option value="English" <? if ($tL1=="English"){echo "selected";}?> >English</option>

                <option value="French" <? if ($tL1=="French"){echo "selected";}?> >French</option>

				<option value="German" <? if ($tL1=="German"){echo "selected";}?> >German</option>

				<option value="Italian" <? if ($tL1=="Italian"){echo "selected";}?> >Italian</option>

				<option value="Japanese" <? if ($tL1=="Japanese"){echo "selected";}?> >Japanese</option>

				<option value="Korean" <? if ($tL1=="Korean"){echo "selected";}?> >Korean</option>

				<option value="Portuguese" <? if ($tL1=="Portuguese"){echo "selected";}?> >Portuguese</option>

				<option value="Spanish" <? if ($tL1=="Portuguese"){echo "selected";}?> >Spanish</option>

of is het op index.php ?? (ik denk alvast van niet)

PHP:
				$tempL1=$row['language1'];

				$tempL2=$row['language2'];	

				$tempL3=$row['language3'];	

				$tempL4=$row['language4'];	

						

				$languagestring=$tempL1;

				if (strtolower($tempL2)!="none"){

				$languagestring.= ", ".$tempL2;

				}

				if (strtolower($tempL3)!="none"){

				$languagestring.= ", ".$tempL3;

				}

				if (strtolower($tempL4)!="none"){

				$languagestring.= ", ".$tempL4;

				}

				$count++;

				if ($count==1) {echo' <tr>';}


Anders weet ik geen code die met dit te maken heeft.


Zitten er hier zulke cracks?? alvast dank!!:niceone:

Sick-Boy

Legacy Member
Volgens mij haalt het gewoon de talen uit een database en lijmt die aan mekaar met een komma.

Wat jij dus wilt is:

PHP:
$languagestring.= "<img src='images/".$tempL1."'/>";

Maar dan zal je waarschijnlijk alle images moeten hernoemen naar English.gif, ...
OF je kan ergens een array bijhouden die de talen "vertaald" naar hun afkorting.

Spudgun

Legacy Member
Alvast dank vr uw reactie Sick-Boy !!

Heb het nog niet kunnen doen werken. afbeeldingen renamed thans.
Misschien even proberen met een array deze avond.
Betwijfel het sterk dat uit DB komt, er staat daar nergens geen Dutch of English in..reeds gechecked. wel de landen als: UK , Spain , Belgium,.. etc

dat liijmen met ';' zal wel

$tempMessage=$row['message'];

$username=$row['user'];

$tempCity=$row['city'];

$tempPlace=$row['broadcastplace'];

$tempL1=$row['language1'];

$tempL2=$row['language2'];

$tempL3=$row['language3'];

$tempL4=$row['language4'];



$languagestring=$tempL1;

if (strtolower($tempL2)!="none"){

$languagestring.= ", ".$tempL2;

}

if (strtolower($tempL3)!="none"){

$languagestring.= ", ".$tempL3;

}

if (strtolower($tempL4)!="none"){

$languagestring.= ", ".$tempL4;

}

$count++;

if ($count==1) {echo' <tr>';}

echo '<td width="180" height="180" align="center" valign="middle" background="images/modelbox.gif">';

echo '<table width="180" height="180" border="0" cellpadding="2" cellspacing="1">';

echo '<tr>';

echo '<td height=10 align="center" valign="top"><span class="modelbox_title">'.$username .' ('.$nYears.')</span></td>';

echo '</tr><tr>';

echo '<tr>';

Grts

Scarity

Legacy Member
een linkske naar currentpage van u image maken en daar een get met bvb ?taal= en/fr/nl

dan in u code gedeelte gewoon die get uitleze en aan de hand van dat de correcte taal laden uit u db?

of stel ik het mij te simpel voor

Spudgun

Legacy Member
Scarity zei:
een linkske naar currentpage van u image maken en daar een get met bvb ?taal= en/fr/nl

dan in u code gedeelte gewoon die get uitleze en aan de hand van dat de correcte taal laden uit u db?

of stel ik het mij te simpel voor

Misschien wel met get , ik weet het ook nog niet... denk niet dat et komt uit DB. zal nog checken.. thx anyway

Sick-Boy

Legacy Member
Vertel ons misschien even hoe goed je kennis van PHP is.
En het probleem structureel uitleggen kan ook helpen, want ik zie het precies anders dan Scarity.

Je hebt nu een website waar je talen kan instellen en ergens op een bepaalde pagina wordt (tekstueel) weergegeven welke talen iemand spreekt. En in plaats van tekst wil je een afbeelding van de landen. (Wat misschien wat gek is, want zal je bij mij een Nederlandse of een Belgische vlag tonen?)

Anyway, van waar komt de variabele $row? Want dat lijkt me op een resultaat van een database query.
Waar begint de output van de variabele $languagestring? De .= operator betekent dat er iets wordt bijgevoegd achteraan de variabele.
$languagestring .= ", ".$tempL2;
is dus hetzelfde als
$languagestring = $languagestring . ", ".$tempL2;

Vandaar het lijmen, maar ik kon niet op de vertaling komen van concatenate. :)

Spudgun

Legacy Member
Men php kennis == enkele uren groot, maar daarmee juist.
Structuur? onbekend .. maar ok; volg je wel. :)
Bij jou 1 nederlandse vlag want jij spreekt Nederlands. Persoonlijke landinstelling is iets anders.

Die query, kvind er nix van tot nu toe. Wat doet een query? opdracht geven of zoeken in database d8 ik.
In DB zijn er 4 velden language1 , language2 , language3 language4, daar staan de talen in. die zit onder 'Chatusers'. miss is de output? anders onbekend (nog)

Concantenate, da ist :) nu werkt het. lol

Scarity

Legacy Member
Vlagskes waar ge kunt op klikken, page reload (de page waar ge opzat, nie index) in de taal daje wou

PHP:
		<li class='first'>
			<a href="?p=<?=$_GET['p']?>&l=NL"><img src="./img/flag_belgium.png" alt="" width="25px" height="15px" class="img-navflag" /></a>
		</li>
        <li >
			<a href="?p=<?=$_GET['p']?>&l=EN"><img src="./img/flag_uk.png" alt="" width="25px" height="15px" class="img-navflag" /></a>
		</li>
        <li >
			<a href="?p=<?=$_GET['p']?>&l=FR"><img src="./img/flag_france.png" alt="" width="25px" height="15px" class="img-navflag" /></a>
		</li>
        <li >
			<a href="?p=<?=$_GET['p']?>&l=SP"><img src="./img/flag_spain.png" alt="" width="25px" height="15px" class="img-navflag" /></a>
		</li>


Language wordt uit get gehaald, in sessie gestopt (rode draad doorheen site, obv).
Geen language set, pick english, load u database, haal content uit database aan de hand van u gekozen language.

En dit wor amaal in constant gestopt, maar dat kunt ge doen zoals ge wilt

PHP:
	if (isset($_GET['l'])) $_SESSION['lang'] = $_GET['l'];
	if (!isset($_SESSION['lang'])) $_SESSION['lang'] = 'EN';
	
	if (!isset($_SESSION['login'])) $_SESSION['login'] = 'no';	
	
	include("includes/dbConnect.php"); 
	
	$query0 = "SELECT keyword, {$_SESSION['lang']} FROM solid_content";
	$result0 = mysql_query($query0);
	while ($row0 = mysql_fetch_object($result0)) {
		$tmp = str_replace("  ","&nbsp;&nbsp;",nl2br($row0->$_SESSION['lang']));
		define($row0->keyword,$tmp);
	}

Is dit niet wat je wou bereiken?

Sick-Boy

Legacy Member
Spudgun zei:
Men php kennis == enkele uren groot, maar daarmee juist.
Structuur? onbekend .. maar ok; volg je wel. :)
Bij jou 1 nederlandse vlag want jij spreekt Nederlands. Persoonlijke landinstelling is iets anders.

Die query, kvind er nix van tot nu toe. Wat doet een query? opdracht geven of zoeken in database d8 ik.
In DB zijn er 4 velden language1 , language2 , language3 language4, daar staan de talen in. die zit onder 'Chatusers'. miss is de output? anders onbekend (nog)

Concantenate, da ist :) nu werkt het. lol

Een query is precies dat wat je zegt: een opdracht voor de database om te zoeken naar gegevens die voldoen aan bepaalde voorwaarden.
Die query moet ergens in de code zitten en zal gelijken op wat Scarity geschreven heeft. (Die <?= wordt wel niet graag gezien ;))

Spudgun

Legacy Member
Hi, welke code zet ik waar? index? of updateprofile.php?
moet ik enkel de images/xx.gif veranderen? iets oploaden in database? nog advies??
wel ik dacht dat het korter ging kunnen,maar ik kan zwaar verkeerd zijn. Ik dacht nu da ik gewoon die Englisch in uit database ging kunnen laden, gelinkt aan image. Merciekes !!

Sick-Boy

Legacy Member
Spudgun zei:
Hi, welke code zet ik waar? index? of updateprofile.php?
moet ik enkel de images/xx.gif veranderen? iets oploaden in database? nog advies??
wel ik dacht dat het korter ging kunnen,maar ik kan zwaar verkeerd zijn. Ik dacht nu da ik gewoon die Englisch in uit database ging kunnen laden, gelinkt aan image. Merciekes !!

Je kan het op verschillende manieren oplossen, het simpelste zal zijn de afbeeldingen hernoemen naar hoe de talen in de database staan.
Anders kan je een array maken:
PHP:
$lang = array("Dutch" => "nl", "English" => "en", "German" => "de"...); 
$img = "<img src='images/".$lang[$row['language1']].".gif' />";

Dus stel dat language1 in de database ingevuld staat als English, dan is wordt de image aangevuld met $lang['English'] oftewel en.

En dat komt dan in jouw geval best in index.php.

Maar als je van plan bent om nog meer aan te passen, raad ik je aan om eerst wat tutorials te volgen (zie de webmastergids). Het is normaal tegen mijn principes om kant en klare oplossingen te posten. :p

RpR

Legacy Member
En indien ge het nog beter wilt doen:

Eerste kijken of de browser taal een taal is die je website voorziet.
Heeft uw website die taal dan die standaard zetten. Zoniet Engels als standaard.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan