Haladóprogramozás (C#) 2007 2008, I. félév BMF NIK



Hasonló dokumentumok
.NET alkalmazások telepítése

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Vizuális, eseményvezérelt programozás XI.

Objektumorientált Programozás VI.

Objektumorientált programozás C# nyelven

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Globalizáció, Lokalizáció

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Objektum Orientált Programozás IV.

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Objektumorientált Programozás IV.

Objektumorientált programozás C# nyelven

Kalapácsvetés 2016 szöveges

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2. modul - Operációs rendszerek

Objektumorientált Programozás III.

Operációs rendszerek. Tanmenet

Objektum Orientált Programozás VII.

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Java programozási nyelv 6. rész Java a gyakorlatban

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

Párhuzamos programozás: folyamatok

Párhuzamos programozás: folyamatok

Operációs rendszerek. Tanmenet

A C# PROGRAMOZÁSI NYELV

Operációs rendszerek. Tanmenet

Miklós Árpád, BMF NIK, 2007

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Entity Framework alapú adatbáziselérés

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Segítség a megoldáshoz: 1. Készítse el a Window-t az ábrának és az osztálydiagramnak megfelelően.

Zimbra levelező rendszer

Programozási nyelvek II. JAVA

BME MOGI Gépészeti informatika 13.

Tájékoztató. Használható segédeszköz: -

Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok

Objektumorientált programozás C# nyelven

Az alábbiakban a portál felépítéséről, illetve az egyes lekérdező funkciókról kaphat részletes információkat.

Geotechnika II. (NGB-SE005-2) Geo5 használat

Java II. I A Java programozási nyelv alapelemei

Microsoft SQL Server telepítése

Mértékegységek a számítástechnikában

Objektumorientált Programozás V.

Adóhátralék kezelés egyszerűen. Telepítési útmutató. A program futtatásához Windows XP, Windows 7, 8 operációs rendszer szükséges.

Új technológiák az Ubuntuban. Új fejlesztések Amik egy éven belül jelenhetnek meg az Ubuntuban

Dropbox - online fájltárolás és megosztás

DuneHD.hu. Kompatibilis médialejátszók: Dune HD Center Dune BD Prime Dune HD Base 2.0 Dune HD Base 3.0 Dune BD Prime 3.0

Készítette: Nagy Tibor István

Kifizetések kezelése. 1 Kifizetési dátumok megadása pénzügyi kódokhoz

Objektumorientált programozás C# nyelven

Számítógépes alapismeretek 2.

Telepítési Kézikönyv

Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával Útmutató 2010.

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

Tájékoztató. Használható segédeszköz: -

A szerzõrõl... xi Bevezetés... xiii

BŐVÍTMÉNYEK TELEPÍTÉSE ÉS SZERKESZTÉSE WORDPRESS-BEN

A C# programozási nyelv alapjai

Java II. I A Java programozási nyelv alapelemei

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

GIRO GSM MODEM/VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

ETR Kliens installálás

Microsoft Office PowerPoint 2007 fájlműveletei

Adóhátralék kezelés egyszerűen. Használati útmutató

INFORMATIKA - VIZSGAKÖVETELMÉNYEK. - négy osztályos képzés. nyelvi és matematika speciális osztályok

Objektum Orientált Programozás V.

Az ErdaGIS térinformatikai keretrendszer

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI)

Szoftvertervezés és -fejlesztés I.

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Java-s Nyomtatványkitöltő Program Súgó

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

Szövegszerkesztés Word XP-vel. Tanmenet

15.4.2b Laborgyakorlat: Mappa és nyomtató megosztása, a megosztási jogok beállítása

GráfRajz fejlesztői dokumentáció

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

Szövegszerkesztés Word XP-vel. Tanmenet

Mercedes MRA interfész

A Cobra Sprint telepítése CobraContoLight felhasználók számára

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

Szoftvertervezés és -fejlesztés I.

Windows. Készítette: Csatlós István

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Belépés a GroupWise levelező rendszerbe az Internet felől

13. óra op. rendszer ECDL alapok

H N S A d a t K a p c s o l a t

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

TERKA Törvényességi Ellenőrzési Rendszer Kiegészítő Alkalmazás

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3

Felhasználói dokumentáció. a TávTagTár programhoz. Készítette: Nyíri Gábor, hdd@nc-studio.com GDF Abakusz regisztrációs kód: GDFAba43

Átírás:

Haladóprogramozás (C#) 00 00, I. félév BMF NIK Nemzetközi és többnyelvű alkalmazások fejlesztése Nemzetközi alkalmazások készítésének szempontjai Globalizáció és lokalizáció Nyelvi és kulturális jellemzők kezelése Nyelvi erőforrások készítése és felhasználása Erőforrások kezelése Erőforrások használata.net alkalmazásokban Többnyelvű Windows Forms alkalmazások fejlesztése Nyelvfüggő elemek elkészítése Nyelvváltás fejlesztés közben és futási időben miklos.arpad@nik.bmf.hu Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyinek, illetve vizsgának. Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelező irodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges. Globalizáció és lokalizáció Az alkalmazások egyre nagyobb hányada készül a globális piacra A különbözőországokban és kultúrákban sokféle írásmódot és naptárat használnak, eltérően kezelik a számokat és a dátumokat, sőt, akár a sorbarendezés szabályai is mások lehetnek. A nemzetközi piacra szánt alkalmazásoknak mindezt tekintetbe kell venniük. Globalizáció: alkalmazások felkészítése arra, hogy más kultúrájú szoftverkörnyezetben is helyesen működjenek Ennek eredményeként a programok képesek lesznek más írásmódok (pl. jobbról balra), naptárak, szám- és dátumformátumok használatára is. Lokalizáció: alkalmazások lefordítása más nyelvekre, kultúrákra A lokalizált alkalmazások felhasználói felülete és összes üzenete a célnyelven jelenik meg. Egy.NET alkalmazás akár több nyelven is képes lehet működni (nincs szükség külön nyelvi verziókra).

Nyelvi és kulturális jellemzők kezelése A.NET keretrendszerben a System.Globalization névtér osztályai teszik lehetővéa nemzetközi alkalmazások nyelvi és kulturális jellemzőinek kezelését Ezek az osztályok a következő lehetőségeket biztosítják: Egyszerű és kombinált Unicode karakterek helyes kezelése Kultúrák és régiók azonosítása több szinten Számok, dátum és idő, pénznemek, mértékegységek kultúrafüggő kezelése Kultúrafüggő sorbarendezési lehetőségek Unicode A.NET keretrendszer UTF- formátumban tárolja a karaktereket Ez a bites Unicode szabvány nem teszi lehetővéa világ összes írásjelének közvetlen kódolását (csupán a kínai nyelvhez 0000 karakterre van szükség), ám ésszerűkompromisszumot képvisel a tárolás helyigénye és a feldolgozás sebessége, valamint a karakterek kezelésének kényelme és egyszerűsége között. Egyes karakterek több Unicode karakter kombinációjából állnak Az összetett karakterek egy alapkarakterből és egy vagy több kombináló karakterből épülnek fel. Az európai és amerikai nyelveknél általában külön karakterként is rendelkezésre áll minden összetett (pl. ékezetes) karakter is, a távol-keleti nyelveknél azonban szinte csak összetett karakterek léteznek. Egy európai példa: ǻ = a + + 0x0FB 0x00 0x00A 0x00 Ahhoz, hogy egy alkalmazás nemzetközi lehessen, tudnia kell arról, hogy egy megjelenített írásjel fizikailag több karakterből is állhat, tehát nem használhatja a char típust (ehelyett a string típus ajánlott). Kultúrák és régiók A.NET keretrendszer a világot kultúrákra és régiókra osztja A kultúra fogalom egy adott nyelv és a hozzátartozóvalamely nyelvterület nyelvhasználati konvencióinak összességét jelenti. A.NET keretrendszer az egyes kultúrákat az ISO-- szabványt követve a nyelv és a nyelvterület alapján különbözteti meg egymástól az alábbi jelölésmóddal: <nyelv kódja><kötőjel><nyelvterület KÓDJA> Például az en-us kód az Egyesült Államokban használt angol nyelvi kultúrát jelöli, a pt-br kód pedig a Brazíliában használt portugál nyelvi kultúrát. A régió egy adott földrajzi terület (általában egy ország) kulturális jellemzőit határozza meg az ISO szabvány szerint. Egy régióban több nyelvet is beszélhetnek (pl. Spanyolországban a spanyol, baszk, katalán és galíciai nyelveket), de több régiónak is lehet közös nyelve (pl. Mexikó, Spanyolország, Guatemala és Argentína egyaránt spanyol nyelvterület). A kultúrák egyedi jellemzőit (naptár, számok és dátumok formázása, sorbarendezés szabályai) a System.Globalization.CultureInfo osztály kezeli. A régiók egyedi jellemzőit (pénznem, mértékegység típusa) a System.Globalization.RegionInfo osztály kezeli.

Kultúrák típusai A kultúrák közös jellemzőinek egyszerűbb kezelése érdekében a.net keretrendszer több kultúratípust határoz meg Konkrét kultúra( specific culture ) egy adott régió saját kultúrája Semleges kultúra( neutral culture ) régiófüggetlen kultúra Független kultúra( invariant culture ) mesterséges kultúra (adatok egyértelmű, kultúrafüggetlen tárolásához és megosztásához) A kultúratípusok egymással hierarchikus viszonyban állnak: Egyetlen független kultúra létezik Független de Konkrét kultúrák de-at de-ch Semleges kultúrák de-de en Kultúrák kezelése alkalmazásokban A kultúra-és régióbeállítások a.net keretrendszerben szál szintűek Alapértelmezett értéküket a Windows Vezérlőpult Területi és nyelvi beállítások programjával beállított értékek határozzák meg. A Windows egynyelvű(angol vagy lokalizált) változatainál csak a formázási és sorbarendezési beállítások módosíthatók itt, többnyelvű(mui) verziók esetén viszont a felhasználói felület alapértelmezett nyelve is beállítható. System.Thread.CurrentCulture tulajdonság Az adott szál nyelvfüggőformázási és sorbarendezési tulajdonságait meghatározó kultúra lekérdezésére és beállítására szolgál. System.Thread.CurrentUICulture tulajdonság Az adott szálhoz tartozófelhasználói felület nyelvének lekérdezésére és beállítására szolgál. Példa az aktuális kultúra adatainak kiírására 0 using System; using System.Threading; class Program static void Main() Console.WriteLine("Aktuális kultúra:"); Console.WriteLine("Teljes angol név: " + Thread.CurrentThread.CurrentCulture.EnglishName); Console.WriteLine("Teljes saját név: " + Thread.CurrentThread.CurrentCulture.NativeName); Console.WriteLine("Kultúra neve: " + Thread.CurrentThread.CurrentCulture.Name); Console.WriteLine("Kultúra kódja: " + Thread.CurrentThread.CurrentCulture.LCID); Console.WriteLine("Naptár: " + Thread.CurrentThread.CurrentCulture.Calendar);

Számok és dátumok kultúrafüggő formázása A számokat és a dátumokat kezelőosztályok kínálnak olyan ToString() metódusváltozatokat is, amelyekkel kultúrafüggő formázások végezhetők automatikusan Általában olyan metódusváltozatok is rendelkezésre állnak, amelyekkel tetszőleges formázás végezhető(akár egyéni formázókarakterek alapján is) az IFormatProvider interfész megvalósításával. A keretrendszer ehhez is kínál előre elkészített osztályokat (NumberFormatInfo, DateTimeFormatInfo), amelyekkel egy kultúrafüggőalapformátumból kiindulva minden egyes megjelenített elem módosítható. Számok kultúrafüggő formázása (példa) int szám = 0; Console.WriteLine(szám.ToString("N")); Console.WriteLine(szám.ToString("N", new CultureInfo("de-DE"))); Dátumok kultúrafüggő formázása (példa) DateTime dátum = new DateTime(00, 0, 0); Console.WriteLine(dátum.ToString("D")); Console.WriteLine(dátum.ToString("D", new CultureInfo("es-AR"))); 0 Feladat () Készítsünk alkalmazást, amely felsorolja a rendszeren telepített összes kultúrát és megjeleníti alapadataikat! A program minden kultúrához jelenítse meg a hozzátartozórégióadatokat, valamint példaként egy-egy számot, dátumot és időt az adott kultúra beállításaival! Ötletek: A kultúrák listáját a CultureInfo osztály statikus GetCultures() metódusával kérhetjük le A CultureInfo osztály IsNeutralCulture tulajdonsága elárulja, hogy egy kultúra semleges vagy konkrét A független kultúra hárombetűs ISO nyelvi azonosítója IVL A régióadatokat a RegionInfo osztály egy példányán keresztül kérhetjük le, amelyet egy kultúra vagy annak kétjegyű(régiófüggetlen) kódja megadásával hozhatunk létre Megoldás () CultureDemo\Program.cs

Kultúrafüggő sorbarendezés A karakterek ABC sorrendje minden kultúrában más lehet A magyar nyelvben például az ékezetes betűk beékelődnek az ékezet nélküliek közé, valamint vannak kettősbetűk is (cs, cz, gy, ny, ty, sz, zs), vagy például a finn nyelvben a V és a W betűrendezés szempontjából azonos Az aktuális szál kultúrájának módosítása a sorbarendezési beállításokra is hatással van Nem szabad figyelmen kívül hagyni, hogy a névsorba történőrendezést befolyásolják az operációs rendszer éppen érvényes nyelvi beállításai. Ha arra van szükség, hogy egy tömb vagy gyűjtemény sorbarendezése független legyen az aktuális kultúrától(például kommunikáció, illetve fájlban vagy szerveren történőtárolás céljából), akkor a rendezést a független kultúra beállítása mellett kell végrehajtani. Példa kultúrafüggő sorbarendezésre 0 0 using System; using System.Globalization; using System.Threading; class Program static void Main() string[] alphabet = "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "á", "é", "í", "ó", "ú", "ö", "ő", "ü", "ű", "cs", "gy", "ly", "ny", "sz", "ty", "zs", "cz", "zu", "zv" ; Thread.CurrentThread.CurrentCulture = new CultureInfo("hu-HU"); Array.Sort(alphabet, StringComparer.Ordinal); DisplayAlphabet("Kultúra figyelembe vétele nélküli sorrend:", alphabet); Array.Sort(alphabet, StringComparer.InvariantCulture); DisplayAlphabet("Független kultúra szerinti sorrend:", alphabet); Array.Sort(alphabet); DisplayAlphabet("Magyar ábécé szerinti sorrend:", alphabet); static void DisplayAlphabet(string title, string[] letters) Console.WriteLine(title); foreach (string s in letters) Console.Write(s + " "); Console.WriteLine(); Erőforrások A szerelvények az IL kód mellett tartalmazhatnak egyéb, a programok számára szükséges adatokat is (szövegek, ikonok, képek, hangok, fájlok, egyéni adatok), amelyeket összefoglaló néven erőforrásoknak nevezünk Erőforrások előállíthatók egyszerűszöveges fájlként, a Microsoft ResX sémáját követőxml fájl formájában, illetve megfelelőformátumúbináris fájlként. Szerelvényben történő elhelyezésük a parancssoros fordító megfelelő paraméterezésével lehetséges (ehhez először a resgen.exe segédeszközzel bináris formátumba kell őket alakítani). Az erőforrások közvetlen (manuális) kezelését a System.Resources.ResourceReader és a System.Resources.ResourceWriter osztályok támogatják A Visual Studio segítségével az erőforrások előállítása, programhoz rendelése, szerelvénybe illesztése és használata kényelmesebben is megvalósítható.

Erőforrások kezelése (Visual Studio) A Visual Studio minden új Windows alkalmazáshoz előkészít egy alapértelmezett ResX formátumúerőforrásfájlt Ezt a fájlt Resources.resx néven a projekt Properties mappájában találjuk (vagy a projekt tulajdonságlapján hozhatjuk létre). Emellett tetszőleges számú saját erőforrásfájlt is létrehozhatunk bármely mappában. Az erőforrások szerkesztése során a megfelelőnévtérben létrejön egy osztály, amely statikus tulajdonságok segítségével szigorúan típusos hozzáférést biztosít az elkészített erőforrásokhoz Különbözőtípusú erőforrások Példa erőforrások kezelésére 0 0 using System; using System.Windows.Forms; //using System.Reflection; using System.Resources; partial class MainForm: Form //.NET. esetén a megjegyzésekben szereplő kódra van szükség //private ResourceManager rm; public MainForm() InitializeComponent(); //Assembly assembly = Assembly.GetExecutingAssembly(); //rm = new ResourceManager("ResourceDemo.Demo", assembly); //picturelogo.image = (Image) rm.getobject("logo"); //textname.text = rm.getstring("productname"); //textauthor.text = rm.getstring("author"); //textdescription.text = rm.getstring("description"); //combolanguage.text = rm.getstring("language"); picturelogo.image = Demo.Logo; textname.text = Demo.ProductName; textauthor.text = Demo.Author; textdescription.text = Demo.Description; combolanguage.text = Demo.Language; Többnyelvű Windows Forms alkalmazások A többnyelvűalkalmazások fejlesztésénél minden, a képernyőn megjelenített elemet erőforrásokban kell elhelyezni Elsősorban az üzenetek szövegénél fontos, hogy ezek nem szerepelhetnek közvetlenül a kódban (ez esetben ugyanis minden egyes támogatni kívánt nyelvhez külön programverzióra lenne szükség). A szöveges és egyéb erőforrások kezelését a Visual Studio nagyban megkönnyíti. Ablakok esetében a System.Windows.Forms.Form osztály Localizabletulajdonsága segítségével kapcsolhatóbe a többnyelvűség automatikus támogatása Ha ezt a tulajdonságot beállítjuk, akkor a Visual Studio automatikus kódgenerátora erőforrásalapúüzemmódba kapcsol, és minden grafikai elemet erőforrásként tart nyilván. A System.Windows.Forms.Form osztály Languagetulajdonságának ismételt módosításával egyazon ablak több nyelvi változatát hozhatjuk létre, amelyek között az aktuális kultúra módosításával futási időben is lehet váltani. Az egyes nyelvi változatok létrehozásakor a nem ablak jellegűerőforrásokból nem jön létre automatikusan új példány, ezt másolással, beillesztéssel és átnevezéssel oldhatjuk meg.

Kultúra- és nyelvváltás futási időben A.NET keretrendszer futás közben automatikusan megkeresi és betölti az aktuálisan beállított kultúrához tartozó erőforrásokat Amennyiben egy konkrét kultúrához nincsenek erőforrások, a keresés a hozzátartozósemleges kultúrával folytatódik. Ha ehhez sem találhatók erőforrások, akkor a programba közvetlenül beépített erőforrásokat használja majd a futó alkalmazás. Ez azt is jelenti, hogy nem feltétlenül szükséges minden konkrét kultúrához külön fordítást készíteni, elég a hozzátartozósemleges kultúrához azaz például egyetlen semleges német fordítással ( de ) lefedhetőaz osztrák ( de-at ), a svájci ( de-ch ) és a németországi ( de-de ) nyelvterület is. Az erőforrások betöltése és alkalmazása az egyes konstruktorok lefutása közben történik Ha futás közben a program újraindítása nélkül szeretnénk nyelvet váltani, az ablakok konstruktorában szereplőinitializecomponent() metódushívás megismétlésével erre van lehetőség (ilyenkor azonban elvesznek az ablakban addig beállított vagy begépelt értékek). Példa többnyelvű.net alkalmazásra 0 Irodalomjegyzék (alapismeretek) C. Nagel, B. Evjen, J. Glynn, M. Skinner, K. Watson, A. Jones: Professional C# 00 Kiadó: Wiley Publishing, Inc., 00 ISBN: -0--- Web: http://www.wiley.com/, http://www.wrox.com/ Nyelv: angol Terjedelem: 0 oldal Globalizáció:. o. Erőforrások használata:. o. Lokalizáció: 0. o. Microsoft Corp., Visual Studio Developer Center Globalizációés lokalizáció: http://msdn.microsoft.com/en-us/library/0kkz0(vs.0).aspx