<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    Copyright (C) 2018 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="assist_action_play_label" msgid="6278705468288338172">"Пусти"</string>
    <string name="action_mute_short" msgid="5239851786101022633">"Игнориши"</string>
    <string name="action_mute_long" msgid="6846675719189989477">"Игнориши конверзацију"</string>
    <string name="action_unmute_short" msgid="7157822835069715986">"Опозови игнорисање"</string>
    <string name="action_unmute_long" msgid="22482625837159466">"Опозови игнорисање конверзације"</string>
    <string name="action_canned_reply" msgid="4045960823021872834">"„Тренутно возим.“"</string>
    <string name="canned_reply_message" msgid="7959257272917598063">"Тренутно возим."</string>
    <string name="toast_message_sent_success" msgid="1159956191974273064">"Порука је послата."</string>
    <string name="notification_service_label" msgid="7512186049723777468">"Услуга праћења обавештења о аутомобилу"</string>
    <string name="notifications" msgid="2865534625906329283">"Центар за обавештења"</string>
    <string name="clear_all" msgid="1845314281571237722">"Обриши све"</string>
    <string name="ellipsized_string" msgid="6993649229498857557">"…"</string>
    <string name="show_more" msgid="7291378544926443344">"Прикажи више"</string>
    <string name="notification_header" msgid="324550431063568049">"Обавештења"</string>
    <string name="empty_notification_header" msgid="4928379791607839720">"Нема обавештења"</string>
    <string name="show_less" msgid="7342677676229302829">"Прикажи мање"</string>
    <string name="show_count_more" msgid="480555295700318609">"Прикажи још <xliff:g id="COUNT">%d</xliff:g>"</string>
    <string name="message_unshown_count" msgid="2234421277246741233">" и још <xliff:g id="COUNT">%d</xliff:g>"</string>
    <plurals name="restricted_message_text" formatted="false" msgid="507312322886633308">
      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> нова порука</item>
      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> нове поруке</item>
      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> нових порука</item>
    </plurals>
    <string name="manage_text" msgid="4225197445283791757">"Управљајте"</string>
</resources>
