Multi talen script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 volgende »

Robin .

robin .

28/02/2020 19:55:31
Quote Anchor link
Thomas van den Heuvel op 28/02/2020 19:48:38:


Antwoord? is dooie boel daar iedereen zegt veel daar maar helpt weinig.

Hier wordt ik teminsten wel geholpen.
 
PHP hulp

PHP hulp

25/04/2024 14:35:07
 
- Ariën  -
Beheerder

- Ariën -

28/02/2020 19:56:57
Quote Anchor link
Anyway, kan je jouw SELECT query even echo'en?
Ik neem aan dat je die net als in mijn voorbeeld in een aparte string zet, dan kan je die makkelijk debuggen.
Gewijzigd op 28/02/2020 19:57:46 door - Ariën -
 
Robin .

robin .

28/02/2020 19:59:33
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$lang1   = $mysqli->query("SELECT * FROM `[users]` WHERE `id`='$id'");
      $lang     = $lang1->fetch_assoc();


Neem aan dat die dan checkt vanuit $lang in de database kijkt.

Of moet ik het nog ergens aangeven dat die die moet checken?

Had deze ook nog veranderd naar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$id      = $mysqli -> real_escape_string($_GET['id']);
Gewijzigd op 28/02/2020 20:01:01 door robin .
 
- Ariën  -
Beheerder

- Ariën -

28/02/2020 20:01:14
Quote Anchor link
Zet die SELECT-query in een losse string ($sql) en echo die dan.
En lees even terug over escapen met mysqli_real_escape_string().
Gewijzigd op 28/02/2020 20:09:59 door - Ariën -
 
Robin .

robin .

28/02/2020 20:20:51
Quote Anchor link
Bedoel je zo?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$result = $mysqli->query("SELECT lang FROM `[users]` WHERE `id`=$id");
$row = $result->fetch_assoc();
 
- Ariën  -
Beheerder

- Ariën -

28/02/2020 20:22:58
Quote Anchor link
Nee, kijk even mijn vorige voorbeeld terug, waarin ik de SELECT-query in een aparte $sql zet.
Gewijzigd op 28/02/2020 20:26:19 door - Ariën -
 
Robin .

robin .

28/02/2020 20:30:31
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$query = "SELECT * FROM [users]
          WHERE ( id = $id
                   ");
 
- Ariën  -
Beheerder

- Ariën -

28/02/2020 20:34:36
Quote Anchor link
en als je die variabele echo'ed?
Die ( en ) horen er niet. En zorg ervoor dat je $id buiten quotes zet, en tussen '.
Je wilt geen rotzooi in je query.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$query
= "SELECT * FROM [users]
          WHERE id = '"
.$mysqli->real_escape_string($id)."'");
echo $query;
?>
 
Thomas van den Heuvel

Thomas van den Heuvel

28/02/2020 20:51:23
Quote Anchor link
Quote:
Maar nu wil ik als iemand een uitnodiging naar een andere gebruiker stuurt hij dan de taal van de persoon pakt waar die uitnodiging heen gaat nu is het de taal van de persoon die hem verstuurd.

Dan moet je die taal (van de ontvanger) in je query selecteren? Daarbij, zoals in mijn antwoord stond, het probleem blijft - je slaat iets op in een specifieke taal. Op het moment dat de taal wijzigt zit je nog steeds met je hardcoded berichten...

Robin . op 28/02/2020 19:55:31:
Antwoord? is dooie boel daar iedereen zegt veel daar maar helpt weinig.

Wie denk je dat het antwoord gaf? :/
En wat versta je precies onder hulp? Dingen die je kunt knippen en plakken?

Robin . op 28/02/2020 19:55:31:
Hier wordt ik teminsten wel geholpen.

Weet niet precies wat je voor hulp verwacht? Je bent in een bestaand (?) systeem dingen aan het omgooien en weet niet precies hoe je je queries moet opstellen. Dan hebben we nog een hele lange weg te gaan vrees ik. Plus dan is het niet enkel een kwestie van dingen bijmetselen maar ook nadenken over de algehele structuur van het systeem en dat een beetje hanteerbaar houden. Daar was mijn antwoord voornamelijk op gericht, maar dat is waarschijnlijk niet het type "hulp" wat jij zoekt, noch het type hulp wat je nodig hebt...
 
- Ariën  -
Beheerder

- Ariën -

28/02/2020 21:08:13
Quote Anchor link
Ik hoop dat het hier gezellig blijft...

Anyway, stap voor stap komen we er wel. Maar klopt het wel wat je wilt?
Als ik de tekst "Je uitnodiging is verstuurd." zie, dan lijkt mij dit een melding die je ziet na het versturen van een bericht. En die hoort gewoon in de taal van jou zelf te zijn.

Of gaat het om een vertaald privé-bericht? In dat geval zou je dus speciale placeholders kunnen maken zoals [invite] welke wordt vertaald in: Uitnodiging, Invite, Einlading etc). Dan is de tekst niet hardcoded. Maar ik vraag me af hoe vaak iemand van taal wisselt.
Gewijzigd op 28/02/2020 21:12:45 door - Ariën -
 
Robin .

robin .

28/02/2020 22:01:08
Quote Anchor link
Zijn gewoon standaard teksten, het blijft gewoon altijd de zelfde tekst.
Alleen in andere taal.
Ik heb op de me server dan browser in engels en op pc in nederlands zo kan ik dan testen maar hij blijft het sturen vanuit de taal van de verstuurder
 
- Ariën  -
Beheerder

- Ariën -

28/02/2020 22:08:17
Quote Anchor link
Robin . op 28/02/2020 22:01:08:
Zijn gewoon standaard teksten, het blijft gewoon altijd de zelfde tekst.
Alleen in andere taal.

Lekker tegenstrijdig? Hetzelfde of anders?

Maar is het de inhoud van het bericht, of een bevestigingsmelding die de verzender ziet na het versturen?
In het laatste geval zou een simpele variabele gewoon moeten werken.
Gewijzigd op 28/02/2020 22:10:11 door - Ariën -
 
Robin .

robin .

28/02/2020 22:13:19
Quote Anchor link
Heb nu ook via het andere forum een code gekregen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$sql=$mysqli->query("SELECT `lang` FROM `[users]` WHERE `id`='".$mysqli->real_escape_string($id)."'");
$tmp=$sql->fetch_assoc();
$taalOntvanger=$tmp->lang;  


Weet niet of dit makelijk is. om te kijken welke taal het is.
 
- Ariën  -
Beheerder

- Ariën -

28/02/2020 22:16:41
Quote Anchor link
Gewoon, netjes de sql-query echo'en. Dan weet je precies welke instructies je database krijgt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
// sla de SQL-query op in een aparte string, zodat je deze makkelijk kan debuggen.
$sql = "SELECT `lang` FROM `[users]` WHERE `id`='".$mysqli->real_escape_string($id)."'";

//echo voor test-doeleinden de query.
echo "De query is :".$sql;

// Voer de query() uit met de inhoud van $sql.
$query = $mysqli->query($sql);
?>
Gewijzigd op 28/02/2020 22:17:31 door - Ariën -
 
Robin .

robin .

28/02/2020 22:28:06
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
$sql = "SELECT `lang` FROM `[users]` WHERE `id`='".$mysqli->real_escape_string($id)."'";              
$sql = "INSERT INTO `[messages]`(`time`,`IP`,`from`,`to`,`read`,`subject`,`message`) VALUES (
    NOW(),
    '".$_SERVER['REMOTE_ADDR']."',
    'afzender',
    '".$man->login."',
    '0',
    'invite',
    '".$mysqli->real_escape_string($lang['invitation_sent'])."'
)";
$mysqli->query($sql);

Heb het dan nu zo staan maar hij verstuurd nog steeds in taal van verzender en niet in ontvanger?
 
- Ariën  -
Beheerder

- Ariën -

28/02/2020 22:32:06
Quote Anchor link
Ik zie geen echo...

Ik wil je best helpen, maar het zou fijn zijn als je ook deed wat er gevraagd wordt.
Gewijzigd op 28/02/2020 22:32:29 door - Ariën -
 
Robin .

robin .

28/02/2020 22:36:14
Quote Anchor link
Als ik de echo erbij zet komt het op de pagina en dan krijg ik dit
De query is :SELECT `lang` FROM `[users]` WHERE `id`='94'
 
- Ariën  -
Beheerder

- Ariën -

28/02/2020 22:37:27
Quote Anchor link
En id-nummer 94. Bij wie hoort die?
En waar komt $id vandaan?


maar even voor de duidelijkheid:
- Ariën - op 28/02/2020 22:08:17:
Maar is het de inhoud van het bericht, of een bevestigingsmelding die de verzender ziet na het versturen?


Graag antwoord. Want het wordt nu wel erg onduidelijk.
Gewijzigd op 28/02/2020 22:40:02 door - Ariën -
 
Robin .

robin .

28/02/2020 22:50:44
Quote Anchor link
De id 94 klopt dat was de id van het account.

Het is gewoon bevestiging dus zal moeten staan
Account naam heeft je uitgekocht

En als die gene engels is
Username have buy you out.

En dat bericht moet dan verzonden worden in de taal van de gene die het ontvangt.
Want als een nederlander een engelse uitbreekt krijgt de engelse anders een nederlands bericht kan die natuurlijk niet lezen.
Daarom moet het dan veranderen dus als een nederlander iemand uitbreekt die engels is de engelse gewoon het bericht in het engels krijgt of andersom.
 
- Ariën  -
Beheerder

- Ariën -

28/02/2020 22:58:30
Quote Anchor link
Is het niet handiger om dan een placeholder te sturen, zoals [buy_out], welke via een str_replace() vertaald wordt in de taal van de gebruiker? Dan hoef je niks te controleren bij het versturen. En als de taal aangepast wordt, verandert het bericht gewoon mee.
Gewijzigd op 28/02/2020 22:58:54 door - Ariën -
 

Pagina: « vorige 1 2 3 volgende »



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.