Kotoistus
Lokalisointi eli kotoistus tarkoittaa sovelluksien kääntämistä ja sopeuttamista kieleen ja kulttuuriin. Sovellusten ja ohjeiden kääntämisen lisäksi kotoistuksen kohteita ovat kalenterit, merkistöt, päivämäärien näyttötavat yms.. Englanniksi lokalisoinnista käytetään lyhennettä l10n (localisation, l- ja n-kirjainten välissä on kymmenen kirjainta, siitä lyhenne). Suomen osalta kotoistus tarkoittaa lähinnä suomennoksien tekemistä, koska kalenterit ja merkistöt ovat samat.
On olemassa myös opetusministeriön rahoittama Kotoistus-hanke, joka pyrkii yleisemmällä tasolla organisoimaan tietotekniikan sekä kieli- ja kulttuurisidonnaisten asioiden sovittamista yhteen. Kotoistus-hanke tekee yhteistyötä muun muassa kansainvälisen Unicode-konsortion ja muiden standardointijärjestöjen kanssa.
Valmiiksi kotoistetun ohjelman saa käyttämään suomalaisia (tai haluttuja) asetuksia asettamalla sopivat ympäristömuuttujat, yleensä LANG tai LC_CTYPE. Katso Locale. Ohjelman kieli- ja maa-asetukset voi siis määrätä ohjelmaa käynnistettäessä tai esimerkiksi pääteikkunakohtaisesti.
Ohjelmien kääntäminen
Yleensä ohjelmiin toteutetaan monikielisyyden tuki GNU Gettext -ohjelman avulla. Ohjelmoijalle tämä tarkoittaa sitä, että kaikki ne ohjelman merkkijonot, jotka on tarkoitettu käännettäväksi, merkitään erillisellä merkillä, jonka jälkeen luodaan nämä merkkijonot sisältävä .pot-tiedosto. Tarkemmat ohjeet Gettextin käyttämiseen ohjelmoijan näkökulmasta löytyy artikkelista Gettext.
.pot-tiedosto on seuraavaa muotoa: (esimerkkiohjelma löytyy Gettext-artikkelista)
# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PAKETIN VERSIO\n" "Report-Msgid-Bugs-To: OSOITE-VIRHERAPORTOINTIA-VARTEN\n" "POT-Creation-Date: 2007-10-13 18:51+0300\n" #pot-tiedoston luontiaika "PO-Revision-Date: VUOSI-KUUKAUSI-PÄIVÄ TUNNIT-MINUUTIT+AIKAVYÖHYKE\n" #po-tiedoston viimeisin muokkaus "Last-Translator: VIIMEISIN KÄÄNTÄJÄ <SÄHKÖPOSTI>\n" "Language-Team: KÄÄNNÖSRYHMÄ <SÄHKÖPOSTI>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=MERKISTÖKOODAUS\n" "Content-Transfer-Encoding: 8bit\n" #: gettext.c:14 #, c-format msgid "Hello Linux.fi\n" msgstr "" #. TRANSLATORS: Please let %s as it is #: gettext.c:18 #, c-format msgid "Visit %s" msgstr ""
Tiedoston alussa on ohjelmasta ja käännöksestä kertovat otsikkotiedot. Tätä seuraa varsinaiset käännökset. msgid kertoo alkuperäisen yleensä englanninkielisen merkkijonon, ja varsinainen käännös kirjoitetaan msgstr-kohtaan. Käännöksiä voi jatkaa useammalle riville, jolloin jokainen rivi laitetaan lainausmerkkeihin.
Jos käännöstä edeltävissä kommenteissa (#-merkillä alkavat rivit) on rivi
#, fuzzy
se tarkoittaa sitä, että käännös on ns. sumea, kääntäjä ei ole varma sen sopivuudesta, ja muiden kääntäjien tulisi tarkistaa se. Tällaiset käännökset eivät näy ohjelman käyttäjille.
Käännöstiedostoa voi muokata millä tahansa tekstieditorilla, vaikkakin syntaksivirheiden (kuten lainausmerkkien poistaminen vahingossa) välttämiseksi kannattaa käyttää jotakin erityisesti tähän tehtävään erikoistunutta editoria. Tällainen on esimerkiksi Emacs, johon sisältyy erillinen po-tila (engl. po mode) Gettextin käännöstiedostojen muokkaamiseen. Lisäksi on olemassa po-tiedostojen muokkaamiseen tarkoitettuja graafisia työkaluja kuten KBabel ja Poedit.
Kun käännös on valmis, se tallennetaan nimellä ohjelma.po ja muutetaan binäärimuotoon komennolla
msgfmt -co ohjelma.mo ohjelma.po
jonka tuloksena on ohjelma.mo-tiedosto. Yleensä tämä tiedosto tallennetaan polkuun /usr/share/locale/kieli/LC_MESSAGES/; jossa kieli on suomen tapauksessa fi.
Valmiin käännöksen muokkaaminen
Ajoittain voi tulla tarve muokata jonkin valmiiksi asennetun ohjelman käännöstä.
Jos ohjelman lähdekoodit löytyvät järjestelmästä, voidaan lähdekoodihakemistosta etsiä suomenkieliset käännökset sisältävä fi.po-tiedosto, tehdä siihen tarvittavat muutokset, muuntaa se binäärimuotoon ja kopioida ohjelma.mo-nimellä hakemistoon /usr/share/locale/fi/LC_MESSAGES/.
Useimmiten on kuitenkin kätevintä muuntaa valmis .mo-tiedosto takaisin .po-muotoon ja tehdä muutokset tähän tiedostoon. Älä kuitenkaan tee julkaistavaksi tarkoitettuja käännöksiä tältä pohjalta.
Mo-tiedoston muunto po-muotoon onnistuu komennolla msgunfmt. Esimerkiksi seuraavassa luotaisiin grep-ohjelman mo-tiedostosta po-tiedosto:
msgunfmt /usr/share/locale/fi/LC_MESSAGES/grep.mo >grep.po
Tehdään halutut muutokset po-tiedostoon:
emacs grep.po
Käännetään muokattu po-tiedosto takaisin mo-muotoon:
msgfmt -co grep.mo grep.po
Otetaan varmuuskopio alkuperäisestä mo-tiedostosta:
mv /usr/share/locale/fi/LC_MESSAGES/grep.mo /usr/share/locale/fi/LC_MESSAGES/grep.mo.bak
Kopioidaan muokattu mo-tiedosto alkuperäisen paikalle:
cp grep.mo /usr/share/locale/fi/LC_MESSAGES/grep.mo
Sanasto
Kotoistamista koordinoiva lokalisointi.org tarjoaa sivuillaan sanakirjan, josta löytyy vakiintuneet käännökset monille termeille. Sanakirjan käännösten noudattaminen on tärkeää käännösten yhtenäisyyden varmistamiseksi.
Kotoistusprojekteja
Linux-sovelluksia suomennetaan useissa eri projekteissa. Näiden projektien yhteistyötä pyritään koordinoimaan http://lokalisointi.org/ -sivustolla (katso lokalisointi.org) sekä IRCNetistä löytyvällä #lokalisointi-kanavalla.
GNOME
GNOMEn suomennos on varsin hyvällä mallilla ja GNOMEn viimeisimmässä julkaisussa onkin käännösprosentti käyttöliittymän osalta lähes sata. Ohjeistuksesta valtaosa on kuitenkin yhä suomentamatta. GNOMEn suomennosryhmän kotisivut löytyvät osoitteesta http://www.gnome.fi/.
KDE
KDE:tä lokalisoi ja suomentaa suomennosryhmä, jonka kotisivut löytyvät osoitteesta http://kde-fi.org. Tällä hetkellä aktiivisia kääntäjiä on vähän ja tarvetta uusille kääntäjille olisi. Useat KDE:n suomentajat löytyvät #lokalisointi-kanavalta, joten jos kääntäminen kiinnostaa tai löytyy muuten halua jutella kääntäjien kanssa esimerkiksi virheellisistä käännöksistä jne. niin tervetuloa #lokalisointi-kanavalle.
OpenOffice.org
OpenOfficen suomennoksen kotisivut löytyvät osoitteesta http://fi.openoffice.org/.
Translation Project
Translation Project vastaa useimpien GNU-ohjelmien suomennoksista sekä useista ei-GNU-ohjelmista. Projektin sivut löytyvät osoitteesta http://translationproject.org/ ja erityisesti http://translationproject.org/team/fi.html.
Jakeluiden omat kotoistusprojektit
Suurilla jakelupaketeilla on myös omia kotoistusprojekteja, joissa jakelukohtaisia ohjelmia ja ohjeita käännetään mm. suomeksi. Tällaisia projekteja löytyy mm. seuraavilta jakeluilta:
Verkossa toimivat kotoistusalustat
Keskusjohtoiset kotoistusalustat tarjoavat aloittelijoille helpon väylän käännöstöiden pariin ilman paneutumista mystisiin käännöstiedostoihin. Kaikkiin alla luetelluihin alustoihin kuuluu käännösmuisti- eli translation memory -ominaisuus. Käännösmuisti hakee joko täydellisiä tai osittaisia vastaavuuksia vanhoista käännöksistä ja nopeuttaa huomattavasti toisteisten tekstinpätkien kääntämistä.
Launchpad Translations (Rosetta)
Canonicalin toteuttama Launchpadin käännösalusta Rosetta käyttää Translate Toolkitiä. Launchpadin voi vapaasti asentaa omalle palvelimelleen, mutta Launchpad.netin ilmainen palvelintila on ymmärrettävästi houkutellut luokseen koko joukon avoimen lähdekoodin projekteja.
Pootle
Pootle on toteutettu Pythonilla ja se hyödyntää Translate Toolkitiä.
Pootlen taustajoukkojen Locamotion-projekti ylläpitää palvelinta, jolla voi kääntää mm. Abiwordiä, Pidginiä ja Terminologyä. Pootlea käyttävät myös The Document Foundation (LibreOffice) sekä Mozilla
Transifex
Transifex on Google Summer of Code -projektista kasvanut käännösratkaisu, jonka taakse sittemmin perustettiin yritys. Se on toteutettu Pythonilla ja sen Community Edition -julkaisu on kenen tahansa vapaasti asennettavissa, mutta lukuisat avoimen lähdekoodin ohjelmistoprojektit hyödyntävät firman tarjoamaa ilmaista palvelintilaa Transifex.com:issa. Transifex.com:in avoimen luonteen vuoksi on tavallista, että innokkaat vapaaehtoiset perustavat johonkin ohjelmistoon liittyvän käännösprojektin ja vasta jälkikäteen hakevat sille virallisen kehittäjätiimin siunauksen. Transifexin eräs erikoisuus on se, että kokeneemmat kääntäjät voivat varta vasten luoda tulevien kääntäjäpolvien työtä helpottavia sanastoja (glossary). Konekääntäjistä Transifex tukee Microsoftia, paitsi että toiminnallisuus on tätä kirjoitettaessa rikki API-muutosten takia.
MediaWikin Translate-lisäosa
Translate-lisäosan avulla on toteutettu KDE:n UserBasen kotoistus ja Translatewiki.net, jossa koordinoidaan lähinnä MediaWikiin liittyvien projektien kotoistuksia. KDE:n ja GNOME:n suomen kielen kotoistussprinttejä on järjestetty Translate-lisäosan avustuksella Niklas Laxströmin Kotoistus-sivustolla. Konekääntäjän tuottamat ehdotukset mahdollisia Apertiumin ja Microsoftin kautta.
Weblate
Pootlen tavoin Weblate käyttää Translate Toolkitiä. Sen erikoisuutena on Git-integraatio, mahdollisuus kytkeytyä MyMemory-käännösmuistipankkiin sekä Apertiumin ja Microsoftin konekäännöstyökaluihin. Weblaten kehittäjä Michal Čihař pyörittää käännöspalvelinta osoitteessa: https://l10n.cihar.com/ Palvelimella voi kääntää Čihařiin kytköksissä olevia projekteja, kuten phpMyAdminia.