Éric Bischoff Stefan Asserhäll
stefan.asserhall@comhem.se
Översättare
2006-05-05 0.05.01 KDE Potatismannen teknisk referens
Teknisk referens Potatismannen erbjuder en mjuk och lönande inledning till anpassning och programmering av &kde;. Programmet kan utökas. Utan att koda kan till exempel nya lekplatser läggas till genom att ändra grafikfiler. Genom att lägga till lämpliga ljudfiler, kan översättare ändra ljuden till sitt modersmål! Om du utökar eller lägger till något i spelet, fundera på att skicka dina tillägg till utvecklaren Éric Bischoff så att de kan läggas till i framtida utgåvor. För grafiker Storleken och formen på lekplatsen och antalet objekt kan ändras. Nya lekplatser kan läggas till. Bara två bildfiler behöver skapas för varje lekplats: ett spelbräde och en mask. Maximalt åtta lekplatser tillåts, med endast tre i användning för närvarande. Sex bilder används i Potatismannen: potato-game.png, potato-mask.png, penguin-game.png, penguin-mask.png, aquarium-game.png och aquarium-mask.png. Den normala platsen för de här filerna är katalogen $KDEDIR/share/apps/ktuberling/pics/. Den första typen bilder, *-game.png innehåller lekplatsen och objekten som användaren väljer. Det här är grafiken som användaren ser när spelet används. Den andra typen bilder, *-mask.png innehåller bara masker för objekt. Maskerna används för att avgränsa kanterna på objekten, och i vissa fall ge objekten en viss genomskinlighet (till exempel glasögonen). Det rekommenderas, men krävs inte, att placera objekten på samma plats i spelbrädesfilen som i maskfilen. I samma katalog, talar filen som heter layout.xml ($KDEDIR/share/apps/ktuberling/pics/layout.xml) om vilka bilder som ska användas och länkar ihop dem med menyalternativ. Den innehåller också platsparametrar för spelbrädet, objekten på spelbrädet och maskerna. Den tilldelar den ljuden till objekt och placerar objekten i grupper. Slutligen deklarerar den språk som en uppsättning med översatta ljud. Den följer vanlig &XML;-syntax (se nedan för detaljer). Fortfarande i samma katalog, upprepar en fil som heter layout.i18n ($KDEDIR/share/apps/ktuberling/pics/layout.xml) strängarna i layout.xml som kan översättas: Menyalternativen som låter dig välja lekplats och språket Namnen på objektkategorier En katalog ovanför finns en fil som heter ktuberlingui.rc $KDEDIR/share/apps/ktuberling/ktuberlingui.rc), som är en andra &XML;-fil där Potatismannens menyer beskrivs. Den ska innehålla en <action>-tagg för varje lekplats och språk. Det symboliska namnet på åtgärden i den här filen ska vara identiskt med det symboliska namnet på åtgärden i layout.xml. Översättning Förutom den vanliga .po-fil mekanismen för att översätta programrubriker och promptrar, kan ljuden också anpassas. Om de olika översättarna kan spela in sina röster i .wav filer, kan de lagra filerna i en språkspecifik underkatalog i katalogen sounds. Namnen på ljuden tilldelas sedan till en fil i filen layout.xml. Om språket som översätts till är till exempel italienska, kan översättaren spela in sin röst i .wav-filer som placeras i $KDEDIR/share/apps/ktuberling/sounds/it. Därefter kan de tilldela ljudet som heter hat till filnamnet it/capello.wav. I en framtida utgåva, kommer &ktuberling; att använda OGG Vorbis rc3 filformatet för ljud. För närvarade är det möjligt att konvertera WAV-filer till OGG Vorbis rc3, med följande kommandorad: $ oggenc -q 10 -o ljud.ogg ljud.wav Information om hur man arbetar med översättningsmekanismen i &kde; finns tillgänglig på &kde; Translation HOWTO. För programmerare Potatismannen är inte särskilt svår att utöka för programmerare. C++ klasser TopLevel Toppnivåfönster och grundläggande programhantering PlayGround Beskrivning av en av spelets nivåer ToDraw Beskrivning av ett av de grafiska objekten som ska ritas SoundFactory Beskrivning av ett av språken och dess ljud Action En av användarens åtgärder i stacken med ångra och gör om. Struktur för filen <literal role="extension" >.tuberling</literal > En .tuberling-fil innehåller all nödvändig data för att rita om en potatisman. Den kan redigeras med en vanlig texteditor. Den första raden innehåller antalet lekplatser. På alla andra rader finns det ett grafiskt objekt per rad, i den ordning som används för att rita upp dem. Varje rad innehåller fem tal: objektets identifierare och rektangeln där det ska ritas (vänster, över, höger, under). Talen skiljs med mellanslag. Struktur för layoutfilen (<filename >layout.xml</filename >) Toppnivåtaggen är unik och heter <ktuberling>. Den innehåller flera <playground>-taggar, en för varje lekplats, och flera <language>-taggar, en per språk. Taggen <playground> har två attribut: gameboard och masks. Dessa attribut ger namnen på filerna som innehåller bilderna. Taggen <playground> innehåller också en tagg som heter <menuitem>, en tagg som heter <editablearea>, flera taggar som heter <category> och flera taggar som heter <object>. Taggen <menuitem> beskriver identifieraren för menyalternativet som tillåter att platsen för området där man kan släppa objekt väljs, och namnet på det här menyalternativet. Den här identifieraren ska vara identisk med den i ktuberlingui.rc. Taggen <editablearea> beskriver platsen för området där man kan släppa objekt, och namnet på ljudet som hör ihop med detta. Taggen <category> beskriver platsen och namnet på en text som anger en grupp av objekt. Den kan till exempel beskriva platsen och namnet på gruppen med godsaker. Taggen <object> beskriver platsen för ett objekt (på spelbrädet och i maskerna), samt namnet på ljudet som hör ihop med det. Taggen <language> har ett attribut: code. Dessa attribut ger koden på landet för det språket. Taggen <language> innehåller också en tagg som heter <menuitem> och flera taggar som heter <sound>. Taggarna på lägre nivå förklaras inte här, eftersom deras betydelse är ganska rättfram. Om du ändrar layout.xml, glöm då inte att också ändra layout.i18n och ktuberlingui.rc.