# Përkthimi i mesazheve të gst-plugins në shqip.
# Copyright (C) 2004 Free Software Foundation, Inc.
# Laurent Dhima <laurenti@alblinux.net>, 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: gst-plugins 0.8.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
"POT-Creation-Date: 2016-06-09 11:24+0300\n"
"PO-Revision-Date: 2004-08-07 20:29+0200\n"
"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
"Language-Team: Albanian <begraj@hotmail.com>\n"
"Language: sq\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#, fuzzy
msgid "Could not read from CD."
msgstr "I pamundur shkrimi tek file \"%s\"."

msgid "Could not open CD device for reading."
msgstr "I pamundur hapja e dispozitivit CD për lexim."

#, fuzzy
msgid "Disc is not an Audio CD."
msgstr "Dispozitivi nuk është hapur."

msgid "Could not open DVD"
msgstr ""

#, fuzzy, c-format
msgid "Could not open DVD title %d"
msgstr "E pamundur mbyllja e file vfs \"%s\"."

#, c-format
msgid "Failed to go to chapter %d of DVD title %d"
msgstr ""

#, c-format
msgid ""
"Could not open DVD title %d. Interactive titles are not supported by this "
"element"
msgstr ""

msgid ""
"Could not read DVD. This may be because the DVD is encrypted and a DVD "
"decryption library is not installed."
msgstr ""

#, fuzzy
msgid "Could not read DVD."
msgstr "I pamundur shkrimi tek file \"%s\"."

msgid ""
"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
msgstr ""

#, c-format
msgid ""
"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
"bitrate was changed to %d kbit/s."
msgstr ""

msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
msgstr ""

msgid "This stream contains no data."
msgstr ""

msgid "Internal data stream error."
msgstr ""

#, fuzzy
#~ msgid "Could not read title information for DVD."
#~ msgstr "I pamundur shkrimi tek file \"%s\"."

#, fuzzy
#~ msgid "Failed to open DVD device '%s'."
#~ msgstr "E pamundur mbyllja e file vfs \"%s\"."

#~ msgid "Could not open file \"%s\" for writing."
#~ msgstr "E pamundur hapja e file \"%s\" në shkrim."

#~ msgid "Error closing file \"%s\"."
#~ msgstr "Gabim gjatë mbylljes së file \"%s\"."

#~ msgid "Could not open file \"%s\" for reading."
#~ msgstr "E pamundur hapja e file \"%s\" për lexim."

#~ msgid "No filename specified."
#~ msgstr "Nuk është përcaktuar emri i file."

#~ msgid "No or invalid input audio, AVI stream will be corrupt."
#~ msgstr "Input audio i gabuar ose mungon, stream AVI mund të jetë i dëmtuar."

#~ msgid "Could not open audio device \"%s\" for writing."
#~ msgstr "E pamundur hapja e dispozitivit të zërit \"%s\" për shkrim."

#~ msgid "Could not open control device \"%s\" for writing."
#~ msgstr "E pamundur hapja e dispozitivit të kontrollit \"%s\" për shkrim."

#~ msgid "Could not configure audio device \"%s\"."
#~ msgstr "I pamundur konfigurimi i dispozitivit të zërit \"%s\"."

#~ msgid "Could not set audio device \"%s\" to %d Hz."
#~ msgstr "I pamundur rregullimi i dispozitivit audio \"%s\" në %d Hz."

#~ msgid "Could not close audio device \"%s\"."
#~ msgstr "E pamundur mbyllja e dispozitivit audio \"%s\"."

#~ msgid "Could not close control device \"%s\"."
#~ msgstr "E pamundur mbyllja e dispozitivit të kontrollit \"%s\"."

#~ msgid "Could not open video device \"%s\" for writing."
#~ msgstr "E pamundur hapja e dispozitivit video \"%s\" për shkrim."

#~ msgid "Could not close video device \"%s\"."
#~ msgstr "E pamundur mbyllja e dispozitivit video \"%s\"."

#~ msgid "Could not write to device \"%s\"."
#~ msgstr "I pamundur shkrimi në dispozitivin \"%s\"."

#~ msgid "OSS device \"%s\" is already in use by another program."
#~ msgstr ""
#~ "Dispozitivi OSS \"%s\" është duke u përdorur nga një tjetër program."

#~ msgid "Could not access device \"%s\", check its permissions."
#~ msgstr ""
#~ "E pamundur futja në dispozitivin \"%s\", kontrollo të drejtat e tij."

#~ msgid "Device \"%s\" does not exist."
#~ msgstr "Dispozitivi \"%s\" nuk ekziston."

#~ msgid "Could not open device \"%s\" for writing."
#~ msgstr "E pamundur hapja e dispozitivit \"%s\" për shkrim."

#~ msgid "Could not open device \"%s\" for reading."
#~ msgstr "E pamundur hapja e dispozitivit \"%s\" për lexim."

#~ msgid "Your OSS device could not be probed correctly"
#~ msgstr "Dispozitivi juaj OSS mund të mos provohet korrektësisht"

#~ msgid "Volume"
#~ msgstr "Volumi"

#~ msgid "Bass"
#~ msgstr "Bas"

#~ msgid "Treble"
#~ msgstr "Treble"

#~ msgid "Synth"
#~ msgstr "Sintetizuesi"

#~ msgid "PCM"
#~ msgstr "PCM"

#~ msgid "Speaker"
#~ msgstr "Zë folës"

#~ msgid "Line-in"
#~ msgstr "Linja-hyrje"

#~ msgid "Microphone"
#~ msgstr "Mikrofoni"

#~ msgid "CD"
#~ msgstr "CD"

#~ msgid "Mixer"
#~ msgstr "Kontrolli i volumit"

#~ msgid "PCM-2"
#~ msgstr "PCM-2"

#~ msgid "Record"
#~ msgstr "Regjistrimi"

#~ msgid "In-gain"
#~ msgstr "In-gain"

#~ msgid "Out-gain"
#~ msgstr "Out-gain"

#~ msgid "Line-1"
#~ msgstr "Linja-1"

#~ msgid "Line-2"
#~ msgstr "Linja-2"

#~ msgid "Line-3"
#~ msgstr "Linja-3"

#~ msgid "Digital-1"
#~ msgstr "Dixhitale-1"

#~ msgid "Digital-2"
#~ msgstr "Dixhitale-2"

#~ msgid "Digital-3"
#~ msgstr "Dixhitale-3"

#~ msgid "Phone-in"
#~ msgstr "Phone-hyrja"

#~ msgid "Phone-out"
#~ msgstr "Phone-dalja"

#~ msgid "Video"
#~ msgstr "Video"

#~ msgid "Radio"
#~ msgstr "Radio"

#~ msgid "Monitor"
#~ msgstr "Ekrani"

#, fuzzy
#~ msgid "PC Speaker"
#~ msgstr "Zë folës"

#~ msgid "Could not open vfs file \"%s\" for reading."
#~ msgstr "E pamundur hapja e file vfs \"%s\" për lexim."

#, fuzzy
#~ msgid "No filename given."
#~ msgstr "Nuk është dhënë asnjë emër file"

#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "E pamundur hapja e file vfs \"%s\" për shkrim: %s."

#~ msgid "No filename given"
#~ msgstr "Nuk është dhënë asnjë emër file"

#, fuzzy
#~ msgid "Your OSS device doesn't support mono or stereo."
#~ msgstr "Dispozitivi juaj OSS mund të mos provohet korrektësisht"

#~ msgid "No device specified."
#~ msgstr "Nuk është përcaktuar asnjë dispozitiv."

#~ msgid "Could not open device \"%s\" for reading and writing."
#~ msgstr "E pamundur hapja e dispozitivit \"%s\" për lexim dhe shkrim."

#~ msgid "Device is open."
#~ msgstr "Dispozitivi është i hapur."

#~ msgid "Device \"%s\" is not a capture device."
#~ msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje."

#~ msgid "Could not get buffers from device \"%s\"."
#~ msgstr "E pamundur marrja e buffers nga dispozitivi \"%s\"."

#~ msgid "Could not get enough buffers from device \"%s\"."
#~ msgstr "E pamundur marrja e buffers të mjaftueshëm nga dispozitivi \"%s\"."

#~ msgid ""
#~ "The %s element could not be found. This element is essential for "
#~ "playback. Please install the right plug-in and verify that it works by "
#~ "running 'gst-inspect %s'"
#~ msgstr ""
#~ "E pamundur gjetja e elementit %s. Ky element është thelbësor për "
#~ "playback. Ju lutem instaloni plug-in e duhur dhe kontrollo funksionimin "
#~ "duke ekzekutuar 'gst-inspect %s'"

#~ msgid ""
#~ "No usable colorspace element could be found.\n"
#~ "Please install one and restart."
#~ msgstr ""
#~ "Nuk arrin të gjehet asnjë element ngjyra e hapësirës.\n"
#~ "Ju lutem instaloni një dhe rinisni."
