Mozvoikko 2.0.1 RC 1 Mac OS X:lle, Windowsille ja nyt myös PowerPC:lle

Suomen kielen oikoluvusta, eli mozvoikosta, on nyt saatavilla 2.0.1 RC 1 versio, joka tuo korjauksen oikoluvun kielen vaihtoon liittyvään ongelmaan. Korjaus mozvoikkoon julkaistiin jo vuoden vaihteessa, mutta kaikenlaisen muun ohessa jäi lisäosan paketointi odottamaan. Kun viikonloppuna sain lisäksi viriteltyä Windows 7:lle toimimaan Visual C++ 2005 Express Editionin, niin päivitin samalla libvoikon kirjastot 3.4.1 -versioon. Mozvoikon uusia kehitysversioita voi seurata Twitterissä #mozvoikko -tagilla.

Lisäosa löytyy testattavaksi ”Voikko – Suomen kielen oikoluku” -sivultaan ja myöhemmin myös Firefoxin lisäosahakemistosta. Mozvoikko 2.0.1 RC 1 -lisäosa tukee Firefoxia/Thunderbirdia 12a1 -versioon asti Mac OS X:ssä ja Windowsissa. Testasin paketin Mac OS X 10.7:ssa, Windows XP SP3:ssa ja Windows 7 SP1:ssä.

Uutena ominaisuutena lisäosasta on nyt myös erikseen paketoitu versio PowerPC Mac OS X 10.4 ja 10.5:lle, eli PPC-arkkitehtuurin laitteille. Käytännössä tällöin pitää kuitenkin käyttää TenFourFox-selainta, joka on haaroitettu Firefoxista. PPC-prosessorien tuki pudotettiin pois Firefoxin 4 -versiosta alkaen ja täten TenFourFox tarjoaa vanhemmille laitteille tuoreempaa Firefoxia. Testasin PPC-versiota iBook G4:lla käyttäen Mac OS X 10.4:sta ja TenFourFox 9:iä. Nopealla kokeilulla näytti toimivan.

Tulevaa kehitystä mozvoikossa on luultavasti saada lisäosa toimimaan 64-bittisessä Windows-maailmassa. Tämä kuitenkin vaatii ensin libvoikon kääntämisen 64-bittiseksi myös Windowsissa ja 64-bittisen kääntöympäristön virittämisen Visual Studio Expressiin. Ainakin 2005 -version kanssa se ei oikein halunnut onnistua. Asialla ei ilmeisesti ole vielä kovinkaan kiire, sillä vaikka Firefoxista on 64-bittinen nightly-versio Windowsille, bittien valumisesta Auroraan ja siten julkaisuun, ei ole tietoa.

VoikkoSpellService tuo Suomen kielen oikoluvun OS X:lle

Oikoluku on kiva asia ja vielä kivempaa on, jos se olisi aina saatavilla ja kaikissa ohjelmissa, joissa tekstin kanssa joudutaan työskentelemään. Englannin ja useiden muiden ulkomaisten kielien osalta asia näin usein onkin, mutta Suomen kielen oikoluvun kanssa on usein hieman hankalampaa. Onneksi meillä kuitenkin on Voikko, joka tarjoaa sitä hyödyntävien mozvoikko, ooovoikko ja osxspell-palikoiden avulla oikolukua myös suomelle.

OS X:lle Suomen kielisen oikoluvun saattaminen useisiin ohjelmiin on teoriassa yksinkertaista osxpell-projektin tarjoaman VoikkoSpellService-järjestelmäkomponentin kautta, mutta käytännössä asia on hieman monimutkainen. Virallisin versio komponentista on Lauri Nurmen OS X 10.4:lle paketoima PPC-alustalle käännettyjä kirjastoja käyttävä versio, joka saamieni tietojen mukaan toimii OS X 10.6:ssa hieman heikosti Rosettan kautta. Joitain epävirallisia versiotakin olen nähnyt, mutta en niihin linkkiä enää löytänyt. Suoraan sanottua VoikkoSpellServicellä ei ole tukea OS X 10.6 Snow Leopardissa.

Oli siis aika tehdä tuolle asialle jotain, joten pienen tutkailun, Nurmen pätsien lisäämisen, Applen ohjeiden seuraamisen, Soikko-palikan määritteiden vilkuilun ja kiroilun jälkeen, sain VoikkoSpellServicen toimimaan OS X 10.6 Snow Leopardilla. Muutoksina koodin osalta korjasin pari varoitusta antavaa kohtaa ja puuttuvan parametrin. Käänsin komponentin käyttäen 32-bittisiä Voikon ja Suomi-malagan -kirjastoja, joten sen pitäisi toimia myös 10.5 Leopardilla. Erona mozvoikon libvoikon kääntöön, täytyi libvoikolle antaa käännösvaiheessa ”-Wl,-install_name,@executable_path/libvoikko.1.dylib” LDFLAGS-määritteet, jotta dynaaminen kirjasto löydetään.

VoikkoSpellService-komponentti DMG-pakettiin kiedottuna (VoikkoSpellService_2010-07.dmg) ja lisätietoa löytyy Voikolle tekemältäni sivulta omana kohtanaan.

Palikka on kokeellinen versio ja kokeilu omalla vastuulla, kuten aina. Näytti toimivan ainakin Snow Leopardilla, kunhan OS X:n järjestelmänoikolukuun sai lisättyä vaihtoehdoksi suomen. Kyseisen vaihtoehdon saamisessa oli hieman ongelmia, sillä välillä kieli löytyi ja välillä ei. Consolekaan ei tuohon auttanut, mutta kun kielivaihtoehto löytyi, eli VoikkoSpellService oli rekisteröity palveluksi, pystyi Consolesta toteamaan muun muassa palikan kaatumisen.

VoikkoSpellServicen avulla Voikon tarjoama oikoluku toimii ainakin TextEditissä, Safarissa, TextWranglerissa ja TexShopissa. Tosin näköjään osa ohjelmista, kuten TextWrangler, eivät osaa ehdottaa korjausta, mutta muuten kyllä käskettäessä oikolukevat. Chromella näytti olevan jotain hieman isompia ongelmia oikoluvun kanssa OS X:llä. Kieliopintarkistus ei toimi, sillä sen mahdollistavan metodin kanssa käännettynä ja Check grammar -vaihtoehto ruksitettuna Console täyttyy ”[NSCFString rangeValue]: unrecognized selector sent to instance 0x1404e0” ja ”[NSKeyedArchiver dealloc]: warning: NSKeyedArchiver deallocated without having had -finishEncoding called on it.” -virheistä, jolloin ei oikolukukaan toimi.

Olisi pitänyt selkeästi perehtyä osxspelliin jo aikaisemmin, sillä oikoluku TexShopissa (vaikka käytinkin Texmakeria) olisi ollut kyllä helpottava lisä lopputyötä tehdessä. No, kävi se oikolukeminen manuaalisestikin ja copy-pasten avulla kierrättäen OO.orgin kautta.

Lisäys:
VoikkoSpellServicen näkymiseen oikoluvun vaihtoehdoissa sen jälkeen, ku se on sieltä hävinnyt, auttaa Library/Cache -hakemistossa olevan ”com.apple.nsservicescache.plist” -tiedoston poistaminen. Muita kikkoja on käyttää ohjelmallisesti NSUpdateDynamicServices() -metodia, käynnistää Applen pasteboard server uudestaan (/System/Library/CoreServices/pbs) ja uudestaanrekisteröidä servicet komennolla

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -all local,system, user

.

Voikko 3.0 ja mozvoikko-laajennus

Voikosta julkaistiin toukokuun lopussa 3.0 versio, jossa ei varsinaisesti ole mozvoikon käyttäjälle näkyviä muutoksia, mutta taustalla on tapahtunut muun muassa kehitystä kohti muiden kuin suomen kielen tukemista. Ainakin saamen kielen oikoluku olisi jollain tasolla jo toimiva HFST-backendin kautta samoin kuin suomen kielen Omorfi-morfologia ja uuden kokeellisen Lttoolbox-backendin kautta useampiakin kieliä.

Mutta pysytään vielä kuitenkin vakaasti suomessa, ja koska virallinen mozvoikko-laajennus kulkee jälkijunassa Voikon kehitykseen verrattuna, käänsin mozvoikosta OS X:lle uuden version Voikon 3.0:sta vasten käyttämällä sekä perinteistä Suomi-malaga 1.6:sta että HFST-backendia. Hyvinhän ne näyttivät toimivan ja nyt vielä ilman libiconvia. Epäviralliset versiot sekä OS X:lle että Windowsille löytyvät omalta sivultaan. Pitää vielä ehtiessä kääntää Windows-versio Visual Studiolla, jolloin se olisi ”oikein” käännetty. Suomi-malaga ja Omorfi/HFST -morfologioita tukeva versio on vain OS X:lle ja HFST:n saa käyttöön VOIKKO_DICTIONARY=hfst ympäristömuuttujalla.

PPC-version osalta Voikon kääntäminen iBookilla onnistui kyllä ihan jees, mutta kun mozvoikkoa yrittää ristiinkääntää Intel-koneella, jää homma siihen. Virheilmoitus on lyhyesti ”darwin.o, unsupported encoding in FDE”, joka ei paljon auta. Pitäisi varmaan yrittää vanhemmalla XCodella tuota tai jotain, kun olen kuitenkin PPC-version aikaisemmin onnistuneesti kääntänyt.

Kokeilin myös VoikkoSpellServiceä eli OS X:n oikolukukomponentin kääntämistä, mutta en vieläkään ymmärrä, miten sen saa muka toimimaan. Vaikka kaikki kääntyi XCodessa ihan hyvin, eikä Consoleen tullut mitään virheilmoituksia, ei suomea näy oikoluvun valinnoissa. Edes virallista palikkaa en saa toimimaan, mutta Soikon vastaava palikka kyllä toimii. Ei voi ymmärtää.

Mozvoikko-lisäosa PowerPC Mac OS X:lle

Sain viimeinkin iBookkini käyttöön hieman pidemmäksi aikaa ja ehdin kokeilla Firefoxin suomen kielen oikoluku -lisäosan eli mozvoikon kasaamista myös PowerPC-alustalle. Hyvinhän se onnistui ja tuntui toimivan Mac OS X 10.4 Tigerissa.

Muutamia muutoksia piti mozvoikkoon tehdä uuden alustan lisäämisen suhteen ja hieman konfiguraation jälkeen viritellä käsin libvoikon config.h-tiedostoa, mutta yleisesti ottaen aika sulavasti käännös sujui. Muutoksista löytyy kaksi vaihtoehtoista muutostiedostoa, mozvoikko-r2711_osx-ppc.diff_a.txt ja mozvoikko-r2711_osx-ppc_b.diff.txt, jotka molemmat tekevät käytännössä saman asian.

Yhdistelin samalla hieman mozvoikon kasaamiseen liittyviä muistiinpanojani sisältämään sekä Intel-alustalle että PowerPC-alustalle tapahtuvan käännöksen. Varsinaisen käännöksen eli Firefoxin ja lisäosan kääntämisen tein Intel-alustalla.

Lopputuloksena oli siis Suomen kielen oikoluvun sisältävä mozvoikko-1.0-Darwin_ppc-gcc3.xpi -laajennus, joka asentui sopuisasti Firefoxiin ja näyttäisi toimivan iBookissani Mac OS X 10.4 Tigerin kanssa. Lisäosaa voi kokeilla omalla vastuulla.

Asiasta lisää mozvoikko-alasivulla.

Mozvoikko 1.0 ja Mac OS X

Firefoxin Suomen kielen oikoluku -lisäosasta eli mozvoikosta julkaistiin jokin aika sitten uusi versio, samoin kuin lisäosan käyttämistä libvoikosta ja suomi-malagasta. Oli siis aika päivittää lisäosan Mac OS X versio käyttämään uusia kirjastoja.

Uutta versiota kääntäessä huomasin, että olin epähuomiossa nimennyt mozvoikon Makefilessä tarvittavien kirjastojen nimet hieman huonosti, seuraamatta yleistä käytäntöä jättää tarkka versionumero pois. Eli turha määritellä esim. kirjastoa libvoikko.1.7.0.dylib, kun asian voi ilmaista libvoikko.1.dylib. Sama muutos piti tehdä myös src/mozVoikkoUtils.cpp -tiedostoon. Muutoksista löytyy diff-tiedosto.

Tein Mozvoikon käännöstä lyhyet muistiinpanot, joista näkyy käytettyjen kirjastojen versiot. Nyt koko toimenpide meni hieman yksinkertaisemmin kuin viime kerralla.

Lopputuloksena oli Suomen kielen oikoluvun sisältävä mozvoikko-1.0.2009.07.22-Darwin_x86-gcc3.xpi -laajennustiedosto, joka asentui sopuisasti Firefoxiin ja näyttäisi toimivan. Lisäosaa voi kokeilla omalla vastuulla.

Tein samalla asiasta oman alasivun, josta jatkossa löytyy kootusti asiaan liittyvät tieto.

Firefoxin mozvoikko-lisäosa ja Mac OS X

Suomenkielinen oikoluku on kätevä apuväline juttuja kirjoittaessa, mutta vaikka suomenkielinen oikoluku, eli voikko, on ollut jo pidempään saatavilla OpenOffice.org:lle myös Mac OS X:ssä, ei oikoluvun Mozilla-laajennusta eli mozvoikkoa ole ollut saatavilla kuin Windowille ja Linuxille. Kukaan ei ilmeisesti ole viitsinyt kääntää vaadittavia paketteja Mac OS X:lle, mutta nyt on.

Mozvoikko-lisäosa ja sen eri versiot löytyvät nyt Mozvoikko ja Mac OS X -sivulta

Lataamalla vaadittavien kirjastojen, Firefoxin, Voikon ja mozvoikko-laajennuksen lähdekoodit, lukemalla hieman Firefoxin kääntöön ja lisäosien tekoon liittyviä asioita, seuraamalla Voikon kääntöohjeita Mac OS X:lle ja muokkaamalla hieman mozvoikon tiedostoja, saatiin lopputuloksena käännetty mozvoikko-laajennus ja suomenkielinen oikoluku toimimaan myös Firefoxissa.

Mozvoikon käännössä käytin seuraavia versioita tarvittavista kirjastoista:

Kääntöalustana toimi Mac OS X Leopard 10.5.6, kääntäjänä GCC 4.0.1 (Apple Inc. build 5465) ja käänsin mozvoikko-laajennuksen Firefoxin 3.0.5 -version lähdekoodeja vasten.

Firefoxin mozvoikko-laajennukseen tarvittavat muutokset näkyvät tekemästäni diff-tiedostosta. Muutokset eivät ole suuria; Makefileihin lisätään vain uudeksi alustaksi Darwin, osoitetaan mistä tarvittavat kirjastot löytyvät ja mihin valmis käännös tehdään, korjataan kopiokomento Unixin mukaiseksi, valitaan alusta mozVoikkoUtils.cpp:ssä ”XP_MACOSX” -arvolla ja homma on sillä selvä. Lisäksi ”HOST_OS_ARCH” piti muuttaa ”OS_ARCH”, jotta käännös tuottaa halutun ”Darwin” -lopputuloksen, eikä ”darwin9.6.0”:aa.

Lopputuloksena sain siis aikaan mozvoikko-0.9.5-Darwin_x86-gcc3.xpi -tiedoston, joka asentui sopuisasti Firefoxin laajennukseksi ja näyttäisi toimivan. Lisäosaa voi kokeilla omalla vastuulla. Jos kääntöä haluaa kokeilla itse, kirjailin asiasta lyhyet muistiinpanot.