/*
 * Dutch resources for WLDAP32
 *
 * Copyright 2005 Hans Leidekker
 *
 * 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"

LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL

STRINGTABLE
{
    0 "Succes"
    1 "Operationele fout"
    2 "Protocolfout"
    3 "Tijdlimiet overschreden"
    4 "Maximum omvang overschreden"
    5 "Vergelijking niet waar"
    6 "Vergelijking waar"
    7 "Authenticatiemethode wordt niet ondersteund"
    8 "Sterke authenticatie vereist"
    9 "Verwijzing (v2)"
    10 "Verwijzing"
    11 "Administratieve limiet overschreden"
    12 "Kritieke extensie niet beschikbaar"
    13 "Vertrouwelijkheid vereist"
    14 ""
    15 ""
    16 "Attribuut bestaat niet"
    17 "Ongedefinieerd type"
    18 "Foutieve vergelijking"
    19 "Schending van restrictie"
    20 "Attribuut of waarde bestaat"
    21 "Ongeldige syntax"
    22 ""
    23 ""
    24 ""
    25 ""
    26 ""
    27 ""
    28 ""
    29 ""
    30 ""
    31 ""
    32 "Object bestaat niet"
    33 "Aliasprobleem"
    34 "Ongeldige DN-syntax"
    35 "Eindknoop"
    36 "Alias volgprobleem"
    37 ""
    38 ""
    39 ""
    40 ""
    41 ""
    42 ""
    43 ""
    44 ""
    45 ""
    46 ""
    47 ""
    48 "Foutieve authenticatie"
    49 "Ongeldige aanmeldingsgegevens"
    50 "Onvoldoende rechten"
    51 "Bezig"
    52 "Niet beschikbaar"
    53 "Uitvoering geweigerd"
    54 "Lus gedetecteerd"
    55 ""
    56 ""
    57 ""
    58 ""
    59 ""
    60 "Besturingselement voor sorteren ontbreekt"
    61 "Buiten indexbereik"
    62 ""
    63 ""
    64 "Naamgevingsfout"
    65 "Schending objectklassedefinitie"
    66 "Niet toegestaan op niet-eindknopen"
    67 "Niet toegestaan op RDN"
    68 "Bestaat reeds"
    69 "Geen objectklassemodificaties"
    70 "Resultaten te groot"
    71 "Betreft meerdere DSA's"
    72 ""
    73 ""
    74 ""
    75 ""
    76 ""
    77 ""
    78 ""
    79 ""
    80 "Anders"
    81 "Server plat"
    82 "Lokale fout"
    83 "Codeerfout"
    84 "Decodeerfout"
    85 "Timeout"
    86 "Onbekende authenticatiemethode"
    87 "Filterfout"
    88 "Afgebroken door gebruiker"
    89 "Parameterfout"
    90 "Onvoldoende geheugen"
    91 "Kan geen verbinding maken met LDAP-server"
    92 "Operatie niet ondersteund door deze versie van het LDAP-protocol"
    93 "Opgegeven besturingselement niet gevonden in bericht"
    94 "Geen resultaat aanwezig in bericht"
    95 "Meer resultaten teruggekregen"
    96 "Lus gevonden bij het verwerken van verwijzingen"
    97 "Overschrijding van limiet op verwijzingen"
}
