Ny release, nya buggar...

Svensk IE7 nådde massorna strax före jul och svensk Windows Vista är på väg ut till butikerna - vissa kan redan hämta Vista från MSDN. Detta är alltså ett bra tillfälle att börja söka efter kommentarer från de användare som inte kunde delta i betaprogrammet.

Än så länge är det givetvis svårt att hitta feedback om svensk IE7/Vista, men jag snubblade över den här bloggposten: https://slammastera.blogspot.com/2006/12/bugg-i-ie7.html.

Problemet är följande: Om man startar svensk IE7 och öppnar menyn Sida ser man att kommandot "Nytt fönster" har acceleratorn Ctrl+W. Detta stämmer dock inte; Ctrl+W stänger aktuell flik (eller hela IE-instansen, om endast en flik är öppen). Rätt kommando för att öppna ett nytt fönster är istället Ctrl+N.

Jag har forskat i problemet, och så här ligger det till:

Detta rör sig om ett menyalternativ som även visar vilken accelerator som kan användas för att nå samma funktion. Som vi alla vet definieras den accelerator som visas i menyn helt separat från den accelerator som faktiskt leder till funktionen.*

Mitt favoritlokaliseringsverktyg har en funktion för automatöversättning, vilket innebär att vi kan översätta en strängresurs en gång och sedan återvinna översättningen när samma källtext förekommer igen. Den här funktionen är smart nog att identifiera och ignorera acceleratorer när den söker efter matchningar, men korkad nog att den i vissa fall kan resultera i en sträng där acceleratorn i översättningen skiljer sig från källtexten och från den accelerator som faktiskt fungerar.

Just den här strängen förekommer flera gånger i filen ieframe.dll, en av huvudfilerna för Internet Explorer 7. En av förekomsterna av strängen är den som visas i Arkiv-menyn, en annan förekomst används i Sida-menyn. Båda strängarna har följande källtext: "&New Window\tCtrl+N". Den första förekomsten översattes helt korrekt till "&Nytt fönster\tCtrl+N". På morgonen den 2006-03-15 automatöversatte sedan undertecknad den andra förekomsten - men av något skäl blev resultatet "&Nytt fönster\tCtrl+W". Varför? Ingen aning, faktiskt. Acceleratorerna i IE7 ändrades rätt ofta runt den här tiden, kanske användes tidigare Ctrl+W i källtexten och kanske innehöll den databas jag automatöversatte från en tidigare översättning med Ctrl+W... svårt att veta nu.

(Det är värt att notera att vi inte har någon funktionell bugg här, utan "bara" en ganska missvisande översättning. Acceleratorerna Ctrl+N och Ctrl+W fungerar som det är tänkt, men en av översättningarna kan lura användaren att använda fel accelerator. Ungefär som om man hade råkat översätta "OK" till "Avbryt" och "Cancel" till "OK". Kanske verkar detta som hårklyverier, men skillnaden innebär att det är lätt och säkert att fixa.)

Nu tänker kanske Vän av ordning att om acceleratorer är så vanliga och om Holmberg ska skylla på verktygen, borde inte detta problem finnas på fler ställen? I så fall har Vän av ordning helt rätt. Man kan hitta liknande miss på ytterligare ett halvdussin ställen i svensk Vista. Det tydligaste exemplet är i Kungen. Menyalternativet för funktionen "Ångra" visar att F10 är en giltig accelerator, men i själva verket är det Ctrl+Z som gäller.

I det här fallet kan jag tydligt se vad som skedde. Tidigt under Vista användes faktiskt F10 som accelerator för "Ångra". Vid något tillfälle ändrade utvecklaren accelerator till Ctrl+Z; vi såg att strängen i uppdaterats; vi automatöversatte och automatöversättningen återanvände glatt den tidigare acceleratorn.

Jag har kontrollerat ett dussin andra språk, och det verkar som om de flesta har en handfull sådana här problem. Mönstret börjar bli ganska tydligt; det rör sig ofta om situationer då acceleratorn har uppdaterats under projektets gång.

Ok, så nu har vi hyfsad förståelse för hur problemet uppstår. Vad gör vi åt det?

1) Jag har lagt in en bugg om just Ctrl+W-buggen i svensk IE7 och ska hoppas kunna fixa den strängen i Vista SP1. Det bör ta hand om just den här förekomsten.
2) Vi håller på att bygga på våra kvalitetskontrollverktyg så att de i framtiden kan fånga upp sådana här problem. Det bör innebära att vi tidigt kan upptäcka om detta sker igen, oavsett språk.
3) Vi ska försöka få automatöversättningsfunktionen fixad så att den hanterar acceleratorer bättre. Det bör dramatiskt minska risken att felet över huvud taget uppstår.

Om du använder svensk Vista, IE eller Media Player och hittar något översättningsfel, ser nåt som ser knas ut, eller bara har några frågor eller synpunkter på översättningsarbetet får du hemskt gärna kontakta mig. Stort eller litet spelar ingen roll - allt som kan leda till att vi levererar en bättre produkt är av intresse!

* se https://blogs.msdn.com/jesperh/archive/2007/01/09/vad-r-skillnaden-mellan-snabbtangenter-och-acceleratorer.aspx