Diktera kodgranskningar på ditt eget språk
Illustration

Diktera kodgranskningar på ditt eget språk

Koden är engelsk. Dina granskningskommentarer behöver inte vara det. Så dikterar du feedback på ett av 25 språk på enheten — och varför du bör låsa språket.

Teodor Deleanu3 september 20267 min läsning

Det finns ett tyst antagande inbakat i de flesta utvecklarverktyg: koden är på engelska, så utvecklaren måste vara det också. Nyckelord är engelska. Biblioteksnamn är engelska. Felmeddelanden är engelska. Och alltså, går resonemanget, kan diktering för utvecklare vara enbart engelsk utan att någon bryr sig.

Kodgranskning bryter det antagandet omedelbart. En granskningskommentar är inte kod. Det är en mening riktad till en människa, och i väldigt många team delar den människan ditt förstaspråk. Ett rumänskt team som granskar en Rust-tjänst skriver rumänska kommentarer om engelska identifierare. Ett polskt team gör detsamma på polska, ett tyskt på tyska. Koden förblir engelsk; samtalet om koden gör det inte.

Diktering är ovanligt bra för granskningskommentarer, eftersom granskning är en läsaktivitet och skrivandet avbryter läsandet. Men den är bara bra om den fungerar på språket kommentaren faktiskt är på. Det här inlägget handlar om att få det att fungera: vilka språk Keebye täcker på enheten, hur språklåset beter sig och var kanterna finns. Vill du ha argumentet för varför något av det spelar roll gör diktering bör inte vara enbart på engelska det; det här är den praktiska uppföljningen.

Varför granskningskommentarer är det ideala dikteringsmålet

En granskningskommentar har tre egenskaper som gör den till en bättre passning för rösten än nästan vilken annan utvecklartext som helst.

Den är kort. De flesta kommentarer är en till tre meningar. Det är ett andetag, en inhållen hotkey, ett yttrande.

Den är prosa. Till skillnad från ett commit-meddelande med stelt format eller en konfigurationsfil med exakt syntax är en granskningskommentar bara hur du skulle förklara problemet högt. ”Den här gör omförsök i evighet om socketen aldrig svarar; sätt ett tak.” Den talade och den skrivna versionen är nästan identiska.

Den uppstår medan ögonen är upptagna. Du läser en diff. I samma stund du stannar för att skriva tappar du platsen i den. Diktering låter dig fortsätta läsa och tala kommentaren in i rutan du redan klickat i.

Lägg nu till språkdimensionen. Om ditt team granskar på polska tvingar ett dikteringsverktyg med enbart engelska fram ett val: granska på engelska (onaturligt, och dina kollegor läser det kanske långsammare) eller skriv (och tappa nyttan). Ingetdera var vad du ville.

Vad Keebye faktiskt stödjer

Två motorer på enheten spelar roll här, och det är värt att vara exakt om dem.

Standardmotorn är tunad för engelska. Den är snabb, den är den de flesta använder, och den är inte den du vill ha för en polsk granskningskommentar. Riktad mot icke-engelskt tal producerar den fonetiskt trolig engelska som inte är vad du sa.

Den andra motorn, Canary, täcker exakt 25 språk: bulgariska, danska, engelska, estniska, finska, franska, grekiska, italienska, kroatiska, lettiska, litauiska, maltesiska, nederländska, polska, portugisiska, rumänska, ryska, slovakiska, slovenska, spanska, svenska, tjeckiska, tyska, ukrainska och ungerska. Den väljs till, den laddas ned en gång, och därefter körs den offline som allt annat i Keebye. Inte hundra språk; tjugofem, uppräknade, och om ditt inte finns på listan kan det här inlägget inte hjälpa dig än.

Det finns också möjligheten att använda Apples inbyggda taligenkänning som motor, vilket ger sin egen språktäckning på din Mac. Det är en separat väg med andra egenskaper; resten av det här inlägget handlar om Canary.

Lås språket; låt det inte gissa

Den enskilt viktigaste inställningen för granskning på annat språk än engelska är språklåset.

Automatisk detektering låter som rätt standard och är fel för utvecklare. Granskningskommentarer är täta av engelska identifierare: funktionsnamn, paketnamn, orden ”null” och ”async” och ”callback”. En kommentar som är åttio procent rumänska och tjugo procent engelska tokens ger en språkdetektor exakt den blandade signal den hanterar sämst. Den kommer att slå om mitt i meningen, eller bestämma att alltihop var engelska, och du får ett transkript som är självsäkert fel. Lås ditt dikteringsspråk går igenom haveriet i detalj.

Med Canary låter Keebye dig ställa in språket uttryckligen. Lås rumänska och modellen avkodar rumänska; de engelska identifierarna inuti din mening hanteras som lånord snarare än som bevis för att du bytte språk. Igenkänningen av en ovanlig identifierare kan fortfarande bli ofullständig, men själva språket slutar vara en slantsingling.

En beteendedetalj värd att känna till: det låsta språket läses för nästa yttrande. Byt lås och dikteringen du är på väg att göra använder det; den du redan släppt transkriberas inte om. I praktiken betyder det: byt först, tala sedan. Om du granskar på två språk under dagen är bytet billigt. Menyradens tray visar en kortlista med 11 språk för snabbt byte, och Inställningar visar alla 25.

En granskningssession, dikterad

Så här ser en session ut i ett team som granskar på rumänska.

Du öppnar pull requesten. Trayen visar redan rumänska låst sedan i går, så inget att göra. Du läser första filen. Tredje hunken, en omförsöksslinga utan tak. Klicka in i kommentarsrutan, håll in Höger Command, säg kommentaren på rumänska, släpp. Texten landar, med ett ”öh” och en falsk start borttagna av den regelbaserade uppstädningen, och identifieraren reconnectSocket intakt eftersom du lade in den i den egna ordlistan för en vecka sedan.

Nästa fil. Kommentaren du vill lämna är ett kodförslag, inte prosa. Den skriver du; att diktera en diff är en dålig upplevelse på vilket språk som helst.

Senare kliver en bidragsgivare från ett annat team in i tråden och skriver på engelska. Du vill svara på engelska. Klicka på trayen, välj engelska från kortlistan, och nästa yttrande avkodas som engelska. Svara, byt sedan tillbaka.

Inget av det här behöver ett fönster. Keebye stannar i menyraden; hotkeyn fungerar i vilken app som än har fokus, oavsett om det är en webbläsarflik med granskningen, en Git-klient på skrivbordet eller en terminal som kör ett CLI-granskningsverktyg.

Ärliga begränsningar

Tjugofem språk, inte alla. Om du granskar på turkiska, japanska, arabiska eller något språk utanför Canary-listan täcker den andra motorn det inte. Apples inbyggda motor kanske gör det, beroende på systemets språkstöd, men det är en annan motor med ett annat beteende.

Trayens kortlista är elva. Engelska, rumänska, franska, tyska, spanska, italienska, portugisiska, nederländska, polska, ryska och ukrainska är två klick bort. De övriga fjorton finns i Inställningar. Om ditt dagliga par innehåller, säg, tjeckiska och finska går ena halvan via Inställningar.

Identifierare är fortfarande identifierare. En talmodell på vilket språk som helst kämpar med namn_i_snake_case. Ordlistan hjälper med de återkommande; resten rättar du för hand. Läs kommentaren innan du publicerar den.

Ingen livetranskribering. Canary transkriberar när tangenten släpps, som en batch. Du kommer inte att se ord medan du säger dem. För en granskningskommentar på en till tre meningar är det knappt märkbart.

Poleringen är valfri och bokstavlig som standard. Om du slår på poleringen med lokal LLM på enheten snyggar den till meningsbyggnaden, och en trohetskontroll faller tillbaka på det råa transkriptet när utdatan visar kraftig tokenförlust, expansion eller upprepning. Den kontrollen är en heuristik; den kontrollerar inte att din betydelse överlevde. För granskningskommentarer, där en omkastad negation ändrar utfallet, låter de flesta poleringen vara avstängd och låter den regelbaserade uppstädningen göra jobbet.

Var det här passar in

Om språklåset är funktionen du bryr dig mest om jämför Keebye vs Wispr Flow de två utifrån var talet körs och hur språk hanteras, inklusive var Wispr Flow passar bättre. För det bredare fallet med diktering medan händerna är på diffen täcker utvecklarguiden vardagen, och Mac-guiden täcker uppsättningen.

Antagandet att utvecklare är enbart engelskspråkiga var aldrig sant. Det var bara bekvämt för verktygen. Att granska på sitt eget språk, med rösten, med tal som aldrig lämnar maskinen, är ingen nischförfrågan. Det är vad en stor del av människorna som skriver mjukvara skulle göra om verktygen lät dem.

Granska på språket du tänker på

Starta din kostnadsfria provperiod, lås ditt språk och diktera en granskningskommentar precis som du skulle sagt den till en kollega.

Start free trial

Early access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.

Läs vidare