<?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">"Geluidsrecorder"</string>
    <string name="record_your_message" msgid="1583671906691662148">"Uw bericht opnemen"</string>
    <string name="message_recorded" msgid="381539460921872233">"Bericht opgenomen"</string>
    <string name="review_message" msgid="201616012287839474">"Bericht controleren"</string>
    <string name="recording" msgid="4426791467211376099">"Opnemen"</string>
    <string name="recording_stopped" msgid="1580278719585249612">"Opname gestopt"</string>
    <string name="storage_is_full" msgid="416039755956726221">"Opslagruimte is vol"</string>
    <string name="max_length_reached" msgid="6398215743584093353">"Maximumlengte is bereikt"</string>
    <string name="insert_sd_card" product="nosdcard" msgid="8212754638456591792">"Koppel de USB-opslag"</string>
    <string name="insert_sd_card" product="default" msgid="2251831579676114197">"Plaats een SD-kaart"</string>
    <string name="min_available" msgid="5493947690062988925">"<xliff:g id="MINUTES">%d</xliff:g> min beschikbaar"</string>
    <string name="sec_available" msgid="2297020788861694399">"<xliff:g id="SECONDS">%d</xliff:g>s beschikbaar"</string>
    <string name="accept" msgid="7770652589312551402">"Deze opname gebruiken"</string>
    <string name="discard" msgid="761613433029406319">"Weggooien"</string>
    <string name="button_ok" msgid="3004911343723076226">"OK"</string>
    <string name="press_record" msgid="5039711805290780494">"Druk op \'Opnemen\'"</string>
    <!-- no translation found for audio_db_title_format (7912182366970749312) -->
    <skip />
    <string name="audio_db_artist_name" msgid="961640229118120080">"Uw opnamen"</string>
    <string name="audio_db_album_name" msgid="9072588113803264440">"Audio-opnamen"</string>
    <string name="audio_db_playlist_name" msgid="5592939050047058162">"Mijn opnamen"</string>
    <string name="error_sdcard_access" product="nosdcard" msgid="7292601458300337571">"Kan geen toegang krijgen tot de USB-opslag"</string>
    <string name="error_sdcard_access" product="default" msgid="8005660724361043509">"Geen toegang tot SD-kaart"</string>
    <string name="error_app_internal" msgid="2365923237657572011">"Interne toepassingsfout"</string>
    <string name="error_mediadb_new_record" msgid="2225774949947938064">"Kan opgenomen audio niet opslaan"</string>
</resources>
