Mageiat levitatakse ISO-tõmmiste kaudu. Siin leiab abi valimaks just sellist
+tõmmist, mis vastab teie vajadustele.
Andmekandjaid on kaht tüüpi:
Klassikaline paigaldusandmekandja. Selle käivitamise järel asutakse kohe
+paigaldamise juurde ning te saate valida, mida paigaldada ja kuidas süsteemi
+vastavalt seadistada. See annab maksimaalse paindlikkuse ja lubab luua
+kohandatud paigalduse, eriti just valida, millist töökeskkonda kasutama
+hakata.
Live-andmekandja: sel juhul saab andmekandja pealt käivitada toimiva Mageia
+süsteemi ilma seda paigaldamata, et näiteks näha, mida üldse
+pakutakse. Paigaldamine on lihtsam, aga ka valikuid on vähem.
Üksikasjadest kõneldakse järgmistes osades.
Andmekandjad
Määratlus
Me nimetame siinkohal andmekandjaks ISO-tõmmisefaili, mis võimaldab
+paigaldada ja/või uuendada Mageiat, ning ühtlasi ka igasugust füüsilist
+seadet, millele ISO-tõmmis on kopeeritud.
Kasutavad traditsioonilist paigaldusprogrammi drakx
Saab teha nii puhta paigalduse kui ka uuendada varasematelt väljalasetelt
Eri andmekandjad 32- ja 64-bitisele arhitektuurile
Tervitusekraanil on saada mõned tööriistad: päästesüsteem, mälu testimine,
+riistvara tuvastamise tööriist
Iga DVD sisaldab paljusid saadaolevaid töökeskkondi ja keeli
Paigaldamise käigus lastakse valida, kas kasutada mittevaba tarkvara või
+mitte
Live-andmekandjad
Ühised omadused
Saab tarvitada distributsiooni tundmaõppimiseks ilma seda kohe kõvakettale
+paigaldamata, aga soovi korral siiski ka Mageia paigaldamiseks
Iga ISO sisaldab ainult üht töökeskkonda (Plasma, GNOME või Xfce).
Eri andmekandjad 32- ja 64-bitisele arhitektuurile
LiveISO-sid saab kasutada ainult puhta paigalduse,
+mitte aga uuendamise jaoks varasemalt versioonilt.
Sisaldavad mittevaba tarkvara
Plasma LiveDVD
Ainult Plasma töökeskkond.
Sisaldab kõiki keeli
Ainult 64-bitine arhitektuur
GNOME LiveDVD
Ainult GNOME töökeskkond
Sisaldab kõiki keeli
Ainult 64-bitine arhitektuur
Xfce LiveDVD
Ainult Xfce töökeskkond.
Sisaldab kõiki keeli
32- või 64-bitine arhitektuur
CD-d ainult alglaadimiseks
Ühised omadused
Need on väikesed tõmmised, mis sisaldavad vaid tarkvara, mida on vaja
+paigaldusprogrammi drakx käivitamiseks ning ISO-faili leidmiseks, et siis
+jätkata paigaldamisega. ISO-failid võivad asuda arvuti kõvakettal, mõnel
+muul kohalikul kettal, kohalikus võrgus või internetis.
Need andmekandjad on väga väikesed (alla 100 MB) ja abiks siis, kui
+internetiühenduse maht on liiga väike terve DVD allalaadimiseks, arvuti on
+ilma DVD-seadmeta või ei saa arvutit käivitada USB-pulga pealt.
Eri andmekandjad 32- ja 64-bitisele arhitektuurile
Ainult inglise keeles
netinstall.iso
Sisaldab ainult vaba tarkvara neile, kes ei ole nõus mittevaba tarkvara
+kasutama
netinstall-nonfree.iso
Sisaldab mittevaba tarkvara (peamiselt draiverid, koodekid jms.) neile, kes
+seda vajavad
Andmekandja allalaadimine ja kontrollimine
Allalaadimine
Kui olete sobiva ISO-faili valinud, saab selle alla laadida kas HTTP või
+BitTorrenti vahendusel. Mõlemal juhul annab aken mõningat teavet, näiteks
+kasutatava peegelsaidi ja võimaluse kohta seda vahetada, kui ribalaius on
+liiga väike. HTTP valimise korral peaks pilt olema umbes selline:
md5sum ja sha1sum on tööriistad ISO terviklikkuse kontrollimiseks. Kasutada
+tuleks ainult üht neist. Hoidke üks neist varuks edasiseks kasutamiseks. Seejärel ilmub selline
+aken:
Mõlemad kontrollsummad on kuueteistkümnendarvud, mis arvutatakse kindla
+algoritmiga allalaaditava faili põhjal. Kui paluda algoritmil arv uuesti
+leida allalaaditud faili põhjal, saab tulemuseks kas sama arvu, mis
+tähendab, et allalaaditud fail on korras, või siis mõne muu arvu, mis
+tähendab, et see ei ole korras. Viimasel juhul tuleks fail uuesti alla
+laadida või püüda see BitTorrenti abil parandada.
Avage konsool (selleks ei pea olema administraator) ja kirjutage:
ja võrrelge arvutis saadud arvu (võimalik, et peate natuke ootama) Mageia
+allalaadimissaidil näidatuga:
ISO kirjutamine
Kontrollitud ISO võib nüüd kirjutada CD-le, DVD-le või USB-pulgale. See ei
+ole tavaline kopeerimine, vaid eesmärk on luua käivitatav andmekandja.
ISO kirjutamine CD-le või DVD-le
Kasutage soovikohast kirjutamisprogrammi, aga kontrollige kindlasti, et
+seade oleks määratud kirjutama tõmmist,
+mitte aga andmeid või faile. Rohkem teavet leiab Mageia
+wikist.
ISO kirjutamine USB-pulgale
Kõik Mageia ISO-d on hübriidsed, mis tähendab, et neid saab kirjutada ka
+USB-pulgale, mis on käivitatav ja mille pealt saab süsteemi paigaldada.
Hoiatus
Tõmmise kirjutamine USB-pulgale hävitab kõik varasemad failisüsteemid
+seadmes, kõik andmed lähevad kaotsi ja partitsiooni suurus väheneb tõmmise
+suurusele.
Algse mahu taastamiseks tuleb USB-pulk uuesti partitsioneerida ja
+vormindada.
Graafilise tööriista kasutamine Mageias
Kasutada võib mõnda graafilist tööriista, näiteks IsoDumper.
Kõigi Mageia paigalduste korral on soovitatav
+määrata administraatori parool (Linuxis kasutatakse selle kohta tavaliselt
+väljendit root password). Parooli ülemisse kasti
+kirjutades muutub kilbi värv punasest kollaseks ja roheliseks vastavalt
+sellele, kui tugevaks parooli hinnatakse. Roheline kilp tähendab, et parool
+on tugev ja kindel. Sama parool tuleb kirjutada teist korda kohe allpool
+olevasse kasti: sellega kontrollitakse, et parool sai esimesse kasti õigesti
+kirjutatud, neid kahte omavahel võrreldes.
Märkus
Kõik paroolid on tõstutundlikud, see tähendab arvestavad väike- ja
+suurtähti. Parooli tugevuse huvides on mõistlik kasutada nii suur- ja
+väiketähti kui ka numbreid ja muid märke.
Kasutaja lisamine
Siin saab lisada kasutaja. Kasutajal on vähem õigusi kui administraatoril
+(root), kuid siiski piisavalt internetis liikumiseks, kontoritöörakenduste
+kasutamiseks, mängimiseks ja kõigeks muuks, mida tavaline kasutaja oma
+arvutis teeb
Ikoon: sellele nupule klõpsates saab muuta kasutaja
+ikooni.
Pärisnimi: siin saab kirja panna kasutaja tegeliku
+nime.
Kasutajatunnus: siin saab kirja panna kasutajanime või
+lasta DrakXil pakkuda pärisnimest tuletatud variandi.
+Kasutajatunnus on tõstutundlik.
Parool: siin saab kirja panna kasutaja
+parooli. Tekstikasti lõpus on kilp, mis näitab parooli tugevust (vt ka Märkus).
Parool (uuesti): siia tuleb kirjutada teist korda
+kasutaja parool ning DrakX kontrollib, kas see on ikka sama, mis kirjutati
+ülal asuvasse kasti.
Märkus
Kõigi Mageia paigaldamise ajal lisatud kasutajate kodukataloog on nii
+lugemis- kui ka kirjutuskaitstud (umask=0027).
Kõik vajalikud kasutajad saab lisada juba paigaldamise ajal
+kokkuvõtte etapil. Valige seal Kasutajate
+haldamine.
Ligipääsuõigusi saab mõistagi muuta ka pärast paigaldamist.
Siin näeb Linuxi partitsioone, mis arvutist leiti. Kui te pole
+DrakXi ettepanekutega nõus, võite haakepunkte
+muuta.
Märkus
Kui te ka midagi muudate, kontrollige alati, et teil jääks alles
+juurpartitsioon (/).
Kõiki partitsioone näidatakse kujul "Seade" ("Suurus", "Haakepunkt",
+"Tüüp").
"Seade" koosneb järgmistest elementidest: "kõvaketas",
+["kõvakettanumber"(täht)], "partitsiooninumber" (näiteks "sda5").
Kui partitsioone on palju, saab neile haakepunkte valida rippmenüüst
+(näiteks /, /home ja
+/var). Võib ka luua oma haakepunkte, näiteks
+/video partitsioonile, kuhu soovite salvestada filme, või
+/cauldron-home cauldroni paigalduse
+/home-partitsiooni tarbeks.
Partitsioonide puhul, mida teil vaja ei lähe, võib haakepunkti määramata
+jätta.
Hoiatus
Kui te pole kindel, mida valida, klõpsake Tagasi ning
+märkige Ketta jagamine oma tahtmist mööda. Ilmuval
+ekraanil saab partitsioonile klõpsates näha selle tüüpi ja suurust.
Kui olete kindel, et haakepunktid on paigas, klõpsake
+Edasi ja valige, kas soovite vormindada ainult
+partitsioonid, mida DrakX soovitab, või rohkem.
Algkäivituse võib teha otse andmekandjalt, millele olete kirjutanud oma
+tõmmise (CD-ROM, DVD-ROM vms). Tavaliselt tuleb andmekandja lihtsalt asetada
+CD/DVD-seadmesse ning alglaadur käivitab arvuti taaskäivitamise järel
+paigaldamise automaatselt. Kui seda ei juhtu, võib olla vajalik BIOS ümber
+seadistada või vajutada vastavat klahvi, mis võimaldab valida lisaseadme,
+millest arvuti käivitada.
Sõltuvalt teie riistvarast ja selle kehtivast seadistusest näete üht kahest
+alltoodud ekraanist.
USB-pulgalt
Algkäivituse saab teha USB-pulgalt, millele kirjutasite
+ISO-tõmmise. Sõltuvalt BIOS-e seadistusest võib arvuti otse käivituda
+USB-pulgalt, mis on masinaga ühendatud. Kui seda ei juhtu, võib olla vajalik
+BIOS ümber seadistada või vajutada vastavat klahvi, mis võimaldab valida
+lisaseadme, millest arvuti käivitada.
BIOS-e/CSM-i/Pärandrežiimis
Esimene ekraan BIOS-e režiimis algkäivitusel
Keskel asuvas menüüs saab valida kolme võimaluse vahel:
Mageia laadimine: see tähendab, et Mageia 5 käivitatakse ühendatud
+andmekandjalt (CD/DVD või USB-pulk) ilma midagi kettale kirjutamata, mis
+ühtlasi tähendab, et kõik võib olla väga aeglane. Kui käivitamine on läbi,
+võite ka süsteemi kõvakettale paigaldada.
Mageia paigaldamine: sel juhul paigaldatakse Mageia kohe kõvakettale.
Alglaadimine kõvakettalt: sel juhul käivitatakse süsteem kõvakettal, nagu
+seda tehakse ka siis, kui andmekandjat (CD/DVD või USB-pulk) pole masinaga
+ühendatud (Mageia 5 puhul see ei toimi).
Allservas asuvas menüüs leiab alglaadimisvalikud:
F1 - Abi. Selgitab valikuid "splash", "apm", "acpi" ja "Ide".
F2 - keel. Ekraanil nähtava keele valimine.
F3 - ekraanilahutus. Valida on tekst, 640x400, 800x600, 1024x728.
F4 - CD-Rom. CD-Rom või Muu. Tavaliselt sooritatakse paigaldamine ühendatud
+paigaldusandmekandjalt. Siin saab valida ka muu allika, näiteks FTP- või
+NFS-serveri. Kui paigaldus sooritatakse SLP-serveriga võrgus, tuleb selle
+korral valida serveril saada olev paigaldusandmekandja.
F6 - draiver. Jah või Ei. Süsteem on teadlik draiveriuuendusega lisaketta
+olemasolust ning nõuab selle paigaldamise käigus selle ühendamist.
F6 - kerneli võtmed. Siin saab määrata konkreetseid võtmeid, mida vajavad
+teie riistvara ja kasutatavad draiverid.
UEFI režiimis
Esimene ekraan UEFI süsteemi käivitamisel kettalt
Siin on ainult kaks valikut: Mageia käivitamine live-režiimis (esimene
+valik) või paigaldamine (teine valik).
Kui olete süsteemi laadinud USB-pulgalt, näeb veel kaht rida, mis on muidu
+samasugused nagu kaks esimest, ainult et lisatud on "USB". Siis tuleb valida
+üks neist.
Kõigil juhtudel on esimesteks sammudeks ühtmoodi keele, ajavööndi ja
+klaviatuuri valimine, seejärel aga lähevad asjad lahku Live-režiimi lisasammude tõttu.
Ketta kohandatud partitsioneerimine DiskDrake'i abil
Ketta kohandatud partitsioneerimine DiskDrake'i abil
Hoiatus
Kui soovite krüptida oma / partitsiooni, peab teil
+kindlasti olema ka eraldi /boot
+partitsioon. /boot partitsioonile EI TOHI määrata
+krüptimisvalikut, sest siis ei ole süsteemi võimalik üldse laadida.
Siin saab kohandada ketta või ketaste jagamist: eemaldada või luua
+partitsioone, muuta partitsiooni failisüsteemi või suurust ning isegi enne
+alustamist näha, mida partitsioon sisaldab.
Igale leitud kõvakettale või muule salvestusseadmele, näiteks USB-pulgale,
+on omaette kaart. Need võivad olla näiteks sda, sdb ja sdc, kui teil juhtub
+olema kolm salvestusseadet.
Kõigi valitud salvestusseadme partitsioonide kustutamiseks valige
+Kustuta kõik.
Kõigi teiste toimingute jaoks klõpsake kõigepealt vajalikul
+partitsioonil. Siis saate seda uurida, valida failisüsteemi või haakepunkti,
+suurust muuta või ka kustutada. Lülitu ekspertrežiimi
+(või Ekspertrežiim) pakub rohkem võimalusi, näiteks
+nime lisamine või partitsiooni tüübi valimine.
Jätkake, kuni kõik on nii, nagu soovite.
Kui kõik on valmis, klõpsake nupule Tehtud.
Märkus
Kui paigaldate Mageia UEFI süsteemi, kontrollige, kas ESP (EFI süsteemne
+partitsioon) on ikka olemas ja korrektselt haagitud asukohta /boot/EFI (vt
+tagapool).
Märkus
Kui paigaldate Mageia pärand/GPT süsteemi, kontrollige, kas korrektse
+tüübiga BIOS-e alglaadimispartitsioon on ikka olemas.
Sellel ekraanil näete oma kõvaketta või -ketaste sisu ning lahendusi, mida
+DrakXi partitsioneerimisnõustaja pakub Mageia
+paigaldamiseks.
Pakutavad valikud sõltuvad teie kõvaketaste konkreetsest ülesehitusest ja
+sisust.
Olemasolevate partitsioonide kasutamine
Kui see on näha, leiti olemasolevad Linuxiga ühilduvad partitsioonid ning
+neid võib kasutada paigaldamiseks.
Vaba ruumi kasutamine
Kui kõvakettal on kasutamata ruumi, siis selle valikuga saab selle eraldada
+uuele Mageia paigaldusele.
Vaba ruumi kasutamine Windowsi partitsioonil
Kui olemasoleval Windowsi partitsioonil on vaba ruumi, võib
+paigaldusprogramm seda kasutada.
See võib olla väga mõistlik valik oma uuele Mageia paigaldusele ruumi
+leidmiseks, kuid samal ajal on see riskantne, mistõttu tuleks kindlasti teha
+kõigist olulistest failidest varukoopia!
Pange tähele, et sellega kaasneb Windowsi partitsiooni suuruse
+vähendamine. Partitsioon peab olema "puhas", see tähendab Windows peab olema
+viimasel korral korrektselt suletud. Samuti peab partitsioon olema
+defragmenteeritud, ehkki see ei garanteeri veel, et kõik failid on alalt,
+mida Mageia paigaldamiseks kasutatakse, tõepoolest eemaldatud. Sellepärast
+ongi äärmiselt soovitatav kõik vähegi olulised failid eelnevalt varundada.
Selle valiku korral näitab paigaldusprogramm alles jäävat Windowsi
+partitsiooni helesinisena ja tulevast Mageia partitsiooni tumesinisena ning
+nende all näeb kavandatud suurusi. Ühtlasi on teil võimalus neid suurusi
+muuta, klõpsates partitsioonide vahel asuvale tühialale ja seda
+lohistades. Seda näitab allolev pilt.
Kogu ketta tühjendamine ja kasutamine
Selle valimisel kasutatakse kogu ketast ainult Mageia jaoks.
Tähelepanu! Sellega kustutatakse valitud kõvakettalt KÕIK andmed. Olge
+ettevaatlik!
Kui kavatsete kasutada osa kettast millegi muu tarbeks või on teil juba
+kettal andmeid, mida te ei soovi kaotada, ärge seda võimalust valige.
Ketta jagamine oma tahtmist mööda
See valik annab täieliku kontrolli määrata, kuidas ja kuhu Mageia kõvakettal
+või -ketastel paigaldatakse.
Partitsiooni suurus:
Paigaldusprogramm jagab saadaoleva ruumi ära järgmiste reeglite kohaselt:
Kui kokku on saadaval alla 50 GB, luuakse ainult üks partitsioon / jaoks
+ning /home jaoks eraldi partitsiooni ei looda.
Kui kokku on saadaval üle 50 GB, luuakse kolm partitsiooni
6/19 saadaolevast koguruumist eraldatakse / jaoks maksimaalse suurusega 50
+GB
1/19 eraldatakse saalealaks maksimaalse suurusega 4 GB
ülejäänu (vähemalt 12/19) eraldatakse /home jaoks
See tähendab, et kui ruumi on 160 GB või rohkem, loob paigaldusprogramm kolm
+partitsiooni: 50 GB / jaoks, 4 GB saaleala jaoks ja ülejäänu /home jaoks.
Märkus
Kui kasutate UEFI süsteemi, tuvastatakse automaatselt ESP (EFI süsteemne
+partitsioon) või see luuakse, kui seda pole, ja haagitakse asukohas
+/boot/EFI. Valik "Ketta jagamine oma tahtmist mööda" on ainuke, mis lubab
+kontrollida, kas seda on õigesti tehtud.
Märkus
Kui kasutate pärandsüsteemi (tuntud ka kui CSM või BIOS) GPT-kettaga, tuleb
+luua BIOS-e alglaadimispartitsioon, kui seda veel ei ole. See on umbes 1 MiB
+suurune partitsioon ilma haakepunktita. Selle loomiseks valige "“Ketta kohandatud partitsioneerimine DiskDrake'i abil”" ja looge see nagu iga teine partitsioon, ainult et
+valige failisüsteemiks BIOS boot partition.
Hoiatus
Mõned uuemad kettad kasutavad nüüd 4096-baidiseid loogilisi sektoreid
+varasema standardi, 512-baidiste sektorite asemel. Sobiva riistvara
+puudumise tõttu ei ole paigaldusprogrammis kasutatavat
+partitsioneerimistööriista niisuguste ketastega testitud. Seepärast
+soovitame juhul, kui Teil peaks olema niisugune seade, selle eelnevalt
+partitsioneerida, kasutades mõnda muud partitsioneerimistööriista, näiteks
+gparted.
"Align to" "MiB"
"Free space preceding (MiB)" "2"
Samuti kontrollige, et kõigi loodud partitsioonide suurus megabaitides oleks
+paarisarv.
Siin saab valida, millised partitsioonid vormindada. Kõik andmed
+partitsioonidel, mis ei ole vormindamiseks märgitud,
+säilivad.
Üldjuhul on vaja vormindada vähemalt partitsioonid, mille DrakX on valinud.
Kui klõpsata Muud valikud, saab valida partitsioonid,
+millel kontrollitakse niinimetatud riknenud plokke.
Vihje
Kui te pole kindel, et olete langetanud õige valiku, klõpsake
+Tagasi, veel kord Tagasi ja
+siis Kohandatud, et jõuda tagasi peaekraanile. Seal
+saate uurida, mis partitsioonidel leidub.
Kui olete oma valikus kindel, klõpsake jätkamiseks
+Edasi.
Keegi ei näe kõiki käsiraamatus toodud paigaldusprogrammi ekraane. See,
+millised ekraanid on näha, sõltub teie riistvarast ja paigaldamise käigus
+langetatud valikutest.
Käsiraamat on valmistatud Calenco
+CMS'i abil, mille on välja töötanud NeoDoc.
Käsiraamatu on kirjutanud ja tõlkinud vabatahtlikud oma vabast ajast. Kui
+soovite kaasa aidata käsiraamatu paremaks muutmisele, võtke ühendust dokumentatsioonimeeskonnaga.
Kirjutage oma kasutajanimi ja parool ning mõne hetke pärast ilmub teie ette
+juba KDE või GNOME töölaud vastavalt sellele, millist live-andmekandjat te
+kasutate. Nüüd võite oma vastset Mageiat kasutama hakata.
Kui alglaadur on paigaldatud, palutakse teil arvuti seisata, Live-CD
+eemaldada ja arvuti taaskäivitada. Klõpsake nupule Lõpeta ja talitage, nagu
+nõutud - ning just sellises järjekorras!
Taaskäivitamise järel näete allalaadimise edenemisribasid. Need annavad
+märku, et parajasti laaditakse alla tarkvaraallikaid (vt täpsemalt
+tarkvarahalduse osast).
" + "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/6/et/content/search/punctuation.props b/draklive/6/et/content/search/punctuation.props
new file mode 100644
index 00000000..d3e3fcd2
--- /dev/null
+++ b/draklive/6/et/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/6/et/content/search/stemmers/de_stemmer.js b/draklive/6/et/content/search/stemmers/de_stemmer.js
new file mode 100644
index 00000000..7ff3822a
--- /dev/null
+++ b/draklive/6/et/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/6/et/content/search/stemmers/en_stemmer.js b/draklive/6/et/content/search/stemmers/en_stemmer.js
new file mode 100644
index 00000000..f58012f2
--- /dev/null
+++ b/draklive/6/et/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/6/et/content/search/stemmers/fr_stemmer.js b/draklive/6/et/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 00000000..34f97431
--- /dev/null
+++ b/draklive/6/et/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
+
+
+
+ Klaviatuuri valimine
Grub2 (graafilise menüüga või ilma selleta) pärand/MBR või pärand/GPT
+süsteemi korral
Grub2-efi UEFI süsteemi korral
Vihje
Mageia graafiline menüü näeb kena välja :)
Grub2 pärand/MBR ja pärand/GPT süsteemis
Ärge muutke "Alglaadimisseadet", kui te pole täiesti kindel, et teate, mida
+teete.
Grub2-efi UEFI süsteemis
UEFI süsteemi korral on kasutajaliides pisut teistsugune, sest te ei saa
+valida graafilise menüü kasutamist või kasutamata jätmist.
Kui Mageia on ainuke süsteem, mis on teie arvutisse paigaldatud, loob
+paigaldusprogramm ESP (EFI süsteemse partitsiooni) alglaaduri (Grub2-efi)
+tarbeks. Kui arvutisse on juba paigaldatud UEFI operatsioonisüsteeme
+(näiteks Windows 8), tuvastab Mageia paigaldusprogramm Windowsi loodud ESP
+ja lisab sellele Grub2-efi. ESP-sid võib küll põhimõtteliselt olla ka mitu,
+aga väga soovitatav on siiski kasutada ainult üht sõltumata sellest, kui
+palju on arvutis operatsioonisüsteeme.
Ärge muutke "Alglaadimisseadet", kui te pole täiesti kindel, et teate, mida
+teete.
Mageia alglaaduri kasutamine
Vaikimisi kirjutab Mageia sõltuvalt süsteemist uue:
Grub2 alglaaduri kas Teie esimese kõvaketta MBR-i (Master Boot Record) või
+BIOS-e alglaadepartisioonile
Grub2-efi alglaaduri ESP-le
Kui arvutisse peaks olema paigaldatud teisigi operatsioonisüsteeme, püüab
+Mageia lisada need oma alglaadimismenüüsse. Kui Te seda ei soovi, klõpsake
+Järgmine ja eemaldage märge kastikesest
+Võõraste operatsioonisüsteemide otsimine
Olemasoleva alglaaduri kasutamine
Täpne protseduur, kuidas lisada Mageia süsteem olemasolevale alglaadurile,
+väljub käesoleva abiteksti raamest, kuid enamasti tähendab see asjakohase
+alglaaduri paigaldamise programmi käivitamist, mis tuvastab ja lisab selle
+automaatselt. Uurige selle kohta lähemalt vastava operatsioonisüsteemi
+dokumentatsiooni.
Ahellaadimise kasutamine
Kui Te ei soovi alglaaditavat Mageiat, vaid tahate seda laadida mõnest
+teisest operatsioonisüsteemist, siis klõpsake
+Järgmine, seejärel Muu ja
+märkige ära kastike ESP-i ega MBR-i ei puudutata.
Näete hoiatust, et alglaadur puudub. Eirake seda ja klõpsake
+Olgu.
Valikud
Esimene kaart
Ooteaeg alglaadimisel: selles kastis saab panna paika,
+kui mitu sekundit oodatakse, enne kui käivitatakse vaikimisi
+operatsioonisüsteem.
Turvalisus: siin saab määrata alglaaduri
+parooli. Sellisel juhul küsitakse alglaadimise ajal kasutajanime ja parooli,
+kui soovite valida mõnda alglaadimiskirjet või seadistusi
+muuta. Kasutajanimeks on "root", parooli saate siin ise määrata.
Parool: selles kastis saab parooli kindlaks määrata.
Parool (uuesti): siia tuleb parool teist korda
+kirjutada, mille järel Drakx kontrollib, kas see ikka sobib kokku sellega,
+mille sisestasid esimesel korral.
Edasijõudnuile
ACPI lubamine: ACPI (täiustatud konfiguratsiooni- ja
+toiteliides) on toitehalduse standard. See võib säästa energiat, lülitades
+välja kasutamata seadmed. Sama meetodit kasutas varem APM. Selle valimata
+jätmine võib aga olla kasulik, kui Teie arvuti ei toeta ACPI-t või Te
+arvate, et ACPI võib põhjustada mingeid probleeme (näiteks suvalisi
+taaskäivitusi või süsteemi hangumisi).
SMP lubamine: see valik lülitab sisse või välja
+sümmeetrilise mitmiktöötluse mitme tuumaga protsessorite korral.
APIC lubamine: selle lubamine või keelamine annab
+operatsioonisüsteemile või võtab sellelt ligipääsu täiustatud
+programmeeritavale katkestuste kontrollerile. APIC-seadmed võimaldavad
+keerulisemaid prioriteedi määramise mudeleid ja täiustatud IRQ
+(katkestusnõuded) haldamist.
Kohaliku APIC lubamine: siin saab lubada või keelata
+kohaliku APIC, mis haldab kõiki konkreetse protsessori väliseid katkestusi
+SMP-süsteemis.
Videorežiim: siin saab määrata ekraani suuruse ja
+värvisügavuse, mida alglaadur kasutab. Allapoole kolmnurgale klõpsates saab
+vaiida muute suuruse ja värvisügavuse valikute seast.
See ekraan ilmub, kui valida "Mageia laadimine". Kui seda ei juhtu, jõuate
+sammu Partitsioneerimine juurde.
Riistvara järeleproovimine
Üks Live-režiimi eesmärke on järele proovida, kas Mageia suudab riistvara
+korrektselt hallata. Sel juhul saab näiteks Mageia juhtimiskeskuse riistvara
+sektsioonis kontrollida, kas ikka kõigil seadmetel on draiver olemas. Järele
+saab proovida enamiku seadmeid:
võrguliides: seda aitab seadistada net_applet
videokaart: kui nägite eelmist ekraani, on sellega kõik korras
veebikaamera
helikaart: mingi kõll on juba kõlanud
printer: seda saab seadistada ja testlehekülje välja trükkida
skanner: võimalik on dokument skannida
Kui kõik on korras, võib paigaldamisega jätkata. Kui mitte, siis saab
+lihtsalt väljuda.
Siin langetatud seadistamisvalikud jäetakse paigaldamise käigus meelde.
Paigaldamise käivitamine
Mageia LiveCD või LiveDVD paigaldamiseks kõvakettale või SSD-kettale
+klõpsake lihtsalt ikoonile "Paigaldamine kõvakettale". Ilmub näidatav ekraan
+ja seejärel samm Partitsioneerimine,
+nagu ka otsepaigalduse korral.
Kui Mageia ei võida teie poolehoidu või paigaldamine ei kulge korralikult,
+võib tekkida soov sellest üldse lahti saada. Erinevalt mõnestki
+operatsioonisüsteemist Mageia arvestab teie sooviga ja võimaldab soovi
+korral ka endale täielikult selja keerata.
Kui olete oma andmed varundanud, taaskäivitage Mageia DVD ja valige
+Päästesüsteem ning seejärel käsk Restore Windows boot loader. Järgmisel
+arvuti käivitamisel ongi teie käsutuses ainult Windows, mitte enam võimalus
+operatsioonisüsteemi valida.
Ruumi tagasisaamiseks Windowsis, mida Mageia oma partitsioonide alla võttis,
+valige Start -> Control Panel -> Administrative Tools ->
+Computer Management -> Storage -> Disk Management, mis avab
+partitsioonide haldamise tööriista. Mageia partitsiooni tunneb ära kirje
+Unknown ning samuti suuruse ja asukoha järgi
+kettal. Klõpsake mõnele Mageia partitsioonile hiire parema nupuga ja valige
+Delete. Ruum vabanebki.
Kui teil on XP, saate luua uue partitsiooni ja selle vormindada (kas FAT32
+või NTFS-vormingusse). Uuele partitsioonile antakse oma täht.
Vista või 7 korral on veel üks võimalus: saab laiendada olemasolevat
+partitsiooni, mis asub vabanenud ruumist vasakul. Leidub ka teisi
+partitsioneerimistööriistu, mida saab kasutada, näiteks nii Windowsis kui ka
+Linuxis kättesaadav gparted. Nagu ikka partitsioonide muutmise korral, olge
+väga ettevaatlik ja kindlasti varundage eelnevalt kõik oma vähegi olulisemad
+andmed.
Sellel sammul otsib paigaldusprogramm tarbetuid lokaadi- ja
+riistvarapakette. Seejärel tehakse ettepanek need kustutada. See on üldiselt
+hea mõte, kui te just ei valmistu paigalduseks sootuks teistsugusel
+riistvaral.
Järgmisel sammul kopeeritakse failid kõvakettale. See võtab mõne minuti
+aega. Lõpus näeb mõnda aega tühja ekraani, millest ei tasu end heidutada
+lasta.