Webredactie SVN

From A-Eskwiki
Revision as of 23:52, 10 October 2017 by Daanr (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Dialog-warning.png

Deze pagina is of lijkt outdated. Informatie die hier staat klopt misschien niet! Voel je vrij om 'm te editen.

Als je vindt dat deze pagina wel gewoon up-to-date is kan je dat discussiëren op de talk pagina.


SVN wordt door de PromoCie gebruikt om de strings op de website te vertalen, die niet in Publisher staan. Zie voor documentatie voor de WebCie de sectie Voor de WebCie, voor de PromoCie zie Voor de PromoCie.

Voor de WebCie

Om ervoor te zorgen dat de PromoCie tekst heeft om te vertalen doe je het volgende:

  • Ga naar www/gettext en voer het update bestand uit via ./update
  • De wijzigingen in voc/en_GB.po en voc/nl_NL.po kun je dan vervolgens committen

Denk eraan dat je altijd tekst in je code beschikbaar maakt voor vertalen, bijvoorbeeld _('Deze tekst moet vertaald worden'). Deze strings moeten niet te triviaal worden, anders heeft de vertaler er niets aan. Als je zomaar _('overig') neerzet, dan weet de vertaler echt niet of het slaat op "remaining" (bijvoorbeeld als je dingen indeelt in groepjes) of het slaat op "other" (bijvoorbeeld als je omschrijvingen geeft aan dingen). Om dit euvel te verhelpen, kun je hints neerzetten in de vertaalbare strings, die betekenissen moeten verduidelijken en ontwarren. Dan kun je bijvoorbeeld _('[VOC: niet in voorgaande lijstjes]overig') of juist _('[VOC: functie commissielid]overig') neerzetten. Op zo'n zelfde manier kun je stringinterpolaties verduidelijken: in plaats van _("Deze persoon %s!") schrijf je dan _("Deze persoon %s[VOC: redenen dat persoon niet verwijderd mag worden]!").

Het update-script zorgt er meteen voor dat de hints worden weggefilterd, dus er is geen enkele reden om het niet te doen!

Voor de PromoCie

SVN (Subversion) is een programma dat zorgt voor het versiebeheer van de vertaalbare strings. Ook houdt het (vaak) automatisch rekening met het mergen van verschillende versies en kan je makkelijk een oude versie terugzetten. Voor de onderstaande commando's heb je een terminal nodig.

SVN Checkout

Als je nog nooit strings hebt vertaald moet je eerst een SVN checkout doen via svn checkout https://www.a-eskwadraat.nl/svn/webredactie/ webredactie

SVN Update

Om je bestand up to date te maken gebruik je svn up

Hierna kan je werken aan het bestand met behulp van het programma GTranslator via gtranslator en_GB.po &

SVN Commit

Als je een wijziging hebt gedaan aan de vertaalbare strings (en hebt opgeslagen) moet je dit committen, zodat andere PromoCieleden er ook iets mee kunnen doen en zodat het op de website komt.

Dit doe je via: svn ci en_GB.po

Zorg wel dat je in de terminal eerst naar de juiste map gaat waar het bestand in staat.

Het kan zijn dat SVN zeurt dat je geen EDITOR hebt ingesteld. In dat geval kan je in je .bashrc bestand de volgende regel toevoegen: export EDITOR=nano of je geeft meteen een log message mee via svn ci -m "blabla" en_GB.po

SVN Difference

Om het verschil te zien tussen het vertaalbestand dat online staat en jouw bestand moet je svn diff gebruiken: svn diff en_GB.po

SVN Status

Om te kijken welke bestanden gewijzigd zijn kan je SVN status gebruiken via svn st

Als het goed is is alleen en_GB.po gewijzigd.

Overig

  • Als je je bestand wilt terugzetten naar de versie die op de server staat gebruik je: svn revert en_GB.po
  • Als je een conflict krijgt betekent dat dat je versie botst met die van een andere webredacteur. Je kan dan het conflict bekijken via df en vervolgens jouw versie accepteren (mc) of de andere versie (tc).

Waarom bestaat nl_NL.po?

Uit een mailtje overgenomen:

Het is natuurlijk voor de vertalingen heel lastig als een vertaalbare string meerdere Engelse vertalingen heeft, of dat je geen idee hebt waar alle %s'jes en %d'tjes voor staan. Om jullie een beetje te ondersteunen, gaan we de Nederlandse strings niet direct uit de code halen, maar net als het Engels "vertalen" uit de strings die al in de code staan. Dit komt neer op een tweede bestand, nl_NL.po, die in principe niets interessants bevat. Alleen als we een vertaalbare string tegenkomen die voor verwarring zorgt, kunnen we er een opmerking aan toevoegen (zodat "overig" wordt van de vorm "[VOC: functie commissielid]overig", of "Deze persoon %s!" wordt "Deze persoon %s[VOC: redenen dat persoon niet verwijderd mag worden]!").

Een ander voordeel is dat je in de nl_NL.po heel snel, zonder de code te hoeven aanpassen, spellingsfouten in de Nederlandse website kan oplossen. Bovendien zijn alle lijntjes heel makkelijk halfkast te maken, zonder dat PHP zich zorgen hoeft te maken over vage Unicodetekens.

Het update-script gaat al die [VOC]-opmerkingen automatisch wegfilteren dus de nl_NL.po hoeft geen extra werk te kosten, en in de en_GB.po kunnen jullie vertalen zoals gewoonlijk, met extra hints. (Ze worden ook in en_GB.po weggefilterd, zodat de eindgebruiker ze nooit te zien krijgt!) Het fijne aan deze aanpak is dat jullie niets extra's hoeven te doen als jullie de huidige situatie met alleen de en_GB.po voldoende vinden, maar als iets goed is, kan het altijd beter, toch?