# Italian translation for gst-plugins-ugly package of GStreamer project.
# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 GStreamer core team
# This file is distributed under the same license as the gst-plugins-ugly package.
# Luca Ferretti <elle.uca@infinito.it>, 2007, 2008, 2009.Luca Ferretti <elle.uca@infinito.it>, 2009.
# Sebastiano Pistore <sebastianopistore.info@protonmail.ch>", 2017.
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-ugly 1.10.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2018-10-02 23:04+0100\n"
"PO-Revision-Date: 2017-09-15 09:56+0200\n"
"Last-Translator: Sebastiano Pistore <sebastianopistore.info@protonmail.ch>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 2.0.3\n"

msgid "Could not read from CD."
msgstr "Impossibile leggere dal CD."

msgid "Could not open CD device for reading."
msgstr "Impossibile aprire il dispositivo CD in lettura."

msgid "Disc is not an Audio CD."
msgstr "Il disco non è un CD audio."

msgid "Could not open DVD"
msgstr "Impossibile aprire il DVD"

#, c-format
msgid "Could not open DVD title %d"
msgstr "Impossibile aprire il titolo %d del DVD"

# go --> open (più comune in italiano)
#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr "Apertura del capitolo %d del titolo %d del DVD non riuscita"

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr ""
"Impossibile aprire il titolo %d del DVD. I titoli interattivi non sono "
"supportati da questo elemento"

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""
"Impossibile leggere il DVD. Questo potrebbe essere dovuto al fatto che il "
"DVD è crittografato ed all'assenza nel sistema di una libreria di decodifica "
"DVD."

msgid "Could not read DVD."
msgstr "Impossibile leggere il DVD."

# NEW
msgid "This stream contains no data."
msgstr "Questo flusso non contiene dati."

#~ msgid ""
#~ "Failed to configure LAME mp3 audio encoder. Check your encoding "
#~ "parameters."
#~ msgstr ""
#~ "Configurazione dell'encoder LAME mp3 non riuscita. Verificare i parametri "
#~ "di codifica."

# NEW
#~ msgid ""
#~ "The requested bitrate %d kbit/s for property '%s' is not allowed. The "
#~ "bitrate was changed to %d kbit/s."
#~ msgstr ""
#~ "Il bitrate richiesto di %d kbit/s per la proprietà «%s» non è consentito. "
#~ "Il bitrate è stato cambiato a %d kbit/s."

#~ msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
#~ msgstr ""
#~ "Configurazione dell'encoder TwoLAME non riuscita. Verificare i parametri "
#~ "di codifica."

#~ msgid "Invalid title information on DVD."
#~ msgstr "Informazioni del titolo non valide sul DVD."

#~ msgid "Could not read title information for DVD."
#~ msgstr "Impossibile leggere le informazioni del titolo per il DVD."

#~ msgid "Failed to open DVD device '%s'."
#~ msgstr "Apertura del device DVD «%s» non riuscita."

#~ msgid "Failed to set PGC based seeking."
#~ msgstr "Impostazione del posizionamento basato su PGC non riuscita."

#~ msgid "Internal data stream error."
#~ msgstr "Errore interno dello stream di dati."
