<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2007 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="5955735546071433666">"Záznam zvuku"</string>
    <string name="record_your_message" msgid="1583671906691662148">"Zaznamenejte svou zprávu"</string>
    <string name="message_recorded" msgid="381539460921872233">"Zpráva byla zaznamenána"</string>
    <string name="review_message" msgid="201616012287839474">"Zkontrolovat zprávu"</string>
    <string name="recording" msgid="4426791467211376099">"Záznam"</string>
    <string name="recording_stopped" msgid="1580278719585249612">"Záznam byl zastaven"</string>
    <string name="storage_is_full" msgid="416039755956726221">"Úložiště je plné"</string>
    <string name="max_length_reached" msgid="6398215743584093353">"Byla dosažena maximální povolená délka"</string>
    <string name="insert_sd_card" product="nosdcard" msgid="8212754638456591792">"Připojte prosím úložiště USB"</string>
    <string name="insert_sd_card" product="default" msgid="2251831579676114197">"Vložte prosím kartu SD"</string>
    <string name="min_available" msgid="5493947690062988925">"K dispozici: <xliff:g id="MINUTES">%d</xliff:g> min"</string>
    <string name="sec_available" msgid="2297020788861694399">"K dispozici <xliff:g id="SECONDS">%d</xliff:g> s"</string>
    <!-- outdated translation 7770652589312551402 -->     <string name="accept" msgid="1888285552128743656">"Použít tento záznam"</string>
    <string name="discard" msgid="761613433029406319">"Zrušit"</string>
    <string name="button_ok" msgid="3004911343723076226">"OK"</string>
    <!-- no translation found for audio_db_title_format (7912182366970749312) -->
    <skip />
    <string name="audio_db_artist_name" msgid="961640229118120080">"Vaše záznamy"</string>
    <string name="audio_db_album_name" msgid="9072588113803264440">"Zvukové záznamy"</string>
    <string name="audio_db_playlist_name" msgid="5592939050047058162">"Mé záznamy"</string>
    <string name="error_sdcard_access" product="nosdcard" msgid="7292601458300337571">"Nelze získat přístup k úložišti USB"</string>
    <string name="error_sdcard_access" product="default" msgid="8005660724361043509">"Nelze získat přístup ke kartě SD"</string>
    <string name="error_app_internal" msgid="2365923237657572011">"Vnitřní chyba aplikace"</string>
    <string name="error_mediadb_new_record" msgid="2225774949947938064">"Zaznamenaný zvuk nelze uložit"</string>
</resources>
