#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.

#
# Web Console strings for reference all strings here are commented.
# This file may be used to produce a translation of the strings
#
# Note that properties files are ISO-8859-1 encoded. To provide translations
# for languages requiring different character encodings, you may use the
# native2ascii Maven Plugin from http://mojo.codehaus.org/native2ascii-maven-plugin/
# to translate the natively encoded files to ISO-8859-1 during bundle build
#
# Translations requiring non-ISO-8859-1 encoding are placed in the
# src/main/native2ascii/OSGI-INF/l10n folder and are converted using said
# plugin while building the bundle
#

# Common UI
reload=Aktualisieren
change=Wechseln
abort=Abbrechen
back=Zurück
id=Id
type=Typ
type_s=Typ(en)
bundle=Bundle
version=Version
help=Hilfe
start=Starten
stop=Stoppen
save=Speichern
reset=Zurücksetzen
delete=Löschen
refresh=Aktualisieren

# VMStat plugin
vmstat.pluginTitle=System Information
vmstat.stopped=Framework ist gestoppt.
vmstat.restarting=Framework wurde neu gestartet. Bitte warten ...
vmstat.reloading.in=Starte neu in 
vmstat.running=System ist aktiv!
vmstat.sl.title=Start Level Information:
vmstat.sl.system=System Start Level
vmstat.sl.bundle=Default Bundle Start Level
vmstat.info.title=Server Information:
vmstat.lastStarted=Letzter Start
vmstat.upTime=Betriebszeit
vmstat.upTime.format.days=Tage
vmstat.framework=Framework
vmstat.shutdown.in=Stoppe in 
vmstat.java.title=Java Information:
vmstat.java.runtime=Java Runtime
vmstat.java.jvm=Java Virtual Machine
vmstat.processors=Anzahl Prozessoren
vmstat.mem.total=Total Hauptspeicher
vmstat.mem.used=Benutzter Hauptspeicher
vmstat.mem.free=Freier Hauptspeicher
vmstat.gc.title=Garbage Collection
vmstat.gc.button=Starte

# Services plugin
services.pluginTitle=Dienste
services.details.hide=Verstecke Details
services.details.tip=Details
services.statusline=Dienst Information: total {0} Dienst(e).
services.caption=Dienste
services.usingBundles=Nutzende Bundles

# Log plugin
logs.pluginTitle=Log Service
log.status.ok=Log Service ist aktiv.
log.status.missing=Log Service ist nicht installiert/aktiv.
log.severity.label=Minimaler Level:
log.received=Empfangen
log.level=Level
log.message=Meldung
log.service=Dienst
log.exception=Exception
log.level.error=Fehler
log.level.warn=Warnungen
log.level.info=Informationen
log.level.debug=Debug
log.traces=Exception Details:
log.traces.full=Kompletter Trace
log.traces.min=Nur Beschreibung 

# Bundles plugin
bundles.pluginTitle=Bundles
bundles.statline=Bundle information: {0} Bundles total, {1} aktive Bundles, {2} aktive Fragmente, {3} aufgelöste Bundles, {4} installierte Bundles.
bundles.install_or_update=Installieren oder Aktualisieren
bundles.install_update=Installieren/Aktualisieren...
bundles.refreshPkg=Packages aktualisieren
bundles.name=Name
bundles.name.symb=Symbolischer Name
bundles.category=Kategorie
bundles.status=Status
bundles.actions=Aktionen
# bundle details
bundles.location=Bundle Location
bundles.lastMod=Letzte Bundle Status Änderung
bundles.doc=Bundle Dokumentation
bundles.vendor=Vendor
bundles.copyright=Copyright
bundles.description=Beschreibung
bundles.startlevel=Start Level
bundles.classpath=Bundle Classpath
bundles.pkg.exported=Exportierte Packages
bundles.pkg.imported=Importierte Packages
bundles.pkg.importingBundles=Importierende Bundles
bundles.manifest.headers=Manifest Headers
bundles.hosts=Host Bundles
bundles.framents=Gebundene Fragmente
# actions
bundles.update=Aktualisieren
bundles.uninstall=Deinstallieren
bundles.refreshImports=Package Imports aktualisieren
# upload form
bundles.upload.caption=Bundles hochladen / installieren
bundles.upload.start=Start Bundle
bundles.upload.level=Start Level
# filter
bundles.filter.apply=Filter anwenden
bundles.filter.clear=Filter löschen
bundles.filter.help=Ein String oder regulärer Ausdruck, der mit den folgenden Feldern verglichen wird: Bundle Id, Name, symbolischer Name oder Version. Wenn "Filter All" verwendet wird, muss der Wert ein gültier LDAP String sein.
bundles.filter.ldap=Filter auf Header anwenden
bundles.filter.ldap.tip=Wenn angeklickt wird ein Vergleich gegen *alle* Bundle Manifest Header durchgeführt. Der Ausdruck muss ein gültiger OSGi Filter sein.
# states
bundles.state.1=Deinstalliert
bundles.state.2=Installiert
bundles.state.4=Aufgelöst
bundles.state.8=Am Starten
bundles.state.16=Am Stoppen
bundles.state.32=Aktiv
bundles.state.unknown=Unbekannter Status: {0}
bundles.state.fragment=Fragment
# action error
bundles.error.title=Ein Fehler ist aufgetreten während der Ausführung der Bundle Operation!


# Configuration plugin
configMgr.pluginTitle=Konfiguration
config.status.ok=Configuration Admin Dienst ist aktiv.
config.status.missing=Configuration Admin Dienst ist nicht installiert/aktiv.
config.properties=Eigenschaften
config.properties.enter=Bitte Name-Wert Paare als Konfiguration eingeben
config.info.title=Konfigurations Eigenschaften
config.info.pid=Identität (PID)
config.info.fpid=Factory Identität (Factory PID)
config.info.binding=Gebundenes Bundle
config.info.unbound=Ungebundene oder neue Konfiguration 
config.unbind.btn=Lösen
config.unbind.tip=Konfiguration vom Bundle lösen
config.del.ask=Sind Sie sicher, dass Sie diese Konfiguration löschen wollen ?
config.del.config=Konfiguration: 
config.del.bundle=Bundle: 
config.unbind.ask=Sind Sie sicher, dass Sie diese Konfiguration vom Bundle lösen wollen ?
config.factories.title=Factory Konfigurationen
config.configurations.title=Konfigurationen
config.create.tip=Erstelle eine neue Factory Konfiguration
config.edit.tip=Konfiguration bearbeiten
config.title.actions=Aktionen
config.title.bundle=Bundle
config.title.name=Name

# License plugin
licenses.pluginTitle=Lizenzen
license.status.ok=Die folgenden Bundles enthalten Lizenz Informationen.
license.status.none=Keine Bundles mit Lizenz Informationen installiert
license.resources=Bundle Resourcen: 
license.resources.embedded=Eingebettet {0}: 

# Configuration Status plugin
configStatus.pluginTitle=Configuration Status
configStatus.wait=Bitte warten...
configStatus.wait.msg=Laden...

# 404 plugin not found
404=\
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="refresh" content="3;URL={0}" />\
<title>404 Öffnen der Seite fehlgeschlagen</title>\
</head><body>\
<p>Die angeforderte Seite wurde nicht gefunden. Wenn Sie sich nicht innerhalb von 3 Sekunden an die Web-Konsole weitergeleitet werden, klicken Sie bitte <a href="{0}">hier</a></p>\
</body></html>

# localized configuration meta-data
metadata.name=Apache Felix OSGi Management Console
metadata.description=Konfiguration der Apache Felix OSGi Management Console.

metadata.manager.root.name=Root URI
metadata.manager.root.description=Pfad zur OSGi Management Console.

metadata.http.service.filter.name=Http Service Selector
metadata.http.service.filter.description=\
 Der Http Service Selector is ein OSGi Filter um den Http Service auszuwälhen\
 bei dem die Web Console registriert wird. Der angegebene Wert (falls nicht\
 leer) wird mit dem interface Term kombiniert um den effetiven Filter\
 in der Art (&(objectClass=org.osgi.service.http.HttpService)(selector)) zu\
 erhalten. Bitte weder führende noch abschliessende Klammer eingeben. Beispiel:\
 Um an den Http Service mit der service ID 15 anzubinden, is "service.id=15"\
 (ohne Anführungsstriche) einzugeben. Standardmässig (wenn diese Property nicht\
 gesetzt ist oder einen leeren Wert hat) registriert sich die Web Console mit\
 irgendeinem Http Service, der verfügbar ist.

metadata.default.render.name=Standard Seite
metadata.default.render.description=Name der Standard Site wenn die OSGi \
 Management Console aufgerufen wird.

metadata.realm.name=Realm
metadata.realm.description=Name einer HTTP Basic Authentication Realm.

metadata.username.name=Benutzer Name
metadata.username.description=The name des Benutzers, dem Zugriff auf die \
 OSGi Management Console gewährt wird. Wenn diese Property leer ist oder nicht \
 gesetzt, ist die Authentisierung deaktiviert. Diese Property wird nicht \
 verwendet falls ein WebConsoleSecurityProvider service für die Authentisierung \
 verwendet wird.

metadata.password.name=Password
metadata.password.description=Das Password für den Zugriff des angegebenen \
 Benutzers auf die OSGi Management Console. Diese Property wird nicht \
 verwendet falls ein WebConsoleSecurityProvider service für die Authentisierung \
 verwendet wird.

metadata.category.name=Standard Kategorie
metadata.category.description=Die Standard Kategorie (Menu) for plugins, \
 die nicht mit der felix.webconsole.category service property registriert \
 sind oder die AbstractWebConsole.getCategory() Methode überschreiben. Der \
 Standardwert ist "Main".

metadata.plugins.name=Plugins
metadata.plugins.description=Aktive Plugins auswählen

metadata.loglevel.name=Log Level
metadata.loglevel.description=Logging Level

metadata.locale.name=Locale
metadata.locale.description=Feste Einstellung der Lokalisierung der OSGi \
 Management console. Falls diese Property nicht gesetzt ist, wird die \
 Lokalisierung anhand des Requests eingestellt.
 
# https://issues.apache.org/jira/browse/FELIX-3491
bundles.success.title=Erfolg
bundles.success.text=Der Vorgang wurde erfolgreich.
