anoniem Geplaatst: 30 januari 2004 Delen Geplaatst: 30 januari 2004 Ik ben bezig een eigen CMS te schrijven en daarbij ben ik tegen een probleem opgelopen. Ik wil de site tweetalig maken en ik weet niet op welke manier ik dat het beste in de database kan verwerken. Het gaat hier om berichten met een titel, bericht, samenvatting, categorie enz... Ik weet zeker dat er in de toekomst geen taal bijkomt. Hoewel ik ernaar ga streven om alle berichten tweetalig te plaatsen zal dit niet altijd het geval zijn. [list=1:3af59795d2][*:3af59795d2]Ik kan de berichten in zowel het Engels als het Nederlands in één tabel zetten, maar dan krijg ik dus 2 titelkolommen, 2 berichtkolommen enz. Daarnaast kan het zijn dat er bij een taal NULL ingevuld wordt omdat ik niets in die taal plaats. Het voordeel van deze methode is dat de posts dezelfde id krijgen waardoor het makkelijk wordt om naar de vertaling te linken.[*:3af59795d2]Ik kan natuurlijk ook een tabel maken met alleen id, auteur en datum. Vervolgens maak ik een 2 aparte (maar gelijke) tabellen met bericht, titel enz., voor elke taal één. Via een FK verwijs ik naar de eerstgenoemde tabel. Voordeel is dat het aantal NULL's beperkt wordt, maar ik vind de database zo wat onoverzichtelijk en eigenlijk zelfs onlogisch worden. (Of ligt dat gewoon aan mij?)[/list:o:3af59795d2]Graag jullie advies. - Bas Quote Link naar reactie
anoniem Geplaatst: 31 januari 2004 Auteur Delen Geplaatst: 31 januari 2004 Kun je iets uitgebreider vertellen wat voor een soort berichten er op de site te lezen zijn? Moet ik het zien als 'nieuwsberichten'? Kun je ook even aangeven hoe je de opzet van je site ziet? Ik neem aan dat er eerst een overzicht van berichten is te zien, maar je ontkomt er haast niet aan om daarvoor al een onderscheidt te maken tussen de talen. Je kunt de site ook laten beginnen met een lijst van slechts Auteur en verschijningsdatum. Het hangt echt een beetje af van hoe je de gebruiker naar een bericht wilt lokken. Ik heb namelijk wel een idee en een oplossing, - en dat is zeker niet optie 1 - maar ga ik voor optie 2 maar dan wel iets anders. Quote Link naar reactie
anoniem Geplaatst: 31 januari 2004 Auteur Delen Geplaatst: 31 januari 2004 Ik wil een soort weblog maken zoals Movable Type, maar dan anders. :D Op de homepage van de site zullen berichten komen te staan van de afgelopen [i:2f975973a5]x[/i:2f975973a5] dagen. Maar omdat ik soms lange stukken wil schrijven moeten deze niet helemaal op de homepage komen. Je ziet dus één of twee alinea's die de gebruiker nieuwsgierig moeten maken om naar het volledige artikel door te klikken. De volledige artikels staan in een archief gesorteerd op categorie. Je kunt het idd zien als een soort nieuwsberichten, maar deze zullen afgewisseld worden door "artikels" die ik zelf ga schrijven. (Of is het verstandiger om daar een aparte tabel van te maken en ernaar te linken vanuit de nieuwsberichten?) In principe kan er ook nog wel gesleuteld worden aan de opstelling van de site, want ik merk al bij het ontwerpen dat alles z'n voor- en nadelen heeft. - Bas Quote Link naar reactie
anoniem Geplaatst: 31 januari 2004 Auteur Delen Geplaatst: 31 januari 2004 Moet je nog één vraag beantwoorden, dan kom ik met een voorstel. Op je weblog toon je berichten, maar ook artikels. Maar kunnen bezoekers ook op die berichten reageren? Quote Link naar reactie
anoniem Geplaatst: 31 januari 2004 Auteur Delen Geplaatst: 31 januari 2004 Ja. :) - Bas Quote Link naar reactie
anoniem Geplaatst: 31 januari 2004 Auteur Delen Geplaatst: 31 januari 2004 We gaan even je gegevens 'ontleden' Je hebt nodig: ID Taal Auteur Titel Categorie Korte Omschrijving Volledig_Artikel Datum Als je dit goed beschouwt hoort alles eigenlijk bij elkaar. Je kúnt het uit elkaar halen, maar dat levert geen enkele winst op. Het klinkt daarom misschien vreemd, maar ik zou het één tabel houden. Nu zul je zeggen dat je niet naar de vertaling kunt klikken, en dat klopt. Maar waarom zou je naar een vertaling moeten kunnen klikken. Immers, die vertaling moet eerst maar bestaan, en het is heel goed mogelijk dat dat niet het geval is. Daarnaast, waarom zou een Nederlander iets nogmaals willen lezen in het Engels, en nog sporadischer zal het voorkomen dat een Engelstalig iemand een Nederlandstalige tekst wil lezen. Denk er maar even over na, en vind je dit eigenlijk niets dan gaan we het anders aanpakken. Quote Link naar reactie
anoniem Geplaatst: 31 januari 2004 Auteur Delen Geplaatst: 31 januari 2004 En hoe los je het dan op als er wel een Engelse, maar geen Nederlands vertaling is? Je zal tenslotte items moeten selecteren op hun taal (beter is weer een taalID natuurlijk ;)) (en op andere criteria zoals de datum of zo). Je zou kunnen zeggen: dikke pech, dan maar geen artikel, maar ik lees het dan liever in het Engels dan niet... Quote Link naar reactie
anoniem Geplaatst: 31 januari 2004 Auteur Delen Geplaatst: 31 januari 2004 [quote:0764f970df]En hoe los je het dan op als er wel een Engelse, maar geen Nederlands vertaling is?[/quote:0764f970df] Pardon? Een artikel is in het Nederlands, Engels of beide. Ik neem maar even aan dat je eerst kiest in welke taal je de site wilt lezen. Staat een artikel niet op de NL site, dan zoek je op de Engelse. Staat daar ook niets, tja, dan bestaat ie niet.... Quote Link naar reactie
anoniem Geplaatst: 31 januari 2004 Auteur Delen Geplaatst: 31 januari 2004 Ja, daar heb ik dus ook nog een vraag over... Geven jullie de voorkeur aan een site zoals [url=http://gemal.dk]Gemal.dk[/url] of de traditionele manier? Op Gemal.dk wordt de taalvoorkeur uitgelezen uit de browser, en artikels worden vervolgens in die taal getoond. Bestaat het artikel niet in die taal, dan zie je het originele artikel (in dit geval in het Deens). Onder het traditionele systeem versta ik een site waarbij de de taal uit de URL wordt uitgelezen en dus ook alleen artikels in die taal toont. Meestal gaat dit gecombineerd met een "kies de gewenste taal"-pagina, compleet met vlaggen enzo... - Bas Quote Link naar reactie
anoniem Geplaatst: 31 januari 2004 Auteur Delen Geplaatst: 31 januari 2004 Het mooiste is uiteraard dat je de website in je eigen taal krijgt, maar wat moet ik met een in het Deens geschreven artikel? Ik heb geen Deens in mijn 'pakket'. :lol: Quote Link naar reactie
anoniem Geplaatst: 1 februari 2004 Auteur Delen Geplaatst: 1 februari 2004 Nee, maar als je bijvoorbeeld de PHP manual neemt, daar zijn de meeste functies wel vertaald naar het Nederlands, maar niet allemaal. En dan zie je die dus in het Engels... Je zou het probleem kunnen oplossen door bij het toevoegen van een nieuw item meteen de vertaling toe te voegen en als je dat dan niet doet om gewoon voor iedere taal die je hebt de orginele tekst in te voegen (dus als je geen Engelse vertaling hebt daar de Nederlandse tekst neerzetten). Of je vraagt alle items op onafhankelijk van de taal en gaat vervolgens kijken of een item beschikbaar is in de gewenste taal. Zo ja: tonen, zo nee: item in de "basistaal" openen... Quote Link naar reactie
anoniem Geplaatst: 1 februari 2004 Auteur Delen Geplaatst: 1 februari 2004 Hmmm... Ik ga even over het een en ander nadenken, als ik een echt ontwerp heb kom ik hier terug om jullie goedkeuring te vragen. Alvast heel erg bedankt! - Bas Quote Link naar reactie
anoniem Geplaatst: 1 februari 2004 Auteur Delen Geplaatst: 1 februari 2004 Je hebt één artikel. Het artikel kan geschreven zijn in één of meerdere talen. Men kan commentaar plaatsen op het artikel. [code:1:7c2427438b] Tabel TArtikel --------------- ArtikelID, CategorieId^, etc. Tabel TArtikelTaal ------------------ ArtikelTaalId, ArtikelId^, TaalId^, AuteurId^, Datum, Titel, Omschrijving, Artikel, etc. Tabel TCategorie ---------------- CategorieId, Categorie Tabel TTaal ----------- TaalId, Taal Tabel TAuteur ------------- AuteurId, Auteur Tabel TCommentaar ----------------- CommentaarId, Datum, E-mail, Naam, Omschrijving, etc. ^ = foreign key Commentaar kun je koppelen aan de tabel TArtikelTaal als je dit taalafhankelijk wilt opslaan. Als commentaar van de verschillende talen gemixed kunnen worden kun je gegevens uit de tabel TCommentaar koppelen aan de tabel TArtikel [/code:1:7c2427438b] Quote Link naar reactie
anoniem Geplaatst: 2 februari 2004 Auteur Delen Geplaatst: 2 februari 2004 Wat ik wil is dus het volgende: [img:219fb1f07f]http://basje.com/temp/erd.gif[/img:219fb1f07f] Voor zover ik kan zien komt dit aardig overeen met wat h4xX0r heeft gegeven... Klopt dit? En belangrijker nog: is dit een handige opzet? [b:219fb1f07f]Edit:[/b:219fb1f07f] De posts zijn natuurlijk disjoint en niet overlapping zoals ik hier in het schema aangeef. - Bas Quote Link naar reactie
anoniem Geplaatst: 2 februari 2004 Auteur Delen Geplaatst: 2 februari 2004 Ik zie geen plaatje hoor?! Quote Link naar reactie
anoniem Geplaatst: 3 februari 2004 Auteur Delen Geplaatst: 3 februari 2004 [quote:e012b8e089="Wiep Corbier"]Ik zie geen plaatje hoor?![/quote:e012b8e089]Sorry, server was tijdelijk offline, kon ik helaas niets aan doen... :( - Bas Quote Link naar reactie
anoniem Geplaatst: 3 februari 2004 Auteur Delen Geplaatst: 3 februari 2004 [quote:d492ef40cf="BasHamar"]Wat ik wil is dus het volgende:[/quote:d492ef40cf] Tuurlijk, wat jij wilt. [quote:d492ef40cf="BasHamar"] ... Voor zover ik kan zien komt dit aardig overeen met wat h4xX0r heeft gegeven... Klopt dit? En belangrijker nog: is dit een handige opzet? [b:d492ef40cf]Edit:[/b:d492ef40cf] De posts zijn natuurlijk disjoint en niet overlapping zoals ik hier in het schema aangeef.[/quote:d492ef40cf] Jouw schema impliceert: - Dat één persoon beide versies *moet* schrijven. Verder is hier niets mis mee. Quote Link naar reactie
anoniem Geplaatst: 6 februari 2004 Auteur Delen Geplaatst: 6 februari 2004 [quote:df90896515="h4xX0r"]Jouw schema impliceert: - Dat één persoon beide versies *moet* schrijven.[/quote:df90896515]Goed punt! Mijn advies: Combineer post_nl en post_en (en replies_nl en replies_en) aangezien deze, op de taal na, exact gelijk zijn. Dit bespaart je ruimte, ineffincentie, programmacode en problemen in de toekomst (even snel in uit mijn hoofd geanalyseerd: als ik het zelf zou bouwen zou ik het ook nog op papier analyseren en uitschrijven). -Rémy Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen