# Czech translation for ModemManager.
# Copyright (C) 2017 ModemManager's COPYRIGHT HOLDER
# This file is distributed under the same license as the ModemManager package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Marek Černocký <marek@manet.cz>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: ModemManager master\n"
"Report-Msgid-Bugs-To: modemmanager-devel@lists.freedesktop.org\n"
"POT-Creation-Date: 2017-10-22 11:32+0200\n"
"PO-Revision-Date: 2017-10-21 15:32+0200\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: čeština <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Gtranslator 2.91.7\n"

#: data/org.freedesktop.ModemManager1.policy.in.in:13
msgid "Control the Modem Manager daemon"
msgstr "Ovládat démona pro správu modemů"

#: data/org.freedesktop.ModemManager1.policy.in.in:14
msgid "System policy prevents controlling the Modem Manager."
msgstr "Systémová zásada brání v ovládání Správy modemů."

#: data/org.freedesktop.ModemManager1.policy.in.in:22
msgid "Unlock and control a mobile broadband device"
msgstr "Odemykat a ovládat mobilní širokopásmové zařízení"

#: data/org.freedesktop.ModemManager1.policy.in.in:23
msgid ""
"System policy prevents unlocking or controlling the mobile broadband device."
msgstr ""
"Systémová zásada brání v odemknutí nebo v ovládání mobilního širokopásmového "
"zařízení."

#: data/org.freedesktop.ModemManager1.policy.in.in:31
msgid "Add, modify, and delete mobile broadband contacts"
msgstr "Přidávat, měnit a mazat kontakty v mobilním zařízení"

#: data/org.freedesktop.ModemManager1.policy.in.in:32
msgid ""
"System policy prevents adding, modifying, or deleting this device's contacts."
msgstr ""
"Systémová zásada brání v přidání, změně nebo smazání kontaktů v tomto "
"zařízení."

#: data/org.freedesktop.ModemManager1.policy.in.in:40
msgid "Send, save, modify, and delete text messages"
msgstr "Odesílat, ukládat, měnit a mazat textové zprávy"

#: data/org.freedesktop.ModemManager1.policy.in.in:41
msgid ""
"System policy prevents sending or manipulating this device's text messages."
msgstr ""
"Systémová zásada brání v odesílání nebo v manipulaci s textovými zprávami na "
"tomto zařízení."

#: data/org.freedesktop.ModemManager1.policy.in.in:49
msgid "Accept incoming voice calls or start outgoing voice calls."
msgstr "Přijímat příchozí hovory nebo začínat odchozí hovory"

#: data/org.freedesktop.ModemManager1.policy.in.in:50
msgid "System policy prevents voice calls."
msgstr "Systémová zásada brání v hlasových hovorech."

#: data/org.freedesktop.ModemManager1.policy.in.in:58
msgid "Enable and view geographic location and positioning information"
msgstr ""
"Povolovat sdělování a zobrazování geografické polohy a informací o pozici"

#: data/org.freedesktop.ModemManager1.policy.in.in:59
msgid ""
"System policy prevents enabling or viewing geographic location information."
msgstr ""
"Systémová zásada brání v povolení sdělování a v zobrazení informací o "
"geografické poloze."

#: data/org.freedesktop.ModemManager1.policy.in.in:67
msgid "Query and utilize network information and services"
msgstr "Dotazovat se na informace o síti a na služby a využívat je"

#: data/org.freedesktop.ModemManager1.policy.in.in:68
msgid ""
"System policy prevents querying or utilizing network information and "
"services."
msgstr ""
"Systémová zásada brání v dotazování na informace o síti a na služby, nebo "
"brání v jejich využívání."

#: data/org.freedesktop.ModemManager1.policy.in.in:76
msgid "Query and manage firmware on a mobile broadband device"
msgstr ""
"Dotazovat se na firmware a spravovat jej na mobilním širokopásmovém zařízení"

#: data/org.freedesktop.ModemManager1.policy.in.in:77
msgid "System policy prevents querying or managing this device's firmware."
msgstr ""
"Systémová zásada brání v dotázání na firmware nebo brání v jeho správě na "
"tomto zařízení."

#: src/mm-sleep-monitor.c:114
msgid "ModemManager needs to reset devices"
msgstr "Správa modemů potřebuje resetovat zařízení"
