<?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="5772529644749041052">"Microsoft Exchange ActiveSync"</string>
    <string name="meeting_accepted" msgid="8796609373330400268">"Accepterat: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_declined" msgid="6707617183246608552">"Avvisat: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_tentative" msgid="8250995722130443785">"Preliminärt: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_canceled" msgid="3949893881872084244">"Inställt: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_updated" msgid="8529675857361702860">"Uppdaterat: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_when" msgid="2765696159697448656">"När: <xliff:g id="WHEN">%s</xliff:g>"</string>
    <string name="meeting_where" msgid="5992367535856553079">"Var: <xliff:g id="WHERE">%s</xliff:g>"</string>
    <string name="meeting_recurring" msgid="3134262212606714023">"När: <xliff:g id="EVENTDATE">%s</xliff:g> (återkommande)"</string>
    <string name="meeting_allday" msgid="6696389765484663513">"När: <xliff:g id="EVENTDATE">%s</xliff:g> (hela dagen)"</string>
    <string name="meeting_allday_recurring" msgid="2320264182781062684">"När: <xliff:g id="EVENTDATE">%s</xliff:g> (hela dagen, återkommande)"</string>
    <string name="notification_exchange_calendar_added" msgid="6823659622379350159">"Exchange-kalendern har lagts till"</string>
    <string name="app_name" msgid="5316597712787122829">"Exchange-tjänster"</string>
    <string name="exception_cancel" msgid="6160117429428313805">"Det här händelsen har ställts in för: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="exception_updated" msgid="3397583105901142050">"Den här händelsens information har ändrats för: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="policy_dont_allow_attachments" msgid="7924303012593832731">"tillåter inte bilagor"</string>
    <string name="policy_dont_allow_storage_cards" msgid="5600453721690619515">"tillåter inte minneskort"</string>
    <string name="policy_dont_allow_unsigned_apps" msgid="7391405270957498716">"tillåter inte osignerade appar"</string>
    <string name="policy_dont_allow_unsigned_installers" msgid="8124763529572916905">"tillåter inte osignerade installationsprog."</string>
    <string name="policy_dont_allow_wifi" msgid="8972952227139360866">"tillåter inte Wi-Fi"</string>
    <string name="policy_dont_allow_text_messaging" msgid="2705534889421216691">"tillåter inte SMS"</string>
    <string name="policy_dont_allow_pop_imap" msgid="1563948038306495433">"tillåter inte POP3-eller IMAP-konton"</string>
    <string name="policy_dont_allow_irda" msgid="2864744455266260846">"tillåter inte infraröd kommunikation"</string>
    <string name="policy_dont_allow_html" msgid="5004059292137838041">"tillåter inte HTML-e-post"</string>
    <string name="policy_dont_allow_browser" msgid="1898383003253987916">"tillåter inte webbläsare"</string>
    <string name="policy_dont_allow_consumer_email" msgid="4208507021679199773">"tillåter inte e-post från konsument"</string>
    <string name="policy_dont_allow_internet_sharing" msgid="8866772202653485379">"tillåter inte Internetdelning"</string>
    <string name="policy_enable_password_recovery" msgid="3082147682445934504">"har stöd för återställningslösenord"</string>
    <string name="policy_require_smime" msgid="8044392674810605617">"kräver SMIME-meddelanden"</string>
    <string name="policy_require_manual_sync_roaming" msgid="7140792029820703854">"tillåter endast manuell synk vid roaming"</string>
    <string name="policy_bluetooth_restricted" msgid="8992284721368381918">"begränsar Bluetooth-användningen"</string>
    <string name="policy_app_blacklist" msgid="5997243461425995435">"tillåter inte vissa appar"</string>
    <string name="policy_app_whitelist" msgid="8401297908870017913">"tillåter endast vissa appar"</string>
    <string name="policy_max_calendar_age" msgid="6394557044887221078">"begränsar datum för kalenderhändelser"</string>
    <string name="policy_max_email_age" msgid="3303242808829681352">"begränsar datum för e-post"</string>
    <string name="policy_text_truncation" msgid="5800480928209379255">"begränsar textstorleken i e-post"</string>
    <string name="policy_html_truncation" msgid="629030762178870832">"begränsar storleken på HTML-e-post"</string>
    <string name="policy_max_attachment_size" msgid="6191034264088052742">"begränsar bilagans storlek"</string>
    <string name="policy_require_encryption" msgid="9370390981258441">"kräver kryptering av enhet eller SD-kort"</string>
    <string name="account_setup_options_mail_window_auto" msgid="4188895354366183790">"Automatisk"</string>
    <string name="account_setup_options_mail_window_1day" msgid="3965715241135811407">"En dag"</string>
    <string name="account_setup_options_mail_window_3days" msgid="736181102295878114">"Tre dagar"</string>
    <string name="account_setup_options_mail_window_1week" msgid="5639718031108023741">"En vecka"</string>
    <string name="account_setup_options_mail_window_2weeks" msgid="4567049268124213035">"Två veckor"</string>
    <string name="account_setup_options_mail_window_1month" msgid="5846359669750047081">"En månad"</string>
    <string name="account_setup_options_mail_window_all" msgid="5372861827683632364">"Alla"</string>
</resources>
