Multi talen script
Als dat een makkelijker en sneller weg is dan op deze manier.
str_replace.
De inhoud hoef je niet aan te passen. De vertaling gebeurt dan door Gewijzigd op 28/02/2020 23:06:42 door - Ariën -
Dat ziet er best ingewikkeld uit.
Eigenlijk valt het best wel mee als je het door hebt.
Zou toch moeten lukken?
Probeer..... :-)
Doe me best maar miss gewoon net iets meer ervaring in php...;)
Ja, dat komt vanzelf wel als je er veel mee oefent, en begrijpt wat er in je script gebeurt.
Doe me best haha maar jij weet ook niet de oplossing om me uit de brand te helpen?
Herhalen vind ik nu wel een beetje zonde van mijn tijd.
Voortbordurend op mijn eerdere voorstel:
Het bericht(type) wordt bijvoorbeeld geïdentificeerd als: message_you_have_been_bailed_out oid.
Een vertaling in het engels is dan bijvoorbeeld:
Player [player_that_posted_bond] has bailed you out!
Een vertaling in het nederlands is dan bijvoorbeeld:
Speler [player_that_posted_bond] heeft jouw borg betaald!
Je zou dit bericht dus taalonafhankelijk kunnen opslaan door het "bericht id" (you_have_been_bailed_out) te onthouden in combinatie met een lijst van "invulvakjes" (in dit geval enkel het vakje player_that_posted_bond). Voor de weergave pak je dan het taalspecifieke sjabloon wat hoort bij dit bericht id en vervang je alle invulvakjes door de inhoud hiervan, bijvoorbeeld met str_replace().
En op deze manier zou je *al* je dynamische taalspecifieke zinnen kunnen afhandelen.
Toevallig is de volgorde van de zin en de dynamische delen in het bovenstaande geval min of meer hetzelde, maar dat is lang niet altijd gegarandeerd in verschillende talen met verschillende zinsconstructies.
Of je slaat direct dit verwerkte sjabloon op als (taalspecifiek) bericht, ingeval iemand zelden/nooit schakelt tussen talen. Maar waarschijnlijk vraagt dan iemand binnen de kortste keren waarom de berichten niet van taal meeveranderen wanneer iemand van taal schakelt :p.
Ah well, waarschijnlijk moet je hier eerst zelf tegenaan lopen.
Gewijzigd op 29/02/2020 01:05:02 door Thomas van den Heuvel
Zo te zien ben je weer verder bij de buren van ICTscripters gegaan met je vraag? Ik neem aan dat we hier nog een terugkoppeling zien?
Of als iemand nog een tip heeft altijd welkom.
Gewijzigd op 01/03/2020 14:59:54 door - Ariën -
Iedereen bedankt voor de tips.
Het is gelukt,
Heb het nu zo gedaan.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$uitbraak = array(
"en"=>"You are lucky $data->login has bought you out!",
"de"=>"Sie haben Glck, 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);
"en"=>"You are lucky $data->login has bought you out!",
"de"=>"Sie haben Glck, 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);
Het wordt dus niet on-the-fly vertaald bij een taal-wisseling. Dat is nu dus duidelijk.
Ik raad wel aan om real_escape_string toe te passen op de data uit de array in de query. Ik vrees dat een ' de query plat zal leggen.
Ik snap alleen niet waarom je afwijkt van een taal-bestand?
Gewijzigd op 02/03/2020 15:05:14 door - Ariën -