[Alg] Website in meerdere talen

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 16-02 17:47
Op dit moment heb ik een code library ontwikkeld voor een website die binnenkort in meerdere talen onder meerdere domeinnamen beschikbaar moet komen.

Om onafhankelijkheid te garanderen tussen de verschillende versies heb ik het volgende plan in gedachten:

- Het code library komt in de trunk van het subversion version control system
- Voor elke taal komt een branch, waarin de templates vertaald worden naar die taal
- Voor elke website komt er een checkout van een bepaalde branch die dus de code-library + templates bevat.

Nu heb ik zelf weinig ervaring met branchen. Mijn vraag is dus of dit een haalbaar idee is. Het liefst wil ik niet de vertaling vanuit de database doen + werken met 1 trunk. Vandaar het branch idee. Heeft er iemand ervaring met het aanbieden van websites in meerdere talen? Hoe eenvoudig is het om wijzigingen in de trunk door te voeren in de branches, zonder dat de specifieke wijzigingen in die branches verloren gaan?

Misschien probeer ik nu het version control idee te misbruiken.

P.S. Dit topic hoort misschien in meerdere fora thuis.

Ik blijf er iig vrij nuchter onder....


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 16-02 17:47
Ja goed, daar gebruiken ze dus de database aanpak.

Ik ben specifiek geinteresseerd in hoe dit probleem met version control te beheren is.

Ik blijf er iig vrij nuchter onder....


  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 11-04 20:20
Waarom zou je dit met version control willen beheren? Waarom kan het niet in 1 trunk, waarin de verschillende vertalingen tegelijk beschikbaar zijn? Het hoort in principe in aparte mapjes of aparte files thuis, waarom zou je het in aparte trunks willen doen? Waar zie je het voordeel van jouw aanpak in? Waarom doe je het niet op de 'simpelere' manier?

Verbouwing


  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Wat ik zou doen is gewoon een map aanmaken (languages bijvoorbeeld) en daarin elk submapje een andere taal en die submapjes een bepaalde indeling geven die voor jou type site geld.

  • ruthger
  • Registratie: September 2000
  • Laatst online: 22-11-2024
Per taal een bestand aanmaken waarin via variabelen de strings in staan. En dan één van deze taal bestanden includen.

Veni, vidi et cervesiam


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 16-02 17:47
Misschien moet ik het iets nader toelichten. De site heeft een bepaalde structuur. De site is opgedeeld in modules, daarmee wordt simplistisch de opbouw van de site als volgt:

includes/ -> bevat de code library die door alle modules gebruikt wordt
modules/ -> deze map bevat de modules
modules/MODULE/ -> de map van een bepaalde module
modules/MODULE/php -> de map met php code van de module
modules/MODULE/templates -> de map met de templates.


In principe is voor de website in elke taal alleen de map modules/MODULE/templates verschillend.
Herschrijven van deze structuur is op dit moment geen optie, en daarom ben ik op zoek naar een eenvoudige manier om de site meertalig te maken, zonder daarmee te site nog meer database afhankelijk te maken. Dit bereik je door de templates gewoon te vertalen en niet van alles in de database of include bestanden te zetten. Ik snap wel dat dat veel intuitiever is, maar voor grote site is dat gewoon niet snel genoeg.

Mijn idee was dus om in de trunk deze structuur te zetten, en dan per taal een branch, waarin alleen de modules/MODULE/templates map gewijzigd wordt, terwijl de codelibrary en de PHP map alleen in de trunk gewijzigd worden.

Uiteindelijk krijgt elke taal een eigen server, en dan is het gewoon niet optimaal om al die include bestanden en database ideeen toe te passen. De site moet licht blijven.

Is dit mogelijk met branches?

Ik blijf er iig vrij nuchter onder....


Verwijderd

Over het algemeen genomen is version control niet voor deze toepassing gemaakt. Binnen version control heb je 1 versie die de hoofdversie vormt: de trunk. Deze versie dient altijd werkend te zijn. Als ontwikkelaar een stuk software gaat uitbreiden met extra functionaliteit dan zullen ze hiervan een branch maken (zie dat als een kopij van de trunk, zonder dat alle de bestanden worden gekopieerd, maar puur versie gebaseerd) die in de naamgeving kenmerken heeft van de 'eigenaar' en de wijzigingen. Nadat deze wijzigingen zijn gemaakt en getest wordt de branch vervolgens 'gemerged' met de trunk zodat de trunk een nieuwere versie is met nieuwe functionaliteit. Dus ontwikkeling heeft plaatsgevonden zondat de trunk even niet-werkend is geweest. Op dit manier is het ook mogelijk om met meerdere gebruikers tegelijk een branch te maken. Zeker als ze niet in hetzelfde deel van de software bezig zijn, is het mergen daarna een eitje.

Terugkomend op jouw vraag. Zoals je het trunk-branche idee voorstelt lijkt meer op een kopij maken van alle files in elke kopij een paar wijzigingen waardoor het een andere taal is. De ontwikkeling hiervan kun je op zich best doen door middel van subversion. Echter, je kunt niet meerdere branches 'makkelijk' tegelijk gebruiken, omdat je tussen diverse branches en de trunk moet 'switchen'. Dit zal je webserver niet realtime doen ;) Version control is dus niet bedoeld als oplossing voor je probleem.

Oplossingen wordt volgens mij eigenlijk al gegeven door Mithrandir, eghie en Ruthger.

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 23:03

TheDane

1.618

Waarom werk je niet met iets als gettext ?
Pagina: 1