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

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

7. Näytölle tulostaminen 7.1

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

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

TAMPEREEN TEKNILLINEN YLIOPISTO

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

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

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi

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

Graafisen käyttöliittymän ohjelmointi

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

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Ohjelmointi 1 / syksy /20: IDE

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

Office ohjelmiston asennusohje

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

TIE Ohjelmistojen suunnittelu

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

Ohjelmointi 2 / 2010 Välikoe / 26.3

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Graafisen käyttöliittymän ohjelmointi Syksy 2013

5. HelloWorld-ohjelma 5.1

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

Apuja ohjelmointiin» Yleisiä virheitä

P e d a c o d e ohjelmointikoulutus verkossa


Asennus- ja käyttöohjeet

TIE Ohjelmistojen suunnittelu

Java-kielen perusteet

ZyXEL VMG1312 ja 3G/4G-mokkulat

OCAD KOULUTUS ALITTELIJOILLE OCAD PERUSTEET

TIE Ohjelmistojen suunnittelu

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

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

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

JUnit ja EasyMock (TilaustenKäsittely)

ZyXEL AMG1312 ja 3G/4G-mokkulat

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

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

Tilauspalveluun pääsee osoitteessa

Tekstiviestipalvelun rajapintakuvaus

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

Osoitin ja viittaus C++:ssa

Lokalisoinnin tutkimuksen metodologisia ongelmia. Tommi Nieminen

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

ITKP102 Ohjelmointi 1 (6 op)

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

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Tech Conference Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI

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

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

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

Ohjelmointi 2, välikoe

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

Wordfast Classic 5.5 Asentaminen 1 (10)

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

Java-kielen perusteet

Ohjelmistojen mallintaminen. Luento 11, 7.12.

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Makrojen mystinen maailma lyhyt oppimäärä

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

TIE Ohjelmistojen suunnittelu

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

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

Ohjelmointi 2 / 2011 Välikoe / 25.3

Pakkauksen kokoaminen

Valikot ja työkalupalkit. 2008

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

Javan perusteita. Janne Käki

erasmartcard-kortinlukijaohjelmiston käyttöohje

TIE Ohjelmistojen suunnittelu

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

Asiakkaan lisätietokentät

Ohjelmoinnin jatkokurssi, kurssikoe

TAMPEREEN TEKNILLINEN YLIOPISTO

58160 Ohjelmoinnin harjoitustyö

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

H5P-työkalut Moodlessa

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

Ryhmäläisten nimet:

Loppukurssin järjestelyt

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

Test-Driven Development

4. Lausekielinen ohjelmointi 4.1

TIE Ohjelmistojen suunnittelu

Käännösstrategioiden rajoilla. maltillisuus vastaan uudistavuus

<e.g. must, essential, conditional>

8. Näppäimistöltä lukeminen 8.1

Gimp perusteet. Riitta, Jouko ja Heikki

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Graafisen käyttöliittymän ohjelmointi Syksy 2013

CQRS, -ES, PACS, DICOM, WTF?

Taulukot. Jukka Harju, Jukka Juslin

Transkriptio:

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

Ajankohtaista Viimeiset viikkoharkat tarjolla, aiheena kansainvälistäminen/lokalisointi Viikkoharkkoja ei ole enää Harjoitustyön välituotosten ajanvaraus tällä viikoll auki

Ohjelmassa tänään Moniperintä ja koodiesimerkit Kansainvälistäminen/lokalisointi

Mitä asioita voi liittyä kansainvälistämiseen/lokalisointiin? Mitä muuta kuin kieli huomioitava?

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.

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

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://qt-project.org/doc/qt-5/qtquick-internationalization.html http://qt-project.org/doc/qt-5/linguist-manager.html http://qt-project.org/doc/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?