<?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="many"><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>
