<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright (C) 2015 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">
    <string name="action_text_done">Done</string>
    <string name="action_text_skip">Skip</string>
    <string name="action_text_retry">Retry</string>
    <!-- The episode display format with season and episode number used in series details view.
    "S" is an abbreviation for Season and "Ep." is an abbreviation for episode.  ":" is used as a separator.
    For example, "S1: Ep. 1"-->
    <string name="display_episode_number_format">S<xliff:g id="season_number" example="1">%1$s</xliff:g>: Ep.<xliff:g id="episode_number" example="1">%2$s</xliff:g></string>
    <!-- The episode display format with episode number used in series details view.
    "Ep." is an abbreviation for episode.
    For example, "Ep. 1" -->
    <string name="display_episode_number_format_no_season_number">Ep.<xliff:g id="episode_number" example="1">%1$s</xliff:g></string>
    <!-- The episode title format displayed on the info banner.
    "S" is an abbreviation for Season and Ep. is an abbreviation for episode.  ":" is used as a separator.
    For example, "S1: Ep. 1 Winter is coming". -->
    <string name="display_episode_title_format">S<xliff:g id="season_number" example="1">%1$s</xliff:g>: Ep. <xliff:g id="episode_number" example="1">%2$s</xliff:g> <xliff:g id="episode_title" example="Winter is Coming">%3$s</xliff:g></string>
    <!-- The episode title format displayed on the info banner when the season number is not available.
    "Ep." is an abbreviation for episode.
    For example, "Ep. 1807 Headline News". -->
    <string name="display_episode_title_format_no_season_number">Ep. <xliff:g id="episode_number" example="1807">%1$s</xliff:g> <xliff:g id="episode_title" example="Headline News">%2$s</xliff:g></string>

    <!-- The content description for an episode. It will be spoken by accessibility service when needed.
    For example, "Season 1 Episode 1 Winter is coming". -->
    <string name="content_description_episode_format">Season <xliff:g id="season_number" example="1">%1$s</xliff:g> Episode <xliff:g id="episode_number" example="1">%2$s</xliff:g> <xliff:g id="episode_title" example="Winter is Coming">%3$s</xliff:g></string>
    <!-- The content description for an episode. It will be spoken by accessibility service when needed.
    For example, "Episode 1807 Headline News". -->
    <string name="content_description_episode_format_no_season_number">Episode <xliff:g id="episode_number" example="1807">%1$s</xliff:g> <xliff:g id="episode_title" example="Headline News">%2$s</xliff:g></string>

    <!-- Program title with season and episode number used in DVR card views.
    HTML tag <i> is a placeholder for styling episode number part.
    "S" is an abbreviation for Season and "Ep." is an abbreviation for episode.  ":" is used as a separator.
    For example "Big bang theory <i>S1: Ep. 12</i>"   -->
    <string name="program_title_with_episode_number"><xliff:g id="programName" example="Big bang theory">%1$s</xliff:g> <![CDATA[<i>]]>S<xliff:g id="seasonNumber" example="1">%2$s</xliff:g>: Ep. <xliff:g id="episodeNumber" example="12">%3$s</xliff:g><![CDATA[</i>]]></string>
    <!-- Program title with episode number used in DVR card views.
    HTML tag <i> is a placeholder for styling episode number part.
    "S" is an abbreviation for Season and "Ep." is an abbreviation for episode.  ":" is used as a separator.
    For example "Big bang theory <i>Ep. 12</i>"
    -->
    <string name="program_title_with_episode_number_no_season"><xliff:g id="programName" example="Big bang theory">%1$s</xliff:g> <![CDATA[<i>]]>Ep. <xliff:g id="episodeNumber" example="12">%2$s</xliff:g><![CDATA[</i>]]></string>
</resources>
