Mageia се дистрибуира преко ISO одраза. Ова страница ће вам помоћи да
+изаберете који одраз највише одговара вашим потребама.
Постоје три врсте инсталационих медија:
Класични инсталер: Покретање са овим
+медијом вам омогућава максималну флексибилност при избору шта инсталирате, и
+за подешавање вашег система. Нарочито, имате избор које десктоп окружење
+желите да инсталирате.
LIVE медиј: Ова опција вам омогућава да
+пробате Mageia без стварне инсталације и без прављења било каквих измена на
+вашем рачунару. Међутим, Live медиј такође поседује Инсталер, који се може
+покренути при подизању медија, или након подизања оперативног система са
+Live медија.
Примедба
Live Инсталер је једноставнији у односу на Класични инсталер - али имате
+мање опција за подешавања.
Важно
Live ISO фајлови се могу једино користити за креирање „чистих“
+инсталација, и не могу се користити за ажурирање већ инсталираних Mageia
+издања.
Мрежна инсталација: Ови минимални ISO
+фајлови садрже не више од онога што је потребно за покретање DrakX инсталера
+и проналажење DrakX-инсталер-корак2 и других пакета који
+су потребни та наставак и завршетак инсталације. Ови пакети могу бити на
+хард диску рачунара, на локалном уређају или на локалној мрежи или Интенету.
Ови медији су веома лагани (мањи од 100 MB) и практични су уколико је проток
+превише мали за преузимање комплетног DVD-а или уколико имате рачунар без
+DVD читача или уколико не можете да покренете подизање система са USB-а.
Више детаља је приказано у следећим секцијама.
Медиј
Дефиниција
Овде, медиј (множина: медији) представља ISO одраз који вам омогућава да
+инсталирате и/или ажурирате Mageia и, по екстензији, било који физички медиј
+(DVD, USB, ...) на који је ISO фајл копиран.
Ови ISO фајлви користе Класични инсталер под именом DrakX
Они се користе за извођење чисте инсталације или ажурирања претходно
+инсталиране верзије Mageia
Различити медији за 32 и 64-битне архитектуре
Неки алати су доступни у Инсталеру „Добродошли“ екран:
+Спашавање система, Тестирање меморије, и
+Алат за Детекцију хардвера
Сваки DVD садржи много различитих десктоп окружења и језика
Имаћете могућност избора током инстлације да додате не-слободан софтвер
Live медиј
Опште могућности
Може бити коришћен за пробу Mageia оперативног система без инсталације
Live медиј такође поседује Инсталер.
Сваки ISO садржи само једно графичко окружење (Plasma, GNOME или Xfce)
Различити медији за 32 и 64-битне архитектуре
Они садрже не-слободан софтвер
Live DVD Plasma
Само Плазма десктоп окружење
Сви доступни језици су присутни
само 64-битна архитектура
Live DVD GNOME
само GNOME десктоп окружење
Сви доступни језици су присутни
само 64-битна архитектура
Live DVD Xfce
Само XFce десктоп окружење
Сви доступни језици су присутни
32 или 64-битна архитектура
Медиј за мрежну инсталацију
Опште могућности
Различити медији за 32 и 64-битне архитектуре
Први кораци су само на Енглеском језику
netinstall.iso
Садржи само слободан софтвер, за оне који више воле да не користе
+не-слободан софтвер
netinstall-nonfree.iso
Садржи не-слободан софтвер (углавном драјвере, кодеке...) за оне којима је
+потребан
Преузимање и Провера Медија
Преузимање
Када једном изаберете ваш ISO фајл, можете га преузети коришћењем http-а или
+BitTorrent-а. У оба случаја, доступне су вам неке имформације, попут тога
+који се мирор користи као и опција за прелазак на алтернативни уколико је
+проток сувише мали.
Уколико је изабран http такође ћете видети и неке информације везане за суме
+за проверу.
md5sum, sha1sum и
+sha512sum (насигурније) су алати за проверу интегритета
+ISO фајлова. Копирајте једну од сума за проверу (низ алфанумеричких
+карактера) да би га користили у следећој секцији.
У међувремену ће се отворити прозор за преузимање стварног ISO фајла:
Кликните на Сачувај фајл, а затим кликните У
+реду.
Провера интегритета преузетих медија
Суме за проверу, како је раније наведено, су дигитални отисци крерирани од
+стране алгоритма из фајла који треба да се преузме. Можете поредити суме за
+проверу ваших преузетих ISO фајлова у односу на оргиналне изворне ISO
+фајлове. Уколико се суме за проверу не поклапају, то значи да стварни подаци
+у ISO фајловима се такође не поклапају, а уколико је то случај, онда би
+требали да их поново преузмете или поправите помоћу BitTorrent-а.
Да би креирали суму за проверу за ваше преузете ISO фајлове, отворите
+конзолу (нема потребе за рестартовањем), и:
Да би користили md5sum, укуцајте: md5sum
+path/to/the/image/file.iso
Да би користили sha1sum, укуцајте: sha1sum
+path/to/the/image/file.iso
Да би користили sha512sum, укуцајте: sha512sum
+path/to/the/image/file.iso
Пример:
а затим упоредите резутат (можда ћете морати да мало сачекате) са ISO сумом
+за проверу коју је обезбедила Mageia.
Нарежи или пребаци ISO
Проверени ISO сада може бити нарезан на CD/DVD или „пребачен“
+на USB меморију. Ово није стандардна опреција копирања, јер ће бити креиран
+медиј за покретање система.
Нарезивање ISO-а на CD/DVD
Без обзира који софтвер користите, осигурајте да користи опција за
+нарезивање одраза. Нарезивање
+података или фајлова НИЈЕ
+исправно. Погледајте Mageia
+вики за више информација.
Пребаците ISO на USB меморију
Сви ISO фајлови су хибридни, што значи да их можете пребацити на USB и
+користити одатле за подизање и инсталацију система.
Упозорење
Пребацивење одраза на флеш уређај уништава било који претходни фајл систем
+на уређају и сви постојећи подаци ће бити изгубљени.
Примедба
Такође, једина партиција на флеш уређају ће онда бити Mageia ISO партиција.
Па тако, ако је ISO величине око 4GB уписан на 8GB USB меморију, она ће се
+приказивати са само 4GB. Ово је због тога што преосталих 4GB више није
+форматирано - самим тим и доступно за коришење. Да би повратили оргинални
+капацитет, морате реформатирати и препартиционисати USB меморију.
Потенцијално је *опасно* ово ручно радити. Ризикујете да препишете
+потенцијално важне постојеће податке уколико поставите погрешан циљни
+уређај.
Отворите конзолу
Постаните root (Администратор) корисник са командом
+su - (не заборавите - )
Прикључите свој USB - али га немојте монтирати (ово значи да не отварате
+ниједну апликацији или фајл менаџер који би могао да му приступи или да га
+очита)
Унесите команду fdisk -l
Пронађите име уређаја за своју USB меморију (по њеној величини), на пример
+/dev/sdb је на снимку екрана горе, 8GB USB меморија.
Као другу могућност, можете пронаћи име уређаја са командом
+dmesg. При крају следећег примера, можете видети да име
+уређаја почиње са sd, и у овом случају,
+sdd је стварни уређај. Такође можете видети да је
+његова величина 2GB:
[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
Препоручљиво је да се за све Mageia инсталације постави
+superuser (Администраторска) лозинка, обично под именом
+root лозинка у Линуксу. Морате да поновите унос лозинке
+у пољу испод, да би потврдили да је први унос исправан.
Примедба
Док уносите лозинку у горњи оквир, штит ће се мењати из црвене у жуту у
+зелену у зависности од јачине лозинке. Зелени штит показује да користите
+јаку лозинку.
Све лозинке разлику мала и велика слова. Најбоље је да направите комбинацију
+слова (малих и Великих), бројева и других карактера у лозинки.
Унесите корисника
Додајте корисника овде. Обичан корисник има мања овлашћења у односу на
+супер корисника (root), али опет довољна да може да
+користи интернет, апликације или да игра игрице или било шта друго за шта
+просечан корисник рачунара корисити рачунар.
Иконица
Кликните на овај тастер уколико желите да промените иконицу корисника
Стварно име
Унесите стварно име корисника у овo поље за унос текста
Име за Пријаву
Унесите корисничко име за пријаву или дозволите да DrakX креира своју
+верзију краирану од стварног имена корисника. Корисничко име разликује велика и мала слова.
Упозорење
Корисничко име које је овде унето треба да се разликује од било ког другог
+које се тренутно користи за ваш /home
+директоријум. Неки кориснички параметри ће бити уписани у корисничком
+простору, а неки могу заобићи стварне податке попут података у Фајефроксу,
+Тандерберду или Кмаилу...
Лозинка
Унесите корисничку лозинку (памтећи препоруку у Напомени горе)
Лозинка (поново): Поново унесите корисничку
+лозинку. DrakX ће проверити да ли сте то исправно урадили.
Примедба
Било који корисник додан током инсталације Mageia, ће имати home
+директоријум који је заштићен и за читање и за уписивање (umask=0027)
Можете додати било који број потребних додатих корисника у
+Конфигурација - Сажетак кораку током
+инсталације. Изаберите Управљање корисницима.
Дозволе за приступ се такође могу променити након инсталације.
Можете покренути систем директно са Live DVD-а или USB-а. Обично је довољно
+да прикључите USB уређај или да ставите DVD у уређај и да рестартујете
+рачунар.
Уколико рачунар аутоматски не покрене подизање система са USB-а или DVD-а
+можда ће бити потребно да поново подесите приоритет у вашом BIOS Boot Disk
+опцију. Као другу могућност, можете пробати да приступите менију за
+покретање уређаја да би изабрали уређај са ког желите да рачунар покрене
+систем.
Савет
Да би приступили BIOS-у или boot менију при покретању рачунара, можете
+пробати да притиснете или F2, Del или
+Esc за BIOS, или Esc, F8,
+F10 или F11 за мени за boot уређаје. Ови
+(углавном уобичајени) тастери су само неке од могућих комбинација.
Примедба
Стварни екран који ћете видети као први приликом подизања система са Live
+медија ће зависити од тога да ли је матична плоча рачунара старог (BIOS) или
+UEFI типа.
У BIOS/CSM/Legacy моду
Први екран при подизању система у BIOS моду
Мени
Покрени Mageia
Ова опција ће покренути Mageia Live систем са повезаног DVD/USB уређаја
+(очекујте спорији систем у поређењу са инсталираним OS-ом).
Када се подизања система једном заврши, можете наставити са инсталацијом.
+ користи не-слободне видео драјвере (спорије за
+покретање)
Покреће Mageia Live систем корићењем не-слободних видео драјвера
Инсталирај Mageia
Ова опција ће инсталирати Mageia на тврди диск.
+ користи не-слободне видео драјвере (спорије за
+покретање)
Инсталира Mageia коришћењем не-слободних видео драјвера
Тестирај меморију
Проверите уграђену RAM меморију провођењем вишеструких операција читања и
+уписивања. Рестартујте рачунар да би завршили тестирање.
F2 Језик
Притисните F2 да би инсталер користио одређени језик током
+инсталације. Изаберите жељени језик помоћу тастера са стрелицама а затим
+притисните Ентер.
У UEFI моду
Први екран приликом подизања система у UEFI моду
Мени
Покрени Mageia
Ова опција ће покренути Mageia Live систем са прикљученог DVD/USB медија
+(очекујте спорији систем у поређењу са инсталираним ОС-ом). Када се систем
+подигне, можете наставити са инсталацијом
Инсталирај Mageia
Ова опција ће инсталирати Mageia на тврди диск.
F2 Језик
Притисните F2 да би инсталер користио одређени језик током
+инсталације. Изаберите жељени језик помоћу тастера са стрелицама а затим
+притисните Ентер.
Примедба
Уколико сте покренули систем са USB-a, видећете двоструке опције у менију, и
+у овом случају, требали би да изаберете опције из менија са суфиксом "USB".
На овом екрану можете да видите садржај вашег тврдог диска(ова) заједно са
+предлогом DrakX-а за партиционисање и где инсталирати Mageia.
Стварне доступне опције у поређењу са оним приказаним доле ће се разликовати
+у скаду са распоредом партиција и садржаја на вашем конкретном тврдом
+диску(овима).
Главне опције
Користи Постојеће партиције
Уколико је ова опција доступна, онда то значи да су постојеће Линукс
+компатибилне партиције пронађене и да се могу користити за инсталацију.
Користи слободан простор
Уколико имате неискоришћеног простора на вашем тврдом диску онда можете
+искористити ову опцију за вашу нову Mageia инсталацију.
Користи слободан простор на Windows
+партицији
Уколико имате неискоришћен простор на постојећој Windos партицији, инсталер
+вам може понудити да га искористите. Ово може бити користан начин за
+креирање простора за вашу нову Mageia инсталацију али погледајте упозорење
+доле.
Када користите ову опцију, инсталер приказује преосталу Windows партицију у
+светло плавој и предложену Mageia партицију у тамно плавој боји са њиховом
+предложеном величином непосредно испод. Имате могућност да промените ове
+величине кликом и превлачењем размака између те две партиције. Погледајте
+следећи снимак екрана:
Упозорење
Ово укључује смањивање величине Windows партиције, и због тога представља
+ризичну операцију, па би требало да направите резервну копију свих важних
+фајлова пре него наставите.
Важно
Партиција мора бити "чиста", што значи да Windows мора бити затворен на
+исправан начин када је задњи пут коришћен. Такође би требало да је
+дефрагмертирана, иако то није гаранција да ће сви подаци бити премештени на
+део који ће се користити за Mageia.
Обриши и користи Цео диск
Ова опција ће опредилити цео тврди диск за Mageia
Упозорење
Ово ће обрисати СВЕ податке на изабраном тврдом диску. Будите пажљиви!
+Иколико намеравате да користите део диска за нешто друго, или уколико већ
+имате податке на уређају које не желите да изгубите, немојте користити ову
+опцију.
Прилагођено Партиционисање Диска
Ово вам даје потпуну контролу над постављањем инсталације на ваш тврди
+диск(ове).
Уколико не користите опцију Прилагођено партиционисање
+диска, онда ће инсталер резервисати слободан простор на диску у
+складу са следећим правилима:
Уколико је укупни слободан простор мањи од 50 GB, онда се формира само једна
+партиција. Ово ће бити / (root) партиција.
Уколико је укупни слободан простор већи од 50 GB, онда ће бити креиране три
+партиције
6/19 од укупно доступног простора је предвиђено за / са
+максимумом од 50 GB
1/19 је предвиђено за swap са максимумом од 4 GB
остатак (најмање 12/19) је предвиђено за /home
Ово значи да ће од 160GB или више слободног доступног простора, инсталер
+креирати три партиције:
50 GB за /
4 GB за swap
а остатак за /home
Примедба
Уколико користите UEFI систем, ESP (EFI System Partition) ће аутоматски
+детектовати - или креирати уколико још увек не постоји - и монтирати се на
+/boot/EFI.Опција заПрилагођено партиционисање
+диска је једина која дозвољава проверу да ли је урађено све како
+треба.
Уколико користите Стари (познатији као BIOS) систем са GPT партиционисаним
+диском, морате да креирате BIOS boot партицију уколико не већ не
+постоји. Требало би да има величину од око 1 MiB без тачке монтирања. Можете
+је креирати са инсталером, под опцијом Прилагођено партиционисање
+диска„BIOS boot партиција“ за тип фајл система.
Погледајте DiskDrake за информацију како наставити даље.
Важно
Неки новији тврди дискови користе 4096 бајтне логичке секторе, уместо
+претходно стандардних 512. Услед недостатка доступног хардвера, алат за
+партиционисање који се користи у инсталеру није тестиран са таквим
+дисковима.
Неки SSD уређаји сада могу да бришу блокове величине преко 1 MB. Уколико
+имате такав уређај предлажемо да унапред креирате партиције на диску,
+коришћењем алернативних програма за партиционисање, попут gparted-а, и да
+користите ова подешавања:
Поравнај на = MiB
Слободан простор испред (MiB) = 2
Такође проверите да ли све креиране партиције користе исти број мегабајта.
Изаберите тачке монтирања
Овде можете видети Линукс партиције које су пронађене на вашем
+рачунару. Уколико се не слажете са предлозима DrakX-а, можете сами променити
+тачке монтирања.
Са леве стране падајућег менија је листа са доступним партицијама. На
+пример: sda је тврди диск - а 5 је
+број партиције, после ког следи (капацитет,
+тачка монтирања, тип фајл система) партиције.
Укоико имате неколико партиција, можете изабрати различите тачке
+монтирања из падајућег менија, као што су /,
+/home и /var. Можете чак направити
+своје сопствене тачке монтирања, за на пример /video
+партицију где желите да смештате своје филмове, или рецимо
+/Data за све ваше фајлове са подацима.
За било коју партицију која вам не треба, тачку монтирања не морате
+уписивати.
Упозорење
Уколико овде правите било какве измене, проверите да ли још увек имате
+/ (root) партицију.
Савет
Уколико нисте сигурни шта да изаберете, кликните на
+Претходно да би се вратили уназад а затим изаберите
+Произвољно партиционисање диска, где можете да
+кликенете на партицију да би видели њен тип и величину.
Уколико сте сигурни да су тачке монтирања исправне, кликните на
+Даље, и изаберите да ли желите само да форматирате
+партиције које је предложио DrakX, или више.
Потврдите форматирање тврдог диска
Кликните на Претходно уколико нисте сигурни за свој
+избор.
Кликните на Даље да би наставили уколико сте сигурни да
+је У РЕДУ да обришете сваку партицију,
+сваки оперативни систем и све податке који се можда налазе на тврдом диску.
Партиционисање Диска по избору са DiskDrake-ом
Овде можете променити распоред на вашем диску(овима). Можете уклонити или
+креирати партиције, променити фајл систем или величину партиције и
+прегледати детаље о њима пре него што почнете.
Постоји таб на врху за сваки детектовани тврди диск (или други уређај за
+смештање података попут USB-a), на пример: sda ,
+sdb, sdc итд.
За све друге акције: прво кликните на жељену партицију. Прегледајте је, или
+изаберите фајл систем и тачку монитрања, промените јој величину или је
+избришите. Експерт мод даје више могућности попут
+давања ознаке (имена) партиције, или избора типа партиције.
Наставите све док не подесите све како желите, а затим клините на
+Заврши када будете спремни.
Упозорење
Будите пажљиви са опцијом Очисти све, користите је само
+уколико сте сигурни да желите да избришете све партиције на изабраном
+уређају за смештање података.
Уколико желите да користите енкрипцију на својој /
+партицији морате имати одвојену /boot партицију. Опција
+за енкрипцију за /boot партицију НЕ СМЕ бити укључена,
+иначе подизање система неће бити могуће.
Важно
Уколико инсталирате Mageia на UEFI систем, проверите да ли је ESP (EFI
+Системска Партиција) присутна и да ли је исправно монтирана на
+/boot/EFI. Погледајте Слику 1 доле.
Уколико инсталирате Mageia на старије /GPT системе, проверите да ли је BIOS
+boot партиција присутна и да ли је исправног типа. Погледајте Слику 2 доле.
Слика 1. EFI Системска Партиција
Слика 2. BIOS boot партиција
Форматирање
Овде можете изабрати партицију(е) које желите да форматирате. Било који
+подаци на партицијима којинису означени за брисање ће
+бити сачувани.
Уобичајено је, да бар партиције које је изабрао DrakX, треба да буду
+форматиране.
Клините на Напредно да би изабрали партиције на којима
+желите да проверите да ли постоје такозвани лоши
+сектори
Савет
Уколико нисте направили прави избор, можете кликнути на
+Претходно, па опет на Претходно а
+затим на Прилагођено да би се вратили на главни екран,
+где онда можете изабрати да погледате детаље o вашим партицијама.
Када будете сигурни око избора, Кликните на Даље за
+наставак.
Нико неће видети све инсталационе екране које ви видите у овом упуству. Који
+од екрана ћете видети, зависи од вашег хардвера и избора које сте направили
+током инсталације.
Унесите своје корисничко име и лозинку, и за неколико секунди ћете се наћи у
+подигнутом KDE Plasma или GNOME десктопу, у зависности од live медија којег
+сте користили. Можете почети да користите и уживате у вашој Mageia
+инсталацији.
Додатну документацију можете пронаћи у Mageia викију.
Након инсталације стартера, добићете поруку да зауставите свој рачунар,
+извадите DVD/USB, и затим рестартујете рачунар.
Важно
Битно је да испоштујете кораке за гашење и рестартовање у истом редоследу.
Када сте спремни, притисните Крај.
Када рестартујете систем, видећете наследника траке за напредак
+преузимања. Ово указује да се преузимају листе медија са софтвером
+(погледајте Управљање Софтвером).
" + "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/9/sr/content/search/punctuation.props b/draklive/9/sr/content/search/punctuation.props
new file mode 100644
index 00000000..d3e3fcd2
--- /dev/null
+++ b/draklive/9/sr/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/9/sr/content/search/stemmers/de_stemmer.js b/draklive/9/sr/content/search/stemmers/de_stemmer.js
new file mode 100644
index 00000000..7ff3822a
--- /dev/null
+++ b/draklive/9/sr/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/9/sr/content/search/stemmers/en_stemmer.js b/draklive/9/sr/content/search/stemmers/en_stemmer.js
new file mode 100644
index 00000000..f58012f2
--- /dev/null
+++ b/draklive/9/sr/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/9/sr/content/search/stemmers/fr_stemmer.js b/draklive/9/sr/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 00000000..34f97431
--- /dev/null
+++ b/draklive/9/sr/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
+
+
+
+ Изаберите тастатуру
Изаберите свој језик. Mageia ће користити овај избор током инсталације као и
+на вашем инсталираном систему.
Mageia подразумевано користи подршку за UTF-8 (Unicode). Ово може бити
+деактивирано на екрану Вишеструки Језици уколико знате
+да није адекватна за ваш screen.Искључивање UTF-8 се онда односи на све
+инсталиране језике.
Ви можете променити језик на вашем систему након инсталације преко
+Mageia Контролни Центар → Систем → локализација за вап
+систем.
GRUB2 (са или без графичког менија) ће бити коришћен као стартер за
+Старе/MBR или Старе/GPT системе.
Подразумевано, нови стартер ће бити уписан или у MBR (Master Boot Record) на
+вашем првом тврдом диску или на BIOS boot партицију.
Grub2-efi на UEFI системима
GRUB2-efi или rEFInd се може користити као стартер за UEFI систем.
Подразумевано, нови стартер (Grub2-efi) ће бити уписан на ESP (EFI Системску
+партицију).
Уколико већ постоје оперативни системи базирани на UEFI-ју инсталирани на
+вашем рачунару (Windows 8 на пример), Mageia инсталер ће детектовати
+постојећу ESP партицију од стране Windows-а и додати grub2-efi на
+њу. Уколико не постоји ESP, онда ће бити креирана. Иако је могуће имати
+неколико ESP-а, само једна је потребaн, без обзира на број оперативних
+система које имате.
rEFInd
rEFInd на UEFI системима
rEFInd поседује добар графички сет опција, и може аутоматски детектовати EFI
+стартере. Погледајте: http://www.rodsbooks.com/refind/
Примедба
Имајте на уму да би могли да користите rEFInd опцију,
+инсталирана EFI Системска Партиција мора одговарати вашој архитектури
+система: уколико имате 32-битну EFI Системску Партицију инсталирану на
+64-битну машину на пример, онда вам rEFInd опција неће бити
+видиљива/доступна.
Подешавање Стартера
Главне опције стартера
Користити Стартер
GRUB2 (или са графичким или са текстуалним
+менијем), се може изабрати за оба Legacy MBR/BIOS
+UEFI система.
rEFInd (са графичким менијем) је алтернативна
+опција искључиво за употребу са UEFI системима.
Boot уређај
Упозорење
Не мењајте ово осим уколико заиста нисте сигурни да знате шта радите.
Примедба
Не постоји опција за уписивање GRUBa на boot сектор партиције (нпр:
+sda1), јер се овај метод сматра непоузданим.
Када се користи UEFI мод, тада ће boot уређај бити
+приказан као EFI Системска партиција.
Пауза пре подизања подразумеваног одраза
Овај текст бокс вам омогућава да подесите одлагање, у секундама, пре него се
+покрене подизање оперативног система.
Сигурност
Ово омогућава да подесите лозинку за ваш стартер. То значи да ће бити
+потребно корисничко име и лозинка при стартовању да би покренули систем или
+изменили подешавања. Ово је опција, и већина људи неће имати потребу да је
+користи. Корисничко име је root а лозинка је она која се
+овде одабере.
Лозинка
Изаберите лозинку за стартер (опција)
Лозинка (поново)
Поново унесите лозинку и DrakX ће проверити да ли се поклапа са оном коју
+сте уписали горе
Напредно
Омогући ACPI
ACPI (Advanced Configuration and Power Interface) је стандард у управљању
+енергијом. Он може да сачува енергију заустављањем некоришћених
+уређаја. Његово искључивање може бити корисно уколико , на пример, ваш
+рачунар не подржава ACPI или уколико мислите да ће имплементација ACPI-ја
+направити неке проблеме (на пример непредвиђена рестатовања или блокирања
+система).
Омогући SMP
Ова опција укључује/искључује симетрично мулти-процесирање за процесоре са
+више језгара
Омогући APIC
Када омогућите ово дајете оперативном систему приступ Advanced Programmable
+Interrupt Контролеру. APIC уређаји дозвољавају сложеније моделе за
+приоритете, и напредно управљање IRQ-има (Interrupt Request).
Омогући Local APIC
Овде можете подесити Local APIC, који управља свим спољним прекидима за
+појединачне просцесоре у SMP систему
Подешавање Стартера
Уколико сте на претходној секцији изабрали rEFInd као
+стартер који желите да корситите, онда би требало да вам буду презентоване
+опције приказане на снимку екрана доле. У супротном, пређите на следећи
+снимак екрана за ваше опције.
Опције ваше rEFInd конфигурације:
Инсталирајте или надоградите rEFInd на EFI системској
+партицији.
Инсталирај у /EFI/BOOT.
Ова опција инсталира стартер у /EFI/BOOT директоријум ESP-а (EFI System
+Partition). Ово може бити корисно када:
(a) инсталирате на преносиви уређај (нпр. USB меморију) који се може
+уклонити и прикачити на другу машину. Уколико је стартер смештен у
+/EFI/BOOT, UEFI BIOS-и ће га детекровати и омогућити вам да стартујете
+систем са тог уређаја.
(b) као алтерантивно решење где, услед проблематичног UEFI BIOS-а, ново
+уписани стартер за Mageia неће бити препознат при крају инсталације.
Уколико нисте изабрали rEFInd као стартер у претходној секцији, онда ће
+опције за подешаање вашег стартера бити приказане доле:
Подразумевано
Подразумевани Оперативни систем за покретање
Додај
Ова опција вам омогућава да проследите информације кернелу или да кажете
+кернелу да вам да више информација при покретању система.
Претражи друге ОС-ове
Уколико већ имате инсталиран неки други оперативни систем, Mageia ће
+покушати да их дода у ваш нови Mageia мени за покретање. Уколико не желите
+ово, онда деселектујте опцију Претражи друге
+ОС-ове.
Инсталирај у /EFI/BOOT. (Напомена: ова
+опција менија постаје доступна једино када инсталер детектује да је рачунар
+у UEFI моду).
Ова опција инсталира стартер у /EFI/BOOT директоријум ESP-а (EFI System
+Partition). Ово може бити корисно када:
(a) инсталирате на преносиви уређај (нпр. USB меморију) који се може
+уклонити и прикачити на другу машину. Уколико је стартер смештен у
+/EFI/BOOT, UEFI BIOS-и ће га детекровати и омогућити вам да стартујете
+систем са тог уређаја.
(b) као алтерантивно решење где, услед проблематичног UEFI BIOS-а, ново
+уписани стартер за Mageia неће бити препознат при крају инсталације.
Напредно
Видео мод
Ово подешава величину екрана и број боја који се користе у стартном
+менију. Уколико кликнете на доњи троугао моћи ћете да видите друге величине
+и број боја.
Не дирај ESP или MBR
Изаберите ову опцију уколико не желите бутабилни Mageia, већ желите да је
+радије покрећете из другог оперативног система. Добићете упозорење да
+недостаје стартер. Кликните на У Реду уколико
+сте сигурни да сте разумели последице, и желите да наставите.
Упозорење
Ланчано подизање преко старих стартера (GRUB Legacy и LiLo) више није
+подржано од стране Mageia јер је вероватно да неће успети подизање ове
+инсталације Mageia. Уколико желите да користите било шта друго осим GRUB2
+или rEFInd у ову сврху, онда то чините на сопствени ризик!
Остале опције
Користи постојећи стартер
Тачна процедура за додавање Mageia у постојећи стартер је ван домашаја ове
+документације. Међутим, у већини случајева укључиваће одговарајући програм
+за инсталацију стартера, који би требао да открије Mageia и аутоматски дода
+унос за њу у менију стартера. Погледајте документацију за одговарајући
+оперативни систем.
Инсталирај без Стартера
Иако можете изабрати да инсталирате Mageia без стартера (погледајте секцију
+2.1 Напредно), ово није порепоручљиво осим уколико нисте апсолутно сигурни
+да знате шта радите, јер без неке форме стартера нећете бити у могућности да
+покренете оперативни систем.
Додај или измени унос у Стартном менију
Да би ово урадили морате ручно да измените /boot/grub2/custom.cfg или да
+искористите алат grub-customizer (доступан
+у Mageia стовариштима).
Ово је екран ћете видети уколико изаберете опцију Подигини Mageia option from the Live медија менија.
Тестирање хардвера
Један од циљева коришћења Live мода је тестирање да ли је Mageia исправно
+препознала ваш хардвер. Можете проверити да ли сви уређају имају драјвер у
+секцији Хардвер Mageia Контролног Центра:
мрежни интерфејс: подесите са net_applet
графичка картица: уколико сте видели претходни екран, онда је већ све У
+РЕДУ.
звук: џингл је већ репродукован
штампач: подесите свој штампач/е и иштампајте тест страницу
скенер: скенирајте документ са ...
Уколико је све задовољавајуће, можете наставити са инсталацијом. Уколико
+није, можете искористити тастер Крај за излазак.
Примедба
Опције за подешавање које овде примените ће бити извршене уколико се
+одлучите да наставите са инсталацијом.
Покрени инсталацију
Да би покренули инсталацију са Live DVD-а на тврди диск или SSD драјв,
+једноставно кликните на Инсталирај на Тврди диск
+иконицу на Live десктопу. Потом ћете видети екран, праћен кораком Партиционисање .
Уколико вас Mageia није убедила или је не можете исправно инсталирати -
+укратко, желите да је се решите - то је ваше право и Mageia вам даје
+могућност да је деинсталирате. Ово не важи за све оперативне системе.
Након што направите резервну копију ваших података, рестартујте систем са
+вашим Mageia инсталационим DVD-ом и изаберите опцију Спашавање
+система, а затимВраћање Windows boot
+стартера. При следећем подизањеу система, имаћете само Windows,
+без могућности да изаберете ваш Mageia оперативни систем.
У Windows-у, да би повратили простор коришћем од стране Mageia партиција:
+кликните на Старт → Контролни
+Панел → Алати за Администрацију → Управљање Рачунаром → Спремиште → Управљање
+Дисковима. Препознаћете Mageia партиције јер су
+оне означене са Unknown, а и са њиховом величином и
+местом на диску. Кликните десним кликом на сваку од ових партиција и
+изаберите Обриши да би ослободили простор.
Уколико користите Windows XP, можете креирати нову партицију и форматирати
+је (FAT32 или NTFS). Затим ће јој бити додељено слово за партцију.
Уколико имате Vista или 7, имате још једну могућност, можете да проширите
+постојећу партицију која се налази са леве стране од слободног
+простора. Постоје други алати за партиционисање, који се могу користити,
+попут gparted-а, који је доступан и за
+Windows и за Линукс. Као и обично, када се мењају партиције, треба направити
+резервну копију важних података.
На овом кораку, инсталер ће потражити некоришћене локализационе и хардверске
+пакете и имаћете могућност да их обришете.
Уколико знате да вашу инсталацију нећете покретати на различитом хардверу,
+или знате да вам неће бити потребни додатни локализациони фајлови онда
+можете прихватити овај предлог.
Кликом на Напредно ћете добити листу некорићених
+хардверских и локализационих пакета који ће бити уклоњени уколико наставите.
Следећи корак је копирање фајлова на тврди диск. Овом поступку је потребно
+одређено време да би се завршио. На крају ћете на кратко видети празан екран
+- ово је нормално.