<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (C) 2017 Google Inc.

    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">
    <!-- Title of the application. Usually not shown. Used as a fallback for TalkBack when activity label is not specified (an accessibility service). [CHAR LIMIT=NONE] -->
    <string name="app_name">Setup Wizard</string>

    <!-- Title of bluetooth screen, allowing users to a device to pair to. [CHAR_LIMIT=40] -->
    <string name="bluetooth_title">Pair a device</string>

    <!-- Message shown while the device is scanning for nearby bluetooth devices. [CHAR LIMIT=NONE] -->
    <string name="bluetooth_scanning">Searching for Bluetooth devices\u2026</string>

    <!-- Skip connecting to any bluetooth devices. [CHAR LIMIT=80] -->
    <string name="bluetooth_dont_connect">Don\u2019t pair to any bluetooth device</string>

    <!-- Initiate a re-scan for any nearby bluetooth devices. [CHAR LIMIT=80] -->
    <string name="bluetooth_rescan">Refresh</string>

    <!-- Message displayed to convey to the user that a specific bluetooth device is being paired to. [CHAR LIMIT=80] -->
    <string name="bluetooth_device_connecting">Pairing\u2026</string>

    <!-- Message when attempting to disconnect from a paired bluetooth device. [CHAR LIMIT=80] -->
    <string name="bluetooth_device_disconnecting">Unpairing\u2026</string>

    <!-- Message when an in-progress connection to a bluetooth device is being cancelled. [CHAR LIMIT=80] -->
    <string name="bluetooth_device_cancelling">Cancelling\u2026</string>

    <!-- Message displayed to convey to the user that a specific bluetooth device has been paired to. [CHAR LIMIT=80] -->
    <string name="bluetooth_device_connected">Connected</string>

    <!-- Description of the bluetooth screen, telling the user to select a device to pair to it via bluetooth. [CHAR LIMIT=NONE] -->
    <string name="bluetooth_description">Select a device from the list to pair to it via bluetooth.</string>
</resources>
