<?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">"Înregistrare sunet"</string>
    <string name="record_your_message" msgid="1583671906691662148">"Înregistrați mesajul"</string>
    <string name="message_recorded" msgid="381539460921872233">"Mesaj înregistrat"</string>
    <string name="review_message" msgid="201616012287839474">"Consultați mesajul"</string>
    <string name="recording" msgid="4426791467211376099">"Se înregistrează"</string>
    <string name="recording_stopped" msgid="1580278719585249612">"Înregistrare oprită"</string>
    <string name="storage_is_full" msgid="416039755956726221">"Spațiul de stocare este plin"</string>
    <string name="max_length_reached" msgid="6398215743584093353">"A fost atinsă lungimea maximă"</string>
    <string name="insert_sd_card" product="nosdcard" msgid="4609407750669086933">"Montați stocarea USB"</string>
    <string name="insert_sd_card" product="default" msgid="1007630222084726808">"Introduceți un card SD"</string>
    <string name="min_available" msgid="5493947690062988925">"<xliff:g id="MINUTES">%d</xliff:g> minute disponibile"</string>
    <string name="sec_available" msgid="2297020788861694399">"<xliff:g id="SECONDS">%d</xliff:g> (de) secunde disponibile"</string>
    <string name="accept" msgid="1888285552128743656">"Terminat"</string>
    <string name="discard" msgid="761613433029406319">"Renunțați"</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">"Înregistrările dvs."</string>
    <string name="audio_db_album_name" msgid="9072588113803264440">"Înregistrări audio"</string>
    <string name="audio_db_playlist_name" msgid="5592939050047058162">"Înregistrările mele"</string>
    <string name="error_sdcard_access" product="nosdcard" msgid="86629081075681774">"Nu se poate accesa stocarea USB."</string>
    <string name="error_sdcard_access" product="default" msgid="5750308258096153274">"Nu se poate accesa cardul SD."</string>
    <string name="error_app_internal" msgid="312884382388702022">"Eroare internă de aplicație."</string>
    <string name="error_mediadb_new_record" msgid="261714902333432462">"Conținutul audio înregistrat nu a putut fi salvat."</string>
</resources>
