Snel site in vier talen maken?

Ik ben een site aan het maken die viertalig dient te worden. Moet ik nu vier losse sites gaan maken, ieder in één taal? Of bestaan er slimmere trucs om de site multilinguaal te maken?

Wordt het een statische of dynamische website?

Als je een dynamische website maakt met bijv. php kan je de vier talen in 1 pagina verwerken en steeds op basis van een variabele de gewenste taal zichtbaar maken en de rest van de talen verbergen. Werk je alleen met html dan zal je voor elke taal een aparte pagina moeten maken.

Het wordt statisch. Maar ik wil het ook met een dynamische site gaan doen.

Als je gebruik maakt van DreamWeaver dan kun je vrij snel een statische site maken dmv Templates en Libraries.

De meeste tijd gaat bij statische sites toch zitten in de kleine aanpassingen in een pagina, die dan doorgevoerd moeten worden in alle pagina’s. Met DreamWeaver templates scheelt dat een hoop werk.

Als je wat van Php af weet lijkt me het hierboven genoemde de beste oplossing. Sla de taal op in een variabele die je bij elke link op je site meestuurt. Nog mooier zou zijn om eenmalige $_SESSION['language'] variabele te gebruiken of een cookie die de taal onthoudt.

Groeten, Wilfred

Mijn site is tweetalig. Ik stop alle content in een MYSQL database en laad de juiste taal in afhankelijk van de gebruikersvoorkeuren via PHP. Eenmalig kan een gebruiker een voorkeurstaal opgeven die opgeslagen wordt in een cookie. De standaardtaal is Engels.

Je moet wel even nadenken over de structuur van je database. Als het bij 4 talen blijft en nooit gaat veranderen, dan kan je voor iedere taal een apart veld aanmaken voor een pagina zoets als:

[code:1:27977adba3]

  • id
  • content_nl
  • content_en
  • content_de
  • content_fr
    [/code:1:27977adba3]

Dit wordt alleen snel onoverzichtelijk, dus het handigst is om een aantal gerelateerde tabellen te maken met id verwijzingen en een taaltabel met id verwijzingen, zodat het aantal te gebruiken talen in feite oneindig is:

[code:1:27977adba3]
TABELNAAM: menustructuur

  • id
  • parent_id
  • menuitem

TABELNAAM: taal

  • id
  • taalsoort

TABELNAAM: menutitels

  • id
  • menu_id
  • taal_id
  • titeltext

TABELNAAM: pagina

  • id
  • menu_id
  • taal_id
  • titel
  • content

    [/code:1:27977adba3]

In menustructuur kan je de ondelinge samenhang tussen menu-items (bijv op macosx: ‘forum’, ‘voorpagina’, ‘zoeken’ etc.) modelleren.

In menutitels de weergave van de titels in de verschillende taal ophalen

In taal kan je alle taalmogelijkheden opgeven, dus bijv nl, en, de, fr, etc.

In pagina kan je alle content van een pagina stoppen. Via menu_id koppel je de paginacontent aan de menustructuur, via taal_id geef je aan in welke taal die content staat.

In je SQL leg je de koppelingen en haal je afhankelijk van de taalinstelling de juiste taal op.

Het is maar een ideetje :slight_smile: Ik heb een keer een N-talige applicatie gemaakt en dit was de oplossing die prima werkte; er zit geen limiet op het aantal talen.
Je weet mijn mailbox te vinden als je wat meer wilt weten.[/code]

[quote:a76d43091d="lucasraggers"]Het wordt statisch.[/quote:a76d43091d] En dan komen we met php-oplossingen aanzetten... :? Het is natuurlijk beter, handiger, sneller etc... maar geen optie in dit geval, lijkt me.

Als het dynamisch mag, kan je naar PHP gaan, desnoods ZONDER MySQL, heb ik een keertje gedaan omdat we op de webhost géén database hadden. Ik maakte dan op de hoofdindex een mapje data met daarin allerlei zoals language en daar dan de verschillende talen in met elk een vaste structuur. Het waren gewone tekstbestanden die ik inlas via de échte php-pagina's, lijntje per lijntje.

MySQL is wel iets handiger, maar je moet het wel hebben!

Als je in HTML wil blijven, raad ik je het gebruik van JavaScript aan! Er zijn zo voorstaanders van frames en dus ook tegenstanders :slight_smile: Ik ben dus dat laatste, maar om toch een stukje frame in je site te krijgen, kan je heel simpel gebruik maken van JS. Het komt er dan hier ook op neer om de interface te schrijven in JavaScript en deze uit je HTML-pagina op te roepen. Al een grote waarschuwing is MICRO$hit! M$ maakt gewoon een eigen java-versie en met MSIE op Win, kan je géén tabellen degelijk in JavaScript en HTML mixen. Een tabel moet ofwel integraal in HTML staan, ofwel integraal in het JavaScript. Als je in JS een stuk tabel begint en in HTML hier op verder bouwt, dan lijkt dit allemaal oké, totdat je eens op een wintel met Exploder gaat bekijken!

Maar soit, als de interface goed gestructureerd wordt in de code, kan je hiermee simpel te werk gaan lijkt me. De interface zit dan toch apart, dus als je daar wat wilt aan prutsen, kan je het daar doen. Eventuele mensen die de pagina’s gaan vertalen zien dan ook niet al té veel opmaakcode staan en als je dan de verschillende talen netjes in mapjes zet, met dezelfde structuur, dan is alles heel duidelijk en simpel. Zelfs voor de interface! Want maak dan gebruik van relatieve adressen en zorg dat de taalmap in de root staat en dat elke taalmap dezelfde webstructuur heeft. Dan kan je bij een nieuwe taal de map integraal kopiëren en dan maar vertalen! :slight_smile:

Vwalla, hoop dat dit nog iets is. Maar écht handig voor talen is uiteraard… dynamisch :slight_smile:

[quote:5d73014dfc="Sybke"][quote:5d73014dfc="lucasraggers"]Het wordt statisch.[/quote:5d73014dfc] En dan komen we met php-oplossingen aanzetten... :? Het is natuurlijk beter, handiger, sneller etc... maar geen optie in dit geval, lijkt me.[/quote:5d73014dfc]

Lezen is ook een kunst:

[quote:5d73014dfc=“lucasraggers”]Het wordt statisch. [b:5d73014dfc]Maar ik wil het ook met een dynamische site gaan doen[/b:5d73014dfc].[/quote:5d73014dfc]

Statisch=statisch en dus handmatig onderhoud van een pagina per taal. Maar dat is dermate triviaal dat het weinig zin heeft om daar iets over te zeggen.