<?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">"Testo copiato"</string>
    <string name="call_custom" msgid="2786306789889210756">"Chiama <xliff:g id="CUSTOM">%s</xliff:g>"</string>
    <string name="call_home" msgid="1479549630992276827">"Chiama casa"</string>
    <string name="call_mobile" msgid="8618334085824709009">"Chiama cellulare"</string>
    <string name="call_work" msgid="8299062439076337075">"Chiama n. lavoro"</string>
    <string name="call_fax_work" msgid="3770754834467992571">"Chiama fax lavoro"</string>
    <string name="call_fax_home" msgid="6219051113573396065">"Chiama fax casa"</string>
    <string name="call_pager" msgid="3038080882899955112">"Chiama cercapersone"</string>
    <string name="call_other" msgid="4472141328347894937">"Chiama"</string>
    <string name="call_callback" msgid="687494744634190411">"Chiama n. di richiamata"</string>
    <string name="call_car" msgid="9078083109758282133">"Chiama auto"</string>
    <string name="call_company_main" msgid="8768047233970315359">"Chiama azienda (principale)"</string>
    <string name="call_isdn" msgid="3342482563847537747">"Chiama ISDN"</string>
    <string name="call_main" msgid="4640261071249938558">"Chiama principale"</string>
    <string name="call_other_fax" msgid="2536328553125487877">"Chiama fax"</string>
    <string name="call_radio" msgid="9055749313292712021">"Chiama radiotelefono"</string>
    <string name="call_telex" msgid="2909886619224843563">"Chiama telex"</string>
    <string name="call_tty_tdd" msgid="6704940636171078852">"Chiama TTY/TDD"</string>
    <string name="call_work_mobile" msgid="4408630608955148641">"Chiama n. cellulare lavoro"</string>
    <string name="call_work_pager" msgid="3036932765279753793">"Chiama cercapersone lavoro"</string>
    <string name="call_assistant" msgid="5188990854852312696">"Chiama <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
    <string name="call_mms" msgid="8998771923464696960">"Chiama MMS"</string>
    <string name="sms_custom" msgid="4601748252470175865">"SMS a <xliff:g id="CUSTOM">%s</xliff:g>"</string>
    <string name="sms_home" msgid="7765831490534280540">"SMS a casa"</string>
    <string name="sms_mobile" msgid="8387632124165893103">"SMS a cellulare"</string>
    <string name="sms_work" msgid="3910570578912367742">"SMS a lavoro"</string>
    <string name="sms_fax_work" msgid="909086167151248212">"SMS a fax lavoro"</string>
    <string name="sms_fax_home" msgid="4145442497939634875">"SMS a fax casa"</string>
    <string name="sms_pager" msgid="5664381349583724906">"SMS a cercapersone"</string>
    <string name="sms_other" msgid="910895193552957097">"Invia SMS"</string>
    <string name="sms_callback" msgid="728414485478941361">"SMS a n. di richiamata"</string>
    <string name="sms_car" msgid="8543669230270954512">"SMS a auto"</string>
    <string name="sms_company_main" msgid="5441902128445061862">"SMS a n. azienda principale"</string>
    <string name="sms_isdn" msgid="7142483128948042667">"SMS a ISDN"</string>
    <string name="sms_main" msgid="6815987840926184815">"SMS a principale"</string>
    <string name="sms_other_fax" msgid="8649822154879781466">"SMS a fax"</string>
    <string name="sms_radio" msgid="8750339218480745940">"SMS a n. radiotelefono"</string>
    <string name="sms_telex" msgid="5469333785775443999">"SMS a telex"</string>
    <string name="sms_tty_tdd" msgid="5057886576150816002">"SMS a TTY/TDD"</string>
    <string name="sms_work_mobile" msgid="8426872094268475047">"SMS a cellulare lavoro"</string>
    <string name="sms_work_pager" msgid="499303540738557836">"SMS a cercapersone lavoro"</string>
    <string name="sms_assistant" msgid="2677586547377136683">"SMS a <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
    <string name="sms_mms" msgid="4887206338311086612">"SMS a MMS"</string>
    <string name="clearFrequentsConfirmation_title" msgid="1482750234535491083">"Cancellare contattati di frequente?"</string>
    <string name="clearFrequentsConfirmation" msgid="2101370440975269958">"Cancellerai l\'elenco degli utenti contattati di frequente nelle applicazioni Persone e Telefono e imposterai l\'acquisizione forzata delle tue preferenze di indirizzamento da zero nelle applicazioni email."</string>
    <string name="clearFrequentsProgress_title" msgid="3738406170865048982">"Cancellazione contattati di frequente…"</string>
    <string name="status_available" msgid="4832569677396634846">"Disponibile"</string>
    <string name="status_away" msgid="6267905184545881094">"Assente"</string>
    <string name="status_busy" msgid="7111912905211403545">"Occupato"</string>
    <string name="contactsList" msgid="7140022347217602605">"Contatti"</string>
    <string name="local_invisible_directory" msgid="8934840494825588347">"Altro"</string>
    <string name="directory_search_label" msgid="4484648822765516947">"Directory"</string>
    <string name="local_search_label" msgid="9094584931063745728">"Tutti i contatti"</string>
    <string name="user_profile_contacts_list_header" msgid="8436133790234197565">"Io"</string>
    <string name="search_results_searching" msgid="9022794597388306615">"Ricerca…"</string>
    <string name="foundTooManyContacts" msgid="3060037437459313616">"Più di <xliff:g id="COUNT">%d</xliff:g> trovati."</string>
    <string name="listFoundAllContactsZero" msgid="4406036083994138930">"Nessun contatto"</string>
  <plurals name="searchFoundContacts">
    <item quantity="one" msgid="1013734912609351182">"1 trovato"</item>
    <item quantity="other" msgid="4649647748678161594">"<xliff:g id="COUNT">%d</xliff:g> trovati"</item>
  </plurals>
    <string name="description_quick_contact_for" msgid="6355240770807101947">"Accesso rapido ai contatti per <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="missing_name" msgid="2633118852693000081">"(Nessun nome)"</string>
    <!-- no translation found for favoritesFrequentCalled (6600127125011757687) -->
    <skip />
    <!-- no translation found for favoritesFrequentContacted (2849493314447751970) -->
    <skip />
    <string name="description_view_contact_detail" msgid="2756753096193839285">"Visualizza contatto"</string>
    <!-- no translation found for list_filter_phones (3692815632088465422) -->
    <skip />
</resources>
