Ero sivun ”Kotoistus” versioiden välillä
Siirry navigaatioon
Siirry hakuun
→Ohjelmien kääntäminen: mo-tiedoston pohjalta muokkaaminen + käytettävä editori
(käännösohjeita) |
Pb (keskustelu | muokkaukset) (→Ohjelmien kääntäminen: mo-tiedoston pohjalta muokkaaminen + käytettävä editori) |
||
Rivi 3: | Rivi 3: | ||
== Ohjelmien kääntäminen == | == Ohjelmien kääntäminen == | ||
Yleensä ohjelmiin toteutetaan monikielisyyden tuki [[Gettext|GNU Gettext]] -ohjelman avulla. Ohjelmoijalle | Yleensä ohjelmiin toteutetaan monikielisyyden tuki [[Gettext|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ä <tt>.pot</tt>-tiedosto. Tarkemmat ohjeet Gettextin käyttämiseen ohjelmoijan näkökulmasta löytyy artikkelista [[Gettext]]. | ||
<tt>.pot</tt>-tiedosto on seuraavaa muotoa: (esimerkkiohjelma löytyy [[Gettext]]-artikkelista) | <tt>.pot</tt>-tiedosto on seuraavaa muotoa: (esimerkkiohjelma löytyy [[Gettext]]-artikkelista) | ||
Rivi 36: | Rivi 36: | ||
msgstr "" | msgstr "" | ||
</pre> | </pre> | ||
Tiedoston alussa on ohjelmasta ja käännöksestä kertovat otsikkotiedot. Tätä seuraa varsinaiset käännökset. <tt>msgid</tt> kertoo alkuperäisen yleensä englanninkielisen merkkijonon, ja varsinainen käännös kirjoitetaan <tt>msgstr</tt>-kohtaan. Käännöksiä voi jatkaa useammalle riville, jolloin jokainen rivi laitetaan lainausmerkkeihin. | Tiedoston alussa on ohjelmasta ja käännöksestä kertovat otsikkotiedot. Tätä seuraa varsinaiset käännökset. <tt>msgid</tt> kertoo alkuperäisen yleensä englanninkielisen merkkijonon, ja varsinainen käännös kirjoitetaan <tt>msgstr</tt>-kohtaan. Käännöksiä voi jatkaa useammalle riville, jolloin jokainen rivi laitetaan lainausmerkkeihin. | ||
Rivi 41: | Rivi 42: | ||
#, fuzzy | #, 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. | 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 [[tekstieditori]]lla, 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. | |||
Kun käännös on valmis, se tallennetaan nimellä <tt>ohjelma.po</tt> ja muutetaan binäärimuotoon komennolla | Kun käännös on valmis, se tallennetaan nimellä <tt>ohjelma.po</tt> ja muutetaan binäärimuotoon komennolla | ||
msgfmt ohjelma.po -o ohjelma.mo | msgfmt ohjelma.po -o ohjelma.mo | ||
jonka tuloksena on <tt>ohjelma.mo</tt>-tiedosto. Yleensä tämä tiedosto tallennetaan polkuun <tt>/usr/share/locale/kieli/LC_MESSAGES/</tt>; jossa <tt>kieli</tt> on suomen tapauksessa ''fi''. | jonka tuloksena on <tt>ohjelma.mo</tt>-tiedosto. Yleensä tämä tiedosto tallennetaan polkuun <tt>/usr/share/locale/kieli/LC_MESSAGES/</tt>; jossa <tt>kieli</tt> on suomen tapauksessa ''fi''. | ||
===Valmiin käännöksen muokkaaminen=== | |||
Ajoittain voi tulla tarve muokata jonkin valmiiksi asennetun ohjelman käännöstä. | |||
Jos ohjelman [[lähdekoodi]]t löytyvät järjestelmästä, voidaan lähdekoodihakemistosta etsiä suomenkieliset käännökset sisältävä <tt>fi.po</tt>-tiedosto, tehdä siihen tarvittavat muutokset, muuntaa se binäärimuotoon ja kopioida <tt>ohjelma.mo</tt>-nimellä hakemistoon <tt>/usr/share/locale/fi/LC_MESSAGES/</tt>. | |||
Useimmiten on kuitenkin kätevintä muuntaa valmis <tt>.mo</tt>-tiedosto takaisin <tt>.po</tt>-muotoon ja tehdä muutokset tähän tiedostoon. Mo-tiedoston muunto po-muotoon onnistuu komennolla <tt>msgunfmt</tt>. 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 grep.po -o grep.mo | |||
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 === | === Sanasto === | ||
Kotoistamista koordinoiva [http://www.lokalisointi.org lokalisointi.org] tarjoaa sivuillaan [http://lokalisointi.org/sanakirja/kaikki.html sanakirjan], josta löytyy vakiintuneet käännökset monille termeille. Sanakirjan käännösten noudattaminen on tärkeää käännösten yhtenäisyyden varmistamiseksi. | Kotoistamista koordinoiva [http://www.lokalisointi.org lokalisointi.org] tarjoaa sivuillaan [http://lokalisointi.org/sanakirja/kaikki.html 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 == | == Kotoistusprojekteja == |