<?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. -->
    <string name="ellipsis">\u2026</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 is not correct.</string>
    <!-- Displayed when a SIM PUK password is entered incorrectly. -->
    <string name="badPuk">The PUK you typed is not correct.</string>
    <!-- Displayed when SIM PIN passwords are entered inconsistently. -->
    <string name="mismatchPin">The PINs you entered do not 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>

    <!-- 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">The caller ID setting cannot be changed.</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">A network error occurred.</string>
    <!-- Displayed when a web request failed because the URL could not be found. -->
    <string name="httpErrorLookup">The URL could not be found.</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 is not supported.</string>
    <!-- Displayed when a web request failed because the authentication failed. -->
    <string name="httpErrorAuth">Authentication was unsuccessful.</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">The connection to the server was unsuccessful.</string>
    <!-- Displayed when a web request failed because there was an input or output error. -->
    <string name="httpErrorIO">The server failed to communicate. 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 is not supported.</string>
    <!-- Displayed when a web request failed because the a secure connection couldn't be made to the server.-->
    <string name="httpErrorFailedSslHandshake">A secure connection could not be established.</string>
    <!-- Displayed when a web request failed because the URL isn't in a valid form. -->
    <string name="httpErrorBadUrl">The page could not be opened because the URL is invalid.</string>
    <!-- Displayed when a request failed because we failed to open the file. -->
    <string name="httpErrorFile">The file could not be accessed.</string>
    <!-- Displayed when a request failed because the file wasn't found. -->
    <string name="httpErrorFileNotFound">The requested file was not found.</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">Sign-in 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>

    <!-- 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">Would you like to shut down?</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 applications.</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 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">Allow applications to 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,
        e-mail, 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" product="tablet">Direct access to your contacts
        and calendar stored on the tablet.</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" product="default">Direct access to your contacts
        and calendar stored on the phone.</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">Allow applications to 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_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
        application 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_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 application 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 application 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 application 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">intercept 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 application to
        process outgoing calls and change the number to be dialed.  Malicious
        applications may 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 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 application to receive
      and process SMS messages. Malicious applications may monitor
      your messages or delete them 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 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 application to receive
      and process MMS messages. Malicious applications may monitor
      your messages or delete them 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 application to receive
      and process emergency broadcast messages. This permission is only available
      to system 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_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 application to send SMS
      messages. Malicious applications 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 application to send SMS
      messages. Malicious applications 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 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 application to read
      SMS messages stored on your tablet or SIM card. Malicious applications
      may read your confidential 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_readSms" product="default">Allows application to read
      SMS messages stored on your phone or SIM card. Malicious applications
      may read your confidential 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_writeSms">edit 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 application to write
      to SMS messages stored on your tablet or SIM card. Malicious applications
      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 application to write
      to SMS messages stored on your phone or SIM card. Malicious applications
      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 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 application to receive
      and process WAP messages. Malicious applications may monitor
      your messages or delete them 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 applications</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 application to retrieve
        information about currently and recently running tasks. May allow
        malicious applications to discover private information about 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_reorderTasks">reorder running applications</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 an application to move
        tasks to the foreground and background. Malicious applications can force
        themselves to the front without your control.</string>

    <!-- Title of an application permission, allowing an application to remove/kill tasks -->
    <string name="permlab_removeTasks">stop running applications</string>
    <!-- Description of an application permission, allowing an application to remove/kill tasks -->
    <string name="permdesc_removeTasks">Allows an application to remove
        tasks and kill their applications. Malicious applications can disrupt
        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 application 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 an application to turn
        on debugging for another application. Malicious applications can use this
        to kill 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_changeConfiguration">change your UI 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 an application 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 an application 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">kill background 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_killBackgroundProcesses">Allows an application to
        kill background processes of other applications, even if memory
        isn\'t low.</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 applications</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 an application to
        forcibly stop 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_forceBack">force application 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 an application to force any
        activity that is in the foreground to close and go back.
        Should never be needed for normal 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_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 application to retrieve
        internal state of the system. Malicious applications 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 application to retrieve
        the content of the active window. Malicious applications 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_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 application.</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 application 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 an application to
        monitor and control how the system launches activities.
        Malicious applications 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 an application to
        broadcast a notification that an application package has been removed.
        Malicious applications may use this to kill any other running
        application.</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 an application to
        broadcast a notification that an SMS message has been received.
        Malicious applications 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 an application to
        broadcast a notification that a WAP PUSH message has been received.
        Malicious applications may use this to forge MMS message receipt or to
        silently replace the content of any web page 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 an application
        to control the maximum number of processes that will run. Never
        needed for normal 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_setAlwaysFinish">make all background applications 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 an application
        to control whether activities are always finished as soon as they
        go to the background. Never needed for normal 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_batteryStats">modify battery 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_batteryStats">Allows the modification of
        collected battery statistics. Not for use by normal 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_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 application to control the system\'s backup and restore mechanism.  Not for use by normal 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_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 application to launch the full backup confirmation UI.  Not to be used by any application.</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 creation of
        windows that are intended to be used by the internal system
        user interface. Not for use by normal 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_systemAlertWindow">display system-level alerts</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 an application to
        show system alert windows. Malicious applications can take over the
        entire screen.</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 an application 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 application 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 applications to
        create and manage their own tokens, bypassing their normal
        Z-ordering. Should never be needed for normal 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_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 an application to deliver
        its own input events (key presses, etc.) to other applications. Malicious
        applications can 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 an application to deliver
        its own input events (key presses, etc.) to other applications. Malicious
        applications can 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 applications to watch the
        keys you press even when interacting with another application (such
        as entering a password). Should never be needed for normal 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_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 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_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 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_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 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_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 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_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 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_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 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_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 an application to change
        the rotation of the screen at any time. Should never be needed for
        normal applications.</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 an application to change
        the mouse or trackpad pointer speed at any time. Should never be needed for
        normal 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_signalPersistentProcesses">send Linux signals to applications</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 application 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 application 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">Allows an application to make
        parts of itself persistent, so the system can\'t use it for 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_deletePackages">delete applications</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 an application to delete
        Android packages. Malicious applications can use this to delete important 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_clearAppUserData">delete other applications\' 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 an application 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 applications\' 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 an application 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 application 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 an application 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 applications</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 an application to install new or updated
        Android packages. Malicious applications can use this to add new applications 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 application 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 an application to free tablet storage
        by deleting files in application cache directory. Access is very
        restricted usually to system process.</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 an application to free phone storage
        by deleting files in application cache directory. Access is very
        restricted usually to system process.</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 application 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 an application to move application 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 an application 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 an application 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_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 an application 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 application 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 an application to change whether a
        component of another application is enabled or not. Malicious applications can use this
        to disable important tablet capabilities. Care must be used with this permission, as it is
        possible to get application 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 an application to change whether a
        component of another application is enabled or not. Malicious applications can use this
        to disable important phone capabilities. Care must be used with this permission, as it is
        possible to get application components into an unusable, inconsistent, or unstable state.
    </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 applications</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 an application to
        modify your preferred applications. This can allow malicious applications
        to silently change the applications that are run, spoofing your
        existing applications 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 global 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 an application to modify the
        system\'s settings data. Malicious applications can corrupt your system\'s
        configuration.</string>

    <string name="permlab_writeSecureSettings">modify secure system settings</string>
    <string name="permdesc_writeSecureSettings">Allows an application to modify the
        system\'s secure settings data. Not for use by normal 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_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 an application to modify the
        Google services map.  Not for use by normal 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_receiveBootCompleted">automatically start at boot</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 an application 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
        application 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 an application 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
        application 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 an application to send
        sticky broadcasts, which remain after the broadcast ends.
        Malicious applications can 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 an application to send
        sticky broadcasts, which remain after the broadcast ends.
        Malicious applications can 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 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_readContacts" product="tablet">Allows an application to read all
        of the contact (address) data stored on your tablet. Malicious applications
        can use this to send your data to other people.</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 an application to read all
        of the contact (address) data stored on your phone. Malicious applications
        can use this to send your data to other people.</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">write 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="tablet">Allows an application to modify the
        contact (address) data stored on your tablet. Malicious
        applications can use this to erase or modify your 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 an application to modify the
        contact (address) data stored on your phone. Malicious
        applications can use this to erase or modify your contact data.</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 profile data</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 application to read personal
        profile information stored on your device, such as your name and contact information. This
        means the application can identify you and 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">write to your profile data</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 application to change or add
        to personal profile information stored on your device, such as your name and contact
        information.  This means other applications can identify you and send your profile
        information to others.</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 an application to read all calendar
        events stored on your tablet, including those of friends or coworkers. A malicious application with
        this permission can extract personal information from these calendars without the 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_readCalendar" product="default">Allows an application to read all calendar
        events stored on your phone, including those of friends or coworkers. A malicious application with
        this permission can extract personal information from these calendars 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_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">Allows an application to send event invitations as the calendar owner and add, remove,
        change events that you can modify on your device, including those of friends or co-workers. A malicious application with this permission
        can send spam emails that appear to come from calendar owners, modify events without the owners\' knowledge, or add fake events.</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.
        Malicious applications can use this to override the location and/or status returned by real
        location sources such as GPS or Network 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">Access extra location provider commands.
        Malicious applications could use this 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.
        Malicious applications can use this to override the location and/or status returned by real
        location sources such as GPS or Network providers or monitor and report your location to an external source.</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">fine (GPS) location</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" product="tablet">Access fine location sources such as the
        Global Positioning System on the tablet, where available.
        Malicious applications can use this to determine where you are, and may
        consume additional battery power.</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" product="default">Access fine location sources such as the
        Global Positioning System on the phone, where available.
        Malicious applications can 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">coarse (network-based) location</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" product="tablet">Access coarse location sources such as the cellular
        network database to determine an approximate tablet location, where available. Malicious
        applications can use this to determine approximately where you are.</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" product="default">Access coarse location sources such as the cellular
        network database to determine an approximate phone location, where available. Malicious
        applications can 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 application 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 application 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_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 application to modify
        global audio settings such as volume and routing.</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 application to access
        the audio record path.</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 application to take pictures and videos
        with the camera. This allows the application at any time to collect
        images the camera is seeing.</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 application 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 application 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 application 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 application 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. -->
    <string name="permlab_mount_unmount_filesystems">mount and unmount filesystems</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 application 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. -->
    <string name="permlab_mount_format_filesystems">format external 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_mount_format_filesystems">Allows the application 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 application 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 application 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 application 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 application 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 application 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 vibrator</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 application 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 application 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 application 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 application 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 application to call
        phone numbers without your intervention. Malicious applications may
        cause unexpected calls on your phone bill. Note that this does not
        allow the application to call emergency numbers.</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 application to call
        any phone number, including emergency numbers, without your intervention.
        Malicious applications 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 application to start CDMA provisioning.
        Malicious applications 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 enabling/disabling location
        update notifications from the radio.  Not for use by normal 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_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 read/write access to
        properties uploaded by the checkin service.  Not for use by normal
        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_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 application to tell the system
        which widgets can be used by which application.  With this permission,
        applications can give access to personal data to other applications.
        Not for use by normal 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_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 application to control the
        phone features of the device. An application 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 state 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 application to access the phone
        features of the device.  An application with this permission can determine the phone
        number and serial number of this phone, whether a call is active, the number that call
        is connected to and the like.</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 an application 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 an application 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 application 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 application 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 application
        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">set wallpaper size hints</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 application
        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 an application to completely
        reset the system to its factory settings, erasing all data,
        configuration, and installed 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_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 an application 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 an application 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 an application 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 an application 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 an
    application 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">discover known 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_getAccounts" product="tablet">Allows an application to get
      the list of accounts known by 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_getAccounts" product="default">Allows an application to get
      the list of accounts known by 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_authenticateAccounts">act as an account authenticator</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 an application
    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">manage the accounts list</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 an application 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 the authentication
    credentials of an account</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 an application 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 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_accessNetworkState">Allows an application to view
      the state of all 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_createNetworkSockets">full Internet 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 an application to
      create network sockets.</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 an application to change network settings and to intercept and inspect all network traffic, 
      for example to change the proxy and port of any APN. Malicious applications could 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 an application 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 an application 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 an application 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 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_accessWifiState">Allows an application to view
      the information about the state of Wi-Fi.</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">change Wi-Fi 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_changeWifiState">Allows an application to connect
      to and disconnect from Wi-Fi access points, and to make changes to
      configured 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">Allows an application to
      receive packets not directly addressed to your device.  This can be
      useful when discovering services offered near by.  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">bluetooth administration</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 an application 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 an application to configure
      the local Bluetooth phone, and to discover and pair with remote
      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_bluetooth">create Bluetooth 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_bluetooth" product="tablet">Allows an application to view
      configuration of the local Bluetooth 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 an application to view
      configuration of the local Bluetooth 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 an application 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 keylock</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 an application to disable
      the keylock and any associated password security. A legitimate example of
      this is the phone disabling the keylock when receiving an incoming phone call,
      then re-enabling 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 an application to read the sync settings,
        such as whether sync is enabled for Contacts.</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">write 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_writeSyncSettings">Allows an application to modify the sync
        settings, such as whether sync is enabled for Contacts.</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 application to read the sync stats; e.g., the
        history of syncs that have occurred.</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 an application 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 an application to modify
      your currently synced feeds. This could allow a malicious application to
      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 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_readDictionary">Allows an application to read any private
      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">write 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 an application 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_sdcardWrite" product="nosdcard">modify/delete USB storage contents</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/delete SD card 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=30] -->
    <string name="permdesc_sdcardWrite" product="nosdcard">Allows an application 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 an application 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 an application 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. -->
    <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 an application 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 an application 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 an application to read historical network usage for specific networks and 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_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 an application to manage network policies and define application-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 modification of how network usage is accounted against applications. Not for use by normal applications.</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
    entered when unlocking the screen, and lock the tablet or erase all the tablet\'s
    data if too many incorrect passwords are entered</string>
    <!-- Description of policy access to watch user login attempts -->
    <string name="policydesc_watchLogin" product="default">Monitor the number of incorrect passwords
    entered when unlocking the screen, and lock the phone or erase all the phone\'s
    data if too many incorrect passwords are entered</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 application 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>

    <!-- 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">Enter 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">Enter 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 enter 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">Enter 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">Enter 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">Sorry, 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">Sorry, try again</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">Please 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. Please insert a 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 is permanently disabled.\n
    Please contact your wireless service provider to obtain another SIM card.</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">Please 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\nPlease try 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 entered your password <xliff:g id="number">%d</xliff:g> times.
        \n\nPlease try 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 entered your PIN <xliff:g id="number">%d</xliff:g> times.
        \n\nPlease try again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>

    <!-- For the unlock screen, Information 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 sign-in.\n\n
       Please try again in <xliff:g id="number">%d</xliff:g> seconds.
    </string>
    <!-- For the unlock screen, Information 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 sign-in.\n\n
       Please try again in <xliff:g id="number">%d</xliff:g> seconds.
    </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...</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>

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

    <!-- 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\nSelect 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=16] -->
    <string name="setup_autofill">Setup 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 Browser\'s history and bookmarks</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 application to read all
        the URLs that the Browser has visited, and all of the Browser\'s bookmarks.</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 Browser\'s history and bookmarks</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 an application to modify the
        Browser\'s history or bookmarks stored on your tablet. Malicious applications
        can use this to erase or modify your Browser\'s 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_writeHistoryBookmarks" product="default">Allows an application to modify the
        Browser\'s history or bookmarks stored on your phone. Malicious applications
        can use this to erase or modify your Browser\'s 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_setAlarm">set alarm in alarm clock</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 application to set an alarm in
      an installed alarm clock application. Some alarm clock applications 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 application 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 an application to modify the
        Browser\'s geolocation permissions. Malicious applications
        can 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 application 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 applications.</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 do not 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>

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


    <!-- Title for error alert when a video cannot be played.  it can be used by any app. -->
    <string name="VideoView_error_title">Cannot play video</string>
    <!-- Text for error alert when a video container is not valid for progressive download/playback. -->
    <string name="VideoView_error_text_invalid_progressive_playback">Sorry, this video is not 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">Sorry, this video cannot be played.</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</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>

    <!-- 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">Low on space</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" product="tablet">Tablet storage space is getting low.</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" product="default">Phone storage space is getting low.</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...</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 Home Settings &gt; Applications &gt; Manage applications.</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">Select an action</string>
    <!-- title for the USB activity chooser. -->
    <string name="chooseUsbActivity">Select an application 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 applications 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"><xliff:g id="application">%1$s</xliff:g> has stopped by mistake.</string>
    <!-- Text of the alert that is displayed when an application has crashed. -->
    <string name="aerr_process">The process <xliff:g id="process">%1$s</xliff:g> has
        stopped by mistake.</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> is not responding.\n\nWould you like 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> is not responding.\n\nWould you like 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> is not responding. Would you like 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> is not responding.\n\nWould you like 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>
    <!-- [CHAR LIMIT=25] Title of the alert when application launches on top of another. -->
    <string name="launch_warning_title">Application 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 with Settings &gt; Applications &gt; Manage applications.</string>

    <!-- Text of the alert that is displayed when an application has violated StrictMode. -->
    <string name="smv_application">The application <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>

    <!-- 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">Select to switch to application</string>

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

    <!-- Descriptive text for switching to a new heavy-weight application. -->
    <string name="heavy_weight_switcher_text">Another application 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 application.</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 application 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">Select 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 selected</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 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.  This is a partial string of the message, which will also include the (possibly truncated) hotspot name. -->
    <string name="wifi_watchdog_network_disabled_detailed"> has 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>

    <!-- Wi-Fi p2p dialog title-->
    <string name="wifi_p2p_dialog_title">Wi-Fi Direct</string>
    <string name="wifi_p2p_turnon_message">Start Wi-Fi Direct operation. This will turn off Wi-Fi client/hotspot operation.</string>
    <string name="wifi_p2p_failed_message">Failed to start Wi-Fi Direct</string>
    <string name="wifi_p2p_pbc_go_negotiation_request_message">Wi-Fi Direct connection setup request from <xliff:g id="p2p_device_address">%1$s</xliff:g>. Click OK to accept. </string>
    <string name="wifi_p2p_pin_go_negotiation_request_message">Wi-Fi Direct connection setup request from <xliff:g id="p2p_device_address">%1$s</xliff:g>. Enter pin to proceed. </string>
    <string name="wifi_p2p_pin_display_message">WPS pin <xliff:g id="p2p_wps_pin">%1$s</xliff:g> needs to be entered on the peer device <xliff:g id="p2p_client_address">%2$s</xliff:g> for connection setup to proceed </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 />
    <!-- See SMS_DIALOG.  This is shown if the current application's name cannot be figuerd out. -->
    <string name="sms_control_default_app_name">Unknown application</string>
    <!-- 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. -->
    <string name="sms_control_message">A large number of SMS messages are being sent. Select \"OK\" to continue, or \"Cancel\" to stop sending.</string>
    <!-- See SMS_DIALOG.  This is a button choice to allow sending the SMSes. -->
    <string name="sms_control_yes">OK</string>
    <!-- See SMS_DIALOG.  This is a button choice to disallow sending the SMSes.. -->
    <string name="sms_control_no">Cancel</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">You must 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>

    <!-- Security Permissions strings-->
    <!-- The default permission group for any permissions that have not explicitly set a group. -->
    <string name="default_permission_group">Default</string>
    <!-- Do not translate. -->
    <string name="permissions_format"><xliff:g id="perm_line1">%1$s</xliff:g>, <xliff:g id="perm_line2">%2$s</xliff:g></string>
    <!-- Shown for an application when it doesn't require any permission grants. -->
    <string name="no_permissions">No permissions required</string>
    <!-- When installing an application, the less-dangerous permissions are hidden.  If the user showed those, this is the text to hide them again.  -->
    <string name="perms_hide"><b>Hide</b></string>
    <!-- When installing an application, the less-dangerous permissions are hidden.  This is the text to show those. -->
    <string name="perms_show_all"><b>Show all</b></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 have connected to your computer via USB. Touch the button below if you want to copy files between your computer and your Android\u2018s USB storage.</string>
    <!-- See USB_STORAGE.    This is the message. [CHAR LIMIT=NONE] -->
    <string name="usb_storage_message" product="default">You have connected to your computer via USB. Touch the button below if you want to copy files between your computer and your Android\u2018s 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 is 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 is 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">Select 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">Select 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, make sure you have unmounted (\u201cejected\u201d) your Android\u2018s 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, make sure you have unmounted (\u201cejected\u201d) your Android\u2018s 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 to make sure you have 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 applications you are 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 failed</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">Format USB storage, erasing all files stored there?  Action cannot be reversed!</string>
    <!-- See EXTMEDIA_FORMAT.   This is the message. -->
    <string name="extmedia_format_message" product="default">Are you sure you want to format the SD card? 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">Select 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">Select input method</string>
    <!-- Title of a button to open the settings for input methods [CHAR LIMIT=30] -->
    <string name="configure_input_methods">Configure input methods</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 blank or has unsupported filesystem.</string>
    <string name="ext_media_nofs_notification_message" product="default">SD card 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 damaged. You may have to reformat it.</string>
    <string name="ext_media_unmountable_notification_message" product="default">SD card damaged. You may have to reformat 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 modification of collected component usage statistics. Not for use by normal applications.</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">Allows to invoke default container service to copy content. Not for use by normal applications.</string>
    <!-- Description of an application permission,  used to invoke default container service to copy content. -->
    <string name="permdesc_copyProtectedData">Allows to invoke default container service to copy content. Not for use by normal applications.</string>

    <!-- Shown in the tutorial for tap twice for zoom control. -->
    <string name="tutorial_double_tap_to_zoom_message_short">Tap 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">Error inflating 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 applications 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 is 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">Tap 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>. Tap to manage the network.</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">Select 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 configure</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...</string>
    <!-- Text for progress dialog while unmounting SD card [CHAR LIMIT=NONE] -->
    <string name="progress_unmounting" product="default">Unmounting SD card...</string>
    <!-- Text for progress dialog while erasing USB storage volume [CHAR LIMIT=NONE] -->
    <string name="progress_erasing" product="nosdcard">Erasing USB storage...</string>
    <!-- Text for progress dialog while erasing SD card [CHAR LIMIT=NONE] -->
    <string name="progress_erasing" product="default">Erasing SD card...</string>
    <!-- Text for message to user that an error happened when formatting USB storage [CHAR LIMIT=NONE] -->
    <string name="format_error" product="nosdcard">Failed to 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">Failed to 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>

    <!-- 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 would you like 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">Select an account</string>

    <!-- NumberPicker - accessibility support -->
    <!-- Description of the button to increment the NumberPicker value. [CHAR LIMIT=NONE] -->
    <string name="number_picker_increment_button">Increment</string>
    <!-- Description of the button to decrement the NumberPicker value. [CHAR LIMIT=NONE] -->
    <string name="number_picker_decrement_button">Decrement</string>

    <!-- CheckBox - accessibility support -->
    <!-- Description of the checked state of a CheckBox. [CHAR LIMIT=NONE] -->
    <string name="checkbox_checked">checked</string>
    <!-- Description of the not checked state of a CheckBox. [CHAR LIMIT=NONE] -->
    <string name="checkbox_not_checked">not checked</string>

    <!-- RadioButton/CheckedTextView - accessibility support -->
    <!-- Description of the selected state of a RadioButton. [CHAR LIMIT=NONE] -->
    <string name="radiobutton_selected">selected</string>
    <!-- Description of the not selected state of a RadioButton. [CHAR LIMIT=NONE] -->
    <string name="radiobutton_not_selected">not selected</string>

    <!-- Switch - accessibility support -->
    <!-- Description of the on state of a Switch. [CHAR LIMIT=NONE] -->
    <string name="switch_on">on</string>
    <!-- Description of the off state of a Switch. [CHAR LIMIT=NONE] -->
    <string name="switch_off">off</string>

    <!-- ToggleButton - accessibility support -->
    <!-- Description of the pressed state of a ToggleButton. [CHAR LIMIT=NONE] -->
    <string name="togglebutton_pressed">pressed</string>
    <!-- Description of the not pressed state of a ToggleButton. [CHAR LIMIT=NONE] -->
    <string name="togglebutton_not_pressed">not pressed</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">usage exceeds <xliff:g id="size" example="3.8GB">%s</xliff:g></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 body when data usage has exceeded limit threshold, and has been disabled. [CHAR LIMIT=32] -->
    <string name="data_usage_limit_body">tap 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 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>

    <!-- 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">Select 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>

</resources>
