<?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>
    <!-- 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>
    <!-- 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>
