<?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">"Prihvaćeno: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_declined" msgid="1171426219920875691">"Odbijeno: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_tentative" msgid="5057443956630531997">"Probno: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_canceled" msgid="3913922862382539900">"Otkazano: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_updated" msgid="5960663236439072658">"Ažurirano: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_when" msgid="1905576664682173880">"Kad: <xliff:g id="WHEN">%s</xliff:g>"</string>
    <string name="meeting_where" msgid="6498631574145121862">"Gdje: <xliff:g id="WHERE">%s</xliff:g>"</string>
    <string name="meeting_recurring" msgid="2752008481765880928">"Kada: <xliff:g id="EVENTDATE">%s</xliff:g> (ponavljanje)"</string>
    <string name="meeting_allday" msgid="7251209063071628040">"Kada: <xliff:g id="EVENTDATE">%s</xliff:g> (cijeli dan)"</string>
    <string name="meeting_allday_recurring" msgid="4545762363537362545">"Kada: <xliff:g id="EVENTDATE">%s</xliff:g> (cijeli dan, ponavlja se)"</string>
    <string name="app_name" msgid="1707639359526090662">"Exchange Services"</string>
    <string name="exception_cancel" msgid="8972887597771126871">"Ovaj je događaj otkazan za: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="exception_updated" msgid="329192591551400871">"Pojedinosti ovog događaja promijenjene su za: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="policy_dont_allow_storage_cards" msgid="1305111581282078881">"Ne dopusti memorijske kartice"</string>
    <string name="policy_dont_allow_unsigned_apps" msgid="7663879438028397642">"Ne dopusti nepotpisane aplikacije"</string>
    <string name="policy_dont_allow_unsigned_installers" msgid="8227232531632246827">"Ne dopusti instal. prog. nepotpis. apl."</string>
    <string name="policy_dont_allow_wifi" msgid="8501275982154914194">"Ne dopusti Wi-Fi"</string>
    <string name="policy_dont_allow_text_messaging" msgid="860590081742537792">"Ne dopusti slanje SMS poruka"</string>
    <string name="policy_dont_allow_pop_imap" msgid="5772539239469636191">"Ne dopusti POP3 ili IMAP račune"</string>
    <string name="policy_dont_allow_irda" msgid="8230803019935893114">"Ne dopusti infracrvenu komunikaciju"</string>
    <string name="policy_dont_allow_html" msgid="3909470006782362967">"Ne dopusti e-poštu u HTML-u"</string>
    <string name="policy_dont_allow_browser" msgid="241728112385525092">"Ne dopusti preglednike"</string>
    <string name="policy_dont_allow_consumer_email" msgid="2473755560531860915">"Ne dopusti potrošačku e-poštu"</string>
    <string name="policy_dont_allow_internet_sharing" msgid="8926902533477728994">"Ne dopusti dijeljenje na internetu"</string>
    <string name="policy_require_smime" msgid="6445017199744800426">"Zahtijevaj SMIME poruke"</string>
    <string name="policy_bluetooth_restricted" msgid="2877695021606992022">"Ograniči upotrebu Bluetootha"</string>
    <string name="policy_app_blacklist" msgid="6955451921925210944">"Odbaci navedene aplikacije"</string>
    <string name="policy_app_whitelist" msgid="73673250614393830">"Dopusti samo navedene aplikacije"</string>
    <string name="policy_text_truncation" msgid="2098855720139889616">"Ograniči veličinu tekstualne e-pošte"</string>
    <string name="policy_html_truncation" msgid="4913206221060438112">"Ograniči veličinu e-pošte u HTML-u"</string>
    <string name="policy_require_sd_encryption" msgid="3911913080904633038">"Zahtijevaj enkripciju SD kartice"</string>
    <string name="policy_dont_allow_attachments" msgid="8422502533001368811">"Ne dopusti privitke"</string>
    <string name="policy_max_attachment_size" msgid="8872049367518056209">"Ograniči veličinu privitka"</string>
    <string name="policy_require_manual_sync_roaming" msgid="4779633041935012627">"Dopusti samo ručnu sinkr. u roamingu"</string>
    <string name="policy_require_encryption" msgid="4176146021220010140">"Zahtijevaj enkripciju uređaja"</string>
    <string name="account_setup_options_mail_window_auto" msgid="7407981634952005775">"Automatski"</string>
    <string name="account_setup_options_mail_window_1day" msgid="4169162439752592189">"Jedan dan"</string>
    <string name="account_setup_options_mail_window_3days" msgid="2330167870774583574">"Tri dana"</string>
    <string name="account_setup_options_mail_window_1week" msgid="5066291978475859713">"Jedan tjedan"</string>
    <string name="account_setup_options_mail_window_2weeks" msgid="2127842445792663461">"Dva tjedna"</string>
    <string name="account_setup_options_mail_window_1month" msgid="4785039795926771180">"Jedan mjesec"</string>
    <string name="account_setup_options_mail_window_all" msgid="4794683936065721438">"Sve"</string>
    <string name="auth_error_notification_title" msgid="6768042010440968454">"Pogreška autentifikacije"</string>
    <string name="auth_error_notification_text" msgid="3590528965691740509">"Dodirnite da biste uredili postavke računa za <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
    <string name="email_settings_not_available" msgid="59579952494440349">"Ponovno omogući aplikaciju E-pošta radi prikaza postavki."</string>
</resources>
