/*
 * Ukrainian resources for WLDAP32
 *
 * Copyright 2005 Hans Leidekker
 *
 * Copyright 2010 Igor 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 "windef.h"

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

LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT

STRINGTABLE DISCARDABLE
{
    0 "Успіх"
    1 "Помилка операції"
    2 "Помилка протоколу"
    3 "Перевищено обмеження в часі"
    4 "Перевищено обмеження в розмірі"
    5 "Порівняння невірне"
    6 "Порівняння вірне"
    7 "Метод авторизації не підтримується"
    8 "Потрібна тверда авторизація"
    9 "Referral (v2)"
    10 "Referral"
    11 "Перевищено обмеження адміністрування"
    12 "Unavailable Critical Extension"
    13 "Потрібна конфіденційність"
    14 ""
    15 ""
    16 "Немає такої властивості"
    17 "Невизначений тип"
    18 "Inappropriate Matching"
    19 "Constraint Violation"
    20 "Всастивість або значення існує"
    21 "Неправильний синтакс"
    22 ""
    23 ""
    24 ""
    25 ""
    26 ""
    27 ""
    28 ""
    29 ""
    30 ""
    31 ""
    32 "Немає такого об'єкту"
    33 "Проблема з псевдонімом"
    34 "Невірний DN синтаксис"
    35 "Це лист дерева"
    36 "Проблема звернення до псевдоніму"
    37 ""
    38 ""
    39 ""
    40 ""
    41 ""
    42 ""
    43 ""
    44 ""
    45 ""
    46 ""
    47 ""
    48 "Inappropriate Authentication"
    49 "Невірні облікові дані"
    50 "Недостатньо прав"
    51 "Зайнято"
    52 "Недоступно"
    53 "Unwilling To Perform"
    54 "Виявлено зациклювання"
    55 ""
    56 ""
    57 ""
    58 ""
    59 ""
    60 "Відсутнє управління сортуванням"
    61 "Помилка діапазону індексу"
    62 ""
    63 ""
    64 "Порушення прав найменування"
    65 "Порушення класу об'єкту"
    66 "Не дозволено не налисті дерева"
    67 "Не дозволено на RDN"
    68 "Вже існує"
    69 "Немає режимів класу об'єкту"
    70 "Результати завеликі"
    71 "Впливає на декілька DSA"
    72 ""
    73 ""
    74 ""
    75 ""
    76 ""
    77 ""
    78 ""
    79 ""
    80 "Інший"
    81 "Сервер недоступний"
    82 "Локальна помилка"
    83 "Помилка кодування"
    84 "Помилка декодування"
    85 "Timeout"
    86 "Auth Unknown"
    87 "Помилка фільтру"
    88 "Відмінено користувачем"
    89 "Помилка параметра"
    90 "Немає пам'яті"
    91 "Неможливо підключитись до LDAP сервера"
    92 "Операція не підтримується цією версією протоколу LDAP"
    93 "Вказаний елемент керування не знайдено в повідомленні"
    94 "В повідомленні немає результату"
    95 "More results returned"
    96 "Loop while handling referrals"
    97 "Referral hop limit exceeded"
}
