• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    NFT Art Designer 1 maart 2025 om 14:08

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

vraagje

  • tkzone
  • 22 februari 2020 om 12:50
  • tkzone
    Beginner
    Ontvangen Reacties
    1
    Berichten
    26
    • 22 februari 2020 om 12:50
    • #1

    Hallo,

    Ben bezig met multi taal voor me site loop alleen tegen het volgende aan.

    Ik vraag de tekst op via $title dan veranderd die het naar de taal die gekozen is.

    dat werkt allemaal prima.

    Alleen als je iemand uit gevangenis breekt stuur die een bericht met je hebt die de persoon uitgebroken.
    Maar dat pakt die de tekst van de taal van de persoon die hem uitbreekt. wil dan dat die de taal controleerd van de persoon en dat die persoon de tekst in zijn taal krijgt.

    Code
    mysql_query("INSERT INTO `[messages]`(`time`,`IP`,`from`,`to`,`read`,`subject`,`message`) values(NOW(),'{$_SERVER['REMOTE_ADDR']}','Mafiakill team','{$man->login}','0','$breakouttitle',' $breakout ! $data->login $breaktout1 <br> $breakout2 $data->login $ $man->uitbreek $breakout3 .')");
    
    
    $breakouttitle = uitgebroken
    $breakout = Je hebt geluk 
    $breakout1 = heeft je uit de gevangenis gebroken
    $breakout2 = Je hebt
    $breakout3 = voor de uitbraak

    hoop dat iemand hier een oplossing voor heeft.
    Wordt in de database bij user aangeven als EN NL DE etc

  • Syntax
    Student
    Ontvangen Reacties
    6
    Berichten
    140
    • 22 februari 2020 om 15:03
    • #2

    Gewoon met een if checken welke taal de gebruiker heeft..

  • tkzone
    Beginner
    Ontvangen Reacties
    1
    Berichten
    26
    • 22 februari 2020 om 15:18
    • #3
    Citaat van Syntax

    Gewoon met een if checken welke taal de gebruiker heeft..

    Misschien een klein beginnetje om me op weg te helpen?

  • AarClay
    Intermediate
    Ontvangen Reacties
    34
    Berichten
    423
    • 23 februari 2020 om 01:00
    • #4

    Waarom gebruik je nog de oude mysql-functiebibliotheek, en geen mysql[u]i[u] of PDO?
    In PHP 7 zal dit script niet meer werken namelijk om dat de oude mysql-functies uit de mysql-bibliotheek verwijderd zijn.

    Waar sla je nu de taal van de gebruiker op?

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 24 februari 2020 om 16:39
    • #5

    Het is waarschijnlijk niet zo simpel als een kwestie van de taal checken. Als [messages] een tabel is waarin standaard (systeem)berichten staan opgeslagen dan ligt in principe de inhoud, op een aantal variabelen na, vast.

    Het probleem van "taalafhankelijkheid" blijft bij de bovenstaande opzet ook bestaan. Immers, het bericht wordt opgeslagen in een specifieke taal. Wat als de gebruiker nu overstapt van nederlands naar engels of andersom? De berichten staan dan nog steeds in de eerder geselecteerde taal?

    Taal is ook een beetje weerbarstig. Lang niet altijd hebben de variabele onderdelen dezelfde volgorde. De "placeholders" voor de variabele delen van zo'n bericht staan dus mogelijk op verschillende plaatsen in verschillende talen. Een volgorde staat dus niet op voorhand vast.

    Wat ik waarschijnlijk zou doen, als je het goed wilt aanpakken, is taalafhankelijke templates maken die horen bij eenzelfde bericht. Vervolgens heb je een lijst van placeholders/variabelen met specifieke waarden die je hier in kunt plakken. Dit zijn dan die $breakout, $breakout1, $breakout2 etc.. Deze zou ik dan wel fatsoenlijke namen geven die identificeren waar ze voor staan.

    In je messages tabel zou je dan bijvoorbeeld (ben hier niet helemaal over uit) kunnen refereren aan het bericht en de variabelen sla je dan bijvoorbeeld geserialiseerd op. En afhankelijk van de dan geselecteerde taal geef je het bericht weer wat hoort bij die taal. Eventueel zou je dat bericht dan ook kunnen cachen in de juiste taal ofzo, zodat deze niet elke keer helemaal on-the-fly opgebouwd hoeft te worden.

    Mijn algemene advies is eigenlijk: denk wat meer/beter na over hoe je omgaat met meertaligheid in een applicatie.

    Je bent nu namelijk al een tabel aan het gebruiken/vullen (en waarschijnlijk zijn er meer van dit soort situaties) en nu merk je dat de schoen niet (meer) past. Dat is dan een indicatie dat je terug moet naar de tekentafel en een slimmere aanpak zou moeten verzinnen. En liefst eentje die meteen al dit soort taalgerelateerde problemen plat slaat.

  • tkzone
    Beginner
    Ontvangen Reacties
    1
    Berichten
    26
    • 26 februari 2020 om 00:46
    • #6

    ik gebruik nog mysql omdat ik nog niet zo goed ben in mysqli

    ik vraag de tekst bestanden op via file
    nl.php
    en.php

    en in config checkt die dan de browser taal

    Code
    if (empty($lang)) {
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    }
    switch ($lang)
        {
        case "nl" :
        include("lang/nl.php");
        break;
        case "en" :
        include("lang/en.php");
        break;
     case "de" :
        include("lang/de.php");
        break;
        default :
        include("lang/en.php");
        break;
    }
    Toon Meer

    in de database wordt die automaties aangepast naar de taal dus als iemand via andere browser komt die als volgt in engels is wordt dat gelijk veranderd


    Code
    mysql_query("UPDATE `[users]` SET `lang`='$lang' WHERE `login`='$data->login'");

    het wordt in message opgeslagen in de database maar hij haald de tekst uit en.php of nl.php
    hij zou alleen bij het versturen moeten checken de login die bevrijd wordt welke taal die heeft dan kan die hit de file halen de tekst.

    de $breakout etc was een voorbeeld heb in file wel wat duidelijker aangeveb wat het is

    hoop dat dit meer duidelijkheid brengt

  • Syntax
    Student
    Ontvangen Reacties
    6
    Berichten
    140
    • 26 februari 2020 om 01:47
    • #7

    als je het zo wilt. Gewoon checken welke taal de gebruiker heeft...

  • K.Rens
    Eigenaar
    Ontvangen Reacties
    241
    Berichten
    4.472
    Filebase Entries
    2
    • 28 februari 2020 om 21:19
    • #8

    Ik moet al even nadenken om het nog op deze manier te doen, omdat ik meestal PDO gebruik als database connectie.
    Ik raad inderdaad ook zeer zwaar aan om alles van mysql_ in je code om te vormen naar PDO of eventueel mysqli_

    Op de oude manier denk ik aan iets als volgt:

    PHP
    <?php
    //je vorige code
    $sql=mysql_query("SELECT `lang` FROM `[users]` WHERE `login`='HIER-DE-LOGIN-NAAR-WIE-JE-WIL-STUREN'");
    $tmp=mysql_fetch_object($sql);
    $taalOntvanger=$tmp->lang;
    
    
    /*
    Je kan nu deze taal gebruiken om een even een ander taalbestand te laden (terug je include).
    Na het versturen laad je terug het originele taalbestand op basis van de al bestaande $lang variabele.
    */
    Toon Meer
  • tkzone
    Beginner
    Ontvangen Reacties
    1
    Berichten
    26
    • 28 februari 2020 om 22:19
    • #9

    Dankje gebruik nu wel mysqli

    dus heb hem even veranderd.

    Code
    $sql=$mysqli->query("SELECT `lang` FROM `[users]` WHERE `id`='".$mysqli->real_escape_string($id)."'");
    
    
    $tmp=$sql->fetch_assoc();
    
    
    $taalOntvanger=$tmp->lang;


    En heb dan dit

    Code
    $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);


    Wat zou ik dan moeten doen dat het controlleerd bij regel 8

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 29 februari 2020 om 00:44
    • #10

    Mja als $lang de file is die voor de huidige gebruiker is ingeladen dan is dat niet noodzakelijkerwijs de taal van de ontvanger?
    Je zult dus -op zijn minst- (tijdelijk) naar een andere taal moeten schakelen. En dat zou het laden van een nieuwe set vertalingen moeten triggeren ofzo, of je moet daar op een of andere manier de beschikking over hebben.

    Snap je op een functioneel niveau wat er moet gebeuren? Verwoord het eens voor jezelf. Dit is dan meteen een specificatie van de code die je moet schrijven om dit te bereiken. Hoe je dat dan precies doet maakt in beginsel niet zoveel uit, maar ik zou je wel aanraden om hier op den duur een soort van generieke oplossing voor te verzinnen, en niet al deze taalgerelateerde problemen ad hoc op te lossen anders wordt je code in een mum van tijd een (nog) grote(re) brei.

    Overigens:

    $tmp=$sql->fetch_assoc();
    $taalOntvanger=$tmp->lang;

    Ga eens goed na wat je hier doet? Je haalt $tmp op als een associatief array. $tmp is dus een array, geen object. $tmp vervolgens behandelen als een object ($tmp->lang) gaat dus sowieso niet werken.

  • K.Rens
    Eigenaar
    Ontvangen Reacties
    241
    Berichten
    4.472
    Filebase Entries
    2
    • 29 februari 2020 om 11:36
    • #11

    Je kan mij hier ook voor inhuren hoor.
    Op een kwartiertje is dat gefixed :-p

    Het is niet de properste methode, maar zou moeten werken:

    PHP
    $sql=$mysqli->query("SELECT `lang` FROM `[users]` WHERE `id`='".$mysqli->real_escape_string($id)."'");
    $tmp=$sql->fetch_object($sql);
    $taalOntvanger=$tmp->lang; 
    
    
    include("lang/".$taalOntvanger.".php");
    
    
    
    
    $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);
    
    
    
    
    if (empty($lang)) {
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    }
    switch ($lang)
     {
     case "nl" :
     include("lang/nl.php");
     break;
     case "en" :
     include("lang/en.php");
     break;
     case "de" :
     include("lang/de.php");
     break;
     default :
     include("lang/en.php");
     break;
    }
    Toon Meer
  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 29 februari 2020 om 19:59
    • #12

    Het bovenstaande werkt waarschijnlijk prima, maar de vraag is of je zo alle taalgerelateerde zaken wilt aanvliegen. Als je een volledig meertalige site / applicatie wilt maken is het misschien handiger/verstandiger om een wat generiekere aanpak te hanteren.

  • tkzone
    Beginner
    Ontvangen Reacties
    1
    Berichten
    26
    • 29 februari 2020 om 20:38
    • #13
    Citaat van K.Rens

    Je kan mij hier ook voor inhuren hoor.
    Op een kwartiertje is dat gefixed :-p

    Het is niet de properste methode, maar zou moeten werken:

    PHP
    $sql=$mysqli->query("SELECT `lang` FROM `[users]` WHERE `id`='".$mysqli->real_escape_string($id)."'");
    $tmp=$sql->fetch_object($sql);
    $taalOntvanger=$tmp->lang; 
    
    
    include("lang/".$taalOntvanger.".php");
    
    
    
    
    $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);
    
    
    
    
    if (empty($lang)) {
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    }
    switch ($lang)
     {
     case "nl" :
     include("lang/nl.php");
     break;
     case "en" :
     include("lang/en.php");
     break;
     case "de" :
     include("lang/de.php");
     break;
     default :
     include("lang/en.php");
     break;
    }
    Toon Meer

    Het werkt helaas niet, blijft nog steeds de bericht versturen in de taal van verzender.

  • Syntax
    Student
    Ontvangen Reacties
    6
    Berichten
    140
    • 29 februari 2020 om 20:56
    • #14

    Zou moeten werken. Wat heb je nu zelf geprobeerd

  • tkzone
    Beginner
    Ontvangen Reacties
    1
    Berichten
    26
    • 29 februari 2020 om 21:11
    • #15

    Heb geprobeerd om taalontvanger veranderen naar lang dus dat die gewoon de basis ophaalde maar dan kreeg ik helemaal geen bericht dus een lege tekst

    maar begrijp niet hoe die het dan vindt want hij vraagt de tekst nog steeds aan via $lang moet daar niet iets voor dat die $taalontvanger erbij haald? Want de $lang[] staat gewoon in de config daar blijft die het vandaan halen?

  • wims
    Beginner
    Berichten
    15
    • 1 maart 2020 om 00:11
    • #16

    *Dit bericht is verwijderd*

    Bewerkt één keer, laatst door wims (16 augustus 2020 om 14:02).

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 1 maart 2020 om 00:54
    • #17
    Citaat van tkzone

    Het werkt helaas niet, blijft nog steeds de bericht versturen in de taal van verzender.

    "Het werkt niet". WAT werkt er niet? Het resultaat is duidelijk, maar wat is de oorzaak hiervan?

    Misschien is het ook handig om een stramien voor ontwikkeling en debugging te hebben?

    Bijvoorbeeld een "flag" voor een debug/developer modus. Gooi dit ergens in een config:

    PHP
    <?php
    define('DEBUG_MODE', true);
    ?>

    De waarde (true of false) zou je van diverse dingen af kunnen laten hangen zoals host, user, of wat dan ook.

    En zet vervolgens aan het begin van je code het volgende:

    PHP
    <?php
    if (DEBUG_MODE) {
        // developer mode
        error_reporting(E_ALL);
        ini_set('display_startup_errors', true);
        // dump errors to screen
        ini_set('display_errors', 'stdout');
    } else {
        // live mode
        error_reporting(E_ALL);
        ini_set('display_startup_errors', false);
        ini_set('display_errors', false);
        // write errors to log
        ini_set('log_errors', true);
        ini_set('error_log', '/path/to/logs/error.log');
    }
    ?>
    Toon Meer


    Zo heb je één schakelaar (DEBUG_MODE) die bepaalt wat er met je errors gebeurt.

    Naarmate je code langer wordt moet je echt meer en meer gaan nadenken over een goede architectuur. Dit vormt het fundament van je applicatie. Als dit fundament al gammel is dan stort het geheel op den duur in als je alleen maar dingen blijft bijmetselen.

    Overigens, de beste manier om te leren programmeren is de fouten bestuderen en vervolgens uitzoeken hoe dingen in elkaar zitten. Anders blijf je tegen een "black box" aanturen zonder dat je begrijpt wat er gebeurt. Maar je moet dan om te beginnen van je code signalen ontvangen (en vervolgens kunnen interpreteren) over wat er misgaat. Hiervoor zijn de bovenstaande settings.

    NB: een include genereert geen foutmelding, enkel een "warning". Het kan dus best zo zijn dat jouw (include) paden niet goed zijn, niet goed staan ingesteld, of beide.

  • AarClay
    Intermediate
    Ontvangen Reacties
    34
    Berichten
    423
    • 1 maart 2020 om 12:58
    • #18

    Zie ook dit topic van je:
    https://www.phphulp.nl/php/forum/topi…cript/103356/1/

  • tkzone
    Beginner
    Ontvangen Reacties
    1
    Berichten
    26
    • 2 maart 2020 om 05:02
    • #19

    Iedereen bedankt voor de tips.

    Het is gelukt,

    Heb het nu zo gedaan.

    Code
    $uitbraak = array(
    "en"=>"You are lucky $data->login has bought you out!",
    "de"=>"Sie haben Glück, dass $data->login Sie aufgekauft hat!",
    "nl"=>"Je hebt geluk $data->login heeft je uitgekocht!");
    
    
    $language=$man->lang;
    
    
    $sql = "INSERT INTO `[messages]`(`time`,`IP`,`from`,`to`,`read`,`subject`,`message`) VALUES (
     NOW(),
     '".$_SERVER['REMOTE_ADDR']."',
     'afzender',
     '".$man->login."',
     '0',
     'invite',
     '$uitbraak[$language]'
    )";
    $mysqli->query($sql);
    Toon Meer
  • Syntax
    Student
    Ontvangen Reacties
    6
    Berichten
    140
    • 2 maart 2020 om 11:54
    • #20

    1 ding. Je hebt dus 'read' en je plaatst dat als 0. Dus ongelezen. Je kan dat gewoon weglaten in in je DB standaardwaarde 0 geven.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design