TIE Ohjelmistojen suunnittelu

Samankaltaiset tiedostot
TIE Ohjelmistojen suunnittelu

Käyttöliittymän lokalisointi. Juha Järvensivu 2008

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Lokalisointitestaus. Matti Vuori, 1(17)

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

Voit käyttää tekemääsi ohjelmaa seuraavan viikon harjoituksissa, joten kopio työsi hedelmät talteen äläkä tuhoa niitä.

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

7. Näytölle tulostaminen 7.1

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

TAMPEREEN TEKNILLINEN YLIOPISTO

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi

Graafisen käyttöliittymän ohjelmointi

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

TIE Ohjelmistojen suunnittelu

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Ohjelmointi 2 / 2010 Välikoe / 26.3

JUnit ja EasyMock (TilaustenKäsittely)

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Osoitin ja viittaus C++:ssa

Johdatus rakenteisiin dokumentteihin

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Graafisen käyttöliittymän ohjelmointi Syksy 2013

4. Lausekielinen ohjelmointi 4.1

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

Ohjelmointi 1 / syksy /20: IDE

P e d a c o d e ohjelmointikoulutus verkossa

TermBase NET versio (Beta)


Java-kielen perusteet

Office ohjelmiston asennusohje

ZyXEL VMG1312 ja 3G/4G-mokkulat

Miten lokalisointityö kohtaa kielen normatiivisuuden?

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Qt perusteet. Juha-Matti Vanhatupa. (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia)

TIE Ohjelmistojen suunnittelu. Luento 3: käyttöliittymien toteutustekniikat, QML

Ryhmäläisten nimet:

Valikot ja työkalupalkit. 2008

H5P-työkalut Moodlessa

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Hakemistojen sisällöt säilötään linkitetyille listalle.

ZyXEL AMG1312 ja 3G/4G-mokkulat

5. HelloWorld-ohjelma 5.1

Apuja ohjelmointiin» Yleisiä virheitä

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Eclipse ja JUnit-ohjelmoijatestit

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Tilauspalveluun pääsee osoitteessa

Loppukurssin järjestelyt

Test-Driven Development

Asennus- ja käyttöohjeet

TIE Ohjelmistojen suunnittelu

ITKP102 Ohjelmointi 1 (6 op)

Dynaaminen muisti. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät 2017.

Taulukot. Jukka Harju, Jukka Juslin

Test-Driven Development

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Uudet ominaisuudet. Realise Your Vision

kansainvälistäminen ja paikallistaminen Zopessa Plonen käännöstyö Asko Soukka, Jyväskylän yliopisto

Tekstiviestipalvelun rajapintakuvaus

Java-kielen perusteet

Ohjelmointi 2, välikoe

Makrojen mystinen maailma lyhyt oppimäärä

QT tyylit. Juha Järvensivu 2008

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

LINGMACHINE S-E. TranSmart -järjestelmän lokalisointi ulkoasiainministeriölle

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Ohjelmointi 2 / 2011 Välikoe / 25.3

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

NELLI-Tunnis. Käyttäjän tunnistus NELLI-tiedonhakuportaalissa yleisissä kirjastoissa. Versio Ere Maijala Kansalliskirjasto

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

Johdatus ohjelmointiin

Javan perusteita. Janne Käki

erasmartcard-kortinlukijaohjelmiston käyttöohje

TIE Ohjelmistojen suunnittelu

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Sukupuu -ohjelma. Ossi Väre ( ) Joni Virtanen ( )

Mitä Uutta - SURFCAM V5.1 Sisällysluettelo

TIE Ohjelmistojen suunnittelu

Kielioppia: toisin kuin Javassa

TAMPEREEN TEKNILLINEN YLIOPISTO

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Loppukurssin järjestelyt C:n edistyneet piirteet

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

DXL Library ja DXL-kielen olemus. Pekka Mäkinen SoftQA Oy http/

OCAD KOULUTUS ALITTELIJOILLE OCAD PERUSTEET

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

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Käännösstrategioiden rajoilla. maltillisuus vastaan uudistavuus

Transkriptio:

TIE-20200 Ohjelmistojen suunnittelu Luento 12: Lokalisointia/kansainvälistystä TIE-20200 Samuel Lahtinen 1

Sisältöä Kansainvälistäminen/lokalisointi

Mitä asioita voi liittyä kansainvälistämiseen/lokalisointiin? TIE-20200 Samuel Lahtinen

Kansainvälistäminen Kansainvälistäminen(internationalization) sisältää asioita, joiden avulla ohjelmasta voidaan tehdä lokalisoituja versioita Ohjelman rakenteen suunnittelu niin, että se on lokalisoitavissa Yksinkertaisimmillaan kielivalinta, mutta myös käyttöliittymän rakenne, syöttötavat, kulttuuriin liittyvät jutut jne. Kielivalintaan liittyviä asioita: Lyhenteet, valuutta, numeroiden esitystapa jne.

Keksi huonoja esimerkkejä lokalisoinnista TIE-20200 Samuel Lahtinen

Puutteita jne. Merkistö sekaisin (laatikot, kysymysmerkit jne.) Puuttuvat tekstit/käännökset, sekakielisyys Päällekkäiset elementit Elementtien paikat hyppivät Osa teksteistä kuva-alueen ulkopuolella Omien käännösten ja termien keksiminen Kulttuurillisesti sopimattomat asiat Paikkatiedot jne. pielessä Päiväysten, numeroiden jne. formatointi Mittayksiköt

Suunnittelu & lokalisoinnit Projekti, jossa tiedossa useita eri versioita Lokalisointia tehdään usein samanaikaisesti tuotekehityksen kanssa. Tuote ja eri versiot valmistuvat kutakuinkin samaan aikaan. Eri kieliversiot ja testaus Miten suunnitella ohjelma lokalisoitavaksi?

Lokalisointiprosessia Yleisiä lokalisointiin liittyviä vaiheita: Materiaalin analysointi, työkalut, resurssit Kulttuurilliset, tekniset ja kielelliset vaatimukset Terminologia kirjastot ja niiden luonti Kääntäminen kohdekielelle Käyttöliittymän hienosääntö, namiskat, lomakkeet jne. oikean kokoiseksi. Grafiikat, kuvat, viittaukset muihin tietolähteisiin jne. kuntoon Lokalisoidut kielitiedostot kuntoon Testaus, kielellinen ja toiminnallisuus Toimitus

Jotain huomioita Suunnittele automatisoituja testejä, automatisoi testausta Merkkijonojen koodaus, esim. Utf-8 Koodiin kovakoodatut arvot, niiden metsästys Tilapäiskopio projektista, korvaa koko sanaston sisältö (kaikki entryt) samalla merkkijonolla (esim. ####, kovakoodatut arvot helppo huomata ohjelman ajossa) Sanastot: älä koita turhaan säästää muistia jakamalla lauseita pieniin osiin. Lauserakenne, sanajärjestys ja sanojen taivutukset kielten välillä eroavat. Ei näin: (ERROR_MSG_BEGIN + $USER_NAME + n + ERROR_MIDDLE_ + ERROR_END) Lisää kommentteja merkkijonoihin liittyen niiden käyttöön (kääntäminen helpottuu, kun tietää myös kontekstin) Tee käyttöohje ja käyttöliittymän lokalisointi samalla kertaa, testaa molempia

Qt ja kansainvälistäminen http://doc.qt.io/qt-5/internationalization.html http://doc.qt.io/qt-5/linguist-manager.html http://doc.qt.io/qt-5/linguist-translators.html QML, Qt Quick: Käyttöliittymän merkkijonojen jne. Lokalisointi Text { id: txt1; // This user interface string is used only here //: The back of the object, not the front //~ Context Not related to back-stepping text: qstr("back", "not front"); } Numeroiden lokalisointia (esim. 4321,65 vai 4.321,65 vai 4,321.65) Text { text: qstr("%l1").arg(total) } Text { text: qstr("date %1").arg(Date().toLocaleString(Qt.locale())) }

Qt ja kansainvälistäminen Qt:n C++ versio: Qtranslate, merkkijonot tr-function sisään LoginWidget::LoginWidget() { QLabel *label = new QLabel(tr("Password:"));... } Käännössanaston lataaminen (sovellustaso) mytranslator.load("myapplication_" + QLocale::system().name(), ":/translations/"); app.installtranlator( &mytranslator ); Pikanäppäinten, näppäinoikoteiden asettaminen exitact = new QAction(tr("E&xit"), this); exitact->setshortcuts(qkeysequence::quit); Dynaamisuus tekstissä (%): void FileCopier::showProgress(int done, int total, const QString &currentfile) { label.settext( tr("%1 of %2 files copied.\ncopying: %3").arg(done).arg(total).arg(currentFile) ); }

Lisää lokalisoinnista Perinteinen vakioiden yms. tekstien pistäminen omaan erilliseen tiedostoon toimii myös käännöskikkareiden kanssa (kuten Qt:n käännösympäristö) Voidaan vaihtaa originaalikielen tekstit helposti samasta paikkaa Haasteita: Usein ohjelmat hakevat tietoja ajonaikaisesti, tiedostoista, verkosta jne. Näiden tietojen kääntäminen voi olla mahdotonta Tietovarastosta pyydetään asiat tietynkielisellä versiolla Tietojen kuvaus monikielinen, itse tiedot kieliriippumatonta informaatiota (täydellinen tietomalli tärkeä) Käyttöjärjestelmän omat vakiokomponentit ja niiden käyttö ohjelmassa, perustoiminnot tarjolla vain käyttöliittymän kielellä Kielivalinta dynaamiseksi valikoihin, mitä vaatii?

Yhteenveto Kansainvälistysjutut, vaikutus ohjelman toteuttamiseen riippuu ohjelman rakenteesta Miten käyttöliittymä ja tulostukset yms. Eroteltu muusta koodista?