<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2009 The Android Open Source Project

     Licensed 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.
 -->

<resources xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="app_name" msgid="1504397077706378597">"Търсене"</string>
    <string name="search_widget" msgid="323244086853110381">"Търсене"</string>
    <string name="remove_from_history" msgid="8904048551022097518">"Елементът да се премахне ли?"</string>
    <string name="remove_from_history_failed" msgid="1200923379897420942">"Елементът не можа да бъде премахнат от историята."</string>
    <string name="corpus_selection_heading" msgid="6673422146423301360">"Търсене"</string>
    <string name="corpus_label_global" msgid="8787849559975296772">"Всички"</string>
    <string name="corpus_label_web" msgid="3551946782975352067">"Мрежата"</string>
    <string name="corpus_description_web" msgid="6248923252805408647">"Търсене в мрежата, отметки и история на сърфирането"</string>
    <string name="corpus_label_apps" msgid="73123028704144731">"Приложения"</string>
    <string name="corpus_description_apps" msgid="7434542427108237469">"Имена на инсталирани приложения"</string>
    <string name="corpus_hint_apps" msgid="7759612845120599537">"Търсене в приложенията"</string>
    <string name="menu_settings" msgid="5600043319144155953">"Настройки за търсене"</string>
    <string name="search_settings" msgid="4101951238194600323">"Настройки за търсене"</string>
    <string name="google_settings_category_title" msgid="770300575312669210">"Google Търсене"</string>
    <string name="device_settings_category_title" msgid="2378889894648580869">"Изчистване на пътища"</string>
    <string name="system_search_category_title" msgid="1507902891285388819">"Телефон"</string>
    <string name="search_sources" msgid="505874718206340313">"Елементи, в които може да се търси"</string>
    <string name="search_sources_summary" msgid="9181194249796408374">"Изберете какво да търсите на телефона"</string>
    <string name="clear_shortcuts" msgid="1964107586205103593">"Изчистване на преките пътища"</string>
    <string name="clear_shortcuts_summary" msgid="7407553488405249541">"Изчистване на преките пътища към наскоро избрани предложения за търсене"</string>
    <string name="clear_shortcuts_prompt" msgid="6487883523491520343">"Искате ли да изчистите всички преки пътища към наскоро избраните предложения за търсене?"\n\n"За да изчистите историята на браузъра си, използвайте настройките му."</string>
    <string name="clear_shortcuts_agree" msgid="5623666487205882033">"Изчистване на преките пътища"</string>
    <string name="clear_shortcuts_disagree" msgid="3667707814933648461">"Без изчистване на пътищата"</string>
    <string name="menu_help" msgid="8466596486018760239">"Помощ"</string>
    <string name="google_search_label" msgid="2312345472131797361">"Google"</string>
    <string name="google_app_label" msgid="7877830942664670350">"Google Търсене"</string>
    <string name="google_search_hint" msgid="8374014384681586649">"Google Търсене"</string>
    <string name="google_search_description" msgid="659411505885375623">"Предложения за Google Търсене"</string>
    <string name="voice_search_hint_title" msgid="9160095960228453779">"Опитайте да кажете:"</string>
    <string name="voice_search_hint_quotation_start" msgid="5648752104255950621">"„"</string>
    <string name="voice_search_hint_quotation_end" msgid="3400099768332101719">"“"</string>
</resources>
