# #-#-#-#-# desktop.pot (PACKAGE VERSION) #-#-#-#-# # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Yuri Chornoivan , 2013-2015,2021,2023. # Yuri Chornoivan , 2016-2020. # Yuri Chornoivan , 2021. msgid "" msgstr "" "Project-Id-Version: Mageia\n" "Report-Msgid-Bugs-To: http://bugs.mageia.org\n" "POT-Creation-Date: 2025-05-27 22:25+0200\n" "PO-Revision-Date: 2023-07-22 12:23+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != " "11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % " "100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || " "(n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" "X-Qt-Contexts: true\n" "X-Generator: Lokalize 20.12.0\n" #: ../src/mageiawelcome.py:60 msgctxt "mw-ui|" msgid "LTR" msgstr "Правопис" #: ../src/ui.py:73 msgctxt "mw-ui|" msgid "Launching command" msgstr "Запуск програми" #: ../src/ui.py:74 msgctxt "mw-ui|" msgid "This command is not installed" msgstr "Цю програму не встановлено" #: ../src/ui.py:120 ../src/ui.py:130 ../src/ui.py:142 ../src/ui.py:152 msgctxt "mw-ui|" msgid "Application installation" msgstr "Встановлення програм" #. : {} will be replaced with the 'Media sources' translation #: ../src/ui.py:122 #, fuzzy msgctxt "mw-ui|" msgid "Tainted repositories are not enabled. See the '{}' tab." msgstr "Сховища «Tainted» не увімкнено. Див. вкладку «%1»." #: ../src/ui.py:122 ../src/ui.py:132 ../src/ui.py:144 ../src/ui.py:154 #, fuzzy msgid "Media sources" msgstr "Джерела даних" #: ../src/ui.py:122 ../src/ui.py:132 ../src/ui.py:144 ../src/ui.py:154 msgid "Sources" msgstr "" #. : {} will be replaced with the 'Media sources' translation #: ../src/ui.py:132 #, fuzzy msgctxt "mw-ui|" msgid "Nonfree repositories are not enabled. See the '{}' tab." msgstr "Сховища «Nonfree» не увімкнено. Див. вкладку «%1»." #. : {} will be replaced with the 'Media sources' translation #: ../src/ui.py:144 #, fuzzy msgctxt "mw-ui|" msgid "" "Steam needs that Nonfree and Core 32bit repositories are enabled. See the " "'{}' tab." msgstr "" "Для роботи зі Steam слід увімкнути сховища Nonfree і Core для 32-бітової " "архітектури. Див. вкладку «%1»." #. : {} will be replaced with the 'Media sources' translation #: ../src/ui.py:154 #, fuzzy msgctxt "mw-ui|" msgid "Core repositories are not enabled. See the '{}' tab." msgstr "Сховища «Core» не увімкнено. Див. вкладку «%1»." #: ../src/ui.py:201 msgctxt "Links|" msgid "More information" msgstr "Докладніше" #: ../src/ui.py:205 msgctxt "Links|" msgid "Release notes" msgstr "Нотатки щодо випуску" #. : Translate only if the link is to a specific page for your language #: ../src/ui.py:208 msgctxt "Links|" msgid "https://wiki.mageia.org/en/Mageia_9_Release_Notes" msgstr "https://wiki.mageia.org/en/Mageia_9_Release_Notes" #: ../src/ui.py:211 msgctxt "Links|" msgid "Forums" msgstr "Форум" #. : Translate only if the link is to a specific page for your language #: ../src/ui.py:214 msgctxt "Links|" msgid "https://forums.mageia.org/en/" msgstr "https://forums.mageia.org/en/" #: ../src/ui.py:217 msgctxt "Links|" msgid "Community Center" msgstr "Центр спільноти" #: ../src/ui.py:221 msgctxt "Links|" msgid "Errata" msgstr "Відомі помилки" #. : Translate only if the link is to a specific page for your language #: ../src/ui.py:224 msgctxt "Links|" msgid "https://wiki.mageia.org/en/Mageia_9_Errata" msgstr "https://wiki.mageia.org/en/Mageia_9_Errata" #: ../src/ui.py:227 msgctxt "Links|" msgid "Wiki" msgstr "Вікі" #. : Translate only if the link is to a specific page for your language #: ../src/ui.py:230 msgctxt "Links|" msgid "https://wiki.mageia.org/en/Documentation" msgstr "https://wiki.mageia.org/en/Documentation" #: ../src/ui.py:233 msgctxt "Links|" msgid "Contribute" msgstr "Взяти участь" #: ../src/ui.py:237 msgctxt "Links|" msgid "Newcomers Howto" msgstr "Настанови для нових користувачів" #. : Translate only if the link is to a specific page for your language #: ../src/ui.py:240 msgctxt "Links|" msgid "https://wiki.mageia.org/en/Newcomers_start_here" msgstr "https://wiki.mageia.org/en/Newcomers_start_here" #: ../src/ui.py:243 msgctxt "Links|" msgid "Chat Room" msgstr "Спілкування" #. : Translate only if the link is to a specific page for your language #: ../src/ui.py:245 msgctxt "Links|" msgid "ircs://irc.libera.chat:6697/#mageia" msgstr "ircs://irc.libera.chat:6697/#mageia" #: ../src/ui.py:247 msgctxt "Links|" msgid "Donations" msgstr "Фінансова допомога" #: ../src/ui.py:248 ../src/ui.py:256 msgctxt "Links|" msgid "Documentation" msgstr "Документація" #: ../src/ui.py:249 msgctxt "Links|" msgid "Bugs tracker" msgstr "Система стеження за вадами" #: ../src/ui.py:250 msgctxt "Links|" msgid "Join us!" msgstr "Приєднуйтесь!" #: ../src/ui.py:256 msgctxt "Links|" msgid "Support" msgstr "Підтримка" #: ../src/ui.py:256 msgctxt "Links|" msgid "Community" msgstr "Спільнота" #: ../src/ui.py:282 msgctxt "Welcome|" msgid "Welcome" msgstr "Вітаємо" #. : the application title #: ../src/ui.py:289 ../src/ui.py:1324 msgctxt "Welcome|" msgid "Welcome to Mageia" msgstr "Ласкаво просимо до Mageia!" #: ../src/ui.py:291 #, fuzzy msgctxt "Welcome|" msgid "Welcome to Mageia, {}" msgstr "Вітаємо у Mageia, %1" #: ../src/ui.py:301 #, fuzzy msgctxt "Welcome|" msgid "" "We are going to guide you through a few important pieces of information " "and
help you to go further with Mageia.

Now, click on {} " " to go to the first step." msgstr "" "Ми допоможемо вам виконати декілька важливих кроків,
як допоможуть вам " "у подальшій роботі у Mageia.

Натисніть кнопку {}, щоб " "перейти до першого кроку." #: ../src/ui.py:302 msgctxt "Welcome|" msgid "Live mode" msgstr "Портативний режим" #: ../src/ui.py:306 #, fuzzy msgctxt "Welcome|" msgid "" "We are going to guide you through some important steps and help
you " "with the configuration of your newly installed system.

Now, click " "on {} to go to the first step." msgstr "" "Ми допоможемо вам виконати декілька важливих кроків
із налаштовування " "вашої нововстановленої системи.

Натисніть кнопку {}, щоб " "перейти до першого кроку." #: ../src/ui.py:307 ../src/ui.py:318 msgctxt "Sources|" msgid "Media sources" msgstr "Джерела даних" #: ../src/ui.py:325 msgctxt "Sources|" msgid "Configure software repositories" msgstr "Налаштувати сховища програм" #: ../src/ui.py:330 msgctxt "Sources|" msgid "Mageia official repositories contain:" msgstr "У офіційних сховищах пакунків Mageia можна знайти:" #: ../src/ui.py:335 msgctxt "Sources|" msgid "core" msgstr "core" #: ../src/ui.py:338 msgctxt "Sources|" msgid "- the free-open-source packages" msgstr "- вільні програми з відкритим кодом" #: ../src/ui.py:344 msgctxt "Sources|" msgid "nonfree" msgstr "nonfree" #: ../src/ui.py:350 msgctxt "Sources|" msgid "" "- closed-source programs, e.g. Nvidia proprietary drivers, non-free drivers " "for some Wi-Fi cards, etc" msgstr "" "- програми із закритим кодом, наприклад драйвери Nvidia, драйвери до деяких " "карток Wi-Fi тощо" #: ../src/ui.py:358 msgctxt "Sources|" msgid "tainted" msgstr "tainted" #: ../src/ui.py:364 msgctxt "Sources|" msgid "" "- these packages (eg audio and video codecs needed for certain multimedia " "files or commercial DVDs) may infringe on patents or copyright laws in " "certain countries. " msgstr "" "- ці пакунки (наприклад кодеки для відтворення деяких звукових файлів та " "відео або комерційних DVD) можуть накладати обмеження відповідно до патентів " "або законодавства щодо авторських прав у деяких країнах. " #: ../src/ui.py:372 msgctxt "Sources|" msgid "backports" msgstr "backports" #: ../src/ui.py:378 msgctxt "Sources|" msgid "" "- include new versions of packages, and new packages, that do not meet the " "updates policy." msgstr "" "- нові версії пакунків та нові пакунки, які за правилами не може бути " "включено до updates." #: ../src/ui.py:386 ../src/ui.py:399 msgctxt "Sources|" msgid "Note! " msgstr "Примітка! " #: ../src/ui.py:392 #, fuzzy msgctxt "Sources|" msgid "" "If you enabled the online repositories during installation, some media " "sources should be installed already. Otherwise, we will now configure these " "online repositories. If this computer will have access to the Internet, you " "can delete the Local entry from the list of repositories." msgstr "" "Якщо під час встановлення вами було увімкнено сховища пакунків у мережі, " "деякі з джерел програмного забезпечення уже увімкнено. Якщо ви цього не " "зробили, тепер можна налаштувати ці сховища у мережі.\n" "Якщо ваш комп'ютер має доступ до інтернету, ви можете вилучити пункт " "Local зі списку сховищ." #: ../src/ui.py:405 msgctxt "Sources|" msgid "" "Now, please enable or disable the online repositories of your choice: click " "on the Edit software repositories button. Select at least the " "release and updates pair. Debug and Testing are " "for special cases." msgstr "" "Тепер, будь ласка, увімкніть або вимкніть сховища із програмами: натисніть " "кнопку Змінити джерела програмного забезпечення. Виберіть принаймні " "пару сховищ release та updates. Сховища Debug та " "Testing можуть знадобитися далеко не усім." #: ../src/ui.py:410 msgctxt "Sources|" msgid "" "After you have checked and enabled the repositories you need, you can go to " "the next slide." msgstr "" "Після того, як ви позначили і увімкнули пункти потрібних вам сховищ, можете " "перейти до наступної сторінки." #: ../src/ui.py:420 msgctxt "Sources|" msgid "Configure network" msgstr "Налаштувати мережу" #: ../src/ui.py:434 msgctxt "Sources|" msgid "Edit software sources" msgstr "Змінити джерела програмного забезпечення" #. The button in the buttons bar #: ../src/ui.py:454 msgctxt "Updates|" msgid "Update" msgstr "Оновлення" #: ../src/ui.py:460 msgctxt "Updates|" msgid "How Mageia manages updates" msgstr "Як Mageia керує оновленнями" #: ../src/ui.py:468 msgctxt "Updates|" msgid "" "Mageia provides software which may be updated in order to fix bugs or " "security issues. It is highly recommended that you update your system " "regularly. An Update icon will appear in your task bar when new updates are " "available. To run the updates, just click on the icon below and give your " "user password - or use the Software Manager (root password). This is a " "background process and you will be able to use your computer normally during " "the updates." msgstr "" "Mageia надає користувачам програмне забезпечення, яке може оновлюватися для " "виправлення вад або негараздів із захистом. Наполегливо рекомендуємо " "регулярно оновлювати систему. Коли буде випущено оновлення, ви побачите " "піктограму засобу оновлення у лотку на панелі вашої стільниці. Щоб розпочати " "процедуру оновлення, просто натисніть піктограму нижче і вкажіть пароль " "вашого користувача або скористайтеся програмою для керування програмним " "забезпеченням (тут знадобиться пароль адміністратора або root). Процес " "оновлення працює у фоновому режимі — ви зможете користуватися вашим " "комп'ютером у звичний спосіб, доки система оновлюється." #: ../src/ui.py:479 msgctxt "Updates|" msgid "Check system updates" msgstr "Оновити систему" #: ../src/ui.py:493 msgctxt "Updates|" msgid "Advisories of updates (en)" msgstr "Поради щодо оновлення (en)" #. The button in the buttons bar, shortcut for Mageia Control Center #: ../src/ui.py:508 msgctxt "Mcc|" msgid "MCC" msgstr "MCC" #: ../src/ui.py:514 ../src/ui.py:544 msgctxt "Mcc|" msgid "Mageia Control Center" msgstr "Центр керування Mageia" #: ../src/ui.py:520 msgctxt "Mcc|" msgid "Software Management" msgstr "Керування програмами" #: ../src/ui.py:521 msgctxt "Mcc|" msgid "Hardware" msgstr "Обладнання" #: ../src/ui.py:522 msgctxt "Mcc|" msgid "Network and Internet" msgstr "Мережа та інтернет" #: ../src/ui.py:523 msgctxt "Mcc|" msgid "System" msgstr "Система" #: ../src/ui.py:524 msgctxt "Mcc|" msgid "Network Sharing" msgstr "Спільний доступ" #: ../src/ui.py:525 msgctxt "Mcc|" msgid "Local Disks" msgstr "Локальні диски" #: ../src/ui.py:526 msgctxt "Mcc|" msgid "Security" msgstr "Безпека" #: ../src/ui.py:527 msgctxt "Mcc|" msgid "Boot" msgstr "Завантаження" #: ../src/ui.py:533 msgctxt "Mcc|" msgid "" "Mageia Control Center (aka drakconf) is a set of tools to help you " "configure your system." msgstr "" "Центр керування Mageia (або drakconf) є набором інструментів, які " "допоможуть вам у налаштуванні вашої системи." #: ../src/ui.py:558 msgctxt "Mcc|" msgid "MCC documentation" msgstr "Документація з MCC" #. : The button in the buttons bar #: ../src/ui.py:571 msgctxt "InstallSoftware|" msgid "Install software" msgstr "Встановлення програм" #: ../src/ui.py:577 msgctxt "InstallSoftware|" msgid "Install and remove software" msgstr "Встановити або вилучити програми" #: ../src/ui.py:585 msgctxt "InstallSoftware|" msgid "" "With Mageia, you will find the software in the media repositories. Mageia " "users simply access these media via one of the Software Managers." msgstr "" "У Mageia програмне забезпечення зберігається у сховищах. Користувачі Mageia " "можуть отримати доступ до його даних за допомогою однієї з програм для " "керування програмним забезпеченням." #. : Normally, this is not to translate #: ../src/ui.py:595 msgctxt "InstallSoftware|" msgid "Rpmdrake" msgstr "Rpmdrake" #. : Normally, this is not to translate #: ../src/ui.py:610 msgctxt "InstallSoftware|" msgid "Dnfdragora" msgstr "Dnfdragora" #: ../src/ui.py:621 msgctxt "InstallSoftware|" msgid "" "The next slide shows a small selection of popular applications - any of " "which may be installed at this point.
" msgstr "" "На наступній сторінці наведено короткий список популярних програм. Ви можете " "встановити будь-які з них вже зараз.
" #: ../src/ui.py:623 ../src/ui.py:625 msgctxt "InstallSoftware|" msgid "You can find a more detailed list here:" msgstr "Докладніший список можна знайти тут:" #: ../src/ui.py:633 msgctxt "InstallSoftware|" msgid "List of applications (wiki)" msgstr "Список програм (вікі)" #: ../src/ui.py:637 msgctxt "InstallSoftware|" msgid "https://wiki.mageia.org/en/List_of_applications" msgstr "https://wiki.mageia.org/en/List_of_applications" #. : The button in the buttons bar #: ../src/ui.py:651 msgctxt "mw-ui|" msgid "Applications" msgstr "Програми" #: ../src/ui.py:661 msgctxt "mw-ui|" msgid "" "Here is a small selection of popular applications - any of which may be " "installed or launched at this point." msgstr "" "Нижче наведено короткий список популярних програм. Ви можете встановити або " "запустити будь-які з них вже зараз." #: ../src/ui.py:664 msgctxt "mw-ui|" msgid "Ensure that you have enabled the Media sources." msgstr "Не забудьте увімкнути Джерела даних." #. : category entries in Applications tab #: ../src/ui.py:677 msgctxt "mw-ui|" msgid "Featured" msgstr "Вибрані" #: ../src/ui.py:678 msgctxt "mw-ui|" msgid "Games" msgstr "Ігри" #: ../src/ui.py:679 msgctxt "mw-ui|" msgid "Internet" msgstr "Інтернет" #: ../src/ui.py:680 msgctxt "mw-ui|" msgid "Video" msgstr "Відео" #: ../src/ui.py:681 msgctxt "mw-ui|" msgid "Audio" msgstr "Звук" #: ../src/ui.py:682 msgctxt "mw-ui|" msgid "Office" msgstr "Офіс" #: ../src/ui.py:683 msgctxt "mw-ui|" msgid "Graphics" msgstr "Графіка" #: ../src/ui.py:684 msgctxt "mw-ui|" msgid "System" msgstr "Система" #: ../src/ui.py:685 msgctxt "mw-ui|" msgid "Programming" msgstr "Програмування" #. : The button in the buttons bar #: ../src/ui.py:774 msgctxt "Configuration|" msgid "Your configuration" msgstr "Ваші налаштування" #: ../src/ui.py:790 msgctxt "Configuration|" msgid "About" msgstr "Про програму" #: ../src/ui.py:802 msgctxt "Configuration|" msgid "About Mageiawelcome" msgstr "Про Mageiawelcome" #. : {0} will be replaced with the release number, {1} with author's names #: ../src/ui.py:804 msgctxt "Configuration|" msgid "Release {0}
Authors : {1}" msgstr "Випуск {0}
Автори: {1}" #: ../src/ui.py:809 msgctxt "Configuration|" msgid "Translators: English is the source language" msgstr "Переклад: Юрій Чорноіван" #. : The button in the buttons bar #: ../src/ui.py:817 msgctxt "Live|" msgid "Live mode" msgstr "Портативний режим" #: ../src/ui.py:824 msgctxt "Live|" msgid "" "This mode allows you to try out Mageia without having to actually install " "it, or make any changes to your computer. However, the Live media also " "includes an Installer, which can be started when booting the media, or after " "booting into Live mode, like now." msgstr "" "Цей варіант надасть вам змогу спробувати Mageia без встановлення на диск і " "внесення змін до системи вашого комп'ютера. Втім, до портативної системи " "також включено засіб встановлення, яким можна скористатися під час " "завантаження портативної або після її завантаження в портативному режимі, як " "зараз." #: ../src/ui.py:834 msgctxt "Live|" msgid "" "Any customization, including installation of additional software, will only " "survive until you reboot the system, unless you have added a persistence " "partition." msgstr "" "Усі налаштовування та встановлене програмне забезпечення не буде збережено " "при наступному перезапуску, якщо вами не було додано постійного розділу на " "портативному носії." #: ../src/ui.py:844 msgctxt "Live|" msgid "Installer documentation" msgstr "Документація із засобу встановлення" #. : the link to the local file can be adapted to your language if the documentation is translated #: ../src/ui.py:849 msgctxt "Live|" msgid "file:///usr/share/doc/mageia/en/draklive/index.html" msgstr "file:///usr/share/doc/mageia/uk/draklive/index.html" #. : The button in the buttons bar #: ../src/ui.py:862 msgctxt "Install|" msgid "Install" msgstr "Встановити" #: ../src/ui.py:869 msgctxt "Install|" msgid "" "Here you can choose to permanently install this Mageia system on your " "computer. Any customizations you have made before launching the installer " "will be included." msgstr "" "Тут ви можете наказати програмі встановити цю систему Mageia на ваш " "комп'ютер. У системі буде відтворено усі налаштовування, які ви внесли до " "неї до запуску засобу встановлення." #: ../src/ui.py:883 msgctxt "Install|" msgid "Launch installation" msgstr "Запустити встановлення" #. the application is not yet installed, we display an Install button #: ../src/ui.py:951 msgctxt "mw-ui|" msgid "Install" msgstr "Встановити" #. there is no command associated, we display it is installed #: ../src/ui.py:956 msgctxt "mw-ui|" msgid "Installed" msgstr "Встановлено" #. display a button for launching command associated #: ../src/ui.py:969 msgctxt "mw-ui|" msgid "Launch" msgstr "Запустити" #: ../src/ui.py:1379 msgctxt "Sources|" msgid "(*) Administrator password is needed." msgstr "(*) Потрібно знати пароль адміністратора." #: ../src/ui.py:1385 msgctxt "mw-ui|" msgid "Show this window at startup" msgstr "Показувати це вікно під час запуску" #: ../src/AppList.py:5 ../src/AppList.py:6 msgctxt "AppList|" msgid "Various Audio Codecs" msgstr "Різноманітні кодеки для звукових даних" #: ../src/AppList.py:7 ../src/AppList.py:8 msgctxt "AppList|" msgid "Various Video Codecs" msgstr "Різноманітні відеокодеки" #: ../src/AppList.py:9 #, fuzzy msgctxt "AppList|" msgid "" "Steam Client (This needs 32-bit repositories enabled (see Media Sources tab)" msgstr "" "Клієнт Steam (потребує вмикання сховищ 32-бітових пакунків, див. вкладку " "«Джерела даних»)" #: ../src/AppList.py:10 msgctxt "AppList|" msgid "3D Real Time Strategy" msgstr "Просторова інтерактивна стратегія" #: ../src/AppList.py:11 msgctxt "AppList|" msgid "Single/Multi-player first person shooter game" msgstr "Гра-стрілялка для одного або декількох гравців" #: ../src/AppList.py:12 msgctxt "AppList|" msgid "Classic 2d jump 'n run sidescroller with Tux " msgstr "Класичний платформер із Туксом" #: ../src/AppList.py:13 msgctxt "AppList|" msgid "Kart racing game featuring Tux and friends" msgstr "Гра у перегони, героями якої є Тукс та його друзі" #: ../src/AppList.py:14 msgctxt "AppList|" msgid "Postnuclear realtime strategy" msgstr "Стратегічна інтерактивна гра у постядерному світі" #: ../src/AppList.py:15 msgctxt "AppList|" msgid "Fantasy turn-based strategy game" msgstr "Стратегічна покрокова гра у вигаданому світі" #: ../src/AppList.py:16 msgctxt "AppList|" msgid "RTS Game of Ancient Warfare" msgstr "Стратегічна гра у стародавні війни" #: ../src/AppList.py:17 msgctxt "AppList|" msgid "A collection of more than 1000 solitaire card games" msgstr "Збірка з понад 1000 пасьянсів" #: ../src/AppList.py:18 msgctxt "AppList|" msgid "3d modeller/renderer" msgstr "Програма для просторового моделювання" #: ../src/AppList.py:19 msgctxt "AppList|" msgid "Painting program" msgstr "Програма для малювання" #: ../src/AppList.py:20 msgctxt "AppList|" msgid "The GNU Image Manipulation Program" msgstr "Програма GNU для роботи із зображеннями" #: ../src/AppList.py:21 msgctxt "AppList|" msgid "Vector graphics editor" msgstr "Редактор векторної графіки" #: ../src/AppList.py:22 msgctxt "AppList|" msgid "Digital photo management application" msgstr "Програма для керування цифровими фотографіями" #: ../src/AppList.py:23 msgctxt "AppList|" msgid "Virtual lighttable and darkroom for photographers" msgstr "Віртуальний монтажний стіл та темна кімната для фотографів" #: ../src/AppList.py:24 msgctxt "AppList|" msgid "Multi-protocol instant messaging client" msgstr "" "Програма для миттєвого обміну повідомленнями із підтримкою багатьох " "протоколів" #: ../src/AppList.py:25 msgctxt "AppList|" msgid "Full-featured graphical ftp/ftps/sftp client" msgstr "Багатий на можливості графічний клієнт ftp/ftps/sftp" #: ../src/AppList.py:26 msgctxt "AppList|" msgid "Next-generation web browser" msgstr "Браузер нового покоління" #: ../src/AppList.py:27 msgctxt "AppList|" msgid "Lightweight but feature rich bittorrent client" msgstr "Невибагливий, але багатий на можливості клієнт bittorrent" #: ../src/AppList.py:28 msgctxt "AppList|" msgid "Fast Webbrowser" msgstr "Швидка програма для роботи у інтернету" #: ../src/AppList.py:29 #, fuzzy msgctxt "AppList|" msgid "E-mailnews and RSS client" msgstr "Клієнт електронної пошти, новин та RSS" #: ../src/AppList.py:30 msgctxt "AppList|" msgid "Fast e-mail client" msgstr "Швидкий клієнт електронної пошти" #: ../src/AppList.py:31 msgctxt "AppList|" msgid "Media Player" msgstr "Програвач" #: ../src/AppList.py:32 msgctxt "AppList|" msgid "A non-linear video editing application" msgstr "Програма для нелінійного відеомонтажу" #: ../src/AppList.py:33 ../src/AppList.py:35 msgctxt "AppList|" msgid "Multimedia player and streamer" msgstr "Програма для відтворення та трансляції мультимедійних даних" #: ../src/AppList.py:34 msgctxt "AppList|" msgid "For converting video to a selection of codecs" msgstr "Для перетворення відео з використанням набору кодеків" #: ../src/AppList.py:36 msgctxt "AppList|" msgid "Media Center" msgstr "Медіацентр" #: ../src/AppList.py:37 msgctxt "AppList|" msgid "Audio Player similar to Winamp" msgstr "Програвач, який подібний до Winamp" #: ../src/AppList.py:38 msgctxt "AppList|" msgid "Modern music player and library organizer" msgstr "Сучасна програма для відтворення та керування фонотекою" #: ../src/AppList.py:39 #, fuzzy msgctxt "AppList|" msgid "An audio file converterCD ripper and replay gain tool" msgstr "" "Програма для перетворення звукових даних, видобування даних з компакт-дисків " "та керування звуком" #: ../src/AppList.py:40 msgctxt "AppList|" msgid "Scientific Python Development Environment​ " msgstr "Середовище для розробки наукових програм мовою Python" #: ../src/AppList.py:41 msgctxt "AppList|" msgid "Lightweight IDE for Qt" msgstr "Невибагливе IDE для Qt" #: ../src/AppList.py:42 msgctxt "AppList|" msgid "IDE for free pascal" msgstr "IDE для Free Pascal" #: ../src/AppList.py:43 msgctxt "AppList|" msgid "Sophisticated cd/dvd burning application" msgstr "Програма для запису компакт-дисків і DVD" #: ../src/AppList.py:44 msgctxt "AppList|" msgid "Write ISO images on USB device" msgstr "Записати образи ISO на диск USB" #: ../src/AppList.py:45 msgctxt "AppList|" msgid "Partition editor" msgstr "Редактор розділів диска" #: ../src/AppList.py:46 msgctxt "AppList|" msgid "Extra community-made background images" msgstr "Додаткові зображення-шпалери від спільноти" #: ../src/AppList.py:47 msgctxt "AppList|" msgid "Clean junk to free disk space and maintain privacy " msgstr "" "Програма для вилучення зайвих даних з метою вивільнення місця та " "забезпечення конфіденційності" #: ../src/AppList.py:48 msgctxt "AppList|" msgid "A printer administration tool" msgstr "Програма для адміністрування принтерів" #: ../src/AppList.py:49 msgctxt "AppList|" msgid "Virtualization software" msgstr "Програми для віртуалізації" #: ../src/AppList.py:49 msgctxt "AppList|" msgid "VirtualBox (only with 64-bit systems)" msgstr "VirtualBox (лише для 64-бітових систем)" #: ../src/AppList.py:50 msgctxt "AppList|" msgid "LibreOffice Spreadsheet Application" msgstr "Електронні таблиці LibreOffice" #: ../src/AppList.py:51 msgctxt "AppList|" msgid "LibreOffice Word Processor Application" msgstr "Текстовий процесор LibreOffice" #: ../src/AppList.py:52 msgctxt "AppList|" msgid "KDE office suite" msgstr "Офісний комплект KDE" #: ../src/AppList.py:53 #, fuzzy msgctxt "AppList|" msgid "Lean and fastbut full-featured word processor" msgstr "Проста і швидка програма для роботи з текстами" #: ../src/AppList.py:54 msgctxt "AppList|" msgid "A full-featured spreadsheet for GNOME" msgstr "Електронні таблиці для GNOME" #: ../src/AppList.py:55 msgctxt "AppList|" msgid "E-book converter and library management" msgstr "Програма для керування електронними книгами" #: ../src/AppList.py:56 msgctxt "AppList|" msgid "Desktop Publishing Program" msgstr "Комп'ютерна видавнича програма" #: ../src/AppList.py:57 msgctxt "AppList|" msgid "Free easy personal accounting for all" msgstr "Вільна і проста у користуванні бухгалтерія для кожного" #: ../src/AppList.py:58 msgctxt "AppList|" msgid "Personal Finance Management Tool" msgstr "Програма для керування особистими фінансами" #: ../src/helpers.py:162 msgctxt "ConfList|" msgid "Congratulations!
You are now running {}" msgstr "Вітаємо!
Ви працюєте у {}" #: ../src/helpers.py:164 msgctxt "ConfList|" msgid "You are using linux kernel: {}" msgstr "Використане вами ядро Linux: {}" #: ../src/helpers.py:167 msgctxt "ConfList|" msgid "Your system architecture is: {}" msgstr "Архітектура вашої системи: {}" #: ../src/helpers.py:171 msgctxt "ConfList|" msgid "You are now using the Desktop: {}" msgstr "Стільничне середовище: {}" #: ../src/helpers.py:173 msgctxt "ConfList|" msgid "Your user id is: {}" msgstr "Ваш ідентифікатор користувача: {}" #: ../src/helpers.py:177 msgctxt "ConfList|" msgid "You are connected to a network through {}" msgstr "Ваш комп'ютер з'єднано із мережею за допомогою {}" #: ../src/helpers.py:181 msgctxt "ConfList|" msgid "You have no network connection" msgstr "Ваш комп'ютер не з'єднано із мережею" #~ msgid "Mageia Welcome|" #~ msgstr "Вітання Mageia" #~ msgid "Mageia Welcome Screen" #~ msgstr "Вітальне вікно Mageia" #~ msgid "Welcome screen for Mageia, that is displayed upon first users boot" #~ msgstr "" #~ "Вікно вітання у Mageia, яке буде показано користувачам під час першого " #~ "входу" #~ msgctxt "app" #~ msgid "Welcome to Mageia" #~ msgstr "Ласкаво просимо до Mageia!" #~ msgctxt "AppList|" #~ msgid "A C++ IDE" #~ msgstr "IDE для C++" #~ msgctxt "AppList|" #~ msgid "IDE for C and C++" #~ msgstr "IDE для C та C++" #~ msgctxt "InstallSoftware|" #~ msgid "You can find a detailed list here:" #~ msgstr "Докладний список можна знайти тут:" #~ msgctxt "InstallSoftware|" #~ msgid "(*) Administrator password is needed" #~ msgstr "(*) Потрібно знати пароль адміністратора" #~ msgctxt "Mcc|" #~ msgid "(*) Administrator password is needed" #~ msgstr "(*) Потрібно знати пароль адміністратора" #~ msgctxt "Updates|" #~ msgid "(*) User password is needed" #~ msgstr "(*) Потрібно знати пароль користувача" #~ msgctxt "Welcome|" #~ msgid "Media sources" #~ msgstr "Джерела даних" #~ msgctxt "mw-ui|" #~ msgid "Media sources" #~ msgstr "Джерела даних" #~ msgctxt "AppList|" #~ msgid "Extensible tool platform and java IDE (64bits only)" #~ msgstr "Інструментальна платформа та IDE для Java (лише 64-бітова)" class="hl kwd">filelist("$phpbb_root_path$src", '', '*'); krsort($filelist); /** * Commented out, as adding the folders produces corrupted archives if ($src_path) { $this->data($src_path, '', true, stat("$phpbb_root_path$src")); } */ foreach ($filelist as $path => $file_ary) { /** * Commented out, as adding the folders produces corrupted archives if ($path) { // Same as for src_path $path = (substr($path, 0, 1) == '/') ? substr($path, 1) : $path; $path = ($path && substr($path, -1) != '/') ? $path . '/' : $path; $this->data("$src_path$path", '', true, stat("$phpbb_root_path$src$path")); } */ foreach ($file_ary as $file) { if (in_array($path . $file, $skip_files)) { continue; } $this->data("$src_path$path$file", file_get_contents("$phpbb_root_path$src$path$file"), false, stat("$phpbb_root_path$src$path$file")); } } } else { // $src does not exist return false; } return true; } /** * Add custom file (the filepath will not be adjusted) */ function add_custom_file($src, $filename) { if (!file_exists($src)) { return false; } $this->data($filename, file_get_contents($src), false, stat($src)); return true; } /** * Add file data */ function add_data($src, $name) { $stat = array(); $stat[2] = 436; //384 $stat[4] = $stat[5] = 0; $stat[7] = strlen($src); $stat[9] = time(); $this->data($name, $src, false, $stat); return true; } /** * Return available methods */ function methods() { $methods = array('.tar'); $available_methods = array('.tar.gz' => 'zlib', '.tar.bz2' => 'bz2', '.zip' => 'zlib'); foreach ($available_methods as $type => $module) { if (!@extension_loaded($module)) { continue; } $methods[] = $type; } return $methods; } } /** * Zip creation class from phpMyAdmin 2.3.0 (c) Tobias Ratschiller, Olivier Mller, Loc Chapeaux, * Marc Delisle, http://www.phpmyadmin.net/ * * Zip extraction function by Alexandre Tedeschi, alexandrebr at gmail dot com * * Modified extensively by psoTFX and DavidMJ, (c) phpBB Group, 2003 * * Based on work by Eric Mueller and Denis125 * Official ZIP file format: http://www.pkware.com/appnote.txt * * @package phpBB3 */ class compress_zip extends compress { var $datasec = array(); var $ctrl_dir = array(); var $eof_cdh = "\x50\x4b\x05\x06\x00\x00\x00\x00"; var $old_offset = 0; var $datasec_len = 0; /** * Constructor */ function compress_zip($mode, $file) { $this->fp = @fopen($file, $mode . 'b'); if (!$this->fp) { trigger_error('Unable to open file ' . $file . ' [' . $mode . 'b]'); } } /** * Convert unix to dos time */ function unix_to_dos_time($time) { $timearray = (!$time) ? getdate() : getdate($time); if ($timearray['year'] < 1980) { $timearray['year'] = 1980; $timearray['mon'] = $timearray['mday'] = 1; $timearray['hours'] = $timearray['minutes'] = $timearray['seconds'] = 0; } return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1); } /** * Extract archive */ function extract($dst) { // Loop the file, looking for files and folders $dd_try = false; rewind($this->fp); while (!feof($this->fp)) { // Check if the signature is valid... $signature = fread($this->fp, 4); switch ($signature) { // 'Local File Header' case "\x50\x4b\x03\x04": // Lets get everything we need. // We don't store the version needed to extract, the general purpose bit flag or the date and time fields $data = unpack("@4/vc_method/@10/Vcrc/Vc_size/Vuc_size/vname_len/vextra_field", fread($this->fp, 26)); $file_name = fread($this->fp, $data['name_len']); // filename if ($data['extra_field']) { fread($this->fp, $data['extra_field']); // extra field } $target_filename = "$dst$file_name"; if (!$data['uc_size'] && !$data['crc'] && substr($file_name, -1, 1) == '/') { if (!is_dir($target_filename)) { $str = ''; $folders = explode('/', $target_filename); // Create and folders and subfolders if they do not exist foreach ($folders as $folder) { $folder = trim($folder); if (!$folder) { continue; } $str = (!empty($str)) ? $str . '/' . $folder : $folder; if (!is_dir($str)) { if (!@mkdir($str, 0777)) { trigger_error("Could not create directory $folder"); } phpbb_chmod($str, CHMOD_READ | CHMOD_WRITE); } } } // This is a directory, we are not writting files continue; } else { // Some archivers are punks, they don't include folders in their archives! $str = ''; $folders = explode('/', pathinfo($target_filename, PATHINFO_DIRNAME)); // Create and folders and subfolders if they do not exist foreach ($folders as $folder) { $folder = trim($folder); if (!$folder) { continue; } $str = (!empty($str)) ? $str . '/' . $folder : $folder; if (!is_dir($str)) { if (!@mkdir($str, 0777)) { trigger_error("Could not create directory $folder"); } phpbb_chmod($str, CHMOD_READ | CHMOD_WRITE); } } } if (!$data['uc_size']) { $content = ''; } else { $content = fread($this->fp, $data['c_size']); } $fp = fopen($target_filename, "w"); switch ($data['c_method']) { case 0: // Not compressed fwrite($fp, $content); break; case 8: // Deflate fwrite($fp, gzinflate($content, $data['uc_size'])); break; case 12: // Bzip2 fwrite($fp, bzdecompress($content)); break; } fclose($fp); break; // We hit the 'Central Directory Header', we can stop because nothing else in here requires our attention // or we hit the end of the central directory record, we can safely end the loop as we are totally finished with looking for files and folders case "\x50\x4b\x01\x02": // This case should simply never happen.. but it does exist.. case "\x50\x4b\x05\x06": break 2; // 'Packed to Removable Disk', ignore it and look for the next signature... case 'PK00': continue 2; // We have encountered a header that is weird. Lets look for better data... default: if (!$dd_try) { // Unexpected header. Trying to detect wrong placed 'Data Descriptor'; $dd_try = true; fseek($this->fp, 8, SEEK_CUR); // Jump over 'crc-32'(4) 'compressed-size'(4), 'uncompressed-size'(4) continue 2; } trigger_error("Unexpected header, ending loop"); break 2; } $dd_try = false; } } /** * Close archive */ function close() { // Write out central file directory and footer ... if it exists if (sizeof($this->ctrl_dir)) { fwrite($this->fp, $this->file()); } fclose($this->fp); } /** * Create the structures ... note we assume version made by is MSDOS */ function data($name, $data, $is_dir = false, $stat) { $name = str_replace('\\', '/', $name); $hexdtime = pack('V', $this->unix_to_dos_time($stat[9])); if ($is_dir) { $unc_len = $c_len = $crc = 0; $zdata = ''; $var_ext = 10; } else { $unc_len = strlen($data); $crc = crc32($data); $zdata = gzdeflate($data); $c_len = strlen($zdata); $var_ext = 20; // Did we compress? No, then use data as is if ($c_len >= $unc_len) { $zdata = $data; $c_len = $unc_len; $var_ext = 10; } } unset($data); // If we didn't compress set method to store, else deflate $c_method = ($c_len == $unc_len) ? "\x00\x00" : "\x08\x00"; // Are we a file or a directory? Set archive for file $attrib = ($is_dir) ? 16 : 32; // File Record Header $fr = "\x50\x4b\x03\x04"; // Local file header 4bytes $fr .= pack('v', $var_ext); // ver needed to extract 2bytes $fr .= "\x00\x00"; // gen purpose bit flag 2bytes $fr .= $c_method; // compression method 2bytes $fr .= $hexdtime; // last mod time and date 2+2bytes $fr .= pack('V', $crc); // crc32 4bytes $fr .= pack('V', $c_len); // compressed filesize 4bytes $fr .= pack('V', $unc_len); // uncompressed filesize 4bytes $fr .= pack('v', strlen($name));// length of filename 2bytes $fr .= pack('v', 0); // extra field length 2bytes $fr .= $name; $fr .= $zdata; unset($zdata); $this->datasec_len += strlen($fr); // Add data to file ... by writing data out incrementally we save some memory fwrite($this->fp, $fr); unset($fr); // Central Directory Header $cdrec = "\x50\x4b\x01\x02"; // header 4bytes $cdrec .= "\x00\x00"; // version made by $cdrec .= pack('v', $var_ext); // version needed to extract $cdrec .= "\x00\x00"; // gen purpose bit flag $cdrec .= $c_method; // compression method $cdrec .= $hexdtime; // last mod time & date $cdrec .= pack('V', $crc); // crc32 $cdrec .= pack('V', $c_len); // compressed filesize $cdrec .= pack('V', $unc_len); // uncompressed filesize $cdrec .= pack('v', strlen($name)); // length of filename $cdrec .= pack('v', 0); // extra field length $cdrec .= pack('v', 0); // file comment length $cdrec .= pack('v', 0); // disk number start $cdrec .= pack('v', 0); // internal file attributes $cdrec .= pack('V', $attrib); // external file attributes $cdrec .= pack('V', $this->old_offset); // relative offset of local header $cdrec .= $name; // Save to central directory $this->ctrl_dir[] = $cdrec; $this->old_offset = $this->datasec_len; } /** * file */ function file() { $ctrldir = implode('', $this->ctrl_dir); return $ctrldir . $this->eof_cdh . pack('v', sizeof($this->ctrl_dir)) . // total # of entries "on this disk" pack('v', sizeof($this->ctrl_dir)) . // total # of entries overall pack('V', strlen($ctrldir)) . // size of central dir pack('V', $this->datasec_len) . // offset to start of central dir "\x00\x00"; // .zip file comment length } /** * Download archive */ function download($filename, $download_name = false) { global $phpbb_root_path; if ($download_name === false) { $download_name = $filename; } $mimetype = 'application/zip'; header('Pragma: no-cache'); header("Content-Type: $mimetype; name=\"$download_name.zip\""); header("Content-disposition: attachment; filename=$download_name.zip"); $fp = @fopen("{$phpbb_root_path}store/$filename.zip", 'rb'); if ($fp) { while ($buffer = fread($fp, 1024)) { echo $buffer; } fclose($fp); } } } /** * Tar/tar.gz compression routine * Header/checksum creation derived from tarfile.pl, (c) Tom Horsley, 1994 * * @package phpBB3 */ class compress_tar extends compress { var $isgz = false; var $isbz = false; var $filename = ''; var $mode = ''; var $type = ''; var $wrote = false; /** * Constructor */ function compress_tar($mode, $file, $type = '') { $type = (!$type) ? $file : $type; $this->isgz = preg_match('#(\.tar\.gz|\.tgz)$#', $type); $this->isbz = preg_match('#\.tar\.bz2$#', $type); $this->mode = &$mode; $this->file = &$file; $this->type = &$type; $this->open(); } /** * Extract archive */ function extract($dst) { $fzread = ($this->isbz && function_exists('bzread')) ? 'bzread' : (($this->isgz && @extension_loaded('zlib')) ? 'gzread' : 'fread'); // Run through the file and grab directory entries while ($buffer = $fzread($this->fp, 512)) { $tmp = unpack('A6magic', substr($buffer, 257, 6)); if (trim($tmp['magic']) == 'ustar') { $tmp = unpack('A100name', $buffer); $filename = trim($tmp['name']); $tmp = unpack('Atype', substr($buffer, 156, 1)); $filetype = (int) trim($tmp['type']); $tmp = unpack('A12size', substr($buffer, 124, 12)); $filesize = octdec((int) trim($tmp['size'])); $target_filename = "$dst$filename"; if ($filetype == 5) { if (!is_dir($target_filename)) { $str = ''; $folders = explode('/', $target_filename); // Create and folders and subfolders if they do not exist foreach ($folders as $folder) { $folder = trim($folder); if (!$folder) { continue; } $str = (!empty($str)) ? $str . '/' . $folder : $folder; if (!is_dir($str)) { if (!@mkdir($str, 0777)) { trigger_error("Could not create directory $folder"); } phpbb_chmod($str, CHMOD_READ | CHMOD_WRITE); } } } } else if ($filesize >= 0 && ($filetype == 0 || $filetype == "\0")) { // Some archivers are punks, they don't properly order the folders in their archives! $str = ''; $folders = explode('/', pathinfo($target_filename, PATHINFO_DIRNAME)); // Create and folders and subfolders if they do not exist foreach ($folders as $folder) { $folder = trim($folder); if (!$folder) { continue; } $str = (!empty($str)) ? $str . '/' . $folder : $folder; if (!is_dir($str)) { if (!@mkdir($str, 0777)) { trigger_error("Could not create directory $folder"); } phpbb_chmod($str, CHMOD_READ | CHMOD_WRITE); } } // Write out the files if (!($fp = fopen($target_filename, 'wb'))) { trigger_error("Couldn't create file $filename"); } phpbb_chmod($target_filename, CHMOD_READ); // Grab the file contents fwrite($fp, ($filesize) ? $fzread($this->fp, ($filesize + 511) &~ 511) : '', $filesize); fclose($fp); } } } } /** * Close archive */ function close() { $fzclose = ($this->isbz && function_exists('bzclose')) ? 'bzclose' : (($this->isgz && @extension_loaded('zlib')) ? 'gzclose' : 'fclose'); if ($this->wrote) { $fzwrite = ($this->isbz && function_exists('bzwrite')) ? 'bzwrite' : (($this->isgz && @extension_loaded('zlib')) ? 'gzwrite' : 'fwrite'); // The end of a tar archive ends in two records of all NULLs (1024 bytes of \0) $fzwrite($this->fp, str_repeat("\0", 1024)); } $fzclose($this->fp); } /** * Create the structures */ function data($name, $data, $is_dir = false, $stat) { $this->wrote = true; $fzwrite = ($this->isbz && function_exists('bzwrite')) ? 'bzwrite' : (($this->isgz && @extension_loaded('zlib')) ? 'gzwrite' : 'fwrite'); $typeflag = ($is_dir) ? '5' : ''; // This is the header data, it contains all the info we know about the file or folder that we are about to archive $header = ''; $header .= pack('a100', $name); // file name $header .= pack('a8', sprintf("%07o", $stat[2])); // file mode $header .= pack('a8', sprintf("%07o", $stat[4])); // owner id $header .= pack('a8', sprintf("%07o", $stat[5])); // group id $header .= pack('a12', sprintf("%011o", $stat[7])); // file size $header .= pack('a12', sprintf("%011o", $stat[9])); // last mod time // Checksum $checksum = 0; for ($i = 0; $i < 148; $i++) { $checksum += ord($header[$i]); } // We precompute the rest of the hash, this saves us time in the loop and allows us to insert our hash without resorting to string functions $checksum += 2415 + (($is_dir) ? 53 : 0); $header .= pack('a8', sprintf("%07o", $checksum)); // checksum $header .= pack('a1', $typeflag); // link indicator $header .= pack('a100', ''); // name of linked file $header .= pack('a6', 'ustar'); // ustar indicator $header .= pack('a2', '00'); // ustar version $header .= pack('a32', 'Unknown'); // owner name $header .= pack('a32', 'Unknown'); // group name $header .= pack('a8', ''); // device major number $header .= pack('a8', ''); // device minor number $header .= pack('a155', ''); // filename prefix $header .= pack('a12', ''); // end // This writes the entire file in one shot. Header, followed by data and then null padded to a multiple of 512 $fzwrite($this->fp, $header . (($stat[7] !== 0 && !$is_dir) ? $data . str_repeat("\0", (($stat[7] + 511) &~ 511) - $stat[7]) : '')); unset($data); } /** * Open archive */ function open() { $fzopen = ($this->isbz && function_exists('bzopen')) ? 'bzopen' : (($this->isgz && @extension_loaded('zlib')) ? 'gzopen' : 'fopen'); $this->fp = @$fzopen($this->file, $this->mode . (($fzopen == 'bzopen') ? '' : 'b') . (($fzopen == 'gzopen') ? '9' : '')); if (!$this->fp) { trigger_error('Unable to open file ' . $this->file . ' [' . $fzopen . ' - ' . $this->mode . 'b]'); } } /** * Download archive */ function download($filename, $download_name = false) { global $phpbb_root_path; if ($download_name === false) { $download_name = $filename; } switch ($this->type) { case '.tar': $mimetype = 'application/x-tar'; break; case '.tar.gz': $mimetype = 'application/x-gzip'; break; case '.tar.bz2': $mimetype = 'application/x-bzip2'; break; default: $mimetype = 'application/octet-stream'; break; } header('Pragma: no-cache'); header("Content-Type: $mimetype; name=\"$download_name$this->type\""); header("Content-disposition: attachment; filename=$download_name$this->type"); $fp = @fopen("{$phpbb_root_path}store/$filename$this->type", 'rb'); if ($fp) { while ($buffer = fread($fp, 1024)) { echo $buffer; } fclose($fp); } } } ?>