kansainvälistäminen ja paikallistaminen Zopessa Plonen käännöstyö Asko Soukka, Jyväskylän yliopisto asko.soukka@jyu.fi



Samankaltaiset tiedostot
Linuxin lokalisointi. Marko Grönroos

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

K U U L A L A A K E R I LUOTTAMUKSELLINEN 1(6)

Infopankin käännösohje 2014, versio5

Käyttäjienhallintatyökalu

Linuxin lokalisointi

Infopankin käännösohje 2013, versio 4

Apuja ohjelmointiin» Yleisiä virheitä

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Ohjelmistojen eta ka ytto

Tietokoneohjelmien kielen kääntäminen

Infopankin käännösohje

2.2. Sähköposti. SMTP (Simple Mail Transfer Protocol) Postipalvelimet käyttävät SMTPprotokollaa. TCP-yhteys on pysyvä

Kieliversiointityökalu Java-ohjelmistoon. Ohje

FinFamily Installation and importing data ( ) FinFamily Asennus / Installation

ASCII-taidetta. Intro: Python

Sivuston tiedotmysiteworthcheck.com

Ohjelmoinnin perusteet Y Python

Comet laskutusasiakas -sivusto

compass tool - käyttöohje - järjestelmänvalvojille

DriveGate -ohjeet. DriveGate-käyttöohjeet: Rekisteröityminen palveluun. Rekisteröitymisohjeet ja rekisteröitymisprosessin kuvaus

4. Lausekielinen ohjelmointi 4.1

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python

Valppaan asennus- ja käyttöohje

Testidatan generointi

OHJEET WORDPRESS-BLOGIN LUOMISEEN JA TAVALLISIMPIIN BLOGITOIMINTOIHIN

SENAATTILA uudistuu keväällä 2015

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Infopankin käännösohje

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola

Käyttöohje Planeetta Internet Oy

ARTIVA-seminaari

Eclipse 3.1 Pikaopas versio 1.0

UCOT-Sovellusprojekti. Käyttöohje

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto

Vesa Ollikainen, päivitys Juha Haataja

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Ohjelmisto on tietokanta pohjainen tiedostojärjestelmä, joka sisältää virtuaalisen hakemisto rakenteen.

Tekstiviestipalvelun rajapintakuvaus

Android ohjelmointi Tunti 2. Käyttöliittymät ja resurssit

EASY Tiedostopalvelin - mobiilin käyttöopas

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Digitaalisen median tekniikat xhtml - jatkuu

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

Verkkosivuston hallinnan ohjeet. atflow Oy AtFlow Oy, +358 (0)

Sivuston tiedotcite4me.org

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Zeon PDF Driver Trial

Perustietoja Mietoisten kyläportaalista Yhdistyksen ylläpitäjän kirjautuminen Yhdistyksen etusivun muokkaaminen... 2

5. HelloWorld-ohjelma 5.1

Järjestelmäarkkitehtuuri (TK081702)

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

1. Valitse käyttäjänimi 2. Kirjoita salasana 3. Anna sähköpostiosoitteesi 4. Keksi wikillesi nimi

Wordfast Classic 5.9 Asetukset ja niiden muuttaminen 1 (10)

OFFICE 365 OPISKELIJOILLE

15. Ohjelmoinnin tekniikkaa 15.1

EASY Tiedostopalvelin - mobiilin käyttöopas

4. Luokan testaus ja käyttö olion kautta 4.1

Asiakirjatyyppi Ohje SONET. Veronumero cgi.com 2014 CGI 1 (5)

Juricon Nettisivu Joomlan käyttöohjeet

TIE Ohjelmistojen suunnittelu

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

Digitaalisen median tekniikat xhtml - jatkuu

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

Lomakkeet HTML5. Elina Ulpovaara. Testaus: IE9 Firefox7 Opera11 Chrome

Prolog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010

Visma asiakaspalvelu Tukipyyntöjen lähettäminen

TIE Ohjelmistojen suunnittelu

Kääntäjän virheilmoituksia

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Ohjeet kansainväliselle alustalle rekisteröitymiseen

Aloita oman blogisi luominen (järjestelmä lupaa sen tapahtuvan sekunneissa ;-))

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

HELIA 1 (11) Outi Virkki Tiedonhallinta

Toimintaympäristön kuvaus. LTC-Otso Myyjän työkalu (POC)

Sivuston tiedotsiteoptimer.com

Sivuston tiedotbestsiteanalysis.eu

ALKUSANAT... 4 ALKUSANAT E-KIRJA VERSIOON... 5 SISÄLLYSLUETTELO... 6

L7 8.8 Tulorekisteriaineistot: Aineistojen lähetys ja virhetilanteet, aineistojen korjaaminen

Sähköisen äänestyksen pilotti

Rakenteisen ohjelmoinnin harjoitustyö

TOIMENPIDETTÄ VARTEN

MITÄ JAVASCRIPT ON?...3

Miten lokalisointityö kohtaa kielen normatiivisuuden?

Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript)

Tuotetunnus Hinta Alv 0%

Sivuston tiedotwebstatinfo.com

Viestit-palvelun viranomaisliittymän ohjelmointiohje. Java-esimerkki

HAME PostGIS-tietokanta

Harjoitus 3 (viikko 39)

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Sivuston tiedotdigitalagency.hyp ersaiyan.com

MapStream ecommerce -käyttöohje asiakkaiden pääkäyttäjille (admin user)

5. HelloWorld-ohjelma 5.1

Yksityiskohtaiset ohjeet. TwinSpacen käyttäminen

TOOLS KÄYTTÖOHJEET OPETTAJALLE

Sivuston tiedotqbsupportcustom erservice.com

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Käännöskoordinaattorin rooli käännösprosessissa

Transkriptio:

kansainvälistäminen ja paikallistaminen Zopessa Plonen käännöstyö Asko Soukka, Jyväskylän yliopisto asko.soukka@jyu.fi

Kääntämisvaihtoehdot Plonessa Localizer ja Translation Service käytön myötä kumuloituva sanasto sovellusten käyttämistä merkkijonoista sanaston kääntäminen ZMI-käyttöliittymässä Placeless Translation Service GNU gettext-pohjainen sovelluksen kehittäjä merkitsee käännettävät sanat ja lauseet lähdekoodiin (i18n) merkityt sanat ja lauseet kerätään ja käännetään sovellus ja kielikohtaiseen sanastotiedostoon (l10n)

Vapaaohjelmien kääntäminen GNU gettext GNU-projektin ratkaisu sovellusten kääntämisen mahdollistamiseen ja sen suorittamiseen ohjelmointikirjastot kaikille ohjelmointikielille i18n eli internationalization sovelluksen kansainvälistäminen eli sen paikallistamisen mahdollistaminen l10n eli localization kansainvälistetyn sovelluksen paikallistaminen

GNU gettext -kansainvälistetyn sovelluksen kääntäminen yleensä sovelluksen lähdekoodista kerätään käännettäväksi osoitetut merkkijonot yleisesti _( merkkijono ) merkkijonot kootaan sovelluskohtaiseen käännöspohjaan, joka edelleen käännetään kielikohtaiseksi käännöstiedostoksi sovellus.pot; POT = Portable Object Template sovellus-fi.po; PO = Portable Object sovellus-fi.mo; MO = Machine Object merkkijonoilla avainsanat, joilla yleensä sovelluskohtainen nimiavaruus (domain)

Käännöspohjan otsikkotiedot msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2004-11-05 06:30+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=charset\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0\n" "Language-Code: en\n" "Language-Name: English\n" "Preferred-Encodings: latin1 utf-8\n" "Domain: plone\n"

Käännettävä sana käännöspohjassa #: /CMFPlone/skins/plone_forms/registered.pt #. <p i18n:translate="description_you_can_log_on_now"> #. Click the button to log in immediately. #. </p> msgid "description_you_can_log_on_now" msgstr "Click the button to log in immediately."

Käännettävä sana käännöspohjassa #: /CMFPlone/skins/plone_forms/registered.pt konteksti #. <p i18n:translate="description_you_can_log_on_now"> #. Click the button to log in immediately. #. </p> avainsana msgid "description_you_can_log_on_now" msgstr "Click the button to log in immediately." käännös

Käännettävä sana käännöspohjassa #: /CMFPlone/skins/plone_forms/registered.pt #. <p i18n:translate="description_you_can_log_on_now"> #. Click the button to log in immediately. #. </p> msgid "description_you_can_log_on_now" msgstr " You can now click the button very gently to\n log into the system immidiately.\n

GNU gettext -kääntäminen Plonessa sovelluksista on käännettävissä ensisijaisesti sivupohjat (.pt,.zpt, Zopessa myös.dtml) valmiit.pot -käännöspohjat sijaitsevat sovelluksen lähdekoodin i18n/ -alihakemistossa.pot -tiedoston voi myös luoda käsin tai sen voi kokeilla sivupohjista generoida plone-i18n -projektin i18ndude -skriptillä http://sourceforge.net/projects/plone-i18n/ suomenkielisen -fi.po -käännöksen luominen kopioimalla ja täydentämällä.pot-pohjasta

i18ndude käännöspohjien generointi Plonen sivupohjista./i18ndude.py rebuild-pot -pot plone.pot -create plone `find CMFPlone/skins/ -name *.pt ` käännöspohjien päivitys, tarkistus, käännöksen kattavuuden tilastointi jne... ongelmia: tarkka sivupohjien XML-syntaksin oikeinkirjoituksesta, käännettäville merkkijonoille tulee olla erikseen merkitty avainsana

Plonen erikoisuudet käännöstyössä Python-lähdekoodissa ja -skripteissä ei käytetä GNU gettext -käännösrajapintaa kaikkia käännettäviä merkkijonoja ei löydy (eikä edes i18ndude löydä) sivupohjista sivupohjien tunnusten (id) kääntäminen suoraan Python-lähdekoodiin kirjoitettu englanti Python-skripteistä lähetettävät viestit Plone ei vielä kokonaisuudessaan käännettävissä? lomakkeiden tarkistuksen virheilmoitukset sisältökohteiden nimiä sisältävät viestit

Placeless Translation Service ZMI-käyttöliittymä ilmoittaa syntaksivirheet päivitetyn käännöksen lataaminen uudelleen kääntämättömien merkkijonojen tallennus: sovellus-fi.missing käännöstiedostot luetaan aakkosjärjestyksessä

Plone-sovelluksen kansainvälistäminen tarkoittaa käännettävissä olevien merkkijonojen merkitsemistä lähdekoodiin käännettävien merkkijonojen merkitseminen on mahdollista Zopen DTML-sivupohjiin (.dtml) Zopen ja Plonen ZPT-sivupohjiin (.pt,.zpt) Python-lähdekoodiin käännöspohjan generointi i18ndude:lla erikoisuuksien lisääminen käännöspohjaan käsin

i18n-syntaksi DTML-sivupohjassa <dtml-translate domain=plone> User name </dtml-translate>

i18n-syntaksi ZPT-sivupohjassa <html xmlns:i18n="http://xml.zope.org/namespaces/i18n" i18n:domain="plone" > <body> <h1 i18n:translate="id">id</h1> <a href="http://www.jyu.fi/" title= University of Jyväskylä i18n:attributes="title" i18n:translate= > University of Jyväskylä </a> </body>

i18n-syntaksi Python-lähdekoodissa from Products.PlacelessTranslationService.MessageID \ import MessageIDFactory _ = MessageIDFactory("plone") str_id = _('Id')

Plonen erikoisuudet sovelluksen kansainvälistämisessä sivupohjien tunnukset (id) lisättävä itse tiedostonimet ilman päätteitä toimivat käännösavainsanoina portaaliviestit lisättävä itse avainsanoinaan portal_status_message= foobar lomaketarkistuksen virheilmoitukset state.seterror('title', 'Required value is missing.', 'input_required') eivät toistaiseksi käänny PTS:n avulla?

Kohdealuekääntäminen oletussuomennos yleinen ja abstrakti Käyttäjätunnuksellasi ei ole oikeutta lisätä objektia. kohdealuekäännöksen ohittaminen kirjoittamalla käännös suoraan sivupohjaan kohdealuekäännöksen kirjoittaminen omaan käännöstiedostoon PTS lukee käännöstiedostot aakkosjärjestyksessä myöhemmin luettava käännöstiedosto korvaa aikaisemman

Kääntämisen valta ja vastuu?