Перш ніж встановлювати Mageia, будь ласка,
+ретельно ознайомтеся з умовами ліцензування.
Ці умови ліцензування стосуються всього дистрибутива
+Mageia. Вам слід прийняти ці умови, інакше
+встановлення буде неможливим.
Щоб погодитися з умовами, позначте пункт Прийняти, а
+потім натисніть кнопку Далі.
Якщо ви не погоджуєтеся з умовами ліцензування, ми залишимося вдячні за те,
+що ви звернули увагу на дистрибутив. Після натискання кнопки
+Вийти ваш комп’ютер буде перезавантажено.
Нотатки щодо випуску
Щоб ознайомитися зі списком нововведень у Mageia,
+натисніть кнопку Нотатки щодо випуску.
Керування обліковими записами користувача і адміністратора
Керування обліковими записами користувача і адміністратора
Встановлення пароля адміністратора (root):
У кожній встановленій системі Mageia варто
+визначити пароль суперкористувача або адміністратора. Такий пароль у Linux
+зазвичай має назву пароль root. Під час введення пароля
+колір позначки щита змінюватиметься з червоного на жовтий, а потім на
+зелений, залежно від складності пароля. Зелений колір відповідає достатньо
+складним паролям. Вам також слід повторити введення пароля у полі
+розташованому нижче, щоб упевнитися, що пароль було вказано без помилок.
Примітка
Всі паролі слід вказувати з врахуванням регістру. Краще використовувати у
+паролі суміш літер (великих і малих), цифр та інших символів.
Введіть користувача
За допомогою цієї панелі ви можете додати користувачів. Кожен користувач має
+вужчі права доступу, ніж суперкористувач (root), але достатньо прав для
+перегляду сторінок інтернету, користування офісними програмами, ігор та
+будь-яких інших завдань, які виконуються звичайним користувачем за
+комп’ютером.
Піктограма: за допомогою цієї кнопки можна змінити
+піктограму користувача.
Справжнє ім’я: у цьому полі для введення тексту слід
+вказати справжнє ім’я користувача.
Ім’я користувача, що реєструється: тут ви можете ввести
+реєстраційне ім’я користувача або надати змогу drakx використовувати певну
+версію справжнього імені користувача.
Пароль: у цьому полі вам слід вказати пароль
+користувача. Колір позначки щита поряд з цим полем відповідає складності
+пароля (див. також
Пароль (ще раз): повторіть введення пароля користувача
+у цьому полі. drakx перевірить, чи збігається введений вами повторно пароль
+з його початковим варіантом.
Примітка
Вміст домашніх каталогів всіх користувачів, записи яких буде створено під
+час встановлення Mageia, зможе читати будь-який користувач (але не
+записувати до цих каталогів дані).
Втім, після встановлення домашні каталоги користувачів, записи яких буде
+додано за допомогою модуля Центр керування Mageia - Система -
+Керувати користувачами системи, буде захищено як від читання, так
+і від запису.
Якщо ви хочете захистити ваш домашній каталог від читання будь-яким
+користувачем, вам варто на етапі встановлення створити тимчасовий запис
+користувача, а справжній запис створити вже після завершення встановлення і
+перезавантаження системи.
Якщо ви надаєте перевагу домашнім каталогам користувачів, вміст яких
+доступний всім іншим користувачам, вам варто додати всі записи майбутніх
+користувачів системи на кроці Налаштування - Резюме під
+час встановлення системи. Для керування записами користувачів виберіть пункт
+Керування користувачами.
Права доступу до домашніх каталогів, звичайно ж, можна змінити і після
+завершення встановлення системи.
Додаткові можливості керування записами користувачів
Якщо ви натиснете кнопку Додатково, програма відкриє
+діалогове вікно, за допомогою якого ви зможете змінити параметри облікового
+запису, який ви додаєте. Крім того, за допомогою цього діалогового вікна
+можна вимкнути або увімкнути гостьовий обліковий запис.
Застереження
Будь-які дані, які буде записано з гостьового облікового запису
+rbash до відповідного каталогу у /home, буде витерто
+під час виходу з системи. Користувачеві гостьового облікового запису слід
+потурбуватися про збереження важливих файлів на портативний носій даних.
Увімкнути гостьовий запис: за допомогою цього пункту
+можна увімкнути або вимкнути гостьовий обліковий запис. Користувач
+гостьового облікового запису зможете увійти до системи, користуватися
+комп’ютером, але матиме обмежені права доступу навіть порівняно зі
+звичайними користувачами.
Командна оболонка: за допомогою цього спадного списку
+ви можете змінити командну оболонку, яка використовуватиметься для роботи
+користувача, обліковий запис якого створено за допомогою попереднього
+вікна. Можливі такі варіанти: Bash, Dash та Sh.
Код користувача: тут ви можете встановити код
+(ідентифікатор) користувача, обліковий запис якого було додано за допомогою
+попереднього вікна. Слід вказати номер облікового запису. Не заповнюйте це
+поле, якщо вам невідомі наслідки ваших дій.
Код групи: тут ви можете встановити код (ідентифікатор)
+групи користувача, обліковий запис якого було додано за допомогою
+попереднього вікна. Слід вказати номер, зазвичай той самий, що і для
+облікового запису користувача. Не заповнюйте це поле, якщо вам невідомі
+наслідки ваших дій.
Вибір носія (налаштовування додаткових носіїв пакунків для встановлення)
Вибір носія (налаштовування додаткових носіїв пакунків для встановлення)
На цій сторінці буде наведено список визначених сховищ пакунків. Ви зможете
+додати інші джерела пакунків, зокрема оптичний носій даних або віддалений
+сервер у мережі. Набір вказаних сховищ визначає, які з пакунків будуть
+доступними для вибору на наступних кроках.
Щоб додати джерело у інтернет, слід виконати два таких кроки:
Вибір і вмикання мережі, якщо її ще не було увімкнено.
Вибір дзеркала або визначення адреси (перший запис). Після вибору дзеркала
+ви отримаєте доступ до вибору сховищ, які використовуються у Mageia, зокрема
+сховищ невільних пакунків (Nonfree), пакунків з обмеженнями у ліцензуванні
+(Tainted) та оновлень (Updates). За допомогою визначення адреси ви можете
+пов’язати з системою певне сховище пакунків або розгорнуту вами за допомогою
+NFS систему.
За допомогою цієї сторінки ви можете переглянути список розділів Linux на
+вашому комп’ютері. Якщо ви не згодні з пропозиціями
+DrakX, ви можете змінити точки монтування.
Примітка
У разі внесення змін не забудьте, що серед розділів обов’язково має бути
+розділ /.
Для кожного з розділів буде показано такі дані: «Пристрій» («Місткість»,
+«Точка монтування», «Тип»).
Для пункту «Пристрій» буде показано таке: «твердий диск», [«номер твердого
+диска»(літера)], «номер розділу» (наприклад, «sda5»).
Якщо у вашій системі багато розділів, за допомогою спадного меню ви зможете
+вибрати для них різні точки монтування, зокрема такі: /,
+/home і /var. Крім того, ви можете
+створити власні точки монтування, наприклад /video для
+розділу, на якому зберігатимуться ваші відео файли або
+/cauldron-home для розділу /home
+встановленої тестової версії системи (cauldron).
Для розділів, доступ до яких за допомогою встановленої системи не
+здійснюватиметься, ви можете не вказувати точку монтування.
Застереження
Натисніть кнопку Назад, якщо ви не певні, щодо
+вибору. Потім натисніть кнопку Спеціальний розподіл
+диска. У вікні, яке буде відкрито у відповідь, ви зможете
+натиснути область розділу, щоб переглянути дані щодо типу і розміру розділу.
Якщо ви певні, що точки монтування визначено правильно, натисніть кнопку
+Далі і визначтеся з тим, слід лише форматувати
+розділи згідно пропозицій DrakX чи виконати додаткові дії.
Залежно від вибраного вами за допомогою цієї сторінки варіанта встановлення,
+програма може запропонувати на подальших сторінка додаткові можливості
+остаточного налаштування вашої системи.
Після виконання кроків вибору, ви побачите показ слайдів. Вимкнути показ
+слайдів можна натисканням кнопки Подробиці.
Виберіть бажане для вас графічне середовище, KDE
+або Gnome. Обидва ці середовища об’єднують
+повноцінні набори програм та інструментів. Позначте пункт
+Спеціальний , якщо ви не маєте наміру використовувати
+жодне з цих середовищ, маєте намір використовувати обидва або хочете вибрати
+якийсь особливий перелік програмного забезпечення для цих
+середовищ. Стільничне середовище LXDE є менш
+вибагливим до ресурсів ніж перші два середовища, але виглядає не так яскраво
+і типово містить менше корисних програм. Якщо ви не маєте наміру
+використовувати жодне з цих середовищ, маєте намір використовувати обидва
+або хочете вибрати якийсь особливий перелік програмного забезпечення для цих
+середовищ. Стільничне середовище LXDE є менш вибагливим до ресурсів ніж
+перші два середовища, але виглядає не так яскраво і типово містить менше
+корисних програм.
Щоб полегшити вибір потрібних вам пакунків, список поділено на
+групи. Призначення груп можна зрозуміти з їхніх назв, втім, ви також можете
+отримати підказку щодо вмісту групи у відповідь на наведення вказівника миші
+на пункт групи у списку.
Робоча станція.
Сервер
Графічне середовище.
Індивідуальний вибір пакунків: цим варіантом можна скористатися для
+додавання або вилучення пакунків вручну.
Ознайомтеся з розділом “Мінімальне встановлення”, де викладено
+настанови щодо встановлення мінімальної системи.
За допомогою цього варіанта ви можете вибрати додаткові пакунки, які
+доповнять встановлену вами систему, або вилучити пакунки, що є частиною
+типового набору.
Щойно вибір буде зроблено, ви зможете натиснути піктограму
+дискети у нижній частині сторінки, щоб зберегти список пакунків
+(дані можна зберегти на флеш-носієві USB). Після цього збереженим файлом
+можна буде скористатися для встановлення системи на інші комп’ютери:
+достатньо буде натиснути ту саму кнопку ще раз під час встановлення і
+завантажити збережений файл.
Виберіть ваш часовий пояс. Для цього достатньо вибрати вашу країну або якесь
+місто поруч з вашим місцем перебування так, щоб це місто було розташовано у
+тому самому часовому поясі.
За допомогою наступного розділу ви можете вказати режим роботи апаратного
+годинника комп’ютера: використання місцевого часу або часу за Гринвічем,
+також відомого як Всесвітній час.
Примітка
Якщо на вашому комп’ютері встановлено декілька операційних систем,
+переконайтеся, що у всіх цих системах використано місцевий час або
+Всесвітній час (UTC/GMT).
Вибір графічного сервера (налаштовування вашої графічної картки)
Вибір графічного сервера (налаштовування вашої графічної картки)
У DrakX передбачено дуже повну базу даних графічних карток. Зазвичай,
+програма може правильно визначити ваш графічний пристрій.
Якщо засобу встановлення не вдалося належним чином визначити вашу графічну
+картку і вам відома назва цієї картки, ви можете вибрати її пункт з
+ієрархічного списку за такими критеріями:
виробник
назва вашої картки
тип вашої картки
Якщо вашої картки немає у списку карток за виробниками (оскільки вона ще не
+встигла потрапити до бази даних або є надто старою), ви можете знайти
+відповідний драйвер у категорії «Xorg».
У категорії «Xorg» ви зможете скористатися одним з понад 40 типових
+драйверів з відкритим кодом для відеокарт. Якщо вам все ж не вдасться знайти
+драйвер за назвою, ви можете скористатися драйвером «vesa». Цей драйвер
+забезпечує базові можливості з показу відео.
Будьте уважними: якщо драйвер буде вибрано помилково, ви зможете отримати
+доступ лише до інтерфейсу командного рядка.
Деякі виробники відеокарт самі створюють пропрієтарні (закриті) драйвери для
+Linux. Доступ до таких драйверів можна отримати лише за допомогою сховищ
+пакунків «Nonfree» або сайтів виробників карток.
Вам слід явним чином увімкнути сховища «Nonfree», щоб мати до них
+доступ. Зробити це слід після першого перезавантаження системи.
Байдуже, яке графічне середовище (або стільничне середовище) було вибрано
+під час встановлення Mageia, всі ці середовища
+засновано на графічному інтерфейсі, який має назву X Window
+System або просто X. Отже, щоб
+KDE, Gnome, LXDE
+або будь-яке інше графічне середовище працювало належним чином, вказані
+нижче параметри роботи сервера X має бути визначено
+належним чином. Змінювати значення параметрів слід, якщо помітно, що
+DrakX зроблено помилковий вибір, або якщо вам
+здається, що цей вибір є помилковим.
Графічна карта: якщо потрібно,
+виберіть встановлену на вашому комп’ютері графічну картку зі списку.
Монітор: ви можете вибрати
+Plug'n Play якщо вважаєте, що це правильно, або вибрати
+пункт вашого монітора зі списків Виробник або
+Загальний. Виберіть пункт
+Спеціальний, якщо хочете вручну вказати частоту
+оновлення зображення за вертикаллю та горизонталлю для вашого монітора.
Застереження
Помилково вказані частоти оновлення зображення можуть призвести до
+пошкодження вашого монітора.
Роздільна здатність: за
+допомогою цього пункту можна вибрати бажану роздільну здатність та глибину
+кольорів на вашому моніторі.
Перевірити: кнопка перевірки під
+час встановлення може бути недоступною. Якщо кнопка є доступною, за
+допомогою її натискання ви можете перевірити, чи правильно вказано
+параметри. У відповідь на питання щодо правильності параметрів ви можете
+відповісти «так», щоб зберегти вказані параметри. Якщо ж зображення на
+моніторі немає, система за деякий час поверне вас до вікна налаштовування,
+за допомогою якого ви зможете виправити налаштування, аж доки не буде
+досягнуто бажаного результату. Якщо кнопка перевірки є
+недоступною, вам слід самостійно потурбуватися про те, щоб вказані параметри
+були безпечними.
Параметри: за допомогою цього
+пункту ви можете увімкнути або вимкнути різноманітні параметри.
У DrakX передбачено дуже повну базу даних моніторів. Зазвичай, програма може
+правильно визначити ваш монітор.
Застереження
Вибір пункту монітора з іншими апаратними характеристиками може
+призвести до пошкодження вашого монітора або відеоапаратури. Будь ласка,
+подумайте над вашим вибором. Якщо маєте певні сумніви, зверніться
+до документації з вашого монітора.
Спеціальний
За допомогою цього пункту ви можете встановити значення двох критичних
+параметрів: вертикальної частоти оновлення та горизонтальної частоти
+синхронізації. Частота оновлення визначає частоту, з якою оновлюється
+зображення на екрані, а частота синхронізації є частотою, з якою буде
+показано лінії зображення.
ДУЖЕ ВАЖЛИВО не вказати тип монітора, можливості якого
+перевищують можливості вашого: інакше ви можете пошкодити ваш монітор. Якщо
+сумніваєтеся, виберіть мінімальні параметри і уважно ознайомтеся з
+документацією до вашого монітора.
Plug 'n Play
Це типовий варіант: програма намагається визначити тип вашого монітора за
+базою даних моніторів.
Виробник
Якщо засобу встановлення не вдалося належним чином визначити ваш монітор і
+вам відома назва цього монітора, ви можете вибрати її пункт з ієрархічного
+списку за такими критеріями:
виробник
назва фірми-виробника монітора
опис монітора
Загальний:
якщо ви виберете цю групу, буде відкрито список з близько 30 типових
+налаштувань дисплеїв, подібних до 1024x768 @ 60 Гц, до якого включено
+параметри плоских панелей дисплеїв для ноутбуків. Зазвичай, цією групою
+варто користуватися, якщо у вас виникла потреба використовувати драйвер
+«Vesa» для вашої картки, тобто вашу відеокарту не вдалося визначити
+автоматично. Знову ж таки, варто параметри варто вибирати дуже обережно.
Нетиповий поділ диска на розділи за допомогою DiskDrake
Нетиповий поділ диска на розділи за допомогою DiskDrake
Застереження
Якщо на вашому розділі з / ви хочете скористатися
+шифруванням, каталог /boot слід зберігати на окремому
+розділі. Не слід шифрувати каталог /boot, інакше
+завантаження системи стане неможливим.
За допомогою цієї сторінки можна визначити компонування розділів у вашій
+системі. За її допомогою можна вилучати і створювати розділи, змінювати
+файлові системи на розділах або розміри розділів і навіть переглядати вміст
+розділів до внесення змін.
+
Для кожного виявлено жорсткого диска або іншого носія даних (зокрема картки
+флеш USB) буде відведено власну вкладку. Приклад: sda, sdb та sdc, якщо буде
+виявлено три диски.
+
Натисніть кнопку Очистити все, щоб всі розділи на
+вибраному носії даних було вилучено.
Щоб виконати будь-яку іншу дію, спочатку позначте область відповідного
+розділу. Потім перегляньте дані щодо розділу, змініть його файлову систему і
+точку монтування, розміри чи просто витріть увесь розділ.
Повторюйте ці дії для всіх відповідних розділів, аж доки все не набуде
+потрібних вам обрисів.
Натисніть кнопку Виконано, коли налаштовування буде
+завершено.
За допомогою цієї сторінки ви зможете переглянути вміст всіх дисків
+комп’ютера і ознайомитися з пропозиціями майстра поділу на розділи DrakX
+щодо місця встановлення Mageia.
Перелік пунктів у наведеному нижче списку залежатиме від комплектації
+комп’ютера та вмісту дисків.
Користуватися існуючими розділами
Цим варіантом можна буде скористатися, якщо на диску буде виявлено сумісні з
+Linux розділи, якими можна скористатися для встановлення системи.
Використовувати вільний простір
Цим варіантом можна буде скористатися, якщо на вашому диску є вільне місце,
+достатнє для встановлення нової системи Mageia.
Використовувати вільний простір на розділі Microsoft Windows®
Цим варіантом можна буде скористатися, якщо на вже створених розділах
+Windows є достатньо вільного місця для встановлення нової операційної
+системи.
Цей варіант отримання місця для встановлення Mageia може корисним, але у
+разі його використання ви ризикуєте втратою даних, тому вам слід попередньо
+створити резервні копії важливих для вас файлів!
Зауважте, що розмір розділу Windows буде зменшено. Розділ має бути
+«очищено», тобто роботу Windows має бути завершено у штатному режимі під час
+останнього сеансу, коли ви користувалися цією операційною системою. Крім
+того, розділ має бути дефрагментовано, хоча дефрагментація і не гарантує
+повного пересування файлів з місця на диску, яке буде використано для
+Mageia. Ми наполегливо рекомендуємо вам створити резервні копії важливих для
+вас файлів.
Стерти і використати весь диск
У разі використання цього варіанта для встановлення Mageia буде використано
+весь об’єм на диску.
Зауваження: всіх дані на диску буде у такому разі витерто. Будьте обережні!
Якщо частину диска буде згодом використано для зберігання якихось даних або
+не диску вже зберігаються якісь важливі дані, не користуйтеся цим варіантом.
Спеціальний
За допомогою цього варіанта ви можете отримати цілковитий доступ до
+розташування розділів на вашому диску відповідно до ваших уподобань.
Застереження
У деяких новіших дисках використовуються логічні сектори у 4096 байтів
+замість попереднього стандарту у 512 байтів на логічний сектор. Через те, що
+у розробників немає достатнього доступу до відповідного обладнання, належне
+тестування програми для поділу диска на розділи на таких дисках не
+виконувалося. Крім того, у деяких дисках SSD використовується розмір блоку
+понад 1 МБ. Радимо вам виконати поділ такого диска на розділи за допомогою
+альтернативної спеціалізованої програми, наприклад gparted з використанням
+таких значень параметрів:
«Вирівняти до» «МіБ»
«Вільне місце перед (МіБ)» «2»
Також слід переконатися, що всі розділи буде створено з парними розмірами у
+мегабайтах.
Тепер Mageia встановлено і налаштовано, можна
+вилучати носій для встановлення системи і перезавантажувати ваш комп’ютер.
Після перезавантаження за допомогою екрана завантаження ви зможете вибрати
+одну з операційних систем, встановлених на вашому комп’ютері (якщо
+встановлено декілька систем).
Якщо ви не скоригуєте параметрів завантажувача, буде автоматично вибрано і
+запущено встановлену вами операційну систему Mageia.
Приємної роботи!
Відвідайте www.mageia.org, якщо хочете дізнатися більше про участь у
+спільноті Mageia
За допомогою цієї сторінки ви можете визначитися з тим, які розділи слід
+форматувати. Всі дані на розділах, які не позначено для
+форматування, буде збережено.
Зазвичай, форматування потрібне принаймні для розділів, вибраних DrakX.
Натисніть кнопку Додатково, щоб вибрати розділи, які
+слід перевірити на так звані пошкоджені блоки.
Підказка
Якщо ви не певні щодо правильності свого вибору, ви можете натиснути кнопку
+Назад, ще раз кнопку Назад, а
+потім кнопку Спеціальний, щоб повернутися до основної
+сторінки. За допомогою основної сторінки ви зможете переглянути поточні
+параметри розділів.
Якщо ви певні у своєму виборі, натисніть кнопку Далі,
+щоб продовжити роботу з програмою.
Всі сторінки, описані у цьому підручнику побачити одразу неможливо. Набір
+сторінок, які ви побачите залежить від набору обладнання у вашій системі та
+вибраного вами варіанта встановлення.
Цей підручник було створено за допомогою Calenco CMS, розробленої компанією
+NeoDoc.
Підручник було написано охочими до цього користувачами у вільний від
+основної роботи час. Будь ласка, зверніться до команди
+документування, якщо хочете допомогти у покращенні цього підручника.
З часу випуску цієї версії Mageia деякі пакунки
+могло бути оновлено та покращено.
Натисніть кнопку так, якщо ви хочете отримати і
+встановити ці пакунки, або виберіть ні, якщо ви не
+хочете робити цього зараз або ваш комп’ютер не з’єднано з інтернетом.
Щойно вибір буде зроблено, натисніть кнопку Далі, щоб
+продовжити роботу з програмою.
Байдуже, є у вас досвід користування GNU-Linux чи немає, програму для
+встановлення Mageia розроблено таким чином, що вона зробить встановлення або
+оновлення системи якомога простішим для вас.
На початковому вікні меню встановлення ви побачити пункти варіантів
+дій. Типовим буде пункт запуску програми для встановлення системи. Зазвичай,
+це саме той пункт, який вам потрібен.
Рисунок 1. Вітальне вікно програми для встановлення
Якщо під час встановлення у вас виникнуть проблеми, вам доведеться
+скористатися особливими параметрами встановлення, див. “Параметри встановлення”.
Кроки встановлення
Процедуру встановлення поділено на послідовність кроків, перелік яких буде
+показано на бічній панелі екрана.
На кожному кроці вам буде показано одну або декілька сторінок, на яких ви
+можете побачити кнопку Додатково , за допомогою якої
+здійснюється доступ до додаткових параметрів, якими користуються не так
+часто як основними.
На більшості сторінок ви також побачите кнопку
+Довідка, за допомогою якої можна отримати додаткові
+пояснення щодо поточного кроку.
Примітка
Якщо протягом процедури встановлення ви вирішите припинити встановлення, ви
+можете перезавантажити комп’ютер. Втім, вам слід ретельно обдумати ваші
+дії. Після форматування розділу або початку процедури встановлення оновлень
+ваш комп’ютер перебуватиме у проміжному стані. Перезавантаження може
+призвести до неможливості користування системою. Якщо, всупереч цим
+попередженням, ви хочете перезавантажити систему, перейдіть у текстовий
+термінал натисканням комбінації цих трьох клавіш: Alt Ctrl
+F2 одночасно. Після цього, натисніть комбінацію клавіш
+Alt Ctrl Delete одночасно, щоб перезавантажити
+комп’ютер.
Параметри встановлення
Якщо програмі для встановлення не вдається виконати своє призначення
+належним чином, ви можете повторити спробу, скориставшись додатковими
+варіантами, опис яких можна отримати після натискання клавіші F1
+(Довідка) див. Рисунок 1, “Вітальне вікно програми для встановлення”.
У відповідь на натискання цієї клавіші буде відкрито таке текстове вікно
+довідкових даних.
Рисунок 2. Довідкове вікно системи встановлення
Проблеми зі встановленням та можливі шляхи їх вирішення
Немає графічного інтерфейсу
Після початкової сторінки не відкривається сторінка вибору мови. Таке може
+трапитися у системах з деякими графічними картками та застарілих
+системах. Спробуйте скористатися режимом низької роздільної здатності. Для
+цього впишіть vgalo у рядок запиту.
Якщо комп’ютер є дуже застарілим, встановлення у графічному режимі може бути
+просто неможливим. У такому випадку варто скористатися встановленням у
+текстовому режимі. Щоб скористатися цим режимом, натисніть клавішу Esc, коли
+буде показано перший вітальний екран, і підтвердіть виконання дії
+натисканням клавіші Enter. Введіть text і натисніть клавішу
+Enter. Встановлення буде продовжено у текстовому
+режимі.
Встановлення зупиняється
Якщо під час встановлення система припиняє відповідати на ваші запити,
+ймовірно, виникла проблема з визначенням характеристик обладнання. У такому
+випадку можна обійти автоматичне визначення характеристик обладнання і
+виконати його налаштовування пізніше. Щоб перевести засіб встановлення у
+відповідний режим, введіть до рядка запиту команду noauto. За
+потреби, цю команду можна поєднати з вищевказаними командами.
Параметри ядра
Потреба у визначенні параметрів ядра виникає нечасто, але у певних випадках
+комп’ютер може повідомляти засобу встановлення помилкові дані щодо об’єму
+оперативної пам’яті. Щоб вказати об’єм оперативної пам’яті вручну,
+скористайтеся командою mem=xxxM, де xxx правильне значення
+об’єму оперативної пам’яті, наприклад mem=256M відповідає 256
+МБ оперативної пам’яті.
Тут ви побачите список доступних сховищ. Не всі сховища є доступними. Список
+доступних сховищ залежить від носія, яким ви скористалися для
+встановлення. Набір сховищ визначає, які з пакунків будуть доступними для
+вибору на наступних кроках.
Сховище Core не можна вимикати, оскільки у ньому
+містяться основні пакунки дистрибутива.
До сховища Nonfree включено пакунки, які є
+безкоштовними, тобто Mageia може поширювати їх, але у них міститься
+програмне забезпечення з закритим кодом (звідси і назва — Nonfree). У цьому
+сховищі, наприклад, містяться пакунки закритих драйверів до графічних карток
+nVidia і ATI, мікропрограми для різноманітних карток WiFi тощо.
У сховищі Tainted зберігаються пакунки, випущені
+відповідно до вільних ліцензійних угод. Основним критерієм для включення
+пакунків до цього сховища є те, що їхнє поширення обмежується патентним
+законодавством та законами про авторські і суміжні права деяких краї. До
+цього сховища зокрема включено мультимедійні кодеки, потрібні для
+відтворення різноманітних файлів звукових та відеоданих; пакунки, потрібні
+для відтворення комерційних відео-DVD тощо.
Ви можете вибрати «Мінімальне встановлення» зняттям позначок з усіх пунктів
+у списку вибору груп пакунків, див. розділ “Вибір груп пакунків”.
Мінімальний режим призначено для тих, хто має намір використовувати
+Mageia з якоюсь вузькоспеціалізованою метою,
+зокрема як сервер або робочу станцію вузького спрямування. Цим варіантом
+варто користуватися у поєднанні з вибором пакунків вручну, див. “Вибір окремих пакунків”.
Якщо ви виберете цей варіант встановлення, на наступній сторінці програми
+вам буде запропоновано встановити корисні доповнення системи, зокрема
+документацію та графічний сервер.
DrakX намагається правильно визначити налаштування вашої системи відповідно
+до зробленого вами вибору та виявленого DrakX обладнання. Ви можете
+ознайомитися з вибраними параметрами та, якщо потрібно, змінити їх: для
+цього достатньо натиснути кнопку Налаштувати.
Параметри системи
Часовий пояс
DrakX вибирає часовий пояс на основі вказаної вами бажаної мови. Якщо
+потрібно, ви можете змінити часовий пояс. Див. також “Налаштування часового поясу”.
Країна / Регіон
Якщо ви перебуваєте не у тій країні, яку було вибрано автоматично, дуже
+важливо виправити значення цього параметра. Див. “Вибір країни і регіону”.
За допомогою цієї сторінки ви можете додати облікові записи користувачів. У
+кожного користувача буде власний каталог /home.
Служби:
Системними службами називаються ті невеличкі програми, які працюють у
+фоновому режимі (фонові служби). За допомогою цього інструмента ви зможете
+увімкнути або вимкнути деякі з цих служб.
Вам слід бути обережними у виборі: помилки можуть призвести до неналежної
+роботи комп’ютера.
За допомогою цього розділу ви можете налаштувати або змінити розкладку
+клавіатури, параметри якої залежатимуть від місця вашого розташування, мови
+та типу клавіатури.
Миша:
За допомогою цього розділу сторінки ви зможете налаштувати координатні
+пристрої, планшети, кульові маніпулятори тощо.
Звукова плата:
Засобом встановлення буде використано типовий драйвер, якщо такий типовий
+драйвер передбачено. Можливість вибору іншого драйвера буде надано, лише
+якщо для картки передбачено декілька драйверів, але жоден з них не є
+типовим.
Графічний інтерфейс:
За допомогою цього розділу сторінки ви можете налаштувати параметри роботи
+ваших графічних карток та дисплеїв.
Цей розділ надасть вам змогу налаштувати мережу. Втім, якщо ви користуєтеся
+картками, для яких потрібні закриті драйвери, краще виконати налаштовування
+після перезавантаження, за допомогою Центру керування
+Mageia, після вмикання сховищ закритих (Nonfree) пакунків.
Застереження
Під час додавання мережевої карти не забудьте разом з нею налаштувати
+брандмауер (мережевий екран), який стежитиме за відповідним інтерфейсом.
Проксі:
Проксі-сервер є проміжною ланкою між вашим комп’ютером та інтернетом. За
+допомогою цього розділу ви зможете налаштувати комп’ютер на використання
+служб проксі-сервера.
Вам варто порадитися з вашим системним адміністратором, щоб дізнатися більше
+про значення параметрів, які слід вказати у цьому розділі.
Безпека
Рівень безпеки:
За допомогою цього розділу ви можете визначити рівень захисту вашого
+комп’ютера. Здебільшого, типовий варіант (Стандартний) надасть вашому
+комп’ютеру достатній захист.
Виберіть той з варіантів, який найкраще відповідає вашому способу
+використання системи.
Захисний шлюз:
Брандмауер або мережевий екран є бар’єром, який убезпечує важливі дані від
+доступу до них шахраїв з інтернету, які намагаються викрасти і скористатися
+цими даними.
Виберіть служби, яким має бути дозволено доступ до вашої системи. Вибір
+служб залежатиме від призначення комп’ютера, на якому працює операційна
+система.
Застереження
Пам’ятайте, що вмикання доступу без обмежень (вимикання брандмауера) може
+значно знизити рівень захисту вашої системи.
diff --git a/installer/4/uk/content/nwSearchFnt.js b/installer/4/uk/content/nwSearchFnt.js
new file mode 100644
index 00000000..fc12d113
--- /dev/null
+++ b/installer/4/uk/content/nwSearchFnt.js
@@ -0,0 +1,513 @@
+/*----------------------------------------------------------------------------
+ * JavaScript for webhelp search
+ *----------------------------------------------------------------------------
+ This file is part of the webhelpsearch plugin for DocBook WebHelp
+ Copyright (c) 2007-2008 NexWave Solutions All Rights Reserved.
+ www.nexwave.biz Nadege Quaine
+ http://kasunbg.blogspot.com/ Kasun Gajasinghe
+ */
+
+//string initialization
+var htmlfileList = "htmlFileList.js";
+var htmlfileinfoList = "htmlFileInfoList.js";
+var useCJKTokenizing = false;
+
+/* Cette fonction verifie la validite de la recherche entrre par l utilisateur */
+function Verifie(ditaSearch_Form) {
+
+ // Check browser compatibitily
+ if (navigator.userAgent.indexOf("Konquerer") > -1) {
+
+ alert(txt_browser_not_supported);
+ return;
+ }
+
+
+ var expressionInput = document.ditaSearch_Form.textToSearch.value;
+ //Set a cookie to store the searched keywords
+ $.cookie('textToSearch', expressionInput);
+
+
+ if (expressionInput.length < 1) {
+
+ // expression is invalid
+ alert(txt_enter_at_least_1_char);
+ // reactive la fenetre de search (utile car cadres)
+ document.ditaSearch_Form.textToSearch.focus();
+ }
+ else {
+
+ // Effectuer la recherche
+ Effectuer_recherche(expressionInput);
+
+ // reactive la fenetre de search (utile car cadres)
+ document.ditaSearch_Form.textToSearch.focus();
+ }
+}
+
+var stemQueryMap = new Array(); // A hashtable which maps stems to query words
+
+/* This function parses the search expression, loads the indices and displays the results*/
+function Effectuer_recherche(expressionInput) {
+
+ /* Display a waiting message */
+ //DisplayWaitingMessage();
+
+ /*data initialisation*/
+ var searchFor = ""; // expression en lowercase et sans les caracte res speciaux
+ //w = new Object(); // hashtable, key=word, value = list of the index of the html files
+ scriptLetterTab = new Scriptfirstchar(); // Array containing the first letter of each word to look for
+ var wordsList = new Array(); // Array with the words to look for
+ var finalWordsList = new Array(); // Array with the words to look for after removing spaces
+ var linkTab = new Array();
+ var fileAndWordList = new Array();
+ var txt_wordsnotfound = "";
+
+
+ /*nqu: expressionInput, la recherche est lower cased, plus remplacement des char speciaux*/
+ searchFor = expressionInput.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/\.|%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, "").replace(/_di_/g, "%24_");
+
+ searchFor = searchFor.replace(/ +/g, " ");
+ searchFor = searchFor.replace(/ $/, "").replace(/^ /, "");
+
+ wordsList = searchFor.split(" ");
+ wordsList.sort();
+
+ //set the tokenizing method
+ if(typeof indexerLanguage != "undefined" && (indexerLanguage=="zh" || indexerLanguage=="ja" ||indexerLanguage=="ko")){
+ useCJKTokenizing=true;
+ } else {
+ useCJKTokenizing=false;
+ }
+ //If Lucene CJKTokenizer was used as the indexer, then useCJKTokenizing will be true. Else, do normal tokenizing.
+ // 2-gram tokenizinghappens in CJKTokenizing,
+ if(useCJKTokenizing){
+ finalWordsList = cjkTokenize(wordsList);
+ } else {
+ finalWordsList = tokenize(wordsList);
+ }
+
+ //load the scripts with the indices: the following lines do not work on the server. To be corrected
+ /*if (IEBrowser) {
+ scriptsarray = loadTheIndexScripts (scriptLetterTab);
+ } */
+
+ /**
+ * Compare with the indexed words (in the w[] array), and push words that are in it to tempTab.
+ */
+ var tempTab = new Array();
+ for (var t in finalWordsList) {
+ if (w[finalWordsList[t].toString()] == undefined) {
+ txt_wordsnotfound += finalWordsList[t] + " ";
+ } else {
+ tempTab.push(finalWordsList[t]);
+ }
+ }
+ finalWordsList = tempTab;
+
+ if (finalWordsList.length) {
+
+ //search 'and' and 'or' one time
+ fileAndWordList = SortResults(finalWordsList);
+
+ var cpt = fileAndWordList.length;
+ for (var i = cpt - 1; i >= 0; i--) {
+ if (fileAndWordList[i] != undefined) {
+ linkTab.push("
" + "Your search returned no results for " + "" + txt_wordsnotfound + "" + "
";
+ }
+ //alert(results);
+ document.getElementById('searchResults').innerHTML = results;
+}
+
+function tokenize(wordsList){
+ var stemmedWordsList = new Array(); // Array with the words to look for after removing spaces
+ var cleanwordsList = new Array(); // Array with the words to look for
+ for(var j in wordsList){
+ var word = wordsList[j];
+ if(typeof stemmer != "undefined" ){
+ stemQueryMap[stemmer(word)] = word;
+ } else {
+ stemQueryMap[word] = word;
+ }
+ }
+ //stemmedWordsList is the stemmed list of words separated by spaces.
+ for (var t in wordsList) {
+ wordsList[t] = wordsList[t].replace(/(%22)|^-/g, "");
+ if (wordsList[t] != "%20") {
+ scriptLetterTab.add(wordsList[t].charAt(0));
+ cleanwordsList.push(wordsList[t]);
+ }
+ }
+
+ if(typeof stemmer != "undefined" ){
+ //Do the stemming using Porter's stemming algorithm
+ for (var i = 0; i < cleanwordsList.length; i++) {
+ var stemWord = stemmer(cleanwordsList[i]);
+ stemmedWordsList.push(stemWord);
+ }
+ } else {
+ stemmedWordsList = cleanwordsList;
+ }
+ return stemmedWordsList;
+}
+
+//Invoker of CJKTokenizer class methods.
+function cjkTokenize(wordsList){
+ var allTokens= new Array();
+ var notCJKTokens= new Array();
+ var j=0;
+ for(j=0;j";
+ return this.input.substring(this.offset,this.offset+2);
+ }
+
+ function getAllTokens(){
+ while(this.incrementToken()){
+ var tmp = this.tokenize();
+ this.tokens.push(tmp);
+ }
+ return this.unique(this.tokens);
+// document.getElementById("content").innerHTML += tokens+" ";
+// document.getElementById("content").innerHTML += " dada"+sortedTokens+" ";
+// console.log(tokens.length+"dsdsds");
+ /*for(i=0;idada"+un[i]+"- "+stems[i]+" "+ ss;
+ document.getElementById("content").innerHTML += " "+sortedTokens[i];
+ }*/
+ }
+
+ function unique(a)
+ {
+ var r = new Array();
+ o:for(var i = 0, n = a.length; i < n; i++)
+ {
+ for(var x = 0, y = r.length; x < y; x++)
+ {
+ if(r[x]==a[i]) continue o;
+ }
+ r[r.length] = a[i];
+ }
+ return r;
+ }
+}
+
+
+/* Scriptfirstchar: to gather the first letter of index js files to upload */
+function Scriptfirstchar() {
+ this.strLetters = "";
+ this.add = addLettre;
+}
+
+function addLettre(caract) {
+
+ if (this.strLetters == 'undefined') {
+ this.strLetters = caract;
+ } else if (this.strLetters.indexOf(caract) < 0) {
+ this.strLetters += caract;
+ }
+
+ return 0;
+}
+/* end of scriptfirstchar */
+
+/*main loader function*/
+/*tab contains the first letters of each word looked for*/
+function loadTheIndexScripts(tab) {
+
+ //alert (tab.strLetters);
+ var scriptsarray = new Array();
+
+ for (var i = 0; i < tab.strLetters.length; i++) {
+
+ scriptsarray[i] = "..\/search" + "\/" + tab.strLetters.charAt(i) + ".js";
+ }
+ // add the list of html files
+ i++;
+ scriptsarray[i] = "..\/search" + "\/" + htmlfileList;
+
+ //debug
+ for (var t in scriptsarray) {
+ //alert (scriptsarray[t]);
+ }
+
+ tab = new ScriptLoader();
+ for (t in scriptsarray) {
+ tab.add(scriptsarray[t]);
+ }
+ tab.load();
+ //alert ("scripts loaded");
+ return (scriptsarray);
+}
+
+/* ScriptLoader: to load the scripts and wait that it's finished */
+function ScriptLoader() {
+ this.cpt = 0;
+ this.scriptTab = new Array();
+ this.add = addAScriptInTheList;
+ this.load = loadTheScripts;
+ this.onScriptLoaded = onScriptLoadedFunc;
+}
+
+function addAScriptInTheList(scriptPath) {
+ this.scriptTab.push(scriptPath);
+}
+
+function loadTheScripts() {
+ var script;
+ var head;
+
+ head = document.getElementsByTagName('head').item(0);
+
+ //script = document.createElement('script');
+
+ for (var el in this.scriptTab) {
+ //alert (el+this.scriptTab[el]);
+ script = document.createElement('script');
+ script.src = this.scriptTab[el];
+ script.type = 'text/javascript';
+ script.defer = false;
+
+ head.appendChild(script);
+ }
+
+}
+
+function onScriptLoadedFunc(e) {
+ e = e || window.event;
+ var target = e.target || e.srcElement;
+ var isComplete = true;
+ if (typeof target.readyState != undefined) {
+
+ isComplete = (target.readyState == "complete" || target.readyState == "loaded");
+ }
+ if (isComplete) {
+ ScriptLoader.cpt++;
+ if (ScriptLoader.cpt == ScriptLoader.scripts.length) {
+ ScriptLoader.onLoadComplete();
+ }
+ }
+}
+
+/*
+function onLoadComplete() {
+ alert("loaded !!");
+} */
+
+/* End of scriptloader functions */
+
+// Array.unique( strict ) - Remove duplicate values
+function unique(tab) {
+ var a = new Array();
+ var i;
+ var l = tab.length;
+
+ if (tab[0] != undefined) {
+ a[0] = tab[0];
+ }
+ else {
+ return -1
+ }
+
+ for (i = 1; i < l; i++) {
+ if (indexof(a, tab[i], 0) < 0) {
+ a.push(tab[i]);
+ }
+ }
+ return a;
+}
+function indexof(tab, element, begin) {
+ for (var i = begin; i < tab.length; i++) {
+ if (tab[i] == element) {
+ return i;
+ }
+ }
+ return -1;
+
+}
+/* end of Array functions */
+
+
+/*
+ Param: mots= list of words to look for.
+ This function creates an hashtable:
+ - The key is the index of a html file which contains a word to look for.
+ - The value is the list of all words contained in the html file.
+
+ Return value: the hashtable fileAndWordList
+ */
+function SortResults(mots) {
+
+ var fileAndWordList = new Object();
+ if (mots.length == 0) {
+ return null;
+ }
+
+ for (var t in mots) {
+ // get the list of the indices of the files.
+ var listNumerosDesFicStr = w[mots[t].toString()];
+ //alert ("listNumerosDesFicStr "+listNumerosDesFicStr);
+ var tab = listNumerosDesFicStr.split(",");
+
+ //for each file (file's index):
+ for (var t2 in tab) {
+ var temp = tab[t2].toString();
+ if (fileAndWordList[temp] == undefined) {
+
+ fileAndWordList[temp] = "" + mots[t];
+ } else {
+
+ fileAndWordList[temp] += "," + mots[t];
+ }
+ }
+ }
+
+ var fileAndWordListValuesOnly = new Array();
+
+ // sort results according to values
+ var temptab = new Array();
+ for (t in fileAndWordList) {
+ tab = fileAndWordList[t].split(',');
+
+ var tempDisplay = new Array();
+ for (var x in tab) {
+ if(stemQueryMap[tab[x]] != undefined){
+ tempDisplay.push(stemQueryMap[tab[x]]); //get the original word from the stem word.
+ } else {
+ tempDisplay.push(tab[x]); //no stem is available. (probably a CJK language)
+ }
+ }
+ var tempDispString = tempDisplay.join(", ");
+
+ temptab.push(new resultPerFile(t, fileAndWordList[t], tab.length, tempDispString));
+ fileAndWordListValuesOnly.push(fileAndWordList[t]);
+ }
+
+
+ //alert("t"+fileAndWordListValuesOnly.toString());
+
+ fileAndWordListValuesOnly = unique(fileAndWordListValuesOnly);
+ fileAndWordListValuesOnly = fileAndWordListValuesOnly.sort(compare_nbMots);
+ //alert("t: "+fileAndWordListValuesOnly.join(';'));
+
+ var listToOutput = new Array();
+
+ for (var j in fileAndWordListValuesOnly) {
+ for (t in temptab) {
+ if (temptab[t].motsliste == fileAndWordListValuesOnly[j]) {
+ if (listToOutput[j] == undefined) {
+ listToOutput[j] = new Array(temptab[t]);
+ } else {
+ listToOutput[j].push(temptab[t]);
+ }
+ }
+ }
+ }
+ return listToOutput;
+}
+
+function resultPerFile(filenb, motsliste, motsnb, motslisteDisplay) {
+ this.filenb = filenb;
+ this.motsliste = motsliste;
+ this.motsnb = motsnb;
+ this.motslisteDisplay= motslisteDisplay;
+}
+
+function compare_nbMots(s1, s2) {
+ var t1 = s1.split(',');
+ var t2 = s2.split(',');
+ //alert ("s1:"+t1.length + " " +t2.length)
+ if (t1.length == t2.length) {
+ return 0;
+ } else if (t1.length > t2.length) {
+ return 1;
+ } else {
+ return -1;
+ }
+ //return t1.length - t2.length);
+}
\ No newline at end of file
diff --git a/installer/4/uk/content/search/punctuation.props b/installer/4/uk/content/search/punctuation.props
new file mode 100644
index 00000000..d3e3fcd2
--- /dev/null
+++ b/installer/4/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/4/uk/content/search/stemmers/de_stemmer.js b/installer/4/uk/content/search/stemmers/de_stemmer.js
new file mode 100644
index 00000000..7ff3822a
--- /dev/null
+++ b/installer/4/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/4/uk/content/search/stemmers/en_stemmer.js b/installer/4/uk/content/search/stemmers/en_stemmer.js
new file mode 100644
index 00000000..f58012f2
--- /dev/null
+++ b/installer/4/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/4/uk/content/search/stemmers/fr_stemmer.js b/installer/4/uk/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 00000000..34f97431
--- /dev/null
+++ b/installer/4/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
+
+
+
+ Рівень безпеки
diff --git a/installer/4/uk/content/selectCountry.html b/installer/4/uk/content/selectCountry.html
new file mode 100644
index 00000000..8df2e479
--- /dev/null
+++ b/installer/4/uk/content/selectCountry.html
@@ -0,0 +1,53 @@
+
+
+
+
+ Вибір країни і регіону
Виберіть країну або регіон. Ваш вибір буде важливим для всіх типів
+параметрів локалізації системи, зокрема вибору валюти та домену керування
+бездротовим зв’язком. Помилковий вибір може призвести до неможливості
+використання бездротового зв’язку.
Якщо вашої країни немає у списку, натисніть кнопку Інші
+країни і виберіть країну або регіон за допомогою вікна, яке буде
+відкрито.
Примітка
Якщо пункт вашої країни є лише у списку Інші країни
+може здатися, що вибрано країну з першого списку. Будь ласка, не зважайте на
+це, DrakX вже врахував ваш правильний вибір.
Спосіб введення
За допомогою вікна Інші країни ви також можете вибрати
+спосіб введення (за допомогою нижньої частини списку). Способи введення
+надають змогу користувачам вводити символи запису східних мов (китайської,
+японської, корейської тощо). Типовим способом введення на DVD з Mageia та
+портативних образах системи для Африки/Індії та Азії є IBus. Для локалей
+азійських та африканських країн IBus буде визначено типовим способом
+введення, отже користувачам не доведеться налаштовувати нічого вручну. Інші
+способи введення (SCIM, GCIN, HIME тощо), які надають користувачам подібні
+можливості, можна встановити, якщо перед вибором пакунків було додано
+сховища пакунків HTTP/FTP.
Примітка
Якщо спосіб введення потрібен вам після встановлення системи, ви можете
+отримати доступ до нього після завантаження встановленої системи за
+допомогою пункту меню «Налаштувати ваш комп’ютер» -> «Система» або
+запуску localedrake від імені користувача root.
Цим варіантом слід скористатися, якщо ви хочете встановити
+Mageia з нуля.
Оновити
Якщо на вашому комп’ютері встановлено одну або декілька операційних систем
+Mageia, програма для встановлення надасть вам
+змогу оновити одну зі встановлених систем до найсвіжішої версії.
Застереження
Командою із забезпечення якості дистрибутива виконано належне тестування
+лише оновлення з попередньої версії Mageia, підтримку якої ще не
+завершено. Якщо ви хочете оновити версію Mageia, термін підтримки
+якої вже вичерпано, вам варто виконати звичайну процедуру встановлення з
+початку, зберігши при цьому вміст розділу /home.
Примітка
Якщо протягом процедури встановлення ви вирішите припинити встановлення, ви
+можете перезавантажити комп’ютер. Втім, вам слід ретельно обдумати ваші
+дії. Після форматування розділу або початку процедури встановлення оновлень
+ваш комп’ютер перебуватиме у проміжному стані. Перезавантаження може
+призвести до неможливості користування системою. Якщо, всупереч цим
+попередженням, ви хочете перезавантажити систему, перейдіть у текстовий
+термінал натисканням комбінації цих трьох клавіш: Alt Ctrl
+F2 одночасно. Після цього, натисніть комбінацію клавіш
+Alt Ctrl Delete одночасно, щоб перезавантажити
+комп’ютер.
Підказка
Якщо ви виявите, що забули встановити пакунки додаткової мови, ви можете
+повернутися зі сторінки «Встановлення або оновлення» до сторінки вибору мови
+натисканням комбінації клавіш Alt Ctrl
+Home. Не робіть цього під час наступних
+кроків встановлення.
DrakX автоматично вибирає відповідну розкладку клавіатури до вибраної вами
+мови. Якщо у списку програми не виявиться відповідної розкладки, буде
+використано типову американську розкладку.
Переконайтеся, що програма зробила правильний вибір, або виберіть іншу
+розкладку клавіатури. Якщо ви не можете визначитися з потрібною вам
+розкладкою, ознайомтеся з документацією до вашого комп’ютера або надішліть
+запит до його виробника. Крім того, на деяких з клавіатур можна знайти
+позначку, яка містить дані щодо розкладки клавіатури. Також корисним може
+бути ознайомлення із вмістом сторінки: uk.wikipedia.org/wiki/Розкладка_клавіатури.
Якщо пункту вашої клавіатури не буде у показаному списку, натисніть кнопку
+Ще для ознайомлення з повним списком, з якого ви
+можете вибрати модель клавіатури.
Застереження
Після вибору моделі клавіатури за допомогою діалогового вікна
+Ще ви повернетеся до першого діалогового вікна вибору
+клавіатури, у якому пункт клавіатури залишиться попереднім. Не зважайте на
+це: засобу встановлення вже повідомлено, що ви вибрали належну клавіатури з
+повного списку.
Якщо вами було вибрано розкладку з нелатинськими символами, програма покаже
+додаткове діалогове вікно, за допомогою якого ви зможете визначитися зі
+способом перемикання між латинською і нелатинською розкладками.
Виберіть бажану мову інтерфейсу системи. Для цього спочатку розгорніть
+список країн вашого континенту. Mageia
+використовуватиме вибрану вами мову під час встановлення та у вже
+встановленій системі.
Якщо у вашій системі буде використовуватися декілька мов (вами або іншими
+користувачами), натисніть кнопку Декілька мов , щоб
+додати їх. Після встановлення додати підтримку мов буде доволі складно.
Застереження
Навіть якщо вами було вибрано декілька мов, вам слід слід спочатку вибрати
+одну з них як основну мову сторінок програми для встановлення. Крім того, цю
+мову буде позначено і у вікні вибору декількох мов.
Якщо розкладка вашої клавіатури не збігається з розкладкою, що
+використовується для бажаної мови, варто також встановити мовні пакунки для
+мови, пов’язаної з вибраною розкладкою.
Типово, у Mageia використовується кодування UTF-8 (Unicode). Це кодування
+можна вимкнути за допомогою вікна вибору декількох мов, якщо вам наперед
+відомо, що Unicode є несумісним з вашою мовою. Вимикання UTF-8
+стосуватиметься всіх встановлених мов.
Змінити мову інтерфейсу системи після встановлення можна за допомогою Центру
+керування Mageia (Система -> Налаштувати локалізацію системи).
Якщо вам потрібні інші параметри роботи завантажувача, ніж ті, які було
+вибрано автоматично програмою для встановлення системи, ви можете змінити їх
+за допомогою цієї сторінки.
Ймовірно, ви вже користувалися якоюсь операційною системою на вашому
+комп’ютері. Якщо це так, вам слід визначитися, має бути додано пункт Mageia
+до меню поточного завантажувача, чи Mageia має створити власний
+завантажувач.
Підказка
Графічні меню Mageia виглядає чудово. :)
Користування завантажувачем Mageia
Типово, Mageia записує новий завантажувач GRUB (застарілу версію) до MBR
+(основного запису завантаження) першого диска вашого комп’ютера. Якщо на
+диску вже було встановлено операційні системи, Mageia спробує додати пункти
+цих операційних систем до нового меню завантаження Mageia.
У новій версії Mageia ви зможете скористатися завантажувачем GRUB2 на додачу
+до застарілої версії GRUB та Lilo.
Застереження
Операційні системи Linux, у яких використовується завантажувач GRUB2, у
+поточній версії не розпізнаються і не підтримуються типовим завантажувачем
+GRUB (застарілої версії).
Найкращим вирішенням цієї проблеми є використання завантажувача
+GRUB2. Наказати системі використовувати саме цей завантажувач можна на
+сторінці «Резюме» під час встановлення операційної системи.
Користування вже встановленим завантажувачем
Якщо ви вирішите скористатися вже встановленим завантажувачем, не забудьте
+зупинитися на сторінці резюме під час встановлення і натиснути у розділі
+«Завантажувач» кнопку Налаштувати , за допомогою якої
+ви зможете змінити місце встановлення завантажувача.
Не вибирайте пристрій, наприклад «sda», інакше вже створений запис MBR буде
+перезаписано. Вам слід вибрати кореневий розділ, який було вибрано під час
+кроку розподілу диска на розділи, наприклад «sda7».
Якщо бути точним, sda — це пристрій, а sda7 — розділ на пристрої.
Підказка
Перейдіть до tty2 натисканням комбінації клавіш Ctrl+Alt+F2 і віддайте
+команду df щоб визначити розташування вашого розділу
+/ (кореневого каталогу). Повернутися до вікна засобу
+встановлення можна за допомогою натискання комбінації клавіш Ctrl+Alt+F7.
Повний перелік кроків додавання пункту операційної системи Mageia до меню
+вже встановленого завантажувача не є предметом цієї довідкової
+сторінки. Втім, здебільшого, ці кроки пов’язано з запуском відповідної
+програми встановлення завантажувача, яка має виявити і додати пункт системи
+у автоматичному режимі. Відповідні пояснення має бути наведено у
+документації до іншої операційної системи.
Додаткові параметри завантажувача
Якщо об’єм на диску з розділом /, що містить каталог
+/tmp, є дуже обмеженим, натисніть кнопку
+Додатково і позначте пункт Очищати /tmp при
+кожному перезавантаженні. Це допоможе зекономити трохи місця.
diff --git a/installer/4/uk/content/setupBootloaderAddEntry.html b/installer/4/uk/content/setupBootloaderAddEntry.html
new file mode 100644
index 00000000..e2cea226
--- /dev/null
+++ b/installer/4/uk/content/setupBootloaderAddEntry.html
@@ -0,0 +1,42 @@
+
+
+
+
+ Додавання пункту меню завантаження та внесення змін у такі пункти
Додавання пункту меню завантаження та внесення змін у такі пункти
Додавання пункту меню завантаження та внесення змін у такі пункти
Щоб додати запис або внести зміни у позначений запис, натисніть відповідну
+кнопку на сторінці Налаштування завантажувача. У
+відповідь буде показано вікно редагування.
Деякі з дій можна виконувати нічим не ризикуючи. До таких дій належить зміна
+мітки запису або позначення типового запису у списку.
Ви можете додати до запису належний номер версії або повністю змінити назву
+запису.
Типовий пункт — це пункт операційної системи, яка завантажується, якщо
+користувачем не буде зроблено іншого вибору під час показу меню
+завантаження.
Застереження
Редагування інших параметрів може призвести до неможливості завантаження
+системи. Будь ласка, не експериментуйте з цими параметрами, якщо вам
+достеменно невідоме їхнє призначення.
Зазвичай DrakX визначає параметри дисків правильно. Втім, якщо ви маєте
+справу із застарілим дисковим контролером SCSI, можливі помилки, через які
+програма не зможе встановити потрібних драйверів.
Якщо вам трапився саме такий контролер, вам доведеться вручну повідомити
+DrakX, з яким диском SCSI доведеться мати справу.
Після цього, DrakX зможе налаштувати систему на роботу з дисками належним
+чином.
На цій сторінці буде показано назву драйвера, який інструмент встановлення
+вибрав для вашої звукової картки. Цим драйвером буде типовий драйвер, якщо
+такий передбачено для картки.
+
Типовий драйвер має працювати без проблем. Втім, якщо після встановлення у
+вас виникли проблеми зі звуком, віддайте команду
+draksound або запустіть відповідний модуль за допомогою
+Центру керування Mageia: виберіть сторінку Обладнання і
+натисніть пункт Налаштування звуку у верхній правій
+частині вікна.
+
Після цього у вікні draksound або інструмента «Налаштування звуку» натисніть
+пункт Додатково, а потім кнопку Вирішення
+проблем. У відповідь буде показано варті уваги поради щодо
+вирішення проблеми.
+
Додатково
Кнопкою Додатково під час встановлення варто
+користуватися, якщо для картки не передбачено типового драйвера або якщо
+існує декілька драйверів, і ви певні, що засобом встановлення вибрано
+помилковий драйвер.
+
У цьому випадку, ви можете вибрати інший драйвер після натискання кнопки
+Дозвольте мені підібрати драйвер.
+