aboutsummaryrefslogtreecommitdiffstats
path: root/installer/3/uk/content/search
diff options
context:
space:
mode:
Diffstat (limited to 'installer/3/uk/content/search')
-rw-r--r--installer/3/uk/content/search/default.props1
-rw-r--r--installer/3/uk/content/search/en-us.props45
-rw-r--r--installer/3/uk/content/search/es-es.props179
-rw-r--r--installer/3/uk/content/search/htmlFileInfoList.js32
-rw-r--r--installer/3/uk/content/search/htmlFileList.js33
-rw-r--r--installer/3/uk/content/search/index-1.js543
-rw-r--r--installer/3/uk/content/search/index-2.js542
-rw-r--r--installer/3/uk/content/search/index-3.js540
-rw-r--r--installer/3/uk/content/search/ja-jp.props1
-rw-r--r--installer/3/uk/content/search/nwSearchFnt.js513
-rw-r--r--installer/3/uk/content/search/punctuation.props31
-rw-r--r--installer/3/uk/content/search/stemmers/de_stemmer.js247
-rw-r--r--installer/3/uk/content/search/stemmers/en_stemmer.js187
-rw-r--r--installer/3/uk/content/search/stemmers/fr_stemmer.js299
14 files changed, 3193 insertions, 0 deletions
diff --git a/installer/3/uk/content/search/default.props b/installer/3/uk/content/search/default.props
new file mode 100644
index 00000000..22edf439
--- /dev/null
+++ b/installer/3/uk/content/search/default.props
@@ -0,0 +1 @@
+DEF01=a \ No newline at end of file
diff --git a/installer/3/uk/content/search/en-us.props b/installer/3/uk/content/search/en-us.props
new file mode 100644
index 00000000..da284ce5
--- /dev/null
+++ b/installer/3/uk/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/3/uk/content/search/es-es.props b/installer/3/uk/content/search/es-es.props
new file mode 100644
index 00000000..fb73bdcc
--- /dev/null
+++ b/installer/3/uk/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/3/uk/content/search/htmlFileInfoList.js b/installer/3/uk/content/search/htmlFileInfoList.js
new file mode 100644
index 00000000..e2545ae1
--- /dev/null
+++ b/installer/3/uk/content/search/htmlFileInfoList.js
@@ -0,0 +1,32 @@
+fil = new Array();
+fil["0"]= "ar01s15.html@@@Вибір груп пакунків@@@null";
+fil["1"]= "ar01s29.html@@@Рівень безпеки@@@null";
+fil["2"]= "ar01s01.html@@@DrakX, програма для встановлення Mageia@@@null";
+fil["3"]= "ar01s21.html@@@Вибір монітора@@@null";
+fil["4"]= "ar01s20.html@@@Вибір графічного сервера (налаштовування вашої графічної картки)@@@null";
+fil["5"]= "ar01s06.html@@@Клавіатура@@@null";
+fil["6"]= "ar01s31.html@@@Вітаємо@@@null";
+fil["7"]= "ar01s05.html@@@Встановлення або оновлення@@@null";
+fil["8"]= "ar01s30.html@@@Поновлення@@@null";
+fil["9"]= "ar01s22.html@@@Основні параметри завантажувача@@@null";
+fil["10"]= "ar01s28.html@@@Вибір драйвера миші@@@null";
+fil["11"]= "ar01s02.html@@@Виберіть, будь ласка, мову@@@null";
+fil["12"]= "ar01s04.html@@@Налаштування SCSI@@@null";
+fil["13"]= "ar01s27.html@@@Налаштування ваших служб@@@null";
+fil["14"]= "ar01s10.html@@@Нетиповий поділ диска на розділи за допомогою DiskDrake@@@null";
+fil["15"]= "ar01s03.html@@@Умови ліцензування та нотатки щодо випуску@@@null";
+fil["16"]= "ar01s14.html@@@Вибір стільниці@@@null";
+fil["17"]= "ar01s25.html@@@Налаштування часового поясу@@@null";
+fil["18"]= "ar01s11.html@@@Форматування@@@null";
+fil["19"]= "ar01s13.html@@@Вибір носія (з пакунками, які не є вільними)@@@null";
+fil["20"]= "ar01s24.html@@@Резюме щодо інших параметрів@@@null";
+fil["21"]= "ar01s08.html@@@Виберіть точки монтування@@@null";
+fil["22"]= "ar01s19.html@@@Налаштування графічної картки та монітора@@@null";
+fil["23"]= "ar01s16.html@@@Мінімальне встановлення@@@null";
+fil["24"]= "ar01s07.html@@@Розбиття на розділи@@@null";
+fil["25"]= "ar01s12.html@@@Вибір носія (налаштовування додаткових носіїв пакунків для встановлення)@@@null";
+fil["26"]= "ar01s09.html@@@Підтвердження форматування жорсткого диска@@@null";
+fil["27"]= "ar01s17.html@@@Вибір окремих пакунків@@@null";
+fil["28"]= "ar01s23.html@@@Додавання пункту меню завантаження та внесення змін у такі пункти@@@null";
+fil["29"]= "ar01s26.html@@@Вибір країни і регіону@@@null";
+fil["30"]= "ar01s18.html@@@Керування обліковими записами користувача і адміністратора@@@null";
diff --git a/installer/3/uk/content/search/htmlFileList.js b/installer/3/uk/content/search/htmlFileList.js
new file mode 100644
index 00000000..b93d418d
--- /dev/null
+++ b/installer/3/uk/content/search/htmlFileList.js
@@ -0,0 +1,33 @@
+//List of files which are indexed.
+fl = new Array();
+fl["0"]= "ar01s15.html";
+fl["1"]= "ar01s29.html";
+fl["2"]= "ar01s01.html";
+fl["3"]= "ar01s21.html";
+fl["4"]= "ar01s20.html";
+fl["5"]= "ar01s06.html";
+fl["6"]= "ar01s31.html";
+fl["7"]= "ar01s05.html";
+fl["8"]= "ar01s30.html";
+fl["9"]= "ar01s22.html";
+fl["10"]= "ar01s28.html";
+fl["11"]= "ar01s02.html";
+fl["12"]= "ar01s04.html";
+fl["13"]= "ar01s27.html";
+fl["14"]= "ar01s10.html";
+fl["15"]= "ar01s03.html";
+fl["16"]= "ar01s14.html";
+fl["17"]= "ar01s25.html";
+fl["18"]= "ar01s11.html";
+fl["19"]= "ar01s13.html";
+fl["20"]= "ar01s24.html";
+fl["21"]= "ar01s08.html";
+fl["22"]= "ar01s19.html";
+fl["23"]= "ar01s16.html";
+fl["24"]= "ar01s07.html";
+fl["25"]= "ar01s12.html";
+fl["26"]= "ar01s09.html";
+fl["27"]= "ar01s17.html";
+fl["28"]= "ar01s23.html";
+fl["29"]= "ar01s26.html";
+fl["30"]= "ar01s18.html";
diff --git a/installer/3/uk/content/search/index-1.js b/installer/3/uk/content/search/index-1.js
new file mode 100644
index 00000000..ba08504b
--- /dev/null
+++ b/installer/3/uk/content/search/index-1.js
@@ -0,0 +1,543 @@
+var indexerLanguage="en";
+//Auto generated index for searching.
+w["-"]="30";
+w["1"]="2,24";
+w["1024x768"]="3";
+w["2"]="2,7,10";
+w["256"]="2";
+w["256m"]="2";
+w["30"]="3";
+w["40"]="4";
+w["4096"]="24";
+w["512"]="24";
+w["60"]="3";
+w["@"]="3";
+w["alt"]="2,7,9";
+w["ati"]="19";
+w["bash"]="30";
+w["boot"]="14";
+w["cauldron"]="21";
+w["cauldron-hom"]="21";
+w["core"]="19";
+w["ctrl"]="2,7,9";
+w["dash"]="30";
+w["delet"]="2,7";
+w["df"]="9";
+w["diskdrak"]="14";
+w["drakx"]="2,3,4,5,12,13,18,20,21,22,24,29,30";
+w["dvd"]="29";
+w["enter"]="2";
+w["esc"]="2";
+w["evdev"]="10";
+w["f1"]="2";
+w["f2"]="2,7,9";
+w["f7"]="9";
+w["ftp"]="29";
+w["gcin"]="29";
+w["gmt"]="17";
+w["gnome"]="16,22";
+w["gnu-linux"]="2";
+w["gpart"]="24";
+w["grub"]="9,20";
+w["grub2"]="9";
+w["hime"]="29";
+w["home"]="7,20,21,30";
+w["http"]="29";
+w["ibus"]="29";
+w["kde"]="16,22";
+w["lilo"]="9,20";
+w["linux"]="4,9,21,24,30";
+w["localedrak"]="29";
+w["lxde"]="16,22";
+w["mageia"]="1,2,6,7,8,9,11,15,19,20,22,23,24,25,29,30";
+w["mbr"]="9";
+w["mem"]="2";
+w["microsoft"]="24";
+w["n"]="3,22";
+w["nfs"]="25";
+w["noauto"]="2";
+w["non-fre"]="19,20";
+w["nonfre"]="19";
+w["nvidia"]="19";
+w["org"]="5,6";
+w["play"]="3,22";
+w["plug"]="3,22";
+w["ps"]="10";
+w["rbash"]="30";
+w["root"]="29,30";
+w["scim"]="29";
+w["scsi"]="12";
+w["sda"]="9,14";
+w["sda7"]="9";
+w["sdb"]="14";
+w["sdc"]="14";
+w["sh"]="30";
+w["ssd"]="24";
+w["system"]="22";
+w["taint"]="19";
+w["text"]="2";
+w["tmp"]="9";
+w["tty2"]="9";
+w["uk"]="5";
+w["unicod"]="11";
+w["usb"]="10,14,27";
+w["utc"]="17";
+w["utf-8"]="11";
+w["var"]="21";
+w["vgalo"]="2";
+w["video"]="21";
+w["wifi"]="19";
+w["wiki"]="5";
+w["wikipedia"]="5";
+w["window"]="22,24";
+w["windows®"]="24";
+w["www"]="6";
+w["x"]="22";
+w["xxx"]="2";
+w["xxxm"]="2";
+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";
+w["«2»"]="24";
+w["«non-free»"]="4";
+w["«sda5»"]="21";
+w["«sda7»"]="9";
+w["«sda»"]="9";
+w["«tainted»"]="4";
+w["«vesa»"]="3,4";
+w["«xorg»"]="4";
+w["«вирівняти"]="24";
+w["«встановлення"]="7";
+w["«вільне"]="24";
+w["«завантажувач»"]="9";
+w["«міб»"]="24";
+w["«мінімальне"]="23";
+w["«місткість»"]="21";
+w["«налаштувати"]="29";
+w["«номер"]="21";
+w["«очищено»"]="24";
+w["«пристрій»"]="21";
+w["«резюме»"]="9";
+w["«система»"]="29";
+w["«так»"]="22";
+w["«твердий"]="21";
+w["«тип»"]="21";
+w["«точка"]="21";
+w["»"]="24";
+w["а"]="3,9,13,15,18,30";
+w["або"]="0,2,3,4,5,7,8,10,11,14,16,17,20,21,22,23,24,25,27,28,29,30";
+w["автоматичне"]="2";
+w["автоматично"]="3,5,6,9,20";
+w["автоматичному"]="9";
+w["авторські"]="19";
+w["адміністратора"]="30";
+w["адміністратором"]="20";
+w["адреси"]="25";
+w["аж"]="14,22";
+w["азійських"]="29";
+w["азії"]="29";
+w["але"]="2,16,19,24,30";
+w["альтернативної"]="24";
+w["американську"]="5";
+w["апаратними"]="3";
+w["апаратного"]="17";
+w["африканських"]="29";
+w["африки"]="29";
+w["багато"]="21";
+w["бажане"]="16";
+w["бажаного"]="22";
+w["бажаної"]="11,20";
+w["бажану"]="11,22";
+w["бази"]="4";
+w["базові"]="4";
+w["базою"]="3";
+w["базу"]="3,4";
+w["байдуже"]="2,22";
+w["байтів"]="24";
+w["бар’єром"]="20";
+w["без"]="20";
+w["бездротовим"]="29";
+w["бездротового"]="29";
+w["безкоштовними"]="19";
+w["безпека"]="1,20";
+w["безпеки"]="1,20";
+w["безпечними"]="22";
+w["близько"]="3";
+w["блоки"]="18";
+w["блоку"]="24";
+w["брандмауер"]="20";
+w["брандмауера"]="20";
+w["буде"]="2,3,4,5,6,8,9,11,14,15,18,20,21,22,23,24,25,27,28,29,30";
+w["будуть"]="19,25";
+w["будь"]="3,11,15,28,29";
+w["будь-яка"]="10";
+w["будь-яке"]="22";
+w["будь-який"]="30";
+w["будь-яким"]="30";
+w["будь-яких"]="30";
+w["будь-яку"]="14";
+w["будь-які"]="30";
+w["будьте"]="4,24";
+w["були"]="22";
+w["було"]="5,9,11,14,17,20,22,25,29,30";
+w["бути"]="2,5,8,9,20,22,24";
+w["бутирозділ"]="21";
+w["більше"]="6,10,20";
+w["більшості"]="2";
+w["бічній"]="2";
+w["важливим"]="29";
+w["важливих"]="24,30";
+w["важливо"]="3,20";
+w["важливі"]="20,24";
+w["валюти"]="29";
+w["вам"]="0,1,2,3,4,5,7,9,11,12,13,14,15,20,22,23,24,28,29,30";
+w["вами"]="5,6,11,16,20,25,27,30";
+w["варто"]="2,3,11,20,23,30";
+w["варіант"]="3,20,23,24";
+w["варіанта"]="16,24,27";
+w["варіантами"]="2";
+w["варіанти"]="30";
+w["варіантом"]="0,7,10,23,24,30";
+w["варіантів"]="2,20";
+w["вас"]="2,3,10,16,22,24";
+w["ваш"]="2,3,4,6,7,8,15,17,29,30";
+w["вашим"]="3,17,20";
+w["ваших"]="13,20,24,30";
+w["вашого"]="3,5,9,11,20,22";
+w["вашому"]="6,7,9,14,17,20,22,24";
+w["вашою"]="11";
+w["вашої"]="1,3,4,5,11,13,16,20,29";
+w["вашу"]="3,4,17";
+w["ваші"]="2,7,21";
+w["вашій"]="11,14,21";
+w["вважаєте"]="22";
+w["введений"]="30";
+w["введення"]="29,30";
+w["введенняпароля"]="30";
+w["введіть"]="2,30";
+w["ввести"]="30";
+w["вводити"]="29";
+w["вдалося"]="3,4";
+w["вдасться"]="4";
+w["вдається"]="2";
+w["вдовольнитися"]="20";
+w["вдячні"]="15";
+w["великих"]="30";
+w["версію"]="9,30";
+w["версії"]="7,8,9,21,28";
+w["вертикаллю"]="22";
+w["вертикальної"]="3";
+w["весь"]="24";
+w["вже"]="5,9,24,29,30";
+w["вжевстановленій"]="11";
+w["ви"]="0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30";
+w["вибагливим"]="16";
+w["виберете"]="3,23";
+w["виберіть"]="3,5,8,10,11,16,17,20,21,22,29,30";
+w["вибирайте"]="9";
+w["вибирати"]="3";
+w["вибирає"]="5,20";
+w["вибором"]="3,23,29";
+w["вибору"]="2,5,7,11,16,18,19,20,21,23,25,26,28,29";
+w["виборі"]="18,20";
+w["вибрали"]="5";
+w["вибраними"]="20";
+w["вибраних"]="13,18";
+w["вибрано"]="4,5,6,9,11,20,29";
+w["вибраного"]="16";
+w["вибраному"]="14";
+w["вибранопід"]="22";
+w["вибраною"]="11";
+w["вибраної"]="5";
+w["вибрану"]="11";
+w["вибрати"]="3,4,5,6,9,10,11,16,17,18,22,23,27,29";
+w["вибір"]="0,3,4,5,8,10,16,19,20,22,25,27,29";
+w["виглядає"]="9,16";
+w["визначає"]="3,12,19,25";
+w["визначених"]="25";
+w["визначення"]="2,25";
+w["визначенням"]="2";
+w["визначенні"]="2";
+w["визначено"]="21,22,29";
+w["визначити"]="3,4,9,13,14,20,30";
+w["визначитися"]="5,9,18";
+w["визначтеся"]="21";
+w["вийти"]="15";
+w["викладено"]="0";
+w["виконання"]="2,16";
+w["виконано"]="14";
+w["виконати"]="2,14,20,24,25";
+w["виконувалося"]="24";
+w["виконувати"]="28";
+w["виконуються"]="30";
+w["використання"]="9,17,20,24,29";
+w["використанням"]="24";
+w["використано"]="5,17,24";
+w["використати"]="24";
+w["використовувати"]="3,9,16,23,24,30";
+w["використовуватиме"]="11";
+w["використовуватиметься"]="30";
+w["використовуватися"]="11";
+w["використовуються"]="24,25";
+w["використовується"]="9,11,24";
+w["викрасти"]="20";
+w["вилучати"]="6,14";
+w["вилучення"]="0";
+w["вилучено"]="14";
+w["вилучити"]="27";
+w["вимикання"]="11,20";
+w["вимикати"]="19";
+w["вимкнути"]="11,16,20,22,30";
+w["виникають"]="10";
+w["виникає"]="2";
+w["виникла"]="2,3";
+w["виникнуть"]="2";
+w["випадках"]="2";
+w["випадку"]="2";
+w["виправити"]="20,22";
+w["випуску"]="8,15";
+w["випущені"]="19";
+w["виробник"]="3,4,22";
+w["виробника"]="5";
+w["виробниками"]="4";
+w["виробники"]="4";
+w["виробників"]="4";
+w["вирішення"]="2";
+w["вирішенням"]="9";
+w["вирішите"]="2,7,9";
+w["витерти"]="26";
+w["витерто"]="24,30";
+w["витріть"]="14";
+w["виходу"]="30";
+w["вищевказаними"]="2";
+w["виявите"]="7";
+w["виявити"]="9";
+w["виявиться"]="5";
+w["виявлено"]="14,24";
+w["виявленого"]="20";
+w["вказаних"]="25";
+w["вказано"]="22";
+w["вказанобез"]="30";
+w["вказаної"]="20";
+w["вказані"]="22";
+w["вказати"]="2,3,17,20,22,30";
+w["вказувати"]="21,30";
+w["вказівника"]="0";
+w["вказівником"]="10";
+w["вкладку"]="14";
+w["включення"]="19";
+w["включено"]="3,19";
+w["власний"]="9,20";
+w["власну"]="14";
+w["власні"]="21";
+w["вмикання"]="20,25";
+w["вміст"]="14,24,30";
+w["вмістом"]="5";
+w["вмісту"]="0,24";
+w["внесення"]="14,21,28";
+w["внести"]="28";
+w["вносьте"]="13,20";
+w["вона"]="2,4";
+w["впишіть"]="2";
+w["врахував"]="29";
+w["врахуванням"]="30";
+w["вручну"]="0,2,12,22,23,29";
+w["все"]="4,14";
+w["всесвітній"]="17";
+w["встановити"]="3,7,8,11,12,23,29,30";
+w["встановленим"]="9";
+w["встановлених"]="6,7,11";
+w["встановлення"]="0,1,2,3,4,5,6,7,9,11,15,16,19,22,23,24,25,27,29,30";
+w["встановлення»"]="23";
+w["встановленням"]="2";
+w["встановлення”"]="0,2";
+w["встановлено"]="6,7,9,17";
+w["встановленого"]="9";
+w["встановленої"]="21,29";
+w["встановлену"]="6,22,27";
+w["встановленій"]="30";
+w["встановлювати"]="15";
+w["встигла"]="4";
+w["всупереч"]="2,7";
+w["всього"]="15";
+w["всі"]="14,18,19,22,24,26,30";
+w["всім"]="30";
+w["всіх"]="11,14,17,24,29,30";
+w["втратою"]="24";
+w["втім"]="0,2,7,9,12,20,30";
+w["вужчі"]="30";
+w["вузького"]="23";
+w["вузькоспеціалізованою"]="23";
+w["від"]="16,19,20,24,29,30";
+w["відведено"]="14";
+w["відвідайте"]="6";
+w["віддайте"]="9";
+w["віддалений"]="25";
+w["відео"]="4,21";
+w["відео-dvd"]="19";
+w["відеоапаратури"]="3";
+w["відеоданих"]="19";
+w["відеокарт"]="4";
+w["відеокарту"]="3";
+w["відкривається"]="2";
+w["відкритим"]="4";
+w["відкрито"]="2,3,21,29";
+w["відкриє"]="30";
+w["відома"]="3,4";
+w["відомо"]="11";
+w["відомого"]="17";
+w["відомі"]="13";
+w["відповідати"]="2";
+w["відповідає"]="2,20,30";
+w["відповідний"]="2,4";
+w["відповідним"]="20";
+w["відповідних"]="14";
+w["відповідно"]="19,20,24";
+w["відповідного"]="14,24,30";
+w["відповідної"]="5,9";
+w["відповідну"]="5,28";
+w["відповідні"]="9";
+w["відповідь"]="0,2,21,22,28";
+w["відповісти"]="22";
+w["відтворення"]="19";
+w["вікна"]="5,9,11,22,29,30";
+w["вікно"]="2,5,28,30";
+w["вікні"]="2,11,21";
+w["вільне"]="24";
+w["вільний"]="24";
+w["вільними"]="19";
+w["вільних"]="19";
+w["вільного"]="24";
+w["вітальне"]="2";
+w["вітальний"]="2";
+w["вітаємо"]="6";
+w["гарантує"]="24";
+w["глибину"]="22";
+w["годинника"]="17";
+w["горизонталлю"]="22";
+w["горизонтальної"]="3";
+w["гостьовий"]="30";
+w["гостьового"]="30";
+w["графічна"]="22";
+w["графічне"]="0,16,22";
+w["графічний"]="4,20,23";
+w["графічними"]="2";
+w["графічних"]="4,19,20";
+w["графічного"]="2,4";
+w["графічному"]="2,22";
+w["графічної"]="4,20,22";
+w["графічну"]="4,22";
+w["графічні"]="9";
+w["гринвічем"]="17";
+w["груп"]="0,13,23";
+w["групи"]="0,13,30";
+w["групою"]="3";
+w["групу"]="3";
+w["гц"]="3";
+w["далі"]="8,15,18,21,26";
+w["даними"]="20";
+w["даних"]="2,3,4,14,24,25,30";
+w["дані"]="2,5,13,14,18,20,21,24,26,27,30";
+w["два"]="16,25";
+w["двох"]="3";
+w["де"]="0,2";
+w["декілька"]="2,6,7,11,17";
+w["декількох"]="11";
+w["дефрагментація"]="24";
+w["дефрагментовано"]="24";
+w["деякий"]="22";
+w["деякими"]="2";
+w["деяких"]="5,19,24";
+w["деякі"]="4,8,20,28";
+w["джерела"]="25";
+w["джерело"]="25";
+w["дзеркала"]="25";
+w["див"]="2,20,23,30";
+w["диск"]="24";
+w["диск»"]="21";
+w["диска"]="9,14,21,24,26";
+w["диска»"]="21";
+w["дисками"]="12";
+w["дисках"]="24";
+w["дискети"]="27";
+w["диски"]="14";
+w["дисковим"]="12";
+w["диском"]="12";
+w["диску"]="9,24,26";
+w["дисків"]="12,24";
+w["дисплеїв"]="3,20";
+w["дистрибутив"]="15";
+w["дистрибутива"]="15,19";
+w["для"]="0,2,3,4,5,6,7,9,10,11,14,16,17,18,19,20,21,22,23,24,25,27,29,30";
+w["до"]="2,3,4,5,7,9,14,16,18,19,20,21,22,24,25,28,29,30";
+w["до»"]="24";
+w["добре"]="13";
+w["доведеться"]="2,12,29";
+w["доволі"]="11";
+w["довідка"]="2";
+w["довідкове"]="2";
+w["довідкових"]="2";
+w["довідкової"]="9";
+w["додавання"]="0,9,20,28";
+w["додано"]="9,29,30";
+w["додати"]="9,11,20,25,28,30";
+w["додаткове"]="5";
+w["додатковими"]="2";
+w["додаткових"]="2,25";
+w["додатково"]="2,9,18,30";
+w["додаткової"]="7";
+w["додаткові"]="2,9,13,16,21,27,30";
+w["додачу"]="9";
+w["додаєте"]="30";
+w["дозволено"]="20";
+w["доки"]="14,22";
+w["документацію"]="23";
+w["документацією"]="3,5";
+w["документації"]="3,9";
+w["домашні"]="30";
+w["домашній"]="30";
+w["домашнім"]="30";
+w["домашніх"]="30";
+w["домену"]="29";
+w["доповнення"]="23";
+w["доповнять"]="27";
+w["допомогою"]="1,2,3,4,5,6,9,11,13,14,16,17,18,20,21,22,24,25,27,29,30";
+w["допомогоюмодуля"]="1";
+w["допоможе"]="9";
+w["досвід"]="2";
+w["достатньо"]="17,20,24,27,30";
+w["достатнього"]="24";
+w["достатнє"]="24";
+w["достатній"]="20";
+w["достеменно"]="28";
+w["доступ"]="2,4,20,21,24,25,29";
+w["доступний"]="30";
+w["доступними"]="19,25";
+w["доступних"]="19";
+w["доступною"]="22";
+w["доступу"]="20,24,30";
+w["досягнуто"]="22";
+w["драйвер"]="3,4,10";
+w["драйвера"]="10";
+w["драйвери"]="4,20";
+w["драйвером"]="4";
+w["драйверів"]="4,12,19";
+w["дуже"]="2,3,4,9,20";
+w["діалогове"]="5,30";
+w["діалогового"]="5,30";
+w["дізнатися"]="6,20";
+w["дій"]="2,13,28,30";
+w["дію"]="14";
+w["дії"]="2,7,14,21";
+w["екран"]="2,20";
+w["екрана"]="2,6";
+w["екрані"]="3";
+w["експериментуйте"]="28";
+w["етапі"]="30";
+w["ж"]="3,4,22,30";
+w["жовтий"]="30";
+w["жодне"]="16";
+w["жорсткого"]="14,26";
+w["з"]="0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,24,25,28,29,30";
+w["за"]="1,2,3,4,5,6,9,11,13,14,15,16,17,18,20,21,22,24,25,27,29,30";
+w["забезпечення"]="16,19";
+w["забезпечує"]="4";
+
diff --git a/installer/3/uk/content/search/index-2.js b/installer/3/uk/content/search/index-2.js
new file mode 100644
index 00000000..ca7b255f
--- /dev/null
+++ b/installer/3/uk/content/search/index-2.js
@@ -0,0 +1,542 @@
+//Auto generated index for searching.
+w["забудьте"]="9,20,21";
+w["забули"]="7";
+w["завантаження"]="6,9,13,14,28,29";
+w["завантажити"]="27";
+w["завантажувач"]="9,20";
+w["завантажувача"]="6,9,20,28";
+w["завантажувача”"]="20";
+w["завантажувачем"]="9";
+w["завантажується"]="28";
+w["завдань"]="30";
+w["завершення"]="30";
+w["завершено"]="14,24";
+w["завжди"]="1";
+w["загальний"]="3,22";
+w["задіяти"]="10";
+w["зазвичай"]="2,3,4,10,12,13,18,30";
+w["законами"]="19";
+w["законодавством"]="19";
+w["закритим"]="19";
+w["закритих"]="19,20";
+w["закриті"]="4,20";
+w["залежатиме"]="20,24";
+w["залежатимуть"]="20";
+w["залежить"]="19";
+w["залежно"]="16,30";
+w["залишимося"]="15";
+w["залишиться"]="5";
+w["замість"]="24";
+w["запис"]="9,25,28,30";
+w["записами"]="20,30";
+w["записано"]="30";
+w["записи"]="20,30";
+w["запису"]="9,28,29,30";
+w["записувати"]="30";
+w["записує"]="9";
+w["запит"]="5";
+w["запити"]="2";
+w["запиту"]="2";
+w["заповнюйте"]="30";
+w["запропоновано"]="23";
+w["запропонувати"]="16";
+w["запускатимуться"]="13";
+w["запуском"]="9";
+w["запуску"]="2,29";
+w["запущено"]="6";
+w["зараз"]="8";
+w["засновано"]="22";
+w["засобу"]="2,3,4,5,9";
+w["застарілим"]="2,12";
+w["застарілих"]="2";
+w["застарілої"]="9";
+w["застарілу"]="9";
+w["застереження"]="3,5,9,11,14,20,21,22,24,28,30";
+w["засіб"]="2";
+w["зауваження"]="24";
+w["зауважте"]="24";
+w["захисний"]="20";
+w["захист"]="20";
+w["захистити"]="30";
+w["захисту"]="1,20";
+w["захищено"]="30";
+w["зберегти"]="22,27";
+w["збережений"]="27";
+w["збереженим"]="27";
+w["збереження"]="30";
+w["збережено"]="18";
+w["зберігання"]="24";
+w["зберігати"]="14";
+w["зберігатимуться"]="21";
+w["зберігаються"]="19,24,26";
+w["збігається"]="11,30";
+w["зважайте"]="5,29";
+w["звані"]="18";
+w["звернули"]="15";
+w["зверніться"]="3,20";
+w["звичайним"]="30";
+w["звичайними"]="30";
+w["звичайно"]="30";
+w["звукова"]="20";
+w["звукових"]="19";
+w["звукової"]="20";
+w["звідси"]="19";
+w["зв’язком"]="29";
+w["зв’язку"]="29";
+w["згодні"]="21";
+w["згодом"]="24";
+w["згідно"]="21";
+w["здатися"]="29";
+w["здатності"]="2";
+w["здатність"]="22";
+w["здається"]="22";
+w["здебільшого"]="9,20";
+w["здійснюватиметься"]="21";
+w["здійснюється"]="2";
+w["зекономити"]="9";
+w["зелений"]="30";
+w["зменшено"]="24";
+w["змогу"]="7,20,29,30";
+w["зможе"]="12,30";
+w["зможете"]="1,4,5,6,9,18,20,21,22,24,25,27,30";
+w["зможетевибрати"]="21";
+w["змін"]="14,20,21,28";
+w["зміна"]="28";
+w["зміни"]="13,28";
+w["змінити"]="1,9,11,20,21,28,30";
+w["змінювати"]="14,22";
+w["змінюватиметься"]="30";
+w["змінюйте"]="1";
+w["зміні"]="13";
+w["змініть"]="14";
+w["знавцем"]="20";
+w["знайти"]="4,5";
+w["значення"]="2,3,20,22";
+w["значень"]="24";
+w["значно"]="20";
+w["знизити"]="20";
+w["знову"]="3";
+w["зняттям"]="23";
+w["зображення"]="3,22";
+w["зображенням"]="13";
+w["зокрема"]="14,19,21,23,25,29";
+w["зробила"]="5";
+w["зробити"]="4";
+w["зробить"]="2";
+w["зроблено"]="8,22,27,28";
+w["зробленого"]="20,26";
+w["зрозуміти"]="0";
+w["зупинитися"]="9";
+w["зупиняється"]="2";
+w["зі"]="2,5,7,15,22,30";
+w["зінтернетом"]="8";
+w["з’єднано"]="8";
+w["ймовірно"]="2,9";
+w["його"]="2,5,14,24,30";
+w["карта"]="22";
+w["карти"]="20";
+w["картками"]="2,20";
+w["картки"]="3,4,14,20,22";
+w["картку"]="4,22";
+w["карток"]="4,19,20";
+w["каталог"]="9,14,20,30";
+w["каталогам"]="30";
+w["каталоги"]="30";
+w["каталогу"]="9,30";
+w["каталогів"]="30";
+w["категорії"]="4";
+w["керування"]="1,11,20,29,30";
+w["керуванням"]="10";
+w["керувати"]="30";
+w["китайської"]="29";
+w["клавіатур"]="5";
+w["клавіатура"]="5,20";
+w["клавіатури"]="5,11,20";
+w["клавіш"]="2,7,9";
+w["клавішу"]="2";
+w["клавіші"]="2";
+w["кнопка"]="22";
+w["кнопками"]="10";
+w["кнопки"]="10,15,16,30";
+w["кнопку"]="2,5,8,9,11,13,14,15,18,20,21,26,27,28,29,30";
+w["код"]="30";
+w["кодеки"]="19";
+w["кодом"]="4,19";
+w["кодування"]="11";
+w["кожен"]="30";
+w["кожного"]="14,20,21";
+w["кожному"]="2,9";
+w["кожної"]="13";
+w["кожній"]="30";
+w["коли"]="2,14,24";
+w["кольорів"]="22";
+w["колір"]="30";
+w["командами"]="2";
+w["командна"]="30";
+w["командного"]="4";
+w["командну"]="30";
+w["командою"]="2";
+w["команду"]="2,9";
+w["комбінацію"]="2,7";
+w["комбінації"]="2,7,9";
+w["комерційних"]="19";
+w["комплектації"]="24";
+w["компонування"]="14";
+w["комп’ютер"]="2,6,7,8,15,20";
+w["комп’ютер»"]="29";
+w["комп’ютера"]="5,9,17,20,24";
+w["комп’ютери"]="27";
+w["комп’ютером"]="20,30";
+w["комп’ютеру"]="20";
+w["комп’ютері"]="6,7,9,17,21,22";
+w["континенту"]="11";
+w["контролер"]="12";
+w["контролером"]="12";
+w["координатні"]="20";
+w["копії"]="24";
+w["корейської"]="29";
+w["кореневий"]="9";
+w["кореневого"]="9";
+w["корисним"]="5,24";
+w["корисних"]="16";
+w["корисні"]="23";
+w["користувалися"]="9,24";
+w["користування"]="2,7,9,30";
+w["користуватися"]="3,23,24,30";
+w["користувач"]="30";
+w["користувача"]="20,29,30";
+w["користувачам"]="29,30";
+w["користувачами"]="11,30";
+w["користувачеві"]="30";
+w["користувачем"]="28,30";
+w["користувачів"]="20,30";
+w["користуйтеся"]="24";
+w["користуються"]="2";
+w["користуєтеся"]="20";
+w["краще"]="1,20,30";
+w["краї"]="19";
+w["країн"]="11,29";
+w["країна"]="20";
+w["країни"]="20,29";
+w["країну"]="17,29";
+w["країні"]="20";
+w["критеріями"]="3,4";
+w["критерієм"]="19";
+w["критичних"]="3";
+w["кроках"]="19,25";
+w["кроки"]="2,9,25";
+w["кроку"]="2,9";
+w["кроків"]="2,7,9,16";
+w["кроці"]="2,30";
+w["крім"]="5,11,21,24,30";
+w["кульові"]="20";
+w["ланкою"]="20";
+w["ласка"]="3,11,15,28,29";
+w["латинською"]="5";
+w["лише"]="4,13,21,29";
+w["логічний"]="24";
+w["логічні"]="24";
+w["локалей"]="29";
+w["локалізацію"]="11";
+w["локалізації"]="29";
+w["лінії"]="3";
+w["літер"]="30";
+w["літера"]="21";
+w["ліцензування"]="15";
+w["ліцензуванні"]="25";
+w["ліцензійна"]="15";
+w["ліцензійних"]="19";
+w["майбутніх"]="30";
+w["майстра"]="24";
+w["малих"]="30";
+w["маніпулятори"]="20";
+w["мати"]="4,12";
+w["матиме"]="30";
+w["має"]="9,20,21,22,23,24,30";
+w["маєте"]="3,12,16";
+w["мб"]="2,24";
+w["мегабайтах"]="24";
+w["менш"]="16";
+w["менше"]="16";
+w["меню"]="2,9,21,28,29";
+w["мережа"]="20";
+w["мережевий"]="20";
+w["мережевої"]="20";
+w["мережу"]="20";
+w["мережі"]="20,25";
+w["метою"]="23";
+w["ми"]="15,24";
+w["миша"]="10,20";
+w["миші"]="0,10";
+w["мов"]="11,29";
+w["мови"]="2,5,7,11,20";
+w["мовні"]="11";
+w["мовою"]="11";
+w["мову"]="11";
+w["могло"]="8";
+w["модель"]="5";
+w["моделі"]="5";
+w["модуля"]="30";
+w["може"]="2,3,4,5,7,16,19,20,22,24,28,29";
+w["можете"]="0,1,2,3,4,5,7,9,10,13,17,18,20,21,22,23,24,25,27,28,29,30";
+w["можливості"]="3,4,16,29,30";
+w["можливі"]="2,12,30";
+w["можна"]="0,2,4,5,6,9,11,14,16,19,20,22,24,27,28,29,30";
+w["можуть"]="20,22";
+w["монтування"]="14,21";
+w["монтування»"]="21";
+w["монітор"]="3,22";
+w["монітора"]="3,22";
+w["монітора”"]="20";
+w["моніторі"]="22";
+w["моніторів"]="3";
+w["мультимедійні"]="19";
+w["міб"]="24";
+w["між"]="5,20";
+w["мікропрограми"]="19";
+w["мінімальне"]="23";
+w["мінімальний"]="23";
+w["мінімальної"]="0";
+w["мінімальні"]="3";
+w["містить"]="5,9,16";
+w["міститься"]="19";
+w["місто"]="17";
+w["містяться"]="19";
+w["місце"]="9,24";
+w["місцевий"]="17";
+w["місцевого"]="17";
+w["місцем"]="17";
+w["місця"]="9,20,24";
+w["мітки"]="28";
+w["на"]="0,2,3,5,6,7,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30";
+w["набори"]="16";
+w["набору"]="27";
+w["набуде"]="14";
+w["набір"]="19,25";
+w["навашому"]="21";
+w["наведення"]="0";
+w["наведено"]="9,25";
+w["наведеному"]="24";
+w["навіть"]="11,14,30";
+w["над"]="3";
+w["надасть"]="7,20";
+w["надати"]="30";
+w["надають"]="29";
+w["надаєте"]="30";
+w["надто"]="4";
+w["надішліть"]="5";
+w["назад"]="18,21,26";
+w["назв"]="0";
+w["назва"]="3,4,19";
+w["назвою"]="4";
+w["назву"]="22,28,30";
+w["називаються"]="20";
+w["найкраще"]="20";
+w["найкращим"]="9";
+w["найсвіжішої"]="7";
+w["наказати"]="9";
+w["налаштовано"]="6";
+w["налаштовування"]="2,4,14,20,22,25";
+w["налаштовувати"]="29";
+w["налаштування"]="12,13,16,17,20,22,28,30";
+w["налаштувань"]="3,13";
+w["налаштувати"]="9,10,11,12,20";
+w["належить"]="28";
+w["належне"]="24";
+w["належний"]="28";
+w["належним"]="2,3,4,12,22";
+w["належну"]="5";
+w["належні"]="20";
+w["намагаються"]="20";
+w["намагається"]="3,20";
+w["намір"]="16,23";
+w["наміру"]="16";
+w["наперед"]="11";
+w["наполегливо"]="24";
+w["наприклад"]="2,9,19,21,24";
+w["наслідки"]="13,30";
+w["настанови"]="0";
+w["наступних"]="7,19,25";
+w["наступного"]="17";
+w["наступній"]="23";
+w["натискання"]="2,9,15,22";
+w["натисканням"]="2,7,9,16";
+w["натиснете"]="30";
+w["натиснути"]="9,18,20,21,27";
+w["натисніть"]="2,5,7,8,9,11,13,14,15,18,21,26,28,29";
+w["не"]="1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,18,19,20,21,22,24,25,26,28,29,30";
+w["невеличкі"]="20";
+w["невідоме"]="28";
+w["невідомі"]="30";
+w["невільних"]="25";
+w["недоступною"]="22";
+w["нелатинськими"]="5";
+w["нелатинською"]="5";
+w["немає"]="2,4,13,22,24,29";
+w["неможливим"]="2,14,15";
+w["неможливості"]="2,7,28,29";
+w["неналежної"]="20";
+w["непоганим"]="10";
+w["несумісним"]="11";
+w["нетиповий"]="14";
+w["нечасто"]="2";
+w["нею"]="20";
+w["нижньої"]="29";
+w["нижній"]="27";
+w["нижче"]="22,24,30";
+w["низької"]="2";
+w["них"]="4,11,19,20,21";
+w["новий"]="9";
+w["нововведень"]="15";
+w["нового"]="9";
+w["нової"]="24";
+w["новій"]="9";
+w["новіших"]="24";
+w["номер"]="28,30";
+w["носій"]="6,25,30";
+w["носія"]="14,19,25";
+w["носії"]="14";
+w["носіїв"]="25";
+w["нотатки"]="15";
+w["ноутбуків"]="3";
+w["нуля"]="7";
+w["нього"]="29";
+w["ньому"]="19";
+w["ні"]="8,13";
+w["ніж"]="9,15,16,30";
+w["нічим"]="28";
+w["нічого"]="29";
+w["ніяких"]="20";
+w["обдумати"]="2,7";
+w["обережними"]="20";
+w["обережно"]="3";
+w["обережні"]="24";
+w["обидва"]="16";
+w["обладнання"]="2,20,24";
+w["область"]="14,21";
+w["обліковий"]="30";
+w["обліковими"]="30";
+w["облікового"]="30";
+w["облікові"]="20";
+w["обмеженим"]="9";
+w["обмеженнями"]="25";
+w["обмежень"]="20";
+w["обмежені"]="30";
+w["обмежується"]="19";
+w["обов’язково"]="21";
+w["оболонка"]="30";
+w["оболонку"]="30";
+w["образах"]="29";
+w["обрисів"]="14";
+w["обійти"]="2";
+w["об’єднують"]="16";
+w["об’єм"]="2,9,24";
+w["об’єму"]="2";
+w["одним"]="4";
+w["одночасно"]="2,7";
+w["одну"]="2,6,7,11";
+w["ознайомитися"]="15,20,24";
+w["ознайомлення"]="5";
+w["ознайомтеся"]="0,3,5,15";
+w["окремих"]="23,27";
+w["окремому"]="14";
+w["оновити"]="7";
+w["оновлення"]="2,3,7,22";
+w["оновлення»"]="7";
+w["оновлено"]="8";
+w["оновлень"]="2,7,25";
+w["оновлюється"]="3";
+w["оперативної"]="2";
+w["операційна"]="20";
+w["операційних"]="6,7,9,17";
+w["операційною"]="9,24";
+w["операційної"]="9,24,28";
+w["операційну"]="6";
+w["операційні"]="9,26";
+w["опис"]="2,3";
+w["оптичний"]="25";
+w["оскільки"]="4,19";
+w["основним"]="19";
+w["основними"]="2";
+w["основного"]="9";
+w["основної"]="18";
+w["основну"]="11";
+w["основні"]="9,19";
+w["основі"]="20";
+w["особливий"]="16";
+w["особливими"]="2";
+w["останнього"]="24";
+w["остаточного"]="16";
+w["отже"]="22,29";
+w["отримання"]="24";
+w["отримати"]="0,2,4,8,24,29";
+w["отримаєте"]="25";
+w["офісними"]="30";
+w["очистити"]="14";
+w["очищати"]="9";
+w["пакунками"]="19";
+w["пакунки"]="7,8,11,19,27";
+w["пакунків"]="0,4,19,20,23,25,27,29";
+w["пакунків”"]="23";
+w["пам’ятайте"]="20";
+w["пам’яті"]="2";
+w["панелей"]="3";
+w["панелі"]="2,13,30";
+w["параметра"]="20";
+w["параметрами"]="2,20,28";
+w["параметри"]="1,2,3,9,12,18,20,22,30";
+w["параметрів"]="1,2,3,6,20,22,24,28,29";
+w["парними"]="24";
+w["пароль"]="30";
+w["пароля"]="30";
+w["паролям"]="30";
+w["паролі"]="30";
+w["патентним"]="19";
+w["певне"]="25";
+w["певних"]="2";
+w["певну"]="30";
+w["певні"]="1,3,18,21,26";
+w["перебування"]="17";
+w["перебуватиме"]="2,7";
+w["перебуваєте"]="20";
+w["перевагу"]="30";
+w["перевести"]="2";
+w["перевищують"]="3";
+w["перевірити"]="18,22";
+w["перевірить"]="30";
+w["перевірки"]="22";
+w["переглядати"]="14";
+w["перегляду"]="30";
+w["переглянути"]="18,21,24";
+w["перегляньте"]="14";
+w["перед"]="13,24,29";
+w["передбачено"]="3,4,13";
+w["перезавантаження"]="2,4,6,7,20,30";
+w["перезавантаженні"]="9";
+w["перезавантажено"]="15";
+w["перезавантажити"]="2,7";
+w["перезавантажувати"]="6";
+w["перезаписано"]="9";
+w["перейдіть"]="2,7,9";
+w["переконайтеся"]="5,17";
+w["переконатися"]="24";
+w["перелік"]="2,9,16,24";
+w["перемикання"]="5";
+w["пересування"]="24";
+w["перш"]="15";
+w["перший"]="2,25";
+w["першого"]="4,5,9,29";
+w["перші"]="16";
+w["питання"]="22";
+w["планшети"]="20";
+w["плата"]="20";
+w["плоских"]="3";
+w["побачите"]="2,16,19";
+w["побачити"]="2";
+w["поверне"]="22";
+w["повернетеся"]="5";
+w["повернутися"]="7,9,18";
+w["повний"]="9";
+w["повним"]="5";
+w["повного"]="5,24";
+
diff --git a/installer/3/uk/content/search/index-3.js b/installer/3/uk/content/search/index-3.js
new file mode 100644
index 00000000..bf43e7c7
--- /dev/null
+++ b/installer/3/uk/content/search/index-3.js
@@ -0,0 +1,540 @@
+//Auto generated index for searching.
+w["повноцінні"]="16";
+w["повну"]="3,4";
+w["повністю"]="28";
+w["повторити"]="2,30";
+w["повторно"]="30";
+w["повторюйте"]="14";
+w["повторіть"]="30";
+w["повідомити"]="12";
+w["повідомлено"]="5";
+w["повідомляти"]="2";
+w["пов’язано"]="9";
+w["пов’язаної"]="11";
+w["пов’язати"]="25";
+w["погоджуєтеся"]="15";
+w["погодитися"]="15";
+w["подальших"]="16";
+w["подробиці"]="16";
+w["подумайте"]="3";
+w["подібних"]="3";
+w["подібні"]="29";
+w["поділ"]="14,24";
+w["поділено"]="0,2";
+w["поділу"]="24";
+w["позначений"]="28";
+w["позначення"]="13,28";
+w["позначено"]="11,18";
+w["позначки"]="30";
+w["позначку"]="5";
+w["позначок"]="23";
+w["позначте"]="9,14,15,16";
+w["покаже"]="5,13";
+w["показ"]="16";
+w["показано"]="2,3,21,28";
+w["показаному"]="5";
+w["показу"]="4,28";
+w["покращено"]="8";
+w["поле"]="30";
+w["полегшити"]="0";
+w["полем"]="30";
+w["полі"]="30";
+w["помилки"]="12,20";
+w["помилковий"]="22,29";
+w["помилковим"]="22";
+w["помилково"]="4,22";
+w["помилкові"]="2";
+w["помилок"]="30";
+w["помітно"]="22";
+w["понад"]="4,24";
+w["поновлення"]="8";
+w["попередженням"]="2,7";
+w["попередньо"]="24";
+w["попереднього"]="24,30";
+w["попереднім"]="5";
+w["порадитися"]="20";
+w["портативний"]="30";
+w["портативних"]="29";
+w["поруч"]="17";
+w["поряд"]="30";
+w["порівняно"]="30";
+w["послідовність"]="2";
+w["поточного"]="2,9";
+w["поточні"]="18";
+w["поточній"]="9";
+w["потрапити"]="4";
+w["потреба"]="2,3";
+w["потреби"]="2,13";
+w["потрібен"]="2,29";
+w["потрібне"]="18";
+w["потрібних"]="0,1,12,14";
+w["потрібно"]="20,22";
+w["потрібною"]="5";
+w["потрібні"]="9,19,20";
+w["потурбуватися"]="22,30";
+w["потім"]="14,15,18,21,30";
+w["початковим"]="30";
+w["початковому"]="2";
+w["початкової"]="2";
+w["початку"]="2,7";
+w["поширення"]="19";
+w["поширювати"]="19";
+w["пошкодження"]="3,22";
+w["пошкоджені"]="18";
+w["пошкодити"]="3";
+w["пояс"]="17,20";
+w["пояснення"]="2,9";
+w["поясу"]="17";
+w["поясу”"]="20";
+w["поясі"]="17";
+w["поєднанні"]="23";
+w["поєднати"]="2";
+w["прав"]="30";
+w["права"]="19,30";
+w["правильне"]="2";
+w["правильний"]="5,29";
+w["правильно"]="3,4,12,20,21,22";
+w["правильності"]="18,22";
+w["працювало"]="22";
+w["працюють"]="10,20";
+w["працює"]="20";
+w["предметом"]="9";
+w["при"]="9";
+w["призвести"]="2,3,7,20,22,28,29";
+w["призначення"]="0,2,20,28";
+w["призначено"]="23";
+w["прийняти"]="15";
+w["приклад"]="14";
+w["примітка"]="2,7,17,21,29,30";
+w["принаймні"]="18";
+w["припинити"]="2,7";
+w["припиняє"]="2";
+w["пристрої"]="9,20";
+w["пристрій"]="4,9";
+w["приємної"]="6";
+w["про"]="6,19,20,22,30";
+w["проблема"]="2";
+w["проблеми"]="2,9,10";
+w["програм"]="16";
+w["програма"]="2,3,4,5,7,12,13,16,30";
+w["програмами"]="30";
+w["програми"]="2,5,9,11,20,23,24";
+w["програмне"]="19";
+w["програмного"]="16";
+w["програмою"]="8,9,18";
+w["програму"]="2";
+w["програмі"]="2";
+w["продовжено"]="2";
+w["продовжити"]="8,18";
+w["проксі"]="20";
+w["проксі-сервер"]="20";
+w["проксі-сервера"]="20";
+w["проміжному"]="2,7";
+w["проміжною"]="20";
+w["пропозицій"]="21";
+w["пропозиціями"]="21,24";
+w["пропрієтарні"]="4";
+w["просто"]="2,14,22";
+w["простір"]="24";
+w["простішим"]="2";
+w["протягом"]="2,7";
+w["процедури"]="2,7";
+w["процедуру"]="2";
+w["пункт"]="0,2,3,4,5,9,10,15,16,22,28,29,30";
+w["пункти"]="2,9,28";
+w["пунктом"]="13";
+w["пункту"]="3,5,9,13,21,22,28,29,30";
+w["пунктів"]="23,24";
+w["під"]="2,7,9,11,13,20,22,24,27,28,30";
+w["підказка"]="7,9,18";
+w["підказку"]="0";
+w["підсистеми"]="20";
+w["підтвердження"]="26";
+w["підтвердіть"]="2";
+w["підтримку"]="11";
+w["підтримуються"]="9";
+w["пізніше"]="2";
+w["піктограма"]="30";
+w["піктограму"]="27,30";
+w["після"]="1,2,4,5,6,7,11,12,13,15,16,20,25,27,29,30";
+w["радимо"]="24";
+w["раз"]="18,27,30";
+w["разом"]="20";
+w["разі"]="21,24";
+w["регіон"]="20,29";
+w["регіону"]="29";
+w["регіону”"]="20";
+w["регістру"]="30";
+w["редагування"]="28";
+w["режим"]="2,17,23";
+w["режимом"]="2";
+w["режимі"]="2,9,20,24";
+w["резервні"]="24";
+w["результату"]="22";
+w["резюме"]="9,20,30";
+w["рекомендуємо"]="24";
+w["ресурсів"]="16";
+w["ретельно"]="2,7,15";
+w["реєстраційне"]="30";
+w["реєструється"]="30";
+w["ризикуючи"]="28";
+w["ризикуєте"]="24";
+w["рисунок"]="2";
+w["рисунок 1"]="2";
+w["робити"]="8";
+w["роботи"]="6,9,17,20,22,30";
+w["роботу"]="8,12,18,24";
+w["робоча"]="0";
+w["робочу"]="23";
+w["робіть"]="7";
+w["розбиття"]="24";
+w["розгорнути"]="13";
+w["розгорнуту"]="25";
+w["розгорніть"]="11";
+w["розділ"]="9,14,20,23,24";
+w["розділами"]="24";
+w["розділах"]="14,18,24";
+w["розділи"]="9,14,18,21,24,26";
+w["розділом"]="0,9";
+w["розділу"]="2,7,9,14,17,20,21,24";
+w["розділу»"]="21";
+w["роздільна"]="22";
+w["роздільної"]="2";
+w["роздільну"]="22";
+w["розділі"]="9,14,20,24";
+w["розділів"]="14,18,21,24";
+w["розкладка"]="11";
+w["розкладка_клавіатури"]="5";
+w["розкладками"]="5";
+w["розкладки"]="5";
+w["розкладкою"]="5,11";
+w["розкладку"]="5,20";
+w["розмір"]="24";
+w["розмірами"]="24";
+w["розміри"]="14";
+w["розміру"]="21";
+w["розподіл"]="21";
+w["розподілу"]="9";
+w["розпізнаються"]="9";
+w["розроблено"]="2";
+w["розробників"]="24";
+w["розташовано"]="17";
+w["розташованому"]="30";
+w["розташування"]="9,20,24";
+w["рядка"]="2,4";
+w["рядок"]="2";
+w["рівень"]="1,20";
+w["різноманітних"]="19";
+w["різноманітні"]="22";
+w["різні"]="21";
+w["сайтів"]="4";
+w["саме"]="2,9,12";
+w["самий"]="30";
+w["самому"]="17";
+w["самостійно"]="22";
+w["саму"]="27";
+w["самі"]="4";
+w["свого"]="18";
+w["своє"]="2";
+w["своєму"]="18";
+w["сеансу"]="24";
+w["сектор"]="24";
+w["сектори"]="24";
+w["сервер"]="0,23,25";
+w["сервера"]="4,22";
+w["серед"]="21";
+w["середовищ"]="16";
+w["середовища"]="16,22";
+w["середовище"]="0,16,22";
+w["символами"]="5";
+w["символи"]="29";
+w["символів"]="30";
+w["синхронізації"]="3";
+w["систем"]="6,7,9,17";
+w["система"]="2,11,20,22,30";
+w["системах"]="2,17";
+w["системи"]="0,1,2,4,6,9,11,13,14,16,20,21,23,24,26,27,28,29,30";
+w["системним"]="20";
+w["системними"]="20";
+w["системою"]="2,7,9,24,25";
+w["систему"]="2,6,7,12,14,25,27";
+w["системі"]="9,11,14,21,30";
+w["складним"]="30";
+w["складно"]="11";
+w["складності"]="30";
+w["скоригуєте"]="6";
+w["скориставшись"]="2";
+w["скористайтеся"]="2";
+w["скористалися"]="19";
+w["скористатися"]="0,2,4,7,9,14,20,24,27";
+w["слайдів"]="16";
+w["служб"]="13,20";
+w["службами"]="20";
+w["служби"]="13,20";
+w["служб”"]="20";
+w["слід"]="2,4,7,9,11,14,15,18,20,21,22,24,25,30";
+w["спадного"]="21,30";
+w["спеціальний"]="3,16,18,21,22,24";
+w["спеціалізованої"]="24";
+w["списком"]="5,13,15";
+w["списку"]="0,3,4,5,22,23,24,28,29,30";
+w["списків"]="22";
+w["список"]="0,3,11,13,19,21,25,27";
+w["способи"]="29";
+w["способом"]="5,29";
+w["способу"]="20";
+w["спосіб"]="29";
+w["спочатку"]="11,14";
+w["справжнього"]="30";
+w["справжнє"]="30";
+w["справжній"]="30";
+w["справу"]="12";
+w["спробу"]="2";
+w["спробуйте"]="2";
+w["спробує"]="9";
+w["спрямування"]="23";
+w["спільноті"]="6";
+w["стандартний"]="20";
+w["стандарту"]="24";
+w["стане"]="14";
+w["станцію"]="23";
+w["станція"]="0";
+w["стані"]="2,7";
+w["старою"]="4";
+w["створений"]="9";
+w["створених"]="24";
+w["створено"]="24,30";
+w["створити"]="9,21,24,30";
+w["створювати"]="14";
+w["створюють"]="4";
+w["стежитиме"]="20";
+w["стерти"]="24";
+w["сторінка"]="2,16";
+w["сторінки"]="1,2,5,7,9,13,14,16,18,20,21,24,27";
+w["сторінок"]="2,11,30";
+w["сторінці"]="9,23,25,28";
+w["стосуватиметься"]="11";
+w["стосуються"]="15";
+w["стільниці"]="16";
+w["стільничне"]="16,22";
+w["сумніваєтеся"]="3";
+w["сумніви"]="3";
+w["суміжні"]="19";
+w["сумісні"]="24";
+w["суміш"]="30";
+w["суперкористувач"]="30";
+w["суперкористувача"]="30";
+w["сховищ"]="4,19,20,25";
+w["сховища"]="4,19,29";
+w["сховище"]="19,25";
+w["сховищі"]="19";
+w["східних"]="29";
+w["та"]="2,3,4,8,9,11,14,15,19,20,22,23,24,25,28,29,30";
+w["так"]="2,8,9,16,17,18,30";
+w["таке"]="2,21";
+w["таки"]="3";
+w["такий"]="12,30";
+w["таким"]="2";
+w["такими"]="3,4";
+w["таких"]="4,24,25,28";
+w["такого"]="24";
+w["також"]="0,2,5,11,17,20,24,29,30";
+w["такому"]="2,24";
+w["такі"]="21,28,30";
+w["таінструментів"]="16";
+w["твердого"]="21";
+w["те"]="15,19,22,24";
+w["текстове"]="2";
+w["текстовий"]="2,7";
+w["текстовому"]="2";
+w["тексту"]="30";
+w["тепер"]="6";
+w["термінал"]="2,7";
+w["тестової"]="21";
+w["тестування"]="24";
+w["тим"]="18,21";
+w["тимчасовий"]="30";
+w["тип"]="3,4";
+w["типовий"]="3,20,28";
+w["типовим"]="2,9,29";
+w["типовими"]="20";
+w["типових"]="1,3,4";
+w["типово"]="9,11,16";
+w["типового"]="27,28";
+w["типову"]="5";
+w["типу"]="20,21";
+w["типів"]="29";
+w["тих"]="23";
+w["тобто"]="3,19,24";
+w["того"]="5,11,21,24,30";
+w["той"]="2,20,30";
+w["тому"]="17,24";
+w["точки"]="21";
+w["точку"]="14,21";
+w["точне"]="20";
+w["точним"]="9";
+w["тощо"]="19,20,29";
+w["трапився"]="12";
+w["трапитися"]="2";
+w["три"]="14";
+w["трикутника"]="13";
+w["трохи"]="9";
+w["трьох"]="2,7";
+w["ту"]="27";
+w["тут"]="19,30";
+w["ті"]="9,20";
+w["тій"]="20";
+w["у"]="0,2,3,4,5,6,7,9,10,11,13,14,15,17,18,19,20,21,22,23,24,25,27,28,29,30";
+w["убезпечує"]="20";
+w["увагу"]="15";
+w["уважними"]="4";
+w["уважно"]="3";
+w["увесь"]="14";
+w["увійти"]="30";
+w["увімкнено"]="25";
+w["увімкнути"]="4,20,22,30";
+w["угод"]="19";
+w["угода"]="15";
+w["умовами"]="15";
+w["умови"]="15";
+w["універсальна"]="10";
+w["упевнитися"]="30";
+w["уподобань"]="24";
+w["усіх"]="23";
+w["участь"]="6";
+w["файл"]="27";
+w["файли"]="21";
+w["файлову"]="14";
+w["файлові"]="14";
+w["файлом"]="27";
+w["файлів"]="19,24,30";
+w["флеш"]="14";
+w["флеш-носієві"]="27";
+w["фоновому"]="20";
+w["фонові"]="20";
+w["форматування"]="2,7,18,26";
+w["форматувати"]="18,21";
+w["фірми-виробника"]="3";
+w["характеристик"]="2";
+w["характеристиками"]="3";
+w["хоча"]="24";
+w["хочете"]="2,6,7,8,14,16,22,26,30";
+w["хто"]="23";
+w["це"]="2,3,4,5,9,11,17,22,28,29,30";
+w["цей"]="4,9,20,22,23,24";
+w["центр"]="30";
+w["центру"]="1,11,20";
+w["цим"]="0,2,7,23,24,30";
+w["цими"]="20,28";
+w["цифр"]="30";
+w["цих"]="2,7,9,16,17,20,30";
+w["цього"]="2,3,7,8,11,12,17,19,20,22,24,27,30";
+w["цьому"]="19,20,26,30";
+w["цю"]="2,3,11";
+w["ці"]="8,9,14,15,16,22";
+w["цій"]="25";
+w["цілковитий"]="24";
+w["цією"]="3,24";
+w["цієї"]="1,2,4,8,9,13,14,16,18,20,21,24,30";
+w["час"]="2,7,9,11,13,17,20,22,24,27,28,30";
+w["часовий"]="17,20";
+w["часового"]="17,20";
+w["часовому"]="17";
+w["частини"]="29";
+w["частиною"]="27";
+w["частину"]="24";
+w["частині"]="27";
+w["часто"]="2";
+w["частота"]="3";
+w["частоти"]="3,22";
+w["частотою"]="3";
+w["частоту"]="3,22";
+w["часу"]="8,17";
+w["червоного"]="30";
+w["через"]="12,24";
+w["чи"]="2,9,10,14,22,30";
+w["чивиконати"]="21";
+w["чином"]="2,3,4,12,22";
+w["читання"]="30";
+w["читати"]="30";
+w["чотири"]="13";
+w["чудово"]="9";
+w["шахраїв"]="20";
+w["шифруванням"]="14";
+w["шифрувати"]="14";
+w["шлюз"]="20";
+w["шляхи"]="2";
+w["штатному"]="24";
+w["шістьма"]="10";
+w["ще"]="4,5,18,25,27,30";
+w["щита"]="30";
+w["що"]="2,5,7,9,11,15,17,19,20,21,22,24,26,27,29,30";
+w["щоб"]="0,2,4,7,8,9,10,11,13,14,15,17,18,20,21,22,25,27,28,30";
+w["щодо"]="0,1,2,5,13,14,15,18,20,21,22,24,26";
+w["щойно"]="8,27";
+w["явним"]="4";
+w["ядра"]="2";
+w["як"]="2,11,17,23,30";
+w["яка"]="5,9,28,30";
+w["яке"]="21,22,24,29";
+w["якесь"]="17";
+w["який"]="2,9,20,22,30";
+w["якийсь"]="16";
+w["яким"]="12,19,20";
+w["якими"]="2,24";
+w["яких"]="2,9,20,21,30";
+w["якихось"]="24";
+w["якого"]="3,5,22,30";
+w["якомога"]="2";
+w["якому"]="5,20,21";
+w["якою"]="3";
+w["якоюсь"]="9,23";
+w["якої"]="2,9,20";
+w["яку"]="20";
+w["якщо"]="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24,25,26,28,29,30";
+w["які"]="9,10,12,13,18,19,20,25,27,29,30";
+w["якісь"]="24";
+w["японської"]="29";
+w["яскраво"]="16";
+w["є"]="2,3,4,9,10,11,16,19,20,22,24,27,29";
+w["і"]="2,3,4,5,6,8,9,11,14,16,19,20,21,24,25,26,27,29,30";
+w["ігор"]="30";
+w["ідентифікатор"]="30";
+w["із"]="5,12";
+w["імені"]="29,30";
+w["ім’я"]="30";
+w["інакше"]="3,9,14,15";
+w["індивідуальний"]="0";
+w["індії"]="29";
+w["інструмента"]="20";
+w["інтернет"]="25";
+w["інтернетом"]="20";
+w["інтернету"]="20,30";
+w["інтернеті"]="20";
+w["інтерфейс"]="20";
+w["інтерфейсом"]="20";
+w["інтерфейсу"]="2,4,11";
+w["інтерфейсі"]="22";
+w["інформаційній"]="13";
+w["інше"]="22";
+w["інший"]="10";
+w["іншим"]="30";
+w["іншими"]="3,11";
+w["інших"]="20,28,30";
+w["іншого"]="14,28";
+w["іншої"]="9";
+w["іншу"]="5,14";
+w["інші"]="9,25,27,29";
+w["існуючими"]="24";
+w["ієрархічного"]="3,4";
+w["їх"]="2,9,11,19,20";
+w["їхнє"]="19,28";
+w["їхніх"]="0";
+w["її"]="3,4,14,22,25";
+w["—"]="9,10,19,28";
+w["“вибір"]="20,23";
+w["“вітальне"]="2";
+w["“мінімальне"]="0";
+w["“налаштування"]="20";
+w["“основні"]="20";
+
diff --git a/installer/3/uk/content/search/ja-jp.props b/installer/3/uk/content/search/ja-jp.props
new file mode 100644
index 00000000..27568054
--- /dev/null
+++ b/installer/3/uk/content/search/ja-jp.props
@@ -0,0 +1 @@
+J01=\\u306B \ No newline at end of file
diff --git a/installer/3/uk/content/search/nwSearchFnt.js b/installer/3/uk/content/search/nwSearchFnt.js
new file mode 100644
index 00000000..0111559c
--- /dev/null
+++ b/installer/3/uk/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/3/uk/content/search/punctuation.props b/installer/3/uk/content/search/punctuation.props
new file mode 100644
index 00000000..d3e3fcd2
--- /dev/null
+++ b/installer/3/uk/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/3/uk/content/search/stemmers/de_stemmer.js b/installer/3/uk/content/search/stemmers/de_stemmer.js
new file mode 100644
index 00000000..7ff3822a
--- /dev/null
+++ b/installer/3/uk/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/3/uk/content/search/stemmers/en_stemmer.js b/installer/3/uk/content/search/stemmers/en_stemmer.js
new file mode 100644
index 00000000..f58012f2
--- /dev/null
+++ b/installer/3/uk/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/3/uk/content/search/stemmers/fr_stemmer.js b/installer/3/uk/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 00000000..34f97431
--- /dev/null
+++ b/installer/3/uk/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");
+}
+
+