<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/assets/res/any/strings.xml
**
** Copyright 2006, 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">
    <!-- Suffix added to a number to signify size in bytes. -->
    <string name="byteShort">B</string>
    <!-- Suffix added to a number to signify size in kilobytes. -->
    <string name="kilobyteShort">KB</string>
    <!-- Suffix added to a number to signify size in megabytes. -->
    <string name="megabyteShort">MB</string>
    <!-- Suffix added to a number to signify size in gigabytes. -->
    <string name="gigabyteShort">GB</string>
    <!-- Suffix added to a number to signify size in terabytes. -->
    <string name="terabyteShort">TB</string>
    <!-- Suffix added to a number to signify size in petabytes. -->
    <string name="petabyteShort">PB</string>
    <!-- Format string used to add a suffix like "KB" or "MB" to a number
         to display a size in kilobytes, megabytes, or other size units.
         Some languages (like French) will want to add a space between
         the placeholders. -->
    <string name="fileSizeSuffix"><xliff:g id="number" example="123">%1$s</xliff:g><xliff:g id="unit" example="KB">%2$s</xliff:g></string>

    <!-- Used in Contacts for a field that has no label and in Note Pad
         for a note with no name. -->
    <string name="untitled">&lt;Untitled&gt;</string>

    <!-- Used to replace a range of characters in text that is too wide
         for the space allocated to it (three dots). -->
    <string name="ellipsis">\u2026</string>

    <!-- Used to replace a range of characters in text that is too wide
         for the space allocated to it (two dots). -->
    <string name="ellipsis_two_dots">\u2025</string>

    <!-- How to display the lack of a phone number -->
    <string name="emptyPhoneNumber">(No phone number)</string>

    <!-- How to display the lack of a name -->
    <string name="unknownName">(Unknown)</string>

    <!-- What the UI should display for "voice mail" unless overridden by the SIM-->
    <string name="defaultVoiceMailAlphaTag">Voicemail</string>

    <!-- What the UI should display for "Msisdn" unless overridden by the SIM-->
    <string name="defaultMsisdnAlphaTag">MSISDN1</string>

    <!-- For GsmMmiCode.java --> <skip />
    <!-- Displayed when the user dialed an MMI code whose function
         could not be performed. This will be displayed in a toast. -->
    <string name="mmiError">Connection problem or invalid MMI code.</string>
    <!-- Displayed when the user dialed an MMI code whose function
         could not be performed because FDN is enabled. This will be displayed in a toast. -->
    <string name="mmiFdnError">Operation is restricted to fixed dialing numbers only.</string>

    <!-- Displayed when a phone feature such as call barring was activated. -->
    <string name="serviceEnabled">Service was enabled.</string>
    <!-- Displayed in front of the list of a set of service classes
         (voice, data, fax, etc.) that were enabled. -->
    <string name="serviceEnabledFor">Service was enabled for:</string>
    <!-- Displayed when a phone feature such as call forwarding was deactivated. -->
    <string name="serviceDisabled">Service has been disabled.</string>
    <!-- Displayed when a phone property such as a SIM password was registered. -->
    <string name="serviceRegistered">Registration was successful.</string>
    <!-- Displayed when a phone property such as a SIM password was erased. -->
    <string name="serviceErased">Erasure was successful.</string>
    <!-- Displayed when a SIM password was entered incorrectly. -->
    <string name="passwordIncorrect">Incorrect password.</string>
    <!-- Displayed when a phone feature triggered by an MMI code is complete. -->
    <string name="mmiComplete">MMI complete.</string>
    <!-- Displayed when a SIM PIN password is entered incorrectly. -->
    <string name="badPin">The old PIN you typed isn\'t correct.</string>
    <!-- Displayed when a SIM PUK password is entered incorrectly. -->
    <string name="badPuk">The PUK you typed isn\'t correct.</string>
    <!-- Displayed when SIM PIN passwords are entered inconsistently. -->
    <string name="mismatchPin">The PINs you typed don\'t match.</string>
    <!-- Displayed when a SIM PIN password is too long or too short. -->
    <string name="invalidPin">Type a PIN that is 4 to 8 numbers.</string>
    <!-- Displayed when a SIM PUK password is too short. -->
    <string name="invalidPuk">Type a PUK that is 8 numbers or longer.</string>
    <!-- Displayed to prompt the user to type the PUK password to unlock
         the SIM card. -->
    <string name="needPuk">Your SIM card is PUK-locked. Type the PUK code to unlock it.</string>
    <string name="needPuk2">Type PUK2 to unblock SIM card.</string>
    <!-- Title for the dialog used to display the user's IMEI number [CHAR LIMIT=10] -->
    <string name="imei">IMEI</string>

    <!-- Title for the dialog used to display the user's MEID number on CDMA network
         [CHAR LIMIT=10] -->
    <string name="meid">MEID</string>

    <!-- Displayed as the title for a success/failure report enabling/disabling caller ID. -->
    <string name="ClipMmi">Incoming Caller ID</string>
    <!-- Displayed as the title for a success/failure report enabling/disabling caller ID. -->
    <string name="ClirMmi">Outgoing Caller ID</string>
    <!-- Displayed as the title for a success/failure report enabling/disabling call forwarding. -->
    <string name="CfMmi">Call forwarding</string>
    <!-- Displayed as the title for a success/failure report enabling/disabling call waiting. -->
    <string name="CwMmi">Call waiting</string>
    <!-- Displayed as the title for a success/failure report enabling/disabling call barring. -->
    <string name="BaMmi">Call barring</string>
    <!-- Displayed as the title for a success/failure report changing the SIM password. -->
    <string name="PwdMmi">Password change</string>
    <!-- Displayed as the title for a success/failure report changing the SIM PIN. -->
    <string name="PinMmi">PIN change</string>
    <string name="CnipMmi">Calling number present</string>
    <string name="CnirMmi">Calling number restricted</string>
    <string name="ThreeWCMmi">Three way calling</string>
    <string name="RuacMmi">Rejection of undesired annoying calls</string>
    <string name="CndMmi">Calling number delivery</string>
    <string name="DndMmi">Do not disturb</string>

    <!-- Displayed to confirm to the user that caller ID will be restricted on the next call as usual. -->
    <string name="CLIRDefaultOnNextCallOn">Caller ID defaults to restricted. Next call: Restricted</string>
    <!-- Displayed to confirm to the user that caller ID will be not restricted on the next call even though it usually is. -->
    <string name="CLIRDefaultOnNextCallOff">Caller ID defaults to restricted. Next call: Not restricted</string>
    <!-- Displayed to confirm to the user that caller ID will not be restricted on the next call but usually is. -->
    <string name="CLIRDefaultOffNextCallOn">Caller ID defaults to not restricted. Next call: Restricted</string>
    <!-- Displayed to confirm to the user that caller ID will not be restricted on the next call or in general. -->
    <string name="CLIRDefaultOffNextCallOff">Caller ID defaults to not restricted. Next call: Not restricted</string>


    <!-- Displayed to tell the user that caller ID is not provisioned for their SIM. -->
    <string name="serviceNotProvisioned">Service not provisioned.</string>
    <!-- Displayed to tell the user that they cannot change the caller ID setting. -->
    <string name="CLIRPermanent">You can\'t change the caller ID setting.</string>

    <!-- Notification title to tell the user that restricted state is changed by access control. -->
    <string name="RestrictedChangedTitle">Restricted access changed</string>
    <!-- Displayed to tell the user that data service is blocked by access control. -->
    <string name="RestrictedOnData">Data service is blocked.</string>
    <!-- Displayed to tell the user that emergency service is blocked by access control. -->
    <string name="RestrictedOnEmergency">Emergency service is blocked.</string>
    <!-- Displayed to tell the user that normal service is blocked by access control. -->
    <string name="RestrictedOnNormal">Voice service is blocked.</string>
    <!-- Displayed to tell the user that all emergency and normal voice services are blocked by access control. -->
    <string name="RestrictedOnAllVoice">All voice services are blocked.</string>
    <!-- Displayed to tell the user that sms service is blocked by access control. -->
    <string name="RestrictedOnSms">SMS service is blocked.</string>
    <!-- Displayed to tell the user that voice/data service is blocked by access control. -->
    <string name="RestrictedOnVoiceData">Voice/data services are blocked.</string>
    <!-- Displayed to tell the user that voice and sms service are blocked by access control. -->
    <string name="RestrictedOnVoiceSms">Voice/SMS services are blocked.</string>
    <!-- Displayed to tell the user that all service is blocked by access control. -->
    <string name="RestrictedOnAll">All voice/data/SMS services are blocked.</string>

    <!-- Mappings between TS 27.007 +CFCC/+CLCK "service classes" and human-readable strings--> <skip />
    <!-- Example: Service was enabled for: Voice, Data -->
    <string name="serviceClassVoice">Voice</string>
    <!-- Example: Service was enabled for: Voice, Data -->
    <string name="serviceClassData">Data</string>
    <!-- Example: Service was enabled for: Voice, FAX -->
    <string name="serviceClassFAX">FAX</string>
    <!-- Example: Service was enabled for: Voice, SMS -->
    <string name="serviceClassSMS">SMS</string>
    <!-- Meaning: asynchronous data.  Example: Service was enabled for: Voice, Async -->
    <string name="serviceClassDataAsync">Async</string>
    <!-- Meaning: synchronous data.  Example: Service was enabled for: Voice, Async -->
    <string name="serviceClassDataSync">Sync</string>
    <!-- Meaning: packet data.  Example: Service was enabled for: Voice, Packet -->
    <string name="serviceClassPacket">Packet</string>
    <!-- Meaning: unknown.  Example: Service was enabled for: Voice, PAD -->
    <string name="serviceClassPAD">PAD</string>

    <!-- CDMA Roaming Indicator Strings (non ERI)--> <skip />
    <!-- Default roaming indicator text -->
    <string name="roamingText0">Roaming Indicator On</string>
    <string name="roamingText1">Roaming Indicator Off</string>
    <string name="roamingText2">Roaming Indicator Flashing</string>
    <string name="roamingText3">Out of Neighborhood</string>
    <string name="roamingText4">Out of Building</string>
    <string name="roamingText5">Roaming - Preferred System</string>
    <string name="roamingText6">Roaming - Available System</string>
    <string name="roamingText7">Roaming - Alliance Partner</string>
    <string name="roamingText8">Roaming - Premium Partner</string>
    <string name="roamingText9">Roaming - Full Service Functionality</string>
    <string name="roamingText10">Roaming - Partial Service Functionality</string>
    <string name="roamingText11">Roaming Banner On</string>
    <string name="roamingText12">Roaming Banner Off</string>
    <string name="roamingTextSearching">Searching for Service</string>


    <!--
        {0} is one of "bearerServiceCode*"
        {1} is dialing number
        {2} is time in seconds

        cfTemplateRegistered and cfTemplateRegisteredTime mean that a phone number
        has been set but forwarding is not on.
    --> <skip />
    <!-- Displayed when the call forwarding query was not able to be forwarded. -->
    <string name="cfTemplateNotForwarded"><xliff:g id="bearer_service_code">{0}</xliff:g>: Not forwarded</string>
    <!-- Displayed when the call forwarding query was forwarded. -->
    <string name="cfTemplateForwarded"><xliff:g id="bearer_service_code">{0}</xliff:g>: <xliff:g id="dialing_number">{1}</xliff:g></string>
    <!-- Displayed when the call forwarding query will be forwarded after some time. -->
    <string name="cfTemplateForwardedTime"><xliff:g id="bearer_service_code">{0}</xliff:g>: <xliff:g id="dialing_number">{1}</xliff:g> after <xliff:g id="time_delay">{2}</xliff:g> seconds</string>
    <!-- Displayed when the call forwarding query was set but forwarding is not enabled. -->
    <string name="cfTemplateRegistered"><xliff:g id="bearer_service_code">{0}</xliff:g>: Not forwarded</string>
    <!-- Displayed when the call forwarding query was set but forwarding is not enabled. -->
    <string name="cfTemplateRegisteredTime"><xliff:g id="bearer_service_code">{0}</xliff:g>: Not forwarded</string>

    <!-- android.net.http Error strings --> <skip />
    <!-- Displayed when a feature code (non-phone number) is dialed and completes successfully. -->
    <string name="fcComplete">Feature code complete.</string>
    <!-- Displayed when a feature code (non-phone number) is dialed and completes unsuccessfully. -->
    <string name="fcError">Connection problem or invalid feature code.</string>
    <!-- android.net.http Error strings --> <skip />
    <!-- Displayed when a web request was successful. -->
    <string name="httpErrorOk">OK</string>
    <!-- Displayed when a web request failed with a generic network error. -->
    <string name="httpError">There was a network error.</string>
    <!-- Displayed when a web request failed because the URL could not be found. -->
    <string name="httpErrorLookup">Couldn\'t find the URL.</string>
    <!-- Displayed when a web request failed because the site's authentication scheme is not supported by us. -->
    <string name="httpErrorUnsupportedAuthScheme">The site authentication scheme isn\'t supported.</string>
    <!-- Displayed when a web request failed because the authentication failed. -->
    <string name="httpErrorAuth">Couldn\'t authenticate.</string>
    <!-- Displayed when a web request failed because the authentication with the proxy failed. -->
    <string name="httpErrorProxyAuth">Authentication via the proxy server was unsuccessful.</string>
    <!-- Displayed when a web request failed because there was a connection error. -->
    <string name="httpErrorConnect">Couldn\'t connect to the server.</string>
    <!-- Displayed when a web request failed because there was an input or output error. -->
    <string name="httpErrorIO">Couldn\'t communicate with the server. Try again later.</string>
    <!-- Displayed when a web request failed because the request timed out -->
    <string name="httpErrorTimeout">The connection to the server timed out.</string>
    <!-- Displayed when a web request failed because the site tried to redirect us one too many times -->
    <string name="httpErrorRedirectLoop">The page contains too many server redirects.</string>
    <!-- Displayed when a web request failed because the protocol of the server is not supported. -->
    <string name="httpErrorUnsupportedScheme">The protocol isn\'t supported.</string>
    <!-- Displayed when a web request failed because the a secure connection couldn't be made to the server.-->
    <string name="httpErrorFailedSslHandshake">Couldn\'t establish a secure connection.</string>
    <!-- Displayed when a web request failed because the URL isn't in a valid form. -->
    <string name="httpErrorBadUrl">Couldn\'t open the page because the URL is invalid.</string>
    <!-- Displayed when a request failed because we failed to open the file. -->
    <string name="httpErrorFile">Couldn\'t access the file.</string>
    <!-- Displayed when a request failed because the file wasn't found. -->
    <string name="httpErrorFileNotFound">Couldn\'t find the requested file.</string>
    <!-- Displayed when a request failed because there are too many requests right now. -->
    <string name="httpErrorTooManyRequests">Too many requests are being processed. Try again later.</string>

    <!-- Account notifications --> <skip />
    <!-- A notification is shown when the AccountManager is unable to
    supply an auth token without prompting the user to re-enter the
    password.  This is the text that will scroll through the
    notification bar (will be seen by the user as he uses another application). -->
    <string name="notification_title">Signin error for <xliff:g id="account" example="foo@gmail.com">%1$s</xliff:g></string>

    <!-- Sync notifications --> <skip />
    <!-- A notification is shown when there is a sync error.  This is the text that will scroll through the notification bar (will be seen by the user as he uses another application). -->
    <string name="contentServiceSync">Sync</string>
    <!-- A notification is shown when there is a sync error.  This is the title of the notification.  It will be seen in the pull-down notification tray. -->
    <string name="contentServiceSyncNotificationTitle">Sync</string>
    <!-- A notification is shown when there is a sync error.  This is the message of the notification.  It describes the error, in this case is there were too many deletes. The argument is the type of content, for example Gmail or Calendar. It will be seen in the pull-down notification tray. -->
    <string name="contentServiceTooManyDeletesNotificationDesc">Too many <xliff:g id="content_type">%s</xliff:g> deletes.</string>

    <!-- If MMS discovers there isn't much space left on the device, it will show a toast with this message. -->
    <string name="low_memory" product="tablet">Tablet storage is full. Delete some files to free space.</string>
    <!-- If MMS discovers there isn't much space left on the device, it will show a toast with this message. -->
    <string name="low_memory" product="default">Phone storage is full. Delete some files to free space.</string>


    <!-- Display name for any time a piece of data refers to the owner of the phone. For example, this could be used in place of the phone's phone number. -->
    <string name="me">Me</string>

    <!-- Power Dialog --> <skip />
    <!-- Title for the Phone Options dialog to lock the screen, turn off the phone etc. -->
    <string name="power_dialog" product="tablet">Tablet options</string>
    <!-- Title for the Phone Options dialog to lock the screen, turn off the phone etc. -->
    <string name="power_dialog" product="default">Phone options</string>
    <!-- Button to turn on silent mode, within the Phone Options dialog -->
    <string name="silent_mode">Silent mode</string>
    <!-- Button to turn on the radio, within the Phone Options dialog -->
    <string name="turn_on_radio">Turn on wireless</string>
    <!-- Button to turn off the radio, within the Phone Options dialog -->
    <string name="turn_off_radio">Turn off wireless</string>
    <!-- Button to lock the screen, within the Phone Options dialog -->
    <string name="screen_lock">Screen lock</string>
    <!-- Button to turn off the phone, within the Phone Options dialog -->
    <string name="power_off">Power off</string>
    <!-- Spoken description for ringer silent option. [CHAR LIMIT=NONE] -->
    <string name="silent_mode_silent">Ringer off</string>
    <!-- Spoken description for ringer vibrate option. [CHAR LIMIT=NONE] -->
    <string name="silent_mode_vibrate">Ringer vibrate</string>
    <!-- Spoken description for ringer normal option. [CHAR LIMIT=NONE] -->
    <string name="silent_mode_ring">Ringer on</string>

    <!-- Shutdown Progress Dialog. This is shown if the user chooses to power off the phone. -->
    <string name="shutdown_progress">Shutting down\u2026</string>

    <!-- Shutdown Confirmation Dialog.  When the user chooses to power off the phone, there will
         be a confirmation dialog.  This is the message. -->
    <string name="shutdown_confirm" product="tablet">Your tablet will shut down.</string>
    <!-- Shutdown Confirmation Dialog.  When the user chooses to power off the phone, there will
         be a confirmation dialog.  This is the message. -->
    <string name="shutdown_confirm" product="default">Your phone will shut down.</string>

    <!-- Shutdown Confirmation Dialog.  When the user chooses to power off the phone, it asks
         the user if they'd like to shut down.  This is the message.  This is used instead of
         shutdown_confirm when the system is configured to use long press to go directly to the
         power off dialog instead of the global actions menu. -->
    <string name="shutdown_confirm_question">Do you want to shut down?</string>

    <!-- Title of dialog to confirm rebooting into safe mode. [CHAR LIMIT=50] -->
    <string name="reboot_safemode_title">Reboot to safe mode</string>

    <!-- Shutdown Confirmation Dialog.  Message in the confirmation dialog
         when the user asks to reboot into safe mode. [CHAR LIMIT=NONE] -->
    <string name="reboot_safemode_confirm">Do you want to reboot into safe mode?
         This will disable all third party applications you have installed.
         They will be restored when you reboot again.</string>

    <!-- Recent Tasks dialog: title
     TODO: this should move to SystemUI.apk, but the code for the old
            recent dialog is still in the framework
     -->
    <string name="recent_tasks_title">Recent</string>
    <!-- Recent Tasks dialog: message when there are no recent applications
     TODO: this should move to SystemUI.apk, but the code for the old
            recent dialog is still in the framework
     -->
    <string name="no_recent_tasks">No recent apps.</string>

    <!-- Title of the Global Actions Dialog -->
    <string name="global_actions" product="tablet">Tablet options</string>
    <!-- Title of the Global Actions Dialog -->
    <string name="global_actions" product="default">Phone options</string>

    <!-- label for item that locks the phone in the phone options dialog -->
    <string name="global_action_lock">Screen lock</string>

    <!-- label for item that turns off power in phone options dialog -->
    <string name="global_action_power_off">Power off</string>

    <!-- label for item that generates a bug report in the phone options dialog -->
    <string name="global_action_bug_report">Bug report</string>

    <!-- Take bug report menu title [CHAR LIMIT=NONE] -->
    <string name="bugreport_title">Take bug report</string>
    <!-- Message in bugreport dialog describing what it does [CHAR LIMIT=NONE] -->
    <string name="bugreport_message">This will collect information about your
        current device state, to send as an e-mail message.  It will take a little
        time from starting the bug report until it is ready to be sent; please be
        patient.</string>

    <!-- label for item that enables silent mode in phone options dialog -->
    <string name="global_action_toggle_silent_mode">Silent mode</string>

    <!-- status message in phone options dialog for when silent mode is enabled -->
    <string name="global_action_silent_mode_on_status">Sound is OFF</string>

    <!-- status message in phone options dialog for when silent mode is disabled -->
    <string name="global_action_silent_mode_off_status">Sound is ON</string>

    <!-- label for item that toggles airplane mode -->
    <string name="global_actions_toggle_airplane_mode">Airplane mode</string>

    <!-- status message in phone options dialog for when airplane mode is on -->
    <string name="global_actions_airplane_mode_on_status">Airplane mode is ON</string>

    <!-- status message in phone options dialog for when airplane mode is off -->
    <string name="global_actions_airplane_mode_off_status">Airplane mode is OFF</string>

    <!-- Text to use when the number in a notification info is too large
         (greater than status_bar_notification_info_maxnum, defined in
         values/config.xml) and must be truncated. May need to be localized
         for most appropriate textual indicator of "more than X".
         [CHAR LIMIT=4] -->
    <string name="status_bar_notification_info_overflow">999+</string>

    <!-- Displayed to the user to tell them that they have started up the phone in "safe mode" -->
    <string name="safeMode">Safe mode</string>

    <!-- Label for the Android system components when they are shown to the user. -->
    <string name="android_system_label">Android System</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_costMoney">Services that cost you money</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_costMoney">Do things that can cost you money.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_messages">Your messages</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_messages">Read and write your SMS, email, and other messages.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_personalInfo">Your personal information</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_personalInfo">Direct access to information about you, stored in on your contact card.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_socialInfo">Your social information</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_socialInfo">Direct access to information about your contacts and social connections.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_location">Your location</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_location">Monitor your physical location.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_network">Network communication</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_network">Access various network features.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_bluetoothNetwork">Bluetooth</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_bluetoothNetwork">Access devices and networks through Bluetooth.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_audioSettings">Audio Settings</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_audioSettings">Change audio settings.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_affectsBattery">Affects Battery</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_affectsBattery">Use features that can quickly drain battery.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_calendar">Calendar</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_calendar">Direct access to calendar and events.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_dictionary">Read User Dictionary</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_dictionary">Read words in user dictionary.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_writeDictionary">Write User Dictionary</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_writeDictionary">Add words to the user dictionary.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_bookmarks">Bookmarks and History</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_bookmarks">Direct access to bookmarks and browser history.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_deviceAlarms">Alarm</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_deviceAlarms">Set the alarm clock.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_voicemail">Voicemail</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_voicemail">Direct access to voicemail.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_microphone">Microphone</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_microphone">Direct access to the microphone to record audio.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_camera">Camera</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_camera">Direct access to camera for image or video capture.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_appInfo">Your applications information</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_appInfo">Ability to affect behavior of other applications on your device.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_wallpaper">Wallpaper</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_wallpaper">Change the device wallpaper settings.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_systemClock">Clock</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_systemClock">Change the device time or timezone.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_statusBar">Status Bar</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_statusBar">Change the device status bar settings.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_syncSettings">Sync Settings</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_syncSettings">Access to the sync settings.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_accounts">Your accounts</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_accounts">Access the available accounts.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_hardwareControls">Hardware controls</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_hardwareControls">Direct access to hardware on the handset.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_phoneCalls">Phone calls</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_phoneCalls">Monitor, record, and process phone calls.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_systemTools">System tools</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_systemTools">Lower-level access and control of the system.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_developmentTools">Development tools</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_developmentTools">Features only needed for app developers.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_display">Other Application UI</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_display">Effect the UI of other applications.</string>

    <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgrouplab_storage">Storage</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this.   [CHAR LIMIT=30] -->
    <string name="permgroupdesc_storage" product="nosdcard">Access the USB storage.</string>
    <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permgroupdesc_storage" product="default">Access the SD card.</string>

    <!--  Permissions -->

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_statusBar">disable or modify status bar</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_statusBar">Allows the app to disable the status bar or add and remove system icons.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_statusBarService">status bar</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_statusBarService">Allows the app to be the status bar.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_expandStatusBar">expand/collapse status bar</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_expandStatusBar">Allows the app to expand or collapse the status bar.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_processOutgoingCalls">reroute outgoing calls</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_processOutgoingCalls">Allows the app to process
      outgoing calls and change the number to be dialed. This permission allows
      the app to monitor, redirect, or prevent outgoing calls.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_receiveSms">receive text messages (SMS)</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_receiveSms">Allows the app to receive and process SMS
      messages. This means the app could monitor or delete messages sent to your
      device without showing them to you.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_receiveMms">receive text messages (MMS)</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_receiveMms">Allows the app to receive and process MMS
      messages. This means the app could monitor or delete messages sent to your
      device without showing them to you.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_receiveEmergencyBroadcast">receive emergency broadcasts</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_receiveEmergencyBroadcast">Allows the app to receive
      and process emergency broadcast messages. This permission is only available
      to system apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readCellBroadcasts">read cell broadcast messages</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readCellBroadcasts">Allows the app to read
      cell broadcast messages received by your device. Cell broadcast alerts
      are delivered in some locations to warn you of emergency situations.
      Malicious apps may interfere with the performance or operation of your
      device when an emergency cell broadcast is received.</string>

     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_sendSms">send SMS messages</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_sendSms">Allows the app to send SMS messages.
     This may result in unexpected charges. Malicious apps may cost you money by
     sending messages without your confirmation.</string>

     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_sendSmsNoConfirmation">send SMS messages with no confirmation</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_sendSmsNoConfirmation">Allows the app to send SMS
      messages. This may result in unexpected charges. Malicious apps may cost
      you money by sending messages without your confirmation.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readSms">read your text messages (SMS or MMS)</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readSms" product="tablet">Allows the app to read SMS
      messages stored on your tablet or SIM card. This allows the app to read all
      SMS messages, regardless of content or confidentiality.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readSms" product="default">Allows the app to read SMS
      messages stored on your phone or SIM card. This allows the app to read all
      SMS messages, regardless of content or confidentiality.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_writeSms">edit your text messages (SMS or MMS)</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeSms" product="tablet">Allows the app to write
      to SMS messages stored on your tablet or SIM card. Malicious apps
      may delete your messages.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeSms" product="default">Allows the app to write
      to SMS messages stored on your phone or SIM card. Malicious apps
      may delete your messages.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_receiveWapPush">receive text messages (WAP)</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_receiveWapPush">Allows the app to receive and process
     WAP messages.  This permission includes the ability to monitor or delete
     messages sent to you without showing them to you.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_getTasks">retrieve running apps</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_getTasks">Allows the app to retrieve information
       about currently and recently running tasks.  This may allow the app to
       discover information about which applications are used on the device.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
    <string name="permlab_interactAcrossUsers">interact across users</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
    <string name="permdesc_interactAcrossUsers">Allows the app to perform actions
        across different users on the device.  Malicious apps may use this to violate
        the protection between users.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
    <string name="permlab_interactAcrossUsersFull">full license to interact across users</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
    <string name="permdesc_interactAcrossUsersFull">Allows all possible interactions across
        users.</string>

    <!--  Title of an application permission, listed so the user can choose whether they want to allow the application to create/remove/query users. [CHAR LIMIT=none] -->
    <string name="permlab_manageUsers">manage users</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to create/remove/query users. [CHAR LIMIT=NONE] -->
    <string name="permdesc_manageUsers">Allows apps to manage users on the device, including query, creation and deletion.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=50] -->
    <string name="permlab_getDetailedTasks">retrieve details of running apps</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
    <string name="permdesc_getDetailedTasks">Allows the app to retrieve
        detailed information about currently and recently running tasks. Malicious apps may
        discover private information about other apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_reorderTasks">reorder running apps</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_reorderTasks">Allows the app to move tasks to the
      foreground and background.  The app may do this without your input.</string>

    <!-- Title of an application permission, allowing an application to remove/kill tasks -->
    <string name="permlab_removeTasks">stop running apps</string>
    <!-- Description of an application permission, allowing an application to remove/kill tasks -->
    <string name="permdesc_removeTasks">Allows the app to remove
        tasks and kill their apps. Malicious apps may disrupt
        the behavior of other apps.</string>

    <!-- Title of an application permission, allowing an application to start any activity, regardless of permission protection or exported state. -->
    <string name="permlab_startAnyActivity">start any activity</string>
    <!-- Description of an application permission, allowing an application to start any activity, regardless of permission protection or exported state. -->
    <string name="permdesc_startAnyActivity">Allows the app to start any activity, regardless of permission protection or exported state.</string>

    <!-- Title of an application permission, allowing control of app screen compatibility mode -->
    <string name="permlab_setScreenCompatibility">set screen compatibility</string>
    <!-- Description of an application permission, allowing control of app screen compatibility mode -->
    <string name="permdesc_setScreenCompatibility">Allows the app to control the
        screen compatibility mode of other applications.  Malicious applications may
        break the behavior of other applications.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_setDebugApp">enable app debugging</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setDebugApp">Allows the app to turn
        on debugging for another app. Malicious apps may use this
        to kill other apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_changeConfiguration">change system display settings</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_changeConfiguration">Allows the app to
        change the current configuration, such as the locale or overall font
        size.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_enableCarMode">enable car mode</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_enableCarMode">Allows the app to
        enable the car mode.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_killBackgroundProcesses">close other apps</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_killBackgroundProcesses">Allows the app to end
      background processes of other apps.  This may cause other apps to stop
      running.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_forceStopPackages">force stop other apps</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_forceStopPackages">Allows the app to forcibly stop other apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_forceBack">force app to close</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_forceBack">Allows the app to force any
        activity that is in the foreground to close and go back.
        Should never be needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_dump">retrieve system internal state</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_dump">Allows the app to retrieve
        internal state of the system. Malicious apps may retrieve
        a wide variety of private and secure information that they should
        never normally need.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_retrieve_window_content">retrieve screen content</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_retrieve_window_content">Allows the app to retrieve
        the content of the active window. Malicious apps may retrieve
        the entire window content and examine all its text except passwords.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_temporary_enable_accessibility">temporary enable accessibility</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_temporary_enable_accessibility">Allows an application to temporarily
         enable accessibility on the device. Malicious apps may enable accessibility without
         user consent.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_retrieve_window_info">retrieve window info</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_retrieve_window_info">Allows an application to retrieve
         information about the the windows from the window manager. Malicious apps may
         retrieve information that is intended for internal system usage.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_filter_events">filter events</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_filter_events">Allows an application to register an input filter
            which filters the stream of all user events before they are dispatched. Malicious app
            may control the system UI whtout user intervention.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_magnify_display">magnify display</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_magnify_display">Allows an application to magnify the content of a
        display. Malicious apps may transform the display content in a way that renders the
        device unusable.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_shutdown">partial shutdown</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_shutdown">Puts the activity manager into a shutdown
        state.  Does not perform a complete shutdown.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_stopAppSwitches">prevent app switches</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_stopAppSwitches">Prevents the user from switching to
        another app.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_runSetActivityWatcher">monitor and control all app launching</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_runSetActivityWatcher">Allows the app to
        monitor and control how the system launches activities.
        Malicious apps may completely compromise the system. This
        permission is only needed for development, never for normal
        use.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_broadcastPackageRemoved">send package removed broadcast</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_broadcastPackageRemoved">Allows the app to
        broadcast a notification that an app package has been removed.
        Malicious apps may use this to kill any other running
        app.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_broadcastSmsReceived">send SMS-received broadcast</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_broadcastSmsReceived">Allows the app to
        broadcast a notification that an SMS message has been received.
        Malicious apps may use this to forge incoming SMS messages.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_broadcastWapPush">send WAP-PUSH-received broadcast</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_broadcastWapPush">Allows the app to
        broadcast a notification that a WAP PUSH message has been received.
        Malicious apps may use this to forge MMS message receipt or to
        silently replace the content of any webpage with malicious variants.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_setProcessLimit">limit number of running processes</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setProcessLimit">Allows the app
        to control the maximum number of processes that will run. Never
        needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_setAlwaysFinish">force background apps to close</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setAlwaysFinish">Allows the app
        to control whether activities are always finished as soon as they
        go to the background. Never needed for normal apps.</string>

    <!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_batteryStats">read battery statistics</string>
    <!-- [CHAR LIMIT=NONE] Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_batteryStats">Allows an application to read the current low-level
        battery use data.  May allow the application to find out detailed information about
        which apps you use.</string>

    <!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_updateBatteryStats">modify battery statistics</string>
    <!-- [CHAR LIMIT=NONE] Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_updateBatteryStats">Allows the app to modify
        collected battery statistics. Not for use by normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_backup">control system backup and restore</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_backup">Allows the app to control the system\'s backup and restore mechanism.  Not for use by normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_confirm_full_backup">confirm a full backup or restore operation</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_confirm_full_backup">Allows the app to launch the full backup confirmation UI.  Not to be used by any app.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_internalSystemWindow">display unauthorized windows</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_internalSystemWindow">Allows the app to create
        windows that are intended to be used by the internal system
        user interface. Not for use by normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_systemAlertWindow">draw over other apps</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_systemAlertWindow">Allows the app to draw on top of other
        applications or parts of the user interface.  They may interfere with your
        use of the interface in any application, or change what you think you are
        seeing in other applications.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_setAnimationScale">modify global animation speed</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setAnimationScale">Allows the app to change
        the global animation speed (faster or slower animations) at any time.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_manageAppTokens">manage app tokens</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_manageAppTokens">Allows the app to
        create and manage their own tokens, bypassing their normal
        Z-ordering. Should never be needed for normal apps.</string>

    <!-- [CHAR LIMIT=NONE] Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_freezeScreen">freeze screen</string>
    <!-- [CHAR LIMIT=NONE] Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_freezeScreen">Allows the application to temporarily freeze
        the screen for a full-screen transition.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_injectEvents">press keys and control buttons</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_injectEvents" product="tablet">Allows the app to deliver
        its own input events (key presses, etc.) to other apps. Malicious
        apps may use this to take over the tablet.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_injectEvents" product="default">Allows the app to deliver
        its own input events (key presses, etc.) to other apps. Malicious
        apps may use this to take over the phone.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readInputState">record what you type and actions you take</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readInputState">Allows the app to watch the
        keys you press even when interacting with another app (such
        as typing a password). Should never be needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_bindInputMethod">bind to an input method</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bindInputMethod">Allows the holder to bind to the top-level
        interface of an input method. Should never be needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_bindAccessibilityService">bind to an accessibility service</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bindAccessibilityService">Allows the holder to bind to the top-level
        interface of an accessibility service. Should never be needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_bindTextService">bind to a text service</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bindTextService">Allows the holder to bind to the top-level
        interface of a text service(e.g. SpellCheckerService). Should never be needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_bindVpnService">bind to a VPN service</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bindVpnService">Allows the holder to bind to the top-level
        interface of a Vpn service. Should never be needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_bindWallpaper">bind to a wallpaper</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bindWallpaper">Allows the holder to bind to the top-level
        interface of a wallpaper. Should never be needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_bindRemoteViews">bind to a widget service</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bindRemoteViews">Allows the holder to bind to the top-level
        interface of a widget service. Should never be needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_bindDeviceAdmin">interact with a device admin</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bindDeviceAdmin">Allows the holder to send intents to
        a device administrator. Should never be needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_setOrientation">change screen orientation</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setOrientation">Allows the app to change
        the rotation of the screen at any time. Should never be needed for
        normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
    <string name="permlab_setPointerSpeed">change pointer speed</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
    <string name="permdesc_setPointerSpeed">Allows the app to change
        the mouse or trackpad pointer speed at any time. Should never be needed for
        normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
    <string name="permlab_setKeyboardLayout">change keyboard layout</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
    <string name="permdesc_setKeyboardLayout">Allows the app to change
        the keyboard layout. Should never be needed for normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_signalPersistentProcesses">send Linux signals to apps</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_signalPersistentProcesses">Allows the app to request that the
        supplied signal be sent to all persistent processes.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_persistentActivity">make app always run</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_persistentActivity" product="tablet">Allows the app to make parts of itself persistent in memory.  This can limit memory available to other apps slowing down the tablet.</string>
    <string name="permdesc_persistentActivity" product="default">Allows the app to make parts of itself persistent in memory.  This can limit memory available to other apps slowing down the phone.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_deletePackages">delete apps</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_deletePackages">Allows the app to delete
        Android packages. Malicious apps may use this to delete important apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_clearAppUserData">delete other apps\' data</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_clearAppUserData">Allows the app to clear user data.</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_deleteCacheFiles">delete other apps\' caches</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_deleteCacheFiles">Allows the app to delete
        cache files.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_getPackageSize">measure app storage space</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_getPackageSize">Allows the app to retrieve its code, data, and cache sizes</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_installPackages">directly install apps</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_installPackages">Allows the app to install new or updated
        Android packages. Malicious apps may use this to add new apps with arbitrarily
        powerful permissions.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_clearAppCache">delete all app cache data</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_clearAppCache" product="tablet">Allows the app to free tablet storage
        by deleting files in the cache directories of other applications.  This may cause other
        applications to start up more slowly as they need to re-retrieve their data.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_clearAppCache" product="default">Allows the app to free phone storage
        by deleting files in the cache directories of other applications.  This may cause other
        applications to start up more slowly as they need to re-retrieve their data.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_movePackage">move app resources</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_movePackage">Allows the app to move app resources from internal to external media and vice versa.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readLogs">read sensitive log data</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readLogs" product="tablet">Allows the app to read from the
        system\'s various log files.  This allows it to discover general
        information about what you are doing with the tablet, potentially
        including personal or private information.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readLogs" product="default">Allows the app to read from the
        system\'s various log files.  This allows it to discover general
        information about what you are doing with the phone, potentially
        including personal or private information.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_anyCodecForPlayback">use any media decoder for playback</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_anyCodecForPlayback">Allows the app to use any installed
        media decoder to decode for playback.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_diagnostic">read/write to resources owned by diag</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_diagnostic">Allows the app to read and write to
    any resource owned by the diag group; for example, files in /dev. This could
    potentially affect system stability and security. This should be ONLY be used
    for hardware-specific diagnostics by the manufacturer or operator.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_changeComponentState">enable or disable app components</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_changeComponentState" product="tablet">Allows the app to change whether a
        component of another app is enabled or not. Malicious apps may use this
        to disable important tablet capabilities. Care must be used with this permission, as it is
        possible to get app components into an unusable, inconsistent, or unstable state.
    </string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_changeComponentState" product="default">Allows the app to change whether a
        component of another app is enabled or not. Malicious apps may use this
        to disable important phone capabilities. Care must be used with this permission, as it is
        possible to get app components into an unusable, inconsistent, or unstable state.
    </string>

    <!-- Title of an application permission for granting or revoking other permissions [CHAR LIMIT=NONE] -->
    <string name="permlab_grantRevokePermissions">grant or revoke permissions</string>
    <!-- Description of an application permission for granting or revoking other permissions [CHAR LIMIT=NONE] -->
    <string name="permdesc_grantRevokePermissions">Allows an application to grant or revoke
        specific permissions for it or other applications.  Malicious applications may use this
        to access features you have not granted them.
    </string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_setPreferredApplications">set preferred apps</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setPreferredApplications">Allows the app to
        modify your preferred apps. Malicious apps may
        silently change the apps that are run, spoofing your
        existing apps to collect private data from you.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_writeSettings">modify system settings</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeSettings">Allows the app to modify the
        system\'s settings data. Malicious apps may corrupt your system\'s
        configuration.</string>

    <string name="permlab_writeSecureSettings">modify secure system settings</string>
    <string name="permdesc_writeSecureSettings">Allows the app to modify the
        system\'s secure settings data. Not for use by normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_writeGservices">modify the Google services map</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeGservices">Allows the app to modify the
        Google services map.  Not for use by normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_receiveBootCompleted">run at startup</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_receiveBootCompleted" product="tablet">Allows the app to
        have itself started as soon as the system has finished booting.
        This can make it take longer to start the tablet and allow the
        app to slow down the overall tablet by always running.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_receiveBootCompleted" product="default">Allows the app to
        have itself started as soon as the system has finished booting.
        This can make it take longer to start the phone and allow the
        app to slow down the overall phone by always running.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_broadcastSticky">send sticky broadcast</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_broadcastSticky" product="tablet">Allows the app to
    send sticky broadcasts, which remain after the broadcast ends. Excessive use
    may make the tablet slow or unstable by causing it to use too much memory.
    </string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_broadcastSticky" product="default">Allows the app to
    send sticky broadcasts, which remain after the broadcast ends. Excessive
    use may make the phone slow or unstable by causing it to use too
    much memory.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readContacts">read your contacts</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readContacts" product="tablet">Allows the app to read
      data about your contacts stored on your tablet, including the frequency
      with which you\'ve called, emailed, or communicated in other ways with
      specific individuals. This permission allows apps to save your contact
      data, and malicious apps may share contact data without your
      knowledge.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readContacts" product="default">Allows the app to
      read data about your contacts stored on your phone, including the
      frequency with which you\'ve called, emailed, or communicated in other ways
      with specific individuals. This permission allows apps to save your
      contact data, and malicious apps may share contact data without your
      knowledge.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_writeContacts">modify your contacts</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeContacts" product="tablet">Allows the app to
      modify the data about your contacts stored on your tablet, including the
      frequency with which you\'ve called, emailed, or communicated in other ways
      with specific contacts. This permission allows apps to delete contact
      data.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeContacts" product="default">Allows the app to
    modify the data about your contacts stored on your phone, including the
    frequency with which you\'ve called, emailed, or communicated in other ways
    with specific contacts. This permission allows apps to delete contact
    data.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readCallLog">read call log</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readCallLog" product="tablet">Allows the app to read
     your tablet\'s call log, including data about incoming and outgoing calls.
     This permission allows apps to save your call log data, and malicious apps
     may share call log data without your knowledge.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readCallLog" product="default">Allows the app to read
      your phone\'s call log, including data about incoming and outgoing calls.
      This permission allows apps to save your call log data, and malicious apps
      may share call log data without your knowledge.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_writeCallLog">write call log</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeCallLog" product="tablet">Allows the app to modify your tablet\'s call log, including data about incoming and outgoing calls.
        Malicious apps may use this to erase or modify your call log.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeCallLog" product="default">Allows the app to modify your phone\'s call log, including data about incoming and outgoing calls.
        Malicious apps may use this to erase or modify your call log.</string>


    <!-- Title of the read profile permission, listed so the user can decide whether to allow the application to read the user's personal profile data. [CHAR LIMIT=30] -->
    <string name="permlab_readProfile">read your own contact card</string>
    <!-- Description of the read profile permission, listed so the user can decide whether to allow the application to read the user's personal profile data. [CHAR LIMIT=NONE] -->
    <string name="permdesc_readProfile" product="default">Allows the app to read
     personal profile information stored on your device, such as your name and
     contact information. This means the app can identify you and may send your
     profile information to others.</string>

    <!-- Title of the write profile permission, listed so the user can decide whether to allow the application to write to the user's personal profile data. [CHAR LIMIT=30] -->
    <string name="permlab_writeProfile">modify your own contact card</string>
    <!-- Description of the write profile permission, listed so the user can decide whether to allow the application to write to the user's personal profile data. [CHAR LIMIT=NONE] -->
    <string name="permdesc_writeProfile" product="default">Allows the app to
      change or add to personal profile information stored on your device, such
      as your name and contact information.  This means the app can identify you
      and may send your profile information to others.</string>

    <!-- Title of the read social stream permission, listed so the user can decide whether to allow the application to read information from the user's social stream. [CHAR LIMIT=30] -->
    <string name="permlab_readSocialStream" product="default">read your social stream</string>
    <string name="permdesc_readSocialStream" product="default">Allows the app
      to access and sync social updates from you and your friends. Be careful
      when sharing information -- this allows the app to read communications
      between you and your friends on social networks, regardless of
      confidentiality. Note: this permission may not be enforced on all social
      networks.</string>

    <!-- Title of the write social stream permission, listed so the user can decide whether to allow the application to write information to the user's social stream. [CHAR LIMIT=30] -->
    <string name="permlab_writeSocialStream" product="default">write to your social stream</string>
    <string name="permdesc_writeSocialStream" product="default">Allows the app to
     display social updates from your friends.  Be careful when sharing
     information -- this allows the app to produce messages that may appear to
     come from a friend. Note: this permission may not be enforced on all social
     networks.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readCalendar">read calendar events plus confidential information</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->

    <string name="permdesc_readCalendar" product="tablet">Allows the app to read
       all calendar events stored on your tablet, including those of friends or
       co-workers. This may allow the app to share or save your calendar data,
       regardless of confidentiality or sensitivity.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readCalendar" product="default">Allows the app to
       read all calendar events stored on your phone, including those of friends
       or co-workers. This may allow the app to share or save your calendar data,
       regardless of confidentiality or sensitivity.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_writeCalendar">add or modify calendar events and send email to guests without owners\' knowledge</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->

<string name="permdesc_writeCalendar" product="tablet">Allows the app to
     add, remove, change events that you can modify on your tablet, including
     those of friends or co-workers. This may allow the app to send messages
     that appear to come from calendar owners, or modify events without the
     owners\' knowledge.</string>
<string name="permdesc_writeCalendar" product="default">Allows the app to
     add, remove, change events that you can modify on your phone, including
     those of friends or co-workers. This may allow the app to send messages
     that appear to come from calendar owners, or modify events without the
     owners\' knowledge.</string>


    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_accessMockLocation">mock location sources for testing</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_accessMockLocation">Create mock location sources for
      testing or install a new location provider.  This allows the app to
      override the location and/or status returned by other location sources
      such as GPS or location providers.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_accessLocationExtraCommands">access extra location provider commands</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_accessLocationExtraCommands">Allows the app to access
      extra location provider commands.  This may allow the app to to interfere
      with the operation of the GPS or other location sources.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_installLocationProvider">permission to install a location provider</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_installLocationProvider">Create mock location sources
      for testing or install a new location provider.  This allows the app to
      override the location and/or status returned by other location sources
      such as GPS or location providers.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_accessFineLocation">precise location (GPS and
      network-based)</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_accessFineLocation">Allows the app to get your
      precise location using the Global Positioning System (GPS) or network
      location sources such as cell towers and Wi-Fi. These location services
      must be turned on and available to your device for the app to use them.
      Apps may use this to determine where you are, and may consume additional
      battery power.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_accessCoarseLocation">approximate location
      (network-based)</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_accessCoarseLocation">Allows the app to get your
      approximate location. This location is derived by location services using
      network location sources such as cell towers and Wi-Fi. These location
      services must be turned on and available to your device for the app to
      use them. Apps may use this to determine approximately where you
      are.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_accessSurfaceFlinger">access SurfaceFlinger</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_accessSurfaceFlinger">Allows the app to use SurfaceFlinger low-level features.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readFrameBuffer">read frame buffer</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readFrameBuffer">Allows the app to read the content of the frame buffer.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_configureWifiDisplay">configure Wifi displays</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_configureWifiDisplay">Allows the app to configure and connect to Wifi displays.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_controlWifiDisplay">control Wifi displays</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_controlWifiDisplay">Allows the app to control low-level features of Wifi displays.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_modifyAudioSettings">change your audio settings</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_modifyAudioSettings">Allows the app to modify global audio settings such as volume and which speaker is used for output.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_recordAudio">record audio</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_recordAudio">Allows the app to record audio with the
      microphone.  This permission allows the app to record audio at any time
      without your confirmation.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_camera">take pictures and videos</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_camera">Allows the app to take pictures and videos
      with the camera.  This permission allows the app to use the camera at any
      time without your confirmation.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_brick" product="tablet">permanently disable tablet</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_brick" product="default">permanently disable phone</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_brick" product="tablet">Allows the app to
        disable the entire tablet permanently. This is very dangerous.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_brick" product="default">Allows the app to
        disable the entire phone permanently. This is very dangerous.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_reboot" product="tablet">force tablet reboot</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_reboot" product="default">force phone reboot</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_reboot" product="tablet">Allows the app to force the tablet to reboot.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_reboot" product="default">Allows the app to force the phone to reboot.</string>


    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
    <string name="permlab_mount_unmount_filesystems" product="nosdcard">access USB storage filesystem</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_mount_unmount_filesystems" product="default">access SD Card filesystem</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_mount_unmount_filesystems">Allows the app to mount and
        unmount filesystems for removable storage.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
    <string name="permlab_mount_format_filesystems" product="nosdcard">erase USB storage</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_mount_format_filesystems" product="default">erase SD Card</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_mount_format_filesystems">Allows the app to format removable storage.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_asec_access">get information on internal storage</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_asec_access">Allows the app to get information on internal storage.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_asec_create">create internal storage</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_asec_create">Allows the app to create internal storage.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_asec_destroy">destroy internal storage</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_asec_destroy">Allows the app to destroy internal storage.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_asec_mount_unmount">mount/unmount internal storage</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_asec_mount_unmount">Allows the app to mount/unmount internal storage.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_asec_rename">rename internal storage</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_asec_rename">Allows the app to rename internal storage.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_vibrate">control vibration</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_vibrate">Allows the app to control the vibrator.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_flashlight">control flashlight</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_flashlight">Allows the app to control the flashlight.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_manageUsb">manage preferences and permissions for USB devices</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_manageUsb">Allows the app to manage preferences and permissions for USB devices.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_accessMtp">implement MTP protocol</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_accessMtp">Allows access to the kernel MTP driver to implement the MTP USB protocol.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_hardware_test">test hardware</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_hardware_test">Allows the app to control
        various peripherals for the purpose of hardware testing.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_callPhone">directly call phone numbers</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_callPhone">Allows the app to call phone numbers
      without your intervention. This may result in unexpected charges or calls.
      Note that this doesn\'t allow the app to call emergency numbers.
      Malicious apps may cost you money by making calls without your
      confirmation.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_callPrivileged">directly call any phone numbers</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_callPrivileged">Allows the app to call
        any phone number, including emergency numbers, without your intervention.
        Malicious apps may place unnecessary and illegal calls to emergency
        services.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_performCdmaProvisioning" product="tablet">directly start CDMA tablet setup</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_performCdmaProvisioning" product="default">directly start CDMA phone setup</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_performCdmaProvisioning">Allows the app to start CDMA provisioning.
        Malicious apps may unnecessarily start CDMA provisioning.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_locationUpdates">control location update notifications</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_locationUpdates">Allows the app to enable/disable location
        update notifications from the radio.  Not for use by normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_checkinProperties">access checkin properties</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_checkinProperties">Allows the app read/write access to
        properties uploaded by the checkin service.  Not for use by normal
        apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_bindGadget">choose widgets</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bindGadget">Allows the app to tell the system
        which widgets can be used by which app. An app with this permission
        can give access to personal data to other apps.
        Not for use by normal apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_modifyPhoneState">modify phone state</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_modifyPhoneState">Allows the app to control the
        phone features of the device. An app with this permission can switch
        networks, turn the phone radio on and off and the like without ever notifying
        you.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readPhoneState">read phone status and identity</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readPhoneState">Allows the app to access the phone
      features of the device.  This permission allows the app to determine the
      phone number and device IDs, whether a call is active, and the remote number
      connected by a call.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_wakeLock" product="tablet">prevent tablet from sleeping</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_wakeLock" product="default">prevent phone from sleeping</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_wakeLock" product="tablet">Allows the app to prevent the tablet from going to sleep.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_wakeLock" product="default">Allows the app to prevent the phone from going to sleep.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_devicePower" product="tablet">power tablet on or off</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_devicePower" product="default">power phone on or off</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_devicePower" product="tablet">Allows the app to turn the
        tablet on or off.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_devicePower" product="default">Allows the app to turn the phone on or off.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_factoryTest">run in factory test mode</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_factoryTest" product="tablet">Run as a low-level manufacturer test,
        allowing complete access to the tablet hardware. Only available
        when a tablet is running in manufacturer test mode.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_factoryTest" product="default">Run as a low-level manufacturer test,
        allowing complete access to the phone hardware. Only available
        when a phone is running in manufacturer test mode.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_setWallpaper">set wallpaper</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setWallpaper">Allows the app to set the system wallpaper.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_setWallpaperHints">adjust your wallpaper size</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setWallpaperHints">Allows the app to set the system wallpaper size hints.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_masterClear">reset system to factory defaults</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_masterClear">Allows the app to completely
        reset the system to its factory settings, erasing all data,
        configuration, and installed apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_setTime">set time</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setTime" product="tablet">Allows the app to change the tablet\'s clock time.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setTime" product="default">Allows the app to change the phone\'s clock time.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_setTimeZone">set time zone</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setTimeZone" product="tablet">Allows the app to change the tablet\'s time zone.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_setTimeZone" product="default">Allows the app to change the phone\'s time zone.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_accountManagerService">act as the AccountManagerService</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_accountManagerService">Allows the app to make calls to AccountAuthenticators.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_getAccounts">find accounts on the device</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_getAccounts" product="tablet">Allows the app to get
      the list of accounts known by the tablet.  This may include any accounts
      created by applications you have installed.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_getAccounts" product="default">Allows the app to get
      the list of accounts known by the phone.  This may include any accounts
      created by applications you have installed.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_authenticateAccounts">create accounts and set passwords</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_authenticateAccounts">Allows the app
    to use the account authenticator capabilities of the
    AccountManager, including creating accounts and getting and
    setting their passwords.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_manageAccounts">add or remove accounts</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_manageAccounts">Allows the app to
    perform operations like adding and removing accounts, and deleting
    their password.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_useCredentials">use accounts on the device</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_useCredentials">Allows the app to request authentication tokens.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_accessNetworkState">view network connections</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_accessNetworkState">Allows the app to view
      information about network connections such as which networks exist and are
      connected.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_createNetworkSockets">full network access</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_createNetworkSockets">Allows the app to create
     network sockets and use custom network protocols. The browser and other
     applications provide means to send data to the internet, so this
     permission is not required to send data to the internet.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_writeApnSettings">change/intercept network settings and traffic</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeApnSettings">Allows the app to change network settings and to intercept and inspect all network traffic,
      for example to change the proxy and port of any APN. Malicious apps may monitor, redirect, or modify network
      packets without your knowledge.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_changeNetworkState">change network connectivity</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_changeNetworkState">Allows the app to change the state of network connectivity.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_changeTetherState">change tethered connectivity</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the applicaiton to do this. -->
    <string name="permdesc_changeTetherState">Allows the app to change the state of tethered network connectivity.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_changeBackgroundDataSetting">change background data usage setting</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_changeBackgroundDataSetting">Allows the app to change the background data usage setting.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_accessWifiState">view Wi-Fi connections</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_accessWifiState">Allows the app to view information
      about Wi-Fi networking, such as whether Wi-Fi is enabled and name of
      connected Wi-Fi devices.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_changeWifiState">connect and disconnect from Wi-Fi</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_changeWifiState">Allows the app to connect to and
      disconnect from Wi-Fi access points and to make changes to device
      configuration for Wi-Fi networks.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_changeWifiMulticastState">allow Wi-Fi Multicast reception</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_changeWifiMulticastState" product="tablet">Allows the app to receive
      packets sent to all devices on a Wi-Fi network using multicast addresses,
      not just your tablet.  It uses more power than the non-multicast mode.</string>
    <string name="permdesc_changeWifiMulticastState" product="default">Allows the app to receive
      packets sent to all devices on a Wi-Fi network using multicast addresses,
      not just your phone.  It uses more power than the non-multicast mode.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_bluetoothAdmin">access Bluetooth settings</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bluetoothAdmin" product="tablet">Allows the app to
      configure the local Bluetooth tablet, and to discover and pair with remote
      devices.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bluetoothAdmin" product="default">Allows the app to configure
      the local Bluetooth phone, and to discover and pair with remote devices.</string>

    <string name="permlab_accessWimaxState">connect and disconnect from WiMAX</string>
    <string name="permdesc_accessWimaxState">Allows the app to determine whether
     WiMAX is enabled and information about any WiMAX networks that are
     connected. </string>

    <string name="permlab_changeWimaxState">Change WiMAX state</string>
    <string name="permdesc_changeWimaxState" product="tablet">Allows the app to
      connect the tablet to and disconnect the tablet from WiMAX networks.</string>
    <string name="permdesc_changeWimaxState" product="default">Allows the app to
      connect the phone to and disconnect the phone from WiMAX networks.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_bluetooth">pair with Bluetooth devices</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bluetooth" product="tablet">Allows the app to view the
      configuration of Bluetooth on the tablet, and to make and accept
      connections with paired devices.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_bluetooth" product="default">Allows the app to view the
      configuration of the Bluetooth on the phone, and to make and accept
      connections with paired devices.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_nfc">control Near Field Communication</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_nfc">Allows the app to communicate
      with Near Field Communication (NFC) tags, cards, and readers.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_disableKeyguard">disable your screen lock</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_disableKeyguard">Allows the app to disable the
      keylock and any associated password security.  For example, the phone
      disables the keylock when receiving an incoming phone call, then
      re-enables the keylock when the call is finished.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readSyncSettings">read sync settings</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readSyncSettings">Allows the app to read the sync settings for an account. For example, this can determine whether the People app is synced with an account.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_writeSyncSettings">toggle sync on and off</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeSyncSettings">Allows an app to modify the sync settings for an account.  For example, this can be used to enable sync of the People app with an account.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readSyncStats">read sync statistics</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readSyncStats">Allows an app to read the sync stats for an account, including the history of sync events and how much data is synced. </string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_subscribedFeedsRead">read subscribed feeds</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_subscribedFeedsRead">Allows the app to get details about the currently synced feeds.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_subscribedFeedsWrite">write subscribed feeds</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_subscribedFeedsWrite">Allows the app to modify
      your currently synced feeds. Malicious apps may change your synced feeds.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readDictionary">read terms you added to the dictionary</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readDictionary">Allows the app to read all words,
       names and phrases that the user may have stored in the user dictionary.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_writeDictionary">add words to user-defined dictionary</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_writeDictionary">Allows the app to write new words into the
      user dictionary.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
    <string name="permlab_sdcardRead" product="nosdcard">test access to protected storage</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_sdcardRead" product="default">test access to protected storage</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
    <string name="permdesc_sdcardRead" product="nosdcard">Allows the app to test a permission for USB storage that will be available on future devices. </string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_sdcardRead" product="default">Allows the app to test a permission for the SD card that will be available on future devices.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
    <string name="permlab_sdcardWrite" product="nosdcard">modify or delete the contents of your USB storage</string>
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_sdcardWrite" product="default">modify or delete the contents of your SD card</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
    <string name="permdesc_sdcardWrite" product="nosdcard">Allows the app to write to the USB storage.</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_sdcardWrite" product="default">Allows the app to write to the SD card.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
    <string name="permlab_mediaStorageWrite" product="default">modify/delete internal media storage contents</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
    <string name="permdesc_mediaStorageWrite" product="default">Allows the app to modify the contents of the internal media storage.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=30] -->
    <string name="permlab_sdcardAccessAll">access external storage of all users</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_sdcardAccessAll">Allows the app to access external storage for all users.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_cache_filesystem">access the cache filesystem</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_cache_filesystem">Allows the app to read and write the cache filesystem.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_use_sip">make/receive Internet calls</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_use_sip">Allows the app to use the SIP service to make/receive Internet calls.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_readNetworkUsageHistory">read historical network usage</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_readNetworkUsageHistory">Allows the app to read historical network usage for specific networks and apps.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_manageNetworkPolicy">manage network policy</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_manageNetworkPolicy">Allows the app to manage network policies and define app-specific rules.</string>

    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_modifyNetworkAccounting">modify network usage accounting</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_modifyNetworkAccounting">Allows the app to modify how network usage is accounted against apps. Not for use by normal apps.</string>

    <!-- Policy administration -->

    <!-- Title of policy access to limiting the user's password choices -->
    <string name="policylab_limitPassword">Set password rules</string>
    <!-- Description of policy access to limiting the user's password choices -->
    <string name="policydesc_limitPassword">Control the length and the characters allowed in screen-unlock passwords.</string>
    <!-- Title of policy access to watch user login attempts -->
    <string name="policylab_watchLogin">Monitor screen-unlock attempts</string>
    <!-- Description of policy access to watch user login attempts -->
    <string name="policydesc_watchLogin" product="tablet">Monitor the number of incorrect passwords
    typed when unlocking the screen, and lock the tablet or erase all the tablet\'s
    data if too many incorrect passwords are typed.</string>
    <!-- Description of policy access to watch user login attempts -->
    <string name="policydesc_watchLogin" product="default">Monitor the number of incorrect passwords
    typed. when unlocking the screen, and lock the phone or erase all the phone\'s
    data if too many incorrect passwords are typed.</string>
    <!-- Title of policy access to reset user's password -->
    <string name="policylab_resetPassword">Change the screen-unlock password</string>
    <!-- Description of policy access to reset user's password -->
    <string name="policydesc_resetPassword">Change the screen-unlock password.</string>
    <!-- Title of policy access to force lock the device -->
    <string name="policylab_forceLock">Lock the screen</string>
    <!-- Description of policy access to limiting the user's password choices -->
    <string name="policydesc_forceLock">Control how and when the screen locks.</string>
    <!-- Title of policy access to wipe the user's data -->
    <string name="policylab_wipeData">Erase all data</string>
    <!-- Description of policy access to wipe the user's data -->
    <string name="policydesc_wipeData" product="tablet">Erase the tablet\'s data without warning by performing a factory data reset.</string>
    <!-- Description of policy access to wipe the user's data -->
    <string name="policydesc_wipeData" product="default">Erase the phone\'s data without warning by performing a factory data reset.</string>
    <string name="policylab_setGlobalProxy">Set the device global proxy</string>
    <!-- Description of policy access to wipe the user's data -->
    <string name="policydesc_setGlobalProxy">Set the device global proxy
        to be used while policy is enabled. Only the first device admin
        sets the effective global proxy.</string>
    <!-- Title of policy access to enforce password expiration [CHAR LIMIT=30]-->
    <string name="policylab_expirePassword">Set lock-screen password expiration</string>
    <!-- Description of policy access to enforce password expiration [CHAR LIMIT=110]-->
    <string name="policydesc_expirePassword">Control how frequently the lock-screen password must be changed.</string>
    <!-- Title of policy access to require encrypted storage [CHAR LIMIT=30]-->
    <string name="policylab_encryptedStorage">Set storage encryption</string>
    <!-- Description of policy access to require encrypted storage [CHAR LIMIT=110]-->
    <string name="policydesc_encryptedStorage">Require that stored app data be encrypted.</string>
    <!-- Title of policy access to disable all device cameras [CHAR LIMIT=30]-->
    <string name="policylab_disableCamera">Disable cameras</string>
    <!-- Description of policy access to disable all device cameras [CHAR LIMIT=110]-->
    <string name="policydesc_disableCamera">Prevent use of all device cameras.</string>
    <!-- Title of policy access to disable all device cameras [CHAR LIMIT=30]-->
    <string name="policylab_disableKeyguardFeatures">Disable features in keyguard</string>
    <!-- Description of policy access to disable all device cameras [CHAR LIMIT=110]-->
    <string name="policydesc_disableKeyguardFeatures">Prevent use of some features in keyguard.</string>

    <!-- The order of these is important, don't reorder without changing Contacts.java --> <skip />
    <!-- Phone number types from android.provider.Contacts. This could be used when adding a new phone number for a contact, for example. -->
    <string-array name="phoneTypes">
        <item>Home</item>
        <item>Mobile</item>
        <item>Work</item>
        <item>Work Fax</item>
        <item>Home Fax</item>
        <item>Pager</item>
        <item>Other</item>
        <item>Custom</item>
    </string-array>

    <!-- The order of these is important, don't reorder without changing Contacts.java --> <skip />
    <!-- Email address types from android.provider.Contacts. This could be used when adding a new e-mail address for a contact, for example. -->
    <string-array name="emailAddressTypes">
        <item>Home</item>
        <item>Work</item>
        <item>Other</item>
        <item>Custom</item>
    </string-array>

    <!-- The order of these is important, don't reorder without changing Contacts.java --> <skip />
    <!-- Postal address types from android.provider.Contacts. This could be used when adding a new address for a contact, for example. -->
    <string-array name="postalAddressTypes">
        <item>Home</item>
        <item>Work</item>
        <item>Other</item>
        <item>Custom</item>
    </string-array>

    <!-- The order of these is important, don't reorder without changing Contacts.java --> <skip />
    <!-- Instant Messenger ID types from android.provider.Contacts. This could be used when adding a new IM for a contact, for example. -->
    <string-array name="imAddressTypes">
        <item>Home</item>
        <item>Work</item>
        <item>Other</item>
        <item>Custom</item>
    </string-array>

    <!-- The order of these is important, don't reorder without changing Contacts.java --> <skip />
    <!-- Organization types from android.provider.Contacts. This could be used when adding a new organization for a contact, for example. -->
    <string-array name="organizationTypes">
        <item>Work</item>
        <item>Other</item>
        <item>Custom</item>
    </string-array>

    <!-- The order of these is important, don't reorder without changing Contacts.java --> <skip />
    <!-- Instant Message protocols/providers from android.provider.Contacts -->
    <string-array name="imProtocols">
        <item>AIM</item>
        <item>Windows Live</item>
        <item>Yahoo</item>
        <item>Skype</item>
        <item>QQ</item>
        <item>Google Talk</item>
        <item>ICQ</item>
        <item>Jabber</item>
    </string-array>

    <!-- Custom phone number type -->
    <string name="phoneTypeCustom">Custom</string>
    <!-- Home phone number type -->
    <string name="phoneTypeHome">Home</string>
    <!-- Mobile phone number type -->
    <string name="phoneTypeMobile">Mobile</string>
    <!-- Work phone number type -->
    <string name="phoneTypeWork">Work</string>
    <!-- Work fax phone number type -->
    <string name="phoneTypeFaxWork">Work Fax</string>
    <!-- Home fax phone number type -->
    <string name="phoneTypeFaxHome">Home Fax</string>
    <!-- Pager phone number type -->
    <string name="phoneTypePager">Pager</string>
    <!-- Other phone number type -->
    <string name="phoneTypeOther">Other</string>
    <!-- Callback phone number type -->
    <string name="phoneTypeCallback">Callback</string>
    <!-- Car phone number type -->
    <string name="phoneTypeCar">Car</string>
    <!-- Company main phone number type -->
    <string name="phoneTypeCompanyMain">Company Main</string>
    <!-- ISDN phone number type -->
    <string name="phoneTypeIsdn">ISDN</string>
    <!-- Main phone number type -->
    <string name="phoneTypeMain">Main</string>
    <!-- Other fax phone number type -->
    <string name="phoneTypeOtherFax">Other Fax</string>
    <!-- Radio phone number type -->
    <string name="phoneTypeRadio">Radio</string>
    <!-- Telex phone number type -->
    <string name="phoneTypeTelex">Telex</string>
    <!-- TTY TDD phone number type -->
    <string name="phoneTypeTtyTdd">TTY TDD</string>
    <!-- Work mobile phone number type -->
    <string name="phoneTypeWorkMobile">Work Mobile</string>
    <!-- Work pager phone number type -->
    <string name="phoneTypeWorkPager">Work Pager</string>
    <!-- Assistant phone number type -->
    <string name="phoneTypeAssistant">Assistant</string>
    <!-- MMS phone number type -->
    <string name="phoneTypeMms">MMS</string>

    <!-- Label for custom events  [CHAR LIMIT=20] -->
    <string name="eventTypeCustom">Custom</string>
    <!-- Label for a birthday event  [CHAR LIMIT=20] -->
    <string name="eventTypeBirthday">Birthday</string>
    <!-- Label for an anniversary event  [CHAR LIMIT=20] -->
    <string name="eventTypeAnniversary">Anniversary</string>
    <!-- Label for other events  [CHAR LIMIT=20] -->
    <string name="eventTypeOther">Other</string>

    <!-- Custom email type -->
    <string name="emailTypeCustom">Custom</string>
    <!-- Home email type -->
    <string name="emailTypeHome">Home</string>
    <!-- Work email type -->
    <string name="emailTypeWork">Work</string>
    <!-- Other email type -->
    <string name="emailTypeOther">Other</string>
    <!-- Mobile email type -->
    <string name="emailTypeMobile">Mobile</string>

    <!-- Custom postal address type -->
    <string name="postalTypeCustom">Custom</string>
    <!-- Home postal address type -->
    <string name="postalTypeHome">Home</string>
    <!-- Work postal address type -->
    <string name="postalTypeWork">Work</string>
    <!-- Other postal address type -->
    <string name="postalTypeOther">Other</string>

    <!-- Custom IM address type -->
    <string name="imTypeCustom">Custom</string>
    <!-- Home IM address type -->
    <string name="imTypeHome">Home</string>
    <!-- Work IM address type -->
    <string name="imTypeWork">Work</string>
    <!-- Other IM address type -->
    <string name="imTypeOther">Other</string>

    <!-- Custom IM protocol type -->
    <string name="imProtocolCustom">Custom</string>
    <!-- AIM IM protocol type -->
    <string name="imProtocolAim">AIM</string>
    <!-- MSN IM protocol type -->
    <string name="imProtocolMsn">Windows Live</string>
    <!-- Yahoo IM protocol type -->
    <string name="imProtocolYahoo">Yahoo</string>
    <!-- Skype IM protocol type -->
    <string name="imProtocolSkype">Skype</string>
    <!-- QQ IM protocol type -->
    <string name="imProtocolQq">QQ</string>
    <!-- Google Talk IM protocol type -->
    <string name="imProtocolGoogleTalk">Google Talk</string>
    <!-- ICQ IM protocol type -->
    <string name="imProtocolIcq">ICQ</string>
    <!-- Jabber IM protocol type -->
    <string name="imProtocolJabber">Jabber</string>
    <!-- NetMeeting IM protocol type -->
    <string name="imProtocolNetMeeting">NetMeeting</string>

    <!-- Work organization type -->
    <string name="orgTypeWork">Work</string>
    <!-- Other organization type -->
    <string name="orgTypeOther">Other</string>
    <!-- Custom organization type -->
    <string name="orgTypeCustom">Custom</string>

    <!-- Custom relationship custom [CHAR LIMIT=20] -->
    <string name="relationTypeCustom">Custom</string>
    <!-- Assistant relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeAssistant">Assistant</string>
    <!-- Brother relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeBrother">Brother</string>
    <!-- Child relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeChild">Child</string>
    <!-- Domestic Partner relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeDomesticPartner">Domestic Partner</string>
    <!-- Father relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeFather">Father</string>
    <!-- Friend relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeFriend">Friend</string>
    <!-- Manager relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeManager">Manager</string>
    <!-- Mother relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeMother">Mother</string>
    <!-- Parent relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeParent">Parent</string>
    <!-- Partner relationship type [CHAR LIMIT=20] -->
    <string name="relationTypePartner">Partner</string>
    <!-- Referred by relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeReferredBy">Referred by</string>
    <!-- Relative relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeRelative">Relative</string>
    <!-- Sister relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeSister">Sister</string>
    <!-- Spouse relationship type [CHAR LIMIT=20] -->
    <string name="relationTypeSpouse">Spouse</string>

    <!-- Custom SIP address type -->
    <string name="sipAddressTypeCustom">Custom</string>
    <!-- Home SIP address type -->
    <string name="sipAddressTypeHome">Home</string>
    <!-- Work SIP address type -->
    <string name="sipAddressTypeWork">Work</string>
    <!-- Other SIP address type -->
    <string name="sipAddressTypeOther">Other</string>

    <!-- Instructions telling the user to enter their SIM PIN to unlock the keyguard.
         Displayed in one line in a large font.  -->
    <string name="keyguard_password_enter_pin_code">Type PIN code</string>

    <!-- Instructions telling the user to enter their SIM PUK to unlock the keyguard.
         Displayed in one line in a large font.  -->
    <string name="keyguard_password_enter_puk_code">Type PUK and new PIN code</string>

    <!-- Prompt to enter SIM PUK in Edit Text Box in unlock screen -->
    <string name="keyguard_password_enter_puk_prompt">PUK code</string>
    <!-- Prompt to enter New SIM PIN in Edit Text Box in unlock screen -->
    <string name="keyguard_password_enter_pin_prompt">New PIN code</string>

    <!-- Displayed as hint in passwordEntry EditText on PasswordUnlockScreen [CHAR LIMIT=30]-->
    <string name="keyguard_password_entry_touch_hint"><font size="17">Touch to type password</font></string>

    <!-- Instructions telling the user to enter their text password to unlock the keyguard.
         Displayed in one line in a large font.  -->
    <string name="keyguard_password_enter_password_code">Type password to unlock</string>

    <!-- Instructions telling the user to enter their PIN password to unlock the keyguard.
         Displayed in one line in a large font.  -->
    <string name="keyguard_password_enter_pin_password_code">Type PIN to unlock</string>

    <!-- Instructions telling the user that they entered the wrong pin while trying
         to unlock the keyguard.  Displayed in one line in a large font.  -->
    <string name="keyguard_password_wrong_pin_code">Incorrect PIN code.</string>

    <!-- Instructions telling the user how to unlock the phone. -->
    <string name="keyguard_label_text">To unlock, press Menu then 0.</string>

    <!-- This can be used in any application wanting to disable the text "Emergency number" -->
    <string name="emergency_call_dialog_number_for_display">Emergency number</string>

    <!--
       *** touch based lock / unlock ***
                                          --> <skip />

    <!-- On the keyguard screen, it shows the carrier the phone is connected to.  This is displayed if the phone is not connected to a carrier.-->
    <string name="lockscreen_carrier_default">No service.</string>

    <!-- Shown in the lock screen to tell the user that the screen is locked. -->
    <string name="lockscreen_screen_locked">Screen locked.</string>

    <!-- when pattern lock is enabled, tell them about the emergency dial -->
    <string name="lockscreen_instructions_when_pattern_enabled">Press Menu to unlock or place emergency call.</string>

    <!-- On the keyguard screen, when pattern lock is disabled, only tell them to press menu to unlock.  This is shown in small font at the bottom. -->
    <string name="lockscreen_instructions_when_pattern_disabled">Press Menu to unlock.</string>

    <!-- On the unlock pattern screen, shown at the top of the unlock screen to tell the user what to do. Below this text is the place for theu ser to draw the pattern. -->
    <string name="lockscreen_pattern_instructions">Draw pattern to unlock</string>
    <!-- Button at the bottom of the unlock screen to make an emergency call. -->
    <string name="lockscreen_emergency_call">Emergency call</string>
    <!-- Button at the bottom of the unlock screen that lets the user return to a call -->
    <string name="lockscreen_return_to_call">Return to call</string>
    <!-- Shown to confirm that the user entered their lock pattern correctly. -->
    <string name="lockscreen_pattern_correct">Correct!</string>
    <!-- On the unlock pattern screen, shown when the user enters the wrong lock pattern and must try again. -->
    <string name="lockscreen_pattern_wrong">Try again</string>
    <!-- On the unlock password screen, shown when the user enters the wrong lock password and must try again. -->
    <string name="lockscreen_password_wrong">Try again</string>
    <!-- Shown when face unlock failed multiple times so we're just using the backup -->
    <string name="faceunlock_multiple_failures">Maximum Face Unlock attempts exceeded</string>

    <!-- When the lock screen is showing and the phone plugged in, and the battery
         is not fully charged, show the current charge %.  -->
    <string name="lockscreen_plugged_in">Charging, <xliff:g id="number">%d</xliff:g><xliff:g id="percent">%%</xliff:g></string>
    <!-- When the lock screen is showing, the phone is plugged in and the battery is fully
         charged, say that it is charged. -->
    <string name="lockscreen_charged">Charged</string>
    <!-- A short representation of charging information, e.g "34%" -->
    <string name="lockscreen_battery_short"><xliff:g id="number">%d</xliff:g><xliff:g id="percent">%%</xliff:g></string>

    <!-- When the lock screen is showing and the battery is low, warn user to plug
         in the phone soon. -->
    <string name="lockscreen_low_battery">Connect your charger.</string>

    <!-- Shown in the lock screen when there is no SIM card. -->
    <string name="lockscreen_missing_sim_message_short">No SIM card</string>
    <!-- Shown in the lock screen when there is no SIM card. -->
    <string name="lockscreen_missing_sim_message" product="tablet">No SIM card in tablet.</string>
    <!-- Shown in the lock screen when there is no SIM card. -->
    <string name="lockscreen_missing_sim_message" product="default">No SIM card in phone.</string>
    <!-- Shown in the lock screen to ask the user to insert a SIM card. -->
    <string name="lockscreen_missing_sim_instructions">Insert a SIM card.</string>
    <!-- Shown in the lock screen to ask the user to insert a SIM card when sim is missing or not readable. -->
    <string name="lockscreen_missing_sim_instructions_long">The SIM card is missing or not readable. Insert a SIM card.</string>
    <!-- Shown in the lock screen when SIM card is permanently disabled. -->
    <string name="lockscreen_permanent_disabled_sim_message_short">Unusable SIM card.</string>
    <!-- Shown in the lock screen to inform the user to SIM card is permanently disabled. -->
    <string name="lockscreen_permanent_disabled_sim_instructions">Your SIM card has been permanently disabled.\n
    Contact your wireless service provider for another SIM card.</string>

    <!-- Shown on transport control of lockscreen. Pressing button goes to previous track. -->
    <string name="lockscreen_transport_prev_description">Previous track button</string>
    <!-- Shown on transport control of lockscreen. Pressing button goes to next track. -->
    <string name="lockscreen_transport_next_description">Next track button</string>
    <!-- Shown on transport control of lockscreen. Pressing button pauses playback -->
    <string name="lockscreen_transport_pause_description">Pause button</string>
    <!-- Shown on transport control of lockscreen. Pressing button pauses playback -->
    <string name="lockscreen_transport_play_description">Play button</string>
    <!-- Shown on transport control of lockscreen. Pressing button pauses playback -->
    <string name="lockscreen_transport_stop_description">Stop button</string>

    <!-- Shown in the lock screen when there is emergency calls only mode. -->
    <string name="emergency_calls_only" msgid="2485604591272668370">Emergency calls only</string>

    <!-- When the user inserts a sim card from an unsupported network, it becomes network
         locked -->
    <string name="lockscreen_network_locked_message">Network locked</string>


    <!-- When the user enters a wrong sim pin too many times, it becomes
         PUK locked (Pin Unlock Kode) -->
    <string name="lockscreen_sim_puk_locked_message">SIM card is PUK-locked.</string>
    <!-- Shown in the lock screen when the SIM has become PUK locked and the user must call customer care to unlock it. -->
    <string name="lockscreen_sim_puk_locked_instructions">See the User Guide or contact Customer Care.</string>

    <!-- Shown in the lock screen to tell the user that their SIM is locked and they must unlock it. -->
    <string name="lockscreen_sim_locked_message">SIM card is locked.</string>

    <!-- For the unlock screen, When the user enters a sim unlock code, it takes a little while to check
         whether it is valid, and to unlock the sim if it is valid.  we display a
         progress dialog in the meantime.  this is the emssage. -->
    <string name="lockscreen_sim_unlock_progress_dialog_message">Unlocking SIM card\u2026</string>

    <!-- For the unlock screen, Information message shown in dialog when user has too many failed attempts at
         drawing the unlock pattern -->
    <string name="lockscreen_too_many_failed_attempts_dialog_message">
        You have incorrectly drawn your unlock pattern <xliff:g id="number">%d</xliff:g> times.
        \n\nTry again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>

    <!-- For the unlock screen, Information message shown in dialog when user has too many failed attempts at
         entering the password -->
    <string name="lockscreen_too_many_failed_password_attempts_dialog_message">
        You have incorrectly typed your password <xliff:g id="number">%d</xliff:g> times.
        \n\nTry again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>

    <!-- For the unlock screen, Information message shown in dialog when user has too many failed attempts at
         entering the PIN -->
    <string name="lockscreen_too_many_failed_pin_attempts_dialog_message">
        You have incorrectly typed your PIN <xliff:g id="number">%d</xliff:g> times.
        \n\nTry again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>

    <!-- For the unlock screen, informational message shown in dialog when user is almost at the limit
         where they will be locked out and may have to enter an alternate username/password to unlock the phone -->
    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet">
        You have incorrectly drawn your unlock pattern <xliff:g id="number">%d</xliff:g> times.
       After <xliff:g id="number">%d</xliff:g> more unsuccessful attempts,
       you will be asked to unlock your tablet using your Google signin.\n\n
       Try again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>

    <!-- For the unlock screen, informational message shown in dialog when user is almost at the limit
         where they will be locked out and may have to enter an alternate username/password to unlock the phone -->
    <string name="lockscreen_failed_attempts_almost_glogin" product="default">
        You have incorrectly drawn your unlock pattern <xliff:g id="number">%d</xliff:g> times.
       After <xliff:g id="number">%d</xliff:g> more unsuccessful attempts,
       you will be asked to unlock your phone using your Google signin.\n\n
       Try again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>

    <!-- For the unlock screen, informational message shown in dialog when user is almost at the limit
         where the device will be wiped. -->
    <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet">
       You have incorrectly attempted to unlock the tablet <xliff:g id="number">%d</xliff:g> times.
       After <xliff:g id="number">%d</xliff:g> more unsuccessful attempts,
       the tablet will be reset to factory default and all user data will be lost.
    </string>

    <!-- For the unlock screen, informational message shown in dialog when user is almost at the limit
         where the device will be wiped. -->
    <string name="lockscreen_failed_attempts_almost_at_wipe" product="default">
       You have incorrectly attempted to unlock the phone <xliff:g id="number">%d</xliff:g> times.
       After <xliff:g id="number">%d</xliff:g> more unsuccessful attempts,
       the phone will be reset to factory default and all user data will be lost.
    </string>

    <!-- For the unlock screen, informational message shown in dialog when user has exceeded the
        maximum attempts and the device will now be wiped -->
    <string name="lockscreen_failed_attempts_now_wiping" product="tablet">
       You have incorrectly attempted to unlock the tablet <xliff:g id="number">%d</xliff:g> times.
       The tablet will now be reset to factory default.
    </string>

    <!-- For the unlock screen, informational message shown in dialog when user has exceeded the
        maximum attempts and the device will now be wiped -->
    <string name="lockscreen_failed_attempts_now_wiping" product="default">
       You have incorrectly attempted to unlock the phone <xliff:g id="number">%d</xliff:g> times.
       The phone will now be reset to factory default.
    </string>

    <!-- On the unlock screen, countdown message shown while user is waiting to try again after too many
         failed attempts -->
    <string name="lockscreen_too_many_failed_attempts_countdown">Try again in <xliff:g id="number">%d</xliff:g> seconds.</string>

    <!-- On the unlock screen, message shown on button that appears once it's apparent the user may have forgotten
         their lock gesture -->
    <string name="lockscreen_forgot_pattern_button_text">Forgot pattern?</string>

    <!-- Title of the unlock screen that uses your Google login and password when the user hit
         the 'forgot pattern' button.-->
    <string name="lockscreen_glogin_forgot_pattern">Account unlock</string>
    <!-- Title of the unlock screen that uses your Google login and password when the user attempted
         too many patterns and we are forcing them to use their account instead. -->
    <string name="lockscreen_glogin_too_many_attempts">Too many pattern attempts</string>
    <!-- In the unlock screen, message telling the user that they need to use their Google login and password to unlock the phone -->
    <string name="lockscreen_glogin_instructions">To unlock, sign in with your Google account.</string>
    <!-- Hint caption for the username field when unlocking the phone using login and password -->
    <string name="lockscreen_glogin_username_hint">Username (email)</string>
    <!-- Hint caption for the password field when unlocking the phone using login and password -->
    <string name="lockscreen_glogin_password_hint">Password</string>
    <!-- Button to try to unlock the phone using username and password -->
    <string name="lockscreen_glogin_submit_button">Sign in</string>
    <!-- Displayed to the user when unlocking the phone with a username and password fails. -->
    <string name="lockscreen_glogin_invalid_input">Invalid username or password.</string>
    <!-- Hint displayed on account unlock screen to advise the user on how to recover the account. -->
    <string name="lockscreen_glogin_account_recovery_hint">Forgot your username or password\?\nVisit <b>google.com/accounts/recovery</b>.</string>

    <!-- Displayed in a progress dialog while a username and password are being checked. -->
    <string name="lockscreen_glogin_checking_password">Checking\u2026</string>
    <!-- Displayed on lock screen's left tab - unlock -->
    <string name="lockscreen_unlock_label">Unlock</string>
    <!-- Displayed on lock screen's right tab - turn sound on -->
    <string name="lockscreen_sound_on_label">Sound on</string>
    <!-- Displayed on lock screen's right tab - turn sound off -->
    <string name="lockscreen_sound_off_label">Sound off</string>

    <!-- Accessibility description sent when user starts drawing a lock pattern. [CHAR LIMIT=NONE] -->
    <string name="lockscreen_access_pattern_start">Pattern started</string>
    <!-- Accessibility description sent when the pattern times out and is cleared. [CHAR LIMIT=NONE] -->
    <string name="lockscreen_access_pattern_cleared">Pattern cleared</string>
    <!-- Accessibility description sent when user adds a cell to the pattern. [CHAR LIMIT=NONE]  -->
    <string name="lockscreen_access_pattern_cell_added">Cell added</string>
    <!-- Accessibility description sent when user completes drawing a pattern. [CHAR LIMIT=NONE] -->
    <string name="lockscreen_access_pattern_detected">Pattern completed</string>

    <!-- Accessibility description of the add widget button. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_add_widget">Add widget.</string>
    <!-- Accessibility description of the empty sidget slot (place holder for a new widget). [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_widget_empty_slot">Empty</string>
    <!-- Accessibility description of the event of expanding an unlock area. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_unlock_area_expanded">Unlock area expanded.</string>
    <!-- Accessibility description of the event of collapsing an unlock area. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_unlock_area_collapsed">Unlock area collapsed.</string>
    <!-- Accessibility description of a lock screen widget. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_widget"><xliff:g id="widget_index">%1$s</xliff:g> widget.</string>
    <!-- Accessibility description of the lock screen user selector widget. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_user_selector">User selector</string>
    <!-- Accessibility description of the lock screen status widget. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_status">Status</string>
    <!-- Accessibility description of the camera widget. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_camera">Camera</string>
    <!-- Accessibility description of the lock media control widget. [CHAR_LIMIT=none] -->
    <string name="keygaurd_accessibility_media_controls">Media controls</string>
    <!-- Accessibility description of widget reordering start. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_widget_reorder_start">Widget reordering started.</string>
    <!-- Accessibility description of widget reordering end. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_widget_reorder_end">Widget reordering ended.</string>
    <!-- Accessibility description of the a widget deletion event. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_widget_deleted">Widget <xliff:g id="widget_index">%1$s</xliff:g> deleted.</string>
    <!-- Accessibility description of the button to expand the lock area. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_expand_lock_area">Expand unlock area.</string>
    <!-- Accessibility description of the slide unlock. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_slide_unlock">Slide unlock.</string>
    <!-- Accessibility description of the pattern unlock. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_pattern_unlock">Pattern unlock.</string>
    <!-- Accessibility description of the face unlock. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_face_unlock">Face unlock.</string>
    <!-- Accessibility description of the pin lock. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_pin_unlock">Pin unlock.</string>
    <!-- Accessibility description of the password lock. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_password_unlock">Password unlock.</string>
    <!-- Accessibility description of the unlock pattern area. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_pattern_area">Pattern area.</string>
    <!-- Accessibility description of the unlock slide area. [CHAR_LIMIT=none] -->
    <string name="keyguard_accessibility_slide_area">Slide area.</string>

    <!-- Password keyboard strings. Used by LockScreen and Settings --><skip />
    <!-- Label for "switch to symbols" key.  Must be short to fit on key! -->
    <string name="password_keyboard_label_symbol_key">\?123</string>
    <!-- Label for "switch to alphabetic" key.  Must be short to fit on key! -->
    <string name="password_keyboard_label_alpha_key">ABC</string>
    <!-- Label for ALT modifier key.  Must be short to fit on key! -->
    <string name="password_keyboard_label_alt_key">ALT</string>

    <!-- Label for granularity to traverse the content on an AccessibilityNodeInfo by character. Only spoken to the user. [CHAR LIMIT=NONE] -->
    <string name="granularity_label_character">character</string>
    <!-- Label for granularity to traverse the content on an AccessibilityNodeInfo by word. Only spoken to the user. [CHAR LIMIT=NONE] -->
    <string name="granularity_label_word">word</string>
    <!-- Label for granularity to traverse the content on an AccessibilityNodeInfo by link. Only spoken to the user. [CHAR LIMIT=NONE] -->
    <string name="granularity_label_link">link</string>
    <!-- Label for granularity to traverse the content on an AccessibilityNodeInfo by line. Only spoken to the user. [CHAR LIMIT=NONE] -->
    <string name="granularity_label_line">line</string>

    <!-- A format string for 12-hour time of day, just the hour, not the minute, with lower-case "am" or "pm" (example: "3pm"). -->
    <string name="hour_ampm">"<xliff:g id="hour" example="3">%-l</xliff:g><xliff:g id="ampm" example="pm">%P</xliff:g>"</string>

    <!-- A format string for 12-hour time of day, just the hour, not the minute, with capital "AM" or "PM" (example: "3PM"). -->
    <string name="hour_cap_ampm">"<xliff:g id="hour" example="3">%-l</xliff:g><xliff:g id="ampm" example="PM">%p</xliff:g>"</string>

    <!-- Title of the alert when something went wrong in the factory test. -->
    <string name="factorytest_failed">Factory test failed</string>
    <!-- Error message displayed when a non-system application tries to start a factory test. -->
    <string name="factorytest_not_system">The FACTORY_TEST action
        is only supported for packages installed in /system/app.</string>
    <!-- Error message displayed when the factory test could not be started. -->
    <string name="factorytest_no_action">No package was found that provides the
        FACTORY_TEST action.</string>
    <!-- Button to restart the device after the factory test. -->
    <string name="factorytest_reboot">Reboot</string>

    <!-- Do not translate.  WebView User Agent string -->
    <string name="web_user_agent" translatable="false">Mozilla/5.0 (Linux; U; <xliff:g id="x">Android %s</xliff:g>)
        AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 <xliff:g id="mobile">%s</xliff:g>Safari/534.30</string>
    <!-- Do not translate.  WebView User Agent targeted content -->
    <string name="web_user_agent_target_content" translatable="false">"Mobile "</string>

    <!-- Title for a JavaScript dialog. "The page at <url of current page> says:" -->
    <string name="js_dialog_title">The page at \"<xliff:g id="title">%s</xliff:g>\" says:</string>
    <!-- Default title for a javascript dialog -->
    <string name="js_dialog_title_default">JavaScript</string>
    <!-- Message in a javascript dialog asking if the user wishes to leave the
             current page -->
    <string name="js_dialog_before_unload">Navigate away from this page?\n\n<xliff:g id="message">%s</xliff:g>\n\nTouch OK to continue, or Cancel to stay on the current page.</string>

    <!-- Title of the WebView save password dialog.  If the user enters a password in a form on a website, a dialog will come up asking if they want to save the password. -->
    <string name="save_password_label">Confirm</string>

    <!-- Toast for double-tap -->
    <string name="double_tap_toast">Tip: Double-tap to zoom in and out.</string>

    <!-- Text to show in the auto complete drop down list on a text view when the WebView can auto fill the entire form, and the user has configured an AutoFill profile [CHAR-LIMIT=8] -->
    <string name="autofill_this_form">Autofill</string>
    <!-- Text to show in the auto complete drop down list on a text view when the WebView can auto fill the entire form but the user has not configured an AutoFill profile [CHAR-LIMIT=19] -->
    <string name="setup_autofill">Set up Autofill</string>

    <!-- String used to separate FirstName and LastName when writing out a local name
         e.g. John<separator>Smith [CHAR-LIMIT=NONE]-->
    <string name="autofill_address_name_separator">\u0020</string>
    <!-- Format string for displaying a name. $1 is First Name, $2 is autofill_address_name_separator, $3 is Last Name.
         e.g. (John)( )(Smith) -->
    <string name="autofill_address_summary_name_format">$1$2$3</string>

    <!-- String used to separate Name and Address Line 1
         e.g. John Smith<separator>123 Main Street [CHAR-LIMIT=NONE]-->
    <string name="autofill_address_summary_separator">,\u0020</string>
    <!-- Format string for displaying a name and address summary. $1 is the Full Name, $2 is autofill_address_summary_separator, $3 is the Address
         e.g. (John Smith)(, )(123 Main Street) -->
    <string name="autofill_address_summary_format">$1$2$3</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_attention_ignored_re">attention|attn</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_region_ignored_re">province|region|other<!-- es -->|provincia<!-- pt-BR, pt-PT -->|bairro|suburb</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_company_re">company|business|organization|organisation|department<!-- de-DE -->|firma|firmenname<!-- es -->|empresa<!-- fr-FR -->|societe|société<!-- it-IT -->|ragione.?sociale<!-- ja-JP -->|会社<!-- ru -->|название.?компании<!-- zh-CN -->|单位|公司</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_address_line_1_re">address.?line|address1|addr1|street<!-- de-DE -->|strasse|straße|hausnummer|housenumber<!-- en-GB -->|house.?name<!-- es -->|direccion|dirección<!-- fr-FR -->|adresse<!-- it-IT -->|indirizzo<!-- ja-JP -->|住所1<!-- pt-BR, pt-PT -->|morada|endereço<!-- ru -->|Адрес<!-- zh-CN -->|地址</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_address_line_1_label_re">address<!-- fr-FR -->|adresse<!-- it-IT -->|indirizzo<!-- ja-JP -->|住所<!-- zh-CN -->|地址</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_address_line_2_re">address.?line2|address2|addr2|street|suite|unit<!-- de-DE -->|adresszusatz|ergänzende.?angaben<!-- es -->|direccion2|colonia|adicional<!-- fr-FR -->|addresssuppl|complementnom|appartement<!-- it-IT -->|indirizzo2<!-- ja-JP -->|住所2</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_address_line_3_re">address.?line3|address3|addr3|street|line3<!-- es -->|municipio<!-- fr-FR -->|batiment|residence<!-- it-IT -->|indirizzo3</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_country_re">country|location<!-- ja-JP -->|国<!-- zh-CN -->|国家</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_zip_code_re">zip|postal|post code|pcode|^1z$<!-- de-DE -->|postleitzahl<!-- es -->|cp<!-- fr-FR -->|cdp<!-- it-IT -->|cap<!-- ja-JP -->|郵便番号<!-- pt-BR, pt-PT -->|codigo|codpos|cep<!-- ru -->|Почтовый.?Индекс<!--zh-CN -->|邮政编码|邮编<!-- zh-TW -->|郵遞區號</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_zip_4_re">zip|^-$|post2<!-- pt-BR, pt-PT -->|codpos2</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_city_re">city|town<!-- de-DE -->|ort|stadt<!-- en-AU -->|suburb<!-- es -->|ciudad|provincia|localidad|poblacion<!-- fr-FR -->|ville|commune<!-- it-IT -->|localita<!-- ja-JP -->|市区町村<!-- pt-BR, pt-PT -->|cidade<!-- ru -->|Город<!-- zh-CN -->|市<!-- zh-TW -->|分區</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_state_re">state|county|region|province<!-- de-DE -->|land<!-- en-UK -->|county|principality<!-- ja-JP -->|都道府県<!-- pt-BR, pt-PT -->|estado|provincia<!-- ru -->|область<!-- zh-CN -->|省<!-- zh-TW -->|地區</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_address_type_same_as_re">same as</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_address_type_use_my_re">use my</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_billing_designator_re">bill</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_shipping_designator_re">ship</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_email_re">e.?mail<!-- ja-JP -->|メールアドレス<!-- ru -->|Электронной.?Почты<!-- zh-CN -->|邮件|邮箱<!-- zh-TW -->|電郵地址</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_username_re">user.?name|user.?id<!-- de-DE -->|vollständiger.?name<!-- zh-CN -->|用户名</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_name_re">^name|full.?name|your.?name|customer.?name|firstandlastname<!-- es -->|nombre.*y.*apellidos<!-- fr-FR -->|^nom<!-- ja-JP -->|お名前|氏名<!-- pt-BR, pt-PT -->|^nome<!-- zh-CN -->|姓名</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_name_specific_re">^name<!-- fr-FR -->|^nom<!-- pt-BR, pt-PT -->|^nome</string>

    <!-- Do not translate. Regex used by AutoFill. -->

    <string name="autofill_first_name_re">irst.*name|initials|fname|first$<!-- de-DE -->|vorname<!-- es -->|nombre<!-- fr-FR -->|forename|prénom|prenom<!-- ja-JP -->|名<!-- pt-BR, pt-PT -->|nome<!-- ru -->|Имя</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_middle_initial_re">middle.*initial|m\\.i\\.|mi$</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_middle_name_re">middle.*name|mname|middle$<!-- es -->|apellido.?materno|lastlastname</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_last_name_re">last.*name|lname|surname|last$<!-- de-DE -->|nachname<!-- es -->|apellidos<!-- fr-FR -->|famille|^nom<!-- it-IT -->|cognome<!-- ja-JP -->|姓<!-- pt-BR, pt-PT -->|morada|apelidos|surename|sobrenome<!-- ru -->|Фамилия</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_phone_re">phone<!-- de-DE -->|telefonnummer<!-- es -->|telefono|teléfono<!-- fr-FR -->|telfixe<!-- ja-JP -->|電話<!-- pt-BR, pt-PT -->|telefone|telemovel<!-- ru -->|телефон<!-- zh-CN -->|电话</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_area_code_re">area.*code|acode|area</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_phone_prefix_re">prefix<!-- fr-FR -->|preselection<!-- pt-BR, pt-PT -->|ddd</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_phone_suffix_re">suffix</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_phone_extension_re">ext<!-- pt-BR, pt-PT -->|ramal</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_name_on_card_re">card.?holder|name.?on.?card|ccname|owner<!-- de-DE -->|karteninhaber<!-- es -->|nombre.*tarjeta<!-- fr-FR -->|nom.*carte<!-- it-IT -->|nome.*cart<!-- ja-JP -->|名前<!-- ru -->|Имя.*карты<!-- zh-CN -->|信用卡开户名|开户名|持卡人姓名<!-- zh-TW -->|持卡人姓名</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_name_on_card_contextual_re">name</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_card_cvc_re">verification|card identification|cvn|security code|cvv code|cvc</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_card_number_re">number|card.?#|card.?no|ccnum<!-- de-DE -->|nummer<!-- es -->|credito|numero|número<!-- fr-FR -->|numéro<!-- ja-JP -->|カード番号<!-- ru -->|Номер.*карты<!-- zh-CN -->|信用卡号|信用卡号码<!-- zh-TW -->|信用卡卡號</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_expiration_month_re">expir|exp.*month|exp.*date|ccmonth<!-- de-DE -->|gueltig|gültig|monat<!-- es -->|fecha<!-- fr-FR -->|date.*exp<!-- it-IT -->|scadenza<!-- ja-JP -->|有効期限<!-- pt-BR, pt-PT -->|validade<!-- ru -->|Срок действия карты<!-- zh-CN -->|月</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_expiration_date_re">exp|^/|year<!-- de-DE -->|ablaufdatum|gueltig|gültig|yahr<!-- es -->|fecha<!-- it-IT -->|scadenza<!-- ja-JP -->|有効期限<!-- pt-BR, pt-PT -->|validade<!-- ru -->|Срок действия карты<!-- zh-CN -->|年|有效期</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_card_ignored_re">^card</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_fax_re">fax<!-- fr-FR -->|télécopie|telecopie<!-- ja-JP -->|ファックス<!-- ru -->|факс<!-- zh-CN -->|传真<!-- zh-TW -->|傳真</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_country_code_re">country.*code|ccode|_cc</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_area_code_notext_re">^\\($</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_phone_prefix_separator_re">^-$|^\\)$</string>

    <!-- Do not translate. Regex used by AutoFill. -->
    <string name="autofill_phone_suffix_separator_re">^-$</string>

    <!-- Label in a web form for "Province" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_province">Province</string>

    <!-- Label in a web form for "Postal code" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_postal_code">Postal code</string>

    <!-- Label in a web form for "State" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_state">State</string>

    <!-- Label in a web form for "ZIP code" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_zip_code">ZIP code</string>

    <!-- Label in a web form for "County" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_county">County</string>

    <!-- Label in a web form for "Island" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_island">Island</string>

    <!-- Label in a web form for "District" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_district">District</string>

    <!-- Label in a web form for "Department" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_department">Department</string>

    <!-- Label in a web form for "Prefecture" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_prefecture">Prefecture</string>

    <!-- Label in a web form for "Parish" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_parish">Parish</string>

    <!-- Label in a web form for "Area" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_area">Area</string>

    <!-- Label in a web form for "Emirate" [CHAR-LIMIT=NONE]  -->
    <string name="autofill_emirate">Emirate</string>

    <!-- Title of an application permission, listed so the user can choose whether
        they want to allow the application to do this. -->
    <string name="permlab_readHistoryBookmarks">read your Web bookmarks and history</string>
    <!-- Description of an application permission, listed so the user can choose whether
        they want to allow the application to do this. -->
    <string name="permdesc_readHistoryBookmarks">Allows the app to read the
     history of all URLs that the Browser has visited, and all of the Browser\'s
     bookmarks. Note: this permission may not be enforced by third-party
     browsers or other  applications with web browsing capabilities.</string>
    <!-- Title of an application permission, listed so the user can choose whether
        they want to allow the application to do this. -->

    <string name="permlab_writeHistoryBookmarks">write web bookmarks and history</string>
    <!-- Description of an application permission, listed so the user can choose whether
        they want to allow the application to do this. -->
    <string name="permdesc_writeHistoryBookmarks" product="tablet">Allows the
        app to modify the Browser\'s history or bookmarks stored on your tablet.
        This may allow the app to erase or modify Browser data.  Note: this
        permission may note be enforced by third-party browsers or other
        applications with web browsing capabilities.</string>
    <!-- Description of an application permission, listed so the user can choose whether
        they want to allow the application to do this. -->
    <string name="permdesc_writeHistoryBookmarks" product="default">Allows the
        app to modify the Browser\'s history or bookmarks stored on your phone.
        This may allow the app to erase or modify Browser data.  Note:
        this permission may note be enforced by third-party browsers or other
        applications with web browsing capabilities.</string>

    <!-- Title of an application permission, listed so the user can choose whether
        they want to allow the application to do this. -->
    <string name="permlab_setAlarm">set an alarm</string>
    <!-- Description of an application permission, listed so the user can choose whether
        they want to allow the application to do this. -->
    <string name="permdesc_setAlarm">Allows the app to set an alarm in
      an installed alarm clock app. Some alarm clock apps may
      not implement this feature.</string>

    <!-- Title of an application permission, listed so the user can choose whether
        they want to allow the application to do this. [CHAR LIMIT=NONE] -->
    <string name="permlab_addVoicemail">add voicemail</string>
    <!-- Description of an application permission, listed so the user can choose whether
        they want to allow the application to do this. [CHAR LIMIT=NONE] -->
    <string name="permdesc_addVoicemail">Allows the app to add messages
      to your voicemail inbox.</string>

    <!-- Title of an application permission, listed so the user can choose whether
        they want to allow the application to do this. -->
    <string name="permlab_writeGeolocationPermissions">modify Browser geolocation permissions</string>
    <!-- Description of an application permission, listed so the user can choose whether
        they want to allow the application to do this. -->
    <string name="permdesc_writeGeolocationPermissions">Allows the app to modify the
        Browser\'s geolocation permissions. Malicious apps
        may use this to allow sending location information to arbitrary web sites.</string>

    <!-- Title of an application permission which allows the application to verify whether
         a different package is able to be installed by some internal logic. [CHAR LIMIT=40] -->
    <string name="permlab_packageVerificationAgent">verify packages</string>
    <!-- Description of an application permission which allows the application to verify whether
         a different package is able to be installed by some internal heuristic. [CHAR LIMIT=NONE] -->
    <string name="permdesc_packageVerificationAgent">Allows the app to verify a package is
        installable.</string>

    <!-- Title of an application permission which allows the application to verify whether
         a different package is able to be installed by some internal heuristic. [CHAR LIMIT=40] -->
    <string name="permlab_bindPackageVerifier">bind to a package verifier</string>
    <!-- Description of an application permission which allows the application to verify whether
         a different package is able to be installed by some internal heuristic. [CHAR LIMIT=NONE] -->
    <string name="permdesc_bindPackageVerifier">Allows the holder to make requests of
        package verifiers. Should never be needed for normal apps.</string>

    <!-- Title of an application permission which allows the application to access serial ports via the SerialManager. [CHAR LIMIT=40] -->
    <string name="permlab_serialPort">access serial ports</string>
    <!-- Description of an application permission which allows the application access serial ports via the SerialManager. [CHAR LIMIT=NONE] -->
    <string name="permdesc_serialPort">Allows the holder to access serial ports using the SerialManager API.</string>

    <!-- Title of an application permission which allows the holder to access content
         providers from outside an ApplicationThread. [CHAR LIMIT=40] -->
    <string name="permlab_accessContentProvidersExternally">access content providers externally</string>
    <!-- Description of an application permission which allows the holder to access
         content providers from outside an ApplicationThread. [CHAR LIMIT=NONE] -->
    <string name="permdesc_accessContentProvidersExternally">Allows the holder to access content
     providers from the shell. Should never be needed for normal apps.</string>
    <!-- Title of an application permission which allows the application to suggest that now is a bad time to reboot the device in order to apply an OTA.  [CHAR LIMIT=40] -->
    <string name="permlab_updateLock">discourage automatic device updates</string>
    <!-- Description of an application permission which allows the application to suggest that now is a bad time to reboot the device in order to apply an OTA.  [CHAR LIMIT=NONE] -->
    <string name="permdesc_updateLock">Allows the holder to offer information to the system about when would be a good time for a noninteractive reboot to upgrade the device.</string>

    <!-- If the user enters a password in a form on a website, a dialog will come up asking if they want to save the password. Text in the save password dialog, asking if the browser should remember a password. -->
    <string name="save_password_message">Do you want the browser to remember this password?</string>
    <!-- If the user enters a password in a form on a website, a dialog will come up asking if they want to save the password. Button in the save password dialog, saying not to remember this password. -->
    <string name="save_password_notnow">Not now</string>
    <!-- If the user enters a password in a form on a website, a dialog will come up asking if they want to save the password. Button in the save password dialog, saying to remember this password. -->
    <string name="save_password_remember">Remember</string>
    <!-- Button in the save password dialog, saying never to remember this password. This should be short. Should be "Never for this site". But it is too long, use "Never" instead -->
    <string name="save_password_never">Never</string>

    <!-- Displayed to the user when they do not have permission to open a particular web page. -->
    <string name="open_permission_deny">You don\'t have permission to open this page.</string>

    <!-- Displayed to the user to confirm that they have copied text from a web page to the clipboard. -->
    <string name="text_copied">Text copied to clipboard.</string>

    <!-- Menu item displayed at the end of a menu to allow users to see another page worth of menu items. This is shown on any app's menu as long as the app has too many items in the menu.-->
    <string name="more_item_label">More</string>
    <!-- Prepended to the shortcut for a menu item to indicate that the user should hold the MENU button together with the shortcut to invoke the item. For example, if the shortcut to open a new tab in browser is MENU and B together, then this would be prepended to the letter "B" -->
    <string name="prepend_shortcut_label">Menu+</string>
    <!-- Displayed in place of the regular shortcut letter when a menu item has Menu+space for the shortcut. -->
    <string name="menu_space_shortcut_label">space</string>
    <!-- Displayed in place of the regular shortcut letter when a menu item has Menu+enter for the shortcut. -->
    <string name="menu_enter_shortcut_label">enter</string>
    <!-- Displayed in place of the regular shortcut letter when a menu item has Menu+delete for the shortcut. -->
    <string name="menu_delete_shortcut_label">delete</string>

    <!-- Strings used for search bar --><skip />

    <!-- This is the default button label in the system-wide search UI.
         It is also used by the home screen's search "widget". It should be short -->
    <string name="search_go">Search</string>
    <!-- SearchView accessibility description for search button [CHAR LIMIT=NONE] -->
    <string name="searchview_description_search">Search</string>
    <!-- SearchView accessibility description for search text field [CHAR LIMIT=NONE] -->
    <string name="searchview_description_query">Search query</string>
    <!-- SearchView accessibility description for clear button [CHAR LIMIT=NONE] -->
    <string name="searchview_description_clear">Clear query</string>
    <!-- SearchView accessibility description for submit button [CHAR LIMIT=NONE] -->
    <string name="searchview_description_submit">Submit query</string>
    <!-- SearchView accessibility description for voice button [CHAR LIMIT=NONE] -->
    <string name="searchview_description_voice">Voice search</string>

    <!-- Title for a warning message about the interaction model changes after allowing an accessibility
         service to put the device into explore by touch mode, displayed as a dialog message when
         the user selects to enables the service. (default). [CHAR LIMIT=45] -->
    <string name="enable_explore_by_touch_warning_title">Enable Explore by Touch?</string>
    <!-- Summary for a warning message about the interaction model changes after allowing an accessibility
         service to put the device into explore by touch mode, displayed as a dialog message when
         the user selects to enables the service. (tablet). [CHAR LIMIT=NONE] -->
    <string name="enable_explore_by_touch_warning_message" product="tablet">
            <xliff:g id="accessibility_service_name">%1$s</xliff:g> wants to enable Explore by Touch.
            When Explore by Touch is turned on, you can hear or see descriptions of what\'s under
            your finger or perform gestures to interact with the tablet.</string>
    <!-- Summary for a warning message about the interaction model changes after allowing an accessibility
         service to put the device into explore by touch mode, displayed as a dialog message when
         the user selects to enables the service. (default). [CHAR LIMIT=NONE] -->
    <string name="enable_explore_by_touch_warning_message" product="default">
            <xliff:g id="accessibility_service_name">%1$s</xliff:g> wants to enable Explore by Touch.
            When Explore by Touch is turned on, you can hear or see descriptions of what\'s under
            your finger or perform gestures to interact with the phone.</string>

    <!-- String used to display the date. This is the string to say something happened 1 month ago. -->
    <string name="oneMonthDurationPast">1 month ago</string>
    <!-- String used to display the date. This is the string to say something happened more than 1 month ago. -->
    <string name="beforeOneMonthDurationPast">Before 1 month ago</string>

    <!-- This is used to express that something occurred some number of seconds in the past (e.g., 5 seconds ago). -->
    <plurals name="num_seconds_ago">
        <item quantity="one">1 second ago</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> seconds ago</item>
    </plurals>

    <!-- This is used to express that something occurred some number of minutes in the past (e.g., 5 minutes ago). -->
    <plurals name="num_minutes_ago">
        <item quantity="one">1 minute ago</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> minutes ago</item>
    </plurals>

    <!-- This is used to express that something occurred some number of hours in the past (e.g., 5 hours ago). -->
    <plurals name="num_hours_ago">
        <item quantity="one">1 hour ago</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> hours ago</item>
    </plurals>

    <!-- This is used to express that something occurred within the last X days (e.g., Last 7 days). -->
    <plurals name="last_num_days">
        <item quantity="other">Last <xliff:g id="count">%d</xliff:g> days</item>
    </plurals>

    <!-- This is used to express that something has occurred within the last month -->
    <string name="last_month">Last month</string>

    <!-- This is used to express that something happened longer ago than the previous options -->
    <string name="older">Older</string>

    <!-- This is used to express that something occurred some number of days in the past (e.g., 5 days ago). -->
    <plurals name="num_days_ago">
        <item quantity="one">yesterday</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> days ago</item>
    </plurals>

    <!-- This is used to express that something will occur some number of seconds in the future (e.g., in 5 seconds). -->
    <plurals name="in_num_seconds">
        <item quantity="one">in 1 second</item>
        <item quantity="other">in <xliff:g id="count">%d</xliff:g> seconds</item>
    </plurals>

    <!-- This is used to express that something will occur some number of minutes in the future (e.g., in 5 minutes). -->
    <plurals name="in_num_minutes">
        <item quantity="one">in 1 minute</item>
        <item quantity="other">in <xliff:g id="count">%d</xliff:g> minutes</item>
    </plurals>

    <!-- This is used to express that something will occur some number of hours in the future (e.g., in 5 hours). -->
    <plurals name="in_num_hours">
        <item quantity="one">in 1 hour</item>
        <item quantity="other">in <xliff:g id="count">%d</xliff:g> hours</item>
    </plurals>

    <!-- This is used to express that something will occur some number of days in the future (e.g., in 5 days). -->
    <plurals name="in_num_days">
        <item quantity="one">tomorrow</item>
        <item quantity="other">in <xliff:g id="count">%d</xliff:g> days</item>
    </plurals>

    <!-- This is used to express that something occurred some number of abbreviated seconds in the past (e.g., 5 secs ago). -->
    <plurals name="abbrev_num_seconds_ago">
        <item quantity="one">1 sec ago</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> secs ago</item>
    </plurals>

    <!-- This is used to express that something occurred some number of abbreviated minutes in the past (e.g., 5 mins ago). -->
    <plurals name="abbrev_num_minutes_ago">
        <item quantity="one">1 min ago</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> mins ago</item>
    </plurals>

    <!-- This is used to express that something occurred some number of abbreviated hours in the past (e.g., 5 hrs ago). -->
    <plurals name="abbrev_num_hours_ago">
        <item quantity="one">1 hour ago</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> hours ago</item>
    </plurals>

    <!-- This is used to express that something occurred some number of abbreviated days in the past (e.g., 5 days ago). -->
    <plurals name="abbrev_num_days_ago">
        <item quantity="one">yesterday</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> days ago</item>
    </plurals>

    <!-- This is used to express that something will occur some number of abbreviated seconds in the future (e.g., in 5 secs). -->
    <plurals name="abbrev_in_num_seconds">
        <item quantity="one">in 1 sec</item>
        <item quantity="other">in <xliff:g id="count">%d</xliff:g> secs</item>
    </plurals>

    <!-- This is used to express that something will occur some number of abbreviated minutes in the future (e.g., in 5 mins). -->
    <plurals name="abbrev_in_num_minutes">
        <item quantity="one">in 1 min</item>
        <item quantity="other">in <xliff:g id="count">%d</xliff:g> mins</item>
    </plurals>

    <!-- This is used to express that something will occur some number of abbreviated hours in the future (e.g., in 5 hrs). -->
    <plurals name="abbrev_in_num_hours">
        <item quantity="one">in 1 hour</item>
        <item quantity="other">in <xliff:g id="count">%d</xliff:g> hours</item>
    </plurals>

    <!-- This is used to express that something will occur some number of abbreviated days in the future (e.g., in 5 days). -->
    <plurals name="abbrev_in_num_days">
        <item quantity="one">tomorrow</item>
        <item quantity="other">in <xliff:g id="count">%d</xliff:g> days</item>
    </plurals>

    <!-- String used to display the date. Preposition for date display ("on May 29") -->
    <string name="preposition_for_date">on <xliff:g id="date" example="May 29">%s</xliff:g></string>
    <!-- String used to display the date. Preposition for time display ("at 2:33am") -->
    <string name="preposition_for_time">at <xliff:g id="time" example="2:33 am">%s</xliff:g></string>
    <!-- String used to display the date. Preposition for year display ("in 2008") -->
    <string name="preposition_for_year">in <xliff:g id="year" example="2003">%s</xliff:g></string>

    <!-- Appened to express the value is this unit of time: singular day -->
    <string name="day">day</string>
    <!-- Appened to express the value is this unit of time: plural days -->
    <string name="days">days</string>
    <!-- Appened to express the value is this unit of time: singular hour -->
    <string name="hour">hour</string>
    <!-- Appened to express the value is this unit of time: plural hours -->
    <string name="hours">hours</string>
    <!-- Appened to express the value is this unit of time: singular minute -->
    <string name="minute">min</string>
    <!-- Appened to express the value is this unit of time: plural minutes -->
    <string name="minutes">mins</string>
    <!-- Appened to express the value is this unit of time. -->
    <string name="second">sec</string>
    <!-- Appened to express the value is this unit of time. -->
    <string name="seconds">secs</string>
    <!-- Appened to express the value is this unit of time. -->
    <string name="week">week</string>
    <!-- Appened to express the value is this unit of time. -->
    <string name="weeks">weeks</string>
    <!-- Appened to express the value is this unit of time. -->
    <string name="year">year</string>
    <!-- Appened to express the value is this unit of time. -->
    <string name="years">years</string>

    <!-- Phrase describing a time duration using seconds [CHAR LIMIT=16] -->
    <plurals name="duration_seconds">
        <item quantity="one">1 second</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> seconds</item>
    </plurals>
    <!-- Phrase describing a time duration using minutes [CHAR LIMIT=16] -->
    <plurals name="duration_minutes">
        <item quantity="one">1 minute</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> minutes</item>
    </plurals>
    <!-- Phrase describing a time duration using hours [CHAR LIMIT=16] -->
    <plurals name="duration_hours">
        <item quantity="one">1 hour</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> hours</item>
    </plurals>

    <!-- Title for error alert when a video cannot be played.  it can be used by any app. -->
    <string name="VideoView_error_title">Video problem</string>
    <!-- Text for error alert when a video container is not valid for progressive download/playback. -->
    <string name="VideoView_error_text_invalid_progressive_playback">This video isn\'t valid for streaming to this device.</string>
    <!-- Text for error alert when a video cannot be played. it can be used by any app. -->
    <string name="VideoView_error_text_unknown">Can\'t play this video.</string>
    <!-- Button to close error alert when a video cannot be played -->
    <string name="VideoView_error_button">OK</string>




    <!-- Format indicating a relative expression and time.
         Example: "4 hours ago, 11:00 am" -->
    <string name="relative_time">"<xliff:g id="date" example="4 hours ago">%1$s</xliff:g>, <xliff:g id="time" example="11:00 am">%2$s</xliff:g>"</string>


    <!-- Quoted name for 12pm, lowercase -->
    <string name="noon">"noon"</string>
    <!-- Quoted name for 12pm, uppercase first letter -->
    <string name="Noon">"Noon"</string>
    <!-- Quoted name for 12am, lowercase -->
    <string name="midnight">"midnight"</string>
    <!-- Quoted name for 12am, uppercase first letter -->
    <string name="Midnight">"Midnight"</string>











    <!-- Format string for durations like "01:23" (1 minute, 23 seconds) -->
    <string name="elapsed_time_short_format_mm_ss"><xliff:g id="minutes" example="1">%1$02d</xliff:g>:<xliff:g id="seconds" example="23">%2$02d</xliff:g></string>

    <!-- Format string for times like "1:43:33" (1 hour, 43 minutes, 33 seconds) -->
    <string name="elapsed_time_short_format_h_mm_ss"><xliff:g id="hours" example="1">%1$d</xliff:g>:<xliff:g id="minutes" example="43">%2$02d</xliff:g>:<xliff:g id="seconds" example="33">%3$02d</xliff:g></string>

    <!-- Item on EditText context menu. This action is used to select all text in the edit field. -->
    <string name="selectAll">Select all</string>

    <!-- Item on EditText context menu.  This action is used to cut selected the text into the clipboard.  -->
    <string name="cut">Cut</string>

    <!-- Item on EditText context menu. This action is used to cut selected the text into the clipboard. -->
    <string name="copy">Copy</string>

    <!-- Item on EditText context menu. This action is used to paste from the clipboard into the eidt field -->
    <string name="paste">Paste</string>

    <!-- Item on EditText context menu. This action is used to replace the current word by other suggested words, suggested by the IME or the spell checker -->
    <string name="replace">Replace\u2026</string>

    <!-- Item on EditText pop-up window. This action is used to delete the text that the user recently added. [CHAR LIMIT=15] -->
    <string name="delete">Delete</string>

    <!-- Item on EditText context menu. This action is used to copy a URL from the edit field into the clipboard. -->
    <string name="copyUrl">Copy URL</string>

    <!-- Item on EditText context menu. Added only when the context menu is not empty, it enable selection context mode. [CHAR LIMIT=20] -->
    <string name="selectTextMode">Select text</string>

    <!-- Text selection contextual mode title, displayed in the CAB. [CHAR LIMIT=20] -->
    <string name="textSelectionCABTitle">Text selection</string>

    <!-- Option to add the current misspelled word to the user dictionary. [CHAR LIMIT=25] -->
    <string name="addToDictionary">Add to dictionary</string>

    <!-- Option to delete the highlighted part of the text from the suggestion popup. [CHAR LIMIT=25] -->
    <string name="deleteText">Delete</string>

    <!-- EditText context menu -->
    <string name="inputMethod">Input method</string>

    <!-- Title for EditText context menu [CHAR LIMIT=20] -->
    <string name="editTextMenuTitle">Text actions</string>

    <!-- If the device is getting low on internal storage, a notification is shown to the user.  This is the title of that notification. -->
    <string name="low_internal_storage_view_title">Storage space running out</string>
    <!-- If the device is getting low on internal storage, a notification is shown to the user.  This is the message of that notification. -->
    <string name="low_internal_storage_view_text">Some system functions may not work</string>

    <!-- Preference framework strings. -->
    <string name="ok">OK</string>
    <!-- Preference framework strings. -->
    <string name="cancel">Cancel</string>
    <!-- Preference framework strings. -->
    <string name="yes">OK</string>
    <!-- Preference framework strings. -->
    <string name="no">Cancel</string>
    <!-- This is the generic "attention" string to be used in attention dialogs.  Typically
         combined with setIconAttribute(android.R.attr.alertDialogIcon)
         (or setIcon(android.R.drawable.ic_dialog_alert) on legacy versions of the platform) -->
    <string name="dialog_alert_title">Attention</string>

    <!-- Text shown by list fragment when waiting for data to display. -->
    <string name="loading">Loading\u2026</string>

    <!-- Default text for a button that can be toggled on and off. -->
    <string name="capital_on">ON</string>
    <!-- Default text for a button that can be toggled on and off. -->
    <string name="capital_off">OFF</string>

    <!-- Title of intent resolver dialog when selecting an application to run. -->
    <string name="whichApplication">Complete action using</string>
    <!-- Option to always use the selected application resolution in the future. See the "Complete action using" dialog title-->
    <string name="alwaysUse">Use by default for this action.</string>
    <!-- Text displayed when the user selects the check box for setting default application.  See the "Use by default for this action" check box. -->
    <string name="clearDefaultHintMsg">Clear default in System settings &gt; Apps &gt; Downloaded.</string>
    <!-- Default title for the activity chooser, when one is not given. Android allows multiple activities to perform an action.  for example, there may be many ringtone pickers installed.  A dialog is shown to the user allowing him to pick which activity should be used.  This is the title. -->
    <string name="chooseActivity">Choose an action</string>
    <!-- title for the USB activity chooser. -->
    <string name="chooseUsbActivity">Choose an app for the USB device</string>
    <!-- Text to display when there are no activities found to display in the
         activity chooser. See the "Select an action" title. -->
    <string name="noApplications">No apps can perform this action.</string>
    <!-- Title of the alert when an application has crashed. -->
    <string name="aerr_title"></string>
    <!-- Text of the alert that is displayed when an application has crashed. -->
    <string name="aerr_application">Unfortunately, <xliff:g id="application">%1$s</xliff:g> has stopped.</string>
    <!-- Text of the alert that is displayed when an application has crashed. -->
    <string name="aerr_process">Unfortunately, the process <xliff:g id="process">%1$s</xliff:g> has
        stopped.</string>
    <!-- Title of the alert when an application is not responding. -->
    <string name="anr_title"></string>
    <!-- Text of the alert that is displayed when an application is not responding. -->
    <string name="anr_activity_application"><xliff:g id="application">%2$s</xliff:g> isn\'t responding.\n\nDo you want to close it?</string>
    <!-- Text of the alert that is displayed when an application is not responding. -->
    <string name="anr_activity_process">Activity <xliff:g id="activity">%1$s</xliff:g> isn\'t responding.\n\nDo you want to close it?</string>
    <!-- Text of the alert that is displayed when an application is not responding. -->
    <string name="anr_application_process"><xliff:g id="application">%1$s</xliff:g> isn\'t responding. Do you want to close it?</string>
    <!-- Text of the alert that is displayed when an application is not responding. -->
    <string name="anr_process">Process <xliff:g id="process">%1$s</xliff:g> isn\'t responding.\n\nDo you want to close it?</string>
    <!-- Button allowing the user to close an application that is not responding. This will kill the application. -->
    <string name="force_close">OK</string>
    <!-- Button allowing the user to send a bug report for application which has encountered an error. -->
    <string name="report">Report</string>
    <!-- Button allowing the user to choose to wait for an application that is not responding to become responsive again. -->
    <string name="wait">Wait</string>
    <!-- Text of the alert that is displayed when a web page is not responding. [CHAR-LIMIT=NONE] -->
    <string name="webpage_unresponsive">The page has become unresponsive.\n\nDo you want to close it?</string>
    <!-- [CHAR LIMIT=25] Title of the alert when application launches on top of another. -->
    <string name="launch_warning_title">App redirected</string>
    <!-- [CHAR LIMIT=50] Title of the alert when application launches on top of another. -->
    <string name="launch_warning_replace"><xliff:g id="app_name">%1$s</xliff:g> is now running.</string>
    <!-- [CHAR LIMIT=50] Title of the alert when application launches on top of another. -->
    <string name="launch_warning_original"><xliff:g id="app_name">%1$s</xliff:g> was originally launched.</string>
    <!-- [CHAR LIMIT=50] Compat mode dialog: compat mode switch label. -->
    <string name="screen_compat_mode_scale">Scale</string>
    <!-- [CHAR LIMIT=50] Compat mode dialog: compat mode switch label. -->
    <string name="screen_compat_mode_show">Always show</string>
    <!-- [CHAR LIMIT=200] Compat mode dialog: hint to re-enable compat mode dialog. -->
    <string name="screen_compat_mode_hint">Re-enable this in System settings &gt; Apps &gt; Downloaded.</string>

    <!-- Text of the alert that is displayed when an application has violated StrictMode. -->
    <string name="smv_application">The app <xliff:g id="application">%1$s</xliff:g>
        (process <xliff:g id="process">%2$s</xliff:g>) has violated its self-enforced StrictMode policy.</string>
    <!-- Text of the alert that is displayed when an application has violated StrictMode. -->
    <string name="smv_process">The process <xliff:g id="process">%1$s</xliff:g> has
      has violated its self-enforced StrictMode policy.</string>

    <!-- [CHAR LIMIT=40] Title of dialog that is shown when performing a system upgrade. -->
    <string name="android_upgrading_title">Android is upgrading\u2026</string>

    <!-- [CHAR LIMIT=NONE] Message shown in upgrading dialog for each .apk that is optimized. -->
    <string name="android_upgrading_apk">Optimizing app
        <xliff:g id="number" example="123">%1$d</xliff:g> of
        <xliff:g id="number" example="123">%2$d</xliff:g>.</string>

    <!-- [CHAR LIMIT=NONE] Message to show in upgrading dialog when reached the point of starting apps. -->
    <string name="android_upgrading_starting_apps">Starting apps.</string>

    <!-- [CHAR LIMIT=NONE] Message to show in upgrading dialog when the bulk of the upgrade work is done. -->
    <string name="android_upgrading_complete">Finishing boot.</string>

    <!-- Notification text to tell the user that a heavy-weight application is running. -->
    <string name="heavy_weight_notification"><xliff:g id="app">%1$s</xliff:g> running</string>

    <!-- Notification details to tell the user that a heavy-weight application is running. -->
    <string name="heavy_weight_notification_detail">Touch to switch to app</string>

    <!-- Title of dialog prompting whether user wants to switch between heavy-weight apps. -->
    <string name="heavy_weight_switcher_title">Switch apps?</string>

    <!-- Descriptive text for switching to a new heavy-weight application. -->
    <string name="heavy_weight_switcher_text">Another app is already running
    that must be stopped before you can start a new one.</string>

    <string name="old_app_action">Return to <xliff:g id="old_app">%1$s</xliff:g></string>
    <string name="old_app_description">Don\'t start the new app.</string>

    <string name="new_app_action">Start <xliff:g id="old_app">%1$s</xliff:g></string>
    <string name="new_app_description">Stop the old app without saving.</string>

    <!-- Displayed in the title of the chooser for things to do with text that
         is to be sent to another application. For example, I can send
         text through SMS or IM.  A dialog with those choices would be shown,
         and this would be the title. -->
    <string name="sendText">Choose an action for text</string>

    <!-- Title of the dialog where the user is adjusting the phone ringer volume -->
    <string name="volume_ringtone">Ringer volume</string>
    <!-- Title of the dialog where the user is adjusting the music volume -->
    <string name="volume_music">Media volume</string>
    <!-- Hint shown in the volume toast to inform the user that the media audio is playing through Bluetooth. -->
    <string name="volume_music_hint_playing_through_bluetooth">Playing through Bluetooth</string>
    <!-- Hint shown in the volume toast to inform the user that the current ringtone is the silent ringtone. -->
    <string name="volume_music_hint_silent_ringtone_selected">Silent ringtone set</string>
    <!-- Title of the dialog where the user is adjusting the phone call volume -->
    <string name="volume_call">In-call volume</string>
    <!-- Title of the dialog where the user is adjusting the phone call volume when connected on bluetooth-->
    <string name="volume_bluetooth_call">Bluetooth in-call volume</string>
    <!-- Title of the dialog where the user is adjusting the audio volume for alarms -->
    <string name="volume_alarm">Alarm volume</string>
    <!-- Title of the dialog where the user is adjusting the audio volume for notifications -->
    <string name="volume_notification">Notification volume</string>
    <!-- Title of the dialog where the user is adjusting the general audio volume -->
    <string name="volume_unknown">Volume</string>

    <!-- Content description for bluetooth volume icon [CHAR LIMIT=100] -->
    <string name="volume_icon_description_bluetooth">Bluetooth volume</string>
    <!-- Content description for ringer volume icon [CHAR LIMIT=100] -->
    <string name="volume_icon_description_ringer">Ringtone volume</string>
    <!-- Content description for in-call volume icon [CHAR LIMIT=100] -->
    <string name="volume_icon_description_incall">Call volume</string>
    <!-- Content description for media volume icon [CHAR LIMIT=100] -->
    <string name="volume_icon_description_media">Media volume</string>
    <!-- Content description for notification volume icon [CHAR LIMIT=100] -->
    <string name="volume_icon_description_notification">Notification volume</string>

    <!-- Ringtone picker strings --> <skip />
    <!-- Choice in the ringtone picker.  If chosen, the default ringtone will be used. -->
    <string name="ringtone_default">Default ringtone</string>
    <!-- Choice in the ringtone picker.  If chosen, the default ringtone will be used. This fills in the actual ringtone's title into the message. -->
    <string name="ringtone_default_with_actual">Default ringtone (<xliff:g id="actual_ringtone">%1$s</xliff:g>)</string>
    <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
    <string name="ringtone_silent">Silent</string>
    <!-- The title of the ringtone picker dialog. -->
    <string name="ringtone_picker_title">Ringtones</string>
    <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, t his is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this woudl be shown for ringtones on that SD card. -->
    <string name="ringtone_unknown">Unknown ringtone</string>

    <!-- A notification is shown when there are open wireless networks nearby.  This is the notification's title. -->
    <plurals name="wifi_available">
        <item quantity="one">Wi-Fi network available</item>
        <item quantity="other">Wi-Fi networks available</item>
    </plurals>
    <!-- A notification is shown when there are open wireless networks nearby.  This is the notification's message. -->
    <plurals name="wifi_available_detailed">
        <item quantity="one">Open Wi-Fi network available</item>
        <item quantity="other">Open Wi-Fi networks available</item>
    </plurals>

    <!-- A notification is shown when a wifi captive portal network is detected.  This is the notification's title. -->
    <string name="wifi_available_sign_in">Sign into Wi-Fi network</string>

    <!-- A notification is shown when a captive portal network is detected.  This is the notification's title. -->
    <string name="network_available_sign_in">Sign into network</string>

    <!-- A notification is shown when a captive portal network is detected.  This is the notification's message. -->
    <string name="network_available_sign_in_detailed"><xliff:g id="network_ssid">%1$s</xliff:g></string>

     <!-- A notification is shown when a user's selected SSID is later disabled due to connectivity problems.  This is the notification's title / ticker. -->
     <string name="wifi_watchdog_network_disabled">Couldn\'t connect to Wi-Fi</string>
     <!-- A notification is shown when a user's selected SSID is later disabled due to connectivity problems.  The complete alert msg is: <hotspot name> + this string, i.e. "Linksys has a poor internet connection" -->
    <string name="wifi_watchdog_network_disabled_detailed">\u0020has a poor Internet connection.</string>

    <!-- Do not translate. Default access point SSID used for tethering -->
    <string name="wifi_tether_configure_ssid_default" translatable="false">AndroidAP</string>

    <string name="wifi_p2p_dialog_title">Wi-Fi Direct</string>
    <string name="wifi_p2p_turnon_message">Start Wi-Fi Direct. This will turn off Wi-Fi client/hotspot.</string>
    <string name="wifi_p2p_failed_message">Couldn\'t start Wi-Fi Direct.</string>
    <string name="wifi_p2p_enabled_notification_title">Wi-Fi Direct is on</string>
    <string name="wifi_p2p_enabled_notification_message">Touch for settings</string>

    <string name="accept">Accept</string>
    <string name="decline">Decline</string>
    <string name="wifi_p2p_invitation_sent_title">Invitation sent</string>
    <string name="wifi_p2p_invitation_to_connect_title">Invitation to connect</string>

    <string name="wifi_p2p_from_message">From: </string>
    <string name="wifi_p2p_to_message">To: </string>
    <string name="wifi_p2p_enter_pin_message">Type the required PIN: </string>
    <string name="wifi_p2p_show_pin_message">PIN: </string>

    <string name="wifi_p2p_frequency_conflict_message">The phone will temporarily disconnect from Wi-Fi while it\'s connected to <xliff:g id="device_name">%1$s</xliff:g></string>

    <!-- Name of the dialog that lets the user choose an accented character to insert -->
    <string name="select_character">Insert character</string>

    <!-- SMS per-application rate control Dialog --> <skip />
    <!-- SMS_DIALOG: An SMS dialog is shown if an application tries to send too many SMSes.  This is the title of that dialog. -->
    <string name="sms_control_title">Sending SMS messages</string>
    <!-- See SMS_DIALOG.  This is the message shown in that dialog. [CHAR LIMIT=NONE] -->
    <string name="sms_control_message">&lt;b><xliff:g id="app_name">%1$s</xliff:g>&lt;/b> is sending a large number of SMS messages. Do you want to allow this app to continue sending messages?</string>
    <!-- See SMS_DIALOG.  This is a button choice to allow sending the SMSes. [CHAR LIMIT=30] -->
    <string name="sms_control_yes">Allow</string>
    <!-- See SMS_DIALOG.  This is a button choice to disallow sending the SMSes. [CHAR LIMIT=30] -->
    <string name="sms_control_no">Deny</string>

    <!-- SMS short code verification dialog. --> <skip />
    <!-- The message text for the SMS short code confirmation dialog. [CHAR LIMIT=NONE] -->
    <string name="sms_short_code_confirm_message">&lt;b><xliff:g id="app_name">%1$s</xliff:g>&lt;/b> would like to send a message to &lt;b><xliff:g id="dest_address">%2$s</xliff:g>&lt;/b>.</string>
    <!-- Message details for the SMS short code confirmation dialog (possible premium short code). [CHAR LIMIT=NONE] -->
    <string name="sms_short_code_details">This <font fgcolor="#ffffb060">may cause charges</font> on your mobile account.</string>
    <!-- Message details for the SMS short code confirmation dialog (premium short code). [CHAR LIMIT=NONE] -->
    <string name="sms_premium_short_code_details"><font fgcolor="#ffffb060">This will cause charges on your mobile account.</font></string>
    <!-- Text of the approval button for the SMS short code confirmation dialog. [CHAR LIMIT=30] -->
    <string name="sms_short_code_confirm_allow">Send</string>
    <!-- Text of the cancel button for the SMS short code confirmation dialog. [CHAR LIMIT=30] -->
    <string name="sms_short_code_confirm_deny">Cancel</string>
    <!-- Text of the checkbox for the SMS short code confirmation dialog to remember the user's choice. [CHAR LIMIT=40] -->
    <string name="sms_short_code_remember_choice">Remember my choice</string>
    <!-- Text shown when remember checkbox is checked to inform the user how they may undo the setting. [CHAR LIMIT=40] -->
    <string name="sms_short_code_remember_undo_instruction">You can change this later in Settings\u00A0>\u00A0Apps"</string>

    <!-- Text of the approval button for the SMS short code confirmation dialog when checkbox is checked. [CHAR LIMIT=30] -->
    <string name="sms_short_code_confirm_always_allow">Always Allow</string>
    <!-- Text of the cancel button for the SMS short code confirmation dialog when checkbox is checked. [CHAR LIMIT=30] -->
    <string name="sms_short_code_confirm_never_allow">Never Allow</string>

    <!-- SIM swap and device reboot Dialog --> <skip />
    <!-- See SIM_REMOVED_DIALOG.  This is the title of that dialog. -->
    <string name="sim_removed_title">SIM card removed</string>
    <!-- See SIM_REMOVED_DIALOG.  This is the message of that dialog. -->
    <string name="sim_removed_message">The mobile network will be unavailable until you restart with a valid SIM card inserted.</string>
    <!-- See SIM_REMOVED_DIALOG.  This is the button of that dialog. -->
    <string name="sim_done_button">Done</string>
    <!-- See SIM_ADDED_DIALOG.  This is the title of that dialog. -->
    <string name="sim_added_title">SIM card added</string>
    <!-- See SIM_ADDED_DIALOG.  This is the message of that dialog. -->
    <string name="sim_added_message">Restart your device to access the mobile network.</string>
    <!-- See SIM_ADDED_DIALOG.  This is the button of that dialog. -->
    <string name="sim_restart_button">Restart</string>

    <!-- Date/Time picker dialogs strings -->

    <!-- The title of the time picker dialog. [CHAR LIMIT=NONE] -->
    <string name="time_picker_dialog_title">Set time</string>
    <!-- The title of the date picker dialog. [CHAR LIMIT=NONE] -->
    <string name="date_picker_dialog_title">Set date</string>
    <!-- Name of the button in the date/time picker to accept the date/time change -->
    <string name="date_time_set">Set</string>
    <!-- Name of the button in the date/time picker to accept the date/time change -->
    <string name="date_time_done">Done</string>

    <!-- Security Permissions strings-->
    <!-- Text that is placed at the front of a permission name that is being added to an app [CHAR LIMIT=NONE] -->
    <string name="perms_new_perm_prefix"><font size="12" fgcolor="#ff33b5e5">NEW: </font></string>
    <!-- Text that is placed at the front of a permission name that is being added to an app [CHAR LIMIT=NONE] -->
    <string name="perms_description_app">Provided by <xliff:g id="app_name">%1$s</xliff:g>.</string>
    <!-- Shown for an application when it doesn't require any permission grants. -->
    <string name="no_permissions">No permissions required</string>
    <!-- [CHAR LIMIT=NONE] Additional text in permission description for perms that can cost money. -->
    <string name="perm_costs_money">this may cost you money</string>

    <!-- USB storage dialog strings -->
    <!-- This is the title for the activity's window. -->
    <string name="usb_storage_activity_title">USB mass storage</string>

    <!-- See USB_STORAGE.  USB_STORAGE_DIALOG:  After the user selects the notification, a dialog is shown asking if he wants to mount.  This is the title. -->
    <string name="usb_storage_title">USB connected</string>
    <!-- See USB_STORAGE.    This is the message. [CHAR LIMIT=NONE] -->
    <string name="usb_storage_message" product="nosdcard">You\'ve connected to your computer via USB. Touch the button below if you want to copy files between your computer and your Android\'s USB storage.</string>
    <!-- See USB_STORAGE.    This is the message. [CHAR LIMIT=NONE] -->
    <string name="usb_storage_message" product="default">You\'ve connected to your computer via USB. Touch the button below if you want to copy files between your computer and your Android\'s SD card.</string>
    <!-- See USB_STORAGE.    This is the button text to mount the phone on the computer. -->
    <string name="usb_storage_button_mount">Turn on USB storage</string>
    <!-- See USB_STORAGE_DIALOG.  If there was an error mounting, this is the text. [CHAR LIMIT=NONE] -->
    <string name="usb_storage_error_message" product="nosdcard">There\'s a problem using your USB storage for USB mass storage.</string>
    <!-- See USB_STORAGE_DIALOG.  If there was an error mounting, this is the text. -->
    <string name="usb_storage_error_message" product="default">There\'s a problem using your SD card for USB mass storage.</string>
    <!-- USB_STORAGE: When the user connects the phone to a computer via USB, we show a notification asking if he wants to share files across.  This is the title -->
    <string name="usb_storage_notification_title">USB connected</string>
    <!-- See USB_STORAGE. This is the message. -->
    <string name="usb_storage_notification_message">Touch to copy files to/from your computer.</string>

    <!-- USB_STORAGE_STOP: While USB storage is enabled, we show a notification dialog asking if he wants to stop. This is the title -->
    <string name="usb_storage_stop_notification_title">Turn off USB storage</string>
    <!-- See USB_STORAGE. This is the message. -->
    <string name="usb_storage_stop_notification_message">Touch to turn off USB storage.</string>

    <!-- USB storage stop dialog strings -->
    <!-- This is the label for the activity, and should never be visible to the user. -->
    <!-- See USB_STORAGE_STOP.  USB_STORAGE_STOP_DIALOG:  After the user selects the notification, a dialog is shown asking if he wants to stop usb storage.  This is the title. -->
    <string name="usb_storage_stop_title">USB storage in use</string>
    <!-- See USB_STORAGE_STOP.    This is the message. [CHAR LIMIT=NONE] -->
    <string name="usb_storage_stop_message" product="nosdcard">Before turning off USB storage, unmount (\"eject\") your Android\'s USB storage from your computer.</string>
    <!-- See USB_STORAGE_STOP.    This is the message. -->
    <string name="usb_storage_stop_message" product="default">Before turning off USB storage, unmount (\"eject\") your Android\'s SD card from your computer.</string>
    <!-- See USB_STORAGE_STOP.    This is the button text to stop usb storage. -->
    <string name="usb_storage_stop_button_mount">Turn off USB storage</string>
    <!-- See USB_STORAGE_STOP_DIALOG.  If there was an error stopping, this is the text. -->
    <string name="usb_storage_stop_error_message">There was a problem turning off USB storage. Check that you\'ve unmounted the USB host, then try again.</string>

    <!-- USB_STORAGE_KILL_STORAGE_USERS dialog  -->
    <string name="dlg_confirm_kill_storage_users_title">Turn on USB storage</string>
    <!-- USB_STORAGE_KILL_STORAGE_USERS dialog message text -->
    <string name="dlg_confirm_kill_storage_users_text">If you turn on USB storage, some apps you\'re using will stop and may be unavailable until you turn off USB storage.</string>
    <!-- USB_STORAGE_ERROR dialog  dialog-->
    <string name="dlg_error_title">USB operation unsuccessful</string>
    <!-- USB_STORAGE_ERROR dialog  ok button-->
    <string name="dlg_ok">OK</string>

    <!-- USB_PREFERENCES: Notification for when the user connects the phone to a computer via USB in MTP mode.  This is the title -->
    <string name="usb_mtp_notification_title">Connected as a media device</string>
    <!-- USB_PREFERENCES: Notification for when the user connects the phone to a computer via USB in PTP mode.  This is the title -->
    <string name="usb_ptp_notification_title">Connected as a camera</string>
    <!-- USB_PREFERENCES: Notification for when the user connects the phone to a computer via USB in mass storage mode (for installer CD image).  This is the title -->
    <string name="usb_cd_installer_notification_title">Connected as an installer</string>
    <!-- USB_PREFERENCES: Notification for when a USB accessory is attached.  This is the title -->
    <string name="usb_accessory_notification_title">Connected to a USB accessory</string>
    <!-- See USB_PREFERENCES. This is the message. -->
    <string name="usb_notification_message">Touch for other USB options.</string>

    <!-- External media format dialog strings -->
    <!-- This is the label for the activity, and should never be visible to the user. -->
    <!-- See EXTMEDIA_FORMAT.  EXTMEDIA_FORMAT_DIALOG:  After the user selects the notification, a dialog is shown asking if he wants to format the SD card.  This is the title. [CHAR LIMIT=20] -->
    <string name="extmedia_format_title" product="nosdcard">Format USB storage?</string>
    <!-- See EXTMEDIA_FORMAT.  EXTMEDIA_FORMAT_DIALOG:  After the user selects the notification, a dialog is shown asking if he wants to format the SD card.  This is the title. -->
    <string name="extmedia_format_title" product="default">Format SD card?</string>
    <!-- See EXTMEDIA_FORMAT.   This is the message. [CHAR LIMIT=NONE] -->
    <string name="extmedia_format_message" product="nosdcard">All files stored in your USB storage will be erased. This action can\'t be reversed!</string>
    <!-- See EXTMEDIA_FORMAT.   This is the message. -->
    <string name="extmedia_format_message" product="default">All data on your card will be lost.</string>
    <!-- See EXTMEDIA_FORMAT.    This is the button text to format the sd card. -->
    <string name="extmedia_format_button_format">Format</string>

    <!-- Title of notification shown when ADB is actively connected to the phone. -->
    <string name="adb_active_notification_title">USB debugging connected</string>
    <!-- Message of notification shown when ADB is actively connected to the phone. -->
    <string name="adb_active_notification_message">Touch to disable USB debugging.</string>

    <!-- Used to replace %s in urls retreived from the signin server with locales.  For Some        -->
    <!-- devices we don't support all the locales we ship to and need to replace the '%s' with a    -->
    <!-- locale string based on mcc values.  By default (0-length string) we don't replace the %s   -->
    <!-- at all and later replace it with a locale string based on the users chosen locale          -->
    <!-- DO NOT TRANSLATE -->
    <string name="locale_replacement">""</string>

    <!-- Title of the pop-up dialog in which the user switches input method components. -->
    <string name="select_input_method">Choose input method</string>
    <!-- Title of a button to open the settings for input methods [CHAR LIMIT=30] -->
    <string name="configure_input_methods">Set up input methods</string>
    <!-- Summary text of a toggle switch to enable/disable use of the physical keyboard in the input method selector [CHAR LIMIT=25] -->
    <string name="use_physical_keyboard">Physical keyboard</string>
    <!-- Title of the physical keyboard category in the input method selector [CHAR LIMIT=10] -->
    <string name="hardware">Hardware</string>

    <!-- Title of the notification to prompt the user to select a keyboard layout. -->
    <string name="select_keyboard_layout_notification_title">Select keyboard layout</string>
    <!-- Message of the notification to prompt the user to select a keyboard layout. -->
    <string name="select_keyboard_layout_notification_message">Touch to select a keyboard layout.</string>

    <string name="fast_scroll_alphabet">\u0020ABCDEFGHIJKLMNOPQRSTUVWXYZ</string>
    <string name="fast_scroll_numeric_alphabet">\u00200123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ</string>

    <string name="candidates_style"><u>candidates</u></string>

    <!-- External media notification strings -->
    <!-- Shown when external media is being checked [CHAR LIMIT=30] -->
    <string name="ext_media_checking_notification_title" product="nosdcard">Preparing USB storage</string>
    <!-- Shown when external media is being checked -->
    <string name="ext_media_checking_notification_title" product="default">Preparing SD card</string>
    <string name="ext_media_checking_notification_message">Checking for errors.</string>

    <!-- Shown when external media is blank (or unsupported filesystem) [CHAR LIMIT=30] -->
    <string name="ext_media_nofs_notification_title" product="nosdcard">Blank USB storage</string>
    <!-- Shown when external media is blank (or unsupported filesystem) -->
    <string name="ext_media_nofs_notification_title" product="default">Blank SD card</string>
    <!-- Shown when USB storage cannot be read.  [CHAR LIMIT=NONE] -->
    <string name="ext_media_nofs_notification_message" product="nosdcard">USB storage is blank or has unsupported filesystem.</string>
    <string name="ext_media_nofs_notification_message" product="default">SD card is blank or has unsupported filesystem.</string>

    <!-- Shown when external media is unmountable (corrupt)) [CHAR LIMIT=30] -->
    <string name="ext_media_unmountable_notification_title" product="nosdcard">Damaged USB storage</string>
    <!-- Shown when external media is unmountable (corrupt)) -->
    <string name="ext_media_unmountable_notification_title" product="default">Damaged SD card</string>
    <!-- Shown when USB storage cannot be read.  [CHAR LIMIT=NONE] -->
    <string name="ext_media_unmountable_notification_message" product="nosdcard">USB storage is damaged. Try reformatting it.</string>
    <string name="ext_media_unmountable_notification_message" product="default">SD card is damaged. Try reformatting it.</string>

    <!-- Shown when external media is unsafely removed [CHAR LIMIT=30] -->
    <string name="ext_media_badremoval_notification_title" product="nosdcard">USB storage unexpectedly removed</string>
    <!-- Shown when external media is unsafely removed -->
    <string name="ext_media_badremoval_notification_title" product="default">SD card unexpectedly removed</string>
    <!-- Shown when external media is unsafely removed.  [CHAR LIMIT=NONE] -->
    <string name="ext_media_badremoval_notification_message" product="nosdcard">Unmount USB storage before removing to avoid data loss.</string>
    <string name="ext_media_badremoval_notification_message" product="default">Unmount SD card before removing to avoid data loss.</string>

    <!-- Shown when external media has been safely removed [CHAR LIMIT=30] -->
    <string name="ext_media_safe_unmount_notification_title" product="nosdcard">USB storage safe to remove</string>
    <!-- Shown when external media has been safely removed -->
    <string name="ext_media_safe_unmount_notification_title" product="default">SD card safe to remove</string>
    <!-- Shown when external media has been safely removed.  [CHAR LIMIT=NONE] -->
    <string name="ext_media_safe_unmount_notification_message" product="nosdcard">You can safely remove USB storage.</string>
    <string name="ext_media_safe_unmount_notification_message" product="default">You can safely remove SD card.</string>

    <!-- Shown when external media is missing [CHAR LIMIT=30] -->
    <string name="ext_media_nomedia_notification_title" product="nosdcard">Removed USB storage</string>
    <!-- Shown when external media is missing -->
    <string name="ext_media_nomedia_notification_title" product="default">Removed SD card</string>
    <!-- Shown when external media is missing.  [CHAR LIMIT=NONE] -->
    <string name="ext_media_nomedia_notification_message" product="nosdcard">USB storage removed. Insert new media.</string>
    <string name="ext_media_nomedia_notification_message" product="default">SD card removed. Insert a new one.</string>

    <!-- Shown in LauncherActivity when the requested target Intent didn't return any matching Activities, leaving the list empty. -->
    <string name="activity_list_empty">No matching activities found.</string>

    <!-- permission attributes related to package usage statistics -->
    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permlab_pkgUsageStats">update component usage statistics</string>
    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
    <string name="permdesc_pkgUsageStats">Allows the app to modify collected component usage statistics. Not for use by normal apps.</string>

    <!-- permission attributes related to default container service -->
    <!-- Title of an application permission that lets an application use default container service. -->
    <string name="permlab_copyProtectedData">copy content</string>
    <!-- Description of an application permission,  used to invoke default container service to copy content. -->
    <string name="permdesc_copyProtectedData">Allows the app to invoke default container service to copy content. Not for use by normal apps.</string>

    <!-- Title of an application permission that lets an application route media output. -->
    <string name="permlab_route_media_output">Route media output</string>
    <!-- Description of an application permission that lets an application route media output. -->
    <string name="permdesc_route_media_output">Allows an application to route media output to other external devices.</string>

    <!-- Shown in the tutorial for tap twice for zoom control. -->
    <string name="tutorial_double_tap_to_zoom_message_short">Touch twice for zoom control</string>


    <!-- Shown in gadget hosts (e.g. the home screen) when there was an error inflating
    the gadget. -->
    <string name="gadget_host_error_inflating">Couldn\'t add widget.</string>

    <!-- Long label for a button on a full-screen input method for the "Go" action. -->
    <string name="ime_action_go">Go</string>

    <!-- Long label for a button on a full-screen input method for the "Search" action. -->
    <string name="ime_action_search">Search</string>

    <!-- Long label for a button on a full-screen input method for the "Send" action. -->
    <string name="ime_action_send">Send</string>

    <!-- Long label for a button on a full-screen input method for the "Next" action. -->
    <string name="ime_action_next">Next</string>

    <!-- Long label for a button on a full-screen input method for the "Done" action. -->
    <string name="ime_action_done">Done</string>

    <!-- [CHAR LIMIT=6] Long label for a button on a full-screen input method for the "Previous" action. -->
    <string name="ime_action_previous">Prev</string>

    <!-- Long label for a button on a full-screen input method for an unknown action. -->
    <string name="ime_action_default">Execute</string>

    <!-- Strings for search suggestions. These are going here because they are referenced by both
         ContactsProvider and GoogleContactsProvider -->
    <skip />


    <!-- This string appears (on two lines) when you type a number into contacts search, to let you dial the phone number you typed.  The first line will be in bigger type than the second. -->
    <string name="dial_number_using">Dial number\nusing <xliff:g id="number" example="555">%s</xliff:g></string>

    <!-- This string appears (on two lines) when you type a number into contacts search, to let you create a contact whose phone number is the number you typed.  The first line will be in bigger type than the second. -->
    <string name="create_contact_using">Create contact\nusing <xliff:g id="number" example="555">%s</xliff:g></string>

    <!-- This string array should be overridden by the manufacture to present a list of carrier-id,locale. The wifi regulatory domain is extracted from the locale information. This is used at startup to set system defaults by checking the system property ro.carrier for the carrier-id and searching through this array -->
    <!-- An Array of [[Carrier-ID]                     -->
    <!--              [default-locale]]                -->
    <string-array translatable="false" name="carrier_properties">
    </string-array>

    <string name="grant_credentials_permission_message_header">The following one or more apps request permission to access your account, now and in the future.</string>
    <string name="grant_credentials_permission_message_footer">Do you want to allow this request?</string>
    <string name="grant_permissions_header_text">Access request</string>
    <string name="allow">Allow</string>
    <string name="deny">Deny</string>
    <string name="permission_request_notification_title">Permission requested</string>
    <string name="permission_request_notification_with_subtitle">Permission requested\nfor account <xliff:g id="account" example="foo@gmail.com">%s</xliff:g>.</string>

    <!-- Label to show for a service that is running because it is an input method. -->
    <string name="input_method_binding_label">Input method</string>
    <!-- Label to show for a service that is running because it is a sync adapter. -->
    <string name="sync_binding_label">Sync</string>
    <!-- Label to show for a service that is running because it is an accessibility module. -->
    <string name="accessibility_binding_label">Accessibility</string>
    <!-- Label to show for a service that is running because it is a wallpaper. -->
    <string name="wallpaper_binding_label">Wallpaper</string>
    <!-- Dialog title for user to select a different wallpaper from service list -->
    <string name="chooser_wallpaper">Change wallpaper</string>

    <!-- Do Not Translate: Alternate eri.xml -->
    <string name="alternate_eri_file">/data/eri.xml</string>

    <!-- The title of the notification when VPN is active. -->
    <string name="vpn_title">VPN activated</string>
    <!-- The title of the notification when VPN is active with an application name. -->
    <string name="vpn_title_long">VPN is activated by <xliff:g id="app" example="FooVPN client">%s</xliff:g></string>
    <!-- The text of the notification when VPN is active. -->
    <string name="vpn_text">Touch to manage the network.</string>
    <!-- The text of the notification when VPN is active with a session name. -->
    <string name="vpn_text_long">Connected to <xliff:g id="session" example="office">%s</xliff:g>. Touch to manage the network.</string>

    <!-- Notification title when connecting to lockdown VPN. -->
    <string name="vpn_lockdown_connecting">Always-on VPN connecting\u2026</string>
    <!-- Notification title when connected to lockdown VPN. -->
    <string name="vpn_lockdown_connected">Always-on VPN connected</string>
    <!-- Notification title when error connecting to lockdown VPN. -->
    <string name="vpn_lockdown_error">Always-on VPN error</string>
    <!-- Notification body that indicates user can touch to cycle lockdown VPN connection. -->
    <string name="vpn_lockdown_reset">Touch to reset connection</string>

    <!-- Localized strings for WebView -->
    <!-- Label for button in a WebView that will open a chooser to choose a file to upload -->
    <string name="upload_file">Choose file</string>
    <!-- Label for the file upload control when no file has been chosen yet -->
    <string name="no_file_chosen">No file chosen</string>
    <!-- Label for <input type="reset"> button in html -->
    <string name="reset">Reset</string>
    <!-- Label for <input type="submit"> button in html -->
    <string name="submit">Submit</string>

    <!-- Strings for car mode notification -->
    <!-- Shown when car mode is enabled -->
    <string name="car_mode_disable_notification_title">Car mode enabled</string>
    <string name="car_mode_disable_notification_message">Touch to exit car mode.</string>

    <!-- Strings for tethered notification -->
    <!-- Shown when the device is tethered -->
    <string name="tethered_notification_title">Tethering or hotspot active</string>
    <string name="tethered_notification_message">Touch to set up.</string>

    <!--  Strings for possible PreferenceActivity Back/Next buttons -->
    <string name="back_button_label">Back</string>
    <string name="next_button_label">Next</string>

    <!-- Optional button to Skip a PreferenceActivity [CHAR LIMIT=20] -->
    <string name="skip_button_label">Skip</string>

    <!-- Strings for throttling notification -->
    <!-- Shown when the user is in danger of being throttled -->
    <string name="throttle_warning_notification_title">High mobile data use</string>
    <string name="throttle_warning_notification_message">Touch to learn more about mobile data use.</string>

    <!-- Strings for throttling notification -->
    <!-- Shown when the users bandwidth is reduced because of excessive data use -->
    <string name="throttled_notification_title">Mobile data limit exceeded</string>
    <string name="throttled_notification_message">Touch to learn more about mobile data use.</string>

    <!-- Displayed on the Find dialog when there are no matches [CHAR LIMIT=NONE]-->
    <string name="no_matches">No matches</string>

    <!-- Find dialog hint text.  Also used in the menu item to open find on page [CHAR LIMIT=NONE] -->
    <string name="find_on_page">Find on page</string>

    <!-- Displayed on the Find dialog to display the index of the highlighted
         match and total number of matches found in the current page. [CHAR LIMIT=NONE] -->
    <plurals name="matches_found">
        <!-- Case of one match -->
        <item quantity="one">1 match</item>
        <!-- Case of multiple total matches -->
        <item quantity="other"><xliff:g id="index" example="2">%d</xliff:g> of <xliff:g id="total" example="137">%d</xliff:g></item>
    </plurals>

    <!-- Label for the "Done" button on the far left of action mode toolbars. -->
    <string name="action_mode_done">Done</string>

    <!-- Strings for ExternalStorageFormatter service. -->
    <!-- Text for progress dialog while unmounting USB storage volume [CHAR LIMIT=NONE] -->
    <string name="progress_unmounting" product="nosdcard">Unmounting USB storage\u2026</string>
    <!-- Text for progress dialog while unmounting SD card [CHAR LIMIT=NONE] -->
    <string name="progress_unmounting" product="default">Unmounting SD card\u2026</string>
    <!-- Text for progress dialog while erasing USB storage volume [CHAR LIMIT=NONE] -->
    <string name="progress_erasing" product="nosdcard">Erasing USB storage\u2026</string>
    <!-- Text for progress dialog while erasing SD card [CHAR LIMIT=NONE] -->
    <string name="progress_erasing" product="default">Erasing SD card\u2026</string>
    <!-- Text for message to user that an error happened when formatting USB storage [CHAR LIMIT=NONE] -->
    <string name="format_error" product="nosdcard">Couldn\'t erase USB storage.</string>
    <!-- Text for message to user that an error happened when formatting SD card [CHAR LIMIT=NONE] -->
    <string name="format_error" product="default">Couldn\'t erase SD card.</string>
    <!-- Text for message to user that SD card has been removed while in use [CHAR LIMIT=NONE] -->
    <string name="media_bad_removal">SD card was removed before being unmounted.</string>
    <!-- Text for message to user USB storage is currently being checked [CHAR LIMIT=NONE] -->
    <string name="media_checking" product="nosdcard">USB storage is currently being checked.</string>
    <!-- Text for message to user SD card is currently being checked [CHAR LIMIT=NONE] -->
    <string name="media_checking" product="default">SD card is currently being checked.</string>
    <!-- Text for message to user SD card has been removed [CHAR LIMIT=NONE] -->
    <string name="media_removed">SD card has been removed.</string>
    <!-- Text for message to user USB storage is currently mounted on a computer [CHAR LIMIT=NONE] -->
    <string name="media_shared" product="nosdcard">USB storage is currently in use by a computer.</string>
    <!-- Text for message to user SD card is currently mounted on a computer [CHAR LIMIT=NONE] -->
    <string name="media_shared" product="default">SD card is currently in use by a computer.</string>
    <!-- Text for message for an unknown external media state [CHAR LIMIT=NONE] -->
    <string name="media_unknown_state">External media in unknown state.</string>

    <!-- Text for WebView's text selection Action Mode -->
    <!-- ActionBar action to share the current selection [CHAR LIMIT=10] -->
    <string name="share">Share</string>
    <!-- ActionBar action to use the current selection to open the Find on page functionality [CHAR LIMIT=10]-->
    <string name="find">Find</string>
    <!-- ActionBar action to use the current selection to perform a web search [CHAR-LIMIT=16] -->
    <string name="websearch">Web Search</string>
    <!-- ActionBar action to find the next match in the page [CHAR LIMIT=24] -->
    <string name="find_next">Find next</string>
    <!-- ActionBar action to find the previous match in the page [CHAR LIMIT=24] -->
    <string name="find_previous">Find previous</string>

    <!-- Network positioning notification ticker. The name of the user (e.g. John Doe) who sent
         the request is shown as a dynamic string. -->
    <string name="gpsNotifTicker">Location request from <xliff:g id="name">%s</xliff:g></string>
    <!-- Network positioning notification and verification title to inform the user about
         an incoming location request. -->
    <string name="gpsNotifTitle">Location request</string>
    <!-- Network positioning notification message. The name of the user (e.g. John Doe) and
         service (SUPL-service) who sent the request is shown as dynamic strings.
         Translation should not be longer than master text. -->
    <string name="gpsNotifMessage">Requested by <xliff:g id="name">%1$s</xliff:g> (<xliff:g id="service" example="SUPL-service">%2$s</xliff:g>)</string>
    <!-- Network positioning verification Yes. Button to push to share location information. -->
    <string name="gpsVerifYes">Yes</string>
    <!-- Network positioning verification No. Button to push to deny sharing of location
         information. -->
    <string name="gpsVerifNo">No</string>

    <!-- Error message when the sync tried to delete too many things -->
    <string name="sync_too_many_deletes">Delete limit exceeded</string>
    <!-- Dialog message for when there are too many deletes that would take place and we want user confirmation -->
    <string name="sync_too_many_deletes_desc">There are <xliff:g id="number_of_deleted_items">%1$d</xliff:g> deleted items for <xliff:g id="type_of_sync">%2$s</xliff:g>, account <xliff:g id="account_name">%3$s</xliff:g>. What do you want to do?</string>
    <!-- Dialog action for when there are too many deletes that would take place and we want user confirmation, and the user wants to delete the items -->
    <string name="sync_really_delete">Delete the items</string>
    <!-- Dialog action for when there are too many deletes that would take place and we want user confirmation, and the user wants to undo the deletions -->
    <string name="sync_undo_deletes">Undo the deletes</string>
    <!-- Dialog action for when there are too many deletes that would take place and we want user confirmation, and the user wants to do nothing for now -->
    <string name="sync_do_nothing">Do nothing for now</string>

    <!-- Choose Account Activity label -->
    <string name="choose_account_label">Choose an account</string>

    <string name="add_account_label">"Add an account"</string>

    <!-- List item to add an account [CHAR LIMIT=20] -->
    <string name="add_account_button_label">Add account</string>

    <!-- NumberPicker - accessibility support -->
    <!-- Description of the button to increase the NumberPicker value. [CHAR LIMIT=NONE] -->
    <string name="number_picker_increment_button">Increase</string>
    <!-- Description of the button to decrease the NumberPicker value. [CHAR LIMIT=NONE] -->
    <string name="number_picker_decrement_button">Decrease</string>
    <!-- Description of the tap and hold action to get into scroll mode in NumberPicker. [CHAR LIMIT=NONE] -->
    <string name="number_picker_increment_scroll_mode"><xliff:g id="value" example="3">%s</xliff:g> touch and hold.</string>
    <!-- Description of the scrolling action in NumberPicker. [CHAR LIMIT=NONE] -->
    <string name="number_picker_increment_scroll_action">Slide up to increase and down to decrease.</string>

    <!-- TimePicker - accessibility support -->
    <!-- Description of the button to increase the TimePicker's minute value. [CHAR LIMIT=NONE] -->
    <string name="time_picker_increment_minute_button">Increase minute</string>
    <!-- Description of the button to decrease the TimePicker's minute value. [CHAR LIMIT=NONE] -->
    <string name="time_picker_decrement_minute_button">Decrease minute</string>
    <!-- Description of the button to increase the TimePicker's hour value. [CHAR LIMIT=NONE] -->
    <string name="time_picker_increment_hour_button">Increase hour</string>
    <!-- Description of the button to decrease the TimePicker's hour value. [CHAR LIMIT=NONE] -->
    <string name="time_picker_decrement_hour_button">Decrease hour</string>
    <!-- Description of the button to increase the TimePicker's set PM value. [CHAR LIMIT=NONE] -->
    <string name="time_picker_increment_set_pm_button">Set PM</string>
    <!-- Description of the button to decrease the TimePicker's set AM value. [CHAR LIMIT=NONE] -->
    <string name="time_picker_decrement_set_am_button">Set AM</string>

    <!-- DatePicker - accessibility support -->
    <!-- Description of the button to increase the DatePicker's month value. [CHAR LIMIT=NONE] -->
    <string name="date_picker_increment_month_button">Increase month</string>
    <!-- Description of the button to decrease the DatePicker's month value. [CHAR LIMIT=NONE] -->
    <string name="date_picker_decrement_month_button">Decrease month</string>
    <!-- Description of the button to increase the DatePicker's day value. [CHAR LIMIT=NONE] -->
    <string name="date_picker_increment_day_button">Increase day</string>
    <!-- Description of the button to decrease the DatePicker's day value. [CHAR LIMIT=NONE] -->
    <string name="date_picker_decrement_day_button">Decrease day</string>
    <!-- Description of the button to increase the DatePicker's year value. [CHAR LIMIT=NONE] -->
    <string name="date_picker_increment_year_button">Increase year</string>
    <!-- Description of the button to decrease the DatePicker's year value. [CHAR LIMIT=NONE] -->
    <string name="date_picker_decrement_year_button">Decrease year</string>

    <!-- KeyboardView - accessibility support -->
    <!-- Description of the Alt button in a KeyboardView. [CHAR LIMIT=NONE] -->
    <string name="keyboardview_keycode_alt">Alt</string>
    <!-- Description of the Cancel button in a KeyboardView. [CHAR LIMIT=NONE] -->
    <string name="keyboardview_keycode_cancel">Cancel</string>
    <!-- Description of the Delete button in a KeyboardView. [CHAR LIMIT=NONE] -->
    <string name="keyboardview_keycode_delete">Delete</string>
    <!-- Description of the Done button in a KeyboardView. [CHAR LIMIT=NONE] -->
    <string name="keyboardview_keycode_done">Done</string>
    <!-- Description of the Mode change button in a KeyboardView. [CHAR LIMIT=NONE] -->
    <string name="keyboardview_keycode_mode_change">Mode change</string>
    <!-- Description of the Shift button in a KeyboardView. [CHAR LIMIT=NONE] -->
    <string name="keyboardview_keycode_shift">Shift</string>
    <!-- Description of the Enter button in a KeyboardView. [CHAR LIMIT=NONE] -->
    <string name="keyboardview_keycode_enter">Enter</string>

    <!-- ActivityChooserView - accessibility support -->
    <!-- Description of the shwoing of a popup window with activities to choose from. [CHAR LIMIT=NONE] -->
    <string name="activitychooserview_choose_application">Choose an app</string>

    <!-- ShareActionProvider - accessibility support -->
    <!-- Description of the choose target button in a ShareActionProvider (share UI). [CHAR LIMIT=NONE] -->
    <string name="shareactionprovider_share_with">Share with</string>
    <!-- Description of a share target (both in the list of such or the default share button) in a ShareActionProvider (share UI). [CHAR LIMIT=NONE] -->
    <string name="shareactionprovider_share_with_application">Share with <xliff:g id="application_name" example="Bluetooth">%s</xliff:g></string>

    <!-- Slide lock screen -->

    <!-- Description of the sliding handle in the Slide unlock screen. [CHAR LIMIT=NONE] -->
    <string name="content_description_sliding_handle">"Sliding handle. Touch &amp; hold."</string>

    <!-- Description of the up direction in which one can to slide the handle in the Slide unlock screen. [CHAR LIMIT=NONE] -->
    <string name="description_direction_up">Slide up for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
    <!-- Description of the down direction in which one can to slide the handle in the Slide unlock screen. [CHAR LIMIT=NONE] -->
    <string name="description_direction_down">Slide down for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
    <!-- Description of the left direction in which one can to slide the handle in the Slide unlock screen. [CHAR LIMIT=NONE] -->
    <string name="description_direction_left">"Slide left for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
    <!-- Description of the right direction in which one can to slide the handle in the Slide unlock screen. [CHAR LIMIT=NONE] -->
    <string name="description_direction_right">Slide right for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>

    <!-- Description of the unlock target in the Slide unlock screen. [CHAR LIMIT=NONE] -->
    <string name="description_target_unlock">Unlock</string>
    <!-- Description of the camera target in the Slide unlock screen. [CHAR LIMIT=NONE] -->
    <string name="description_target_camera">Camera</string>
    <!-- Description of the silent target in the Slide unlock screen. [CHAR LIMIT=NONE] -->
    <string name="description_target_silent">Silent</string>
    <!-- Description of the sound on target in the Slide unlock screen. [CHAR LIMIT=NONE] -->
    <string name="description_target_soundon">Sound on</string>
    <!-- Description of the unlock target in the Slide unlock screen. [CHAR LIMIT=NONE] -->
    <string name="description_target_search">Search</string>

    <!-- Description of the unlock handle in the Slide unlock screen for tablets. [CHAR LIMIT=NONE] -->
    <string name="description_target_unlock_tablet">Swipe to unlock.</string>

    <!-- Announce that a headset is required to hear keyboard keys while typing a password. [CHAR LIMIT=NONE] -->
    <string name="keyboard_headset_required_to_hear_password">Plug in a headset to hear password keys spoken.</string>
    <!-- The value of a keyboard key announced when accessibility is enabled and no headsed is used. [CHAR LIMIT=NONE] -->
    <string name="keyboard_password_character_no_headset">Dot.</string>

    <!-- Content description for the action bar "home" affordance. [CHAR LIMIT=NONE] -->
    <string name="action_bar_home_description">Navigate home</string>
    <!-- Content description for the action bar "up" affordance. [CHAR LIMIT=NONE] -->
    <string name="action_bar_up_description">Navigate up</string>
    <!-- Content description for the action menu overflow button. [CHAR LIMIT=NONE] -->
    <string name="action_menu_overflow_description">More options</string>

    <!-- Storage description for internal storage. [CHAR LIMIT=NONE] -->
    <string name="storage_internal">Internal storage</string>

    <!-- Storage description for the SD card. [CHAR LIMIT=NONE] -->
    <string name="storage_sd_card">SD card</string>

    <!-- Storage description for USB storage. [CHAR LIMIT=NONE] -->
    <string name="storage_usb">USB storage</string>

    <!-- Button text for the edit menu in input method extract mode. [CHAR LIMIT=16] -->
    <string name="extract_edit_menu_button">Edit</string>

    <!-- Notification title when data usage has exceeded warning threshold. [CHAR LIMIT=32] -->
    <string name="data_usage_warning_title">Data usage warning</string>
    <!-- Notification body when data usage has exceeded warning threshold. [CHAR LIMIT=32] -->
    <string name="data_usage_warning_body">Touch to view usage and settings.</string>

    <!-- Notification title when 2G-3G data usage has exceeded limit threshold, and has been disabled. [CHAR LIMIT=32] -->
    <string name="data_usage_3g_limit_title">2G-3G data disabled</string>
    <!-- Notification title when 4G data usage has exceeded limit threshold, and has been disabled. [CHAR LIMIT=32] -->
    <string name="data_usage_4g_limit_title">4G data disabled</string>
    <!-- Notification title when mobile data usage has exceeded limit threshold, and has been disabled. [CHAR LIMIT=32] -->
    <string name="data_usage_mobile_limit_title">Mobile data disabled</string>
    <!-- Notification title when Wi-Fi data usage has exceeded limit threshold, and has been disabled. [CHAR LIMIT=32] -->
    <string name="data_usage_wifi_limit_title">Wi-Fi data disabled</string>
    <!-- Notification body when data usage has exceeded limit threshold, and has been disabled. [CHAR LIMIT=32] -->
    <string name="data_usage_limit_body">Touch to enable.</string>

    <!-- Notification title when 2G-3G data usage has exceeded limit threshold. [CHAR LIMIT=32] -->
    <string name="data_usage_3g_limit_snoozed_title">2G-3G data limit exceeded</string>
    <!-- Notification title when 4G data usage has exceeded limit threshold. [CHAR LIMIT=32] -->
    <string name="data_usage_4g_limit_snoozed_title">4G data limit exceeded</string>
    <!-- Notification title when mobile data usage has exceeded limit threshold. [CHAR LIMIT=32] -->
    <string name="data_usage_mobile_limit_snoozed_title">Mobile data limit exceeded</string>
    <!-- Notification title when Wi-Fi data usage has exceeded limit threshold. [CHAR LIMIT=32] -->
    <string name="data_usage_wifi_limit_snoozed_title">Wi-Fi data limit exceeded</string>
    <!-- Notification body when data usage has exceeded limit threshold. [CHAR LIMIT=32] -->
    <string name="data_usage_limit_snoozed_body"><xliff:g id="size" example="3.8GB">%s</xliff:g> over specified limit.</string>

    <!-- Notification title when background data usage is limited. [CHAR LIMIT=32] -->
    <string name="data_usage_restricted_title">Background data restricted</string>
    <!-- Notification body when background data usage is limited. [CHAR LIMIT=32] -->
    <string name="data_usage_restricted_body">Touch to remove restriction.</string>

    <!-- SSL Certificate dialogs -->
    <!-- Title for an SSL Certificate dialog -->
    <string name="ssl_certificate">Security certificate</string>
    <!-- Message on an SSL Certificate dialog -->
    <string name="ssl_certificate_is_valid">This certificate is valid.</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="issued_to">Issued to:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="common_name">Common name:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="org_name">Organization:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="org_unit">Organizational unit:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="issued_by">Issued by:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="validity_period">Validity:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="issued_on">Issued on:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="expires_on">Expires on:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="serial_number">Serial number:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="fingerprints">Fingerprints:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="sha256_fingerprint">SHA-256 fingerprint:</string>
    <!-- Label for an information field on an SSL Certificate Dialog -->
    <string name="sha1_fingerprint">SHA-1 fingerprint:</string>

    <!-- Title for a button to expand the list of activities in ActivityChooserView [CHAR LIMIT=25] -->
    <string name="activity_chooser_view_see_all">See all</string>
    <!-- Title default for a dialog showing possible activities in ActivityChooserView [CHAR LIMIT=25] -->
    <string name="activity_chooser_view_dialog_title_default">Choose activity</string>

    <!-- Title for a dialog showing possible activities for sharing in ShareActionProvider [CHAR LIMIT=25] -->
    <string name="share_action_provider_share_with">Share with</string>

    <!-- Status Bar icon descriptions -->

    <!-- Description of for the status bar's icon that the device is locked for accessibility. [CHAR LIMIT=NONE] -->
    <string name="status_bar_device_locked">Device locked.</string>

    <!-- Delimeter used between each item in a textual list; for example "Alpha, Beta". [CHAR LIMIT=3] -->
    <string name="list_delimeter">", "</string>

    <!-- STK sending DTMF, SMS, USSD, SS -->
    <string name="sending">Sending\u2026</string>

    <!-- STK launch Browser -->
    <string name="launchBrowserDefault">Launch Browser?</string>

    <!-- STK setup Call -->
    <string name="SetupCallDefault">Accept call?</string>

    <!-- Title for a button to choose the currently selected activity
         as the default in the activity resolver. [CHAR LIMIT=25] -->
    <string name="activity_resolver_use_always">Always</string>

    <!-- Title for a button to choose the currently selected activity
         from the activity resolver to use just this once. [CHAR LIMIT=25] -->
    <string name="activity_resolver_use_once">Just once</string>

    <!-- Name of the default audio route for tablets when nothing
         is connected to a headphone or other wired audio output jack. [CHAR LIMIT=50] -->
    <string name="default_audio_route_name" product="tablet">Tablet</string>

    <!-- Name of the default audio route when nothing is connected to
         a headphone or other wired audio output jack. [CHAR LIMIT=50] -->
    <string name="default_audio_route_name" product="default">Phone</string>

    <!-- Name of the default audio route when wired headphones are
         connected. [CHAR LIMIT=50] -->
    <string name="default_audio_route_name_headphones">Headphones</string>

    <!-- Name of the default audio route when an audio dock is connected. [CHAR LIMIT=50] -->
    <string name="default_audio_route_name_dock_speakers">Dock speakers</string>

    <!-- Name of the default media route when HDMI is connected. [CHAR LIMIT=50] -->
    <string name="default_media_route_name_hdmi">HDMI</string>

    <!-- Name of the default audio route category. [CHAR LIMIT=50] -->
    <string name="default_audio_route_category_name">System</string>

    <!-- Default name of the bluetooth a2dp audio route. [CHAR LIMIT=50] -->
    <string name="bluetooth_a2dp_audio_route_name">Bluetooth audio</string>

    <!-- "Done" button for MediaRouter chooser dialog when grouping routes. [CHAR LIMIT=NONE] -->
    <string name="media_route_chooser_grouping_done">Done</string>

    <!-- Content description of a MediaRouteButton for accessibility support -->
    <string name="media_route_button_content_description">Media output</string>

    <!-- Status message for remote routes attempting to scan/determine availability -->
    <string name="media_route_status_scanning">Scanning...</string>

    <!-- Status message for a remote route attempting to connect -->
    <string name="media_route_status_connecting">Connecting...</string>

    <!-- Status message for a remote route that is confirmed to be available for connection -->
    <string name="media_route_status_available">Available</string>

    <!-- Status message for remote routes that are not available for connection right now -->
    <string name="media_route_status_not_available">Not available</string>

    <!-- Display manager service -->

    <!-- Name of the built-in display.  [CHAR LIMIT=50] -->
    <string name="display_manager_built_in_display_name">Built-in Screen</string>

    <!-- Name of the HDMI display.  [CHAR LIMIT=50] -->
    <string name="display_manager_hdmi_display_name">HDMI Screen</string>

    <!-- Name of the N'th overlay display for testing.  [CHAR LIMIT=50] -->
    <string name="display_manager_overlay_display_name">Overlay #<xliff:g id="id">%1$d</xliff:g></string>

    <!-- Title text to show within the overlay.  [CHAR LIMIT=50] -->
    <string name="display_manager_overlay_display_title"><xliff:g id="name">%1$s</xliff:g>: <xliff:g id="width">%2$d</xliff:g>x<xliff:g id="height">%3$d</xliff:g>, <xliff:g id="dpi">%4$d</xliff:g> dpi</string>

    <!-- Title of the notification to indicate an active wifi display connection.  [CHAR LIMIT=50] -->
    <string name="wifi_display_notification_title">Wireless display is connected</string>
    <!-- Message of the notification to indicate an active wifi display connection.  [CHAR LIMIT=80] -->
    <string name="wifi_display_notification_message">This screen is showing on another device</string>
    <!-- Label of a button to disconnect an active wifi display connection.  [CHAR LIMIT=25] -->
    <string name="wifi_display_notification_disconnect">Disconnect</string>

    <!-- Keyguard strings -->
    <!-- Label shown on emergency call button in keyguard -->
    <string name="kg_emergency_call_label">Emergency call</string>
    <!-- Message shown in pattern unlock after some number of unsuccessful attempts -->
    <string name="kg_forgot_pattern_button_text">Forgot Pattern</string>
    <!-- Message shown when user enters wrong pattern -->
    <string name="kg_wrong_pattern">Wrong Pattern</string>
    <!-- Message shown when user enters wrong password -->
    <string name="kg_wrong_password">Wrong Password</string>
    <!-- Message shown when user enters wrong PIN -->
    <string name="kg_wrong_pin">Wrong PIN</string>
    <!-- Countdown message shown after too many failed unlock attempts -->
    <string name="kg_too_many_failed_attempts_countdown">Try again in <xliff:g id="number">%d</xliff:g> seconds.</string>
    <!-- Instructions for using the pattern unlock screen -->
    <string name="kg_pattern_instructions">Draw your pattern</string>
    <!-- Instructions for using the SIM PIN unlock screen -->
    <string name="kg_sim_pin_instructions">Enter SIM PIN</string>
    <!-- Instructions for using the PIN unlock screen -->
    <string name="kg_pin_instructions">Enter PIN</string>
    <!-- Instructions for using the password unlock screen -->
    <string name="kg_password_instructions">Enter Password</string>
    <!-- Hint shown in the PUK screen that asks the user to enter the PUK code given to them by their provider -->
    <string name="kg_puk_enter_puk_hint">SIM is now disabled. Enter PUK code to continue. Contact carrier for details.</string>
    <!-- Hint shown in the PUK unlock screen PIN TextView -->
    <string name="kg_puk_enter_pin_hint">Enter desired PIN code</string>
    <!-- Message shown when the user needs to confirm the PIN they just entered in the PUK screen -->
    <string name="kg_enter_confirm_pin_hint">Confirm desired PIN code</string>
    <!-- Message shown in dialog while the device is unlocking the SIM card -->
    <string name="kg_sim_unlock_progress_dialog_message">Unlocking SIM card\u2026</string>
    <!-- Message shown when the user enters the wrong PIN code -->
    <string name="kg_password_wrong_pin_code">Incorrect PIN code.</string>
    <!-- Message shown when the user enters an invalid SIM pin password in PUK screen -->
    <string name="kg_invalid_sim_pin_hint">Type a PIN that is 4 to 8 numbers.</string>
    <!-- Message shown when the user enters an invalid PUK code in the PUK screen -->
    <string name="kg_invalid_sim_puk_hint">PUK code should be 8 numbers or more.</string>
    <!-- Message shown when the user enters an invalid PUK code -->
    <string name="kg_invalid_puk">Re-enter the correct PUK code. Repeated attempts will permanently disable the SIM.</string>
      <!-- String shown in PUK screen when PIN codes don't match -->
    <string name="kg_invalid_confirm_pin_hint" product="default">PIN codes does not match</string>
    <!-- Message shown when the user exceeds the maximum number of pattern attempts -->
    <string name="kg_login_too_many_attempts">Too many pattern attempts</string>
    <!-- Instructions show in account unlock screen allowing user to enter their email password -->
    <string name="kg_login_instructions">To unlock, sign in with your Google account.</string>
    <!-- Hint shown in TextView in account unlock screen of keyguard -->
    <string name="kg_login_username_hint">Username (email)</string>
    <!-- Hint shown in TextView in account unlock screen of keyguard -->
    <string name="kg_login_password_hint">Password</string>
    <!-- Label shown on sign in button on account unlock screen of keyguard -->
    <string name="kg_login_submit_button">Sign in</string>
    <!-- Message shown when the user enters an invalid username/password combination in account unlock screen of keyguard -->
    <string name="kg_login_invalid_input">Invalid username or password.</string>
    <!-- Hint text shown when user has too many failed password attempts in account unlock screen of keyguard -->
    <string name="kg_login_account_recovery_hint">Forgot your username or password\?\nVisit <b>google.com/accounts/recovery</b>.</string>
    <!-- Message shown while device checks username/password in account unlock screen of keyguard -->
    <string name="kg_login_checking_password">Checking account\u2026</string>
    <!-- Message shown in dialog when max number of attempts are reached for PIN screen of keyguard -->
    <string name="kg_too_many_failed_pin_attempts_dialog_message">
        You have incorrectly typed your PIN <xliff:g id="number">%d</xliff:g> times.
        \n\nTry again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>
    <!-- Message shown in dialog when max number of attempts are reached for password screen of keyguard -->
    <string name="kg_too_many_failed_password_attempts_dialog_message">
        You have incorrectly typed your password <xliff:g id="number">%d</xliff:g> times.
        \n\nTry again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>
    <string name="kg_too_many_failed_pattern_attempts_dialog_message">
        You have incorrectly drawn your unlock pattern <xliff:g id="number">%d</xliff:g> times.
        \n\nTry again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>
    <!-- Message shown when user is almost at the limit of password attempts where the device will be wiped. -->
    <string name="kg_failed_attempts_almost_at_wipe" product="tablet">
       You have incorrectly attempted to unlock the tablet <xliff:g id="number">%d</xliff:g> times.
       After <xliff:g id="number">%d</xliff:g> more unsuccessful attempts,
       the tablet will be reset to factory default and all user data will be lost.
    </string>
    <!-- Message shown when user is almost at the limit of password attempts where the device will be wiped. -->
    <string name="kg_failed_attempts_almost_at_wipe" product="default">
       You have incorrectly attempted to unlock the phone <xliff:g id="number">%d</xliff:g> times.
       After <xliff:g id="number">%d</xliff:g> more unsuccessful attempts,
       the phone will be reset to factory default and all user data will be lost.
    </string>
    <!-- Message shown in dialog when user has exceeded the maximum attempts and the device will now be wiped -->
    <string name="kg_failed_attempts_now_wiping" product="tablet">
       You have incorrectly attempted to unlock the tablet <xliff:g id="number">%d</xliff:g> times.
       The tablet will now be reset to factory default.
    </string>
    <!-- Message shown in dialog when user has exceeded the maximum attempts and the device will now be wiped -->
    <string name="kg_failed_attempts_now_wiping" product="default">
       You have incorrectly attempted to unlock the phone <xliff:g id="number">%d</xliff:g> times.
       The phone will now be reset to factory default.
    </string>
    <!-- Message shown in dialog when user is almost at the limit where they will be
    locked out and may have to enter an alternate username/password to unlock the phone -->
    <string name="kg_failed_attempts_almost_at_login" product="tablet">
       You have incorrectly drawn your unlock pattern <xliff:g id="number">%d</xliff:g> times.
       After <xliff:g id="number">%d</xliff:g> more unsuccessful attempts,
       you will be asked to unlock your tablet using an email account.\n\n
       Try again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>
    <!-- Message shown in dialog when user is almost at the limit where they will be
    locked out and may have to enter an alternate username/password to unlock the phone -->
    <string name="kg_failed_attempts_almost_at_login" product="default">
       You have incorrectly drawn your unlock pattern <xliff:g id="number">%d</xliff:g> times.
       After <xliff:g id="number">%d</xliff:g> more unsuccessful attempts,
       you will be asked to unlock your phone using an email account.\n\n
       Try again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>
    <!-- Sequence of characters used to separate message strings in keyguard. Typically just em-dash
         with spaces on either side. [CHAR LIMIT=3] -->
    <string name="kg_text_message_separator" product="default">" \u2014 "</string>
    <!-- The delete-widget drop target button text -->
    <string name="kg_reordering_delete_drop_target_text">Remove</string>

    <!-- Message shown in dialog when user is attempting to set the music volume above the
    recommended maximum level for headphones -->
    <string name="safe_media_volume_warning" product="default">
       "Raise volume above safe level?\nListening at high volume for long periods may damage your hearing."
    </string>

    <!-- Text spoken when the user is performing a gesture that will enable accessibility. [CHAR LIMIT=none] -->
    <string name="continue_to_enable_accessibility">Keep holding down two fingers to enable accessibility.</string>
    <!-- Text spoken when the user enabled accessibility. [CHAR LIMIT=none] -->
    <string name="accessibility_enabled">Accessibility enabled.</string>
    <!-- Text spoken when the user stops preforming a gesture that would enable accessibility. [CHAR LIMIT=none] -->
    <string name="enable_accessibility_canceled">Accessibility canceled.</string>
    <!-- Text spoken when the current user is switched if accessibility is enabled. [CHAR LIMIT=none] -->
    <string name="user_switched">Current user <xliff:g id="name" example="Bob">%1$s</xliff:g>.</string>
    <!-- Default name of the owner user [CHAR LIMIT=20] -->
    <string name="owner_name" msgid="3879126011135546571">Owner</string>

</resources>
