<?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="calendar_storage" msgid="5387668002987562770">"Kalendāra krātuve"</string>
    <string name="upgrade_msg" msgid="2792831029435070926">"Notiek kalendāra datu bāzes jaunināšana."</string>
    <string name="calendar_default_name" msgid="6924293766625167275">"Noklusējums"</string>
    <string name="calendar_info" msgid="6687678621418059281">"Kalendāra dati"</string>
    <string name="calendar_info_error" msgid="5575162446528419982">"Kļūda"</string>
    <string name="calendar_info_no_calendars" msgid="4287534468186704433">"Nav kalendāru"</string>
    <string name="calendar_info_events" msgid="1805502308105103803">"Pasākumi: <xliff:g id="EVENTS">%1$d</xliff:g>"</string>
    <string name="calendar_info_events_dirty" msgid="8879392112564499515">"Pasākumi: <xliff:g id="EVENTS_0">%1$d</xliff:g>, nesaglabāti: <xliff:g id="DIRTY_EVENTS">%2$d</xliff:g>"</string>
    <string name="provider_label" msgid="2306513350843464739">"Kalendārs"</string>
    <string name="debug_tool_delete_button" msgid="5052706251268452090">"Dzēst tagad"</string>
    <string name="debug_tool_start_button" msgid="5384780896342913563">"Sākt"</string>
    <string name="debug_tool_message" msgid="4862486669932821937">"Jūs gatavojaties 1) SD kartē/USB atmiņā izveidot kalendāra datu bāzes kopiju, kuru var nolasīt jebkura lietotne, un 2) nosūtīt to pa e-pastu. Tiklīdz būsiet to veiksmīgi pārkopējis no ierīces vai būsiet saņēmis e-pasta ziņojumu, neaizmirstiet izdzēst šo kopiju."</string>
    <string name="debug_tool_email_sender_picker" msgid="2000311987477419397">"Izvēlieties programmu faila nosūtīšanai"</string>
    <string name="debug_tool_email_subject" msgid="2403590332256471194">"Kalendāra datu bāze ir pievienota"</string>
    <string name="debug_tool_email_body" msgid="4835949635324134017">"Pielikumā ir mana kalendāra datu bāze ar visiem tikšanās ierakstiem un personas informāciju. Izmantojiet to uzmanīgi!"</string>
</resources>
