<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2016 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:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="app_name" msgid="963247385700831716">"Lagerstyring"</string>
    <string name="cancel" msgid="7021218262867558825">"Annuller"</string>
    <string name="storage_menu_free" msgid="1878247401436882778">"Frigør plads"</string>
    <string name="deletion_helper_title" msgid="7928959984891140427">"Vælg elementer, du vil fjerne"</string>
    <string name="deletion_helper_app_summary" msgid="4904590040180275237">"<xliff:g id="DAYS">%1$d</xliff:g> dage siden"</string>
    <!-- no translation found for deletion_helper_app_summary_item_size (3770886184921427886) -->
    <skip />
    <string name="deletion_helper_app_summary_never_used" msgid="2695210890063792461">"Ikke anvendt inden for det seneste år"</string>
    <string name="deletion_helper_app_summary_unknown_used" msgid="8576377054665785558">"Seneste anvendelsestidspunkt er ukendt"</string>
    <string name="deletion_helper_free_button" msgid="1760529213407548661">"Frigør <xliff:g id="FREEABLE">%1$s</xliff:g>"</string>
    <string name="deletion_helper_photos_title" msgid="8694284659307845664">"Billeder og videoer (<xliff:g id="NUM_ITEMS">%1$d</xliff:g>)"</string>
    <!-- no translation found for deletion_helper_photos_summary (3194825464552700889) -->
    <skip />
    <string name="deletion_helper_downloads_title" msgid="2976599380628177756">"Downloads (<xliff:g id="NUMITEMS">%1$d</xliff:g>)"</string>
    <!-- no translation found for deletion_helper_downloads_category_summary (8545989355108311347) -->
    <skip />
    <string name="deletion_helper_downloads_file_summary" msgid="2610952169093565355">"<xliff:g id="USED">%1$s</xliff:g> • <xliff:g id="DAYS">%2$s</xliff:g>"</string>
    <!-- no translation found for deletion_helper_downloads_summary_empty (3988054032360371887) -->
    <skip />
    <string name="deletion_helper_clear_dialog_message" msgid="4896104662649947320">"<xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> ryddes fra din enhed"</string>
    <string name="deletion_helper_clear_dialog_remove" msgid="3386502418767917932">"Fjern"</string>
    <string name="deletion_helper_upsell_title" msgid="8512037674466762017">"Vil du administrere lagerplads automatisk?"</string>
    <string name="deletion_helper_upsell_summary" msgid="2301597713694474407">"Der er nu frigivet <xliff:g id="USED">%1$s</xliff:g>. Vil du automatisk lade Lagerstyring frigøre plads ved at fjerne sikkerhedskopieret indhold fra dine enheder?"</string>
    <string name="deletion_helper_upsell_cancel" msgid="7084167642850053889">"Nej tak"</string>
    <string name="deletion_helper_upsell_activate" msgid="7157360257760895976">"Aktivér"</string>
    <string name="deletion_helper_apps_group_title" msgid="6554321362396920050">"Apps (<xliff:g id="NUM_ITEMS">%1$d</xliff:g>)"</string>
    <!-- no translation found for deletion_helper_apps_group_summary (360315517252452356) -->
    <skip />
    <string name="deletion_helper_automatic_title" msgid="4610119358490679299">"Automatisk"</string>
    <string name="deletion_helper_manual_title" msgid="3905192395039688529">"Manuel"</string>
    <string name="deletion_helper_preference_title" msgid="803484286872745892">"Frigør plads nu"</string>
    <string name="automatic_storage_manager_service_label" msgid="648592272375278978">"Tjeneste til automatisk lagerstyring"</string>
    <string name="automatic_storage_manager_notification_title" msgid="8480483265300964701">"Der er kun lidt plads på din telefon"</string>
    <string name="automatic_storage_manager_notification_summary" msgid="2267399886362245822">"Lad Lagerstyring frigøre plads ved automatisk at fjerne gamle billeder og videoer, når din telefon begynder at blive fuld igen."</string>
    <string name="automatic_storage_manager_cancel_button" msgid="1826365037494962803">"Nej tak"</string>
    <string name="automatic_storage_manager_activate_button" msgid="6257070263061898041">"Aktivér"</string>
    <string name="deletion_helper_photos_loading_title" msgid="5411813715495227745">"Billeder og videoer"</string>
    <string name="deletion_helper_photos_loading_summary" msgid="8203033249458245854">"Finder elementer…"</string>
    <string name="deletion_helper_clear_dialog_message_first_time" msgid="386144597646356521">"<xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> ryddes fra din enhed"</string>
    <string name="automatic_storage_manager_activation_warning" msgid="7657017408180001078">"Din lagerplads administreres nu af lageradministratoren"</string>
</resources>
