<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
Copyright (C) 2014-2016 The CyanogenMod Project

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.
    * Neither the name of The Linux Foundation nor the names of its
      contributors may be used to endorse or promote products derived
      from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- Strings for step option settins -->
    <string name="setp_option_name">Step</string>
    <string name="step_option_desc">Customize fast forward/rewind step</string>
    <string name="setp_option_three_second">3 seconds</string>
    <string name="setp_option_six_second">6 seconds</string>

    <string name="loop">"Loop"</string>
    <string name="single">"Single"</string>
    <string name="stereo">"Stereo"</string>
    <string name="speaker_on">Speaker ON</string>
    <string name="speaker_off">Speaker OFF</string>
    <string name="speaker_need_headset">Plug in headphones to use this feature.</string>
    <string name="single_track">"Single track"</string>
    <string name="input_url">"Enter URL"</string>
    <string name="streaming_settings">"Streaming settings"</string>
    <string name="next">"Next"</string>
    <string name="previous">"Previous"</string>

    <string name="rtp_rtcp" translatable="false">RTP/RTCP</string>
    <string name="buffer_size">Buffer size</string>
    <string name="apn">Preferred APN</string>
    <string name="rtp_min_port">Min port</string>
    <string name="rtp_max_port">Max port</string>
    <string name="set_rtp_min_port">Set min port</string>
    <string name="set_rtp_max_port">Set max port</string>
    <string name="set_buffer_size">Set buffer size</string>
    <string name="set_apn">Select preferred APN</string>
    <string name="setting">Settings</string>

    <string name="server_timeout_title">"Server timeout"</string>
    <string name="server_timeout_message">"Reconnect to the server to play the video?"</string>
    <string name="videoview_error_text_cannot_connect_retry">"Connection failed, trying to reconnect to %1$d\u2026"</string>
    <string name="media_controller_live">Live</string>
    <string name="media_controller_playing">Playing</string>
    <string name="media_controller_connecting">Connecting\u2026</string>

    <string name="bookmark_add">"Add bookmark"</string>
    <string name="bookmark_display">"Show bookmarks"</string>
    <string name="bookmark_empty">"No bookmarks"</string>
    <string name="bookmark_exist">"Bookmark already exists"</string>
    <string name="bookmark_add_success">"Bookmark added"</string>
    <string name="bookmark_list">"Bookmarks"</string>
    <string name="bookmark_title">"Title"</string>
    <string name="bookmark_location">"Location"</string>
    <string name="delete_all">"Delete all"</string>
    <string name="default_title">"Default title"</string>

    <!-- A label describing to link website [CHAR LIMIT=30] -->
    <string name="more_image">More images</string>
    <string name="website_for_more_image" translatable="false"></string>

    <!-- Toast if the muted video is not supported. [CHAR LIMIT=80] -->
    <string name="mute_nosupport">Can not mute : video not supported</string>

    <!-- The message is shown in toast when click showOnMap Menu and there is no map app -->
    <string name="map_activity_not_found_err">There is no maps app installed to show the location.</string>

    <plurals name="number_of_videos">
        <item quantity="one">%1$d video</item>
        <item quantity="other">%1$d videos</item>
    </plurals>

    <!-- The label for the bass boost knob of the audio effects dialog. -->
    <string name="bass_boost_strength">Bass boost</string>

    <!-- The label for the 3d effect knob of the audio effects dialog. -->
    <string name="virtualizer_strength">3D effect</string>

    <!-- The label for the audio effects menu. -->
    <string name="audio_effects">Audio effects</string>

    <!-- Toast if user attempts to control audio effects without headphones plugged in. -->
    <string name="headset_plug">Plug in headphones for these effects.</string>

    <!-- The title of the audio effects dialog. -->
    <string name="audio_effects_dialog_title">Snapdragon Audio+</string>

    <!-- Toast message for share items -->
    <string name="cannot_share_items">Max selected items for share is 300</string>

    <string name="share_dialogue_title">Share via</string>

    <!-- When grouping photos by peoples, the label used for photos that don't
         have people information in them [CHAR LIMIT=20]-->
    <string name="no_faces">No faces</string>

    <!-- The tips of trimming video -->
    <string name="fail_trim">Sorry, this video file can not be trimmed</string>
    <string name="can_not_trim">Only mp4 and 3gp files can be trimmed</string>

    <string name="drm_license_info">DRM license info</string>

    <!-- Timeline screen title -->
    <string name="timeline_title">Timeline</string>
    <!-- Albums screen title -->
    <string name="albums_title">Albums</string>
    <!-- Videos screen title -->
    <string name="videos_title">Videos</string>

    <string name="action_viewtype_list">List view</string>
    <string name="action_viewtype_grid" translatable="false">@string/switch_photo_grid</string>
    <string name="tvEmptyAlbum">No photos found</string>
    <string name="tvEmptyVideos">No videos found</string>

    <string name="text_makeup_whiten">Whiten</string>
    <string name="text_makeup_Soften">Soften</string>
    <string name="text_makeup_trimface">Trimface</string>
    <string name="text_makeup_bigeye">Bigeye</string>

    <string name="truescanner_normal">Normal</string>
    <string name="truescanner_white">Whiteboard</string>
    <string name="truescanner">TrueScanner</string>
    <string name="truescanner_remove_glare">Remove Glare</string>
    <string name="hazebuster_acts">Haze Buster</string>
    <string name="seestraight_acts">See Straight</string>
    <string name="seestraight_input_image_is_small">Input image is too small to process.</string>
    <string name="seestraight_process_fail">Couldn\'t process the image.</string>

    <string name="trim_video_exit_title">Discard changes?</string>
    <string name="trim_video_exit_msg">Discard the changes made to this video?</string>
    <string name="trim_video_exit_discard">DISCARD</string>
</resources>
