Meertaligheid in combinatie met Javascript

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ontwikkel een meertalige site. Vertalingen staan in aparte php.bestanden en worden ingelezen op het moment dat een pagina geopend wordt, met een bepaalde taalkeuze. Elke pagina heeft zijn eigen bestanden in de verschillende talen, met daarin b.v. de labels (define('lbl_x', 'xxx')).
Voor form validatie op de server gebruik ik voor de foutmeldingen ook dergelijke bestanden. Nu wil graag weten of ik eenvoudig van deze bestanden gebruik kan maken in javascript, zodat dezelfde foutmeldingen ook bij de clientside validatie gebruikt worden, en dus eenmaal gedefinieerd en vertaald hoeven te worden.
Eventueel kunnen de foutmeldingen ook in een .txt bestand gezet worden. Vraag is dus in feite hoe ik de gegevens aan mijn javascript toe kan voegen en uit kan lezen ...

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Je hebt je error's, bijvoorbeeld: Define("EMAIL", "email incorrect");

Ergens maak je dan een javascript file aan, maar met de php extensie, daarna je dan:
PHP:
1
print "function emailNietJuist() { alert('" . EMAIL . "'); }";



En dat script include je weer in je html pagina, waar je, na formvalidatie, die functie oproept, indien de email fout is.
Zo moet het lukken :)

[ Voor 19% gewijzigd door Snake op 26-03-2007 22:12 ]

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

Verwijderd

Als de vertaling bij het laden van de pagina wordt ingelezen, dan kan je de teksten toch in een javascript array inladen? Je laat php gewoon een javascript array outputten.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
OK, dank je wel. Ik zat wel in die richting te denken, maar wil javascript graag losgekoppeld hebben van de php en dus eigenlijk andersom werken.
Eigenlijk zoek ik dus een soort "include" in javascript.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 16:17

Janoz

Moderator Devschuur®

!litemod

Een soort include? Wat dacht je van:

<script type="text/javascript" src="included.js"></script>

En als je het dynamisch wilt hebben doe je niet een js bestand, maar php waarin je de juiste js genereerd, of met php zet je een postfix als _en of _nl neer.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik druk mij misschien niet duidelijk uit:
in mijn register.php script include ik inderdaad een validate.js script.
In dit validate.js script staan verschillende foutmelding (email incorrect, etc).
Deze foutmelding staat al in het bestand register.1.php als (define("err_email", "Onjuist email adres.")).
Nu wil ik graag dit register.1.php bestand gebruiken in het validate.js script. Eventueel kan dit ook een register.1.txt bestand worden met var err_email = 'Onjuist email adres'.

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Als je nou register.1.php als een nette array opslaat (zo kan je em in php gebruiken) en dat door een JSON converter haalt, en dat met file_put_contents cached naar register.lang.js, dan heb je een oplossing voor beide lijkt me :)

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Lichtjes simpel denk ik het zo te doen:
  • /js/register-nl.js
  • /js/register-en.js
  • /js/register-de.js
  • /js/register-fr.js
En dan (dirty version) in php:
PHP:
1
2
3
4
5
6
...
<?
echo "<script type=\"text/javascript\" src=\"/js/register-$lang.js\"></script>";
?>
<script type="text/javascript" src="/js/basic.js"></script>
...

Acties:
  • 0 Henk 'm!

  • kunnen
  • Registratie: Februari 2004
  • Niet online
Zolang daar alleen strings in staan en geen code - anders moet je 50 versies updaten als je een klein veranderingetje maakt...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mooozzzuzz, je oplossing is goed.
Bij het openen van de pagina, stel ik de taalafhankelijke .js bestanden samen uit mijn taalafhankelijke .php bestand en klaar!
Bedankt.
Pagina: 1