#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=Reload
change=Change
abort=Abort
back=Back
id=Id
type=Type
type_s=Type(s)
bundle=Bundle
version=Version
help=Help
start=Start
stop=Stop
save=Save
reset=Reset
delete=Delete
refresh=Refresh

# VMStat plugin
vmstat.pluginTitle=System Information
vmstat.stopped=Framework has been stopped.
vmstat.restarting=Framework is restarting. stand by ...
vmstat.reloading.in=Reloading in
vmstat.running=System is up and running!
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=Last Started
vmstat.framework=Framework
vmstat.shutdown.in=Shutdown in 
vmstat.java.title=Java Information:
vmstat.java.runtime=Java Runtime
vmstat.java.jvm=Java Virtual Machine
vmstat.mem.total=Total Memory
vmstat.mem.used=Used Memory
vmstat.mem.free=Free Memory
vmstat.gc.title=Garbage Collection
vmstat.gc.button=Run

# Services plugin
services.pluginTitle=Services
services.details.hide=Hide Details
services.details.tip=Details
services.statusline=Services information: {0} service(s) in total.
services.caption=Services
services.usingBundles=Using Bundles

# Log plugin
log.pluginTitle=Log Service
log.status.ok=Log Service is running.
log.status.missing=Log Service is not installed/running.
log.severity.label=Severity at least:
log.received=Received
log.level=Level
log.message=Message
log.service=Service
log.exception=Exception
log.level.error=ERROR
log.level.warn=WARN
log.level.info=INFO
log.level.debug=DEBUG

# Deployment Admin plugin
deployment.pluginTitle=Deployment Packages
deployment.status.no_data=No deployment packages installed!
deployment.status.no_service=Deployment Admin is not installed/running!
deployment.status.ok=Deployment Admin service is running
deployment.details=Details
deployment.actions=Actions
deployment.install_update=Install or Update
deployment.package.name=Package Name
deployment.bundles=Bundles
deployment.uninstall=Uninstall

# Shell plugin
shell.pluginTitle=Shell
shell.clear=Clear
shell.status=Use the command prompt to execute shell commands.

# Bundles plugin
bundles.pluginTitle=Bundles
bundles.statline=Bundle information: {0} bundles in total, {1} bundles active, {2} active fragments, {3} bundles resolved, {4} bundles installed.
bundles.install_or_update=Install or Update
bundles.install_update=Install/Update...
bundles.refreshPkg=Refresh Packages
bundles.name=Name
bundles.name.symb=Symbolic Name
bundles.category=Category
bundles.status=Status
bundles.actions=Actions
# bundle details
bundles.location=Bundle Location
bundles.lastMod=Last Modification
bundles.doc=Bundle Documentation
bundles.vendor=Vendor
bundles.copyright=Copyright
bundles.description=Description
bundles.startlevel=Start Level
bundles.classpath=Bundle Classpath
bundles.pkg.exported=Exported Packages
bundles.pkg.imported=Imported Packages
bundles.pkg.importingBundles=Importing Bundles
bundles.manifest.headers=Manifest Headers
bundles.hosts=Host Bundles
bundles.framents=Fragments Attached
# actions
bundles.update=Update
bundles.uninstall=Uninstall
bundles.refreshImports=Refresh Package Imports
# upload form
bundles.upload.caption=Upload / Install Bundles
bundles.upload.start=Start Bundle
bundles.upload.level=Start Level
# filter
bundles.filter.apply=Apply Filter
bundles.filter.clear=Clear Filter
bundles.filter.help=A string or RegExp expression which is matched againse bundle id, name, symbolic name or version. In case 'Filter All' is used, the value must be a valid LDAP string.
bundles.filter.ldap=Filter All
bundles.filter.ldap.tip=When clicked, a server-side matching is performed agains *all* bundle manifest headers. The expression is expected to be a valid OSGi Filter
# states
bundles.state.1=Uninstalled
bundles.state.2=Installed
bundles.state.4=Resolved
bundles.state.8=Starting
bundles.state.16=Stopping
bundles.state.32=Active
bundles.state.unknown=Unknown State: {0}
bundles.state.fragment=Fragment
# action error
bundles.error.title=Error while executing bundle operation!


# Components plugin
scr.pluginTitle=Components
scr.status.no_service=Apache Felix Declarative Service required for this function!
scr.status.no_components=No components installed currently!
scr.status.ok=Number of installed components: {0}
scr.action.enable=Enable
scr.action.disable=Disable
scr.action.configure=Configure
scr.prop.bundle=Bundle
scr.prop.defstate=Default State
scr.prop.activation=Activation
scr.prop.properties=Properties
scr.serv.type=Service Type
scr.serv=Services
scr.title.actions=Actions
scr.title.status=Status
scr.title.name=Name


# Configuration plugin
config.pluginTitle=Configuration
config.status.ok=Configuration Admin Service is running.
config.status.missing=Configuration Admin Service is not installed/running.
config.properties=Properties
config.properties.enter=Enter Name-Value pairs of configuration properties
config.info.title=Configuration Information
config.info.pid=Persistent Identity (PID)
config.info.fpid=Factory Persistent Identifier (Factory PID)
config.info.binding=Configuration Binding
config.info.unbound=Unbound or new configuration 
config.unbind.btn=Unbind
config.unbind.tip=Unbind Configuration from Bundle
config.del.ask=Are you sure to delete this configuration ?
config.del.config=Configuration: 
config.del.bundle=Bundle: 
config.unbind.ask=Are you sure to unbind this configuration ?
config.factories.title=Factory Configurations
config.configurations.title=Configurations
config.create.tip=Create new factory configuration
config.edit.tip=Edit the configuration values
config.title.actions=Actions
config.title.bundle=Bundle
config.title.name=Name
config.bind.error=Error: the PID "{0}" is bound to "{1}" but the actual managed service is registered from "{2}" bundle

# License plugin
license.pluginTitle=Licenses
license.status.ok=The following bundles contains license files.
license.status.none=No bundles with license files available
license.resources=Bundle Resources: 
license.resources.embedded=Embedded {0}: 

# OBR Plugin
obr.pluginTitle=OSGi Repository
obr.status.ok=The Apache Bundle Repository service is up and running.
obr.status.no=The Apache Bundle Repository service is not available!
obr.version.select=Select Version...
obr.repo.title=Bundle Repositories
obr.action.add=Add
obr.action.search=Search
obr.action.deploy=Deploy Selected
obr.action.deploystart=Deploy and Start Selected
obr.repo.name=Name
obr.repo.url=URL
obr.repo.lastModified=Last Modified
obr.repo.actions=Actions
obr.res.title=Available Resources
obr.res.name=Resource Name
obr.res.installedVer=Installed Version

# Configuration Status plugin
configStatus.pluginTitle=Configuration Status
configStatus.wait=Please wait...
configStatus.wait.msg=Loading...

# 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 Not Found</title>\
</head><body>\
<p>The requested page was not found. If you are not forwarded in 3 seconds to the Web Console, please click <a href="{0}">here</a></p>\
</body></html>
