Mageia is distributed via ISO images. This page will help you to choose
+which image best suits your needs.
K dispozici jsou tři typy instalačních médií:
Classical installer: Booting with this
+media provides you with the maximum flexibility when choosing what to
+install, and for configuring your system. In particular, you have a choice
+of which Desktop environment to install.
LIVE media: This option allows you to try
+out Mageia without having to actually install it, or make any changes to
+your computer. However, the Live media also includes an Installer, which can
+be started when booting the media, or after booting into the Live operating
+system itself.
Poznámka
The Live Installer is simpler compared to the Classical Installer - but you
+have fewer configuration options.
Důležité
Live ISOs can only be used to create „clean“ installations,
+they cannot be used to upgrade previously installed Mageia releases.
Net Install: These are minimal ISO's
+containing no more than that which is needed to start the DrakX installer
+and find DrakX-installer-stage2 and other packages that
+are needed to continue and complete the install. These packages may be on
+the PC hard disk, on a local drive, on a local network or on the Internet.
These media are very light (less than 100 MB) and are convenient if
+bandwidth is too low to download a full DVD, or if you have a PC without a
+DVD drive or is unable to boot from a USB stick.
More details are given in the next sections.
Média
Definice
Here, a medium (plural: media) is an ISO image file that allows you to
+install and/or update Mageia and, by extension, any physical medium (DVD,
+USB stick, ...) the ISO file is copied to.
These ISOs use the Classical installer called DrakX
They are used for performing clean installs or to upgrade a previously
+installed version of Mageia
Different media for 32 and 64-bit architectures
Some tools are available in the Installer „Welcome“ screen:
+Rescue System, Memory Test, and Hardware
+Detection Tool
Každé DVD obsahuje spoustu grafických prostředí a jazykových mutací
You'll be given the choice during the installation to add non-free software
Živé nosiče
Běžné vlastnosti
Can be used to preview the Mageia operating system without having to install
+it
The Live media also includes an Installer.
Each ISO contains only one desktop environment (Plasma, GNOME or Xfce)
Different media for 32 and 64-bit architectures
They contain non-free software
Živé DVD Plasma
Plasma desktop environment only
All available languages are present
Pouze 64-bit architektura
Live DVD GNOME
GNOME desktop environment only
All available languages are present
Pouze 64-bit architektura
Živé DVD Xfce
Xfce desktop environment only
All available languages are present
32 nebo 64-bit architektura
Médium pro síťovou instalaci
Běžné vlastnosti
Different media for 32 and 64-bit architectures
First steps are English language only
netinstall.iso
Contains only free software, for those who prefer to not use non-free
+software
netinstall-nonfree.iso
Contains non-free software (mostly drivers, codecs...) for those who need it
Stahování a zkontrolování nosiče
Stažení
Once you have chosen your ISO file, you can download it using either http or
+BitTorrent. In both cases, you are provided with some information, such as
+the mirror in use and an option to switch to an alternative if the bandwidth
+is too low.
If http is chosen you will also see some information regarding checksums.
md5sum, sha1sum and
+sha512sum (the most secure) are tools to check the ISO
+integrity. Copy one of the checksums (string of alphanumeric characters) for
+use in the next section.
In the meantime, a window to download the actual ISO will open:
Click on Save File, then click OK.
Ověřování neporušenosti stáhnutého nosiče
The checksums referred to earlier, are digital fingerprints generated by an
+algorithm from the file to be downloaded. You may compare the checksum of
+your downloaded ISO against that of the original source ISO. If the
+checksums do not match, it means that the actual data on the ISO's do not
+match, and if that is the case, then you should retry the download or
+attempt a repair using BitTorrent.
To generate the checksum for your downloaded ISO, open a console, (no need
+to be root), and:
To use the md5sum, type: md5sum
+path/to/the/image/file.iso
To use the sha1sum, type: sha1sum
+path/to/the/image/file.iso
To use the sha512sum, type: sha512sum
+path/to/the/image/file.iso
Příklad:
then compare the result (you may have to wait for a while) with the ISO
+checksum provided by Mageia.
Vypálení nebo vepsání souboru ISO
The verified ISO can now be burned to a CD/DVD or „dumped“ to a
+USB stick. This is not a standard copy operation, as a bootable medium will
+actually be created.
Vypálení souboru ISO na CD/DVD
Whichever software you use, ensure that the option to burn an
+image is used. Burn data or
+files is NOT correct. See the the Mageia
+wiki for more information.
Zapsat ISO na USB flash
All Mageia ISOs are hybrids, which means you can dump them to a USB stick
+and then use that to boot and install the system.
Varování
Dumping an image onto a flash device destroys any previous file-system on
+the device and all existing data will be lost.
Poznámka
Also, the only partition on the flash device will then just be the Mageia
+ISO partition.
So, if an ISO of about 4GB is written to an 8GB USB stick, the stick will
+then only show up as 4GB. This is because the remaining 4GB is no longer
+formatted - hence not currently available for use. To recover the original
+capacity, you must reformat and repartition the USB stick.
Použitím grafického nástroje v Mageii
Můžete použít grafický nástroj, jakým je IsoDumper
It is potentially *dangerous* to do this by hand. You risk overwriting
+potentially valuable existing data if you specify the wrong target device.
Otevřete konzoli
Become a root (Administrator) user with the command
+su - (don't forget the - )
Plug in your USB stick - but do not mount it (this also means do not open
+any application or file manager that could access or read it)
Enter the command fdisk -l
Find the device name for your USB stick (by its size), for example
+/dev/sdb in the screenshot above, is an 8GB USB stick.
Alternatively, you can find the device name with the command
+dmesg. Towards the end of the following example, you can
+see the device name starting with sd, and in this case,
+sdd is the actual device. You can also see that its
+size is 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
Enter the command: dd if=path/to/the/ISO/file
+of=/dev/sdX bs=1M
Před instalací Mageii, si pečlivě přečtěte
+licenční podmínky a ustanovení.
Tyto podmínky a ujednání se vztahují na celou distribuci
+Mageia a musí být přijaty dříve, než budete moci
+pokračovat.
Pro pokračování, jednoduše zvolte Přijmout a poté
+klikněte na tlačítko Další
Pokud se rozhodnete nepřijmout tyto podmínky, pak vám děkujeme za váš zájem
+o projekt Mageia. Klepnutím na tlačítko Ukončit
+restartujete váš počítač.
Poznámky k vydání
Důležité informace o tomto vydání Mageia můžete zobrazit kliknutím na
+tlačítko Poznámky k vydání.
Pro všechny Mageia instalace je doporučeno nastavit superuživatelské
+(Administrátorské) heslo, v Linuxu také přezdívané jako heslo uživatele
+root. Budete muset zopakovat zadání hesla do pole níže
+pro ověření, že jste v prvním poli neudělali překlep.
Poznámka
Když budete psát heslo do vrchního pole, ikonka štítu se bude měnit z
+červené na žlutou a dále na zelenou, v závislosti na síle vašeho
+hesla. Zelená ikonka štítu vyznačuje, že používáte silné heslo.
Všechny hesla rozlišují malá a velká písmena. Je nejlepší používat kombinaci
+písmen (malých i velkých), čísel a dalších znaků při vytváření hesla.
Zadejte uživatele
Zde přidejte uživatele. Uživatel má méně oprávnění než superuživatel (root),
+ale dost na procházení internetu, používání kancelářskych aplikací anebo
+hraní her a pro cokoli jiného, co se svým počítačem provádí běžný uživatel.
Ikona
Pokud chcete změnit ikonu uživatele, klepněte na toto tlačítko
Skutečné Jméno
Do tohoto pole vložte skutečné jméno uživatele
Přihlašovací Jméno
Zde můžete zadat uživatelské přihlašovací jméno, nebo můžete nechat
+instalační program se pokusit použít skutečné jméno uživatele. Přihlašovací jméno rozlišuje malá a velká písmena.
Výstraha
Přihlašovací jméno zadané zde by mělo být jiné, než přihlašovací jméno,
+které se aktuálně používá v adresáři /home. Některé
+uživatelské parametry budou zapsány v uživatelském adresáři, takže by mohly
+přepsat data od aplikací jako například Firefox, Thunderbird nebo Kmail a
+další...
Heslo
Zadejte uživatelské heslo (pamatujte na doporučení z poznámky výše).
Heslo (znovu): Znovu zadejte uživatelské
+heslo. DrakX zkontroluje, zda jste heslo zadali správně.
Poznámka
Jakýkoliv uživatel přidaný v průběhu instalace Mageie bude mít domovský
+adresář chráněn proti čtení a zápisu (umask=0027)
Během instalace můžete přidat další potřebné uživatele v kroku
+Nastavení - Souhrn, zvolením Správa
+uživatelů.
Přístupová oprávnění lze změnit také po instalaci.
Můžete nastartovat přímo z živého DVD, nebo USB. Obvykle stačí zasunout USB
+zařízaní nebo vložit DVD do mechaniky a restartovat počítač.
If the computer does not automatically boot from the USB or DVD you may need
+to reconfigure your BIOS Boot Disk priority. Alternatively, you might try
+accessing the boot device menu to select a device from which the computer
+will boot.
Tip
Pro přístup do BIOSu, nebo boot menu, když počítač startuje, můžete
+vyzkoušet stisknutí kláves F2, Del nebo
+Esc. Pro boot menu pak Esc,
+F8, F10 nebo F11. Tyto
+(poměrně běžné) klávesy jsou pouze výběrem možných.
Poznámka
The actual screen that you will first see when booting from the Live media
+will depend on whether your computer motherboard is of the Legacy (BIOS) or
+UEFI type.
V zastaralém režimu BIOS/CSM
První obrazovka během spouštění v režimu BIOS
Nabídka
Zavést Mageiu
Tato volba nahraje systém s živou Mageiou z připojeného DVD/USB (očekávejte,
+že běh bude mnohem pomalejší než z instalovaného OS).
Po dokončení spuštění můžete pokračovat v instalaci.
+ použít nesvobodné video ovladače (pomalejší
+zavedení)
Spuštění živého systému Mageia s použitím nesvobodných video ovladačů
Instalovat Mageiu
Tato volba nainstaluje Mageiu na pevný disk.
+ použít nesvobodné video ovladače (pomalejší
+zavedení)
Instalovat Mageiu s použitím nesvobodných ovladačů grafické karty
Test paměti
Test the installed RAM by performing multiple read and write
+operations. Reboot to end the test.
F2 Jazyk
Press F2 to have the installer use a specific language
+during the installation. Use the arrow keys to select the language then
+press Enter.
V režimu UEFI
První obrazovka při startu v UEFI módu
Nabídka
Zavést Mageiu
This option will boot the Mageia Live system from the connected DVD/USB
+media (expect a very slow system compared to an installed OS). Once the
+boot is done, you can proceed to the installation
Instalovat Mageiu
Tato volba nainstaluje Mageiu na pevný disk.
F2 Jazyk
Press F2 to have the installer use a specific language
+during the installation. Use the arrow keys to select the language then
+press Enter.
Poznámka
If you booted from a USB stick, you will see the above menu options
+duplicated, and in this case, you should choose from the menu pair that will
+be suffixed with "USB".
In this screen you can see the content of your hard drive(s) along with the
+DrakX partitioning proposals for where to install Mageia.
The actual options available from those shown below will vary according to
+the layout and content of your particular hard drive(s).
Hlavní možnosti
Use Existing Partitions
Pokud je dostupná tato volba, potom byly nalezeny stávající s Linuxem
+kompatibilní oddíly a tyto mohou být použity pro instalaci.
Use Free Space
Pokud máte nevyužité místo na vašem pevném disku, potom ho tato volba
+využije pro novou instalaci Mageii.
Use Free Space on a Windows Partition
If you have unused space on an existing Windows partition, the installer may
+offer to use it. This can be a useful way of making room for your new Mageia
+installation but see the warning below.
With this option, the installer displays the remaining Windows partition in
+light blue and the proposed Mageia partition in dark blue with their
+intended sizes just underneath. You have the option to modify these sizes by
+clicking and dragging the gap between both partitions. See the following
+screenshot:
Varování
This involves shrinking the size of the Windows partition, and therefore is
+a risky operation, so you should make sure you have backed up all important
+files before proceeding.
Důležité
The partition must be "clean", meaning that Windows must have closed down
+correctly the last time it was used. It must also have been defragmented,
+although this is not a guarantee that all files in the partition have been
+moved out of the area that is about to be used for Mageia.
Smazat a použít celý disk
This option will allocate the entire drive for Mageia
Varování
This will erase ALL data on the selected hard drive. Take care! If you
+intend to use part of the disk for something else, or you already have data
+on the drive that you are not prepared to lose, then do not use this option.
Custom Disk Partitioning
Toto vám dává úplnou kontrolu nad umístěním instalace na vašem pevném disku
+(resp. discích).
If you are not using the Custom disk partitioning
+option, then the installer will allocate the available space according to
+the following rules:
If the total available space is less than 50 GB, then only one partition is
+created. This will be the / (root) partition.
If the total available space is greater than 50 GB, then three partitions
+are created
6/19 of the total available place is allocated to /
+with a maximum of 50 GB
1/19 is allocated to swap with a maximum of 4 GB
the rest (at least 12/19) is allocated to /home
This means that from 160 GB or greater available space, the installer will
+create three partitions:
50 GB pro /
4 GB pro swap
a zbytek pro /home
Poznámka
If you are using a UEFI system, the ESP (EFI System Partition) will be
+automatically detected - or created if it does not exist yet - and mounted
+on /boot/EFI. The Custom disk
+partitioning option is the only one that allows to check it has
+been correctly done.
If you are using a Legacy (also known as BIOS) system with a GPT partitioned
+disk, you need to create a BIOS boot partition if it doesn't already
+exist. It should be about 1 MiB with no mount point. It can be created with
+the Installer, under Custom disk partitioning, like any
+other partition. Be sure to select „BIOS boot partition“ for
+filesystem type.
Some newer drives are now using 4096 byte logical sectors, instead of the
+previous standard of 512. Due to lack of available hardware, the
+partitioning tool used in the installer has not been tested with such a
+drive.
Some SSD devices now use an erase block size over 1 MB. If you have such a
+device we suggest that you partition the drive in advance, using an
+alternative partitioning tool like gparted, and to use the following
+settings:
Align to = MiB
Free space preceding (MiB) = 2
Also make sure all partitions are created using an even number of megabytes.
Zvolte si přípojné body
Here you see the Linux partitions that have been found on your computer. If
+you don't agree with the DrakX suggestions, you can change the mount points
+yourself.
To the left of the drop-down menus is a list of available partitions. For
+example: sda is a hard drive - and
+5 is a partition number, followed
+by the (capacity, mount point, filesystem type) of the
+partition.
If you have several partitions, you can choose various different
+mount points from the drop down menu, such as
+/, /home and
+/var. You can even make your own mount points, for
+instance /video for a partition where you want to store
+your films, or perhaps /Data for all your data files.
Pro oddíly, které nechcete používat, můžete pole přípojného bodu ponechat
+prázdné.
Varování
Pokud zde provedete nějaké změny, ujistěte se, že stále máte diskový oddíl
+/ (root).
Tip
If you are not sure what to choose, click Previous to
+go back and then tick Custom disk partitioning, where
+you can click on a partition to see its type and size.
If you are sure the mount points are correct, click on
+Next, and choose whether you only want to format the
+partition suggested by DrakX, or more.
Potvrzení naformátování pevného disku
Click on Previous if you are at all unsure about your
+choice.
Click on Next to proceed if you are sure that it is OK
+to erase every partition, every operating system and all
+data that might be on that hard disk.
Custom Disk Partitioning with DiskDrake
Modify the layout of your disk(s) here. You can remove or create partitions,
+change the filesystem or size of a partition and even view their details
+before you start.
There is a tab at the top for every detected hard disk (or other storage
+device, like a USB key), for example: sda,
+sdb, sdc etc.
For all other actions: click on the desired partition first. Then view it,
+or choose a filesystem and a mount point, resize it or wipe
+it. Expert mode provides more options such as to label
+(name) a partition, or to choose a partition type.
Continue until you have adjusted everything to your satisfaction, then click
+Done when you're ready.
Varování
Take care with the Clear all option, use it only if you
+are sure you want to wipe all partitions on the selected storage device.
If you wish to use encryption on your / partition you
+must ensure that you have a separate /boot
+partition. The encryption option for the /boot
+partition must NOT be set, otherwise your system will be unbootable.
Důležité
If you are installing Mageia on a UEFI system, check that an ESP (EFI System
+Partition) is present and correctly mounted on
+/boot/EFI. See Figure 1 below.
If you are installing Mageia on a Legacy/GPT system, check that a BIOS boot
+partition is present and of the correct type. See Figure 2 below.
Obrázek 1. Systémový oddíl EFI
Obrázek 2. BIOS boot partition
Formátování
Here you can choose which partition(s) you wish to format. Any data on
+partitions not marked for formatting will be preserved.
Usually, at least the partitions that DrakX selected need to be formatted.
Click on Advanced to choose the partitions you want to
+check for so-called bad blocks
Tip
If you're not sure you have made the right choice, you can click on
+Previous, again on Previous and
+then on Custom to get back to the main screen, where
+you can choose to view details of your partitions.
When you are confident about the selections, click on
+Next to continue.
Nikdo se nepotká se všemi instalačními obrazovkami, které vidíte v této
+příručce. Kterou obrazovku uvidíte, záleží na vašem vybavení počítače a na
+volbách, které učiníte během instalace.
Finally, you will come to the desktop login screen.
Enter your user name and user password, and in a few seconds you will find
+yourself with a loaded KDE Plasma or GNOME desktop, depending on which live
+medium you used. You can now start using and enjoying your Mageia
+installation.
Once the bootloader has been installed, you will be prompted to halt your
+computer, remove the live DVD/USB stick and restart the computer.
Důležité
Ensure that you follow these shut-down and restart instruction steps in the
+same order.
Jakmile jste připraveni, stisknětě Dokončit.
When you restart, you will see a succession of download progress bars. These
+indicate that the software media lists are being downloaded (see
+Software Management).
" + "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/8/cs/content/search/punctuation.props b/draklive/8/cs/content/search/punctuation.props
new file mode 100644
index 00000000..d3e3fcd2
--- /dev/null
+++ b/draklive/8/cs/content/search/punctuation.props
@@ -0,0 +1,31 @@
+Punct01=\\u3002
+Punct02=\\u3003
+Punct03=\\u300C
+Punct04=\\u300D
+Punct05=\\u300E
+Punct06=\\u300F
+Punct07=\\u301D
+Punct08=\\u301E
+Punct09=\\u301F
+Punct10=\\u309B
+Punct11=\\u2018
+Punct12=\\u2019
+Punct13=\\u201A
+Punct14=\\u201C
+Punct15=\\u201D
+Punct16=\\u201E
+Punct17=\\u2032
+Punct18=\\u2033
+Punct19=\\u2035
+Punct20=\\u2039
+Punct21=\\u203A
+Punct22=\\u201E
+Punct23=\\u00BB
+Punct24=\\u00AB
+Punct25=
+Punct26=
+Punct27=\\u00A0
+Punct28=\\u2014
+
+
+
diff --git a/draklive/8/cs/content/search/stemmers/de_stemmer.js b/draklive/8/cs/content/search/stemmers/de_stemmer.js
new file mode 100644
index 00000000..7ff3822a
--- /dev/null
+++ b/draklive/8/cs/content/search/stemmers/de_stemmer.js
@@ -0,0 +1,247 @@
+/*
+ * Author: Joder Illi
+ *
+ * Copyright (c) 2010, FormBlitz AG
+ * All rights reserved.
+ * Implementation of the stemming algorithm from http://snowball.tartarus.org/algorithms/german/stemmer.html
+ * Copyright of the algorithm is: Copyright (c) 2001, Dr Martin Porter and can be found at http://snowball.tartarus.org/license.php
+ *
+ * Redistribution and use in source and binary forms, with or without modification, is covered by the standard BSD license.
+ *
+ */
+
+//var stemmer = function Stemmer() {
+ /*
+ German includes the following accented forms,
+ ä ö ü
+ and a special letter, ß, equivalent to double s.
+ The following letters are vowels:
+ a e i o u y ä ö ü
+ */
+
+ var stemmer = function(word) {
+ /*
+ Put u and y between vowels into upper case
+ */
+ word = word.replace(/([aeiouyäöü])u([aeiouyäöü])/g, '$1U$2');
+ word = word.replace(/([aeiouyäöü])y([aeiouyäöü])/g, '$1Y$2');
+
+ /*
+ and then do the following mappings,
+ (a) replace ß with ss,
+ (a) replace ae with ä, Not doing these, have trouble with diphtongs
+ (a) replace oe with ö, Not doing these, have trouble with diphtongs
+ (a) replace ue with ü unless preceded by q. Not doing these, have trouble with diphtongs
+ So in quelle, ue is not mapped to ü because it follows q, and in feuer it is not mapped because the first part of the rule changes it to feUer, so the u is not found.
+ */
+ word = word.replace(/ß/g, 'ss');
+ //word = word.replace(/ae/g, 'ä');
+ //word = word.replace(/oe/g, 'ö');
+ //word = word.replace(/([^q])ue/g, '$1ü');
+
+ /*
+ R1 and R2 are first set up in the standard way (see the note on R1 and R2), but then R1 is adjusted so that the region before it contains at least 3 letters.
+ R1 is the region after the first non-vowel following a vowel, or is the null region at the end of the word if there is no such non-vowel.
+ R2 is the region after the first non-vowel following a vowel in R1, or is the null region at the end of the word if there is no such non-vowel.
+ */
+
+ var r1Index = word.search(/[aeiouyäöü][^aeiouyäöü]/);
+ var r1 = '';
+ if (r1Index != -1) {
+ r1Index += 2;
+ r1 = word.substring(r1Index);
+ }
+
+ var r2Index = -1;
+ var r2 = '';
+
+ if (r1Index != -1) {
+ var r2Index = r1.search(/[aeiouyäöü][^aeiouyäöü]/);
+ if (r2Index != -1) {
+ r2Index += 2;
+ r2 = r1.substring(r2Index);
+ r2Index += r1Index;
+ } else {
+ r2 = '';
+ }
+ }
+
+ if (r1Index != -1 && r1Index < 3) {
+ r1Index = 3;
+ r1 = word.substring(r1Index);
+ }
+
+ /*
+ Define a valid s-ending as one of b, d, f, g, h, k, l, m, n, r or t.
+ Define a valid st-ending as the same list, excluding letter r.
+ */
+
+ /*
+ Do each of steps 1, 2 and 3.
+ */
+
+ /*
+ Step 1:
+ Search for the longest among the following suffixes,
+ (a) em ern er
+ (b) e en es
+ (c) s (preceded by a valid s-ending)
+ */
+ var a1Index = word.search(/(em|ern|er)$/g);
+ var b1Index = word.search(/(e|en|es)$/g);
+ var c1Index = word.search(/([bdfghklmnrt]s)$/g);
+ if (c1Index != -1) {
+ c1Index++;
+ }
+ var index1 = 10000;
+ var optionUsed1 = '';
+ if (a1Index != -1 && a1Index < index1) {
+ optionUsed1 = 'a';
+ index1 = a1Index;
+ }
+ if (b1Index != -1 && b1Index < index1) {
+ optionUsed1 = 'b';
+ index1 = b1Index;
+ }
+ if (c1Index != -1 && c1Index < index1) {
+ optionUsed1 = 'c';
+ index1 = c1Index;
+ }
+
+ /*
+ and delete if in R1. (Of course the letter of the valid s-ending is not necessarily in R1.) If an ending of group (b) is deleted, and the ending is preceded by niss, delete the final s.
+ (For example, äckern -> äck, ackers -> acker, armes -> arm, bedürfnissen -> bedürfnis)
+ */
+
+ if (index1 != 10000 && r1Index != -1) {
+ if (index1 >= r1Index) {
+ word = word.substring(0, index1);
+ if (optionUsed1 == 'b') {
+ if (word.search(/niss$/) != -1) {
+ word = word.substring(0, word.length -1);
+ }
+ }
+ }
+ }
+ /*
+ Step 2:
+ Search for the longest among the following suffixes,
+ (a) en er est
+ (b) st (preceded by a valid st-ending, itself preceded by at least 3 letters)
+ */
+
+ var a2Index = word.search(/(en|er|est)$/g);
+ var b2Index = word.search(/(.{3}[bdfghklmnt]st)$/g);
+ if (b2Index != -1) {
+ b2Index += 4;
+ }
+
+ var index2 = 10000;
+ var optionUsed2 = '';
+ if (a2Index != -1 && a2Index < index2) {
+ optionUsed2 = 'a';
+ index2 = a2Index;
+ }
+ if (b2Index != -1 && b2Index < index2) {
+ optionUsed2 = 'b';
+ index2 = b2Index;
+ }
+
+ /*
+ and delete if in R1.
+ (For example, derbsten -> derbst by step 1, and derbst -> derb by step 2, since b is a valid st-ending, and is preceded by just 3 letters)
+ */
+
+ if (index2 != 10000 && r1Index != -1) {
+ if (index2 >= r1Index) {
+ word = word.substring(0, index2);
+ }
+ }
+
+ /*
+ Step 3: d-suffixes (*)
+ Search for the longest among the following suffixes, and perform the action indicated.
+ end ung
+ delete if in R2
+ if preceded by ig, delete if in R2 and not preceded by e
+ ig ik isch
+ delete if in R2 and not preceded by e
+ lich heit
+ delete if in R2
+ if preceded by er or en, delete if in R1
+ keit
+ delete if in R2
+ if preceded by lich or ig, delete if in R2
+ */
+
+ var a3Index = word.search(/(end|ung)$/g);
+ var b3Index = word.search(/[^e](ig|ik|isch)$/g);
+ var c3Index = word.search(/(lich|heit)$/g);
+ var d3Index = word.search(/(keit)$/g);
+ if (b3Index != -1) {
+ b3Index ++;
+ }
+
+ var index3 = 10000;
+ var optionUsed3 = '';
+ if (a3Index != -1 && a3Index < index3) {
+ optionUsed3 = 'a';
+ index3 = a3Index;
+ }
+ if (b3Index != -1 && b3Index < index3) {
+ optionUsed3 = 'b';
+ index3 = b3Index;
+ }
+ if (c3Index != -1 && c3Index < index3) {
+ optionUsed3 = 'c';
+ index3 = c3Index;
+ }
+ if (d3Index != -1 && d3Index < index3) {
+ optionUsed3 = 'd';
+ index3 = d3Index;
+ }
+
+ if (index3 != 10000 && r2Index != -1) {
+ if (index3 >= r2Index) {
+ word = word.substring(0, index3);
+ var optionIndex = -1;
+ var optionSubsrt = '';
+ if (optionUsed3 == 'a') {
+ optionIndex = word.search(/[^e](ig)$/);
+ if (optionIndex != -1) {
+ optionIndex++;
+ if (optionIndex >= r2Index) {
+ word = word.substring(0, optionIndex);
+ }
+ }
+ } else if (optionUsed3 == 'c') {
+ optionIndex = word.search(/(er|en)$/);
+ if (optionIndex != -1) {
+ if (optionIndex >= r1Index) {
+ word = word.substring(0, optionIndex);
+ }
+ }
+ } else if (optionUsed3 == 'd') {
+ optionIndex = word.search(/(lich|ig)$/);
+ if (optionIndex != -1) {
+ if (optionIndex >= r2Index) {
+ word = word.substring(0, optionIndex);
+ }
+ }
+ }
+ }
+ }
+
+ /*
+ Finally,
+ turn U and Y back into lower case, and remove the umlaut accent from a, o and u.
+ */
+ word = word.replace(/U/g, 'u');
+ word = word.replace(/Y/g, 'y');
+ word = word.replace(/ä/g, 'a');
+ word = word.replace(/ö/g, 'o');
+ word = word.replace(/ü/g, 'u');
+
+ return word;
+ };
+//}
\ No newline at end of file
diff --git a/draklive/8/cs/content/search/stemmers/en_stemmer.js b/draklive/8/cs/content/search/stemmers/en_stemmer.js
new file mode 100644
index 00000000..f58012f2
--- /dev/null
+++ b/draklive/8/cs/content/search/stemmers/en_stemmer.js
@@ -0,0 +1,187 @@
+// Porter stemmer in Javascript. Few comments, but it's easy to follow against the rules in the original
+// paper, in
+//
+// Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14,
+// no. 3, pp 130-137,
+//
+// see also http://www.tartarus.org/~martin/PorterStemmer
+
+// Release 1 be 'andargor', Jul 2004
+// Release 2 (substantially revised) by Christopher McKenzie, Aug 2009
+
+
+var stemmer = (function(){
+ var step2list = {
+ "ational" : "ate",
+ "tional" : "tion",
+ "enci" : "ence",
+ "anci" : "ance",
+ "izer" : "ize",
+ "bli" : "ble",
+ "alli" : "al",
+ "entli" : "ent",
+ "eli" : "e",
+ "ousli" : "ous",
+ "ization" : "ize",
+ "ation" : "ate",
+ "ator" : "ate",
+ "alism" : "al",
+ "iveness" : "ive",
+ "fulness" : "ful",
+ "ousness" : "ous",
+ "aliti" : "al",
+ "iviti" : "ive",
+ "biliti" : "ble",
+ "logi" : "log"
+ },
+
+ step3list = {
+ "icate" : "ic",
+ "ative" : "",
+ "alize" : "al",
+ "iciti" : "ic",
+ "ical" : "ic",
+ "ful" : "",
+ "ness" : ""
+ },
+
+ c = "[^aeiou]", // consonant
+ v = "[aeiouy]", // vowel
+ C = c + "[^aeiouy]*", // consonant sequence
+ V = v + "[aeiou]*", // vowel sequence
+
+ mgr0 = "^(" + C + ")?" + V + C, // [C]VC... is m>0
+ meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$", // [C]VC[V] is m=1
+ mgr1 = "^(" + C + ")?" + V + C + V + C, // [C]VCVC... is m>1
+ s_v = "^(" + C + ")?" + v; // vowel in stem
+
+ return function (w) {
+ var stem,
+ suffix,
+ firstch,
+ re,
+ re2,
+ re3,
+ re4,
+ origword = w;
+
+ if (w.length < 3) { return w; }
+
+ firstch = w.substr(0,1);
+ if (firstch == "y") {
+ w = firstch.toUpperCase() + w.substr(1);
+ }
+
+ // Step 1a
+ re = /^(.+?)(ss|i)es$/;
+ re2 = /^(.+?)([^s])s$/;
+
+ if (re.test(w)) { w = w.replace(re,"$1$2"); }
+ else if (re2.test(w)) { w = w.replace(re2,"$1$2"); }
+
+ // Step 1b
+ re = /^(.+?)eed$/;
+ re2 = /^(.+?)(ed|ing)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ re = new RegExp(mgr0);
+ if (re.test(fp[1])) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+ } else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1];
+ re2 = new RegExp(s_v);
+ if (re2.test(stem)) {
+ w = stem;
+ re2 = /(at|bl|iz)$/;
+ re3 = new RegExp("([^aeiouylsz])\\1$");
+ re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re2.test(w)) { w = w + "e"; }
+ else if (re3.test(w)) { re = /.$/; w = w.replace(re,""); }
+ else if (re4.test(w)) { w = w + "e"; }
+ }
+ }
+
+ // Step 1c
+ re = /^(.+?)y$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(s_v);
+ if (re.test(stem)) { w = stem + "i"; }
+ }
+
+ // Step 2
+ re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem)) {
+ w = stem + step2list[suffix];
+ }
+ }
+
+ // Step 3
+ re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem)) {
+ w = stem + step3list[suffix];
+ }
+ }
+
+ // Step 4
+ re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+ re2 = /^(.+?)(s|t)(ion)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ if (re.test(stem)) {
+ w = stem;
+ }
+ } else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1] + fp[2];
+ re2 = new RegExp(mgr1);
+ if (re2.test(stem)) {
+ w = stem;
+ }
+ }
+
+ // Step 5
+ re = /^(.+?)e$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ re2 = new RegExp(meq1);
+ re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {
+ w = stem;
+ }
+ }
+
+ re = /ll$/;
+ re2 = new RegExp(mgr1);
+ if (re.test(w) && re2.test(w)) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+
+ // and turn initial Y back to y
+
+ if (firstch == "y") {
+ w = firstch.toLowerCase() + w.substr(1);
+ }
+
+ return w;
+ }
+})();
\ No newline at end of file
diff --git a/draklive/8/cs/content/search/stemmers/fr_stemmer.js b/draklive/8/cs/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 00000000..34f97431
--- /dev/null
+++ b/draklive/8/cs/content/search/stemmers/fr_stemmer.js
@@ -0,0 +1,299 @@
+/*
+ * Author: Kasun Gajasinghe
+ * E-Mail: kasunbg AT gmail DOT com
+ * Date: 09.08.2010
+ *
+ * usage: stemmer(word);
+ * ex: var stem = stemmer(foobar);
+ * Implementation of the stemming algorithm from http://snowball.tartarus.org/algorithms/french/stemmer.html
+ *
+ * LICENSE:
+ *
+ * Copyright (c) 2010, Kasun Gajasinghe. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY KASUN GAJASINGHE ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KASUN GAJASINGHE BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+var stemmer = function(word){
+// Letters in French include the following accented forms,
+// â à ç ë é ê è ï î ô û ù
+// The following letters are vowels:
+// a e i o u y â à ë é ê è ï î ô û ù
+
+ word = word.toLowerCase();
+ var oriWord = word;
+ word = word.replace(/qu/g, 'qU'); //have to perform first, as after the operation, capital U is not treated as a vowel
+ word = word.replace(/([aeiouyâàëéêèïîôûù])u([aeiouyâàëéêèïîôûù])/g, '$1U$2');
+ word = word.replace(/([aeiouyâàëéêèïîôûù])i([aeiouyâàëéêèïîôûù])/g, '$1I$2');
+ word = word.replace(/([aeiouyâàëéêèïîôûù])y/g, '$1Y');
+ word = word.replace(/y([aeiouyâàëéêèïîôûù])/g, 'Y$1');
+
+ var rv='';
+ var rvIndex = -1;
+ if(word.search(/^(par|col|tap)/) != -1 || word.search(/^[aeiouyâàëéêèïîôûù]{2}/) != -1){
+ rv = word.substring(3);
+ rvIndex = 3;
+ } else {
+ rvIndex = word.substring(1).search(/[aeiouyâàëéêèïîôûù]/);
+ if(rvIndex != -1){
+ rvIndex +=2; //+2 is to supplement the substring(1) used to find rvIndex
+ rv = word.substring(rvIndex);
+ } else {
+ rvIndex = word.length;
+ }
+ }
+
+// R1 is the region after the first non-vowel following a vowel, or the end of the word if there is no such non-vowel.
+// R2 is the region after the first non-vowel following a vowel in R1, or the end of the word if there is no such non-vowel
+ var r1Index = word.search(/[aeiouyâàëéêèïîôûù][^aeiouyâàëéêèïîôûù]/);
+ var r1 = '';
+ if (r1Index != -1) {
+ r1Index += 2;
+ r1 = word.substring(r1Index);
+ } else {
+ r1Index = word.length;
+ }
+
+ var r2Index = -1;
+ var r2 = '';
+ if (r1Index != -1) {
+ r2Index = r1.search(/[aeiouyâàëéêèïîôûù][^aeiouyâàëéêèïîôûù]/);
+ if (r2Index != -1) {
+ r2Index += 2;
+ r2 = r1.substring(r2Index);
+ r2Index += r1Index;
+ } else {
+ r2 = '';
+ r2Index = word.length;
+ }
+ }
+ if (r1Index != -1 && r1Index < 3) {
+ r1Index = 3;
+ r1 = word.substring(r1Index);
+ }
+
+ /*
+ Step 1: Standard suffix removal
+ */
+ var a1Index = word.search(/(ance|iqUe|isme|able|iste|eux|ances|iqUes|ismes|ables|istes)$/);
+ var a2Index = word.search(/(atrice|ateur|ation|atrices|ateurs|ations)$/);
+ var a3Index = word.search(/(logie|logies)$/);
+ var a4Index = word.search(/(usion|ution|usions|utions)$/);
+ var a5Index = word.search(/(ence|ences)$/);
+ var a6Index = word.search(/(ement|ements)$/);
+ var a7Index = word.search(/(ité|ités)$/);
+ var a8Index = word.search(/(if|ive|ifs|ives)$/);
+ var a9Index = word.search(/(eaux)$/);
+ var a10Index = word.search(/(aux)$/);
+ var a11Index = word.search(/(euse|euses)$/);
+ var a12Index = word.search(/[^aeiouyâàëéêèïîôûù](issement|issements)$/);
+ var a13Index = word.search(/(amment)$/);
+ var a14Index = word.search(/(emment)$/);
+ var a15Index = word.search(/[aeiouyâàëéêèïîôûù](ment|ments)$/);
+
+ if(a1Index != -1 && a1Index >= r2Index){
+ word = word.substring(0,a1Index);
+ } else if(a2Index != -1 && a2Index >= r2Index){
+ word = word.substring(0,a2Index);
+ var a2Index2 = word.search(/(ic)$/);
+ if(a2Index2 != -1 && a2Index2 >= r2Index){
+ word = word.substring(0, a2Index2); //if preceded by ic, delete if in R2,
+ } else { //else replace by iqU
+ word = word.replace(/(ic)$/,'iqU');
+ }
+ } else if(a3Index != -1 && a3Index >= r2Index){
+ word = word.replace(/(logie|logies)$/,'log'); //replace with log if in R2
+ } else if(a4Index != -1 && a4Index >= r2Index){
+ word = word.replace(/(usion|ution|usions|utions)$/,'u'); //replace with u if in R2
+ } else if(a5Index != -1 && a5Index >= r2Index){
+ word = word.replace(/(ence|ences)$/,'ent'); //replace with ent if in R2
+ } else if(a6Index != -1 && a6Index >= rvIndex){
+ word = word.substring(0,a6Index);
+ if(word.search(/(iv)$/) >= r2Index){
+ word = word.replace(/(iv)$/, '');
+ if(word.search(/(at)$/) >= r2Index){
+ word = word.replace(/(at)$/, '');
+ }
+ } else if(word.search(/(eus)$/) != -1){
+ var a6Index2 = word.search(/(eus)$/);
+ if(a6Index2 >=r2Index){
+ word = word.substring(0, a6Index2);
+ } else if(a6Index2 >= r1Index){
+ word = word.substring(0,a6Index2)+"eux";
+ }
+ } else if(word.search(/(abl|iqU)$/) >= r2Index){
+ word = word.replace(/(abl|iqU)$/,''); //if preceded by abl or iqU, delete if in R2,
+ } else if(word.search(/(ièr|Ièr)$/) >= rvIndex){
+ word = word.replace(/(ièr|Ièr)$/,'i'); //if preceded by abl or iqU, delete if in R2,
+ }
+ } else if(a7Index != -1 && a7Index >= r2Index){
+ word = word.substring(0,a7Index); //delete if in R2
+ if(word.search(/(abil)$/) != -1){ //if preceded by abil, delete if in R2, else replace by abl, otherwise,
+ var a7Index2 = word.search(/(abil)$/);
+ if(a7Index2 >=r2Index){
+ word = word.substring(0, a7Index2);
+ } else {
+ word = word.substring(0,a7Index2)+"abl";
+ }
+ } else if(word.search(/(ic)$/) != -1){
+ var a7Index3 = word.search(/(ic)$/);
+ if(a7Index3 != -1 && a7Index3 >= r2Index){
+ word = word.substring(0, a7Index3); //if preceded by ic, delete if in R2,
+ } else { //else replace by iqU
+ word = word.replace(/(ic)$/,'iqU');
+ }
+ } else if(word.search(/(iv)$/) != r2Index){
+ word = word.replace(/(iv)$/,'');
+ }
+ } else if(a8Index != -1 && a8Index >= r2Index){
+ word = word.substring(0,a8Index);
+ if(word.search(/(at)$/) >= r2Index){
+ word = word.replace(/(at)$/, '');
+ if(word.search(/(ic)$/) >= r2Index){
+ word = word.replace(/(ic)$/, '');
+ } else { word = word.replace(/(ic)$/, 'iqU'); }
+ }
+ } else if(a9Index != -1){ word = word.replace(/(eaux)/,'eau')
+ } else if(a10Index >= r1Index){ word = word.replace(/(aux)/,'al')
+ } else if(a11Index != -1 ){
+ var a11Index2 = word.search(/(euse|euses)$/);
+ if(a11Index2 >=r2Index){
+ word = word.substring(0, a11Index2);
+ } else if(a11Index2 >= r1Index){
+ word = word.substring(0, a11Index2)+"eux";
+ }
+ } else if(a12Index!=-1 && a12Index>=r1Index){
+ word = word.substring(0,a12Index+1); //+1- amendment to non-vowel
+ } else if(a13Index!=-1 && a13Index>=rvIndex){
+ word = word.replace(/(amment)$/,'ant');
+ } else if(a14Index!=-1 && a14Index>=rvIndex){
+ word = word.replace(/(emment)$/,'ent');
+ } else if(a15Index!=-1 && a15Index>=rvIndex){
+ word = word.substring(0,a15Index+1);
+ }
+
+ /* Step 2a: Verb suffixes beginning i*/
+ var wordStep1 = word;
+ var step2aDone = false;
+ if(oriWord == word.toLowerCase() || oriWord.search(/(amment|emment|ment|ments)$/) != -1){
+ step2aDone = true;
+ var b1Regex = /([^aeiouyâàëéêèïîôûù])(îmes|ît|îtes|i|ie|ies|ir|ira|irai|iraIent|irais|irait|iras|irent|irez|iriez|irions|irons|iront|is|issaIent|issais|issait|issant|issante|issantes|issants|isse|issent|isses|issez|issiez|issions|issons|it)$/i;
+ if(word.search(b1Regex) >= rvIndex){
+ word = word.replace(b1Regex,'$1');
+ }
+ }
+
+ /* Step 2b: Other verb suffixes*/
+ if (step2aDone && wordStep1 == word) {
+ if (word.search(/(ions)$/) >= r2Index) {
+ word = word.replace(/(ions)$/, '');
+ } else {
+ var b2Regex = /(é|ée|ées|és|èrent|er|era|erai|eraIent|erais|erait|eras|erez|eriez|erions|erons|eront|ez|iez)$/i;
+ if (word.search(b2Regex) >= rvIndex) {
+ word = word.replace(b2Regex, '');
+ } else {
+ var b3Regex = /e(âmes|ât|âtes|a|ai|aIent|ais|ait|ant|ante|antes|ants|as|asse|assent|asses|assiez|assions)$/i;
+ if (word.search(b3Regex) >= rvIndex) {
+ word = word.replace(b3Regex, '');
+ } else {
+ var b3Regex2 = /(âmes|ât|âtes|a|ai|aIent|ais|ait|ant|ante|antes|ants|as|asse|assent|asses|assiez|assions)$/i;
+ if (word.search(b3Regex2) >= rvIndex) {
+ word = word.replace(b3Regex2, '');
+ }
+ }
+ }
+ }
+ }
+
+ if(oriWord != word.toLowerCase()){
+ /* Step 3 */
+ var rep = '';
+ if(word.search(/Y$/) != -1) {
+ word = word.replace(/Y$/, 'i');
+ } else if(word.search(/ç$/) != -1){
+ word = word.replace(/ç$/, 'c');
+ }
+ } else {
+ /* Step 4 */
+ //If the word ends s, not preceded by a, i, o, u, è or s, delete it.
+ if (word.search(/([^aiouès])s$/) >= rvIndex) {
+ word = word.replace(/([^aiouès])s$/, '$1');
+ }
+ var e1Index = word.search(/ion$/);
+ if (e1Index >= r2Index && word.search(/[st]ion$/) >= rvIndex) {
+ word = word.substring(0, e1Index);
+ } else {
+ var e2Index = word.search(/(ier|ière|Ier|Ière)$/);
+ if (e2Index != -1 && e2Index >= rvIndex) {
+ word = word.substring(0, e2Index) + "i";
+ } else {
+ if (word.search(/e$/) >= rvIndex) {
+ word = word.replace(/e$/, ''); //delete last e
+ } else if (word.search(/guë$/) >= rvIndex) {
+ word = word.replace(/guë$/, 'gu');
+ }
+ }
+ }
+ }
+
+ /* Step 5: Undouble */
+ //word = word.replace(/(en|on|et|el|eil)(n|t|l)$/,'$1');
+ word = word.replace(/(en|on)(n)$/,'$1');
+ word = word.replace(/(ett)$/,'et');
+ word = word.replace(/(el|eil)(l)$/,'$1');
+
+ /* Step 6: Un-accent */
+ word = word.replace(/[éè]([^aeiouyâàëéêèïîôûù]+)$/,'e$1');
+ word = word.toLowerCase();
+ return word;
+};
+
+var eqOut = new Array();
+var noteqOut = new Array();
+var eqCount = 0;
+/*
+To test the stemming, create two arrays named "voc" and "COut" which are for vocabualary and the stemmed output.
+Then add the vocabulary strings and output strings. This method will generate the stemmed output for "voc" and will
+compare the output with COut.
+ (I used porter's voc and out files and did a regex to convert them to js objects. regex: /");\nvoc.push("/g . This
+ will add strings to voc array such that output would look like: voc.push("foobar"); ) drop me an email for any help.
+ */
+function testFr(){
+ var start = new Date().getTime(); //execution time
+ eqCount = 0;
+ eqOut = new Array();
+ noteqOut = new Array();
+ for(var k=0;k
+
+
+
+ Select Keyboard
Select your preferred language. Mageia will use this selection during the
+installation and for your installed system.
Mageia uses UTF-8 (Unicode) support by default. This may be disabled in the
+Multiple languages screen if you know that it is
+inappropriate for your language. Disabling UTF-8 applies to all installed
+languages.
You can change the language for your system post-installation in the
+Mageia Control Center → System → localization for your
+system.
GRUB2 (with or without graphical menu) will be used exclusively as the
+bootloader for a Legacy/MBR or Legacy/GPT system.
By default, a new bootloader will be written into either the MBR (Master
+Boot Record) of your first hard drive or in the BIOS boot partition.
Grub2-efi on UEFI systems
GRUB2-efi or rEFInd may be used as the bootloader for a UEFI system.
By default, a new bootloader (Grub2-efi) will be written into the ESP (EFI
+System Partition).
If there are already UEFI-based operating systems installed on your computer
+(Windows 8 for example), the Mageia installer will detect the existing ESP
+created by Windows and add grub2-efi to it. If no ESP exists, then one will
+be created. Although it is possible to have several ESPs, only one is
+required, whatever the number of operating systems you have.
rEFInd
rEFInd on UEFI systems
rEFInd has a nice graphical set of options, and can auto-detect installed
+EFI bootloaders. See: http://www.rodsbooks.com/refind/
Poznámka
Please note that in order to be able to use the rEFInd
+option, an installed EFI System Partition must match your system
+architecture: if you have a 32bit EFI System Partition installed on a 64bit
+machine for instance, then the rEFInd option will not be displayed/available
+to you.
Nastavení Bootloaderu
Základní nastavení zaváděcího programu
Bootloader to use
GRUB2 (with either a graphical or a text menu),
+can be chosen for both Legacy MBR/BIOS systems and
+UEFI systems.
rEFInd (with a graphical menu) is an alternative
+option solely for use with UEFI systems.
Boot device
Varování
Don't change this unless you really know what you are doing.
Poznámka
There is no option to write GRUB to the boot sector of a partition (e.g:
+sda1), as this method is considered unreliable.
When using UEFI mode, then the Boot device will be
+listed as EFI System Partition.
Delay before booting the default image
This text box lets you set a delay, in seconds, before the default operating
+system is started up.
Security
This allows you to set a password for the bootloader. This means a username
+and password will be required when booting in order to select a booting
+entry or change settings. This is optional, and most people are not likely
+to have a need for it. The username is root and the
+password is the one chosen hereafter.
Heslo
Choose a password for the bootloader (optional)
Password (again)
Retype the password and DrakX will check that it matches with the one set
+above
Advanced
Enable ACPI
ACPI (Advanced Configuration and Power Interface) is a standard for power
+management. It can save energy by stopping unused devices. Deselecting it
+could be useful if, for example, your computer does not support ACPI or if
+you think the ACPI implementation might cause some problems (for instance
+random reboots or system lockups).
Enable SMP
This option enables/disables symmetric multiprocessing for multi-core
+processors
Enable APIC
Enabling this gives the operating system access to the Advanced Programmable
+Interrupt Controller. APIC devices permit more complex priority models, and
+Advanced IRQ (Interrupt Request) management.
Enable Local APIC
Here you can set Local APIC, which manages all external interrupts for a
+specific processor in an SMP system
Nastavení zaváděcího programu
If, in the previous section you selected rEFInd as the
+bootloader to use, you would then be presented with the options shown in the
+screenshot directly below. Otherwise, please instead move on to the
+subsequent screenshot for your options.
Your rEFInd configuration options:
Install or update rEFInd in the EFI system
+partition.
Install in EFI/Boot partition (workaround for some
+BIOS's).
With some BIOS's, the newly written bootloader for Mageia at end of the
+installation will not be recognized. In that case, you can use this option
+as a workaround for the issue.
If you did not select rEFInd as the bootloader to use in the previous
+section, then your bootloader configurations are shown below:
Default
The operating system to be started up by default.
Append
This option lets you pass information to the kernel or tell the kernel to
+give you more information as it boots.
Probe foreign OS
If you already have other operating systems installed, Mageia attempts to
+add them to your new Mageia boot menu. If you don't want this behaviour,
+then untick the Probe Foreign OS option.
Advanced
Video mode
This sets the screen size and colour depth to be used by the boot menu. If
+you click the down-triangle you will be offered other size and colour depth
+options.
Do not touch ESP or MBR
Select this option if you don't want a bootable Mageia, but would rather
+chain-load it from another OS. You will get a warning that the bootloader is
+missing. Click Ok only if you are sure you
+understand the implications, and wish to proceed.
Varování
Chain-loading via legacy bootloaders (GRUB Legacy and LiLo) is no longer
+supported by Mageia as it is likely to fail when attempting to boot this
+resulting installation of Mageia. If you use anything other than GRUB2 or
+rEFInd for this purpose, then you do so at your own risk!
Další volby
Použití už existujícího zavaděče
The exact procedure for adding Mageia to an existing bootloader is beyond
+the scope of this documentation. However in most cases it will involve
+running the relevant bootloader installation program, which should detect
+Mageia and automatically add an entry for it in the bootloader menu. See the
+documentation for the relevant operating system.
Installing Without a Bootloader
While you can opt to install Mageia without a bootloader (see section 2.1
+Advanced), this is not recommended unless you absolutely know what you are
+doing, as without some form of bootloader your operating system will be
+unable to start.
Přidaní nebo změna položky v nabídce zavaděče
To do this you need to manually edit /boot/grub2/custom.cfg or use the
+software grub-customizer tool instead
+(available in the Mageia repositories).
This is the screen you will see if you selected the Boot Mageia option from the Live media menu.
Zkoušení hardware
One of the aims of using the Live mode is to test that your hardware is
+correctly managed by Mageia. You can check if all devices have a driver in
+the Hardware section of the Mageia Control Center:
síťové rozhraní: nastavte ho s net_applet
graphics card: if you see the previous screen, it's already OK.
zvuk: znělka už byla zahrána
printer: configure your printer/s and print a test page
skener: nasnímejte dokument z ...
If everything is satisfactory, you can proceed with the installation. If
+not, you can use the Quit button to exit.
Poznámka
The configuration settings you apply here are carried over if you decide to
+proceed with the installation.
Spustit instalaci
To launch the installation of the Live DVD to a hard disk or SSD drive,
+simply click the Install on Hard Disk icon on the Live
+desktop. You will then see this screen, followed by the Partitioning step.
If Mageia didn't convince you or you can't install it correctly - in short
+you want get rid of it - that is your right and Mageia also gives you the
+possibility to uninstall. This is not true for every operating system.
After backing up your data, reboot your Mageia installation DVD and select
+Rescue system, then Restore Windows boot
+loader. At the next boot, you will only have Windows, with no
+option to choose your Mageia operating system.
In Windows, to recover the space used by Mageia partitions: click on
+Start → Control
+Panel → Administrative Tools → Computer Management → Storage → Disk
+Management. You will recognise a Mageia
+partition because they are labeled Unknown, and also by
+their size and place on the disk. Right-click on each of these partitions
+and select Delete to free up the space.
If you are using Windows XP, you can create a new partition and format it
+(FAT32 or NTFS). It will then get a partition letter.
If you have Vista or 7, you have one more possibility, you can extend the
+existing partition that is at the left of the freed space. There are other
+partitioning tools that can be used, such as gparted, available for both Windows and Linux. As
+always, when changing partitions, be very careful to back up anything
+important to you.
In this step, the installer looks for unused locales packages and unused
+hardware packages and you are then given an opportunity to delete them.
If you do not foresee a case where your installation may need to run on
+different hardware, or that you might need additional localization files
+then you might wish to accept this proposal.
Clicking Advanced will list the unused hardware and
+localization files that will be removed if you proceed.
The next step is the copying of files to hard disk. This process should just
+take a little while to complete. When it is finishing you will briefly get a
+blank screen - this is normal.