<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2017-2020 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">Oppdaterer</string>
    <string name="display_name">Oppdaterer</string>
    <string name="verification_failed_notification">Bekreftelse mislyktes</string>
    <string name="verifying_download_notification">Bekrefter oppdatering</string>
    <string name="downloading_notification">Laster ned</string>
    <string name="download_paused_notification">Nedlasting pauset</string>
    <string name="download_paused_error_notification">Nedlastingsfeil</string>
    <string name="download_completed_notification">Nedlasting fullført</string>
    <string name="download_starting_notification">Starter nedlasting</string>
    <string name="update_failed_notification">Oppdatering feilet</string>
    <string name="new_updates_found_title">Nye oppdateringer</string>
    <string name="text_download_speed">%1$s, %2$s/s</string>
    <string name="pause_button">Pause</string>
    <string name="resume_button">Gjenoppta</string>
    <string name="installing_update">Installerer oppdateringspakke</string>
    <string name="installing_update_error">Installasjonsfeil</string>
    <string name="installing_update_finished">Oppdatering installert</string>
    <string name="finalizing_package">Fullfører pakkeinstallsjon</string>
    <string name="preparing_ota_first_boot">Forbereder første oppstart</string>
    <string name="dialog_prepare_zip_message">Forhåndsregler tas før oppdatering</string>
    <string name="reboot">Start på nytt</string>
    <string name="menu_refresh">Oppdater</string>
    <string name="menu_preferences">Innstillinger</string>
    <string name="menu_auto_updates_check">Auto-oppdateringssjekk</string>
    <string name="menu_auto_delete_updates">Slett oppdateringer når installert</string>
    <string name="menu_delete_update">Slett</string>
    <string name="menu_copy_url">Kopier nettadresse</string>
    <string name="menu_export_update">Eksporter oppdatering</string>
    <string name="snack_updates_found">Nye oppdateringer funnet</string>
    <string name="snack_no_updates_found">Ingen nye oppdateringer funnet</string>
    <string name="snack_updates_check_failed">Oppdateringssjekken mislyktes. Sjekk din internettilkobling og prøv igjen senere.</string>
    <string name="snack_download_failed">Nedlastingen mislyktes. Sjekk din internettilkobling og prøv igjen senere.</string>
    <string name="snack_download_verification_failed">Oppdateringsbekreftelsen mislyktes.</string>
    <string name="snack_download_verified">Nedlasting fullført.</string>
    <string name="snack_update_not_installable">Denne oppdateringen kan ikke installeres over gjeldende installasjon.</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">Sist sjekket: <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">Bekrefter oppdatering</string>
    <string name="list_no_updates">Ingen nye programvareoppdateringer funnet. For å se etter oppdateringer manuelt, bruk Oppdater-knappen.</string>
    <string name="action_download">Last ned</string>
    <string name="action_pause">Sett på pause</string>
    <string name="action_resume">Fortsett</string>
    <string name="action_install">Installer</string>
    <string name="action_info">Info</string>
    <string name="action_delete">Slett</string>
    <string name="action_cancel">Avbryt</string>
    <string name="confirm_delete_dialog_title">Slett fil</string>
    <string name="confirm_delete_dialog_message">Slett valgt oppdateringsfil?</string>
    <string name="apply_update_dialog_title">Installer oppdatering</string>
    <string name="cancel_installation_dialog_message">Vil du avbryte installasjonen?</string>
    <string name="label_download_url">Last ned nettadresse</string>
    <string name="toast_download_url_copied">Nettadresse kopiert</string>
    <string name="dialog_export_title">Eksporterer oppdatering</string>
    <string name="notification_export_success">Oppdatering eksportert</string>
    <string name="notification_export_fail">Eksporteringsfeil</string>
    <string name="toast_already_exporting">Eksporterer allerede en oppdatering</string>
    <string name="update_on_mobile_data_title">Advarsel</string>
    <string name="update_on_mobile_data_message">Du er i ferd med å laste ned en oppdateringspakke ved bruk av mobildata, noe som antagelig vil forårsake høy databruk. Ønsker du å fortsette?</string>
    <string name="checkbox_mobile_data_warning">Ikke vis igjen</string>
    <string name="menu_mobile_data_warning">Advarsel for mobildata</string>
    <string name="blocked_update_dialog_title">Oppdatering blokkert</string>
    <string name="blocked_update_dialog_message">Denne oppdateringen kan ikke installeres med oppdateringsappen. Les <xliff:g id="info_url">%1$s</xliff:g> for mer informasjon.</string>
    <string name="new_updates_channel_title">Nye oppdateringer</string>
    <string name="update_failed_channel_title">Oppdatering feilet</string>
</resources>
