infi-nl / the-infi-way

How we like to build software
https://way.infi.nl
Other
9 stars 8 forks source link

Translations: vertalingen mogelijk maken en en-US vertaling maken #9

Closed jeroenheijmans closed 2 years ago

jeroenheijmans commented 3 years ago

English summary: let's support translations, and actively maintain an English translation of this work, just so more people can use it or give feedback!


Met Infi werken we doorgaans in het Nederlands, waar nodig uitgebreid met Engels (bijv omdat de klant dat als voertaal heeft, of omdat het logischer is documentatie en code in Engels te schrijven). Hoe dan ook kan het fijn en nuttig zijn om The Infi Way ook in het Engels te kunnen delen met de rest van de wereld.

Een simpele implementatiesuggestie kan zijn:

In ieder geval zolang we bij single-html-page opzet blijven kan simpel de beste oplossing zijn?

LucaScorpion commented 2 years ago

Ik heb even wat zitten spelen met het idee van een eigen mini-handlebars opzet, en ben op best een decent proof of concept uitgekomen. Ik wilde eerst een code snippet hier posten, maar daar is het wel net iets te groot voor geworden :sweat_smile: Dus ik heb het op een branch gezet met een voorbeeldje voor een deel van het "gebruikers" blok, zie: https://github.com/infi-nl/the-infi-way/pull/31

Ik heb hier qua functionaliteit gericht op een kleine subset van Handlebars, om precies te doen wat wij nodig hebben. Essentially wat het doet is een search/replace van handlebars tags in de body html, die worden vervangen met de localized values. Het heeft ook each functionaliteit voor de verschillende lijsten die we hebben.

Hoewel ik er ergens wel naar zou neigen om gewoon Handlebars (of whatever andere library te gebruiken) vind ik ~2kB eigen code ook wel een voordeel ten opzichte van ~78kB (minified) library code :grimacing: En voor 56 regels JS is de functionaliteit naar mijn idee helemaal niet slecht.

Het grote nadeel aan deze implementatie is dat het (zoals gezegd) echt een search/replace is, en dus geen template parsing oid doet. Voor de huidige benodigde functionaliteit is dat (as far as I can tell) ook niet nodig, maar als we echt complexere template logic nodig hebben kan dat een limitatie worden. Verder betekent dit ook dat er geen template validatie gebeurt, als er iets fout staat betekent dat gewoon dat de content niet goed vervangen wordt. Dit zie ik zelf echter niet als een groot probleem, maar is iets waar we voorzichtig mee moeten zijn bij reviews.

@jeroenheijmans Als jij binnenkort een keer tijd (en zin!) hebt zou jij hier er dan eens een blik op kunnen werpen om te kijken wat je ervan denkt?

jeroenheijmans commented 2 years ago

Love it! Lean and mean, vanilla js is denk ik ook de beste (en leukste) keuze hier! Enorme pré is ook dat het "clone & run" blijft zonder dependencies. Dichter bij een wiki pagina dan bij een web app.

Heb wat specifieke suggesties en gedachtes over een vervolg (o.m. een voorstel om voor no-js situaties te werken vanuit een defaulttaal, en suggesties voor de code), maar wellicht is het effectiever om daar een keer op te pair programmen? Of dat ik je offline mijn suggesties kan doen en dat je daarna weer even in focus-modus zelf naar eigen inzicht doorgaat?

EDIT, Note to self, wat dingen om in de PR te overwegen mee te nemen: