<?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">"Acceptada: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_declined" msgid="1171426219920875691">"Rebutjada: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_tentative" msgid="5057443956630531997">"Provisional: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_canceled" msgid="3913922862382539900">"Cancel·lada: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_updated" msgid="5960663236439072658">"Actualitzada: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_when" msgid="1905576664682173880">"Quan: <xliff:g id="WHEN">%s</xliff:g>"</string>
    <string name="meeting_where" msgid="6498631574145121862">"On: <xliff:g id="WHERE">%s</xliff:g>"</string>
    <string name="meeting_recurring" msgid="2752008481765880928">"Quan: <xliff:g id="EVENTDATE">%s</xliff:g> (periòdica)"</string>
    <string name="meeting_allday" msgid="7251209063071628040">"Quan: <xliff:g id="EVENTDATE">%s</xliff:g> (tot el dia)"</string>
    <string name="meeting_allday_recurring" msgid="4545762363537362545">"Quan: <xliff:g id="EVENTDATE">%s</xliff:g> (tot el dia, periòdic)"</string>
    <string name="notification_exchange_calendar_added" msgid="8998454267739748113">"S\'ha afegit el calendari d\'Exchange."</string>
    <string name="app_name" msgid="1707639359526090662">"Serveis d\'Exchange"</string>
    <string name="exception_cancel" msgid="8972887597771126871">"Aquest esdeveniment s\'ha cancel·lat al dia <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="exception_updated" msgid="329192591551400871">"Els detalls d\'aquest esdeveniment han canviat al dia <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="policy_dont_allow_storage_cards" msgid="1305111581282078881">"No permetis targetes d\'emmagatzematge"</string>
    <string name="policy_dont_allow_unsigned_apps" msgid="7663879438028397642">"No permetis aplicacions no signades"</string>
    <string name="policy_dont_allow_unsigned_installers" msgid="8227232531632246827">"No permetis instal. d\'aplic. no sign."</string>
    <string name="policy_dont_allow_wifi" msgid="8501275982154914194">"No permetis la Wi-Fi"</string>
    <string name="policy_dont_allow_text_messaging" msgid="860590081742537792">"No permetis els missatges de text"</string>
    <string name="policy_dont_allow_pop_imap" msgid="5772539239469636191">"No permetis els comptes POP3 ni IMAP"</string>
    <string name="policy_dont_allow_irda" msgid="8230803019935893114">"No permetis comunicacions per infraroigs"</string>
    <string name="policy_dont_allow_html" msgid="3909470006782362967">"No permetis el correu electrònic HTML"</string>
    <string name="policy_dont_allow_browser" msgid="241728112385525092">"No permetis els navegadors"</string>
    <string name="policy_dont_allow_consumer_email" msgid="2473755560531860915">"No permetis correus electr. de consum."</string>
    <string name="policy_dont_allow_internet_sharing" msgid="8926902533477728994">"No permetis la compartició per Internet"</string>
    <string name="policy_require_smime" msgid="6445017199744800426">"Requereix missatges SMIME"</string>
    <string name="policy_bluetooth_restricted" msgid="2877695021606992022">"Restringeix l\'ús de Bluetooth"</string>
    <string name="policy_app_blacklist" msgid="6955451921925210944">"No permetis aplicacions especificades"</string>
    <string name="policy_app_whitelist" msgid="73673250614393830">"Permet només les aplicacions especif."</string>
    <string name="policy_text_truncation" msgid="2098855720139889616">"Restring. mida de correu electr. de text"</string>
    <string name="policy_html_truncation" msgid="4913206221060438112">"Restringeix mida del correu electr. HTML"</string>
    <string name="policy_require_sd_encryption" msgid="3911913080904633038">"Requereix l\'encriptació de targetes SD"</string>
    <string name="policy_dont_allow_attachments" msgid="8422502533001368811">"No permetis fitxers adjunts"</string>
    <string name="policy_max_attachment_size" msgid="8872049367518056209">"Restringeix la mida del fitxer adjunt"</string>
    <string name="policy_require_manual_sync_roaming" msgid="4779633041935012627">"Permet només sincr. manual en itinerància"</string>
    <string name="policy_require_encryption" msgid="4176146021220010140">"Requereix l\'encriptació del dispositiu"</string>
    <string name="account_setup_options_mail_window_auto" msgid="7407981634952005775">"Automàtic"</string>
    <string name="account_setup_options_mail_window_1day" msgid="4169162439752592189">"Un dia"</string>
    <string name="account_setup_options_mail_window_3days" msgid="2330167870774583574">"Tres dies"</string>
    <string name="account_setup_options_mail_window_1week" msgid="5066291978475859713">"Una setmana"</string>
    <string name="account_setup_options_mail_window_2weeks" msgid="2127842445792663461">"Dues setmanes"</string>
    <string name="account_setup_options_mail_window_1month" msgid="4785039795926771180">"Un mes"</string>
    <string name="account_setup_options_mail_window_all" msgid="4794683936065721438">"Tots"</string>
    <string name="auth_error_notification_title" msgid="6768042010440968454">"Error d\'autenticació"</string>
    <string name="auth_error_notification_text" msgid="3590528965691740509">"Toca per editar la configuració del compte <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
    <string name="email_settings_not_available" msgid="59579952494440349">"Torna a activar l\'aplicació Correu per consultar-ne la configuració."</string>
</resources>
