<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2008 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="exchange_name_alternate" msgid="293118547772095111">"Microsoft Exchange ActiveSync"</string>
    <string name="meeting_accepted" msgid="3212429159225789973">"Accepteret: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_declined" msgid="1171426219920875691">"Afvist: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_tentative" msgid="5057443956630531997">"Foreløbig: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_canceled" msgid="3913922862382539900">"Annulleret: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_updated" msgid="5960663236439072658">"Opdateret: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_when" msgid="1905576664682173880">"Hvornår: <xliff:g id="WHEN">%s</xliff:g>"</string>
    <string name="meeting_where" msgid="6498631574145121862">"Hvor: <xliff:g id="WHERE">%s</xliff:g>"</string>
    <string name="meeting_recurring" msgid="2752008481765880928">"Hvornår: <xliff:g id="EVENTDATE">%s</xliff:g> (flere gange)"</string>
    <string name="meeting_allday" msgid="7251209063071628040">"Hvornår: <xliff:g id="EVENTDATE">%s</xliff:g> (hele dagen)"</string>
    <string name="meeting_allday_recurring" msgid="4545762363537362545">"Hvornår: <xliff:g id="EVENTDATE">%s</xliff:g> (hele dagen, tilbagevendende)"</string>
    <string name="app_name" msgid="1707639359526090662">"Exchange-tjenester"</string>
    <string name="exception_cancel" msgid="8972887597771126871">"Denne begivenhed er annulleret for: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="exception_updated" msgid="329192591551400871">"Oplysningerne om denne begivenhed er ændret for: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="policy_dont_allow_storage_cards" msgid="1305111581282078881">"Tillad ikke hukommelseskort"</string>
    <string name="policy_dont_allow_unsigned_apps" msgid="7663879438028397642">"Tillad ikke usignerede apps"</string>
    <string name="policy_dont_allow_unsigned_installers" msgid="8227232531632246827">"Tillad ikke usignerede app-installationsprogrammer"</string>
    <string name="policy_dont_allow_wifi" msgid="8501275982154914194">"Tillad ikke Wi-Fi"</string>
    <string name="policy_dont_allow_text_messaging" msgid="860590081742537792">"Tillad ikke sms-beskeder"</string>
    <string name="policy_dont_allow_pop_imap" msgid="5772539239469636191">"Tillad ikke POP3- eller IMAP-konti"</string>
    <string name="policy_dont_allow_irda" msgid="8230803019935893114">"Tillad ikke infrarød kommunikation"</string>
    <string name="policy_dont_allow_html" msgid="3909470006782362967">"Tillad ikke e-mail i HTML"</string>
    <string name="policy_dont_allow_browser" msgid="241728112385525092">"Tillad ikke browsere"</string>
    <string name="policy_dont_allow_consumer_email" msgid="2473755560531860915">"Tillad ikke e-mail fra tredjepart"</string>
    <string name="policy_dont_allow_internet_sharing" msgid="8926902533477728994">"Tillad ikke internetdeling"</string>
    <string name="policy_require_smime" msgid="6445017199744800426">"Kræv SMIME-meddelelser"</string>
    <string name="policy_bluetooth_restricted" msgid="2877695021606992022">"Begræns brugen af bluetooth"</string>
    <string name="policy_app_blacklist" msgid="6955451921925210944">"Tillad ikke angivne apps"</string>
    <string name="policy_app_whitelist" msgid="73673250614393830">"Tillad kun angivne apps"</string>
    <string name="policy_text_truncation" msgid="2098855720139889616">"Begræns tekststørrelsen for e-mail"</string>
    <string name="policy_html_truncation" msgid="4913206221060438112">"Begræns størrelsen på e-mail i HTML"</string>
    <string name="policy_require_sd_encryption" msgid="3911913080904633038">"Kræv kryptering af SD-kort"</string>
    <string name="policy_dont_allow_attachments" msgid="8422502533001368811">"Tillad ikke vedhæftede filer"</string>
    <string name="policy_max_attachment_size" msgid="8872049367518056209">"Begræns størrelsen på vedhæftede filer"</string>
    <string name="policy_require_manual_sync_roaming" msgid="4779633041935012627">"Tillad kun manuel synkron. under roaming"</string>
    <string name="policy_require_encryption" msgid="4176146021220010140">"Kræv kryptering af enhed"</string>
    <string name="account_setup_options_mail_window_auto" msgid="7407981634952005775">"Automatisk"</string>
    <string name="account_setup_options_mail_window_1day" msgid="4169162439752592189">"En dag"</string>
    <string name="account_setup_options_mail_window_3days" msgid="2330167870774583574">"Tre dage"</string>
    <string name="account_setup_options_mail_window_1week" msgid="5066291978475859713">"En uge"</string>
    <string name="account_setup_options_mail_window_2weeks" msgid="2127842445792663461">"To uger"</string>
    <string name="account_setup_options_mail_window_1month" msgid="4785039795926771180">"En måned"</string>
    <string name="account_setup_options_mail_window_all" msgid="4794683936065721438">"Alle"</string>
    <string name="auth_error_notification_title" msgid="6768042010440968454">"Godkendelsesfejl"</string>
    <string name="auth_error_notification_text" msgid="3590528965691740509">"Tryk for at redigere kontoindstillingerne for <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
    <string name="email_settings_not_available" msgid="59579952494440349">"Genaktiver applikationen Email for at se indstillingerne."</string>
</resources>
