<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2009 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="sharedUserLabel" msgid="8024311725474286801">"Androidin ydinsovellukset"</string>
    <string name="app_label" msgid="3389954322874982620">"Yhteystietojen tallennus"</string>
    <string name="provider_label" msgid="6012150850819899907">"Yhteystiedot"</string>
    <string name="upgrade_msg" msgid="8640807392794309950">"Päivitetään yhteystietojen tietokantaa."</string>
    <string name="upgrade_out_of_memory_notification_ticker" msgid="7638747231223520477">"Yhteystietojen päivittämiseen tarvitaan enemmän muistia."</string>
    <string name="upgrade_out_of_memory_notification_title" msgid="8888171924684998531">"Päivitetään yhteystietojen tallennustilaa"</string>
    <string name="upgrade_out_of_memory_notification_text" msgid="8438179450336437626">"Suorita päivitys loppuun koskettamalla."</string>
    <string name="default_directory" msgid="93961630309570294">"Yhteystiedot"</string>
    <string name="local_invisible_directory" msgid="705244318477396120">"Muu"</string>
    <string name="read_write_all_voicemail_label" msgid="4557216100818257560">"Kaikkien vastaajaviestien käyttäminen"</string>
    <string name="read_write_all_voicemail_description" msgid="8029809937805761356">"Antaa sovelluksen tallentaa ja hakea kaikki vastaajaviestit, jotka ovat laitteen käytettävissä."</string>
    <string name="voicemail_from_column" msgid="435732568832121444">"Vastaajaviesti henkilöltä "</string>
    <string name="debug_dump_title" msgid="4916885724165570279">"Kopioi kontaktitietokanta"</string>
    <string name="debug_dump_database_message" msgid="406438635002392290">"Olet aikeissa 1) tehdä sisäiseen tallennustilaan kopion tietokannasta, joka sisältää kaikki yhteystietoihin liittyvät tiedot ja puhelulokit ja 2) lähettää sen. Muista poistaa kopio heti kopioituasi sen laitteelta tai kun sähköposti on vastaanotettu."</string>
    <string name="debug_dump_delete_button" msgid="7832879421132026435">"Poista nyt"</string>
    <string name="debug_dump_start_button" msgid="2837506913757600001">"Aloita"</string>
    <string name="debug_dump_email_sender_picker" msgid="3534420908672176460">"Valitse ohjelma tiedoston lähettämiseen"</string>
    <string name="debug_dump_email_subject" msgid="108188398416385976">"Kontaktitietokanta liitteenä"</string>
    <string name="debug_dump_email_body" msgid="4577749800871444318">"Liitteenä on kontaktitietokantani, joka sisältää kaikki kontaktitietoni. Käsiteltävä varoen."</string>
</resources>
