<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2017-2023 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">Fernijer</string>
    <string name="display_name">Fernijer</string>
    <string name="verification_failed_notification">Ferifikaasje mislearre</string>
    <string name="verifying_download_notification">Fernijing ferifiearje</string>
    <string name="downloading_notification">Downloade</string>
    <string name="download_paused_notification">Download pauzearre</string>
    <string name="download_paused_error_notification">Flater by downloaden</string>
    <string name="download_completed_notification">Downloaden foltôge</string>
    <string name="download_starting_notification">Download starte</string>
    <string name="update_failed_notification">Fernijing mislearre</string>
    <string name="installation_suspended_notification">Ynstallaasje ûnderbrutsen</string>
    <string name="new_updates_found_title">Nije fernijingen</string>
    <string name="text_download_speed">%1$s, %2$s/s</string>
    <string name="pause_button">Pauze</string>
    <string name="resume_button">Ferfetsje</string>
    <string name="suspend_button">Underbrekke</string>
    <string name="installing_update">Fernijing ynstallearje</string>
    <string name="installing_update_error">Ynstallaasjeflater</string>
    <string name="installing_update_finished">Fernijing ynstallearre</string>
    <string name="finalizing_package">Ynstallaasje fan het pakket foltôgje</string>
    <string name="preparing_ota_first_boot">Earste start tariede</string>
    <string name="dialog_prepare_zip_message">Fernijing tariede</string>
    <string name="dialog_battery_low_title">Lege batterijspanning</string>
    <string name="dialog_battery_low_message_pct">Jo batterijnivo is te leech, jo moatte op syn minst <xliff:g id="percent_discharging">%1$d</xliff:g>%% batterijkapasiteit hawwe om troch te gean of <xliff:g id="percent_charging">%2$d</xliff:g>%% wylst it opladen.</string>
    <string name="reboot">Opnij starte</string>
    <string name="menu_refresh">Fernije</string>
    <string name="menu_preferences">Foarkarren</string>
    <string name="menu_auto_updates_check">Automatysk kontrolearje op fernijingen</string>
    <string name="menu_auto_updates_check_interval_daily">Ien kear deis</string>
    <string name="menu_auto_updates_check_interval_weekly">Ien kear yn de wike</string>
    <string name="menu_auto_updates_check_interval_monthly">Ien kear yn de moanne</string>
    <string name="menu_auto_updates_check_interval_never">Nea</string>
    <string name="menu_auto_delete_updates">Fernijingen fuortsmite neidat se ynstallearre binne</string>
    <string name="menu_delete_update">Fuortsmite</string>
    <string name="menu_copy_url">URL kopiearje</string>
    <string name="menu_export_update">Fernijing eksportearje</string>
    <string name="menu_show_changelog">Changelog toane</string>
    <string name="menu_ab_perf_mode">Fernijingsproses prioriteit jaan</string>
    <string name="snack_updates_found">Nije fernijingen fûn</string>
    <string name="snack_no_updates_found">Gjin nije fernijingen fûn</string>
    <string name="snack_updates_check_failed">Kin net kontrolearje op fernijingen. Kontrolearje jo ynternetferbining en probearje it letter opnij.</string>
    <string name="snack_download_failed">Downloaden mislearre. Kontrolearje jo ynternetferbining en probearje it letter opnij.</string>
    <string name="snack_download_verification_failed">Ferifikaasje fan de fernijing mislearre.</string>
    <string name="snack_download_verified">Downloaden foltôge.</string>
    <string name="snack_update_not_installable">Dizze fernijing kin net ynstallearre wurde boppe-op de aktuele ferzje.</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">Lêst kontrolearre: <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">Fernijing ferifiearje</string>
    <string name="list_no_updates">Gjin nije fernijingen fûn. Brûk de knop Fernije om hânmjittich te kontrolearjen op nije fernijingen.</string>
    <string name="action_download">Downloade</string>
    <string name="action_pause">Pauzeearje</string>
    <string name="action_resume">Ferfetsje</string>
    <string name="action_install">Ynstallearje</string>
    <string name="action_info">Ynformaasje</string>
    <string name="action_delete">Fuortsmite</string>
    <string name="action_cancel">Annulearje</string>
    <string name="confirm_delete_dialog_title">Bestân fuortsmite</string>
    <string name="confirm_delete_dialog_message">Selektearre fernijingsbestân fuortsmite?</string>
    <string name="apply_update_dialog_title">Fernijing tapasse</string>
    <string name="cancel_installation_dialog_message">Ynstallaasje annulearje?</string>
    <string name="label_download_url">Download-URL</string>
    <string name="toast_download_url_copied">URL kopiearre</string>
    <string name="dialog_export_title">Fernijing eksportearje</string>
    <string name="notification_export_success">Fernijing eksportearre</string>
    <string name="notification_export_fail">Flater by eksportearjen</string>
    <string name="toast_already_exporting">Der wurdt al in fernijing eksportearre</string>
    <plurals name="eta_seconds">
        <item quantity="one">1 sekonde restearjend</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> sekonden restearjend</item>
    </plurals>
    <plurals name="eta_minutes">
        <item quantity="one">1 minút restearjend</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> minuten restearjend</item>
    </plurals>
    <plurals name="eta_hours">
        <item quantity="one">1 oer restearjend</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> oer restearjend</item>
    </plurals>
    <string name="update_over_metered_network_title">Warskôging</string>
    <string name="checkbox_metered_network_warning">Net opnij toane</string>
    <string name="blocked_update_dialog_title">Fernijing blokkearre</string>
    <string name="blocked_update_dialog_message">Dizze fernijing kin net ynstallearre wurde mei heulp fan de fernijings-app. Lês <xliff:g id="info_url">%1$s</xliff:g> foar mear ynformaasje.</string>
    <string name="export_channel_title">Eksportearjen foltôge</string>
    <string name="new_updates_channel_title">Nije fernijingen</string>
    <string name="ongoing_channel_title">Aktuele downloads</string>
    <string name="update_failed_channel_title">Fernijing mislearre</string>
</resources>
