<?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">"Osrednje aplikacije sistema Android"</string>
    <string name="app_label" msgid="3389954322874982620">"Shramba za stike"</string>
    <string name="provider_label" msgid="6012150850819899907">"Stiki"</string>
    <string name="upgrade_out_of_memory_notification_ticker" msgid="7638747231223520477">"Za nadgradnjo stikov je potrebno več pomnilnika"</string>
    <string name="upgrade_out_of_memory_notification_title" msgid="8888171924684998531">"Nadgradnja shrambe za stike"</string>
    <string name="upgrade_out_of_memory_notification_text" msgid="2581831842693151968">"Dotaknite se, če želite dokončati nadgradnjo."</string>
    <string name="default_directory" msgid="93961630309570294">"Stiki"</string>
    <string name="local_invisible_directory" msgid="705244318477396120">"Drugo"</string>
    <string name="voicemail_from_column" msgid="435732568832121444">"Govorna pošta s številke "</string>
    <string name="debug_dump_title" msgid="4916885724165570279">"Kopiraj zbirko podatkov o stikih"</string>
    <string name="debug_dump_database_message" msgid="406438635002392290">"V naslednjem koraku boste 1) naredili kopijo zbirke podatkov, ki vključuje vse informacije o stikih in celoten dnevnik klicev, v notranji pomnilnik ter 2) jo poslali. Ne pozabite izbrisati kopije iz naprave, ko jo boste uspešno kopirali oziroma ko jo boste prejeli po e-pošti."</string>
    <string name="debug_dump_delete_button" msgid="7832879421132026435">"Izbriši zdaj"</string>
    <string name="debug_dump_start_button" msgid="2837506913757600001">"Začni"</string>
    <string name="debug_dump_email_sender_picker" msgid="3534420908672176460">"Izberite aplikacijo za pošiljanje datoteke"</string>
    <string name="debug_dump_email_subject" msgid="108188398416385976">"Priložena zbirka podatkov o stikih"</string>
    <string name="debug_dump_email_body" msgid="4577749800871444318">"Priložena je zbirka podatkov z vsemi informacijami o stikih. Z e-pošto ravnajte previdno."</string>
</resources>
