﻿#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=Услуги

# 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.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=Стартиращо ниво


# 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=Редактиране на стойностите на конфигурацията

# 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=Конфиг. статус
