<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 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 short description of a permission associated with the
        Bluetooth Share Manager. It is displayed as part of the description of
        any application that was granted that permission. This specific
        permission controls access to the Bluetooth Share Manager by
        applications that initiate Bluetooth share.
    -->
    <string name="permlab_bluetoothShareManager">Access download manager.</string>
    <!--
        This is the long description of a permission associated with the
        Android Download Manager. It is displayed as part of the description
        of any application that was granted that permission. This specific
        permission controls access to the Download Manager by applications
        that initiate downloads.
    -->
    <string name="permdesc_bluetoothShareManager">Allows the app to access the
        BluetoothShare manager and use it to transfer files. </string>

    <string name="permlab_bluetoothWhitelist">Whitelist bluetooth device access.</string>

    <string name="permdesc_bluetoothWhitelist">Allows the app to temporarily whitelist
        a Bluetooth device, allowing that device to send files to this device without user
        confirmation.</string>

    <!-- Strings used for a (system only) permission -->
    <string name="permlab_handoverStatus">Receive BT handover transfer broadcasts.</string>
    <string name="permdesc_handoverStatus">Allows receiving handover transfer status
        information from Bluetooth.</string>

    <!-- string showed on "Share picutre via" dialog -->
    <string name="bt_share_picker_label">Bluetooth</string>

    <!-- string for "unknown device" -->
    <string name="unknown_device">Unknown device</string>

    <!-- string for "unknown" phone number" -->
    <string name="unknownNumber">Unknown</string>

    <!-- string for "the title of airplane mode error" -->
    <string name="airplane_error_title">Airplane mode</string>
    <!-- string for "error message in airplane mode" -->
    <string name="airplane_error_msg">You can\'t use Bluetooth in Airplane mode.</string>

    <!-- Activate Bluetooth Confirmation Dialog -->
    <!--Title -->
    <string name="bt_enable_title"></string>
    <!--Line 1 -->
    <string name="bt_enable_line1">To use Bluetooth services, you must first turn on Bluetooth.</string>
    <!--Line 2 -->
    <string name="bt_enable_line2">Turn on Bluetooth now?</string>
    <!-- Label for a cancel button. -->
    <string name="bt_enable_cancel">Cancel</string>
    <!-- Label for a confirm button.-->
    <string name="bt_enable_ok">Turn on</string>

    <!-- Bluetooth File Transfer Acceptance Dialog -->
    <!--Title -->
    <string name="incoming_file_confirm_title">File transfer</string>
    <!--content -->
    <string name="incoming_file_confirm_content">\u0022<xliff:g id="sender">%1$s</xliff:g>\u0022 wants to send you <xliff:g id="file">%2$s</xliff:g> (<xliff:g id="size">%3$s</xliff:g>). \n\n Accept the file? </string>
    <!-- Label for a cancel button. -->
    <string name="incoming_file_confirm_cancel">Decline</string>
    <!-- Label for a confirm button.-->
    <string name="incoming_file_confirm_ok">Accept</string>
    <!-- Label for timeout OK button.-->
    <string name="incoming_file_confirm_timeout_ok">OK</string>
    <!-- content for timeout-->
    <string name="incoming_file_confirm_timeout_content">There was a timeout while accepting an incoming file from \u0022<xliff:g id="sender">%1$s</xliff:g>\u0022</string>

    <!-- Bluetooth File Transfer Acceptance Notification item -->
    <string name="incoming_file_confirm_Notification_title">Bluetooth share: Incoming file</string>
    <string name="incoming_file_confirm_Notification_caption">Do you want to receive this file?</string>
    <string name="incoming_file_toast_msg">Incoming file from another device.
        Confirm you want to receive this file.</string>

    <!-- Inbound File Transfer Progress Notification item -->
    <!-- label for the notification item of receiving file -->
    <string name="notification_receiving">Bluetooth share: Receiving <xliff:g id="file">%1$s</xliff:g></string>
    <!-- label for the notification item of received file -->
    <string name="notification_received">Bluetooth share: Received <xliff:g id="file">%1$s</xliff:g></string>
    <!-- label for the notification item of failed receiving file -->
    <string name="notification_received_fail">Bluetooth share: File <xliff:g id="file">%1$s</xliff:g> not received</string>

    <!-- Outbound File Transfer Progress Notification item -->
    <!-- label for the notification item of sending file -->
    <string name="notification_sending">Bluetooth share: Sending <xliff:g id="file">%1$s</xliff:g></string>
    <!-- label for the notification item of sent file -->
    <string name="notification_sent">Bluetooth share: Sent <xliff:g id="file">%1$s</xliff:g></string> 
    <!-- label for the notification item of sent file -status --> 
    <string name="notification_sent_complete">100% complete</string>
    <!-- label for the notification item of failed sending file -->
    <string name="notification_sent_fail">Bluetooth share: File <xliff:g id="file">%1$s</xliff:g> not sent</string>

    <!-- Bluetooth Download Progress Dialog -->
    <!--Title -->
    <string name="download_title">File transfer</string>
    <!--Line 1 -->
    <string name="download_line1">From: \u0022<xliff:g id="sender">%1$s</xliff:g>\u0022</string>
    <!--Line 2 -->
    <string name="download_line2">File: <xliff:g id="file">%1$s</xliff:g></string>
    <!--Line 3 -->
    <string name="download_line3">File size: <xliff:g id="size">%1$s</xliff:g></string>
    <!--Line 4 -->
    <string name="download_line4" />
    <string name="download_line5">Receiving file\u2026</string>
    <!-- Label for a cancel button. -->
    <string name="download_cancel">Stop</string>
    <!-- Label for a hide button.-->
    <string name="download_ok">Hide</string>

    <!-- Bluetooth failed Download  Dialog -->
    <!--Line 1  -->
    <string name="download_fail_line1">File not received</string>
    <!--Line 2  -->
    <string name="download_fail_line2">File: <xliff:g id="file">%1$s</xliff:g></string>
    <!--Line 3  -->
    <string name="download_fail_line3">Reason: <xliff:g id="reason">%1$s</xliff:g></string>
    <!-- Label for ok button.-->
    <string name="download_fail_ok">OK</string>

    <!-- Bluetooth Successful Download  Dialog -->
    <!--Line 4 in "Bluetooth Download Progress Dialog" -->
    <string name="download_succ_line5">File received</string>
    <!-- Label for a OK button.-->
    <string name="download_succ_ok">Open</string>

    <!-- Bluetooth Upload Progress Dialog -->
    <string name="upload_line1">To: \u0022<xliff:g id="recipient">%1$s</xliff:g>\u0022</string>
    <string name="upload_line3">File type: <xliff:g id="type">%1$s</xliff:g> (<xliff:g id="size">%2$s</xliff:g>)</string>
    <string name="upload_line5">Sending file\u2026</string>

    <!-- Bluetooth Successful Upload Progress Dialog -->
    <!--Line 4 -->
    <string name="upload_succ_line5">File sent</string>
    <!-- Label for a confirm button.-->
    <string name="upload_succ_ok">OK</string>

    <!-- Bluetooth Failed Upload File Transfer Dialog -->
    <string name="upload_fail_line1">The file wasn\'t sent to \u0022<xliff:g id="recipient">%1$s</xliff:g>\u0022.</string>
    <string name="upload_fail_line1_2">File: <xliff:g id="file">%1$s</xliff:g></string>
    <!-- Label for a try again button.-->
    <string name="upload_fail_ok">Try again</string>
    <!-- Label for a cancel button.-->
    <string name="upload_fail_cancel">Close</string>

    <!-- Bluetooth error dialog -->
    <string name="bt_error_btn_ok">OK</string>
    <string name="unknown_file">Unknown file</string>
    <string name="unknown_file_desc">There\'s no app to handle this type of file. \n</string>
    <string name="not_exist_file">No file</string>
    <string name="not_exist_file_desc">The file doesn\'t exist. \n</string>

    <!-- Bluetooth  Enabling progress dialog -->
    <string name="enabling_progress_title">Please wait\u2026</string>
    <string name="enabling_progress_content">Turning on Bluetooth\u2026</string>

    <!-- Bluetooth Toast Message -->
    <string name="bt_toast_1">The file will be received. Check progress in the Notifications panel.</string>
    <string name="bt_toast_2">The file can\'t be received.</string>
    <string name="bt_toast_3">Stopped receiving file from \u0022<xliff:g id="sender">%1$s</xliff:g>\u0022</string>
    <string name="bt_toast_4">Sending file to \u0022<xliff:g id="recipient">%1$s</xliff:g>\u0022</string>
    <string name="bt_toast_5">Sending <xliff:g id="number">%1$s</xliff:g> files to \u0022<xliff:g id="recipient">%2$s</xliff:g>\u0022</string>
    <string name="bt_toast_6">Stopped sending file to \u0022<xliff:g id="recipient">%1$s</xliff:g>\u0022</string>

    <!-- Bluetooth System Messages [CHAR LIMIT=NONE] -->
    <string name="bt_sm_2_1" product="nosdcard">There isn\'t enough space in USB storage to save the file from \u0022<xliff:g id="sender">%1$s</xliff:g>\u0022</string>
    <!-- Bluetooth System Messages -->
    <string name="bt_sm_2_1" product="default">There isn\'t enough space on the SD card to save the file from \u0022<xliff:g id="sender">%1$s</xliff:g>\u0022</string>
    <string name="bt_sm_2_2">Space needed: <xliff:g id="size">%1$s</xliff:g></string>

    <string name="ErrorTooManyRequests">Too many requests are being processed. Try again later.</string>

    <!-- Bluetooth Transfer Failure Reason -->
    <string name="status_pending">File transfer not started yet.</string>
    <string name="status_running">File transfer is ongoing.</string>
    <string name="status_success">File transfer completed successfully.</string>
    <string name="status_not_accept">Content isn\'t supported.</string>
    <string name="status_forbidden">Transfer forbidden by target device.</string>
    <string name="status_canceled">Transfer canceled by user.</string>
    <string name="status_file_error">Storage issue.</string>
    <!-- Shown when USB storage cannot be found.  [CHAR LIMIT=NONE] -->
    <string name="status_no_sd_card" product="nosdcard">No USB storage.</string>
    <string name="status_no_sd_card" product="default">No SD card. Insert an SD card to save transferred files.</string>
    <string name="status_connection_error">Connection unsuccessful.</string>
    <string name="status_protocol_error">Request can\'t be handled correctly.</string>
    <string name="status_unknown_error">Unknown error.</string>

    <!-- Bluetooth OPP Live Folder -->
    <string name="btopp_live_folder">Bluetooth received</string>

    <!-- Bluetooth OPP Transfer History -->
    <string name="download_success"> <xliff:g id="file_size">%1$s</xliff:g> Received complete.</string>
    <string name="upload_success"> <xliff:g id="file_size">%1$s</xliff:g> Sent complete.</string>
    <string name="inbound_history_title">Inbound transfers</string>
    <string name="outbound_history_title">Outbound transfers</string>
    <string name="no_transfers">Transfer history is empty.</string>
    <string name="transfer_clear_dlg_msg">All items will be cleared from the list.</string>
    <string name="outbound_noti_title">Bluetooth share: Sent files</string>
    <string name="inbound_noti_title">Bluetooth share: Received files</string>
    <string name="noti_caption"> <xliff:g id="successful_number">%1$s</xliff:g> successful, <xliff:g id="unsuccessful_number">%2$s</xliff:g> unsuccessful.</string>

    <string name="transfer_menu_clear_all">Clear list</string>
    <string name="transfer_menu_open">Open</string>
    <string name="transfer_menu_clear">Clear from list</string>
    <string name="transfer_clear_dlg_title">Clear</string>

     <!-- Do not translate. file name used for sharing. -->
    <string name="bluetooth_share_file_name" translate="false">bluetooth_content_share</string>

    <!-- Used to run Bluetooth.apk in another process if needed -->
    <!-- Do not translate. android:sharedUserId string of this application. -->
    <string name="sharedUserId" translate="false"><xliff:g id="x" /></string>
    <!-- Do not translate. android:process of this application. -->
    <string name="process" translate="false"><xliff:g id="x" /></string>

</resources>
