﻿#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
ranking=Ранг
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.upTime=Активно от
vmstat.upTime.format.days=дни
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=Използващи бъндъли
services.info.name=Използвани услуги
services.info.descr=Тази услуга се използва от избраният бъндъл. Кликнете за да видите повече детайли в плъгин "Услуги"
services.info.key=Услуга #{0} от тип(ове) {1}
services.filter.help=LDAP филтър който се прилага спрямо регистрационните пропъртита на услугата.
services.filter.apply=Прилагане на филтъра

# 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=ДЕТАЙЛИ
log.traces=Изглед изключения:
log.traces.full=Пълен
log.traces.min=Само съобщение


# Bundles plugin
bundles.pluginTitle=Бъндъли
bundles.statline.prefix=Информация за бъндълите: 
bundles.statline.all=all {0} бъндъли общо
bundles.statline.total={0} бъндъли общо
bundles.statline.active={0} активни
bundles.statline.fragments={0} активни фрагменти
bundles.statline.resolved={0} resolved
bundles.statline.installed={0} инсталирани
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 филтър.
bundles.filter.no_match=Няма бъндъли, които да отговарят на зададените критерии
# 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=Грешка при изпълнение на операцията!


# 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.exists= ?\ 
config.title.exists.tip=Конфигурацията съществува. Ако няма отметка, тогава няма реална конфигурация а само ManagedService регистрация или Meta-Type дефиниция. 
config.title.actions=Действия
config.title.bundle=Бъндъл
config.title.name=Име
config.bind.error=Грешка: PID "{0}" е асоцииран с "{1}" но улугата е регистриране от бъндъл "{2}"
config.property.default.value=Внимание. Горната стойност реално не е зададена. Тя е стойност по подразбиране.
config.property.optional.value=Този атрибут не е задължителен. За да го зададете в текущата конфигурация, моля отбележете квадратчето. Ако искате да го изтриете от текущата конфигурация - махнете белязката.

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

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


# localized configuration meta-data
metadata.name=Apache Felix OSGi Административна конзола
metadata.description=Конфигурация на административната конзола

metadata.manager.root.name=Начало
metadata.manager.root.description=Адрес на сървъра, през който става достъпна административаната конзола

metadata.http.service.filter.name=Избор на Http
metadata.http.service.filter.description=\
 Този атрибут е OSGi филтер, който се използва за избор на HTTP сървър, който административната\
 конзола използва. Стойността на атрибута, ако е зададен се комбинира със стандартният филтър\
 за идентификация на услугата: (&(objectClass=org.osgi.service.http.HttpService)(selector))\
 Този атрибут не трабва да има скоби, нито в края, нито в началото, например за да избере\
 услуга с ID 15, тогава селекторът е 'service.id=15' (без кавичките). По подразбиране\
 стойността на този атрибут е празна, което означава че административната конзола ще използа\
 всеки HTTP сървър.

metadata.default.render.name=Главна добавка
metadata.default.render.description=Името на страницата, която се показва по подразбиране при отваряне на административната конзола.

metadata.realm.name=Realm
metadata.realm.description=Името на  HTTP Authentication Realm.

metadata.username.name=Потребител
metadata.username.description=Името на потребителя, който се използва за вход.\
 За да забраните логването задайте празна стойност на това поле.\
 Този атрибут се игнорира ако се използва външен WebConsoleSecurityProvider за авторизация.

metadata.password.name=Парола
metadata.password.description=Паролата която се изисква от потребителя, за да се позволи той да използва административната конзола.\
 Този атрибут се игнорира ако се използва външен WebConsoleSecurityProvider за авторизация.

metadata.category.name=Категория по подразбиране
metadata.category.description=Категорията (име на меню), която се ползва по подразбиране когато плъгин е регистриран без\
 пропъртито felix.webconsole.category или без да имплементира AbstractWebConsole.getCategory() метода. Ако не укажете\
 стойност, се ползва "Main".

metadata.plugins.name=Добавки
metadata.plugins.description=Изберете активните добавки

metadata.loglevel.name=Ниво на логване
metadata.loglevel.description=Ниво на логване

metadata.locale.name=Език
metadata.locale.description=Ако е зададен, този атрибут указва езика използван от административната конзола.\
 В противен случай той се избира автоматично в зависимост от настройките на Web Browser-a.


# https://issues.apache.org/jira/browse/FELIX-3491
bundles.success.title=Успех
bundles.success.text=Операцията е изпълнена успешно
