Toon posts:

[PHP/MySQL] Website in meer talen.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik moet een website bouwen in 3 of meer talen (moet makkelijk uit te breiden zijn) waarvan niet allen content "cross-language" hoeft te zijn.

Nu vroeg ik mij dus af hoe hebben jullie dat nou gedaan ?
Verschillende dB's of tabbellen of niet.

Het probleem is meer dat het einbproduct redelijk dynamsich moet zijn, bv. een nieuwe taal moet binnen een 1/2 technisch geimplementeerd kunnen worden etc.
Ik heb al aan meerdere oplossingen gedacht maar heb de goede er nog niet tussen gevonden :?

/me ziet uit naar de antwoorden :)

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Eerst alles opschrijven WAT er vertaald gaat worden.
Dan een dbtje:

waar je al die elementen in propt...
dus

id
taal
htmltitel
fotos
links
blaat

En die vul je in, en je lees via de id de zooi in, en doet lekker:

echo $language[fotos]; en er komt "photo's" uit.

  • vandijk
  • Registratie: Oktober 1999
  • Laatst online: 22:19
De oplossing die je kiest is afhankelijk van een aantal zaken:
- Aantal talen
- Soort inhoud ( 1 text area of allemaal losse velden)
- invoer methode
- Verplicht of niet verplicht invullen van alle talen

mogelijkheid 1:

tabel content met de kolommen:
ID, TITLE_EN, BODY_EN, TITLE_NL,BODY_NL, [administratieve info]

Alleen handig indien
- alle talen verplicht ingevuld moeten worden
- er niet veel talen zijn

mogelijkheid 2

tabel content met de kolommen
ID, [administratieve info]

primary key : ID

en een tabel translated_content met de kolommen
ID,LANGUAGE,TITLE,BODY

primary key : ID,LANGUAGE

foreign key : ID

Canon cameras en lenzen. Elinchrom flitsers, Lowepro en Pelican tassen/koffers. Polestar 2


Verwijderd

Topicstarter
Inhoud van de website :

De inhoud van de pagina's op de website bestaat o.a. uit nieuwsitems (datum,kop,tekst,image) een adressenbestand (bedrijven) en andere teksten (meer volgt in een later stadium).

Het adressenbestand komt voor in alle talen, en bijvoorbeeld het nieuws kan alleen NL of een andere taal zijn.

Het toevoegen van de content gaat d.m.v. een webbased content managment systeem.

  • KlaasB
  • Registratie: Juli 2000
  • Laatst online: 01-07-2024
Vertaalbestandjes:
Dmv. sessions en/of cookies onthoud je de taal voorkeur van iemand, en die include je
PHP:
1
2
3
<?
 include("php/$taalvoorkeur.inc.php"; 
?>

Zo'n bestandje ziet er dan zo uit:
PHP:
1
2
3
4
5
6
7
<?
 //Nederlands
 setlocale ("LC_TIME", "nl_NL");
 $HomE     = "Thuis";
 $NexT     = "Verder";
 $PreviouS = "Vorige";
?>

Het Engelse bestandje ziet er zo uit:
PHP:
1
2
3
4
5
6
<?
 //English
 $HomE     = "Home";
 $NexT     = "Next";
 $PreviouS = "Previous";
?>

Ik geef de variabelen expres een hoofdletter aan het begin en eind zodat ze nooit dwarsliggen met variabelen in de gebruikte code (waar ik dus nooit dat doe).

It's not a bug, it's a feature


Verwijderd

Topicstarter
Het werken met (ver)taal bestanden en functies is mij wel bekend.
Het gaat nu ook niet om het doen van bijv. translate("$var"); maar om de database achter de website.
Welke gevuld is met grote stukken tekst en bijbehorende stuff.

De website moet een combinatie worden van een regular info site, portal en wat we er nog bij bedenken. :D

edit:
typo

Verwijderd

Topicstarter
Krijg niet veel antwoorden maar heb een ideetje, waar jullie dan weer een reactie op kunnen geven.

Gezien het feit dat het geheel een schaalbaar product moet worden ga ik verder met het idee van 1 dB met voor iedere taal zijn eigen tabel.
De tabellen weer gekoppelt aan een eigen script of website onderdeel.

Even de tabellen die in de database staan.

Algemeen gedeelte van de website :
----------------------------------
GText(NL/DE/EN)
GImages


Adresbestand :
---------------
AText(NL/DE/EN)
AdressesAImages

Wie snap het nog en wil er iets over kwijt of wil gewoon nog iets over deze topic kwijt :?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:38

TeeDee

CQB 241

ik denk dat je toch iets van handmatig de content in de db moet doen _per_ taal. Is wel iets meer werk, maar lijkt mij het makkelijkste.

en dan de page aanroepen met:

pagina.php?id=1?lang=NL

ofsoiets...?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 10-09 23:27
Voor het vertalen van je navigatie en niet-dynamische zooi, kun je het beste Gettext gebruiken. Dat is veel sneller dan een 'eigen' php oplossing. B.v. Squirrelmail gebruikt gettext.

Voor de rest kun je imho het beste gewoon een extra veld met language toevoegen aan je tabellen. Dus b.v. nieuwstabel krijgt dan als extra veld 'taal' o.i.d. waarin je gewoon de taal zet (met een id ofzo)

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 12 december 2001 11:08 schreef msturm10 het volgende:
[...]Voor de rest kun je imho het beste gewoon een extra veld met language toevoegen aan je tabellen. Dus b.v. nieuwstabel krijgt dan als extra veld 'taal' o.i.d. waarin je gewoon de taal zet (met een id ofzo)
dit is in de meeste gevallen een goede oplossing.

In sommige gevallen zou je een andere tabel kunnen overwegen. (performance gerelateerd..) en dan wel zorgen dat je tabellen allemaal hetzelfde opgebouwd zijn. dus ipv nieuws maak je nl_nieuws , de_nieuws , sw_nieuws, uk_nieuws.

Daardoor hoef je de code maar een keer te maken maar met een variabele kan je dan toch de goeie tabel gebruiken om te queryen.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1