diff --git a/po/appstream/pt_BR.po b/po/appstream/pt_BR.po index 16ea311ca..c0f05bd36 100644 --- a/po/appstream/pt_BR.po +++ b/po/appstream/pt_BR.po @@ -6,7 +6,7 @@ # Translators: # Jardel Alves , 2019 # Lukáš Lalinský , 2020 -# Mateus Valente , 2020 +# Mateus Valente Bitarães, 2020 # #, fuzzy msgid "" @@ -15,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-01-14 23:03+0100\n" "PO-Revision-Date: 2018-11-25 07:37+0000\n" -"Last-Translator: Mateus Valente , 2020\n" +"Last-Translator: Mateus Valente Bitarães, 2020\n" "Language-Team: Portuguese (Brazil) (https://www.transifex.com/musicbrainz/teams/13846/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/po/ar.po b/po/ar.po index 7994145a5..91c358292 100644 --- a/po/ar.po +++ b/po/ar.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2020-07-14 19:05+0200\n" -"PO-Revision-Date: 2020-07-15 00:25+0000\n" +"POT-Creation-Date: 2020-09-09 08:44+0200\n" +"PO-Revision-Date: 2020-09-09 12:15+0000\n" "Last-Translator: Transifex Bot <>\n" "Language-Team: Arabic (http://www.transifex.com/musicbrainz/musicbrainz/language/ar/)\n" "MIME-Version: 1.0\n" @@ -21,30 +21,30 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: picard/album.py:131 +#: picard/album.py:132 msgid "Unmatched Files" msgstr "الملفات غير المطابقة" -#: picard/album.py:284 +#: picard/album.py:285 #, python-format msgid "[could not load album %s]" msgstr "[تعذّر تحميل الألبوم %s]" -#: picard/album.py:386 +#: picard/album.py:393 #, python-format msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "حُمّل الألبوم %(id)s: ‏%(artist)s - ‏%(album)s" -#: picard/album.py:441 +#: picard/album.py:450 #, python-format msgid "Loading album %(id)s ..." msgstr "يحمّل الألبوم %(id)s..." -#: picard/album.py:445 +#: picard/album.py:454 msgid "[loading album information]" msgstr "[يحمّل معلومات الألبوم]" -#: picard/album.py:653 +#: picard/album.py:662 #, python-format msgid "; %i image" msgid_plural "; %i images" @@ -55,7 +55,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: picard/album.py:656 +#: picard/album.py:665 #, python-format msgid "; %i image not in all tracks" msgid_plural "; %i different images among tracks" @@ -158,27 +158,27 @@ msgstr "" msgid "Merge" msgstr "" -#: picard/config_upgrade.py:98 picard/ui/metadatabox.py:360 -#: picard/ui/options/interface.py:100 picard/ui/ui_options_interface.py:144 +#: picard/config_upgrade.py:98 picard/ui/metadatabox.py:377 +#: picard/ui/options/interface.py:101 picard/ui/ui_options_interface.py:144 msgid "Remove" msgstr "أزِل" -#: picard/file.py:737 +#: picard/file.py:739 #, python-format msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:739 +#: picard/file.py:741 #, python-format msgid "File '%(filename)s' identified!" msgstr "عُرّف الملف ”%(filename)s“!" -#: picard/file.py:751 +#: picard/file.py:753 #, python-format msgid "No matching tracks for file '%(filename)s'" msgstr "لا مقطوعات تطابق الملف ”%(filename)s“" -#: picard/file.py:783 +#: picard/file.py:785 #, python-format msgid "Looking up the metadata for file %(filename)s ..." msgstr "يبحث عن معلومات وصفية للملف %(filename)s..." @@ -251,668 +251,6 @@ msgstr "[لا باركود]" msgid "[no release info]" msgstr "[لا معلومات إصدار]" -#: picard/script.py:584 -msgid "" -"`$if(if,then,else)`\n" -"\n" -"If `if` is not empty, it returns `then`, otherwise it returns `else`." -msgstr "" - -#: picard/script.py:597 -msgid "" -"`$if2(a1,a2,a3,...)`\n" -"\n" -"Returns first non empty argument." -msgstr "" - -#: picard/script.py:610 -msgid "" -"`$noop(...)`\n" -"\n" -"Does nothing (useful for comments or disabling a block of code)." -msgstr "" - -#: picard/script.py:619 -msgid "" -"`$left(text,number)`\n" -"\n" -"Returns the first `number` characters from `text`." -msgstr "" - -#: picard/script.py:631 -msgid "" -"`$right(text,number)`\n" -"\n" -"Returns the last `number` characters from `text`." -msgstr "" - -#: picard/script.py:643 -msgid "" -"`$lower(text)`\n" -"\n" -"Returns `text` in lower case." -msgstr "" - -#: picard/script.py:652 -msgid "" -"`$upper(text)`\n" -"\n" -"Returns `text` in upper case." -msgstr "" - -#: picard/script.py:661 -msgid "" -"`$pad(text,length,char)`\n" -"\n" -"Pads the `text` to the `length` provided by adding as many copies of `char` as\n" -" needed to the **beginning** of the string." -msgstr "" - -#: picard/script.py:674 -msgid "" -"`$strip(text)`\n" -"\n" -"Replaces all whitespace in `text` with a single space, and removes leading and trailing spaces.\n" -"Whitespace characters include multiple consecutive spaces, and various other unicode characters." -msgstr "" - -#: picard/script.py:684 -msgid "" -"`$replace(text,search,replace)`\n" -"\n" -"Replaces occurrences of `search` in `text` with value of `replace` and returns the resulting string." -msgstr "" - -#: picard/script.py:693 -msgid "" -"`$in(x,y)`\n" -"\n" -"Returns true, if `x` contains `y`." -msgstr "" - -#: picard/script.py:705 -#, python-format -msgid "" -"`$inmulti(%x%,y)`\n" -"\n" -"Returns true if multi-value variable `x` contains exactly `y` as one of its values.\n" -"\n" -"_Since Picard 1.0_" -msgstr "" - -#: picard/script.py:722 -msgid "" -"`$rreplace(text,pattern,replace)`\n" -"\n" -"[Regular expression](https://docs.python.org/3/library/re.html#regular-expression-syntax) replace." -msgstr "" - -#: picard/script.py:734 -msgid "" -"`$rsearch(text,pattern)`\n" -"\n" -"[Regular expression](https://docs.python.org/3/library/re.html#regular-expression-syntax) search.\n" -" This function will return the first matching group." -msgstr "" - -#: picard/script.py:753 -msgid "" -"`$num(number,length)`\n" -"\n" -"Returns `number` formatted to `length` digits (maximum 20)." -msgstr "" - -#: picard/script.py:770 -msgid "" -"`$unset(name)`\n" -"\n" -"Unsets the variable `name`.\n" -"Allows for wildcards to unset certain tags (works with 'performer:*', 'comment:*', and 'lyrics:*').\n" -"i.e. `$unset(performer:*)` would unset all performer tags." -msgstr "" - -#: picard/script.py:790 -msgid "" -"`$delete(name)`\n" -"\n" -"Unsets the variable `name` and marks the tag for deletion.\n" -"This is similar to `$unset(name)` but also marks the tag for deletion. E.g.\n" -" running `$delete(genre)` will actually remove the genre tag from a file when\n" -" saving.\n" -"\n" -"_Since Picard 2.1_" -msgstr "" - -#: picard/script.py:805 -#, python-format -msgid "" -"`$set(name,value)`\n" -"\n" -"Sets the variable `name` to `value`.\n" -"\n" -"Note: To create a variable which can be used for the file naming string, but\n" -" which will not be written as a tag in the file, prefix the variable name\n" -" with an underscore. `%something%` will create a \"something\" tag;\n" -" `%_something%` will not." -msgstr "" - -#: picard/script.py:823 -#, python-format -msgid "" -"`$setmulti(name,value,separator=\"; \")`\n" -"\n" -"Sets the variable `name` to `value`, using the separator (or \"; \" if not passed)\n" -" to coerce the value back into a proper multi-valued tag. This can be used to\n" -" operate on multi-valued tags as a string, and then set them back as proper\n" -" multi-valued tags.\n" -"\n" -"Example:\n" -"\n" -" $setmulti(genre,$lower(%genre%))\n" -"\n" -"_Since Picard 1.0_" -msgstr "" - -#: picard/script.py:841 -msgid "" -"`$get(name)`\n" -"\n" -"Returns the variable `name` (equivalent to `%name%`)." -msgstr "" - -#: picard/script.py:851 -#, python-format -msgid "" -"`$copy(new,old)`\n" -"\n" -"Copies metadata from variable `old` to `new`.\n" -"The difference between `$set(new,%old%)` is that `$copy(new,old)` copies\n" -" multi-value variables without flattening them.\n" -"\n" -"_Since Picard 0.9_" -msgstr "" - -#: picard/script.py:867 -msgid "" -"`$copymerge(new,old)`\n" -"\n" -"Merges metadata from variable `old` into `new`, removing duplicates and\n" -" appending to the end, so retaining the original ordering. Like `$copy`, this\n" -" will also copy multi-valued variables without flattening them.\n" -"\n" -"_Since Picard 1.0_" -msgstr "" - -#: picard/script.py:885 -msgid "" -"`$trim(text[,char])`\n" -"\n" -"Trims all leading and trailing whitespaces from `text`.\n" -" The optional second parameter `char` specifies the character to trim." -msgstr "" - -#: picard/script.py:898 -msgid "" -"`$add(x,y,*args)`\n" -"\n" -"Add `y` to `x`.\n" -"Can be used with an arbitrary number of arguments.\n" -"\n" -"Example:\n" -"\n" -" $add(x,y,z) = ((x + y) + z)\n" -msgstr "" - -#: picard/script.py:916 -msgid "" -"`$sub(x,y,*args)`\n" -"\n" -"Subtracts `y` from `x`.\n" -"Can be used with an arbitrary number of arguments.\n" -"\n" -"Example:\n" -"\n" -" $sub(x,y,z) = ((x - y) - z)\n" -msgstr "" - -#: picard/script.py:934 -msgid "" -"`$div(x,y,*args)`\n" -"\n" -"Divides `x` by `y`.\n" -"Can be used with an arbitrary number of arguments.\n" -"\n" -"Example:\n" -"\n" -" $div(x,y,z) = ((x / y) / z)\n" -msgstr "" - -#: picard/script.py:954 -msgid "" -"`$mod(x,y,*args)`\n" -"\n" -"Returns the remainder of `x` divided by `y`.\n" -"Can be used with an arbitrary number of arguments.\n" -"\n" -"Example:\n" -"\n" -" $mod(x,y,z) = ((x % y) % z)\n" -msgstr "" - -#: picard/script.py:972 -msgid "" -"`$mul(x,y,*args)`\n" -"\n" -"Multiplies `x` by `y`.\n" -"Can be used with an arbitrary number of arguments.\n" -"\n" -"Example:\n" -"\n" -" $mul(x,y,z) = ((x * y) * z)\n" -msgstr "" - -#: picard/script.py:990 -msgid "" -"`$or(x,y,*args)`\n" -"\n" -"Returns true if either `x` or `y` not empty.\n" -" Can be used with an arbitrary number of arguments.\n" -" The result is true if ANY of the arguments is not empty." -msgstr "" - -#: picard/script.py:1004 -msgid "" -"`$and(x,y,*args)`\n" -"\n" -"Returns true if both `x` and `y` are not empty.\n" -" Can be used with an arbitrary number of arguments.\n" -" The result is true if ALL of the arguments are not empty." -msgstr "" - -#: picard/script.py:1018 -msgid "" -"`$not(x)`\n" -"\n" -"Returns true if `x` is empty." -msgstr "" - -#: picard/script.py:1030 -msgid "" -"`$eq(x,y)`\n" -"\n" -"Returns true if `x` equals `y`." -msgstr "" - -#: picard/script.py:1042 -msgid "" -"`$ne(x,y)`\n" -"\n" -"Returns true if `x` does not equal `y`." -msgstr "" - -#: picard/script.py:1054 -msgid "" -"`$lt(x,y)`\n" -"\n" -"Returns true if `x` is less than `y`." -msgstr "" - -#: picard/script.py:1068 -msgid "" -"`$lte(x,y)`\n" -"\n" -"Returns true if `x` is less than or equal to `y`." -msgstr "" - -#: picard/script.py:1082 -msgid "" -"`$gt(x,y)`\n" -"\n" -"Returns true if `x` is greater than `y`." -msgstr "" - -#: picard/script.py:1096 -msgid "" -"`$gte(x,y)`\n" -"\n" -"Returns true if `x` is greater than or equal to `y`." -msgstr "" - -#: picard/script.py:1110 -msgid "" -"`$len(text)`\n" -"\n" -"Returns the number of characters in `text`." -msgstr "" - -#: picard/script.py:1119 -msgid "" -"`$lenmulti(name,separator=\"; \")`\n" -"\n" -"Returns the number of elements in the multi-value tag `name`. A literal value\n" -" representing a multi-value can be substituted for `name`, using the\n" -" `separator` (or \"; \" if not passed) to coerce the value into a proper\n" -" multi-valued tag.\n" -"\n" -"Example:\n" -"\n" -" $lenmulti(One; Two; Three) = 3\n" -msgstr "" - -#: picard/script.py:1136 -msgid "" -"`$performer(pattern=\"\",join=\", \")`\n" -"\n" -"Returns the performers where the performance type (e.g. \"vocal\") matches `pattern`, joined by `join`.\n" -"\n" -"_Since Picard 0.10_" -msgstr "" - -#: picard/script.py:1151 -msgid "" -"`$matchedtracks()`\n" -"\n" -"Returns the number of matched tracks within a release.\n" -" **Only works in File Naming scripts.**\n" -"\n" -"_Since Picard 0.12_" -msgstr "" - -#: picard/script.py:1167 -msgid "" -"`$is_complete()`\n" -"\n" -"Returns true if every track in the album is matched to a single file.\n" -"**Only works in File Naming scripts.**" -msgstr "" - -#: picard/script.py:1182 -msgid "" -"`$firstalphachar(text,nonalpha=\"#\")`\n" -"\n" -"Returns the first character of `text`.\n" -"If `text` does not begin with an alphabetic character, then `nonalpha` is returned instead. If `nonalpha` is not\n" -"specified, the default value \"#\" will be used.\n" -"\n" -"_Since Picard 0.12_" -msgstr "" - -#: picard/script.py:1201 -msgid "" -"`$initials(text)`\n" -"\n" -"Returns the first character of each word in `text`, if it is an alphabetic character.\n" -"\n" -"_Since Picard 0.12_" -msgstr "" - -#: picard/script.py:1212 -msgid "" -"`$firstwords(text,length)`\n" -"\n" -"Like `$truncate()` except that it will only return the complete words from `text` which fit within `length` characters.\n" -"\n" -"_Since Picard 0.12_" -msgstr "" - -#: picard/script.py:1235 -msgid "" -"`$startswith(text,prefix)`\n" -"\n" -"Returns true if `text` starts with `prefix`.\n" -"\n" -"_Since Picard 1.4_" -msgstr "" - -#: picard/script.py:1248 -msgid "" -"`$endswith(text,suffix)`\n" -"\n" -"Returns true if `text` ends with `suffix`.\n" -"\n" -"_Since Picard 1.4_" -msgstr "" - -#: picard/script.py:1261 -msgid "" -"`$truncate(text,length)`\n" -"\n" -"Truncate `text` to `length`.\n" -"\n" -"_Since Picard 0.12_" -msgstr "" - -#: picard/script.py:1276 -msgid "" -"`$swapprefix(text,*prefixes=\"a\",\"the\")`\n" -"\n" -"Moves the specified `prefixes` from the beginning to the end of `text`.\n" -"If no prefix is specified 'A' and 'The' are used by default.\n" -"\n" -"Example:\n" -"\n" -" $swapprefix(%albumartist%,A,An,The,Le)\n" -"\n" -"_Since Picard 1.3, previously as a plugin since Picard 0.13_" -msgstr "" - -#: picard/script.py:1297 -msgid "" -"`$delprefix(text,*prefixes=\"a\",\"the\")`\n" -"\n" -"Deletes the specified `prefixes` from the beginning of `text`.\n" -"If no prefix is specified 'A' and 'The' are used by default.\n" -"\n" -"_Since Picard 1.3_" -msgstr "" - -#: picard/script.py:1330 -msgid "" -"`$eq_any(x,a1,a2...)`\n" -"\n" -"Returns true if `x` equals `a1` or `a2` or ...\n" -"Functionally equivalent to `$or($eq(x,a1),$eq(x,a2) ...)`.\n" -"Functionally equivalent to the eq2 plugin." -msgstr "" - -#: picard/script.py:1342 -msgid "" -"`$ne_all(x,a1,a2...)`\n" -"\n" -"Returns true if `x` does not equal `a1` and `a2` and ...\n" -"Functionally equivalent to `$and($ne(x,a1),$ne(x,a2) ...)`.\n" -"Functionally equivalent to the ne2 plugin." -msgstr "" - -#: picard/script.py:1354 -msgid "" -"`$eq_all(x,a1,a2...)`\n" -"\n" -"Returns true if `x` equals `a1` and `a2` and ...\n" -"Functionally equivalent to `$and($eq(x,a1),$eq(x,a2) ...)`.\n" -"\n" -"Example:\n" -"\n" -" $if($eq_all(%albumartist%,%artist%,Justin Bieber),$set(engineer,Meat Loaf))\n" -msgstr "" - -#: picard/script.py:1372 -#, python-format -msgid "" -"`$ne_any(x,a1,a2...)`\n" -"\n" -"Returns true if `x` does not equal `a1` or `a2` or ...\n" -"Functionally equivalent to `$or($ne(x,a1),$ne(x,a2) ...)`.\n" -"\n" -"Example:\n" -"\n" -" $if($ne_any(%albumartist%,%trackartist%,%composer%),$set(lyricist,%composer%))\n" -msgstr "" - -#: picard/script.py:1387 -msgid "" -"`$title(text)`\n" -"\n" -"Returns `text` in title case (first character in every word capitalized).\n" -"\n" -"Example:\n" -"\n" -" $set(album,$title(%album%))\n" -"_Since Picard 2.1_" -msgstr "" - -#: picard/script.py:1427 -msgid "" -"`$is_audio()`\n" -"\n" -"Returns true, if the file processed is an audio file.\n" -"\n" -"_Since Picard 2.2_" -msgstr "" - -#: picard/script.py:1441 -msgid "" -"`$is_video()`\n" -"\n" -"Returns true, if the file processed is an video file.\n" -"\n" -"_Since Picard 2.2_" -msgstr "" - -#: picard/script.py:1455 -msgid "" -"`$find(haystack,needle)`\n" -"\n" -"Finds the location of one string within another.\n" -" Returns the index of the first occurrence of `needle` in `haystack`, or \"\" if `needle` was not found.\n" -"\n" -"_Since Picard 2.3_\n" -"\n" -"Note that prior to Picard 2.3.2 `$find` returned \"-1\" if `needle` was not found." -msgstr "" - -#: picard/script.py:1472 -msgid "" -"`$reverse(text)`\n" -"\n" -"Returns `text` in reverse order." -msgstr "" - -#: picard/script.py:1481 -msgid "" -"`$substr(text,start,end)`\n" -"\n" -"Returns the substring beginning with the character at the `start` index, up to\n" -" (but not including) the character at the `end` index. Indexes are\n" -" zero-based. Negative numbers will be counted back from the end of the\n" -" string. If the `start` or `end` indexes are left blank, they will default to\n" -" the start and end of the string respectively." -msgstr "" - -#: picard/script.py:1502 -msgid "" -"`$getmulti(name,index,separator=\"; \")`\n" -"\n" -"Gets the element at `index` from the multi-value tag `name`. A literal value\n" -" representing a multi-value can be substituted for `name`, using the\n" -" separator (or \"; \" if not passed) to coerce the value into a proper\n" -" multi-valued tag." -msgstr "" - -#: picard/script.py:1521 -msgid "" -"`$foreach(name,code,separator=\"; \")`\n" -"\n" -"Iterates over each element found in the multi-value tag `name`, executing\n" -" `code`. For each loop, the element value is first stored in the tag\n" -" `_loop_value` and the count is stored in the tag `_loop_count`. This allows\n" -" the element or count value to be accessed within the `code` script. A\n" -" literal value representing a multi-value can be substituted for `name`,\n" -" using the separator (or \"; \" if not passed) to coerce the value into a\n" -" proper multi-valued tag." -msgstr "" - -#: picard/script.py:1543 -msgid "" -"`$while(condition,code)`\n" -"\n" -"Standard 'while' loop. Executes `code` repeatedly until `condition` no longer\n" -" evaluates to `True`. For each loop, the count is stored in the tag\n" -" `_loop_count`. This allows the count value to be accessed within the `code`\n" -" script. The function limites the maximum number of iterations to 1000 as a\n" -" safeguard against accidentally creating an infinite loop." -msgstr "" - -#: picard/script.py:1564 -msgid "" -"`$map(name,code,separator=\"; \")`\n" -"\n" -"Iterates over each element found in the multi-value tag `name` and updates the\n" -" value of the element to the value returned by `code`, returning the updated\n" -" multi-value tag. For each loop, the element value is first stored in the tag\n" -" `_loop_value` and the count is stored in the tag `_loop_count`. This allows\n" -" the element or count value to be accessed within the `code` script." -msgstr "" - -#: picard/script.py:1584 -msgid "" -"`$join(name,text,separator=\"; \")`\n" -"\n" -"Joins all elements in `name`, placing `text` between each element, and returns the result as a string." -msgstr "" - -#: picard/script.py:1595 -msgid "" -"`$slice(name,start,end,separator=\"; \")`\n" -"\n" -"Returns a multi-value variable containing the elements between the `start` and\n" -" `end` indexes from the multi-value tag `name`. A literal value representing\n" -" a multi-value can be substituted for `name`, using the separator (or \"; \" if\n" -" not passed) to coerce the value into a proper multi-valued tag. Indexes are\n" -" zero based. Negative numbers will be counted back from the end of the list.\n" -" If the `start` or `end` indexes are left blank, they will default to the\n" -" start and end of the list respectively.\n" -"\n" -" The following example will create a multi-value variable with all artists\n" -" in `%artists%` except the first, which can be used to create a \"feat.\" list.\n" -"\n" -"Example:\n" -"\n" -" $setmulti(supporting_artists,$slice(%artists%,1,))\n" -msgstr "" - -#: picard/script.py:1627 -#, python-format -msgid "" -"`$datetime(format=\"%Y-%m-%d %H:%M:%S\")`\n" -"\n" -"Returns the current date and time in the specified `format`, which is based on\n" -" the standard Python `strftime` [format codes](https://strftime.org/). If no\n" -" `format` is specified the date/time will be returned in the form\n" -" `2020-02-05 14:26:32`.\n" -"Note: Platform-specific formatting codes should be avoided to help ensure the\n" -" portability of scripts across the different platforms. These codes include:\n" -" remove zero-padding (e.g. `%-d` and `%-m` on Linux or macOS, and their\n" -" equivalent `%#d` and `%#m` on Windows); element length specifiers (e.g.\n" -" `%3Y`); and hanging '%' at the end of the format string." -msgstr "" - -#: picard/script.py:1656 -msgid "" -"`$sortmulti(name,separator=\"; \")`\n" -"\n" -"Returns a copy of the multi-value tag `name` with the elements sorted in ascending order." -msgstr "" - -#: picard/script.py:1666 -msgid "" -"`$reversemulti(name,separator=\"; \")`\n" -"\n" -"Returns a copy of the multi-value tag `name` with the elements in reverse order.\n" -" This can be used in conjunction with the `$sortmulti` function to sort in\n" -" descending order." -msgstr "" - #: picard/tagger.py:307 picard/ui/ui_options_general.py:135 msgid "MusicBrainz Account" msgstr "حساب MusicBrainz" @@ -949,11 +287,11 @@ msgid "" "%s" msgstr "عطل أثناء قراءة الأسطوانة:\n\n%s" -#: picard/track.py:359 +#: picard/track.py:361 msgid "[loading recording information]" msgstr "" -#: picard/track.py:394 +#: picard/track.py:396 #, python-format msgid "[could not load recording %s]" msgstr "" @@ -991,24 +329,24 @@ msgstr "" msgid "AcoustID submission failed with error '%(error)s': %(message)s" msgstr "" -#: picard/const/__init__.py:147 +#: picard/const/__init__.py:156 msgid "Stable releases only" msgstr "" -#: picard/const/__init__.py:153 +#: picard/const/__init__.py:162 msgid "Stable and Beta releases" msgstr "" -#: picard/const/__init__.py:159 +#: picard/const/__init__.py:168 msgid "Stable, Beta and Dev releases" msgstr "" -#: picard/const/__init__.py:174 +#: picard/const/__init__.py:183 #, python-format msgid "My script %d" msgstr "" -#: picard/const/__init__.py:175 +#: picard/const/__init__.py:184 msgid "My script" msgstr "" @@ -2931,11 +2269,11 @@ msgstr "" msgid "C&lear all" msgstr "" -#: picard/coverart/providers/caa.py:322 picard/ui/options/dialog.py:121 +#: picard/coverart/providers/caa.py:322 picard/ui/options/dialog.py:122 msgid "Restore &Defaults" msgstr "استعد المب&دئيات" -#: picard/coverart/providers/caa.py:506 +#: picard/coverart/providers/caa.py:508 msgid "Cover Art Archive" msgstr "" @@ -2943,12 +2281,674 @@ msgstr "" msgid "CAA Release Group" msgstr "" -#: picard/coverart/providers/local.py:73 +#: picard/coverart/providers/local.py:74 msgid "Local Files" msgstr "" -#: picard/coverart/providers/whitelist.py:39 -msgid "Whitelist" +#: picard/coverart/providers/urlrels.py:39 +msgid "Allowed Cover Art URLs" +msgstr "" + +#: picard/script/functions.py:180 +msgid "" +"`$if(if,then,else)`\n" +"\n" +"If `if` is not empty, it returns `then`, otherwise it returns `else`." +msgstr "" + +#: picard/script/functions.py:193 +msgid "" +"`$if2(a1,a2,a3,...)`\n" +"\n" +"Returns first non empty argument." +msgstr "" + +#: picard/script/functions.py:206 +msgid "" +"`$noop(...)`\n" +"\n" +"Does nothing (useful for comments or disabling a block of code)." +msgstr "" + +#: picard/script/functions.py:215 +msgid "" +"`$left(text,number)`\n" +"\n" +"Returns the first `number` characters from `text`." +msgstr "" + +#: picard/script/functions.py:227 +msgid "" +"`$right(text,number)`\n" +"\n" +"Returns the last `number` characters from `text`." +msgstr "" + +#: picard/script/functions.py:239 +msgid "" +"`$lower(text)`\n" +"\n" +"Returns `text` in lower case." +msgstr "" + +#: picard/script/functions.py:248 +msgid "" +"`$upper(text)`\n" +"\n" +"Returns `text` in upper case." +msgstr "" + +#: picard/script/functions.py:257 +msgid "" +"`$pad(text,length,char)`\n" +"\n" +"Pads the `text` to the `length` provided by adding as many copies of `char` as\n" +" needed to the **beginning** of the string." +msgstr "" + +#: picard/script/functions.py:270 +msgid "" +"`$strip(text)`\n" +"\n" +"Replaces all whitespace in `text` with a single space, and removes leading and trailing spaces.\n" +"Whitespace characters include multiple consecutive spaces, and various other unicode characters." +msgstr "" + +#: picard/script/functions.py:280 +msgid "" +"`$replace(text,search,replace)`\n" +"\n" +"Replaces occurrences of `search` in `text` with value of `replace` and returns the resulting string." +msgstr "" + +#: picard/script/functions.py:289 +msgid "" +"`$in(x,y)`\n" +"\n" +"Returns true, if `x` contains `y`." +msgstr "" + +#: picard/script/functions.py:301 +#, python-format +msgid "" +"`$inmulti(%x%,y)`\n" +"\n" +"Returns true if multi-value variable `x` contains exactly `y` as one of its values.\n" +"\n" +"_Since Picard 1.0_" +msgstr "" + +#: picard/script/functions.py:318 +msgid "" +"`$rreplace(text,pattern,replace)`\n" +"\n" +"[Regular expression](https://docs.python.org/3/library/re.html#regular-expression-syntax) replace." +msgstr "" + +#: picard/script/functions.py:330 +msgid "" +"`$rsearch(text,pattern)`\n" +"\n" +"[Regular expression](https://docs.python.org/3/library/re.html#regular-expression-syntax) search.\n" +" This function will return the first matching group." +msgstr "" + +#: picard/script/functions.py:349 +msgid "" +"`$num(number,length)`\n" +"\n" +"Returns `number` formatted to `length` digits (maximum 20)." +msgstr "" + +#: picard/script/functions.py:366 +msgid "" +"`$unset(name)`\n" +"\n" +"Unsets the variable `name`.\n" +"Allows for wildcards to unset certain tags (works with 'performer:*', 'comment:*', and 'lyrics:*').\n" +"i.e. `$unset(performer:*)` would unset all performer tags." +msgstr "" + +#: picard/script/functions.py:386 +msgid "" +"`$delete(name)`\n" +"\n" +"Unsets the variable `name` and marks the tag for deletion.\n" +"This is similar to `$unset(name)` but also marks the tag for deletion. E.g.\n" +" running `$delete(genre)` will actually remove the genre tag from a file when\n" +" saving.\n" +"\n" +"_Since Picard 2.1_" +msgstr "" + +#: picard/script/functions.py:401 +#, python-format +msgid "" +"`$set(name,value)`\n" +"\n" +"Sets the variable `name` to `value`.\n" +"\n" +"Note: To create a variable which can be used for the file naming string, but\n" +" which will not be written as a tag in the file, prefix the variable name\n" +" with an underscore. `%something%` will create a \"something\" tag;\n" +" `%_something%` will not." +msgstr "" + +#: picard/script/functions.py:419 +#, python-format +msgid "" +"`$setmulti(name,value,separator=\"; \")`\n" +"\n" +"Sets the variable `name` to `value`, using the separator (or \"; \" if not passed)\n" +" to coerce the value back into a proper multi-valued tag. This can be used to\n" +" operate on multi-valued tags as a string, and then set them back as proper\n" +" multi-valued tags.\n" +"\n" +"Example:\n" +"\n" +" $setmulti(genre,$lower(%genre%))\n" +"\n" +"_Since Picard 1.0_" +msgstr "" + +#: picard/script/functions.py:437 +msgid "" +"`$get(name)`\n" +"\n" +"Returns the variable `name` (equivalent to `%name%`)." +msgstr "" + +#: picard/script/functions.py:447 +#, python-format +msgid "" +"`$copy(new,old)`\n" +"\n" +"Copies metadata from variable `old` to `new`.\n" +"The difference between `$set(new,%old%)` is that `$copy(new,old)` copies\n" +" multi-value variables without flattening them.\n" +"\n" +"_Since Picard 0.9_" +msgstr "" + +#: picard/script/functions.py:463 +msgid "" +"`$copymerge(new,old)`\n" +"\n" +"Merges metadata from variable `old` into `new`, removing duplicates and\n" +" appending to the end, so retaining the original ordering. Like `$copy`, this\n" +" will also copy multi-valued variables without flattening them.\n" +"\n" +"_Since Picard 1.0_" +msgstr "" + +#: picard/script/functions.py:481 +msgid "" +"`$trim(text[,char])`\n" +"\n" +"Trims all leading and trailing whitespaces from `text`.\n" +" The optional second parameter `char` specifies the character to trim." +msgstr "" + +#: picard/script/functions.py:494 +msgid "" +"`$add(x,y,*args)`\n" +"\n" +"Add `y` to `x`.\n" +"Can be used with an arbitrary number of arguments.\n" +"\n" +"Example:\n" +"\n" +" $add(x,y,z) = ((x + y) + z)\n" +msgstr "" + +#: picard/script/functions.py:512 +msgid "" +"`$sub(x,y,*args)`\n" +"\n" +"Subtracts `y` from `x`.\n" +"Can be used with an arbitrary number of arguments.\n" +"\n" +"Example:\n" +"\n" +" $sub(x,y,z) = ((x - y) - z)\n" +msgstr "" + +#: picard/script/functions.py:530 +msgid "" +"`$div(x,y,*args)`\n" +"\n" +"Divides `x` by `y`.\n" +"Can be used with an arbitrary number of arguments.\n" +"\n" +"Example:\n" +"\n" +" $div(x,y,z) = ((x / y) / z)\n" +msgstr "" + +#: picard/script/functions.py:550 +msgid "" +"`$mod(x,y,*args)`\n" +"\n" +"Returns the remainder of `x` divided by `y`.\n" +"Can be used with an arbitrary number of arguments.\n" +"\n" +"Example:\n" +"\n" +" $mod(x,y,z) = ((x % y) % z)\n" +msgstr "" + +#: picard/script/functions.py:568 +msgid "" +"`$mul(x,y,*args)`\n" +"\n" +"Multiplies `x` by `y`.\n" +"Can be used with an arbitrary number of arguments.\n" +"\n" +"Example:\n" +"\n" +" $mul(x,y,z) = ((x * y) * z)\n" +msgstr "" + +#: picard/script/functions.py:586 +msgid "" +"`$or(x,y,*args)`\n" +"\n" +"Returns true if either `x` or `y` not empty.\n" +" Can be used with an arbitrary number of arguments.\n" +" The result is true if ANY of the arguments is not empty." +msgstr "" + +#: picard/script/functions.py:600 +msgid "" +"`$and(x,y,*args)`\n" +"\n" +"Returns true if both `x` and `y` are not empty.\n" +" Can be used with an arbitrary number of arguments.\n" +" The result is true if ALL of the arguments are not empty." +msgstr "" + +#: picard/script/functions.py:614 +msgid "" +"`$not(x)`\n" +"\n" +"Returns true if `x` is empty." +msgstr "" + +#: picard/script/functions.py:626 +msgid "" +"`$eq(x,y)`\n" +"\n" +"Returns true if `x` equals `y`." +msgstr "" + +#: picard/script/functions.py:638 +msgid "" +"`$ne(x,y)`\n" +"\n" +"Returns true if `x` does not equal `y`." +msgstr "" + +#: picard/script/functions.py:650 +msgid "" +"`$lt(x,y)`\n" +"\n" +"Returns true if `x` is less than `y`." +msgstr "" + +#: picard/script/functions.py:664 +msgid "" +"`$lte(x,y)`\n" +"\n" +"Returns true if `x` is less than or equal to `y`." +msgstr "" + +#: picard/script/functions.py:678 +msgid "" +"`$gt(x,y)`\n" +"\n" +"Returns true if `x` is greater than `y`." +msgstr "" + +#: picard/script/functions.py:692 +msgid "" +"`$gte(x,y)`\n" +"\n" +"Returns true if `x` is greater than or equal to `y`." +msgstr "" + +#: picard/script/functions.py:706 +msgid "" +"`$len(text)`\n" +"\n" +"Returns the number of characters in `text`." +msgstr "" + +#: picard/script/functions.py:715 +msgid "" +"`$lenmulti(name,separator=\"; \")`\n" +"\n" +"Returns the number of elements in the multi-value tag `name`. A literal value\n" +" representing a multi-value can be substituted for `name`, using the\n" +" `separator` (or \"; \" if not passed) to coerce the value into a proper\n" +" multi-valued tag.\n" +"\n" +"Example:\n" +"\n" +" $lenmulti(One; Two; Three) = 3\n" +msgstr "" + +#: picard/script/functions.py:732 +msgid "" +"`$performer(pattern=\"\",join=\", \")`\n" +"\n" +"Returns the performers where the performance type (e.g. \"vocal\") matches `pattern`, joined by `join`.\n" +"\n" +"_Since Picard 0.10_" +msgstr "" + +#: picard/script/functions.py:747 +msgid "" +"`$matchedtracks()`\n" +"\n" +"Returns the number of matched tracks within a release.\n" +" **Only works in File Naming scripts.**\n" +"\n" +"_Since Picard 0.12_" +msgstr "" + +#: picard/script/functions.py:763 +msgid "" +"`$is_complete()`\n" +"\n" +"Returns true if every track in the album is matched to a single file.\n" +"**Only works in File Naming scripts.**" +msgstr "" + +#: picard/script/functions.py:778 +msgid "" +"`$firstalphachar(text,nonalpha=\"#\")`\n" +"\n" +"Returns the first character of `text`.\n" +"If `text` does not begin with an alphabetic character, then `nonalpha` is returned instead. If `nonalpha` is not\n" +"specified, the default value \"#\" will be used.\n" +"\n" +"_Since Picard 0.12_" +msgstr "" + +#: picard/script/functions.py:797 +msgid "" +"`$initials(text)`\n" +"\n" +"Returns the first character of each word in `text`, if it is an alphabetic character.\n" +"\n" +"_Since Picard 0.12_" +msgstr "" + +#: picard/script/functions.py:808 +msgid "" +"`$firstwords(text,length)`\n" +"\n" +"Like `$truncate()` except that it will only return the complete words from `text` which fit within `length` characters.\n" +"\n" +"_Since Picard 0.12_" +msgstr "" + +#: picard/script/functions.py:831 +msgid "" +"`$startswith(text,prefix)`\n" +"\n" +"Returns true if `text` starts with `prefix`.\n" +"\n" +"_Since Picard 1.4_" +msgstr "" + +#: picard/script/functions.py:844 +msgid "" +"`$endswith(text,suffix)`\n" +"\n" +"Returns true if `text` ends with `suffix`.\n" +"\n" +"_Since Picard 1.4_" +msgstr "" + +#: picard/script/functions.py:857 +msgid "" +"`$truncate(text,length)`\n" +"\n" +"Truncate `text` to `length`.\n" +"\n" +"_Since Picard 0.12_" +msgstr "" + +#: picard/script/functions.py:872 +msgid "" +"`$swapprefix(text,*prefixes=\"a\",\"the\")`\n" +"\n" +"Moves the specified `prefixes` from the beginning to the end of `text`.\n" +"If no prefix is specified 'A' and 'The' are used by default.\n" +"\n" +"Example:\n" +"\n" +" $swapprefix(%albumartist%,A,An,The,Le)\n" +"\n" +"_Since Picard 1.3, previously as a plugin since Picard 0.13_" +msgstr "" + +#: picard/script/functions.py:893 +msgid "" +"`$delprefix(text,*prefixes=\"a\",\"the\")`\n" +"\n" +"Deletes the specified `prefixes` from the beginning of `text`.\n" +"If no prefix is specified 'A' and 'The' are used by default.\n" +"\n" +"_Since Picard 1.3_" +msgstr "" + +#: picard/script/functions.py:926 +msgid "" +"`$eq_any(x,a1,a2...)`\n" +"\n" +"Returns true if `x` equals `a1` or `a2` or ...\n" +"Functionally equivalent to `$or($eq(x,a1),$eq(x,a2) ...)`.\n" +"Functionally equivalent to the eq2 plugin." +msgstr "" + +#: picard/script/functions.py:938 +msgid "" +"`$ne_all(x,a1,a2...)`\n" +"\n" +"Returns true if `x` does not equal `a1` and `a2` and ...\n" +"Functionally equivalent to `$and($ne(x,a1),$ne(x,a2) ...)`.\n" +"Functionally equivalent to the ne2 plugin." +msgstr "" + +#: picard/script/functions.py:950 +msgid "" +"`$eq_all(x,a1,a2...)`\n" +"\n" +"Returns true if `x` equals `a1` and `a2` and ...\n" +"Functionally equivalent to `$and($eq(x,a1),$eq(x,a2) ...)`.\n" +"\n" +"Example:\n" +"\n" +" $if($eq_all(%albumartist%,%artist%,Justin Bieber),$set(engineer,Meat Loaf))\n" +msgstr "" + +#: picard/script/functions.py:968 +#, python-format +msgid "" +"`$ne_any(x,a1,a2...)`\n" +"\n" +"Returns true if `x` does not equal `a1` or `a2` or ...\n" +"Functionally equivalent to `$or($ne(x,a1),$ne(x,a2) ...)`.\n" +"\n" +"Example:\n" +"\n" +" $if($ne_any(%albumartist%,%trackartist%,%composer%),$set(lyricist,%composer%))\n" +msgstr "" + +#: picard/script/functions.py:983 +msgid "" +"`$title(text)`\n" +"\n" +"Returns `text` in title case (first character in every word capitalized).\n" +"\n" +"Example:\n" +"\n" +" $set(album,$title(%album%))\n" +"_Since Picard 2.1_" +msgstr "" + +#: picard/script/functions.py:1023 +msgid "" +"`$is_audio()`\n" +"\n" +"Returns true, if the file processed is an audio file.\n" +"\n" +"_Since Picard 2.2_" +msgstr "" + +#: picard/script/functions.py:1037 +msgid "" +"`$is_video()`\n" +"\n" +"Returns true, if the file processed is an video file.\n" +"\n" +"_Since Picard 2.2_" +msgstr "" + +#: picard/script/functions.py:1051 +msgid "" +"`$find(haystack,needle)`\n" +"\n" +"Finds the location of one string within another.\n" +" Returns the index of the first occurrence of `needle` in `haystack`, or \"\" if `needle` was not found.\n" +"\n" +"_Since Picard 2.3_\n" +"\n" +"Note that prior to Picard 2.3.2 `$find` returned \"-1\" if `needle` was not found." +msgstr "" + +#: picard/script/functions.py:1068 +msgid "" +"`$reverse(text)`\n" +"\n" +"Returns `text` in reverse order." +msgstr "" + +#: picard/script/functions.py:1077 +msgid "" +"`$substr(text,start,end)`\n" +"\n" +"Returns the substring beginning with the character at the `start` index, up to\n" +" (but not including) the character at the `end` index. Indexes are\n" +" zero-based. Negative numbers will be counted back from the end of the\n" +" string. If the `start` or `end` indexes are left blank, they will default to\n" +" the start and end of the string respectively." +msgstr "" + +#: picard/script/functions.py:1098 +msgid "" +"`$getmulti(name,index,separator=\"; \")`\n" +"\n" +"Gets the element at `index` from the multi-value tag `name`. A literal value\n" +" representing a multi-value can be substituted for `name`, using the\n" +" separator (or \"; \" if not passed) to coerce the value into a proper\n" +" multi-valued tag." +msgstr "" + +#: picard/script/functions.py:1117 +msgid "" +"`$foreach(name,code,separator=\"; \")`\n" +"\n" +"Iterates over each element found in the multi-value tag `name`, executing\n" +" `code`. For each loop, the element value is first stored in the tag\n" +" `_loop_value` and the count is stored in the tag `_loop_count`. This allows\n" +" the element or count value to be accessed within the `code` script. A\n" +" literal value representing a multi-value can be substituted for `name`,\n" +" using the separator (or \"; \" if not passed) to coerce the value into a\n" +" proper multi-valued tag." +msgstr "" + +#: picard/script/functions.py:1139 +msgid "" +"`$while(condition,code)`\n" +"\n" +"Standard 'while' loop. Executes `code` repeatedly until `condition` no longer\n" +" evaluates to `True`. For each loop, the count is stored in the tag\n" +" `_loop_count`. This allows the count value to be accessed within the `code`\n" +" script. The function limites the maximum number of iterations to 1000 as a\n" +" safeguard against accidentally creating an infinite loop." +msgstr "" + +#: picard/script/functions.py:1160 +msgid "" +"`$map(name,code,separator=\"; \")`\n" +"\n" +"Iterates over each element found in the multi-value tag `name` and updates the\n" +" value of the element to the value returned by `code`, returning the updated\n" +" multi-value tag. For each loop, the element value is first stored in the tag\n" +" `_loop_value` and the count is stored in the tag `_loop_count`. This allows\n" +" the element or count value to be accessed within the `code` script." +msgstr "" + +#: picard/script/functions.py:1180 +msgid "" +"`$join(name,text,separator=\"; \")`\n" +"\n" +"Joins all elements in `name`, placing `text` between each element, and returns the result as a string." +msgstr "" + +#: picard/script/functions.py:1191 +msgid "" +"`$slice(name,start,end,separator=\"; \")`\n" +"\n" +"Returns a multi-value variable containing the elements between the `start` and\n" +" `end` indexes from the multi-value tag `name`. A literal value representing\n" +" a multi-value can be substituted for `name`, using the separator (or \"; \" if\n" +" not passed) to coerce the value into a proper multi-valued tag. Indexes are\n" +" zero based. Negative numbers will be counted back from the end of the list.\n" +" If the `start` or `end` indexes are left blank, they will default to the\n" +" start and end of the list respectively.\n" +"\n" +" The following example will create a multi-value variable with all artists\n" +" in `%artists%` except the first, which can be used to create a \"feat.\" list.\n" +"\n" +"Example:\n" +"\n" +" $setmulti(supporting_artists,$slice(%artists%,1,))\n" +msgstr "" + +#: picard/script/functions.py:1223 +#, python-format +msgid "" +"`$datetime(format=\"%Y-%m-%d %H:%M:%S\")`\n" +"\n" +"Returns the current date and time in the specified `format`, which is based on\n" +" the standard Python `strftime` [format codes](https://strftime.org/). If no\n" +" `format` is specified the date/time will be returned in the form\n" +" `2020-02-05 14:26:32`.\n" +"Note: Platform-specific formatting codes should be avoided to help ensure the\n" +" portability of scripts across the different platforms. These codes include:\n" +" remove zero-padding (e.g. `%-d` and `%-m` on Linux or macOS, and their\n" +" equivalent `%#d` and `%#m` on Windows); element length specifiers (e.g.\n" +" `%3Y`); and hanging '%' at the end of the format string." +msgstr "" + +#: picard/script/functions.py:1252 +msgid "" +"`$sortmulti(name,separator=\"; \")`\n" +"\n" +"Returns a copy of the multi-value tag `name` with the elements sorted in ascending order." +msgstr "" + +#: picard/script/functions.py:1262 +msgid "" +"`$reversemulti(name,separator=\"; \")`\n" +"\n" +"Returns a copy of the multi-value tag `name` with the elements in reverse order.\n" +" This can be used in conjunction with the `$sortmulti` function to sort in\n" +" descending order." msgstr "" #: picard/ui/aboutdialog.py:74 @@ -3043,84 +3043,96 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: picard/ui/colors.py:36 +#: picard/ui/colors.py:41 msgid "Errored entity" msgstr "" -#: picard/ui/colors.py:37 +#: picard/ui/colors.py:42 msgid "Pending entity" msgstr "" -#: picard/ui/colors.py:38 +#: picard/ui/colors.py:43 msgid "Saved entity" msgstr "" -#: picard/ui/colors.py:39 +#: picard/ui/colors.py:44 msgid "Log view text (debug)" msgstr "" -#: picard/ui/colors.py:40 +#: picard/ui/colors.py:45 msgid "Log view text (error)" msgstr "" -#: picard/ui/colors.py:41 +#: picard/ui/colors.py:46 msgid "Log view text (info)" msgstr "" -#: picard/ui/colors.py:42 +#: picard/ui/colors.py:47 msgid "Log view text (warning)" msgstr "" -#: picard/ui/colors.py:43 +#: picard/ui/colors.py:48 msgid "Tag added" msgstr "" -#: picard/ui/colors.py:44 +#: picard/ui/colors.py:49 msgid "Tag changed" msgstr "" -#: picard/ui/colors.py:45 +#: picard/ui/colors.py:50 msgid "Tag removed" msgstr "" -#: picard/ui/coverartbox.py:277 +#: picard/ui/coverartbox.py:258 msgid "View release on MusicBrainz" msgstr "اعرض الإصدار على MusicBrainz" -#: picard/ui/coverartbox.py:283 +#: picard/ui/coverartbox.py:264 msgid "Common images on all tracks" msgstr "" -#: picard/ui/coverartbox.py:285 +#: picard/ui/coverartbox.py:266 msgid "Tracks contain different images" msgstr "تحتوي المقطوعات صورا مختلفة" -#: picard/ui/coverartbox.py:329 +#: picard/ui/coverartbox.py:310 msgid "Show more details" msgstr "اعرض تفاصيل أكثر" -#: picard/ui/coverartbox.py:366 +#: picard/ui/coverartbox.py:347 msgid "New Cover Art" msgstr "" -#: picard/ui/coverartbox.py:367 +#: picard/ui/coverartbox.py:348 msgid "Original Cover Art" msgstr "" -#: picard/ui/coverartbox.py:542 +#: picard/ui/coverartbox.py:520 +msgid "All supported image formats" +msgstr "" + +#: picard/ui/coverartbox.py:521 +msgid "All files" +msgstr "" + +#: picard/ui/coverartbox.py:534 msgid "Show more details..." msgstr "اعرض تفاصيل أكثر..." -#: picard/ui/coverartbox.py:548 +#: picard/ui/coverartbox.py:540 msgid "Keep original cover art" msgstr "" -#: picard/ui/coverartbox.py:557 -msgid "Replace front cover art on drop" +#: picard/ui/coverartbox.py:546 +msgid "Choose local file..." msgstr "" -#: picard/ui/coverartbox.py:565 -msgid "Append front cover art on drop" +#: picard/ui/coverartbox.py:555 +msgid "Replace front cover art" +msgstr "" + +#: picard/ui/coverartbox.py:563 +msgid "Append front cover art" msgstr "" #: picard/ui/edittagdialog.py:67 @@ -3132,14 +3144,18 @@ msgid "YYYY" msgstr "" #: picard/ui/filebrowser.py:60 -msgid "&Move Tagged Files Here" -msgstr "ا&نقل الملفات الموسومة هنا" +msgid "&Load selected files" +msgstr "" #: picard/ui/filebrowser.py:63 -msgid "Show &Hidden Files" +msgid "&Move tagged files here" +msgstr "ا&نقل الملفات الموسومة هنا" + +#: picard/ui/filebrowser.py:66 +msgid "Show &hidden files" msgstr "اعرض الملفات الم&خفية" -#: picard/ui/filebrowser.py:68 +#: picard/ui/filebrowser.py:71 msgid "&Set as starting directory" msgstr "ا&ضبط كدليل البدء" @@ -3162,7 +3178,7 @@ msgid "Cover" msgstr "الغلاف" #: picard/ui/infodialog.py:154 picard/ui/infodialog.py:297 -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:97 msgid "Info" msgstr "معلومات" @@ -3264,7 +3280,7 @@ msgstr "" msgid "Tracklist:" msgstr "قائمة المقطوعات:" -#: picard/ui/infostatus.py:61 picard/ui/options/plugins.py:599 +#: picard/ui/infostatus.py:61 picard/ui/options/plugins.py:600 msgid "Files" msgstr "الملفات" @@ -3414,7 +3430,7 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/itemviews.py:982 picard/ui/options/renaming.py:209 +#: picard/ui/itemviews.py:982 picard/ui/options/renaming.py:210 msgid "Error" msgstr "" @@ -3656,7 +3672,7 @@ msgstr "أ&زِل" msgid "Remove selected files/albums" msgstr "أزِل الملفات/الألبومات المحددة" -#: picard/ui/mainwindow.py:481 picard/ui/metadatabox.py:346 +#: picard/ui/mainwindow.py:481 picard/ui/metadatabox.py:350 #: picard/ui/ui_cdlookup.py:90 msgid "Lookup in &Browser" msgstr "" @@ -3740,7 +3756,7 @@ msgstr "Ctrl+Y" msgid "&Generate AcoustID Fingerprints" msgstr "" -#: picard/ui/mainwindow.py:542 picard/ui/options/interface.py:108 +#: picard/ui/mainwindow.py:542 picard/ui/options/interface.py:109 msgid "Generate Fingerprints" msgstr "" @@ -3938,17 +3954,17 @@ msgstr "" msgid "%(filename)s (%(similarity)d%%)" msgstr "" -#: picard/ui/mainwindow.py:1213 +#: picard/ui/mainwindow.py:1217 msgid "Authentication Required" msgstr "الاستيثاق مطلوب" -#: picard/ui/mainwindow.py:1214 +#: picard/ui/mainwindow.py:1218 msgid "" "Picard needs authorization to access your personal data on the MusicBrainz " "server. Would you like to log in now?" msgstr "يحتاج Picard استيثاقا للوصول إلى معلوماتك الشخصية في خادوم MusicBrainz. أتريد الولوج الآن؟" -#: picard/ui/metadatabox.py:101 +#: picard/ui/metadatabox.py:102 #, python-format msgid "(different across %d item)" msgid_plural "(different across %d items)" @@ -3959,7 +3975,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: picard/ui/metadatabox.py:109 +#: picard/ui/metadatabox.py:110 #, python-format msgid "(missing from %d item)" msgid_plural "(missing from %d items)" @@ -3970,59 +3986,59 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: picard/ui/metadatabox.py:197 +#: picard/ui/metadatabox.py:198 msgid "metadata view" msgstr "" -#: picard/ui/metadatabox.py:198 +#: picard/ui/metadatabox.py:199 msgid "Displays original and new tags for the selected files" msgstr "يعرض الوسوم الأصلية والجديدة للملفات المحدد" -#: picard/ui/metadatabox.py:200 +#: picard/ui/metadatabox.py:201 msgid "Tag" msgstr "الوسم" -#: picard/ui/metadatabox.py:200 +#: picard/ui/metadatabox.py:201 msgid "Original Value" msgstr "القيمة الأصلية" -#: picard/ui/metadatabox.py:200 +#: picard/ui/metadatabox.py:201 msgid "New Value" msgstr "قيمة جديدة" -#: picard/ui/metadatabox.py:220 +#: picard/ui/metadatabox.py:221 msgid "Add New Tag..." msgstr "أضِف وسما جديدا..." -#: picard/ui/metadatabox.py:222 +#: picard/ui/metadatabox.py:223 msgid "Show Changes First" msgstr "اعرض التغييرات أولا" -#: picard/ui/metadatabox.py:228 +#: picard/ui/metadatabox.py:229 msgid "Alt+Shift+A" msgstr "Alt+Shift+A" -#: picard/ui/metadatabox.py:231 +#: picard/ui/metadatabox.py:232 msgid "Alt+Shift+E" msgstr "Alt+Shift+E" -#: picard/ui/metadatabox.py:233 +#: picard/ui/metadatabox.py:234 msgid "Alt+Shift+R" msgstr "Alt+Shift+R" -#: picard/ui/metadatabox.py:322 +#: picard/ui/metadatabox.py:326 msgid "Edit..." msgstr "حرّر..." -#: picard/ui/metadatabox.py:327 +#: picard/ui/metadatabox.py:331 msgid "Add to 'Preserve Tags' List" msgstr "أضِف إلى قائمة ”الوسوم المحجوزة“" -#: picard/ui/metadatabox.py:331 +#: picard/ui/metadatabox.py:335 msgid "Remove from 'Preserve Tags' List" msgstr "أزِل من قائمة ”الوسوم المحجوزة“" -#: picard/ui/metadatabox.py:365 +#: picard/ui/metadatabox.py:382 msgid "Use Original Value" msgid_plural "Use Original Values" msgstr[0] "استخدم القيمة الأصلية" @@ -4152,27 +4168,27 @@ msgstr "" msgid "&Cancel" msgstr "أل&غِ" -#: picard/ui/ui_edittagdialog.py:114 +#: picard/ui/ui_edittagdialog.py:115 msgid "Edit Tag" msgstr "حرّر الوسم" -#: picard/ui/ui_edittagdialog.py:115 +#: picard/ui/ui_edittagdialog.py:116 msgid "Edit value" msgstr "حرّر القيم" -#: picard/ui/ui_edittagdialog.py:116 +#: picard/ui/ui_edittagdialog.py:117 msgid "Add value" msgstr "أضِف قيم" -#: picard/ui/ui_edittagdialog.py:117 +#: picard/ui/ui_edittagdialog.py:118 msgid "Remove value" msgstr "أزِل القيمة" -#: picard/ui/ui_edittagdialog.py:118 picard/ui/ui_edittagdialog.py:119 +#: picard/ui/ui_edittagdialog.py:119 picard/ui/ui_edittagdialog.py:120 msgid "Move selected value up" msgstr "" -#: picard/ui/ui_edittagdialog.py:120 picard/ui/ui_edittagdialog.py:121 +#: picard/ui/ui_edittagdialog.py:121 picard/ui/ui_edittagdialog.py:122 msgid "Move selected value down" msgstr "" @@ -4578,7 +4594,7 @@ msgstr "استمع إلى localhost فقط" msgid "Plugins" msgstr "الملحقات" -#: picard/ui/options/plugins.py:596 picard/ui/searchdialog/album.py:152 +#: picard/ui/options/plugins.py:597 picard/ui/searchdialog/album.py:152 #: picard/ui/searchdialog/artist.py:52 picard/ui/searchdialog/track.py:63 #: picard/ui/ui_options_plugins.py:130 msgid "Name" @@ -4985,7 +5001,7 @@ msgstr "&حسنا" msgid "Clos&e" msgstr "" -#: picard/ui/options/__init__.py:103 +#: picard/ui/options/__init__.py:104 msgid "Regex Error" msgstr "خطأ في التعبير النمطي" @@ -4997,39 +5013,39 @@ msgstr "متقدّم" msgid "Cover Art" msgstr "" -#: picard/ui/options/dialog.py:119 +#: picard/ui/options/dialog.py:120 msgid "&Restore all Defaults" msgstr "ا&ستعد كل المبدئيات" -#: picard/ui/options/dialog.py:120 +#: picard/ui/options/dialog.py:121 msgid "Reset all of Picard's settings" msgstr "صفّر كل إعدادات Picard" -#: picard/ui/options/dialog.py:122 +#: picard/ui/options/dialog.py:123 msgid "Reset all settings for current option page" msgstr "صفّر كل إعدادات صفحة الخيارات الحالية" -#: picard/ui/options/dialog.py:125 +#: picard/ui/options/dialog.py:126 msgid "Make It So!" msgstr "طبّقها!" -#: picard/ui/options/dialog.py:211 +#: picard/ui/options/dialog.py:226 msgid "Unexpected error" msgstr "" -#: picard/ui/options/dialog.py:248 +#: picard/ui/options/dialog.py:263 msgid "You are about to reset your options for this page." msgstr "أنت على وشك تصفير كل الخيارات في هذه الصفحة." -#: picard/ui/options/dialog.py:252 +#: picard/ui/options/dialog.py:267 msgid "Warning! This will reset all of your settings." msgstr "تحذير! سيصفّر هذا كل إعداداتك." -#: picard/ui/options/dialog.py:259 +#: picard/ui/options/dialog.py:274 msgid "Confirm Reset" msgstr "أكّد التصفير" -#: picard/ui/options/dialog.py:260 +#: picard/ui/options/dialog.py:275 msgid "Are you sure?" msgstr "أمتأكد؟" @@ -5037,16 +5053,16 @@ msgstr "أمتأكد؟" msgid "Fingerprinting" msgstr "" -#: picard/ui/options/fingerprinting.py:154 -#: picard/ui/options/fingerprinting.py:158 +#: picard/ui/options/fingerprinting.py:155 +#: picard/ui/options/fingerprinting.py:159 msgid "Please select a valid fpcalc executable." msgstr "" -#: picard/ui/options/fingerprinting.py:158 +#: picard/ui/options/fingerprinting.py:159 msgid "Invalid fpcalc executable" msgstr "" -#: picard/ui/options/general.py:109 +#: picard/ui/options/general.py:110 #, python-format msgid "Logged in as %s." msgstr "والج كَ‍ %s." @@ -5096,7 +5112,7 @@ msgstr "" msgid "Genres" msgstr "" -#: picard/ui/options/genres.py:146 +#: picard/ui/options/genres.py:147 #, python-format msgid "Error line %d: %s" msgstr "" @@ -5105,61 +5121,61 @@ msgstr "" msgid "User Interface" msgstr "واجهة المستخدم" -#: picard/ui/options/interface.py:68 +#: picard/ui/options/interface.py:69 msgid "Add Folder" msgstr "أضِف مجلدا" -#: picard/ui/options/interface.py:72 +#: picard/ui/options/interface.py:73 msgid "Add Files" msgstr "أضِف ملفات" -#: picard/ui/options/interface.py:76 +#: picard/ui/options/interface.py:77 msgid "Cluster" msgstr "" -#: picard/ui/options/interface.py:80 +#: picard/ui/options/interface.py:81 msgid "Lookup" msgstr "ابحث" -#: picard/ui/options/interface.py:84 +#: picard/ui/options/interface.py:85 msgid "Scan" msgstr "افحص" -#: picard/ui/options/interface.py:88 +#: picard/ui/options/interface.py:89 msgid "Lookup in Browser" msgstr "ابحث في المتصفّح" -#: picard/ui/options/interface.py:92 +#: picard/ui/options/interface.py:93 msgid "Save" msgstr "احفظ" -#: picard/ui/options/interface.py:104 +#: picard/ui/options/interface.py:105 msgid "Submit AcoustIDs" msgstr "" -#: picard/ui/options/interface.py:112 +#: picard/ui/options/interface.py:113 msgid "Open in Player" msgstr "افتح في المشغّل" -#: picard/ui/options/interface.py:116 +#: picard/ui/options/interface.py:117 msgid "Lookup CD..." msgstr "" -#: picard/ui/options/interface.py:155 +#: picard/ui/options/interface.py:156 msgid "System default" msgstr "مبدئيات النظام" -#: picard/ui/options/interface.py:212 +#: picard/ui/options/interface.py:213 msgid "Language changed" msgstr "تغيّرت اللغة" -#: picard/ui/options/interface.py:213 +#: picard/ui/options/interface.py:214 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." msgstr "لقد غيّرت لغة الواجهة. عليك إعادة تشغيل Picard ليأخذ التغيير مفعوله." -#: picard/ui/options/interface.py:237 +#: picard/ui/options/interface.py:238 msgid "Drag and Drop to re-order" msgstr "اسحب وأفلِت لإعادة الترتيب" @@ -5167,11 +5183,11 @@ msgstr "اسحب وأفلِت لإعادة الترتيب" msgid "Choose a color" msgstr "" -#: picard/ui/options/interface_colors.py:139 +#: picard/ui/options/interface_colors.py:138 msgid "Colors changed" msgstr "" -#: picard/ui/options/interface_colors.py:140 +#: picard/ui/options/interface_colors.py:139 msgid "" "You have changed the interface colors. You may have to restart Picard in " "order for the changes to take effect." @@ -5210,17 +5226,17 @@ msgstr "" msgid "Uninstall plugin" msgstr "" -#: picard/ui/options/plugins.py:396 +#: picard/ui/options/plugins.py:397 msgid "Reloading list of available plugins..." msgstr "" -#: picard/ui/options/plugins.py:404 picard/ui/options/plugins.py:413 -#: picard/ui/options/plugins.py:434 +#: picard/ui/options/plugins.py:405 picard/ui/options/plugins.py:414 +#: picard/ui/options/plugins.py:435 #, python-format msgid "Plugin '%s'" msgstr "" -#: picard/ui/options/plugins.py:405 +#: picard/ui/options/plugins.py:406 #, python-format msgid "" "An error occurred while loading the plugin '%s':\n" @@ -5228,48 +5244,48 @@ msgid "" "%s" msgstr "" -#: picard/ui/options/plugins.py:414 +#: picard/ui/options/plugins.py:415 #, python-format msgid "The plugin '%s' is not compatible with this version of Picard." msgstr "الملحقة ”%s“ غير متوافقة مع إصدارة Picard هذه." -#: picard/ui/options/plugins.py:435 +#: picard/ui/options/plugins.py:436 #, python-format msgid "The plugin '%s' will be upgraded to version %s on next run of Picard." msgstr "ستُرقّى الملحقة ”%s“ إلى الإصدارة %s في التشغيل التالي لِ‍ Picard." -#: picard/ui/options/plugins.py:456 +#: picard/ui/options/plugins.py:457 #, python-format msgid "Uninstall plugin '%s'?" msgstr "" -#: picard/ui/options/plugins.py:457 +#: picard/ui/options/plugins.py:458 #, python-format msgid "Do you really want to uninstall the plugin '%s' ?" msgstr "" -#: picard/ui/options/plugins.py:588 +#: picard/ui/options/plugins.py:589 msgid "Restart Picard to upgrade to new version" msgstr "أعِد تشغيل Picard للترقية إلى إصدارة أحدث" -#: picard/ui/options/plugins.py:590 +#: picard/ui/options/plugins.py:591 msgid "New version available" msgstr "تتوفر إصدارة جديد" -#: picard/ui/options/plugins.py:597 +#: picard/ui/options/plugins.py:598 msgid "Authors" msgstr "المؤلفو" -#: picard/ui/options/plugins.py:598 picard/util/tags.py:69 +#: picard/ui/options/plugins.py:599 picard/util/tags.py:69 msgid "License" msgstr "الرخصة" -#: picard/ui/options/plugins.py:639 +#: picard/ui/options/plugins.py:640 #, python-format msgid "The plugin '%s' could not be downloaded." msgstr "تعذّر تنزيل الملحقة ”%s“." -#: picard/ui/options/plugins.py:640 +#: picard/ui/options/plugins.py:641 msgid "Please try again later." msgstr "رجاء أعِد المحاولة لاحقا." @@ -5281,7 +5297,7 @@ msgstr "التقييمات" msgid "Preferred Releases" msgstr "" -#: picard/ui/options/releases.py:190 +#: picard/ui/options/releases.py:191 msgid "Reset all" msgstr "صفّر الكل" @@ -5289,17 +5305,17 @@ msgstr "صفّر الكل" msgid "File Naming" msgstr "تسمية الملفات" -#: picard/ui/options/renaming.py:196 picard/ui/options/scripting.py:100 +#: picard/ui/options/renaming.py:197 picard/ui/options/scripting.py:100 msgid "" "Open Scripting Documentation in " "your browser" msgstr "افتح توثيق السكربتات في المتصفّح" -#: picard/ui/options/renaming.py:209 +#: picard/ui/options/renaming.py:210 msgid "The location to move files to must not be empty." msgstr "المكان حيث ستُنقل إليه الملفات يجب ألا يكون فارغا." -#: picard/ui/options/renaming.py:219 +#: picard/ui/options/renaming.py:220 msgid "The file naming format must not be empty." msgstr "يجب ألا يكون تنسيق تسمية الملف فارغا" @@ -5307,7 +5323,7 @@ msgstr "يجب ألا يكون تنسيق تسمية الملف فارغا" msgid "Scripting" msgstr "السكربتات" -#: picard/ui/options/scripting.py:206 +#: picard/ui/options/scripting.py:207 msgid "Script Error" msgstr "عطل في السكربت" diff --git a/po/attributes/da.po b/po/attributes/da.po index d28ee459a..f6a7d497d 100644 --- a/po/attributes/da.po +++ b/po/attributes/da.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2020-09-03 17:21+0000\n" +"PO-Revision-Date: 2020-09-17 21:05+0000\n" "Last-Translator: Michael Wiencek \n" "Language-Team: Danish (http://www.transifex.com/musicbrainz/musicbrainz/language/da/)\n" "MIME-Version: 1.0\n" @@ -2168,7 +2168,6 @@ msgid "E-flat major" msgstr "Es-dur" #: DB:work_attribute_type_allowed_value/value:12 -#: DB:work_attribute_type_allowed_value/value:815 msgctxt "work_attribute_type_allowed_value" msgid "E-flat minor" msgstr "Es-mol" @@ -2333,6 +2332,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "F-flat major" msgstr "Fes-dur" +#: DB:work_attribute_type_allowed_value/value:815 +msgctxt "work_attribute_type_allowed_value" +msgid "F-flat minor" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:19 msgctxt "work_attribute_type_allowed_value" msgid "F-sharp major" @@ -3105,17 +3109,6 @@ msgctxt "work_attribute_type" msgid "ICE ID" msgstr "" -#: DB:work_attribute_type/description:34 -msgctxt "work_attribute_type" -msgid "ID assigned to a work by the British rights society PRS for Music" -msgstr "" - -#: DB:work_attribute_type/description:22 -msgctxt "work_attribute_type" -msgid "" -"ID for rights intermediaries Christian Copyright Licensing International" -msgstr "" - #: DB:work_attribute_type/description:24 msgctxt "work_attribute_type" msgid "ID for the Argentinean rights society SADAIC" @@ -3141,6 +3134,11 @@ msgctxt "work_attribute_type" msgid "ID for the Brazilian rights society ECAD" msgstr "" +#: DB:work_attribute_type/description:34 +msgctxt "work_attribute_type" +msgid "ID for the British rights society PRS for Music" +msgstr "" + #: DB:work_attribute_type/description:10 msgctxt "work_attribute_type" msgid "ID for the Canadian rights society SOCAN" @@ -3166,6 +3164,11 @@ msgctxt "work_attribute_type" msgid "ID for the Czech rights society OSA" msgstr "" +#: DB:work_attribute_type/description:51 +msgctxt "work_attribute_type" +msgid "ID for the Danish rights society KODA" +msgstr "" + #: DB:work_attribute_type/description:26 msgctxt "work_attribute_type" msgid "ID for the Dutch rights society BUMA/STEMRA" @@ -3261,6 +3264,11 @@ msgctxt "work_attribute_type" msgid "ID for the Spanish rights society SGAE" msgstr "" +#: DB:work_attribute_type/description:50 +msgctxt "work_attribute_type" +msgid "ID for the Swedish rights society STIM" +msgstr "" + #: DB:work_attribute_type/description:18 msgctxt "work_attribute_type" msgid "ID for the Swiss rights society SUISA" @@ -3301,6 +3309,11 @@ msgctxt "work_attribute_type" msgid "ID for the international (formerly US) rights society AMRA" msgstr "" +#: DB:work_attribute_type/description:22 +msgctxt "work_attribute_type" +msgid "ID for the private licensing company CCLI" +msgstr "" + #: DB:work_attribute_type/name:14 msgctxt "work_attribute_type" msgid "Identifiers" @@ -3537,6 +3550,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "Jōnpuri" +#: DB:work_attribute_type/name:51 +msgctxt "work_attribute_type" +msgid "KODA ID" +msgstr "" + #: DB:work_attribute_type/name:11 msgctxt "work_attribute_type" msgid "KOMCA ID" @@ -5733,6 +5751,11 @@ msgctxt "work_attribute_type" msgid "SPA ID" msgstr "" +#: DB:work_attribute_type/name:50 +msgctxt "work_attribute_type" +msgid "STIM ID" +msgstr "" + #: DB:work_attribute_type/name:18 msgctxt "work_attribute_type" msgid "SUISA ID" diff --git a/po/attributes/de.po b/po/attributes/de.po index 60bd52be3..be7387184 100644 --- a/po/attributes/de.po +++ b/po/attributes/de.po @@ -4,7 +4,7 @@ # nikki2 , 2012 # Daniel Schury , 2011 # Daniel Schury