aboutsummaryrefslogtreecommitdiffstats
path: root/installer/5/ru/content/search
diff options
context:
space:
mode:
Diffstat (limited to 'installer/5/ru/content/search')
-rw-r--r--installer/5/ru/content/search/default.props1
-rw-r--r--installer/5/ru/content/search/en-us.props45
-rw-r--r--installer/5/ru/content/search/es-es.props179
-rw-r--r--installer/5/ru/content/search/htmlFileInfoList.js35
-rw-r--r--installer/5/ru/content/search/htmlFileList.js36
-rw-r--r--installer/5/ru/content/search/index-1.js708
-rw-r--r--installer/5/ru/content/search/index-2.js707
-rw-r--r--installer/5/ru/content/search/index-3.js704
-rw-r--r--installer/5/ru/content/search/ja-jp.props1
-rw-r--r--installer/5/ru/content/search/nwSearchFnt.js513
-rw-r--r--installer/5/ru/content/search/punctuation.props31
-rw-r--r--installer/5/ru/content/search/stemmers/de_stemmer.js247
-rw-r--r--installer/5/ru/content/search/stemmers/en_stemmer.js187
-rw-r--r--installer/5/ru/content/search/stemmers/fr_stemmer.js299
14 files changed, 3693 insertions, 0 deletions
diff --git a/installer/5/ru/content/search/default.props b/installer/5/ru/content/search/default.props
new file mode 100644
index 00000000..22edf439
--- /dev/null
+++ b/installer/5/ru/content/search/default.props
@@ -0,0 +1 @@
+DEF01=a \ No newline at end of file
diff --git a/installer/5/ru/content/search/en-us.props b/installer/5/ru/content/search/en-us.props
new file mode 100644
index 00000000..da284ce5
--- /dev/null
+++ b/installer/5/ru/content/search/en-us.props
@@ -0,0 +1,45 @@
+DEF01=this
+DEF02=is
+DEF03=the
+DEF04=in
+DEF05=i
+DEF06=on
+DEF07=a
+DEF08=about
+DEF09=an
+DEF10=are
+DEF11=as
+DEF12=at
+DEF13=be
+DEF14=by
+DEF15=com
+DEF16=de
+DEF17=en
+DEF18=for
+DEF19=from
+DEF20=how
+DEF21=it
+DEF22=la
+DEF23=of
+DEF24=on
+DEF25=or
+DEF26=that
+DEF27=to
+DEF28=was
+DEF29=what
+DEF30=when
+DEF31=where
+DEF32=who
+DEF33=will
+DEF34=with
+DEF35=und
+DEF36=Next
+DEF37=Prev
+DEF38=Home
+DEF39=Motive
+DEF40=Inc
+DEF41=Copyright
+DEF42=All
+DEF43=rights
+DEF44=reserved
+DEF45=Up \ No newline at end of file
diff --git a/installer/5/ru/content/search/es-es.props b/installer/5/ru/content/search/es-es.props
new file mode 100644
index 00000000..fb73bdcc
--- /dev/null
+++ b/installer/5/ru/content/search/es-es.props
@@ -0,0 +1,179 @@
+DEF01=un
+DEF02=una
+DEF03=unas
+DEF04=unos
+DEF05=uno
+DEF06=sobre
+DEF07=todo
+DEF08=tambin
+DEF09=tras
+DEF10=otro
+DEF11=algn
+DEF12=alguno
+DEF13=alguna
+DEF14=algunos
+DEF15=algunas
+DEF16=ser
+DEF17=es
+DEF18=soy
+DEF19=eres
+DEF20=somos
+DEF21=sois
+DEF22=estoy
+DEF23=esta
+DEF24=estamos
+DEF25=estais
+DEF26=estan
+DEF27=como
+DEF28=en
+DEF29=para
+DEF30=atras
+DEF31=porque
+DEF32=por
+DEF33=estado
+DEF34=estaba
+DEF35=ante
+DEF36=antes
+DEF37=siendo
+DEF38=ambos
+DEF39=pero
+DEF40=por
+DEF41=poder
+DEF42=puede
+DEF43=puedo
+DEF44=podemos
+DEF45=podeis
+DEF46=pueden
+DEF47=fui
+DEF48=fue
+DEF49=fuimos
+DEF50=fueron
+DEF51=hacer
+DEF52=hago
+DEF53=hace
+DEF54=hacemos
+DEF55=haceis
+DEF56=hacen
+DEF57=cada
+DEF58=fin
+DEF59=incluso
+DEF60=primero
+DEF61=desde
+DEF62=conseguir
+DEF63=consigo
+DEF64=consigue
+DEF65=consigues
+DEF66=conseguimos
+DEF67=consiguen
+DEF68=ir
+DEF69=voy
+DEF70=va
+DEF71=vamos
+DEF72=vais
+DEF73=van
+DEF74=vaya
+DEF75=gueno
+DEF76=ha
+DEF77=tener
+DEF78=tengo
+DEF79=tiene
+DEF80=tenemos
+DEF81=teneis
+DEF82=tienen
+DEF83=el
+DEF84=la
+DEF85=lo
+DEF86=las
+DEF87=los
+DEF88=su
+DEF89=aqui
+DEF90=mio
+DEF91=tuyo
+DEF92=ellos
+DEF93=ellas
+DEF94=nos
+DEF95=nosotros
+DEF96=vosotros
+DEF97=vosotras
+DEF98=si
+DEF99=dentro
+DEF100=solo
+DEF101=solamente
+DEF102=saber
+DEF103=sabes
+DEF104=sabe
+DEF105=sabemos
+DEF106=sabeis
+DEF107=saben
+DEF108=ultimo
+DEF109=largo
+DEF110=bastante
+DEF111=haces
+DEF112=muchos
+DEF113=aquellos
+DEF114=aquellas
+DEF115=sus
+DEF116=entonces
+DEF117=tiempo
+DEF118=verdad
+DEF119=verdadero
+DEF120=verdadera
+DEF121=cierto
+DEF122=ciertos
+DEF123=cierta
+DEF124=ciertas
+DEF125=intentar
+DEF126=intento
+DEF127=intenta
+DEF128=intentas
+DEF129=intentamos
+DEF130=intentais
+DEF131=intentan
+DEF132=dos
+DEF133=bajo
+DEF134=arriba
+DEF135=encima
+DEF136=usar
+DEF137=uso
+DEF138=usas
+DEF139=usa
+DEF140=usamos
+DEF141=usais
+DEF142=usan
+DEF143=emplear
+DEF144=empleo
+DEF145=empleas
+DEF146=emplean
+DEF147=ampleamos
+DEF148=empleais
+DEF149=valor
+DEF150=muy
+DEF151=era
+DEF152=eras
+DEF153=eramos
+DEF154=eran
+DEF155=modo
+DEF156=bien
+DEF157=cual
+DEF158=cuando
+DEF159=donde
+DEF160=mientras
+DEF161=quien
+DEF162=con
+DEF163=entre
+DEF164=sin
+DEF165=trabajo
+DEF166=trabajar
+DEF167=trabajas
+DEF168=trabaja
+DEF169=trabajamos
+DEF170=trabajais
+DEF171=trabajan
+DEF172=podria
+DEF173=podrias
+DEF174=podriamos
+DEF175=podrian
+DEF176=podriais
+DEF177=yo
+DEF178=aquel
+DEF179=qu \ No newline at end of file
diff --git a/installer/5/ru/content/search/htmlFileInfoList.js b/installer/5/ru/content/search/htmlFileInfoList.js
new file mode 100644
index 00000000..d5410d16
--- /dev/null
+++ b/installer/5/ru/content/search/htmlFileInfoList.js
@@ -0,0 +1,35 @@
+fil = new Array();
+fil["0"]= "diskdrake.html@@@Ручное разделение диска на разделы с помощью DiskDrake@@@null";
+fil["1"]= "configureX_card_list.html@@@Выбор графического сервера (настройки вашей графической карты)@@@null";
+fil["2"]= "add_supplemental_media.html@@@Выбор носителя (настройки дополнительных носителей пакетов для установки)@@@null";
+fil["3"]= "takeOverHdConfirm.html@@@Подтверждение форматирования жесткого диска@@@null";
+fil["4"]= "choosePackageGroups.html@@@Выбор групп пакетов@@@null";
+fil["5"]= "installer.html@@@DrakX, программа для установки Mageia@@@null";
+fil["6"]= "selectKeyboard.html@@@Клавиатура@@@null";
+fil["7"]= "misc-params.html@@@Резюме относительно других параметров@@@null";
+fil["8"]= "doPartitionDisks.html@@@Разбиение на разделы@@@null";
+fil["9"]= "securityLevel.html@@@Уровень безопасности@@@null";
+fil["10"]= "uninstall-Mageia.html@@@Удаление Mageia@@@null";
+fil["11"]= "minimal-install.html@@@Минимальная установка@@@null";
+fil["12"]= "setupBootloader.html@@@Основные параметры загрузчика@@@null";
+fil["13"]= "selectLanguage.html@@@Выберите, пожалуйста, язык@@@null";
+fil["14"]= "setupSCSI.html@@@Настройка SCSI@@@null";
+fil["15"]= "configureX_chooser.html@@@Настройки графической карты и монитора@@@null";
+fil["16"]= "choosePackagesTree.html@@@Выбор индивидуальных пакетов@@@null";
+fil["17"]= "installUpdates.html@@@Обновления@@@null";
+fil["18"]= "Select-and-use-ISOs.html@@@Выбор и использование образов ISO@@@null";
+fil["19"]= "selectCountry.html@@@Выбор страны и региона@@@null";
+fil["20"]= "configureServices.html@@@Настройка ваших служб@@@null";
+fil["21"]= "media_selection.html@@@Выбор источника (Nonfree)@@@null";
+fil["22"]= "setupBootloaderAddEntry.html@@@Добавление пункта в меню загрузки или внесение изменений в такие пункты@@@null";
+fil["23"]= "soundConfig.html@@@Настройка звука@@@null";
+fil["24"]= "acceptLicense.html@@@Условия лицензирования и заметки о выпуске@@@null";
+fil["25"]= "chooseDesktop.html@@@Выбор рабочего стола@@@null";
+fil["26"]= "addUser.html@@@Управление учётными записями пользователя и администратора@@@null";
+fil["27"]= "selectInstallClass.html@@@Установка или обновление@@@null";
+fil["28"]= "exitInstall.html@@@Поздравляем@@@null";
+fil["29"]= "formatPartitions.html@@@Форматирование@@@null";
+fil["30"]= "configureX_monitor.html@@@Выбор монитора@@@null";
+fil["31"]= "selectMouse.html@@@Выбор драйвера мыши@@@null";
+fil["32"]= "ask_mntpoint_s.html@@@Выберете точки монтированния@@@null";
+fil["33"]= "configureTimezoneUTC.html@@@Настройка часового пояса@@@null";
diff --git a/installer/5/ru/content/search/htmlFileList.js b/installer/5/ru/content/search/htmlFileList.js
new file mode 100644
index 00000000..a1043e49
--- /dev/null
+++ b/installer/5/ru/content/search/htmlFileList.js
@@ -0,0 +1,36 @@
+//List of files which are indexed.
+fl = new Array();
+fl["0"]= "diskdrake.html";
+fl["1"]= "configureX_card_list.html";
+fl["2"]= "add_supplemental_media.html";
+fl["3"]= "takeOverHdConfirm.html";
+fl["4"]= "choosePackageGroups.html";
+fl["5"]= "installer.html";
+fl["6"]= "selectKeyboard.html";
+fl["7"]= "misc-params.html";
+fl["8"]= "doPartitionDisks.html";
+fl["9"]= "securityLevel.html";
+fl["10"]= "uninstall-Mageia.html";
+fl["11"]= "minimal-install.html";
+fl["12"]= "setupBootloader.html";
+fl["13"]= "selectLanguage.html";
+fl["14"]= "setupSCSI.html";
+fl["15"]= "configureX_chooser.html";
+fl["16"]= "choosePackagesTree.html";
+fl["17"]= "installUpdates.html";
+fl["18"]= "Select-and-use-ISOs.html";
+fl["19"]= "selectCountry.html";
+fl["20"]= "configureServices.html";
+fl["21"]= "media_selection.html";
+fl["22"]= "setupBootloaderAddEntry.html";
+fl["23"]= "soundConfig.html";
+fl["24"]= "acceptLicense.html";
+fl["25"]= "chooseDesktop.html";
+fl["26"]= "addUser.html";
+fl["27"]= "selectInstallClass.html";
+fl["28"]= "exitInstall.html";
+fl["29"]= "formatPartitions.html";
+fl["30"]= "configureX_monitor.html";
+fl["31"]= "selectMouse.html";
+fl["32"]= "ask_mntpoint_s.html";
+fl["33"]= "configureTimezoneUTC.html";
diff --git a/installer/5/ru/content/search/index-1.js b/installer/5/ru/content/search/index-1.js
new file mode 100644
index 00000000..563c5359
--- /dev/null
+++ b/installer/5/ru/content/search/index-1.js
@@ -0,0 +1,708 @@
+var indexerLanguage="en";
+//Auto generated index for searching.
+w["-"]="1,5,8,12,18,21,22,26";
+w["-l"]="18";
+w["-sa"]="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33";
+w["0"]="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33";
+w["1"]="5";
+w["100"]="18";
+w["1024x768@60"]="30";
+w["1m"]="18";
+w["2"]="22,31";
+w["256"]="5";
+w["256m"]="5";
+w["3"]="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33";
+w["30"]="30";
+w["32"]="18";
+w["32-битные"]="2";
+w["40"]="1";
+w["4096"]="8";
+w["512"]="8";
+w["64"]="18";
+w["64-битной"]="2";
+w["64-битную"]="2";
+w["64-битные"]="2";
+w["7"]="10";
+w["8"]="18";
+w["acpi"]="5";
+w["alt"]="5,12,27";
+w["apic"]="5";
+w["aspx"]="5";
+w["ati"]="21";
+w["bash"]="26";
+w["bg"]="18";
+w["bittorr"]="18";
+w["boot"]="0,5,10,18,22";
+w["boot-nonfre"]="5,18";
+w["bs"]="18";
+w["ca"]="18";
+w["cauldron"]="32";
+w["cauldron-hom"]="32";
+w["cc"]="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33";
+w["cc776315"]="5";
+w["cd"]="5,18";
+w["cfg"]="22";
+w["com"]="5";
+w["core"]="21";
+w["ctrl"]="5,12,27";
+w["custom"]="22";
+w["dash"]="26";
+w["dd"]="18";
+w["de"]="18";
+w["default"]="5";
+w["delet"]="5,27";
+w["dev"]="18";
+w["df"]="12";
+w["disk"]="18";
+w["diskdrak"]="0";
+w["download"]="18";
+w["draksound"]="23";
+w["drakx"]="1,5,6,7,8,14,15,18,19,20,26,29,30,32";
+w["drakx-installer-stage2"]="18";
+w["dvd"]="2,5,10,18,19";
+w["e"]="5";
+w["en"]="6,18";
+w["en-us"]="5";
+w["enter"]="5";
+w["es"]="18";
+w["esc"]="5";
+w["evdev"]="31";
+w["f1"]="5";
+w["f2"]="5,12,27";
+w["f3"]="5";
+w["f6"]="5";
+w["f7"]="12";
+w["fat32"]="10";
+w["fdisk"]="18";
+w["file"]="18";
+w["fr"]="18";
+w["ftp"]="19";
+w["gcin"]="19";
+w["gmt"]="33";
+w["gnome"]="15,18,25";
+w["gnu-linux"]="5";
+w["gpart"]="8,10";
+w["grub"]="7,12,22";
+w["grub-custom"]="22";
+w["grub2"]="12,22";
+w["hime"]="19";
+w["home"]="7,18,26,27,32";
+w["http"]="5,18,19";
+w["ibus"]="19";
+w["if"]="18";
+w["imag"]="18";
+w["iso"]="5,18";
+w["isodump"]="18";
+w["kcm-grub2"]="22";
+w["kde"]="15,18,25";
+w["keyboard_layout"]="6";
+w["librari"]="5";
+w["lilo"]="7,12";
+w["linux"]="1,8,10,12,26,32";
+w["live"]="5,18";
+w["loader"]="10";
+w["local"]="5";
+w["localedrak"]="19";
+w["lxde"]="15,25";
+w["mageia"]="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33";
+w["mageia-4-x86_64-dvd"]="18";
+w["mbr"]="12";
+w["mcc"]="23";
+w["md5sum"]="18";
+w["mem"]="5";
+w["microsoft"]="5,8";
+w["mk"]="18";
+w["msdn"]="5";
+w["n"]="15,30";
+w["nfs"]="2";
+w["no"]="5";
+w["noauto"]="5";
+w["nonfre"]="7,21";
+w["ntfs"]="10";
+w["nvidia"]="21";
+w["option"]="5";
+w["org"]="6,28";
+w["pl"]="18";
+w["play"]="15,30";
+w["plug"]="15,30";
+w["ps"]="31";
+w["pt"]="18";
+w["ram"]="5";
+w["rbash"]="26";
+w["return"]="5";
+w["root"]="18,19,26";
+w["ru"]="18";
+w["rufus"]="18";
+w["safe"]="5";
+w["sam@localhost"]="18";
+w["scim"]="19";
+w["scsi"]="14";
+w["sda"]="0,12";
+w["sda7"]="12";
+w["sdb"]="0,18";
+w["sdc"]="0,18";
+w["sdx"]="18";
+w["set"]="5";
+w["sh"]="26";
+w["sha1sum"]="18";
+w["su"]="18";
+w["sv"]="18";
+w["sync"]="18";
+w["system"]="10,15";
+w["taint"]="21";
+w["text"]="5";
+w["tmp"]="12";
+w["tty2"]="12";
+w["uefi"]="5";
+w["uk"]="18";
+w["unicod"]="13";
+w["url-адреса"]="2";
+w["us"]="6";
+w["usb"]="0,16,18,31";
+w["user"]="18";
+w["utc"]="33";
+w["utf-8"]="13";
+w["var"]="32";
+w["vesa"]="1";
+w["vgalo"]="5";
+w["video"]="32";
+w["vista"]="10";
+w["wifi"]="21";
+w["wiki"]="6";
+w["wikipedia"]="6";
+w["win32"]="18";
+w["window"]="5,8,10,15,18";
+w["windows®"]="8";
+w["windows»"]="10";
+w["www"]="28";
+w["x"]="15,18";
+w["xfce"]="18";
+w["xp"]="10";
+w["xxx"]="5";
+w["xxxm"]="5";
+w[" "]="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33";
+w["©"]="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33";
+w["«-»"]="18";
+w["«2»"]="8";
+w["«nonfree»"]="1";
+w["«rescu"]="10";
+w["«restor"]="10";
+w["«sda5»"]="32";
+w["«sda7»"]="12";
+w["«sda»"]="12";
+w["«vesa»"]="30";
+w["«xorg»"]="1";
+w["«выбор"]="7,11";
+w["«выровнять"]="8";
+w["«да»"]="15";
+w["«далее»"]="22";
+w["«жесткий"]="32";
+w["«загрузчик»"]="12";
+w["«записи»"]="18";
+w["«миб»"]="8";
+w["«минимальная"]="4,11";
+w["«настроить"]="19";
+w["«настройка"]="7";
+w["«настройки"]="7";
+w["«номер"]="32";
+w["«основные"]="7";
+w["«очищен»"]="8";
+w["«резюме»"]="12";
+w["«с"]="18";
+w["«свободное"]="8";
+w["«система»"]="19";
+w["«сохранить"]="18";
+w["«тип»"]="32";
+w["«точка"]="32";
+w["«установка"]="27";
+w["«устройство»"]="32";
+w["«ёмкость»"]="32";
+w["»"]="8";
+w["а"]="8,10,12,18,20,24,26,29,30";
+w["автоматически"]="6,7,12,18,28,30";
+w["автоматическое"]="5";
+w["автоматическом"]="12";
+w["авторских"]="21";
+w["администратора"]="26";
+w["администратором"]="7";
+w["администрирования"]="10";
+w["азиатских"]="19";
+w["азии"]="19";
+w["аккаунт"]="26";
+w["аккаунта"]="26";
+w["алгоритма"]="18";
+w["альтернативной"]="8";
+w["американская"]="6";
+w["американскому"]="5";
+w["английский"]="18";
+w["английскому"]="5";
+w["аппаратными"]="30";
+w["архитектур"]="18";
+w["архитектуры"]="2,18";
+w["африканских"]="19";
+w["африки"]="19";
+w["база"]="1,30";
+w["базе"]="30";
+w["базового"]="5";
+w["базовому"]="5";
+w["базовые"]="1";
+w["базы"]="1";
+w["байт"]="8";
+w["барьером"]="7";
+w["без"]="2,5,7,10,18,23,26";
+w["безопасности"]="5,7,9";
+w["безопасность"]="7,9";
+w["безопасные"]="5";
+w["безопасными"]="15";
+w["безразлично"]="15";
+w["бесплатными"]="21";
+w["беспроводной"]="19";
+w["бит"]="18";
+w["благодарны"]="24";
+w["блоки"]="29";
+w["боковой"]="5";
+w["более"]="1,7,31";
+w["больше"]="7,18,27,28";
+w["большие"]="26";
+w["большинстве"]="5";
+w["брандмауэр"]="7";
+w["будем"]="24";
+w["будет"]="0,1,2,5,6,7,8,10,11,12,13,15,16,17,18,19,22,23,24,26,30,32";
+w["будут"]="0,2,5,7,8,18,20,21,26,29,30,32";
+w["будущий"]="8";
+w["будущих"]="26";
+w["будьте"]="1,8";
+w["букв"]="26";
+w["буква"]="32";
+w["букву"]="10";
+w["был"]="22,26,33";
+w["была"]="2,6,7,10,15,27";
+w["были"]="0,12,15,18,19";
+w["было"]="10,13,26,27";
+w["быстродействием"]="5";
+w["быть"]="5,6,7,8,10,12,15,17,18,32";
+w["в"]="0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,32,33";
+w["важно"]="7,30";
+w["важные"]="7,8";
+w["важным"]="19";
+w["важных"]="8,10,26";
+w["валюты"]="19";
+w["вам"]="1,2,4,5,6,7,8,11,12,13,14,15,18,20,22,24,26,27,30";
+w["вами"]="2,6,7,13,16,18,22,25,28";
+w["вариант"]="4,5,7,8,10,11,30";
+w["варианта"]="8,16,25";
+w["вариантов"]="5,7";
+w["вариантом"]="8,11,26,27,31";
+w["варианты"]="26";
+w["вас"]="5,7,8,9,10,15,18,25,30,31";
+w["ваш"]="1,17,18,19,24,26,30,33";
+w["ваше"]="10";
+w["вашего"]="7,12,13,15,18,30";
+w["вашей"]="1,6,7,9,13,19,20,23,25,30";
+w["вашем"]="0,8,15,28,32";
+w["вашему"]="7,30";
+w["ваши"]="5,27,32";
+w["вашим"]="7,10,13,30,33";
+w["вашими"]="8";
+w["ваших"]="7,20,26";
+w["вашу"]="1,30,33";
+w["введенный"]="26";
+w["введите"]="5,18,26";
+w["введён"]="26";
+w["ввести"]="26";
+w["ввод"]="26";
+w["ввода"]="19";
+w["вводе"]="26";
+w["вводить"]="19";
+w["великолепно"]="12";
+w["вернет"]="15";
+w["вернетесь"]="6";
+w["вернитесь"]="5";
+w["вернуться"]="5,12,27,29";
+w["вероятно"]="5,12";
+w["версией"]="2";
+w["версии"]="5,12,17,22,27,32";
+w["версий"]="27";
+w["версию"]="2,12,26,27";
+w["версия"]="27";
+w["вертикали"]="15";
+w["вертикальной"]="30";
+w["верхнем"]="23";
+w["весь"]="8";
+w["видео"]="1,21,32";
+w["видео-dvd"]="21";
+w["видеоадаптер"]="1";
+w["видеоаппаратуры"]="30";
+w["видеокарт"]="1";
+w["видеокарту"]="30";
+w["видите"]="21";
+w["вики"]="5,18";
+w["вкладка"]="0";
+w["вкладку"]="23";
+w["включена"]="2";
+w["включение"]="2,7";
+w["включения"]="7,21";
+w["включены"]="21,30";
+w["включить"]="1,7,15,26";
+w["вместе"]="7";
+w["вместо"]="8";
+w["внесение"]="22";
+w["внесении"]="10";
+w["внесению"]="5";
+w["внесения"]="0,32";
+w["внести"]="22";
+w["внимание"]="0,5,6,7,8,12,13,15,18,19,22,24,26,27,30,32";
+w["внимательно"]="30";
+w["внимательны"]="1";
+w["вносите"]="7,20";
+w["во"]="5,8,13,15,19,22,23,27,33";
+w["возможности"]="1,18,19,25,26,30";
+w["возможность"]="10,18,19,26,27";
+w["возможностью"]="5";
+w["возможностями"]="5";
+w["возможны"]="14,26";
+w["возможные"]="5";
+w["возможный"]="10";
+w["возникает"]="5";
+w["возникают"]="31";
+w["возникла"]="5,30";
+w["возникнуть"]="10";
+w["войти"]="26";
+w["вопреки"]="5,27";
+w["вопрос"]="15";
+w["воспользовавшись"]="5";
+w["воспользовались"]="21";
+w["воспользоваться"]="0,1,2,5,7,8,10,12,16,18,22,27";
+w["воспользуйтесь"]="5,10,18";
+w["воспроизведения"]="21";
+w["восстановить"]="10";
+w["восстановление"]="5,26";
+w["восстановления"]="18";
+w["восточных"]="19";
+w["впишите"]="5";
+w["впоследствии"]="8,18";
+w["впрочем"]="2,4,5,7,12,14,26,27";
+w["времени"]="17,33";
+w["временного"]="26";
+w["время"]="5,8,13,15,18,19,22,23,27,33";
+w["вручную"]="4,5,8,11,14,15,19,22,29";
+w["все"]="0,1,3,8,15,18,21,26,29";
+w["всегда"]="9,10";
+w["всего"]="7,24";
+w["всем"]="11,18,26";
+w["всемирное"]="33";
+w["всех"]="0,2,8,10,13,19,26,33";
+w["встретился"]="14";
+w["всяких"]="10";
+w["всё"]="27";
+w["второе"]="5";
+w["вы"]="0,1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33";
+w["выберете"]="11,15,30,31,32";
+w["выберите"]="5,6,7,10,13,15,17,19,25,26,30,33";
+w["выбирает"]="6,7";
+w["выбирайте"]="12";
+w["выбирать"]="30";
+w["выбор"]="1,2,4,5,6,7,13,15,16,17,18,19,21,25,30,31";
+w["выбора"]="2,5,6,7,10,11,13,19,21,22,25,27,29";
+w["выборе"]="3,7,29";
+w["выбором"]="11,19,30,32";
+w["выбору"]="2";
+w["выбрав"]="23";
+w["выбрал"]="23";
+w["выбрали"]="6";
+w["выбран"]="1,5,8,12,18,22";
+w["выбрана"]="6,7,15,19";
+w["выбранного"]="25";
+w["выбранной"]="13";
+w["выбранном"]="0,5";
+w["выбранную"]="22";
+w["выбранные"]="5";
+w["выбранным"]="6";
+w["выбранными"]="7";
+w["выбранных"]="20,29";
+w["выбрано"]="13,18";
+w["выбраны"]="12";
+w["выбрать"]="1,5,6,11,12,13,15,16,19,23,25,28,29,30,31,32,33";
+w["выглядит"]="25";
+w["выглядят"]="12";
+w["вызвать"]="5";
+w["выйти"]="24";
+w["выключать"]="21";
+w["выключение"]="7,13";
+w["выпадающего"]="32";
+w["выполнение"]="5";
+w["выполнения"]="18,25";
+w["выполнено"]="0";
+w["выполнить"]="0,2,5,8,10,27,32";
+w["выполнялось"]="8";
+w["выполнять"]="22";
+w["выполняются"]="26";
+w["выпуска"]="17";
+w["выпуске"]="24";
+w["выпусков"]="18";
+w["выпущена"]="27";
+w["выпущенные"]="21";
+w["выходе"]="26";
+w["вычислены"]="18";
+w["вычислить"]="18";
+w["выше"]="18";
+w["вышеуказанными"]="5";
+w["выявить"]="12";
+w["выявленного"]="7";
+w["гарантирует"]="8";
+w["гб"]="18";
+w["где"]="2,4,5,18";
+w["гибридными"]="18";
+w["глубину"]="15";
+w["голубым"]="8";
+w["горизонтали"]="15";
+w["горизонтальной"]="30";
+w["город"]="33";
+w["гостевого"]="26";
+w["гостевой"]="26";
+w["графическая"]="4,15";
+w["графические"]="12";
+w["графический"]="7,11";
+w["графическим"]="18,21,22";
+w["графическими"]="5";
+w["графических"]="1,7";
+w["графического"]="1,5";
+w["графической"]="1,7,15";
+w["графическом"]="5,15";
+w["графическую"]="1,15,25";
+w["гринвичу"]="33";
+w["групп"]="4,11,20";
+w["группой"]="30";
+w["группу"]="30";
+w["группы"]="4,20,26";
+w["гц"]="30";
+w["д"]="7,18";
+w["да"]="17";
+w["даже"]="0,13,26";
+w["дайте"]="18";
+w["далее"]="3,10,17,24,29,32";
+w["данные"]="0,3,5,6,7,8,16,18,20,26,29,32";
+w["данным"]="18";
+w["данными"]="7";
+w["данных"]="0,1,8,10,18,26,30";
+w["дают"]="19";
+w["два"]="2";
+w["две"]="25";
+w["двойственной"]="18";
+w["двух"]="30";
+w["действие"]="0,18";
+w["действий"]="5,20,22,26";
+w["действия"]="0,5,27,32";
+w["действиям"]="22";
+w["делайте"]="27";
+w["делать"]="17";
+w["дело"]="14";
+w["демонстрацию"]="25";
+w["детализирован"]="18";
+w["дефолтной"]="22";
+w["дефолтные"]="9";
+w["дефолтный"]="7,22,23,30";
+w["дефолтным"]="7,12";
+w["дефрагментация"]="8";
+w["дефрагментирован"]="8";
+w["диалогового"]="6,26";
+w["диалоговое"]="6,26";
+w["диалоговому"]="6";
+w["динамические"]="5";
+w["динамический"]="5";
+w["диск"]="5,8,18";
+w["диск»"]="32";
+w["диска"]="0,3,8,10,12,18,32";
+w["диска»"]="32";
+w["дисками"]="10,14";
+w["дисках"]="8";
+w["диске"]="3,8,10,12,18";
+w["дискеты"]="16";
+w["дисков"]="8,14";
+w["дисковым"]="14";
+w["диском"]="14";
+w["диску"]="5";
+w["дисплеев"]="7,30";
+w["дистрибутив"]="24";
+w["дистрибутива"]="10,21,24";
+w["дистрибутивом"]="18";
+w["для"]="0,1,2,4,5,6,7,8,9,10,11,12,13,15,16,18,19,21,22,23,25,26,28,29,30,31,32,33";
+w["до"]="0,8,18,27";
+w["добавить"]="2,5,7,12,13,18,22,26";
+w["добавлен"]="12";
+w["добавление"]="22";
+w["добавлении"]="7";
+w["добавления"]="2,4,12";
+w["добавлено"]="26";
+w["добавлены"]="19,26";
+w["добавляете"]="26";
+w["довольно"]="13";
+w["документацией"]="6,30";
+w["документации"]="12,18,30";
+w["документацию"]="5,11";
+w["должен"]="7,8,12,18,23,32";
+w["должна"]="8,10,12";
+w["должны"]="5,12,15,26";
+w["должным"]="1,5,10,14,15,18,30";
+w["домашние"]="26";
+w["домашний"]="26";
+w["домашним"]="26";
+w["домашних"]="26";
+w["домена"]="19";
+w["дополнение"]="12";
+w["дополнения"]="11";
+w["дополнительно"]="5,12,15,23,25,26,29,30";
+w["дополнительного"]="27";
+w["дополнительное"]="6";
+w["дополнительные"]="5,12,16,20,25,26,32";
+w["дополнительным"]="5";
+w["дополнительными"]="5";
+w["дополнительных"]="2";
+w["дополнят"]="16";
+w["достаточно"]="7,8,16,18,26,33";
+w["достаточного"]="8";
+w["достаточное"]="8";
+w["достаточную"]="7";
+w["достигнут"]="15";
+w["достоверно"]="22";
+w["доступ"]="1,2,5,7,8,18,19,32";
+w["доступа"]="7,8,26";
+w["доступна"]="15";
+w["доступно"]="18,26";
+w["доступны"]="2,21";
+w["доступные"]="18";
+w["доступным"]="10";
+w["доступных"]="5,21,23";
+w["драйвер"]="1,7,23,30,31";
+w["драйвера"]="7,23,31";
+w["драйверов"]="1,14,21,23";
+w["драйвером"]="1,23";
+w["драйверы"]="1,18";
+w["другая"]="15";
+w["другие"]="2,12,16,18,19,26";
+w["другим"]="22,26";
+w["другими"]="10,13,30";
+w["других"]="7,22,26";
+w["другого"]="0,7,22";
+w["другое"]="0,8,18";
+w["другой"]="5,12,23,31";
+w["другую"]="6";
+w["е"]="18";
+w["его"]="0,2,5,8,10,18,26,30";
+w["ее"]="0,1,15";
+w["ему"]="10";
+w["если"]="0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33";
+w["есть"]="5,8,19,21,23,30";
+w["еще"]="1,2,6,10,16,26,29";
+w["ещё"]="18,27";
+w["ею"]="18";
+w["же"]="1,15,18,26,30,33";
+w["желаемого"]="7,13";
+w["желаемое"]="15";
+w["желаемую"]="25";
+w["желаемый"]="15";
+w["желают"]="18";
+w["жесткого"]="0,3,32";
+w["жёлтый"]="26";
+w["жёсткий"]="18";
+w["жёстком"]="18";
+w["за"]="7,24,26";
+w["забудьте"]="7,12,18,32";
+w["забыли"]="27";
+w["завершена"]="8,18";
+w["завершения"]="18,26";
+w["завершены"]="0";
+w["зависеть"]="7";
+w["зависимости"]="25,26";
+w["зависит"]="7,8,21";
+w["загружается"]="22";
+w["загружать"]="18";
+w["загружен"]="18";
+w["загруженного"]="18";
+w["загруженных"]="18";
+w["загружены"]="18";
+w["загрузится"]="10";
+w["загрузить"]="16";
+w["загрузка"]="0,18";
+w["загрузке"]="5,10,20";
+w["загрузки"]="5,12,18,19,22,28";
+w["загрузочного"]="18";
+w["загрузочную"]="12";
+w["загрузчик"]="7,10,12,22";
+w["загрузчика"]="7,12,22,28";
+w["загрузчика»"]="7";
+w["загрузчиком"]="12";
+w["задач"]="26";
+w["задействовать"]="31";
+w["законами"]="21";
+w["законодательством"]="21";
+w["закрытые"]="1,7";
+w["закрытым"]="21";
+w["закрытых"]="7,21";
+w["заменить"]="32";
+w["заметки"]="24";
+w["заметно"]="15";
+w["заметьте"]="5,8";
+w["замечание"]="2,5,8,19,22,26,27,32,33";
+w["заново"]="18";
+w["занято"]="10";
+w["записаны"]="26";
+w["записать"]="18";
+w["записей"]="22";
+w["записи"]="7,18,22,26";
+w["записывает"]="12";
+w["записывать"]="18,26";
+w["запись"]="2,12,18,22";
+w["записями"]="7,26";
+w["заполняйте"]="26";
+w["запрос"]="6";
+w["запроса"]="5";
+w["запросы"]="5";
+w["запуска"]="5";
+w["запускаться"]="20";
+w["запуском"]="12";
+w["запустите"]="19,23";
+w["запустится"]="28";
+w["заранее"]="13";
+w["затем"]="0,23,26";
+w["защитить"]="26";
+w["защиту"]="7";
+w["защиты"]="7,9";
+w["защищает"]="7";
+w["защищенности"]="26";
+w["защищены"]="26";
+w["звеном"]="7";
+w["звука"]="23";
+w["звуковая"]="7";
+w["звуковой"]="23";
+w["звуковых"]="21";
+w["здесь"]="5,18,21,26";
+w["зелёный"]="26";
+w["зеркала"]="2";
+w["знатоком"]="7";
+w["знать"]="5";
+w["значение"]="5,7,18,30";
+w["значении"]="7";
+w["значения"]="9,15";
+w["значительно"]="7";
+w["значок"]="16,26";
+w["и"]="0,1,2,3,5,6,7,8,10,11,12,13,15,16,17,18,19,21,23,24,25,26,28,30,32";
+w["игр"]="26";
+w["идентификатор"]="26";
+w["иерархического"]="1,30";
+w["из"]="1,2,4,5,6,7,13,15,18,19,20,21,22,23,25,26,27,28,30,32";
+w["из-за"]="14";
+w["известно"]="1,13,30";
+w["известного"]="33";
+w["известны"]="20";
+w["извлекать"]="28";
+w["извлеките"]="18";
+w["изложены"]="4";
+w["изменение"]="22";
+w["изменении"]="20";
+w["изменений"]="0,5,7,10,22,32";
+w["изменения"]="20,22";
+w["измените"]="0";
+w["изменить"]="5,7,8,9,12,13,18,22,26";
+w["изменять"]="0,15";
+
diff --git a/installer/5/ru/content/search/index-2.js b/installer/5/ru/content/search/index-2.js
new file mode 100644
index 00000000..36ef1d81
--- /dev/null
+++ b/installer/5/ru/content/search/index-2.js
@@ -0,0 +1,707 @@
+//Auto generated index for searching.
+w["изображение"]="30";
+w["изображением"]="20";
+w["изображения"]="15,30";
+w["иконка"]="26";
+w["или"]="0,1,2,4,5,6,7,8,10,11,12,13,15,16,17,18,19,22,23,25,26,27,30,31,32,33";
+w["имеет"]="26";
+w["имеете"]="14";
+w["имеется"]="23";
+w["имени"]="18,19,26";
+w["именно"]="5,12,14";
+w["иметь"]="1,14,26";
+w["имеющихся"]="23";
+w["ими"]="18";
+w["имя"]="18,26";
+w["иначе"]="0,12,24,30";
+w["индивидуальный"]="4";
+w["индивидуальных"]="11,16";
+w["индии"]="19";
+w["инсталлятор"]="7,18,23";
+w["инсталлятора"]="12,18,27";
+w["инсталлятору"]="5";
+w["инструмент"]="5,18";
+w["инструмента"]="7";
+w["инструментов"]="18,25";
+w["инструментом"]="18,22";
+w["интернет-хранилища"]="2";
+w["интернета"]="7,26";
+w["интернете"]="18";
+w["интернетом"]="7";
+w["интернету"]="17";
+w["интерфейс"]="7";
+w["интерфейса"]="5,13";
+w["интерфейсе"]="15";
+w["интерфейсом"]="7,18";
+w["интерфейсу"]="1";
+w["информации"]="18";
+w["информация"]="18";
+w["использован"]="8";
+w["использована"]="6,8";
+w["использование"]="7,12,18,33";
+w["использовании"]="8,18";
+w["использования"]="5,7,8,19";
+w["использовать"]="4,8,11,12,13,25,26,30";
+w["использоваться"]="13,26";
+w["используемой"]="13";
+w["использует"]="7";
+w["используете"]="7";
+w["используется"]="12,13,33";
+w["используйте"]="5";
+w["используют"]="18";
+w["используются"]="2,8";
+w["исправить"]="7,15";
+w["источник"]="2";
+w["источника"]="18,21";
+w["источники"]="2,18";
+w["их"]="4,5,9,12,13,18,21,22";
+w["к"]="1,2,5,6,7,8,12,15,17,18,19,21,22,25,26,27,29,30,32";
+w["каждого"]="0,7,32";
+w["каждой"]="10,12,20,26";
+w["каждом"]="5";
+w["каждый"]="18,26";
+w["кажется"]="15";
+w["как"]="0,5,8,10,11,13,16,17,18,23,26,33";
+w["какая"]="15";
+w["какие"]="2,20,21,29";
+w["какие-то"]="2,8";
+w["каким"]="14";
+w["каких-то"]="8";
+w["какой-то"]="11,12,25,33";
+w["канал"]="18";
+w["карт"]="1,7,21";
+w["карта"]="15";
+w["картам"]="21";
+w["картами"]="5";
+w["карту"]="1,15";
+w["карты"]="1,7,15,23,30";
+w["касается"]="13";
+w["касаются"]="24";
+w["каталог"]="0,12,26";
+w["каталога"]="12";
+w["каталогам"]="26";
+w["каталоги"]="26";
+w["каталогов"]="26";
+w["категории"]="1";
+w["китайского"]="19";
+w["клавиатур"]="6";
+w["клавиатура"]="6,7";
+w["клавиатуры"]="5,6,7,13";
+w["клавиш"]="5,12,27";
+w["клавиши"]="5";
+w["клавишу"]="5";
+w["классический"]="18";
+w["кнопка"]="15";
+w["кнопками"]="31";
+w["кнопки"]="5,22,24,25,26,31";
+w["кнопкой"]="10";
+w["кнопку"]="0,3,5,6,7,12,13,16,17,19,20,22,24,26,29,32";
+w["ко"]="18";
+w["когда"]="0,5,7,8,27";
+w["код"]="26";
+w["кодеки"]="18,21";
+w["кодировка"]="13";
+w["кодировку"]="13";
+w["кодом"]="1,21";
+w["командами"]="5";
+w["командная"]="26";
+w["командной"]="1";
+w["командную"]="26";
+w["командой"]="5";
+w["команду"]="5,12,18";
+w["команды"]="18";
+w["комбинации"]="5,12,27";
+w["комбинацию"]="5,27";
+w["коммерческих"]="21";
+w["компакт-диск"]="18";
+w["комплектации"]="8";
+w["компонентах"]="18";
+w["компоновки"]="0";
+w["компьютер"]="5,7,17,24,27,28";
+w["компьютер»"]="19";
+w["компьютера"]="7,8,12,18,33";
+w["компьютерах"]="18";
+w["компьютере"]="10,12,15,27,28,32,33";
+w["компьютером"]="7,10,18,26";
+w["компьютеру"]="6,7";
+w["компьютеры"]="16";
+w["конечно"]="26";
+w["конкретного"]="26";
+w["консоли"]="18";
+w["консоль"]="18";
+w["консольной"]="18";
+w["континента"]="13";
+w["контроллер"]="14";
+w["контроллера"]="5";
+w["контроллером"]="14";
+w["конце"]="18";
+w["координатные"]="7";
+w["копии"]="8,10";
+w["копированием"]="18";
+w["корейского"]="19";
+w["корневого"]="12";
+w["корневой"]="12,32";
+w["которая"]="6,7,12,22,26,27";
+w["которого"]="6,15,18,26,30";
+w["которое"]="5,10,19,32";
+w["которой"]="5,7,12,30";
+w["котором"]="6,7,18,32";
+w["которую"]="26";
+w["которые"]="2,7,12,16,18,19,21,26,29,31";
+w["который"]="5,7,8,12,15,18,23,30";
+w["которым"]="7,21,32";
+w["которыми"]="5,8";
+w["которых"]="5,12,14,26";
+w["крайней"]="29";
+w["красного"]="26";
+w["критерием"]="21";
+w["критериям"]="1,30";
+w["критических"]="30";
+w["кроме"]="6,8,10,13,26,32";
+w["кто"]="11,18";
+w["куда"]="10";
+w["курсором"]="31";
+w["латинской"]="6";
+w["ли"]="12,15,26,32";
+w["линии"]="30";
+w["лицензионного"]="24";
+w["лицензионное"]="24";
+w["лицензионными"]="21";
+w["лицензировании"]="2";
+w["лицензирования"]="24";
+w["личные"]="5";
+w["логические"]="8";
+w["логический"]="8";
+w["ложные"]="5";
+w["ложный"]="19";
+w["локалей"]="19";
+w["локализации"]="13,19";
+w["локального"]="5";
+w["локальной"]="18";
+w["локальном"]="18";
+w["лучше"]="7,9,26,27";
+w["лучшим"]="12";
+w["любая"]="15,31";
+w["любое"]="0";
+w["любой"]="18,23,26";
+w["любые"]="26";
+w["любым"]="18";
+w["любых"]="26";
+w["мала"]="18";
+w["маленькие"]="18,26";
+w["малых"]="18";
+w["манипуляторы"]="7";
+w["мастера"]="8";
+w["мб"]="5,18";
+w["мегабайтах"]="8";
+w["между"]="6,7,8";
+w["менее"]="18,25";
+w["меньше"]="25";
+w["меньшие"]="26";
+w["меню"]="5,10,12,19,22,32";
+w["меняйте"]="9";
+w["менять"]="5";
+w["меняться"]="26";
+w["мере"]="29";
+w["места"]="7,8,10,12";
+w["месте"]="8";
+w["местного"]="33";
+w["местное"]="33";
+w["место"]="8,10,12";
+w["местом"]="10,33";
+w["метке"]="10";
+w["метки"]="22";
+w["миб"]="8";
+w["минимальная"]="11";
+w["минимальной"]="4";
+w["минимальные"]="30";
+w["минимум"]="18";
+w["мне"]="23";
+w["многие"]="18";
+w["много"]="32";
+w["могли"]="17";
+w["могут"]="2,7,15,18";
+w["модели"]="6";
+w["модель"]="6";
+w["модуля"]="9";
+w["может"]="1,2,5,6,7,8,10,19,21,22,25,27,30";
+w["можете"]="1,4,5,6,7,8,9,10,11,12,15,18,19,20,22,23,26,27,29,30,31,32,33";
+w["можно"]="0,1,2,4,5,6,7,8,10,12,13,15,16,18,19,22,25,26,28,29";
+w["монитор"]="15,30";
+w["монитора"]="15,30";
+w["монитора»"]="7";
+w["мониторе"]="15";
+w["мониторов"]="30";
+w["монитору"]="30";
+w["монтирования"]="0,32";
+w["монтированния"]="32";
+w["монтированния»"]="32";
+w["монтируйте"]="18";
+w["мошенников"]="7";
+w["мультимедийные"]="21";
+w["мы"]="8,18,24";
+w["мыши"]="4,8,10,31";
+w["мышь"]="7,31";
+w["на"]="0,1,2,3,4,5,6,7,8,10,11,12,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,32,33";
+w["набор"]="2,21";
+w["набора"]="16";
+w["наборы"]="25";
+w["наведение"]="4";
+w["над"]="5,30";
+w["надлежащее"]="8";
+w["надлежащий"]="22";
+w["надлежащую"]="6";
+w["нажав"]="23";
+w["нажатие"]="5,23";
+w["нажатием"]="5,12,25,27";
+w["нажатия"]="5,12,15,22,23,24";
+w["нажать"]="7,12,16,29";
+w["нажмете"]="26";
+w["нажмите"]="0,3,5,6,12,13,17,19,20,22,24,27,29,32";
+w["назад"]="3,29,32";
+w["название"]="1,21,22,30";
+w["названий"]="4";
+w["названию"]="1";
+w["названия"]="5";
+w["назначение"]="4,5,22";
+w["назначения"]="7";
+w["называем"]="18";
+w["называемые"]="29";
+w["называемый"]="18";
+w["называется"]="15,26";
+w["называются"]="7";
+w["найти"]="1,5,6,10,18,23";
+w["намерен"]="11";
+w["намерены"]="25";
+w["направления"]="11";
+w["например"]="5,8,10,12,18,21,32";
+w["настоятельно"]="8";
+w["настоящего"]="26";
+w["настоящее"]="26";
+w["настраивать"]="19";
+w["настроек"]="20,30";
+w["настроена"]="28";
+w["настроить"]="7,12,14,18,31";
+w["настройка"]="13,14,20,23,33";
+w["настройках"]="7";
+w["настройки"]="0,1,2,5,7,15,19,22,25,26";
+w["настройку"]="5,7";
+w["находитесь"]="7";
+w["находиться"]="5,18,27";
+w["начала"]="5,27";
+w["начальной"]="5";
+w["начальном"]="5";
+w["наш"]="24";
+w["не"]="0,1,2,3,5,6,7,8,9,10,12,13,14,15,17,18,19,21,22,24,25,26,27,28,29,30,31,32";
+w["небольшие"]="7";
+w["неважно"]="5";
+w["неверный"]="23";
+w["невозможна"]="5,24";
+w["невозможно"]="5";
+w["невозможной"]="0";
+w["невозможности"]="5,19,22,27";
+w["недостаточно"]="18";
+w["недоступна"]="15";
+w["неизвестно"]="22";
+w["неизвестны"]="26";
+w["неизвестный"]="10";
+w["ней"]="7,18";
+w["некогда"]="10";
+w["некоторое"]="15";
+w["некоторые"]="1,5,7,17,18,22";
+w["некоторым"]="18";
+w["некоторыми"]="5";
+w["некоторых"]="5,6,8,21";
+w["нелатинскими"]="6";
+w["нелатинской"]="6";
+w["нельзя"]="2,5,21";
+w["нем"]="21";
+w["немного"]="12";
+w["необходимо"]="2,13,18";
+w["необходимости"]="5,7,20";
+w["необходимость"]="30";
+w["необходимые"]="21";
+w["необходимых"]="18";
+w["неплохим"]="31";
+w["неполадок"]="23";
+w["непригодны"]="18";
+w["несвободного"]="18";
+w["несвободное"]="18";
+w["несвободными"]="18";
+w["несвободных"]="2";
+w["нескольких"]="13";
+w["несколько"]="5,13,23,27,28,33";
+w["несовместим"]="13";
+w["несовпадении"]="18";
+w["нет"]="1,5,8,15,17,19,20,23";
+w["нечто"]="18";
+w["ни"]="7,25";
+w["ниже"]="5,8,15,26";
+w["нижней"]="16,19";
+w["низкого"]="5";
+w["никаких"]="7";
+w["ним"]="1,7,19";
+w["ними"]="8";
+w["них"]="5,7,13,21,32";
+w["ничего"]="5,19";
+w["ничем"]="22";
+w["но"]="5,7,8,18,21,23,25,26";
+w["нововведений"]="24";
+w["новое"]="5,12";
+w["новой"]="8,12";
+w["новый"]="5,10,12";
+w["новых"]="8";
+w["номер"]="22,26";
+w["носителе"]="0,18";
+w["носителей"]="2";
+w["носителем"]="18";
+w["носители"]="18";
+w["носитель"]="2,18,26,28";
+w["носителя"]="0,2,18,21";
+w["ноутбуков"]="30";
+w["нуждается"]="18";
+w["нужен"]="5";
+w["нужно"]="7,15,29";
+w["нужного"]="6";
+w["нужной"]="6";
+w["нужны"]="12,18";
+w["нужные"]="2";
+w["нужный"]="5,13,18";
+w["нужных"]="4,9,14";
+w["нуля"]="27";
+w["нуля»"]="18";
+w["о"]="7,8,15,20,23,24,26";
+w["об"]="18,21,28";
+w["оба"]="18";
+w["обдумать"]="5,27";
+w["обе"]="25";
+w["обеих"]="18";
+w["обеспечение"]="18,21";
+w["обеспечения"]="18,25";
+w["обеспечивает"]="1";
+w["область"]="0,32";
+w["облегчить"]="4";
+w["обнаружения"]="18";
+w["обнаруженного"]="0";
+w["обнаруженном"]="18";
+w["обнаружено"]="0";
+w["обнаружены"]="8";
+w["обнаружите"]="27";
+w["обнаружить"]="2";
+w["обновить"]="2,18,27";
+w["обновление"]="5,27";
+w["обновление»"]="27";
+w["обновлений"]="2,5,27";
+w["обновления"]="2,15,17,18,30";
+w["обновлены"]="17";
+w["обновляете"]="2";
+w["обновляется"]="30";
+w["обозначение"]="22";
+w["обозначения"]="20";
+w["обозначьте"]="2";
+w["обоих"]="18";
+w["обойти"]="5";
+w["оболочка"]="26";
+w["оболочку"]="26";
+w["оборудование"]="23";
+w["оборудованию"]="8";
+w["оборудования"]="5,7,18";
+w["образ"]="18";
+w["образа"]="5,18";
+w["образами"]="18";
+w["образах"]="19";
+w["образов"]="18";
+w["образом"]="1,5,10,14,15,18,30";
+w["образу"]="7";
+w["образы"]="18";
+w["обратили"]="24";
+w["обратитесь"]="7,30";
+w["обращайте"]="6,19";
+w["общий"]="15,30";
+w["объединяют"]="25";
+w["объем"]="5,12";
+w["объема"]="5";
+w["объяснения"]="5";
+w["обычно"]="1,5,14,20,26,29,30,31";
+w["обычного"]="18";
+w["обычным"]="26";
+w["обычными"]="26";
+w["обязательно"]="32";
+w["ограничений"]="7";
+w["ограничениями"]="2";
+w["ограниченные"]="26";
+w["ограниченным"]="12";
+w["ограничивается"]="21";
+w["один"]="2,5,7,10,13,23";
+w["одна"]="5";
+w["однако"]="5,23";
+w["одним"]="1";
+w["одновременно"]="5,27";
+w["одного"]="5,7,8";
+w["одной"]="18";
+w["одном"]="18";
+w["одну"]="18,25,27,28";
+w["ознакомиться"]="7,8,24";
+w["ознакомление"]="6";
+w["ознакомления"]="6,18";
+w["ознакомьтесь"]="4,6,24,30";
+w["означает"]="18";
+w["окажется"]="6";
+w["окна"]="5,6,19,23,26";
+w["окне"]="5,13,18,19,23,32";
+w["окно"]="5,6,18,22,26";
+w["окну"]="5,6,12,15";
+w["около"]="30";
+w["окон"]="10";
+w["окончательной"]="25";
+w["он"]="7,18";
+w["она"]="1,2,18";
+w["они"]="18";
+w["оперативной"]="5";
+w["операций"]="25";
+w["операционная"]="7,28";
+w["операционной"]="8,10,12,22";
+w["операционные"]="3,12";
+w["операционных"]="12,28,33";
+w["описание"]="5,30";
+w["описанием"]="5";
+w["описанные"]="5";
+w["определен"]="19";
+w["определение"]="2,5,18";
+w["определением"]="5";
+w["определении"]="5";
+w["определенная"]="18";
+w["определенной"]="2";
+w["определенную"]="26";
+w["определенные"]="30";
+w["определенный"]="2";
+w["определенных"]="2";
+w["определены"]="15,32";
+w["определитесь"]="32";
+w["определить"]="0,1,7,10,12,18,20,26,30";
+w["определиться"]="6,12,29";
+w["определяет"]="2,14,21,30";
+w["определённого"]="18";
+w["определённое"]="18";
+w["оптический"]="2";
+w["опционально"]="18";
+w["опция"]="7";
+w["опыт"]="5";
+w["опять"]="30";
+w["ос"]="12";
+w["освобождено"]="10";
+w["основаны"]="15";
+w["основе"]="7,18";
+w["основной"]="13,29";
+w["основном"]="7,12,18";
+w["основную"]="12";
+w["основные"]="12,21";
+w["основным"]="21";
+w["основными"]="5";
+w["особый"]="25";
+w["остальные"]="8";
+w["останется"]="6";
+w["остановиться"]="12";
+w["остановка"]="5";
+w["осторожно"]="30";
+w["осторожны"]="8";
+w["осторожным"]="10";
+w["осторожными"]="7";
+w["осуществляется"]="5";
+w["осуществляться"]="32";
+w["от"]="7,8,10,18,19,21,25,26";
+w["отведена"]="0";
+w["ответ"]="4,10,15,22,32";
+w["ответить"]="15";
+w["отвечать"]="5";
+w["отдайте"]="12";
+w["отдельном"]="0";
+w["отключить"]="7,13,15,25,26";
+w["откроет"]="26";
+w["откройте"]="13,18";
+w["открывает"]="5";
+w["открывается"]="5";
+w["открывайте"]="18";
+w["открыт"]="30";
+w["открыта"]="10";
+w["открыто"]="19,32";
+w["открытым"]="1";
+w["отметки"]="26";
+w["отметку"]="6";
+w["отметок"]="11";
+w["отметьте"]="0,12,18,24,25";
+w["отмечен"]="13";
+w["отмечены"]="29";
+w["относительно"]="4,5,6,7,18";
+w["относится"]="22";
+w["отправьте"]="6";
+w["отсюда"]="21";
+w["офисными"]="26";
+w["очень"]="1,5,7,10,12,18,23,30";
+w["очистить"]="0";
+w["очищать"]="12";
+w["очищены"]="0";
+w["ошибками"]="18";
+w["ошибки"]="7,14";
+w["ошибок"]="26";
+w["ошибочно"]="1,15";
+w["ошибочный"]="15";
+w["ошибочным"]="15";
+w["п"]="19,21";
+w["пакет"]="27";
+w["пакетами"]="18";
+w["пакетов"]="1,2,4,7,11,16,19,21";
+w["пакетов»"]="11";
+w["пакеты"]="2,13,16,17,18,21";
+w["памяти"]="5,18";
+w["памятью"]="5";
+w["панелей"]="30";
+w["панели"]="5,20,26";
+w["панель"]="10";
+w["параметра"]="7";
+w["параметрам"]="5";
+w["параметрами"]="7,8,22";
+w["параметрах"]="5,9";
+w["параметров"]="5,7,15,19,22,30";
+w["параметры"]="5,7,9,12,14,15,26,28,29,30";
+w["пароле"]="26";
+w["пароли"]="26";
+w["пароль"]="26";
+w["пароля"]="26";
+w["паролям"]="26";
+w["патентным"]="21";
+w["первая"]="2";
+w["первого"]="12,19";
+w["первое"]="5";
+w["первой"]="1,5";
+w["первому"]="6";
+w["первоначальной"]="18";
+w["первоначальным"]="26";
+w["первые"]="25";
+w["первый"]="5";
+w["перевести"]="5";
+w["перевод"]="5";
+w["перед"]="19,20,24";
+w["передвижения"]="8";
+w["перезагружать"]="28";
+w["перезагружен"]="24";
+w["перезагрузите"]="10";
+w["перезагрузить"]="5,27";
+w["перезагрузка"]="5,27";
+w["перезагрузке"]="12";
+w["перезагрузки"]="1,26,28";
+w["перезаписана"]="12";
+w["перейдите"]="5,12,27";
+w["переключения"]="6";
+w["перестает"]="5";
+w["перетаскиванием"]="8";
+w["перечень"]="5,8,12,25";
+w["питанием"]="5";
+w["планшеты"]="7";
+w["плата"]="7";
+w["плоских"]="30";
+w["по"]="0,1,5,7,10,11,12,13,15,18,23,25,26,29,30,32,33";
+w["по»"]="8";
+w["повредите"]="30";
+w["повреждению"]="15,30";
+w["поврежденные"]="29";
+w["повторите"]="26";
+w["повторить"]="5,26";
+w["повторно"]="26";
+w["повторяйте"]="0";
+w["под"]="8,20";
+w["поддерживается"]="27";
+w["поддерживалась"]="27";
+w["поддерживаются"]="12";
+w["поддержку"]="13";
+w["подключен"]="17";
+w["подобные"]="19";
+w["подобных"]="30";
+w["подпунктами"]="5";
+w["подробнее"]="18";
+w["подробное"]="5";
+w["подробности"]="25";
+w["подробную"]="5";
+w["подробным"]="5";
+w["подсказка"]="12,27,29";
+w["подсказку"]="4";
+w["подтвердите"]="5";
+w["подтверждение"]="3";
+w["подумайте"]="30";
+w["пожалуйста"]="13,19,22,30";
+w["позаботиться"]="15,26";
+w["позволить"]="23";
+w["позднее"]="1";
+w["поздравляем"]="28";
+w["позже"]="5";
+w["поиска"]="5,18";
+w["пока"]="0,15";
+w["покажет"]="6,8,20";
+w["показ"]="25";
+w["показа"]="22";
+w["показан"]="5";
+w["показана"]="18";
+w["показанном"]="6";
+w["показанные"]="5";
+w["показано"]="22,32";
+w["показаны"]="5,30,32";
+w["показаться"]="19";
+w["поле"]="26";
+w["полезно"]="23";
+w["полезные"]="11,23";
+w["полезным"]="6,8";
+w["полезных"]="25";
+w["полем"]="26";
+w["полная"]="1,30";
+w["полного"]="6,8";
+w["полностью"]="22";
+w["полноценного"]="18";
+w["полноценные"]="25";
+w["полный"]="8,12";
+w["полным"]="6";
+w["получения"]="8,18";
+w["полученное"]="18";
+w["получено"]="18";
+w["получите"]="2,18";
+w["получить"]="1,4,5,8,17,18,19";
+w["пользовались"]="8,12";
+w["пользования"]="5,26,27";
+w["пользователей"]="7,18,26";
+w["пользователем"]="22,26";
+w["пользователь"]="26";
+w["пользователю"]="26";
+w["пользователя"]="7,18,19,26";
+w["пользователям"]="19,26";
+w["пользователями"]="13,26";
+w["пользоваться"]="11,18,26,30";
+w["пользуйтесь"]="8";
+w["пользуются"]="5";
+w["помните"]="7";
+w["поможет"]="12";
+w["помощью"]="0,1,2,5,6,7,8,9,10,12,13,15,16,18,19,20,25,26,28,29,30,32,33";
+w["понять"]="4";
+w["попасть"]="1";
+w["попробовать"]="18";
+w["попробуйте"]="5";
+w["попросите"]="18";
+w["попытается"]="12";
+w["попытку"]="5";
+w["портативный"]="26";
+w["портативных"]="19";
+w["посетите"]="28";
+w["поскольку"]="1,21";
+w["после"]="1,2,5,6,7,9,10,13,14,16,19,20,22,23,24,25,26,27,28";
+w["последнего"]="8";
+w["последней"]="27";
+w["последовательность"]="5";
+w["последствия"]="20,26";
+w["последующих"]="2,21,25";
+w["посмотреть"]="5";
+w["посмотрите"]="5";
+w["посоветоваться"]="7";
+w["посредством"]="15";
+w["потерей"]="8";
+w["потеряны"]="18,26";
+w["потом"]="23,24,29";
+w["потребность"]="5,10";
+
diff --git a/installer/5/ru/content/search/index-3.js b/installer/5/ru/content/search/index-3.js
new file mode 100644
index 00000000..6078739e
--- /dev/null
+++ b/installer/5/ru/content/search/index-3.js
@@ -0,0 +1,704 @@
+//Auto generated index for searching.
+w["потребностям"]="10";
+w["потребуется"]="18";
+w["похитить"]="7";
+w["поэтому"]="8";
+w["появляются"]="5";
+w["пояс"]="7,33";
+w["пояса"]="33";
+w["пояса»"]="7";
+w["поясе"]="33";
+w["пояснения"]="12";
+w["прав"]="26";
+w["права"]="18,26";
+w["правах"]="21";
+w["правильно"]="1,7,14,15,30,32";
+w["правильное"]="5";
+w["правильности"]="15,29";
+w["правильный"]="6,19";
+w["право"]="10";
+w["правой"]="10";
+w["правом"]="23";
+w["пребывания"]="33";
+w["превышают"]="30";
+w["предварительно"]="8";
+w["предложению"]="32";
+w["предложениями"]="8,32";
+w["предложено"]="11";
+w["предложить"]="25";
+w["предметом"]="12";
+w["предназначен"]="18";
+w["предназначена"]="11,18";
+w["предназначены"]="18";
+w["предоставит"]="7,10,27";
+w["предоставить"]="26";
+w["предоставлена"]="7,18";
+w["предоставляют"]="19";
+w["предпочитаете"]="26";
+w["предпочтения"]="5";
+w["предпочтениями"]="8";
+w["представлен"]="2";
+w["предупреждением"]="5,27";
+w["предусмотрена"]="1,10,30";
+w["предусмотрено"]="20";
+w["предыдущего"]="8,26";
+w["предыдущей"]="27";
+w["предыдущем"]="7";
+w["предыдущих"]="18,27";
+w["прежним"]="6";
+w["преимущество"]="5";
+w["прекратить"]="5,27";
+w["преобразовали"]="5";
+w["прерываний"]="5";
+w["прерываниями"]="5";
+w["при"]="5,7,8,10,12,15,16,18,20,26";
+w["приведенном"]="18";
+w["приведенный"]="8";
+w["приведено"]="5";
+w["приведены"]="5,12";
+w["приведён"]="5";
+w["приведённом"]="8";
+w["привести"]="5,7,15,19,22,27,30";
+w["приветственное"]="5";
+w["приветствия"]="5,18";
+w["привода"]="18";
+w["приводит"]="5";
+w["пригодны"]="18";
+w["придется"]="14,19";
+w["придётся"]="18";
+w["приказать"]="12";
+w["пример"]="0,5,18";
+w["принимать"]="5";
+w["принять"]="24";
+w["присутствуют"]="18";
+w["приятной"]="28";
+w["проблем"]="23";
+w["проблема"]="5";
+w["проблемами"]="23";
+w["проблему"]="23";
+w["проблемы"]="5,31";
+w["проверенный"]="18";
+w["проверено"]="27";
+w["проверены"]="18";
+w["проверит"]="26";
+w["проверить"]="15,29";
+w["проверка"]="18";
+w["проверки"]="15,18";
+w["программ"]="18,25";
+w["программа"]="1,5,6,14,20,25,26,27,30";
+w["программами"]="10,26";
+w["программе"]="5,18";
+w["программирования"]="5";
+w["программного"]="18,25";
+w["программное"]="18,21";
+w["программой"]="12,17,18,29";
+w["программу"]="18";
+w["программы"]="5,7,8,11,12,13,18";
+w["продолжена"]="5";
+w["продолжения"]="18";
+w["продолжить"]="17,29";
+w["производителей"]="1";
+w["производители"]="1";
+w["производитель"]="15,30";
+w["производителю"]="6";
+w["производителям"]="1";
+w["прокси"]="7";
+w["прокси-сервер"]="7";
+w["прокси-сервера"]="7";
+w["промежуточном"]="5,27";
+w["промежуточным"]="7";
+w["проприетарные"]="1";
+w["пропустили"]="19";
+w["просматривать"]="0";
+w["просмотра"]="26";
+w["просмотреть"]="8,29,32";
+w["просмотрите"]="0";
+w["просто"]="0,5,15,18";
+w["простым"]="18";
+w["протокола"]="18";
+w["протоколов"]="2";
+w["процедуры"]="5,27";
+w["процессора"]="5";
+w["процессоре"]="18";
+w["прошивки"]="21";
+w["прошло"]="5";
+w["проще"]="5";
+w["пункт"]="4,5,6,10,12,15,18,19,22,24,25,31";
+w["пункта"]="6,10,12,15,20,22,26,30,32";
+w["пунктам"]="11";
+w["пунктов"]="5,8";
+w["пунктом"]="10,20";
+w["пункты"]="5,12,22";
+w["пуск"]="10";
+w["пути"]="5";
+w["путь"]="18";
+w["пытается"]="7,30";
+w["пытающихся"]="7";
+w["работа"]="8";
+w["работает"]="7";
+w["работала"]="15";
+w["работать"]="23";
+w["работают"]="7,31";
+w["работу"]="14,17,29";
+w["работы"]="5,7,12,15,18,26,28,33";
+w["рабочая"]="4,15,18,25";
+w["рабочего"]="25";
+w["рабочие"]="18";
+w["рабочий"]="18";
+w["рабочую"]="11,18";
+w["раз"]="16,26,29";
+w["разбиение"]="8,32";
+w["разбиения"]="8";
+w["развернутую"]="2";
+w["развернуть"]="20";
+w["раздел"]="8,10,11,12,27,32";
+w["раздела"]="0,5,7,8,12,27,32,33";
+w["раздела»"]="32";
+w["разделами"]="10";
+w["разделах"]="0,8,29";
+w["разделе"]="0,7,8,10,12";
+w["разделен"]="4";
+w["разделена"]="5";
+w["разделение"]="0,8";
+w["разделения"]="8";
+w["разделов"]="0,8,29,32";
+w["разделом"]="4,12";
+w["разделу"]="0,7";
+w["разделы"]="0,3,5,8,10,12,29,32";
+w["различные"]="15,18";
+w["различных"]="21";
+w["размер"]="8,18";
+w["размером"]="8";
+w["размеру"]="10,18,32";
+w["размеры"]="0,8";
+w["разные"]="32";
+w["разных"]="19";
+w["разработана"]="5";
+w["разработчик"]="1,30";
+w["разработчиков"]="8";
+w["разрешен"]="7";
+w["разрешение"]="5,15";
+w["разрешения"]="5";
+w["раскладка"]="5,6,13";
+w["раскладки"]="6";
+w["раскладкой"]="6,13";
+w["раскладку"]="6,7";
+w["раскрывающегося"]="26";
+w["распознаются"]="12";
+w["расположен"]="33";
+w["расположение"]="12";
+w["расположению"]="8,10";
+w["расположения"]="7";
+w["расположенного"]="10";
+w["расположенном"]="26";
+w["распределения"]="12";
+w["распространение"]="21";
+w["распространять"]="21";
+w["расширенного"]="5";
+w["расширить"]="10";
+w["регион"]="7,19";
+w["региона"]="19";
+w["региона»"]="7";
+w["регистра"]="26";
+w["регистрационное"]="26";
+w["регистру"]="26";
+w["редактирования"]="22";
+w["режим"]="5,33";
+w["режиме"]="5,7,8,12";
+w["режимом"]="5";
+w["резервной"]="10";
+w["резервные"]="8,10";
+w["результат"]="15";
+w["результате"]="18";
+w["резюме"]="7,26";
+w["рекомендуем"]="8";
+w["релизах"]="5";
+w["репозиториев"]="1,2,7,21";
+w["репозитории"]="1,19,21";
+w["репозиторий"]="2,21";
+w["репозиторию"]="2";
+w["ресурсам"]="25";
+w["решением"]="12";
+w["решения"]="5";
+w["решите"]="5,12,27";
+w["решить"]="23";
+w["риски"]="8";
+w["рискуете"]="8";
+w["рискуя"]="22";
+w["рисунок"]="5";
+w["руководство"]="10";
+w["ручное"]="0";
+w["рядом"]="26,33";
+w["с"]="0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33";
+w["сайтах"]="1";
+w["сами"]="1";
+w["самостоятельно"]="15";
+w["свободного"]="8,10";
+w["свободное"]="8,18";
+w["свободными"]="21";
+w["свое"]="5";
+w["своего"]="29";
+w["своем"]="29";
+w["свой"]="5,7";
+w["своя"]="0";
+w["связан"]="5";
+w["связанные"]="13";
+w["связаны"]="12";
+w["связать"]="2";
+w["связи"]="18,19";
+w["связью"]="19";
+w["сделал"]="15";
+w["сделала"]="6";
+w["сделали"]="7";
+w["сделан"]="16,17,18";
+w["сделанного"]="7";
+w["сделанном"]="3";
+w["сделано"]="22";
+w["сделать"]="1,7";
+w["сеанса"]="8";
+w["сейчас"]="17";
+w["сектор"]="8";
+w["сектора"]="8";
+w["сервер"]="2,4,11";
+w["сервера"]="1,15";
+w["сетевой"]="2,7";
+w["сети"]="2,5,7,18";
+w["сеть"]="7";
+w["символами"]="6";
+w["символы"]="19,26";
+w["синхронизации"]="30";
+w["систем"]="12,27,28,33";
+w["система"]="5,7,10,13,15,18,26,28";
+w["системах"]="5,33";
+w["системе"]="0,5,7,10,12,13,26,32";
+w["системным"]="7";
+w["системными"]="7";
+w["системных"]="33";
+w["системой"]="2,5,8,12,27";
+w["систему"]="0,2,5,10,14,16,18,26,27";
+w["системы"]="0,1,2,3,4,5,7,8,9,10,11,12,13,16,18,19,20,22,25,26,28";
+w["системы»"]="10";
+w["скачать"]="18";
+w["скорость"]="18";
+w["скорректируете"]="28";
+w["слайдов"]="25";
+w["слева"]="10";
+w["следить"]="7";
+w["следовательно"]="15,18,19";
+w["следует"]="0,1,5,7,8,10,11,12,13,15,18,22,24,26,27,29,32";
+w["следующего"]="33";
+w["следующее"]="32";
+w["следующей"]="10,11";
+w["следующем"]="22";
+w["следующие"]="26";
+w["следующим"]="1,30";
+w["следующих"]="2,27";
+w["следующую"]="18";
+w["слишком"]="1,18";
+w["сложно"]="13";
+w["сложности"]="26";
+w["сложным"]="26";
+w["служб"]="7,20";
+w["служб»"]="7";
+w["службами"]="7";
+w["службе"]="20";
+w["службы"]="7,20";
+w["случае"]="5,8,23,32";
+w["случаях"]="5,18";
+w["случиться"]="5";
+w["см"]="7,8,11,26";
+w["смежных"]="21";
+w["смесь"]="26";
+w["смогли"]="10";
+w["сможет"]="14,26";
+w["сможете"]="1,2,6,7,9,12,15,16,22,26,28,32";
+w["сначала"]="0,13";
+w["снизить"]="7";
+w["снимке"]="18";
+w["снимок"]="5,8";
+w["снова"]="18";
+w["снятием"]="11";
+w["со"]="5,6,17,21,24,27";
+w["собственные"]="32";
+w["собственный"]="12";
+w["советуем"]="8";
+w["советы"]="23";
+w["совместимые"]="8";
+w["совместить"]="5";
+w["совпадает"]="13,26";
+w["совсем"]="5";
+w["согласиться"]="24";
+w["согласно"]="7,32";
+w["согласны"]="24,32";
+w["соглашение"]="24";
+w["соглашения"]="24";
+w["соглашениями"]="21";
+w["содержание"]="26";
+w["содержанием"]="6";
+w["содержания"]="4";
+w["содержат"]="18";
+w["содержатся"]="21";
+w["содержаться"]="2";
+w["содержащий"]="12";
+w["содержимого"]="8";
+w["содержимое"]="0,8,18";
+w["содержит"]="2,6,18,25";
+w["содержится"]="21";
+w["соедините"]="18";
+w["создавать"]="0,8,10";
+w["создания"]="10,18";
+w["созданная"]="12";
+w["созданных"]="8";
+w["созданы"]="26";
+w["создать"]="8,10,12,26,32";
+w["создают"]="1";
+w["сомневаетесь"]="30";
+w["сомнения"]="30";
+w["сообщать"]="5";
+w["сообщено"]="6";
+w["сообществе"]="28";
+w["сообщить"]="14";
+w["соответствии"]="8,21";
+w["соответствует"]="5,7,26";
+w["соответствующего"]="0";
+w["соответствующей"]="6,12";
+w["соответствующему"]="8";
+w["соответствующие"]="5,7,12";
+w["соответствующий"]="1,5,26";
+w["соответствующим"]="7";
+w["соответствующих"]="0";
+w["соответствующую"]="6,10,18,22";
+w["состоянии"]="5,27";
+w["сохранении"]="26";
+w["сохраненный"]="16";
+w["сохраненным"]="16";
+w["сохранены"]="29";
+w["сохранив"]="27";
+w["сохранить"]="15,16";
+w["сочетании"]="11";
+w["спасение"]="10";
+w["специализированной"]="8";
+w["специальное"]="32";
+w["списка"]="1,6,15,19,26,30";
+w["списке"]="1,4,5,6,8,11,19,22";
+w["списком"]="5,6,20,24";
+w["списку"]="5";
+w["список"]="2,4,5,13,16,20,21,30,32";
+w["способ"]="19";
+w["способом"]="6,19";
+w["способы"]="19";
+w["справка"]="5";
+w["справки"]="5";
+w["справку"]="5";
+w["справочной"]="12";
+w["сравнению"]="26";
+w["сравните"]="18";
+w["сред"]="25";
+w["среда"]="4,15,18,25";
+w["среди"]="32";
+w["средства"]="10";
+w["средство"]="2,8";
+w["средству"]="6";
+w["среду"]="18,25";
+w["среды"]="15,18,25";
+w["стандарта"]="8";
+w["стандартные"]="5";
+w["стандартный"]="7";
+w["станет"]="0";
+w["станцию"]="11";
+w["станция"]="4";
+w["старая"]="1";
+w["старым"]="5";
+w["стереть"]="3,8";
+w["стоит"]="2,5,7,26,30";
+w["стол"]="18";
+w["стола"]="25";
+w["столкнётесь"]="23";
+w["стран"]="13,19,21";
+w["страна"]="7,19";
+w["стране"]="7";
+w["страниц"]="5,13";
+w["страница"]="5,10";
+w["страницах"]="25";
+w["странице"]="2,11,12,18,22,29";
+w["страницей"]="2";
+w["страницу"]="27";
+w["страницы"]="0,5,6,7,8,9,12,16,20,25,27,29,32";
+w["страну"]="19,33";
+w["страны"]="7,19";
+w["стрелками"]="5";
+w["строке"]="5";
+w["строки"]="1";
+w["строку"]="5";
+w["суперпользователь"]="26";
+w["суперпользователя"]="26";
+w["существующие"]="8";
+w["существующий"]="10";
+w["считаете"]="15,23";
+w["сэкономить"]="12";
+w["т"]="7,18,19,21";
+w["так"]="0,5,8,10,12,25,26,29,33";
+w["также"]="5,6,7,8,10,13,18,26,33";
+w["такие"]="18,22,32";
+w["таким"]="1,5,22";
+w["такими"]="5,8";
+w["таких"]="5,8,18";
+w["такого"]="8";
+w["такое"]="5";
+w["такой"]="14,26";
+w["таком"]="5,8,10";
+w["такую"]="10";
+w["те"]="7,12";
+w["текстовом"]="5";
+w["текстовый"]="5,27";
+w["текстовым"]="5";
+w["текущего"]="5,12";
+w["текущей"]="12";
+w["текущие"]="29";
+w["тем"]="29,32";
+w["темно-синим"]="8";
+w["теперь"]="28";
+w["терминал"]="5,27";
+w["тест"]="5,18";
+w["тестирование"]="8";
+w["тестовой"]="32";
+w["тех"]="11,18";
+w["течение"]="5,27";
+w["тип"]="1,30";
+w["типа"]="7";
+w["типичная"]="6";
+w["типичные"]="18";
+w["типичным"]="5,19";
+w["типов"]="19";
+w["типового"]="16";
+w["типовых"]="1,30";
+w["типу"]="32";
+w["то"]="0,5,7,8,15,18,21,22,23,24,26,27,30";
+w["тогда"]="5,28";
+w["того"]="6,8,10,13,26,32";
+w["той"]="7";
+w["только"]="1,2,5,7,8,10,16,17,18,19,20,23,27,32";
+w["том"]="15,23,33";
+w["тот"]="5,7,26";
+w["точки"]="32";
+w["точку"]="0,32";
+w["точным"]="12";
+w["традиционный"]="18";
+w["требовательным"]="25";
+w["треугольника"]="20";
+w["трех"]="27";
+w["три"]="0";
+w["тщательно"]="5,27";
+w["у"]="5,7,8,10,18,30,31";
+w["убедитесь"]="6,33";
+w["уверены"]="3,9,29,32";
+w["увидев"]="5";
+w["увидеть"]="5";
+w["увидите"]="5,18,25";
+w["углу"]="23";
+w["удаление"]="10";
+w["удалении"]="10";
+w["удаления"]="4,10";
+w["удаленный"]="2";
+w["удалите"]="0";
+w["удалить"]="10,16";
+w["удалось"]="1,30";
+w["удалять"]="0";
+w["удастся"]="1";
+w["удаётся"]="5";
+w["удобно"]="18";
+w["удовлетворяет"]="10";
+w["удостовериться"]="26";
+w["уже"]="6,8,12,19,26,27";
+w["узкий"]="18";
+w["узкоспециализированной"]="11";
+w["узнать"]="7,18,28";
+w["указан"]="23";
+w["указания"]="4";
+w["указанного"]="7";
+w["указанные"]="15";
+w["указанным"]="18";
+w["указанных"]="2";
+w["указаны"]="8,15";
+w["указателя"]="4,8";
+w["указать"]="5,7,15,26,30,33";
+w["указывать"]="26,32";
+w["улучшены"]="17";
+w["уменьшен"]="8,18";
+w["умолчанию"]="5,7,12,13,23,25";
+w["универсальная"]="31";
+w["уничтожены"]="8,18";
+w["управление"]="7,10,26";
+w["управлением"]="31";
+w["управления"]="5,7,9,10,13,18,19,23,26";
+w["уровень"]="7,9";
+w["условия"]="24";
+w["условиями"]="24";
+w["успела"]="1";
+w["установить"]="5,10,11,13,14,17,18,19,26,27,30";
+w["установка"]="5,11,18,24,27";
+w["установка»"]="4,11";
+w["установке"]="5,12,15,16,18,26";
+w["установки"]="2,4,5,6,7,8,9,11,12,13,15,16,18,19,21,23,25,26,27,28";
+w["установкой"]="5,24";
+w["установку"]="5,27";
+w["установлена"]="10,27,28";
+w["установленная"]="28";
+w["установленного"]="12";
+w["установленной"]="13,19,26,32";
+w["установленную"]="15,16";
+w["установленным"]="12";
+w["установленных"]="13,27,28";
+w["установлено"]="28,33";
+w["установлены"]="12";
+w["установщику"]="1,30";
+w["устаревшей"]="5,12";
+w["устаревшем"]="5";
+w["устаревшим"]="14";
+w["устаревших"]="5";
+w["устаревшую"]="12";
+w["устранение"]="23";
+w["устройства"]="7,18";
+w["устройстве"]="12";
+w["устройство"]="12,18";
+w["устройством"]="18";
+w["утилиту"]="23";
+w["утилиты"]="23";
+w["ухудшению"]="7";
+w["участии"]="28";
+w["учел"]="19";
+w["учетной"]="26";
+w["учетные"]="7,26";
+w["учетными"]="7,26";
+w["учетом"]="26";
+w["учтены"]="5";
+w["учётными"]="26";
+w["файервол"]="7";
+w["файервола"]="7";
+w["файл"]="16,18";
+w["файл»"]="18";
+w["файла"]="18";
+w["файлами"]="18";
+w["файлов"]="8,21,26";
+w["файловой"]="18";
+w["файловую"]="0";
+w["файловые"]="0";
+w["файлом"]="16";
+w["файлы"]="18,32";
+w["физический"]="18";
+w["фирмы-производителя"]="30";
+w["флешка"]="18";
+w["флешку"]="18";
+w["флэш"]="0";
+w["флэш-диска"]="18";
+w["флэш-носителе"]="16";
+w["фоновом"]="7";
+w["фоновые"]="7";
+w["формат"]="5";
+w["формата"]="5";
+w["форматирование"]="10,29";
+w["форматирования"]="3,5,27,29";
+w["форматировать"]="18,29,32";
+w["характеристик"]="5";
+w["характеристиками"]="30";
+w["хорошо"]="20";
+w["хотите"]="0,3,5,15,17,25,26,27,28";
+w["хотя"]="8";
+w["хранения"]="8";
+w["хранилища"]="2,10";
+w["хранить"]="0";
+w["храниться"]="32";
+w["хранятся"]="8,18,21";
+w["хранящиеся"]="3";
+w["цвет"]="26";
+w["цвета"]="15";
+w["цветом"]="8";
+w["целостности"]="18";
+w["целью"]="11";
+w["центр"]="23,26";
+w["центра"]="13";
+w["центрального"]="5";
+w["центре"]="7,9";
+w["цифры"]="26";
+w["часов"]="33";
+w["часового"]="7,33";
+w["часовой"]="7,33";
+w["часовом"]="33";
+w["части"]="16,19";
+w["частности"]="0,2,11,18,19,21,22,32";
+w["часто"]="5";
+w["частота"]="30";
+w["частотой"]="30";
+w["частоту"]="15,30";
+w["частоты"]="15,30";
+w["часть"]="8";
+w["частью"]="16";
+w["чем"]="12,25,26";
+w["через"]="7,15,26";
+w["четыре"]="20";
+w["четырьмя"]="5";
+w["чисел"]="18";
+w["числа"]="18";
+w["число"]="18";
+w["числовое"]="18";
+w["числом"]="18";
+w["чистую"]="27";
+w["читать"]="26";
+w["чтения"]="26";
+w["что"]="5,6,7,8,13,15,18,19,21,23,24,26,27,32,33";
+w["чтобы"]="0,1,2,4,5,7,10,12,13,15,16,17,20,22,23,24,26,27,29,31,32,33";
+w["чувствительно"]="26";
+w["чётным"]="8";
+w["шаг"]="18";
+w["шага"]="2,5";
+w["шагах"]="2,21";
+w["шаге"]="5,7,12,22,26";
+w["шаги"]="5,12";
+w["шагов"]="5,12,27";
+w["шаровые"]="7";
+w["шестнадцатеричное"]="18";
+w["шестнадцатеричных"]="18";
+w["шестью"]="31";
+w["шифрованием"]="0";
+w["шифровать"]="0";
+w["штатном"]="8";
+w["щелкните"]="10";
+w["щёлкните"]="23";
+w["экран"]="5,7";
+w["экрана"]="5,8,28";
+w["экране"]="5,18,23,30";
+w["экспериментируйте"]="22";
+w["эта"]="27";
+w["этапе"]="26";
+w["эти"]="0,5,8,12,15,17,18,24,25,26";
+w["этим"]="5,8,11,22,27";
+w["этими"]="7,22";
+w["этих"]="7,12,18,25,27,33";
+w["это"]="1,5,6,7,10,12,15,18,19,22,26,30";
+w["этого"]="5,7,8,10,13,14,15,16,17,26,27,30,33";
+w["этой"]="0,1,2,5,7,8,9,12,17,20,25,26,29,30,32";
+w["этом"]="3,7,18,21,23,26";
+w["этот"]="1,4,5,8,11,12,13,15,18,21,33";
+w["эту"]="5,13,16,23,30";
+w["являетесь"]="7";
+w["является"]="5,7,12,15,18,21,25,30,31";
+w["являются"]="18,21";
+w["являющиеся"]="16";
+w["явным"]="1";
+w["ядра"]="5";
+w["язык"]="5,13,18";
+w["языка"]="5,7,13,27";
+w["языке"]="5";
+w["языки"]="18";
+w["языков"]="13,19";
+w["языковые"]="13";
+w["языком"]="6,13";
+w["японского"]="19";
+w["ярко"]="25";
+w["ёмкости"]="18";
+w["ёмкостью"]="18";
+w["​​возможность"]="18";
+w["​​каталог"]="7";
+w["​​одна"]="27";
+w["​​узкого"]="11";
+
diff --git a/installer/5/ru/content/search/ja-jp.props b/installer/5/ru/content/search/ja-jp.props
new file mode 100644
index 00000000..27568054
--- /dev/null
+++ b/installer/5/ru/content/search/ja-jp.props
@@ -0,0 +1 @@
+J01=\\u306B \ No newline at end of file
diff --git a/installer/5/ru/content/search/nwSearchFnt.js b/installer/5/ru/content/search/nwSearchFnt.js
new file mode 100644
index 00000000..0111559c
--- /dev/null
+++ b/installer/5/ru/content/search/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("<p>" + txt_results_for + " " + "<span class=\"searchExpression\">" + fileAndWordList[i][0].motslisteDisplay + "</span>" + "</p>");
+
+ linkTab.push("<ul class='searchresult'>");
+ for (t in fileAndWordList[i]) {
+ //DEBUG: alert(": "+ fileAndWordList[i][t].filenb+" " +fileAndWordList[i][t].motsliste);
+ //linkTab.push("<li><a href=\"../"+fl[fileAndWordList[i][t].filenb]+"\">"+fl[fileAndWordList[i][t].filenb]+"</a></li>");
+ var tempInfo = fil[fileAndWordList[i][t].filenb];
+ var pos1 = tempInfo.indexOf("@@@");
+ var pos2 = tempInfo.lastIndexOf("@@@");
+ var tempPath = tempInfo.substring(0, pos1);
+ var tempTitle = tempInfo.substring(pos1 + 3, pos2);
+ var tempShortdesc = tempInfo.substring(pos2 + 3, tempInfo.length);
+
+ //file:///home/kasun/docbook/WEBHELP/webhelp-draft-output-format-idea/src/main/resources/web/webhelp/installation.html
+ var linkString = "<li><a href=" + tempPath + ">" + tempTitle + "</a>";
+ // var linkString = "<li><a href=\"installation.html\">" + tempTitle + "</a>";
+ if ((tempShortdesc != "null")) {
+ linkString += "\n<div class=\"shortdesclink\">" + tempShortdesc + "</div>";
+ }
+ linkString += "</li>";
+ linkTab.push(linkString);
+ }
+ linkTab.push("</ul>");
+ }
+ }
+ }
+
+ var results = "";
+ if (linkTab.length > 0) {
+ /*writeln ("<p>" + txt_results_for + " " + "<span class=\"searchExpression\">" + cleanwordsList + "</span>" + "<br/>"+"</p>");*/
+ results = "<p>";
+ //write("<ul class='searchresult'>");
+ for (t in linkTab) {
+ results += linkTab[t].toString();
+ }
+ results += "</p>";
+ } else {
+ results = "<p>" + "Your search returned no results for " + "<span class=\"searchExpression\">" + txt_wordsnotfound + "</span>" + "</p>";
+ }
+ //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<wordsList.length;j++){
+ var word = wordsList[j];
+ if(getAvgAsciiValue(word) < 127){
+ notCJKTokens.push(word);
+ } else {
+ var tokenizer = new CJKTokenizer(word);
+ var tokensTmp = tokenizer.getAllTokens();
+ allTokens = allTokens.concat(tokensTmp);
+ }
+ }
+ allTokens = allTokens.concat(tokenize(notCJKTokens));
+ return allTokens;
+}
+
+//A simple way to determine whether the query is in english or not.
+function getAvgAsciiValue(word){
+ var tmp = 0;
+ var num = word.length < 5 ? word.length:5;
+ for(var i=0;i<num;i++){
+ if(i==5) break;
+ tmp += word.charCodeAt(i);
+ }
+ return tmp/num;
+}
+
+//CJKTokenizer
+function CJKTokenizer(input){
+ this.input = input;
+ this.offset=-1;
+ this.tokens = new Array();
+ this.incrementToken = incrementToken;
+ this.tokenize = tokenize;
+ this.getAllTokens = getAllTokens;
+ this.unique = unique;
+
+ function incrementToken(){
+ if(this.input.length - 2 <= this.offset){
+ // console.log("false "+offset);
+ return false;
+ }
+ else {
+ this.offset+=1;
+ return true;
+ }
+ }
+
+ function tokenize(){
+ //document.getElementById("content").innerHTML += x.substring(offset,offset+2)+"<br>";
+ 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 += "<br>dada"+sortedTokens+" ";
+// console.log(tokens.length+"dsdsds");
+ /*for(i=0;i<tokens.length;i++){
+ console.log(tokens[i]);
+ var ss = tokens[i] == sortedTokens[i];
+
+// document.getElementById("content").innerHTML += "<br>dada"+un[i]+"- "+stems[i]+"&nbsp;&nbsp;&nbsp;"+ ss;
+ document.getElementById("content").innerHTML += "<br>"+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/5/ru/content/search/punctuation.props b/installer/5/ru/content/search/punctuation.props
new file mode 100644
index 00000000..d3e3fcd2
--- /dev/null
+++ b/installer/5/ru/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/5/ru/content/search/stemmers/de_stemmer.js b/installer/5/ru/content/search/stemmers/de_stemmer.js
new file mode 100644
index 00000000..7ff3822a
--- /dev/null
+++ b/installer/5/ru/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/5/ru/content/search/stemmers/en_stemmer.js b/installer/5/ru/content/search/stemmers/en_stemmer.js
new file mode 100644
index 00000000..f58012f2
--- /dev/null
+++ b/installer/5/ru/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/5/ru/content/search/stemmers/fr_stemmer.js b/installer/5/ru/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 00000000..34f97431
--- /dev/null
+++ b/installer/5/ru/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<voc.length;k++){
+ if(COut[k]==stemmer(voc[k])){
+ eqCount++;
+ eqOut.push("v: "+voc[k]+" c: "+COut[k]);
+ } else {
+ noteqOut.push(voc[k]+", c: "+COut[k]+" s:"+stemmer(voc[k]));
+ }
+ }
+ var end = new Date().getTime(); //execution time
+ var time = end-start;
+ alert("equal count= "+eqCount+" out of "+voc.length+" words. time= "+time+" ms");
+ //console.log("equal count= "+eqCount+" out of "+voc.length+" words. time= "+time+" ms");
+}
+
+