<?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">"Tschertga"</string>
    <string name="search_widget" msgid="323244086853110381">"Tschertga"</string>
    <!-- no translation found for remove_from_history (8904048551022097518) -->
    <skip />
    <!-- no translation found for remove_from_history_failed (1200923379897420942) -->
    <skip />
    <string name="corpus_selection_heading" msgid="6673422146423301360">"Tschertga"</string>
    <string name="corpus_label_global" msgid="8787849559975296772">"Tut"</string>
    <string name="corpus_label_web" msgid="3551946782975352067">"Web"</string>
    <!-- outdated translation 5553049179123250409 -->     <string name="corpus_description_web" msgid="6248923252805408647">"\"Tschertga en il web, segnapaginas e cronologia dal navigatur\""</string>
    <string name="corpus_label_apps" msgid="73123028704144731">"Applicaziuns"</string>
    <string name="corpus_description_apps" msgid="7434542427108237469">"Nums da las applicaziuns installadas"</string>
    <!-- outdated translation 4230401643970165739 -->     <string name="corpus_hint_apps" msgid="7759612845120599537">"Tschertgar en las applicaziuns"</string>
    <string name="menu_settings" msgid="5600043319144155953">"Parameters da tschertgar"</string>
    <string name="search_settings" msgid="4101951238194600323">"Parameters da tschertgar"</string>
    <!-- no translation found for google_settings_category_title (770300575312669210) -->
    <skip />
    <!-- no translation found for device_settings_category_title (2378889894648580869) -->
    <skip />
    <string name="system_search_category_title" msgid="1507902891285388819">"Telefon"</string>
    <string name="search_sources" msgid="505874718206340313">"Funtaunas"</string>
    <string name="search_sources_summary" msgid="9181194249796408374">"Tscherna da las funtaunas che duain vegnir retschertgadas"</string>
    <string name="clear_shortcuts" msgid="1964107586205103593">"Stizzar las scursanidas"</string>
    <string name="clear_shortcuts_summary" msgid="7407553488405249541">"Stizzar las scursanidas a propostas da tschertga utilisadas dacurt"</string>
    <!-- outdated translation 1383427830703301130 -->     <string name="clear_shortcuts_prompt" msgid="6487883523491520343">"\"Tut las scursanidas a propostas da tschertga tschernidas dacurt vegnan stizzadas."\n\n"(Per stizzar la cronologia dal navigatur, utilisai ils parameters dal navigatur.)\""</string>
    <!-- no translation found for clear_shortcuts_agree (5623666487205882033) -->
    <skip />
    <!-- no translation found for clear_shortcuts_disagree (3667707814933648461) -->
    <skip />
    <!-- no translation found for menu_help (8466596486018760239) -->
    <skip />
    <string name="google_search_label" msgid="2312345472131797361">"Google"</string>
    <string name="google_app_label" msgid="7877830942664670350">"Tschertga Google"</string>
    <string name="google_search_hint" msgid="8374014384681586649">"Tschertga Google"</string>
    <!-- no translation found for google_search_description (659411505885375623) -->
    <skip />
    <!-- no translation found for voice_search_hint_title (9160095960228453779) -->
    <skip />
    <!-- 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>
