Wat is het?
NLDTranslate is een set open-source componenten, gedoneerd aan NLDelphi, die het makkelijk maken een applicatie te vertalen zonder gebruik te maken van de ITE (Integrated Translation Environment) of andere prijzige oplossingen. De reden: ik begreep er niks van.
De componenten zijn zo opgebouwd dat je amper code hoeft te schrijven, gooi een TNLDTranslateManager op je form samen met een TNLDTranslate en je bent al halverwege, de rest gebeurd in feite in het taalbestand. Er zullen ook meer mogelijkheden beschikbaar zijn die wel iets meer code vereisen, maar het zwaarste werk is dan al gedaan.
Wat is zo'n 'taalbestand'?
Een taalbestand is niets meer dan een XML bestand met daarin beschreven welke componenten welke eigenschappen hebben. Het wijzigen van de tekst op bijvoorbeeld een menu item hoeft niets meer te zijn dan de regel:
Code:<mnuFile Caption="&Bestand" />
Simpel, nietwaar? . Aangezien er op deze manier weinig beperkingen zijn aan wat een taalbestand kan wijzigen kan het ook schade aanbrengen: door middel van een aantal events zal in de toekomst de applicatie kunnen bepalen welke componenten, en zelfs welke properties wel of niet ingesteld mogen worden.
Waar dienen de componenten voor?
TNLDTranslate
Dit component komt op je form te staan, en wijzigt de properties van de componenten. Het instellen is simpel: de Manager property verwijst naar een TNLDTranslateManager, en de Section property verwijst naar een 2nd-level item in de XML file. Met 2nd-level bedoel ik dan dat het item een subitem is van het hoofditem 'language'. Bekijk de XML bestanden die meegeleverd zijn bij de demo ook eens, daar zal het een en ander duidelijk worden.
TNLDTranslateManager
Dit component zorgt voor het inladen van het XML bestand en het stelt de TNLDTranslate's op de hoogte van wijzigingen. Dit maakt het mogelijk om met 1 aanroep alle forms van taal te laten wijzigen. Ook het instellen van dit component is makkelijk: stel de bestandsnaam in op het taalbestand. Dit mag op elk moment gewijzigd worden, en eventuele wijzigingen worden direct doorgevoerd...
Genoeg gezwets, laat maar eens zien dan...
In het bijgesloten ZIP bestand zal je het component, 2 packages (voor Delphi 5 en 6) en een demo vinden. Compilen van het component gaat gegarandeerd onder Delphi 5 en 6, eventuele andere versies heb ik nog niet getest. De demo is gemaakt in Delphi 6 en ongetest in andere versies.
Om goed te zien hoe makkelijk het eigenlijk werkt, open het tweede form en wijzig de taal. Geen gedoe met alle forms handmatig aflopen, alles gaat automatisch. Dat is het doel van NLDTranslate. En nu ga ik kappen, want straks lijkt dit nog een TelSell commercial.
Wat heb ik nodig om het te installeren?
To-do / bugs / undocumented features:
- Events toevoegen om vertaling te beperken
- TNLDTranslateFiles maken, houdt bij welke taalbestanden er zijn
- Alle informatie uit taalbestand opslaan, bv: beschrijving van taal wordt nog niet opgeslagen. Kleinigheid, maar wel belangrijk voor TNLDTranslateFiles...
Een nieuwe versie komt dus nog, maar ik wou 'm toch al releasen om zo eventuele feedback gelijk mee te kunnen nemen. Ik hoor het wel als er problemen/op/aanmerkingen zijn
Bookmarks