<?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">
    <!-- no translation found for app_name (5955735546071433666) -->
    <skip />
    <!-- no translation found for record_your_message (1583671906691662148) -->
    <skip />
    <!-- no translation found for message_recorded (381539460921872233) -->
    <skip />
    <!-- no translation found for review_message (201616012287839474) -->
    <skip />
    <!-- no translation found for recording (4426791467211376099) -->
    <skip />
    <!-- no translation found for recording_stopped (1580278719585249612) -->
    <skip />
    <!-- no translation found for storage_is_full (416039755956726221) -->
    <skip />
    <string name="max_length_reached" msgid="6398215743584093353">"Maksimum lengte bereik"</string>
    <string name="insert_sd_card" product="nosdcard" msgid="8212754638456591792">"Heg asseblief USB-berging"</string>
    <!-- outdated translation 8212754638456591792 -->     <string name="insert_sd_card" product="default" msgid="2251831579676114197">"Heg asseblief USB-berging"</string>
    <!-- no translation found for min_available (5493947690062988925) -->
    <skip />
    <!-- no translation found for sec_available (2297020788861694399) -->
    <skip />
    <!-- no translation found for accept (7770652589312551402) -->
    <skip />
    <!-- no translation found for discard (761613433029406319) -->
    <skip />
    <!-- no translation found for button_ok (3004911343723076226) -->
    <skip />
    <!-- no translation found for audio_db_title_format (7912182366970749312) -->
    <skip />
    <!-- no translation found for audio_db_artist_name (961640229118120080) -->
    <skip />
    <!-- no translation found for audio_db_album_name (9072588113803264440) -->
    <skip />
    <!-- no translation found for audio_db_playlist_name (5592939050047058162) -->
    <skip />
    <string name="error_sdcard_access" product="nosdcard" msgid="7292601458300337571">"Kan nie USB-berging open nie"</string>
    <!-- outdated translation 7292601458300337571 -->     <string name="error_sdcard_access" product="default" msgid="8005660724361043509">"Kan nie USB-berging open nie"</string>
    <!-- no translation found for error_app_internal (2365923237657572011) -->
    <skip />
    <!-- no translation found for error_mediadb_new_record (2225774949947938064) -->
    <skip />
</resources>
