Vertalingen uit de tekst of uit de database?
Niet alleen alle (fout)meldingen en teksten, ook de buttons en navigatie, een flinke lijst met woorden dus....
De "basistaal" wordt Engels. Vraag is: wat zouden jullie doen?
a) vertaling uit een PHP include
b) vertaling via Javascript
c) vertaling uit de database
d) ????
Optie C heeft natuurlijk als voordeel het onderhoud, maar ik heb deze optie tot dusver altijd vermeden vanwege trage performance.
Ik sta open voor alle suggesties!
en dan een username error zetten ze in $l['username_error'] dan kan je per taal zo'n bestand maken en die includen.
Toevoeging op 12/11/2011 16:28:13:
eventueel met sprintf() de username in de string zetten.
En dan een localisation bestand aanmaken genaamd NL_local.php
Code (php)
1
2
2
$msg['wrong_email'] = 'Foutief e-mailadres';
$msg['wrong_username'] = 'Vul een naam in.';
$msg['wrong_username'] = 'Vul een naam in.';
Etc...
Ik neem aan dat je de taal in de url hebt staan? Dan include je dus locale/{huidige-taal}/translate.php
Verder maak je nog een functie die de juiste vertaling terug geeft. Ik raad je aan om een simpele en korte naam te verzinnen, omdat je de functie vaak gaat gebruiken. In veel systemen wordt __ gebruikt als naam.
Voorbeeld:
Op het moment waar je daadwerkelijk het woord wilt weergeven hoef je dus alleen de functie aan te roepen met als parameter het woord.
Simpel voorbeeld weer:
Succes!
Edit: Zie dat er inmiddels al andere posts zijn die ong het zelfde zeggen.
Gewijzigd op 12/11/2011 16:37:39 door Mar cel
@Cees:
Het is een beetje afhankelijk van wat je wilt bereiken, bv wil je dat gebruikers ook de waardes aan kunnen passen? Dan is een db wellicht toch een betere oplossing of een optie D xml. Wat ik vaak doe is de waardes in een array pleuren (vanuit db of xml) en dan in het sctipt opvragen.
Met XML genereer je een gigantische overhead.
ten opzichte van wat?
@ger een functienaam kan je toch zelf ook bedenken. Hij bedoeld hiermee dat het varieert.
@jordi knap dfat je weet wat een ander bedoelt
Nou Wordpress, Cakephp etc gebruiken allemaal __. Het is gewoon een erg handige en korte notatie, je gebruikt het over je hele applicatie, om elk zinnetje wat je toont gebruik je de functie. In dit geval, is persoonlijk, vind ik __() beter dan getTranslation() oid. Maar dat is persoonlijk..