﻿#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
# native2ascii -encoding utf-8 bundle_bg.raw_properties bundle_bg.properties


# Common UI
reload=Презареждане
change=Промяна
abort=Отказ
back=Назад
id=Id
type=Тип
type_s=Тип(ове)
bundle=Бъндъл
version=Версия
help=Помощ
start=Стартиране
stop=Спиране
save=Запазване
reset=Ресетване
delete=Изтриване
refresh=Обновяване

# VMStat plugin
vmstat.pluginTitle=Системна информация
vmstat.stopped=Системата е спряна
vmstat.restarting=Системата се рестартир. Моля изчакайте...
vmstat.reloading.in=Презареждане след ...
vmstat.running=Системата е в готовност
vmstat.sl.title=Информация за стартово ниво
vmstat.sl.system=Системно стартово ниво
vmstat.sl.bundle=Подразбиращо се стартово ниво за бъндъли
vmstat.info.title=Информация за системата:
vmstat.lastStarted=Последно стартиране
vmstat.framework=Framework
vmstat.shutdown.in=Изключване след
vmstat.java.title=Java информация:
vmstat.java.runtime=Java Runtime
vmstat.java.jvm=Java Virtual Machine
vmstat.processors=Брой процесори
vmstat.mem.total=Общо памет
vmstat.mem.used=Използвана памет
vmstat.mem.free=Свободна памет
vmstat.gc.title=Изчистване на паметта
vmstat.gc.button=Изчистване

# Services plugin
services.pluginTitle=Услуги
services.details.hide=Скриване на детайлите
services.details.tip=Детайли
services.statusline=Информация за услугите: {0} услуги.
services.caption=Услуги
services.usingBundles=Използващи бъндъли

# Log plugin
logs.pluginTitle=Журнал
log.status.ok=Log Service е активен.
log.status.missing=Няма активен Log Service.
log.severity.label=Макс. ниво:
log.received=Получен
log.level=Ниво
log.message=Съобщение
log.service=Service
log.exception=Изключение
log.level.error=ГРЕШКА
log.level.warn=ПРЕДУПР
log.level.info=ИНФО
log.level.debug=ДЕТАЙЛИ

# Deployment Admin plugin
deppack.pluginTitle=Управление на пакети
deployment.status.no_data=Няма инсталирани пакети!
deployment.status.no_service=Услугата Deployment Admin не е налична в момента!
deployment.status.ok=Deployment Admin е наличен и по-долу е показан списъка с пакет
deployment.details=Детайли
deployment.actions=Действия
deployment.install_update=Инсталиране/обновяване
deployment.package.name=Име на пакет
deployment.bundles=Бъндъли
deployment.uninstall=Премахване

# Shell plugin
shell.pluginTitle=Конзола
shell.clear=Изчистване
shell.status=Използвайте командният ред за изпълнение на команди.

# Bundles plugin
bundles.pluginTitle=Бъндъли
bundles.statline=Информация за бъндълите: {0} бъндъли общо, {1} активни, {2} активни фрагменти, {3} resolved, {4} инсталирани.
bundles.install_or_update=Инсталиране/обновяване
bundles.install_update=Инсталиране/обновяване...
bundles.refreshPkg=Обновяване пакети
bundles.name=Име
bundles.name.symb=Символно име
bundles.category=Категория
bundles.status=Статус
bundles.actions=Действия
# bundle details
bundles.location=Bundle Location
bundles.lastMod=Последна промяна
bundles.doc=Документация
bundles.vendor=Производител
bundles.copyright=Copyright
bundles.description=Описание
bundles.startlevel=Стартово ниво
bundles.classpath=Bundle Classpath
bundles.pkg.exported=Предотставяни пакети
bundles.pkg.imported=Използвани пакети
bundles.pkg.importingBundles=Използващи бъндъли
bundles.manifest.headers=Manifest Headers
bundles.hosts=Host Bundles
bundles.framents=Закачени фрагменти
# actions
bundles.update=Обновяване
bundles.uninstall=Премахване
bundles.refreshImports=Обновяване на използваните пакети
# upload form
bundles.upload.caption=Качване/инсталиране на бъндъли
bundles.upload.start=Стартиране
bundles.upload.level=Стартиращо ниво
# filter
bundles.filter.apply=Прилагане филтър
bundles.filter.clear=Изчистване филтър
bundles.filter.help=Низ или регулярен израз, който се съдържа в ID-то, името, символното име или версията на бъндъла.
bundles.filter.ldap=Филтриране всичко
bundles.filter.ldap.tip=Когато натиснете този бутон се прилага допълнително филтриране, спрямо *всички* хедъри на бундълите. Очаква се изразът в полето да бъде валиден OSGi LDAP филтър.
# states
bundles.state.1=Деинсталиран
bundles.state.2=Инсталиран
bundles.state.4=Ресолвнат
bundles.state.8=Стартиран
bundles.state.16=Спрян
bundles.state.32=Активен
bundles.state.unknown=Непознат статус: {0}
bundles.state.fragment=Фрагмент
# action error
bundles.error.title=Грешка при изпълнение на операцията!


# Components plugin
components.pluginTitle=Компоненти
scr.status.no_service=Declarative Service не е наличен!
scr.status.no_components=Няма инсталирани компонент в момента!
scr.status.ok=Брой инсталирани компоненти: {0}
scr.action.enable=Enable
scr.action.disable=Disable
scr.action.configure=Конфигуриране
scr.prop.bundle=Бъндъл
scr.prop.defstate=Статус по подразбиране
scr.prop.activation=Активация
scr.prop.properties=Конфигурации
scr.prop.class=Implementation Class
scr.prop.componentfactory=Component Factory име
scr.prop.configurationpolicy=Конфигурационна политика
scr.serv.type=Тип на услугата
scr.serv=Услуги
scr.title.actions=Действия
scr.title.status=Статус
scr.title.name=Име


# Configuration plugin
configMgr.pluginTitle=Конфигурации
config.status.ok=Configuration Admin Service е достъпен.
config.status.missing=Няма Configuration Admin Service
config.properties=Настройки
config.properties.enter=Въведете двойка ключ-стойност от конфигурационните настройки
config.info.title=Конфигурационна информация
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=Сигурни ли сте, че изката да изтриете тази конфигурация ?
config.del.config=Конфигурация: 
config.del.bundle=Бъндъл: 
config.unbind.ask=Are you sure to unbind this configuration ?
config.factories.title=Factory Конфигурации
config.configurations.title=Конфигурации
config.create.tip=Създаване на нова factory конфигурация
config.edit.tip=Редактиране на стойностите на конфигурацията
config.title.actions=Действия
config.title.bundle=Бъндъл
config.title.name=Име
config.bind.error=Грешка: PID "{0}" е асоцииран с "{1}" но улугата е регистриране от бъндъл "{2}"

# License plugin
licenses.pluginTitle=Лицензи
license.status.ok=Следните бъндъли съдържат лицензионна информация.
license.status.none=Няма бъндъли съдържащо лицензионна информация
license.resources=Ресурси на бъндъла: 
license.resources.embedded=Вградени ресурси от {0}: 

# OBR Plugin
obr.pluginTitle=OSGi Хранилище
obr.status.ok=Apache Bundle Repository услъгата е достъпна.
obr.status.no=Нуждаете се от Apache Bundle Repository услугата за да се възползвате от тази функционалност!
obr.version.select=Изберете версия...
obr.repo.title=Бъндъл хранилище
obr.action.add=Добавяне
obr.action.search=Търсене
obr.action.search.description=Въведе част от презентацията на бъндъла (име, описание, версия ...), \
 или валиден OSGi филтър
obr.action.deploy=Инсталиране на избраните
obr.action.deploystart=Инсталиране и стартиране на избраните
obr.repo.name=Име
obr.repo.url=Адрес
obr.repo.lastModified=Последна промяна
obr.repo.actions=Действия
obr.res.title=Достъпни ресурси
obr.res.name=Име на ресурса
obr.res.installedVer=Инсталирана версия
obr.error=Грешка при филтриране на ресурсите

# Configuration Status plugin
configStatus.pluginTitle=Конфиг. статус
configStatus.wait=Моля изчакайте...
configStatus.wait.msg=Зареждане...

# 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>Страницата, която търсите (вече) липсва. След 3 секунди ще бъдете препратени автоматично към Уеб конзолата. Ако това не се случи, моля кликнете <a href="{0}">тук</a></p>\
</body></html>
