České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů
Diplomová práce
IS pro podporu lokalizací do národního prostředí Bc. Zdeněk Velenský
Vedoucí práce: Ing. Božena Mannová, Ph.D.
Studijní program: Elektrotechnika a informatika, strukturovaný Obor: Výpočetní technika 14. května 2010
ii
Poděkování Rád bych poděkoval vedoucí mé diplomové práce Ing. Boženě Mannové Ph.D. za rady a čas, který mi v průběhu práce poskytla. iii
iv
Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu § 60 Zákona č.121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Praze dne 14.5.2010
............................................... v
vi
Abstrakt Tato diplomová práce se zabývá analýzou, návrhem a implementací informačního systému pro podporu lokalizací do národního prostředí. Tento systém by měl usnadnit vývojářům lokalizaci jejich softwarových produktů založených na Java platformě.
Abstract This diploma thesis deals with analysis, design and implementation of information system for support localization into national enviroment. This system should ease developers to localize their software products based on Java platform.
vii
viii
OBSAH Seznam obrázků.........................................................................................................................xi 1 Úvod ........................................................................................................................................1 1.1 Deklarace záměru .............................................................................................................1 1.2 Výchozí stav .....................................................................................................................1 1.3 Resource Bundles .............................................................................................................2 1.3.1 Pravidla pro pojmenování..........................................................................................2 1.3.2 Obsah .........................................................................................................................2 1.3.3 Přínos .........................................................................................................................3 2 Analýza a návrh řešení ............................................................................................................4 2.1 Základní popis aplikace ....................................................................................................4 2.2 Uživatelské role ................................................................................................................5 2.3 Use Case Diagramy ..........................................................................................................5 2.3.1 UC Přihlásit ...............................................................................................................6 2.3.2 UC Odhlásit ...............................................................................................................8 2.3.3 UC Založit projekt .....................................................................................................9 2.3.4 UC Přehled projektů ................................................................................................10 2.3.5 UC Přehled verzí projektu .......................................................................................13 2.3.6 UC Detail verze .......................................................................................................16 2.3.7 UC Správa uživatelů................................................................................................18 2.3.8 UC Přehled překladatelů..........................................................................................22 2.3.9 UC Můj účet ............................................................................................................22 2.5 Návrh databáze ...............................................................................................................23 2.5.1 Tabulky....................................................................................................................23 2.5.1.1 Project...............................................................................................................23 2.5.1.2 ProjectVersion ..................................................................................................24 2.5.1.3 SourceFile.........................................................................................................24 2.5.1.4 Label .................................................................................................................25 2.5.1.5 LocalizationFile ................................................................................................25 2.5.1.6 LocalizationLabel .............................................................................................25 2.5.1.7 Country .............................................................................................................26 2.5.1.8 Language ..........................................................................................................26 2.5.1.9 PreferedTranslation ..........................................................................................26 2.5.1.10 TranslatorForLanguage ..................................................................................26 2.5.1.11 WhoTranslateWhat.........................................................................................27 2.5.1.12 Person .............................................................................................................27 2.5.1.13 Account...........................................................................................................27 2.5.1.14 Role.................................................................................................................28 2.5.2 ER diagram ..............................................................................................................29 3. Implementace........................................................................................................................30 3.1 Použité nástroje ..............................................................................................................31 3.1.1 IDE NetBeans 6.8 ....................................................................................................31 3.1.2 DB Designer ............................................................................................................32 3.2 Technologie ....................................................................................................................33 3.2.1 HTML......................................................................................................................33 3.2.2 CSS ..........................................................................................................................33 3.2.3 Java ..........................................................................................................................34 3.2.4 Java Servlet..............................................................................................................34 3.2.5 JSP ...........................................................................................................................35 ix
3.2.6 JSTL........................................................................................................................ 36 3.2.7 Framework Struts.................................................................................................... 36 3.2.7.1 Internacionalizace ............................................................................................ 36 3.2.8 Glassfish.................................................................................................................. 38 3.2.9 MySQL.................................................................................................................... 38 4 Testování............................................................................................................................... 39 5 Závěr ..................................................................................................................................... 40 6 Seznam použité literatury...................................................................................................... 41 Tištěná literatura .................................................................................................................. 41 Internetové odkazy............................................................................................................... 41 Přílohy...................................................................................................................................... 42 Příloha A - Instalační příručka ............................................................................................. 42 A. 1 Instalace systému ..................................................................................................... 42 A. 2 Instalace Aplikačního serveru .................................................................................. 42 A. 3 Instalace Databázového serveru Mysql.................................................................... 43 A. 4 Vytvoření databáze isppl.......................................................................................... 43 A. 5 Nahrání aplikace ISPPL do aplikačního serveru Glassfish...................................... 44 A. 6 Spuštění aplikace ISPPL .......................................................................................... 45 Příloha B - Uživatelská příručka.......................................................................................... 45 B. 1 Přihlášení uživatele................................................................................................... 45 B. 2 Registrace uživatele.................................................................................................. 46 B. 3 Odhlášení.................................................................................................................. 47 B. 4 Přehled projektů ....................................................................................................... 47 B. 5 Založit projekt .......................................................................................................... 48 B. 6 Úprava projektu........................................................................................................ 48 B. 7 Smazání projektu...................................................................................................... 49 B. 8 Přehled verzí projektu .............................................................................................. 49 B. 9 Přidání verze projektu .............................................................................................. 49 B. 10 Export verze projektu ............................................................................................. 50 B. 11 Úprava verze projektu ............................................................................................ 50 B. 12 Smazání verze projektu .......................................................................................... 50 B. 13 Detail verze projektu .............................................................................................. 50 B. 14 Přidat lokalizaci...................................................................................................... 51 B. 15 Překladatelé ............................................................................................................ 51 B. 16 Překlad lokalizace................................................................................................... 51 B. 17 Smazání lokalizace ................................................................................................. 52 B. 18 Uložit překlad lokalizace........................................................................................ 52 B. 19 Správa uživatelů ..................................................................................................... 52 B. 20 Můj účet.................................................................................................................. 53 B. 21 Přehled překladatelů ............................................................................................... 53 Příloha C - Obsah přiloženého DVD ................................................................................... 54
x
Seznam obrázků Obrázek 1 - Use Case diagram: ISPPL 1....................................................................................6 Obrázek 2 - Activity Diagram: Přihlásit.....................................................................................7 Obrázek 3 - Activity Diagram: Registrovat uživatele ................................................................8 Obrázek 4 - Use Case diagram: ISPPL 2....................................................................................9 Obrázek 5 - Activity Diagram: Založit projekt ........................................................................10 Obrázek 6 - GUI Přehled projektů...........................................................................................11 Obrázek 7 - Activity Diagram: Upravit projekt........................................................................12 Obrázek 8 - Activity Diagram: Smazat projekt ........................................................................12 Obrázek 9 - GUI Přehled verzí projektu...................................................................................13 Obrázek 10 - Activity Diagram: Přidat verzi projektu .............................................................14 Obrázek 11 - Activity Diagram: Exportovat verzi projektu .....................................................14 Obrázek 12 - Activity Diagram: Upravit verzi projektu...........................................................15 Obrázek 13 - Activity Diagram: Smazat verzi projektu ...........................................................16 Obrázek 14 - GUI Přehled detail verze ....................................................................................16 Obrázek 15 - GUI Překladu lokalizace.....................................................................................17 Obrázek 16 - Activity Diagram: Přidat lokalizaci ....................................................................17 Obrázek 17 - Activity Diagram: Smazat lokalizaci..................................................................18 Obrázek 18 - Use Case diagram: ISPPL 3................................................................................18 Obrázek 19 - GUI Správa uživatelů .........................................................................................19 Obrázek 20 - Activity Diagram: Přidat uživatele .....................................................................20 Obrázek 21 - Activity Diagram: Upravit uživatele ..................................................................21 Obrázek 22 - Activity Diagram: Smazat uživatele...................................................................21 Obrázek 23 - ER diagram databáze ISPPL...............................................................................29 Obrázek 24 - Třívrstvá architektura..........................................................................................30 Obrázek 25 - IDE NetBeans 6.8 ...............................................................................................32 Obrázek 26 - DBDesigner 4 .....................................................................................................33 Obrázek 27 - Hlavní stránka.....................................................................................................46 Obrázek 28 - Registrace uživatele ............................................................................................47 Obrázek 29 - Odhlášení ............................................................................................................47 Obrázek 30 - Přehled projektů..................................................................................................48 Obrázek 31 - Založit projekt.....................................................................................................48 Obrázek 32 - Přehled verzí projektu.........................................................................................49 Obrázek 33 - Detail verze projektu...........................................................................................51 Obrázek 34 - Překlad lokalizace...............................................................................................52 Obrázek 35 - Správa uživatelů..................................................................................................53
xi
Informační systém pro podporu lokalizací do národního prostředí
1 Úvod 1.1 Deklarace záměru Cílem této diplomové práce je vytvořit IS pro podporu překladů aplikací naprogramovaných v jazyce Java do požadovaných lokalizací a ušetřit tak vývojáři čas při komunikaci s překladateli a uživateli vyvíjeného softwaru. IS bude založen na webových technologiích.
1.2 Výchozí stav V současné době jsem se setkal s jazykovými lokalizacemi aplikaci využívající Java resource bundles metodou vykopírování všech lokalizačních souborů z projektu a jejich zabalení do archivu. Tento archiv je posléze zpřístupněn zájemcům o překlad zveřejněním na stránkách projektu, na požádání zaslán emailem nebo poskytnut pomocí verzovacího systému například Subversion. V předcházejících dvou případech si daný archiv překladatelé stáhnou a rozbalí. V adresářové struktuře vyhledají properties soubory bez jazykového a národního kódu. Pro každý takový soubor vytvoří nový soubor se stejným názvem a připojí k němu kód pro jazykovou a případně národní příslušnost, do které budou projekt překládat. Obsah původního properties souboru překopírují do nově vzniklého souboru a ten poté budou překládat nejčastěji v editoru podporujícím nastavení kódování. Ve většině případů to bude pravděpodobně kódování UTF-8. Stejným způsobem vytvoří nové soubory k zbývajícím properties souborům. Takto přeložené soubory přidají do archivu a pošlou zpět programátorovi. Ten na jeho základě v případě desktopové aplikace vytvoří novou verzi a pošle ji překladateli ke kontrole překladu. Pokud je všechno v pořádku, je nová lokalizace hotova. Při využití verzovacího systému je překladatelům vystavena na serveru poslední verze souborů a oni pomocí klienta soubory stáhnou, upraví podle předchozího odstavce a nahrají je zpátky na sever. Zde je autor zkontroluje a potvrdí jejich úpravu. Tím je ovšem programátor nepřiměřeně zatížen emailovou komunikací a místo práce na vlastní aplikaci musí odpovídat a přeposílat lokalizační soubory překladatelům, popřípadě kontrolovat a potvrzovat změny ve verzovacím systému. Této administrativní práce má informační systém pro podporu lokalizací do národního prostředí programátora zbavit.
1
Informační systém pro podporu lokalizací do národního prostředí
1.3 Resource Bundles Resource bundle je Java soubor s příponou properties, který obsahuje textová data specifická pro danou lokalitu. Pomocí těchto souborů je možné naprogramovat Java aplikace nezávisle na rodném jazyce uživatelů. V textu často používám název lokalizační soubor nebo properties soubor místo resource bundle.
1.3.1 Pravidla pro pojmenování Základní část názvu resource bundle není pevně definována. Teprve část názvu za podtržítkem se řídí podle toho, pro jaký jazyk je resource bundle určen. Tato část se skládá z dvoupísmenné zkratky zastupující název jazyka. Tyto zkratky jsou stanoveny normou ISO 639-2, která každému jazyku přiřazuje dvoupísmennou zkratku. Například v ISPPL bude název resource bundle pro češtinu vypadat následovně: ApplicationResources_cs.properties Výchozí resource bundle má pouze základní část názvu a používá se v situaci, kdy není možné nalézt resource bundle pro danou jazykovou a národní lokalitu. Jelikož v ISO 639-2 nejsou různé kódy pro britskou angličtinu a americkou angličtinu a obdobné případy u ostatních jazyků. Je v těchto případech pro názvy resource bundles použito další podtržítko s dvoupísmenným kódem ISO 3166-1, který nese informaci o názvu země. V pravidlech pro pojmenování resource bundles bylo pamatováno i na rozlišení jazykových lokalizací podle země. Resource bundles pro výše zmíněný případ by se jmenovaly například takto. ApplicationResources_en_GB.properties ApplicationResources_en_US.properties
1.3.2 Obsah Resource bundles jsou textové soubory. Obsahují textové řetězce, které se skládají z klíče a hodnoty. Takovýto řetězec v dalším textu nazývám label. Každý klíč je unikátní v rámci jednoho souboru a identifikuje tak hodnotu. Klíče jsou ve stejnojmenných resource bundles, lišících se pouze jazykovým a národnostním ISO kódem stejné a textové řetězce (labely) se tedy liší pouze hodnotou. Komentáře jsou v resource bundles označeny symbolem #. Při psaní aplikace v jazyce Java je uveden pouze klíč a ne přímo jeho hodnota. Tím je dosaženo nezávislosti aplikace na jazykové lokalizaci. V závislosti na tom, v jakém jazykovém prostředí je aplikace provozována, bude využívat správný resource bundle.
2
Informační systém pro podporu lokalizací do národního prostředí Komentář ze souboru ApplicationResources_en.properties: # ------------------ project ------------------------Label ze souboru ApplicationResources_en.properties: project.projectName = Project name Label ze souboru ApplicationResources_cs.properties: project.projectName = Název projektu Díky těmto resource bundles stačí při programování použít například klíč project.projectName a v závislosti na nastavené lokalitě se v aplikaci v anglickém prostředí použije hodnota Project name a v českém prostředí Název projektu.
1.3.3 Přínos Využití klíčů místo přímých hodnot v kódu znamená, že aplikace je možné snadno lokalizovat do mnoha prostředí bez nutnosti přepisovat zdrojový kód a samotný překlad je jednodušší, jelikož překladatelé se setkají pouze s výše uvedenými textovými soubory a nemusí se probírat zdrojovým kódem.
3
Informační systém pro podporu lokalizací do národního prostředí
2 Analýza a návrh řešení 2.1 Základní popis aplikace Informační systém pro podporu lokalizací do národního prostředí, dále již jen ISPPL, by měl zjednodušit překlad aplikací do požadovaných lokalizací. Systém bude evidovat jednotlivé projekty od registrovaných zadavatelů prostřednictvím formuláře v IS. V této verzi se počítá s podporou pro Java resource bundles. Zadavatel projektu vloží do ISPPL pomocí formuláře základní informace o projektu, preferované lokalizace a hlavně soubor nebo soubory s příponou *.properties komprimované v zip archivu. Systém tento soubor analyzuje a uloží ho do databáze. Pokud bude do systému nahráván archiv typu zip s lokalizačními soubory v adresářové struktuře, bude tato struktura při ukládání do databáze zachována. Aplikace ISPPL dle současné ISO normy pro názvy jazyků a zemí správně klasifikuje jednotlivé soubory. Pří vytváření nových lokalizací se vychází také z této normy. Pro každý projekt umožňuje ISPPL vytváření nových verzí projektu, jak pro zajištění lokalizací teprve vyvíjených aplikací, tak také pro lokalizaci nových verzí již hotových aplikací, v kterých se změní lokalizační soubory. Při přidání nové verze projektu bude mít zadavatel možnost si vybrat buď nahrání lokalizačních souborů, jako u založení projektu nebo systém zkontroluje poslední verzi daného projektu a převezme překlad. Překlad aplikace do nových jazykových lokalizací budou zajišťovat převážně uživatelé, kteří budou přesměrování na ISPPL ve formě webové aplikace. V ní se uživatel zaregistruje jako překladatel. V daném projektu a současné projektové verzi, která přísluší aplikaci s níž uživatel pracuje, založí novou lokalizaci a tu přeloží do příslušného jazyka. Samotný zadavatel projektu může také vytvořit pomocí systému nové lokalizace. V ISPPL se nepočítá s tím, že by někdo přímo procházel překlady a korigoval je. Místo toho se bude kvality překladu dosahovat tím, že někdo z komunity uživatelů aplikace bude při nalezení chyby přesměrován na tento překladový systém, zaregistruje se jako překladatel a chybu opraví. Systém v této koncepci je zaměřen na open-source aplikace, kdy případná chyba při překladu neověřenými překladateli z celého světa nezpůsobí takovémuto aplikace podstatnou újmu. Zadavatel při zjištění, že vznikla nová lokalizace má možnost si ze systému stáhnout danou verzi projektu. Pokud byla verze projektu nahrána ve formě zip archivu, vytváří se při exportu stejná struktura, která byla do systému nahrána, avšak obohacená o nové lokalizační soubory. V případě nahrání jediného souboru se exportuje zip archiv obsahující nahraný soubor a nové soubory, každý pro jednu lokalizaci v rámci zip archivu.
4
Informační systém pro podporu lokalizací do národního prostředí
2.2 Uživatelské role Každý uživatel systému má přiřazenu některou z následujících uživatelských rolí. Uživatel jako fyzická osoba může mít buď jednu nebo více uživatelských rolí. Uživatelské role jsou přiřazeny buď administrátorem nebo při registraci v omezené míře samotným uživatelem. Přístup do systému je možný pouze přes login, kdy systém zjistí o jakého uživatele se jedná a podle uživatelské role zpřístupní určitou část systému, ke které daná role uživatele opravňuje. • Administrátor – Administrátor má plný přístup k aplikaci ISPPL. Navíc oproti ostatním rolím může plně spravovat uživatelské účty a také plně zasahovat do administrace projektů. • Zadavatel – Má omezený přístup k aplikaci ISPPL. Může vytvářet projekty, jejich verze a u verzí nové lokalizace. Mazat a upravovat může pouze ty projekty, které vytvořil. Mazat a upravovat může všechny verze a lokalizace v rámci projektů, které sám vytvořil. Také má přístup ke svému účtu a přehledu překladatelů. Má omezený přístup k aplikaci ISPPL. Má přístup • Překladatel – k projektům, verzím projektů a jejich detailům, v kterých provádí vlastní překlad do jazykových lokalizací. Může si zobrazit přehled překladatelů, a také má přístup ke svému účtu.
• Nepřihlášený - Před přihlášením je každý uživatel aplikace ISPPL brán jako nepřihlášený. Aplikace ISPPL v tomto případě zobrazuje stránku s možností přihlášení k systému. Pokud uživatel nemá žádný účet, má možnost se zaregistrovat. Přičemž si může vybrat z uživatelských rolí zadavatel nebo překladatel.
2.3 Use Case Diagramy Use Case Diagram (Diagram případu užití) je základním nástrojem pro zobrazení požadavků na vyvíjený systém. Pouze to, co je dáno případy užití bude implementováno.
5
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 1 - Use Case diagram: ISPPL 1
2.3.1 UC Přihlásit Aktéři: administrátor, zadavatel, překladatel Popis Případ užití přihlásit je nutnou součástí systému, kdy přístup k jeho jednotlivým částem je závislý na přihlášení. Alternativní tok událostí umožňuje registrovat nového uživatele. Základní tok událostí: 1) 2) 3) 4)
Případ užití začíná při vstupu uživatele do ISPPL Systém zobrazí uživatelské rozhraní s dialogem pro přihlášení Uživatel vloží uživatelské jméno a heslo Systém ověří platnost údajů proti databázi [Validace] a) ANO – Systém zobrazí uživatelské rozhraní dle uživatelské role b) NE – Systém se vrátí do původního stavu
6
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 2 - Activity Diagram: Přihlásit
Alternativní toky událostí: Registrovat uživatele 1) Uživatel spustí volbu registrovat uživatele 2) Systém zobrazí formulář pro registraci 3) Uživatel zadá své jméno, příjmení,email,telefon, uživatelské jméno, 2x stejné heslo. Z voleb vybere roli buď zadavatel nebo překladatel a následně rodný jazyk, případně ostatní jazyky, které ovládá 4) Systém zkontroluje, jestli se shoduje dvakrát zadané heslo a) ANO – Systém uloží data do databáze a vyzve uživatele k nastavení účtu UC 9 b) NE – Systém se vrátí do původního stavu Výstupní podmínky: Nový účet je uložen v databázi
7
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 3 - Activity Diagram: Registrovat uživatele
2.3.2 UC Odhlásit Aktéři: administrátor, zadavatel, překladatel Vstupní podmínky : uživatel je přihlášen Popis Případ užití odhlásit využije uživatel při ukončení práce s ISPPL. Základní tok událostí: • Uživatel stiskne tlačítko Odhlásit • Systém odhlásí uživatele Výstupní podmínky: Uživatel je odhlášen.
8
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 4 - Use Case diagram: ISPPL 2
2.3.3 UC Založit projekt Aktéři: administrátor, zadavatel Vstupní podmínky : uživatel je přihlášen s adekvátní rolí Popis Případ užití založit projekt umožňuje zadavateli po přihlášení uložit do systému základní údaje o projektu: název projektu a verzi projektu, a také do systému uložit soubory properties.
9
Informační systém pro podporu lokalizací do národního prostředí Základní tok událostí: 1) Uživatel spustí volbu založit projekt 2) Systém zobrazí formulář pro vložení projektu 3) Uživatel zadá údaje název projektu, verze projektu, preferované jazykové lokalizace a cestu k zip archivu, nebo k samostatnému properties souboru. 4) Systém zaznamená údaje do databáze Výstupní podmínky: Data projektu jsou uložena v databázi a stav projektu je nastaven na založen
Obrázek 5 - Activity Diagram: Založit projekt
2.3.4 UC Přehled projektů Aktéři: administrátor, zadavatel, překladatel Vstupní podmínky : uživatel je přihlášen s adekvátní rolí Popis: Případ užití přehled projektů zobrazí uživateli všechny projekty, které byly doposud založeny. Alternativní tok umožňuje upravit název projektu a smazat celý projekt i s jeho verzemi.
10
Informační systém pro podporu lokalizací do národního prostředí Základní tok událostí: 1) Uživatel spustí volbu Zobrazit přehled projektů 2) Systém zobrazí přehled všech projektů s možností přejít na jednotlivé verze projektu. Podle oprávnění bude zpřístupněna možnost smazat a upravit projekt
Obrázek 6 - GUI Přehled projektů
Alternativní toky událostí: Upravit projekt 1) 2) 3) 4)
Uživatel stiskne tlačítko upravit u vybraného projektu Systém zobrazí formulář pro úpravu údajů Uživatel změní data Systém zkontroluje, jestli jsou data validní. a) ANO – Systém uloží změny do databáze b) NE – Systém upozorní uživatele na chybu a umožní mu znovu se pokusit o úpravu dat
11
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 7 - Activity Diagram: Upravit projekt
Smazat projekt 1) Uživatel s rolí administrátor nebo zadavatel stiskne tlačítko smazat u vybraného projektu 2) Systém zobrazí potvrzující dialog 3) Uživatel potvrdí smazání projektu tlačítkem OK a) ANO – Systém smaže z databáze projekt i se všemi jeho verzemi b) NE – Systém se vrátí do původního stavu
Obrázek 8 - Activity Diagram: Smazat projekt
12
Informační systém pro podporu lokalizací do národního prostředí
2.3.5 UC Přehled verzí projektu Aktéři: administrátor, zadavatel, překladatel Vstupní podmínky: uživatel je přihlášen s adekvátní rolí Popis: Případ užití přehled verzí projektu zobrazí uživateli všechny verze projektu, které byly doposud založeny. Alternativní toky umožňují přidat verzi projektu, exportovat danou verzi projektu, upravit číslo verze projektu a smazat verzi projektu i se všemi lokalizacemi. Základní tok událostí: 1) Uživatel spustí volbu Zobrazit přehled verzí projektu 2) Systém zobrazí přehled všech verzí projektu s možností přejít na detail verze projektu a exportovat verzi projektu. Podle oprávnění bude zpřístupněna možnost upravit a smazat verzi projektu.
Obrázek 9 - GUI Přehled verzí projektu
Alternativní toky událostí: Přidat verzi projektu 1) Uživatel s rolí administrátor nebo zadavatel stiskne tlačítko přidat verzi 2) Systém zobrazí formulář pro zadání verze projektu 3) Uživatel zadá údaje číslo verze projektu, preferované jazykové lokalizace a cestu k zip archivu, nebo properties souboru. Nastaví volbu pro standardní nahrání souborů, nebo jejich současnou kontrolu proti posledně vložené verzi projektu, z které si systém převezme již přeložené labely. 4) Systém zaznamená údaje do databáze 5) Uživatel zvolil volbu nahrát a převzít a) ANO – Systém uloží data do databáze spolu s převzatým překladem ze starší verze b) NE – Systém uloží data nové verze do databáze bez převzetí překladu ze starší verze
13
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 10 - Activity Diagram: Přidat verzi projektu
Exportovat verzi projektu 1) Uživatel s rolí administrátor nebo zadavatel stiskne tlačítko exportovat u vybrané verze 2) Systém vyexportuje všechny lokalizační soubory vybrané verze projektu se zachováním původní adresářové struktury nahraného zip souboru. Takto vzniklý soubor vystaví na serveru 3) Systém zpřístupní vytvořený archiv zip změnou ovládacího prvku z EXPORT na DOWNLOAD 4) Uživatel volbou DOWNLOAD stáhne požadovaný archiv na svůj počítač
Obrázek 11 - Activity Diagram: Exportovat verzi projektu
14
Informační systém pro podporu lokalizací do národního prostředí Upravit verzi projektu 1) Uživatel s rolí administrátor nebo zadavatel stiskne tlačítko upravit u vybrané verze 2) Systém zobrazí formulář pro úpravu údajů 3) Uživatel změní data 4) Systém zkontroluje, jestli jsou data validní. a) ANO – Systém uloží změny do databáze b) NE – Systém upozorní uživatele na chybu a umožní mu znovu se pokusit o úpravu dat
Obrázek 12 - Activity Diagram: Upravit verzi projektu
Smazat verzi projektu 1) Uživatel s rolí administrátor nebo zadavatel stiskne tlačítko smazat u vybrané verze projektu 2) Systém zobrazí potvrzující dialog 3) Uživatel potvrdí smazání projektu tlačítkem OK a) ANO – Systém smaže z databáze verzi projektu i se všemi jejími lokalizacemi b) NE – Systém se vrátí do původního stavu
15
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 13 - Activity Diagram: Smazat verzi projektu
2.3.6 UC Detail verze Aktéři: administrátor, zadavatel, překladatel Vstupní podmínky : uživatel je přihlášen s adekvátní rolí Popis : Případ užití detail verze projektu zobrazí uživateli všechny lokalizace dané verze projektu, které byly doposud založeny. Alternativní toky umožňují zobrazit přehled překladatelů lokalizace, přeložit lokalizaci, přidat lokalizaci a smazat lokalizaci. Základní tok událostí: 1) Uživatel vybere verzi, jejíž detail chce zobrazit 2) Systém zobrazí detail vybrané verze projektu. Ten obsahuje seznam všech doposud založených lokalizací obsahující informace (ISO kód, český název, anglický název) a dále ovládací prvky překladatelé, přeložit a smazat).
Obrázek 14 - GUI Přehled detail verze
Alternativní toky událostí: Přehled překladatelů lokalizace 1) Uživatel u vybrané lokalizace stiskne volbu Překladatelé 2) Systém zobrazí všechny překladatele. kteří se podíleli na překladu lokalizace Přeložit lokalizaci 1) 2) 3) 4)
Uživatel u vybrané lokalizace stiskne volbu přeložit Systém zobrazí prostředí pro překlad Uživatel spustí volbu Uložit Systém uloží změny do databáze
16
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 15 - GUI Překladu lokalizace
Přidat lokalizaci 1) 2) 3) 4)
Uživatel stiskne tlačítko přidat lokalizaci Systém zobrazí formulář pro přidání lokalizace Uživatel vybere jazyk lokalizace a pokud je to nutné tak také zemi Systém zaznamená údaje do databáze a na jejich základě připraví databázi na překlad právě vzniklé lokalizace
Obrázek 16 - Activity Diagram: Přidat lokalizaci
Smazat lokalizaci 1) Uživatel s rolí administrátor nebo zadavatel stiskne tlačítko smazat u vybrané lokalizace 2) Systém zobrazí potvrzující dialog 17
Informační systém pro podporu lokalizací do národního prostředí 3) Uživatel potvrdí smazání lokalizace tlačítkem OK a) ANO – Systém smaže z databáze lokalizaci verze projektu b) NE – Systém se vrátí do původního stavu
Obrázek 17 - Activity Diagram: Smazat lokalizaci
Obrázek 18 - Use Case diagram: ISPPL 3
2.3.7 UC Správa uživatelů Aktéři: administrátor Vstupní podmínky : uživatel je přihlášen s adekvátní rolí
18
Informační systém pro podporu lokalizací do národního prostředí Popis: Případ užití správa osob dává administrátorovi přehled o všech uživatelích systému. Alternativní tok umožňuje administrátorovi přidat uživatele, upravit data uživatele, změnit aktivaci uživatele a smazat uživatele. Základní tok událostí: 1) Uživatel spustí volbu Správa osob 2) Systém zobrazí přehled všech uživatelů obsahující informace (jméno, příjmení,uživatelské jméno, heslo, role, stav aktivace,telefon,email) s možností přejít na detail uživatele, upravit data uživatele, změnit aktivaci nebo smazat uživatele 3) Uživatel stiskne tlačítko detail uživatele 4) Systém zobrazí detail uživatele obsahující informace viz UC 9
Obrázek 19 - GUI Správa uživatelů
Alternativní toky událostí: Přidat uživatele 1) Uživatel stiskne tlačítko přidat uživatele 2) Systém zobrazí formulář pro přidání uživatele 3) Uživatel vloží data jméno, příjmení, email, telefon uživatelské jméno, 2x heslo a vybere roli 4) Systém zkontroluje, jestli se shoduje dvakrát zadané heslo a) ANO – Systém uloží data do databáze b) NE – Systém se vrátí do původního stavu Výstupní podmínky: Nový účet je uložen v databázi
19
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 20 - Activity Diagram: Přidat uživatele
Upravit uživatele 1) 2) 3) 4)
Uživatel stiskne tlačítko upravit u vybraného uživatele Systém zobrazí formulář pro úpravu údajů Uživatel změní data Systém zkontroluje, jestli jsou data validní. a) ANO – Systém uloží změny do databáze b) NE – Systém upozorní uživatele na chybu a umožní mu znovu se pokusit o úpravu dat
20
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 21 - Activity Diagram: Upravit uživatele
Změnit aktivaci uživatele 1) Uživatel s rolí administrátor zvolí volbu změnit aktivaci u vybraného uživatele 2) Systém změní aktivaci Smazat uživatele 1) Uživatel s rolí administrátor zvolí volbu smazat u vybraného uživatele 2) Systém zobrazí potvrzující dialog 3) Uživatel potvrdí smazání uživatele tlačítkem OK a) ANO – Systém smaže z databáze uživatele i se všemi jeho rolemi b) NE – Systém se vrátí do původního stavu
Obrázek 22 - Activity Diagram: Smazat uživatele
21
Informační systém pro podporu lokalizací do národního prostředí
2.3.8 UC Přehled překladatelů Aktéři: administrátor, zadavatel, překladatel Vstupní podmínky : uživatel je přihlášen s adekvátní rolí
Popis: Případ užití přehled překladatelů zobrazí uživateli doposud registrované překladatele. Konkrétnější informace o překladateli jsou uvedeny v detailu. Základní tok událostí: 1) Uživatel spustí volbu přehled překladatelů 2) Systém zobrazí přehled všech překladatelů obsahující informace (jméno,příjmení,email,telefon) s možností přejít na detail překladatele 3) Uživatel stiskne tlačítko detail u vybraného překladatele 4) Systém zobrazí detail překladatele obsahující navíc informaci, jaké jazyky ovládá
2.3.9 UC Můj účet Aktéři: administrátor, zadavatel, překladatel Vstupní podmínky: uživatel je přihlášen s adekvátní rolí Popis: Případ užití můj účet zobrazí uživateli informace o jeho účtu v závislosti na roli. Alternativní tok umožňuje některá data upravit, například si nastavit nové heslo pro přístup do systému Základní tok událostí: 1) Uživatel spustí volbu Můj účet 2) Systém zobrazí základní informace účtu obsahující (jméno, příjmení, username, email, telefon) a dále informace pro jednotlivé role a) Administrátor: žádné další informace b) Zadavatel: seznam založených projektů c) Překladatel: seznam jazyků, které ovládá Alternativní toky událostí: Upravit účet 1) 2) 3) 4)
Uživatel stiskne tlačítko upravit Systém zobrazí formulář pro úpravu údajů Uživatel změní data Systém zkontroluje, jestli jsou data validní. 22
Informační systém pro podporu lokalizací do národního prostředí a) ANO – Systém uloží změny do databáze b) NE – Systém upozorní uživatele na chybu a umožní mu znovu se pokusit o úpravu dat c) Změnit heslo 1) 2) 3) 4)
Uživatel stiskne tlačítko změnit heslo Systém zobrazí formulář pro změnu hesla Uživatel zadá současné heslo a dvakrát zadá nové heslo Systém zkontroluje, jestli je heslo správné a zda se shoduje dvakrát zadané nové heslo a) ANO – Systém změní heslo účtu v databáze b) NE – Systém se vrátí do původního stavu
2.5 Návrh databáze Veškerá data, s kterými bude pracovat IS pro podporu lokalizací do národních prostředí, budou uložena v databázi, jejíž ER diagram je zobrazen níže. Takto strukturovaná databáze by měla vyhovět všem požadavkům kladeným na systém. Při dalším vývoji se pravděpodobně bude ještě upravovat podle toho, jaké další nároky na ní budou kladeny. Stávající databáze splňuje požadavky na systém, které vycházející z případu užití. Pro snazší orientaci v popisu tabulek a diagramu zde uvedu konvenci, kterou jsem zavedl při pojmenování jednotlivých tabulek a jejich atributů. Pro názvy tabulek jsem zvolil označení pomocí malých písmen. Pokud se název tabulky skládá z více slov, začíná každé následující slovo velkým písmenem. Podobnou metodu jsem zvolil pro názvy atributů. Zde se pouze liší název u cizích klíčů, kde se kompletní název skládá z názvu tabulky, z které pochází cizí klíč a z názvu primárního klíče připojeného pomocí podtržítka. Takto se složí název pro atribut FK (Foreign Key). U atributu PK (primary key) začíná název id a dokončuje ho název tabulky.
2.5.1 Tabulky Návrh databáze je vizuálně zobrazen pomocí ER diagramu níže v rámci této kapitoly. Pro snazší orientaci v diagramu zde uvádím i přepis jednotlivých databázových tabulek. K nim jsem přidal krátký popis, který by měl ozřejmit jejich opodstatnění v navrhovaném systému a vytvořit tak kompletní obraz navržené databáze.
2.5.1.1 Project Tabulka projekt obsahuje základní informace o aplikacích, jejichž lokalizační soubory budou do ISPPL nahrávány při založení projektu. Je to údaj o zakladateli projektu, který je uložen v tabulce jako cizí klíč person_idperson odkazující na tabulku person. Dále potom jméno projektu, datum založení projektu a stav překladu. 23
Informační systém pro podporu lokalizací do národního prostředí Klíč PK FK
Název sloupce idproject person_idperson projectName incomeDate status
Datový typ INTEGER INTEGER VARCHAR(45) DATE VARCHAR(10)
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL NULL NULL
2.5.1.2 ProjectVersion U zakládaných projektů se počítá s postupným vývojem a tím proto aplikace ISPPL podporuje různé verze jednoho projektu. Návaznost verze na projekt je dána cizím klíčem project_idproject a u každé verze se ukládá její číselná hodnota a stav jejího překladu. Klíč PK FK
Název sloupce idprojectVersion project_idproject projectVersion status
Datový typ INTEGER INTEGER DOUBLE VARCHAR(10)
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL NULL
2.5.1.3 SourceFile Tabulka sourceFile obsahuje údaje o properties souborech, které jsou bez jazykového nebo zemi určujícího ISO kódu. Údaje o těchto souborech jsou ukládány při zakládání nového projektu, nebo verze projektu. Ke každému takovému souboru se zaznamenává jeho vazba k dané verzi projektu cizím klíčem projectVersion_idprojectVersion, samotné jméno properties souborů a relativní cesta, v které je soubor uložen v rámci archivu, který byl nahrán do ISPPL. Ta se ukládá pro zajištění schopnosti systému znovu vytvořit archiv obsahující jak data uložená při nahrání na server, tak nově přidaná data vzniklá překládáním projektu do nových lokalizací.
Klíč PK FK
Název sloupce idsourceFile projectVersion_idprojectVersion nameOfFile path
Datový typ INTEGER INTEGER VARCHAR(255) VARCHAR(1000)
24
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL NOT NULL
Informační systém pro podporu lokalizací do národního prostředí
2.5.1.4 Label Tabulka label obsahuje textové řetězce každého souboru, jehož specifikace je uložena v tabulce sourceFile. Pro každý takovýto řetězec je jeho vazba na tabulku sourceFile dána cizím klíčem sourceFile_idsourcefile. Samotný řetězec je obsažen v atributu label a také se pro lepší orientaci zaznamenává i řádek, ve kterém se daný řetězec v souboru nachází. Klíč PK FK
Název sloupce idlabel sourceFile_idsourceFile label row_2
Datový typ INTEGER INTEGER LONGTEXT INTEGER
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NULL NOT NULL
2.5.1.5 LocalizationFile Tabulka LocalizationFile je podobná tabulce sourceFile. Oproti této tabulce udržuje informace o properties souborech, které mají v názvu uveden alespoň ISO kód pro jazyk. Každý properties soubor v localizationFile tabulce náleží k jednomu properties souboru v sourceFile tabulce. Tato závislost je dána cizím klíčem sourceFile_idsourcefile. Pro jasné určení pro jakou lokalizaci je soubor určen slouží cizí klíče language_idlanguage a country_idcountry. Dále se ukládá pouze název souboru.
Klíč PK FK FK FK
Název sloupce idlocalizationFile language_idlanguage sourceFile_idsourceFile country_idcountry nameOfFile
Datový typ INTEGER INTEGER INTEGER INTEGER VARCHAR(255)
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL NULL NOT NULL
2.5.1.6 LocalizationLabel Tabulka localizationLabel obsahuje textové řetězce z properties souborů, které jsou uloženy v tabulce localizationFile. Každý takovýto soubor zde má uloženy své textové řetězce a tato závislost je dána cizím klíčem localizationFile_idlocalizationFile. Samotné textové řetězce jsou uloženy v atributu localizationLabel a pro každý řetězec se ukládá i jeho řádková pozice v properties souboru.
Klíč PK FK
Název sloupce idlocalizationLabel localizationFile_idlocalizationFile
Datový typ INTEGER INTEGER
25
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL
Informační systém pro podporu lokalizací do národního prostředí localizatonLabel row_2
LONGTEXT INTEGER
NULL NOT NULL
2.5.1.7 Country Tabulka Country obsahuje data z normy ISO 3166-1, sloužící k dekódování, pro jakou zemi je properties soubor určen. Klíč PK
Název sloupce idcountry countryNameEN countryNameCS code
Datový typ INTEGER VARCHAR(45) VARCHAR(45) INTEGER
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL NOT NULL
2.5.1.8 Language Tabulka Language obsahuje data z normy ISO 639-2, sloužící pro dekódování, pro jakou jazykovou lokalizaci je properties soubor určen. Klíč PK
Název sloupce idlanguage languageNameCS languageNameEN languageOriginalName code
Datový typ INTEGER VARCHAR(255) VARCHAR(255) VARCHAR(255) VARCHAR(2)
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL NOT NULL NOT NULL
2.5.1.9 PreferedTranslation Tabulka preferedTranslation je vazební tabulkou mezi tabulkami project a language. Díky ní má systém přehled o jaké jazykové lokalizace má zadavatel projektu zájem. Proto tabulka obsahuje cizí klíče language_idlanguage a project_idproject. Klíč PK FK FK
Název sloupce idpreferedTranslation language_idlanguage project_idproject
Datový typ INTEGER INTEGER INTEGER
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL
2.5.1.10 TranslatorForLanguage Tabulka TranslatorForLanguage je vazební tabulkou mezi tabulkami person a language. To je dáno cizími klíči language_idlanguage a person_idperson . Tím má systém přehled o jazykových znalostech jednotlivých překladatelů. Atribut native značí při hodnotě true, že pro překladatele je tento jazyk rodný. 26
Informační systém pro podporu lokalizací do národního prostředí
Klíč PK FK FK
Název sloupce idtranslatorForLanguage language_idlanguage person_idperson native
Datový typ INTEGER INTEGER INTEGER BOOL
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL NOT NULL
2.5.1.11 WhoTranslateWhat Tabulka whoTranslateWhat je vazební tabulkou mezi tabulkami localizationFile a person. Tuto vazbu vytvářejí cizí klíče localizationFile_idlocalizationFile a person_idperson. Díky této tabulce je možné zpětně zjistit, kdo se podílel na překladu určité lokalizace. Dále tabulka obsahuje atributy translationDate a translationTime, které slouží k zaznamenání data a času překladu. Díky tomu je možné seřadit výpis překladatelů dané lokalizace, dle těchto hodnot. Klíč PK FK FK
Název sloupce idwhoTranslateWhat localizationFile_idlocalizationFile person_idperson translationDate translationTime
Datový typ INTEGER INTEGER INTEGER DATE TIME
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL NULL NULL
2.5.1.12 Person Tabulka person obsahuje základní informace o uživatelích systému. Klíč PK
Název sloupce idperson name surname email telephone
Datový typ INTEGER VARCHAR(45) VARCHAR(45) VARCHAR(255) INTEGER
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL NULL NULL
2.5.1.13 Account Tabulka account obsahuje doplňující informace k uživateli systému. Tyto tabulky jsou odděleny, protože fyzická osoba může mít více uživatelských účtů. Tato závislost je dána cizím klíčem person_idperson. Dále obsahuje atributy uživatelské jméno, heslo a o tom zda je účet aktivován administrátorem rozhoduje atribut activate. Každý účet má jednu roli v systému, ta je dána cizím klíčem role_idrole.
27
Informační systém pro podporu lokalizací do národního prostředí Klíč PK FK FK
Název sloupce idaccount role_idrole person_idperson username password_2 active
Datový typ INTEGER INTEGER INTEGER VARCHAR(45) VARCHAR(45) BOOL
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
2.5.1.14 Role Tabulka role obsahuje uživatelské role, které jsou dostupné pro ISPPL. Uživatelské role nabývají tří možných hodnot (costumer, translator, administrator).
Klíč PK
Název sloupce idrole role
Datový typ INTEGER VARCHAR(45)
28
Vlastnosti NOT NULL, AUTO_INCREMENT NOT NULL
Informační systém pro podporu lokalizací do národního prostředí
2.5.2 ER diagram
Obrázek 23 - ER diagram databáze ISPPL
29
Informační systém pro podporu lokalizací do národního prostředí
3. Implementace ISPPL je vyvíjen jako webová aplikace využívající třívrstvé architektury, která je znázorněna na obrázku. Prezentační vrstva je zde zastoupena webovým prohlížečem, jehož úkolem je zobrazit uživatelské rozhraní. Odtud uživatel při interakci s ovládacími prvky přistupuje k aplikační vrstvě. Přenos dat mezi prezentační a aplikační vrstvou je založen na protokolu http. Aplikační vrstvu zde zastupuje aplikační server, jehož úkolem je přijmout zaslané požadavky z prezentační vrstvy. Tyto požadavky se v této vrstvě zpracují, přičemž je často využíván přístup do datové vrstvy. Po provedení všech operací nad přijatým požadavkem je vytvořena odpověď a ta je odeslána na prezentační vrstvu. Datová vrstva slouží k uložení dat nutných pro chod aplikace. Jelikož pro daný typ aplikace nestačí ukládat data do souboru, využívá se zde pro tyto účely databázový server MySQL. K tomu se přistupuje z aplikační vrstvy, která manipuluje s databázi v datové vrstvě pomocí SQL příkazů. Nalezení databáze je zajištěno pomocí JNDI, jedná se o jmennou službu v Javě. Potřebné údaje jsou nastaveny v konfiguraci aplikačního serveru.
Obrázek 24 - Třívrstvá architektura
30
Informační systém pro podporu lokalizací do národního prostředí Pro vytvoření ISPPL jsem použil technologie vhodné pro tvorbu webových aplikací. Výběr jsem omezil na open-source technologie. Nejen díky jejich snadné dostupnosti, ale také velké základně uživatelů a zdrojů. Ať už se jedná přímo o množství literatury nebo tutoriálů dostupných na Internetu, tak také pro množství diskusních fór, kde se v případě problémů může programátor rychleji získat informace pro odstranění chyb ať vlastních, tak technologie pod kterou aplikaci vyvíjí. Jelikož jsem v minulosti měl možnost si vyzkoušet tvorbu webových aplikací v PHP a Javě, soustředil jsem při výběru platformy na tyto technologie. PHP má výhodu v tom, že je jednodušší na naučení a vývoj stránek jde tak poměrně rychle. Jeho nevýhodou je ta skutečnost, že programování v něm svádí k míchání prezentační a aplikační logiky. Nejen díky tomu, ale také proto, že aplikace ISPPL má pracovat s Java resource bundles, jsem se rozhodl pro Java platformu. Díky této volbě se výběr dalších technologií zjednodušil. Samotná aplikace ISPPL je tedy programovaná v JSP (Java Server Pages), která je úzce spjata s Java Servlets. Navíc byl použit Framework Struts. Ten ulehčuje dodržení návrhového vzoru Model-View-Controller, a také usnadňuje vytváření samotné aplikace pomocí svých komponent. Jako úložiště dat byl zvolen osvědčený databázový server MySQL. Pro nasazení aplikace jsem zvolil aplikační server Glassfish.
3.1 Použité nástroje Při vývoji byly použity následující nástroje, které zde budou krátce popsány.
3.1.1 IDE NetBeans 6.8 Vývojové prostředí NetBeans IDE představuje nástroj, pomocí něhož je možné psát, překládat, ladit a distribuovat aplikace. NetBeans IDE je napsáno v jazyce Java, a také je primárně určeno pro vývoj aplikací v tomto jazyce. Mimo Javy je vhodné také pro vývoj aplikací v jiných jazycích, jako například C/C++, PHP, JavaScript, Python. Je spustitelné na operačních systémech Windows, Linux, Mac OS X a Solaris. Jeho použitelnost lze rozšířit pomocí mnoha Pluginů, které jsou volně dostupné na webu. Instalační balíček obsahuje téměř vše potřebné pro vývoj webové aplikace. Chybí pouze databázový server. Samotné IDE poskytuje podporu pro webové frameworky JavaServer Faces, Spring Struts a hibernace. V mnou zvoleném instalačním balíčku byl přítomen také aplikační server Glassfish. NetBeans IDE obsahuje také užitečné funkce, které usnadňují a urychlují vývoj aplikace, například doplňování kódu pomocí Ctrl+Space. Dále lze zmínit opravu chyb v kódu, kdy se zvýrazňuje chybná syntaxe a při přejetí kurzorem na zvýrazněnou část kódu se zobrazí chybové hlášení. Další funkcí IDE, kterou jsem použil bylo vkládání kódu, kdy některé konstrukce se dají automaticky vytvořit, jako například vytvoření konstruktoru třídy nebo metod typu getter a setter. Také přítomnost SQL Editoru byla velice přínosná. 31
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 25 - IDE NetBeans 6.8
3.1.2 DB Designer Tento nástroj slouží pro návrh databáze pomocí grafického uživatelského rozhraní. Prostřednictvím něho se dá navrhnout schéma databáze s tabulkami a při vytvoření vztahů mezi nimi se automaticky tvoří cizí klíče. Po navržení databáze v grafickém prostředí je možné automaticky vygenerovat SQL skript. Tento skript po spuštění z příkazového řádku klienta vytvoří navrženou databázi. Pokročilejší verze Work Bench dokonce přidává další funkčnost. Tou je administrace databázového stroje a zahrnutí SQL klienta, pomocí něhož jsem databázi upravoval a vkládal do ní testovací data. Velkou pomocí byla možnost před zahrnutím jednotlivých příkazů jazyka SQL pro vkládání, úpravu, mazaní a vyhledávání (insert, update,delete,select) do samotné aplikace tyto příkazy otestovat. Také samotné vytváření příkazů bylo ulehčeno tím, že bylo možné při dvojkliku na tabulku, nebo samotný atribut v menu dané databáze rovnou přidat jejich celý název do příkazu. Tím jsem se vyvaroval chyb, ke kterým dochází nesprávným opsáním jednotlivých názvů tabulek nebo atributů do SQL příkazů.
32
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 26 - DBDesigner 4
3.2 Technologie Při vývoji byly použity následující technologie, které se v podkapitolách pokusím popsat.
3.2.1 HTML Jedná se o jazyk, kterým se vytváří struktura stránek. Ty jsou potom zobrazované pomocí webových prohlížečů. Text je doplněn tagy, které text obohacují o strukturu. Tyto tagy interpretuje prohlížeč. Jazyk HTML obsahuje formátovací značky, ale od jejich používání se ustupuje a samotné formátování je dosaženo pomocí kaskádních stylů.
3.2.2 CSS Cascading Style Sheets, neboli kaskádové styly jsou jazykem pro formátování stránek napsaných v jazycích HTML, XHTML nebo XML. Jeho hlavním cílem je oddělit formátování vzhledu dokumentu od jeho struktury. Tato snaha má své opodstatnění například v možnosti vytvořit několik stylů pro tytéž stránky a tím dosáhnout podpory správného zobrazení stránek nejen na obrazovce monitoru, ale 33
Informační systém pro podporu lokalizací do národního prostředí také na přenosných zařízeních nebo pro účely tisku. Oddělení je také výhodné tím, že formátování se projeví na všech stránkách s nastaveným stylem. Jako nedostatek této technologie se dá uvést, že někdy dochází k nestejnému zobrazení v různých prohlížečích. Hlavně to platí pro Interner Explorer, který má CSS špatně naimplementováno, což způsobuje při vývoji problémy. S novými verzemi prohlížečů by tento problém měl postupně vymizet.
3.2.3 Java Java je jedním z nejoblíbenějších objektově orientovaných jazyků. Programují se v ní aplikace pro přenosná zařízení, přes desktopové aplikace až po rozsáhlé distribuované aplikace. Velkou měrou se o to zasloužila dobrá syntaxe jazyka a to, že je to jazyk multiplatformní. Tato vlastnost je dána tím, že se kód aplikace nejdříve přeloží do takzvaného bajtkódu a ten je posléze interpretován pomocí JVM (Java Virtual Machine). Stačí tedy, aby pro hardware a systém, na kterém má běžet Java aplikace, bylo k dispozici kompatibilní JVM a aplikace naprogramovaná v Javě bude v tomto prostředí spustitelná.
3.2.4 Java Servlet Servlet je Java program spouštěný na webovém serveru a jeho úkolem je přijmout http požadavek a vytvořit na něj odpověď. Odpověď je většinou ve formě HTML dokumentu. Následující kód je ukázkou velmi jednoduchého servletu. Jeho výsledkem je pouze výpis textu Pokusný Servlet s názvem serveru, popřípadě IP adresou, na kterém se servlet nachází. import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorld extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { out.println(""); out.println(""); out.println("
Pokusný Servlet "); out.println(""); out.println(""); 34
Informační systém pro podporu lokalizací do národního prostředí out.println("
Pokusný Servlet na serveru: " + request.getServerName() + "
"); out.println(""); out.println(""); } finally { out.close(); } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; } }
3.2.5 JSP Příklad z podkapitoly Java Servlet je zde zopakován za použití JavaServlet Pages. Už na první pohled je zjevné, že kód je přehlednější a samotné stránky se vytvářejí pohodlněji, než při přímém použití servletů. Daní za toto pohodlí je však nutnost dalšího překladu. Nejdříve se přeloží jsp stránka na servlet a potom již na spustitelný bajtkód. <%@page contentType="text/html" pageEncoding="UTF-8"%> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
JSP Page Pokusný Servlet na serveru:<% out.println(request.getServerName());%>
35
Informační systém pro podporu lokalizací do národního prostředí
3.2.6 JSTL JavaServer pages Standard Tag Librery (JSTL) je součástí platformy Java EE Web development. Rozšiřuje JSP o knihovnu značek, zajišťující běžně používané funkce, které by jinak musely být v rámci JSP řešeny pomocí Java kódu. Tyto značky umožňují zpracování XML, využití podmínek pro řízení toku dokumentu, také obsahuje cykly a podporuje internacionalizaci. JSTL nahrazuje přímé používání Java kódu v rámci jsp stránky a tím přispívá k větší přehlednosti.
3.2.7 Framework Struts Framework Struts slouží pro vývoj webových aplikací na platformě Java. Usnadňuje dodržení návrhového vzoru Model-View-Controller. Pro programátory nabízí mnoho komponent pro ulehčení vývoje webové aplikace. Předně je ošetřena práce s formuláři a jejich následná validace. Má práce se zabývá tématikou jazykových lokalizací, zde je podpora pro internacionalizaci zahrnuta. Samotný framework Struts je vyvíjen pod Apache Software Foundation, který stojí za dalšími úspěšnými projekty, jako například webovým kontejnerem Tomcat a webovým serverem Apache.
3.2.7.1 Internacionalizace Framework Struts podporuje internacionalizaci. Podle nastaveného jazyka ve webovém prohlížeči najde aplikace založená na tomto frameworku správný lokalizační soubor a načte z něj hodnoty, které zamění za klíče, jenž jsou uvedeny v kódu stránky. Cesta k lokalizačním souborům je nastavena v konfiguračním souboru struts-config.xml. <message-resources parameter="isppl/resources/ApplicationResources" null="false"/>
Tag message-resources nastavuje svým atributem parametr umístění lokalizačních souborů v adresářové struktuře projektu. ApplicationResources je základem pro názvy lokalizačních souborů. V tomto umístění jsou v mém případě tyto soubory. ApplicationResources.properties ApplicationResources_cs.properties
36
Informační systém pro podporu lokalizací do národního prostředí Ukázka ze souboru ApplicationResources_cs.properties app.name=ISPPL Informační systém pro podporu lokalizací #--------------------- skeleton.jsp --------------------menu.logged=Přihlášen menu.personAdministration=Správa uživatelů menu.createProject=Založit Projekt menu.projectAdministration=Přehled Projektů menu.translatorsOverview=Přehled překladatelů menu.myAccount=Můj účet #--------------------- projectAdministration.jsp --------------------project.title=PROJEKTY project.projectName=Název projektu project.projectDate=Datum založení project.status=Status project.projectVersion=Verze projektu project.projectVersions=VERZE project.delete=SMAZAT project.edit=EDITOVAT #--------------------- projectVersionAdministration.jsp --------------------projectVersion.title=VERZE POJEKTŮ projectVersion.projectName=Projekt: projectVersion.version=Verze projektu projectVersion.status=Status projectVersion.detail=DETAIL projectVersion.export=EXPORT projectVersion.edit=EDITOVAT projectVersion.delete=SMAZAT #--------------------- projectVersionDetail.jsp --------------------projectVersionDetail.title=DETAIL VERZE PROJEKTU projectVersionDetail.projectName=PROJEKT: projectVersionDetail.version=VERZE PROJEKTU projectVersionDetail.isoCode=ISO kód projectVersionDetail.languageNameCS=Český název projectVersionDetail.languageNameEN=Anglický název projectVersionDetail.TRANSLATORS=PŘEKLADATELÉ LOKALIZACE projectVersionDetail.linkTRANSLATORS=PŘEKLADATELÉ projectVersionDetail.TRANSLATE=PŘELOŽIT LOKALIZACI projectVersionDetail.linkTRANSLATE=PŘELOŽIT projectVersionDetail.delete=SMAZAT projectVersionDetail.addLocalizationButton=Vytvořit lokalizaci
37
Informační systém pro podporu lokalizací do národního prostředí Pro využití lokalizačních souborů v JSP stránkách stačí deklarovat správnou knihovnu značek: <%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> Tag
s atributem key je ve výstupu, který je zobrazen uživateli v prohlížeči nahrazen hodnotou: ISPPL Informační systém pro podporu lokalizací
3.2.8 Glassfish Glassfish je aplikačních server, na který je možné nahrát aplikace založené na Java platformě. Z dalších podobných serverů můžeme jmenovat například JBoss.
3.2.9 MySQL MySQL je relační databázový systém. Je hojně využívám díky důrazu na vysokou rychlost a proto, že je k dispozici pod bezplatnou licencí GPL. Pro komerční užití je již zpoplatněn. Byl vytvořen firmou MySQL AB, nyní již je ale vlastněn společností Sun Microsystems. Bývá velmi často nasazován v prostředí webových aplikací spolu s operačním systémem Linux s webovým serverem Apache a skriptovacím jazykem PHP. Je součástí mnoha rozsáhlejších projektů, například Facebooku. Jeho nevýhodou je teprve postupně dodávaná funkcionalita, kdy v minulých verzích chyběla podpora pro pohledy, triggery a uložené procedury. Jelikož tyto pokročilé funkce ve své aplikaci ISPPL nevyužívám, nebyl pro mě tento nedostatek zásadní.
38
Informační systém pro podporu lokalizací do národního prostředí
4 Testování V průběhu programování ISPPL jsem po dokončení jednotlivých částí systému testoval jejich funkčnost. Nalezené chyby jsem ihned odstraňoval. Jakmile to dosažený stupeň vývoje ISPPL umožnil, zapojil jsem do práce na vývoji systému testera V této fázi, která se opakovala s přibývající funkčností systému, se řešily chyby, které se vyskytly v průběhu testování. Nejednalo se však pouze o nalezení chyb, ale také o objevení funkčních nedostatků, které z předběžné analýzy nebyly zřejmé. Většinu připomínek testera jsem v dalším vývoji zohlednil. Provedl jsem testy použitelnosti prostředí. Toto testování přineslo do vývoje systému důležité poznatky, bez kterých by systém neobsahoval všechny doposud zahrnuté funkce a jeho používání by nebylo natolik intuitivní. Jeden z nalezených funkčních nedostatků se objevil při překladu lokalizace. V rámci zobrazení se uživatel snažil do pole pro překlad překládat kromě hodnoty labelu také klíč. Tato chyba byla odstraněna zpřehledněním GUI pro překlad lokalizace. Další chybou bylo špatné zobrazování znaků jazykových sad, toto bylo vyřešeno použitím filtru a nastavením konfiguračního souboru web.xml frameworku Struts. Věřím, že testování bylo dostatečné na to, aby se uživatelé ISPPL nesetkali s neodhalenými chybami. Nebylo možné otestovat veškeré kombinace vstupů a stavů, do kterých se systém může dostat, ale jsem přesvědčen, že ty nejpodstatnější chyby jsem v průběhu vývoje odstranil.
39
Informační systém pro podporu lokalizací do národního prostředí
5 Závěr Cílem práce bylo vytvořit informační systém, který by usnadnil překlad aplikací naprogramovaných v jazyce Java do požadovaných jazykových lokalizací. Při analýze tohoto problému jsem přemýšlel, jakou platformu zvolit. Nalezl jsem aplikace podporující překlad v rámci desktopových aplikací, ale nenašel jsem existující webovou aplikaci. To bylo jednou z příčin, proč jsem se rozhodl právě pro implementaci informačního systému pomocí webové aplikace. Práci na tomto informačním systému jsem začal analýzou, přitom jsem konzultoval požadavky na funkčnost se zadavatelem. Požadavky jsem ihned začal přenášet do formy use case a activity diagramů. Po dokončení této fáze jsem z těchto diagramů začal sestavovat návrh databáze. Po skončení analytické fáze jsem začal pracovat na implementaci. Volba naprogramovat informační systém, jako webovou aplikaci mě donutila dostudovat si potřebné technologie. Poté jsem již začal programovat samotný informační systém. Již v průběhu programování bylo nutné upravit původní návrh vycházející z analytické fáze, vzhledem k novým požadavkům na funkčnost. Poslední fází bylo testování informačního systému. Toto testování probíhalo už v průběhu implementační fáze, kdy se testovala funkčnost již hotových částí systému. Během testování se odhalila řada chyb, které byly odstraněny, při testování se také přišlo na nové požadavky. Věřím, že ISPPL umožní vývojářům urychlit jazykovou lokalizaci svých softwarových produktů. Do budoucna by se dal informační systém rozšířit o možnost upozornění uživatelů na změny v systému pomocí automaticky zasílaných emailů. U samotného překladu by se dalo uvažovat o možnosti zobrazit překladatelům strojový překlad. Překladatelé by už jenom nabízený překlad upravovali.
40
Informační systém pro podporu lokalizací do národního prostředí
6 Seznam použité literatury Tištěná literatura [1] Doc. RNDr. Jaroslav Pokorný, CSc., Ing.Ivan Halaška : DATABÁZOVÉ SYSTÉMY Vydavatelství ČVUT, Praha 2001 [2] Molly E. Holzschlag : HTML a CSS jdi do toho Grada Publishning a.s., Praha 2006 [3] Barry Burd : Podrobný průvodce JSP Computer Press,a.s, 2003 [4] Chuck Cavaness: Programujeme Jakarta Struts Grada Publishing, a.s., Praha 2003 [5] Hana Kanisová, Miroslav Miller : UML srozumitelně Computer Press,a.s, 2004
Internetové odkazy [1] http://struts.apache.org, stav z 2.4.2010 Stránky projektu apache Struts [2] http://www.jakpsatweb.cz/, stav z 14.3.2010 Stránky zabývající se HTML,CSS [3] http://en.wikipedia.org/wiki/Java_resource_bundle, stav z 15.4.2010 Základní popis Java resource bundles [4] http://www.mysql.com, stav z 20.3.2010 Oficiální stránky databázového serveru MySQL, [5] http://www.linuxsoft.cz/ Stránky obsahující tutoriály k MySQL a Struts, stav z 2.3.2010 [6] http://www.fabforce.net/dbdesigner4/, stav z 8.2.2010 Stránky pro download DBdesigner 4, který jsem použil pro vytvoření datového relačního modelu [7] http://www.sparxsystems.com/, stav z 4.2.2010 Stránky pro download Enterprise Architekt, který jsem použil pro vytvoření diagramů
41
Informační systém pro podporu lokalizací do národního prostředí
Přílohy Příloha A - Instalační příručka A. 1 Instalace systému Pro nasazení ISPPL bude muset administrátor aplikace zajistit následující hardwarové a softwarové vybavení. Po hardwarové stránce je nutné zajistit server s připojením na Internet a přidělenou veřejnou IP adresou, aby byl uživatelům umožněn přístup v rámci Internetu. Samotná webová aplikace ISPPL je naprogramovaná pod Javou EE 6 (Enterprise Edition) a technologií pro webové aplikace JSP (Java Server Pages). Proto je nutné na server nainstalovat běhové prostředí podporující jazyk JAVA. Pro běh aplikace stačí JRE 6 (JAVA Runtime Enviroment). Je samozřejmě možné nainstalovat rovnou JDK 6 (JAVA Development Kit). Pro nasazení aplikace je nutné nainstalovat aplikační server. V návodu uvádím server Glassfish, ale je samozřejmě možné použít ostatní servery, jako například Tomcat. Pro uložení dat generovaných a používaných aplikací je nutné nainstalovat databázový server. V návodu je použit Mysql databázový server verze 5.41. Návod na rozběhnutí aplikace ISPPL je připravený pro platformu Microsoft Windows. Instalace platformy Java SE Development Kit Stáhněte instalaci ze stránek: http://java.sun.com/javase/downloads/index.jsp. Současná verze je JDK 6 update 20. Spusťte stažený instalační soubor a postupujte podle instalačního průvodce.
A. 2 Instalace Aplikačního serveru Stáhněte instalaci ze stránek https://glassfish.dev.java.net/public/downloadsindex.html#top. Doporučuji vybrat si verzi GlassFish Server Open Source Edition 3.0, která implementuje Java EE 6 Standard, jelikož byla aplikace ISPPL vyvíjena pod Java EE 6. Spusťte stažený instalační soubor a postupujte podle instalačního průvodce. V dialogovém okně Administration Setting doporučuji ponechat výchozí nastavení portů pro webovou administraci serveru a http port pro příchozí spojení. Další důležitou součástí konfigurace je nastavit cestu pro JAVA(TM) SDK.
42
Informační systém pro podporu lokalizací do národního prostředí Po dokončení instalace se objeví ve start->programy složka GlassFish v3. Spusstťe server ikonou s názvem Start Application Server. Zkontrolujte spuštění serveru zadáním localhost:4848 do adresního pole ve vašem internetovém prohlížeči. Měla by se objevit stránka s možností spravovat aplikační server. Pro ukončení činnosti serveru použijte ikonu Stop Application Server umístěnou na stejném místě. Stáhněte Connector/J ze stránek: http://dev.mysql.com/downloads/connector/j/ Rozbalte archiv do pomocného adresáře a zkopírujte soubor /mysql-connector-java-5.1.12 /mysql-connector-java-5.1.12-bin.jar do adresáře, do kterého jste nainstalovali aplikační server GlassFish v ukázkovém případě C:\Program Files\sges-v3\glassfish\lib
A. 3 Instalace Databázového serveru Mysql Stáhněte instalaci ze stránek http://dev.mysql.com/downloads/mysql/. Při vývoji byl použit právě tento databázový server. Po instalaci vás průvodce vyzve ke konfiguraci. Doporučuji nechat většinu voleb na předvolbách. To se týka hlavně čísla portu:3306. Jediná změna vůči přednastaveným hodnotám je volba charakter set, kde je vhodné zatrhnout volbu Best Support For Multilingualism, tedy nastavit charakter set na kódování UTF-8. V další volbě nastavte heslo pro přístup k serveru. Dále se počítá s heslem isppl. Zadejte toto nebo místo něho vlastní s nutností následné úpravy u některých nastavení. Pokud se neukončí konfigurace a služba MySQL nepůjde spustit, mohlo by se jednat o problém s češtinou v názvu adresářů v cestě kam MySQL ukládá data tabulek. Ten se dá řešit stažením non-install verze aplikace (mysql-noinstall-5.1.46win32.zip). Postup při této instalaci je popsán například zde http://www.adminxp.cz/programovani/index.php?aid=196.
A. 4 Vytvoření databáze isppl Pokud jste nenastavili Mysql jako službu, spusťte server z jeho umístění /bin/mysqld.exe. Poté spusťte příkazový řádek pro MySQL ikonou s názvem MySQL Command Line Client umístěnou v Start->Programy->MySQL->MySQL Server 5.1. Do právě spuštěného příkazového řádku zadejte heslo z konfigurace, tedy isppl. Po úspěšném připojení k serveru MySQL vytvořte databázi a zadejte do ní počáteční data spuštěním následujícího příkazu. Pokud se bude soubor nacházet na přiloženém DVD bude příkaz vypadat následovně. 43
Informační systém pro podporu lokalizací do národního prostředí
source d:/database/ispplCreate.sql Po ukončení příkazu je databáze vytvořena a naplněna daty.
A. 5 Nahrání aplikace ISPPL do aplikačního serveru Glassfish Před nahráním aplikace ISPPL na aplikační server je nutné provést konfiguraci v administračním prostředí. Pokud již aplikační server Glasfish neběží, spusťte jej dle návodu z instalace aplikačního serveru. Toto lze provést také následujícím příkazem., který spustí výchozí doménu domain1. Při instalaci byla vytvořena doména domain1. Pro nahrání aplikace je nutné mít spuštěnou alespoň jednu doménu. asadmin start-domain Přejděte do administračního prostředí zadáním následující adresy do webového prohlížeče. http://localhost/4848 Poté přejděte do menu Resources->JDBC->ConnectionPool. Klikněte na tlačítko New. Zadejte následující hodnoty. Name: ispplConnectionPool Resoutce Type: javax.sql.DataSource Database Vendor: MySql Stiskněte tlačítko Next. V Tabulce Additional Properties najděte v sloupci Name položky Url, User a Password a doplňte k nim následující hodnoty. Pokud se vám tabulka objeví prázdná nebo bez požadovaných řádek přidejte vlastnost tlačítkem Add Property. Dále ve stejné tabulce zadejte následující údaje Additional Properties Name Password Url User
Value isppl jdbc:mysql://:3306/isppl root
Description
Potvrďte nastavení tlačítkem Save. Přejděte pomocí záložky General na stránku Edit Conncetion Pool a stiskněte tlačítko Ping. Pokud je vše v pořádku, objeví se v levém horním rohu hlášení Ping Succeeded. Přejděte do menu Resources->JDBC->JDBC Resources. Klikněte na tlačítko New. Zadejte následující hodnoty. 44
Informační systém pro podporu lokalizací do národního prostředí
JNDI Name: jdbc/ispplConnectionPool Pool Name: ispplConnectionPool Nastavení potvrďte tlačítkem Save. Tímto jsme ukončili základní nastavení aplikačního serveru a můžeme opustit administrační prostředí. Pokud neběží databázový server, spusťte jej viz návod pro instalaci Mysql databázového serveru. Aplikace ISPPL je zabalená v archivu isppl.war. Tento archiv je dostupný na přiloženém CD. Nahrání aplikace na aplikační server se provádí tímto příkazem. asadmin deploy isppl.war. Další informace o aplikačním serveru glassfish je možno získat ze stránky http://docs.sun.com/app/docs/doc/821-0186/fvjgo?a=view .
A. 6 Spuštění aplikace ISPPL Po úspěšném nahrání aplikace ISPPL na server by měla být přístupná přes webový prohlížeč po zadání //localhost:8080/isppl do adresního pole. Pro přihlášení do aplikace využijte existující účet. Username: admin Password: admin
Příloha B - Uživatelská příručka Uživatelská příručka je nedílnou součástí projektové dokumentace a popisuje uživateli aplikace ISPPL, jaké funkce jsou poskytovány a jejich bližší popis.
B.1 Přihlášení uživatele Při přístupu do informačního systému pro podporu lokalizací do národních prostředí se uživatel musí nejdříve přihlásit. Přitom je ověřeno jeho uživatelské jméno a heslo. Pokud jsou zadané údaje správně a uživatel s těmito údaji je uložen v databázi je mu zobrazeno menu s funkcemi, pro které má oprávnění. Pokud jsou zadané uživatelské jméno nebo heslo chybné, zobrazí se uživateli znovu původní stránka s možností nového přihlášení.
45
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 27 - Hlavní stránka
B. 2 Registrace uživatele Pokud uživatel nemá v aplikaci ISSPL založený vlastní uživatelský účet, může se do systému registrovat. Při registraci je uživatel nucen vyplnit požadované údaje, jedná se hlavně o výběr role (zadavatel, překladatel) a zvolení si vhodného uživatelského jména a hesla. Tímto krokem je do systému registrován a z formuláře pro zadání údajů je přeměřován zpátky na úvodní stránku aplikace s možností se přihlásit. Aby se uživatel mohl přihlásit, musí jeho účet administrátor aktivovat.
46
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 28 - Registrace uživatele
B. 3 Odhlášení Po ukončení práce v aplikaci ISPPL je žádoucí, aby se uživatel odhlásil a tím znemožnil případné zneužití jeho uživatelského účtu.
Obrázek 29 - Odhlášení
B. 4 Přehled projektů Ve formě tabulky jsou zobrazeny doposud založené projekty. Každá řádka tabulky je určena jednomu projektu. Sloupce tabulky nesou informace o daném projektu. Jsou to jméno projektu, datum založení projektu a interaktivní volby. První volba verze je odkaz na přehled verzí daného projektu a je přístupná všem uživatelům. Další volby upravit a smazat projekt už jsou přístupné pouze administrátorovi a zadavateli tohoto projektu. Překladatelům a zadavatelům ostatních projektů se zobrazí tedy pouze volba pro přechod na přehled verzí.
47
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 30 - Přehled projektů
B. 5 Založit projekt Volba založit projekt je z důvodu častého využití zahrnuta rovnou v menu aplikace ISPPL, a také přímo na stránce s přehledem projektů. Při spuštění této volby je uživatel přesměrován na formulář pro založení projektu, kde po zadání požadovaných hodnot, název projektu, číslo verze projektu musí vybrat zip archiv obsahující Java resource bundles. Pokud jsou vložená data korektní a projdou validací, vytvoří se daný projekt a uživatel je přesměrován zpátky na výpis projektů, kde se nově vzniklý projekt objeví.
Obrázek 31 - Založit projekt
B. 6 Úprava projektu Do úpravy projektu se dostane uživatel přes ovládací prvek upravit v tabulce přehled projektů v řádce s vybraným projektem. Po spuštění této volby se uživateli zobrazí podobný formulář jako pro vložení nového projektu. Je zde však omezen pouze na změnu názvu projektu. V zobrazeném formuláři se objeví současný název. Po změně názvu stačí potvrdit tlačítkem odeslat.
48
Informační systém pro podporu lokalizací do národního prostředí
B. 7 Smazání projektu Po nalezení správného projektu v tabulce stačí zvolit volbu smazat ve stejném řádku a po potvrzení bude odstraněn celý projekt i s jeho všemi verzemi a také lokalizacemi, které byly doposud nahrány nebo založeny.
B. 8 Přehled verzí projektu Do přehledu verzí projektu se uživatel dostane z přehledu projektů spuštěním volby verze v řádce s vybraným projektem. Uživatel je informován o názvu projektu, ke kterému tento výpis náleží. Jednotlivé verze jsou zobrazeny v tabulce, kde v každém řádku je uvedena jedna verze. Informace zobrazené u každé verze jsou následující: číslo verze, stav verze a poté jsou zde ovládací prvky DETAIL, EXPORT, SMAZAT a UPRAVIT. Každý uživatel systému má možnost se přesunout na přehled lokalizací dané verze pomocí odkazu DETAIL. Volby EXPORT, UPRAVIT A SMAZAT může použít pouze administrátor a tvůrce dané verze. Přidat projekt je možné pomocí samostatného tlačítka nad tabulkou.
Obrázek 32 - Přehled verzí projektu
B. 9 Přidání verze projektu Po stisknutí tlačítka, které je situováno nad tabulkou se uživatel dostane na formulář pro přidání nové verze ke stávajícímu projektu. Po zadání povinných údajů verze projektu a vybrání zip archivu pro Java resource bundles se vytvoří nová verze projektu a uživatel je zpátky přesměrován na přehled verzí projektu.
49
Informační systém pro podporu lokalizací do národního prostředí
B. 10 Export verze projektu EXPORT verze probíhá následovně. Uživatel stiskne tlačítko export a aplikace ISPPL z databáze začne vytvářet zip archiv obsahující všechny doposud nahrané a založené lokalizace v rámci této verze. Až se vytvoří tento zip archiv, změní se název odkazu z EXPORT na DOWNLOAD a uživatel si tento archiv může stáhnout na svůj počítač.
B. 11 Úprava verze projektu Po zvolení této volby u vybrané verze projektu se uživateli zobrazí formulář, který vychází z formuláře pro vytvoření verze projektu. Zde může uživatel změnit pouze číslo verze projektu. Potvrzením formuláře se provede změna a uživatel je vrácen na přehled verzí projektu.
B. 12 Smazání verze projektu Po nalezení správné verze v tabulce stačí zvolit volbu smazat ve stejném řádku a verze projektu i se všemi nahranými a doposud založenými lokalizacemi bude po potvrzení smazána.
B. 13 Detail verze projektu Na tuto stránku se uživatel dostane z přehledu verzí projektu. Po načtení této stránky se uživateli zobrazí jméno projektu a verze s možností přidat další lokalizaci. Jednotlivé lokalizace jsou zobrazeny pomocí tabulky, kde každá lokalizace zaujímá jeden řádek. Zde jsou uvedeny následující informace: ISO kód jazyka a popřípadě národa, pokud byl uveden při vytváření projektu. Dále pak názvy jazyka v češtině, angličtině. Další sloupce jsou pro ovládací prvky překladatelé lokalizace, přeložit lokalizaci a vymazat lokalizaci. Přidat lokalizaci je možné pomocí samostatného tlačítka nad tabulkou.
50
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 33 - Detail verze projektu
B. 14 Přidat lokalizaci Po stisknutí tlačítka přidat lokalizaci se uživateli zobrazí formulář, kde uživatel musí vybrat jazyk zakládané lokalizace a pokud je nutné rozlišit jazyk národnostně, například britskou a americkou angličtinu, tak může vybrat toto rozlišení.
B. 15 Překladatelé Po stisknutí volby překladatelé se uživateli zobrazí výpis všech překladatelů, kteří se podíleli na překladu dané lokalizace. Informace zobrazené u každého překladatele jsou následující: jméno, příjmení, email, telefon, datum a čas uložení překladu.
B. 16 Překlad lokalizace Na překlad lokalizace se uživatel dostane přes detail verze projektu vybráním správné lokalizace z uvedeného seznamu a spuštěním ovládacího prvku přeložit. Zde se uživatel dostane k výpisu všech souborů, které mají stejnou jazykovou a národní příponu. Výpis je tvořen tabulkou, kde každý řádek je jedním řádkem z lokalizačního souboru, tedy Java resource bundle. Pro každý label z lokalizačního souboru jsou zobrazovány tyto informace: Název lokalizačního souboru, kde se daný label vyskytuje, na kolikátém řádku v souboru se nachází. Prázdné řádky se v současné verzi nečíslují. Dále pak klíč a hodnota z labelu ze zdrojového lokalizačního souboru. Poslední sloupec v řádku je určen pro samotný překlad. Zde překladatel překládá hodnotu z vedlejšího sloupce.
51
Informační systém pro podporu lokalizací do národního prostředí Pokud je zobrazená lokalizace přeložená je sloupec překlad vyplněn hodnotami z labelů této lokalizace a je možné zde přepsáním současných hodnot opravovat případné chyby v překladu.
B. 17 Smazání lokalizace Po nalezení správné lokalizace v tabulce stačí zvolit volbu smazat ve stejném řádku a lokalizace bude po potvrzení smazána.
Obrázek 34 - Překlad lokalizace
B. 18 Uložit překlad lokalizace Po překladu nebo po opravě v překladu lokalizace překladatel na konci tabulky stiskne uložit a všechny provedené změny jsou uloženy.
B. 19 Správa uživatelů Tato stránka je přístupná pouze uživateli s rolí administrátora. Pří spuštění volby z menu správa osob se zobrazí přehled všech uživatelů systému. Administrátor zde může vytvářet nové uživatele, tedy i s rolí administrátor. Jednotlivé uživatele může upravit a také smazat. Posledním ovládacím prvkem je změna aktivace. Při každé registraci je uživatel nejdříve neaktivován a až administrátor tohoto uživatele aktivuje.
52
Informační systém pro podporu lokalizací do národního prostředí
Obrázek 35 - Správa uživatelů
B. 20 Můj účet Všichni uživatelé mají možnost přístupu k této funkci aplikace ISPPL. Přes menu aplikace se dostanou volbou nastavení účtu na stránky, kde jsou zobrazeny informace o uživateli. Uživatel si některá svá data může měnit pomoci ovládacího prvku upravit účet a to i včetně hesla. Výmaz uživatelského účtu ve volbě nastavení účtu není implementován. Uživatel tedy v tomto případě musí o zrušení požádat administrátora aplikace.
B. 21 Přehled překladatelů Tato stránka je přístupná všem uživatelům. Pří spuštění volby z menu přehled překladatelů se zobrazí přehled všech překladatelů. Při vybrání jednoho určitého uživatele se zobrazí jeho detail s dodatečnou informací o jazycích, které ovládá.
53
Informační systém pro podporu lokalizací do národního prostředí
Příloha C - Obsah přiloženého DVD Přiložené DVD má následující adresářovou strukturu
1) /source – obsahuje kompletní projekt 2) /source/isppl/dist/isppl.war – soubor umožňující nahrání aplikace ISPPL na aplikační server 3) /database/ispplCreate.sql – soubor s SQL skriptem pro vytvoření databáze 4) /text – adresář obsahuje diplomovou práci v původním formátu 5) /diplomovaPrace.pdf – text diplomové ve formátu pdf
54