© Kozsik Tamás 2000-2006 Különböző nyelvekhez igazítás Internationalization - i18n.

Slides:



Advertisements
Hasonló előadás
4. alkalom – Hálózat Kezelés
Advertisements

Osztály leszármaztatás
II. Grafikus felhasználói interfész
Programozás III STRING-XML.
AZ OOP ALAPJAI.
© Kozsik Tamás Appletek A Java nyelv elsődleges számú reklámja HTML oldalak aktívvá tevéséhez Kisalkalmazás WEB-böngésző által futtatott Java.
Jt Java Feltételek, logikai kifejezések. jt 2 Logikai operátorok Logikai kifejezésekre alkalmazhatók a következő műveletek: 1. nem! 2. és&ill.&& 3. kizáró.
Programozás III KOLLEKCIÓK 2..
Java Technológia Standard Edition
A Java programozási nyelv
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Öröklődés 2..
HADOOP Korszerű Adatbázisok Elérés, Belépés Elérés: eszakigrid109.inf.elte.hu Belépés: felhasználó/jelszó: neptun-kód Manager oldalak:
RMI = Remote Method Invocation
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Objektum-elvű programozás (OOP)
© Kozsik Tamás JavaBeans Nagyon divatos technológia Nem tévesztendő össze az Enterprise Java Beans technológiával Programozási konvenciók gyűjteménye.
© Kozsik Tamás Be- és kimenet kezelése.
© Kozsik Tamás Párhuzamosság A program egyszerre több mindent is csinálhat Lehetőségek: –Számítással egyidőben IO –Több processzor: számítások.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
Bevezetés a Java programozásba
Öröklődés Polimorfizmus Csomagok Absztrakt osztályok, interfészek
Fájlkezelés, IO Kivételkezelés Belső osztályok
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
Abstract osztályok és interface-ek Beolvasás és kiíratás 7. gyakorlat.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Tömbök ismétlés Osztályok Java-ban Garbage collection
Az objektum-orientált tervezési alapelvek kritikai vizsgálata
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
A Java programozási nyelvSoós Sándor 1/16 Java programozási nyelv 6. rész – Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
C# tagfüggvények.
C# tagfüggvények.
SPRING FRAMEWORK bemutatása
Készítette: Keszthelyi Zsolt
6. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
Csomagok.
Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,
© Kozsik Tamás Kivételek A program végrehajtása során ritkán bekövetkező események Nem a „fő végrehajtási ág”; logikailag alacsonyabbrendű feladat.
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
Kivételkezelés.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Java programozási nyelv Filekezelés
Komoróczy Tamás 1 Java programozási nyelv Stringek.
Java programozási nyelv Metódusok
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Java programozási nyelv Adatbekérés konzolról
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Programozás III KOLLEKCIÓK.
Egyenesvonalú (lineáris) adatszerkezetek
Programozás III KOLLEKCIÓK.
Programozás III CSOMAG. CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
B M Java Programozás 1. Gy: Java alapok IT A N Ismétlés ++
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás másolata:

© Kozsik Tamás Különböző nyelvekhez igazítás Internationalization - i18n

© Kozsik Tamás Ha a szoftvert több országban is el akarjuk adni Helyi igényekhez igazítás –A felhasználó anyanyelvének megfelelően –Formátumokra vonatkozó helyi szabályok Dátumok, számok, pénz Internacionalizáció –Jó, ha a programunkban el tudjuk választani ezeket a részleteket a lényegtől –A Java segít ebben Formátumok, hibaüzenetek, címkék

© Kozsik Tamás Ugyanaz a program két nyelven

© Kozsik Tamás Locale Egy nyelvi/területi egység java.util.Locale Nyelv Ország Változat/nyelvjárás _hu_HU_en_US_fr_FR_fr_CA

© Kozsik Tamás Locale-ok beszerzése Létrehozhatjuk a nekünk kellőt: Locale locale = new Locale("en", "US"); Lekérhetjük az alapértelmezettet Locale locale = Locale.getDefault(); Lekérhetjük a rendelkezésre állókat Locale locales[] = Locale.getAvailableLocales();

© Kozsik Tamás Különböző nyelvű szövegek Címkék, hibaüzenetek, stb. Különböző változatok: ResourceBundle –ListResourceBundle forrásszövegben –PropertyResourceBundle tulajdonságleíró fájlban Megkülönböztetés: Locale-okon keresztül

© Kozsik Tamás ListResourceBundle import java.util.*; public class Feliratok extends ListResourceBundle { static final Object[][] contents = { { "date", "Időpont: " }, { "price", "Jegyár: " }, { "title", "Koncertek" } }; public Object[][] getContents() { return contents; } }

© Kozsik Tamás ListResourceBundle import java.util.*; public class Feliratok_en extends ListResourceBundle { static final Object[][] contents = { { "date", "Date: " }, { "price", "Price: " }, { "title", "Concertes" } }; public Object[][] getContents() { return contents; } }

© Kozsik Tamás Hogyan használjuk? import java.util.*; class Feliratok_Test { public static void main(String args[]){ ResourceBundle rb1 = ResourceBundle.getBundle("Feliratok", Locale.getDefault() ); ResourceBundle rb2 = ResourceBundle.getBundle("Feliratok", new Locale("en","US") ); System.out.println(rb1.getString("title")); System.out.println(rb2.getString("title")); }

© Kozsik Tamás A Locale-nak megfelelő változat ResourceBundle rb = ResourceBundle.getBundle("Feliratok", new Locale("en","US") ); System.out.println(rb.getString("title")); Két változatot készítettünk, egy angolt és egy alapértelmezettet: Feliratok_en és Feliratok Keresés: a specifikusabbtól az általánosabb felé –Feliratok_en_US –Feliratok_en –Feliratok

© Kozsik Tamás Feladat Írj programot, ami a bekéri egy körnek a sugarát, és kiszámolja a területét. A program két különböző nyelven tudjon kommunikálni a felhasználóval!

© Kozsik Tamás Property ResourceBundle Nem forrásfájlban, hanem erőforrás-leíró fájlban vannak a különböző változatok. date=Időpont: price=Jegyár: feliratok.properties title=Koncertek date=Date: price=Price: feliratok_en.properties title=Concerts

© Kozsik Tamás Ugyanúgy használjuk! import java.util.*; class Feliratok_Test { public static void main(String args[]){ ResourceBundle rb1 = ResourceBundle.getBundle("feliratok", Locale.getDefault() ); ResourceBundle rb2 = ResourceBundle.getBundle("feliratok", new Locale("en","US") ); System.out.println(rb1.getString("title")); System.out.println(rb2.getString("title")); }

© Kozsik Tamás Feladat Alakítsuk át az előző feladatra adott megoldást property-fájlosra!

© Kozsik Tamás Locale-specifikus formátumok NumberFormat DateFormat MessageFormat A java.text csomag osztályai

© Kozsik Tamás Dátum-formátum június 3. –Magyarország:98/6/3 –USA: 6/3/98 –Anglia: 3/6/98 –Finnország:

© Kozsik Tamás Dátumformátumok kezelése DateFormat dfin = DateFormat.getDateInstance( DateFormat.SHORT, new Locale("en","US") ); Date date = dfin.parse("6/3/98"); DateFormat dfout = DateFormat.getDateInstance( DateFormat.LONG, Locale.getDefault() ); System.out.println( dfout.format(date) );

© Kozsik Tamás MessageFormat Szövegek felparaméterezésére "A {1} fájlrendszer mérete {0} megabájt." "A /home fájlrendszer mérete 3.3 gigabájt." "A /tmp fájlrendszer mérete 1.2 gigabájt." String minta = "A {1} fájlrendszer mérete {0} megabájt."; Integer méret =... Object[] args = {méret, "/home"}; String s = MessageFormat.format(minta,args);

© Kozsik Tamás Összetett példa ResourceBundle rb = ResourceBundle.getBundle( "hibauzenetek", Locale.getDefault()); Object[] param = {"Alma.java"}; System.out.println(MessageFormat.format( rb.getString("Mes"), param )); hibauzenetek_en.properties Mes=File {0} cannot be found. hibauzenetek_hu_HU.properties Mes=Nem találom az alábbi fájlt: {0}