Dicteer code reviews in je eigen taal
Code is Engels. Je reviewopmerkingen niet. Hoe je reviewfeedback in een van 25 talen on-device dicteert, en waarom je taal vastpinnen uitmaakt.
Er zit een stille aanname in het meeste developer-gereedschap gebakken: de code is Engels, dus de developer moet dat ook zijn. Keywords zijn Engels. Bibliotheeknamen zijn Engels. Foutmeldingen zijn Engels. En dus, zo gaat de gedachte, kan dictatie voor developers Engels-only zijn en zal niemand het erg vinden.
Code review breekt die aanname onmiddellijk. Een reviewopmerking is geen code. Het is een zin gericht aan een mens, en in heel veel teams spreekt die mens dezelfde eerste taal als jij. Een Roemeens team dat een Rust-service reviewt schrijft Roemeense opmerkingen over Engelse identifiers. Een Pools team doet hetzelfde in het Pools, een Duits team in het Duits. De code blijft Engels; het gesprek over de code niet.
Dictatie is ongewoon goed voor reviewopmerkingen, omdat reviewen een leesactiviteit is en typen het lezen onderbreekt. Maar het is alleen goed als het werkt in de taal waarin de opmerking daadwerkelijk staat. Deze post gaat over dat werkend krijgen: welke talen Keebye on-device dekt, hoe de taalpin zich gedraagt, en waar de randen zitten. Wil je het argument waarom dit allemaal uitmaakt, dan levert waarom dictatie voor developers niet alleen Engels zou moeten zijn dat; dit is het praktische vervolg.
Waarom reviewopmerkingen het ideale doelwit voor dictatie zijn
Een reviewopmerking heeft drie eigenschappen die hem beter bij stem laten passen dan bijna elke andere developertekst.
Hij is kort. De meeste opmerkingen zijn één tot drie zinnen. Dat is één adem, één keer de hotkey vasthouden, één uiting.
Hij is proza. In tegenstelling tot een commit-bericht met een strak formaat of een configbestand met exacte syntaxis is een reviewopmerking gewoon hoe je het probleem hardop zou uitleggen. "Dit blijft eindeloos opnieuw proberen als de socket nooit antwoordt; begrens het." De gesproken en de getypte versie zijn bijna identiek.
Hij gebeurt terwijl je ogen bezig zijn. Je leest een diff. Zodra je stopt om te typen, verlies je je plek erin. Dicteren laat je doorlezen en de opmerking inspreken in het invoerveld waarin je toch al hebt geklikt.
Voeg daar nu de taaldimensie aan toe. Reviewt jouw team in het Pools, dan dwingt een Engels-only dictatietool een keuze af: reviewen in het Engels (onnatuurlijk, en je collega's lezen het misschien langzamer) of typen (en het voordeel kwijt zijn). Geen van beide is wat je wilde.
Wat Keebye werkelijk ondersteunt
Twee on-device engines doen hier mee, en het is de moeite om er precies over te zijn.
De standaard-engine is op Engels afgestemd. Hij is snel, hij is degene die de meeste mensen gebruiken, en hij is niet degene die je wil voor een Poolse reviewopmerking. Gericht op niet-Engelse spraak produceert hij fonetisch plausibel Engels dat niet is wat je zei.
De tweede engine, Canary, dekt exact 25 talen: Bulgaars, Kroatisch, Tsjechisch, Deens, Nederlands, Engels, Estisch, Fins, Frans, Duits, Grieks, Hongaars, Italiaans, Lets, Litouws, Maltees, Pools, Portugees, Roemeens, Russisch, Slowaaks, Sloveens, Spaans, Zweeds en Oekraïens. Hij is optioneel, wordt eenmalig gedownload, en draait daarna offline zoals al het andere in Keebye. Geen honderd talen; vijfentwintig, opgesomd, en staat de jouwe niet in de lijst, dan kan deze post je nog niet helpen.
Er is ook de optie om Apple-eigen spraakherkenning als engine te gebruiken, die zijn eigen taaldekking op jouw Mac meebrengt. Dat is een apart pad met andere eigenschappen; de rest van deze post gaat over Canary.
Pin de taal vast; laat hem niet gokken
De belangrijkste instelling voor niet-Engels reviewen is de taalpin.
Automatische detectie klinkt als de juiste standaard en is voor developers de verkeerde. Reviewopmerkingen zitten vol Engelse identifiers: functienamen, pakketnamen, de woorden "null" en "async" en "callback". Een opmerking die tachtig procent Roemeens en twintig procent Engelse tokens is, geeft een taaldetector precies het gemengde signaal waar hij het slechtst mee omgaat. Hij klapt midden in de zin om, of besluit dat het geheel Engels was, en je krijgt een transcript dat zelfverzekerd fout is. Pin je dicteertaal vast loopt die faalwijze in detail door.
Met Canary laat Keebye je de taal expliciet instellen. Pin Roemeens en het model decodeert Roemeens; de Engelse identifiers in je zin worden als leenwoorden behandeld in plaats van als bewijs dat je van taal wisselde. Herkenning van een ongebruikelijke identifier kan nog steeds imperfect zijn, maar de taal zelf is geen muntje meer dat je opgooit.
Eén gedragsdetail is goed om te weten: de vastgepinde taal wordt gelezen voor de volgende uiting. Verander je de pin, dan gebruikt de dictatie die je op het punt staat te doen hem; de dictatie die je net hebt losgelaten wordt niet opnieuw getranscribeerd. In de praktijk betekent dat: eerst wisselen, dan praten. Review je op een dag in twee talen, dan is het wisselen goedkoop. De menubalk biedt een shortlist van 11 talen om snel te wisselen, en Instellingen biedt alle 25.
Een reviewsessie, gedicteerd
Zo ziet een sessie eruit bij een team dat in het Roemeens reviewt.
Je opent de pull request. De menubalk laat al Roemeens zien, vastgepind sinds gisteren, dus daar hoef je niets aan te doen. Je leest het eerste bestand. Derde hunk, een retry-lus zonder bovengrens. Klik in het opmerkingveld, houd rechter ⌘ vast, zeg de opmerking in het Roemeens, laat los. De tekst landt, met een "eh" en een valse start weggehaald door de regelgebaseerde opschoning, en de identifier reconnectSocket intact omdat je die een week geleden aan het eigen woordenboek hebt toegevoegd.
Volgend bestand. De opmerking die je wil plaatsen is een codesuggestie, geen proza. Die typ je; een diff dicteren is in elke taal een slechte ervaring.
Later komt iemand van een ander team in de draad en schrijft in het Engels. Je wil in het Engels antwoorden. Klik op de menubalk, kies Engels uit de shortlist, en de volgende uiting wordt als Engels gedecodeerd. Antwoorden, en dan terugwisselen.
Niets hiervan heeft een venster nodig. Keebye blijft in de menubalk; de hotkey werkt in welke app er ook focus heeft, of dat een browsertabblad met de review is, een desktop-Git-client, of een terminal met een review-tool op de commandline.
Eerlijke grenzen
Vijfentwintig talen, niet alle. Review je in het Turks, Japans, Arabisch of een taal buiten de Canary-lijst, dan dekt de tweede engine je niet. De Apple-eigen engine kan dat misschien wel, afhankelijk van de taalondersteuning van je systeem, maar dat is een andere engine met ander gedrag.
De shortlist in de menubalk telt elf. Engels, Roemeens, Frans, Duits, Spaans, Italiaans, Portugees, Nederlands, Pools, Russisch en Oekraïens zijn twee klikken weg. De andere veertien staan in Instellingen. Zitten in je dagelijkse paar bijvoorbeeld Tsjechisch en Fins, dan gaat één kant ervan via Instellingen.
Identifiers blijven identifiers. Een spraakmodel worstelt in elke taal met namen_in_snake_case. Het woordenboek helpt bij de terugkerende gevallen; de rest verbeter je met de hand. Lees de opmerking voordat je hem plaatst.
Geen live transcriptie. Canary transcribeert bij het loslaten van de toets, in één batch. Je ziet geen woorden terwijl je ze zegt. Voor een reviewopmerking van één tot drie zinnen valt dat nauwelijks op.
De politoer is optioneel en standaard letterlijk. Zet je de on-device lokale-LLM-politoer aan, dan ordent hij de zinsbouw, en valt een fidelity-beveiliging terug op het ruwe transcript wanneer de uitvoer ernstig tokenverlies, uitdijing of herhaling laat zien. Die beveiliging is een heuristiek; hij controleert niet of je betekenis het heeft overleefd. Bij reviewopmerkingen, waar een omgeklapte ontkenning het oordeel verandert, laten de meeste mensen de politoer uit en laten ze de regelgebaseerde opschoning het werk doen.
Waar dit past
Is de taalpin de functie waar het je vooral om gaat, dan vergelijkt Keebye vs Wispr Flow de twee op waar de spraak draait en hoe taal wordt behandeld, inclusief waar Wispr Flow beter past. Voor het bredere geval van dicteren terwijl je handen bij de diff zijn behandelt de gids voor developers het dagelijks werk, en de gids voor dicteren op de Mac de installatie.
De aanname dat developers Engels-only zijn was nooit waar. Ze was alleen handig voor de tools. Reviewen in je eigen taal, met je stem, met spraak die je machine nooit verlaat, is geen nichewens. Het is wat een groot deel van de mensen die software schrijven zou doen als het gereedschap het toestond.
Review in de taal waarin je denkt
Start je gratis proefperiode, pin je taal vast, en dicteer één reviewopmerking zoals je die tegen een collega zou zeggen.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Lees verder
Automatische detectie gokt verkeerd: pin je taal vast
Dictatie steeds in de verkeerde taal? Automatische detectie worstelt van nature met tweetalige spraak. Pin je taal één keer vast en hij blijft vastgepind.
Waarom dictatie voor developers meer dan Engels moet bieden
Code is Engels; de werkdag eromheen vaak niet. On-device meertalige dictatie voor de Slack-berichten, reviews en documenten die je in je eigen taal schrijft.
Prompts dicteren naar parallelle agents, lane voor lane
Twee of drie codeeragents tegelijk draaien maakt prompten het knelpunt. Een stemworkflow om parallelle lanes te voeden zonder je eigen lane te verlaten.