<?xml version="1.0" encoding="UTF-8"?>
<!-- 
  ~ Copyright (C) 2012 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="toast_text_copied" msgid="8327159932780920627">"Text copiat"</string>
    <string name="call_custom" msgid="2786306789889210756">"Apelaţi <xliff:g id="CUSTOM">%s</xliff:g>"</string>
    <string name="call_home" msgid="1479549630992276827">"Apelaţi numărul de domiciliu"</string>
    <string name="call_mobile" msgid="8618334085824709009">"Apelaţi numărul de mobil"</string>
    <string name="call_work" msgid="8299062439076337075">"Apelaţi numărul de serviciu"</string>
    <string name="call_fax_work" msgid="3770754834467992571">"Apelaţi numărul de fax de serviciu"</string>
    <string name="call_fax_home" msgid="6219051113573396065">"Apelaţi numărul de fax de domiciliu"</string>
    <string name="call_pager" msgid="3038080882899955112">"Apelaţi numărul de pager"</string>
    <string name="call_other" msgid="4472141328347894937">"Apelaţi"</string>
    <string name="call_callback" msgid="687494744634190411">"Apelaţi un număr cu apelare inversă"</string>
    <string name="call_car" msgid="9078083109758282133">"Apelaţi numărul de maşină"</string>
    <string name="call_company_main" msgid="8768047233970315359">"Apelaţi numărul principal al companiei"</string>
    <string name="call_isdn" msgid="3342482563847537747">"Apelaţi ISDN"</string>
    <string name="call_main" msgid="4640261071249938558">"Apelaţi numărul principal"</string>
    <string name="call_other_fax" msgid="2536328553125487877">"Apelaţi numărul de fax"</string>
    <string name="call_radio" msgid="9055749313292712021">"Apelaţi un număr radio"</string>
    <string name="call_telex" msgid="2909886619224843563">"Apelaţi un număr de telex"</string>
    <string name="call_tty_tdd" msgid="6704940636171078852">"Apelaţi TTY/TDD"</string>
    <string name="call_work_mobile" msgid="4408630608955148641">"Apelaţi numărul de mobil de la serviciu"</string>
    <string name="call_work_pager" msgid="3036932765279753793">"Apelaţi numărul de pager de serviciu"</string>
    <string name="call_assistant" msgid="5188990854852312696">"Apelaţi <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
    <string name="call_mms" msgid="8998771923464696960">"Apelaţi MMS"</string>
    <string name="sms_custom" msgid="4601748252470175865">"Trimiteţi un mesaj text către <xliff:g id="CUSTOM">%s</xliff:g>"</string>
    <string name="sms_home" msgid="7765831490534280540">"Trimiteţi un mesaj text către telefonul de domiciliu"</string>
    <string name="sms_mobile" msgid="8387632124165893103">"Trimiteţi un mesaj text către numărul de mobil"</string>
    <string name="sms_work" msgid="3910570578912367742">"Trimiteţi un mesaj text către numărul de serviciu"</string>
    <string name="sms_fax_work" msgid="909086167151248212">"Trimiteţi un mesaj text către un număr de fax de serviciu"</string>
    <string name="sms_fax_home" msgid="4145442497939634875">"Trimiteţi un mesaj text către un număr de fax de domiciliu"</string>
    <string name="sms_pager" msgid="5664381349583724906">"Trimiteţi un mesaj text către un număr de pager"</string>
    <string name="sms_other" msgid="910895193552957097">"Trimiteţi un mesaj text"</string>
    <string name="sms_callback" msgid="728414485478941361">"Trimiteţi un mesaj text către un număr cu apelare inversă"</string>
    <string name="sms_car" msgid="8543669230270954512">"Trimiteţi un mesaj text către un număr de telefon de maşină"</string>
    <string name="sms_company_main" msgid="5441902128445061862">"Trimiteţi un mesaj text către numărul principal al companiei"</string>
    <string name="sms_isdn" msgid="7142483128948042667">"Trimiteţi un mesaj text către un număr ISDN"</string>
    <string name="sms_main" msgid="6815987840926184815">"Trimiteţi un mesaj text către numărul principal"</string>
    <string name="sms_other_fax" msgid="8649822154879781466">"Trimiteţi un mesaj text către un număr de fax"</string>
    <string name="sms_radio" msgid="8750339218480745940">"Trimiteţi un mesaj text către un număr radio"</string>
    <string name="sms_telex" msgid="5469333785775443999">"Trimiteţi un mesaj text către un număr de telex"</string>
    <string name="sms_tty_tdd" msgid="5057886576150816002">"Trimiteţi un mesaj text către TTY/TDD"</string>
    <string name="sms_work_mobile" msgid="8426872094268475047">"Trimiteţi un mesaj text către numărul de mobil de serviciu"</string>
    <string name="sms_work_pager" msgid="499303540738557836">"Trimiteţi un mesaj text către un număr de pager de serviciu"</string>
    <string name="sms_assistant" msgid="2677586547377136683">"Trimiteţi un mesaj text către <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
    <string name="sms_mms" msgid="4887206338311086612">"Trimiteţi un mesaj text către un număr MMS"</string>
    <string name="clearFrequentsConfirmation_title" msgid="1482750234535491083">"Ştergeţi pers. frecvent contactate?"</string>
    <string name="clearFrequentsConfirmation" msgid="2101370440975269958">"Veţi şterge lista cu persoanele frecvent contactate din aplicaţiile Persoane şi Telefon şi veţi forţa aplicaţiile de e-mail să reţină preferinţele dvs. pentru adrese de la zero."</string>
    <string name="clearFrequentsProgress_title" msgid="3738406170865048982">"Se şterg pers. frecvent contactate…"</string>
    <string name="status_available" msgid="4832569677396634846">"Disponibil(ă)"</string>
    <string name="status_away" msgid="6267905184545881094">"Plecat(ă)"</string>
    <string name="status_busy" msgid="7111912905211403545">"Ocupat(ă)"</string>
    <string name="contactsList" msgid="7140022347217602605">"Agendă"</string>
    <string name="local_invisible_directory" msgid="8934840494825588347">"Altele"</string>
    <string name="directory_search_label" msgid="4484648822765516947">"Director"</string>
    <string name="local_search_label" msgid="9094584931063745728">"Toată Agenda"</string>
    <string name="user_profile_contacts_list_header" msgid="8436133790234197565">"Eu"</string>
    <string name="search_results_searching" msgid="9022794597388306615">"Se caută…"</string>
    <string name="foundTooManyContacts" msgid="3060037437459313616">"S-au găsit peste <xliff:g id="COUNT">%d</xliff:g> (de) persoane de contact."</string>
    <string name="listFoundAllContactsZero" msgid="4406036083994138930">"Nu există persoane de contact"</string>
  <plurals name="searchFoundContacts">
    <item quantity="one" msgid="1013734912609351182">"S-a găsit o persoană de contact"</item>
    <item quantity="other" msgid="4649647748678161594">"S-au găsit <xliff:g id="COUNT">%d</xliff:g> (de) persoane de contact"</item>
  </plurals>
    <string name="description_quick_contact_for" msgid="6355240770807101947">"Contact rapid pentru <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="missing_name" msgid="2633118852693000081">"(Fără nume)"</string>
</resources>
