Przed instalacją Mageia, proszę przeczytać
+uważnie warunki umowy licencyjnej.
Warunki umowy licencyjnej odnoszą się do całej dystrybucji
+Mageia i muszą być zaakceptowane przed
+kontynuacją instalacji.
Aby zaakceptować po prostu wybierz Akceptuj i kliknij
+Dalej.
Jeśli zdecydujesz że nie zgadzasz się na warunki licencji, dziękujemy za
+zainteresowanie. Kliknięcie Zakończ spowoduje ponowne
+uruchomienie komputera.
Informacje o wydaniu
Aby zobaczyć co nowego w tym wydaniu Mageia,
+Kliknij Informacje na temat wydania.
It is advisable for all Mageia installations to
+set a superuser or administrator's password, usually called the
+root password in Linux. As you type a password into the
+top box the colour of its 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
+just below the first password box, this checks that you have not mistyped
+the first password by comparing them.
Notatka
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.
Dodaj użytkownika
Add a user here. A user has fewer rights than the superuser (root), but
+enough to surf the internet, use office applications or play games and
+anything else the average user does with his computer
Ikona: użycie tego przycisku zmieni ikonę
+użytkownika.
Imię i nazwisko: Wpisz swoje imię i nazwisko do tego
+pola tekstowego
Nazwa użytkownika: Tutaj wpisz nazwę użytkownika -
+będzie ona używana podczas logowania. Możesz też pozwolić, aby instalator
+wygenerował nazwę na podstawie imienia i nazwiska. Wielkość liter
+ma znaczenie.
Hasło: W tym polu wpisz hasło użytkownika. Pojawi się w
+nim ikonka tarczy, która oznacza siłę hasła (Zobacz również Notatka)
Hasło (powtórnie): Wpisz powtórnie hasło użytkownika w
+tym polu, instalator sprawdzi czy hasła się zgadzają.
Notatka
Wszyscy użytkownicy, których dodasz podczas instalacji Magei, będą mieli
+katalogi domowe (dostępne do odczytu dla każdego, ale do zapisu tylko dla
+danego użytkownika)
However, while using your new install, any user you add in MCC -
+System - Manage users on system will have a home directory that
+is both read and write protected.
If you don't want a world readable home directory for anyone, it is advised
+to only add a temporary user now and to add the real one(s) after reboot.
If you prefer world readable home directories, you might want to add all
+extra needed users in the Configuration - Summary step
+during the install. Choose User management.
The access permissions can also be changed after the install.
Advanced User Management
If the advanced button is clicked you are offered a
+screen that allows you to edit the settings for the user you are
+adding. Additionally, you can disable or enable a guest account.
Ostrzeżenie
Anything a guest with a default rbash guest account
+saves to his /home directory will be erased when he logs out. The guest
+should save his important files to a USB key.
Enable guest account: Here you can enable or disable a
+guest account. The guest account allows a guest to log into and use the PC,
+but he has more restricted access than normal users.
Shell: This drop down list allows you to change the
+shell used by the user you are adding in the previous screen, options are
+Bash, Dash and Sh
User ID: Here you can set the user ID for the user you
+are adding in the previous screen. This is a number. Leave it blank unless
+you know what you are doing.
Group ID: This lets you set the group ID. Also a
+number, usually the same one as for the user. Leave it blank unless you know
+what you are doing.
Ten ekran pokazuje listę znalezionych nośników. Możesz dodać inne nośniki
+instalacyjne, jak dysk cd/dvd lub zdalny serwer sieciowy. Wybór źródeł
+(nośników) decyduje o tym jakie pakiety będą mogły zostać wybrane podczas
+następnych kroków.
Dla nośników sieciowych, wymagane są dwa kroki:
Wybór i aktywacja połączenia sieciowego, jeśli jeszcze nie zostało
+ustanowione.
Wybór mirrora lub podanie adresu URL. Wybierając mirror masz dostęp do
+wszystkich repozytoriów udostępnianych przez Mageię, jak Nonfree, Tainted
+oraz Updates. Za pomocą URL możesz określić jakiekolwiek repozytorium lub
+swój własny mirror np. NFS.
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.
Notatka
If you change anything, make sure you still have a /
+(root) partition.
Every partition is shown as follows: "Device" ("Capacity", "Mount point",
+"Type").
"Device", is made up of: "hard drive", ["hard drive number"(letter)],
+"partition number" (for example, "sda5").
If you have many partitions, you can choose many 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 /cauldron-home for the
+/home partition of a cauldron install.
For partitions you don't need to have access to, you can leave the mount
+point field blank.
Ostrzeżenie
Choose Previous if you are not sure what to choose,
+and then tick Custom disk partitioning. In the screen
+that follows, 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(s) DrakX suggests, or more.
Depending on your selection here, you may be offered further screens to fine
+tune your choice.
After the selection step(s), you will see a slide show during package
+installation. The slide show can be disabled by pressing the
+Details button
Choose whether you prefer to use the KDE or
+Gnome desktop environment. Both come with a full
+set of useful applications and tools. Tick Custom if
+you want to use neither or both, or if you want something other than the
+default software choices for these desktop environments. The
+LXDE desktop is lighter than the previous two,
+sporting less eye candy and fewer packages installed by default.
Packages have been sorted into groups, to make choosing what you need on
+your system a lot easier. The groups are fairly self explanatory, however
+more information about the content of each is available in tool-tips which
+become visible as the mouse is hovered over them.
Stacja robocza
Serwer
Środowisko graficzne
Individual Package Selection: You can use this option to manually add or
+remove packages.
Here you can add or remove any extra packages to customise your
+installation.
After having made your choice, you can click on the floppy
+icon at the bottom of the page to save your choice of packages
+(saving to a USB key works, too). You can then use this file to install the
+same packages on another system, by pressing the same button during install
+and choosing to load it.
DrakX has a very comprehensive database of video cards and will usually
+correctly identify your video device.
If the installer has not correctly detected your graphic card and you know
+which one you have, you can select it from the tree by:
dostawca
następnie nazwa karty
oraz typ karty
If you cannot find your card in the vendor lists (because it's not yet in
+the database or it's an older card) you may find a suitable driver in the
+Xorg category
The Xorg listing provides more than 40 generic and open source video card
+drivers. If you still can't find a named driver for your card there is the
+option of using the vesa driver which provides basic capabilities.
Be aware that if you select an incompatible driver you may only have access
+to the Commandline Interface.
Niektórzy producenci kart graficznych udostępniają własnościowe sterowniki
+dla Linuksa, które mogą być umieszczone jedynie w repozytorium Nonfree, w
+niektórych przypadkach są one dostępne jedynie na stronie producenta.
Aby je zainstalować musi być włączone repozytorium Nonfree. Jeśli nie
+włączono tego repozytorium wcześniej, należy je włączyć po ponownym
+uruchomieniu komputera.
No matter which graphical environment (also known as desktop environment)
+you chose for this install of Mageia, they are
+all based on a graphical user interface system called X Window
+System, or simply X. So in order for
+KDE, Gnome, LXDE or
+any other graphical environment to work well, the following
+X settings need to be correct. Choose the correct
+settings if you can see that DrakX didn't make a
+choice, or if you think the choice is incorrect.
Karta graficzna: Wybierz swoją
+kartę graficzną z listy.
Monitor: You can choose
+Plug'n Play when applicable, or choose your monitor
+from the Vendor or Generic
+list. Choose Custom if you prefer to manually set the
+horizontal and vertical refresh rates of your monitor.
Ostrzeżenie
Niepoprawna wartość odświeżania może uszkodzić monitor
Resolution: Set the desired
+resolution and color depth of your monitor here.
Test: The test button does not
+always appear during install. If the button is there, you can control your
+settings by pressing it. If you see a question asking you whether your
+settings are correct, you can answer "yes", and the settings will be
+kept. If you don't see anything, you'll return to the configuration screen
+and be able to reconfigure everything until the test is good. Make
+sure your settings are on the safe side if the test button isn't
+available
Options: Here you can choose to
+enable or disable various options.
DrakX has a very comprehensive database of monitors and will usually
+correctly identify yours.
Ostrzeżenie
Selecting a monitor with different characteristics could damage
+your monitor or video hardware. Please don't try something without knowing
+what you are doing. If in doubt you should consult your monitor
+documentation
Własny
This option allows you to set two critical parameters, the vertical refresh
+rate and the horizontal sync rate. Vertical refresh determines how often the
+screen is refreshed and horizontal sync is the rate at which scan lines are
+displayed.
It is VERY IMPORTANT that you do not specify a monitor
+type with a sync range that is beyond the capabilities of your monitor: you
+may damage your monitor. If in doubt, choose a conservative setting and
+consult your monitor documentation.
Plug 'n Play
This is the default option and tries to determine the monitor type from the
+monitor database.
Dostawca
If the installer has not correctly detected your monitor and you know which
+one you have, you can select it from the tree by selecting:
dostawca
the monitor manufacturers name
the monitor description
Generic
selecting this group displays nearly 30 display configurations such as
+1024x768 @ 60Hz and includes Flat panel displays as used in laptops. This is
+often a good monitor selection group if you need to use the Vesa card driver
+when your video hardware cannot be determined automatically. Once again it
+may be wise to be conservative in your selections.
diff --git a/installer/4/pl/content/diskdrake.html b/installer/4/pl/content/diskdrake.html
new file mode 100644
index 00000000..0a4b1652
--- /dev/null
+++ b/installer/4/pl/content/diskdrake.html
@@ -0,0 +1,44 @@
+
+
+
+
+ Zaawansowany podział na partycje za pomocą DiskDrake
Zaawansowany podział na partycje za pomocą DiskDrake
Zaawansowany podział na partycje za pomocą DiskDrake
Ostrzeżenie
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.
Adjust the layout of your disk(s) here. You can remove or create partitions,
+change the filesystem of a partition or change its size and even view what
+is in them before you start.
+
There is a tab for every detected hard disk or other storage device, like an
+USB key. For example sda, sdb and sdc if there are three of them.
+
Push Clear all to wipe all partitions on the selected
+storage device
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.
Continue until you adjusted everything to your wishes.
In this screen you can see the content of your hard drive(s) and see the
+solutions the DrakX partitioning wizard found for where to install
+Mageia.
The options available from the list below will vary depending on your
+particular hard drive(s) layout and content.
Użyj istniejących partycji
If this option is available, then existing Linux compatible partitions have
+been found and may be used for the installation.
Wykorzystaj wolne miejsce
If you have unused space on your hard drive then this option will use it for
+your new Mageia installation.
Wykorzystaj wolne miejsce na partycji Windows
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!
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.
Wymaż i wykorzystaj cały dysk
This option will use the complete drive for Mageia.
Note! 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.
Własne
This gives you complete control over the placing of the installation on your
+hard drive(s).
Ostrzeżenie
Some newer drives are now using 4096 byte logical sectors, instead of the
+previous standard of 512 byte logical sectors. Due to lack of available
+hardware, the partitioning tool used in the installer has not been tested
+with such a drive. Also some ssd drives now use an erase block size over 1
+MB. We suggest to pre-partition the drive, using an alternative partitioning
+tool like gparted, if you own such a device, and to use the following
+settings:
"Align to" "MiB"
"Free space preceding (MiB)" "2"
Also make sure all partitions are created with an even number of megabytes.
Tutaj możesz wybrać, które partycje chcesz sformatować. Wszystkie dane na
+partycjach nie zaznaczonych do formatowania zostaną
+zachowane.
Usually at least the partitions DrakX selected, need to be formatted
Click on Advanced to choose partitions you want to
+check for so called bad blocks
Podpowiedź
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.
+In that screen you can choose to view what is in your partitions.
When you are confident about the selection, 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.
Niezależnie czy jesteś początkującym, czy zaawansowanym użytkownikiem
+GNU-Linuxa, instalator Magei jest zaprojektowany tak, aby uczynić instalację
+lub aktualizację łatwą i przyjemną.
Pierwszy ekran instalatora zawiera różne opcje,jednak opcja zaznaczona
+domyślnie rozpoczyna instalację i zazwyczaj będzie to wszystko czego
+potrzebujesz.
Rysunek 1. Installation Welcome Screen
Jeśli napotkasz na jakieś problemy podczas instalacji, może się jednak
+okazać, że będzie potrzebne skorzystanie ze specjalnych opcji instalacji,
+zobacz „Opcje instalatora”.
Etapy instalacji
Proces instalacji jest podzielony na kilka etapów, możesz je śledzić po
+lewej stronie ekranu instalatora.
Każdy etap zawiera jeden lub więcej ekranów, które mogą także mieć przycisk
+Zaawansowane, który umożliwia dostęp do rzadziej
+używanych opcji.
Większość ekranów posiada przycisk Pomoc, który
+pozwala na zapoznanie się z wyjaśnieniami dotyczącymi aktualnego etapu
+instalacji.
Notatka
Jeśli w którymś momencie instalacji zdecydujesz się ją przerwać, istnieje
+możliwość ponownego uruchomienia komputera, lecz należy sie nad tym poważnie
+zastanowić. W chwili gdy partycje zostały już sformatowane lub rozpoczęła
+się instalacja pakietów, twój komputer nie jest już w takim samym stanie jak
+wcześniej, ponowne uruchomienie w tym momencie najprawdopodobniej spowoduje,
+że system nie będzie zdatny do użytku. Jeśli masz pewność, że chcesz
+ponownie uruchomić komputer, możesz przejśc do terminala tekstowego
+wciskając jednocześnie klawiszeAlt Ctrl F2. Następnie
+zrebootuj komputer za pomocą klawiszy Alt Ctrl
+Delete.
Opcje instalatora
Jeśli instalacja się nie powiedzie, może być konieczne rozpoczęcie od
+początku i użycie dodatkowych opcji dostępnych pod klawiszem F1
+(Pomoc) zobacz Rysunek 1, „Installation Welcome Screen”
Zostanie wyświetlony następujący ekran z pomocą.
Rysunek 2. Installation Help Screen
Problemy z instalacją oraz możliwe rozwiązania
Brak graficznego interfejsu
Po ekranie powitalnym nie wyświetla się ekran wyboru języka. To może się
+zdarzyć dla niektórych kart graficznych lub starszych komputerów. Spróbuj
+użyć niskiej rozdzielczości wpisując w linii komend vgalo.
Jeśli sprzęt jest bardzo stary, użycie graficznego instalatora może być
+niemożliwe. W tym przypadku warto wypróbować instalację w trybie
+tekstowym. Aby ją uruchomić wciśnij ESC i zatwierdź klawiszem
+ENTER. Zobaczysz czarny ekran z napisem "boot:". Wpisz "text" i wciśnij
+ENTER. Teraz możesz kontynuować instalację w trybie tekstowym.
Zawieszenie się instalacji
Jeśli system zawiesi się podczas instalacji, może to oznaczać problem z
+detekcją sprzętu. W tym przypadku automatyczna detekcja sprzętu może zostać
+pominięta. Wpisz w linii komend noauto. Ta opcja może być
+łączona z innymi opcjami jeśli zajdzie taka potrzeba.
Opcje jądra
To są rzadkie przypadki, jednak czasem zdarza się, że system zgłasza
+niepoprawnie ilość dostępnej pamięci RAM. Aby określić ją manualnie wpisz
+parametr mem=xxxM, gdzie xxx jest poprawną ilością dostępnej
+pamięci RAM wyrażoną w MB, np. mem=256M oznacza 256MB.
Tutaj jest lista dostępnych repozytoriów. Nie wszystkie repozytoria są
+dostępne, zależy to od nośników jakie wykorzystujesz do instalacji. Wybór
+repozytoriów ma wpływ na to jakie pakiety będzie można zainstalować w
+następnych krokach.
Repozytorium Core nie może zostać wyłączone ponieważ
+zawiera ono podstawowe pakiety dystrybucji.
Repozytorium Nonfree zawiera pakiety wolne od opłat,
+które mogą być udostępniane przez Mageię, lecz zawierają oprogramowanie do
+którego źródła nie są dostępne (stąd nazwa - Nonfree). To repozytorium
+zawiera np. własnościowe sterowniki do kart graficznych nVidia oraz ATI,
+firmware dla niektórych kart WIFI, itp.
Repozytorium Tainted zawiera pakiety wydane na wolnych
+licencjach. Głównym powodem umieszczenia tych pakietów w tym repozytorium
+jest fakt, że mogą one naruszać prawa patentowe w niektórych krajach,
+np. kodeki multimedialne, pakiety potrzebne do odtwarzania komercyjnych płyt
+DVD, itp.
You can choose a Minimal Installation by de-selecting everything in the
+Package Group Selection screen, see „Wybór grup pakietów”.
Minimal Installation is intended for those with specific uses in mind for
+their Mageia, such as a server or a specialised
+workstation. You will probably use this option combined with Manual Package
+Selection, see „Samodzielny wybór pakietów”.
If you choose this installation class, then the related screen will offer
+you a few useful extras to install, such as documentation and X.
DrakX made smart choices for the configuration of your system depending on
+the choices you made and on the hardware DrakX detected. You can check the
+settings here and change them if you want after pressing
+Configure.
System parameters
Strefa czasowa
DrakX selected a time zone for you, depending on your preferred
+language. You can change it if needed. See also „Konfiguruj strefę czasową”
Country / Region
If you are not in the selected country, it is very important that you
+correct the setting. See „Select your Country / Region”
Bootloader
DrakX has made good choices for the bootloader setting.
Do not change anything, unless you know how to configure Grub and/or Lilo
This is where you setup or change your keyboard layout which will depend on
+your location, language or type of keyboard.
Mysz:
Here you can add or configure other pointing devices, tablets, trackballs
+etc.
Karta dźwiękowa:
The installer uses the default driver, if there is a default one. The option
+to select a different driver is only given when there is more than one
+driver for your card, but none of them is the default one.
Graphical interface:
This section allows you to configure your graphic card(s) and displays.
You can configure your network here, but for network cards with non-free
+drivers it is better to do that after reboot, in the Mageia
+Control Center, if you have not yet enabled the Nonfree media
+repositories.
Ostrzeżenie
When you add a network card, do not forget to set your firewall to watch
+that interface as well.
Proxies:
A Proxy Server acts as an intermediary between your computer and the wider
+internet. This section allows you to configure your computer to utilize a
+proxy service.
You may need to consult your systems administrator to get the parameters you
+need to enter here
Security
Security Level:
Here you set the Security level for your computer, in most cases the default
+setting (Standard) is adequate for general use.
Check the option which best suits your usage.
Firewall:
A firewall is intended to be a barrier between your important data and the
+rascals out there on the internet who would compromise or steal it.
Select the services that you wish to have access to your system. Your
+selections will depend on what you use your computer for.
Ostrzeżenie
Bear in mind that allowing everything (no firewall) may be very risky.
diff --git a/installer/4/pl/content/nwSearchFnt.js b/installer/4/pl/content/nwSearchFnt.js
new file mode 100644
index 00000000..fc12d113
--- /dev/null
+++ b/installer/4/pl/content/nwSearchFnt.js
@@ -0,0 +1,513 @@
+/*----------------------------------------------------------------------------
+ * JavaScript for webhelp search
+ *----------------------------------------------------------------------------
+ This file is part of the webhelpsearch plugin for DocBook WebHelp
+ Copyright (c) 2007-2008 NexWave Solutions All Rights Reserved.
+ www.nexwave.biz Nadege Quaine
+ http://kasunbg.blogspot.com/ Kasun Gajasinghe
+ */
+
+//string initialization
+var htmlfileList = "htmlFileList.js";
+var htmlfileinfoList = "htmlFileInfoList.js";
+var useCJKTokenizing = false;
+
+/* Cette fonction verifie la validite de la recherche entrre par l utilisateur */
+function Verifie(ditaSearch_Form) {
+
+ // Check browser compatibitily
+ if (navigator.userAgent.indexOf("Konquerer") > -1) {
+
+ alert(txt_browser_not_supported);
+ return;
+ }
+
+
+ var expressionInput = document.ditaSearch_Form.textToSearch.value;
+ //Set a cookie to store the searched keywords
+ $.cookie('textToSearch', expressionInput);
+
+
+ if (expressionInput.length < 1) {
+
+ // expression is invalid
+ alert(txt_enter_at_least_1_char);
+ // reactive la fenetre de search (utile car cadres)
+ document.ditaSearch_Form.textToSearch.focus();
+ }
+ else {
+
+ // Effectuer la recherche
+ Effectuer_recherche(expressionInput);
+
+ // reactive la fenetre de search (utile car cadres)
+ document.ditaSearch_Form.textToSearch.focus();
+ }
+}
+
+var stemQueryMap = new Array(); // A hashtable which maps stems to query words
+
+/* This function parses the search expression, loads the indices and displays the results*/
+function Effectuer_recherche(expressionInput) {
+
+ /* Display a waiting message */
+ //DisplayWaitingMessage();
+
+ /*data initialisation*/
+ var searchFor = ""; // expression en lowercase et sans les caracte res speciaux
+ //w = new Object(); // hashtable, key=word, value = list of the index of the html files
+ scriptLetterTab = new Scriptfirstchar(); // Array containing the first letter of each word to look for
+ var wordsList = new Array(); // Array with the words to look for
+ var finalWordsList = new Array(); // Array with the words to look for after removing spaces
+ var linkTab = new Array();
+ var fileAndWordList = new Array();
+ var txt_wordsnotfound = "";
+
+
+ /*nqu: expressionInput, la recherche est lower cased, plus remplacement des char speciaux*/
+ searchFor = expressionInput.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/\.|%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, "").replace(/_di_/g, "%24_");
+
+ searchFor = searchFor.replace(/ +/g, " ");
+ searchFor = searchFor.replace(/ $/, "").replace(/^ /, "");
+
+ wordsList = searchFor.split(" ");
+ wordsList.sort();
+
+ //set the tokenizing method
+ if(typeof indexerLanguage != "undefined" && (indexerLanguage=="zh" || indexerLanguage=="ja" ||indexerLanguage=="ko")){
+ useCJKTokenizing=true;
+ } else {
+ useCJKTokenizing=false;
+ }
+ //If Lucene CJKTokenizer was used as the indexer, then useCJKTokenizing will be true. Else, do normal tokenizing.
+ // 2-gram tokenizinghappens in CJKTokenizing,
+ if(useCJKTokenizing){
+ finalWordsList = cjkTokenize(wordsList);
+ } else {
+ finalWordsList = tokenize(wordsList);
+ }
+
+ //load the scripts with the indices: the following lines do not work on the server. To be corrected
+ /*if (IEBrowser) {
+ scriptsarray = loadTheIndexScripts (scriptLetterTab);
+ } */
+
+ /**
+ * Compare with the indexed words (in the w[] array), and push words that are in it to tempTab.
+ */
+ var tempTab = new Array();
+ for (var t in finalWordsList) {
+ if (w[finalWordsList[t].toString()] == undefined) {
+ txt_wordsnotfound += finalWordsList[t] + " ";
+ } else {
+ tempTab.push(finalWordsList[t]);
+ }
+ }
+ finalWordsList = tempTab;
+
+ if (finalWordsList.length) {
+
+ //search 'and' and 'or' one time
+ fileAndWordList = SortResults(finalWordsList);
+
+ var cpt = fileAndWordList.length;
+ for (var i = cpt - 1; i >= 0; i--) {
+ if (fileAndWordList[i] != undefined) {
+ linkTab.push("
" + "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/installer/4/pl/content/search/punctuation.props b/installer/4/pl/content/search/punctuation.props
new file mode 100644
index 00000000..d3e3fcd2
--- /dev/null
+++ b/installer/4/pl/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/installer/4/pl/content/search/stemmers/de_stemmer.js b/installer/4/pl/content/search/stemmers/de_stemmer.js
new file mode 100644
index 00000000..7ff3822a
--- /dev/null
+++ b/installer/4/pl/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/installer/4/pl/content/search/stemmers/en_stemmer.js b/installer/4/pl/content/search/stemmers/en_stemmer.js
new file mode 100644
index 00000000..f58012f2
--- /dev/null
+++ b/installer/4/pl/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/installer/4/pl/content/search/stemmers/fr_stemmer.js b/installer/4/pl/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 00000000..34f97431
--- /dev/null
+++ b/installer/4/pl/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
+
+
+
+ Security Level
Select your country or region. This is important for all kinds of settings,
+like the currency and wireless regulatory domain. Setting the wrong country
+can lead to not being able to use a Wireless network.
If your country isn't in the list, click the Other
+Countries button and choose your country / region there.
Notatka
If your country is only in the Other Countries list,
+after clicking OK it may seem a country from the
+first list was chosen. Please ignore this, DrakX will follow your real
+choice.
Input method
In the Other Countries screen you can also select an
+input method (at the bottom of the list). Input methods allow users to input
+multilingual characters (Chinese, Japanese, Korean, etc). IBus is the
+default input method in Mageia DVDs, Africa/India and Asia/no-India
+Live-CDs. For Asian and African locales, IBus will be set as default input
+method so users should not need to configure it manually. Other input
+methods(SCIM, GCIN, HIME, etc) also provide similar functions and can be
+installed if you added HTTP/FTP media before package selection.
Notatka
If you missed the input method setup during installation, you can access it
+after you boot your installed system via "Configure your Computer" ->
+"System", or by running localedrake as root.
If you have one or more Mageia installations on
+your system, the installer will allow you to upgrade one of them to the
+latest release.
Ostrzeżenie
Only upgrading from a previous Mageia version that was still
+supported when this installer's version was released, has been
+thoroughly tested. If you want to upgrade a Mageia version that had already
+reached its End Of Life when this one was released, then it is better to do
+a clean install while preserving your /home partition.
Notatka
If during install you decide to stop the installation, it is possible to
+reboot, but please think twice before you do this. Once a partition has been
+formatted or updates have started to be installed, your computer isn't in
+the same state anymore and rebooting it could very well leave you with an
+unusable system. If in spite of that you are very sure rebooting is what you
+want, go to a text terminal by pressing the three keys Alt Ctrl
+F2 at the same time. After that, press Alt Ctrl
+Delete simultaneously to reboot.
Podpowiedź
If you have discovered that you forgot to select an additional language, you
+can return from the "Install or Upgrade" screen to the language choice
+screen by pressing Alt Ctrl Home. Do
+not do this later in the install.
DrakX selects an appropriate keyboard for your language. If no suitable
+keyboard is found it will default to a US keyboard layout.
Make sure that the selection is correct or choose another keyboard
+layout. If you don't know which layout your keyboard has, look in the
+specifications that came with your system, or ask the computer vendor. There
+may even be a label on the keyboard that identifies the layout. You can also
+look here: en.wikipedia.org/wiki/Keyboard_layout
If your keyboard isn't in the list shown, click on
+More to get a full list, and select your keyboard
+there.
Ostrzeżenie
After choosing a keyboard from the More dialog,
+you'll return to the first keyboard choice dialog and it will seem as though
+a keyboard from that screen was chosen. You can safely ignore this anomaly
+and continue the installation: Your keyboard is the one you chose from the
+full list.
If you choose a keyboard based on non-Latin characters, you will see an
+extra dialog screen asking how you would prefer to switch between the Latin
+and non-Latin keyboard layouts
Wybierz preferowany język, najpierw rozwijając listę dla swojego
+kontynentu. Mageia będzie używać wybranego języka
+zarówno podczas instalacji jak i w zainstalowanym systemie.
Jeśli potrzebujesz mieć kilka języków zainstalowanych w systemie, dla siebie
+lub innych użytkowników, możesz użyć przycisku Więcej
+języków aby je teraz dodać.
Ostrzeżenie
Nawet jeśli chcesz zainstalować więcej niż jeden język, musisz najpierw
+wybrać jeden z nich jako domyślny w głównym oknie wyboru języka. Będzie on
+również zaznaczony jako domyślny w oknie wyboru wielu języków.
Jeśli język twojej klawiatury nie jest taki sam jak język, który wybierasz
+jako domyślny, należy zainstalować także język odpowiedni do twojej
+klawiatury.
Mageia używa domyślnie kodowania UTF-8 (Unikod). Jeśli wiesz, że to
+kodowanie nie jest odpowiednie dla twojego języka, możesz wyłączyć wsparcie
+dla UTF-8 w oknie "więcej języków". Będzie to dotyczyć wszystkich
+zainstalowanych języków.
Po instalacji możesz zmienic domyslny język uzywany w systemie za pomocą
+Centrum Sterowania Mageia -> System -> Zarządzanie lokalizacją systemu
If you prefer different bootloader settings to those chosen automatically by
+the installer, you can change them here.
You may already have another operating system on your machine, in which case
+you need to decide whether to add Mageia to your existing bootloader, or
+allow Mageia to create a new one.
Podpowiedź
The Mageia graphical menus are nice :)
Using a Mageia bootloader
By default, Mageia writes a new GRUB (legacy) bootloader into the MBR
+(Master Boot Record) of your first hard drive. If you already have other
+operating systems installed, Mageia attempts to add them to your new Mageia
+boot menu.
Mageia now also offers GRUB2 as an optional bootloader in addition to GRUB
+legacy and Lilo.
Ostrzeżenie
Linux systems which use the GRUB2 bootloader are not currently supported by
+GRUB (legacy) and will not be recognised if the default GRUB bootloader is
+used.
The best solution here is to use the GRUB2 bootloader which is available at
+the Summary page during installation.
Using an existing bootloader
If you decide to use an existing bootloader then you will need to remember
+to STOP at the summary page during the installation and click the Bootloader
+Configure button, which will allow you to change the
+bootloader install location.
Do not select a device e.g."sda", or you will overwrite your existing
+MBR. You must select the root partition that you chose during the
+partitioning phase earlier, e.g. sda7.
To be clear, sda is a device, sda7 is a partition on that device.
Podpowiedź
Go to tty2 with Ctrl+Alt+F2 and type df to check where
+your / (root) partition is. Ctrl+Alt+F7 takes you back to
+the installer screen.
The exact procedure for adding your Mageia system to an existing bootloader
+is beyond the scope of this help, however in most cases it will involve
+running the relevant bootloader installation program which should detect and
+add it automatically. See the documentation for the operating system in
+question.
Bootloader advanced option
If you have very limited disk space for the / partition
+that contains /tmp, click on
+Advanced and check the box for Clean /tmp
+at each boot. This helps to maintain some free space.
You can add an entry or modify the one you select first, by pressing the
+relevant button in the Bootloader Configuration screen
+and editing the screen that pops up on top of it.
Some things that can be done without any risk, are changing the label of an
+entry and ticking the box to make an entry the default one.
You can add the proper version number of an entry, or rename it completely.
The default entry is the one the systems boots into if you don't make a
+choice while booting up.
Ostrzeżenie
Editing other things can leave you with an unbootable system. Please don't
+just try something without knowing what you are doing.
DrakX usually detects hard disks correctly. With some older SCSI controllers
+it may be unable to determine the correct drivers to use and subsequently
+fail to recognise the drive.
If this happens, you will need to manually tell Drakx which SCSI drive(s)
+you have.
DrakX should then be able to configure the drive(s) correctly.
In this screen the name of the driver that the installer chose for your
+sound card is given, which will be the default driver if we have a default
+one.
+
The default driver should work without problems. However, if after install
+you do encounter problems, then run draksound or start
+this tool via MCC (Mageia Control Center), by choosing the
+Hardware tab and clicking on Sound
+Configuration at the top right of the screen.
+
Then, in the draksound or "Sound Configuration" tool screen, click on
+Advanced and then on
+Troubleshooting to find very useful advice about how
+to solve the problem.
+
Zaawansowane
Clicking Advanced in this screen, during install, is
+useful if there is no default driver and there are several drivers
+available, but you think the installer selected the wrong one.
+
In that case you can select a different driver after clicking on
+Let me pick any driver.
+
diff --git a/installer/4/pl/content/t-mageia-2011.png b/installer/4/pl/content/t-mageia-2011.png
new file mode 100644
index 00000000..b8260f33
Binary files /dev/null and b/installer/4/pl/content/t-mageia-2011.png differ
diff --git a/installer/4/pl/content/takeOverHdConfirm.html b/installer/4/pl/content/takeOverHdConfirm.html
new file mode 100644
index 00000000..a24c1700
--- /dev/null
+++ b/installer/4/pl/content/takeOverHdConfirm.html
@@ -0,0 +1,36 @@
+
+
+
+
+ Confirm hard disk to be formatted