# De taal van je code veranderen [Programmeergidsen](LEESMIJ.md) ## Eén taal en beschermd gebruikersmateriaal Pliro heeft één canonieke grammatica en betekenis. Profielen koppelen Nederlandse/Engelse trefwoorden tijdens lexen en bibliotheeknamen tijdens naamresolutie aan dezelfde identiteiten. Dit wijzigt de brontekst zelf niet. Er zijn geen afzonderlijke Nederlandse en Engelse parsers. Syntaxisconversie vertaalt geen eigen namen, mapvelden, tekstinhoud of gewoon commentaar. Ook kleur-, patroon-, toets-, lettertype- en uitlijningswaarden blijven staan. Runtimeweergave blijft canoniek: `tekst(waar)`, `tekst(onwaar)` en `tekst(geen)` geven `"true"`, `"false"` en `"none"`. Van Nederlands: ```text # taal: nl laat aantalLevens = 3 zeg "Hallo wereld", aantalLevens ``` Naar Engels: ```text # language: en let aantalLevens = 3 say "Hallo wereld", aantalLevens ``` ## Canonieke symbolen | Canonieke ID | Nederlands | Engels | |---|---|---| | `core.print` | `zeg` | `say` | | `app.exit` | `sluitApp` | `exitApp` | | `events.started` | `gestart` | `started` | | `events.after` | `na` | `after` | | `events.messageReceived` | `berichtOntvangen` | `messageReceived` | | `events.keyPressed` | `toetsGedrukt` | `keyPressed` | | `events.pointerPressed` | `aanwijzerGedrukt` | `pointerPressed` | | `events.pointerReleased` | `aanwijzerLosgelaten` | `pointerReleased` | | `events.pointerClicked` | `aanwijzerGeklikt` | `pointerClicked` | | `events.pointerX` | `aanwijzerX` | `pointerX` | | `events.pointerY` | `aanwijzerY` | `pointerY` | | `events.broadcast` | `zendBericht` | `broadcast` | | `input.readLine` | `vraag` | `ask` | | `graphics.rectangle` | `rechthoek` | `rectangle` | | `sprites.show` | `toonSprite` | `showSprite` | | `scene3d.box` | `doos3D` | `box3D` | | `scene3d.cylinder` | `cilinder3D` | `cylinder3D` | | `scene3d.texture` | `textuur3D` | `texture3D` | | `scene3d.draw` | `teken3D` | `draw3D` | | `gpio.write` | `schrijfPin` | `writePin` | Alleen aliassen van de gekozen syntaxtaal worden beschikbaar gemaakt. Een eigen declaratie mag die naam afschermen; ze wordt dan niet als ingebouwde functie vertaald. ## Symboolbewuste conversie Vertalen vereist lexicaal, syntactisch en semantisch geldige broncode. Alleen aantoonbaar opgeloste ingebouwde functies veranderen van alias. Trefwoorden en de taalrichtlijn veranderen mee; overige inhoud, witruimte, inspringing en regeleinden blijven behouden. ```shell pliro translate --to en programma.pliro pliro translate --to nl project.bipli ``` De [CLI](../begrippen/opdrachtregel.md) schrijft vertaalde startbron naar standaarduitvoer en wijzigt de invoer niet. Bij `.bipli` controleert en vertaalt de compiler één samenhangend project, maar de CLI toont alleen het startbestand en maakt geen nieuw archief. De [IDE](../begrippen/ontwikkelomgeving.md) kan alle projectbronnen als gewijzigde editorbuffers omzetten; opslaan gebeurt pas met expliciet alles opslaan. ## Gerelateerde lemma’s [Syntaxis en waarden](../syntaxis/LEESMIJ.md) · [Ingebouwde functies](../ingebouwde-functies/LEESMIJ.md) · [Programmeergidsen](LEESMIJ.md)