/*
 * Hungarian resources for WLDAP32
 *
 * Copyright 2010 Andras Kovacs
 *
 * 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_HUNGARIAN, SUBLANG_DEFAULT

STRINGTABLE
{
    0 "Sikeres"
    1 "Műveleti hiba"
    2 "Protokoll hiba"
    3 "Időkorlát túllépés"
    4 "Méretkorlát túllépés"
    5 "Hasonlítás hamis"
    6 "Hasonlítás igaz"
    7 "Hitelesítési mód nem támogatott"
    8 "erős hitelesítés szükséges"
    9 "Beszámoló (v2)"
    10 "Beszámoló"
    11 "Adminisztrációs korlát túllépés"
    12 "Nem elérhető kritikus kiterjesztés"
    13 "Bizalmasság szükséges"
    14 ""
    15 ""
    16 "Nincs ilyen attribútum"
    17 "Definiálatlan típus"
    18 "Alkalmatlan egyezés"
    19 "Megszorítás megsértés"
    20 "Attribútum vagy érték létezik"
    21 "Érvénytelen szintakszis"
    22 ""
    23 ""
    24 ""
    25 ""
    26 ""
    27 ""
    28 ""
    29 ""
    30 ""
    31 ""
    32 "Nincs ilyen objektum"
    33 "Álnév probléma"
    34 "Érvénytelen DN szintakszis"
    35 "Ez egy levél"
    36 "Álnév dereferencia probléma"
    37 ""
    38 ""
    39 ""
    40 ""
    41 ""
    42 ""
    43 ""
    44 ""
    45 ""
    46 ""
    47 ""
    48 "Nem megfelelő hitelesítés"
    49 "Érvénytelen azonosítók"
    50 "Nem elegendő jogok"
    51 "Foglalt"
    52 "Nem elérhető"
    53 "Nem akarja végrehajtani"
    54 "Ciklus találva"
    55 ""
    56 ""
    57 ""
    58 ""
    59 ""
    60 "Rendezési vezérlés hiányzik"
    61 "Index tartomány hiba"
    62 ""
    63 ""
    64 "Elnevezési összeférhetetlenség"
    65 "Objektum osztály összeférhetetlenség"
    66 "Nem negedélyezett nem levélen"
    67 "Nem engedélyezett RDN-en"
    68 "Már létezik"
    69 "Nincsenek objektum osztály modok"
    70 "Eredmény túl nagy"
    71 "Több DSA-ra van hatással"
    72 ""
    73 ""
    74 ""
    75 ""
    76 ""
    77 ""
    78 ""
    79 ""
    80 "Egyéb"
    81 "Kiszolgáló nem elérhető"
    82 "Helyi hiba"
    83 "Kódolási hiba"
    84 "Dekódolási hiba"
    85 "Időtúllépés"
    86 "Ismeretlen hitelesítés"
    87 "Szűrő hiba"
    88 "Felhasználó megszakította"
    89 "Paraméter hiba"
    90 "Nincs memória"
    91 "Nem tudok csatlakozni az LDAP kiszolgálóhoz"
    92 "A műveletet az LDAP protokoll ezen verziója nem támogatja"
    93 "A megadott vezérlő nem található az üzenetben"
    94 "Nincs eredmény az üzenetben"
    95 "Több eredmény jött vissza"
    96 "Ciklus a beszámolók kezelése közben"
    97 "Beszámolási ugrás limit túllépve"
}
