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

# Deployment Admin plugin
deployment.pluginTitle=Deployment Packages
deployment.status.no_data=Kein Deployment Package ist installiert!
deployment.status.no_service=Deployment Admin Dienst ist nicht instaliert/aktiv!
deployment.status.ok=Deployment Admin Dienst ist aktiv
deployment.details=Details
deployment.actions=Aktionen
deployment.install_update=Installieren oder Aktualisieren
deployment.package.name=Package Name
deployment.bundles=Bundles
deployment.uninstall=Deinstallieren

# Shell plugin
shell.pluginTitle=Shell
shell.clear=Löschen
shell.status=Nutzen Sie das Eingabefeld um Shell Kommandos auszuführen.

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

# Components plugin
scr.pluginTitle=Komponenten
scr.status.no_service=Declarative Service ist Voraussetzung für diese Funktionalität!
scr.status.no_components=Zur Zeit sind keine Komponenten installiert!
scr.status.ok=Anzahl installierter Komponenten: {0}
scr.action.enable=Aktivieren
scr.action.disable=Deaktivieren
scr.action.configure=Konfigurieren
scr.prop.bundle=Bundle
scr.prop.defstate=Default Status
scr.prop.activation=Aktivierung
scr.prop.properties=Eigenschaften
scr.prop.class=Implementationsklasse
scr.prop.componentfactory=Komponenten Factory Name
scr.prop.configurationpolicy=Konfigurations Policy
scr.serv.type=Dienst Typ
scr.serv=Dienste
scr.title.actions=Aktionen
scr.title.status=Status
scr.title.name=Name


# Configuration plugin
config.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
license.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}: 

# OBR Plugin
obr.pluginTitle=OSGi Repository
obr.status.ok=Der Apache Bundle Repository Service ist aktiv und bereit.
obr.status.no=Der Apache Bundle Repository Service ist nicht aktiv!
obr.version.select=Wähle Version...
obr.repo.title=Bundle Repositories
obr.action.add=Hinzufügen
obr.action.search=Suchen
obr.action.deploy=Ausgewählte Installieren
obr.action.deploystart=Ausgewählte Installieren und Starten
obr.repo.name=Name
obr.repo.url=URL
obr.repo.lastModified=Letzte Änderung
obr.repo.actions=Aktionen
obr.res.title=Verfügbare Resourcen
obr.res.name=Resource Name
obr.res.installedVer=Installierte Version

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