/*
 * XCOPY - Wine-compatible xcopy program
 * Ukrainian language support
 *
 * Copyright (C) 2007 J. Edmeades
 * Copyright (C) 2010 I. Paliychuk
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "xcopy.h"

/* UTF-8 */
#pragma code_page(65001)

LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT

STRINGTABLE
{
    STRING_INVPARMS, "Невірна кількість параметрів - Введіть xcopy /? для довідки\n"
    STRING_INVPARM,  "Невірний параметр '%s' -  Введіть xcopy /? для довідки\n"
    STRING_PAUSE,    "Натисніть <enter> щоб почати копіювання\n"
    STRING_SIMCOPY,  "%d файл(ів) буде скопійовано\n"
    STRING_COPY,     "%d файл(ів) скопійовано\n"
    STRING_QISDIR,   "'%s' є файлом чи директорією?\n\
                     (F - Файл, D - Директорія)\n"
    STRING_SRCPROMPT,"%s? (Yes|No)\n"
    STRING_OVERWRITE,"Переписати %s? (Yes|No|All)\n"
    STRING_COPYFAIL, "Під час копіювання '%s' в '%s' сталась помилка r/c %d\n"
    STRING_OPENFAIL, "Не вдалось відкрити '%s'\n"
    STRING_READFAIL, "Помилка читання '%s'\n"
    STRING_YES_CHAR, "Y"
    STRING_NO_CHAR,  "N"
    STRING_ALL_CHAR, "A"
    STRING_FILE_CHAR,"F"
    STRING_DIR_CHAR, "D"

    STRING_HELP,
"XCOPY - Копіює файли та дерева директорій за призначенням\n\
\n\
Синтаксис:\n\
XCOPY source [dest] [/I] [/S] [/Q] [/F] [/L] [/W] [/T] [/N] [/U]\n\
\t     [/R] [/H] [/C] [/P] [/A] [/M] [/E] [/D] [/Y] [/-Y]\n\
\n\
Де:\n\
\n\
[/I]  Якщо кінцева папка відсутня і копіюється бiльше одного файлу,\n\
\tто припускається, що мiсце призначення є папкою\n\
[/S]  Копіює директорії та піддиректорії\n\
[/E]  Копіює директорії та піддиректорії, включно з порожніми\n\
[/Q]  Не відображає імена файлів під час копіювання.\n\
[/F]  Під час копіювання відображає повні імена початкових і кінцевих файлів\n\
[/L]  Виводить список файлів, які будуть скопійовані\n\
[/W]  Питає підтвердження перед початком копіювання\n\
[/T]  Створює структуру каталогів але не копіює файли\n\
[/Y]  Придушує запит на підтвердження перезапису файлів\n\
[/-Y] Питає підтвердження на перезапис файлів\n\
[/P]  Питає підтвердження для кожного копійованого файлу\n\
[/N]  Копіює, використовуючи короткі імена\n\
[/U]  Копіює лише ті файли, як вже iснують в кінцевій папці\n\
[/R]  Перезаписує файли, доступні лише для читання\n\
[/H]  Копіює також приховані та системні файли\n\
[/C]  Продовжує роботу, навіть якщо при копіюванні сталася помилка\n\
[/A]  Копіює лише файли з властивістю АРХІВНИЙ\n\
[/M]  Копіює лише файли з властивістю АРХІВНИЙ, видаляє\n\
\tвластивість АРХІВНИЙ\n\
[/D | /D:m-d-y] Копіює лише нові файли або ті, які були змінені після вказаної\n\
дати. Якщо дата не вказана, копіює лише ті файли, які новіші\n\
в початковій папці\n\n"

}
