Mageia is distributed via ISO images. This page will help you to choose
+which image best suits your needs.
There are three types of installation media:
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.
Bilješka
The Live Installer is simpler compared to the Classical Installer - but you
+have fewer configuration options.
Važno
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.
Media
Definition
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
Each DVD contains many available desktop environments and languages
You'll be given the choice during the installation to add non-free software
Live media
Common features
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
Live DVD Plasma
Plasma desktop environment only
All available languages are present
64-bit architecture only
Live DVD GNOME
GNOME desktop environment only
All available languages are present
64-bit architecture only
Live DVD Xfce
Xfce desktop environment only
All available languages are present
32 or 64-bit architectures
Net install media
Common features
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
Downloading and Checking Media
Downloading
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.
Checking the integrity of the downloaded media
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
Example:
then compare the result (you may have to wait for a while) with the ISO
+checksum provided by Mageia.
Burn or dump the 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.
Burning the ISO to a 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.
Dump the ISO to a USB stick
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.
Upozorenje
Dumping an image onto a flash device destroys any previous file-system on
+the device and all existing data will be lost.
Bilješka
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.
It is potentially *dangerous* to do this by hand. You risk overwriting
+potentially valuable existing data if you specify the wrong target device.
Open a console
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
It is advisable for all Mageia installations to set a
+superuser (Administrator) password, usually called the
+root password in Linux. As you type a password into the
+top box a shield will change from red-to-yellow-to-green depending on the
+strength of the password. A green shield shows you are using a strong
+password. You need to repeat the same password in the box underneath, to
+check that the first entry was not mistyped.
Bilješka
All passwords are case-sensitive. It is best to use a mixture of letters
+(upper and lower case), numbers and other characters in a password.
Unesite korisnika
Add a User here. A regular user has fewer privileges than the
+superuser (root), but enough to use the Internet, office
+applications or play games and anything else the average user might use a
+computer for.
Icon
Click on this button if you want to change the user's icon
Real Name
Insert the user's real name into this text box
Login Name
Enter the user login name or let DrakX use a version of the user's real
+name. The login name is case-sensitive.
Password
Type in the user password. There is a shield at the end of the text box that
+indicates the strength of the password. (See also Bilješka)
Password (again): Retype the user
+password. DrakX will check that you have not mistyped the password.
Bilješka
Any users added while installing Mageia, will have a home directory that is
+both read and write protected (umask=0027)
You can add any extra needed users in the Configuration -
+Summary step during the install. Choose User
+management.
Dozvole pristupa također se mogu promjeniti nakon instlacije.
You can boot directly from a Live DVD or USB. Usually, you just need to plug
+the USB device in or place the DVD in the drive and restart the computer.
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.
Savjet
To access the BIOS or boot menu when the computer is starting, you can try
+pressing either F2, Del or
+Esc for the BIOS, or Esc,
+F8, F10 or F11 for the
+boot device menu. These (fairly common) keys are just a selection of
+possible options though.
Bilješka
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.
In BIOS/CSM/Legacy mode
First screen while booting in BIOS mode
Menu
Boot Mageia
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.
+ use non-free video drivers (slower to
+boot)
Boot the Mageia Live system using non-free video drivers
Install Mageia
This option will install Mageia to a hard disk.
+ use non-free video drivers (slower to
+boot)
Install Mageia using non-free video drivers
Memory Test
Test the installed RAM by performing multiple read and write
+operations. Reboot to end the test.
F2 Language
Press F2 to have the installer use a specific language
+during the installation. Use the arrow keys to select the language then
+press Enter.
U UEFI načinu rada
First screen while booting in UEFI mode
Menu
Boot Mageia
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
Install Mageia
This option will install Mageia to a hard disk.
F2 Language
Press F2 to have the installer use a specific language
+during the installation. Use the arrow keys to select the language then
+press Enter.
Bilješka
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).
Main Options
Use Existing Partitions
If this option is available, then existing Linux compatible partitions have
+been found and may be used for the installation.
Use Free Space
If you have unused space on your hard drive then this option will use it for
+your new Mageia installation.
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 is a risky operation so you should make sure you have
+backed up all important files!
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:
Erase and use Entire Disk
This option will allocate the entire drive for Mageia
Upozorenje
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.
Važno
Note that this involves shrinking the size of the Windows partition. 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. It is highly recommended to
+back up your personal files.
Custom Disk Partitioning
This gives you complete control over the placing of the installation on your
+hard drive(s).
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 for /
4 GB for swap
and the remainder for /home
Bilješka
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.
Odaberite mjesta montiranja
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.
For any partitions that you don't need to make use of, you can leave the
+mount point field blank.
Upozorenje
If you make any changes here, ensure you still have a /
+(root) partition.
Savjet
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.
Confirm hard disk to be formatted
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). In the screenshot above there are two available
+devices: sda and sdb.
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.
Upozorenje
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.
Važno
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.
Slika 1. EFI System Partition
Slika 2. BIOS boot partition
Formatiram
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
Savjet
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.
No one will see all the installer screens that you see in this manual. Which
+screens you will see, depends on your hardware and the choices you make
+while installing.
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.
Važno
Ensure that you follow these shut-down and restart instruction steps in the
+same order.
When you are ready, press Finish.
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/9/hr/content/search/punctuation.props b/draklive/9/hr/content/search/punctuation.props
new file mode 100644
index 00000000..d3e3fcd2
--- /dev/null
+++ b/draklive/9/hr/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/hr/content/search/stemmers/de_stemmer.js b/draklive/9/hr/content/search/stemmers/de_stemmer.js
new file mode 100644
index 00000000..7ff3822a
--- /dev/null
+++ b/draklive/9/hr/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/hr/content/search/stemmers/en_stemmer.js b/draklive/9/hr/content/search/stemmers/en_stemmer.js
new file mode 100644
index 00000000..f58012f2
--- /dev/null
+++ b/draklive/9/hr/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/hr/content/search/stemmers/fr_stemmer.js b/draklive/9/hr/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 00000000..34f97431
--- /dev/null
+++ b/draklive/9/hr/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 will be used exclusively 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.
Bootloader Setup
Glavne postavke bootloadera
Bootloader to use
This feature is only available to Legacy MBR/BIOS systems. Users of UEFI
+systems will not see this option here.
Boot device
Don't change this unless you really know what you are doing
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.
Password
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
Bootloader Configuration
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 if you are sure you understand the
+implications, and wish to proceed.
Other Options
Using an existing bootloader
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.
Add or Modify a Boot Menu Entry
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.
Testing 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:
network interface: configure it with net_applet
graphics card: if you see the previous screen, it's already OK.
sound: a jingle has already been played
printer: configure your printer/s and print a test page
scanner: scan a document from ...
If everything is satisfactory, you can proceed with the installation. If
+not, you can use the Quit button to exit.
Bilješka
The configuration settings you apply here are carried over if you decide to
+proceed with the installation.
Launch installation
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.