<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2006 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="voiceDialer" msgid="5948204210436590941">"Wybieranie głosowe"</string>
    <string name="tool_tip_title" msgid="9092247761265706709">"Czy wiesz, że..."</string>
    <string name="tool_tip_message" msgid="8624998371709530611">"Naciśnięcie i przytrzymanie zielonego przycisku otwiera aplikację Wybieranie głosowe."</string>
    <string name="examples" msgid="2100807337052050741">" Przykłady: "<b>" "\n"„Połącz z Janem Kowalskim” "\n"„Połącz z Janem Kowalskim w domu, …” "\n"„Połącz z pocztą głosową” "\n"„Wybierz (866) 555 0123” "\n"„Wybierz 911, 811, …” "\n"„Wybierz +44 7333 444 555” "\n"„Wybierz ponownie” "\n"„Otwórz Kalendarz” "</b></string>
    <string name="title" msgid="60788431860720964">"Wybieranie głosowe"</string>
    <string name="bluetooth_title" msgid="1018603170854746529">"Wybieranie głosowe Bluetooth"</string>
    <string name="initializing" msgid="3146934028021025628">"Rozpoczynanie."</string>
    <string name="listening" msgid="6886486282595802147">"Słuchanie..."</string>
    <string name="please_try_again" msgid="1427744152996396950">"Spróbuj ponownie."</string>
    <string name="failure" msgid="3985785889820564626">"Błąd"</string>
    <string name="recognition_error" msgid="1807947152844267364">"Możesz spróbować ponownie uruchomić telefon."</string>
    <string name="headset_connection_lost" msgid="3809295858472462650">"Utracono połączenie z zestawem słuchawkowym."</string>
    <string name="at_home" msgid="8478880812967663328">" w domu"</string>
    <string name="on_mobile" msgid="5739841127369724804">" w telefonie komórkowym"</string>
    <string name="at_work" msgid="2946111016850670818">" w pracy"</string>
    <string name="at_other" msgid="1863773841760953063">" w innym miejscu"</string>
    <string name="logging_enabled" msgid="8702018587287436548">"Rejestrowanie w aplikacji Wybieranie głosowe jest włączone."</string>
    <string name="logging_disabled" msgid="5992352601321824322">"Rejestrowanie w aplikacji Wybieranie głosowe jest wyłączone."</string>
    <string name="speak_now_tts" msgid="1343363077871348876">"Mów teraz."</string>
    <string name="no_results_tts" msgid="7292876061536755253">"Brak wyników. Spróbuj ponownie."</string>
    <string name="invalid_choice_tts" msgid="1871918597940504468">"Nieprawidłowy wybór."</string>
    <string name="goodbye_tts" msgid="2034746843726531134">"Do widzenia."</string>
</resources>
