<?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>
    <!-- outdated translation 6675934305676944437 -->     <string name="remove_from_history" msgid="8904048551022097518">"הסר מהיסטוריית החיפושים"</string>
    <!-- outdated translation 7326173491060133769 -->     <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>
    <!-- outdated translation 5553049179123250409 -->     <string name="corpus_description_web" msgid="6248923252805408647">"\'חיפוש Google\', סימניות והיסטוריית דפדפן"</string>
    <string name="corpus_label_apps" msgid="73123028704144731">"Google Apps"</string>
    <string name="corpus_description_apps" msgid="7434542427108237469">"שמות של יישומים מותקנים"</string>
    <!-- outdated translation 4230401643970165739 -->     <string name="corpus_hint_apps" msgid="7759612845120599537">"חפש ב-Google Apps"</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>
    <!-- outdated translation 1383427830703301130 -->     <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>
    <!-- outdated translation 566545847023692214 -->     <string name="voice_search_hint_quotation_start" msgid="5648752104255950621">"…"</string>
    <!-- outdated translation 4840921425933402938 -->     <string name="voice_search_hint_quotation_end" msgid="3400099768332101719">"…"</string>
</resources>
