<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2006 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- This is the label underneath the icon for Calendar -->
    <string name="app_label">Calendar</string>

    <!-- Shared Labels. These labels are shared among the activities. -->
    <skip/>
    <!-- This is the label for the title or name of an event -->
    <string name="what_label">What</string>
    <!-- This is the label for the location of an event -->
    <string name="where_label">Where</string>
    <!-- This is the label for the time of an event [CHAR LIMIT=30] -->
    <string name="when_label">When</string>
    <!-- This is the label for the timezone of an event [CHAR LIMIT=30] -->
    <string name="timezone_label">Time zone</string>
    <!-- This is the label for the Guests/Attendees of an event -->
    <string name="attendees_label">Guests</string>
    <!-- Text to show when an event starts on the current day -->
    <string name="today">Today</string>
    <!-- Text to show when an event starts on the next day -->
    <string name="tomorrow">Tomorrow</string>
    <!-- Text for an event starting on the current day with a start and end time.
         For ex, "Today at 5:00pm-6:00pm" [CHAR LIMIT=NONE] -->
    <string name="today_at_time_fmt">"Today at <xliff:g id="time_interval">%s</xliff:g>"</string>
    <!-- Text for an event starting on the next day with a start and end time.
         For ex, "Tomorrow at 5:00pm-6:00pm" [CHAR LIMIT=NONE] -->
    <string name="tomorrow_at_time_fmt">"Tomorrow at <xliff:g id="time_interval">%s</xliff:g>"</string>
    <!-- Format string for a date and time description.  For ex:
         "April 19, 2012, 3:00pm - 4:00pm" [CHAR LIMIT=NONE] -->
    <string name="date_time_fmt">"<xliff:g id="date">%s</xliff:g>, <xliff:g id="time_interval">%s</xliff:g>"</string>

    <!-- Some events repeat daily, weekly, monthly, or yearly.  This is the label
         for all the choices about how often an event repeats (including the choice
         of not repeating). -->
    <string name="repeats_label">Repetition</string>
    <!-- Title of event when no explicit title is specified by the user -->
    <string name="no_title_label">(No title)</string>

    <!-- Reminder format strings -->
    <plurals name="Nminutes">
        <!-- This is the label for a 1-minute reminder. -->
        <item quantity="one">1 minute</item>
        <!-- This is the label for 2 or more minutes. The actual number of
             minutes is a parameter. -->
        <item quantity="other"><xliff:g id="count">%d</xliff:g> minutes</item>
    </plurals>
    <!-- We use the abbreviation "mins" instead of "minutes" to keep the string short.
         This is the number of minutes displayed for a calendar reminder.  For example,
         a reminder of 10 minutes would be displayed as '10 mins'.  The translation
         should use the shortest acceptable abbreviation to save space. -->
    <plurals name="Nmins">
        <!-- This is the label for a 1-minute reminder. -->
        <item quantity="one">1 min</item>
        <!-- This is the label for 2 or more minutes. The actual number of
             minutes is a parameter. -->
        <item quantity="other"><xliff:g id="count">%d</xliff:g> mins</item>
    </plurals>
    <!-- This is the number of hours displayed for a calendar reminder.  For example,
         a reminder of 1 hour would be displayed as '1 hour'.  The translation
         should use the shortest acceptable abbreviation of 'hour' to save space. -->
    <plurals name="Nhours">
        <!-- This is the label for a 1-hour reminder. -->
        <item quantity="one">1 hour</item>
        <!-- This is the label for a reminder of 2 or more hours. The actual number of
             hours is a parameter. -->
        <item quantity="other"><xliff:g id="count">%d</xliff:g> hours</item>
    </plurals>
    <!-- This is the number of days displayed for a calendar reminder.  For example,
         a reminder of 2 days would be displayed as '2 days'.  The translation
         should use the shortest acceptable abbreviation of 'day' to save space. -->
    <plurals name="Ndays">
        <!-- This is the label for a reminder of 1 day. -->
        <item quantity="one">1 day</item>
        <!-- This is the label for a reminder of 2 or more days. The actual number of
             days is a parameter. -->
        <item quantity="other"><xliff:g id="count">%d</xliff:g> days</item>
    </plurals>
    <!-- This is for displaying the week of the year near the date. Eg. "January, 2011 Week 1" -->
    <plurals name="weekN">
        <!-- Label for displaying week of the year for all week values [CHAR LIMIT=16] -->
        <item quantity="other">WEEK <xliff:g id="count">%d</xliff:g></item>
    </plurals>

    <!-- Menu items: -->
    <skip/>
    <!-- This is a label on a context menu item. Pressing this menu item to initiate
        syncing of your Calendar data with the server. [CHAR LIMIT=11] -->
    <string name="calendar_refresh"> "Refresh"</string>
    <!-- This is a label on a context menu item. Pressing this menu item displays the
         Agenda view. -->

    <!-- This is a label on a context menu item. Pressing this menu item displays the
         Day view. -->
    <string name="show_day_view">"Show day"</string>
    <!-- This is a label on a menu item. Pressing this menu item displays the
         Agenda view. -->
    <string name="agenda_view">"Agenda"</string>
    <!-- This is a label on a menu item. Pressing this menu item displays the
         Day view. -->
    <string name="day_view">"Day"</string>
    <!-- This is a label on a menu item. Pressing this menu item displays the
         Week view. -->
    <string name="week_view">"Week"</string>
    <!-- This is a label on a menu item. Pressing this menu item displays the
         Month view. -->
    <string name="month_view">"Month"</string>
    <!-- This is a label on a menu item. Pressing this menu item displays the
         details of an event. -->
    <string name="event_view">"View event"</string>
    <!-- This is a label on a menu item. Pressing this menu item allows the
         user to create a new event. -->
    <string name="event_create">"New event"</string>
    <!-- This is a label on a menu item in a popup window. Pressing this menu
         item allows the user to edit or change an existing event. -->
    <string name="event_edit">"Edit event"</string>
    <!-- This is a label on a menu item in a popup window. Pressing this menu
         item allows the user to delete an existing event. -->
    <string name="event_delete">"Delete event"</string>
    <!-- This is a label on a menu item. Pressing this menu
         item takes the user to the current day (today) in whatever view
         (Day view, Week view, Agenda view, Month view) they are currently in. -->
    <string name="goto_today">"Today"</string>
    <!-- This is a label on a menu item. Pressing this menu item allows the
         user to see the list of calendars that he is viewing and to then add
         or remove selected calendars. -->

    <!-- This is a label on a menu item. Pressing this menu item allows the
         user to view and edit his Settings (or Preferences) -->
    <string name="menu_preferences">"Settings"</string>
    <!-- This is a label on a menu item. Pressing this menu item allows the
         user to select the calendars to display [CHAR LIMIT=20] -->
    <string name="menu_select_visible_calendars">"Calendars to display"</string>
    <!-- This is a label on a menu item. Pressing this menu item allows the
         user to select the calendars to display [CHAR LIMIT=20] -->
    <string name="search">"Search"</string>
    <!-- This is a label on a menu item. Pressing this menu item hides
         the navigation controls on the right side. [CHAR LIMIT=20] -->
    <string name="hide_controls">"Hide controls"</string>
    <!-- This is a label on a menu item. Pressing this menu item shows the
         navigation controls on the right side. [CHAR LIMIT=20] -->
    <string name="show_controls">"Show controls"</string>

    <!-- Month view -->
    <skip/>

    <!-- Select Visible Calendars activity -->
    <skip/>
    <!-- Title of "My calendars" screen -->
    <string name="select_visible_calendars_title">"Calendars to display"</string>
    <!-- Synced and visible status message -->

    <!-- Synced but not visible status message -->

    <!-- not Synced or visible status message -->

    <!-- Synced status message displayed when the given calendar is stored/synced on the device
        [CHAR LIMIT=60] -->
    <string name="synced"> synced</string>
    <!-- Not synced status message displayed when the given calendar is not stored/synced on the
        device [CHAR LIMIT=60] -->
    <string name="not_synced"> not synced</string>
    <!-- Message displayed to user when an account with Calendars is not being auto-synced
        [CHAR LIMIT=120]-->
    <string name="acct_not_synced">This account isn\'t being synced so your calendars may
        not be up-to-date.</string>
    <!-- Label on button that takes user to the Accounts and Sync settings page [CHAR LIMIT=60] -->
    <string name="accounts">Accounts &amp; sync</string>

    <!-- Select Synced Calendars activity -->
    <!-- Select the set of calendars to sync [CHAR LIMIT=60] -->
    <string name="select_synced_calendars_title">Calendars to sync</string>
    <!-- Select the set of calendars to sync [CHAR LIMIT=60] -->
    <string name="select_synced_calendars_button">Calendars to sync</string>

    <!-- Event edit activity -->
    <skip/>
    <!-- The title of the screen where the user edits an event [CHAR LIMIT=17] -->

    <!-- Default value of What field (as a hint to the user) [CHAR LIMIT=15] -->
    <string name="hint_what">"Event name"</string>
    <!-- Default value of Where field (as a hint to the user)[CHAR LIMIT=15] -->
    <string name="hint_where">"Location"</string>
    <!-- Default value of Description field (as a hint to the user) [CHAR LIMIT=15]-->
    <string name="hint_description">"Description"</string>
    <!-- Default value of Attendees/Guests field (as a hint to the user) [CHAR LIMIT=10] -->
    <string name="hint_attendees">"Guests"</string>
    <!-- Toast message displayed when a new event is created -->
    <string name="creating_event">"Event created."</string>
    <!-- Toast message displayed when an existing event is saved after being modified -->
    <string name="saving_event">"Event saved."</string>
    <!-- Toast message displayed when a new event was not saved because it was empty [CHAR LIMIT=30] -->
    <string name="empty_event">"Empty event not created."</string>
    <!-- Toast message displayed when a new event with guests is created -->
    <string name="creating_event_with_guest">"Invitations will be sent."</string>
    <!-- Toast message displayed when an existing event with guests is saved after being modified -->
    <string name="saving_event_with_guest">"Updates will be sent."</string>
    <!-- Title of message displayed to indicate available calendars are being loaded when creating
         a new event -->

    <!-- Body of message displayed to indicate available calendars are being loaded when creating
         a new event -->


    <!-- Create event dialog -->
    <skip/>
    <!-- Create event dialog save button [CHAR LIMIT=10] -->
    <string name="create_event_dialog_save">Save</string>

    <!-- The alert toast is not actually being displayed for some reason. -->
    <skip/>
    <!-- the title of the alert/notification activity -->
    <string name="alert_title">Calendar notifications</string>
    <!-- Notification window messages: -->
    <skip/>

    <!-- Event info/edit screen labels:-->
    <skip/>
    <!-- This is the title of the screen used to view the details of an event -->
    <string name="event_info_title">View event</string>
    <!-- This is the title of the screen used to view the details of an invitation
         to a meeting or event -->
    <string name="event_info_title_invite">Meeting invitation</string>

    <!-- EditEventActivity specific strings: -->
    <skip/>
    <!-- Events have a start date/time and an end date/time. The display shows
         the start and end times like 'From start date To end date'. This is the
         label before the 'end date'. -->
    <string name="edit_event_to_label">To</string>
    <!-- Events have a start date/time and an end date/time. The display shows
         the start and end times like 'From start date To end date'. This is the
         label before the 'start date'. -->
    <string name="edit_event_from_label">From</string>
    <!-- Check box label that specifies if this is an all-day event -->
    <string name="edit_event_all_day_label">All day</string>
    <!-- Label for choosing one of the calendars -->
    <string name="edit_event_calendar_label">Calendar</string>
    <!-- Menu item to show all choices [CHAR LIMIT=22]-->
    <string name="edit_event_show_all">Show all</string>
    <!-- Label for the event description -->
    <string name="description_label">Description</string>
    <!-- Label for the 'Presence' of an event, which can be either 'busy' (the default)
         or 'available'  [CHAR LIMIT=15] -->
    <string name="presence_label">Show me as</string>
    <!-- Label for the 'Privacy' of an event, which can be either 'private'
         or 'public' [CHAR LIMIT=15] -->
    <string name="privacy_label">Privacy</string>
    <!-- Label for the list of reminders for an event [CHAR LIMIT=20] -->
    <string name="reminders_label">Add reminder</string>
    <!-- Title of alert shown if the user tries to create an event and has no calendars -->
    <string name="no_syncable_calendars">No calendars</string>
    <!-- Body of alert shown if the user tries to create an event and has no calendars. Users can start adding an account here. [CHAR LIMIT=NONE] -->
    <string name="no_calendars_found">Before you can add an event, you must add at least one Calendar account to your device and make a calendar visible. Touch Add Account to add an account (if you just added an account, wait for it to finish syncing and try again). Or touch Cancel and make sure at least one calendar is visible.</string>
    <!-- Body of dialog prompting the user to create an account.[CHAR LIMIT=NONE] -->
    <string name="create_an_account_desc">"Calendar works better with a Google Account.\n\n\u2022 Access it from any web browser\n\u2022 Back up your events securely"</string>
    <!-- Title of a button shown when there is no account available and the system prompt a user to add one. [CHAR LIMIT=none] -->
    <string name="add_account">Add account</string>

    <!-- View Event -->
    <skip/>
    <!-- Label for which calendar an event is part of -->
    <string name="view_event_calendar_label">Calendar:</string>
    <!-- Label for the event organizer -->
    <string name="view_event_organizer_label">Organizer:</string>
    <!-- Label for the local timezone -->

    <!-- Label for showing event color picker -->
    <string name="choose_event_color_label">Choose event color</string>
    <!-- Title for event color picker dialog -->
    <string name="event_color_picker_dialog_title">Event Color</string>
    <!-- Label for button which sets event color to default calendar color -->
    <string name="event_color_set_to_default">Set to default calendar color</string>

    <!-- Title for calendar color picker dialog -->
    <string name="calendar_color_picker_dialog_title">Calendar Color</string>
    <!-- Description for calendar color squares, which bring up the color picker. -->
    <string name="calendar_square_color_picker_description">Color picker</string>

    <!-- Label for whether the user is attending this event. This is shown when
         a user is invited to a meeting or event.  The possible answers are
         'yes', 'no', and 'maybe' (and, initially, 'no response'). -->
    <string name="view_event_response_label">Attending?</string>
    <!-- Response for whether attending an event - accepted [CHAR LIMIT=10]-->
    <string name="response_yes">Yes</string>
    <!-- Response for whether attending an event - tentative [CHAR LIMIT=10]-->
    <string name="response_maybe">Maybe</string>
    <!-- Response for whether attending an event - declined [CHAR LIMIT=10]-->
    <string name="response_no">No</string>
    <!-- Label for emailing attendees -->
    <string name="email_guests_label">Email guests</string>
    <!-- Label for emailing the organizer (when there are no attendees) -->
    <string name="email_organizer_label">Email organizer</string>
    <!-- This is shown in the popup picker when emailing attendees -->
    <string name="email_picker_label">Email with</string>
    <!-- The is shown in the email subject as the prefix appended to the event title -->
    <string translatable="false" name="email_subject_prefix">Re:\u0020</string>
    <!-- Toast message displayed when the event id was not found LIMIT=30] -->
    <string name="event_not_found">"Event not found."</string>

    <!-- Notification label for getting a map of the location. -->
    <string name="map_label">Map</string>
    <!-- Notification label for calling a phone number in the location. -->
    <string name="call_label">Call</string>

    <!-- Title of the quick response item in Settings [CHAR LIMIT=18]-->
    <string name="quick_response_settings">Quick responses</string>
    <!-- Summary of the quick response item in Settings [CHAR LIMIT=80]-->
    <string name="quick_response_settings_summary">Edit default responses when emailing guests</string>
    <!-- Title of the quick response screen in Settings->Quick Response [CHAR LIMIT=27]-->
    <string name="quick_response_settings_title">Edit quick responses</string>
    <!-- Title of the quick response item in Settings [CHAR LIMIT=18]-->
    <string name="quick_response_settings_edit_title">Quick response</string>

    <!-- Title of the dialog prompting the user choose a response when emailing guests  [CHAR LIMIT=none]-->
    <string name="quick_response_dialog_title">Choose quick response</string>
    <!-- Error to user when an email program can't be found[CHAR LIMIT=none]-->
    <string name="quick_response_email_failed">Failed to find an email program</string>
    <!-- The is shown in the email subject as the prefix appended to the event title [CHAR LIMIT=none]-->
    <string-array name="quick_response_defaults">
        <item>Running just a couple of minutes late.</item>
        <item>Be there in about 10 minutes.</item>
        <item>Go ahead and start without me.</item>
        <item>Sorry, I can\'t make it. We\'ll have to reschedule.</item>
        </string-array>
    <!-- Option to create a custom response instead of using defaults [CHAR LIMIT=none] -->
    <string name="quick_response_custom_msg">Write your own\u2026</string>

    <!-- Event Info strings-->
    <!-- Time Zone Label [CHAR LIMIT=12]-->

    <!-- Repetition Label [CHAR LIMIT=12]-->

    <!-- Organizer Label [CHAR LIMIT=12]-->
    <string name="event_info_organizer">Organizer:</string>
    <!-- Reminders label [CHAR LIMIT=15]-->
    <string name="event_info_reminders_label">Reminders</string>

    <!-- Agenda View strings -->
    <skip/>
    <!-- This is shown as part of the heading at the top of a list of today's events. -->
    <string name="agenda_today">TODAY, <xliff:g id="date">%1$s</xliff:g></string>
    <!-- This is shown as part of the heading at the top of a list of today's events. -->
    <string name="agenda_yesterday">YESTERDAY, <xliff:g id="date">%1$s</xliff:g></string>
    <!-- This is shown as part of the heading at the top of a list of today's events. -->
    <string name="agenda_tomorrow">TOMORROW, <xliff:g id="date">%1$s</xliff:g></string>
    <!-- This is shown while the calendar events are being loading to the screen. -->
    <string name="loading">Loading\u2026</string>
    <!-- This is shown at the top of the agenda view showing the beginning of the searched range. If the user taps on this string and Calendar will find events older than what is visible and display them to the user -->
    <string name="show_older_events">Touch to view events before <xliff:g id="oldest_search_range">%1$s</xliff:g></string>
    <!-- This is shown at the bottom of the agenda view showing the end of the searched range. If the user taps on this string and Calendar will find events later/newer than what is visible and display them to the user -->
    <string name="show_newer_events">Touch to view events after <xliff:g id="newest_search_range">%1$s</xliff:g></string>

    <!-- Search activity strings -->
    <skip/>
    <!-- Title of the search screen [CHAR LIMIT=30] -->
    <string name="search_title">Search my calendars</string>

    <!-- Button labels: -->
    <skip/>
    <!-- This is the title of a popup window that is displayed when the user
         edits a repeating event. [CHAR LIMIT=20]-->
    <string name="edit_event_label">"Details"</string>
    <!-- This is a menu button for switching into edit mode when viewing an event.
        [CHAR LIMIT=10] -->
    <string name="edit_label">"Edit"</string>
    <!-- The button label for deleting an event -->
    <string name="delete_label">"Delete"</string>
    <!-- A menu item for deleting an event -->

    <!-- The button label for saving an event -->
    <string name="save_label">Done</string>
    <!-- The button label for discarding changes to an event -->
    <string name="discard_label">Cancel</string>

    <!-- Button labels on expanded notification reminders: -->
    <skip/>
    <!-- The button label for making the reminder alarms go away temporarily.
         The reminder alarms will fire off again in 5 minutes. -->
    <string name="snooze_all_label">"Snooze all"</string>
    <!-- The button label for dismissing all the current reminder alarms. This
         causes them to disappear from the notification screen. -->
    <string name="dismiss_all_label">"Dismiss all"</string>
    <!-- The button label for making the reminder alarms go away temporarily
         and re-fire in 5 minutes. [CHAR LIMIT=12]-->
    <string name="snooze_label">"Snooze"</string>

    <!-- Repetition dialog options: -->
    <skip/>
    <!-- A label in a multiple-choice list for the specifying that an event does
         not repeat -->
    <string name="does_not_repeat">One-time event</string>
    <!-- Part of a description of an repeating event. This part states the date when a repeating
         event ends. The part before the semi-colon describes how it repeats.
         e.g. Every 2 weeks; until 1/1/2030 [CHAR LIMIT=21] -->
    <string name="endByDate">; until <xliff:g id="date">%s</xliff:g></string>
    <!-- Part of a description of an repeating event. This part how many times the event repeats.
         The part before the semi-colon describes how it repeats.
         e.g. Every 2 weeks; for 15 times [CHAR LIMIT=15] -->
    <plurals name="endByCount">
        <item quantity="one">; for one time</item>
        <item quantity="other">; for <xliff:g id="number">%d</xliff:g> times</item>
    </plurals>
    <!-- A description for an event that repeats daily. For example, Every 2 days [CHAR LIMIT=15]-->
    <plurals name="daily">
        <item quantity="one">Daily</item>
        <item quantity="other">Every <xliff:g id="number">%d</xliff:g> days</item>
    </plurals>
    <!-- A label in a multiple-choice list for the specifying that an event
         repeats every weekday (Monday through Friday) -->
    <string name="every_weekday">"Every weekday (Mon\u2013Fri)"</string>
    <!-- A description for an event that repeats weekly on some day of the week. For example,
         'Weekly on Tuesday' or Every 2 weeks on Monday, Tuesday.  [CHAR LIMIT=25]-->
    <plurals name="weekly">
        <item quantity="one">Weekly on <xliff:g id="days_of_week">%2$s</xliff:g></item>
        <item quantity="other">Every <xliff:g id="number">%1$d</xliff:g> weeks on <xliff:g id="days_of_week">%2$s</xliff:g></item>
    </plurals>

    <!-- Example: 'Monthly (every first Sunday)' -->
    <!--   1st parameter is an ordinal number, like 'first' -->
    <!--   2nd parameter is a day of the week, like 'Sunday' -->
    <string name="monthly_on_day_count">"Monthly (every <xliff:g id="ordinal_number">%1$s</xliff:g> <xliff:g id="day_of_week">%2$s</xliff:g>)"</string>
    <!-- The common portion of a string describing how often an event repeats,
         example: 'Monthly (on day 2)' -->
    <string name="monthly">Monthly</string>
    <!-- Calendar spinner item, to select that an event recurs every year. -->
    <string name="yearly_plain">Yearly</string>
    <!-- Example: "Monthly (on day 15)" -->
    <string name="monthly_on_day">"Monthly (on day <xliff:g id="day_of_month">%s</xliff:g>)"</string>
    <!-- Example: "Yearly (on April 15)" -->
    <string name="yearly">"Yearly (on <xliff:g id="dates">%s</xliff:g>)"</string>
    <!-- This is a label for telling the user that this event repeats in
         custom (non-standard) way from the usual repeat rates (such as daily,
         weekly, etc.) and that the user cannot change this on the phone
         (but only on the web). -->
    <string name="custom" product="tablet">"Custom (can\'t customize on tablet)"</string>
    <!-- This is a label for telling the user that this event repeats in
         custom (non-standard) way from the usual repeat rates (such as daily,
         weekly, etc.) and that the user cannot change this on the phone
         (but only on the web). -->
    <string name="custom" product="default">"Custom (can\'t customize on phone)"</string>

    <!-- This is a choice in a list that the user sees when he tries to modify
         a repeating event.  This choice says to change just this one instance
         of this repeating event. -->
    <string name="modify_event">Change only this event</string>
    <!-- This is a choice in a list that the user sees when he tries to modify
         a repeating event.  This choice says to change all occurrences of
         this repeating event. -->
    <string name="modify_all">Change all events in the series</string>
    <!-- This is a choice in a list that the user sees when he tries to modify
         a repeating event.  This choice says to change this instance and all
         future occurrences of this repeating event. -->
    <string name="modify_all_following">Change this and all future events</string>

    <!-- Dialogs -->

    <!-- This is a label on the dialog for creating a new event. [CHAR LIMIT=30] -->
    <string name="new_event_dialog_label">"New event"</string>
    <!-- This is the button to create a new event in a dialog window. [CHAR LIMIT=30] -->
    <string name="new_event_dialog_option">"New event"</string>
    <!-- Confirmation dialog message -->
    <skip/>
    <!-- This is a confirmation message in a popup dialog that appears when the
         user has asked to delete an event. The user still has a chance to cancel
         this operation. -->
    <string name="delete_this_event_title">Delete this event?</string>
    <!-- This is a confirmation message in a popup dialog that appears when the
         user has asked to delete an event that is recurring. The user still has a chance to cancel
         this operation. -->
    <string name="delete_recurring_event_title">Delete <xliff:g id="eventtitle">%s</xliff:g>?</string>
    <!-- This is the title of a popup dialog that asks for confirmation before
         changing the response to an invitation. -->
    <string name="change_response_title">Change response</string>

    <!-- This the title of a menu for General Preferences.
         Pressing the menu item lets user to view and edit his general settings
         (or preferences) [CHAR LIMIT=30] -->
    <string name="menu_general_preferences">General settings</string>

    <!-- This the title of a menu for "About Calendar" Preferences.
         Pressing the menu item lets user to view the current settings
         [CHAR LIMIT=30] -->
    <string name="menu_about_preferences">About Calendar</string>

    <!-- This is the title of the screen for setting user preferences. -->
    <string name="preferences_title">"Settings"</string>
    <!-- This is the title of a section in the Settings screen for settings
         related to viewing calendar events -->
    <string name="preferences_general_title">Calendar view setting</string>
    <!-- This is the title of a section in the Settings screen for settings
         related to reminders for calendar events -->
    <string name="preferences_reminder_title">Notifications \u0026 reminders</string>
    <!-- Settings check box label to hide events that the user has declined to attend -->
    <string name="preferences_hide_declined_title">Hide declined events</string>
    <!-- Settings week start label to start week on specific day-->
    <string name="preferences_week_start_day_title">Week starts on</string>
    <!-- Title of popup for week start day setting-->
    <string name="preferences_week_start_day_dialog">Week starts on</string>
    <!-- DO NOT TRANSLATE -->
    <string name="preferences_week_start_day_default">-1</string>
    <!-- Title of the settings item to clear the recent search history [CHAR LIMIT=40] -->
    <string name="preferences_clear_search_history_title">Clear search history</string>
    <!-- Summary of the settings item to clear the recent search history [CHAR LIMIT=70]-->
    <string name="preferences_clear_search_history_summary">Remove all the searches you\'ve performed</string>
    <!-- Message to show in a toast when the history is cleared [CHAR LIMIT=40] -->
    <string name="search_history_cleared">Search history cleared.</string>
    <!-- Settings check box label to enable or disable notifications -->
    <string name="preferences_alerts_title">Notifications</string>
    <!-- Settings dialog label that specifies when the phone should vibrate -->
    <string name="preferences_alerts_vibrateWhen_title">Vibrate</string>
    <!-- The old value for enabling vibration. used only for migrating -->
    <string translatable="false" name="prefDefault_alerts_vibrate_true">always</string>
    <!-- Title of ringtone selector dialog -->
    <string name="preferences_alerts_ringtone_title">Sound</string>
    <!-- Title of check box label to enable or disable pop-up notifications -->
    <string name="preferences_alerts_popup_title">Pop-up notification</string>
    <!-- List item label for setting the default number of reminder minutes -->
    <string name="preferences_default_reminder_title">Default reminder time</string>
    <!-- Title of dialog for setting the default number of reminder minutes -->
    <string name="preferences_default_reminder_dialog">Default reminder time</string>
    <!-- Default value for the number of reminder minutes -->
    <string name="preferences_default_reminder_default">10</string>
    <!-- Settings check box label to keep Calendar in a fixed 'home' time zone [CHAR LIMIT = 18] -->
    <string name="preferences_use_home_tz_title">Use home time zone</string>
    <!-- Settings description of what setting Calendar to use a fixed 'home' time
        zone does [CHAR LIMIT = 60]-->
    <string name="preferences_use_home_tz_descrip">Displays calendars and event times in your home time zone when traveling</string>
    <!-- Settings title for selecting a 'home' time zone to display Calendar in [CHAR LIMIT = 18] -->
    <string name="preferences_home_tz_title">Home time zone</string>
    <!-- DO NOT TRANSLATE -->
    <string name="preferences_home_tz_default">America/Los_Angeles</string>

    <!-- Title of the settings item to show week number in week view [CHAR LIMIT=40] -->
    <string name="preferences_show_week_num_title">Show week number</string>

    <!-- This is the title of a section in the Settings screen for "About" this application -->
    <string name="preferences_about_title">About</string>
    <!-- Build version of the application -->
    <string name="preferences_build_version">Build version</string>

    <!-- Widget -->
    <skip/>
    <!-- Title for calendar gadget when displayed in list of all other gadgets -->
    <string name="gadget_title">Calendar</string>

    <!-- Shown in month view next to event icon when additional events exist for that day, but no
        room remaining -->
    <plurals name="month_more_events">
        <!-- additional events message for 1 event, the quotes force a literal interpretation of the
            string [CHAR LIMIT = 10] -->
        <item quantity="one">"+1"</item>
        <!-- additional events message for multiple events [CHAR LIMIT = 10] -->
        <item quantity="other">+<xliff:g id="number">%d</xliff:g></item>
    </plurals>

    <!-- Caption to show on gadget when there are no upcoming calendar events -->
    <string name="gadget_no_events">No upcoming calendar events</string>

    <!-- Text to show on gadget when an event is currently in progress -->


    <!-- Text to show on gadget when an all-day event is in progress -->


    <!-- DO NOT TRANSLATE -->
    <string name="tardis">TARDIS</string>

    <!-- Experimental settings [CHAR LIMIT = 30]-->
    <string name="preferences_experimental_category">Experimental</string>

    <!-- Reminders settings [CHAR LIMIT = 30]-->
    <string name="preferences_reminders_category">Reminders</string>
    <!-- Preference label for when to skip reminders [CHAR LIMIT = 25] -->
    <string name="preferences_reminders_responded_label">Skip Reminders</string>
    <!-- Dialog title for when to skip reminders [CHAR LIMIT = 25] -->
    <string name="preferences_reminders_responded_dialog">Skip Reminders</string>
    <!-- Preference label for quiet hours [CHAR LIMIT = 25]-->
    <string name="preferences_reminders_quiet_hours_label">Quiet hours</string>
    <!-- Preference description for quiet hours [CHAR LIMIT = NONE]-->
    <string name="preferences_reminders_quiet_hours_description">Silence event reminders during specified time.</string>
    <!-- Preference label for quiet hours start time [CHAR LIMIT = 25]-->
    <string name="preferences_reminders_quiet_hours_start">Quiet hours start time</string>
    <!-- Preference label for quiet hours end time [CHAR LIMIT = 25]-->
    <string name="preferences_reminders_quiet_hours_end">Quiet hours end time</string>

    <!-- Preferences used for debugging purposes [CHAR LIMIT = 30]-->
    <string name="preferences_debug_category">Debugging</string>

    <!-- Send a copy of the database to developers for debugging [CHAR LIMIT="NONE"] -->
    <string name="copy_db">Send database</string>

    <!-- Displayed in email address autocomplete list when searching for contacts
         in corporate directories. Example:  "Searching bigcompany.com..." [CHAR LIMIT=64] -->
    <string name="directory_searching_fmt">Searching <xliff:g id="domain">%s</xliff:g>\u2026</string>

    <!-- Accessibility Events -->
    <!-- Strings that describes actions for buttons without text -->
    <!-- Create a new calendar event [CHAR LIMIT = NONE]-->

    <!-- Remove a name of an attendee from a calendar event [CHAR LIMIT = NONE]-->
    <string name="accessibility_remove_attendee">Remove attendee</string>
    <!-- Pick a starting date for a new event [CHAR LIMIT = NONE]-->
    <string name="accessibility_pick_start_date">Start date</string>
    <!-- Pick a starting time for a new event [CHAR LIMIT = NONE]-->
    <string name="accessibility_pick_start_time">Start time</string>
    <!-- Pick the ending date for a new event [CHAR LIMIT = NONE]-->
    <string name="accessibility_pick_end_date">End date</string>
    <!-- Pick the ending time for a new event[CHAR LIMIT = NONE]-->
    <string name="accessibility_pick_end_time">End time</string>
    <!-- Select a time zone for a new event [CHAR LIMIT = NONE]-->
    <string name="accessibility_pick_time_zone">Time zone</string>
    <!-- Select a time zone for a new event [CHAR LIMIT = NONE]-->
    <string name="accessibility_pick_recurrence">Repeat event</string>
    <!-- Add a reminder to an event [CHAR LIMIT = NONE]-->
    <string name="accessibility_add_reminder">Add reminder</string>
    <!-- Remove a reminder from an event [CHAR LIMIT = NONE]-->
    <string name="accessibility_remove_reminder">Remove reminder</string>
    <!-- Add a new attendee to an event [CHAR LIMIT = NONE]-->
    <string name="accessibility_add_attendee">Add attendee</string>
    <!-- Choose if to sync/unsync this calendar with its server [CHAR LIMIT = NONE]-->
    <string name="accessibility_sync_cal">Sync calendar</string>
    <!-- Mark this event as an "all day event" [CHAR LIMIT = NONE]-->
    <string name="accessibility_all_day">All day event</string>
    <!-- Refresh the data in the calendar [CHAR LIMIT = NONE]-->

    <!-- Choose the type of repetition for the event (daily, weekly, etc.[CHAR LIMIT = NONE]-->
    <string name="accessibility_repeats">Repetition</string>
    <!-- Set the time for the reminder[CHAR LIMIT = NONE]-->
    <string name="accessibility_reminder_time">Reminder time</string>
    <!-- Set the type of the reminder (popup/email/sms)[CHAR LIMIT = NONE]-->
    <string name="accessibility_reminder_type">Reminder type</string>
    <!-- Select the way you are visible for the event (busy/free) [CHAR LIMIT = NONE]-->
    <string name="accessibility_reminder_showmeas">Show me as</string>
    <!-- Set the event as private/public/default [CHAR LIMIT = NONE]-->
    <string name="accessibility_reminder_privacy">Privacy</string>
    <!-- Calendar notification [CHAR LIMIT = NONE]-->
    <string name="acessibility_cal_notification">Calendar Notification</string>
    <!-- Calendar notification snooze button [CHAR LIMIT = NONE]-->
    <string name="acessibility_snooze_notification">Snooze Notification</string>
    <!-- Calendar notification email button [CHAR LIMIT = NONE]-->
    <string name="accessibility_email_notification">Email guests</string>

    <!-- A "new event" hint for the user when selecting a specific hour in the day view [CHAR LIMIT = 30]-->
    <string name="day_view_new_event_hint">+ New event</string>

    <!--
      Source: A value for announcing the current event index (example: "Event 2 of 6").
      Description: This is spoken to the user. [CHAR LIMIT="NONE"]
    -->
    <string name="template_announce_item_index">Event <xliff:g id="item_index">%1$s</xliff:g> of <xliff:g id="item_count">%2$s</xliff:g>.</string>

        <!-- number of events in the notification bar -->
    <plurals name="Nevents">
        <!-- This is the label for a 1 event. -->
        <item quantity="one">1 event</item>
        <!-- This is the label for 2 or more events. -->
        <item quantity="other"><xliff:g id="count">%d</xliff:g> events</item>
    </plurals>

    <!-- number of remaining events for an alert digest in the notification bar [CHAR LIMIT = 30] -->
    <plurals name="N_remaining_events">
        <!-- This is the label for 1 event. -->
        <item quantity="one">+1 event</item>
        <!-- This is the label for 2 or more events. -->
        <item quantity="other">+<xliff:g id="count">%d</xliff:g> events</item>
    </plurals>

    <!-- Description of the selected marker for accessibility support [CHAR LIMIT = NONE]-->
    <string name="acessibility_selected_marker_description">Selected event</string>

    <!-- Tell user not to check a checkbox [CHAR LIMIT=30] -->
    <string name="do_not_check">Do NOT check -></string>

    <!-- Dialog title for recurrence picker for configuring a repeating event[CHAR LIMIT=20] -->
    <string name="recurrence_dialog_title">Repeat</string>
    <!-- Dialog title for recurrence picker when one-time event is selected [CHAR LIMIT=20] -->
    <string name="recurrence_dialog_title_never">Never repeats</string>

    <!-- Strings to describe how frequently to repeat an event (e.g. every 5 days) -->
    <plurals name="recurrence_interval_daily">
        <!-- Singular form [CHAR LIMIT=30] -->
        <item quantity="one">Every <xliff:g id="count">%d</xliff:g> day</item>
        <!-- Plural form [CHAR LIMIT=30] -->
        <item quantity="other">Every <xliff:g id="count">%d</xliff:g> days</item>
    </plurals>
    <!-- Strings to describe how frequently to repeat an event (e.g. every 5 weeks) -->
    <plurals name="recurrence_interval_weekly">
        <!-- Singular form [CHAR LIMIT=30] -->
        <item quantity="one">Every <xliff:g id="count">%d</xliff:g> week</item>
        <!-- Plural form [CHAR LIMIT=30] -->
        <item quantity="other">Every <xliff:g id="count">%d</xliff:g> weeks</item>
    </plurals>
    <!-- Strings to describe how frequently to repeat an event (e.g. every 5 months) -->
    <plurals name="recurrence_interval_monthly">
        <!-- Singular form [CHAR LIMIT=30] -->
        <item quantity="one">Every <xliff:g id="count">%d</xliff:g> month</item>
        <!-- Plural form [CHAR LIMIT=30] -->
        <item quantity="other">Every <xliff:g id="count">%d</xliff:g> months</item>
    </plurals>
    <!-- Strings to describe how frequently to repeat an event (e.g. every 5 years) -->
    <plurals name="recurrence_interval_yearly">
        <!-- Singular form [CHAR LIMIT=30] -->
        <item quantity="one">Every <xliff:g id="count">%d</xliff:g> year</item>
        <!-- Plural form [CHAR LIMIT=30] -->
        <item quantity="other">Every <xliff:g id="count">%d</xliff:g> years</item>
    </plurals>

    <!-- Repeat an monthly event on the same day of every month [CHAR LIMIT=20] -->
    <string name="recurrence_month_pattern_by_day">on the same day each month</string>
    <!-- Repeat an monthly event on the same nth day of the week of every month.
         For example, on every second Tuesday [CHAR LIMIT=30] -->
    <string name="recurrence_month_pattern_by_day_of_week">on every <xliff:g id="nth">%1$s</xliff:g> <xliff:g id="day_of_week">%2$s</xliff:g></string>

    <!-- Specifies that a repeating event to repeat forever (based on the defined frequency) instead of ending at a future date[CHAR LIMIT=25] -->
    <string name="recurrence_end_continously">Forever</string>
    <!-- Specifies that a repeating event to repeat until a certain date[CHAR LIMIT=25] -->
    <string name="recurrence_end_date_label">Until a date</string>
    <!-- Specifies that a repeating event to repeat until a certain date[CHAR LIMIT=25] -->
    <string name="recurrence_end_date">Until <xliff:g id="date">%s</xliff:g></string>
    <!-- Specifies that a repeating event to repeat for a number of times. A repeating event can repeat forever, repeat in a certain frequency until a certain date, or repeat for a number of times. e.g. repeat 10 times and stop. This string is for the last case [CHAR LIMIT=25] -->
    <string name="recurrence_end_count_label">For a number of events</string>

    <!-- Specifies that a repeating event should repeat for a certain number of iterations. -->
    <plurals name="recurrence_end_count">
        <item quantity="one">For <xliff:g id="event_count">%d</xliff:g> event</item>
        <item quantity="other">For <xliff:g id="event_count">%d</xliff:g> events</item>
    </plurals>

    <!-- Description of the selected marker for accessibility support [CHAR LIMIT = NONE]-->
    <string name="acessibility_recurrence_choose_end_date_description">change end date</string>

</resources>
