<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
     Copyright (C) 2017 The LineageOS 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">
  <string name="app_name">Updater</string>
  <string name="display_name">Updater</string>
  <!-- Directory where the update files will be downloaded and stored.
         WARNING: The application can and will delete any unknown file. -->
  <!-- Directory where the downloads will be exported to.
         The path is relative to the root of the external storage.-->
  <!--
        Optional placeholders replaced at runtime:
          {device} - Device name
          {type} - Build type
          {incr} - Incremental version
    -->
  <string name="verification_failed_notification">Verification failed</string>
  <string name="verifying_download_notification">Verifying update</string>
  <string name="downloading_notification">Downloading</string>
  <string name="download_paused_notification">Download paused</string>
  <string name="download_paused_error_notification">Download error</string>
  <string name="download_completed_notification">Download completed</string>
  <string name="download_starting_notification">Starting download</string>
  <string name="new_updates_found_title">New updates</string>
  <string name="text_download_speed">%1$s, %2$s/s</string>
  <string name="pause_button">Pause</string>
  <string name="resume_button">Resume</string>
  <string name="installing_update">Installing update package</string>
  <string name="installing_update_error">Install error</string>
  <string name="installing_update_finished">Update installed</string>
  <string name="finalizing_package">Finalising package installation</string>
  <string name="preparing_ota_first_boot">Preparing for first boot</string>
  <string name="dialog_prepare_zip_message">Preliminary update preparation</string>
  <string name="reboot">Reboot</string>
  <string name="menu_refresh">Refresh</string>
  <string name="menu_auto_updates_check">Auto updates check</string>
  <string name="menu_auto_delete_updates">Delete updates when installed</string>
  <string name="menu_delete_update">Delete</string>
  <string name="menu_copy_url">Copy URL</string>
  <string name="menu_export_update">Export update</string>
  <string name="menu_show_changelog">Show changelog</string>
  <string name="snack_updates_found">New updates found</string>
  <string name="snack_no_updates_found">No new updates found</string>
  <string name="snack_updates_check_failed">The update check failed. Please check your internet connection and try again later.</string>
  <string name="snack_download_failed">The download failed. Please check your internet connection and try again later.</string>
  <string name="snack_download_verification_failed">The update verification failed.</string>
  <string name="snack_download_verified">Download completed.</string>
  <string name="snack_update_not_installable">This update can\'t be installed on top of the current build.</string>
  <string name="header_title_text">LineageOS\n%1$s</string>
  <string name="header_android_version">Android <xliff:g id="version" example="7.1.2">%1$s</xliff:g></string>
  <string name="header_last_updates_check">Last checked: <xliff:g id="date" example="1 January 1970">%1$s</xliff:g> (<xliff:g id="time" example="01:23">%2$s</xliff:g>)</string>
  <string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string>
  <string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="July 11, 2017">%2$s</xliff:g></string>
  <string name="list_verifying_update">Verifying update</string>
  <string name="list_no_updates">No new updates found. To manually check for new updates, use the Refresh button.</string>
  <string name="action_download">Download</string>
  <string name="confirm_delete_dialog_title">Delete file</string>
  <string name="confirm_delete_dialog_message">Delete the selected update file?</string>
  <string name="apply_update_dialog_title">Apply update</string>
  <string name="apply_update_dialog_message">You are about to upgrade to <xliff:g id="update_name">%1$s</xliff:g>.\n\nIf you press <xliff:g id="ok">%2$s</xliff:g>, the device will restart itself in recovery mode to install the update.\n\nNote: This feature requires a compatible Recovery or updates will need to be installed manually.</string>
  <string name="apply_update_dialog_message_ab">You are about to upgrade to <xliff:g id="update_name">%1$s</xliff:g>.\n\nIf you press <xliff:g id="ok">%2$s</xliff:g>, the device will begin installing in the background.\n\nOnce completed, you will be prompted to reboot.</string>
  <string name="cancel_installation_dialog_message">Cancel the installation?</string>
  <string name="label_download_url">Download URL</string>
  <string name="toast_download_url_copied">URL Copied</string>
  <string name="dialog_export_title">Exporting update</string>
  <string name="notification_export_success">Update exported</string>
  <string name="notification_export_fail">Export error</string>
  <string name="toast_already_exporting">Already exporting an update</string>
  <plurals name="duration_seconds">
    <item quantity="one">1 second</item>
    <item quantity="other"><xliff:g id="count">%d</xliff:g> seconds</item>
  </plurals>
  <plurals name="duration_minutes">
    <item quantity="one">1 minute</item>
    <item quantity="other"><xliff:g id="count">%d</xliff:g> minutes</item>
  </plurals>
  <plurals name="duration_hours">
    <item quantity="one">1 hour</item>
    <item quantity="other"><xliff:g id="count">%d</xliff:g> hours</item>
  </plurals>
  <string name="update_on_mobile_data_title">Warning</string>
  <string name="update_on_mobile_data_message">You\'re about to download an update package using mobile data which is likely going to cause high data usage. Would you like to proceed?</string>
  <string name="checkbox_mobile_data_warning">Do not show again</string>
  <string name="menu_mobile_data_warning">Mobile data warning</string>
  <string name="blocked_update_dialog_title">Update blocked</string>
  <string name="blocked_update_dialog_message">This update cannot be installed using the updater app.  Please read <xliff:g id="info_url">%1$s</xliff:g> for more information.</string>
  <string name="export_channel_title">Export completion</string>
  <string name="new_updates_channel_title">New updates</string>
  <string name="ongoing_channel_title">Ongoing downloads</string>
</resources>
