﻿#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.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
log.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
deployment.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.category=Категория
bundles.name.symb=Символно име
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
scr.pluginTitle=Компоненти
scr.status.no_service=Нуждаете се от Apache Felix 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=Default State
scr.prop.activation=Activation
scr.prop.properties=Properties
scr.serv.type=Тип на услугата
scr.serv=Услуги
scr.title.actions=Действия
scr.title.status=Статус
scr.title.name=Име


# Configuration plugin
config.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
license.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.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=Инсталирана версия

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