# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# Click Control messages

field-maxlength-error={0} darf nicht mehr als {1} Zeichen lang sein
field-minlength-error={0} muss mindestens {1} Zeichen lang sein
field-required-error={0} muss ausgef\u00fcllt werden

file-required-error=F\u00fcr {0} muss eine Datei angegeben werden

label-required-prefix=
label-required-suffix=<span class="required">*</span>
label-not-required-prefix=
label-not-required-suffix=&#160;

not-checked-error={0} muss gew\u00e4hlt werden

number-format-error={0} muss eine Zahl sein
number-maxvalue-error={0} darf nicht gr\u00f6\u00dfer sein als {1}
number-minvalue-error={0} darf nicht kleiner sein als {1}

select-error={0} muss gew\u00e4hlt werden

table-first-label=Erste
table-first-title=Zur ersten Seite
table-previous-label=vorherige
table-previous-title=Zur vorherigen Seite
table-next-label=n\u00e4chste
table-next-title=Zur n\u00e4chsten Seite
table-last-label=Letzte
table-last-title=Zur letzten Seite
table-goto-title=Zu Seite
table-page-banner=<span class="pagebanner">{0} Eintr\u00e4ge gefunden, angezeigt {1} bis {2}.</span>
table-page-banner-nolinks=<span class="pagebanner-nolinks">{0} Eintr\u00e4ge gefunden, angezeigt {1} bis {2}.</span>
table-page-links=<span class="pagelinks">[{0}/{1}] {2} [{3}/{4}]</span>
table-page-links-nobanner=<span class="pagelinks-nobanner">[{0}/{1}] {2} [{3}/{4}]</span>
table-no-rows-found=Keine Zeilen gefunden.

# Message displayed when a error occurs when the application is in "production" mode
production-error-message=<div id='errorReport' class='errorReport'>Ein unerwarteter Fehler ist in der Anwendung aufgetreten.</div>
