Mageia je šířena cestou obrazů ISO. Tato stránka vám pomůže vybrat, který
+obraz vyhovuje vašim potřebám.
Jsou tu dvě rodiny nosičů:
Klasický instalátor: Po zavedení z nosiče bude následovat postup dovolující
+výběr toho, co chcete nainstalovat a jak nastavit váš cílový systém. Toto
+vám dává tu největší pružnost pro vašim potřebám přizpůsobenou
+instalaci. Přesně řečeno jde o možnost výběru, které prostředí pracovní
+plochy si nainstalujete.
ŽIVÝ nosič dat: Můžete zavést nosič ve skutečném systému Mageia bez jeho
+instalace, abyste viděli, co dostanete po instalaci. Proces instalace je
+jednodušší, ale dostanete méně možností výběru.
Podrobnosti jsou uvedeny v dalších částech.
Média
Definice
Zde je médiem (nosičem) obrazový soubor ISO, který vám umožňuje instalovat
+a/nebo aktualizovat Mageiu a při rozšíření jakoukoli fyzickou podporu, na
+kterou je soubor ISO zkopírován.
Tyto soubory ISO používají tradiční instalátor nazvaný drakx.
Dokáží udělat čistou instalaci nebo aktualizovat z předchozích vydání.
DVD
Rozličné nosiče pro 32 nebo 64 bitovou architekturu.
Některé nástroje jsou dostupné na uvítací obrazovce: Záchranný systém,
+paměťový test, nástroj na zjištění hardware.
Každé DVD obsahuje mnohá dostupná prostředí pracovní plochy a jazyky.
Během instalace vám bude dána volba přidat si nesvobodný software.
DVD dual arch
Obě architektury jsou přítomny na tomtéž nosiči, volba je učiněna
+automaticky vzhledem k nalezenému procesoru.
Používá jen pracovní plochu Xfce.
Ne všechny jazyky jsou dostupné. (be, bg, ca, de, en, es, fr, it, mk, pl,
+pt, ru, sv, uk) TŘEBA ZKONTROLOVAT!
Obsahuje nesvobodný software.
Živé nosiče
Běžné vlastnosti
Mohou být použity na obhlídku distribuce bez jejího nainstalování na pevný
+disk i na volitelné nainstalování Mageii na váš pevný disk.
Každé ISO obsahuje jen jedno prostředí pracovní plochy (KDE nebo GNOME).
Různé nosiče pro 32 nebo 64 bitové architektury.
Živé soubory ISO mohou být použity jen na vytvoření
+čistých instalací, nemohou být použity na aktualizaci z předchozích
+vydání.
Obsahují nesvobodný software.
Live CD KDE
Jen prostředí pracovní plochy KDE.
Jen anglický jazyk.
Pouze 32 bitové.
Live CD GNOME
Jen prostředí pracovní plochy GNOME.
Jen anglický jazyk.
Pouze 32 bitové.
Live DVD KDE
Jen prostředí pracovní plochy KDE.
Všechny jazyky jsou přítomny.
Různé nosiče pro 32 nebo 64 bitové architektury.
Live DVD GNOME
Jen prostředí pracovní plochy GNOME.
Všechny jazyky jsou přítomny.
Různé nosiče pro 32 nebo 64 bitové architektury.
Jen zaváděcí nosiče CD
Běžné vlastnosti
Každý z nich je malý obraz, který neobsahuje víc než to, co je třeba pro
+nastartování drakx instalátoru a nalezení drakx-instalátoru-části2 a dalších
+balíčků, které jsou potřebné pro pokračování a dokončení instalace. Tyto
+balíčky mohou být na pevném disku v PC, na místním disku, na místní síti
+anebo na internetu.
Tyto nosiče jsou velmi lehké (menší než 100 MB) a jsou vhodné, když je
+přenosové pásmo příliš malé na stáhnutí plného DVD, když PC nemá DVD
+mechaniku anebo když PC nedokáže nastartovat ze zařízení USB.
Různé nosiče pro 32 nebo 64 bitové architektury.
Jen anglický jazyk.
boot.iso
Obsahuje jen svobodný software, pro ty lidi, kteří odmítají používat
+nesvobodný software.
boot-nonfree.iso
Obsahuje nesvobodný software (většinou ovladače, kodeky...) pro lidi, kteří
+jej potřebují.
Stahování a zkontrolování nosiče
Stažení
Pokud jste si už vybrali váš soubor ISO, můžete ho stáhnout buď pomocí http
+nebo BitTorrentu. V obou případech vám okno podává pár informací, jako jsou
+použitý zrcadlový server a možnost změny, pokud je přenosová rychlost příliš
+nízká. Pokud je vybráno http, můžete uvidět i něco takového
md5sum a sha1sum jsou nástroje ke zkontrolování neporušenosti souboru
+ISO. Jeden z nich si ponechejte pro budoucí
+použití. Potom se objeví toto okno:
Zaškrtněte přepínací tlačítko Uložit soubor.
Kontrolování neporušenosti stáhnutého nosiče
Oba kontrolní součty jsou hexadecimální čísla vypočítaná algoritmem ze
+souboru, který má být stáhnut. Když tyto algoritmy požádáte o přepočítání
+tohoto čísla z vašeho stáhnutého souboru, buď dostanete stejné číslo a váš
+stáhnutý soubor je neporušený, nebo se číslo odlišuje a máte poškozený
+soubor. Poškození nabádá k tomu, že byste se měli pokusit stáhnout ISO
+znovu.
Otevřete konzoli, netřeba být superuživatelem (root), a:
- pro použití md5sum, napište: [sam@localhost]$ md5sum
+cesta/k/obrazovému/souboru.iso.
- pro použití sha1sum, napište: [sam@localhost]$ sha1sum
+cesta/k/obrazovému/souboru.iso.
a porovnejte získané číslo z vašeho počítače (možná na ně budete muset
+chvilku počkat) s číslem daným Mageiou. Například:
Vypálení nebo vepsání souboru ISO
Zkontrolované ISO může být nyní vypáleno na CD nebo DVD anebo vepsané
+(zapsané) na zařízení USB. Tyto operace nejsou obyčejným kopírováním a cílí
+k vytvoření zaveditelného nosiče.
Vypálení souboru ISO na CD/DVD
Použijte kterýkoli vypalovací program, který si přejete, ale ujistěte se, že
+vypalovací zařízení je správně nastaveno na vypálit
+obraz, jelikož vypálit data anebo soubory není správné. Více
+informací je na Mageia
+wiki.
Zapsat ISO na USB flash
Všechny soubory ISO Mageii jsou hybridy, což znamená, že je můžete 'vepsat'
+(zapsat) na zařízení USB, a potom je použít na zavedení a instalaci systému.
Varování
"vepsání" (zapsání) obrazu na flashové zařízení zničí jakýkoli předešlý
+souborový systém na zařízení; všechna ostatní data budou ztracena a kapacita
+oddílu bude zmenšena na velikost obrazu.
Pro obnovu původní kapacity, musíte znovu předělat oddíl zařízení USB a
+naformátovat ho.
Použitím grafického nástroje v Mageii
Můžete použít grafický nástroj, jakým je IsoDumper
Je potenciálně "nebezpečné" dělat to ručně. Riskujete, že přepíšete diskový
+oddíl, zadáte-li nesprávně ID zařízení.
Též můžete použít nástroj dd v konzoli:
Otevřete konzoli
Staňte se superuživatelem (rootem) použitím příkazu su
+- (nezapomeňte na koncovou pomlčku '-')
Vsuňte vaše zařízení USB (nepřipojujte je příkazem mount, což znamená,
+neotevírejte žádný program nebo správce souborů, který by ho mohl
+zpřístupnit nebo z něho číst)
Použijte příkaz fdisk -l
Případně můžete získat název zařízení příkazem dmesg: na konci,
+vidíte název zařízení začínající na sd, a
+sdd v tomto případě:
[72594.604531] usb 1-1: new high-speed USB device number 27 using xhci_hcd
+[72594.770528] usb 1-1: New USB device found, idVendor=8564, idProduct=1000
+[72594.770533] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
+[72594.770536] usb 1-1: Product: Mass Storage Device
+[72594.770537] usb 1-1: Manufacturer: JetFlash
+[72594.770539] usb 1-1: SerialNumber: 18MJTWLMPUCC3SSB
+[72594.770713] usb 1-1: ep 0x81 - rounding interval to 128 microframes, ep desc says 255 microframes
+[72594.770719] usb 1-1: ep 0x2 - rounding interval to 128 microframes, ep desc says 255 microframes
+[72594.771122] usb-storage 1-1:1.0: USB Mass Storage device detected
+[72594.772447] scsi host8: usb-storage 1-1:1.0
+[72595.963238] scsi 8:0:0:0: Direct-Access JetFlash Transcend 2GB 1100 PQ: 0 ANSI: 4
+[72595.963626] sd 8:0:0:0: [sdd] 4194304 512-byte logical blocks: (2.14 GB/2.00 GiB)
+[72595.964104] sd 8:0:0:0: [sdd] Write Protect is off
+[72595.964108] sd 8:0:0:0: [sdd] Mode Sense: 43 00 00 00
+[72595.965025] sd 8:0:0:0: [sdd] No Caching mode page found
+[72595.965031] sd 8:0:0:0: [sdd] Assuming drive cache: write through
+[72595.967251] sdd: sdd1
+[72595.969446] sd 8:0:0:0: [sdd] Attached SCSI removable disk
Najděte název zařízení pro vaše zařízení USB (podle jeho velikosti),
+například /dev/sdb na obrázku výše, je to zařízení 8GB USB.
Pro všechny instalace Mageii se doporučuje
+nastavit heslo superuživatele anebo správce, které se v Linuxu obyčejně
+nazývá i heslo roota. Když zapisujete heslo do políčka
+nahoře, barva jeho štítu se změní z červené na žlutou a na zelenou, v
+závislosti na síle hesla. Zelený štít ukazuje, že používáte silné
+heslo. Potřebujete zopakovat stejné heslo v políčku umístěném hned pod
+políčkem prvního hesla, přičemž jejich porovnaním se ověří, zda jste v
+prvním políčku neudělali překlep.
Poznámka
Všechna hesla jsou závislá na velikosti písmen; nejlepší je použít kombinaci
+písmen (velkých a malých), čísel a ostatních znaků.
Zadejte uživatele
Zde přidejte uživatele. Uživatel má méně oprávnění než superuživatel (root),
+ale dost na procházení internetu, používání kancelářskych aplikací anebo
+hraní her a pro cokoli jiného, co se svým počítačem provádí běžný uživatel.
Ikona: Pokud klepnete na toto tlačítko, změní se
+ikona uživatele.
Skutečné jméno: Vložte uživatelům do tohoto textového
+pole skutečné jméno.
Přihlašovací jméno: Zde můžete zadat uživatelské
+přihlašovací jméno, nebo nechat instalační program pokusit se použít
+skutečné jméno uživatelů. Přihlašovací jméno je citlivé na
+velikost písmen.
Heslo: Do tohoto textového pole byste měli napsat heslo
+uživatele. Na konci textového políčka je štít, který naznačuje sílu
+heslu. (Podívejte se i na Poznámka)
Heslo (znovu): Znovu zadejte do tohoto textového pole
+heslo uživatele a drakx zkontroluje, zda máte stejné heslo v každém z
+textových polí pro uživatelské heslo.
Poznámka
Každý uživatel, kterého přidáte během instalace Mageia bude mít pro svět
+čitelný (ale chráněný proti zápisu) domovský adresář.
Každopádně, během používání vaší nové instalace, každý uživatel kterého
+přidáte v MCC - Systém - Spravovat uživatele v systému
+bude mít domácí adresář, který je chráněný stejně při čtení a zápisu.
Pokud nechcete mít světem čitelný domovský adresář pro každého, doporučuje
+se nyní přidat jen dočasného uživatele a skutečného uživatele (anebo více
+uživatelů) přidat až po restartu.
Pokud upřednostňujete světem čitelné domovské adresáře, možná budete chtít
+přidat všechny další potřebné uživatele v kroku Nastavení -
+Souhrn během instalace. Vyberte si Správa
+uživatelů.
Přístupová oprávnění lze změnit také po instalaci.
Zde vidíte Linuxové oddíly, které byly nalezeny na vašem počítači. Pokud
+nesouhlasíte s návrhem DrakX, můžete přípojné
+body změnit.
Poznámka
Máte-li cokoliv ke změně, ujistěte se, že máte stále /
+kořenový oddíl (root).
Každý oddíl je zobrazen takto: "Zařízení" ("Kapacita", "Přípojný bod",
+"Typ").
"Zařízení", se skládá z "pevného disku", ["číslo disku" (písmeno)], "číslo
+oddílu" (například "sda5").
Pokud máte hodně oddílů, můžete si vybrat mnoho různých přípojných bodů z
+rozbalovací nabídky, jako jsou /,
+/home a /var. Dokonce si můžete udělat
+vlastní přípojné body, například /video pro oddíl, kde si
+chcete ukládat své filmy, anebo /domov-kotel jako
+domovský oddíl instalace kotle (cauldron).
Pro oddíly, ke kterým nepotřebujete mít přístup, nemusíte vyplňovat přípojný
+bod.
Varování
Vyberte Předchozí, pokud si nejste jisti tím, co si
+máte zvolit, a potom zaškrtněte Vlastní rozdělení
+disku. V obrazovce, která následuje, můžete klepnout na oddíl,
+abyste viděli jeho typ a velikost.
Pokud jste si jisti, že přípojné body jsou správně, klepněte na
+Další a vyberte si, zda chcete naformátovat jen ten
+oddíl (resp. oddíly), které DrakX navrhuje, anebo i další.
Systém můžete zavést z nosiče, na který jste vypálili svůj obrazový soubor
+(CD, DVD...). Obyčejně jej stačí jen vložit do vaší CD/DVD mechaniky, aby
+zavaděč spustil instalaci automaticky po restartu počítače. pokud se to
+nestane, možná potřebujete přenastavit BIOS anebo stisknout jednu klávesu,
+která vám nabídne vybrat si zařízení, ze kterého se počítač zavede.
Podle toho, jaké máte vybavení počítače a jak je nastaveno, objeví se buď
+jedna anebo druhá ze dvou níže uvedených obrazovek.
Ze zařízení USB
Počítač můžete spustit ze zařízení USB, na kterém je zaznamenán obraz
+ISO. Vzhledem k nastavení vašeho BIOSu se počítač možná už zavádí přímo ze
+zařízení USB zastrčeného v přípojném místě (portu) počítače. Pokud se tak
+neděje, možná potřebujete přenastavit BIOS anebo stisknout jednu klávesu,
+která vám nabídne výběr zařízení, z něhož se počítač spustí.
V zastaralém režimu BIOS/CSM
První obrazovka během spouštění v režimu BIOS
V prostřední nabídce máte volbu mezi třemi činnostmi:
Zavést Mageiu: Toto znamená, že Mageia 5 se spustí z připojeného nosiče
+(CD/DVD anebo zařízení USB) bez jakéhokoli zapisování na disk, takže
+očekávejte velmi pomalý systém. Jakmile se zavádění dokončí, můžete
+přikročit i k instalací na pevný disk.
Nainstalovat Mageiu: Tato volba Mageiu přímo nainstaluje na pevný disk.
Spustit z pevného disku: Tato volba dovoluje systém zavést z pevného disku,
+tak jako obyčejně, když není připojen žádný datový nosič (CD/DVD anebo
+zařízení USB). (nepracuje s Mageiou 5).
Ve spodní nabídce jsou Volby zavedení systému:
F1 - Nápověda. Vysvětluje volby "splash", "apm", "acpi" a "Ide"
F2 - Jazyk. Vyberte si pro zobrazení jazyka obrazovek.
F3 - Rozlišení obrazovky. Volba mezi textem, 640x400, 800x600, 1024x728
F4 - CD-Rom. CD-Rom anebo Další. Normálně se instalace vykoná z vloženého
+instalačního média. Zde si vybíráte jiné zdroje, jakými jsou FTP anebo
+servery NFS. Pokud se instalace vykonává v síti se serverem SLP, při této
+volbě si vyberte jeden z instalačních zdrojů dostupných na serveru.
F5 - Ovladač. Ano nebo Ne. Systém si je vědom přítomnosti volitelného disku
+s aktualizací ovladače a bude požadovat jeho vložení během procesu
+instalace.
F6 - Volby jádra. Toto je cesta pro zadání voleb vztahujících se k vybavení
+počítače a ovladačům, které se použijí.
V režimu UEFI
První obrazovka během spuštění z disku na systémech UEFI
Zde máte jen možnost spustit Mageiu v Živém režimu (první volba) nebo
+spustit instalaci (druhá volba).
Pokud jste počítač spustili ze zařízení USB, dostanete dva doplňující řádky,
+které jsou duplikáty předchozích řádků zakončených zkratkou "USB". Máte je
+vybrat.
V každém případě budou první kroky stejné - vybrat si jazyk, časovou zónu a
+klávesnici; potom se postupy odlišují v dodatečných
+krocích v Živém režimu.
Pokud si přejete použít šifrování na vašem / oddílu,
+musíte se ujistit, že máte samostatný oddíl /boot. Volba
+pro zašifrování NESMÍ být nastavena pro zaváděcí oddíl
+/boot, jinak váš systém nebude možné zavést.
Zde upravíte rozložení disku (disků). Můžete odstraňovat nebo vytvářet
+oddíly, měnit souborový systém oddílu, anebo měnit jeho velikost a dokonce
+se podívat, co je na něm, předtím než začnete.
Je tam karta pro každý nalezený pevný disk nebo jiné úložné zařízení, jako
+je zařízení USB. Například sda, sdb a sdc, pokud jsou připojena tři.
Stiskněte Vyčistit vše pro smazání všech oddílů na
+vybraném úložném zařízení.
Pro všechky ostatní činnosti: klepněte nejprve na požadovaný oddíl. Potom si
+jej prohlédněte, nebo si vyberte souborový systém a přípojný bod, změňte
+jeho velikost nebo jej vymažte.
Pokračujte dokud jste nenastavil vše podle vašeho přání.
Klepněte na tlačítko Hotovo, když jste připraven.
Poznámka
Pokud instalujete Mageiu na systém UEFI, zkontrolujte, zda je přítomen ESP
+(systémový oddíl EFI) a správně připojen na /boot/EFI (viz výše)
V této obrazovce můžete vidět obsah vašeho pevného disku (disků) a vidět
+nalezená řešení průvodce DrakX rozdělováním disku navrhujícího, kam
+nainstalovat Mageiu.
Volby dostupné z níže uvedeného seznamu se budou lišit v závislosti na
+rozložení a obsahu vašeho konkrétního pevného disku.
Použít existující oddíly
Pokud je dostupná tato volba, potom byly nalezeny stávající s Linuxem
+kompatibilní oddíly a tyto mohou být použity pro instalaci.
Použít volné místo
Pokud máte nevyužité místo na vašem pevném disku, potom ho tato volba
+využije pro novou instalaci Mageii.
Použít volné místo na oddílu Windows
Pokud máte nevyužité místo na stávajícím windowsovském oddíle, instalátor
+může nabídnout jeho použití.
Toto může být užitečná cesta vytvoření prostoru pro vaši novou instalaci
+Mageii, ale je to riziková operace, takže byste se měli ujistit, že máte
+zazálohovány všechny důležité soubory!
Pamatujte, že toto znamená zmenšení velikosti windowsovského oddílu. Oddíl
+musí být "čistý", to znamená, že Windows musely být správně vypnuty, když
+byly naposledy použity. Též musely být defragmentovány, ačkoli toto není
+zárukou, že všechny soubory na oddíle byly přesunuty z oblasti, která má být
+použita. Velice se doporučuje provedení zálohy vašich osobních souborů.
U této volby instalátor zobrazí zůstávající windowsovský oddíl v světlemodré
+a budoucí oddíl Mageii v tmavomodré barvě spolu s jejich zamýšlenými
+velikostmi pod nimi. Máte možnost přizpůsobit tyto velikosti klepnutím a
+přesunutím mezery mezi oběma oddíly. Viz snímek obrazovky níže.
Smazat a použít celý disk
Tato volba použije celé diskové zařízení pro Mageiu.
Pozor, toto smaže všechna data na vybraném disku. Buďte opatrní!
Pokud zamýšlíte použít část disku na něco jiného, nebo už máte data na onom
+disku, která nejste připraveni ztratit, potom tuto volbu nepoužívejte.
Vlastní
Toto vám dává úplnou kontrolu nad umístěním instalace na vašem pevném disku
+(resp. discích).
Měnění velikostí oddílů:
Instalátor rozdělí dostupné místo podle následujících pravidel:
Pokud je celkové dostupné místo menší než 50 GB, bude vytvořen jen jeden
+oddíl pro /, nebude tu žádný samostatný oddíl pro /home.
Pokud je celkové dostupné místo nad 50 GB, potom se vytvoří tři oddíly
6/19 z celkového dostupného místa je přideleno pro / , nanejvýš však 50 GB
1/19 je přiděleno pro swap , nanejvýš však 4 GB
zbytek (přinejmenším 12/19) je přiděleno pro /home
To znamená, že v případě 160 GB a víc z dostupného místa, instalátor vytvoří
+tři oddíly: 50 GB pro /, 4 GB pro swap a zbytek pro adresář /home.
Poznámka
Pokud používáte systém UEFI, ESP (systémový oddíl EFI) bude automaticky
+rozpoznán, nebo vytvořen, pokud ještě neexistuje, a připojen na
+/boot/EFI. Volba "Vlastní" je jediná, která vám dovoluje zkontrolovat, že
+toto bylo provedeno správně.
Varování
Některé novější mechaniky nyní používají 4096 bajtové logické sektory,
+namísto předchozího standardu 512 bajtových logických sektorů. Nástroj na
+dělení disku použitý v instalátoru nebyl kvůli nedostatku dostupného
+hardware testován s takovou mechanikou. Taktéž některé mechaniky ssd dnes
+používají velikost vymazávacího bloku nad 1 MB. Navrhuje se napřed rozdělit
+mechaniku, s použitím alternativních nástrojů na rozdělování disku, jakým je
+gparted, pokud vlastníte takové zařízení, a použít následující nastavení:
"Zarovnat na" "MiB"
"Předcházející volné místo (MiB)" "2"
Též se ujistěte, že všechny oddíly jsou vytvořeny se sudým počtem megabajtů.
Zde si můžete vybrat, který oddíl (nebo oddíly) si přejete
+naformátovat. Všechna data na oddílech neoznačených pro
+naformátování budou ušetřena.
Obyčejně potřebují být naformátovány přinejmenším oddíly, které DrakX
+vybral.
Klepněte na Pokročilé pro výběr oddílů, které chcete
+zkontrolovat na takzvané chybné bloky
Tip
Pokud si nejste jistí, zda jste vykonali správnou volbu, můžete klepnout na
+tlačítko Předchozí, opět na
+Předchozí a potom na Vlastní,
+abyste se vrátili na hlavní obrazovku. Na této obrazovce si můžete vybrat
+pohled na to, co máte na vašich oddílech.
Pokud jste spokojen s výběrem, klepněte na Další pro
+pokračování.
Nikdo se nepotká se všemi instalačními obrazovkami, které vidíte v této
+příručce. Kterou obrazovku uvidíte, záleží na vašem vybavení počítače a na
+volbách, které učiníte během instalace.
Vložte své uživatelské jméno a uživatelské heslo a za pár sekund se, podle
+toho který živý datový nosič jste použili, ocitnete v nahraném prostředí KDE
+nebo GNOME. Nyní můžete začít používat vaši instalaci Mageii.
Další část naší dokumentace můžete najít na Mageia
+wiki.
Když byl zavaděč nainstalován, budete vyzváni k pozastavení vašeho počítače,
+odstranění živého CD a restartování počítače. Když restartujete, uvidíte
+následnost ukazovatelů postupu stahování. Tyto naznačují, že softwarová
+média jsou stahována (viz Správa software).
" + "Your search returned no results for " + "" + txt_wordsnotfound + "" + "
";
+ }
+ //alert(results);
+ document.getElementById('searchResults').innerHTML = results;
+}
+
+function tokenize(wordsList){
+ var stemmedWordsList = new Array(); // Array with the words to look for after removing spaces
+ var cleanwordsList = new Array(); // Array with the words to look for
+ for(var j in wordsList){
+ var word = wordsList[j];
+ if(typeof stemmer != "undefined" ){
+ stemQueryMap[stemmer(word)] = word;
+ } else {
+ stemQueryMap[word] = word;
+ }
+ }
+ //stemmedWordsList is the stemmed list of words separated by spaces.
+ for (var t in wordsList) {
+ wordsList[t] = wordsList[t].replace(/(%22)|^-/g, "");
+ if (wordsList[t] != "%20") {
+ scriptLetterTab.add(wordsList[t].charAt(0));
+ cleanwordsList.push(wordsList[t]);
+ }
+ }
+
+ if(typeof stemmer != "undefined" ){
+ //Do the stemming using Porter's stemming algorithm
+ for (var i = 0; i < cleanwordsList.length; i++) {
+ var stemWord = stemmer(cleanwordsList[i]);
+ stemmedWordsList.push(stemWord);
+ }
+ } else {
+ stemmedWordsList = cleanwordsList;
+ }
+ return stemmedWordsList;
+}
+
+//Invoker of CJKTokenizer class methods.
+function cjkTokenize(wordsList){
+ var allTokens= new Array();
+ var notCJKTokens= new Array();
+ var j=0;
+ for(j=0;j";
+ return this.input.substring(this.offset,this.offset+2);
+ }
+
+ function getAllTokens(){
+ while(this.incrementToken()){
+ var tmp = this.tokenize();
+ this.tokens.push(tmp);
+ }
+ return this.unique(this.tokens);
+// document.getElementById("content").innerHTML += tokens+" ";
+// document.getElementById("content").innerHTML += " dada"+sortedTokens+" ";
+// console.log(tokens.length+"dsdsds");
+ /*for(i=0;idada"+un[i]+"- "+stems[i]+" "+ ss;
+ document.getElementById("content").innerHTML += " "+sortedTokens[i];
+ }*/
+ }
+
+ function unique(a)
+ {
+ var r = new Array();
+ o:for(var i = 0, n = a.length; i < n; i++)
+ {
+ for(var x = 0, y = r.length; x < y; x++)
+ {
+ if(r[x]==a[i]) continue o;
+ }
+ r[r.length] = a[i];
+ }
+ return r;
+ }
+}
+
+
+/* Scriptfirstchar: to gather the first letter of index js files to upload */
+function Scriptfirstchar() {
+ this.strLetters = "";
+ this.add = addLettre;
+}
+
+function addLettre(caract) {
+
+ if (this.strLetters == 'undefined') {
+ this.strLetters = caract;
+ } else if (this.strLetters.indexOf(caract) < 0) {
+ this.strLetters += caract;
+ }
+
+ return 0;
+}
+/* end of scriptfirstchar */
+
+/*main loader function*/
+/*tab contains the first letters of each word looked for*/
+function loadTheIndexScripts(tab) {
+
+ //alert (tab.strLetters);
+ var scriptsarray = new Array();
+
+ for (var i = 0; i < tab.strLetters.length; i++) {
+
+ scriptsarray[i] = "..\/search" + "\/" + tab.strLetters.charAt(i) + ".js";
+ }
+ // add the list of html files
+ i++;
+ scriptsarray[i] = "..\/search" + "\/" + htmlfileList;
+
+ //debug
+ for (var t in scriptsarray) {
+ //alert (scriptsarray[t]);
+ }
+
+ tab = new ScriptLoader();
+ for (t in scriptsarray) {
+ tab.add(scriptsarray[t]);
+ }
+ tab.load();
+ //alert ("scripts loaded");
+ return (scriptsarray);
+}
+
+/* ScriptLoader: to load the scripts and wait that it's finished */
+function ScriptLoader() {
+ this.cpt = 0;
+ this.scriptTab = new Array();
+ this.add = addAScriptInTheList;
+ this.load = loadTheScripts;
+ this.onScriptLoaded = onScriptLoadedFunc;
+}
+
+function addAScriptInTheList(scriptPath) {
+ this.scriptTab.push(scriptPath);
+}
+
+function loadTheScripts() {
+ var script;
+ var head;
+
+ head = document.getElementsByTagName('head').item(0);
+
+ //script = document.createElement('script');
+
+ for (var el in this.scriptTab) {
+ //alert (el+this.scriptTab[el]);
+ script = document.createElement('script');
+ script.src = this.scriptTab[el];
+ script.type = 'text/javascript';
+ script.defer = false;
+
+ head.appendChild(script);
+ }
+
+}
+
+function onScriptLoadedFunc(e) {
+ e = e || window.event;
+ var target = e.target || e.srcElement;
+ var isComplete = true;
+ if (typeof target.readyState != undefined) {
+
+ isComplete = (target.readyState == "complete" || target.readyState == "loaded");
+ }
+ if (isComplete) {
+ ScriptLoader.cpt++;
+ if (ScriptLoader.cpt == ScriptLoader.scripts.length) {
+ ScriptLoader.onLoadComplete();
+ }
+ }
+}
+
+/*
+function onLoadComplete() {
+ alert("loaded !!");
+} */
+
+/* End of scriptloader functions */
+
+// Array.unique( strict ) - Remove duplicate values
+function unique(tab) {
+ var a = new Array();
+ var i;
+ var l = tab.length;
+
+ if (tab[0] != undefined) {
+ a[0] = tab[0];
+ }
+ else {
+ return -1
+ }
+
+ for (i = 1; i < l; i++) {
+ if (indexof(a, tab[i], 0) < 0) {
+ a.push(tab[i]);
+ }
+ }
+ return a;
+}
+function indexof(tab, element, begin) {
+ for (var i = begin; i < tab.length; i++) {
+ if (tab[i] == element) {
+ return i;
+ }
+ }
+ return -1;
+
+}
+/* end of Array functions */
+
+
+/*
+ Param: mots= list of words to look for.
+ This function creates an hashtable:
+ - The key is the index of a html file which contains a word to look for.
+ - The value is the list of all words contained in the html file.
+
+ Return value: the hashtable fileAndWordList
+ */
+function SortResults(mots) {
+
+ var fileAndWordList = new Object();
+ if (mots.length == 0) {
+ return null;
+ }
+
+ for (var t in mots) {
+ // get the list of the indices of the files.
+ var listNumerosDesFicStr = w[mots[t].toString()];
+ //alert ("listNumerosDesFicStr "+listNumerosDesFicStr);
+ var tab = listNumerosDesFicStr.split(",");
+
+ //for each file (file's index):
+ for (var t2 in tab) {
+ var temp = tab[t2].toString();
+ if (fileAndWordList[temp] == undefined) {
+
+ fileAndWordList[temp] = "" + mots[t];
+ } else {
+
+ fileAndWordList[temp] += "," + mots[t];
+ }
+ }
+ }
+
+ var fileAndWordListValuesOnly = new Array();
+
+ // sort results according to values
+ var temptab = new Array();
+ for (t in fileAndWordList) {
+ tab = fileAndWordList[t].split(',');
+
+ var tempDisplay = new Array();
+ for (var x in tab) {
+ if(stemQueryMap[tab[x]] != undefined){
+ tempDisplay.push(stemQueryMap[tab[x]]); //get the original word from the stem word.
+ } else {
+ tempDisplay.push(tab[x]); //no stem is available. (probably a CJK language)
+ }
+ }
+ var tempDispString = tempDisplay.join(", ");
+
+ temptab.push(new resultPerFile(t, fileAndWordList[t], tab.length, tempDispString));
+ fileAndWordListValuesOnly.push(fileAndWordList[t]);
+ }
+
+
+ //alert("t"+fileAndWordListValuesOnly.toString());
+
+ fileAndWordListValuesOnly = unique(fileAndWordListValuesOnly);
+ fileAndWordListValuesOnly = fileAndWordListValuesOnly.sort(compare_nbMots);
+ //alert("t: "+fileAndWordListValuesOnly.join(';'));
+
+ var listToOutput = new Array();
+
+ for (var j in fileAndWordListValuesOnly) {
+ for (t in temptab) {
+ if (temptab[t].motsliste == fileAndWordListValuesOnly[j]) {
+ if (listToOutput[j] == undefined) {
+ listToOutput[j] = new Array(temptab[t]);
+ } else {
+ listToOutput[j].push(temptab[t]);
+ }
+ }
+ }
+ }
+ return listToOutput;
+}
+
+function resultPerFile(filenb, motsliste, motsnb, motslisteDisplay) {
+ this.filenb = filenb;
+ this.motsliste = motsliste;
+ this.motsnb = motsnb;
+ this.motslisteDisplay= motslisteDisplay;
+}
+
+function compare_nbMots(s1, s2) {
+ var t1 = s1.split(',');
+ var t2 = s2.split(',');
+ //alert ("s1:"+t1.length + " " +t2.length)
+ if (t1.length == t2.length) {
+ return 0;
+ } else if (t1.length > t2.length) {
+ return 1;
+ } else {
+ return -1;
+ }
+ //return t1.length - t2.length);
+}
\ No newline at end of file
diff --git a/draklive/5/cs/content/search/punctuation.props b/draklive/5/cs/content/search/punctuation.props
new file mode 100644
index 00000000..d3e3fcd2
--- /dev/null
+++ b/draklive/5/cs/content/search/punctuation.props
@@ -0,0 +1,31 @@
+Punct01=\\u3002
+Punct02=\\u3003
+Punct03=\\u300C
+Punct04=\\u300D
+Punct05=\\u300E
+Punct06=\\u300F
+Punct07=\\u301D
+Punct08=\\u301E
+Punct09=\\u301F
+Punct10=\\u309B
+Punct11=\\u2018
+Punct12=\\u2019
+Punct13=\\u201A
+Punct14=\\u201C
+Punct15=\\u201D
+Punct16=\\u201E
+Punct17=\\u2032
+Punct18=\\u2033
+Punct19=\\u2035
+Punct20=\\u2039
+Punct21=\\u203A
+Punct22=\\u201E
+Punct23=\\u00BB
+Punct24=\\u00AB
+Punct25=
+Punct26=
+Punct27=\\u00A0
+Punct28=\\u2014
+
+
+
diff --git a/draklive/5/cs/content/search/stemmers/de_stemmer.js b/draklive/5/cs/content/search/stemmers/de_stemmer.js
new file mode 100644
index 00000000..7ff3822a
--- /dev/null
+++ b/draklive/5/cs/content/search/stemmers/de_stemmer.js
@@ -0,0 +1,247 @@
+/*
+ * Author: Joder Illi
+ *
+ * Copyright (c) 2010, FormBlitz AG
+ * All rights reserved.
+ * Implementation of the stemming algorithm from http://snowball.tartarus.org/algorithms/german/stemmer.html
+ * Copyright of the algorithm is: Copyright (c) 2001, Dr Martin Porter and can be found at http://snowball.tartarus.org/license.php
+ *
+ * Redistribution and use in source and binary forms, with or without modification, is covered by the standard BSD license.
+ *
+ */
+
+//var stemmer = function Stemmer() {
+ /*
+ German includes the following accented forms,
+ ä ö ü
+ and a special letter, ß, equivalent to double s.
+ The following letters are vowels:
+ a e i o u y ä ö ü
+ */
+
+ var stemmer = function(word) {
+ /*
+ Put u and y between vowels into upper case
+ */
+ word = word.replace(/([aeiouyäöü])u([aeiouyäöü])/g, '$1U$2');
+ word = word.replace(/([aeiouyäöü])y([aeiouyäöü])/g, '$1Y$2');
+
+ /*
+ and then do the following mappings,
+ (a) replace ß with ss,
+ (a) replace ae with ä, Not doing these, have trouble with diphtongs
+ (a) replace oe with ö, Not doing these, have trouble with diphtongs
+ (a) replace ue with ü unless preceded by q. Not doing these, have trouble with diphtongs
+ So in quelle, ue is not mapped to ü because it follows q, and in feuer it is not mapped because the first part of the rule changes it to feUer, so the u is not found.
+ */
+ word = word.replace(/ß/g, 'ss');
+ //word = word.replace(/ae/g, 'ä');
+ //word = word.replace(/oe/g, 'ö');
+ //word = word.replace(/([^q])ue/g, '$1ü');
+
+ /*
+ R1 and R2 are first set up in the standard way (see the note on R1 and R2), but then R1 is adjusted so that the region before it contains at least 3 letters.
+ R1 is the region after the first non-vowel following a vowel, or is the null region at the end of the word if there is no such non-vowel.
+ R2 is the region after the first non-vowel following a vowel in R1, or is the null region at the end of the word if there is no such non-vowel.
+ */
+
+ var r1Index = word.search(/[aeiouyäöü][^aeiouyäöü]/);
+ var r1 = '';
+ if (r1Index != -1) {
+ r1Index += 2;
+ r1 = word.substring(r1Index);
+ }
+
+ var r2Index = -1;
+ var r2 = '';
+
+ if (r1Index != -1) {
+ var r2Index = r1.search(/[aeiouyäöü][^aeiouyäöü]/);
+ if (r2Index != -1) {
+ r2Index += 2;
+ r2 = r1.substring(r2Index);
+ r2Index += r1Index;
+ } else {
+ r2 = '';
+ }
+ }
+
+ if (r1Index != -1 && r1Index < 3) {
+ r1Index = 3;
+ r1 = word.substring(r1Index);
+ }
+
+ /*
+ Define a valid s-ending as one of b, d, f, g, h, k, l, m, n, r or t.
+ Define a valid st-ending as the same list, excluding letter r.
+ */
+
+ /*
+ Do each of steps 1, 2 and 3.
+ */
+
+ /*
+ Step 1:
+ Search for the longest among the following suffixes,
+ (a) em ern er
+ (b) e en es
+ (c) s (preceded by a valid s-ending)
+ */
+ var a1Index = word.search(/(em|ern|er)$/g);
+ var b1Index = word.search(/(e|en|es)$/g);
+ var c1Index = word.search(/([bdfghklmnrt]s)$/g);
+ if (c1Index != -1) {
+ c1Index++;
+ }
+ var index1 = 10000;
+ var optionUsed1 = '';
+ if (a1Index != -1 && a1Index < index1) {
+ optionUsed1 = 'a';
+ index1 = a1Index;
+ }
+ if (b1Index != -1 && b1Index < index1) {
+ optionUsed1 = 'b';
+ index1 = b1Index;
+ }
+ if (c1Index != -1 && c1Index < index1) {
+ optionUsed1 = 'c';
+ index1 = c1Index;
+ }
+
+ /*
+ and delete if in R1. (Of course the letter of the valid s-ending is not necessarily in R1.) If an ending of group (b) is deleted, and the ending is preceded by niss, delete the final s.
+ (For example, äckern -> äck, ackers -> acker, armes -> arm, bedürfnissen -> bedürfnis)
+ */
+
+ if (index1 != 10000 && r1Index != -1) {
+ if (index1 >= r1Index) {
+ word = word.substring(0, index1);
+ if (optionUsed1 == 'b') {
+ if (word.search(/niss$/) != -1) {
+ word = word.substring(0, word.length -1);
+ }
+ }
+ }
+ }
+ /*
+ Step 2:
+ Search for the longest among the following suffixes,
+ (a) en er est
+ (b) st (preceded by a valid st-ending, itself preceded by at least 3 letters)
+ */
+
+ var a2Index = word.search(/(en|er|est)$/g);
+ var b2Index = word.search(/(.{3}[bdfghklmnt]st)$/g);
+ if (b2Index != -1) {
+ b2Index += 4;
+ }
+
+ var index2 = 10000;
+ var optionUsed2 = '';
+ if (a2Index != -1 && a2Index < index2) {
+ optionUsed2 = 'a';
+ index2 = a2Index;
+ }
+ if (b2Index != -1 && b2Index < index2) {
+ optionUsed2 = 'b';
+ index2 = b2Index;
+ }
+
+ /*
+ and delete if in R1.
+ (For example, derbsten -> derbst by step 1, and derbst -> derb by step 2, since b is a valid st-ending, and is preceded by just 3 letters)
+ */
+
+ if (index2 != 10000 && r1Index != -1) {
+ if (index2 >= r1Index) {
+ word = word.substring(0, index2);
+ }
+ }
+
+ /*
+ Step 3: d-suffixes (*)
+ Search for the longest among the following suffixes, and perform the action indicated.
+ end ung
+ delete if in R2
+ if preceded by ig, delete if in R2 and not preceded by e
+ ig ik isch
+ delete if in R2 and not preceded by e
+ lich heit
+ delete if in R2
+ if preceded by er or en, delete if in R1
+ keit
+ delete if in R2
+ if preceded by lich or ig, delete if in R2
+ */
+
+ var a3Index = word.search(/(end|ung)$/g);
+ var b3Index = word.search(/[^e](ig|ik|isch)$/g);
+ var c3Index = word.search(/(lich|heit)$/g);
+ var d3Index = word.search(/(keit)$/g);
+ if (b3Index != -1) {
+ b3Index ++;
+ }
+
+ var index3 = 10000;
+ var optionUsed3 = '';
+ if (a3Index != -1 && a3Index < index3) {
+ optionUsed3 = 'a';
+ index3 = a3Index;
+ }
+ if (b3Index != -1 && b3Index < index3) {
+ optionUsed3 = 'b';
+ index3 = b3Index;
+ }
+ if (c3Index != -1 && c3Index < index3) {
+ optionUsed3 = 'c';
+ index3 = c3Index;
+ }
+ if (d3Index != -1 && d3Index < index3) {
+ optionUsed3 = 'd';
+ index3 = d3Index;
+ }
+
+ if (index3 != 10000 && r2Index != -1) {
+ if (index3 >= r2Index) {
+ word = word.substring(0, index3);
+ var optionIndex = -1;
+ var optionSubsrt = '';
+ if (optionUsed3 == 'a') {
+ optionIndex = word.search(/[^e](ig)$/);
+ if (optionIndex != -1) {
+ optionIndex++;
+ if (optionIndex >= r2Index) {
+ word = word.substring(0, optionIndex);
+ }
+ }
+ } else if (optionUsed3 == 'c') {
+ optionIndex = word.search(/(er|en)$/);
+ if (optionIndex != -1) {
+ if (optionIndex >= r1Index) {
+ word = word.substring(0, optionIndex);
+ }
+ }
+ } else if (optionUsed3 == 'd') {
+ optionIndex = word.search(/(lich|ig)$/);
+ if (optionIndex != -1) {
+ if (optionIndex >= r2Index) {
+ word = word.substring(0, optionIndex);
+ }
+ }
+ }
+ }
+ }
+
+ /*
+ Finally,
+ turn U and Y back into lower case, and remove the umlaut accent from a, o and u.
+ */
+ word = word.replace(/U/g, 'u');
+ word = word.replace(/Y/g, 'y');
+ word = word.replace(/ä/g, 'a');
+ word = word.replace(/ö/g, 'o');
+ word = word.replace(/ü/g, 'u');
+
+ return word;
+ };
+//}
\ No newline at end of file
diff --git a/draklive/5/cs/content/search/stemmers/en_stemmer.js b/draklive/5/cs/content/search/stemmers/en_stemmer.js
new file mode 100644
index 00000000..f58012f2
--- /dev/null
+++ b/draklive/5/cs/content/search/stemmers/en_stemmer.js
@@ -0,0 +1,187 @@
+// Porter stemmer in Javascript. Few comments, but it's easy to follow against the rules in the original
+// paper, in
+//
+// Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14,
+// no. 3, pp 130-137,
+//
+// see also http://www.tartarus.org/~martin/PorterStemmer
+
+// Release 1 be 'andargor', Jul 2004
+// Release 2 (substantially revised) by Christopher McKenzie, Aug 2009
+
+
+var stemmer = (function(){
+ var step2list = {
+ "ational" : "ate",
+ "tional" : "tion",
+ "enci" : "ence",
+ "anci" : "ance",
+ "izer" : "ize",
+ "bli" : "ble",
+ "alli" : "al",
+ "entli" : "ent",
+ "eli" : "e",
+ "ousli" : "ous",
+ "ization" : "ize",
+ "ation" : "ate",
+ "ator" : "ate",
+ "alism" : "al",
+ "iveness" : "ive",
+ "fulness" : "ful",
+ "ousness" : "ous",
+ "aliti" : "al",
+ "iviti" : "ive",
+ "biliti" : "ble",
+ "logi" : "log"
+ },
+
+ step3list = {
+ "icate" : "ic",
+ "ative" : "",
+ "alize" : "al",
+ "iciti" : "ic",
+ "ical" : "ic",
+ "ful" : "",
+ "ness" : ""
+ },
+
+ c = "[^aeiou]", // consonant
+ v = "[aeiouy]", // vowel
+ C = c + "[^aeiouy]*", // consonant sequence
+ V = v + "[aeiou]*", // vowel sequence
+
+ mgr0 = "^(" + C + ")?" + V + C, // [C]VC... is m>0
+ meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$", // [C]VC[V] is m=1
+ mgr1 = "^(" + C + ")?" + V + C + V + C, // [C]VCVC... is m>1
+ s_v = "^(" + C + ")?" + v; // vowel in stem
+
+ return function (w) {
+ var stem,
+ suffix,
+ firstch,
+ re,
+ re2,
+ re3,
+ re4,
+ origword = w;
+
+ if (w.length < 3) { return w; }
+
+ firstch = w.substr(0,1);
+ if (firstch == "y") {
+ w = firstch.toUpperCase() + w.substr(1);
+ }
+
+ // Step 1a
+ re = /^(.+?)(ss|i)es$/;
+ re2 = /^(.+?)([^s])s$/;
+
+ if (re.test(w)) { w = w.replace(re,"$1$2"); }
+ else if (re2.test(w)) { w = w.replace(re2,"$1$2"); }
+
+ // Step 1b
+ re = /^(.+?)eed$/;
+ re2 = /^(.+?)(ed|ing)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ re = new RegExp(mgr0);
+ if (re.test(fp[1])) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+ } else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1];
+ re2 = new RegExp(s_v);
+ if (re2.test(stem)) {
+ w = stem;
+ re2 = /(at|bl|iz)$/;
+ re3 = new RegExp("([^aeiouylsz])\\1$");
+ re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re2.test(w)) { w = w + "e"; }
+ else if (re3.test(w)) { re = /.$/; w = w.replace(re,""); }
+ else if (re4.test(w)) { w = w + "e"; }
+ }
+ }
+
+ // Step 1c
+ re = /^(.+?)y$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(s_v);
+ if (re.test(stem)) { w = stem + "i"; }
+ }
+
+ // Step 2
+ re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem)) {
+ w = stem + step2list[suffix];
+ }
+ }
+
+ // Step 3
+ re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem)) {
+ w = stem + step3list[suffix];
+ }
+ }
+
+ // Step 4
+ re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+ re2 = /^(.+?)(s|t)(ion)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ if (re.test(stem)) {
+ w = stem;
+ }
+ } else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1] + fp[2];
+ re2 = new RegExp(mgr1);
+ if (re2.test(stem)) {
+ w = stem;
+ }
+ }
+
+ // Step 5
+ re = /^(.+?)e$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ re2 = new RegExp(meq1);
+ re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {
+ w = stem;
+ }
+ }
+
+ re = /ll$/;
+ re2 = new RegExp(mgr1);
+ if (re.test(w) && re2.test(w)) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+
+ // and turn initial Y back to y
+
+ if (firstch == "y") {
+ w = firstch.toLowerCase() + w.substr(1);
+ }
+
+ return w;
+ }
+})();
\ No newline at end of file
diff --git a/draklive/5/cs/content/search/stemmers/fr_stemmer.js b/draklive/5/cs/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 00000000..34f97431
--- /dev/null
+++ b/draklive/5/cs/content/search/stemmers/fr_stemmer.js
@@ -0,0 +1,299 @@
+/*
+ * Author: Kasun Gajasinghe
+ * E-Mail: kasunbg AT gmail DOT com
+ * Date: 09.08.2010
+ *
+ * usage: stemmer(word);
+ * ex: var stem = stemmer(foobar);
+ * Implementation of the stemming algorithm from http://snowball.tartarus.org/algorithms/french/stemmer.html
+ *
+ * LICENSE:
+ *
+ * Copyright (c) 2010, Kasun Gajasinghe. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY KASUN GAJASINGHE ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KASUN GAJASINGHE BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+var stemmer = function(word){
+// Letters in French include the following accented forms,
+// â à ç ë é ê è ï î ô û ù
+// The following letters are vowels:
+// a e i o u y â à ë é ê è ï î ô û ù
+
+ word = word.toLowerCase();
+ var oriWord = word;
+ word = word.replace(/qu/g, 'qU'); //have to perform first, as after the operation, capital U is not treated as a vowel
+ word = word.replace(/([aeiouyâàëéêèïîôûù])u([aeiouyâàëéêèïîôûù])/g, '$1U$2');
+ word = word.replace(/([aeiouyâàëéêèïîôûù])i([aeiouyâàëéêèïîôûù])/g, '$1I$2');
+ word = word.replace(/([aeiouyâàëéêèïîôûù])y/g, '$1Y');
+ word = word.replace(/y([aeiouyâàëéêèïîôûù])/g, 'Y$1');
+
+ var rv='';
+ var rvIndex = -1;
+ if(word.search(/^(par|col|tap)/) != -1 || word.search(/^[aeiouyâàëéêèïîôûù]{2}/) != -1){
+ rv = word.substring(3);
+ rvIndex = 3;
+ } else {
+ rvIndex = word.substring(1).search(/[aeiouyâàëéêèïîôûù]/);
+ if(rvIndex != -1){
+ rvIndex +=2; //+2 is to supplement the substring(1) used to find rvIndex
+ rv = word.substring(rvIndex);
+ } else {
+ rvIndex = word.length;
+ }
+ }
+
+// R1 is the region after the first non-vowel following a vowel, or the end of the word if there is no such non-vowel.
+// R2 is the region after the first non-vowel following a vowel in R1, or the end of the word if there is no such non-vowel
+ var r1Index = word.search(/[aeiouyâàëéêèïîôûù][^aeiouyâàëéêèïîôûù]/);
+ var r1 = '';
+ if (r1Index != -1) {
+ r1Index += 2;
+ r1 = word.substring(r1Index);
+ } else {
+ r1Index = word.length;
+ }
+
+ var r2Index = -1;
+ var r2 = '';
+ if (r1Index != -1) {
+ r2Index = r1.search(/[aeiouyâàëéêèïîôûù][^aeiouyâàëéêèïîôûù]/);
+ if (r2Index != -1) {
+ r2Index += 2;
+ r2 = r1.substring(r2Index);
+ r2Index += r1Index;
+ } else {
+ r2 = '';
+ r2Index = word.length;
+ }
+ }
+ if (r1Index != -1 && r1Index < 3) {
+ r1Index = 3;
+ r1 = word.substring(r1Index);
+ }
+
+ /*
+ Step 1: Standard suffix removal
+ */
+ var a1Index = word.search(/(ance|iqUe|isme|able|iste|eux|ances|iqUes|ismes|ables|istes)$/);
+ var a2Index = word.search(/(atrice|ateur|ation|atrices|ateurs|ations)$/);
+ var a3Index = word.search(/(logie|logies)$/);
+ var a4Index = word.search(/(usion|ution|usions|utions)$/);
+ var a5Index = word.search(/(ence|ences)$/);
+ var a6Index = word.search(/(ement|ements)$/);
+ var a7Index = word.search(/(ité|ités)$/);
+ var a8Index = word.search(/(if|ive|ifs|ives)$/);
+ var a9Index = word.search(/(eaux)$/);
+ var a10Index = word.search(/(aux)$/);
+ var a11Index = word.search(/(euse|euses)$/);
+ var a12Index = word.search(/[^aeiouyâàëéêèïîôûù](issement|issements)$/);
+ var a13Index = word.search(/(amment)$/);
+ var a14Index = word.search(/(emment)$/);
+ var a15Index = word.search(/[aeiouyâàëéêèïîôûù](ment|ments)$/);
+
+ if(a1Index != -1 && a1Index >= r2Index){
+ word = word.substring(0,a1Index);
+ } else if(a2Index != -1 && a2Index >= r2Index){
+ word = word.substring(0,a2Index);
+ var a2Index2 = word.search(/(ic)$/);
+ if(a2Index2 != -1 && a2Index2 >= r2Index){
+ word = word.substring(0, a2Index2); //if preceded by ic, delete if in R2,
+ } else { //else replace by iqU
+ word = word.replace(/(ic)$/,'iqU');
+ }
+ } else if(a3Index != -1 && a3Index >= r2Index){
+ word = word.replace(/(logie|logies)$/,'log'); //replace with log if in R2
+ } else if(a4Index != -1 && a4Index >= r2Index){
+ word = word.replace(/(usion|ution|usions|utions)$/,'u'); //replace with u if in R2
+ } else if(a5Index != -1 && a5Index >= r2Index){
+ word = word.replace(/(ence|ences)$/,'ent'); //replace with ent if in R2
+ } else if(a6Index != -1 && a6Index >= rvIndex){
+ word = word.substring(0,a6Index);
+ if(word.search(/(iv)$/) >= r2Index){
+ word = word.replace(/(iv)$/, '');
+ if(word.search(/(at)$/) >= r2Index){
+ word = word.replace(/(at)$/, '');
+ }
+ } else if(word.search(/(eus)$/) != -1){
+ var a6Index2 = word.search(/(eus)$/);
+ if(a6Index2 >=r2Index){
+ word = word.substring(0, a6Index2);
+ } else if(a6Index2 >= r1Index){
+ word = word.substring(0,a6Index2)+"eux";
+ }
+ } else if(word.search(/(abl|iqU)$/) >= r2Index){
+ word = word.replace(/(abl|iqU)$/,''); //if preceded by abl or iqU, delete if in R2,
+ } else if(word.search(/(ièr|Ièr)$/) >= rvIndex){
+ word = word.replace(/(ièr|Ièr)$/,'i'); //if preceded by abl or iqU, delete if in R2,
+ }
+ } else if(a7Index != -1 && a7Index >= r2Index){
+ word = word.substring(0,a7Index); //delete if in R2
+ if(word.search(/(abil)$/) != -1){ //if preceded by abil, delete if in R2, else replace by abl, otherwise,
+ var a7Index2 = word.search(/(abil)$/);
+ if(a7Index2 >=r2Index){
+ word = word.substring(0, a7Index2);
+ } else {
+ word = word.substring(0,a7Index2)+"abl";
+ }
+ } else if(word.search(/(ic)$/) != -1){
+ var a7Index3 = word.search(/(ic)$/);
+ if(a7Index3 != -1 && a7Index3 >= r2Index){
+ word = word.substring(0, a7Index3); //if preceded by ic, delete if in R2,
+ } else { //else replace by iqU
+ word = word.replace(/(ic)$/,'iqU');
+ }
+ } else if(word.search(/(iv)$/) != r2Index){
+ word = word.replace(/(iv)$/,'');
+ }
+ } else if(a8Index != -1 && a8Index >= r2Index){
+ word = word.substring(0,a8Index);
+ if(word.search(/(at)$/) >= r2Index){
+ word = word.replace(/(at)$/, '');
+ if(word.search(/(ic)$/) >= r2Index){
+ word = word.replace(/(ic)$/, '');
+ } else { word = word.replace(/(ic)$/, 'iqU'); }
+ }
+ } else if(a9Index != -1){ word = word.replace(/(eaux)/,'eau')
+ } else if(a10Index >= r1Index){ word = word.replace(/(aux)/,'al')
+ } else if(a11Index != -1 ){
+ var a11Index2 = word.search(/(euse|euses)$/);
+ if(a11Index2 >=r2Index){
+ word = word.substring(0, a11Index2);
+ } else if(a11Index2 >= r1Index){
+ word = word.substring(0, a11Index2)+"eux";
+ }
+ } else if(a12Index!=-1 && a12Index>=r1Index){
+ word = word.substring(0,a12Index+1); //+1- amendment to non-vowel
+ } else if(a13Index!=-1 && a13Index>=rvIndex){
+ word = word.replace(/(amment)$/,'ant');
+ } else if(a14Index!=-1 && a14Index>=rvIndex){
+ word = word.replace(/(emment)$/,'ent');
+ } else if(a15Index!=-1 && a15Index>=rvIndex){
+ word = word.substring(0,a15Index+1);
+ }
+
+ /* Step 2a: Verb suffixes beginning i*/
+ var wordStep1 = word;
+ var step2aDone = false;
+ if(oriWord == word.toLowerCase() || oriWord.search(/(amment|emment|ment|ments)$/) != -1){
+ step2aDone = true;
+ var b1Regex = /([^aeiouyâàëéêèïîôûù])(îmes|ît|îtes|i|ie|ies|ir|ira|irai|iraIent|irais|irait|iras|irent|irez|iriez|irions|irons|iront|is|issaIent|issais|issait|issant|issante|issantes|issants|isse|issent|isses|issez|issiez|issions|issons|it)$/i;
+ if(word.search(b1Regex) >= rvIndex){
+ word = word.replace(b1Regex,'$1');
+ }
+ }
+
+ /* Step 2b: Other verb suffixes*/
+ if (step2aDone && wordStep1 == word) {
+ if (word.search(/(ions)$/) >= r2Index) {
+ word = word.replace(/(ions)$/, '');
+ } else {
+ var b2Regex = /(é|ée|ées|és|èrent|er|era|erai|eraIent|erais|erait|eras|erez|eriez|erions|erons|eront|ez|iez)$/i;
+ if (word.search(b2Regex) >= rvIndex) {
+ word = word.replace(b2Regex, '');
+ } else {
+ var b3Regex = /e(âmes|ât|âtes|a|ai|aIent|ais|ait|ant|ante|antes|ants|as|asse|assent|asses|assiez|assions)$/i;
+ if (word.search(b3Regex) >= rvIndex) {
+ word = word.replace(b3Regex, '');
+ } else {
+ var b3Regex2 = /(âmes|ât|âtes|a|ai|aIent|ais|ait|ant|ante|antes|ants|as|asse|assent|asses|assiez|assions)$/i;
+ if (word.search(b3Regex2) >= rvIndex) {
+ word = word.replace(b3Regex2, '');
+ }
+ }
+ }
+ }
+ }
+
+ if(oriWord != word.toLowerCase()){
+ /* Step 3 */
+ var rep = '';
+ if(word.search(/Y$/) != -1) {
+ word = word.replace(/Y$/, 'i');
+ } else if(word.search(/ç$/) != -1){
+ word = word.replace(/ç$/, 'c');
+ }
+ } else {
+ /* Step 4 */
+ //If the word ends s, not preceded by a, i, o, u, è or s, delete it.
+ if (word.search(/([^aiouès])s$/) >= rvIndex) {
+ word = word.replace(/([^aiouès])s$/, '$1');
+ }
+ var e1Index = word.search(/ion$/);
+ if (e1Index >= r2Index && word.search(/[st]ion$/) >= rvIndex) {
+ word = word.substring(0, e1Index);
+ } else {
+ var e2Index = word.search(/(ier|ière|Ier|Ière)$/);
+ if (e2Index != -1 && e2Index >= rvIndex) {
+ word = word.substring(0, e2Index) + "i";
+ } else {
+ if (word.search(/e$/) >= rvIndex) {
+ word = word.replace(/e$/, ''); //delete last e
+ } else if (word.search(/guë$/) >= rvIndex) {
+ word = word.replace(/guë$/, 'gu');
+ }
+ }
+ }
+ }
+
+ /* Step 5: Undouble */
+ //word = word.replace(/(en|on|et|el|eil)(n|t|l)$/,'$1');
+ word = word.replace(/(en|on)(n)$/,'$1');
+ word = word.replace(/(ett)$/,'et');
+ word = word.replace(/(el|eil)(l)$/,'$1');
+
+ /* Step 6: Un-accent */
+ word = word.replace(/[éè]([^aeiouyâàëéêèïîôûù]+)$/,'e$1');
+ word = word.toLowerCase();
+ return word;
+};
+
+var eqOut = new Array();
+var noteqOut = new Array();
+var eqCount = 0;
+/*
+To test the stemming, create two arrays named "voc" and "COut" which are for vocabualary and the stemmed output.
+Then add the vocabulary strings and output strings. This method will generate the stemmed output for "voc" and will
+compare the output with COut.
+ (I used porter's voc and out files and did a regex to convert them to js objects. regex: /");\nvoc.push("/g . This
+ will add strings to voc array such that output would look like: voc.push("foobar"); ) drop me an email for any help.
+ */
+function testFr(){
+ var start = new Date().getTime(); //execution time
+ eqCount = 0;
+ eqOut = new Array();
+ noteqOut = new Array();
+ for(var k=0;k
+
+
+
+ Vyberte si klávesnici
Budete si muset vybrat rozložení klávesnice, které si přejete používat v
+Mageii. Výchozí je vybrána přiměřeně k vašemu jazyku a předchozí vybrané
+časové oblasti.
Vyberte si váš oblíbený jazyk, tím že nejprve rozbalíte seznam pro váš
+světadíl. Mageia použije tento výběr během
+instalace a pro váš instalovaný systém.
Mageia používá jako výchozí podporu pro UTF-8 (Unicode).
Jazyk vašeho systému po instalaci můžete změnit v nabídce Ovládací centrum
+Mageia -> Systém -> Spravovat lokalizaci pro váš systém.
Pokud upřednostňujete odlišné nastavení zavaděče namísto těch automaticky
+vybraných instalátorem, můžete je zde změnit.
Pokud již ve vašem počítači máte jiný operační systém, v tom případě se
+potřebujete rozhodnout, zda přidáte Mageiu k vašemu už existujícímu
+zavaděči, nebo Mageie dovolíte vytvořit nový zavaděč.
Tip
Grafické nabídky Mageii jsou pěkné:
Použití zavaděče Mageii
Ve výchozím nastavení Mageia zapisuje nový zavaděč (zastaralého) GRUBa do
+MBR (Hlavního spouštěcího záznamu) vašeho prvního pevného disku. Pokud už
+máte nainstalovány jiné operační systémy, Mageia se pokusí o jejich přidání
+do vaší nové spouštěcí nabídky Mageii.
Mageia teď také nabízí GRUB2 jako volitelný zavaděč navíc k zastaralému
+GRUBu a Lilu.
Varování
Linuxové systémy, které používají zavaděč GRUB2, nejsou v současnosti
+podporovány (zastaralým) GRUBem a nebudou rozpoznány, pokud je použit
+výchozí zavaděč GRUB.
Tady je nejlepším řešením používat zavaděč GRUB2, který je dostupný na
+souhrnné stránce během instalace.
Použití už existujícího zavaděče
Pokud se rozhodnete použít už existující zavaděč, potom se potřebujete během
+instalace ZASTAVIT na souhrnné stránce a klepnout na tlačítko zavaděče
+Nastavit, které vám dovolí změnit instalační umístění
+zavaděče.
Nevybírejte si zařízení jako je např. "sda", nebo přepíšete váš existující
+MBR. Musíte si vybrat kořenový oddíl, který jste si vybrali dříve během fáze
+dělení disku, jako je např. sda7.
Pro ujasnění, sda je zařízení, sda7 je oddíl nebo jinak řečeno oddíl na onom
+zařízení.
Tip
Jděte do tty2 stisknutím Ctrl+Alt+F2 a napište df pro
+zkontrolování, kde je umístěn váš / (kořenový)
+oddíl. Ctrl+Alt+F7 vás dostane nazpět na obrazovku instalátoru.
Přesný postup pro přidání vašeho systému Mageia k existujícímu zavaděči
+přesahuje oblast této nápovědy, avšak ve většině případů bude zahrnovat
+spuštění příslušného programu na instalaci zavaděče, který by ho měl
+rozpoznat a přidat automaticky. Podívejte se na dokumentaci k operačnímu
+systému, o nějž jde.
Pokročilé parametry zavaděče
pokud máte velmi omezený diskový prostor pro / oddíl,
+který obsahuje adresář /tmp, klepněte na tlačítko
+Pokročilé a zkontrolujte políčko Vyčistit
+/tmp před každým zavedením systému. Toto pomůže udržet trochu
+volného místa.
Se systémem UEFI
Se systémem UEFI je uživatelské rozhraní trochu odlišné, protože si nemůžete
+zvolit zavaděč systému, jelikož je dostupný jen Grub2-efi.
Pokud je Mageia prvním systémem nainstalovaným na váš počítač, instalátor
+vytvořil ESP (systémový oddíl EFI) pro zapsání zavaděče (Grub2-efi). Pokud
+ve vašem počítači byly už předtím nainstalovány operační systémy UEFI
+(například Windows 8), instalátor Mageii zjistil stávající ESP vytvořený
+operačním systémem Windows a přidal grub2-efi. Ačkoli je možno mít více
+oddílů ESP, radí se mít a stačí jen jeden, bez ohledu na počet operačních
+systémů, které máte v počítači.
Neupravujte "Zaváděcí zařízení", pokud s jistotou nevíte, co děláte.
Můžete přidat položku anebo upravit tu, kterou jste si nejprve vybrali,
+stisknutím příslušného tlačítka na obrazovce Nastavení
+zavaděče a upravováním obrazovky, která se objeví nad ní.
Poznámka
Pokud jste si vybrali Grub 2 jako váš zavaděč, můžete v tomto
+kroku použít tento nástroj na úpravu položek, stiskněte 'Další'. Potřebujete
+ručně upravit soubor /boot/grub2/custom.cfg, anebo místo toho
+použít grub-customizer.
Některými věcmi, které mohou být vykonány bez jakéhokoli nebezpečí, jsou
+změna nadpisu položky a zaškrtnutí políčka, aby se položka stala výchozí.
Můžete přidat správné číslo verze položky, nebo ji celou přejmenovat.
Výchozí položka je ta, kterou systém spustí, jestliže během spouštění
+systému neuděláte jinou volbu.
Varování
Úprava jiných věcí vás může ponechat s nespustitelným systémem. Nezkoušejte,
+prosím, nic bez znalosti toho, co děláte.
Se systémem UEFI
V tomto případě používáte Grub2-efi a nemůžete použít tento nástroj na
+úpravu položek v tomto kroku. Abyste to mohl vykonat, potřebujete ručně
+upravit /boot/grub2/custom.cfg nebo namísto toho použít
+grub-customizer. Jediné co tu můžete udělat, je zvolit výchozí
+položku ve vysouvacím seznamu.
Po klepnutí na tlačítko Další vám další vysouvací
+seznam dovolí vybrat si rozlišení obrazovky pro Grub2, který je grafickým
+zavaděčem systémů.
Tuto obrazovku dostanete, pokud jste si vybrali "Zavést Mageiu". Pokud ne,
+tak dostanete krok "Rozdělení disku"
Zkoušení hardware
Jeden z cílů Živého režimu je vyzkoušet, zda je hardware Mageiou správně
+spravován. Můžete zkontrolovat, zda všechna zařízení mají svůj ovladač v
+části Hardware Ovládacího centra Mageii. Můžete vyzkoušet většinu současných
+zařízení:
síťové rozhraní: nastavte ho s net_applet
grafická karta: pokud jste už viděli předešlou obrazovku, tak je už OK.
webová kamera:
zvuk: znělka už byla zahrána
tiskárna: nastavte ji a vytiskněte zkušební stránku
skener: nasnímejte dokument z ...
Pokud je to všechno pro vás v pořádku, můžete provést instalaci. Pokud ne,
+můžete odejít pomocí tlačítka pro skončení.
Nastavení nastavení, která jste tu udělali, jsou zachována pro instalaci.
Spustit instalaci
Pro spuštění instalace z Mageia LiveCD nebo Live DVD na pevný disk anebo
+mechaniku SSD, jednoduše klepněte na ikonu "Instalovat na pevný
+disk". Obdržíte tuto obrazovku, a potom krok pro "Rozdělení disku" jako u přímé instalace.
Pokud vás Mageia nepřesvědčila, nebo ji nemůžete správně nainstalovat,
+zkrátka pokud se jí chcete zbavit. Je to vaše právo a Mageia vám dává i
+možnost odinstalování. Toto neplatí u každého operačního systému.
Po zazálohování si vašich dat, restartujte počítač s vaším instalačním DVD
+Mageii a vyberte Záchranný systém, potom, Obnovit zavaděč Windows. Při
+dalším zavedení budete mít jen Windows bez možnosti volby vašeho operačního
+systému.
Pro obnovu místa použitého oddíly neboli diskovými oddíly Mageii ve Windows,
+klepněte na Start → Ovládací panely → Nástroje na správu → Správa
+počítače → Ukládací prostor → Správa disků pro zpřístupnění
+spravování oddílů. Oddíly Mageii rozpoznáte, protože jsou označeny jako
+Neznámé, a též podle velikosti a umístění na
+disku. Klepněte pravým tlačítkem na tyto oddíly a zvolte
+Smazat. Prostor bude uvolněn.
Pokud používáte Windows XP, můžete vytvořit nový oddíl a naformátovat jej
+(FAT32 nebo NTFS). Bude mu přiřazeno písmeno oddílu.
Pokud máte Windows Vista nebo Windows 7, máte o jednu možnost víc, můžete
+rozšířit existující oddíl, který je vlevo od volného místa. Jsou i jiné
+nástroje na dělení disku, které můžou být použity, jako je gparted, dostupný
+jak pro Windows tak pro Linux. Jako obyčejně, při změnách oddílů buďte velmi
+opatrní a ujistěte se, že všechny důležité věci byly zazálohovány.
V tomto kroku instalátor hledá nevyužité jazykové balíčky a nevyužité
+hardwarové balíčky. Potom vám navrhne jejich vymazání. Je dobrou myšlenkou
+přijmout to, kromě případu, že připravujete instalaci, která má běžet na
+odlišném počítačovém vybavení.
Dalším krokem je kopírování souborů na pevný disk. Toto zabere několik
+minut. Na konci dostanete na určitý čas prázdnou obrazovku. To je normální.