diff --git a/webconsole-l10n/bg/src/main/appended-resources/META-INF/DEPENDENCIES b/webconsole-l10n/bg/src/main/appended-resources/META-INF/DEPENDENCIES
new file mode 100644
index 0000000..b73c783
--- /dev/null
+++ b/webconsole-l10n/bg/src/main/appended-resources/META-INF/DEPENDENCIES
@@ -0,0 +1,20 @@
+I. Included Third-Party Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes icons from the Silk Icon set
+(http://www.famfamfam.com/lab/icons/silk/)
+Copyright (c) 2006 Mark James
+Licensed under the Creative Commons Attribution 2.5 License
+
+
+II. Used Third-Party Software
+
+-
+
+III. License Summary
+
+- Apache License 2.0
+- Creative Commons Attribution 2.5 License
diff --git a/webconsole-l10n/bg/src/main/appended-resources/META-INF/LICENSE b/webconsole-l10n/bg/src/main/appended-resources/META-INF/LICENSE
new file mode 100644
index 0000000..b3d162d
--- /dev/null
+++ b/webconsole-l10n/bg/src/main/appended-resources/META-INF/LICENSE
@@ -0,0 +1,221 @@
+
+
+APACHE FELIX OSGI WEB CONSOLE BULGARIAN TRANSLATIONS SUBCOMPONENTS: 
+
+The Apache Felix OSGi Web Console includes a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the following licenses. 
+
+
+For the Silk Icons component:
+
+Creative Commons
+Creative Commons Legal Code
+
+Attribution 2.5
+
+CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL
+SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT
+RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS.
+CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND
+DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
+
+License
+
+THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS
+PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR
+OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS
+LICENSE OR COPYRIGHT LAW IS PROHIBITED.
+
+BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE
+BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED
+HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
+
+1. Definitions
+
+a. "Collective Work" means a work, such as a periodical issue, anthology or
+   encyclopedia, in which the Work in its entirety in unmodified form, along
+   with a number of other contributions, constituting separate and independent
+   works in themselves, are assembled into a collective whole. A work that
+   constitutes a Collective Work will not be considered a Derivative Work (as
+   defined below) for the purposes of this License.
+b. "Derivative Work" means a work based upon the Work or upon the Work and
+   other pre-existing works, such as a translation, musical arrangement,
+   dramatization, fictionalization, motion picture version, sound recording, art
+   reproduction, abridgment, condensation, or any other form in which the Work
+   may be recast, transformed, or adapted, except that a work that constitutes a
+   Collective Work will not be considered a Derivative Work for the purpose of
+   this License. For the avoidance of doubt, where the Work is a musical
+   composition or sound recording, the synchronization of the Work in
+   timed-relation with a moving image ("synching") will be considered a
+   Derivative Work for the purpose of this License.
+c. "Licensor" means the individual or entity that offers the Work under the
+   terms of this License.
+d. "Original Author" means the individual or entity who created the Work.
+e. "Work" means the copyrightable work of authorship offered under the terms
+   of this License.
+f. "You" means an individual or entity exercising rights under this License
+   who has not previously violated the terms of this License with respect to the
+   Work, or who has received express permission from the Licensor to exercise
+   rights under this License despite a previous violation.
+
+2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or
+restrict any rights arising from fair use, first sale or other limitations on
+the exclusive rights of the copyright owner under copyright law or other
+applicable laws.
+
+3. License Grant. Subject to the terms and conditions of this License, Licensor
+hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the
+duration of the applicable copyright) license to exercise the rights in the Work
+as stated below:
+
+a. to reproduce the Work, to incorporate the Work into one or more Collective
+   Works, and to reproduce the Work as incorporated in the Collective Works;
+b. to create and reproduce Derivative Works;
+c. to distribute copies or phonorecords of, display publicly, perform
+   publicly, and perform publicly by means of a digital audio transmission the
+   Work including as incorporated in Collective Works;
+d. to distribute copies or phonorecords of, display publicly, perform
+   publicly, and perform publicly by means of a digital audio transmission
+   Derivative Works.
+e. For the avoidance of doubt, where the work is a musical composition:
+      i. Performance Royalties Under Blanket Licenses. Licensor waives the
+         exclusive right to collect, whether individually or via a performance
+         rights society (e.g. ASCAP, BMI, SESAC), royalties for the public
+         performance or public digital performance (e.g. webcast) of the Work.
+     ii. Mechanical Rights and Statutory Royalties. Licensor waives the
+         exclusive right to collect, whether individually or via a music rights
+         agency or designated agent (e.g. Harry Fox Agency), royalties for any
+         phonorecord You create from the Work ("cover version") and distribute,
+         subject to the compulsory license created by 17 USC Section 115 of the
+         US Copyright Act (or the equivalent in other jurisdictions).
+f. Webcasting Rights and Statutory Royalties. For the avoidance of doubt,
+   where the Work is a sound recording, Licensor waives the exclusive right to
+   collect, whether individually or via a performance-rights society (e.g.
+   SoundExchange), royalties for the public digital performance (e.g. webcast)
+   of the Work, subject to the compulsory license created by 17 USC Section 114
+   of the US Copyright Act (or the equivalent in other jurisdictions).
+
+The above rights may be exercised in all media and formats whether now known or
+hereafter devised. The above rights include the right to make such modifications
+as are technically necessary to exercise the rights in other media and formats.
+All rights not expressly granted by Licensor are hereby reserved.
+
+4. Restrictions.The license granted in Section 3 above is expressly made subject
+to and limited by the following restrictions:
+
+a. You may distribute, publicly display, publicly perform, or publicly
+   digitally perform the Work only under the terms of this License, and You must
+   include a copy of, or the Uniform Resource Identifier for, this License with
+   every copy or phonorecord of the Work You distribute, publicly display,
+   publicly perform, or publicly digitally perform. You may not offer or impose
+   any terms on the Work that alter or restrict the terms of this License or the
+   recipients' exercise of the rights granted hereunder. You may not sublicense
+   the Work. You must keep intact all notices that refer to this License and to
+   the disclaimer of warranties. You may not distribute, publicly display,
+   publicly perform, or publicly digitally perform the Work with any
+   technological measures that control access or use of the Work in a manner
+   inconsistent with the terms of this License Agreement. The above applies to
+   the Work as incorporated in a Collective Work, but this does not require the
+   Collective Work apart from the Work itself to be made subject to the terms of
+   this License. If You create a Collective Work, upon notice from any Licensor
+   You must, to the extent practicable, remove from the Collective Work any
+   credit as required by clause 4(b), as requested. If You create a Derivative
+   Work, upon notice from any Licensor You must, to the extent practicable,
+   remove from the Derivative Work any credit as required by clause 4(b), as
+   requested.
+b. If you distribute, publicly display, publicly perform, or publicly
+   digitally perform the Work or any Derivative Works or Collective Works, You
+   must keep intact all copyright notices for the Work and provide, reasonable
+   to the medium or means You are utilizing: (i) the name of the Original Author
+   (or pseudonym, if applicable) if supplied, and/or (ii) if the Original Author
+   and/or Licensor designate another party or parties (e.g. a sponsor institute,
+   publishing entity, journal) for attribution in Licensor's copyright notice,
+   terms of service or by other reasonable means, the name of such party or
+   parties; the title of the Work if supplied; to the extent reasonably
+   practicable, the Uniform Resource Identifier, if any, that Licensor specifies
+   to be associated with the Work, unless such URI does not refer to the
+   copyright notice or licensing information for the Work; and in the case of a
+   Derivative Work, a credit identifying the use of the Work in the Derivative
+   Work (e.g., "French translation of the Work by Original Author," or
+   "Screenplay based on original Work by Original Author"). Such credit may be
+   implemented in any reasonable manner; provided, however, that in the case of
+   a Derivative Work or Collective Work, at a minimum such credit will appear
+   where any other comparable authorship credit appears and in a manner at least
+   as prominent as such other comparable authorship credit.
+
+5. Representations, Warranties and Disclaimer
+
+UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS
+THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING
+THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR
+PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY,
+OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME
+JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH
+EXCLUSION MAY NOT APPLY TO YOU.
+
+6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN
+NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL,
+INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS
+LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+7. Termination
+
+a. This License and the rights granted hereunder will terminate automatically
+   upon any breach by You of the terms of this License. Individuals or entities
+   who have received Derivative Works or Collective Works from You under this
+   License, however, will not have their licenses terminated provided such
+   individuals or entities remain in full compliance with those licenses.
+   Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
+b. Subject to the above terms and conditions, the license granted here is
+   perpetual (for the duration of the applicable copyright in the Work).
+   Notwithstanding the above, Licensor reserves the right to release the Work
+   under different license terms or to stop distributing the Work at any time;
+   provided, however that any such election will not serve to withdraw this
+   License (or any other license that has been, or is required to be, granted
+   under the terms of this License), and this License will continue in full
+   force and effect unless terminated as stated above.
+
+8. Miscellaneous
+
+a. Each time You distribute or publicly digitally perform the Work or a
+   Collective Work, the Licensor offers to the recipient a license to the Work
+   on the same terms and conditions as the license granted to You under this
+   License.
+b. Each time You distribute or publicly digitally perform a Derivative Work,
+   Licensor offers to the recipient a license to the original Work on the same
+   terms and conditions as the license granted to You under this License.
+c. If any provision of this License is invalid or unenforceable under
+   applicable law, it shall not affect the validity or enforceability of the
+   remainder of the terms of this License, and without further action by the
+   parties to this agreement, such provision shall be reformed to the minimum
+   extent necessary to make such provision valid and enforceable.
+d. No term or provision of this License shall be deemed waived and no breach
+   consented to unless such waiver or consent shall be in writing and signed by
+   the party to be charged with such waiver or consent.
+e. This License constitutes the entire agreement between the parties with
+   respect to the Work licensed here. There are no understandings, agreements or
+   representations with respect to the Work not specified here. Licensor shall
+   not be bound by any additional provisions that may appear in any
+   communication from You. This License may not be modified without the mutual
+   written agreement of the Licensor and You.
+
+Creative Commons is not a party to this License, and makes no warranty
+whatsoever in connection with the Work. Creative Commons will not be liable to
+You or any party on any legal theory for any damages whatsoever, including
+without limitation any general, special, incidental or consequential damages
+arising in connection to this license. Notwithstanding the foregoing two (2)
+sentences, if Creative Commons has expressly identified itself as the Licensor
+hereunder, it shall have all rights and obligations of Licensor.
+
+Except for the limited purpose of indicating to the public that the Work is
+licensed under the CCPL, neither party will use the trademark "Creative Commons"
+or any related trademark or logo of Creative Commons without the prior written
+consent of Creative Commons. Any permitted use will be in compliance with
+Creative Commons' then-current trademark usage guidelines, as may be published
+on its website or otherwise made available upon request from time to time.
+
+Creative Commons may be contacted at http://creativecommons.org/.
diff --git a/webconsole-l10n/bg/src/main/appended-resources/META-INF/NOTICE b/webconsole-l10n/bg/src/main/appended-resources/META-INF/NOTICE
new file mode 100644
index 0000000..65c6af4
--- /dev/null
+++ b/webconsole-l10n/bg/src/main/appended-resources/META-INF/NOTICE
@@ -0,0 +1,4 @@
+This product includes icons from the Silk Icon set
+(http://www.famfamfam.com/lab/icons/silk/)
+Copyright (c) 2006 Mark James
+Licensed under the Creative Commons Attribution 2.5 License
diff --git a/webconsole-l10n/bg/src/main/resources/OSGI-INF/l10n/bundle_bg.properties b/webconsole-l10n/bg/src/main/resources/OSGI-INF/l10n/bundle_bg.properties
new file mode 100644
index 0000000..fbf4136
--- /dev/null
+++ b/webconsole-l10n/bg/src/main/resources/OSGI-INF/l10n/bundle_bg.properties
@@ -0,0 +1,250 @@
+﻿#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.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}
+
+
+# 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=Информация за бъндълите: {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=Грешка при изпълнение на операцията!
+
+
+# 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}: 
+
+# 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.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=Операцията е изпълнена успешно
diff --git a/webconsole-l10n/bg/src/main/resources/res/flags/bg.gif b/webconsole-l10n/bg/src/main/resources/res/flags/bg.gif
new file mode 100644
index 0000000..11cf8ff
--- /dev/null
+++ b/webconsole-l10n/bg/src/main/resources/res/flags/bg.gif
Binary files differ
