Då har vi ett plugin som fungerar och det är dags att gå vidare. I denna avslutande artikel så tittar vi närmare på vad man kan göra ”sedan”.
Underhåll av kod, uppdateringar, översättning, publicering, är sådant som vi skall gå igenom.
Översättning
Vi tar och börjar med översättning. Alla plugin skall normalt skrivas på engelska! Oavsett om det är ett tydligt ”svenskt” plugin så skall koden kontrolleras och godkännas av engelskspråkiga personer innan den kan publiceras officiellt.
I det här enkla gränssnittet så finns det knappt några texter att översätta.
Först och främst så måste man ange vilka språk man vill översätta till. Det gör man genom att lägga till iso-koden för landet för LOCALES i filen ”Makefile”. För svenska är det ”sv” till skillnad mot vad som visas i bilden.
När det är gjort så kan man köra kommandot make transup, vilket uppdaterar alla översättningsfiler. Sedan får man bege sig till katalogen ”i18n” och där redigera den skapade översättningsfilen. Filen ”af.ts” fanns redan från början så jag redigerar min ”sv.ts” fil.
Filen är uppbyggd kring ett antal ”message” där källfilen anges med radnummer och där käll-texten finns utskriven. Sedan finns det en ”translation” tagg utan innehåll, och det är där man skriver in sin översatta text (se bilden ovan).
När filen är sparad och klar så kan man köra make transcompile för att bygga de kompilerade översättningsfilerna (*.qm) och sedan make deploy för att uppdatera tillägget.
Här kan det strula lite och om det inte skapas någon *.qm fil så kan man behöva köra lrelease direkt på *.ts filen. Dokumentationen kring översättning av plugin är ”sådär”, så var beredd på att googla mycket!
Installationspaket
När man så är helt nöjd, så kan man använda make för att göra ett distributionspaket.
make zip
Kommandot packar allt som behövs i en zip-fil, redo att skickas till valfri mottagare. Från och med QGIS 3.0 så kommer du direkt i QGIS att kunna installera plugin från zip-fil. Det är även denna zip-fil som skall användas för att ladda upp till det officiella biblioteket, om du nu vill göra det.
Ladda upp
För att ladda upp ett plugin ”officiellt” så behövs det ett OSGEO konto. Gå till https://plugins.qgis.org/accounts/login/ där du kan logga in, eller ansöka om ett konto.
Väl inloggad på http://plugins.qgis.org/plugins/ så finns där en knapp för att ladda upp ett nytt plugin, och sedan kan du använda gränssnittet för att sköta om uppdateringar och liknande.
GitHub
En sak man är noga med är att koden faktiskt finns i ett kodbibliotek som GitHub. Innan du ”synkar” ditt lokala bibliotek med det online så bör du ”städa” ordentligt. Det bör exempelvis inte finnas med några ”kompilerade” filer. Det enda som skall vara med är det som behövs för att en annan användare skall kunna köra ”make deploy” efter det att de skapat en ”fork” på ditt bibliotek.
För att synka katalogen med GitHub online så ger man några kommandon (tänk på att git-kommandon ges i roten på git katalogen).
git add * git commit -m "En första synkning" git push
Du kan ändra meddelandet till något som passar, och när som helst köra git status för att se hur den lokala kopian ligger till jämfört med online. Du kommer också att behöva ange användarnamn och lösenord för GitHub. Sedan bör allt vara i synk. Och alla kan vara glada!
Grymt inlägg, jag är påväg att bli klar med mitt plugin, en fråga när det gäller genereringen av ts filen. Jag arbetar på en windows maskin så jag försökte skapa filen med en ”.pro fil” enligt: https://docs.qgis.org/2.18/en/docs/pyqgis_developer_cookbook/plugins.html#ts-file men jag fick inte riktigt med alla strängar som jag ville översätta. Funkade kanon på ui filerna men inte på Python koden (har ett par felmeddelande som jag tänkte kunde vara trevliga att översätta).
(Får ett felmeddelande att jag saknar ”make” när jag försöker köra det från osgeo shell kommando tolken)
/Axel
I mina pythonfiler har jag en funktion kallad tr(…)
Denna kan jag anropa för de texter som skall gå att översätta. I stället för att skriva strängen ”Hello” skriver jag self.tr(”Hello”). Detta gör att texten hittas och tas med i ts-filen. Jag tror att tr( ) funktionen ingår som standard när filerna genereras.
”make” behövs för att köra skriptet i ”Makefile”. Hur man installerar make i Windows vet jag tyvärr inte.