From 3972801b465820bd18fabe81ab1456e07be466f7 Mon Sep 17 00:00:00 2001 From: scootergrisen Date: Wed, 15 Jun 2016 13:41:20 +0200 Subject: [PATCH 01/16] Update da.po --- locale/da.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/locale/da.po b/locale/da.po index fd7951280..c5597487d 100644 --- a/locale/da.po +++ b/locale/da.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Audacity 2.1.2\n" "Report-Msgid-Bugs-To: audacity-translation@lists.sourceforge.net\n" "POT-Creation-Date: 2015-09-07 12:40+0100\n" -"PO-Revision-Date: 2016-04-08 00:00+0100\n" +"PO-Revision-Date: 2016-06-15 00:00+0100\n" "Last-Translator: scootergrisen\n" "Language-Team: Danish\n" "Language: da\n" @@ -9377,7 +9377,7 @@ msgstr "" #: src/export/ExportFFmpeg.cpp:273 #, c-format msgid "FFmpeg : ERROR - Can't determine format description for file \"%s\"." -msgstr "FFmpeg : FEJL - kan ikke aflæse formatbeskrivelse for filen \"%s\"." +msgstr "FFmpeg : FEJL - kan ikke fastslå formatbeskrivelse for filen \"%s\"." #: src/export/ExportFFmpeg.cpp:274 src/export/ExportFFmpeg.cpp:282 #: src/export/ExportFFmpeg.cpp:294 src/export/ExportFFmpeg.cpp:306 @@ -9617,7 +9617,7 @@ msgstr "Fuld søgning" #: src/export/ExportFFmpegDialogs.cpp:1295 msgid "Log search" -msgstr "Bevar søgning" +msgstr "Logsøgning" #: src/export/ExportFFmpegDialogs.cpp:1307 msgid "Configure custom FFmpeg options" @@ -9837,8 +9837,8 @@ msgid "" "Full search - default" msgstr "" "Metode til forudsigelse af rækkefølge\n" -"Vurdér - hurtigst, lavest komprimering\n" -"Søg i log - langsomst, bedst komprimering\n" +"Anslået - hurtigst, lavere komprimering\n" +"Logsøgning - langsomst, bedste komprimering\n" "Fuld søgning - standard" #: src/export/ExportFFmpegDialogs.cpp:1496 From 927d9accea2a3726eac7e4e52890e34627ff6351 Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Mon, 20 Jun 2016 21:28:53 +0300 Subject: [PATCH 02/16] Update Ukrainian translation --- locale/uk.po | 4374 +++++++++++++++++++++++++++----------------------- 1 file changed, 2408 insertions(+), 1966 deletions(-) diff --git a/locale/uk.po b/locale/uk.po index f7c4869ac..6ed60aaa2 100644 --- a/locale/uk.po +++ b/locale/uk.po @@ -4,12 +4,13 @@ # # Audacity Team , 2007. # Yuri Chornoivan , 2010, 2011, 2012, 2013, 2014, 2015, 2016. +#: src/TimerRecordDialog.cpp:907 msgid "" msgstr "" "Project-Id-Version: Audacity 2.0.0\n" "Report-Msgid-Bugs-To: audacity-translation@lists.sourceforge.net\n" -"POT-Creation-Date: 2016-03-16 19:07+0200\n" -"PO-Revision-Date: 2016-03-16 19:41+0200\n" +"POT-Creation-Date: 2016-06-20 20:27+0300\n" +"PO-Revision-Date: 2016-06-20 21:21+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -22,7 +23,7 @@ msgstr "" #: lib-src/FileDialog/gtk/FileDialogPrivate.cpp:75 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" -msgstr "Файл «%s» вже присутній, ви справді хочете його переписати?" +msgstr "Файл «%s» вже існує, ви справді хочете його переписати?" #: lib-src/FileDialog/gtk/FileDialogPrivate.cpp:78 src/LangChoice.cpp:135 msgid "Confirm" @@ -33,20 +34,20 @@ msgid "Please choose an existing file." msgstr "Будь ласка, виберіть наявний файл." #: lib-src/FileDialog/gtk/FileDialogPrivate.cpp:92 src/AutoRecovery.cpp:159 -#: src/AutoRecovery.cpp:196 src/Menus.cpp:4063 src/Menus.cpp:4075 -#: src/Menus.cpp:6706 src/Menus.cpp:6785 src/Project.cpp:2784 -#: src/Project.cpp:4802 src/Project.cpp:4821 src/TrackPanel.cpp:9150 -#: src/WaveTrack.cpp:1312 src/WaveTrack.cpp:1331 src/WaveTrack.cpp:2530 -#: src/effects/Contrast.cpp:66 src/effects/Contrast.cpp:72 -#: src/effects/Contrast.cpp:82 src/effects/Contrast.cpp:88 -#: src/effects/Contrast.cpp:98 src/effects/Contrast.cpp:118 -#: src/effects/Effect.cpp:2686 src/effects/Generator.cpp:59 -#: src/effects/nyquist/Nyquist.cpp:410 src/export/ExportFFmpeg.cpp:816 -#: src/export/ExportMP2.cpp:235 src/prefs/DirectoriesPrefs.cpp:211 -#: src/prefs/DirectoriesPrefs.cpp:239 src/prefs/KeyConfigPrefs.cpp:518 -#: src/prefs/KeyConfigPrefs.cpp:532 src/prefs/KeyConfigPrefs.cpp:557 -#: src/prefs/KeyConfigPrefs.cpp:1056 src/toolbars/ControlToolBar.cpp:653 -#: src/toolbars/ControlToolBar.cpp:1021 +#: src/AutoRecovery.cpp:196 src/Menus.cpp:4100 src/Menus.cpp:4112 +#: src/Menus.cpp:6784 src/Menus.cpp:6863 src/Project.cpp:2873 +#: src/Project.cpp:4871 src/Project.cpp:4890 src/TimerRecordDialog.cpp:502 +#: src/TimerRecordDialog.cpp:673 src/TrackPanel.cpp:8288 +#: src/WaveTrack.cpp:1321 src/WaveTrack.cpp:1340 src/WaveTrack.cpp:2541 +#: src/effects/Contrast.cpp:74 src/effects/Contrast.cpp:81 +#: src/effects/Contrast.cpp:101 src/effects/Contrast.cpp:107 +#: src/effects/Contrast.cpp:117 src/effects/Effect.cpp:2671 +#: src/effects/Generator.cpp:59 src/effects/nyquist/Nyquist.cpp:410 +#: src/export/ExportFFmpeg.cpp:841 src/export/ExportMP2.cpp:229 +#: src/prefs/DirectoriesPrefs.cpp:212 src/prefs/DirectoriesPrefs.cpp:241 +#: src/prefs/KeyConfigPrefs.cpp:518 src/prefs/KeyConfigPrefs.cpp:532 +#: src/prefs/KeyConfigPrefs.cpp:557 src/prefs/KeyConfigPrefs.cpp:1056 +#: src/toolbars/ControlToolBar.cpp:673 src/toolbars/ControlToolBar.cpp:1086 msgid "Error" msgstr "Помилка" @@ -178,13 +179,13 @@ msgid "Output" msgstr "Виведення" #: lib-src/mod-nyq-bench/NyqBench.cpp:1058 -#: src/effects/nyquist/Nyquist.cpp:2134 +#: src/effects/nyquist/Nyquist.cpp:2127 msgid "Load Nyquist script" msgstr "Завантажити скрипт Nyquist" #: lib-src/mod-nyq-bench/NyqBench.cpp:1061 #: lib-src/mod-nyq-bench/NyqBench.cpp:1107 -#: src/effects/nyquist/Nyquist.cpp:2159 +#: src/effects/nyquist/Nyquist.cpp:2152 msgid "Nyquist scripts (*.ny)|*.ny|Lisp scripts (*.lsp)|*.lsp|All files|*" msgstr "скрипти Nyquist (*.ny)|*.ny|скрипти Lisp (*.lsp)|*.lsp|усі файли|*" @@ -196,14 +197,14 @@ msgstr "Скрипти не збережено." #: lib-src/mod-nyq-bench/NyqBench.cpp:1090 #: lib-src/mod-nyq-bench/NyqBench.cpp:1120 #: lib-src/mod-nyq-bench/NyqBench.cpp:1632 src/AudacityLogger.cpp:313 -#: src/export/Export.cpp:595 src/export/Export.cpp:616 -#: src/export/Export.cpp:660 src/import/ImportPCM.cpp:240 +#: src/export/Export.cpp:592 src/export/Export.cpp:613 +#: src/export/Export.cpp:656 src/import/ImportPCM.cpp:245 #: src/widgets/Warning.cpp:55 msgid "Warning" msgstr "Попередження" #: lib-src/mod-nyq-bench/NyqBench.cpp:1104 -#: src/effects/nyquist/Nyquist.cpp:2156 +#: src/effects/nyquist/Nyquist.cpp:2149 msgid "Save Nyquist script" msgstr "Збереження скрипту Nyquist" @@ -288,7 +289,7 @@ msgstr "Зберегти як" msgid "Save script as..." msgstr "Зберегти скрипт як…" -#: lib-src/mod-nyq-bench/NyqBench.cpp:1720 src/toolbars/EditToolBar.cpp:202 +#: lib-src/mod-nyq-bench/NyqBench.cpp:1720 src/toolbars/EditToolBar.cpp:207 msgid "Copy" msgstr "Копіювати" @@ -296,8 +297,8 @@ msgstr "Копіювати" msgid "Copy to clipboard" msgstr "Скопіювати до буфера" -#: lib-src/mod-nyq-bench/NyqBench.cpp:1721 src/Menus.cpp:3895 -#: src/toolbars/EditToolBar.cpp:201 +#: lib-src/mod-nyq-bench/NyqBench.cpp:1721 src/Menus.cpp:3934 +#: src/toolbars/EditToolBar.cpp:206 msgid "Cut" msgstr "Вирізати" @@ -305,9 +306,9 @@ msgstr "Вирізати" msgid "Cut to clipboard" msgstr "Вирізати до буфера" -#: lib-src/mod-nyq-bench/NyqBench.cpp:1722 src/Menus.cpp:4191 -#: src/Menus.cpp:4215 src/Menus.cpp:4321 src/toolbars/EditToolBar.cpp:135 -#: src/toolbars/EditToolBar.cpp:203 +#: lib-src/mod-nyq-bench/NyqBench.cpp:1722 src/Menus.cpp:4223 +#: src/Menus.cpp:4247 src/Menus.cpp:4352 src/toolbars/EditToolBar.cpp:135 +#: src/toolbars/EditToolBar.cpp:208 msgid "Paste" msgstr "Вставити" @@ -332,8 +333,8 @@ msgid "Select all text" msgstr "Позначити увесь текст" #: lib-src/mod-nyq-bench/NyqBench.cpp:1726 src/prefs/KeyConfigPrefs.cpp:883 -#: src/toolbars/EditToolBar.cpp:144 src/toolbars/EditToolBar.cpp:206 -#: src/widgets/KeyView.cpp:651 +#: src/toolbars/EditToolBar.cpp:144 src/toolbars/EditToolBar.cpp:211 +#: src/widgets/KeyView.cpp:650 msgid "Undo" msgstr "Вернути" @@ -342,8 +343,8 @@ msgid "Undo last change" msgstr "Скасувати останню зміну" #: lib-src/mod-nyq-bench/NyqBench.cpp:1727 src/prefs/KeyConfigPrefs.cpp:886 -#: src/toolbars/EditToolBar.cpp:146 src/toolbars/EditToolBar.cpp:207 -#: src/widgets/KeyView.cpp:655 +#: src/toolbars/EditToolBar.cpp:146 src/toolbars/EditToolBar.cpp:212 +#: src/widgets/KeyView.cpp:654 msgid "Redo" msgstr "Повторити" @@ -376,7 +377,7 @@ msgid "Go to top S-expr" msgstr "Перейти до найвищого S-виразу" #. i18n-hint: a direction. -#: lib-src/mod-nyq-bench/NyqBench.cpp:1733 src/Menus.cpp:3069 +#: lib-src/mod-nyq-bench/NyqBench.cpp:1733 src/Menus.cpp:3111 msgid "Up" msgstr "Вище" @@ -400,8 +401,8 @@ msgstr "Наступний" msgid "Go to next S-expr" msgstr "Перейти до наступного S-виразу" -#: lib-src/mod-nyq-bench/NyqBench.cpp:1737 src/Menus.cpp:5842 -#: src/Menus.cpp:5847 src/Menus.cpp:5852 src/effects/Contrast.cpp:220 +#: lib-src/mod-nyq-bench/NyqBench.cpp:1737 src/Menus.cpp:5875 +#: src/Menus.cpp:5880 src/Menus.cpp:5885 src/effects/Contrast.cpp:225 #: src/effects/ToneGen.cpp:319 msgid "Start" msgstr "Початок" @@ -411,9 +412,9 @@ msgid "Start script" msgstr "Запустити скрипт" #. i18n-hint: (verb) Stop playing audio -#: lib-src/mod-nyq-bench/NyqBench.cpp:1738 src/Menus.cpp:1141 -#: src/effects/Effect.cpp:3768 src/toolbars/ControlToolBar.cpp:169 -#: src/widgets/ProgressDialog.cpp:1181 +#: lib-src/mod-nyq-bench/NyqBench.cpp:1738 src/Menus.cpp:1094 +#: src/effects/Effect.cpp:3765 src/toolbars/ControlToolBar.cpp:177 +#: src/widgets/ProgressDialog.cpp:1200 msgid "Stop" msgstr "Зупинити" @@ -421,40 +422,91 @@ msgstr "Зупинити" msgid "Stop script" msgstr "Зупинити скрипт" -#: src/AboutDialog.cpp:54 src/AboutDialog.cpp:76 -msgid "co-founder" -msgstr "співзасновник" - -#: src/AboutDialog.cpp:61 +#: src/AboutDialog.cpp:52 msgid "quality assurance" msgstr "контроль якості" -#: src/AboutDialog.cpp:177 +#: src/AboutDialog.cpp:53 src/AboutDialog.cpp:56 src/AboutDialog.cpp:59 +#: src/AboutDialog.cpp:60 src/AboutDialog.cpp:62 src/AboutDialog.cpp:63 +#: src/AboutDialog.cpp:65 src/AboutDialog.cpp:71 src/AboutDialog.cpp:72 +#: src/AboutDialog.cpp:73 src/AboutDialog.cpp:74 src/AboutDialog.cpp:75 +#: src/AboutDialog.cpp:77 src/AboutDialog.cpp:78 src/AboutDialog.cpp:79 +#: src/AboutDialog.cpp:84 src/AboutDialog.cpp:85 src/AboutDialog.cpp:87 +#: src/AboutDialog.cpp:88 src/AboutDialog.cpp:89 src/AboutDialog.cpp:90 +#: src/AboutDialog.cpp:91 src/AboutDialog.cpp:92 src/AboutDialog.cpp:93 +#: src/AboutDialog.cpp:94 src/AboutDialog.cpp:95 src/AboutDialog.cpp:96 +#: src/AboutDialog.cpp:97 src/AboutDialog.cpp:98 src/AboutDialog.cpp:99 +#: src/AboutDialog.cpp:100 src/AboutDialog.cpp:101 src/AboutDialog.cpp:102 +#: src/AboutDialog.cpp:103 src/AboutDialog.cpp:104 src/AboutDialog.cpp:106 +#: src/AboutDialog.cpp:107 src/AboutDialog.cpp:108 src/AboutDialog.cpp:109 +#: src/AboutDialog.cpp:110 src/AboutDialog.cpp:111 src/AboutDialog.cpp:113 +#: src/AboutDialog.cpp:114 src/AboutDialog.cpp:116 src/AboutDialog.cpp:117 +#: src/AboutDialog.cpp:118 src/AboutDialog.cpp:119 src/AboutDialog.cpp:120 +#: src/AboutDialog.cpp:121 src/AboutDialog.cpp:122 src/AboutDialog.cpp:123 +#: src/AboutDialog.cpp:124 +msgid "developer" +msgstr "розробник" + +#: src/AboutDialog.cpp:54 +msgid "documentation and support, French" +msgstr "документація і супровід, французька" + +#: src/AboutDialog.cpp:55 +msgid "system administration" +msgstr "адміністрування системи" + +#: src/AboutDialog.cpp:57 src/AboutDialog.cpp:76 +msgid "co-founder and developer" +msgstr "співзасновник проекту, розробник" + +#: src/AboutDialog.cpp:61 src/AboutDialog.cpp:66 src/AboutDialog.cpp:80 +#: src/AboutDialog.cpp:81 +msgid "documentation and support" +msgstr "документація і супровід" + +#: src/AboutDialog.cpp:86 +msgid "accessibility advisor" +msgstr "поради з доступності" + +#: src/AboutDialog.cpp:105 +msgid "graphic artist" +msgstr "художник" + +#: src/AboutDialog.cpp:112 +msgid "composer" +msgstr "композитор" + +#: src/AboutDialog.cpp:115 +msgid "Nyquist plug-ins" +msgstr "додатки Nyquist" + +#: src/AboutDialog.cpp:182 +msgid "incorporating" +msgstr "включно з" + +#: src/AboutDialog.cpp:227 msgid "About Audacity" msgstr "Про Audacity" -#. i18n-hint: "OK... Audacious" appears on a button at the -#. * foot of the 'About Audacity' dialog box, after some text to read. -#. * In English it is slightly humorous alternative to an 'OK' button. -#. * If the humour doesn't work in your language, then just use whatever -#. * you would use for a translation for 'OK' on a button. -#: src/AboutDialog.cpp:197 -msgid "OK... Audacious!" -msgstr "Гаразд… Круто!" +#. i18n-hint: In most languages OK is to be translated as OK. It appears on a button. +#: src/AboutDialog.cpp:242 src/effects/nyquist/Nyquist.cpp:2265 +#: src/widgets/ErrorDialog.cpp:126 src/widgets/MultiDialog.cpp:128 +msgid "OK" +msgstr "Гаразд" -#: src/AboutDialog.cpp:212 +#: src/AboutDialog.cpp:257 msgid "" -"Audacity is a free program written by a worldwide team of volunteer developers. Audacity is available for Windows, Mac, " -"and GNU/Linux (and other Unix-like systems)." +"Audacity is a free program written by a worldwide team of volunteers. Audacity is available for Windows, Mac, and GNU/" +"Linux (and other Unix-like systems)." msgstr "" -"Audacity — вільна програма, створена командою добровольців, розробників з усього світу. Audacity можна користуватися у Windows, " -"Mac OS X, GNU/Linux та інших подібних до Unix системах." +"Audacity — вільна програма, створена командою добровольців з усього світу. Audacity можна користуватися у Windows, Mac " +"OS X, GNU/Linux та інших подібних до Unix системах." -#: src/AboutDialog.cpp:222 +#: src/AboutDialog.cpp:267 msgid "" "If you find a bug or have a suggestion for us, please write, in English, to " "our feedback address. For " @@ -473,7 +525,7 @@ msgstr "" #. * your own name(s) to the credits. #. * #. * For example: "English translation by Dominic Mazzoni." -#: src/AboutDialog.cpp:235 src/AboutDialog.cpp:237 +#: src/AboutDialog.cpp:280 src/AboutDialog.cpp:282 msgid "translator_credits" msgstr "" "Переклад українською:
\n" @@ -481,52 +533,53 @@ msgstr "" "Андрій Лагуш,
\n" "Юрій Чорноіван" -#: src/AboutDialog.cpp:247 +#: src/AboutDialog.cpp:292 msgid "" -"free, open source, cross-platform software for recording and editing " -"sounds
" +"Free, open source, cross-platform software for recording and editing sounds." msgstr "" "вільне програмне забезпечення з відкритим кодом, здатне працювати на " "багатьох програмних платформах і призначене для запису і редагування " -"звукових даних
" +"звукових даних." -#: src/AboutDialog.cpp:251 +#: src/AboutDialog.cpp:296 msgid "Credits" msgstr "Подяки" -#: src/AboutDialog.cpp:254 -msgid "Audacity Developers" -msgstr "Розробники Audacity" +#: src/AboutDialog.cpp:298 +msgid "Team Members" +msgstr "Учасники команди" -#: src/AboutDialog.cpp:257 -msgid "Audacity Support Team" -msgstr "Команда підтримки Audacity" +#: src/AboutDialog.cpp:301 +msgid "Emeritus:" +msgstr "Заслужені колишні учасники:" -#: src/AboutDialog.cpp:260 -msgid "Emeritus Developers" -msgstr "Заслужені розробники" +#: src/AboutDialog.cpp:302 +msgid "Distinguished Audacity Team members, not currently active" +msgstr "" +"Визначні учасники команди розробників Audacity, які припинили участь у " +"проекті" -#: src/AboutDialog.cpp:263 -msgid " Emeritus Team Members" -msgstr "Заслужені члени команди" +#: src/AboutDialog.cpp:305 +msgid "Contributors" +msgstr "Учасники розробки" -#: src/AboutDialog.cpp:266 -msgid "Other Contributors" -msgstr "Інші помічники проекту" +#: src/AboutDialog.cpp:308 +msgid "Translators" +msgstr "Перекладачі" -#: src/AboutDialog.cpp:269 -msgid "Audacity is based on code from the following projects:" -msgstr "Audacity використовує код наступних проектів:" +#: src/AboutDialog.cpp:312 src/prefs/LibraryPrefs.cpp:49 +msgid "Libraries" +msgstr "Бібліотеки" -#: src/AboutDialog.cpp:272 +#: src/AboutDialog.cpp:316 msgid "Special thanks:" msgstr "Особливі подяки:" -#: src/AboutDialog.cpp:275 +#: src/AboutDialog.cpp:319 msgid "Audacity® software is copyright" msgstr "Авторські права на програму Audacity® належать" -#: src/AboutDialog.cpp:277 +#: src/AboutDialog.cpp:321 msgid "" "The name Audacity® is a registered trademark of Dominic Mazzoni." msgstr "" @@ -534,130 +587,130 @@ msgstr "" "Домініка Маццоні (Dominic Mazzoni)." #. i18n-hint: Information about when audacity was compiled -#: src/AboutDialog.cpp:334 src/AboutDialog.cpp:347 src/AboutDialog.cpp:518 +#: src/AboutDialog.cpp:378 src/AboutDialog.cpp:391 src/AboutDialog.cpp:562 msgid "Build Information" msgstr "Інформація про випуск" -#: src/AboutDialog.cpp:340 src/PluginManager.cpp:490 +#: src/AboutDialog.cpp:384 src/PluginManager.cpp:490 #: src/prefs/ModulePrefs.cpp:99 msgid "Enabled" msgstr "Увімкнено" -#: src/AboutDialog.cpp:341 src/PluginManager.cpp:491 +#: src/AboutDialog.cpp:385 src/PluginManager.cpp:491 #: src/prefs/ModulePrefs.cpp:98 msgid "Disabled" msgstr "Вимкнено" -#: src/AboutDialog.cpp:351 +#: src/AboutDialog.cpp:395 msgid "File Format Support" msgstr "Підтримка форматів файлів" #. i18n-hint: This is what the library (libmad) does - imports MP3 files -#: src/AboutDialog.cpp:361 src/AboutDialog.cpp:363 +#: src/AboutDialog.cpp:405 src/AboutDialog.cpp:407 msgid "MP3 Importing" msgstr "Імпортування MP3" -#: src/AboutDialog.cpp:370 src/AboutDialog.cpp:373 +#: src/AboutDialog.cpp:414 src/AboutDialog.cpp:417 msgid "Ogg Vorbis Import and Export" msgstr "Імпорт та експорт файлів Ogg Vorbis" -#: src/AboutDialog.cpp:377 src/AboutDialog.cpp:380 +#: src/AboutDialog.cpp:421 src/AboutDialog.cpp:424 msgid "ID3 tag support" msgstr "Підтримка міток ID3" -#: src/AboutDialog.cpp:387 src/AboutDialog.cpp:390 +#: src/AboutDialog.cpp:431 src/AboutDialog.cpp:434 msgid "FLAC import and export" msgstr "Імпорт та експорт файлів FLAC" -#: src/AboutDialog.cpp:395 src/AboutDialog.cpp:398 +#: src/AboutDialog.cpp:439 src/AboutDialog.cpp:442 msgid "MP2 export" msgstr "Експорт MP2" -#: src/AboutDialog.cpp:403 src/AboutDialog.cpp:406 +#: src/AboutDialog.cpp:447 src/AboutDialog.cpp:450 msgid "Import via QuickTime" msgstr "Імпорт за допомогою QuickTime" -#: src/AboutDialog.cpp:411 src/AboutDialog.cpp:413 +#: src/AboutDialog.cpp:455 src/AboutDialog.cpp:457 msgid "FFmpeg Import/Export" msgstr "Імпортування/Експортування даних FFmpeg" -#: src/AboutDialog.cpp:417 src/AboutDialog.cpp:419 +#: src/AboutDialog.cpp:461 src/AboutDialog.cpp:463 msgid "Import via GStreamer" msgstr "Імпорт за допомогою GStreamer" #. i18n-hint: Libraries that are essential to audacity -#: src/AboutDialog.cpp:425 +#: src/AboutDialog.cpp:469 msgid "Core Libraries" msgstr "Головні бібліотеки" -#: src/AboutDialog.cpp:429 +#: src/AboutDialog.cpp:473 msgid "Sample rate conversion" msgstr "Зміна частоти дискретизації" -#: src/AboutDialog.cpp:432 +#: src/AboutDialog.cpp:476 msgid "Audio playback and recording" msgstr "Відтворення аудіо та запис" -#: src/AboutDialog.cpp:435 +#: src/AboutDialog.cpp:479 msgid "Cross-platform GUI library" msgstr "Бібліотека для побудови графічних інтерфейсів на різних платформах" -#: src/AboutDialog.cpp:439 +#: src/AboutDialog.cpp:483 msgid "Features" msgstr "Можливості" -#: src/AboutDialog.cpp:443 src/AboutDialog.cpp:446 src/AboutDialog.cpp:451 -#: src/AboutDialog.cpp:454 src/AboutDialog.cpp:459 src/AboutDialog.cpp:462 -#: src/AboutDialog.cpp:467 src/AboutDialog.cpp:470 src/AboutDialog.cpp:475 -#: src/AboutDialog.cpp:478 src/AboutDialog.cpp:483 src/AboutDialog.cpp:486 +#: src/AboutDialog.cpp:487 src/AboutDialog.cpp:490 src/AboutDialog.cpp:495 +#: src/AboutDialog.cpp:498 src/AboutDialog.cpp:503 src/AboutDialog.cpp:506 +#: src/AboutDialog.cpp:511 src/AboutDialog.cpp:514 src/AboutDialog.cpp:519 +#: src/AboutDialog.cpp:522 src/AboutDialog.cpp:527 src/AboutDialog.cpp:530 msgid "Plug-in support" msgstr "Підтримка додатків" -#: src/AboutDialog.cpp:491 src/AboutDialog.cpp:494 +#: src/AboutDialog.cpp:535 src/AboutDialog.cpp:538 msgid "Sound card mixer support" msgstr "Підтримка мікшування звуковою картою" -#: src/AboutDialog.cpp:499 src/AboutDialog.cpp:502 +#: src/AboutDialog.cpp:543 src/AboutDialog.cpp:546 msgid "Pitch and Tempo Change support" msgstr "Підтримка зміни кроку і темпу" -#: src/AboutDialog.cpp:507 src/AboutDialog.cpp:510 +#: src/AboutDialog.cpp:551 src/AboutDialog.cpp:554 msgid "Extreme Pitch and Tempo Change support" msgstr "Підтримка екстремальної зміни такту і темпу" -#: src/AboutDialog.cpp:522 +#: src/AboutDialog.cpp:566 msgid "Program build date: " msgstr "Дата компіляції програми: " -#: src/AboutDialog.cpp:528 +#: src/AboutDialog.cpp:572 msgid "Commit Id:" msgstr "Ід. внеску:" -#: src/AboutDialog.cpp:533 src/AboutDialog.cpp:535 +#: src/AboutDialog.cpp:577 src/AboutDialog.cpp:579 msgid "Build type:" msgstr "Тип випуску:" -#: src/AboutDialog.cpp:533 +#: src/AboutDialog.cpp:577 msgid "Debug build" msgstr "Випуск для перевірки" -#: src/AboutDialog.cpp:535 +#: src/AboutDialog.cpp:579 msgid "Release build" msgstr "Остаточна версія" -#: src/AboutDialog.cpp:541 +#: src/AboutDialog.cpp:585 msgid "Installation Prefix: " msgstr "Шлях встановлення: " -#: src/AboutDialog.cpp:546 +#: src/AboutDialog.cpp:590 msgid "Settings folder: " msgstr "Тека з параметрами: " -#: src/AboutDialog.cpp:561 +#: src/AboutDialog.cpp:605 msgid "GPL License" msgstr "Ліцензія GPL" -#: src/AudacityApp.cpp:816 +#: src/AudacityApp.cpp:821 #, c-format msgid "" "%s could not be found.\n" @@ -668,7 +721,7 @@ msgstr "" "\n" "Його вилучено зі списку нещодавніх файлів." -#: src/AudacityApp.cpp:912 +#: src/AudacityApp.cpp:918 #, c-format msgid "" "One or more external audio files could not be found.\n" @@ -690,70 +743,70 @@ msgstr "" "Може не вистачати інших файлів. Скористайтеся пунктом меню «Файл -> " "Перевірити залежності», щоб переглянути дані щодо розташування файлів." -#: src/AudacityApp.cpp:926 +#: src/AudacityApp.cpp:932 msgid "Files Missing" msgstr "Не вистачає файлів" -#: src/AudacityApp.cpp:1012 +#: src/AudacityApp.cpp:1018 #, c-format msgid "Language \"%s\" is unknown" msgstr "Невідома мова «%s»" -#: src/AudacityApp.cpp:1094 +#: src/AudacityApp.cpp:1100 msgid "Report generated to:" msgstr "Звіт створено тут:" -#: src/AudacityApp.cpp:1095 +#: src/AudacityApp.cpp:1101 msgid "Audacity Support Data" msgstr "Дані щодо супроводу Audacity" -#: src/AudacityApp.cpp:1180 +#: src/AudacityApp.cpp:1190 msgid "Master Gain Control" msgstr "Загальний регулятор гучності" -#: src/AudacityApp.cpp:1349 +#: src/AudacityApp.cpp:1353 msgid "Block size must be within 256 to 100000000\n" msgstr "Розмір блоку має належати діапазону від 256 до 100000000\n" -#: src/AudacityApp.cpp:1362 +#: src/AudacityApp.cpp:1366 msgid "File decoded successfully\n" msgstr "Файл успішно декодовано\n" -#: src/AudacityApp.cpp:1366 +#: src/AudacityApp.cpp:1370 msgid "Decoding failed\n" msgstr "Помилка під час декодування\n" -#: src/AudacityApp.cpp:1387 +#: src/AudacityApp.cpp:1391 msgid "Audacity is starting up..." msgstr "Триває запуск Audacity…" #. i18n-hint: "New" is an action (verb) to create a NEW project -#: src/AudacityApp.cpp:1405 src/Menus.cpp:355 +#: src/AudacityApp.cpp:1409 src/Menus.cpp:302 msgid "&New" msgstr "&Створити" #. i18n-hint: (verb) -#: src/AudacityApp.cpp:1406 src/Menus.cpp:360 +#: src/AudacityApp.cpp:1410 src/Menus.cpp:307 msgid "&Open..." msgstr "&Відкрити…" -#: src/AudacityApp.cpp:1407 +#: src/AudacityApp.cpp:1411 msgid "Open &Recent..." msgstr "Відкрити &недавні…" -#: src/AudacityApp.cpp:1408 src/Menus.cpp:1110 +#: src/AudacityApp.cpp:1412 src/Menus.cpp:1063 msgid "&About Audacity..." msgstr "&Про Audacity…" -#: src/AudacityApp.cpp:1409 +#: src/AudacityApp.cpp:1413 msgid "&Preferences..." msgstr "&Параметри…" -#: src/AudacityApp.cpp:1413 src/Menus.cpp:351 +#: src/AudacityApp.cpp:1417 src/Menus.cpp:298 msgid "&File" msgstr "&Файл" -#: src/AudacityApp.cpp:1598 +#: src/AudacityApp.cpp:1620 msgid "" "Audacity could not find a safe place to store temporary files.\n" "Audacity needs a place where automatic cleanup programs won't delete the " @@ -765,7 +818,7 @@ msgstr "" "пошкодять тимчасові файли.\n" "Вкажіть відповідний каталог у діалоговому вікні уподобань." -#: src/AudacityApp.cpp:1600 +#: src/AudacityApp.cpp:1622 msgid "" "Audacity could not find a place to store temporary files.\n" "Please enter an appropriate directory in the preferences dialog." @@ -773,7 +826,7 @@ msgstr "" "Програмі не вдається знайти каталог для зберігання тимчасових файлів.\n" "Вкажіть відповідний каталог у діалоговому вікні уподобань." -#: src/AudacityApp.cpp:1610 +#: src/AudacityApp.cpp:1632 msgid "" "Audacity is now going to exit. Please launch Audacity again to use the new " "temporary directory." @@ -781,7 +834,7 @@ msgstr "" "Audacity готується до завершення. Повторно завантажте програму для " "використання нової теки тимчасових файлів." -#: src/AudacityApp.cpp:1644 +#: src/AudacityApp.cpp:1666 msgid "" "Running two copies of Audacity simultaneously may cause\n" "data loss or cause your system to crash.\n" @@ -791,7 +844,7 @@ msgstr "" "до втрати даних або краху системи.\n" "\n" -#: src/AudacityApp.cpp:1651 +#: src/AudacityApp.cpp:1673 msgid "" "Audacity was not able to lock the temporary files directory.\n" "This folder may be in use by another copy of Audacity.\n" @@ -799,19 +852,19 @@ msgstr "" "Audacity не може заблокувати теку з тимчасовими файлами.\n" "Можливо цю теку вже використовує інша копія Audacity.\n" -#: src/AudacityApp.cpp:1653 +#: src/AudacityApp.cpp:1675 msgid "Do you still want to start Audacity?" msgstr "Досі бажаєте запустити Audacity?" -#: src/AudacityApp.cpp:1655 +#: src/AudacityApp.cpp:1677 msgid "Error Locking Temporary Folder" msgstr "Помилка при блокуванні теки тимчасових фалів" -#: src/AudacityApp.cpp:1752 +#: src/AudacityApp.cpp:1770 msgid "The system has detected that another copy of Audacity is running.\n" msgstr "Система визначила, що вже запущено іншу копію Audacity.\n" -#: src/AudacityApp.cpp:1754 +#: src/AudacityApp.cpp:1772 msgid "" "Use the New or Open commands in the currently running Audacity\n" "process to open multiple projects simultaneously.\n" @@ -820,43 +873,43 @@ msgstr "" "команди «Створити» або «Відкрити» у копії\n" "Audacity, що зараз виконується.\n" -#: src/AudacityApp.cpp:1755 +#: src/AudacityApp.cpp:1773 msgid "Audacity is already running" msgstr "Audacity вже запущено" #. i18n-hint: This controls the number of bytes that Audacity will #. * use when writing files to the disk -#: src/AudacityApp.cpp:1838 +#: src/AudacityApp.cpp:1855 msgid "set max disk block size in bytes" msgstr "встановити максимальний розмір блоку диску у байтах" #. i18n-hint: This decodes an autosave file -#: src/AudacityApp.cpp:1842 +#: src/AudacityApp.cpp:1859 msgid "decode an autosave file" msgstr "декодувати файл автозбереження" #. i18n-hint: This displays a list of available options -#: src/AudacityApp.cpp:1846 +#: src/AudacityApp.cpp:1863 msgid "this help message" msgstr "це повідомлення" #. i18n-hint: This runs a set of automatic tests on Audacity itself -#: src/AudacityApp.cpp:1850 +#: src/AudacityApp.cpp:1867 msgid "run self diagnostics" msgstr "запуск самодіагностики" #. i18n-hint: This displays the Audacity version -#: src/AudacityApp.cpp:1853 +#: src/AudacityApp.cpp:1870 msgid "display Audacity version" msgstr "показати версію Audacity" #. i18n-hint: This is a list of one or more files that Audacity #. * should open upon startup -#: src/AudacityApp.cpp:1857 +#: src/AudacityApp.cpp:1874 msgid "audio or project file name" msgstr "назва файла звукових даних або проекту" -#: src/AudacityApp.cpp:2133 +#: src/AudacityApp.cpp:2141 msgid "" "Audacity project (.AUP) files are not currently \n" "associated with Audacity. \n" @@ -868,7 +921,7 @@ msgstr "" "\n" "Пов'язати їх, щоб вони відкривались подвійним клацанням?" -#: src/AudacityApp.cpp:2134 +#: src/AudacityApp.cpp:2142 msgid "Audacity Project Files" msgstr "Файли проектів Audacity" @@ -876,17 +929,17 @@ msgstr "Файли проектів Audacity" msgid "Audacity Log" msgstr "Журнал Audacity" -#: src/AudacityLogger.cpp:202 src/Tags.cpp:793 +#: src/AudacityLogger.cpp:202 src/Tags.cpp:831 msgid "&Save..." msgstr "З&берегти…" -#: src/AudacityLogger.cpp:203 src/Tags.cpp:772 +#: src/AudacityLogger.cpp:203 src/Tags.cpp:810 #: src/prefs/KeyConfigPrefs.cpp:273 src/prefs/KeyConfigPrefs.cpp:790 msgid "Cl&ear" msgstr "Спорожн&ити" -#: src/AudacityLogger.cpp:204 src/FreqWindow.cpp:468 src/Menus.cpp:372 -#: src/ShuttleGui.cpp:2168 src/effects/Contrast.cpp:327 +#: src/AudacityLogger.cpp:204 src/FreqWindow.cpp:468 src/Menus.cpp:319 +#: src/ShuttleGui.cpp:2167 src/effects/Contrast.cpp:336 msgid "&Close" msgstr "&Закрити" @@ -902,11 +955,11 @@ msgstr "Зберігати журнал до:" msgid "Couldn't save log to file: " msgstr "Не вдалося зберегти журнал до цього файла: " -#: src/AudioIO.cpp:902 +#: src/AudioIO.cpp:1021 msgid "Could not find any audio devices.\n" msgstr "Не вдалося знайти жодного звукового пристрою.\n" -#: src/AudioIO.cpp:903 +#: src/AudioIO.cpp:1022 msgid "" "You will not be able to play or record audio.\n" "\n" @@ -914,19 +967,19 @@ msgstr "" "Ви не зможете відтворювати та записувати звук.\n" "\n" -#: src/AudioIO.cpp:906 src/AudioIO.cpp:926 +#: src/AudioIO.cpp:1025 src/AudioIO.cpp:1045 msgid "Error: " msgstr "Помилка: " -#: src/AudioIO.cpp:909 +#: src/AudioIO.cpp:1028 msgid "Error Initializing Audio" msgstr "Помилка при ініціалізації звуку" -#: src/AudioIO.cpp:922 +#: src/AudioIO.cpp:1041 msgid "There was an error initializing the midi i/o layer.\n" msgstr "Під час спроби ініціалізації шару вводу-виводу midi сталася помилка.\n" -#: src/AudioIO.cpp:923 +#: src/AudioIO.cpp:1042 msgid "" "You will not be able to play midi.\n" "\n" @@ -934,15 +987,15 @@ msgstr "" "Ви не зможете відтворювати midi.\n" "\n" -#: src/AudioIO.cpp:929 +#: src/AudioIO.cpp:1048 msgid "Error Initializing Midi" msgstr "Помилка при ініціалізації MIDI" -#: src/AudioIO.cpp:1709 src/AudioIO.cpp:1751 +#: src/AudioIO.cpp:1870 src/AudioIO.cpp:1909 msgid "Out of memory!" msgstr "Не вистачає пам'яті!" -#: src/AudioIO.cpp:2342 +#: src/AudioIO.cpp:2491 msgid "" "Latency Correction setting has caused the recorded audio to be hidden before " "zero.\n" @@ -956,11 +1009,11 @@ msgstr "" "Можливо, слід скористатися інструментом «Часовий зсув» (<—-> або F5), для " "переміщення доріжки у правильне положення." -#: src/AudioIO.cpp:2343 +#: src/AudioIO.cpp:2492 msgid "Latency problem" msgstr "Проблема із затримкою" -#: src/AudioIO.cpp:3827 +#: src/AudioIO.cpp:3997 msgid "" "Automated Recording Level Adjustment stopped. It was not possible to " "optimize it more. Still too high." @@ -968,13 +1021,13 @@ msgstr "" "Роботу інструменту автоматичного виправлення рівня запису зупинено. Рівень " "вже неможливо покращити. Рівень гучності зависокий." -#: src/AudioIO.cpp:3835 +#: src/AudioIO.cpp:4005 #, c-format msgid "Automated Recording Level Adjustment decreased the volume to %f." msgstr "" "Інструмент встановлення автоматичної гучності запису знизив гучність до %f." -#: src/AudioIO.cpp:3850 +#: src/AudioIO.cpp:4020 msgid "" "Automated Recording Level Adjustment stopped. It was not possible to " "optimize it more. Still too low." @@ -982,14 +1035,14 @@ msgstr "" "Роботу інструменту автоматичного виправлення рівня запису зупинено. Рівень " "вже неможливо покращити. Рівень гучності занизький." -#: src/AudioIO.cpp:3862 +#: src/AudioIO.cpp:4032 #, c-format msgid "Automated Recording Level Adjustment increased the volume to %.2f." msgstr "" "Інструмент автоматичного визначення гучності запису збільшив гучність до " "%.2f." -#: src/AudioIO.cpp:3896 +#: src/AudioIO.cpp:4066 msgid "" "Automated Recording Level Adjustment stopped. The total number of analyses " "has been exceeded without finding an acceptable volume. Still too high." @@ -998,7 +1051,7 @@ msgstr "" "Перевищено загальну кількість точок аналізу, прийнятного рівня гучності не " "знайдено. Гучність залишається занадто високою." -#: src/AudioIO.cpp:3898 +#: src/AudioIO.cpp:4068 msgid "" "Automated Recording Level Adjustment stopped. The total number of analyses " "has been exceeded without finding an acceptable volume. Still too low." @@ -1007,7 +1060,7 @@ msgstr "" "Перевищено загальну кількість точок аналізу, прийнятного рівня гучності не " "знайдено. Гучність залишається занадто низькою." -#: src/AudioIO.cpp:3901 +#: src/AudioIO.cpp:4071 #, c-format msgid "" "Automated Recording Level Adjustment stopped. %.2f seems an acceptable " @@ -1033,7 +1086,7 @@ msgid "Recoverable projects" msgstr "Придатні до відновлення проекти" #. i18n-hint: (noun). It's the name of the project to recover. -#: src/AutoRecovery.cpp:86 src/PluginManager.cpp:572 +#: src/AutoRecovery.cpp:86 src/PluginManager.cpp:571 msgid "Name" msgstr "Назва" @@ -1068,6 +1121,7 @@ msgid "Confirm Discard Projects" msgstr "Підтвердження відкидання проектів" #: src/AutoRecovery.cpp:158 src/AutoRecovery.cpp:195 +#: src/TimerRecordDialog.cpp:501 msgid "Could not enumerate files in auto save directory." msgstr "Неможливо скласти список файлів у теці автозбереження." @@ -1179,7 +1233,7 @@ msgid "Select file(s) for batch processing..." msgstr "Оберіть файл(и) для пакетної обробки…" #. i18n-hint: The vertical bars and * are essential here. -#: src/BatchProcessDialog.cpp:263 src/Project.cpp:2413 +#: src/BatchProcessDialog.cpp:263 src/Project.cpp:2507 msgid "All files|*|All supported files|" msgstr "Усі файли|*|Усі файли, що підтримуються|" @@ -1200,11 +1254,11 @@ msgstr "Редагувати ланцюжки" msgid "&Chains" msgstr "&Ланцюги" -#: src/BatchProcessDialog.cpp:534 src/Tags.cpp:769 +#: src/BatchProcessDialog.cpp:534 src/Tags.cpp:807 msgid "&Add" msgstr "&Додати" -#: src/BatchProcessDialog.cpp:535 src/LabelDialog.cpp:132 src/Tags.cpp:770 +#: src/BatchProcessDialog.cpp:535 src/LabelDialog.cpp:132 src/Tags.cpp:808 msgid "&Remove" msgstr "&Вилучити" @@ -1225,7 +1279,7 @@ msgstr "№" msgid "Command " msgstr "Команда " -#: src/BatchProcessDialog.cpp:554 src/effects/Contrast.cpp:213 +#: src/BatchProcessDialog.cpp:554 src/effects/Contrast.cpp:218 msgid "Parameters" msgstr "Параметри" @@ -1237,15 +1291,15 @@ msgstr "Вст&авити" msgid "De&lete" msgstr "В&илучити" -#: src/BatchProcessDialog.cpp:560 src/effects/Equalization.cpp:3229 +#: src/BatchProcessDialog.cpp:560 src/effects/Equalization.cpp:3236 msgid "Move &Up" msgstr "В&гору" -#: src/BatchProcessDialog.cpp:561 src/effects/Equalization.cpp:3230 +#: src/BatchProcessDialog.cpp:561 src/effects/Equalization.cpp:3237 msgid "Move &Down" msgstr "В&низ" -#: src/BatchProcessDialog.cpp:562 src/effects/Equalization.cpp:3236 +#: src/BatchProcessDialog.cpp:562 src/effects/Equalization.cpp:3243 msgid "De&faults" msgstr "Ти&пові" @@ -1287,19 +1341,19 @@ msgstr "Назва не може містити символів '%c' та '%c'" msgid "Are you sure you want to delete %s?" msgstr "Ви справді бажаєте вилучити %s?" -#: src/Dependencies.cpp:169 +#: src/Dependencies.cpp:168 msgid "Removing Dependencies" msgstr "Вилучення залежностей" -#: src/Dependencies.cpp:170 +#: src/Dependencies.cpp:169 msgid "Copying audio data into project..." msgstr "Копіювання аудіоданих до проекту…" -#: src/Dependencies.cpp:305 +#: src/Dependencies.cpp:299 msgid "Project Depends on Other Audio Files" msgstr "Проект залежить від інших аудіофайлів" -#: src/Dependencies.cpp:328 +#: src/Dependencies.cpp:322 msgid "" "Copying these files into your project will remove this dependency.\n" "This is safer, but needs more disk space." @@ -1308,7 +1362,7 @@ msgstr "" "Виконання подібної дії потребуватиме більше простору на диску, але " "убезпечить ваші дані." -#: src/Dependencies.cpp:332 +#: src/Dependencies.cpp:326 msgid "" "\n" "\n" @@ -1322,57 +1376,57 @@ msgstr "" "Відновіть файли у попередніх місцях зберігання, щоб їх можна було скопіювати " "до проекту." -#: src/Dependencies.cpp:342 +#: src/Dependencies.cpp:336 msgid "Project Dependencies" msgstr "Залежності проекту" -#: src/Dependencies.cpp:345 +#: src/Dependencies.cpp:339 msgid "Audio File" msgstr "Аудіофайл" -#: src/Dependencies.cpp:347 +#: src/Dependencies.cpp:341 msgid "Disk Space" msgstr "Місце на диску" -#: src/Dependencies.cpp:353 +#: src/Dependencies.cpp:347 msgid "Copy Selected Files" msgstr "Копіювати позначені файли" -#: src/Dependencies.cpp:365 src/Dependencies.cpp:517 +#: src/Dependencies.cpp:359 src/Dependencies.cpp:517 msgid "Cancel Save" msgstr "Скасувати збереження" -#: src/Dependencies.cpp:366 +#: src/Dependencies.cpp:360 msgid "Save without Copying" msgstr "Зберігати без копіювання" -#: src/Dependencies.cpp:369 +#: src/Dependencies.cpp:363 msgid "Do Not Copy" msgstr "Не копіювати" -#: src/Dependencies.cpp:372 +#: src/Dependencies.cpp:366 msgid "Copy All Files (Safer)" msgstr "Копіювати усі файли (безпечніше)" #. i18n-hint: One of the choices of what you want Audacity to do when #. * Audacity finds a project depends on another file. -#: src/Dependencies.cpp:387 src/Dependencies.cpp:393 +#: src/Dependencies.cpp:381 src/Dependencies.cpp:387 msgid "Ask me" msgstr "Перепитувати" -#: src/Dependencies.cpp:388 +#: src/Dependencies.cpp:382 msgid "Always copy all files (safest)" msgstr "Завжди копіювати усі файли (найбезпечніше)" -#: src/Dependencies.cpp:389 +#: src/Dependencies.cpp:383 msgid "Never copy any files" msgstr "Ніколи не копіювати ніяких файлів" -#: src/Dependencies.cpp:392 +#: src/Dependencies.cpp:386 msgid "Whenever a project depends on other files:" msgstr "Чи залежить проект від інших файлів:" -#: src/Dependencies.cpp:428 +#: src/Dependencies.cpp:422 msgid "MISSING " msgstr "НЕМАЄ " @@ -1404,7 +1458,7 @@ msgstr "Перевірка залежностей" #. i18n-hint: This title appears on a dialog that indicates the progress in doing something. #: src/DirManager.cpp:211 src/DirManager.cpp:294 src/DirManager.cpp:444 -#: src/DirManager.cpp:1655 +#: src/DirManager.cpp:1692 msgid "Progress" msgstr "Поступ" @@ -1428,12 +1482,12 @@ msgstr "Збереження файлів даних проекту" msgid "Cleaning up cache directories" msgstr "Очищення тек кешування" -#: src/DirManager.cpp:588 +#: src/DirManager.cpp:589 msgid "mkdir in DirManager::MakeBlockFilePath failed." msgstr "" "Спроба створення каталогу у DirManager::MakeBlockFilePath зазнала невдачі." -#: src/DirManager.cpp:619 +#: src/DirManager.cpp:620 #, c-format msgid "" "Audacity found an orphan block file: %s. \n" @@ -1447,33 +1501,33 @@ msgstr "" #. i18n-hint: This is the pattern for filenames that are created #. * when a file needs to be backed up to a different name. For #. * example, mysong would become mysong-old1, mysong-old2, etc. -#: src/DirManager.cpp:1217 +#: src/DirManager.cpp:1252 #, c-format msgid "%s-old%d" msgstr "%s-old%d" -#: src/DirManager.cpp:1226 +#: src/DirManager.cpp:1262 msgid "Unable to open/create test file." msgstr "Не вдалося відкрити або створити тестовий файл." #. i18n-hint: %s is the name of a file. #. need braces to avoid compiler warning about ambiguous else, see the macro -#: src/DirManager.cpp:1238 +#: src/DirManager.cpp:1274 #, c-format msgid "Unable to remove '%s'." msgstr "Не вдалося вилучити «%s»." -#: src/DirManager.cpp:1244 +#: src/DirManager.cpp:1280 #, c-format msgid "Renamed file: %s\n" msgstr "Перейменовано файл: %s\n" -#: src/DirManager.cpp:1307 +#: src/DirManager.cpp:1343 #, c-format msgid "Unable to rename '%s' to '%s'." msgstr "Не вдалося перейменувати «%s» на «%s»." -#: src/DirManager.cpp:1326 +#: src/DirManager.cpp:1362 #, c-format msgid "Changed block %s to new alias name\n" msgstr "Блок %s змінено за новою назвою\n" @@ -1483,15 +1537,15 @@ msgstr "Блок %s змінено за новою назвою\n" #. This error message is about the tags that hold the sequence information. #. The error message is confusing to users in English, and could just say #. "Found problems with when checking project file." -#: src/DirManager.cpp:1393 +#: src/DirManager.cpp:1430 msgid "Project check read faulty Sequence tags." msgstr "Перевіркою проекту виявлено помилкові мітки послідовності." -#: src/DirManager.cpp:1395 src/DirManager.cpp:1448 +#: src/DirManager.cpp:1432 src/DirManager.cpp:1485 msgid "Close project immediately with no changes" msgstr "Закрити проект негайно без змін" -#: src/DirManager.cpp:1396 +#: src/DirManager.cpp:1433 msgid "" "Continue with repairs noted in log, and check for more errors. This will " "save the project in its current state, unless you \"Close project immediately" @@ -1502,15 +1556,15 @@ msgstr "" "натиснете кнопку «Закрити проект негайно» у відповідь на подальші сповіщення " "про помилки." -#: src/DirManager.cpp:1399 +#: src/DirManager.cpp:1436 msgid "Warning - Problems Reading Sequence Tags" msgstr "Попередження: проблеми під час читання міток послідовності" -#: src/DirManager.cpp:1414 src/DirManager.cpp:1818 +#: src/DirManager.cpp:1451 src/DirManager.cpp:1856 msgid "Inspecting project file data" msgstr "Вивчення даних файла проекту" -#: src/DirManager.cpp:1433 +#: src/DirManager.cpp:1470 #, c-format msgid "" "Project check of \"%s\" folder \n" @@ -1545,24 +1599,24 @@ msgstr "" "проект негайно» у відповідь на подальші повідомлення про \n" "помилки." -#: src/DirManager.cpp:1449 src/DirManager.cpp:1570 +#: src/DirManager.cpp:1486 src/DirManager.cpp:1607 msgid "Treat missing audio as silence (this session only)" msgstr "Вважати пропущені звукові дані тишею (тільки для цього сеансу)" -#: src/DirManager.cpp:1450 +#: src/DirManager.cpp:1487 msgid "Replace missing audio with silence (permanent immediately)." msgstr "Замінити пропущені дані тишею (негайне і незворотне)." -#: src/DirManager.cpp:1453 +#: src/DirManager.cpp:1490 msgid "Warning - Missing Aliased File(s)" msgstr "Попередження: не знайдено приєднаних файлів" -#: src/DirManager.cpp:1484 +#: src/DirManager.cpp:1521 msgid " Project check replaced missing aliased file(s) with silence." msgstr "" " Інструмент перевірки проекту замінив пропущені приєднані файли тишею." -#: src/DirManager.cpp:1504 +#: src/DirManager.cpp:1541 #, c-format msgid "" "Project check of \"%s\" folder \n" @@ -1574,29 +1628,29 @@ msgstr "" "Audacity може повторно створити приєднані файли з \n" "аудіоданих у поточному проекті." -#: src/DirManager.cpp:1510 +#: src/DirManager.cpp:1547 msgid "Regenerate alias summary files (safe and recommended)" msgstr "Повторно створити приєднані файли (безпечно та рекомендовано)" -#: src/DirManager.cpp:1511 +#: src/DirManager.cpp:1548 msgid "Fill in silence for missing display data (this session only)" msgstr "Заповнити тишею пропущені дані показу (тільки у поточному сеансі)" -#: src/DirManager.cpp:1512 src/DirManager.cpp:1569 src/DirManager.cpp:1629 +#: src/DirManager.cpp:1549 src/DirManager.cpp:1606 src/DirManager.cpp:1666 msgid "Close project immediately with no further changes" msgstr "Закрити проект негайно без подальших змін" -#: src/DirManager.cpp:1515 +#: src/DirManager.cpp:1552 msgid "Warning - Missing Alias Summary File(s)" msgstr "Попередження: не вистачає приєднаних файлів резюме" -#: src/DirManager.cpp:1538 +#: src/DirManager.cpp:1575 msgid " Project check regenerated missing alias summary file(s)." msgstr "" " Інструментом перевірки проекту було повторно створено незнайдені " "приєднані файли резюме." -#: src/DirManager.cpp:1556 +#: src/DirManager.cpp:1593 #, c-format msgid "" "Project check of \"%s\" folder \n" @@ -1624,22 +1678,22 @@ msgstr "" "Зауважте, що у разі вибору другого варіанта, на панелі форми \n" "хвилі може бути не показано ділянки тиші." -#: src/DirManager.cpp:1571 +#: src/DirManager.cpp:1608 msgid "Replace missing audio with silence (permanent immediately)" msgstr "Замінити пропущені дані тишею (негайне і незворотне)" -#: src/DirManager.cpp:1574 +#: src/DirManager.cpp:1611 msgid "Warning - Missing Audio Data Block File(s)" msgstr "Попередження: не вистачає блок-файлів звукових даних" -#: src/DirManager.cpp:1597 +#: src/DirManager.cpp:1634 msgid "" " Project check replaced missing audio data block file(s) with silence." msgstr "" " Інструмент перевірки проекту замінив незнайдені блок-файли звукових даних " "тишею." -#: src/DirManager.cpp:1613 +#: src/DirManager.cpp:1650 msgid "" " Project check ignored orphan block file(s). They will be deleted when " "project is saved." @@ -1647,7 +1701,7 @@ msgstr "" " Інструментом перевірки проекту проігноровано зайві блок-файли. Їх буде " "вилучено під час збереження проекту." -#: src/DirManager.cpp:1619 +#: src/DirManager.cpp:1656 #, c-format msgid "" "Project check of \"%s\" folder \n" @@ -1660,30 +1714,30 @@ msgstr "" "у поточному проекті, але можуть належати іншим проектам. \n" "Ці файли не зашкодять роботі і займають небагато місця." -#: src/DirManager.cpp:1628 +#: src/DirManager.cpp:1665 msgid "Continue without deleting; ignore the extra files this session" msgstr "Продовжити без вилучення; ігнорувати зайві файли цього сеансу" -#: src/DirManager.cpp:1630 +#: src/DirManager.cpp:1667 msgid "Delete orphan files (permanent immediately)" msgstr "Вилучити зайві файли (негайно і остаточно)" -#: src/DirManager.cpp:1633 +#: src/DirManager.cpp:1670 msgid "Warning - Orphan Block File(s)" msgstr "Попередження: зайві блок-файли" -#: src/DirManager.cpp:1656 +#: src/DirManager.cpp:1693 msgid "Cleaning up unused directories in project data" msgstr "Очищення тек, що не використовуються, у даних проекту" -#: src/DirManager.cpp:1669 +#: src/DirManager.cpp:1706 msgid "" "Project check found file inconsistencies inspecting the loaded project data." msgstr "" "Інструментом перевірки проекту виявлено неточності під час вивчення " "завантажених даних проекту." -#: src/DirManager.cpp:1675 +#: src/DirManager.cpp:1712 msgid "" "Project check found file inconsistencies during automatic recovery.\n" "\n" @@ -1695,43 +1749,43 @@ msgstr "" "Щоб ознайомитися з подробицями, скористайтеся пунктом «Показати журнал…» у " "меню «Довідка»." -#: src/DirManager.cpp:1676 +#: src/DirManager.cpp:1713 msgid "Warning: Problems in Automatic Recovery" msgstr "Попередження: проблеми з автоматичним відновленням" -#: src/DirManager.cpp:1715 +#: src/DirManager.cpp:1752 #, c-format msgid "Missing aliased audio file: '%s'" msgstr "Не знайдено приєднаного файла звукових даних: «%s»" -#: src/DirManager.cpp:1738 +#: src/DirManager.cpp:1775 #, c-format msgid "Missing alias (.auf) block file: '%s'" msgstr "Не вистачає приєднаного (.auf) блок-файла: «%s»" -#: src/DirManager.cpp:1762 +#: src/DirManager.cpp:1799 #, c-format msgid "Missing data block file: '%s'" msgstr "Не вистачає блок-файла даних: «%s»" -#: src/DirManager.cpp:1804 +#: src/DirManager.cpp:1842 #, c-format msgid "Orphan block file: '%s'" msgstr "Незв'язаний блок-файл: «%s»" -#: src/DirManager.cpp:1861 +#: src/DirManager.cpp:1899 msgid "Caching audio" msgstr "Кешування аудіо" -#: src/DirManager.cpp:1862 +#: src/DirManager.cpp:1900 msgid "Caching audio into memory" msgstr "Кешування звукової інформації у пам'ять" -#: src/DirManager.cpp:1898 +#: src/DirManager.cpp:1936 msgid "Saving recorded audio" msgstr "Збереження записаного звуку" -#: src/DirManager.cpp:1899 +#: src/DirManager.cpp:1937 msgid "Saving recorded audio to disk" msgstr "Збереження записаного звуку на диск" @@ -1768,57 +1822,57 @@ msgstr "Спроба запуску FFmpeg була невдалою" msgid "FFmpeg library not found" msgstr "Бібліотеки FFmpeg не знайдено" -#: src/FFmpeg.cpp:453 +#: src/FFmpeg.cpp:457 msgid "Locate FFmpeg" msgstr "Вказати адресу FFmpeg" -#: src/FFmpeg.cpp:474 +#: src/FFmpeg.cpp:478 #, c-format msgid "Audacity needs the file '%s' to import and export audio via FFmpeg." msgstr "" "Audacity потребує файла «%s» для імпортування та експортування звукових " "даних за допомогою FFmpeg." -#: src/FFmpeg.cpp:480 +#: src/FFmpeg.cpp:484 #, c-format msgid "Location of '%s':" msgstr "Розташування «%s»:" -#: src/FFmpeg.cpp:489 +#: src/FFmpeg.cpp:493 #, c-format msgid "To find '%s', click here -->" msgstr "Щоб знайти «%s», клацніть тут —>" -#: src/FFmpeg.cpp:495 src/export/ExportCL.cpp:119 src/export/ExportMP3.cpp:611 +#: src/FFmpeg.cpp:499 src/export/ExportCL.cpp:119 src/export/ExportMP3.cpp:635 msgid "Browse..." msgstr "Огляд…" -#: src/FFmpeg.cpp:496 +#: src/FFmpeg.cpp:500 msgid "To get a free copy of FFmpeg, click here -->" msgstr "Щоб отримати вільну копію FFmpeg, натисніть тут -->" #. i18n-hint: (verb) -#: src/FFmpeg.cpp:497 src/export/ExportMP3.cpp:615 +#: src/FFmpeg.cpp:501 src/export/ExportMP3.cpp:639 msgid "Download" msgstr "Звантажити" #. i18n-hint: It's asking for the location of a file, for #. example, "Where is lame_enc.dll?" - you could translate #. "Where would I find the file '%s'?" instead if you want. -#: src/FFmpeg.cpp:519 +#: src/FFmpeg.cpp:523 #, c-format msgid "Where is '%s'?" msgstr "Де знаходиться «%s»?" -#: src/FFmpeg.cpp:702 +#: src/FFmpeg.cpp:706 msgid "Failed to find compatible FFmpeg libraries." msgstr "Спроба знайти сумісну версію бібліотеки FFmpeg була невдалою." -#: src/FFmpeg.h:178 +#: src/FFmpeg.h:180 msgid "FFmpeg not found" msgstr "FFmpeg не знайдено" -#: src/FFmpeg.h:193 +#: src/FFmpeg.h:195 msgid "" "Audacity attempted to use FFmpeg to import an audio file,\n" "but the libraries were not found.\n" @@ -1834,12 +1888,12 @@ msgstr "" "сторінку «Параметри > Бібліотеки»,\n" "щоб звантажити або вказати адресу потрібних бібліотек FFmpeg." -#: src/FFmpeg.h:201 +#: src/FFmpeg.h:203 msgid "Do not show this warning again" msgstr "Більше не показувати це попередження" #. i18n-hint: do not translate avformat. Preserve the computer gibberish. -#: src/FFmpeg.h:277 +#: src/FFmpeg.h:279 msgid "" "Only avformat.dll|*avformat*.dll|Dynamically Linked Libraries (*.dll)|*.dll|" "All Files|*" @@ -1847,11 +1901,11 @@ msgstr "" "Лише avformat.dll|*avformat*.dll|Динамічно з’єднані бібліотеки (*.dll)|*.dll|" "Усі файли|*" -#: src/FFmpeg.h:310 +#: src/FFmpeg.h:312 msgid "Dynamic Libraries (*.dylib)|*.dylib|All Files (*)|*" msgstr "Динамічні бібліотеки (*.dylib)|*.dylib|Усі файли (*)|*" -#: src/FFmpeg.h:337 +#: src/FFmpeg.h:339 msgid "" "Only libavformat.so|libavformat*.so*|Dynamically Linked Libraries (*.so*)|*." "so*|All Files (*)|*" @@ -1859,6 +1913,12 @@ msgstr "" "Лише libavformat.so|libavformat*.so*|Динамічно з’єднані бібліотеки (*.so*)|*." "so*|Усі файли (*)|*" +#. i18n-hint: %s will be the error message from libsndfile +#: src/FileFormats.cpp:301 +#, c-format +msgid "Error (file may not have been written): %s" +msgstr "Помилка (можливо, файл не записано): %s" + #: src/FreqWindow.cpp:208 msgid "Spectrum" msgstr "Спектр" @@ -1898,7 +1958,7 @@ msgstr "Частота запису журналу" #. i18n-hint: short form of 'decibels'. #: src/FreqWindow.cpp:285 src/FreqWindow.cpp:691 src/effects/AutoDuck.cpp:438 -#: src/effects/AutoDuck.cpp:478 src/effects/AutoDuck.cpp:776 +#: src/effects/AutoDuck.cpp:478 src/effects/AutoDuck.cpp:778 #: src/effects/Compressor.cpp:701 src/effects/Compressor.cpp:709 #: src/effects/Equalization.cpp:655 src/effects/Equalization.cpp:682 #: src/effects/Equalization.cpp:690 src/effects/Equalization.cpp:751 @@ -1907,8 +1967,8 @@ msgstr "Частота запису журналу" #: src/effects/ScienFilter.cpp:386 src/effects/ScienFilter.cpp:415 #: src/effects/ScienFilter.cpp:423 src/effects/ScienFilter.cpp:490 #: src/effects/ScienFilter.cpp:519 src/effects/ScienFilter.cpp:583 -#: src/effects/ScienFilter.cpp:591 src/widgets/Meter.cpp:1974 -#: src/widgets/Meter.cpp:1975 +#: src/effects/ScienFilter.cpp:591 src/widgets/Meter.cpp:2004 +#: src/widgets/Meter.cpp:2005 msgid "dB" msgstr "дБ" @@ -1916,10 +1976,10 @@ msgstr "дБ" msgid "Scroll" msgstr "Гортати" -#: src/FreqWindow.cpp:326 src/prefs/MousePrefs.cpp:131 -#: src/prefs/MousePrefs.cpp:132 src/prefs/MousePrefs.cpp:133 -#: src/prefs/MousePrefs.cpp:134 src/prefs/MousePrefs.cpp:135 -#: src/prefs/MousePrefs.cpp:136 +#: src/FreqWindow.cpp:326 src/prefs/MousePrefs.cpp:124 +#: src/prefs/MousePrefs.cpp:125 src/prefs/MousePrefs.cpp:126 +#: src/prefs/MousePrefs.cpp:127 src/prefs/MousePrefs.cpp:128 +#: src/prefs/MousePrefs.cpp:129 msgid "Zoom" msgstr "Масштабування" @@ -1981,7 +2041,7 @@ msgid "Hz" msgstr "Гц" #. i18n-hint: short form of 'seconds'. -#: src/FreqWindow.cpp:743 src/effects/AutoDuck.cpp:779 +#: src/FreqWindow.cpp:743 src/effects/AutoDuck.cpp:781 msgid "s" msgstr "с" @@ -2008,25 +2068,25 @@ msgstr "%.4f сек (%d Гц) (%s) = %f" msgid "%.4f sec (%d Hz) (%s) = %.3f" msgstr "%.4f сек (%d Гц) (%s) = %.3f" -#: src/FreqWindow.cpp:1033 +#: src/FreqWindow.cpp:1035 msgid "spectrum.txt" msgstr "spectrum.txt" -#: src/FreqWindow.cpp:1035 +#: src/FreqWindow.cpp:1037 msgid "Export Spectral Data As:" msgstr "Експортувати результати спектрального аналізу у файл:" -#: src/FreqWindow.cpp:1049 src/LabelDialog.cpp:630 src/Menus.cpp:3592 -#: src/effects/Contrast.cpp:485 src/prefs/KeyConfigPrefs.cpp:389 +#: src/FreqWindow.cpp:1051 src/LabelDialog.cpp:631 src/Menus.cpp:3632 +#: src/effects/Contrast.cpp:507 src/prefs/KeyConfigPrefs.cpp:389 #: src/prefs/KeyConfigPrefs.cpp:970 msgid "Couldn't write to file: " msgstr "Не вдається записати у файл: " -#: src/FreqWindow.cpp:1056 +#: src/FreqWindow.cpp:1058 msgid "Frequency (Hz)\tLevel (dB)" msgstr "Частота (Гц)\tРівень (дБ)" -#: src/FreqWindow.cpp:1062 +#: src/FreqWindow.cpp:1064 msgid "Lag (seconds)\tFrequency (Hz)\tLevel" msgstr "Відставання (сек)\tЧастота (Гц)\tРівень" @@ -2088,13 +2148,9 @@ msgstr "Запис на CD" msgid "No Local Help" msgstr "Відсутня локальна довідка" -#: src/HelpText.cpp:189 -msgid "

How to Get Help

" -msgstr "

Як дістати довідку


" - #: src/HelpText.cpp:190 -msgid "Welcome to Audacity " -msgstr "Ласкаво просимо до Audacity " +msgid "How to get help" +msgstr "Як дістати довідку" #: src/HelpText.cpp:191 msgid "These are our support methods:" @@ -2102,48 +2158,38 @@ msgstr "Ось перелік підтримуваних методів:" #: src/HelpText.cpp:192 msgid "" -" [[file:quick_help.html|Quick Help]] (should be installed locally, Internet version if it " -"isn't)" +" [[file:quick_help.html|Quick Help]] - if not installed locally, view online" msgstr "" -" [[file:quick_helphtml|Коротка довідка]] (має бути встановлено локально, інтернет-версія, " -"якщо її не встановлено)" +" [[file:quick_helphtml|Коротка довідка]] — якщо не встановлено локально, інтернет-версія" #: src/HelpText.cpp:193 msgid "" -" [[file:index.html|Manual]] (should be installed locally, Internet version if it isn't)" +" [[file:index.html|Manual]] - if not installed locally, view online" msgstr "" -" [[file:indexhtml|Підручник]] (має бути встановлено локально, інтернет-версія, якщо підручник не " -"встановлено)" +" [[file:index.html|Підручник]] — якщо не встановлено локально, переглянути у інтернеті" #: src/HelpText.cpp:194 msgid "" -" [[http://wiki.audacityteam.org/index.php|Wiki]] (the latest tips, tricks " -"and tutorials, on the Internet)" +" Forum - ask your question " +"directly, online." msgstr "" -" [[http://wiki.audacityteam.org/index.php|Вікі]] (найсвіжіші поради, " -"підказки та посібники у інтернеті)" +" Форум — задайте запитання " +"безпосередньо у інтернеті." #: src/HelpText.cpp:195 msgid "" -" Forum (ask your question " -"directly, on the Internet)" +"More: Visit our [[http://wiki.audacityteam.org/index.php|Wiki]] for " +"tips, tricks, extra tutorials and effects plug-ins." msgstr "" -" Форум (задайте запитання " -"безпосередньо у інтернеті)" +"Докладніше: відвідайте нашу [[http://wiki.audacityteam.org/index.php|" +"Вікі]], там можна знайти поради, підказки додаткові настанови та " +"документацію щодо додатків ефектів." -#: src/HelpText.cpp:196 -msgid "" -" For even quicker answers, all the online resources above are searchable." -msgstr "" -" Якщо вам потрібна коротка відповідь, ви можете скористатися пошуком " -"на наведених вище ресурсах інтернету." - -#: src/HelpText.cpp:203 +#: src/HelpText.cpp:202 msgid "" "Audacity can import unprotected files in many other formats (such as M4A and " "WMA, compressed WAV files from portable recorders and audio from video " @@ -2157,7 +2203,7 @@ msgstr "" "href=\"http://manual.audacityteam.org/o/man/faq_opening_and_saving_files." "html#foreign\">бібліотеку FFmpeg." -#: src/HelpText.cpp:207 +#: src/HelpText.cpp:206 msgid "" "You can also read our help on importing MIDI files and tracks " @@ -2169,7 +2215,7 @@ msgstr "" "\">файлів MIDI та доріжок з звукових компакт-дисків." -#: src/HelpText.cpp:220 +#: src/HelpText.cpp:219 msgid "" "You do not appear to have the 'help' folder installed.
Please view the content online or Зберегти проект." -#: src/Project.cpp:2187 +#: src/Project.cpp:2275 msgid "Save changes?" msgstr "Зберегти зміни?" -#: src/Project.cpp:2442 +#: src/Project.cpp:2536 msgid "Select one or more audio files..." msgstr "Виберіть один чи більше звукових файлів…" -#: src/Project.cpp:2478 +#: src/Project.cpp:2572 #, c-format msgid "%s is already open in another window." msgstr "%s вже відкрито у іншому вікні." -#: src/Project.cpp:2481 src/Project.cpp:2647 src/Project.cpp:2844 -#: src/Project.cpp:3034 +#: src/Project.cpp:2575 src/Project.cpp:2736 src/Project.cpp:2933 +#: src/Project.cpp:3123 msgid "Error Opening Project" msgstr "Помилка під час відкриття файла проекту" @@ -4328,11 +4425,11 @@ msgstr "Помилка під час відкриття файла проект #. * and save dialogues, for the option that only shows project files created #. * with Audacity. Do not include pipe symbols or .aup (this extension will #. * now be added automatically for the Save Projects dialogues). -#: src/Project.cpp:2495 src/Project.cpp:3925 +#: src/Project.cpp:2589 src/Project.cpp:3990 src/TimerRecordDialog.cpp:297 msgid "Audacity projects" msgstr "Проекти Audacity" -#: src/Project.cpp:2548 +#: src/Project.cpp:2639 #, c-format msgid "" "This file was saved by Audacity version %s. The format has changed. \n" @@ -4358,15 +4455,15 @@ msgstr "" "\n" "Відкрити файл зараз?" -#: src/Project.cpp:2558 +#: src/Project.cpp:2649 msgid "1.0 or earlier" msgstr "1.0 або ранішою" -#: src/Project.cpp:2563 src/Project.cpp:3121 +#: src/Project.cpp:2654 src/Project.cpp:3210 msgid "Warning - Opening Old Project File" msgstr "Попередження: відкриття застарілого файла проекту" -#: src/Project.cpp:2599 +#: src/Project.cpp:2688 msgid "" "You are trying to open an automatically created backup file.\n" "Doing this may result in severe data loss.\n" @@ -4379,19 +4476,19 @@ msgstr "" "\n" "Будь ласка, спробуйте відкрити справжній файл проекту Audacity." -#: src/Project.cpp:2600 +#: src/Project.cpp:2689 msgid "Warning - Backup File Detected" msgstr "Попередження: виявлено файл резервної копії" -#: src/Project.cpp:2607 src/xml/XMLWriter.cpp:269 +#: src/Project.cpp:2696 src/xml/XMLWriter.cpp:269 msgid "Error Opening File" msgstr "Помилка під час відкриття файла" -#: src/Project.cpp:2622 +#: src/Project.cpp:2711 msgid "Error opening file" msgstr "Помилка під час відкриття файла" -#: src/Project.cpp:2627 +#: src/Project.cpp:2716 #, c-format msgid "" "File may be invalid or corrupted: \n" @@ -4400,11 +4497,11 @@ msgstr "" "Можливо файл є некоректним або пошкодженим: \n" "%s" -#: src/Project.cpp:2628 +#: src/Project.cpp:2717 msgid "Error Opening File or Project" msgstr "Помилка під час відкриття файла або проекту" -#: src/Project.cpp:2646 +#: src/Project.cpp:2735 msgid "" "Audacity was unable to convert an Audacity 1.0 project to the new project " "format." @@ -4412,37 +4509,37 @@ msgstr "" "Audacity не вдається перетворити проект формату Audacity 1.0 у проект нового " "формату." -#: src/Project.cpp:2681 +#: src/Project.cpp:2770 msgid "Could not decode file: " msgstr "Не вдалося декодувати файл: " -#: src/Project.cpp:2682 +#: src/Project.cpp:2771 msgid "Error decoding file" msgstr "Помилка під час спроби декодування файла" -#: src/Project.cpp:2780 +#: src/Project.cpp:2869 msgid "Project was recovered" msgstr "Проект було відновлено" -#: src/Project.cpp:2780 +#: src/Project.cpp:2869 msgid "Recover" msgstr "Відновити" -#: src/Project.cpp:2783 +#: src/Project.cpp:2872 msgid "Could not remove old auto save file" msgstr "Не вдалося вилучити старий файл автозбереження" -#: src/Project.cpp:2931 src/Project.cpp:2932 +#: src/Project.cpp:3020 src/Project.cpp:3021 msgid "" msgstr "<невідома версія — файл проекту може бути пошкоджено>" -#: src/Project.cpp:3032 +#: src/Project.cpp:3121 #, c-format msgid "Couldn't find the project data folder: \"%s\"" msgstr "Не вдається знайти теку з даними проекту: «%s»" #. i18n-hint: %s will be replaced by the version number. -#: src/Project.cpp:3085 +#: src/Project.cpp:3174 #, c-format msgid "" "This file was saved using Audacity %s.\n" @@ -4453,11 +4550,11 @@ msgstr "" "Ви використовуєте Audacity версії %s. Щоб відкрити цей файл, слід оновити " "версію програми." -#: src/Project.cpp:3089 +#: src/Project.cpp:3178 msgid "Can't open project file" msgstr "Не вдається відкрити файл проекту" -#: src/Project.cpp:3379 +#: src/Project.cpp:3436 msgid "" "Your project is now empty.\n" "If saved, the project will have no tracks.\n" @@ -4478,11 +4575,11 @@ msgstr "" "\n" "Все одно зберегти?" -#: src/Project.cpp:3380 +#: src/Project.cpp:3437 msgid "Warning - Empty Project" msgstr "Попередження про порожній проект" -#: src/Project.cpp:3439 +#: src/Project.cpp:3496 #, c-format msgid "" "Could not save project. Path not found. Try creating \n" @@ -4491,12 +4588,12 @@ msgstr "" "Не вдалося зберегти проект. Не знайдено відповідного каталогу. Спробуйте \n" "створити каталог «%s» перед зберіганням проекту з цією назвою." -#: src/Project.cpp:3441 src/Project.cpp:3478 src/Project.cpp:3501 -#: src/Project.cpp:3857 src/Project.cpp:3943 +#: src/Project.cpp:3498 src/Project.cpp:3543 src/Project.cpp:3566 +#: src/Project.cpp:3922 src/Project.cpp:4008 msgid "Error Saving Project" msgstr "Помилка під час спроби збереження файла проекту" -#: src/Project.cpp:3476 +#: src/Project.cpp:3541 #, c-format msgid "" "Could not save project. Perhaps %s \n" @@ -4505,31 +4602,31 @@ msgstr "" "Не вдається зберегти проект. Можливо, відсутні права запису на %s,\n" "або не вистачає вільного простору на диску." -#: src/Project.cpp:3499 src/Project.cpp:4786 src/Tags.cpp:1151 -#: src/effects/Equalization.cpp:1653 +#: src/Project.cpp:3564 src/Project.cpp:4855 src/Tags.cpp:1189 +#: src/effects/Equalization.cpp:1657 #, c-format msgid "Couldn't write to file \"%s\": %s" msgstr "Не вдалося виконати запис до файла «%s»: %s" -#: src/Project.cpp:3572 +#: src/Project.cpp:3635 #, c-format msgid "Saved %s" msgstr "Збережено %s" -#: src/Project.cpp:3724 +#: src/Project.cpp:3788 #, c-format msgid "Imported '%s'" msgstr "Імпортовано файл «%s»" -#: src/Project.cpp:3725 +#: src/Project.cpp:3789 msgid "Import" msgstr "Імпорт" -#: src/Project.cpp:3798 +#: src/Project.cpp:3863 msgid "Error Importing" msgstr "Помилка під час спроби імпортування" -#: src/Project.cpp:3856 src/Project.cpp:3942 +#: src/Project.cpp:3921 src/Project.cpp:4007 msgid "" "The project was not saved because the file name provided would overwrite " "another project.\n" @@ -4539,11 +4636,11 @@ msgstr "" "до перезапису іншого проекту.\n" "Будь ласка, повторіть спробу, вказавши назву, яку ще не використано." -#: src/Project.cpp:3887 +#: src/Project.cpp:3952 msgid "" msgstr "<без назви>" -#: src/Project.cpp:3893 +#: src/Project.cpp:3958 msgid "" "'Save Compressed Project' is for an Audacity project, not an audio file.\n" "For an audio file that will open in other apps, use 'Export'.\n" @@ -4566,12 +4663,12 @@ msgstr "" "оскільки виконується \n" "імпортування кожної зі стиснених доріжок.\n" -#: src/Project.cpp:3904 +#: src/Project.cpp:3969 #, c-format msgid "Save Compressed Project \"%s\" As..." msgstr "Зберегти стиснений проект «%s» як…" -#: src/Project.cpp:3909 +#: src/Project.cpp:3974 msgid "" "'Save Project' is for an Audacity project, not an audio file.\n" "For an audio file that will open in other apps, use 'Export'.\n" @@ -4581,53 +4678,53 @@ msgstr "" "Для звукових файлів, які відкриватимуться у інших програмах, скористайтеся " "дією «Експортувати».\n" -#: src/Project.cpp:3914 +#: src/Project.cpp:3979 #, c-format msgid "Save Project \"%s\" As..." msgstr "Зберегти проект «%s» як…" -#: src/Project.cpp:3986 +#: src/Project.cpp:4051 msgid "Created new project" msgstr "Створено новий проект" -#: src/Project.cpp:4216 +#: src/Project.cpp:4275 #, c-format msgid "Deleted %.2f seconds at t=%.2f" msgstr "Вилучено %.2f секунд починаючи з t=%.2f" -#: src/Project.cpp:4219 +#: src/Project.cpp:4278 msgid "Delete" msgstr "Вилучити" -#: src/Project.cpp:4421 +#: src/Project.cpp:4488 #, c-format msgid "Disk space remains for recording %d hours and %d minutes." msgstr "Простір диску, що залишився для запису, %d годин та %d хвилин." -#: src/Project.cpp:4424 +#: src/Project.cpp:4491 #, c-format msgid "Disk space remains for recording 1 hour and %d minutes." msgstr "Простір диску, що залишився для запису, 1 година та %d хвилин." -#: src/Project.cpp:4427 +#: src/Project.cpp:4494 #, c-format msgid "Disk space remains for recording %d minutes." msgstr "Простір диску, що залишився для запису, %d хвилин." -#: src/Project.cpp:4430 +#: src/Project.cpp:4497 #, c-format msgid "Disk space remains for recording %d seconds." msgstr "Простір диску, що залишився для запису, %d секунд." -#: src/Project.cpp:4433 +#: src/Project.cpp:4500 msgid "Out of disk space" msgstr "Скінчився вільний простір на диску" -#: src/Project.cpp:4455 +#: src/Project.cpp:4522 msgid "On-demand import and waveform calculation complete." msgstr "Поточне імпортування та обчислення форми хвилі виконано." -#: src/Project.cpp:4460 +#: src/Project.cpp:4527 #, c-format msgid "" "Import(s) complete. Running %d on-demand waveform calculations. Overall %2.0f" @@ -4636,7 +4733,7 @@ msgstr "" "Імпортування завершено. Виконується %d поточних обчислень форми хвилі. " "Виконано %2.0f%%." -#: src/Project.cpp:4463 +#: src/Project.cpp:4530 #, c-format msgid "" "Import complete. Running an on-demand waveform calculation. %2.0f%% complete." @@ -4644,45 +4741,45 @@ msgstr "" "Імпортування завершено. Виконується поточне обчислення форми хвилі. Виконано " "%2.0f%%." -#: src/Project.cpp:4788 +#: src/Project.cpp:4857 msgid "Error Writing Autosave File" msgstr "Помилка під час запису файла автозбереження" -#: src/Project.cpp:4801 +#: src/Project.cpp:4870 msgid "Could not create autosave file: " msgstr "Не вдалося створити файл автозбереження: " -#: src/Project.cpp:4820 +#: src/Project.cpp:4889 msgid "Could not remove old autosave file: " msgstr "Не вдалося вилучити старий файл автозбереження: " -#: src/Project.cpp:4849 +#: src/Project.cpp:4919 #, c-format msgid "Actual Rate: %d" msgstr "Фактична частота %d" -#: src/Project.cpp:4871 +#: src/Project.cpp:4946 msgid "Recorded Audio" msgstr "Записано звук" -#: src/Project.cpp:4871 src/toolbars/ControlToolBar.cpp:178 +#: src/Project.cpp:4946 src/toolbars/ControlToolBar.cpp:186 msgid "Record" msgstr "Записати" -#: src/Project.cpp:4980 +#: src/Project.cpp:5055 msgid "Adjusted gain" msgstr "Підсилення скореговано" -#: src/Project.cpp:4997 +#: src/Project.cpp:5072 msgid "Adjusted Pan" msgstr "Панорамування скореговано" -#: src/Project.cpp:5036 +#: src/Project.cpp:5111 #, c-format msgid "Removed track '%s.'" msgstr "Вилучено доріжку '%s.'" -#: src/Project.cpp:5038 +#: src/Project.cpp:5113 msgid "Track Remove" msgstr "Вилучити доріжку" @@ -4701,199 +4798,200 @@ msgstr "24-бітовий PCM" msgid "32-bit float" msgstr "32-бітовий float" -#: src/Screenshot.cpp:268 +#: src/Screenshot.cpp:269 msgid "Screen Capture Frame" msgstr "Оболонка створення знімків екрана" -#: src/Screenshot.cpp:310 +#: src/Screenshot.cpp:318 msgid "Choose location to save files" msgstr "Оберіть адресу для зберігання файлів" -#: src/Screenshot.cpp:320 +#: src/Screenshot.cpp:328 msgid "Save images to:" msgstr "Зберігати зображення до:" -#: src/Screenshot.cpp:322 src/export/ExportMultiple.cpp:257 +#: src/Screenshot.cpp:330 src/export/ExportMultiple.cpp:265 msgid "Choose..." msgstr "Вибрати…" -#: src/Screenshot.cpp:328 +#: src/Screenshot.cpp:336 msgid "Capture entire window or screen" msgstr "Створити знімок всього вікна або екрана" -#: src/Screenshot.cpp:332 +#: src/Screenshot.cpp:340 msgid "Resize Small" msgstr "Масштабувати мале" -#: src/Screenshot.cpp:333 +#: src/Screenshot.cpp:341 msgid "Resize Large" msgstr "Масштабувати велике" -#: src/Screenshot.cpp:339 +#: src/Screenshot.cpp:347 msgid "Blue Bkgnd" msgstr "Синє тло" -#: src/Screenshot.cpp:345 +#: src/Screenshot.cpp:353 msgid "White Bkgnd" msgstr "Біле тло" -#: src/Screenshot.cpp:352 +#: src/Screenshot.cpp:360 msgid "Capture Window Only" msgstr "Створити знімок лише вікна" -#: src/Screenshot.cpp:353 +#: src/Screenshot.cpp:361 msgid "Capture Full Window" msgstr "Створити знімок всього вікна" -#: src/Screenshot.cpp:354 +#: src/Screenshot.cpp:362 msgid "Capture Window Plus" msgstr "Створити знімок вікна і" -#: src/Screenshot.cpp:360 +#: src/Screenshot.cpp:368 msgid "Capture Full Screen" msgstr "Створити знімок всього екрана" -#: src/Screenshot.cpp:367 +#: src/Screenshot.cpp:375 msgid "Wait 5 seconds and capture frontmost window/dialog" msgstr "Чекати 5 секунд і зняти верхнє вікно" -#: src/Screenshot.cpp:368 +#: src/Screenshot.cpp:376 msgid "false" msgstr "ні" -#: src/Screenshot.cpp:374 +#: src/Screenshot.cpp:382 msgid "Capture part of a project window" msgstr "Створити знімок частини вікна проекту" -#: src/Screenshot.cpp:378 +#: src/Screenshot.cpp:386 msgid "All Toolbars" msgstr "Всі панелі інструментів" -#: src/Screenshot.cpp:379 +#: src/Screenshot.cpp:387 msgid "SelectionBar" msgstr "Панель вибору" -#: src/Screenshot.cpp:380 src/toolbars/ToolsToolBar.cpp:78 +#: src/Screenshot.cpp:388 src/toolbars/ToolsToolBar.cpp:77 msgid "Tools" msgstr "Інструменти" -#: src/Screenshot.cpp:381 src/toolbars/ControlToolBar.cpp:95 -#: src/toolbars/ControlToolBar.cpp:269 +#: src/Screenshot.cpp:389 src/toolbars/ControlToolBar.cpp:99 +#: src/toolbars/ControlToolBar.cpp:271 msgid "Transport" msgstr "Перенесення" -#: src/Screenshot.cpp:387 src/toolbars/MixerToolBar.cpp:59 +#: src/Screenshot.cpp:395 src/toolbars/MixerToolBar.cpp:59 #: src/toolbars/MixerToolBar.cpp:197 msgid "Mixer" msgstr "Мікшер" -#: src/Screenshot.cpp:388 src/toolbars/MeterToolBar.cpp:172 -#: src/widgets/Meter.cpp:2192 +#: src/Screenshot.cpp:396 src/toolbars/MeterToolBar.cpp:172 +#: src/widgets/Meter.cpp:2222 msgid "Meter" msgstr "Індикатор" -#: src/Screenshot.cpp:389 src/toolbars/EditToolBar.cpp:79 +#: src/Screenshot.cpp:397 src/toolbars/EditToolBar.cpp:79 #: src/toolbars/EditToolBar.cpp:192 msgid "Edit" msgstr "Змінити" -#: src/Screenshot.cpp:390 src/toolbars/DeviceToolBar.cpp:62 +#: src/Screenshot.cpp:398 src/toolbars/DeviceToolBar.cpp:62 #: src/toolbars/DeviceToolBar.cpp:312 msgid "Device" msgstr "Пристрій" -#: src/Screenshot.cpp:391 src/toolbars/TranscriptionToolBar.cpp:92 -#: src/toolbars/TranscriptionToolBar.cpp:298 +#: src/Screenshot.cpp:399 src/toolbars/TranscriptionToolBar.cpp:92 +#: src/toolbars/TranscriptionToolBar.cpp:293 msgid "Transcription" msgstr "Перезапис" -#: src/Screenshot.cpp:397 src/TrackPanel.cpp:473 src/TrackPanel.cpp:474 +#: src/Screenshot.cpp:405 src/TrackPanel.cpp:440 src/TrackPanel.cpp:441 msgid "Track Panel" msgstr "Панель доріжки" -#: src/Screenshot.cpp:398 +#: src/Screenshot.cpp:406 msgid "Ruler" msgstr "Лінійка" -#: src/Screenshot.cpp:399 src/export/ExportMultiple.cpp:300 -#: src/export/ExportMultiple.cpp:301 src/prefs/TracksPrefs.cpp:34 +#: src/Screenshot.cpp:407 src/export/ExportMultiple.cpp:308 +#: src/export/ExportMultiple.cpp:309 src/prefs/TracksPrefs.cpp:34 msgid "Tracks" msgstr "Доріжки" -#: src/Screenshot.cpp:400 +#: src/Screenshot.cpp:408 msgid "First Track" msgstr "Перша доріжка" -#: src/Screenshot.cpp:401 +#: src/Screenshot.cpp:409 msgid "Second Track" msgstr "Друга доріжка" -#: src/Screenshot.cpp:407 src/prefs/SpectrumPrefs.cpp:170 +#: src/Screenshot.cpp:415 src/prefs/SpectrumPrefs.cpp:170 msgid "Scale" msgstr "Масштаб" -#: src/Screenshot.cpp:411 +#: src/Screenshot.cpp:419 msgid "One Sec" msgstr "Одна секунда" -#: src/Screenshot.cpp:412 +#: src/Screenshot.cpp:420 msgid "Ten Sec" msgstr "Десять секунд" -#: src/Screenshot.cpp:413 +#: src/Screenshot.cpp:421 msgid "One Min" msgstr "Одна хвилина" -#: src/Screenshot.cpp:414 +#: src/Screenshot.cpp:422 msgid "Five Min" msgstr "П’ять хвилин" -#: src/Screenshot.cpp:415 +#: src/Screenshot.cpp:423 msgid "One Hour" msgstr "Одна година" -#: src/Screenshot.cpp:421 +#: src/Screenshot.cpp:429 msgid "Short Tracks" msgstr "Низькі доріжки" -#: src/Screenshot.cpp:422 +#: src/Screenshot.cpp:430 msgid "Medium Tracks" msgstr "Середні доріжки" -#: src/Screenshot.cpp:423 +#: src/Screenshot.cpp:431 msgid "Tall Tracks" msgstr "Високі доріжки" -#: src/Screenshot.cpp:515 +#: src/Screenshot.cpp:524 msgid "Choose a location to save screenshot images" msgstr "Оберіть адресу, за якою слід зберігати знімки" -#: src/Sequence.cpp:1051 +#: src/Sequence.cpp:1050 #, c-format msgid "" -"Sequence has block file with length %s > mMaxSamples %s.\n" -"Truncating to mMaxSamples." +"Sequence has block file exceeding maximum %s samples per block.\n" +"Truncating to this maximum length." msgstr "" -"У послідовності є блок-файл з тривалістю %s > mMaxSamples %s.\n" -"Дані обрізано до mMaxSamples." +"У послідовності даних є блок-файл, у якому перевищено максимальне припустиме " +"значення у %s семплів на блок.\n" +"Обрізаємо до цієї максимальної довжини." -#: src/Sequence.cpp:1054 -msgid "Warning - Length in Writing Sequence" -msgstr "Попередження: тривалість у послідовності запису" +#: src/Sequence.cpp:1052 +msgid "Warning - Truncating Overlong Block File" +msgstr "Попередження: обрізаємо надто довгий блок-файл" -#: src/ShuttleGui.cpp:2178 -msgid "Pre&view" -msgstr "&Прослухати" +#: src/ShuttleGui.cpp:2177 src/effects/Effect.cpp:3044 +msgid "&Preview" +msgstr "П&рослухати" -#: src/ShuttleGui.cpp:2182 +#: src/ShuttleGui.cpp:2181 msgid "Dry Previe&w" msgstr "Прослухати &без застосування" -#: src/ShuttleGui.cpp:2188 +#: src/ShuttleGui.cpp:2187 msgid "&Settings" msgstr "П&араметри" -#: src/ShuttleGui.cpp:2219 +#: src/ShuttleGui.cpp:2218 msgid "Debu&g" msgstr "Ді&агностика" @@ -4925,109 +5023,109 @@ msgstr "Ласкаво просимо до Audacity!" msgid "Don't show this again at start up" msgstr "Не показувати цього знову під час запуску" -#: src/Tags.cpp:570 +#: src/Tags.cpp:606 msgid "Artist Name" msgstr "Ім'я виконавця" -#: src/Tags.cpp:571 +#: src/Tags.cpp:607 msgid "Track Title" msgstr "Назва доріжки" -#: src/Tags.cpp:572 +#: src/Tags.cpp:608 msgid "Album Title" msgstr "Назва альбому" -#: src/Tags.cpp:573 +#: src/Tags.cpp:609 msgid "Track Number" msgstr "Номер доріжки" -#: src/Tags.cpp:574 +#: src/Tags.cpp:610 msgid "Year" msgstr "Рік" -#: src/Tags.cpp:575 +#: src/Tags.cpp:611 msgid "Genre" msgstr "Жанр" -#: src/Tags.cpp:576 src/prefs/MousePrefs.cpp:107 +#: src/Tags.cpp:612 src/prefs/MousePrefs.cpp:107 msgid "Comments" msgstr "Коментарі" -#: src/Tags.cpp:732 +#: src/Tags.cpp:771 msgid "Use arrow keys (or ENTER key after editing) to navigate fields." msgstr "" "Скористайтеся клавішами зі стрілочками (або клавішею Enter після завершення " "редагування), щоб здійснювати навігацію полями." -#: src/Tags.cpp:756 +#: src/Tags.cpp:794 msgid "Tag" msgstr "Мітка" -#: src/Tags.cpp:757 +#: src/Tags.cpp:795 msgid "Value" msgstr "Значення" -#: src/Tags.cpp:778 +#: src/Tags.cpp:816 msgid "Genres" msgstr "Жанри" -#: src/Tags.cpp:782 +#: src/Tags.cpp:820 msgid "E&dit..." msgstr "&Змінити…" -#: src/Tags.cpp:783 +#: src/Tags.cpp:821 msgid "Rese&t..." msgstr "С&кинути…" -#: src/Tags.cpp:788 +#: src/Tags.cpp:826 msgid "Template" msgstr "Шаблон" -#: src/Tags.cpp:792 +#: src/Tags.cpp:830 msgid "&Load..." msgstr "&Завантажити…" -#: src/Tags.cpp:795 +#: src/Tags.cpp:833 msgid "Set De&fault" msgstr "Зробити &типовими" -#: src/Tags.cpp:949 +#: src/Tags.cpp:987 msgid "Edit Genres" msgstr "Редагувати жанри" -#: src/Tags.cpp:983 src/Tags.cpp:1022 +#: src/Tags.cpp:1021 src/Tags.cpp:1060 msgid "Unable to save genre file." msgstr "Не вдалося зберегти файл зі списком жанрів." -#: src/Tags.cpp:983 src/Tags.cpp:995 src/Tags.cpp:1010 src/Tags.cpp:1022 +#: src/Tags.cpp:1021 src/Tags.cpp:1033 src/Tags.cpp:1048 src/Tags.cpp:1060 msgid "Reset Genres" msgstr "Відновити жанри" -#: src/Tags.cpp:994 +#: src/Tags.cpp:1032 msgid "Are you sure you want to reset the genre list to defaults?" msgstr "Ви справді бажаєте відновити список жанрів до типового?" -#: src/Tags.cpp:1010 +#: src/Tags.cpp:1048 msgid "Unable to open genre file." msgstr "Не вдалося відкрити файл зі списком жанрів." -#: src/Tags.cpp:1044 +#: src/Tags.cpp:1082 msgid "Load Metadata As:" msgstr "Завантажити метадані як:" -#: src/Tags.cpp:1069 +#: src/Tags.cpp:1107 msgid "Error Loading Metadata" msgstr "Помилка під час завантаження метаданих" -#: src/Tags.cpp:1098 +#: src/Tags.cpp:1136 msgid "Save Metadata As:" msgstr "Зберегти метадані як:" -#: src/Tags.cpp:1153 +#: src/Tags.cpp:1191 msgid "Error Saving Tags File" msgstr "Помилка під час спроби запису файла міток" -#: src/Theme.cpp:640 +#: src/Theme.cpp:642 #, c-format msgid "" "Audacity could not write file:\n" @@ -5036,7 +5134,7 @@ msgstr "" "Audacity не може записати файл:\n" " %s." -#: src/Theme.cpp:658 +#: src/Theme.cpp:660 #, c-format msgid "" "Audacity could not open file:\n" @@ -5047,7 +5145,7 @@ msgstr "" " %s\n" "для запису." -#: src/Theme.cpp:666 +#: src/Theme.cpp:668 #, c-format msgid "" "Audacity could not write images to file:\n" @@ -5056,7 +5154,7 @@ msgstr "" "Audacity не може записати зображення у файл:\n" " %s." -#: src/Theme.cpp:801 +#: src/Theme.cpp:803 #, c-format msgid "" "Audacity could not find file:\n" @@ -5067,7 +5165,7 @@ msgstr "" " %s.\n" "Тему не завантажено." -#: src/Theme.cpp:810 src/Theme.cpp:900 +#: src/Theme.cpp:812 src/Theme.cpp:902 #, c-format msgid "" "Audacity could not load file:\n" @@ -5078,7 +5176,7 @@ msgstr "" " %s.\n" "Можливо неправильний формат png?" -#: src/Theme.cpp:826 +#: src/Theme.cpp:828 msgid "" "Audacity could not read its default theme.\n" "Please report the problem." @@ -5086,7 +5184,7 @@ msgstr "" "Audacity не може прочитати свою типову тему.\n" "Будь ласка, повідомте авторів про проблему." -#: src/Theme.cpp:922 +#: src/Theme.cpp:924 #, c-format msgid "" "None of the expected theme component files\n" @@ -5097,7 +5195,7 @@ msgstr "" "які мали знаходитися у:\n" " %s." -#: src/Theme.cpp:946 +#: src/Theme.cpp:948 #, c-format msgid "" "Could not create directory:\n" @@ -5106,7 +5204,18 @@ msgstr "" "Не вдалося створити теку:\n" " %s" -#: src/Theme.cpp:967 +#: src/Theme.cpp:976 +#, c-format +msgid "" +"Some required files in:\n" +" %s\n" +"were already present. Overwrite?" +msgstr "" +"Деякі потрібні файли у:\n" +" %s\n" +"вже були наявні. Перезаписати їх?" + +#: src/Theme.cpp:993 #, c-format msgid "" "Audacity could not save file:\n" @@ -5115,79 +5224,162 @@ msgstr "" "Audacity не може зберегти файл:\n" " %s" -#: src/Theme.cpp:979 -#, c-format -msgid "" -"All required files in:\n" -" %s\n" -"were already present." -msgstr "" -"Всі потрібні файли у:\n" -" %s\n" -"вже були присутні." - -#: src/TimeDialog.h:31 src/TimerRecordDialog.cpp:257 -#: src/TimerRecordDialog.cpp:399 src/TimerRecordDialog.cpp:412 -#: src/effects/DtmfGen.cpp:325 src/effects/Noise.cpp:238 -#: src/effects/Silence.cpp:71 src/effects/ToneGen.cpp:408 -#: src/effects/VST/VSTEffect.cpp:2892 src/effects/ladspa/LadspaEffect.cpp:1215 -#: src/effects/lv2/LV2Effect.cpp:1622 +#: src/TimeDialog.h:31 src/TimerRecordDialog.cpp:853 +#: src/TimerRecordDialog.cpp:865 src/effects/DtmfGen.cpp:325 +#: src/effects/Noise.cpp:238 src/effects/Silence.cpp:71 +#: src/effects/ToneGen.cpp:408 src/effects/VST/VSTEffect.cpp:2892 +#: src/effects/ladspa/LadspaEffect.cpp:1221 src/effects/lv2/LV2Effect.cpp:1617 msgid "Duration" msgstr "Тривалість" #. i18n-hint: This is for screen reader software and indicates that #. this is a Time track. -#: src/TimeTrack.cpp:55 src/TrackPanelAx.cpp:319 +#: src/TimeTrack.cpp:55 src/TrackPanelAx.cpp:303 msgid "Time Track" msgstr "Доріжка часу" -#: src/TimerRecordDialog.cpp:72 +#: src/TimerRecordDialog.cpp:142 msgid "Audacity Timer Record" msgstr "Таймер запису Audacity" -#: src/TimerRecordDialog.cpp:218 +#: src/TimerRecordDialog.cpp:308 +msgid "" +"The selected file name could not be used\n" +"for Timer Recording because it would overwrite another project.\n" +"Please try again and select an original name." +msgstr "" +"Вибрану назву файла не може бути використано для запису за\n" +"таймером, оскільки її використання призведе до перезапису іншого\n" +"проекту. Будь ласка, виберіть якусь іншу назву." + +#: src/TimerRecordDialog.cpp:309 +msgid "Error Saving Timer Recording Project" +msgstr "Помилка під час спроби збереження файла проекту запису за таймером" + +#: src/TimerRecordDialog.cpp:362 +msgid "Less than 1 minute" +msgstr "Менше за хвилину" + +#: src/TimerRecordDialog.cpp:372 +msgid "1 hour and " +msgstr "1 година і " + +#: src/TimerRecordDialog.cpp:375 +#, c-format +msgid "%d hours and" +msgstr "%d годин і" + +#: src/TimerRecordDialog.cpp:380 +msgid "1 minute" +msgstr "1 хвилина" + +#: src/TimerRecordDialog.cpp:383 +#, c-format +msgid "%d minutes" +msgstr "%d хвилин" + +#: src/TimerRecordDialog.cpp:396 msgid "Duration is zero. Nothing will be recorded." msgstr "Тривалість є нульовою. Нічого не записано." -#: src/TimerRecordDialog.cpp:219 +#: src/TimerRecordDialog.cpp:397 msgid "Error in Duration" msgstr "Помилка під час визначення тривалості" -#: src/TimerRecordDialog.cpp:254 -msgid "Recording start" -msgstr "Початок запису" +#: src/TimerRecordDialog.cpp:405 +msgid "Automatic Save path is invalid." +msgstr "Шлях автоматичного збереження є некоректним." -#: src/TimerRecordDialog.cpp:255 -msgid "Recording end" -msgstr "Кінець запису" +#: src/TimerRecordDialog.cpp:406 +msgid "Error in Automatic Save" +msgstr "Помилка під час автоматичного збереження" -#: src/TimerRecordDialog.cpp:261 +#: src/TimerRecordDialog.cpp:412 +msgid "Automatic Export path is invalid." +msgstr "Шлях автоматичного експортування є некоректним." + +#: src/TimerRecordDialog.cpp:413 +msgid "Error in Automatic Export" +msgstr "Помилка під час автоматичного експортування" + +#: src/TimerRecordDialog.cpp:450 +msgid "Timer Recording Disk Space Warning" +msgstr "Попередження щодо місця на диску для записів за таймером" + +#: src/TimerRecordDialog.cpp:492 src/TimerRecordDialog.cpp:889 +msgid "Current Project" +msgstr "Поточний проект" + +#: src/TimerRecordDialog.cpp:554 +#, c-format +msgid "Recording start:\t\t\t%s\n" +msgstr "Початок запису:\t\t\t%s\n" + +#: src/TimerRecordDialog.cpp:555 +#, c-format +msgid "Duration:\t\t\t%s\n" +msgstr "Тривалість:\t\t\t%s\n" + +#: src/TimerRecordDialog.cpp:556 +#, c-format +msgid "" +"Recording end:\t\t\t%s\n" +"\n" +msgstr "" +"Завершення запису:\t\t\t%s\n" +"\n" + +#: src/TimerRecordDialog.cpp:557 src/TimerRecordDialog.cpp:1027 +#, c-format +msgid "Automatic Save enabled:\t\t%s\n" +msgstr "Увімкнено автоматичне збереження:\t\t%s\n" + +#: src/TimerRecordDialog.cpp:558 src/TimerRecordDialog.cpp:1028 +#, c-format +msgid "Automatic Export enabled:\t\t%s\n" +msgstr "Увімкнено автоматичне експортування:\t\t%s\n" + +#: src/TimerRecordDialog.cpp:559 src/TimerRecordDialog.cpp:1029 +#: src/TimerRecordDialog.cpp:1067 +#, c-format +msgid "Action after Timer Recording:\t%s" +msgstr "Дія після записування за таймером:\t%s" + +#: src/TimerRecordDialog.cpp:569 msgid "Audacity Timer Record Progress" msgstr "Поступ запису за таймером Audacity" +#: src/TimerRecordDialog.cpp:642 +msgid "Timer Recording stopped." +msgstr "Запис за таймером зупинено." + +#: src/TimerRecordDialog.cpp:643 +msgid "Timer Recording completed." +msgstr "Запис за таймером завершено." + #. i18n-hint: This string is used to configure the controls for times when the recording is #. * started and stopped. As such it is important that only the alphabetic parts of the string #. * are translated, with the numbers left exactly as they are. #. * The 'h' indicates the first number displayed is hours, the 'm' indicates the second number #. * displayed is minutes, and the 's' indicates that the third number displayed is seconds. #. -#: src/TimerRecordDialog.cpp:355 +#: src/TimerRecordDialog.cpp:803 msgid "099 h 060 m 060 s" msgstr "099 г 060 хв 060 с" -#: src/TimerRecordDialog.cpp:356 +#: src/TimerRecordDialog.cpp:804 msgid "Start Date and Time" msgstr "Дата та час початку" -#: src/TimerRecordDialog.cpp:363 +#: src/TimerRecordDialog.cpp:811 msgid "Start Date" msgstr "Дата початку" -#: src/TimerRecordDialog.cpp:378 +#: src/TimerRecordDialog.cpp:829 msgid "End Date and Time" msgstr "Дата і час кінця" -#: src/TimerRecordDialog.cpp:386 +#: src/TimerRecordDialog.cpp:837 msgid "End Date" msgstr "Дата закінчення" @@ -5199,138 +5391,216 @@ msgstr "Дата закінчення" #. * number displayed is minutes, and the 's' indicates that the fourth number displayed is #. * seconds. #. -#: src/TimerRecordDialog.cpp:409 +#: src/TimerRecordDialog.cpp:863 msgid "099 days 024 h 060 m 060 s" msgstr "099 днів 024 г 060 хв 060 с" -#. i18n-hint: A time specification like "Sunday 28th October 2007 15:16:17 GMT" -#. * but hopefully translated by wxwidgets will be inserted into this -#: src/TimerRecordDialog.cpp:484 -#, c-format -msgid "Waiting to start recording at %s.\n" -msgstr "Очікування на початок запису о %s.\n" +#: src/TimerRecordDialog.cpp:877 +msgid "Automatic Save" +msgstr "Автоматичне збереження" -#: src/TimerRecordDialog.cpp:490 +#: src/TimerRecordDialog.cpp:880 +msgid "Enable &Automatic Save?" +msgstr "Увімкнути &автоматичне збереження?" + +#: src/TimerRecordDialog.cpp:891 src/TimerRecordDialog.cpp:892 +msgid "Save Project As:" +msgstr "Зберегти проект як:" + +#: src/TimerRecordDialog.cpp:895 src/TimerRecordDialog.cpp:910 +msgid "Select..." +msgstr "Вибрати…" + +#: src/TimerRecordDialog.cpp:901 +msgid "Automatic Export" +msgstr "Автоматичне експортування" + +#: src/TimerRecordDialog.cpp:903 +msgid "Enable Automatic &Export?" +msgstr "Увімкнути автоматичне &експортування?" + +#: src/TimerRecordDialog.cpp:906 src/TimerRecordDialog.cpp:907 +msgid "Export Project As:" +msgstr "Експортувати проект як:" + +#: src/TimerRecordDialog.cpp:916 +msgid "Options" +msgstr "Параметри" + +#: src/TimerRecordDialog.cpp:920 +msgid "Do nothing" +msgstr "Нічого не робити" + +#: src/TimerRecordDialog.cpp:921 +msgid "Exit audacity" +msgstr "Вийти з Audacity" + +#: src/TimerRecordDialog.cpp:922 +msgid "Restart system" +msgstr "Перезапустити систему" + +#: src/TimerRecordDialog.cpp:923 +msgid "Shutdown system" +msgstr "Вимкнути систему" + +#: src/TimerRecordDialog.cpp:933 +msgid "After Recording completes:" +msgstr "Після завершення запису:" + +#: src/TimerRecordDialog.cpp:1024 +#, c-format +msgid "Waiting to start recording at:\t%s\n" +msgstr "Очікуємо на початок запису о:\t%s\n" + +#: src/TimerRecordDialog.cpp:1025 +#, c-format +msgid "Recording duration:\t\t%s\n" +msgstr "Тривалість запису:\t\t%s\n" + +#: src/TimerRecordDialog.cpp:1026 +#, c-format +msgid "" +"Scheduled to stop at:\t\t%s\n" +"\n" +msgstr "" +"Заплановано зупинку о:\t\t%s\n" +"\n" + +#: src/TimerRecordDialog.cpp:1040 msgid "Audacity Timer Record - Waiting for Start" msgstr "Запис за таймером Audacity — Очікування початку" -#: src/TrackPanel.cpp:711 +#: src/TimerRecordDialog.cpp:1043 +msgid "Recording will commence in:" +msgstr "Запис буде почато за:" + +#: src/TimerRecordDialog.cpp:1064 +msgid "" +"Timer Recording completed.\n" +"\n" +msgstr "" +"Запис за таймером завершено.\n" +"\n" + +#: src/TimerRecordDialog.cpp:1065 +#, c-format +msgid "Recording Saved:\t\t\t%s\n" +msgstr "Запис збережено:\t\t\t%s\n" + +#: src/TimerRecordDialog.cpp:1066 +#, c-format +msgid "Recording Exported:\t\t%s\n" +msgstr "Запис експортовано:\t\t%s\n" + +#: src/TimerRecordDialog.cpp:1077 +msgid "Audacity Timer Record - Waiting" +msgstr "Запис за таймером Audacity — очікування" + +#: src/TrackPanel.cpp:616 msgid "&Other..." msgstr "&Інше…" -#: src/TrackPanel.cpp:721 +#: src/TrackPanel.cpp:626 msgid "Wa&veform" msgstr "&Хвиля" -#: src/TrackPanel.cpp:722 +#: src/TrackPanel.cpp:627 msgid "&Waveform (dB)" msgstr "&Хвиля (дБ)" -#: src/TrackPanel.cpp:723 +#: src/TrackPanel.cpp:628 msgid "&Spectrogram" msgstr "Спек&трограма" -#: src/TrackPanel.cpp:724 +#: src/TrackPanel.cpp:629 msgid "S&pectrogram Settings..." msgstr "Пара&метри спектрограми…" -#: src/TrackPanel.cpp:729 +#: src/TrackPanel.cpp:634 msgid "&Mono" msgstr "&Моно" -#: src/TrackPanel.cpp:730 +#: src/TrackPanel.cpp:635 msgid "&Left Channel" msgstr "&Лівий канал" -#: src/TrackPanel.cpp:731 +#: src/TrackPanel.cpp:636 msgid "&Right Channel" msgstr "&Правий канал" -#: src/TrackPanel.cpp:732 +#: src/TrackPanel.cpp:637 msgid "Ma&ke Stereo Track" msgstr "З&робити доріжку стереофонічною" -#: src/TrackPanel.cpp:733 +#: src/TrackPanel.cpp:638 msgid "Swap Stereo &Channels" msgstr "Поміняти місцями &канали стерео" -#: src/TrackPanel.cpp:734 +#: src/TrackPanel.cpp:639 msgid "Spl&it Stereo Track" msgstr "Роз&ділити стереодоріжку" -#: src/TrackPanel.cpp:735 +#: src/TrackPanel.cpp:640 msgid "Split Stereo to Mo&no" msgstr "Поділити стерео на &моно" -#: src/TrackPanel.cpp:738 +#: src/TrackPanel.cpp:643 msgid "&Format" msgstr "&Формат" -#: src/TrackPanel.cpp:742 +#: src/TrackPanel.cpp:647 msgid "Rat&e" msgstr "Встановити &частоту" -#: src/TrackPanel.cpp:747 +#: src/TrackPanel.cpp:652 msgid "Up &Octave" msgstr "Октаво&ю вище" -#: src/TrackPanel.cpp:748 +#: src/TrackPanel.cpp:653 msgid "Down Octa&ve" msgstr "О&ктавою нижче" -#: src/TrackPanel.cpp:753 +#: src/TrackPanel.cpp:658 msgid "&Font..." msgstr "&Шрифт…" -#: src/TrackPanel.cpp:758 +#: src/TrackPanel.cpp:663 msgid "&Linear" msgstr "&Лінійний" -#: src/TrackPanel.cpp:759 +#: src/TrackPanel.cpp:664 msgid "L&ogarithmic" msgstr "Л&огарифмічний" -#: src/TrackPanel.cpp:761 +#: src/TrackPanel.cpp:666 msgid "&Range..." msgstr "&Діапазон…" -#: src/TrackPanel.cpp:762 +#: src/TrackPanel.cpp:667 msgid "Logarithmic &Interpolation" msgstr "Логарифмічна &інтерполяція" -#: src/TrackPanel.cpp:777 +#: src/TrackPanel.cpp:684 msgid "&Name..." msgstr "&Назва…" -#: src/TrackPanel.cpp:779 +#: src/TrackPanel.cpp:688 msgid "Move Track &Up" msgstr "Пересунути доріжку &вище" -#: src/TrackPanel.cpp:781 +#: src/TrackPanel.cpp:690 msgid "Move Track &Down" msgstr "Перемістити доріжку в&низ" -#: src/TrackPanel.cpp:783 +#: src/TrackPanel.cpp:692 msgid "Move Track to &Top" msgstr "Пересунути доріжку &нижче" -#: src/TrackPanel.cpp:785 +#: src/TrackPanel.cpp:694 msgid "Move Track to &Bottom" msgstr "Пересунути доріжку у &кінець" -#: src/TrackPanel.cpp:799 -msgid "Zoom In\tLeft-Click/Left-Drag" -msgstr "Збільшити\tКлацання лівою/Перетягування лівою кнопкою" - -#: src/TrackPanel.cpp:800 -msgid "Zoom Out\tShift-Left-Click" -msgstr "Зменшити\tShift і клацання лівою" - -#: src/TrackPanel.cpp:801 -msgid "Zoom to Fit\tShift-Right-Click" -msgstr "Підібрати за розміром\tShift і клацання правою" - -#: src/TrackPanel.cpp:1683 +#: src/TrackPanel.cpp:1356 msgid "" "Click to vertically zoom in. Shift-click to zoom out. Drag to specify a zoom " "region." @@ -5338,7 +5608,7 @@ msgstr "" "Клацання — вертикальне збільшення, Shift+клацання — зменшення, перетягування " "— визначення області масштабування." -#: src/TrackPanel.cpp:1688 +#: src/TrackPanel.cpp:1361 msgid "" "Click to verticaly zoom in, Shift-click to zoom out, Drag to create a " "particular zoom region." @@ -5346,93 +5616,93 @@ msgstr "" "Клацання — вертикальне збільшення, Shift+клацання — зменшення, перетягування " "з натиснутою кнопкою — вибір області масштабування." -#: src/TrackPanel.cpp:1694 +#: src/TrackPanel.cpp:1367 msgid "Drag the track vertically to change the order of the tracks." msgstr "" "Щоб змінити порядок представлення доріжок, перетягніть цю доріжку вгору/вниз." -#: src/TrackPanel.cpp:1708 +#: src/TrackPanel.cpp:1381 msgid "Click and drag to adjust relative size of stereo tracks." msgstr "" "Клацніть та перетягніть позначку для коригування відносного розміру " "стереодоріжок." -#: src/TrackPanel.cpp:1711 +#: src/TrackPanel.cpp:1384 msgid "Click and drag to resize the track." msgstr "Клацніть та перетягніть для зміни розміру доріжки." -#: src/TrackPanel.cpp:1742 +#: src/TrackPanel.cpp:1415 msgid "Drag one or more label boundaries." msgstr "Перетягнути одну чи більше меж позначок." -#: src/TrackPanel.cpp:1743 +#: src/TrackPanel.cpp:1416 msgid "Drag label boundary." msgstr "Перетягнути межу позначки." -#: src/TrackPanel.cpp:1788 src/TrackPanel.cpp:1795 +#: src/TrackPanel.cpp:1461 src/TrackPanel.cpp:1468 msgid "Click and drag to move center selection frequency." msgstr "" "Затисніть кнопку миші і перетягніть вказівник для пересування середини " "діапазону частот." -#: src/TrackPanel.cpp:1789 +#: src/TrackPanel.cpp:1462 msgid "Click and drag to move center selection frequency to a spectral peak." msgstr "" "Затисніть кнопку миші і перетягніть вказівник для пересування середини " "діапазону частот до спектрального піка." #. i18n-hint: These are the names of a menu and a command in that menu -#: src/TrackPanel.cpp:1846 +#: src/TrackPanel.cpp:1519 msgid "Edit, Preferences..." msgstr "Зміни, Параметри…" -#: src/TrackPanel.cpp:1851 +#: src/TrackPanel.cpp:1524 #, c-format msgid "Multi-Tool Mode: %s for Mouse and Keyboard Preferences." msgstr "" "Універсальний інструмент: натисніть %s для налаштовування миші та клавіатури" -#: src/TrackPanel.cpp:1882 +#: src/TrackPanel.cpp:1555 msgid "Click and drag to set frequency bandwidth." msgstr "" "Натисніть кнопку миші і перетягніть вказівник, щоб встановити смугу частот." -#: src/TrackPanel.cpp:1908 +#: src/TrackPanel.cpp:1575 msgid "Click and drag to stretch within selected region." msgstr "" "Натисніть кнопку миші і перетягніть вказівник, щоб розтягнути позначену " "ділянку." -#: src/TrackPanel.cpp:1923 +#: src/TrackPanel.cpp:1590 msgid "Click to move selection boundary to cursor." msgstr "Клацніть, щоб пересунути межу позначеного у позицію вказівника." -#: src/TrackPanel.cpp:1929 +#: src/TrackPanel.cpp:1596 msgid "Click and drag to move left selection boundary." msgstr "Клацніть та перетягніть для переміщення лівої межі вибраної ділянки." -#: src/TrackPanel.cpp:1933 +#: src/TrackPanel.cpp:1600 msgid "Click and drag to move right selection boundary." msgstr "Клацніть та перетягніть для переміщення правої межі вибраної ділянки." -#: src/TrackPanel.cpp:1938 +#: src/TrackPanel.cpp:1605 msgid "Click and drag to move bottom selection frequency." msgstr "" "Затисніть кнопку миші і перетягніть вказівник для пересування нижньої " "частоти." -#: src/TrackPanel.cpp:1942 +#: src/TrackPanel.cpp:1609 msgid "Click and drag to move top selection frequency." msgstr "" "Затисніть кнопку миші і перетягніть вказівник для пересування верхньої " "частоти." -#: src/TrackPanel.cpp:1949 +#: src/TrackPanel.cpp:1616 msgid "Click and drag to adjust frequency bandwidth." msgstr "" "Затисніть кнопку миші і перетягніть вказівник для коригування смуги частот." -#: src/TrackPanel.cpp:2697 src/TrackPanel.cpp:2705 +#: src/TrackPanel.cpp:2072 src/TrackPanel.cpp:2080 msgid "Click and drag to stretch selected region." msgstr "" "Натисніть кнопку миші і перетягніть вказівник, щоб розширити позначену " @@ -5440,7 +5710,7 @@ msgstr "" #. i18n-hint: (noun) The track that is used for MIDI notes which can be #. dragged to change their duration. -#: src/TrackPanel.cpp:2740 src/TrackPanel.cpp:3308 +#: src/TrackPanel.cpp:2115 src/TrackPanel.cpp:2683 msgid "Stretch Note Track" msgstr "Розтягнути нотну доріжку" @@ -5448,303 +5718,303 @@ msgstr "Розтягнути нотну доріжку" #. been dragged to change its duration (stretch it). Using either past #. or present tense is fine here. If unsure, go for whichever is #. shorter. -#: src/TrackPanel.cpp:2745 src/TrackPanel.cpp:3308 +#: src/TrackPanel.cpp:2120 src/TrackPanel.cpp:2683 msgid "Stretch" msgstr "Розтягнути" #. i18n-hint: (verb) Audacity has just adjusted the envelope . -#: src/TrackPanel.cpp:3654 +#: src/TrackPanel.cpp:3026 msgid "Adjusted envelope." msgstr "Обвідна скорегована." #. i18n-hint: The envelope is a curve that controls the audio loudness. -#: src/TrackPanel.cpp:3656 src/prefs/MousePrefs.cpp:144 +#: src/TrackPanel.cpp:3028 src/prefs/MousePrefs.cpp:137 msgid "Envelope" msgstr "Обвідна" -#: src/TrackPanel.cpp:3825 +#: src/TrackPanel.cpp:3197 msgid "Moved clips to another track" msgstr "Кліпи пересунуто до іншої доріжки" #. i18n-hint: a direction as in left or right. -#: src/TrackPanel.cpp:3831 +#: src/TrackPanel.cpp:3203 msgid "right" msgstr "правий" #. i18n-hint: a direction as in left or right. -#: src/TrackPanel.cpp:3833 +#: src/TrackPanel.cpp:3205 msgid "left" msgstr "лівий" #. i18n-hint: %s is a direction like left or right -#: src/TrackPanel.cpp:3835 +#: src/TrackPanel.cpp:3207 #, c-format msgid "Time shifted tracks/clips %s %.02f seconds" msgstr "Доріжку/область зміщено на %s %.02f секунд" -#: src/TrackPanel.cpp:3839 src/prefs/MousePrefs.cpp:138 -#: src/prefs/MousePrefs.cpp:139 src/prefs/MousePrefs.cpp:140 +#: src/TrackPanel.cpp:3211 src/prefs/MousePrefs.cpp:131 +#: src/prefs/MousePrefs.cpp:132 src/prefs/MousePrefs.cpp:133 msgid "Time-Shift" msgstr "Зсув у часі" -#: src/TrackPanel.cpp:4913 +#: src/TrackPanel.cpp:4285 msgid "To use Draw, choose 'Waveform' in the Track Drop-down Menu." msgstr "" "Щоб використати Малювання, виберіть пункт «Форма хвилі» у спадному меню " "доріжки." -#: src/TrackPanel.cpp:4932 +#: src/TrackPanel.cpp:4304 msgid "To use Draw, zoom in further until you can see the individual samples." msgstr "" "Щоб використати Малювання, збільшуйте частину доріжки, аж доки не побачите " "окремі фрагменти." -#: src/TrackPanel.cpp:5177 +#: src/TrackPanel.cpp:4549 msgid "Moved Samples" msgstr "Пересунуті семли" -#: src/TrackPanel.cpp:5178 +#: src/TrackPanel.cpp:4550 msgid "Sample Edit" msgstr "Редагування семплу" -#: src/TrackPanel.cpp:5432 +#: src/TrackPanel.cpp:4804 msgid "Moved velocity slider" msgstr "Пересунуто повзунок швидкості" -#: src/TrackPanel.cpp:5609 +#: src/TrackPanel.cpp:4999 msgid "up" msgstr "вгору" -#: src/TrackPanel.cpp:5609 +#: src/TrackPanel.cpp:4999 msgid "down" msgstr "вниз" -#: src/TrackPanel.cpp:5610 +#: src/TrackPanel.cpp:5000 #, c-format msgid "Moved '%s' %s" msgstr "Переміщено «%s» %s" -#: src/TrackPanel.cpp:6721 +#: src/TrackPanel.cpp:6137 msgid "Expanded Cut Line" msgstr "Розширена лінія розрізу" -#: src/TrackPanel.cpp:6721 +#: src/TrackPanel.cpp:6137 msgid "Expand" msgstr "Розгорнути" -#: src/TrackPanel.cpp:6741 +#: src/TrackPanel.cpp:6157 msgid "Merged Clips" msgstr "Об'єднані фрагменти" -#: src/TrackPanel.cpp:6741 +#: src/TrackPanel.cpp:6157 msgid "Merge" msgstr "Об'єднати" -#: src/TrackPanel.cpp:6752 +#: src/TrackPanel.cpp:6168 msgid "Removed Cut Line" msgstr "Вилучено лінію розрізу" -#: src/TrackPanel.cpp:6752 src/effects/EffectRack.cpp:244 +#: src/TrackPanel.cpp:6168 src/effects/EffectRack.cpp:244 msgid "Remove" msgstr "Вилучити" -#: src/TrackPanel.cpp:8661 src/TrackPanel.cpp:8664 +#: src/TrackPanel.cpp:7791 src/TrackPanel.cpp:7794 msgid "Stereo, " msgstr "Стерео, " -#: src/TrackPanel.cpp:8668 +#: src/TrackPanel.cpp:7798 msgid "Mono, " msgstr "Моно, " -#: src/TrackPanel.cpp:8670 +#: src/TrackPanel.cpp:7800 msgid "Left, " msgstr "Лівий, " -#: src/TrackPanel.cpp:8672 +#: src/TrackPanel.cpp:7802 msgid "Right, " msgstr "Правий, " -#: src/TrackPanel.cpp:8684 +#: src/TrackPanel.cpp:7814 msgid "Left Channel" msgstr "Лівий канал" -#: src/TrackPanel.cpp:8684 +#: src/TrackPanel.cpp:7814 msgid "Right Channel" msgstr "Правий канал" -#: src/TrackPanel.cpp:8685 +#: src/TrackPanel.cpp:7815 msgid "Mono" msgstr "Моно" -#: src/TrackPanel.cpp:8694 src/TrackPanel.cpp:9003 +#: src/TrackPanel.cpp:7824 src/TrackPanel.cpp:8137 #, c-format msgid "Changed '%s' to %s" msgstr "«%s» змінено на %s" -#: src/TrackPanel.cpp:8697 +#: src/TrackPanel.cpp:7827 msgid "Channel" msgstr "Канал" -#: src/TrackPanel.cpp:8724 +#: src/TrackPanel.cpp:7854 #, c-format msgid "Swapped Channels in '%s'" msgstr "Виконано обмін каналів у «%s»" -#: src/TrackPanel.cpp:8726 +#: src/TrackPanel.cpp:7856 msgid "Swap Channels" msgstr "Обмін каналів" -#: src/TrackPanel.cpp:8734 +#: src/TrackPanel.cpp:7864 #, c-format msgid "Split stereo track '%s'" msgstr "Розділити стереодоріжку «%s»" -#: src/TrackPanel.cpp:8743 +#: src/TrackPanel.cpp:7873 #, c-format msgid "Split Stereo to Mono '%s'" msgstr "Поділити стерео на моно «%s»" -#: src/TrackPanel.cpp:8745 +#: src/TrackPanel.cpp:7875 msgid "Split to Mono" msgstr "Розділити на моно" -#: src/TrackPanel.cpp:8838 +#: src/TrackPanel.cpp:7968 #, c-format msgid "Made '%s' a stereo track" msgstr "Зробити «%s» стереодоріжку" -#: src/TrackPanel.cpp:8841 +#: src/TrackPanel.cpp:7971 msgid "Make Stereo" msgstr "Зробити стереофонічною" -#: src/TrackPanel.cpp:8960 +#: src/TrackPanel.cpp:8092 #, c-format msgid "Changed '%s' to %s Hz" msgstr "«%s» змінено на %s Гц" -#: src/TrackPanel.cpp:8962 +#: src/TrackPanel.cpp:8094 msgid "Rate Change" msgstr "Змінити частоту" -#: src/TrackPanel.cpp:9007 +#: src/TrackPanel.cpp:8141 msgid "Format Change" msgstr "Зміна формату" -#: src/TrackPanel.cpp:9094 +#: src/TrackPanel.cpp:8232 msgid "Set Rate" msgstr "Встановити частоту дискретизації" -#: src/TrackPanel.cpp:9171 +#: src/TrackPanel.cpp:8309 msgid "Change lower speed limit (%) to:" msgstr "Змінити нижню межу швидкості (%) на:" -#: src/TrackPanel.cpp:9172 src/TrackPanel.cpp:9173 +#: src/TrackPanel.cpp:8310 src/TrackPanel.cpp:8311 msgid "Lower speed limit" msgstr "Межа зниження швидкості" -#: src/TrackPanel.cpp:9178 +#: src/TrackPanel.cpp:8316 msgid "Change upper speed limit (%) to:" msgstr "Змінити верхню межу швидкості (%) на:" -#: src/TrackPanel.cpp:9179 src/TrackPanel.cpp:9180 +#: src/TrackPanel.cpp:8317 src/TrackPanel.cpp:8318 msgid "Upper speed limit" msgstr "Верхня межа швидкості" -#: src/TrackPanel.cpp:9188 +#: src/TrackPanel.cpp:8326 #, c-format msgid "Set range to '%ld' - '%ld'" msgstr "Встановити межу як '%ld' — '%ld'" #. i18n-hint: (verb) -#: src/TrackPanel.cpp:9193 +#: src/TrackPanel.cpp:8331 msgid "Set Range" msgstr "Встановити діапазон" -#: src/TrackPanel.cpp:9204 +#: src/TrackPanel.cpp:8342 msgid "Set time track display to linear" msgstr "Встановити лінійний режим показу на доріжці" -#: src/TrackPanel.cpp:9204 src/TrackPanel.cpp:9213 +#: src/TrackPanel.cpp:8342 src/TrackPanel.cpp:8351 msgid "Set Display" msgstr "Встановити режим показу" -#: src/TrackPanel.cpp:9213 +#: src/TrackPanel.cpp:8351 msgid "Set time track display to logarithmic" msgstr "Встановити логарифмічний режим показу на доріжці" -#: src/TrackPanel.cpp:9222 +#: src/TrackPanel.cpp:8360 msgid "Set time track interpolation to linear" msgstr "Встановити лінійний режим інтерполяції" -#: src/TrackPanel.cpp:9222 src/TrackPanel.cpp:9225 +#: src/TrackPanel.cpp:8360 src/TrackPanel.cpp:8363 msgid "Set Interpolation" msgstr "Встановити режим інтерполяції" -#: src/TrackPanel.cpp:9225 +#: src/TrackPanel.cpp:8363 msgid "Set time track interpolation to logarithmic" msgstr "Встановити логарифмічний режим інтерполяції" -#: src/TrackPanel.cpp:9331 +#: src/TrackPanel.cpp:8469 msgid "Change track name to:" msgstr "Змінити назву доріжки на:" -#: src/TrackPanel.cpp:9332 +#: src/TrackPanel.cpp:8470 msgid "Track Name" msgstr "Назва доріжки" -#: src/TrackPanel.cpp:9345 +#: src/TrackPanel.cpp:8483 #, c-format msgid "Renamed '%s' to '%s'" msgstr "Назву змінено з «%s» на «%s»" -#: src/TrackPanel.cpp:9348 +#: src/TrackPanel.cpp:8486 msgid "Name Change" msgstr "Зміна назви" #. i18n-hint: (noun) This is the font for the label track. -#: src/TrackPanel.cpp:9384 +#: src/TrackPanel.cpp:8522 msgid "Label Track Font" msgstr "Шрифт доріжки для позначок" #. i18n-hint: (noun) The name of the typeface -#: src/TrackPanel.cpp:9398 src/TrackPanel.cpp:9405 +#: src/TrackPanel.cpp:8536 src/TrackPanel.cpp:8543 msgid "Face name" msgstr "Назва шрифту" #. i18n-hint: (noun) The size of the typeface -#: src/TrackPanel.cpp:9410 src/TrackPanel.cpp:9417 +#: src/TrackPanel.cpp:8548 src/TrackPanel.cpp:8555 msgid "Face size" msgstr "Розмір шрифту" -#: src/TrackPanel.cpp:9677 +#: src/TrackPanel.cpp:9189 msgid "Stereo, 999999Hz" msgstr "Стерео, 999999Гц" -#: src/TrackPanelAx.cpp:290 src/TrackPanelAx.cpp:482 +#: src/TrackPanelAx.cpp:274 src/TrackPanelAx.cpp:466 msgid "TrackView" msgstr "ПереглядДоріжки" #. i18n-hint: The %d is replaced by th enumber of the track. -#: src/TrackPanelAx.cpp:306 src/TrackPanelAx.cpp:497 +#: src/TrackPanelAx.cpp:290 src/TrackPanelAx.cpp:481 #, c-format msgid "Track %d" msgstr "Доріжка %d" #. i18n-hint: This is for screen reader software and indicates that #. on this track mute is on. -#: src/TrackPanelAx.cpp:339 src/TrackPanelAx.cpp:503 +#: src/TrackPanelAx.cpp:323 src/TrackPanelAx.cpp:487 msgid " Mute On" msgstr "Тихо" #. i18n-hint: This is for screen reader software and indicates that #. on this track solo is on. -#: src/TrackPanelAx.cpp:346 src/TrackPanelAx.cpp:508 +#: src/TrackPanelAx.cpp:330 src/TrackPanelAx.cpp:492 msgid " Solo On" msgstr " Соло увімкнено" #. i18n-hint: This is for screen reader software and indicates that #. this track is selected. -#: src/TrackPanelAx.cpp:352 src/TrackPanelAx.cpp:512 +#: src/TrackPanelAx.cpp:336 src/TrackPanelAx.cpp:496 msgid " Select On" msgstr " Вибір увімкнено" @@ -5752,7 +6022,7 @@ msgstr " Вибір увімкнено" #. this track is shown with a sync-locked icon. #. The absence of a dash between Sync and Locked is deliberate - #. if present, Jaws reads it as "dash". -#: src/TrackPanelAx.cpp:360 +#: src/TrackPanelAx.cpp:344 msgid " Sync Lock Selected" msgstr " Вибрано фіксування синхронізації" @@ -5787,22 +6057,22 @@ msgid "Direction Changes -- mean: %1.4f sd: (%1.4f)\n" msgstr "Змін напрямку — в середньому: %1.4f пд: (%1.4f)\n" #. i18n-hint: The default name for an audio track. -#: src/WaveTrack.cpp:106 src/prefs/TracksPrefs.cpp:106 -#: src/toolbars/ControlToolBar.cpp:918 +#: src/WaveTrack.cpp:108 src/prefs/TracksPrefs.cpp:112 +#: src/toolbars/ControlToolBar.cpp:984 msgid "Audio Track" msgstr "Доріжка" -#: src/WaveTrack.cpp:1311 src/WaveTrack.cpp:1330 +#: src/WaveTrack.cpp:1320 src/WaveTrack.cpp:1339 msgid "There is not enough room available to paste the selection" msgstr "Не вистачає місця для вставки вибраного фрагменту" -#: src/WaveTrack.cpp:2529 +#: src/WaveTrack.cpp:2540 msgid "There is not enough room available to expand the cut line" msgstr "Недостатньо простору для поширення лінії вирізання" #: src/commands/CommandManager.cpp:108 src/effects/nyquist/Nyquist.cpp:94 #: src/prefs/KeyConfigPrefs.cpp:813 src/prefs/MousePrefs.cpp:57 -#: src/widgets/KeyView.cpp:1545 src/widgets/KeyView.cpp:1557 +#: src/widgets/KeyView.cpp:1544 src/widgets/KeyView.cpp:1556 msgid "Command" msgstr "Команда" @@ -5846,12 +6116,12 @@ msgstr "" msgid "Disallowed" msgstr "Заборонено" -#: src/commands/CommandManager.cpp:1382 +#: src/commands/CommandManager.cpp:1383 #, c-format msgid "Loaded %d keyboard shortcuts\n" msgstr "Завантажено %d комбінацій клавіш\n" -#: src/commands/CommandManager.cpp:1384 +#: src/commands/CommandManager.cpp:1385 msgid "Loading Keyboard Shortcuts" msgstr "Завантажуємо комбінації клавіш" @@ -5963,12 +6233,12 @@ msgstr "Максимальна пауза:" #. i18n-hint: Name of time display format that shows time in seconds #: src/effects/AutoDuck.cpp:444 src/effects/AutoDuck.cpp:450 #: src/effects/AutoDuck.cpp:456 src/effects/AutoDuck.cpp:462 -#: src/effects/AutoDuck.cpp:468 src/prefs/PlaybackPrefs.cpp:65 -#: src/prefs/PlaybackPrefs.cpp:66 src/prefs/PlaybackPrefs.cpp:81 -#: src/prefs/PlaybackPrefs.cpp:82 src/prefs/PlaybackPrefs.cpp:88 -#: src/prefs/PlaybackPrefs.cpp:89 src/prefs/PlaybackPrefs.cpp:103 -#: src/prefs/PlaybackPrefs.cpp:104 src/prefs/PlaybackPrefs.cpp:110 -#: src/prefs/PlaybackPrefs.cpp:111 src/widgets/NumericTextCtrl.cpp:281 +#: src/effects/AutoDuck.cpp:468 src/prefs/PlaybackPrefs.cpp:77 +#: src/prefs/PlaybackPrefs.cpp:78 src/prefs/PlaybackPrefs.cpp:93 +#: src/prefs/PlaybackPrefs.cpp:94 src/prefs/PlaybackPrefs.cpp:100 +#: src/prefs/PlaybackPrefs.cpp:101 src/prefs/PlaybackPrefs.cpp:115 +#: src/prefs/PlaybackPrefs.cpp:116 src/prefs/PlaybackPrefs.cpp:122 +#: src/prefs/PlaybackPrefs.cpp:123 src/widgets/NumericTextCtrl.cpp:281 msgid "seconds" msgstr "секунд" @@ -5992,63 +6262,53 @@ msgstr "Внутрішня довжина наростання:" msgid "Threshold:" msgstr "Поріг:" -#: src/effects/AutoDuck.cpp:688 +#: src/effects/AutoDuck.cpp:690 msgid "Preview not available" msgstr "Попереднє прослуховування недоступне" -#: src/effects/BassTreble.cpp:47 src/effects/BassTreble.cpp:282 +#: src/effects/BassTreble.cpp:44 src/effects/BassTreble.cpp:224 msgid "Bass" msgstr "Баси" -#: src/effects/BassTreble.cpp:48 src/effects/BassTreble.cpp:293 +#: src/effects/BassTreble.cpp:45 src/effects/BassTreble.cpp:234 msgid "Treble" msgstr "Високі частоти" -#: src/effects/BassTreble.cpp:49 src/effects/BassTreble.cpp:304 -#: src/effects/Normalize.cpp:35 -msgid "Level" -msgstr "Рівень" +#: src/effects/BassTreble.cpp:47 +msgid "Link Sliders" +msgstr "Пов’язати повзунки" -#: src/effects/BassTreble.cpp:50 src/effects/Compressor.cpp:63 -#: src/effects/Normalize.h:25 -msgid "Normalize" -msgstr "Нормалізація" +#: src/effects/BassTreble.cpp:92 +msgid "Simple tone control effect" +msgstr "Простий ефект керування тоном" -#: src/effects/BassTreble.cpp:96 -msgid "" -"Increases or decreases the lower frequencies and higher frequencies of your " -"audio independently" -msgstr "" -"Збільшує або зменшує інтенсивність нижніх або верхніх частот ваших звукових " -"даних незалежно" +#: src/effects/BassTreble.cpp:209 +msgid "Tone controls" +msgstr "Керування тоном" -#: src/effects/BassTreble.cpp:276 +#: src/effects/BassTreble.cpp:218 msgid "&Bass (dB):" msgstr "&Баси (дБ):" -#: src/effects/BassTreble.cpp:277 +#: src/effects/BassTreble.cpp:219 msgid "Bass (dB):" msgstr "Баси (дБ):" -#: src/effects/BassTreble.cpp:288 +#: src/effects/BassTreble.cpp:229 msgid "&Treble (dB):" msgstr "В&Ч (дБ):" -#: src/effects/BassTreble.cpp:299 -msgid "&Level (dB):" -msgstr "&Рівень (дБ):" +#: src/effects/BassTreble.cpp:249 +msgid "&Volume (dB):" +msgstr "&Гучність (дБ):" -#: src/effects/BassTreble.cpp:312 -msgid "&Enable level control" -msgstr "&Увімкнути керування рівнем" +#: src/effects/BassTreble.cpp:254 src/effects/Normalize.cpp:35 +msgid "Level" +msgstr "Рівень" -#: src/effects/BassTreble.cpp:423 -msgid " No change to apply." -msgstr " Немає змін для внесення." - -#: src/effects/BassTreble.cpp:431 -msgid ": Maximum 0 dB." -msgstr ": максимум — 0 дБ." +#: src/effects/BassTreble.cpp:261 +msgid "Link Volume control to Tone controls" +msgstr "Пов’язати керування гучністю із керуванням тоном" #: src/effects/BassTreble.h:26 msgid "Bass and Treble" @@ -6141,7 +6401,7 @@ msgstr "не вказано" #. i18n-hint: Name of time display format that shows time in hours, #. * minutes, seconds and milliseconds (1/1000 second) #: src/effects/ChangeSpeed.cpp:96 src/effects/ChangeSpeed.cpp:146 -#: src/effects/ChangeSpeed.cpp:182 src/effects/Effect.cpp:1212 +#: src/effects/ChangeSpeed.cpp:182 src/effects/Effect.cpp:1211 #: src/widgets/NumericTextCtrl.cpp:327 msgid "hh:mm:ss + milliseconds" msgstr "гг:хх:сс + мілісекунд" @@ -6171,7 +6431,7 @@ msgstr "З об./хв." msgid "To rpm" msgstr "До об./хв." -#: src/effects/ChangeSpeed.cpp:359 src/toolbars/SelectionBar.cpp:347 +#: src/effects/ChangeSpeed.cpp:359 src/toolbars/SelectionBar.cpp:351 msgid "Selection Length" msgstr "Тривалість вибраної області" @@ -6279,6 +6539,10 @@ msgstr "Час наростання" msgid "ReleaseTime" msgstr "Час випуску" +#: src/effects/Compressor.cpp:63 src/effects/Normalize.h:25 +msgid "Normalize" +msgstr "Нормалізація" + #: src/effects/Compressor.cpp:64 msgid "UsePeak" msgstr "Вик. піків" @@ -6393,11 +6657,11 @@ msgstr "%.1f секунд" msgid "Compressor" msgstr "Компресор" -#: src/effects/Contrast.cpp:66 -msgid "No wave tracks exist." -msgstr "Немає доріжок хвиль." +#: src/effects/Contrast.cpp:74 +msgid "You can only measure one track at a time." +msgstr "Вимірювання можна виконувати лише для однієї доріжки одночасно." -#: src/effects/Contrast.cpp:72 +#: src/effects/Contrast.cpp:81 msgid "" "Start time after end time!\n" "Please enter reasonable times." @@ -6405,7 +6669,7 @@ msgstr "" "Час початку розташовано після часу завершення!\n" "Будь ласка, перегляньте вибрані значення." -#: src/effects/Contrast.cpp:82 +#: src/effects/Contrast.cpp:101 msgid "" "Times are not reasonable!\n" "Please enter reasonable times." @@ -6413,7 +6677,7 @@ msgstr "" "Вибрано некоректні значення часу!\n" "Будь ласка, виправте їх." -#: src/effects/Contrast.cpp:88 +#: src/effects/Contrast.cpp:107 msgid "" "Nothing to measure.\n" "Please select a section of a track." @@ -6421,15 +6685,11 @@ msgstr "" "Нічого вимірювати.\n" "Будь ласка, позначте ділянку доріжки." -#: src/effects/Contrast.cpp:98 -msgid "You can only measure one track at a time." -msgstr "Вимірювання можна виконувати лише для однієї доріжки одночасно." +#: src/effects/Contrast.cpp:117 +msgid "Please select an audio track." +msgstr "Будь ласка, виберіть звукову доріжку." -#: src/effects/Contrast.cpp:118 -msgid "Please select something to be measured." -msgstr "Будь ласка, позначте щось для вимірювання." - -#: src/effects/Contrast.cpp:210 +#: src/effects/Contrast.cpp:215 msgid "" "Contrast Analyzer, for measuring RMS volume differences between two " "selections of audio." @@ -6437,195 +6697,195 @@ msgstr "" "Аналізатор контрастності для вимірювання відносної різниці у гучності між " "двома ділянками звукової доріжки." -#: src/effects/Contrast.cpp:223 +#: src/effects/Contrast.cpp:228 msgid "Volume " msgstr "Гучність " -#: src/effects/Contrast.cpp:226 +#: src/effects/Contrast.cpp:231 msgid "&Foreground:" msgstr "&Передній план:" #. i18n-hint: Name of time display format that shows time in hours, #. * minutes, seconds and hundredths of a second (1/100 second) -#: src/effects/Contrast.cpp:232 src/effects/Contrast.cpp:248 -#: src/effects/Contrast.cpp:270 src/effects/Contrast.cpp:286 +#: src/effects/Contrast.cpp:237 src/effects/Contrast.cpp:254 +#: src/effects/Contrast.cpp:277 src/effects/Contrast.cpp:294 #: src/widgets/NumericTextCtrl.cpp:315 msgid "hh:mm:ss + hundredths" msgstr "гг:хх:сс + соті" -#: src/effects/Contrast.cpp:238 +#: src/effects/Contrast.cpp:243 msgid "Foreground start time" msgstr "Час початку переднього плану" -#: src/effects/Contrast.cpp:254 +#: src/effects/Contrast.cpp:260 msgid "Foreground end time" msgstr "Час завершення переднього плану" -#: src/effects/Contrast.cpp:259 +#: src/effects/Contrast.cpp:266 msgid "&Measure selection" msgstr "В&иміряти позначене" -#: src/effects/Contrast.cpp:264 +#: src/effects/Contrast.cpp:271 msgid "&Background:" msgstr "&Тло:" -#: src/effects/Contrast.cpp:276 +#: src/effects/Contrast.cpp:283 msgid "Background start time" msgstr "Час початку тла" -#: src/effects/Contrast.cpp:292 +#: src/effects/Contrast.cpp:300 msgid "Background end time" msgstr "Час завершення тла" -#: src/effects/Contrast.cpp:297 +#: src/effects/Contrast.cpp:306 msgid "Mea&sure selection" msgstr "Ви&міряти позначене" -#: src/effects/Contrast.cpp:306 +#: src/effects/Contrast.cpp:315 msgid "Result" msgstr "Результат" -#: src/effects/Contrast.cpp:310 +#: src/effects/Contrast.cpp:319 msgid "Co&ntrast Result:" msgstr "Р&езультат контрастності:" -#: src/effects/Contrast.cpp:313 +#: src/effects/Contrast.cpp:322 msgid "R&eset" msgstr "&Відновити" -#: src/effects/Contrast.cpp:314 +#: src/effects/Contrast.cpp:323 msgid "&Difference:" msgstr "&Різниця:" -#: src/effects/Contrast.cpp:317 src/effects/Equalization.cpp:3234 +#: src/effects/Contrast.cpp:326 src/effects/Equalization.cpp:3241 msgid "E&xport..." msgstr "&Експортувати…" -#: src/effects/Contrast.cpp:412 -msgid "No foreground measured" -msgstr "Немає переднього плану для вимірювання" - -#: src/effects/Contrast.cpp:417 +#: src/effects/Contrast.cpp:427 msgid "Measured foreground level" msgstr "Виміряний рівень переднього плану" -#: src/effects/Contrast.cpp:419 src/effects/Contrast.cpp:432 +#: src/effects/Contrast.cpp:429 src/effects/Contrast.cpp:441 +msgid "zero" +msgstr "нуль" + +#: src/effects/Contrast.cpp:431 src/effects/Contrast.cpp:443 #, c-format msgid "%.1f dB" msgstr "%.1f дБ" -#: src/effects/Contrast.cpp:421 src/effects/Contrast.cpp:434 -msgid "zero" -msgstr "нуль" +#: src/effects/Contrast.cpp:434 src/effects/Contrast.cpp:606 +msgid "No foreground measured" +msgstr "Немає переднього плану для вимірювання" -#: src/effects/Contrast.cpp:425 -msgid "No background measured" -msgstr "Немає тла для вимірювання" - -#: src/effects/Contrast.cpp:430 +#: src/effects/Contrast.cpp:439 msgid "Measured background level" msgstr "Виміряний рівень тла" -#: src/effects/Contrast.cpp:439 -msgid "WCAG2 Pass" -msgstr "WCAG2 пройдено" - -#: src/effects/Contrast.cpp:441 -msgid "WCAG2 Fail" -msgstr "Помилка WCAG2" +#: src/effects/Contrast.cpp:446 src/effects/Contrast.cpp:607 +msgid "No background measured" +msgstr "Немає тла для вимірювання" #. i18n-hint: i.e. difference in loudness at the moment. -#: src/effects/Contrast.cpp:443 +#: src/effects/Contrast.cpp:452 msgid "Current difference" msgstr "Поточна різниця" -#: src/effects/Contrast.cpp:446 +#: src/effects/Contrast.cpp:455 +msgid "WCAG2 Pass" +msgstr "WCAG2 пройдено" + +#: src/effects/Contrast.cpp:458 +msgid "WCAG2 Fail" +msgstr "Помилка WCAG2" + +#: src/effects/Contrast.cpp:463 msgid "indeterminate" msgstr "не вдається визначити" -#: src/effects/Contrast.cpp:449 +#: src/effects/Contrast.cpp:467 #, c-format msgid "%.1f dB Average RMS" msgstr "%.1f дБ середньоквадратичного" -#: src/effects/Contrast.cpp:451 +#: src/effects/Contrast.cpp:470 msgid "infinite dB difference" msgstr "Нескінченна різниця у дБ" -#: src/effects/Contrast.cpp:456 +#: src/effects/Contrast.cpp:477 msgid "Please enter valid times." msgstr "Будь ласка, введіть коректні значення." -#: src/effects/Contrast.cpp:466 +#: src/effects/Contrast.cpp:488 msgid "Export Contrast Result As:" msgstr "Експортувати результати контрасту як:" -#: src/effects/Contrast.cpp:490 +#: src/effects/Contrast.cpp:512 msgid "WCAG 2.0 Success Criteria 1.4.7 Contrast Results" msgstr "Критерій успіху 1.4.7 результатів контрасту WCAG 2.0" -#: src/effects/Contrast.cpp:492 +#: src/effects/Contrast.cpp:514 #, c-format msgid "Filename = %s." msgstr "Назва файла = %s." -#: src/effects/Contrast.cpp:494 +#: src/effects/Contrast.cpp:516 msgid "Foreground" msgstr "Передній план" -#: src/effects/Contrast.cpp:499 src/effects/Contrast.cpp:518 +#: src/effects/Contrast.cpp:521 src/effects/Contrast.cpp:540 #, c-format msgid "Time started = %2d hour(s), %2d minute(s), %.2f seconds." msgstr "Час початку = %2d годин, %2d хвилин, %.2f секунд." -#: src/effects/Contrast.cpp:504 src/effects/Contrast.cpp:523 +#: src/effects/Contrast.cpp:526 src/effects/Contrast.cpp:545 #, c-format msgid "Time ended = %2d hour(s), %2d minute(s), %.2f seconds." msgstr "Час завершення = %2d годин, %2d хвилин, %.2f секунд." -#: src/effects/Contrast.cpp:507 src/effects/Contrast.cpp:526 +#: src/effects/Contrast.cpp:529 src/effects/Contrast.cpp:548 #, c-format msgid "Average RMS = %.1f dB." msgstr "Середньоквадратичне = %.1f дБ." -#: src/effects/Contrast.cpp:509 src/effects/Contrast.cpp:528 +#: src/effects/Contrast.cpp:531 src/effects/Contrast.cpp:550 msgid "Average RMS = zero." msgstr "Середньоквадратичне = нуль." -#: src/effects/Contrast.cpp:511 src/effects/Contrast.cpp:530 +#: src/effects/Contrast.cpp:533 src/effects/Contrast.cpp:552 msgid "Average RMS = dB." msgstr "Середньоквадратичне = дБ." -#: src/effects/Contrast.cpp:513 +#: src/effects/Contrast.cpp:535 msgid "Background" msgstr "Тло" -#: src/effects/Contrast.cpp:532 +#: src/effects/Contrast.cpp:554 msgid "Results" msgstr "Результати" -#: src/effects/Contrast.cpp:535 +#: src/effects/Contrast.cpp:557 msgid "Difference is indeterminate." msgstr "Різницю визначити не вдалося." -#: src/effects/Contrast.cpp:538 +#: src/effects/Contrast.cpp:560 #, c-format msgid "Difference = %.1f Average RMS dB." msgstr "Різниця = %.1f Середньоквадратичне дБ." -#: src/effects/Contrast.cpp:540 +#: src/effects/Contrast.cpp:562 msgid "Difference = infinite Average RMS dB." msgstr "Різниця = нескінченна Середньоквадратичне дБ." -#: src/effects/Contrast.cpp:542 +#: src/effects/Contrast.cpp:564 msgid "Success Criteria 1.4.7 of WCAG 2.0: Pass" msgstr "Критерій успіху 1.4.7 WCAG 2.0: пройдено" -#: src/effects/Contrast.cpp:544 +#: src/effects/Contrast.cpp:566 msgid "Success Criteria 1.4.7 of WCAG 2.0: Fail" msgstr "Критерій успіху 1.4.7 WCAG 2.0: помилка" -#: src/effects/Contrast.cpp:547 +#: src/effects/Contrast.cpp:569 msgid "Data gathered" msgstr "Дані зібрано" @@ -6663,7 +6923,7 @@ msgstr "Амплітуда (0-1):" #: src/effects/DtmfGen.cpp:314 src/effects/Noise.cpp:227 #: src/effects/Silence.cpp:60 src/effects/ToneGen.cpp:397 #: src/effects/TruncSilence.cpp:721 src/effects/VST/VSTEffect.cpp:2880 -#: src/effects/ladspa/LadspaEffect.cpp:1203 +#: src/effects/ladspa/LadspaEffect.cpp:1209 msgid "Duration:" msgstr "Тривалість:" @@ -6721,7 +6981,7 @@ msgstr "Луна" msgid "Audacity" msgstr "Audacity" -#: src/effects/Effect.cpp:1084 +#: src/effects/Effect.cpp:1083 #, c-format msgid "" "%s: Could not load settings below. Default settings will be used.\n" @@ -6735,24 +6995,24 @@ msgstr "" #. i18n-hint: Name of time display format that shows time in hours, #. * minutes, seconds and samples (at the current project sample rate) -#: src/effects/Effect.cpp:1212 src/widgets/NumericTextCtrl.cpp:339 +#: src/effects/Effect.cpp:1211 src/widgets/NumericTextCtrl.cpp:339 msgid "hh:mm:ss + samples" msgstr "гг:хх:сс + фрагменти" -#: src/effects/Effect.cpp:1245 +#: src/effects/Effect.cpp:1244 #, c-format msgid "Applying %s..." msgstr "Застосовуємо %s…" -#: src/effects/Effect.cpp:2629 +#: src/effects/Effect.cpp:2613 msgid "Preparing preview" msgstr "Підготовка прослуховування" -#: src/effects/Effect.cpp:2670 +#: src/effects/Effect.cpp:2655 msgid "Previewing" msgstr "Прослуховування" -#: src/effects/Effect.cpp:2685 src/toolbars/ControlToolBar.cpp:651 +#: src/effects/Effect.cpp:2670 src/toolbars/ControlToolBar.cpp:671 msgid "" "Error while opening sound device. Please check the playback device settings " "and the project sample rate." @@ -6760,159 +7020,155 @@ msgstr "" "Помилка при відкриванні звукового пристрою. Перевірте параметри пристрою " "відтворення та частоту дискретизації проекту." -#: src/effects/Effect.cpp:3027 src/effects/Effect.cpp:3035 -#: src/effects/Effect.cpp:3037 +#: src/effects/Effect.cpp:3012 src/effects/Effect.cpp:3020 +#: src/effects/Effect.cpp:3022 msgid "&Manage" msgstr "&Керування" -#: src/effects/Effect.cpp:3041 +#: src/effects/Effect.cpp:3026 msgid "Manage presets and options" msgstr "Керувати наборами налаштувань та параметрами" #. i18n-hint: The access key "&P" should be the same in #. "Stop &Playback" and "Start &Playback" -#: src/effects/Effect.cpp:3052 src/effects/Effect.cpp:3782 -#: src/effects/Effect.cpp:3792 src/effects/Effect.cpp:3794 +#: src/effects/Effect.cpp:3037 src/effects/Effect.cpp:3779 +#: src/effects/Effect.cpp:3789 src/effects/Effect.cpp:3791 msgid "Start &Playback" msgstr "Почати &відтворення" -#: src/effects/Effect.cpp:3053 +#: src/effects/Effect.cpp:3038 msgid "Start and stop playback" msgstr "Розпочати або припинити відтворення" -#: src/effects/Effect.cpp:3059 -msgid "&Preview" -msgstr "П&рослухати" - -#: src/effects/Effect.cpp:3060 src/effects/Effect.cpp:3077 -#: src/effects/Effect.cpp:3079 +#: src/effects/Effect.cpp:3045 src/effects/Effect.cpp:3062 +#: src/effects/Effect.cpp:3064 msgid "Preview effect" msgstr "Прослуховування ефекту" -#: src/effects/Effect.cpp:3081 +#: src/effects/Effect.cpp:3066 msgid "&Preview effect" msgstr "&Прослухати ефект" -#: src/effects/Effect.cpp:3091 src/effects/Effect.cpp:3101 -#: src/effects/Effect.cpp:3103 +#: src/effects/Effect.cpp:3076 src/effects/Effect.cpp:3086 +#: src/effects/Effect.cpp:3088 msgid "Skip &Backward" msgstr "Перемотати &назад" -#: src/effects/Effect.cpp:3107 +#: src/effects/Effect.cpp:3092 msgid "Skip backward" msgstr "Перемотати назад" -#: src/effects/Effect.cpp:3112 +#: src/effects/Effect.cpp:3097 msgid "Skip &Forward" msgstr "Перемотати &вперед" -#: src/effects/Effect.cpp:3122 src/effects/Effect.cpp:3124 +#: src/effects/Effect.cpp:3107 src/effects/Effect.cpp:3109 msgid "Skip &Foreward" msgstr "Перемотати &вперед" -#: src/effects/Effect.cpp:3128 +#: src/effects/Effect.cpp:3113 msgid "Skip forward" msgstr "Перемотати вперед" -#: src/effects/Effect.cpp:3134 +#: src/effects/Effect.cpp:3119 msgid "Enable" msgstr "Увімкнути" -#: src/effects/Effect.cpp:3242 +#: src/effects/Effect.cpp:3234 msgid "You must select audio in the project window." msgstr "Вам слід позначити звукові дані у вікні проекту." -#: src/effects/Effect.cpp:3318 src/effects/Effect.cpp:3327 -#: src/effects/Effect.cpp:3899 src/effects/Effect.cpp:3935 -#: src/effects/Effect.cpp:3956 src/effects/Effect.cpp:4012 +#: src/effects/Effect.cpp:3315 src/effects/Effect.cpp:3324 +#: src/effects/Effect.cpp:3896 src/effects/Effect.cpp:3932 +#: src/effects/Effect.cpp:3953 src/effects/Effect.cpp:4009 msgid "User Presets" msgstr "Шаблони користувача" -#: src/effects/Effect.cpp:3330 +#: src/effects/Effect.cpp:3327 msgid "Save Preset..." msgstr "Зберегти шаблон…" -#: src/effects/Effect.cpp:3334 src/effects/Effect.cpp:3343 -#: src/effects/Effect.cpp:3570 src/export/ExportFFmpegDialogs.cpp:1403 +#: src/effects/Effect.cpp:3331 src/effects/Effect.cpp:3340 +#: src/effects/Effect.cpp:3567 src/export/ExportFFmpegDialogs.cpp:1403 msgid "Delete Preset" msgstr "Вилучити шаблон" -#: src/effects/Effect.cpp:3351 +#: src/effects/Effect.cpp:3348 msgid "Defaults" msgstr "Типові" -#: src/effects/Effect.cpp:3360 src/effects/Effect.cpp:3976 -#: src/effects/Effect.cpp:4040 src/prefs/QualityPrefs.cpp:73 -#: src/prefs/TracksPrefs.cpp:56 +#: src/effects/Effect.cpp:3357 src/effects/Effect.cpp:3973 +#: src/effects/Effect.cpp:4037 src/prefs/QualityPrefs.cpp:73 +#: src/prefs/TracksPrefs.cpp:62 msgid "None" msgstr "Немає" -#: src/effects/Effect.cpp:3366 src/effects/Effect.cpp:3904 -#: src/effects/Effect.cpp:3940 src/effects/Effect.cpp:3968 -#: src/effects/Effect.cpp:4026 +#: src/effects/Effect.cpp:3363 src/effects/Effect.cpp:3901 +#: src/effects/Effect.cpp:3937 src/effects/Effect.cpp:3965 +#: src/effects/Effect.cpp:4023 msgid "Factory Presets" msgstr "Стандартні параметри" -#: src/effects/Effect.cpp:3369 +#: src/effects/Effect.cpp:3366 msgid "Import..." msgstr "Імпортувати…" -#: src/effects/Effect.cpp:3370 +#: src/effects/Effect.cpp:3367 msgid "Export..." msgstr "Експортувати…" -#: src/effects/Effect.cpp:3372 +#: src/effects/Effect.cpp:3369 msgid "Options..." msgstr "Параметри…" -#: src/effects/Effect.cpp:3377 +#: src/effects/Effect.cpp:3374 #, c-format msgid "Type: %s" msgstr "Тип: %s" -#: src/effects/Effect.cpp:3378 +#: src/effects/Effect.cpp:3375 #, c-format msgid "Name: %s" msgstr "Назва: %s" -#: src/effects/Effect.cpp:3379 +#: src/effects/Effect.cpp:3376 #, c-format msgid "Version: %s" msgstr "Версія: %s" -#: src/effects/Effect.cpp:3380 +#: src/effects/Effect.cpp:3377 #, c-format msgid "Vendor: %s" msgstr "Виробник: %s" -#: src/effects/Effect.cpp:3381 +#: src/effects/Effect.cpp:3378 #, c-format msgid "Description: %s" msgstr "Опис: %s" -#: src/effects/Effect.cpp:3383 +#: src/effects/Effect.cpp:3380 msgid "About" msgstr "Про програму" -#: src/effects/Effect.cpp:3569 +#: src/effects/Effect.cpp:3566 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Ви справді бажаєте вилучити «%s»?" -#: src/effects/Effect.cpp:3586 src/effects/Effect.cpp:3623 -#: src/effects/Effect.cpp:3633 src/export/ExportFFmpegDialogs.cpp:1402 +#: src/effects/Effect.cpp:3583 src/effects/Effect.cpp:3620 +#: src/effects/Effect.cpp:3630 src/export/ExportFFmpegDialogs.cpp:1402 msgid "Save Preset" msgstr "Зберегти шаблон" -#: src/effects/Effect.cpp:3596 +#: src/effects/Effect.cpp:3593 msgid "Preset name:" msgstr "Назва набору шаблонів:" -#: src/effects/Effect.cpp:3622 +#: src/effects/Effect.cpp:3619 msgid "You must specify a name" msgstr "Вам слід вказати назву" -#: src/effects/Effect.cpp:3632 +#: src/effects/Effect.cpp:3629 msgid "" "Preset already exists.\n" "\n" @@ -6924,30 +7180,30 @@ msgstr "" #. i18n-hint: The access key "&P" should be the same in #. "Stop &Playback" and "Start &Playback" -#: src/effects/Effect.cpp:3760 src/effects/Effect.cpp:3770 -#: src/effects/Effect.cpp:3772 +#: src/effects/Effect.cpp:3757 src/effects/Effect.cpp:3767 +#: src/effects/Effect.cpp:3769 msgid "Stop &Playback" msgstr "Зупинити &відтворення" -#: src/effects/Effect.cpp:3871 +#: src/effects/Effect.cpp:3868 msgid "Select Preset" msgstr "Виберіть шаблон" -#: src/effects/Effect.cpp:3881 +#: src/effects/Effect.cpp:3878 msgid "Type:" msgstr "Тип:" -#: src/effects/Effect.cpp:3885 +#: src/effects/Effect.cpp:3882 msgid "&Preset:" msgstr "&Шаблон:" -#: src/effects/Effect.cpp:3909 src/effects/Effect.cpp:3944 -#: src/effects/Effect.cpp:3988 src/effects/Effect.cpp:4048 +#: src/effects/Effect.cpp:3906 src/effects/Effect.cpp:3941 +#: src/effects/Effect.cpp:3985 src/effects/Effect.cpp:4045 msgid "Current Settings" msgstr "Поточні параметри" -#: src/effects/Effect.cpp:3914 src/effects/Effect.cpp:3948 -#: src/effects/Effect.cpp:3994 src/effects/Effect.cpp:4054 +#: src/effects/Effect.cpp:3911 src/effects/Effect.cpp:3945 +#: src/effects/Effect.cpp:3991 src/effects/Effect.cpp:4051 msgid "Factory Defaults" msgstr "Типові значення виробника" @@ -6956,7 +7212,7 @@ msgstr "Типові значення виробника" msgid "Applied effect: %s" msgstr "Застосовано ефект: %s" -#: src/effects/EffectManager.cpp:754 +#: src/effects/EffectManager.cpp:737 #, c-format msgid "" "Attempting to initialize the following effect failed:\n" @@ -6972,7 +7228,7 @@ msgstr "" "Щоб отримати докладнішу інформацію, скористайтеся пунктом меню «Довідка → " "Показати журнал»." -#: src/effects/EffectManager.cpp:756 +#: src/effects/EffectManager.cpp:739 msgid "Effect failed to initialize" msgstr "Не вдалося ініціалізувати ефект" @@ -7225,15 +7481,15 @@ msgid "&Bench" msgstr "&Тест" #. i18n-hint: name of the 'unnamed' custom curve -#: src/effects/Equalization.cpp:1411 src/effects/Equalization.cpp:1435 -#: src/effects/Equalization.cpp:1445 src/effects/Equalization.cpp:1449 -#: src/effects/Equalization.cpp:1454 src/effects/Equalization.cpp:1455 -#: src/effects/Equalization.cpp:1473 +#: src/effects/Equalization.cpp:1407 src/effects/Equalization.cpp:1432 +#: src/effects/Equalization.cpp:1442 src/effects/Equalization.cpp:1446 +#: src/effects/Equalization.cpp:1451 src/effects/Equalization.cpp:1452 +#: src/effects/Equalization.cpp:1470 msgid "unnamed" msgstr "Без назви" #. i18n-hint: EQ stands for 'Equalization'. -#: src/effects/Equalization.cpp:1430 +#: src/effects/Equalization.cpp:1427 #, c-format msgid "" "Error Loading EQ Curves from file:\n" @@ -7246,59 +7502,59 @@ msgstr "" "Повідомлення про помилку:\n" "%s" -#: src/effects/Equalization.cpp:1433 +#: src/effects/Equalization.cpp:1430 msgid "Error Loading EQ Curves" msgstr "Помилка під час завантаження кривих EQ" -#: src/effects/Equalization.cpp:1655 +#: src/effects/Equalization.cpp:1659 msgid "Error Saving Equalization Curves" msgstr "Помилка під час спроби збереження кривих вирівнювання" -#: src/effects/Equalization.cpp:1821 +#: src/effects/Equalization.cpp:1825 msgid "Requested curve not found, using 'unnamed'" msgstr "Потрібну вам криву не знайдено, використовуємо криву «без назви»" -#: src/effects/Equalization.cpp:1821 +#: src/effects/Equalization.cpp:1825 msgid "Curve not found" msgstr "Криву не знайдено" -#: src/effects/Equalization.cpp:3182 src/effects/Equalization.cpp:3187 +#: src/effects/Equalization.cpp:3189 src/effects/Equalization.cpp:3194 msgid "Manage Curves List" msgstr "Керування списком кривих" -#: src/effects/Equalization.cpp:3186 +#: src/effects/Equalization.cpp:3193 msgid "Manage Curves" msgstr "Керування кривими" -#: src/effects/Equalization.cpp:3220 +#: src/effects/Equalization.cpp:3227 msgid "&Curves" msgstr "&Криві" -#: src/effects/Equalization.cpp:3224 +#: src/effects/Equalization.cpp:3231 msgid "Curve Name" msgstr "Назва кривої" -#: src/effects/Equalization.cpp:3231 +#: src/effects/Equalization.cpp:3238 msgid "&Rename..." msgstr "&Перейменувати…" -#: src/effects/Equalization.cpp:3232 +#: src/effects/Equalization.cpp:3239 msgid "D&elete..." msgstr "Ви&лучити…" -#: src/effects/Equalization.cpp:3233 +#: src/effects/Equalization.cpp:3240 msgid "I&mport..." msgstr "І&мпортувати…" -#: src/effects/Equalization.cpp:3235 +#: src/effects/Equalization.cpp:3242 msgid "&Get More..." msgstr "&Додатково…" -#: src/effects/Equalization.cpp:3242 src/widgets/ErrorDialog.cpp:123 +#: src/effects/Equalization.cpp:3249 src/widgets/ErrorDialog.cpp:123 msgid "Help" msgstr "Довідка" -#: src/effects/Equalization.cpp:3243 +#: src/effects/Equalization.cpp:3250 msgid "" "Rename 'unnamed' to save a new entry.\n" "'OK' saves all changes, 'Cancel' doesn't." @@ -7307,110 +7563,110 @@ msgstr "" "Натискання «Гаразд» призведе до збереження всіх змін, «Скасувати» — до їх " "відкидання." -#: src/effects/Equalization.cpp:3278 +#: src/effects/Equalization.cpp:3285 msgid "'unnamed' always stays at the bottom of the list" msgstr "Пункт «Без назви» завжди стоїть на початку списку" -#: src/effects/Equalization.cpp:3278 +#: src/effects/Equalization.cpp:3285 msgid "'unnamed' is special" msgstr "«Без назви» є особливою" -#: src/effects/Equalization.cpp:3372 src/effects/Equalization.cpp:3375 +#: src/effects/Equalization.cpp:3379 src/effects/Equalization.cpp:3382 msgid "Rename '" msgstr "Перейменувати «" -#: src/effects/Equalization.cpp:3372 +#: src/effects/Equalization.cpp:3379 msgid "' to..." msgstr "» на…" -#: src/effects/Equalization.cpp:3373 +#: src/effects/Equalization.cpp:3380 msgid "Rename..." msgstr "Перейменувати…" -#: src/effects/Equalization.cpp:3396 +#: src/effects/Equalization.cpp:3403 msgid "Name is the same as the original one" msgstr "Назва збігається з початковою" -#: src/effects/Equalization.cpp:3396 +#: src/effects/Equalization.cpp:3403 msgid "Same name" msgstr "Однакові назви" -#: src/effects/Equalization.cpp:3399 +#: src/effects/Equalization.cpp:3406 msgid "Overwrite existing curve '" msgstr "Перезаписати поточну криву «" -#: src/effects/Equalization.cpp:3399 +#: src/effects/Equalization.cpp:3406 msgid "'?" msgstr "»?" -#: src/effects/Equalization.cpp:3400 +#: src/effects/Equalization.cpp:3407 msgid "Curve exists" msgstr "Крива вже існує" -#: src/effects/Equalization.cpp:3471 +#: src/effects/Equalization.cpp:3478 msgid "You cannot delete the 'unnamed' curve." msgstr "Не можна вилучати криву «Без назви»." -#: src/effects/Equalization.cpp:3472 src/effects/Equalization.cpp:3521 +#: src/effects/Equalization.cpp:3479 src/effects/Equalization.cpp:3528 msgid "Can't delete 'unnamed'" msgstr "Не можна вилучати криву «Без назви»" -#: src/effects/Equalization.cpp:3478 src/effects/Equalization.cpp:3507 +#: src/effects/Equalization.cpp:3485 src/effects/Equalization.cpp:3514 msgid "Delete '" msgstr "Вилучити «" -#: src/effects/Equalization.cpp:3478 src/effects/Equalization.cpp:3507 +#: src/effects/Equalization.cpp:3485 src/effects/Equalization.cpp:3514 msgid "' ?" msgstr "»?" -#: src/effects/Equalization.cpp:3481 src/effects/Equalization.cpp:3511 +#: src/effects/Equalization.cpp:3488 src/effects/Equalization.cpp:3518 #: src/export/ExportFFmpegDialogs.cpp:1750 msgid "Confirm Deletion" msgstr "Підтвердити вилучення" -#: src/effects/Equalization.cpp:3504 +#: src/effects/Equalization.cpp:3511 msgid "Delete " msgstr "Вилучити " -#: src/effects/Equalization.cpp:3504 +#: src/effects/Equalization.cpp:3511 msgid "items?" msgstr "об’єктів?" -#: src/effects/Equalization.cpp:3520 +#: src/effects/Equalization.cpp:3527 msgid "You cannot delete the 'unnamed' curve, it is special." msgstr "Не можна вилучати криву «Без назви», вона є особливою." -#: src/effects/Equalization.cpp:3537 +#: src/effects/Equalization.cpp:3544 msgid "Choose an EQ curve file" msgstr "Виберіть файл кривої EQ" -#: src/effects/Equalization.cpp:3537 +#: src/effects/Equalization.cpp:3544 msgid "xml files (*.xml;*.XML)|*.xml;*.XML" msgstr "файли xml (*.xml;*.XML)|*.xml;*.XML" -#: src/effects/Equalization.cpp:3557 +#: src/effects/Equalization.cpp:3564 msgid "Export EQ curves as..." msgstr "Експортувати криві EQ як…" -#: src/effects/Equalization.cpp:3579 +#: src/effects/Equalization.cpp:3586 msgid "You cannot export 'unnamed' curve, it is special." msgstr "" "Не можна експортувати криву з назвою «unnamed». Цю назву зарезервовано." -#: src/effects/Equalization.cpp:3579 +#: src/effects/Equalization.cpp:3586 msgid "Cannot Export 'unnamed'" msgstr "Експортування з назвою «unnamed» неможливе" -#: src/effects/Equalization.cpp:3589 +#: src/effects/Equalization.cpp:3596 #, c-format msgid "%d curves exported to %s" msgstr "%d кривих експортовано до %s" -#: src/effects/Equalization.cpp:3590 +#: src/effects/Equalization.cpp:3597 msgid "Curves exported" msgstr "Криві експортовано" -#: src/effects/Equalization.cpp:3593 +#: src/effects/Equalization.cpp:3600 msgid "No curves exported" msgstr "Жодної кривої не експортовано" @@ -7452,7 +7708,7 @@ msgid "Fade Out" msgstr "Повільне згасання" #: src/effects/FindClipping.cpp:62 -msgid "This creates labels where clipping is detected" +msgid "Creates labels where clipping is detected" msgstr "Створить мітки там, де виявлено обрізання" #: src/effects/FindClipping.cpp:100 @@ -7511,11 +7767,11 @@ msgstr "Проходи" #: src/effects/Leveller.cpp:83 msgid "" -"Leveller is a simple, combined compressor and limiter effect for reducing " -"the dynamic range of audio" +"A simple, combined compressor and limiter effect for reducing the dynamic " +"range of audio" msgstr "" -"Засіб вирівнювання є простим комбінованим засобом стискання та обмеження для " -"зменшення динамічного діапазону звукових даних" +"Простий комбінований засіб стискання та обмеження для зменшення динамічного " +"діапазону звукових даних" #: src/effects/Leveller.cpp:218 msgid "Degree of Leveling:" @@ -7529,18 +7785,18 @@ msgstr "Поріг шуму:" msgid "Leveller" msgstr "Вирівнювання" -#: src/effects/LoadEffects.cpp:240 src/effects/LoadEffects.cpp:245 +#: src/effects/LoadEffects.cpp:244 src/effects/LoadEffects.cpp:249 msgid "Builtin Effects" msgstr "Вбудовані ефекти" -#: src/effects/LoadEffects.cpp:250 src/effects/VST/VSTEffect.cpp:307 -#: src/effects/audiounits/AudioUnitEffect.cpp:102 -#: src/effects/ladspa/LadspaEffect.cpp:125 src/effects/lv2/LoadLV2.cpp:111 -#: src/effects/nyquist/LoadNyquist.cpp:113 src/effects/vamp/LoadVamp.cpp:89 +#: src/effects/LoadEffects.cpp:254 src/effects/VST/VSTEffect.cpp:308 +#: src/effects/audiounits/AudioUnitEffect.cpp:103 +#: src/effects/ladspa/LadspaEffect.cpp:126 src/effects/lv2/LoadLV2.cpp:112 +#: src/effects/nyquist/LoadNyquist.cpp:114 src/effects/vamp/LoadVamp.cpp:90 msgid "The Audacity Team" msgstr "Команда Audacity" -#: src/effects/LoadEffects.cpp:261 +#: src/effects/LoadEffects.cpp:265 msgid "Provides builtin effects to Audacity" msgstr "Надає підтримку вбудованих ефектів у Audacity" @@ -7829,11 +8085,12 @@ msgstr "Кроків &на вікно" msgid "Discrimination &method" msgstr "Метод &дискримінації" -#: src/effects/NoiseRemoval.cpp:118 src/effects/NoiseRemoval.cpp:684 +#: src/effects/NoiseRemoval.cpp:119 src/effects/NoiseRemoval.cpp:684 +#: src/effects/NoiseRemoval.h:39 msgid "Noise Removal" msgstr "Вилучення шуму" -#: src/effects/NoiseRemoval.cpp:123 +#: src/effects/NoiseRemoval.cpp:124 msgid "Removes constant background noise such as fans, tape noise, or hums" msgstr "" "Вилучає сталий фоновий шум, зокрема шум від вентиляторів, прокручування " @@ -8146,27 +8403,27 @@ msgstr "Кількість" msgid "Repeats the selection the specified number of times" msgstr "Повторює позначений фрагмент вказану кількість разів" -#: src/effects/Repeat.cpp:178 +#: src/effects/Repeat.cpp:176 msgid "Number of repeats to add:" msgstr "Кількість повторів для додавання:" -#: src/effects/Repeat.cpp:185 +#: src/effects/Repeat.cpp:183 msgid "Current selection length: dd:hh:mm:ss" msgstr "Поточна довжина позначеного: dd:hh:mm:ss" -#: src/effects/Repeat.cpp:186 +#: src/effects/Repeat.cpp:184 msgid "New selection length: dd:hh:mm:ss" msgstr "Нова тривалість вибраного: dd:hh:mm:ss" -#: src/effects/Repeat.cpp:227 +#: src/effects/Repeat.cpp:225 msgid "Current selection length: " msgstr "Поточна довжина позначеного: " -#: src/effects/Repeat.cpp:237 +#: src/effects/Repeat.cpp:235 msgid "New selection length: " msgstr "Нова тривалість вибраного: " -#: src/effects/Repeat.cpp:240 +#: src/effects/Repeat.cpp:238 msgid "Warning: No repeats." msgstr "Попередження: немає повторів." @@ -8412,7 +8669,11 @@ msgstr "Період кадру:" msgid "Frame Period" msgstr "Період кадру" -#: src/effects/ScoreAlignDialog.cpp:109 src/effects/ScoreAlignDialog.cpp:114 +#: src/effects/ScoreAlignDialog.cpp:109 +msgid "Window Size:" +msgstr "Розмір вікна:" + +#: src/effects/ScoreAlignDialog.cpp:114 msgid "Window Size" msgstr "Розмір вікна" @@ -8554,8 +8815,8 @@ msgid "Time Scale" msgstr "Шкала часу" #: src/effects/ToneGen.cpp:44 src/prefs/SpectrogramSettings.cpp:148 -#: src/prefs/WaveformSettings.cpp:155 src/widgets/Meter.cpp:1978 -#: src/widgets/Meter.cpp:1979 +#: src/prefs/WaveformSettings.cpp:155 src/widgets/Meter.cpp:2008 +#: src/widgets/Meter.cpp:2009 msgid "Linear" msgstr "Лінійна" @@ -8596,7 +8857,7 @@ msgstr "Поч. ампл." msgid "EndAmp" msgstr "Кінц. ампл." -#: src/effects/ToneGen.cpp:74 src/prefs/TracksPrefs.cpp:62 +#: src/effects/ToneGen.cpp:74 src/prefs/TracksPrefs.cpp:68 msgid "Waveform" msgstr "Хвиля" @@ -8605,16 +8866,13 @@ msgid "Interpolation" msgstr "Інтерполяція" #: src/effects/ToneGen.cpp:132 -msgid "" -"Generates four different types of tone waveform while allowing starting and " -"ending amplitude and frequency" +msgid "Generates an ascending or descending tone of one of four types" msgstr "" -"Створює чотири різних типи форми хвилі тону, надаючи змогу визначити " -"початкові і кінцеві амплітуди і частоти" +"Створює тон зі зростанням або спаданням частоти одного з чотирьох типів" #: src/effects/ToneGen.cpp:133 -msgid "Generates four different types of tone waveform" -msgstr "Створює чотири різних типи форми хвилі тону" +msgid "Generates a constant frequency tone of one of four types" +msgstr "Створює тон сталої частоти одного з чотирьох типів" #: src/effects/ToneGen.cpp:309 msgid "Waveform:" @@ -8691,7 +8949,7 @@ msgstr "" #: src/effects/TruncSilence.cpp:286 msgid "" "When truncating independently, there may only be one selected audio track in " -"each sync-lock group." +"each Sync-Locked Track Group." msgstr "" "Якщо обрізання відбуватиметься окремо, у кожній групі синхронізації-" "прив’язки може бути лише одна позначена звукова доріжка." @@ -8720,175 +8978,175 @@ msgstr "Обрізати доріжки окремо" msgid "Truncate Silence" msgstr "Обрізати тишу" -#: src/effects/VST/VSTEffect.cpp:297 +#: src/effects/VST/VSTEffect.cpp:298 msgid "VST Effects" msgstr "Ефекти VST" -#: src/effects/VST/VSTEffect.cpp:318 +#: src/effects/VST/VSTEffect.cpp:319 msgid "Adds the ability to use VST effects in Audacity." msgstr "Додає можливість використання ефектів VST у Audacity." -#: src/effects/VST/VSTEffect.cpp:485 +#: src/effects/VST/VSTEffect.cpp:486 #, c-format msgid "VST plugin registration failed for %s\n" msgstr "Не вдалося зареєструвати додаток VST %s\n" -#: src/effects/VST/VSTEffect.cpp:521 +#: src/effects/VST/VSTEffect.cpp:522 msgid "Scanning Shell VST" msgstr "Пошук оболонки VST" -#: src/effects/VST/VSTEffect.cpp:522 src/effects/VST/VSTEffect.cpp:596 +#: src/effects/VST/VSTEffect.cpp:523 src/effects/VST/VSTEffect.cpp:597 #, c-format msgid "Registering %d of %d: %-64.64s" msgstr "Реєструємо %d з %d: %-64.64s" -#: src/effects/VST/VSTEffect.cpp:721 +#: src/effects/VST/VSTEffect.cpp:722 msgid "VST Effect Options" msgstr "Параметри ефектів VST" -#: src/effects/VST/VSTEffect.cpp:744 +#: src/effects/VST/VSTEffect.cpp:745 msgid "Buffer Size" msgstr "Розмір буфера" -#: src/effects/VST/VSTEffect.cpp:750 +#: src/effects/VST/VSTEffect.cpp:751 msgid "The buffer size controls the number of samples sent to the effect " msgstr "" "Розмір буфера визначає кількість семплів, надісланих засобу обробки ефекту " -#: src/effects/VST/VSTEffect.cpp:751 +#: src/effects/VST/VSTEffect.cpp:752 msgid "on each iteration. Smaller values will cause slower processing and " msgstr "" "під час кожної ітерації. Менші значення призводять до уповільнення обробки, " "а " -#: src/effects/VST/VSTEffect.cpp:752 +#: src/effects/VST/VSTEffect.cpp:753 msgid "some effects require 8192 samples or less to work properly. However " msgstr "деякі з ефектів потребують для роботи 8192 або менше семплів. Втім, " -#: src/effects/VST/VSTEffect.cpp:753 +#: src/effects/VST/VSTEffect.cpp:754 msgid "most effects can accept large buffers and using them will greatly " msgstr "" "для більшості ефектів можуть працювати з великими буферами, а використання " -#: src/effects/VST/VSTEffect.cpp:754 +#: src/effects/VST/VSTEffect.cpp:755 msgid "reduce processing time." msgstr "великих буферів значно зменшує час обробки." -#: src/effects/VST/VSTEffect.cpp:759 +#: src/effects/VST/VSTEffect.cpp:760 msgid "&Buffer Size (8 to 1048576 samples):" msgstr "Розмір &буфера (від 8 до 1048576 семплів):" -#: src/effects/VST/VSTEffect.cpp:769 -#: src/effects/audiounits/AudioUnitEffect.cpp:344 -#: src/effects/ladspa/LadspaEffect.cpp:367 src/effects/lv2/LV2Effect.cpp:215 +#: src/effects/VST/VSTEffect.cpp:770 +#: src/effects/audiounits/AudioUnitEffect.cpp:345 +#: src/effects/ladspa/LadspaEffect.cpp:373 src/effects/lv2/LV2Effect.cpp:210 msgid "Latency Compensation" msgstr "Компенсація латентності" -#: src/effects/VST/VSTEffect.cpp:772 +#: src/effects/VST/VSTEffect.cpp:773 msgid "As part of their processing, some VST effects must delay returning " msgstr "" "Використання для обробки даних деяких з ефектів VST може призводити до " "затримки " -#: src/effects/VST/VSTEffect.cpp:773 -#: src/effects/audiounits/AudioUnitEffect.cpp:348 -#: src/effects/ladspa/LadspaEffect.cpp:371 src/effects/lv2/LV2Effect.cpp:219 +#: src/effects/VST/VSTEffect.cpp:774 +#: src/effects/audiounits/AudioUnitEffect.cpp:349 +#: src/effects/ladspa/LadspaEffect.cpp:377 src/effects/lv2/LV2Effect.cpp:214 msgid "audio to Audacity. When not compensating for this delay, you will " msgstr "" "надсилання звуку до Audacity. Якщо цю затримку не компенсувати, у звукових " -#: src/effects/VST/VSTEffect.cpp:774 -#: src/effects/audiounits/AudioUnitEffect.cpp:349 -#: src/effects/ladspa/LadspaEffect.cpp:372 src/effects/lv2/LV2Effect.cpp:220 +#: src/effects/VST/VSTEffect.cpp:775 +#: src/effects/audiounits/AudioUnitEffect.cpp:350 +#: src/effects/ladspa/LadspaEffect.cpp:378 src/effects/lv2/LV2Effect.cpp:215 msgid "notice that small silences have been inserted into the audio. " msgstr "даних з’являться невеличкі проміжки тиші. " -#: src/effects/VST/VSTEffect.cpp:775 -#: src/effects/audiounits/AudioUnitEffect.cpp:350 -#: src/effects/ladspa/LadspaEffect.cpp:373 +#: src/effects/VST/VSTEffect.cpp:776 +#: src/effects/audiounits/AudioUnitEffect.cpp:351 +#: src/effects/ladspa/LadspaEffect.cpp:379 msgid "Enabling this option will provide that compensation, but it may " msgstr "" "Якщо буде позначено цей пункт, програма намагатиметься застосувати " "компенсацію, але " -#: src/effects/VST/VSTEffect.cpp:776 +#: src/effects/VST/VSTEffect.cpp:777 msgid "not work for all VST effects." msgstr "це працює не для усіх ефектів VST." -#: src/effects/VST/VSTEffect.cpp:780 -#: src/effects/audiounits/AudioUnitEffect.cpp:355 -#: src/effects/ladspa/LadspaEffect.cpp:378 src/effects/lv2/LV2Effect.cpp:226 +#: src/effects/VST/VSTEffect.cpp:781 +#: src/effects/audiounits/AudioUnitEffect.cpp:356 +#: src/effects/ladspa/LadspaEffect.cpp:384 src/effects/lv2/LV2Effect.cpp:221 msgid "Enable &compensation" msgstr "Увімкнути &компенсацію" -#: src/effects/VST/VSTEffect.cpp:787 src/effects/lv2/LV2Effect.cpp:233 +#: src/effects/VST/VSTEffect.cpp:788 src/effects/lv2/LV2Effect.cpp:228 msgid "Graphical Mode" msgstr "Графічний режим" -#: src/effects/VST/VSTEffect.cpp:790 +#: src/effects/VST/VSTEffect.cpp:791 msgid "" "Most VST effects have a graphical interface for setting parameter values." msgstr "" "У більшості ефектів VST для встановлення значень параметрів передбачено " "графічний інтерфейс." -#: src/effects/VST/VSTEffect.cpp:791 src/effects/lv2/LV2Effect.cpp:237 +#: src/effects/VST/VSTEffect.cpp:792 src/effects/lv2/LV2Effect.cpp:232 msgid " A basic text-only method is also available. " msgstr " Втім, можна скористатися і простим текстовим способом. " -#: src/effects/VST/VSTEffect.cpp:792 -#: src/effects/audiounits/AudioUnitEffect.cpp:368 -#: src/effects/lv2/LV2Effect.cpp:238 +#: src/effects/VST/VSTEffect.cpp:793 +#: src/effects/audiounits/AudioUnitEffect.cpp:369 +#: src/effects/lv2/LV2Effect.cpp:233 msgid " Reopen the effect for this to take effect." msgstr " Повторно відкрийте ефект, щоб побачити зміни." -#: src/effects/VST/VSTEffect.cpp:793 src/effects/lv2/LV2Effect.cpp:239 +#: src/effects/VST/VSTEffect.cpp:794 src/effects/lv2/LV2Effect.cpp:234 msgid "Enable &graphical interface" msgstr "Увімкнути &графічний інтерфейс" -#: src/effects/VST/VSTEffect.cpp:1177 +#: src/effects/VST/VSTEffect.cpp:1178 msgid "Audio In: " msgstr "Вхід: " -#: src/effects/VST/VSTEffect.cpp:1179 +#: src/effects/VST/VSTEffect.cpp:1180 msgid ", Audio Out: " msgstr ", Вихід: " -#: src/effects/VST/VSTEffect.cpp:1841 +#: src/effects/VST/VSTEffect.cpp:1842 msgid "Save VST Preset As:" msgstr "Зберегти шаблон VST як:" -#: src/effects/VST/VSTEffect.cpp:1872 src/effects/VST/VSTEffect.cpp:1923 +#: src/effects/VST/VSTEffect.cpp:1873 src/effects/VST/VSTEffect.cpp:1924 msgid "Unrecognized file extension." msgstr "Невідомий суфікс назви файла." -#: src/effects/VST/VSTEffect.cpp:1873 src/effects/VST/VSTEffect.cpp:3487 -#: src/effects/VST/VSTEffect.cpp:3554 src/effects/VST/VSTEffect.cpp:3571 -#: src/effects/VST/VSTEffect.cpp:3586 +#: src/effects/VST/VSTEffect.cpp:1874 src/effects/VST/VSTEffect.cpp:3488 +#: src/effects/VST/VSTEffect.cpp:3555 src/effects/VST/VSTEffect.cpp:3573 +#: src/effects/VST/VSTEffect.cpp:3588 msgid "Error Saving VST Presets" msgstr "Помилка під час спроби збереження шаблону VST" -#: src/effects/VST/VSTEffect.cpp:1891 +#: src/effects/VST/VSTEffect.cpp:1892 msgid "Load VST Preset:" msgstr "Завантажити шаблон VST:" -#: src/effects/VST/VSTEffect.cpp:1924 src/effects/VST/VSTEffect.cpp:1934 +#: src/effects/VST/VSTEffect.cpp:1925 src/effects/VST/VSTEffect.cpp:1935 #: src/effects/VST/VSTEffect.cpp:3084 src/effects/VST/VSTEffect.cpp:3098 #: src/effects/VST/VSTEffect.cpp:3258 src/effects/VST/VSTEffect.cpp:3272 #: src/effects/VST/VSTEffect.cpp:3471 msgid "Error Loading VST Presets" msgstr "Помилка під час завантаження шаблонів VST" -#: src/effects/VST/VSTEffect.cpp:1933 +#: src/effects/VST/VSTEffect.cpp:1934 msgid "Unable to load presets file." msgstr "Не вдалося завантажити файл набору шаблонів." -#: src/effects/VST/VSTEffect.cpp:2153 +#: src/effects/VST/VSTEffect.cpp:2154 msgid "VST plugin initialization failed\n" msgstr "Не вдалося ініціалізувати додаток VST\n" -#: src/effects/VST/VSTEffect.cpp:2871 src/effects/ladspa/LadspaEffect.cpp:1193 -#: src/effects/lv2/LV2Effect.cpp:1637 +#: src/effects/VST/VSTEffect.cpp:2871 src/effects/ladspa/LadspaEffect.cpp:1199 +#: src/effects/lv2/LV2Effect.cpp:1632 msgid "Effect Settings" msgstr "Параметри ефекту" @@ -8902,18 +9160,18 @@ msgstr "" msgid "Unable to read presets file." msgstr "Не вдалося прочитати файл набору шаблонів." -#: src/effects/VST/VSTEffect.cpp:3486 src/effects/VST/VSTEffect.cpp:3570 +#: src/effects/VST/VSTEffect.cpp:3487 src/effects/VST/VSTEffect.cpp:3572 #: src/xml/XMLFileReader.cpp:46 #, c-format msgid "Could not open file: \"%s\"" msgstr "Не вдається відкрити файл: «%s»" -#: src/effects/VST/VSTEffect.cpp:3553 src/effects/VST/VSTEffect.cpp:3585 +#: src/effects/VST/VSTEffect.cpp:3554 src/effects/VST/VSTEffect.cpp:3587 #, c-format msgid "Error writing to file: \"%s\"" msgstr "Помилка під час спроби записати дані до файла «%s»" -#: src/effects/VST/VSTEffect.cpp:3783 +#: src/effects/VST/VSTEffect.cpp:3785 #, c-format msgid "This parameter file was saved from %s. Continue?" msgstr "Цей файл параметрів було збережено у %s. Продовжити?" @@ -8953,168 +9211,168 @@ msgstr "Зсув частоти «вау» (%)" msgid "Wahwah" msgstr "Вау-вау" -#: src/effects/audiounits/AudioUnitEffect.cpp:97 +#: src/effects/audiounits/AudioUnitEffect.cpp:98 msgid "Audio Unit Effects" msgstr "Ефекти звукових модулів" -#: src/effects/audiounits/AudioUnitEffect.cpp:113 +#: src/effects/audiounits/AudioUnitEffect.cpp:114 msgid "Provides Audio Unit Effects support to Audacity" msgstr "Надає підтримку ефектів Audio Unit у Audacity" -#: src/effects/audiounits/AudioUnitEffect.cpp:315 +#: src/effects/audiounits/AudioUnitEffect.cpp:316 msgid "Audio Unit Effect Options" msgstr "Параметри ефектів Audio Unit" -#: src/effects/audiounits/AudioUnitEffect.cpp:319 -#: src/effects/audiounits/AudioUnitEffect.cpp:401 +#: src/effects/audiounits/AudioUnitEffect.cpp:320 +#: src/effects/audiounits/AudioUnitEffect.cpp:402 msgid "Full" msgstr "Повний" -#: src/effects/audiounits/AudioUnitEffect.cpp:320 -#: src/effects/audiounits/AudioUnitEffect.cpp:405 +#: src/effects/audiounits/AudioUnitEffect.cpp:321 +#: src/effects/audiounits/AudioUnitEffect.cpp:406 msgid "Generic" msgstr "Типовий" -#: src/effects/audiounits/AudioUnitEffect.cpp:321 -#: src/effects/audiounits/AudioUnitEffect.cpp:409 +#: src/effects/audiounits/AudioUnitEffect.cpp:322 +#: src/effects/audiounits/AudioUnitEffect.cpp:410 msgid "Basic" msgstr "Базовий" -#: src/effects/audiounits/AudioUnitEffect.cpp:347 +#: src/effects/audiounits/AudioUnitEffect.cpp:348 msgid "" "As part of their processing, some Audio Unit effects must delay returning " msgstr "" "Використання для обробки даних деяких з ефектів Audio Unit призводити до " "затримки " -#: src/effects/audiounits/AudioUnitEffect.cpp:351 +#: src/effects/audiounits/AudioUnitEffect.cpp:352 msgid "not work for all Audio Unit effects." msgstr "це працює не для усіх ефектів Audio Unit." -#: src/effects/audiounits/AudioUnitEffect.cpp:362 +#: src/effects/audiounits/AudioUnitEffect.cpp:363 msgid "User Interface" msgstr "Інтерфейс користувача" -#: src/effects/audiounits/AudioUnitEffect.cpp:365 +#: src/effects/audiounits/AudioUnitEffect.cpp:366 msgid "" "Select \"Full\" to use the graphical interface if supplied by the Audio Unit." msgstr "" "Виберіть «Повний», щоб скористатися графічним інтерфейсом, якщо такий " "надається Audio Unit." -#: src/effects/audiounits/AudioUnitEffect.cpp:366 +#: src/effects/audiounits/AudioUnitEffect.cpp:367 msgid " Select \"Generic\" to use the system supplied generic interface." msgstr " Виберіть «Типовий», щоб скористатися типовим інтерфейсом системи." -#: src/effects/audiounits/AudioUnitEffect.cpp:367 +#: src/effects/audiounits/AudioUnitEffect.cpp:368 msgid " Select \"Basic\" for A basic text-only interface. " msgstr " Виберіть «Базовий», щоб скористатися базовим текстовим інтерфейсом. " -#: src/effects/audiounits/AudioUnitEffect.cpp:372 +#: src/effects/audiounits/AudioUnitEffect.cpp:373 msgid "Select &interface" msgstr "Вибір і&нтерфейсу" -#: src/effects/audiounits/AudioUnitEffect.cpp:453 +#: src/effects/audiounits/AudioUnitEffect.cpp:454 msgid "Export Audio Unit Presets" msgstr "Експортувати набори налаштувань Audio Unit" -#: src/effects/audiounits/AudioUnitEffect.cpp:472 -#: src/effects/audiounits/AudioUnitEffect.cpp:646 +#: src/effects/audiounits/AudioUnitEffect.cpp:473 +#: src/effects/audiounits/AudioUnitEffect.cpp:647 msgid "Presets (may select multiple)" msgstr "Набори налаштувань (можна вибрати декілька)" -#: src/effects/audiounits/AudioUnitEffect.cpp:477 -#: src/effects/audiounits/AudioUnitEffect.cpp:651 src/export/ExportMP3.cpp:352 +#: src/effects/audiounits/AudioUnitEffect.cpp:478 +#: src/effects/audiounits/AudioUnitEffect.cpp:652 src/export/ExportMP3.cpp:358 msgid "Preset" msgstr "Шаблон" -#: src/effects/audiounits/AudioUnitEffect.cpp:627 +#: src/effects/audiounits/AudioUnitEffect.cpp:628 msgid "Import Audio Unit Presets" msgstr "Імпортувати набори налаштувань Audio Unit" -#: src/effects/audiounits/AudioUnitEffect.cpp:652 +#: src/effects/audiounits/AudioUnitEffect.cpp:653 msgid "Location" msgstr "Розташування" -#: src/effects/ladspa/LadspaEffect.cpp:115 +#: src/effects/ladspa/LadspaEffect.cpp:116 msgid "LADSPA Effects" msgstr "Ефекти LADSPA" -#: src/effects/ladspa/LadspaEffect.cpp:136 +#: src/effects/ladspa/LadspaEffect.cpp:137 msgid "Provides LADSPA Effects" msgstr "Забезпечує роботу ефектів LADSPA" -#: src/effects/ladspa/LadspaEffect.cpp:346 +#: src/effects/ladspa/LadspaEffect.cpp:352 msgid "LADSPA Effect Options" msgstr "Параметри ефектів LADSPA" -#: src/effects/ladspa/LadspaEffect.cpp:370 +#: src/effects/ladspa/LadspaEffect.cpp:376 msgid "As part of their processing, some LADSPA effects must delay returning " msgstr "" "Використання для обробки даних деяких з ефектів LADSPA призводити до " "затримки " -#: src/effects/ladspa/LadspaEffect.cpp:374 +#: src/effects/ladspa/LadspaEffect.cpp:380 msgid "not work for all LADSPA effects." msgstr "це працює не для усіх ефектів LADSPA." -#: src/effects/ladspa/LadspaEffect.cpp:634 src/effects/lv2/LV2Effect.cpp:385 -#: src/effects/lv2/LV2Effect.cpp:398 +#: src/effects/ladspa/LadspaEffect.cpp:640 src/effects/lv2/LV2Effect.cpp:380 +#: src/effects/lv2/LV2Effect.cpp:393 msgid "N/A" msgstr "н/д" -#: src/effects/ladspa/LadspaEffect.cpp:1388 +#: src/effects/ladspa/LadspaEffect.cpp:1394 msgid "Effect Output" msgstr "Результат ефекту" -#: src/effects/lv2/LV2Effect.cpp:193 +#: src/effects/lv2/LV2Effect.cpp:188 msgid "LV2 Effect Settings" msgstr "Параметри ефектів LV2" -#: src/effects/lv2/LV2Effect.cpp:218 +#: src/effects/lv2/LV2Effect.cpp:213 msgid "As part of their processing, some LV2 effects must delay returning " msgstr "" "Використання для обробки даних деяких з ефектів LV2 може призводити до " "затримки " -#: src/effects/lv2/LV2Effect.cpp:221 +#: src/effects/lv2/LV2Effect.cpp:216 msgid "Enabling this setting will provide that compensation, but it may " msgstr "" "Якщо буде позначено цей пункт, програма намагатиметься виконати " "компенсування, " -#: src/effects/lv2/LV2Effect.cpp:222 +#: src/effects/lv2/LV2Effect.cpp:217 msgid "not work for all LV2 effects." msgstr "але компенсація можлива не для усіх ефектів LV2." -#: src/effects/lv2/LV2Effect.cpp:236 +#: src/effects/lv2/LV2Effect.cpp:231 msgid "" "LV2 effects can have a graphical interface for setting parameter values." msgstr "" "У ефектах LV2 для встановлення значень параметрів передбачено графічний " "інтерфейс." -#: src/effects/lv2/LV2Effect.cpp:1606 +#: src/effects/lv2/LV2Effect.cpp:1601 msgid "Generator" msgstr "Генератор" -#: src/effects/lv2/LV2Effect.cpp:1610 +#: src/effects/lv2/LV2Effect.cpp:1605 msgid "&Duration:" msgstr "&Тривалість:" -#: src/effects/lv2/LoadLV2.cpp:101 +#: src/effects/lv2/LoadLV2.cpp:102 msgid "LV2 Effects" msgstr "Ефекти LV2" -#: src/effects/lv2/LoadLV2.cpp:122 +#: src/effects/lv2/LoadLV2.cpp:123 msgid "Provides LV2 Effects support to Audacity" msgstr "Надає підтримку ефектів LV2 у Audacity" -#: src/effects/nyquist/LoadNyquist.cpp:103 +#: src/effects/nyquist/LoadNyquist.cpp:104 msgid "Nyquist Effects" msgstr "Ефекти Nyquist" -#: src/effects/nyquist/LoadNyquist.cpp:124 +#: src/effects/nyquist/LoadNyquist.cpp:125 msgid "Provides Nyquist Effects support to Audacity" msgstr "Надає підтримку ефектів Nyquist у Audacity" @@ -9177,34 +9435,34 @@ msgstr "Обробку завершено." msgid "Nyquist returned the value:" msgstr "Nyquist повернула значення:" -#: src/effects/nyquist/Nyquist.cpp:1142 +#: src/effects/nyquist/Nyquist.cpp:1141 msgid "Undefined return value.\n" msgstr "Невизначене повернуте значення.\n" -#: src/effects/nyquist/Nyquist.cpp:1151 +#: src/effects/nyquist/Nyquist.cpp:1150 msgid "Nyquist returned too many audio channels.\n" msgstr "Модуль Nyquist повернув занадто багато звукових каналів.\n" -#: src/effects/nyquist/Nyquist.cpp:1158 +#: src/effects/nyquist/Nyquist.cpp:1157 msgid "Nyquist returned one audio channel as an array.\n" msgstr "Nyquist повернуто один звуковий канал у форматі масиву.\n" -#: src/effects/nyquist/Nyquist.cpp:1165 +#: src/effects/nyquist/Nyquist.cpp:1164 msgid "Nyquist returned an empty array.\n" msgstr "Бібліотекою Nyquist повернуто порожній масив.\n" -#: src/effects/nyquist/Nyquist.cpp:1201 +#: src/effects/nyquist/Nyquist.cpp:1197 msgid "Nyquist did not return audio.\n" msgstr "Модуль Nyquist не повернув звукові дані.\n" -#: src/effects/nyquist/Nyquist.cpp:1265 +#: src/effects/nyquist/Nyquist.cpp:1259 msgid "" "[Warning: Nyquist returned invalid UTF-8 string, converted here as Latin-1]" msgstr "" "[Попередження: Nyquist повернуто некоректний рядок UTF-8, його перетворено " "до кодування Latin-1]" -#: src/effects/nyquist/Nyquist.cpp:1574 +#: src/effects/nyquist/Nyquist.cpp:1568 #, c-format msgid "" "Bad Nyquist 'control' type specification: '%s' in plugin file '%s'.\n" @@ -9214,7 +9472,7 @@ msgstr "" "«%s».\n" "Керування не створено." -#: src/effects/nyquist/Nyquist.cpp:1678 +#: src/effects/nyquist/Nyquist.cpp:1672 msgid "" "Your code looks like SAL syntax, but there is no return statement. Either " "use a return statement such as\n" @@ -9230,23 +9488,23 @@ msgstr "" "\t(mult s 0.1)\n" "як це робиться у LISP." -#: src/effects/nyquist/Nyquist.cpp:1678 +#: src/effects/nyquist/Nyquist.cpp:1672 msgid "Error in Nyquist code" msgstr "Помилка у коді Nyquist" -#: src/effects/nyquist/Nyquist.cpp:1995 +#: src/effects/nyquist/Nyquist.cpp:1988 msgid "Enter Nyquist Command: " msgstr "Введіть Nyquist-команду: " -#: src/effects/nyquist/Nyquist.cpp:1999 +#: src/effects/nyquist/Nyquist.cpp:1992 msgid "&Use legacy (version 3) syntax." msgstr "Ви&користовувати застарілий синтаксис (версії 3)." -#: src/effects/nyquist/Nyquist.cpp:2013 +#: src/effects/nyquist/Nyquist.cpp:2006 msgid "&Load" msgstr "&Завантажити" -#: src/effects/nyquist/Nyquist.cpp:2125 +#: src/effects/nyquist/Nyquist.cpp:2118 msgid "" "Current program has been modified.\n" "Discard changes?" @@ -9254,7 +9512,7 @@ msgstr "" "Поточну програму було змінено.\n" "Відкинути зміни?" -#: src/effects/nyquist/Nyquist.cpp:2137 +#: src/effects/nyquist/Nyquist.cpp:2130 msgid "" "Nyquist scripts (*.ny)|*.ny|Lisp scripts (*.lsp)|*.lsp|Text files (*.txt)|*." "txt|All files|*" @@ -9262,25 +9520,19 @@ msgstr "" "скрипти Nyquist (*.ny)|*.ny|скрипти Lisp (*.lsp)|*.lsp|текстові файли (*." "txt)|*.txt|усі файли|*" -#: src/effects/nyquist/Nyquist.cpp:2149 +#: src/effects/nyquist/Nyquist.cpp:2142 msgid "File could not be loaded" msgstr "Не вдалося завантажити файл" -#: src/effects/nyquist/Nyquist.cpp:2171 +#: src/effects/nyquist/Nyquist.cpp:2164 msgid "File could not be saved" msgstr "Не вдалося зберегти файл" -#. i18n-hint: In most languages OK is to be translated as OK. It appears on a button. -#: src/effects/nyquist/Nyquist.cpp:2272 src/widgets/ErrorDialog.cpp:126 -#: src/widgets/MultiDialog.cpp:128 -msgid "OK" -msgstr "Гаразд" - -#: src/effects/vamp/LoadVamp.cpp:84 +#: src/effects/vamp/LoadVamp.cpp:85 msgid "Vamp Effects" msgstr "Ефекти Vamp" -#: src/effects/vamp/LoadVamp.cpp:100 +#: src/effects/vamp/LoadVamp.cpp:101 msgid "Provides Vamp Effects support to Audacity" msgstr "Надає підтримку ефектів Vamp у Audacity" @@ -9308,39 +9560,39 @@ msgstr "Параметри додатка" msgid "Program" msgstr "Програма" -#: src/export/Export.cpp:236 +#: src/export/Export.cpp:230 msgid "No format specific options" msgstr "Немає специфічних для формату параметрів" -#: src/export/Export.cpp:275 +#: src/export/Export.cpp:269 msgid "Export Audio" msgstr "Експорт звукових даних" -#: src/export/Export.cpp:367 +#: src/export/Export.cpp:356 src/export/Export.cpp:975 msgid "Edit Metadata Tags for Export" msgstr "Редагувати мітки метаданих для експортування" -#: src/export/Export.cpp:367 +#: src/export/Export.cpp:356 src/export/Export.cpp:976 msgid "Exported Tags" msgstr "Експортовані мітки" -#: src/export/Export.cpp:483 +#: src/export/Export.cpp:474 msgid "All selected audio is muted." msgstr "Всі позначені ділянки звукових доріжок замінено тишею." -#: src/export/Export.cpp:485 src/export/ExportMultiple.cpp:184 +#: src/export/Export.cpp:476 src/export/ExportMultiple.cpp:186 msgid "All audio is muted." msgstr "Всі дані звукових доріжок замінено тишею." -#: src/export/Export.cpp:487 +#: src/export/Export.cpp:478 msgid "Unable to export" msgstr "Не вдалося експортувати" -#: src/export/Export.cpp:590 +#: src/export/Export.cpp:587 msgid "Are you sure you want to export the file as \"" msgstr "Ви справді хочете експортувати дані до файла з назвою «" -#: src/export/Export.cpp:610 +#: src/export/Export.cpp:607 #, c-format msgid "" "You are about to export a %s file with the name \"%s\".\n" @@ -9357,18 +9609,19 @@ msgstr "" "\n" "Ви справді бажаєте експортувати файл з цією назвою?" -#: src/export/Export.cpp:624 +#: src/export/Export.cpp:621 msgid "Sorry, pathnames longer than 256 characters not supported." msgstr "Шляхи, що містять більш ніж 256 символів, не підтримуються." -#: src/export/Export.cpp:642 +#: src/export/Export.cpp:638 msgid "" "You are attempting to overwrite an aliased file that is missing.\n" -"The file cannot be written because the path is needed to restore the " -"original audio to the project.\n" -"Choose File > Check Dependencies to view the locations of all missing " -"files.\n" -"If you still wish to export, please choose a different filename or folder." +" The file cannot be written because the path is needed to " +"restore the original audio to the project.\n" +" Choose File > Check Dependencies to view the locations of all " +"missing files.\n" +" If you still wish to export, please choose a different " +"filename or folder." msgstr "" "Ви наказали програмі перезаписати пов’язаний файл, якого не вистачає у " "проекті.\n" @@ -9379,47 +9632,55 @@ msgstr "" "Якщо ви все ще бажаєте експортувати дані, будь ласка, вкажіть іншу назву " "файла або теки." -#: src/export/Export.cpp:656 +#: src/export/Export.cpp:652 #, c-format msgid "A file named \"%s\" already exists. Replace?" msgstr "Файл з назвою «%s» вже існує. Замінити?" -#: src/export/Export.cpp:770 -msgid "" -"Your tracks will be mixed down to two stereo channels in the exported file." -msgstr "У експортованому файлі доріжки будуть зведені у два стереоканали." - -#: src/export/Export.cpp:777 +#: src/export/Export.cpp:773 msgid "" "Your tracks will be mixed down to a single mono channel in the exported file." msgstr "У експортованому файлі доріжки будуть зведені у один моноканал." -#: src/export/Export.cpp:790 +#: src/export/Export.cpp:780 +msgid "" +"Your tracks will be mixed down to two stereo channels in the exported file." +msgstr "У експортованому файлі доріжки будуть зведені у два стереоканали." + +#: src/export/Export.cpp:787 +msgid "" +"Your tracks will be mixed down to one exported file according to the encoder " +"settings." +msgstr "" +"Доріжки буде змікшовано до одного експортованого файла відповідно до " +"параметрів засобу кодування." + +#: src/export/Export.cpp:803 msgid "Advanced Mixing Options" msgstr "Додаткові параметри мікшування" -#: src/export/Export.cpp:854 +#: src/export/Export.cpp:867 msgid "Format Options" msgstr "Параметри форматування" -#: src/export/Export.cpp:1050 +#: src/export/Export.cpp:1145 #, c-format msgid "Channel: %2d" msgstr "Канал: %2d" -#: src/export/Export.cpp:1168 +#: src/export/Export.cpp:1263 msgid " - L" msgstr " - Л" -#: src/export/Export.cpp:1170 +#: src/export/Export.cpp:1265 msgid " - R" msgstr " - П" -#: src/export/Export.cpp:1195 +#: src/export/Export.cpp:1293 msgid "Mixer Panel" msgstr "Панель мікшера" -#: src/export/Export.cpp:1202 src/export/Export.cpp:1252 +#: src/export/Export.cpp:1300 src/export/Export.cpp:1350 #, c-format msgid "Output Channels: %2d" msgstr "Вихідні канали: %2d" @@ -9445,28 +9706,28 @@ msgstr "" msgid "Find path to command" msgstr "Знайти каталог команди" -#: src/export/ExportCL.cpp:306 +#: src/export/ExportCL.cpp:305 msgid "(external program)" msgstr "(зовнішня програма)" -#: src/export/ExportCL.cpp:371 src/export/ExportPCM.cpp:459 +#: src/export/ExportCL.cpp:365 src/export/ExportPCM.cpp:451 #, c-format msgid "Cannot export audio to %s" msgstr "Не вдається експортувати дані у %s" -#: src/export/ExportCL.cpp:444 src/export/ExportMultiple.cpp:383 +#: src/export/ExportCL.cpp:438 src/export/ExportMultiple.cpp:391 msgid "Export" msgstr "Експорт" -#: src/export/ExportCL.cpp:446 +#: src/export/ExportCL.cpp:440 msgid "Exporting the selected audio using command-line encoder" msgstr "Вибране експортується через консольний кодувальник" -#: src/export/ExportCL.cpp:447 +#: src/export/ExportCL.cpp:441 msgid "Exporting the entire project using command-line encoder" msgstr "Весь проект експортується через консольний кодувальник" -#: src/export/ExportCL.cpp:509 +#: src/export/ExportCL.cpp:503 msgid "Command Output" msgstr "Виведення команди" @@ -9480,36 +9741,36 @@ msgstr "" "Ви можете налаштувати цю бібліотеку за допомогою сторінки «Параметри-" ">Бібліотеки»." -#: src/export/ExportFFmpeg.cpp:273 +#: src/export/ExportFFmpeg.cpp:281 #, c-format msgid "FFmpeg : ERROR - Can't determine format description for file \"%s\"." msgstr "FFmpeg: помилка, не вдалося визначити опис формату для файла «%s»." -#: src/export/ExportFFmpeg.cpp:274 src/export/ExportFFmpeg.cpp:282 -#: src/export/ExportFFmpeg.cpp:294 src/export/ExportFFmpeg.cpp:306 -#: src/export/ExportFFmpeg.cpp:330 src/export/ExportFFmpeg.cpp:466 -#: src/export/ExportFFmpeg.cpp:499 src/export/ExportFFmpeg.cpp:519 -#: src/export/ExportFFmpeg.cpp:547 src/export/ExportFFmpeg.cpp:553 -#: src/export/ExportFFmpeg.cpp:561 src/export/ExportFFmpeg.cpp:609 -#: src/export/ExportFFmpeg.cpp:639 src/export/ExportFFmpeg.cpp:699 -#: src/export/ExportFFmpeg.cpp:754 src/export/ExportFFmpeg.cpp:772 -#: src/export/ExportFFmpeg.cpp:791 +#: src/export/ExportFFmpeg.cpp:282 src/export/ExportFFmpeg.cpp:291 +#: src/export/ExportFFmpeg.cpp:304 src/export/ExportFFmpeg.cpp:329 +#: src/export/ExportFFmpeg.cpp:355 src/export/ExportFFmpeg.cpp:495 +#: src/export/ExportFFmpeg.cpp:528 src/export/ExportFFmpeg.cpp:549 +#: src/export/ExportFFmpeg.cpp:579 src/export/ExportFFmpeg.cpp:585 +#: src/export/ExportFFmpeg.cpp:593 src/export/ExportFFmpeg.cpp:641 +#: src/export/ExportFFmpeg.cpp:667 src/export/ExportFFmpeg.cpp:730 +#: src/export/ExportFFmpeg.cpp:780 src/export/ExportFFmpeg.cpp:798 +#: src/export/ExportFFmpeg.cpp:817 msgid "FFmpeg Error" msgstr "Помилка FFmpeg" -#: src/export/ExportFFmpeg.cpp:281 +#: src/export/ExportFFmpeg.cpp:290 msgid "FFmpeg : ERROR - Can't allocate output format context." msgstr "" "FFmpeg: помилка, не вдалося розмістити контекст формату виведення у пам’яті." -#: src/export/ExportFFmpeg.cpp:293 +#: src/export/ExportFFmpeg.cpp:303 #, c-format msgid "FFmpeg : ERROR - Can't add audio stream to output file \"%s\"." msgstr "" "FFmpeg: помилка, не вдалося додати потік звукових даних до файла виведення " "«%s»." -#: src/export/ExportFFmpeg.cpp:329 +#: src/export/ExportFFmpeg.cpp:354 #, c-format msgid "" "FFmpeg : ERROR - Can't write headers to output file \"%s\". Error code is %d." @@ -9517,7 +9778,7 @@ msgstr "" "FFmpeg: помилка, не вдалося записати заголовки до файла результатів «%s». " "Код помилки — %d." -#: src/export/ExportFFmpeg.cpp:465 +#: src/export/ExportFFmpeg.cpp:494 #, c-format msgid "" "FFmpeg cannot find audio codec 0x%x.\n" @@ -9526,56 +9787,56 @@ msgstr "" "FFmpeg не вдалося знайти звукового кодека 0x%x.\n" "Ймовірно, бібліотеку було зібрано без підтримки цього кодека." -#: src/export/ExportFFmpeg.cpp:498 +#: src/export/ExportFFmpeg.cpp:527 #, c-format msgid "FFmpeg : ERROR - Can't open audio codec 0x%x." msgstr "FFmpeg: помилка, не вдалося відкрити звуковий кодек 0x%x." -#: src/export/ExportFFmpeg.cpp:518 +#: src/export/ExportFFmpeg.cpp:548 msgid "FFmpeg : ERROR - Can't allocate buffer to read into from audio FIFO." msgstr "" "FFmpeg: помилка не вдалося розмістити буфер для читання даних зі звукового " "потоку FIFO." -#: src/export/ExportFFmpeg.cpp:546 +#: src/export/ExportFFmpeg.cpp:578 msgid "FFmpeg : ERROR - Could not get sample buffer size" msgstr "FFmpeg: помилка, не вдалося отримати розмір буфера семплів" -#: src/export/ExportFFmpeg.cpp:552 +#: src/export/ExportFFmpeg.cpp:584 msgid "FFmpeg : ERROR - Could not allocate bytes for samples buffer" msgstr "FFmpeg: помилка, не вдалося розмістити байти для буфера семплів" -#: src/export/ExportFFmpeg.cpp:560 +#: src/export/ExportFFmpeg.cpp:592 msgid "FFmpeg : ERROR - Could not setup audio frame" msgstr "FFmpeg: помилка, не вдалося налаштувати фрагмент звукових даних" -#: src/export/ExportFFmpeg.cpp:608 +#: src/export/ExportFFmpeg.cpp:640 msgid "FFmpeg : ERROR - encoding frame failed" msgstr "FFmpeg: помилка під час кодування фрагмента" -#: src/export/ExportFFmpeg.cpp:638 +#: src/export/ExportFFmpeg.cpp:666 msgid "FFmpeg : ERROR - Too much remaining data." msgstr "FFmpeg: помилка, забагато залишкових даних." -#: src/export/ExportFFmpeg.cpp:698 +#: src/export/ExportFFmpeg.cpp:729 msgid "FFmpeg : ERROR - Couldn't write last audio frame to output file." msgstr "" "FFmpeg: помилка, не вдалося записати останній фрагмент звукових даних до " "файла результатів." -#: src/export/ExportFFmpeg.cpp:753 +#: src/export/ExportFFmpeg.cpp:779 msgid "FFmpeg : ERROR - nAudioFrameSizeOut too large." msgstr "FFmpeg: помилка, nAudioFrameSizeOut є надто великим." -#: src/export/ExportFFmpeg.cpp:771 +#: src/export/ExportFFmpeg.cpp:797 msgid "FFmpeg : ERROR - Can't encode audio frame." msgstr "FFmpeg: помилка, не вдалося закодувати звуковий фрагмент." -#: src/export/ExportFFmpeg.cpp:790 +#: src/export/ExportFFmpeg.cpp:816 msgid "FFmpeg : ERROR - Failed to write audio frame to file." msgstr "FFmpeg: помилка, не вдалося записати звуковий фрагмент до файла." -#: src/export/ExportFFmpeg.cpp:813 +#: src/export/ExportFFmpeg.cpp:838 #, c-format msgid "" "Attempted to export %d channels, but maximum number of channels for selected " @@ -9584,21 +9845,21 @@ msgstr "" "Спроба експорту з %d каналами, але максимальною кількістю каналів для " "вибраного формату виводу є %d" -#: src/export/ExportFFmpeg.cpp:845 +#: src/export/ExportFFmpeg.cpp:870 #, c-format msgid "Exporting selected audio as %s" msgstr "Експорт вибраних звукових даних як %s" -#: src/export/ExportFFmpeg.cpp:846 +#: src/export/ExportFFmpeg.cpp:871 #, c-format msgid "Exporting entire file as %s" msgstr "Експорт всього файла як %s" -#: src/export/ExportFFmpeg.cpp:916 src/export/ExportMP3.cpp:1898 +#: src/export/ExportFFmpeg.cpp:939 src/export/ExportMP3.cpp:1930 msgid "Invalid sample rate" msgstr "Некоректна частота дискретизації" -#: src/export/ExportFFmpeg.cpp:930 +#: src/export/ExportFFmpeg.cpp:953 #, c-format msgid "" "The project sample rate (%d) is not supported by the current output\n" @@ -9607,7 +9868,7 @@ msgstr "" "Частота дискретизації проекту (%d) не підтримується поточним форматом\n" "файла виводу даних. " -#: src/export/ExportFFmpeg.cpp:933 +#: src/export/ExportFFmpeg.cpp:956 #, c-format msgid "" "The project sample rate (%d) and bit rate (%d kbps) combination is not\n" @@ -9616,11 +9877,11 @@ msgstr "" "Набір частоти дискретизації проекту (%d) та швидкості (%d кб/с)\n" "не підтримується поточним форматом файла виводу. " -#: src/export/ExportFFmpeg.cpp:936 src/export/ExportMP3.cpp:1918 +#: src/export/ExportFFmpeg.cpp:959 src/export/ExportMP3.cpp:1950 msgid "You may resample to one of the rates below." msgstr "Ви можете змінити частоту на одну з наведених нижче." -#: src/export/ExportFFmpeg.cpp:964 src/export/ExportMP3.cpp:1941 +#: src/export/ExportFFmpeg.cpp:987 src/export/ExportMP3.cpp:1973 msgid "Sample Rates" msgstr "Частоти дискретизації" @@ -9754,7 +10015,7 @@ msgstr "Імпортувати шаблони" msgid "Export Presets" msgstr "Експортувати шаблони" -#: src/export/ExportFFmpegDialogs.cpp:1412 src/export/ExportMultiple.cpp:261 +#: src/export/ExportFFmpegDialogs.cpp:1412 src/export/ExportMultiple.cpp:269 msgid "Format:" msgstr "Формат:" @@ -10151,16 +10412,16 @@ msgstr "24 біт" msgid "Bit depth:" msgstr "Бітова глибина:" -#: src/export/ExportFLAC.cpp:213 +#: src/export/ExportFLAC.cpp:212 msgid "FLAC Files" msgstr "Файли FLAC" -#: src/export/ExportFLAC.cpp:294 +#: src/export/ExportFLAC.cpp:288 #, c-format msgid "FLAC export couldn't open %s" msgstr "Інструментові експорту до FLAC не вдалося відкрити %s" -#: src/export/ExportFLAC.cpp:303 +#: src/export/ExportFLAC.cpp:297 #, c-format msgid "" "FLAC encoder failed to initialize\n" @@ -10169,143 +10430,147 @@ msgstr "" "Не вдалося ініціалізувати інструмент кодування FLAC\n" "Стан: %d" -#: src/export/ExportFLAC.cpp:329 +#: src/export/ExportFLAC.cpp:323 msgid "Exporting the selected audio as FLAC" msgstr "Експорт вибраного аудіо як FLAC" -#: src/export/ExportFLAC.cpp:330 +#: src/export/ExportFLAC.cpp:324 msgid "Exporting the entire project as FLAC" msgstr "Експорт всього проекту до FLAC" -#: src/export/ExportMP2.cpp:204 +#: src/export/ExportMP2.cpp:203 msgid "MP2 Files" msgstr "Файли MP2" -#: src/export/ExportMP2.cpp:234 +#: src/export/ExportMP2.cpp:228 msgid "Cannot export MP2 with this sample rate and bit rate" msgstr "" "Не вдалося експортувати MP2 з цією частотою дискретизації та бітовою частотою" -#: src/export/ExportMP2.cpp:246 src/export/ExportMP3.cpp:1745 -#: src/export/ExportOGG.cpp:188 +#: src/export/ExportMP2.cpp:240 src/export/ExportMP3.cpp:1779 +#: src/export/ExportOGG.cpp:182 msgid "Unable to open target file for writing" msgstr "Не вдається відкрити кінцевий файл для запису" -#: src/export/ExportMP2.cpp:279 +#: src/export/ExportMP2.cpp:273 #, c-format msgid "Exporting selected audio at %ld kbps" msgstr "Експорт вибраного аудіо на %ld кб/с" -#: src/export/ExportMP2.cpp:280 +#: src/export/ExportMP2.cpp:274 #, c-format msgid "Exporting entire file at %ld kbps" msgstr "Експорт всього файла на %ld кб/с" -#: src/export/ExportMP3.cpp:220 src/export/ExportMP3.cpp:238 -#: src/export/ExportMP3.cpp:253 +#: src/export/ExportMP3.cpp:223 src/export/ExportMP3.cpp:241 +#: src/export/ExportMP3.cpp:256 msgid "kbps" msgstr "кб/с" -#: src/export/ExportMP3.cpp:239 +#: src/export/ExportMP3.cpp:242 msgid "(Best Quality)" msgstr "(Найякісніше)" -#: src/export/ExportMP3.cpp:240 +#: src/export/ExportMP3.cpp:243 msgid "(Smaller files)" msgstr "(Найстисліше)" -#: src/export/ExportMP3.cpp:242 +#: src/export/ExportMP3.cpp:245 msgid "Fast" msgstr "Швидка" -#: src/export/ExportMP3.cpp:243 src/export/ExportMP3.cpp:250 +#: src/export/ExportMP3.cpp:246 src/export/ExportMP3.cpp:253 msgid "Standard" msgstr "Стандартна" #. i18n-hint: Slightly humorous - as in use an insane precision with MP3. -#: src/export/ExportMP3.cpp:248 +#: src/export/ExportMP3.cpp:251 msgid "Insane" msgstr "Божевільна" -#: src/export/ExportMP3.cpp:249 +#: src/export/ExportMP3.cpp:252 msgid "Extreme" msgstr "Екстремальна" -#: src/export/ExportMP3.cpp:251 +#: src/export/ExportMP3.cpp:254 msgid "Medium" msgstr "Середня" -#: src/export/ExportMP3.cpp:347 +#: src/export/ExportMP3.cpp:353 msgid "Bit Rate Mode:" msgstr "Режим бітової частоти:" -#: src/export/ExportMP3.cpp:353 +#: src/export/ExportMP3.cpp:359 msgid "Variable" msgstr "Змінна" -#: src/export/ExportMP3.cpp:354 +#: src/export/ExportMP3.cpp:360 msgid "Average" msgstr "Усереднена" -#: src/export/ExportMP3.cpp:355 +#: src/export/ExportMP3.cpp:361 msgid "Constant" msgstr "Стала" -#: src/export/ExportMP3.cpp:392 src/prefs/QualityPrefs.cpp:37 +#: src/export/ExportMP3.cpp:398 src/prefs/QualityPrefs.cpp:37 msgid "Quality" msgstr "Якість" -#: src/export/ExportMP3.cpp:398 +#: src/export/ExportMP3.cpp:404 msgid "Variable Speed:" msgstr "Змінна швидкість:" -#: src/export/ExportMP3.cpp:405 +#: src/export/ExportMP3.cpp:411 msgid "Channel Mode:" msgstr "Режим каналів:" -#: src/export/ExportMP3.cpp:410 +#: src/export/ExportMP3.cpp:419 msgid "Joint Stereo" msgstr "З'єднане стерео" -#: src/export/ExportMP3.cpp:411 +#: src/export/ExportMP3.cpp:420 msgid "Stereo" msgstr "Стерео" +#: src/export/ExportMP3.cpp:426 +msgid "Force export to mono" +msgstr "Примусове експортування у моно" + #. i18n-hint: LAME is the name of an MP3 converter and should not be translated -#: src/export/ExportMP3.cpp:568 +#: src/export/ExportMP3.cpp:592 msgid "Locate Lame" msgstr "Знайти Lame" -#: src/export/ExportMP3.cpp:589 +#: src/export/ExportMP3.cpp:613 #, c-format msgid "Audacity needs the file %s to create MP3s." msgstr "Audacity потребує файла %s для створення MP3." -#: src/export/ExportMP3.cpp:595 +#: src/export/ExportMP3.cpp:619 #, c-format msgid "Location of %s:" msgstr "Розташування %s:" #. i18n-hint: There is a button to the right of the arrow. -#: src/export/ExportMP3.cpp:605 +#: src/export/ExportMP3.cpp:629 #, c-format msgid "To find %s, click here -->" msgstr "Щоб знайти %s, клацніть тут —>" #. i18n-hint: There is a button to the right of the arrow. -#: src/export/ExportMP3.cpp:613 +#: src/export/ExportMP3.cpp:637 msgid "To get a free copy of Lame, click here -->" msgstr "Щоб дістати вільну копію Lame, клацніть тут —>" #. i18n-hint: It's asking for the location of a file, for #. * example, "Where is lame_enc.dll?" - you could translate #. * "Where would I find the file %s" instead if you want. -#: src/export/ExportMP3.cpp:637 +#: src/export/ExportMP3.cpp:661 #, c-format msgid "Where is %s?" msgstr "Де знаходиться %s?" -#: src/export/ExportMP3.cpp:1142 +#: src/export/ExportMP3.cpp:1166 #, c-format msgid "" "You are linking to lame_enc.dll v%d.%d. This version is not compatible with " @@ -10316,14 +10581,14 @@ msgstr "" "версія бібліотеки не є сумісною з Audacity %d.%d.%d.\n" "Будь ласка, звантажте найостаннішу версію бібліотеки LAME MP3." -#: src/export/ExportMP3.cpp:1420 +#: src/export/ExportMP3.cpp:1445 msgid "" "Only lame_enc.dll|lame_enc.dll|Dynamically Linked Libraries (*.dll)|*.dll|" "All Files|*" msgstr "" "Лише lame_enc.dll|lame_enc.dll|Динамічні бібліотеки (*.dll)|*.dll|Усі файли|*" -#: src/export/ExportMP3.cpp:1438 +#: src/export/ExportMP3.cpp:1463 msgid "" "Only libmp3lame.dylib|libmp3lame.dylib|Dynamic Libraries (*.dylib)|*.dylib|" "All Files (*)|*" @@ -10331,7 +10596,7 @@ msgstr "" "Тільки libmp3lame.dylib|libmp3lame.dylib|Динамічні бібліотеки (*.dylib)|*." "dylib|Всі файли (*)|*" -#: src/export/ExportMP3.cpp:1456 +#: src/export/ExportMP3.cpp:1481 msgid "" "Only libmp3lame.so.0|libmp3lame.so.0|Primary Shared Object files (*.so)|*.so|" "Extended Libraries (*.so*)|*.so*|All Files (*)|*" @@ -10339,62 +10604,62 @@ msgstr "" "Лише libmp3lame.so|libmp3lame.so|Первинні спільні бібліотеки (*.so)|*.so|" "Розширені бібліотеки (*.so*)|*.so*|Усі файли (*)|*" -#: src/export/ExportMP3.cpp:1595 +#: src/export/ExportMP3.cpp:1620 msgid "MP3 Files" msgstr "Файли MP3" -#: src/export/ExportMP3.cpp:1609 src/export/ExportMP3.cpp:1647 +#: src/export/ExportMP3.cpp:1629 src/export/ExportMP3.cpp:1676 msgid "Could not open MP3 encoding library!" msgstr "Не вдається відкрити бібліотеку для експорту у MP3!" -#: src/export/ExportMP3.cpp:1639 +#: src/export/ExportMP3.cpp:1668 msgid "Could not initialize MP3 encoding library!" msgstr "Не вдалося ініціалізувати бібліотеку кодування MP3!" -#: src/export/ExportMP3.cpp:1655 +#: src/export/ExportMP3.cpp:1684 msgid "Not a valid or supported MP3 encoding library!" msgstr "Неправильна, або непідтримувана бібліотека стиснення MP3!" -#: src/export/ExportMP3.cpp:1734 +#: src/export/ExportMP3.cpp:1768 msgid "Unable to initialize MP3 stream" msgstr "Не вдалося започаткувати потік MP3" -#: src/export/ExportMP3.cpp:1776 +#: src/export/ExportMP3.cpp:1811 #, c-format msgid "Exporting selected audio with %s preset" msgstr "Експорт вибраного аудіо за шаблоном %s" -#: src/export/ExportMP3.cpp:1777 +#: src/export/ExportMP3.cpp:1812 #, c-format msgid "Exporting entire file with %s preset" msgstr "Експорт цілого файла за шаблоном %s" -#: src/export/ExportMP3.cpp:1782 +#: src/export/ExportMP3.cpp:1817 #, c-format msgid "Exporting selected audio with VBR quality %s" msgstr "Експорт вибраного аудіо з якістю VBR %s" -#: src/export/ExportMP3.cpp:1783 +#: src/export/ExportMP3.cpp:1818 #, c-format msgid "Exporting entire file with VBR quality %s" msgstr "Експорт цілого файла з якістю VBR %s" -#: src/export/ExportMP3.cpp:1788 +#: src/export/ExportMP3.cpp:1823 #, c-format msgid "Exporting selected audio at %d Kbps" msgstr "Експорт вибраного аудіо на швидкості %d кб/с" -#: src/export/ExportMP3.cpp:1789 +#: src/export/ExportMP3.cpp:1824 #, c-format msgid "Exporting entire file at %d Kbps" msgstr "Експорт цілого файла на швидкості %d кб/с" -#: src/export/ExportMP3.cpp:1824 +#: src/export/ExportMP3.cpp:1858 #, c-format msgid "Error %ld returned from MP3 encoder" msgstr "Модуль кодування MP3 повернув помилку %ld" -#: src/export/ExportMP3.cpp:1912 +#: src/export/ExportMP3.cpp:1944 #, c-format msgid "" "The project sample rate (%d) is not supported by the MP3\n" @@ -10403,7 +10668,7 @@ msgstr "" "Частота дискретизації проекту (%d) не підтримується форматом\n" "файлів MP3. " -#: src/export/ExportMP3.cpp:1915 +#: src/export/ExportMP3.cpp:1947 #, c-format msgid "" "The project sample rate (%d) and bit rate (%d kbps) combination is not\n" @@ -10412,20 +10677,20 @@ msgstr "" "Набір частоти дискретизації проекту (%d) та швидкості (%d кб/с)\n" "не підтримується форматом файлів MP3. " -#: src/export/ExportMP3.cpp:2088 +#: src/export/ExportMP3.cpp:2120 msgid "MP3 export library not found" msgstr "Не знайдено бібліотеку експорту до MP3" -#: src/export/ExportMultiple.cpp:107 src/export/ExportMultiple.cpp:465 -#: src/export/ExportMultiple.cpp:584 +#: src/export/ExportMultiple.cpp:107 src/export/ExportMultiple.cpp:475 +#: src/export/ExportMultiple.cpp:597 msgid "Export Multiple" msgstr "Експорт у декілька файлів" -#: src/export/ExportMultiple.cpp:185 src/export/ExportMultiple.cpp:195 +#: src/export/ExportMultiple.cpp:187 src/export/ExportMultiple.cpp:197 msgid "Cannot Export Multiple" msgstr "Експорт до декількох файлів неможливий" -#: src/export/ExportMultiple.cpp:193 +#: src/export/ExportMultiple.cpp:195 msgid "" "You have only one unmuted Audio Track and no applicable \n" "labels, so you cannot export to separate audio files." @@ -10434,111 +10699,111 @@ msgstr "" "відповідних міток. Отже ви не зможете експортувати дані до декількох окремих " "файлів." -#: src/export/ExportMultiple.cpp:248 +#: src/export/ExportMultiple.cpp:256 msgid "Export files to:" msgstr "Експортувати файли до:" -#: src/export/ExportMultiple.cpp:253 +#: src/export/ExportMultiple.cpp:261 msgid "Folder:" msgstr "Тека:" -#: src/export/ExportMultiple.cpp:258 +#: src/export/ExportMultiple.cpp:266 msgid "Create" msgstr "Створити" -#: src/export/ExportMultiple.cpp:269 +#: src/export/ExportMultiple.cpp:277 msgid "Options:" msgstr "Параметри:" -#: src/export/ExportMultiple.cpp:295 +#: src/export/ExportMultiple.cpp:303 msgid "Split files based on:" msgstr "Розділити файли за принципом:" -#: src/export/ExportMultiple.cpp:305 src/export/ExportMultiple.cpp:306 +#: src/export/ExportMultiple.cpp:313 src/export/ExportMultiple.cpp:314 msgid "Labels" msgstr "Позначки" -#: src/export/ExportMultiple.cpp:315 +#: src/export/ExportMultiple.cpp:323 msgid "Include audio before first label" msgstr "Включати звук перед першою позначкою" -#: src/export/ExportMultiple.cpp:322 +#: src/export/ExportMultiple.cpp:330 msgid "First file name:" msgstr "Назва першого файла:" -#: src/export/ExportMultiple.cpp:327 +#: src/export/ExportMultiple.cpp:335 msgid "First file name" msgstr "Назва першого файла" -#: src/export/ExportMultiple.cpp:338 +#: src/export/ExportMultiple.cpp:346 msgid "Name files:" msgstr "Назви файлів:" -#: src/export/ExportMultiple.cpp:344 +#: src/export/ExportMultiple.cpp:352 msgid "Using Label/Track Name" msgstr "Використовується позначка/назва доріжки" -#: src/export/ExportMultiple.cpp:347 +#: src/export/ExportMultiple.cpp:355 msgid "Numbering before Label/Track Name" msgstr "Нумерація перед міткою/назвою доріжки" -#: src/export/ExportMultiple.cpp:350 +#: src/export/ExportMultiple.cpp:358 msgid "Numbering after File name prefix" msgstr "Нумерація після префікса назви файла" -#: src/export/ExportMultiple.cpp:359 +#: src/export/ExportMultiple.cpp:367 msgid "File name prefix:" msgstr "Префікс назви файла:" -#: src/export/ExportMultiple.cpp:364 +#: src/export/ExportMultiple.cpp:372 msgid "File name prefix" msgstr "Префікс назви файла" -#: src/export/ExportMultiple.cpp:375 +#: src/export/ExportMultiple.cpp:383 msgid "Overwrite existing files" msgstr "Перезаписати існуючі файли" -#: src/export/ExportMultiple.cpp:463 +#: src/export/ExportMultiple.cpp:473 #, c-format msgid "\"%s\" successfully created." msgstr "«%s» успішно створено." -#: src/export/ExportMultiple.cpp:472 +#: src/export/ExportMultiple.cpp:482 msgid "Choose a location to save the exported files" msgstr "Виберіть каталог для експортування файлів" -#: src/export/ExportMultiple.cpp:568 +#: src/export/ExportMultiple.cpp:581 #, c-format msgid "Successfully exported the following %lld file(s)." msgstr "Успішно експортовано %lld файл(ів) з наведеного нижче списку." -#: src/export/ExportMultiple.cpp:569 +#: src/export/ExportMultiple.cpp:582 #, c-format msgid "Something went wrong after exporting the following %lld file(s)." msgstr "" "Після експорту %lld файла(ів) з наведеного нижче списку щось пішло не так." -#: src/export/ExportMultiple.cpp:570 +#: src/export/ExportMultiple.cpp:583 #, c-format msgid "Export canceled after exporting the following %lld file(s)." msgstr "" "Експортування було скасовано після завершення експорту %lld файл(ів) з " "наведеними нижче назвами." -#: src/export/ExportMultiple.cpp:571 +#: src/export/ExportMultiple.cpp:584 #, c-format msgid "Export stopped after exporting the following %lld file(s)." msgstr "" "Експортування було зупинено після завершення експорту %lld файл(ів) з " "наведеними нижче назвами." -#: src/export/ExportMultiple.cpp:572 +#: src/export/ExportMultiple.cpp:585 #, c-format msgid "Something went really wrong after exporting the following %lld file(s)." msgstr "" "Після експорту %lld файла(ів) з наведеними нижче назвами щось пішло не так." -#: src/export/ExportMultiple.cpp:607 +#: src/export/ExportMultiple.cpp:620 #, c-format msgid "" "\"%s\" doesn't exist.\n" @@ -10549,11 +10814,11 @@ msgstr "" "\n" "Створити?" -#: src/export/ExportMultiple.cpp:681 src/export/ExportMultiple.cpp:816 +#: src/export/ExportMultiple.cpp:694 src/export/ExportMultiple.cpp:829 msgid "untitled" msgstr "без назви" -#: src/export/ExportMultiple.cpp:967 +#: src/export/ExportMultiple.cpp:985 #, c-format msgid "" "Label or track \"%s\" is not a legal file name. You cannot use any of: %s\n" @@ -10563,19 +10828,19 @@ msgstr "" "бути: %s\n" "Використовується…" -#: src/export/ExportMultiple.cpp:968 +#: src/export/ExportMultiple.cpp:986 msgid "Save As..." msgstr "Зберегти як…" -#: src/export/ExportOGG.cpp:159 +#: src/export/ExportOGG.cpp:158 msgid "Ogg Vorbis Files" msgstr "Файли Ogg Vorbis" -#: src/export/ExportOGG.cpp:259 +#: src/export/ExportOGG.cpp:253 msgid "Exporting the selected audio as Ogg Vorbis" msgstr "Вибране експортується у файл Ogg Vorbis" -#: src/export/ExportOGG.cpp:260 +#: src/export/ExportOGG.cpp:254 msgid "Exporting the entire project as Ogg Vorbis" msgstr "Весь проект експортується у файл Ogg Vorbis" @@ -10603,16 +10868,16 @@ msgstr "Кодування:" msgid "Other uncompressed files" msgstr "Інші нестиснуті файли" -#: src/export/ExportPCM.cpp:441 +#: src/export/ExportPCM.cpp:437 msgid "Cannot export audio in this format." msgstr "Не вдається експортувати дані у цьому форматі." -#: src/export/ExportPCM.cpp:498 +#: src/export/ExportPCM.cpp:487 #, c-format msgid "Exporting the selected audio as %s" msgstr "Експортування вибраного аудіо як %s" -#: src/export/ExportPCM.cpp:500 +#: src/export/ExportPCM.cpp:489 #, c-format msgid "Exporting the entire project as %s" msgstr "Експортування всього проекту як %s" @@ -10620,7 +10885,7 @@ msgstr "Експортування всього проекту як %s" #. i18n-hint: %s will be the error message from libsndfile, which #. * is usually something unhelpful (and untranslated) like "system #. * error" -#: src/export/ExportPCM.cpp:526 +#: src/export/ExportPCM.cpp:513 #, c-format msgid "" "Error while writing %s file (disk full?).\n" @@ -10629,22 +10894,16 @@ msgstr "" "Помилка під час спроби запису файла %s (недостатньо місця?).\n" "Повідомлення libsndfile: «%s»" -#. i18n-hint: %s will be the error message from libsndfile -#: src/export/ExportPCM.cpp:556 -#, c-format -msgid "Error (file may not have been written): %s" -msgstr "Помилка (можливо, файл не записано): %s" - -#: src/import/Import.cpp:544 +#: src/import/Import.cpp:541 msgid "Select stream(s) to import" msgstr "Оберіть потоки для імпорту" -#: src/import/Import.cpp:605 +#: src/import/Import.cpp:599 #, c-format msgid "This version of Audacity was not compiled with %s support." msgstr "Ця версія Audacity була зібрана без підтримки %s." -#: src/import/Import.cpp:619 +#: src/import/Import.cpp:613 #, c-format msgid "" "\"%s\" \n" @@ -10658,7 +10917,7 @@ msgstr "" "редагувати їх, якщо виберете пункт меню Файл > Імпорт > MIDI." #. i18n-hint: %s will be the filename -#: src/import/Import.cpp:630 +#: src/import/Import.cpp:624 #, c-format msgid "" "\"%s\" is an audio CD track. \n" @@ -10671,7 +10930,7 @@ msgstr "" "Експортуйте (виріжте) доріжки КД у імпортований \n" "Audacity формат, на зразок WAV або AIFF." -#: src/import/Import.cpp:637 +#: src/import/Import.cpp:631 #, c-format msgid "" "\"%s\" is a playlist file. \n" @@ -10686,7 +10945,7 @@ msgstr "" "Ви можете відкрити його у текстовому редакторі та завантажити справжні " "звукові файли." -#: src/import/Import.cpp:643 +#: src/import/Import.cpp:637 #, c-format msgid "" "\"%s\" is a Windows Media Audio file. \n" @@ -10698,7 +10957,7 @@ msgstr "" "слід перетворити цей файл на файл підтримуваного аудіоформату, такого як WAV " "або AIFF." -#: src/import/Import.cpp:649 +#: src/import/Import.cpp:643 #, c-format msgid "" "\"%s\" is an Advanced Audio Coding file. \n" @@ -10710,7 +10969,7 @@ msgstr "" "слід перетворити цей файл на файл підтримуваного аудіоформату на зразок WAV " "або AIFF." -#: src/import/Import.cpp:655 +#: src/import/Import.cpp:649 #, c-format msgid "" "\"%s\" is an encrypted audio file. \n" @@ -10725,7 +10984,7 @@ msgstr "" "Спробуйте записати файл у Audacity, або записати його на CD, а потім \n" "копіювати доріжку CD у підтримуваний аудіоформат, на зразок WAV або AIFF." -#: src/import/Import.cpp:661 +#: src/import/Import.cpp:655 #, c-format msgid "" "\"%s\" is a RealPlayer media file. \n" @@ -10737,7 +10996,7 @@ msgstr "" "слід перетворити цей файл у файл підтримуваного аудіоформату, такого як WAV " "або AIFF." -#: src/import/Import.cpp:668 +#: src/import/Import.cpp:662 #, c-format msgid "" "\"%s\" is a notes-based file, not an audio file. \n" @@ -10750,7 +11009,7 @@ msgstr "" "Спробуйте перетворити його на файл аудіо, на зразок WAV або AIFF, а потім \n" "імпортувати, або записати за допомогою Audacity." -#: src/import/Import.cpp:675 +#: src/import/Import.cpp:669 #, c-format msgid "" "\"%s\" is a Musepack audio file. \n" @@ -10768,7 +11027,7 @@ msgstr "" "перетворити цей файл на файл формату, \n" "що підтримується, на зразок WAV або AIFF." -#: src/import/Import.cpp:682 +#: src/import/Import.cpp:676 #, c-format msgid "" "\"%s\" is a Wavpack audio file. \n" @@ -10780,7 +11039,7 @@ msgstr "" "Вам слід спочатку перетворити цей файл на файл формату, що підтримується, на " "зразок WAV або AIFF." -#: src/import/Import.cpp:689 +#: src/import/Import.cpp:683 #, c-format msgid "" "\"%s\" is a Dolby Digital audio file. \n" @@ -10792,7 +11051,7 @@ msgstr "" "Вам слід спочатку перетворити цей файл на файл формату, що підтримується, на " "зразок WAV або AIFF." -#: src/import/Import.cpp:696 +#: src/import/Import.cpp:690 #, c-format msgid "" "\"%s\" is an Ogg Speex audio file. \n" @@ -10804,7 +11063,7 @@ msgstr "" "Вам слід спочатку перетворити цей файл на файл формату, що підтримується, на " "зразок WAV або AIFF." -#: src/import/Import.cpp:703 +#: src/import/Import.cpp:697 #, c-format msgid "" "\"%s\" is a video file. \n" @@ -10816,7 +11075,7 @@ msgstr "" "Вам слід спочатку видобути звукові дані до файла у форматі, що " "підтримується, на зразок WAV або AIFF." -#: src/import/Import.cpp:710 +#: src/import/Import.cpp:704 #, c-format msgid "" "\"%s\" is an Audacity Project file. \n" @@ -10826,7 +11085,7 @@ msgstr "" "Для відкриття проектів Audacity слід користуватися пунктом меню «Файл > " "Відкрити»." -#: src/import/Import.cpp:716 +#: src/import/Import.cpp:710 #, c-format msgid "" "Audacity did not recognize the type of the file '%s'.\n" @@ -10836,7 +11095,7 @@ msgstr "" "Якщо цей файл не є стисненим, спробуйте імпортувати його як файл " "необроблених даних." -#: src/import/Import.cpp:734 +#: src/import/Import.cpp:728 #, c-format msgid "" "Audacity recognized the type of the file '%s'.\n" @@ -10849,11 +11108,11 @@ msgstr "" "%s,\n" "але жоден з інструментів не може обробити файл у цьому форматі." -#: src/import/ImportFFmpeg.cpp:37 +#: src/import/ImportFFmpeg.cpp:38 msgid "FFmpeg-compatible files" msgstr "Сумісні з FFmpeg файли" -#: src/import/ImportFFmpeg.cpp:442 +#: src/import/ImportFFmpeg.cpp:445 #, c-format msgid "" "Index[%02x] Codec[%s], Language[%s], Bitrate[%s], Channels[%d], Duration[%d]" @@ -10861,11 +11120,11 @@ msgstr "" "Індекс[%02x] Кодек[%s], Мова[%s], Бітова швидкість[%s], К-ть каналів[%d], " "Тривалість[%d]" -#: src/import/ImportFLAC.cpp:47 src/ondemand/ODDecodeFlacTask.cpp:28 +#: src/import/ImportFLAC.cpp:47 src/ondemand/ODDecodeFlacTask.cpp:29 msgid "FLAC files" msgstr "Файли FLAC" -#: src/import/ImportGStreamer.cpp:32 +#: src/import/ImportGStreamer.cpp:34 msgid "GStreamer-compatible files" msgstr "Сумісні з GStreamer файли" @@ -10874,29 +11133,29 @@ msgid "List of Files in basic text format" msgstr "Перелік файлів у звичайному текстовому форматі" #. i18n-hint: You do not need to translate "LOF" -#: src/import/ImportLOF.cpp:326 +#: src/import/ImportLOF.cpp:332 msgid "Invalid window offset in LOF file." msgstr "Неправильний зсув вікон у LOF-файлі." #. i18n-hint: You do not need to translate "LOF" -#: src/import/ImportLOF.cpp:328 src/import/ImportLOF.cpp:349 -#: src/import/ImportLOF.cpp:439 src/import/ImportLOF.cpp:460 +#: src/import/ImportLOF.cpp:334 src/import/ImportLOF.cpp:355 +#: src/import/ImportLOF.cpp:445 src/import/ImportLOF.cpp:466 msgid "LOF Error" msgstr "Помилка LOF" #. i18n-hint: You do not need to translate "LOF" -#: src/import/ImportLOF.cpp:347 +#: src/import/ImportLOF.cpp:353 msgid "Invalid duration in LOF file." msgstr "Неправильна тривалість LOF-файлі." -#: src/import/ImportLOF.cpp:438 +#: src/import/ImportLOF.cpp:444 msgid "MIDI tracks cannot be offset individually, only audio files can be." msgstr "" "Для MIDI-доріжок окремий відступ неможливий, таке можна робити лише з " "звуковими файлами." #. i18n-hint: You do not need to translate "LOF" -#: src/import/ImportLOF.cpp:459 +#: src/import/ImportLOF.cpp:465 msgid "Invalid track offset in LOF file." msgstr "Неправильний зсув доріжок у LOF-файлі." @@ -10921,23 +11180,23 @@ msgstr "Файли MP3" msgid "Ogg Vorbis files" msgstr "Файли Ogg Vorbis" -#: src/import/ImportOGG.cpp:199 +#: src/import/ImportOGG.cpp:198 msgid "Media read error" msgstr "Помилка читання носія" -#: src/import/ImportOGG.cpp:202 +#: src/import/ImportOGG.cpp:201 msgid "Not an Ogg Vorbis file" msgstr "Не є Ogg Vorbis файлом" -#: src/import/ImportOGG.cpp:205 +#: src/import/ImportOGG.cpp:204 msgid "Vorbis version mismatch" msgstr "Невідповідність версії Vorbis" -#: src/import/ImportOGG.cpp:208 +#: src/import/ImportOGG.cpp:207 msgid "Invalid Vorbis bitstream header" msgstr "Помилковий заголовок потоку Vorbis" -#: src/import/ImportOGG.cpp:211 +#: src/import/ImportOGG.cpp:210 msgid "Internal logic fault" msgstr "Внутрішня логічна помилка" @@ -10945,7 +11204,7 @@ msgstr "Внутрішня логічна помилка" msgid "WAV, AIFF, and other uncompressed types" msgstr "WAV, AIFF, та інші типи без стискання" -#: src/import/ImportPCM.cpp:246 +#: src/import/ImportPCM.cpp:251 #, c-format msgid "" "When importing uncompressed audio files you can either copy them into the " @@ -10978,31 +11237,31 @@ msgstr "" "\n" "Отже, який спосіб слід використати для імпортування поточних файлів?" -#: src/import/ImportPCM.cpp:256 +#: src/import/ImportPCM.cpp:261 msgid "copy in" msgstr "скопіювати" -#: src/import/ImportPCM.cpp:256 +#: src/import/ImportPCM.cpp:261 msgid "read directly" msgstr "прочитати безпосередньо" -#: src/import/ImportPCM.cpp:262 +#: src/import/ImportPCM.cpp:267 msgid "Choose an import method" msgstr "Вибір способу імпортування" -#: src/import/ImportPCM.cpp:272 +#: src/import/ImportPCM.cpp:277 msgid "Make a © of the files before editing (safer)" msgstr "Зробити &копію файлів до внесення змін (безпечніше)" -#: src/import/ImportPCM.cpp:276 +#: src/import/ImportPCM.cpp:281 msgid "Read the files &directly from the original (faster)" msgstr "Прочитати дані &безпосередньо з джерела (швидше)" -#: src/import/ImportPCM.cpp:280 +#: src/import/ImportPCM.cpp:285 msgid "Don't &warn again and always use my choice above" msgstr "Більше не &попереджати, використовувати вказаних вище спосіб" -#: src/import/ImportPlugin.h:139 src/import/ImportRaw.cpp:223 +#: src/import/ImportPlugin.h:141 src/import/ImportRaw.cpp:230 #, c-format msgid "Importing %s" msgstr "Імпортування %s" @@ -11011,33 +11270,33 @@ msgstr "Імпортування %s" msgid "QuickTime files" msgstr "Файли QuickTime" -#: src/import/ImportQT.cpp:251 +#: src/import/ImportQT.cpp:252 msgid "Unable to start QuickTime extraction" msgstr "Не вдалося почати видобування QuickTime" -#: src/import/ImportQT.cpp:261 +#: src/import/ImportQT.cpp:262 msgid "Unable to set QuickTime render quality" msgstr "Не вдалося встановити рівень якості відтворення QuickTime" -#: src/import/ImportQT.cpp:271 +#: src/import/ImportQT.cpp:272 msgid "Unable to set QuickTime discrete channels property" msgstr "" "Не вдалося встановити значення властивості дискретних каналів QuickTime" -#: src/import/ImportQT.cpp:282 +#: src/import/ImportQT.cpp:283 msgid "Unable to get QuickTime sample size property" msgstr "Не вдалося визначити властивість розміру семплу QuickTime" -#: src/import/ImportQT.cpp:293 +#: src/import/ImportQT.cpp:294 msgid "Unable to retrieve stream description" msgstr "Не вдається отримати опис потоку даних" -#: src/import/ImportQT.cpp:352 +#: src/import/ImportQT.cpp:353 msgid "Unable to get fill buffer" msgstr "Не вдалося отримати стан заповнення буфера" #. i18n-hint: 'Raw' means 'unprocessed' here and should usually be tanslated. -#: src/import/ImportRaw.cpp:226 +#: src/import/ImportRaw.cpp:233 msgid "Import Raw" msgstr "Імпортувати як файл необроблених даних" @@ -11108,11 +11367,11 @@ msgstr "Частота дискретизації:" msgid "Import complete. Calculating waveform" msgstr "Імпорт завершено. Обчислення форми хвилі" -#: src/ondemand/ODDecodeTask.h:58 +#: src/ondemand/ODDecodeTask.h:57 msgid "Decoding Waveform" msgstr "Декодування форми хвилі" -#: src/ondemand/ODWaveTrackTaskQueue.cpp:334 +#: src/ondemand/ODWaveTrackTaskQueue.cpp:333 #, c-format msgid "%s %2.0f%% complete. Click to change task focal point." msgstr "%s %2.0f%% завершено. Натисніть, щоб змінити фокус задачі." @@ -11122,7 +11381,7 @@ msgid "Batch" msgstr "Пакет" #: src/prefs/BatchPrefs.cpp:59 src/prefs/GUIPrefs.cpp:144 -#: src/prefs/TracksPrefs.cpp:117 +#: src/prefs/TracksPrefs.cpp:123 msgid "Behaviors" msgstr "Поведінка" @@ -11148,7 +11407,7 @@ msgid "Using:" msgstr "Використовується:" #: src/prefs/DevicePrefs.cpp:129 src/prefs/MidiIOPrefs.cpp:136 -#: src/prefs/PlaybackPrefs.cpp:31 +#: src/prefs/PlaybackPrefs.cpp:43 msgid "Playback" msgstr "Відтворення" @@ -11157,7 +11416,7 @@ msgid "&Device:" msgstr "П&ристрій:" #: src/prefs/DevicePrefs.cpp:142 src/prefs/MidiIOPrefs.cpp:154 -#: src/prefs/RecordingPrefs.cpp:46 src/toolbars/ControlToolBar.cpp:109 +#: src/prefs/RecordingPrefs.cpp:46 src/toolbars/ControlToolBar.cpp:113 msgid "Recording" msgstr "Запис" @@ -11234,28 +11493,28 @@ msgstr "Виберіть розташування каталогу тимчас msgid "unavailable - above location doesn't exist" msgstr "недоступне — наведеної вище адреси не існує" -#: src/prefs/DirectoriesPrefs.cpp:209 +#: src/prefs/DirectoriesPrefs.cpp:210 #, c-format msgid "Directory %s is not suitable (at risk of being cleaned out)" msgstr "" "Не варто використовувати каталог %s (ризикуєте його автоматичним " "спорожненням)" -#: src/prefs/DirectoriesPrefs.cpp:217 +#: src/prefs/DirectoriesPrefs.cpp:218 #, c-format msgid "Directory %s does not exist. Create it?" msgstr "Каталог %s не існує. Створити його?" -#: src/prefs/DirectoriesPrefs.cpp:219 +#: src/prefs/DirectoriesPrefs.cpp:220 msgid "New Temporary Directory" msgstr "Новий каталог тимчасовий каталог" -#: src/prefs/DirectoriesPrefs.cpp:237 +#: src/prefs/DirectoriesPrefs.cpp:239 #, c-format msgid "Directory %s is not writable" msgstr "Немає прав на запис у каталог %s" -#: src/prefs/DirectoriesPrefs.cpp:251 +#: src/prefs/DirectoriesPrefs.cpp:253 msgid "" "Changes to temporary directory will not take effect until Audacity is " "restarted" @@ -11263,7 +11522,7 @@ msgstr "" "Зміни каталогу для зберігання тимчасових файлів не наберуть сили, доки " "програму Audacity не буде перезавантажено." -#: src/prefs/DirectoriesPrefs.cpp:252 +#: src/prefs/DirectoriesPrefs.cpp:254 msgid "Temp Directory Update" msgstr "Оновлення теки тимчасових даних" @@ -11331,59 +11590,59 @@ msgstr "Набір інструкцій" msgid "&Use SSE/SSE2/.../AVX" msgstr "Ви&користовувати SSE/SSE2/.../AVX" -#: src/prefs/ExtImportPrefs.cpp:59 +#: src/prefs/ExtImportPrefs.cpp:61 msgid "Extended Import" msgstr "Розш. імпортування" -#: src/prefs/ExtImportPrefs.cpp:92 +#: src/prefs/ExtImportPrefs.cpp:94 msgid "A&ttempt to use filter in OpenFile dialog first" msgstr "&Намагатися спочатку скористатися фільтром у вікні відкриття файлів" -#: src/prefs/ExtImportPrefs.cpp:95 +#: src/prefs/ExtImportPrefs.cpp:97 msgid "Rules to choose import filters" msgstr "Правила вибору фільтрів імпортування" -#: src/prefs/ExtImportPrefs.cpp:114 +#: src/prefs/ExtImportPrefs.cpp:116 msgid "File extensions" msgstr "Суфікси назв файлів" -#: src/prefs/ExtImportPrefs.cpp:116 +#: src/prefs/ExtImportPrefs.cpp:118 msgid "Mime-types" msgstr "Типи MIME" -#: src/prefs/ExtImportPrefs.cpp:134 +#: src/prefs/ExtImportPrefs.cpp:136 msgid "Importer order" msgstr "Порядок імпортування" -#: src/prefs/ExtImportPrefs.cpp:150 +#: src/prefs/ExtImportPrefs.cpp:153 msgid "Move rule &up" msgstr "Перес. ви&ще" -#: src/prefs/ExtImportPrefs.cpp:152 +#: src/prefs/ExtImportPrefs.cpp:155 msgid "Move rule &down" msgstr "Перес. &нижче" -#: src/prefs/ExtImportPrefs.cpp:154 +#: src/prefs/ExtImportPrefs.cpp:157 msgid "Move f&ilter up" msgstr "Перес. фільтр ви&ще" -#: src/prefs/ExtImportPrefs.cpp:156 +#: src/prefs/ExtImportPrefs.cpp:159 msgid "Move &filter down" msgstr "Перес. &фільтр нижче" -#: src/prefs/ExtImportPrefs.cpp:161 +#: src/prefs/ExtImportPrefs.cpp:164 msgid "&Add new rule" msgstr "&Додати нове правило" -#: src/prefs/ExtImportPrefs.cpp:162 +#: src/prefs/ExtImportPrefs.cpp:165 msgid "De&lete selected rule" msgstr "Ви&лучити вибране правило" -#: src/prefs/ExtImportPrefs.cpp:419 src/prefs/ExtImportPrefs.cpp:436 +#: src/prefs/ExtImportPrefs.cpp:422 src/prefs/ExtImportPrefs.cpp:439 msgid "Unused filters:" msgstr "Невикористані фільтри:" -#: src/prefs/ExtImportPrefs.cpp:484 +#: src/prefs/ExtImportPrefs.cpp:487 msgid "" "There are space characters (spaces, newlines, tabs or linefeeds) in one of " "the items. They are likely to break the pattern matching. Unless you know " @@ -11395,15 +11654,15 @@ msgstr "" "пошуку відповідників. Якщо ці символи не було додано спеціально, " "рекомендуємо вам їх вилучити. Хочете, щоб Audacity вилучила пробіли?" -#: src/prefs/ExtImportPrefs.cpp:488 +#: src/prefs/ExtImportPrefs.cpp:491 msgid "Spaces detected" msgstr "Виявлено пробіли" -#: src/prefs/ExtImportPrefs.cpp:573 +#: src/prefs/ExtImportPrefs.cpp:576 msgid "Do you really want to delete selected rule?" msgstr "Ви справді бажаєте вилучити позначене правило?" -#: src/prefs/ExtImportPrefs.cpp:574 +#: src/prefs/ExtImportPrefs.cpp:577 msgid "Rule deletion confirmation" msgstr "Підтвердження вилучення правила" @@ -11447,7 +11706,7 @@ msgstr "На цьому комп’ютері" msgid "From Internet" msgstr "У інтернеті" -#: src/prefs/GUIPrefs.cpp:105 src/prefs/TracksPrefs.cpp:84 +#: src/prefs/GUIPrefs.cpp:105 src/prefs/TracksPrefs.cpp:90 #: src/prefs/WaveformPrefs.cpp:86 msgid "Display" msgstr "Показ" @@ -11685,10 +11944,6 @@ msgstr "" "\n" "«%s»" -#: src/prefs/LibraryPrefs.cpp:49 -msgid "Libraries" -msgstr "Бібліотеки" - #: src/prefs/LibraryPrefs.cpp:82 msgid "MP3 Export Library" msgstr "Бібліотека експорту MP3" @@ -11755,8 +12010,8 @@ msgstr "Пристрої MIDI" #. i18n-hint: (noun) #: src/prefs/MidiIOPrefs.cpp:123 -msgid "Host" -msgstr "Вузол" +msgid "Host:" +msgstr "Вузол:" #: src/prefs/MidiIOPrefs.cpp:130 msgid "Using: PortMidi" @@ -11850,29 +12105,28 @@ msgstr "Дія команди" msgid "Buttons" msgstr "Кнопки" -#: src/prefs/MousePrefs.cpp:109 src/prefs/MousePrefs.cpp:131 -#: src/prefs/MousePrefs.cpp:147 src/prefs/MousePrefs.cpp:152 +#: src/prefs/MousePrefs.cpp:109 src/prefs/MousePrefs.cpp:124 +#: src/prefs/MousePrefs.cpp:140 src/prefs/MousePrefs.cpp:145 msgid "Left-Click" msgstr "← — Клацання" #: src/prefs/MousePrefs.cpp:109 src/prefs/MousePrefs.cpp:110 #: src/prefs/MousePrefs.cpp:111 src/prefs/MousePrefs.cpp:112 -#: src/prefs/MousePrefs.cpp:114 src/prefs/MousePrefs.cpp:115 -#: src/prefs/MousePrefs.cpp:118 src/prefs/MousePrefs.cpp:121 +#: src/prefs/MousePrefs.cpp:114 msgid "Select" msgstr "Вибір" -#: src/prefs/MousePrefs.cpp:109 src/prefs/MousePrefs.cpp:152 +#: src/prefs/MousePrefs.cpp:109 src/prefs/MousePrefs.cpp:145 msgid "Set Selection Point" msgstr "Встановити точку вибору" -#: src/prefs/MousePrefs.cpp:110 src/prefs/MousePrefs.cpp:132 -#: src/prefs/MousePrefs.cpp:138 src/prefs/MousePrefs.cpp:142 -#: src/prefs/MousePrefs.cpp:149 src/prefs/MousePrefs.cpp:153 +#: src/prefs/MousePrefs.cpp:110 src/prefs/MousePrefs.cpp:125 +#: src/prefs/MousePrefs.cpp:131 src/prefs/MousePrefs.cpp:135 +#: src/prefs/MousePrefs.cpp:142 src/prefs/MousePrefs.cpp:146 msgid "Left-Drag" msgstr "← — Перетягування" -#: src/prefs/MousePrefs.cpp:110 src/prefs/MousePrefs.cpp:153 +#: src/prefs/MousePrefs.cpp:110 src/prefs/MousePrefs.cpp:146 msgid "Set Selection Range" msgstr "Встановити область вибору" @@ -11892,200 +12146,183 @@ msgstr "Подвійне-клацання-лівою" msgid "Select Clip or Entire Track" msgstr "Вибрати ділянку або всю доріжку" -#: src/prefs/MousePrefs.cpp:114 -msgid "-Left-Click" -msgstr "-клацання лівою" - -#: src/prefs/MousePrefs.cpp:114 -msgid "Scrub" -msgstr "Витерти" - -#: src/prefs/MousePrefs.cpp:115 src/prefs/MousePrefs.cpp:140 -#: src/prefs/MousePrefs.cpp:150 -msgid "-Left-Drag" -msgstr "-перетягування лівою" - -#: src/prefs/MousePrefs.cpp:115 -msgid "Seek" -msgstr "Позиціювання" - -#: src/prefs/MousePrefs.cpp:118 -msgid "-Left-Double-Click" -msgstr "-подвійне клацання лівою" - -#: src/prefs/MousePrefs.cpp:118 -msgid "Scroll-scrub" -msgstr "Гортати-витерти" - -#: src/prefs/MousePrefs.cpp:121 src/prefs/MousePrefs.cpp:164 +#: src/prefs/MousePrefs.cpp:114 src/prefs/MousePrefs.cpp:157 msgid "Wheel-Rotate" msgstr "Обертання коліщатка" -#: src/prefs/MousePrefs.cpp:121 +#: src/prefs/MousePrefs.cpp:114 msgid "Change scrub speed" -msgstr "Змінити швидкість витирання" +msgstr "Змінити швидкість прокручування" -#: src/prefs/MousePrefs.cpp:131 +#: src/prefs/MousePrefs.cpp:124 msgid "Zoom in on Point" msgstr "Збільшити за точкою" -#: src/prefs/MousePrefs.cpp:132 src/prefs/MousePrefs.cpp:134 -#: src/prefs/MousePrefs.cpp:155 +#: src/prefs/MousePrefs.cpp:125 src/prefs/MousePrefs.cpp:127 +#: src/prefs/MousePrefs.cpp:148 msgid "Zoom in on a Range" msgstr "Збільшити за областю" -#: src/prefs/MousePrefs.cpp:132 +#: src/prefs/MousePrefs.cpp:125 msgid "same as right-drag" msgstr "теж, що і клацання правою і перетаскування" -#: src/prefs/MousePrefs.cpp:133 src/prefs/MousePrefs.cpp:154 +#: src/prefs/MousePrefs.cpp:126 src/prefs/MousePrefs.cpp:147 msgid "Right-Click" msgstr "→ — Клацання" -#: src/prefs/MousePrefs.cpp:133 src/prefs/MousePrefs.cpp:154 +#: src/prefs/MousePrefs.cpp:126 src/prefs/MousePrefs.cpp:147 msgid "Zoom out one step" msgstr "Зменшити на крок" -#: src/prefs/MousePrefs.cpp:134 src/prefs/MousePrefs.cpp:155 +#: src/prefs/MousePrefs.cpp:127 src/prefs/MousePrefs.cpp:148 msgid "Right-Drag" msgstr "→ — Перетягування" -#: src/prefs/MousePrefs.cpp:134 +#: src/prefs/MousePrefs.cpp:127 msgid "same as left-drag" msgstr "теж, що і клацання лівою і перетаскування" -#: src/prefs/MousePrefs.cpp:135 +#: src/prefs/MousePrefs.cpp:128 msgid "Shift-Drag" msgstr "Shift — Перетягування" -#: src/prefs/MousePrefs.cpp:135 +#: src/prefs/MousePrefs.cpp:128 msgid "Zoom out on a Range" msgstr "Збільшення за областю" -#: src/prefs/MousePrefs.cpp:136 +#: src/prefs/MousePrefs.cpp:129 msgid "Middle-Click" msgstr "Клацання середньою" -#: src/prefs/MousePrefs.cpp:136 +#: src/prefs/MousePrefs.cpp:129 msgid "Zoom default" msgstr "Типовий масштаб" -#: src/prefs/MousePrefs.cpp:138 +#: src/prefs/MousePrefs.cpp:131 msgid "Time shift clip or move up/down between tracks" msgstr "Пересунути ділянку, пересування вгору-вниз між доріжками" -#: src/prefs/MousePrefs.cpp:139 +#: src/prefs/MousePrefs.cpp:132 msgid "Shift-Left-Drag" msgstr "Shift-Ліва-Перетягування" -#: src/prefs/MousePrefs.cpp:139 +#: src/prefs/MousePrefs.cpp:132 msgid "Time shift all clips in track" msgstr "Часовий зсув всіх частинок у доріжці" -#: src/prefs/MousePrefs.cpp:140 +#: src/prefs/MousePrefs.cpp:133 src/prefs/MousePrefs.cpp:143 +msgid "-Left-Drag" +msgstr "-перетягування лівою" + +#: src/prefs/MousePrefs.cpp:133 msgid "Move clip up/down between tracks" msgstr "Перемістити ділянку вгору або вниз між доріжками" -#: src/prefs/MousePrefs.cpp:145 +#: src/prefs/MousePrefs.cpp:138 msgid "Change Amplification Envelope" msgstr "Змінити обвідну підсилення" -#: src/prefs/MousePrefs.cpp:147 src/prefs/MousePrefs.cpp:148 -#: src/prefs/MousePrefs.cpp:149 src/prefs/MousePrefs.cpp:150 +#: src/prefs/MousePrefs.cpp:140 src/prefs/MousePrefs.cpp:141 +#: src/prefs/MousePrefs.cpp:142 src/prefs/MousePrefs.cpp:143 msgid "Pencil" msgstr "«Олівець»" -#: src/prefs/MousePrefs.cpp:147 +#: src/prefs/MousePrefs.cpp:140 msgid "Change Sample" msgstr "Змінити семпл" -#: src/prefs/MousePrefs.cpp:148 +#: src/prefs/MousePrefs.cpp:141 msgid "Alt-Left-Click" msgstr "Alt-клацання лівою кнопкою" -#: src/prefs/MousePrefs.cpp:148 +#: src/prefs/MousePrefs.cpp:141 msgid "Smooth at Sample" msgstr "Згладжувати семпл" -#: src/prefs/MousePrefs.cpp:149 +#: src/prefs/MousePrefs.cpp:142 msgid "Change Several Samples" msgstr "Змінити декілька семплів" -#: src/prefs/MousePrefs.cpp:150 +#: src/prefs/MousePrefs.cpp:143 msgid "Change ONE Sample only" msgstr "Змінити лише ОДИН семпл" -#: src/prefs/MousePrefs.cpp:152 src/prefs/MousePrefs.cpp:153 -#: src/prefs/MousePrefs.cpp:154 src/prefs/MousePrefs.cpp:155 +#: src/prefs/MousePrefs.cpp:145 src/prefs/MousePrefs.cpp:146 +#: src/prefs/MousePrefs.cpp:147 src/prefs/MousePrefs.cpp:148 msgid "Multi" msgstr "Декілька" -#: src/prefs/MousePrefs.cpp:152 src/prefs/MousePrefs.cpp:153 +#: src/prefs/MousePrefs.cpp:145 src/prefs/MousePrefs.cpp:146 msgid "same as select tool" msgstr "те саме, що й інструмент вибору" -#: src/prefs/MousePrefs.cpp:154 src/prefs/MousePrefs.cpp:155 +#: src/prefs/MousePrefs.cpp:147 src/prefs/MousePrefs.cpp:148 msgid "same as zoom tool" msgstr "те саме, що й інструмент масштабування" -#: src/prefs/MousePrefs.cpp:164 src/prefs/MousePrefs.cpp:165 -#: src/prefs/MousePrefs.cpp:166 +#: src/prefs/MousePrefs.cpp:157 src/prefs/MousePrefs.cpp:158 +#: src/prefs/MousePrefs.cpp:159 msgid "Any" msgstr "Будь-який" -#: src/prefs/MousePrefs.cpp:164 +#: src/prefs/MousePrefs.cpp:157 msgid "Scroll up or down" msgstr "Прокрутити вгору чи вниз" -#: src/prefs/MousePrefs.cpp:165 +#: src/prefs/MousePrefs.cpp:158 msgid "Shift-Wheel-Rotate" msgstr "Shift-Прокручування-коліщатка" -#: src/prefs/MousePrefs.cpp:165 +#: src/prefs/MousePrefs.cpp:158 msgid "Scroll left or right" msgstr "Прокручування ліворуч або праворуч" -#: src/prefs/MousePrefs.cpp:166 +#: src/prefs/MousePrefs.cpp:159 msgid "-Wheel-Rotate" msgstr "-обертання коліщатка" -#: src/prefs/MousePrefs.cpp:166 +#: src/prefs/MousePrefs.cpp:159 msgid "Zoom in or out on Mouse Pointer" msgstr "Збільшення або зменшення за вказівником миші" -#: src/prefs/PlaybackPrefs.cpp:57 +#: src/prefs/PlaybackPrefs.cpp:69 msgid "Effects Preview" msgstr "Прослуховування ефекту" -#: src/prefs/PlaybackPrefs.cpp:61 +#: src/prefs/PlaybackPrefs.cpp:73 msgid "&Length of preview:" msgstr "&Тривалість прослуховування:" #. i18n-hint: (noun) this is a preview of the cut -#: src/prefs/PlaybackPrefs.cpp:73 +#: src/prefs/PlaybackPrefs.cpp:85 msgid "Cut Preview" msgstr "Прослуховування результату вирізання" -#: src/prefs/PlaybackPrefs.cpp:77 +#: src/prefs/PlaybackPrefs.cpp:89 msgid "Preview &before cut region:" msgstr "Прослуховування пе&ред вирізанням області:" -#: src/prefs/PlaybackPrefs.cpp:84 +#: src/prefs/PlaybackPrefs.cpp:96 msgid "Preview &after cut region:" msgstr "Прослуховування піс&ля вирізання області:" -#: src/prefs/PlaybackPrefs.cpp:95 +#: src/prefs/PlaybackPrefs.cpp:107 msgid "Seek Time when playing" msgstr "Час позиціювання під час відтворення" -#: src/prefs/PlaybackPrefs.cpp:99 +#: src/prefs/PlaybackPrefs.cpp:111 msgid "&Short period:" msgstr "&Короткий проміжок:" -#: src/prefs/PlaybackPrefs.cpp:106 +#: src/prefs/PlaybackPrefs.cpp:118 msgid "Lo&ng period:" msgstr "&Довгий проміжок:" +#: src/prefs/PlaybackPrefs.cpp:130 +msgid "Pinned playback/recording head" +msgstr "Пришпилений початок запису/відтворення" + #: src/prefs/PrefsDialog.cpp:202 msgid "Audacity Preferences" msgstr "Параметри Audacity" @@ -12581,68 +12818,68 @@ msgstr "Зберегти файли" msgid "Load Files" msgstr "Завантажити файли" -#: src/prefs/TracksPrefs.cpp:54 +#: src/prefs/TracksPrefs.cpp:60 msgid "Simple" msgstr "Проста" -#: src/prefs/TracksPrefs.cpp:55 +#: src/prefs/TracksPrefs.cpp:61 msgid "Multi-track" msgstr "Декілька доріжок" -#: src/prefs/TracksPrefs.cpp:65 +#: src/prefs/TracksPrefs.cpp:71 msgid "Waveform (dB)" msgstr "Хвиля (дБ)" -#: src/prefs/TracksPrefs.cpp:68 +#: src/prefs/TracksPrefs.cpp:74 msgid "Spectrogram" msgstr "Спектрограма" -#: src/prefs/TracksPrefs.cpp:86 +#: src/prefs/TracksPrefs.cpp:92 msgid "&Update display while playing" msgstr "&Оновлювати відображення під час відтворення" -#: src/prefs/TracksPrefs.cpp:89 +#: src/prefs/TracksPrefs.cpp:95 msgid "Automatically &fit tracks vertically zoomed" msgstr "Автоматично &робити доріжки вертикально масштабованими" -#: src/prefs/TracksPrefs.cpp:97 +#: src/prefs/TracksPrefs.cpp:103 msgid "Default &view mode:" msgstr "Типовий режим п&ерегляду:" -#: src/prefs/TracksPrefs.cpp:104 +#: src/prefs/TracksPrefs.cpp:110 msgid "Default audio track &name:" msgstr "Типова назва з&вукової доріжки:" -#: src/prefs/TracksPrefs.cpp:111 +#: src/prefs/TracksPrefs.cpp:117 msgid "Sho&w audio track name as overlay" msgstr "&Показувати назву доріжки як накладку" -#: src/prefs/TracksPrefs.cpp:119 +#: src/prefs/TracksPrefs.cpp:125 msgid "&Select all audio in project, if none selected" msgstr "В&ибирати все аудіо у проекті, якщо нічого не вибрано" #. i18n-hint: cut-lines are a lines indicating where to cut. -#: src/prefs/TracksPrefs.cpp:123 +#: src/prefs/TracksPrefs.cpp:129 msgid "Enable cu&t lines" msgstr "Дозволити &лінії розрізання" -#: src/prefs/TracksPrefs.cpp:126 +#: src/prefs/TracksPrefs.cpp:132 msgid "Enable &dragging of left and right selection edges" msgstr "Дозволити &перетягування лівої і правої границь вибору" -#: src/prefs/TracksPrefs.cpp:129 +#: src/prefs/TracksPrefs.cpp:135 msgid "\"Move track focus\" c&ycles repeatedly through tracks" msgstr "«Перемістити фокус доріжки» &циклічно повторюється між доріжками" -#: src/prefs/TracksPrefs.cpp:132 +#: src/prefs/TracksPrefs.cpp:138 msgid "Editing a clip can &move other clips" msgstr "Редагування ві&дрізку може пересувати інші інші" -#: src/prefs/TracksPrefs.cpp:136 +#: src/prefs/TracksPrefs.cpp:142 msgid "Enable scrolling left of &zero" msgstr "Увімкнути гортання ліворуч від &нуля" -#: src/prefs/TracksPrefs.cpp:145 +#: src/prefs/TracksPrefs.cpp:151 msgid "Solo &Button:" msgstr "Кнопка «&Соло»:" @@ -12667,14 +12904,18 @@ msgid "&Low disk space at program start up" msgstr "&Замало місця на диску під час запуску програми" #: src/prefs/WarningsPrefs.cpp:66 -msgid "Mixing down to &stereo during export" -msgstr "Мікшування у &стерео під час експорту" - -#: src/prefs/WarningsPrefs.cpp:69 msgid "Mixing down to &mono during export" msgstr "Мікшування у &моно під час експорту" +#: src/prefs/WarningsPrefs.cpp:69 +msgid "Mixing down to &stereo during export" +msgstr "Мікшування у &стерео під час експорту" + #: src/prefs/WarningsPrefs.cpp:72 +msgid "Mixing down on export (&Custom FFmpeg or external program)" +msgstr "Мікшування при експортуванні (&нетиповий FFmpeg або зовнішня програма)" + +#: src/prefs/WarningsPrefs.cpp:75 msgid "&Importing uncompressed audio files" msgstr "&Імпортування нестиснених звукових файлів" @@ -12688,39 +12929,39 @@ msgstr "Ді&апазон хвилі у дБ" #. i18n-hint: These are strings for the status bar, and indicate whether Audacity #. is playing or recording or stopped, and whether it is paused. -#: src/toolbars/ControlToolBar.cpp:107 +#: src/toolbars/ControlToolBar.cpp:111 msgid "Playing" msgstr "Відтворення" -#: src/toolbars/ControlToolBar.cpp:108 +#: src/toolbars/ControlToolBar.cpp:112 msgid "Stopped" msgstr "Зупинено" -#: src/toolbars/ControlToolBar.cpp:110 +#: src/toolbars/ControlToolBar.cpp:114 msgid "Paused" msgstr "Призупинено" -#: src/toolbars/ControlToolBar.cpp:159 +#: src/toolbars/ControlToolBar.cpp:163 msgid "Pause" msgstr "Призупинити" -#: src/toolbars/ControlToolBar.cpp:172 +#: src/toolbars/ControlToolBar.cpp:180 msgid "Skip to Start" msgstr "Перейти на початок доріжки" -#: src/toolbars/ControlToolBar.cpp:175 +#: src/toolbars/ControlToolBar.cpp:183 msgid "Skip to End" msgstr "Перейти на кінець доріжки" -#: src/toolbars/ControlToolBar.cpp:209 -msgid ") / Loop Play (" -msgstr ") / Циклічне відтворення (" - #: src/toolbars/ControlToolBar.cpp:214 -msgid ") / Append Record (" -msgstr ") / Дописування (" +msgid "Loop Play" +msgstr "Циклічне відтворення" -#: src/toolbars/ControlToolBar.cpp:1020 +#: src/toolbars/ControlToolBar.cpp:219 +msgid "Append Record" +msgstr "Долучити запис" + +#: src/toolbars/ControlToolBar.cpp:1085 msgid "" "Error while opening sound device. Please check the recording device settings " "and the project sample rate." @@ -12746,31 +12987,31 @@ msgstr "Вузол обробки звуку" msgid "Recording Channels" msgstr "Канали запису" -#: src/toolbars/DeviceToolBar.cpp:634 +#: src/toolbars/DeviceToolBar.cpp:640 msgid "1 (Mono) Recording Channel" msgstr "1 канал запису (моно)" -#: src/toolbars/DeviceToolBar.cpp:637 +#: src/toolbars/DeviceToolBar.cpp:643 msgid "2 (Stereo) Recording Channels" msgstr "2 канали запису (стерео)" -#: src/toolbars/DeviceToolBar.cpp:768 +#: src/toolbars/DeviceToolBar.cpp:774 msgid "Select Recording Device" msgstr "Виберіть пристрій запису" -#: src/toolbars/DeviceToolBar.cpp:772 +#: src/toolbars/DeviceToolBar.cpp:778 msgid "Select Playback Device" msgstr "Виберіть пристрій відтворення" -#: src/toolbars/DeviceToolBar.cpp:776 +#: src/toolbars/DeviceToolBar.cpp:782 msgid "Select Audio Host" msgstr "Виберіть вузол обробки звуку" -#: src/toolbars/DeviceToolBar.cpp:780 +#: src/toolbars/DeviceToolBar.cpp:786 msgid "Select Recording Channels" msgstr "Виберіть канали запису" -#: src/toolbars/DeviceToolBar.cpp:786 +#: src/toolbars/DeviceToolBar.cpp:792 msgid "Device information is not available." msgstr "Не вдалося отримати дані щодо пристрою." @@ -12790,15 +13031,15 @@ msgstr "Відрізати усе поза позначеним" msgid "Silence audio selection" msgstr "Замінити позначене тишею" -#: src/toolbars/EditToolBar.cpp:152 src/toolbars/EditToolBar.cpp:209 +#: src/toolbars/EditToolBar.cpp:152 src/toolbars/EditToolBar.cpp:215 msgid "Sync-Lock Tracks" msgstr "Синхронізація-прив’язка доріжок" -#: src/toolbars/EditToolBar.cpp:158 src/toolbars/EditToolBar.cpp:211 +#: src/toolbars/EditToolBar.cpp:158 src/toolbars/EditToolBar.cpp:218 msgid "Zoom In" msgstr "Збільшити" -#: src/toolbars/EditToolBar.cpp:160 src/toolbars/EditToolBar.cpp:212 +#: src/toolbars/EditToolBar.cpp:160 src/toolbars/EditToolBar.cpp:219 msgid "Zoom Out" msgstr "Зменшити" @@ -12814,22 +13055,70 @@ msgstr "Розмістити проект у вікні" msgid "Show Effects Rack" msgstr "Показати список ефектів" -#: src/toolbars/EditToolBar.cpp:205 +#: src/toolbars/EditToolBar.cpp:210 msgid "Silence Audio" msgstr "Заповнити тишею" -#: src/toolbars/EditToolBar.cpp:213 +#: src/toolbars/EditToolBar.cpp:220 msgid "Fit Selection" msgstr "Розмістити вибрану область" -#: src/toolbars/EditToolBar.cpp:214 +#: src/toolbars/EditToolBar.cpp:221 msgid "Fit Project" msgstr "Розмістити проект" -#: src/toolbars/EditToolBar.cpp:217 +#: src/toolbars/EditToolBar.cpp:224 msgid "Open Effects Rack" msgstr "Відкрити список ефектів" +#: src/toolbars/EditToolBar.cpp:400 src/toolbars/EditToolBar.cpp:448 +msgid "Scrub" +msgstr "Прокрутити" + +#: src/toolbars/EditToolBar.cpp:450 +msgid "Seek" +msgstr "Позиціювання" + +#: src/toolbars/EditToolBar.cpp:453 +msgid "Scrub bar" +msgstr "Панель прокручування" + +#: src/toolbars/EditToolBar.cpp:464 +msgid "Scrubbing" +msgstr "Прокручування" + +#. i18n-hint: These commands assist the user in finding a sound by ear. ... +#. "Scrubbing" is variable-speed playback, ... +#. "Seeking" is normal speed playback but with skips +#. +#: src/toolbars/EditToolBar.cpp:497 +msgid "Stop Scrubbing" +msgstr "Зупинити прокручування" + +#: src/toolbars/EditToolBar.cpp:498 +msgid "Start Scrubbing" +msgstr "Почати прокручування" + +#. i18n-hint: These commands assist the user in finding a sound by ear. ... +#. "Scrubbing" is variable-speed playback, ... +#. "Seeking" is normal speed playback but with skips +#. +#: src/toolbars/EditToolBar.cpp:508 +msgid "Stop Seeking" +msgstr "Зупинити позиціювання" + +#: src/toolbars/EditToolBar.cpp:509 +msgid "Start Seeking" +msgstr "Почати позиціювання" + +#: src/toolbars/EditToolBar.cpp:515 +msgid "Hide Scrub Bar" +msgstr "Приховати панель прокручування" + +#: src/toolbars/EditToolBar.cpp:516 +msgid "Show Scrub Bar" +msgstr "Показати панель прокручування" + #: src/toolbars/MeterToolBar.cpp:51 msgid "Combined Meter" msgstr "Комбінований індикатор" @@ -12890,71 +13179,71 @@ msgstr "Гучність відтворення" msgid "Slider Playback" msgstr "Повзунок відтворення" -#: src/toolbars/MixerToolBar.cpp:290 +#: src/toolbars/MixerToolBar.cpp:292 #, c-format msgid "Recording Volume: %.2f" msgstr "Гучність запису: %.2f" -#: src/toolbars/MixerToolBar.cpp:293 +#: src/toolbars/MixerToolBar.cpp:295 msgid "Recording Volume (Unavailable; use system mixer.)" msgstr "Гучність запису (недоступна, скористайтеся мікшером системи)" -#: src/toolbars/MixerToolBar.cpp:298 +#: src/toolbars/MixerToolBar.cpp:300 #, c-format msgid "Playback Volume: %%.2f%s" msgstr "Гучність відтворення: %%.2f%s" -#: src/toolbars/MixerToolBar.cpp:298 +#: src/toolbars/MixerToolBar.cpp:300 msgid " (emulated)" msgstr " (емуляція)" -#: src/toolbars/MixerToolBar.cpp:301 +#: src/toolbars/MixerToolBar.cpp:303 msgid "Playback Volume (Unavailable; use system mixer.)" msgstr "Гучність відтворення (недоступна, скористайтеся мікшером системи)" -#: src/toolbars/SelectionBar.cpp:88 src/toolbars/SelectionBar.cpp:295 +#: src/toolbars/SelectionBar.cpp:88 src/toolbars/SelectionBar.cpp:297 msgid "Selection" msgstr "Вибрана область" -#: src/toolbars/SelectionBar.cpp:130 src/toolbars/SelectionBar.cpp:192 +#: src/toolbars/SelectionBar.cpp:132 src/toolbars/SelectionBar.cpp:194 msgid "Project Rate (Hz):" msgstr "Частота проекту (Гц):" -#: src/toolbars/SelectionBar.cpp:142 +#: src/toolbars/SelectionBar.cpp:144 msgid "Snap To:" msgstr "Прив’язування до:" -#: src/toolbars/SelectionBar.cpp:145 src/toolbars/SelectionBar.cpp:256 +#: src/toolbars/SelectionBar.cpp:147 src/toolbars/SelectionBar.cpp:258 msgid "Selection Start:" msgstr "Початок вибраної області:" -#: src/toolbars/SelectionBar.cpp:160 src/toolbars/SelectionBar.cpp:161 -#: src/toolbars/SelectionBar.cpp:263 +#: src/toolbars/SelectionBar.cpp:162 src/toolbars/SelectionBar.cpp:163 +#: src/toolbars/SelectionBar.cpp:265 msgid "Length" msgstr "Тривалість" -#: src/toolbars/SelectionBar.cpp:171 +#: src/toolbars/SelectionBar.cpp:173 msgid "hidden" msgstr "заховано" -#: src/toolbars/SelectionBar.cpp:182 src/toolbars/SelectionBar.cpp:275 +#: src/toolbars/SelectionBar.cpp:184 src/toolbars/SelectionBar.cpp:277 msgid "Audio Position:" msgstr "Позиція у аудіо:" -#: src/toolbars/SelectionBar.cpp:239 +#: src/toolbars/SelectionBar.cpp:241 msgid "Snap To" msgstr "Прив'язка" -#: src/toolbars/SelectionBar.cpp:242 src/toolbars/SelectionBar.cpp:377 +#: src/toolbars/SelectionBar.cpp:244 src/toolbars/SelectionBar.cpp:381 #, c-format msgid "Snap Clicks/Selections to %s" msgstr "Прив’язувати клацання/позначення до %s" -#: src/toolbars/SelectionBar.cpp:262 +#: src/toolbars/SelectionBar.cpp:264 msgid "Selection " msgstr "Вибрана область " -#: src/toolbars/SelectionBar.cpp:355 +#: src/toolbars/SelectionBar.cpp:359 msgid "Selection End" msgstr "Кінець вибраної області" @@ -12989,93 +13278,75 @@ msgid "High Frequency:" msgstr "Верхня частота:" #. i18n-hint: %s will be replaced by the name of the kind of toolbar. -#: src/toolbars/ToolBar.cpp:299 +#: src/toolbars/ToolBar.cpp:319 #, c-format msgid "Audacity %s Toolbar" msgstr "Панель інструментів Audacity %s" -#: src/toolbars/ToolBar.cpp:448 src/toolbars/ToolBar.cpp:493 +#: src/toolbars/ToolBar.cpp:468 src/toolbars/ToolBar.cpp:513 msgid "Click and drag to resize toolbar" msgstr "Клацніть і перетягніть для зміни розміру панелі інструментів" -#: src/toolbars/ToolDock.cpp:75 src/toolbars/ToolDock.cpp:76 +#: src/toolbars/ToolBar.cpp:773 +msgid "no key" +msgstr "немає комбінації" + +#: src/toolbars/ToolDock.cpp:353 src/toolbars/ToolDock.cpp:354 msgid "ToolDock" msgstr "ДокІнструментів" -#: src/toolbars/ToolsToolBar.cpp:93 -msgid "" -"Click and drag to select audio, Command-Click to scrub, Command-Double-Click " -"to scroll-scrub, Command-drag to seek" -msgstr "" -"Натисніть кнопку миші і перетягніть вказівник, щоб позначити звукові дані. " -"Command з клацанням витирає, Command з подвійним клацанням витирає з " -"гортанням, Command з перетягуванням — позиціює" - -#: src/toolbars/ToolsToolBar.cpp:95 -msgid "" -"Click and drag to select audio, Ctrl-Click to scrub, Ctrl-Double-Click to " -"scroll-scrub, Ctrl-drag to seek" -msgstr "" -"Натисніть кнопку миші і перетягніть вказівник, щоб позначити звукові дані. " -"Ctrl з клацанням витирає, Ctrl з подвійним клацанням витирає з гортанням, " -"Ctrl з перетягуванням — позиціює" - -#: src/toolbars/ToolsToolBar.cpp:100 +#: src/toolbars/ToolsToolBar.cpp:87 msgid "Click and drag to select audio" msgstr "" "Натисніть кнопку миші і перетягніть вказівник, щоб позначити звукові дані" -#: src/toolbars/ToolsToolBar.cpp:104 +#: src/toolbars/ToolsToolBar.cpp:89 msgid "Click and drag to edit the amplitude envelope" msgstr "Натисніть кнопку миші і перетягніть, щоб редагувати діапазон амплітуд" -#: src/toolbars/ToolsToolBar.cpp:105 +#: src/toolbars/ToolsToolBar.cpp:90 msgid "Click and drag to edit the samples" msgstr "Натисніть кнопку миші і перетягніть, щоб редагувати семпли" -#: src/toolbars/ToolsToolBar.cpp:107 +#: src/toolbars/ToolsToolBar.cpp:92 msgid "Click to Zoom In, Shift-Click to Zoom Out" msgstr "Клацніть, щоб збільшити, клацніть із Shift, щоб зменшити" -#: src/toolbars/ToolsToolBar.cpp:109 +#: src/toolbars/ToolsToolBar.cpp:94 msgid "Drag to Zoom Into Region, Right-Click to Zoom Out" msgstr "" "Перетягніть, щоб масштабувати за областю, клацніть правою, щоб зменшити" -#: src/toolbars/ToolsToolBar.cpp:111 +#: src/toolbars/ToolsToolBar.cpp:96 msgid "Left=Zoom In, Right=Zoom Out, Middle=Normal" msgstr "Ліва=Збільшити, Права=Зменшити, Середня=Звичайний масштаб" -#: src/toolbars/ToolsToolBar.cpp:113 +#: src/toolbars/ToolsToolBar.cpp:98 msgid "Click and drag to move a track in time" msgstr "Натисніть кнопку миші і перетягніть, щоб пересунути доріжку у часі" -#: src/toolbars/ToolsToolBar.cpp:159 -msgid "Multi-Tool Mode" -msgstr "Універсальний інструмент" - -#: src/toolbars/ToolsToolBar.cpp:196 +#: src/toolbars/ToolsToolBar.cpp:197 msgid "Slide Tool" msgstr "Переміщення" -#: src/toolbars/TranscriptionToolBar.cpp:189 +#: src/toolbars/TranscriptionToolBar.cpp:184 msgid "Play at selected speed" msgstr "Відтворити на вибраній швидкості" +#: src/toolbars/TranscriptionToolBar.cpp:193 #: src/toolbars/TranscriptionToolBar.cpp:198 -#: src/toolbars/TranscriptionToolBar.cpp:203 msgid "Playback Speed" msgstr "Швидкість програвання" -#: src/toolbars/TranscriptionToolBar.cpp:306 +#: src/toolbars/TranscriptionToolBar.cpp:309 msgid "Play-at-speed" msgstr "Відтворити-на-швидкості" -#: src/widgets/AButton.cpp:444 +#: src/widgets/AButton.cpp:448 msgid " (disabled)" msgstr " (вимкнено)" -#: src/widgets/AButton.cpp:623 src/widgets/Meter.cpp:2118 +#: src/widgets/AButton.cpp:623 src/widgets/Meter.cpp:2148 msgid "Press" msgstr "Натисніть" @@ -13085,13 +13356,13 @@ msgstr "Кнопка" #. i18n-hint: One-letter abbreviation for Left, in the Pan slider #. i18n-hint: One-letter abbreviation for Left, in VU Meter -#: src/widgets/ASlider.cpp:802 src/widgets/Meter.cpp:1194 +#: src/widgets/ASlider.cpp:802 src/widgets/Meter.cpp:1223 msgid "L" msgstr "Л" #. i18n-hint: One-letter abbreviation for Right, in the Pan slider #. i18n-hint: One-letter abbreviation for Right, in VU Meter -#: src/widgets/ASlider.cpp:805 src/widgets/Meter.cpp:1196 +#: src/widgets/ASlider.cpp:805 src/widgets/Meter.cpp:1225 msgid "R" msgstr "П" @@ -13111,7 +13382,7 @@ msgstr "Праворуч" msgid "+" msgstr "+" -#: src/widgets/FileHistory.cpp:174 +#: src/widgets/FileHistory.cpp:175 msgid "&Clear" msgstr "Сп&орожнити" @@ -13119,83 +13390,83 @@ msgstr "Сп&орожнити" #. It's used to drag a track around (when in multi-tool mode) rather #. than requiring that you use the drag tool. It's shown as a series #. of horizontal bumps -#: src/widgets/Grabber.cpp:67 src/widgets/Grabber.cpp:68 +#: src/widgets/Grabber.cpp:68 src/widgets/Grabber.cpp:69 msgid "Grabber" msgstr "Захоплення" -#: src/widgets/Grid.cpp:759 +#: src/widgets/Grid.cpp:761 msgid "Empty" msgstr "Порожній" -#: src/widgets/HelpSystem.cpp:127 +#: src/widgets/HelpSystem.cpp:128 msgid "<" msgstr "<" -#: src/widgets/HelpSystem.cpp:128 +#: src/widgets/HelpSystem.cpp:129 msgid ">" msgstr ">" -#: src/widgets/HelpSystem.cpp:132 +#: src/widgets/HelpSystem.cpp:133 msgid "Forwards" msgstr "Вперед" -#: src/widgets/HelpSystem.cpp:133 +#: src/widgets/HelpSystem.cpp:134 msgid "Backwards" msgstr "Назад" -#: src/widgets/HelpSystem.cpp:151 +#: src/widgets/HelpSystem.cpp:152 msgid "Close" msgstr "Закрити" -#: src/widgets/HelpSystem.cpp:233 +#: src/widgets/HelpSystem.cpp:234 msgid "Help on the Internet" msgstr "Довідка у інтернеті" -#: src/widgets/KeyView.cpp:556 +#: src/widgets/KeyView.cpp:555 msgid "Menu" msgstr "Меню" -#: src/widgets/Meter.cpp:595 +#: src/widgets/Meter.cpp:610 msgid "Click to Start Monitoring" msgstr "Клацніть, щоб почати спостереження" -#: src/widgets/Meter.cpp:596 +#: src/widgets/Meter.cpp:611 msgid "Click for Monitoring" msgstr "Клацніть для спостереження" -#: src/widgets/Meter.cpp:597 +#: src/widgets/Meter.cpp:612 msgid "Click to Start" msgstr "Клацніть, щоб розпочати" -#: src/widgets/Meter.cpp:598 +#: src/widgets/Meter.cpp:613 msgid "Click" msgstr "Клацання" -#: src/widgets/Meter.cpp:692 src/widgets/Meter.cpp:1874 +#: src/widgets/Meter.cpp:721 src/widgets/Meter.cpp:1903 msgid "Stop Monitoring" msgstr "Припинити спостереження" -#: src/widgets/Meter.cpp:694 src/widgets/Meter.cpp:1876 +#: src/widgets/Meter.cpp:723 src/widgets/Meter.cpp:1905 msgid "Start Monitoring" msgstr "Почати спостереження" -#: src/widgets/Meter.cpp:698 src/widgets/Meter.cpp:1880 +#: src/widgets/Meter.cpp:727 src/widgets/Meter.cpp:1909 msgid "Preferences..." msgstr "Параметри…" -#: src/widgets/Meter.cpp:1925 +#: src/widgets/Meter.cpp:1954 msgid "Recording Meter Preferences" msgstr "Параметри індикатора запису" -#: src/widgets/Meter.cpp:1925 +#: src/widgets/Meter.cpp:1954 msgid "Playback Meter Preferences" msgstr "Параметри індикатора відтворення" -#: src/widgets/Meter.cpp:1935 +#: src/widgets/Meter.cpp:1964 msgid "Refresh Rate" msgstr "Частота оновлення" -#: src/widgets/Meter.cpp:1937 +#: src/widgets/Meter.cpp:1966 msgid "" "Higher refresh rates make the meter show more frequent\n" "changes. A rate of 30 per second or less should prevent\n" @@ -13205,65 +13476,65 @@ msgstr "" "індикаторі рівня. Значення частоти 30 за секунду або менше має запобігти\n" "розривам у відтворенні звуку на повільних комп’ютерах." -#: src/widgets/Meter.cpp:1940 +#: src/widgets/Meter.cpp:1969 msgid "Meter refresh rate per second [1-100]: " msgstr "Частота оновлення індикатора (разів за секунду) [1-100]: " -#: src/widgets/Meter.cpp:1943 +#: src/widgets/Meter.cpp:1972 msgid "Meter refresh rate per second [1-100]" msgstr "Частота оновлення індикатора (разів за секунду) [1-100]" -#: src/widgets/Meter.cpp:1954 +#: src/widgets/Meter.cpp:1984 msgid "Meter Style" msgstr "Стиль" -#: src/widgets/Meter.cpp:1958 src/widgets/Meter.cpp:1959 +#: src/widgets/Meter.cpp:1988 src/widgets/Meter.cpp:1989 msgid "Gradient" msgstr "Градієнт" -#: src/widgets/Meter.cpp:1962 src/widgets/Meter.cpp:1963 +#: src/widgets/Meter.cpp:1992 src/widgets/Meter.cpp:1993 msgid "RMS" msgstr "СКВ" -#: src/widgets/Meter.cpp:1970 +#: src/widgets/Meter.cpp:2000 msgid "Meter Type" msgstr "Тип" -#: src/widgets/Meter.cpp:1986 +#: src/widgets/Meter.cpp:2016 msgid "Orientation" msgstr "Орієнтація" -#: src/widgets/Meter.cpp:1990 src/widgets/Meter.cpp:1991 +#: src/widgets/Meter.cpp:2020 src/widgets/Meter.cpp:2021 msgid "Automatic" msgstr "Автоматично" -#: src/widgets/Meter.cpp:1994 src/widgets/Meter.cpp:1995 +#: src/widgets/Meter.cpp:2024 src/widgets/Meter.cpp:2025 msgid "Horizontal" msgstr "Горизонтальна" -#: src/widgets/Meter.cpp:1998 src/widgets/Meter.cpp:1999 +#: src/widgets/Meter.cpp:2028 src/widgets/Meter.cpp:2029 msgid "Vertical" msgstr "Вертикальна" -#: src/widgets/Meter.cpp:2201 +#: src/widgets/Meter.cpp:2231 msgid " Monitoring " msgstr " Спостереження " -#: src/widgets/Meter.cpp:2205 +#: src/widgets/Meter.cpp:2235 msgid " Active " msgstr " Активний " -#: src/widgets/Meter.cpp:2219 +#: src/widgets/Meter.cpp:2249 #, c-format msgid " Peak %2.f dB" msgstr " Пік — %2.f дБ" -#: src/widgets/Meter.cpp:2223 +#: src/widgets/Meter.cpp:2253 #, c-format msgid " Peak %.2f " msgstr " Пік — %.2f " -#: src/widgets/Meter.cpp:2228 +#: src/widgets/Meter.cpp:2258 msgid " Clipped " msgstr " Обрізано " @@ -13558,71 +13829,127 @@ msgstr "мілісекунд" msgid "thousandths of " msgstr "тисячі " -#: src/widgets/ProgressDialog.cpp:1132 +#: src/widgets/ProgressDialog.cpp:1144 msgid "Elapsed Time:" msgstr "Час, що минув:" -#: src/widgets/ProgressDialog.cpp:1154 +#: src/widgets/ProgressDialog.cpp:1165 msgid "Remaining Time:" msgstr "Час, що залишився:" -#: src/widgets/ProgressDialog.cpp:1187 +#: src/widgets/ProgressDialog.cpp:1206 msgid "Cancel" msgstr "Скасувати" -#: src/widgets/Ruler.cpp:1685 +#: src/widgets/ProgressDialog.cpp:1505 +msgid "Are you sure you wish to cancel?" +msgstr "Ви справді бажаєте скасувати дію?" + +#: src/widgets/ProgressDialog.cpp:1505 +msgid "Confirm Cancel" +msgstr "Підтвердження скасовування" + +#: src/widgets/ProgressDialog.cpp:1514 +msgid "Are you sure you wish to stop?" +msgstr "Ви справді бажаєте припинити?" + +#: src/widgets/ProgressDialog.cpp:1514 +msgid "Confirm Stop" +msgstr "Підтвердження припинення" + +#: src/widgets/ProgressDialog.cpp:1524 +msgid "Are you sure you wish to close?" +msgstr "Ви справді бажаєте закрити проект?" + +#: src/widgets/ProgressDialog.cpp:1524 +msgid "Confirm Close" +msgstr "Підтвердження закриття" + +#: src/widgets/Ruler.cpp:1959 msgid "Timeline" msgstr "Монтажний стіл" -#: src/widgets/Ruler.cpp:1793 +#: src/widgets/Ruler.cpp:2117 +msgid "Click or drag to begin seeking" +msgstr "Клацання або перетягування — початок позиціювання" + +#: src/widgets/Ruler.cpp:2119 +msgid "Click or drag to begin scrubbing" +msgstr "Клацання або перетягування — початок прокручування" + +#: src/widgets/Ruler.cpp:2121 +msgid "Click to scrub, drag to seek" +msgstr "Клацання — прокручування, перетягування — позиціювання" + +#: src/widgets/Ruler.cpp:2133 +msgid "Move to seek" +msgstr "Пересування — позиціювання" + +#: src/widgets/Ruler.cpp:2135 +msgid "Move to scrub" +msgstr "Пересування — прокручування" + +#: src/widgets/Ruler.cpp:2137 +msgid "Move to scrub, drag to seek" +msgstr "Пересування — прокручування, перетягування — позиціювання" + +#: src/widgets/Ruler.cpp:2155 msgid "Timeline actions disabled during recording" msgstr "Дії з монтажним столом вимкнено на час запису" -#: src/widgets/Ruler.cpp:1796 +#: src/widgets/Ruler.cpp:2161 msgid "Quick-Play disabled" msgstr "Швидке відтворення вимкнено" -#: src/widgets/Ruler.cpp:1799 +#: src/widgets/Ruler.cpp:2164 msgid "Quick-Play enabled" msgstr "Швидке відтворення увімкнено" -#: src/widgets/Ruler.cpp:2244 +#: src/widgets/Ruler.cpp:2816 +msgid "Pinned play/record Head" +msgstr "Пришпилений початок запису/відтворення" + +#: src/widgets/Ruler.cpp:2817 +msgid "Unpinned play/record Head" +msgstr "Відшпилений початок запису/відтворення" + +#: src/widgets/Ruler.cpp:2857 msgid "Disable Quick-Play" msgstr "Вимкнути швидке відтворення" -#: src/widgets/Ruler.cpp:2246 +#: src/widgets/Ruler.cpp:2859 msgid "Enable Quick-Play" msgstr "Увімкнути швидке відтворення" -#: src/widgets/Ruler.cpp:2250 +#: src/widgets/Ruler.cpp:2863 msgid "Disable dragging selection" msgstr "Вимкнути перетягувальне позначення" -#: src/widgets/Ruler.cpp:2252 +#: src/widgets/Ruler.cpp:2865 msgid "Enable dragging selection" msgstr "Увімкнути перетягувальне позначення" -#: src/widgets/Ruler.cpp:2257 +#: src/widgets/Ruler.cpp:2870 msgid "Disable Timeline Tooltips" msgstr "Вимкнути підказки монтажного столу" -#: src/widgets/Ruler.cpp:2259 +#: src/widgets/Ruler.cpp:2872 msgid "Enable Timeline Tooltips" msgstr "Увімкнути підказки монтажного столу" -#: src/widgets/Ruler.cpp:2263 +#: src/widgets/Ruler.cpp:2876 msgid "Do not scroll while playing" msgstr "Не гортати під час відтворення" -#: src/widgets/Ruler.cpp:2265 +#: src/widgets/Ruler.cpp:2878 msgid "Update display while playing" msgstr "Оновлювати відображення під час відтворення" -#: src/widgets/Ruler.cpp:2269 +#: src/widgets/Ruler.cpp:2882 msgid "Lock Play Region" msgstr "Заблокувати область відтворення" -#: src/widgets/Ruler.cpp:2271 +#: src/widgets/Ruler.cpp:2884 msgid "Unlock Play Region" msgstr "Розблокувати область відтворення" @@ -13638,47 +13965,47 @@ msgstr "Не число" msgid "-Infinity" msgstr "-Нескінченність" -#: src/widgets/valnum.cpp:92 +#: src/widgets/valnum.cpp:94 msgid "Validation error" msgstr "Помилка під час перевірки" -#: src/widgets/valnum.cpp:360 src/widgets/valnum.cpp:482 +#: src/widgets/valnum.cpp:362 src/widgets/valnum.cpp:484 msgid "Empty value" msgstr "Порожнє значення" -#: src/widgets/valnum.cpp:369 +#: src/widgets/valnum.cpp:371 msgid "Malformed number" msgstr "Помилкове форматування числа" -#: src/widgets/valnum.cpp:374 +#: src/widgets/valnum.cpp:376 #, c-format msgid "Not in range %d to %d" msgstr "Поза діапазоном від %d до %d" -#: src/widgets/valnum.cpp:490 +#: src/widgets/valnum.cpp:492 msgid "Value overflow" msgstr "Переповнення значення" -#: src/widgets/valnum.cpp:495 +#: src/widgets/valnum.cpp:497 msgid "Too many decimal digits" msgstr "Забагато десяткових цифр" -#: src/widgets/valnum.cpp:508 +#: src/widgets/valnum.cpp:510 #, c-format msgid "Value not in range: %s to %s" msgstr "Значення поза діапазоном від %s до %s" -#: src/widgets/valnum.cpp:513 +#: src/widgets/valnum.cpp:515 #, c-format msgid "Value must not be less than %s" msgstr "Значення має бути не меншим за %s" -#: src/widgets/valnum.cpp:517 +#: src/widgets/valnum.cpp:519 #, c-format msgid "Value must not be greather than %s" msgstr "Значення має бути не більшим за %s" -#: src/widgets/valnum.cpp:534 +#: src/widgets/valnum.cpp:536 msgid "e" msgstr "e" @@ -13706,6 +14033,124 @@ msgstr "Помилка під час закриття файла" msgid "Error Writing to File" msgstr "Помилка під час спроби запису файла" +#~ msgid "co-founder" +#~ msgstr "співзасновник" + +#~ msgid "OK... Audacious!" +#~ msgstr "Гаразд… Круто!" + +#~ msgid "Audacity Developers" +#~ msgstr "Розробники Audacity" + +#~ msgid "Audacity Support Team" +#~ msgstr "Команда підтримки Audacity" + +#~ msgid "Emeritus Developers" +#~ msgstr "Заслужені розробники" + +#~ msgid "Audacity is based on code from the following projects:" +#~ msgstr "Audacity використовує код наступних проектів:" + +#~ msgid "

How to Get Help

" +#~ msgstr "

Як дістати довідку


" + +#~ msgid "Welcome to Audacity " +#~ msgstr "Ласкаво просимо до Audacity " + +#~ msgid "" +#~ " For even quicker answers, all the online resources above are " +#~ "searchable." +#~ msgstr "" +#~ " Якщо вам потрібна коротка відповідь, ви можете скористатися пошуком на наведених вище ресурсах інтернету." + +#~ msgid "Warning - Length in Writing Sequence" +#~ msgstr "Попередження: тривалість у послідовності запису" + +#~ msgid "Pre&view" +#~ msgstr "&Прослухати" + +#~ msgid "Zoom In\tLeft-Click/Left-Drag" +#~ msgstr "Збільшити\tКлацання лівою/Перетягування лівою кнопкою" + +#~ msgid "Zoom Out\tShift-Left-Click" +#~ msgstr "Зменшити\tShift і клацання лівою" + +#~ msgid "Zoom to Fit\tShift-Right-Click" +#~ msgstr "Підібрати за розміром\tShift і клацання правою" + +#~ msgid "" +#~ "Increases or decreases the lower frequencies and higher frequencies of " +#~ "your audio independently" +#~ msgstr "" +#~ "Збільшує або зменшує інтенсивність нижніх або верхніх частот ваших " +#~ "звукових даних незалежно" + +#~ msgid "&Level (dB):" +#~ msgstr "&Рівень (дБ):" + +#~ msgid "&Enable level control" +#~ msgstr "&Увімкнути керування рівнем" + +#~ msgid " No change to apply." +#~ msgstr " Немає змін для внесення." + +#~ msgid ": Maximum 0 dB." +#~ msgstr ": максимум — 0 дБ." + +#~ msgid "No wave tracks exist." +#~ msgstr "Немає доріжок хвиль." + +#~ msgid "Please select something to be measured." +#~ msgstr "Будь ласка, позначте щось для вимірювання." + +#~ msgid "" +#~ "Generates four different types of tone waveform while allowing starting " +#~ "and ending amplitude and frequency" +#~ msgstr "" +#~ "Створює чотири різних типи форми хвилі тону, надаючи змогу визначити " +#~ "початкові і кінцеві амплітуди і частоти" + +#~ msgid "Generates four different types of tone waveform" +#~ msgstr "Створює чотири різних типи форми хвилі тону" + +#~ msgid "Host" +#~ msgstr "Вузол" + +#~ msgid "-Left-Click" +#~ msgstr "-клацання лівою" + +#~ msgid "-Left-Double-Click" +#~ msgstr "-подвійне клацання лівою" + +#~ msgid "Scroll-scrub" +#~ msgstr "Гортати-витерти" + +#~ msgid ") / Loop Play (" +#~ msgstr ") / Циклічне відтворення (" + +#~ msgid ") / Append Record (" +#~ msgstr ") / Дописування (" + +#~ msgid "" +#~ "Click and drag to select audio, Command-Click to scrub, Command-Double-" +#~ "Click to scroll-scrub, Command-drag to seek" +#~ msgstr "" +#~ "Натисніть кнопку миші і перетягніть вказівник, щоб позначити звукові " +#~ "дані. Command з клацанням витирає, Command з подвійним клацанням витирає " +#~ "з гортанням, Command з перетягуванням — позиціює" + +#~ msgid "" +#~ "Click and drag to select audio, Ctrl-Click to scrub, Ctrl-Double-Click to " +#~ "scroll-scrub, Ctrl-drag to seek" +#~ msgstr "" +#~ "Натисніть кнопку миші і перетягніть вказівник, щоб позначити звукові " +#~ "дані. Ctrl з клацанням витирає, Ctrl з подвійним клацанням витирає з " +#~ "гортанням, Ctrl з перетягуванням — позиціює" + +#~ msgid "Multi-Tool Mode" +#~ msgstr "Універсальний інструмент" + #~ msgid "Edit Me&tadata..." #~ msgstr "Редагувати м&етадані…" @@ -14530,9 +14975,6 @@ msgstr "Помилка під час спроби запису файла" #~ msgid "Note velocity" #~ msgstr "Нотна швидкість" -#~ msgid "Note key" -#~ msgstr "Нотний ключ" - #~ msgid "Extracting features: %s" #~ msgstr "Отримання параметрів: %s" From 5421cf487aa56b80911f7f83cda1ff68ab9c3d1e Mon Sep 17 00:00:00 2001 From: Taiki Kim Date: Mon, 20 Jun 2016 15:49:50 -0700 Subject: [PATCH 03/16] Correctly load parameters for Change Pitch effect Partial fix for Bug 73. Partial fix for Bug 1207. --- src/effects/ChangePitch.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/effects/ChangePitch.cpp b/src/effects/ChangePitch.cpp index 669b4273a..31bd496be 100644 --- a/src/effects/ChangePitch.cpp +++ b/src/effects/ChangePitch.cpp @@ -138,6 +138,7 @@ bool EffectChangePitch::SetAutomationParameters(EffectAutomationParameters & par ReadAndVerifyDouble(Percentage); m_dPercentChange = Percentage; + Calc_SemitonesChange_fromPercentChange(); return true; } From 6ac68db5be726d97c731c968d7e3e20ca06d8563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Marinier?= Date: Sat, 25 Jun 2016 16:23:56 +0200 Subject: [PATCH 04/16] Code cleanup: removed the old real FFT code not used since at least 2009. I confirmed that the currently used real FFT code in RealFFTf.cpp is faster than the old one with a quick benchmark that calls PowerSpectrum() on 4-minute audio file, with different sizes of computation windows: Window_size: 256 method: new FFT time_s: 0.393 Window_size: 256 method: old FFT time_s: 1.065 Window_size: 1024 method: new FFT time_s: 0.38 Window_size: 1024 method: old FFT time_s: 0.958 Window_size: 4096 method: new FFT time_s: 0.413 Window_size: 4096 method: old FFT time_s: 1.084 Window_size: 16384 method: new FFT time_s: 0.518 Window_size: 16384 method: old FFT time_s: 1.338 Window_size: 65536 method: new FFT time_s: 0.655 Window_size: 65536 method: old FFT time_s: 1.524 Window_size: 262144 method: new FFT time_s: 0.735 Window_size: 262144 method: old FFT time_s: 1.873 --- src/Experimental.h | 4 - src/FFT.cpp | 154 ++---------------------------- src/FFT.h | 4 - src/FreqWindow.cpp | 17 ---- src/Spectrum.cpp | 9 -- src/WaveClip.cpp | 13 +-- src/WaveClip.h | 2 - src/effects/Equalization.cpp | 8 -- src/prefs/SpectrogramSettings.cpp | 4 - src/prefs/SpectrogramSettings.h | 3 - 10 files changed, 8 insertions(+), 210 deletions(-) diff --git a/src/Experimental.h b/src/Experimental.h index 3a2f81e22..1a3bcd192 100644 --- a/src/Experimental.h +++ b/src/Experimental.h @@ -107,10 +107,6 @@ // Paul Licameli (PRL) 29 Nov 2014 // #define EXPERIMENTAL_IMPROVED_SEEKING -// Philip Van Baren 01 July 2009 -// Replace RealFFT() and PowerSpectrum function to use (faster) RealFFTf function -#define EXPERIMENTAL_USE_REALFFTF - // RBD, 1 Sep 2008 // Enables MIDI Output of NoteTrack (MIDI) data during playback // USE_MIDI must be defined in order for EXPERIMENTAL_MIDI_OUT to work diff --git a/src/FFT.cpp b/src/FFT.cpp index 62408eed4..9ab73bc28 100644 --- a/src/FFT.cpp +++ b/src/FFT.cpp @@ -46,6 +46,7 @@ #include #include +#include "RealFFTf.h" #include "Experimental.h" static int **gFFTBitTable = NULL; @@ -110,10 +111,6 @@ void InitFFT() } } -#ifdef EXPERIMENTAL_USE_REALFFTF -#include "RealFFTf.h" -#endif - void DeinitFFT() { if (gFFTBitTable) { @@ -122,10 +119,8 @@ void DeinitFFT() } delete[] gFFTBitTable; } -#ifdef EXPERIMENTAL_USE_REALFFTF // Deallocate any unused RealFFTf tables CleanupFFT(); -#endif } inline int FastReverseBits(int i, int NumBits) @@ -238,22 +233,11 @@ void FFT(int NumSamples, /* * Real Fast Fourier Transform * - * This function was based on the code in Numerical Recipes in C. - * In Num. Rec., the inner loop is based on a single 1-based array - * of interleaved real and imaginary numbers. Because we have two - * separate zero-based arrays, our indices are quite different. - * Here is the correspondence between Num. Rec. indices and our indices: - * - * i1 <-> real[i] - * i2 <-> imag[i] - * i3 <-> real[n/2-i] - * i4 <-> imag[n/2-i] + * This is merely a wrapper of RealFFTf() from RealFFTf.h. */ void RealFFT(int NumSamples, float *RealIn, float *RealOut, float *ImagOut) { -#ifdef EXPERIMENTAL_USE_REALFFTF - // Remap to RealFFTf() function int i; HFFT hFFT = GetFFT(NumSamples); float *pFFT = new float[NumSamples]; @@ -280,62 +264,8 @@ void RealFFT(int NumSamples, float *RealIn, float *RealOut, float *ImagOut) } delete [] pFFT; ReleaseFFT(hFFT); - -#else - - int Half = NumSamples / 2; - int i; - - float theta = M_PI / Half; - - float *tmpReal = new float[Half]; - float *tmpImag = new float[Half]; - - for (i = 0; i < Half; i++) { - tmpReal[i] = RealIn[2 * i]; - tmpImag[i] = RealIn[2 * i + 1]; - } - - FFT(Half, 0, tmpReal, tmpImag, RealOut, ImagOut); - - float wtemp = float (sin(0.5 * theta)); - - float wpr = -2.0 * wtemp * wtemp; - float wpi = -1.0 * float (sin(theta)); - float wr = 1.0 + wpr; - float wi = wpi; - - int i3; - - float h1r, h1i, h2r, h2i; - - for (i = 1; i < Half / 2; i++) { - - i3 = Half - i; - - h1r = 0.5 * (RealOut[i] + RealOut[i3]); - h1i = 0.5 * (ImagOut[i] - ImagOut[i3]); - h2r = 0.5 * (ImagOut[i] + ImagOut[i3]); - h2i = -0.5 * (RealOut[i] - RealOut[i3]); - - RealOut[i] = h1r + wr * h2r - wi * h2i; - ImagOut[i] = h1i + wr * h2i + wi * h2r; - RealOut[i3] = h1r - wr * h2r + wi * h2i; - ImagOut[i3] = -h1i + wr * h2i + wi * h2r; - - wr = (wtemp = wr) * wpr - wi * wpi + wr; - wi = wi * wpr + wtemp * wpi + wi; - } - - RealOut[0] = (h1r = RealOut[0]) + ImagOut[0]; - ImagOut[0] = h1r - ImagOut[0]; - - delete[]tmpReal; - delete[]tmpImag; -#endif //EXPERIMENTAL_USE_REALFFTF } -#ifdef EXPERIMENTAL_USE_REALFFTF /* * InverseRealFFT * @@ -344,10 +274,11 @@ void RealFFT(int NumSamples, float *RealIn, float *RealOut, float *ImagOut) * and as a result the output is purely real. * Only the first half of RealIn and ImagIn are used due to this * symmetry assumption. + * + * This is merely a wrapper of InverseRealFFTf() from RealFFTf.h. */ void InverseRealFFT(int NumSamples, float *RealIn, float *ImagIn, float *RealOut) { - // Remap to RealFFTf() function int i; HFFT hFFT = GetFFT(NumSamples); float *pFFT = new float[NumSamples]; @@ -373,15 +304,13 @@ void InverseRealFFT(int NumSamples, float *RealIn, float *ImagIn, float *RealOut delete [] pFFT; ReleaseFFT(hFFT); } -#endif // EXPERIMENTAL_USE_REALFFTF /* * PowerSpectrum * - * This function computes the same as RealFFT, above, but - * adds the squares of the real and imaginary part of each - * coefficient, extracting the power and throwing away the - * phase. + * This function uses RealFFTf() from RealFFTf.h to perform the real + * FFT computation, and then squares the real and imaginary part of + * each coefficient, extracting the power and throwing away the phase. * * For speed, it does not call RealFFT, but duplicates some * of its code. @@ -389,8 +318,6 @@ void InverseRealFFT(int NumSamples, float *RealIn, float *ImagIn, float *RealOut void PowerSpectrum(int NumSamples, float *In, float *Out) { -#ifdef EXPERIMENTAL_USE_REALFFTF - // Remap to RealFFTf() function int i; HFFT hFFT = GetFFT(NumSamples); float *pFFT = new float[NumSamples]; @@ -411,73 +338,6 @@ void PowerSpectrum(int NumSamples, float *In, float *Out) Out[i] = pFFT[1]*pFFT[1]; delete [] pFFT; ReleaseFFT(hFFT); - -#else // EXPERIMENTAL_USE_REALFFTF - - int Half = NumSamples / 2; - int i; - - float theta = M_PI / Half; - - float *tmpReal = new float[Half]; - float *tmpImag = new float[Half]; - float *RealOut = new float[Half]; - float *ImagOut = new float[Half]; - - for (i = 0; i < Half; i++) { - tmpReal[i] = In[2 * i]; - tmpImag[i] = In[2 * i + 1]; - } - - FFT(Half, 0, tmpReal, tmpImag, RealOut, ImagOut); - - float wtemp = float (sin(0.5 * theta)); - - float wpr = -2.0 * wtemp * wtemp; - float wpi = -1.0 * float (sin(theta)); - float wr = 1.0 + wpr; - float wi = wpi; - - int i3; - - float h1r, h1i, h2r, h2i, rt, it; - - for (i = 1; i < Half / 2; i++) { - - i3 = Half - i; - - h1r = 0.5 * (RealOut[i] + RealOut[i3]); - h1i = 0.5 * (ImagOut[i] - ImagOut[i3]); - h2r = 0.5 * (ImagOut[i] + ImagOut[i3]); - h2i = -0.5 * (RealOut[i] - RealOut[i3]); - - rt = h1r + wr * h2r - wi * h2i; - it = h1i + wr * h2i + wi * h2r; - - Out[i] = rt * rt + it * it; - - rt = h1r - wr * h2r + wi * h2i; - it = -h1i + wr * h2i + wi * h2r; - - Out[i3] = rt * rt + it * it; - - wr = (wtemp = wr) * wpr - wi * wpi + wr; - wi = wi * wpr + wtemp * wpi + wi; - } - - rt = (h1r = RealOut[0]) + ImagOut[0]; - it = h1r - ImagOut[0]; - Out[0] = rt * rt + it * it; - - rt = RealOut[Half / 2]; - it = ImagOut[Half / 2]; - Out[Half / 2] = rt * rt + it * it; - - delete[]tmpReal; - delete[]tmpImag; - delete[]RealOut; - delete[]ImagOut; -#endif // EXPERIMENTAL_USE_REALFFTF } /* diff --git a/src/FFT.h b/src/FFT.h index 10dad8053..6bce57abe 100644 --- a/src/FFT.h +++ b/src/FFT.h @@ -77,13 +77,9 @@ void RealFFT(int NumSamples, * Computes an Inverse FFT when the input data is conjugate symmetric * so the output is purely real. NumSamples must be a power of * two. - * Requires: EXPERIMENTAL_USE_REALFFTF */ -#include "Experimental.h" -#ifdef EXPERIMENTAL_USE_REALFFTF void InverseRealFFT(int NumSamples, float *RealIn, float *ImagIn, float *RealOut); -#endif /* * Computes a FFT of complex input and returns complex output. diff --git a/src/FreqWindow.cpp b/src/FreqWindow.cpp index 02a894eec..91322d94c 100644 --- a/src/FreqWindow.cpp +++ b/src/FreqWindow.cpp @@ -1255,11 +1255,7 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc, case EnhancedAutocorrelation: // Take FFT -#ifdef EXPERIMENTAL_USE_REALFFTF RealFFT(mWindowSize, in, out, out2); -#else - FFT(mWindowSize, false, in, NULL, out, out2); -#endif // Compute power for (int i = 0; i < mWindowSize; i++) in[i] = (out[i] * out[i]) + (out2[i] * out2[i]); @@ -1277,11 +1273,7 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc, in[i] = pow(in[i], 1.0f / 3.0f); } // Take FFT -#ifdef EXPERIMENTAL_USE_REALFFTF RealFFT(mWindowSize, in, out, out2); -#else - FFT(mWindowSize, false, in, NULL, out, out2); -#endif // Take real part of result for (int i = 0; i < half; i++) @@ -1289,12 +1281,7 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc, break; case Cepstrum: -#ifdef EXPERIMENTAL_USE_REALFFTF RealFFT(mWindowSize, in, out, out2); -#else - FFT(mWindowSize, false, in, NULL, out, out2); -#endif - // Compute log power // Set a sane lower limit assuming maximum time amplitude of 1.0 { @@ -1309,11 +1296,7 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc, in[i] = log(power); } // Take IFFT -#ifdef EXPERIMENTAL_USE_REALFFTF InverseRealFFT(mWindowSize, in, NULL, out); -#else - FFT(mWindowSize, true, in, NULL, out, out2); -#endif // Take real part of result for (int i = 0; i < half; i++) diff --git a/src/Spectrum.cpp b/src/Spectrum.cpp index 5f043a8e6..d113cd5ee 100644 --- a/src/Spectrum.cpp +++ b/src/Spectrum.cpp @@ -52,11 +52,7 @@ bool ComputeSpectrum(const float * data, int width, if (autocorrelation) { // Take FFT -#ifdef EXPERIMENTAL_USE_REALFFTF RealFFT(windowSize, in, out, out2); -#else - FFT(windowSize, false, in, NULL, out, out2); -#endif // Compute power for (i = 0; i < windowSize; i++) in[i] = (out[i] * out[i]) + (out2[i] * out2[i]); @@ -68,12 +64,7 @@ bool ComputeSpectrum(const float * data, int width, in[i] = powf(in[i], 1.0f / 3.0f); // Take FFT -#ifdef EXPERIMENTAL_USE_REALFFTF RealFFT(windowSize, in, out, out2); -#else - FFT(windowSize, false, in, NULL, out, out2); -#endif - } else PowerSpectrum(windowSize, in, out); diff --git a/src/WaveClip.cpp b/src/WaveClip.cpp index 40e38ccf8..14282d946 100644 --- a/src/WaveClip.cpp +++ b/src/WaveClip.cpp @@ -34,6 +34,7 @@ #include "Resample.h" #include "Project.h" #include "WaveTrack.h" +#include "FFT.h" #include "prefs/SpectrogramSettings.h" @@ -259,8 +260,6 @@ protected: }; -#ifdef EXPERIMENTAL_USE_REALFFTF -#include "FFT.h" static void ComputeSpectrumUsingRealFFTf (float *buffer, HFFT hFFT, const float *window, int len, float *out) { @@ -288,7 +287,6 @@ static void ComputeSpectrumUsingRealFFTf out[i] = 10.0*log10f(power); } } -#endif // EXPERIMENTAL_USE_REALFFTF WaveClip::WaveClip(DirManager *projDirManager, sampleFormat format, int rate) { @@ -852,7 +850,6 @@ bool SpecCache::CalculateOneSpectrum if (copy) useBuffer = scratch; -#ifdef EXPERIMENTAL_USE_REALFFTF if (autocorrelation) { float *const results = &freq[half * xx]; // This function does not mutate useBuffer @@ -956,12 +953,6 @@ bool SpecCache::CalculateOneSpectrum results[ii] += gainFactors[ii]; } } -#else // EXPERIMENTAL_USE_REALFFTF - // This function does not mutate scratch - ComputeSpectrum(scratch, windowSize, windowSize, - rate, results, - autocorrelation, settings.windowType); -#endif // EXPERIMENTAL_USE_REALFFTF } return result; } @@ -972,9 +963,7 @@ void SpecCache::Populate sampleCount numSamples, double offset, double rate, double pixelsPerSecond) { -#ifdef EXPERIMENTAL_USE_REALFFTF settings.CacheWindows(); -#endif const int &frequencyGain = settings.frequencyGain; const int &windowSize = settings.windowSize; diff --git a/src/WaveClip.h b/src/WaveClip.h index a208a4d14..757ec059d 100644 --- a/src/WaveClip.h +++ b/src/WaveClip.h @@ -20,9 +20,7 @@ #include "xml/XMLTagHandler.h" #include "Experimental.h" -#ifdef EXPERIMENTAL_USE_REALFFTF #include "RealFFTf.h" -#endif #include #include diff --git a/src/effects/Equalization.cpp b/src/effects/Equalization.cpp index cc85cceef..c1ce5f7a8 100644 --- a/src/effects/Equalization.cpp +++ b/src/effects/Equalization.cpp @@ -1296,11 +1296,7 @@ bool EffectEqualization::CalcFilter() //transfer to time domain to do the padding and windowing float *outr = new float[mWindowSize]; float *outi = new float[mWindowSize]; -#ifdef EXPERIMENTAL_USE_REALFFTF InverseRealFFT(mWindowSize, mFilterFuncR, NULL, outr); // To time domain -#else - FFT(mWindowSize,true,mFilterFuncR,NULL,outr,outi); //To time domain -#endif for(i=0;i<=(mM-1)/2;i++) { //Windowing - could give a choice, fixed for now - MJS @@ -2944,11 +2940,7 @@ void EqualizationPanel::Recalc() mOuti = new float[mEffect->mWindowSize]; mEffect->CalcFilter(); //to calculate the actual response -#ifdef EXPERIMENTAL_USE_REALFFTF InverseRealFFT(mEffect->mWindowSize, mEffect->mFilterFuncR, mEffect->mFilterFuncI, mOutr); -#else - FFT(mWindowSize,true,mFilterFuncR,mFilterFuncI,mOutr,mOuti); //work out FIR response - note mOuti will be all zeros -#endif // EXPERIMENTAL_USE_REALFFTF } void EqualizationPanel::OnSize(wxSizeEvent & WXUNUSED(event)) diff --git a/src/prefs/SpectrogramSettings.cpp b/src/prefs/SpectrogramSettings.cpp index 8f80a290b..090e3893e 100644 --- a/src/prefs/SpectrogramSettings.cpp +++ b/src/prefs/SpectrogramSettings.cpp @@ -348,7 +348,6 @@ SpectrogramSettings::~SpectrogramSettings() void SpectrogramSettings::DestroyWindows() { -#ifdef EXPERIMENTAL_USE_REALFFTF if (hFFT != NULL) { EndFFT(hFFT); hFFT = NULL; @@ -365,7 +364,6 @@ void SpectrogramSettings::DestroyWindows() delete[] tWindow; tWindow = NULL; } -#endif } @@ -428,7 +426,6 @@ namespace void SpectrogramSettings::CacheWindows() const { -#ifdef EXPERIMENTAL_USE_REALFFTF if (hFFT == NULL || window == NULL) { double scale; @@ -444,7 +441,6 @@ void SpectrogramSettings::CacheWindows() const RecreateWindow(dWindow, DWINDOW, fftLen, padding, windowType, windowSize, scale); } } -#endif // EXPERIMENTAL_USE_REALFFTF } void SpectrogramSettings::ConvertToEnumeratedWindowSizes() diff --git a/src/prefs/SpectrogramSettings.h b/src/prefs/SpectrogramSettings.h index b51e8a505..7fcaade12 100644 --- a/src/prefs/SpectrogramSettings.h +++ b/src/prefs/SpectrogramSettings.h @@ -137,7 +137,6 @@ public: // Following fields are derived from preferences. -#ifdef EXPERIMENTAL_USE_REALFFTF // Variables used for computing the spectrum mutable FFTParam *hFFT{}; mutable float *window{}; @@ -145,7 +144,5 @@ public: // Two other windows for computing reassigned spectrogram mutable float *tWindow{}; // Window times time parameter mutable float *dWindow{}; // Derivative of window - -#endif }; #endif From 3120fa361e288637ad619dc3fdea97516b7efe80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Marinier?= Date: Sat, 25 Jun 2016 20:36:00 +0200 Subject: [PATCH 05/16] Code cleanup: Changed a few pointers to const pointers in FFT code --- src/FFT.cpp | 10 ++++++---- src/FFT.h | 8 ++++---- src/RealFFTf.cpp | 17 +++++++++-------- src/RealFFTf.h | 5 +++-- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/FFT.cpp b/src/FFT.cpp index 9ab73bc28..2c098b4a8 100644 --- a/src/FFT.cpp +++ b/src/FFT.cpp @@ -137,7 +137,8 @@ inline int FastReverseBits(int i, int NumBits) void FFT(int NumSamples, bool InverseTransform, - float *RealIn, float *ImagIn, float *RealOut, float *ImagOut) + const float *RealIn, const float *ImagIn, + float *RealOut, float *ImagOut) { int NumBits; /* Number of bits needed to store indices */ int i, j, k, n; @@ -236,7 +237,7 @@ void FFT(int NumSamples, * This is merely a wrapper of RealFFTf() from RealFFTf.h. */ -void RealFFT(int NumSamples, float *RealIn, float *RealOut, float *ImagOut) +void RealFFT(int NumSamples, const float *RealIn, float *RealOut, float *ImagOut) { int i; HFFT hFFT = GetFFT(NumSamples); @@ -277,7 +278,8 @@ void RealFFT(int NumSamples, float *RealIn, float *RealOut, float *ImagOut) * * This is merely a wrapper of InverseRealFFTf() from RealFFTf.h. */ -void InverseRealFFT(int NumSamples, float *RealIn, float *ImagIn, float *RealOut) +void InverseRealFFT(int NumSamples, const float *RealIn, const float *ImagIn, + float *RealOut) { int i; HFFT hFFT = GetFFT(NumSamples); @@ -316,7 +318,7 @@ void InverseRealFFT(int NumSamples, float *RealIn, float *ImagIn, float *RealOut * of its code. */ -void PowerSpectrum(int NumSamples, float *In, float *Out) +void PowerSpectrum(int NumSamples, const float *In, float *Out) { int i; HFFT hFFT = GetFFT(NumSamples); diff --git a/src/FFT.h b/src/FFT.h index 6bce57abe..488f93ca5 100644 --- a/src/FFT.h +++ b/src/FFT.h @@ -61,7 +61,7 @@ * input array, and that NumSamples must be a power of two. */ -void PowerSpectrum(int NumSamples, float *In, float *Out); +void PowerSpectrum(int NumSamples, const float *In, float *Out); /* * Computes an FFT when the input data is real but you still @@ -71,7 +71,7 @@ void PowerSpectrum(int NumSamples, float *In, float *Out); */ void RealFFT(int NumSamples, - float *RealIn, float *RealOut, float *ImagOut); + const float *RealIn, float *RealOut, float *ImagOut); /* * Computes an Inverse FFT when the input data is conjugate symmetric @@ -79,7 +79,7 @@ void RealFFT(int NumSamples, * two. */ void InverseRealFFT(int NumSamples, - float *RealIn, float *ImagIn, float *RealOut); + const float *RealIn, const float *ImagIn, float *RealOut); /* * Computes a FFT of complex input and returns complex output. @@ -89,7 +89,7 @@ void InverseRealFFT(int NumSamples, void FFT(int NumSamples, bool InverseTransform, - float *RealIn, float *ImagIn, float *RealOut, float *ImagOut); + const float *RealIn, const float *ImagIn, float *RealOut, float *ImagOut); /* * Multiply values in data by values of the chosen function diff --git a/src/RealFFTf.cpp b/src/RealFFTf.cpp index c904c5f83..254140869 100644 --- a/src/RealFFTf.cpp +++ b/src/RealFFTf.cpp @@ -191,9 +191,9 @@ void CleanupFFT() void RealFFTf(fft_type *buffer,HFFT h) { fft_type *A,*B; - fft_type *sptr; - fft_type *endptr1,*endptr2; - int *br1,*br2; + const fft_type *sptr; + const fft_type *endptr1,*endptr2; + const int *br1,*br2; fft_type HRplus,HRminus,HIplus,HIminus; fft_type v1,v2,sin,cos; @@ -293,9 +293,9 @@ void RealFFTf(fft_type *buffer,HFFT h) void InverseRealFFTf(fft_type *buffer,HFFT h) { fft_type *A,*B; - fft_type *sptr; - fft_type *endptr1,*endptr2; - int *br1; + const fft_type *sptr; + const fft_type *endptr1,*endptr2; + const int *br1; fft_type HRplus,HRminus,HIplus,HIminus; fft_type v1,v2,sin,cos; @@ -373,7 +373,8 @@ void InverseRealFFTf(fft_type *buffer,HFFT h) } } -void ReorderToFreq(HFFT hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut) +void ReorderToFreq(HFFT hFFT, const fft_type *buffer, + fft_type *RealOut, fft_type *ImagOut) { // Copy the data into the real and imaginary outputs for(int i=1;iPoints;i++) { @@ -386,7 +387,7 @@ void ReorderToFreq(HFFT hFFT, fft_type *buffer, fft_type *RealOut, fft_type *Ima ImagOut[hFFT->Points] = 0; } -void ReorderToTime(HFFT hFFT, fft_type *buffer, fft_type *TimeOut) +void ReorderToTime(HFFT hFFT, const fft_type *buffer, fft_type *TimeOut) { // Copy the data into the real outputs for(int i=0;iPoints;i++) { diff --git a/src/RealFFTf.h b/src/RealFFTf.h index 497af02b6..e83022fd0 100644 --- a/src/RealFFTf.h +++ b/src/RealFFTf.h @@ -21,8 +21,9 @@ void ReleaseFFT(HFFT); void CleanupFFT(); void RealFFTf(fft_type *,HFFT); void InverseRealFFTf(fft_type *,HFFT); -void ReorderToTime(HFFT hFFT, fft_type *buffer, fft_type *TimeOut); -void ReorderToFreq(HFFT hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut); +void ReorderToTime(HFFT hFFT, const fft_type *buffer, fft_type *TimeOut); +void ReorderToFreq(HFFT hFFT, const fft_type *buffer, + fft_type *RealOut, fft_type *ImagOut); #endif From 519f4d6cf6298d1cb9fdafb0fac214ea68e557fd Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sun, 10 Jul 2016 18:46:59 -0400 Subject: [PATCH 06/16] Simplify the label import routine --- src/LabelTrack.cpp | 72 +++++++++++----------------------------------- 1 file changed, 16 insertions(+), 56 deletions(-) diff --git a/src/LabelTrack.cpp b/src/LabelTrack.cpp index 81438a57f..135ba647d 100644 --- a/src/LabelTrack.cpp +++ b/src/LabelTrack.cpp @@ -47,6 +47,7 @@ for drawing different aspects of the label and its text box. #include #include #include +#include #include #include "AudioIO.h" @@ -2091,14 +2092,7 @@ void LabelTrack::Export(wxTextFile & f) const /// Import labels, handling files with or without end-times. void LabelTrack::Import(wxTextFile & in) { - wxString currentLine; - int i, i2,len; - int index, lines; - wxString s,s1; - wxString title; - double t0,t1; - - lines = in.GetLineCount(); + int lines = in.GetLineCount(); mLabels.clear(); mLabels.reserve(lines); @@ -2106,66 +2100,32 @@ void LabelTrack::Import(wxTextFile & in) //Currently, we expect a tag file to have two values and a label //on each line. If the second token is not a number, we treat //it as a single-value label. - for (index = 0; index < lines; index++) { - currentLine = in.GetLine(index); + for (int index = 0; index < lines; index++) { + wxString currentLine = in.GetLine(index); - len = currentLine.Length(); - if (len == 0) - return; + // Assume tab is an impossible character within the exported text + // of the label, so can be only a delimiter. But other white space may + // be part of the label text. + wxStringTokenizer toker { currentLine, wxT("\t") }; //get the timepoint of the left edge of the label. - i = 0; - while (i < len && currentLine.GetChar(i) != wxT(' ') - && currentLine.GetChar(i) != wxT('\t')) - { - i++; - } - s = currentLine.Left(i); + auto token = toker.GetNextToken(); - if (!Internat::CompatibleToDouble(s, &t0)) + double t0; + if (!Internat::CompatibleToDouble(token, &t0)) return; - //Increment one letter. - i++; + token = toker.GetNextToken(); - //Now, go until we find the start of the get the next token - while (i < len - && (currentLine.GetChar(i) == wxT(' ') - || currentLine.GetChar(i) == wxT('\t'))) - { - i++; - } - //Keep track of the start of the second token - i2=i; - - //Now, go to the end of the second token. - while (i < len && currentLine.GetChar(i) != wxT(' ') - && currentLine.GetChar(i) != wxT('\t')) - { - i++; - } - - //We are at the end of the second token. - s1 = currentLine.Mid(i2,i-i2+1).Strip(wxString::stripType(0x3)); - if (!Internat::CompatibleToDouble(s1, &t1)) - { + double t1; + if (!Internat::CompatibleToDouble(token, &t1)) //s1 is not a number. t1 = t0; //This is a one-sided label; t1 == t0. - - //Because s1 is not a number, the label should be - //The rest of the line, starting at i2; - title = currentLine.Right(len - i2).Strip(wxString::stripType(0x3)); //0x3 indicates both - } else - { - //s1 is a number, and it is stored correctly in t1. - //The title should be the remainder of the line, - //After we eat + token = toker.GetNextToken(); - //Get rid of spaces at either end - title = currentLine.Right(len - i).Strip(wxString::stripType(0x3)); //0x3 indicates both. + wxString title = token; - } // PRL: to do: import other selection fields LabelStruct l { SelectedRegion(t0, t1), title }; mLabels.push_back(l); From ac2730170d2bda963324f9ed5fa4da223ee5a2e5 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sun, 10 Jul 2016 19:09:48 -0400 Subject: [PATCH 07/16] Import and Export are methods of LabelStruct --- src/LabelTrack.cpp | 81 +++++++++++++++++++++++++++------------------- src/LabelTrack.h | 5 +++ 2 files changed, 52 insertions(+), 34 deletions(-) diff --git a/src/LabelTrack.cpp b/src/LabelTrack.cpp index 135ba647d..871db7ec5 100644 --- a/src/LabelTrack.cpp +++ b/src/LabelTrack.cpp @@ -1223,6 +1223,46 @@ void LabelStruct::MoveLabel( int iEdge, double fNewTime) updated = true; } +LabelStruct LabelStruct::Import(wxTextFile &file, int index) +{ + wxString currentLine = file.GetLine(index); + + // Assume tab is an impossible character within the exported text + // of the label, so can be only a delimiter. But other white space may + // be part of the label text. + wxStringTokenizer toker { currentLine, wxT("\t") }; + + //get the timepoint of the left edge of the label. + auto token = toker.GetNextToken(); + + double t0; + if (!Internat::CompatibleToDouble(token, &t0)) + throw BadFormatException{}; + + token = toker.GetNextToken(); + + double t1; + if (!Internat::CompatibleToDouble(token, &t1)) + //s1 is not a number. + t1 = t0; //This is a one-sided label; t1 == t0. + else + token = toker.GetNextToken(); + + wxString title = token; + + // PRL: to do: import other selection fields + return LabelStruct{ SelectedRegion{ t0, t1 }, title }; +} + +void LabelStruct::Export(wxTextFile &file) const +{ + file.AddLine(wxString::Format(wxT("%f\t%f\t%s"), + getT0(), + getT1(), + title.c_str() + )); +} + auto LabelStruct::RegionRelation( double reg_t0, double reg_t1, const LabelTrack * WXUNUSED(parent)) const -> TimeRelations @@ -2081,12 +2121,8 @@ bool LabelTrack::IsSelected() const void LabelTrack::Export(wxTextFile & f) const { // PRL: to do: export other selection fields - for (auto &labelStruct: mLabels) { - f.AddLine(wxString::Format(wxT("%f\t%f\t%s"), - (double)labelStruct.getT0(), - (double)labelStruct.getT1(), - labelStruct.title.c_str())); - } + for (auto &labelStruct: mLabels) + labelStruct.Export(f); } /// Import labels, handling files with or without end-times. @@ -2101,34 +2137,11 @@ void LabelTrack::Import(wxTextFile & in) //on each line. If the second token is not a number, we treat //it as a single-value label. for (int index = 0; index < lines; index++) { - wxString currentLine = in.GetLine(index); - - // Assume tab is an impossible character within the exported text - // of the label, so can be only a delimiter. But other white space may - // be part of the label text. - wxStringTokenizer toker { currentLine, wxT("\t") }; - - //get the timepoint of the left edge of the label. - auto token = toker.GetNextToken(); - - double t0; - if (!Internat::CompatibleToDouble(token, &t0)) - return; - - token = toker.GetNextToken(); - - double t1; - if (!Internat::CompatibleToDouble(token, &t1)) - //s1 is not a number. - t1 = t0; //This is a one-sided label; t1 == t0. - else - token = toker.GetNextToken(); - - wxString title = token; - - // PRL: to do: import other selection fields - LabelStruct l { SelectedRegion(t0, t1), title }; - mLabels.push_back(l); + try { + LabelStruct l { LabelStruct::Import(in, index) }; + mLabels.push_back(l); + } + catch(const LabelStruct::BadFormatException&l) {} } SortLabels(); } diff --git a/src/LabelTrack.h b/src/LabelTrack.h index 87a8a7a19..b1ef18a92 100644 --- a/src/LabelTrack.h +++ b/src/LabelTrack.h @@ -62,6 +62,11 @@ public: bool AdjustEdge( int iEdge, double fNewTime); void MoveLabel( int iEdge, double fNewTime); + struct BadFormatException {}; + static LabelStruct Import(wxTextFile &file, int index); + + void Export(wxTextFile &file) const; + /// Relationships between selection region and labels enum TimeRelations { From 3b7e61fc6e6e6a3a3cd426991fde7be3e10f0dc1 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sun, 10 Jul 2016 19:57:58 -0400 Subject: [PATCH 08/16] Export and import the frequency information in labels --- src/LabelTrack.cpp | 51 +++++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/src/LabelTrack.cpp b/src/LabelTrack.cpp index 871db7ec5..47066f0b6 100644 --- a/src/LabelTrack.cpp +++ b/src/LabelTrack.cpp @@ -1235,31 +1235,54 @@ LabelStruct LabelStruct::Import(wxTextFile &file, int index) //get the timepoint of the left edge of the label. auto token = toker.GetNextToken(); - double t0; - if (!Internat::CompatibleToDouble(token, &t0)) - throw BadFormatException{}; + SelectedRegion sr; - token = toker.GetNextToken(); + { + double t0; + if (!Internat::CompatibleToDouble(token, &t0)) + throw BadFormatException{}; - double t1; - if (!Internat::CompatibleToDouble(token, &t1)) - //s1 is not a number. - t1 = t0; //This is a one-sided label; t1 == t0. - else token = toker.GetNextToken(); + double t1; + if (!Internat::CompatibleToDouble(token, &t1)) + //s1 is not a number. + t1 = t0; //This is a one-sided label; t1 == t0. + else + token = toker.GetNextToken(); + + sr.setTimes( t0, t1 ); + } + wxString title = token; - // PRL: to do: import other selection fields - return LabelStruct{ SelectedRegion{ t0, t1 }, title }; + // Newer selection fields are written after the title, for historical + // reasons. + if (toker.HasMoreTokens()) { + token = toker.GetNextToken(); + double f0; + if (!Internat::CompatibleToDouble(token, &f0)) + throw BadFormatException{}; + + token = toker.GetNextToken(); + double f1; + if (!Internat::CompatibleToDouble(token, &f1)) + throw BadFormatException{}; + + sr.setFrequencies(f0, f1); + } + + return LabelStruct{ sr, title }; } void LabelStruct::Export(wxTextFile &file) const { - file.AddLine(wxString::Format(wxT("%f\t%f\t%s"), + file.AddLine(wxString::Format(wxT("%f\t%f\t%s\t%f\t%f"), getT0(), - getT1(), - title.c_str() + getT1(), + title.c_str(), + selectedRegion.f0(), + selectedRegion.f1() )); } From 5a9fcd1ca5ab38f28461300fa00534ab1424d97d Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Mon, 11 Jul 2016 10:35:00 -0400 Subject: [PATCH 09/16] fix Windows build --- src/widgets/wxPanelWrapper.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/wxPanelWrapper.h b/src/widgets/wxPanelWrapper.h index f694d5655..5c2b1d215 100644 --- a/src/widgets/wxPanelWrapper.h +++ b/src/widgets/wxPanelWrapper.h @@ -9,7 +9,7 @@ #ifndef __AUDACITY_WXPANEL_WRAPPER__ #define __AUDACITY_WXPANEL_WRAPPER__ -#include +#include "../MemoryX.h" #include #include From 5648023cf37978a7108c3773e43c111372b58394 Mon Sep 17 00:00:00 2001 From: Gale Andrews Date: Mon, 11 Jul 2016 18:45:47 +0100 Subject: [PATCH 10/16] Further fix for Windows build --- src/effects/Contrast.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/effects/Contrast.h b/src/effects/Contrast.h index 88263533b..c3d28db3c 100644 --- a/src/effects/Contrast.h +++ b/src/effects/Contrast.h @@ -9,7 +9,7 @@ #ifndef __AUDACITY_CONTRAST_DIALOG__ #define __AUDACITY_CONTRAST_DIALOG__ -#include "widgets/wxPanelWrapper.h" +#include "../widgets/wxPanelWrapper.h" class wxButton; class wxSizer; From cb3e5e6d4fe484132b7dae246e52614fedb758de Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Mon, 11 Jul 2016 13:59:29 -0400 Subject: [PATCH 11/16] Bug1443: Various odd behavior of label text editor, fixed... ... And label track selection code is simpler to understand, without delayed side effects happening during drawing. Left and right arrow keys collapse text range selection correctly Shift-click adjusts the end of selection nearest the pick Right (and middle) click and drag do not affect the selection Copying empty selection has no effect on the clipboard Left-drag behaves independently of previous selection state --- src/LabelTrack.cpp | 166 ++++++++++++++++----------------------------- src/LabelTrack.h | 8 +-- 2 files changed, 60 insertions(+), 114 deletions(-) diff --git a/src/LabelTrack.cpp b/src/LabelTrack.cpp index 47066f0b6..0badcdabd 100644 --- a/src/LabelTrack.cpp +++ b/src/LabelTrack.cpp @@ -269,7 +269,6 @@ void LabelTrack::WarpLabels(const TimeWarper &warper) { void LabelTrack::ResetFlags() { - mDragXPos = -1; mInitialCursorPos = 1; mCurrentCursorPos = 1; mRightDragging = false; @@ -522,8 +521,6 @@ LabelStruct::LabelStruct(const SelectedRegion ®ion, : selectedRegion(region) , title(aTitle) { - changeInitialMouseXPos = true; - highlighted = false; updated = false; width = 0; x = 0; @@ -541,8 +538,6 @@ LabelStruct::LabelStruct(const SelectedRegion ®ion, // Overwrite the times selectedRegion.setTimes(t0, t1); - changeInitialMouseXPos = true; - highlighted = false; updated = false; width = 0; x = 0; @@ -694,9 +689,6 @@ void LabelStruct::DrawTextBox(wxDC & dc, const wxRect & r) const void LabelStruct::DrawHighlight ( wxDC & dc, int xPos1, int xPos2, int charHeight) const { - highlighted = true; - changeInitialMouseXPos = false; - wxPen curPen = dc.GetPen(); curPen.SetColour(wxString(wxT("BLUE"))); wxBrush curBrush = dc.GetBrush(); @@ -826,7 +818,7 @@ void LabelTrack::Draw(wxDC & dc, const wxRect & r, }} // Draw highlights - if ((mDragXPos != -1) && (mSelIndex >= 0 )) + if ((mInitialCursorPos != mCurrentCursorPos) && (mSelIndex >= 0 )) { int xpos1, xpos2; CalcHighlightXs(&xpos1, &xpos2); @@ -866,11 +858,11 @@ void LabelTrack::Draw(wxDC & dc, const wxRect & r, } } -/// Set the cursor position according to x position of mouse /// uses GetTextExtent to find the character position /// corresponding to the x pixel position. -void LabelTrack::SetCurrentCursorPosition(int xPos) +int LabelTrack::FindCurrentCursorPosition(int xPos) { + int result = -1; wxMemoryDC dc; if(msFont.Ok()) dc.SetFont(msFont); @@ -898,7 +890,7 @@ void LabelTrack::SetCurrentCursorPosition(int xPos) if (xPos <= bound) { // Found - mCurrentCursorPos = charIndex - 1; + result = charIndex - 1; finished = true; } else @@ -908,10 +900,16 @@ void LabelTrack::SetCurrentCursorPosition(int xPos) } } if (!finished) - { // Cursor should be in the last position - mCurrentCursorPos = length; - } + result = length; + + return result; +} + +/// Set the cursor position according to x position of mouse +void LabelTrack::SetCurrentCursorPosition(int xPos) +{ + mCurrentCursorPos = FindCurrentCursorPosition(xPos); } void LabelTrack::calculateFontHeight(wxDC & dc) const @@ -936,8 +934,6 @@ bool LabelTrack::IsTextSelected() { if (mSelIndex == -1) return false; - if (!mLabels[mSelIndex].highlighted) - return false; if (mCurrentCursorPos == mInitialCursorPos) return false; return true; @@ -993,14 +989,15 @@ bool LabelTrack::CopySelectedText() return false; const auto &labelStruct = mLabels[mSelIndex]; - if (!labelStruct.highlighted) - return false; int init = mInitialCursorPos; int cur = mCurrentCursorPos; if (init > cur) std::swap(init, cur); + if (init == cur) + return false; + // data for copying wxString data = labelStruct.title.Mid(init, cur-init); @@ -1043,12 +1040,9 @@ bool LabelTrack::PasteSelectedText(double sel0, double sel1) auto &labelStruct = mLabels[mSelIndex]; auto &title = labelStruct.title; - int cur = mCurrentCursorPos, init = cur; - if (labelStruct.highlighted) { - init = mInitialCursorPos; - if (init > cur) - std::swap(init, cur); - } + int cur = mCurrentCursorPos, init = mInitialCursorPos; + if (init > cur) + std::swap(init, cur); left = title.Left(init); if (cur < (int)title.Length()) right = title.Mid(cur); @@ -1493,20 +1487,9 @@ void LabelTrack::HandleTextDragRelease(const wxMouseEvent & evt) if(evt.Dragging()) { - // if dragging happens in text box - // end dragging x position in pixels - // set flag to update current cursor position - mDragXPos = evt.m_x; - - // for preventing dragging glygh from changing current cursor position - // set end dragging position to current cursor position - SetCurrentCursorPosition(mDragXPos); - - // if it's an invalid dragging, disable displaying - if (mRightDragging) { - mDragXPos = -1; - mRightDragging = false; - } + if (!mRightDragging) + // Update drag end + SetCurrentCursorPosition(evt.m_x); return; } @@ -1573,20 +1556,33 @@ void LabelTrack::HandleClick(const wxMouseEvent & evt, return; } - // disable displaying if left button is down - if (evt.LeftDown()) - mDragXPos = -1; - mSelIndex = OverATextBox(evt.m_x, evt.m_y); if (mSelIndex != -1) { auto &labelStruct = mLabels[mSelIndex]; *newSel = labelStruct.selectedRegion; - SetCurrentCursorPosition(evt.m_x); - // for preventing from resetting by shift+mouse left button - if (labelStruct.changeInitialMouseXPos) - mInitialCursorPos = mCurrentCursorPos; - mDrawCursor = true; + if (evt.LeftDown()) { + // Find the NEW drag end + auto position = FindCurrentCursorPosition(evt.m_x); + + if (evt.ShiftDown()) { + // Set the drag anchor at the end of the previous selection + // that is farther from the NEW drag end + if (abs(position - mCurrentCursorPos) > + abs(position - mInitialCursorPos)) + mInitialCursorPos = mCurrentCursorPos; + } + else + mInitialCursorPos = position; + + mCurrentCursorPos = position; + + mDrawCursor = true; + mRightDragging = false; + } + else + // Actually this might be right or middle down + mRightDragging = true; // reset the highlight indicator wxRect highlightedRect; @@ -1600,28 +1596,8 @@ void LabelTrack::HandleClick(const wxMouseEvent & evt, xpos1, labelStruct.y - mFontHeight / 2, (int)(xpos2 - xpos1 + 0.5), mFontHeight }; - - // reset when left button is down - if (evt.LeftDown()) - labelStruct.highlighted = false; - // reset when right button is down outside text box - if (evt.RightDown()) - { - if (!highlightedRect.Contains(evt.m_x, evt.m_y)) - { - mCurrentCursorPos = mInitialCursorPos = 0; - labelStruct.highlighted = false; - } - } - // set changeInitialMouseXPos flag - labelStruct.changeInitialMouseXPos = true; } - // disable displaying if right button is down outside text box - if (evt.RightDown() - && !highlightedRect.Contains(evt.m_x, evt.m_y)) - mDragXPos = -1; - // Middle click on GTK: paste from primary selection #if defined(__WXGTK__) && (HAVE_GTK) if (evt.MiddleDown()) { @@ -1634,16 +1610,6 @@ void LabelTrack::HandleClick(const wxMouseEvent & evt, *newSel = SelectedRegion(t, t); } #endif - - // handle shift+mouse left button - if (evt.ShiftDown()) { - // if the mouse is clicked in text box, set flags - mDragXPos = evt.m_x; - - // for preventing dragging glygh from changing current cursor position - // set end dragging position to current cursor position - SetCurrentCursorPosition(evt.m_x); - } } #if defined(__WXGTK__) && (HAVE_GTK) @@ -1732,9 +1698,8 @@ bool LabelTrack::OnKeyDown(SelectedRegion &newSel, wxKeyEvent & event) if (len > 0) { // IF there are some highlighted letters, THEN DELETE them - if (labelStruct.highlighted) { + if (mInitialCursorPos != mCurrentCursorPos) RemoveSelectedText(); - } else { // DELETE one letter @@ -1763,9 +1728,8 @@ bool LabelTrack::OnKeyDown(SelectedRegion &newSel, wxKeyEvent & event) if (len > 0) { // if there are some highlighted letters, DELETE them - if (labelStruct.highlighted) { + if (mInitialCursorPos != mCurrentCursorPos) RemoveSelectedText(); - } else { // DELETE one letter @@ -1789,11 +1753,9 @@ bool LabelTrack::OnKeyDown(SelectedRegion &newSel, wxKeyEvent & event) // Move cursor to beginning of label mCurrentCursorPos = 0; if (mods == wxMOD_SHIFT) - mDragXPos = 0; - else { - mDragXPos = -1; + ; + else mInitialCursorPos = mCurrentCursorPos; - } break; case WXK_END: @@ -1801,11 +1763,9 @@ bool LabelTrack::OnKeyDown(SelectedRegion &newSel, wxKeyEvent & event) // Move cursor to end of label mCurrentCursorPos = (int)title.length(); if (mods == wxMOD_SHIFT) - mDragXPos = 0; - else { - mDragXPos = -1; + ; + else mInitialCursorPos = mCurrentCursorPos; - } break; case WXK_LEFT: @@ -1814,11 +1774,10 @@ bool LabelTrack::OnKeyDown(SelectedRegion &newSel, wxKeyEvent & event) if (mCurrentCursorPos > 0) { mCurrentCursorPos--; if (mods == wxMOD_SHIFT) - mDragXPos = 0; - else { - mDragXPos = -1; - mInitialCursorPos = mCurrentCursorPos; - } + ; + else + mInitialCursorPos = mCurrentCursorPos = + std::min(mInitialCursorPos, mCurrentCursorPos); } break; @@ -1828,11 +1787,10 @@ bool LabelTrack::OnKeyDown(SelectedRegion &newSel, wxKeyEvent & event) if (mCurrentCursorPos < (int)title.length()) { mCurrentCursorPos++; if (mods == wxMOD_SHIFT) - mDragXPos = 0; - else { - mDragXPos = -1; - mInitialCursorPos = mCurrentCursorPos; - } + ; + else + mInitialCursorPos = mCurrentCursorPos = + std::max(mInitialCursorPos, mCurrentCursorPos); } break; @@ -1984,9 +1942,8 @@ bool LabelTrack::OnChar(SelectedRegion &WXUNUSED(newSel), wxKeyEvent & event) auto &title = labelStruct.title; // Test if cursor is in the end of string or not - if (labelStruct.highlighted) { + if (mInitialCursorPos != mCurrentCursorPos) RemoveSelectedText(); - } if (mCurrentCursorPos < (int)title.length()) { // Get substring on the righthand side of cursor @@ -2048,9 +2005,6 @@ void LabelTrack::ShowContextMenu() parent->PopupMenu(&menu, x, ls->y + (mIconHeight / 2) - 1); } - - // it's an invalid dragging event - SetWrongDragging(true); } void LabelTrack::OnContextMenu(wxCommandEvent & evt) @@ -2126,8 +2080,6 @@ void LabelTrack::RemoveSelectedText() title = left + right; mInitialCursorPos = mCurrentCursorPos = left.Length(); - labelStruct.highlighted = false; - mDragXPos = -1; } void LabelTrack::Unselect() diff --git a/src/LabelTrack.h b/src/LabelTrack.h index b1ef18a92..ee747074d 100644 --- a/src/LabelTrack.h +++ b/src/LabelTrack.h @@ -96,8 +96,6 @@ public: mutable int xText; /// Pixel position of left hand side of text box mutable int y; /// Pixel position of label. - mutable bool highlighted; /// if the text is highlighted - mutable bool changeInitialMouseXPos; /// flag to change initial mouse X pos bool updated; /// flag to tell if the label times were updated }; @@ -180,9 +178,6 @@ class AUDACITY_DLL_API LabelTrack final : public Track bool PasteSelectedText(double sel0, double sel1); static bool IsTextClipSupported(); - // methods to set flags - void SetWrongDragging(bool rightFlag) { mRightDragging = rightFlag; } - void HandleClick(const wxMouseEvent & evt, const wxRect & r, const ZoomInfo &zoomInfo, SelectedRegion *newSel); bool HandleGlyphDragRelease(const wxMouseEvent & evt, wxRect & r, const ZoomInfo &zoomInfo, @@ -263,8 +258,6 @@ class AUDACITY_DLL_API LabelTrack final : public Track static int mFontHeight; int mCurrentCursorPos; /// current cursor position int mInitialCursorPos; /// initial cursor position - int mDragXPos; /// end X pos of dragging - /// in text box bool mRightDragging; /// flag to tell if it's a valid dragging bool mDrawCursor; /// flag to tell if drawing the @@ -279,6 +272,7 @@ class AUDACITY_DLL_API LabelTrack final : public Track void ComputeTextPosition(const wxRect & r, int index) const; public: + int FindCurrentCursorPosition(int xPos); void SetCurrentCursorPosition(int xPos); private: From e97568db1b01a659d6085119a901da8bd1643ba0 Mon Sep 17 00:00:00 2001 From: windinthew Date: Tue, 12 Jul 2016 15:05:48 +0100 Subject: [PATCH 12/16] More access key fixes. Better Pinned tooltip. --- src/Menus.cpp | 8 ++++---- src/widgets/Ruler.cpp | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Menus.cpp b/src/Menus.cpp index d7680c033..8832fbb0e 100644 --- a/src/Menus.cpp +++ b/src/Menus.cpp @@ -325,7 +325,7 @@ void AudacityProject::CreateMenusAndCommands() AudioIONotBusyFlag | UnsavedChangesFlag); c->AddItem(wxT("SaveAs"), _("Save Project &As..."), FN(OnSaveAs)); #ifdef USE_LIBVORBIS - c->AddItem(wxT("SaveCompressed"), _("Save Compressed Copy of Project..."), FN(OnSaveCompressed)); + c->AddItem(wxT("SaveCompressed"), _("Sa&ve Compressed Copy of Project..."), FN(OnSaveCompressed)); #endif c->AddItem(wxT("CheckDeps"), _("Chec&k Dependencies..."), FN(OnCheckDependencies)); @@ -371,7 +371,7 @@ void AudacityProject::CreateMenusAndCommands() AudioIONotBusyFlag | WaveTracksExistFlag, AudioIONotBusyFlag | WaveTracksExistFlag); #if defined(USE_MIDI) - c->AddItem(wxT("ExportMIDI"), _("Export MIDI..."), FN(OnExportMIDI), + c->AddItem(wxT("ExportMIDI"), _("Export MI&DI..."), FN(OnExportMIDI), AudioIONotBusyFlag | NoteTracksSelectedFlag, AudioIONotBusyFlag | NoteTracksSelectedFlag); #endif @@ -733,7 +733,7 @@ void AudacityProject::CreateMenusAndCommands() c->AddSeparator(); /* i18n-hint: (verb)*/ - c->AddItem(wxT("ResetToolbars"), _("&Reset Toolbars"), FN(OnResetToolBars), 0, AlwaysEnabledFlag, AlwaysEnabledFlag); + c->AddItem(wxT("ResetToolbars"), _("Reset Toolb&ars"), FN(OnResetToolBars), 0, AlwaysEnabledFlag, AlwaysEnabledFlag); c->EndSubMenu(); @@ -776,7 +776,7 @@ void AudacityProject::CreateMenusAndCommands() c->AddSeparator(); - c->AddCheck(wxT("PinnedHead"), _("Pinned Recording/Playback Head"), + c->AddCheck(wxT("PinnedHead"), _("Pinned Recording/Playback &Head"), FN(OnTogglePinnedHead), 0, // Switching of scrolling on and off is permitted even during transport AlwaysEnabledFlag, AlwaysEnabledFlag); diff --git a/src/widgets/Ruler.cpp b/src/widgets/Ruler.cpp index 4fe3899b5..e64feac1b 100644 --- a/src/widgets/Ruler.cpp +++ b/src/widgets/Ruler.cpp @@ -2811,8 +2811,8 @@ void AdornedRulerPanel::UpdateButtonStates() const auto label = state // Label descibes the present state, not what the click does // (which is, to toggle the state) - ? _("Pinned play/record Head") - : _("Unpinned play/record Head"); + ? _("Pinned Record/Play head") + : _("Unpinned Record/Play head"); common(*pinButton, wxT("PinnedHead"), label); } } From 26676652d7f54de518ed348a3c672afcd71b7c3e Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Tue, 12 Jul 2016 12:13:08 -0400 Subject: [PATCH 13/16] Bug1443 again: Mac label shift-click should differ, per David Bailes --- src/LabelTrack.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/LabelTrack.cpp b/src/LabelTrack.cpp index 0badcdabd..60baf0b96 100644 --- a/src/LabelTrack.cpp +++ b/src/LabelTrack.cpp @@ -1565,12 +1565,20 @@ void LabelTrack::HandleClick(const wxMouseEvent & evt, // Find the NEW drag end auto position = FindCurrentCursorPosition(evt.m_x); + // Anchor shift-drag at the farther end of the previous highlight + // that is farther from the click, on Mac, for consistency with + // its text editors, but on the others, re-use the previous + // anchor. if (evt.ShiftDown()) { +#ifdef __WXMAC__ // Set the drag anchor at the end of the previous selection // that is farther from the NEW drag end if (abs(position - mCurrentCursorPos) > abs(position - mInitialCursorPos)) mInitialCursorPos = mCurrentCursorPos; +#else + // mInitialCursorPos remains as before +#endif } else mInitialCursorPos = position; From d91f82542458ac9fbcc67e0aa69b1f486e317b01 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Tue, 12 Jul 2016 15:26:40 -0400 Subject: [PATCH 14/16] Restore correct resizing of the time ruler for the scrub bar button This was broken at ae14cb0dbccf9587b7a13f5ddc49c2b27acfec1e --- src/widgets/Ruler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/Ruler.cpp b/src/widgets/Ruler.cpp index e64feac1b..b54d94bc4 100644 --- a/src/widgets/Ruler.cpp +++ b/src/widgets/Ruler.cpp @@ -2782,7 +2782,7 @@ void AdornedRulerPanel::OnToggleScrubBar(/*wxCommandEvent&*/) wxSize size { GetSize().GetWidth(), GetRulerHeight(mShowScrubbing) }; SetSize(size); SetMinSize(size); - PostSizeEventToParent(); + GetParent()->PostSizeEventToParent(); } void AdornedRulerPanel::OnContextMenu(wxContextMenuEvent & WXUNUSED(event)) From b6b9840d0649e0ab2bdf1375cf72d47f86a6ca13 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Tue, 12 Jul 2016 20:31:55 -0400 Subject: [PATCH 15/16] Enh1444 and Bug1435 fixed by CHANGED MAC BUILD PROCEURE... Enh1444 is to make pinch and spread gestures work. Bug1435 is to bring focus rings back for types of controls that lost them in version 2.1.2. This importantly includes pushbuttons and choice controls (drop-down menus). Less importantly, date picker (as in the Timer Record dialog) and Listbox (as in the dialog to choose label font). There is one more type of control that lost focus rings, and is not fixed: List controls (distinct from list boxes), such as in the Manage Curves dialog that opens from Equalization. --- mac/Build.txt | 2 + mac/wxMac_additions/focusrings.patch | 123 +++++++++++++++ mac/wxMac_additions/pinch-spread.patch | 206 +++++++++++++++++++++++++ 3 files changed, 331 insertions(+) create mode 100644 mac/wxMac_additions/focusrings.patch create mode 100644 mac/wxMac_additions/pinch-spread.patch diff --git a/mac/Build.txt b/mac/Build.txt index 36d10dda0..db7901e1c 100644 --- a/mac/Build.txt +++ b/mac/Build.txt @@ -37,6 +37,8 @@ http://forum.audacityteam.org/viewtopic.php?p=303835#p303835 . cd wxWidgets-3.0.2 patch -p0 -i /mac/wxMac_additions/wxMac-3.0.2-fixes.patch . patch -p0 -i /mac/wxMac_additions/eventloops.patch . + patch -p0 -i /mac/wxMac_additions/pinch-spread.patch . + patch -p0 -i /mac/wxMac_additions/focusrings.patch . 10) And finally build/install wxWidgets: diff --git a/mac/wxMac_additions/focusrings.patch b/mac/wxMac_additions/focusrings.patch new file mode 100644 index 000000000..648b56133 --- /dev/null +++ b/mac/wxMac_additions/focusrings.patch @@ -0,0 +1,123 @@ +From 148b0ed936b023b9b87d7703ecb86c4279f1182a Mon Sep 17 00:00:00 2001 +From: Paul Licameli +Date: Wed, 6 Jul 2016 14:18:17 -0400 +Subject: [PATCH 2/2] Focus rings are back for buttons, choice, listbox, + dateTimePicker controls + +--- + include/wx/button.h | 2 ++ + include/wx/choice.h | 2 ++ + include/wx/datetimectrl.h | 2 ++ + include/wx/listbox.h | 2 ++ + include/wx/window.h | 2 ++ + src/osx/cocoa/window.mm | 22 +++++++++++++++++++++- + 6 files changed, 31 insertions(+), 1 deletion(-) + +diff --git a/include/wx/button.h b/include/wx/button.h +index 71dbee4..6aa75d3 100644 +--- include/wx/button.h ++++ include/wx/button.h +@@ -42,6 +42,8 @@ public: + // returns the default button size for this platform + static wxSize GetDefaultSize(); + ++ virtual bool NeedsFocusRing() const { return true; } ++ + protected: + wxDECLARE_NO_COPY_CLASS(wxButtonBase); + }; +diff --git a/include/wx/choice.h b/include/wx/choice.h +index 3a848f9..421a9a7 100644 +--- include/wx/choice.h ++++ include/wx/choice.h +@@ -57,6 +57,8 @@ public: + // override wxItemContainer::IsSorted + virtual bool IsSorted() const { return HasFlag(wxCB_SORT); } + ++ virtual bool NeedsFocusRing() const { return true; } ++ + protected: + // The generic implementation doesn't determine the height correctly and + // doesn't account for the width of the arrow but does take into account +diff --git a/include/wx/datetimectrl.h b/include/wx/datetimectrl.h +index 30f23df..d51c6c1 100644 +--- include/wx/datetimectrl.h ++++ include/wx/datetimectrl.h +@@ -32,6 +32,8 @@ public: + // Set/get the date or time (in the latter case, time part is ignored). + virtual void SetValue(const wxDateTime& dt) = 0; + virtual wxDateTime GetValue() const = 0; ++ ++ virtual bool NeedsFocusRing() const { return true; } + }; + + #if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) +diff --git a/include/wx/listbox.h b/include/wx/listbox.h +index afb0220..b9d47f0 100644 +--- include/wx/listbox.h ++++ include/wx/listbox.h +@@ -94,6 +94,8 @@ public: + int HitTest(const wxPoint& point) const { return DoListHitTest(point); } + int HitTest(int x, int y) const { return DoListHitTest(wxPoint(x, y)); } + ++ virtual bool NeedsFocusRing() const { return true; } ++ + + protected: + virtual void DoSetFirstItem(int n) = 0; +diff --git a/include/wx/window.h b/include/wx/window.h +index 7dffad4..bbe727d 100644 +--- include/wx/window.h ++++ include/wx/window.h +@@ -260,6 +260,8 @@ public: + // moving/resizing + // --------------- + ++ virtual bool NeedsFocusRing() const { return false; } ++ + // set the window size and/or position + void SetSize( int x, int y, int width, int height, + int sizeFlags = wxSIZE_AUTO ) +diff --git a/src/osx/cocoa/window.mm b/src/osx/cocoa/window.mm +index d9fa4ae..881d0e9 100644 +--- src/osx/cocoa/window.mm ++++ src/osx/cocoa/window.mm +@@ -17,6 +17,7 @@ + #include "wx/textctrl.h" + #include "wx/combobox.h" + #include "wx/radiobut.h" ++ #include "wx/button.h" + #endif + + #ifdef __WXMAC__ +@@ -1660,7 +1661,26 @@ void wxWidgetCocoaImpl::drawRect(void* rect, WXWidget slf, void *WXUNUSED(_cmd)) + // call super + SEL _cmd = @selector(drawRect:); + wxOSX_DrawRectHandlerPtr superimpl = (wxOSX_DrawRectHandlerPtr) [[slf superclass] instanceMethodForSelector:_cmd]; +- superimpl(slf, _cmd, *(NSRect*)rect); ++ ++ wxWindow *peer = GetWXPeer(); ++ bool hasFocus = peer->HasFocus(); ++ if (hasFocus && ++ peer->NeedsFocusRing()) { ++ superimpl(slf, _cmd, *(NSRect*)rect); ++ ++ // Paint it again, without text, causing focus halo to be ++ // superimposed about all else ++ HIThemeBeginFocus( context, kHIThemeFocusRingOnly, NULL ); ++ CGContextSetTextDrawingMode( context, kCGTextInvisible ); ++ superimpl(slf, _cmd, *(NSRect*)rect); ++ HIThemeEndFocus( context ); ++ ++ CGContextRestoreGState( context ); ++ CGContextSaveGState( context ); ++ } ++ else ++ superimpl(slf, _cmd, *(NSRect*)rect); ++ + CGContextRestoreGState( context ); + CGContextSaveGState( context ); + } +-- +2.3.2 (Apple Git-55) + diff --git a/mac/wxMac_additions/pinch-spread.patch b/mac/wxMac_additions/pinch-spread.patch new file mode 100644 index 000000000..f8ad200b9 --- /dev/null +++ b/mac/wxMac_additions/pinch-spread.patch @@ -0,0 +1,206 @@ +From 74a186065ad04a1ed3d43baeccec9083910ec623 Mon Sep 17 00:00:00 2001 +From: Paul Licameli +Date: Sun, 3 Jul 2016 10:16:12 -0400 +Subject: [PATCH 1/2] Add wxEVT_MAGNIFY mouse event. + +Currently this is implemented for wxOSX only. + +Closes #14322. + +git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 +--- + docs/changes.txt | 1 + + include/wx/event.h | 9 ++++++++- + interface/wx/event.h | 29 +++++++++++++++++++++++++++++ + src/common/event.cpp | 4 ++++ + src/osx/cocoa/window.mm | 10 ++++++++++ + 5 files changed, 52 insertions(+), 1 deletion(-) + +diff --git a/docs/changes.txt b/docs/changes.txt +index 72e7d42..6436bfb 100644 +--- docs/changes.txt ++++ docs/changes.txt +@@ -585,6 +585,7 @@ All: + + All (GUI): + ++- Add wxEVT_MAGNIFY mouse event (Joost Nieuwenhuijse). + - Add wxGenericListCtrl::EndEditLabel() (Tim Kosse). + - Implement bounding box computation in wxGCDC (Toni Ruža). + - Fix saving GIF animations with 2.5s+ delays between frames (elvissteinjr). +diff --git a/include/wx/event.h b/include/wx/event.h +index 61ec19c..26af365 100644 +--- include/wx/event.h ++++ include/wx/event.h +@@ -716,6 +716,7 @@ wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AUX1_DCLICK, wxMouseEvent); + wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AUX2_DOWN, wxMouseEvent); + wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AUX2_UP, wxMouseEvent); + wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AUX2_DCLICK, wxMouseEvent); ++wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MAGNIFY, wxMouseEvent); + + // Character input event type + wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_CHAR, wxKeyEvent); +@@ -1751,6 +1752,8 @@ public: + bool Aux1DClick() const { return (m_eventType == wxEVT_AUX1_DCLICK); } + bool Aux2DClick() const { return (m_eventType == wxEVT_AUX2_DCLICK); } + ++ bool Magnify() const { return (m_eventType == wxEVT_MAGNIFY); } ++ + // True if a button is down and the mouse is moving + bool Dragging() const + { +@@ -1805,6 +1808,7 @@ public: + // Is the system set to do page scrolling? + bool IsPageScroll() const { return ((unsigned int)m_linesPerAction == UINT_MAX); } + ++ float GetMagnification() const { return m_magnification; } + virtual wxEvent *Clone() const { return new wxMouseEvent(*this); } + virtual wxEventCategory GetEventCategory() const { return wxEVT_CATEGORY_USER_INPUT; } + +@@ -1823,6 +1827,7 @@ public: + int m_wheelDelta; + int m_linesPerAction; + int m_columnsPerAction; ++ float m_magnification; + + protected: + void Assign(const wxMouseEvent& evt); +@@ -4218,6 +4223,7 @@ typedef void (wxEvtHandler::*wxClipboardTextEventFunction)(wxClipboardTextEvent& + #define EVT_MOUSE_AUX2_DOWN(func) wx__DECLARE_EVT0(wxEVT_AUX2_DOWN, wxMouseEventHandler(func)) + #define EVT_MOUSE_AUX2_UP(func) wx__DECLARE_EVT0(wxEVT_AUX2_UP, wxMouseEventHandler(func)) + #define EVT_MOUSE_AUX2_DCLICK(func) wx__DECLARE_EVT0(wxEVT_AUX2_DCLICK, wxMouseEventHandler(func)) ++#define EVT_MAGNIFY(func) wx__DECLARE_EVT0(wxEVT_MAGNIFY, wxMouseEventHandler(func)) + + // All mouse events + #define EVT_MOUSE_EVENTS(func) \ +@@ -4239,7 +4245,8 @@ typedef void (wxEvtHandler::*wxClipboardTextEventFunction)(wxClipboardTextEvent& + EVT_MOTION(func) \ + EVT_LEAVE_WINDOW(func) \ + EVT_ENTER_WINDOW(func) \ +- EVT_MOUSEWHEEL(func) ++ EVT_MOUSEWHEEL(func) \ ++ EVT_MAGNIFY(func) + + // Scrolling from wxWindow (sent to wxScrolledWindow) + #define EVT_SCROLLWIN_TOP(func) wx__DECLARE_EVT0(wxEVT_SCROLLWIN_TOP, wxScrollWinEventHandler(func)) +diff --git a/interface/wx/event.h b/interface/wx/event.h +index 52bb609..7fe007a 100644 +--- interface/wx/event.h ++++ interface/wx/event.h +@@ -2626,6 +2626,8 @@ enum wxMouseWheelAxis + Process a @c wxEVT_MOUSEWHEEL event. + @event{EVT_MOUSE_EVENTS(func)} + Process all mouse events. ++ @event{EVT_MAGNIFY(func)} ++ Process a @c wxEVT_MAGNIFY event (new since wxWidgets 3.1.0). + @endEventTable + + @library{wxcore} +@@ -2659,6 +2661,7 @@ public: + @li @c wxEVT_AUX2_DCLICK + @li @c wxEVT_MOTION + @li @c wxEVT_MOUSEWHEEL ++ @li @c wxEVT_MAGNIFY + */ + wxMouseEvent(wxEventType mouseEventType = wxEVT_NULL); + +@@ -2785,6 +2788,21 @@ public: + wxPoint GetLogicalPosition(const wxDC& dc) const; + + /** ++ For magnify (pinch to zoom) events: returns the change in magnification. ++ ++ A value of 0 means no change, a positive value means we should enlarge ++ (or zoom in), a negative value means we should shrink (or zoom out). ++ ++ This method is only valid to call for @c wxEVT_MAGNIFY events which are ++ currently only generated under OS X. ++ ++ @see Magnify() ++ ++ @since 3.1.0 ++ */ ++ float GetMagnification() const; ++ ++ /** + Get wheel delta, normally 120. + + This is the threshold for action to be taken, and one such action +@@ -2851,6 +2869,17 @@ public: + bool LeftUp() const; + + /** ++ Returns @true if the event is a magnify (i.e.\ pinch to zoom) event. ++ ++ Such events are currently generated only under OS X. ++ ++ @see GetMagnification() ++ ++ @since 3.1.0 ++ */ ++ bool Magnify() const; ++ ++ /** + Returns @true if the Meta key was down at the time of the event. + */ + bool MetaDown() const; +diff --git a/src/common/event.cpp b/src/common/event.cpp +index d92a4ac..1015c84 100644 +--- src/common/event.cpp ++++ src/common/event.cpp +@@ -208,6 +208,7 @@ wxDEFINE_EVENT( wxEVT_AUX1_DCLICK, wxMouseEvent ); + wxDEFINE_EVENT( wxEVT_AUX2_DOWN, wxMouseEvent ); + wxDEFINE_EVENT( wxEVT_AUX2_UP, wxMouseEvent ); + wxDEFINE_EVENT( wxEVT_AUX2_DCLICK, wxMouseEvent ); ++wxDEFINE_EVENT( wxEVT_MAGNIFY, wxMouseEvent ); + + // Character input event type + wxDEFINE_EVENT( wxEVT_CHAR, wxKeyEvent ); +@@ -576,6 +577,7 @@ wxMouseEvent::wxMouseEvent(wxEventType commandType) + m_wheelDelta = 0; + m_linesPerAction = 0; + m_columnsPerAction = 0; ++ m_magnification = 0.0f; + } + + void wxMouseEvent::Assign(const wxMouseEvent& event) +@@ -600,6 +602,8 @@ void wxMouseEvent::Assign(const wxMouseEvent& event) + m_linesPerAction = event.m_linesPerAction; + m_columnsPerAction = event.m_columnsPerAction; + m_wheelAxis = event.m_wheelAxis; ++ ++ m_magnification = event.m_magnification; + } + + // return true if was a button dclick event +diff --git a/src/osx/cocoa/window.mm b/src/osx/cocoa/window.mm +index ede8ebf..d9fa4ae 100644 +--- src/osx/cocoa/window.mm ++++ src/osx/cocoa/window.mm +@@ -741,6 +741,12 @@ void wxWidgetCocoaImpl::SetupMouseEvent( wxMouseEvent &wxevent , NSEvent * nsEve + case NSMouseMoved : + wxevent.SetEventType( wxEVT_MOTION ) ; + break; ++ ++ case NSEventTypeMagnify: ++ wxevent.SetEventType( wxEVT_MAGNIFY ); ++ wxevent.m_magnification = [nsEvent magnification]; ++ break; ++ + default : + break ; + } +@@ -1772,6 +1778,10 @@ void wxOSXCocoaClassAddWXMethods(Class c) + wxOSX_CLASS_ADD_METHOD(c, @selector(scrollWheel:), (IMP) wxOSX_mouseEvent, "v@:@" ) + wxOSX_CLASS_ADD_METHOD(c, @selector(mouseEntered:), (IMP) wxOSX_mouseEvent, "v@:@" ) + wxOSX_CLASS_ADD_METHOD(c, @selector(mouseExited:), (IMP) wxOSX_mouseEvent, "v@:@" ) ++ ++#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 ++ wxOSX_CLASS_ADD_METHOD(c, @selector(magnifyWithEvent:), (IMP)wxOSX_mouseEvent, "v@:@") ++#endif + + wxOSX_CLASS_ADD_METHOD(c, @selector(cursorUpdate:), (IMP) wxOSX_cursorUpdate, "v@:@" ) + +-- +2.3.2 (Apple Git-55) + From f1799521aa4745b1105af1c72f668a617cbee7c7 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Tue, 12 Jul 2016 22:16:15 -0400 Subject: [PATCH 16/16] Bug1349 again: Fix export and import of no-name labels --- src/LabelTrack.cpp | 75 +++++++++++++++++++++++++++++++++------------- src/LabelTrack.h | 2 +- 2 files changed, 56 insertions(+), 21 deletions(-) diff --git a/src/LabelTrack.cpp b/src/LabelTrack.cpp index 60baf0b96..455b995ad 100644 --- a/src/LabelTrack.cpp +++ b/src/LabelTrack.cpp @@ -1217,21 +1217,23 @@ void LabelStruct::MoveLabel( int iEdge, double fNewTime) updated = true; } -LabelStruct LabelStruct::Import(wxTextFile &file, int index) +LabelStruct LabelStruct::Import(wxTextFile &file, int &index) { - wxString currentLine = file.GetLine(index); - - // Assume tab is an impossible character within the exported text - // of the label, so can be only a delimiter. But other white space may - // be part of the label text. - wxStringTokenizer toker { currentLine, wxT("\t") }; - - //get the timepoint of the left edge of the label. - auto token = toker.GetNextToken(); - SelectedRegion sr; + wxString title; + static const wxString continuation{ wxT("\\") }; + + wxString firstLine = file.GetLine(index++); { + // Assume tab is an impossible character within the exported text + // of the label, so can be only a delimiter. But other white space may + // be part of the label text. + wxStringTokenizer toker { firstLine, wxT("\t") }; + + //get the timepoint of the left edge of the label. + auto token = toker.GetNextToken(); + double t0; if (!Internat::CompatibleToDouble(token, &t0)) throw BadFormatException{}; @@ -1246,13 +1248,31 @@ LabelStruct LabelStruct::Import(wxTextFile &file, int index) token = toker.GetNextToken(); sr.setTimes( t0, t1 ); + + title = token; } - wxString title = token; + // Newer selection fields are written on additional lines beginning with + // '\' which is an impossible numerical character that older versions of + // audacity will ignore. Test for the presence of such a line and then + // parse it if we can. + + // There may also be additional continuation lines from future formats that + // we ignore. + + // Advance index over all continuation lines first, before we might throw + // any exceptions. + int index2 = index; + while (index < file.GetLineCount() && + file.GetLine(index).StartsWith(continuation)) + ++index; + + if (index2 < index) { + wxStringTokenizer toker { file.GetLine(index2++), wxT("\t") }; + auto token = toker.GetNextToken(); + if (token != continuation) + throw BadFormatException{}; - // Newer selection fields are written after the title, for historical - // reasons. - if (toker.HasMoreTokens()) { token = toker.GetNextToken(); double f0; if (!Internat::CompatibleToDouble(token, &f0)) @@ -1271,13 +1291,27 @@ LabelStruct LabelStruct::Import(wxTextFile &file, int index) void LabelStruct::Export(wxTextFile &file) const { - file.AddLine(wxString::Format(wxT("%f\t%f\t%s\t%f\t%f"), + file.AddLine(wxString::Format(wxT("%f\t%f\t%s"), getT0(), getT1(), - title.c_str(), - selectedRegion.f0(), - selectedRegion.f1() + title.c_str() )); + + // Do we need more lines? + auto f0 = selectedRegion.f0(); + auto f1 = selectedRegion.f1(); + if (f0 == SelectedRegion::UndefinedFrequency && + f1 == SelectedRegion::UndefinedFrequency) + return; + + // Write a \ character at the start of a second line, + // so that earlier versions of Audacity ignore it. + file.AddLine(wxString::Format(wxT("\\\t%f\t%f"), + f0, + f1 + )); + + // Additional lines in future formats should also start with '\'. } auto LabelStruct::RegionRelation( @@ -2119,8 +2153,9 @@ void LabelTrack::Import(wxTextFile & in) //Currently, we expect a tag file to have two values and a label //on each line. If the second token is not a number, we treat //it as a single-value label. - for (int index = 0; index < lines; index++) { + for (int index = 0; index < lines;) { try { + // Let LabelStruct::Import advance index LabelStruct l { LabelStruct::Import(in, index) }; mLabels.push_back(l); } diff --git a/src/LabelTrack.h b/src/LabelTrack.h index ee747074d..2a9eef745 100644 --- a/src/LabelTrack.h +++ b/src/LabelTrack.h @@ -63,7 +63,7 @@ public: void MoveLabel( int iEdge, double fNewTime); struct BadFormatException {}; - static LabelStruct Import(wxTextFile &file, int index); + static LabelStruct Import(wxTextFile &file, int &index); void Export(wxTextFile &file) const;