diff --git a/configure b/configure index 9943ca6c7..1f1e3347b 100755 --- a/configure +++ b/configure @@ -24233,7 +24233,7 @@ case "${host_os}" in esac # process Makefile.in's to generate Makefiles -ac_config_files="$ac_config_files Makefile help/Makefile images/Makefile lib-src/Makefile po/Makefile.in src/audacity.desktop src/Makefile tests/Makefile" +ac_config_files="$ac_config_files Makefile help/Makefile images/Makefile lib-src/Makefile po/Makefile.in nyq-po/Makefile.in src/audacity.desktop src/Makefile tests/Makefile" cat >confcache <<\_ACEOF @@ -25517,6 +25517,7 @@ do "images/Makefile") CONFIG_FILES="$CONFIG_FILES images/Makefile" ;; "lib-src/Makefile") CONFIG_FILES="$CONFIG_FILES lib-src/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "nyq-po/Makefile.in") CONFIG_FILES="$CONFIG_FILES nyq-po/Makefile.in" ;; "src/audacity.desktop") CONFIG_FILES="$CONFIG_FILES src/audacity.desktop" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; diff --git a/configure.ac b/configure.ac index 02c7a70b0..8d7ad6036 100644 --- a/configure.ac +++ b/configure.ac @@ -708,6 +708,7 @@ AC_CONFIG_FILES([ images/Makefile lib-src/Makefile po/Makefile.in + nyq-po/Makefile.in src/audacity.desktop src/Makefile tests/Makefile diff --git a/locale/audacity.pot b/locale/audacity.pot index b76059d38..082cec63d 100644 --- a/locale/audacity.pot +++ b/locale/audacity.pot @@ -6,6 +6,7 @@ #, fuzzy msgid "" msgstr "" +"#-#-#-#-# audacity.pot (audacity 2.2.2) #-#-#-#-#\n" "Project-Id-Version: audacity 2.2.2\n" "Report-Msgid-Bugs-To: audacity-translation@lists.sourceforge.net\n" "POT-Creation-Date: 2018-03-01 20:00-0500\n" @@ -17,6 +18,17 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +"#-#-#-#-# audacity.pot (audacity 2.2.2) #-#-#-#-#\n" +"Project-Id-Version: audacity 2.2.2\n" +"Report-Msgid-Bugs-To: audacity-translation@lists.sourceforge.net\n" +"POT-Creation-Date: 2018-03-02 15:12-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" #: lib-src/FileDialog/gtk/FileDialogPrivate.cpp #, c-format @@ -544,7 +556,7 @@ msgid "" msgstr "" #: src/AboutDialog.cpp src/commands/AudacityCommand.cpp src/effects/Effect.cpp -#: src/effects/nyquist/Nyquist.cpp +#: src/effects/nyquist/Nyquist.cpp plug-ins/beat.ny msgid "Audacity" msgstr "" @@ -2049,11 +2061,13 @@ msgstr "" msgid "Log frequency" msgstr "" +#. #-#-#-#-# audacity.pot (audacity 2.2.2) #-#-#-#-# #. i18n-hint: short form of 'decibels'. #: src/FreqWindow.cpp src/commands/SetTrackInfoCommand.cpp #: src/effects/AutoDuck.cpp src/effects/Compressor.cpp #: src/effects/Equalization.cpp src/effects/Normalize.cpp #: src/effects/ScienFilter.cpp src/widgets/Meter.cpp +#: plug-ins/sample-data-export.ny msgid "dB" msgstr "" @@ -2331,7 +2345,7 @@ msgstr "" msgid "&Manage History" msgstr "" -#: src/HistoryWindow.cpp src/effects/TruncSilence.cpp +#: src/HistoryWindow.cpp src/effects/TruncSilence.cpp plug-ins/vocalrediso.ny msgid "Action" msgstr "" @@ -2443,8 +2457,9 @@ msgstr "" msgid "Track" msgstr "" +#. #-#-#-#-# audacity.pot (audacity 2.2.2) #-#-#-#-# #. i18n-hint: (noun) -#: src/LabelDialog.cpp src/LabelTrack.cpp src/Menus.cpp +#: src/LabelDialog.cpp src/LabelTrack.cpp src/Menus.cpp plug-ins/equalabel.ny msgid "Label" msgstr "" @@ -4792,11 +4807,13 @@ msgid "" "Only use modules from trusted sources" msgstr "" -#: src/ModuleManager.cpp src/TimerRecordDialog.cpp +#: src/ModuleManager.cpp src/TimerRecordDialog.cpp plug-ins/delay.ny +#: plug-ins/equalabel.ny plug-ins/limiter.ny plug-ins/sample-data-export.ny msgid "Yes" msgstr "" -#: src/ModuleManager.cpp src/TimerRecordDialog.cpp +#: src/ModuleManager.cpp src/TimerRecordDialog.cpp plug-ins/delay.ny +#: plug-ins/equalabel.ny plug-ins/limiter.ny plug-ins/sample-data-export.ny msgid "No" msgstr "" @@ -6805,6 +6822,7 @@ msgstr "" #: src/commands/ScreenshotCommand.cpp src/effects/Effect.cpp #: src/prefs/QualityPrefs.cpp src/prefs/TracksBehaviorsPrefs.cpp +#: plug-ins/sample-data-export.ny msgid "None" msgstr "" @@ -7034,7 +7052,7 @@ msgstr "" #: src/commands/SetTrackInfoCommand.cpp src/effects/ToneGen.cpp #: src/prefs/SpectrogramSettings.cpp src/prefs/WaveformSettings.cpp -#: src/widgets/Meter.cpp +#: src/widgets/Meter.cpp plug-ins/sample-data-export.ny msgid "Linear" msgstr "" @@ -11088,6 +11106,7 @@ msgid "Fast" msgstr "" #: src/export/ExportMP3.cpp src/prefs/KeyConfigPrefs.cpp +#: plug-ins/sample-data-export.ny msgid "Standard" msgstr "" @@ -13365,7 +13384,7 @@ msgstr "" msgid "Minutes" msgstr "" -#: src/prefs/TracksPrefs.cpp +#: src/prefs/TracksPrefs.cpp plug-ins/sample-data-export.ny msgid "Seconds" msgstr "" @@ -14642,7 +14661,7 @@ msgstr "" msgid "Orientation" msgstr "" -#: src/widgets/Meter.cpp +#: src/widgets/Meter.cpp plug-ins/crossfadetracks.ny msgid "Automatic" msgstr "" @@ -14748,11 +14767,12 @@ msgstr "" msgid "0100 h 060 m 060 s+.# samples" msgstr "" +#. #-#-#-#-# audacity.pot (audacity 2.2.2) #-#-#-#-# #. i18n-hint: Name of time display format that shows time in samples (at the #. * current project sample rate). For example the number of a sample at 1 #. * second into a recording at 44.1KHz would be 44,100. #. -#: src/widgets/NumericTextCtrl.cpp +#: src/widgets/NumericTextCtrl.cpp plug-ins/sample-data-export.ny msgid "samples" msgstr "" @@ -15196,3 +15216,1732 @@ msgstr "" #, c-format msgid "Could not load file: \"%s\"" msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "Silence Finder" +msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "Finding silence..." +msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "" +"Adds point labels in areas of silence according to the specified\n" +"level and duration of silence. If too many silences are detected,\n" +"increase the silence level and duration; if too few are detected,\n" +"reduce the level and duration." +msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "Alex S. Brown" +msgstr "" + +#: plug-ins/SilenceMarker.ny plug-ins/SoundFinder.ny +#: plug-ins/SpectralEditMulti.ny plug-ins/SpectralEditParametricEQ.ny +#: plug-ins/SpectralEditShelves.ny plug-ins/StudioFadeOut.ny +#: plug-ins/adjustable-fade.ny plug-ins/beat.ny plug-ins/crossfadeclips.ny +#: plug-ins/crossfadetracks.ny plug-ins/delay.ny plug-ins/equalabel.ny +#: plug-ins/highpass.ny plug-ins/limiter.ny plug-ins/lowpass.ny +#: plug-ins/notch.ny plug-ins/pluck.ny plug-ins/rhythmtrack.ny +#: plug-ins/rissetdrum.ny plug-ins/sample-data-export.ny +#: plug-ins/sample-data-import.ny plug-ins/tremolo.ny plug-ins/vocalrediso.ny +#: plug-ins/vocalremover.ny plug-ins/vocoder.ny +msgid "Released under terms of the GNU General Public License version 2" +msgstr "" + +#: plug-ins/SilenceMarker.ny plug-ins/SoundFinder.ny +msgid "Treat audio below this level as silence [ -dB]" +msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "Minimum duration of silence [seconds]" +msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "Label placement [seconds before silence ends]" +msgstr "" + +#: plug-ins/SilenceMarker.ny +#, lisp-format +msgid "" +"No silences found. Try reducing the silence~%level and minimum silence " +"duration." +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Sound Finder" +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Finding sound..." +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "" +"Adds region labels for areas of sound according to the specified level\n" +"and duration of surrounding silence. If too many labels are produced,\n" +"increase the silence level and duration; if too few are produced,\n" +"reduce the level and duration." +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Jeremy R. Brown" +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Minimum duration of silence between sounds [seconds]" +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Label starting point [seconds before sound starts]" +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Label ending point [seconds after sound ends]" +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Add a label at the end of the track? [No=0, Yes=1]" +msgstr "" + +#: plug-ins/SoundFinder.ny +#, lisp-format +msgid "" +"No sounds found. Try reducing the silence~%level and minimum silence " +"duration." +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "[End]" +msgstr "" + +#: plug-ins/SpectralEditMulti.ny +msgid "Spectral edit multi tool" +msgstr "" + +#: plug-ins/SpectralEditMulti.ny plug-ins/SpectralEditParametricEQ.ny +#: plug-ins/SpectralEditShelves.ny +msgid "Filtering..." +msgstr "" + +#: plug-ins/SpectralEditMulti.ny plug-ins/SpectralEditParametricEQ.ny +#: plug-ins/SpectralEditShelves.ny +msgid "Paul Licameli" +msgstr "" + +#: plug-ins/SpectralEditMulti.ny plug-ins/SpectralEditParametricEQ.ny +#: plug-ins/SpectralEditShelves.ny +#, lisp-format +msgid "~aPlease select frequencies." +msgstr "" + +#: plug-ins/SpectralEditMulti.ny +#, lisp-format +msgid "" +"~aBandwidth is zero (the upper and lower~%~\n" +" frequencies are both ~a Hz).~%~\n" +" Please select a frequency range." +msgstr "" + +#: plug-ins/SpectralEditMulti.ny +#, lisp-format +msgid "" +"~aNotch filter parameters cannot be applied.~%~\n" +" Try increasing the low frequency bound~%~\n" +" or reduce the filter 'Width'." +msgstr "" + +#: plug-ins/SpectralEditMulti.ny plug-ins/SpectralEditParametricEQ.ny +#: plug-ins/SpectralEditShelves.ny +#, lisp-format +msgid "Error.~%" +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny +msgid "Spectral edit parametric EQ" +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny plug-ins/SpectralEditShelves.ny +msgid "Gain (dB)" +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny +#, lisp-format +msgid "~aLow frequency is undefined." +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny +#, lisp-format +msgid "~aHigh frequency is undefined." +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny +#, lisp-format +msgid "~aCenter frequency must be above 0 Hz." +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny +#, lisp-format +msgid "" +"~aFrequency selection is too high for track sample rate.~%~\n" +" For the current track, the high frequency setting " +"cannot~%~\n" +" be greater than ~a Hz" +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny plug-ins/SpectralEditShelves.ny +#, lisp-format +msgid "" +"~aBandwidth is zero (the upper and lower~%~\n" +" frequencies are both ~a Hz).~%~\n" +" Please select a frequency range." +msgstr "" + +#: plug-ins/SpectralEditShelves.ny +msgid "Spectral edit shelves" +msgstr "" + +#: plug-ins/StudioFadeOut.ny +msgid "Studio Fade Out" +msgstr "" + +#: plug-ins/StudioFadeOut.ny plug-ins/adjustable-fade.ny +msgid "Applying Fade..." +msgstr "" + +#: plug-ins/StudioFadeOut.ny plug-ins/adjustable-fade.ny +#: plug-ins/crossfadeclips.ny plug-ins/crossfadetracks.ny plug-ins/delay.ny +#: plug-ins/equalabel.ny plug-ins/limiter.ny plug-ins/sample-data-export.ny +#: plug-ins/sample-data-import.ny plug-ins/tremolo.ny plug-ins/vocalremover.ny +msgid "Steve Daulton" +msgstr "" + +#: plug-ins/StudioFadeOut.ny +#, lisp-format +msgid "Selection too short.~%It must be more than 2 samples." +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Adjustable Fade" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Fade Type" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Fade Up" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Fade Down" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "S-Curve Up" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "S-Curve Down" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Mid-fade Adjust (%)" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Start/End as" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "% of Original" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "dB Gain" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Start (or end)" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "End (or start)" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "" +" Handy Presets\n" +"(override controls)" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "None Selected" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Linear In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Linear Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Exponential In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Exponential Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Logarithmic In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Logarithmic Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Rounded In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Rounded Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Cosine In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Cosine Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "S-Curve In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "S-Curve Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +#, lisp-format +msgid "~aPercentage values cannot be negative." +msgstr "" + +#: plug-ins/adjustable-fade.ny +#, lisp-format +msgid "~aPercentage values cannot be more than 1000 %." +msgstr "" + +#: plug-ins/adjustable-fade.ny +#, lisp-format +msgid "" +"~adB values cannot be more than +100 dB.~%~%~\n" +" Hint: 6 dB doubles the amplitude~%~\n" +" t-6 dB halves the amplitude." +msgstr "" + +#: plug-ins/adjustable-fade.ny +#, lisp-format +msgid "Error~%~%" +msgstr "" + +#: plug-ins/beat.ny +msgid "Beat Finder" +msgstr "" + +#: plug-ins/beat.ny +msgid "Finding beats..." +msgstr "" + +#: plug-ins/beat.ny +msgid "Threshold Percentage" +msgstr "" + +#: plug-ins/clipfix.ny +msgid "Clip Fix" +msgstr "" + +#: plug-ins/clipfix.ny +msgid "Reconstructing clips..." +msgstr "" + +#: plug-ins/clipfix.ny +msgid "Benjamin Schwartz and Steve Daulton" +msgstr "" + +#: plug-ins/clipfix.ny +msgid "" +"Licensing confirmed under terms of the GNU General Public License version 2" +msgstr "" + +#: plug-ins/clipfix.ny +msgid "Threshold of Clipping (%)" +msgstr "" + +#: plug-ins/clipfix.ny +msgid "Reduce amplitude to allow for restored peaks (dB)" +msgstr "" + +#: plug-ins/crossfadeclips.ny +msgid "Crossfade Clips" +msgstr "" + +#: plug-ins/crossfadeclips.ny plug-ins/crossfadetracks.ny +msgid "Crossfading..." +msgstr "" + +#: plug-ins/crossfadeclips.ny +#, lisp-format +msgid "Error.~%Invalid selection.~%More than 2 audio clips selected." +msgstr "" + +#: plug-ins/crossfadeclips.ny +#, lisp-format +msgid "Error.~%Invalid selection.~%Empty space at start/ end of the selection." +msgstr "" + +#: plug-ins/crossfadeclips.ny +#, lisp-format +msgid "Error.~%Crossfade Clips may only be applied to one track." +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Crossfade Tracks" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Fade type" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Constant Gain" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Constant Power 1" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Constant Power 2" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Custom Curve" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Custom curve" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Fade direction" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Alternating Out / In" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Alternating In / Out" +msgstr "" + +#: plug-ins/crossfadetracks.ny +#, lisp-format +msgid "Error.~%Select 2 (or more) tracks to crossfade." +msgstr "" + +#: plug-ins/delay.ny +msgid "Delay" +msgstr "" + +#: plug-ins/delay.ny +msgid "Applying Delay Effect..." +msgstr "" + +#: plug-ins/delay.ny +msgid "Delay type" +msgstr "" + +#: plug-ins/delay.ny +msgid "regular" +msgstr "" + +#: plug-ins/delay.ny +msgid "bouncing ball" +msgstr "" + +#: plug-ins/delay.ny +msgid "reverse bouncing ball" +msgstr "" + +#: plug-ins/delay.ny +msgid "Delay level per echo (dB)" +msgstr "" + +#: plug-ins/delay.ny +msgid "Delay time (seconds)" +msgstr "" + +#: plug-ins/delay.ny +msgid "Pitch change effect" +msgstr "" + +#: plug-ins/delay.ny +msgid "Pitch/Tempo" +msgstr "" + +#: plug-ins/delay.ny +msgid "LQ Pitch Shift" +msgstr "" + +#: plug-ins/delay.ny +msgid "Pitch change per echo (semitones)" +msgstr "" + +#: plug-ins/delay.ny +msgid "Number of echoes" +msgstr "" + +#: plug-ins/delay.ny +msgid "Allow duration to change" +msgstr "" + +#: plug-ins/delay.ny +#, lisp-format +msgid "Number of echoes '~a' outside valid range 1 to 50.~%~a" +msgstr "" + +#: plug-ins/delay.ny +#, lisp-format +msgid "Pitch change '~a' outside valid range -12 to +12 semitones.~%~a" +msgstr "" + +#: plug-ins/delay.ny +#, lisp-format +msgid "Delay time '~a' outside valid range 0 to 10 seconds.~%~a" +msgstr "" + +#: plug-ins/delay.ny +#, lisp-format +msgid "Delay level '~a' outside valid range -30 to +6 dB.~%~a" +msgstr "" + +#: plug-ins/delay.ny plug-ins/sample-data-export.ny +#, lisp-format +msgid "Error.~%~a" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Regular Interval Labels" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Adding equally-spaced labels to the label track..." +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Use 'Number of labels' OR 'Label interval'" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Number of labels" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Label interval" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Label interval (seconds)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Adjust label interval to fit length" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Label text" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Minimum number of digits in label" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "None - text only" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "1 (before label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "2 (before label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "3 (before label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "1 (after label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "2 (after label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "3 (after label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Begin numbering from" +msgstr "" + +#: plug-ins/highpass.ny +msgid "High Pass Filter" +msgstr "" + +#: plug-ins/highpass.ny +msgid "Performing High Pass Filter..." +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny plug-ins/rhythmtrack.ny +msgid "Dominic Mazzoni" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny plug-ins/notch.ny +#: plug-ins/rissetdrum.ny plug-ins/tremolo.ny +msgid "Frequency (Hz)" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "Rolloff (dB per octave)" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "6 dB" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "12 dB" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "24 dB" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "36 dB" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "48 dB" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny plug-ins/notch.ny +msgid "Frequency must be at least 0.1 Hz." +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +#, lisp-format +msgid "" +"Error:~%~%Frequency (~a Hz) is too high for track sample rate.~%~%~\n" +" Track sample rate is ~a Hz~%~\n" +" Frequency must be less than ~a Hz." +msgstr "" + +#: plug-ins/limiter.ny +msgid "Limiter" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Limiting..." +msgstr "" + +#: plug-ins/limiter.ny +msgid "Type" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Soft Limit" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Hard Limit" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Soft Clip" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Hard Clip" +msgstr "" + +#: plug-ins/limiter.ny +msgid "" +"Input Gain (dB)\n" +"mono/Left" +msgstr "" + +#: plug-ins/limiter.ny +msgid "" +"Input Gain (dB)\n" +"Right channel" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Limit to (dB)" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Hold (ms)" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Apply Make-up Gain" +msgstr "" + +#: plug-ins/lowpass.ny +msgid "Low Pass Filter" +msgstr "" + +#: plug-ins/lowpass.ny +msgid "Performing Low Pass Filter..." +msgstr "" + +#: plug-ins/notch.ny +msgid "Notch Filter" +msgstr "" + +#: plug-ins/notch.ny +msgid "Applying Notch Filter..." +msgstr "" + +#: plug-ins/notch.ny +msgid "Steve Daulton and Bill Wharrie" +msgstr "" + +#: plug-ins/notch.ny +msgid "Q (higher value reduces width)" +msgstr "" + +#: plug-ins/notch.ny +#, lisp-format +msgid "" +"Error:~%~%Frequency (~a Hz) is too high for track sample rate.~%~%~\n" +" Track sample rate is ~a Hz.~%~\n" +" Frequency must be less than ~a Hz." +msgstr "" + +#: plug-ins/pluck.ny +msgid "Pluck" +msgstr "" + +#: plug-ins/pluck.ny +msgid "Generating pluck sound..." +msgstr "" + +#: plug-ins/pluck.ny +msgid "MIDI values for C notes: 36, 48, 60 [middle C], 72, 84, 96." +msgstr "" + +#: plug-ins/pluck.ny +msgid "David R.Sky" +msgstr "" + +#: plug-ins/pluck.ny +msgid "Pluck MIDI pitch" +msgstr "" + +#: plug-ins/pluck.ny +msgid "Fade-out type" +msgstr "" + +#: plug-ins/pluck.ny +msgid "abrupt" +msgstr "" + +#: plug-ins/pluck.ny +msgid "gradual" +msgstr "" + +#: plug-ins/pluck.ny +msgid "Duration [seconds]" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Rhythm Track" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Generating Rhythm..." +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Action choice" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Generate track" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Help screen 1" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Help screen 2" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Tempo (beats per minute)" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "30 - 300 beats/minute" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Beats per measure (bar)" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "1 - 20 beats/measure" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Swing amount" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "+/- 1" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Number of measures (bars)" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "1 - 1000 bars" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Optional rhythm track duration (minutes seconds)" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Whole numbers only" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Start time offset (seconds)" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "0 - 30 seconds" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Beat sound" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Metronome tick" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Ping" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Cowbell" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Resonant noise" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Noise click" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Drip" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "MIDI pitch of strong beat" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "18 - 116" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "MIDI pitch of weak beat" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "" +"Rhythm Track Generator help - screen 1 of 2\n" +"\n" +"Generates a rhythm track at the selected tempo, beats per\n" +"measure, and either number of measures or track duration,\n" +"using the selected sound.\n" +"\n" +"'Tempo': number of beats (clicks) per minute.\n" +"\n" +"'Beats per measure (bar)': For example, 3/4 time means one\n" +"strong beat then two others to form one bar, repeated\n" +"depending on 'number of measures' or 'rhythm track duration'.\n" +"\n" +"'Swing amount': When set to a non-zero amount, alternate\n" +"beats are delayed or advanced to give a swing feel. At\n" +"maximum / minimum settings the rhythm plays with triplet timing.\n" +"\n" +"'Optional rhythm track duration': If you enter a value into this\n" +"field, either (minutes seconds - separated by a space), or\n" +"(seconds), the generated rhythm track will be at or slightly\n" +"longer than this duration: the end of the track is extended\n" +"into a whole measure if the entered duration does not\n" +"produce this. Use whole numbers only.\n" +"\n" +"If you enter a value into this field, the 'number of measures'\n" +"value will be ignored.\n" +"\n" +"To generate rhythm track or view help screen 2,\n" +"restart Rhythm Track and select from 'Action choice'." +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "" +"Rhythm Track Generator help - screen 2 of 2\n" +"\n" +"'Start time offset': makes the rhythm track start at a later\n" +"time than the very beginning (zero seconds), maximum\n" +"of 30 seconds.\n" +"\n" +"'Beat sound': choose which sound to use for the beats.\n" +"\n" +"'MIDI pitch of strong/weak beat': MIDI values indicate\n" +"what pitch to use. C-notes are:\n" +"\n" +"24, 36, 48, 60 (middle C), 72, 84, 96, 108.\n" +"C# (C-sharp) above middle C is 61.\n" +"\n" +"To generate rhythm track or view help screen 1,\n" +"restart Rhythm Track and select from 'Action choice'." +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Tempo ~a outside valid range 30 to 300 bpm\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Beats per measure ~a outside valid range 1 to 20\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Number of measures ~a outside valid range 1 to 1000\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Time offset ~a outside valid range 0 to 30 seconds\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Filter quality q ~a outside valid range 1 to 20\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "High MIDI pitch ~a outside valid range 18 to 116\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Low MIDI pitch ~a outside valid range 18 to 116\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "" +"If used, 'Optional rhythm track duration' must be \n" +"entered as either one number (seconds0, or two \n" +"numbers (minutes seconds) separated by a space.\n" +"Use whole numbers only.~%" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "~a seconds is outside valid range 0 to 3660~%" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "~a is outside valid range 0 to (60 59)~%" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Error.~%You have entered at least one invalid value:~%~%" +msgstr "" + +#. i18n-hint named for Jean-Claude Risset (silent t) +#: plug-ins/rissetdrum.ny +msgid "Risset Drum" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Generating Risset Drum..." +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Steven Jones" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Decay (seconds)" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Center frequency of noise (Hz)" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Width of noise band (Hz)" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Amount of noise in mix (percent)" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Amplitude (0 - 1)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Sample Data Export" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Analyzing..." +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Limit output to first" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Measurement scale" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "File data format" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Sample List (txt)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Indexed List (txt)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Time Indexed (txt)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Data (csv)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Web Page (html)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Include header information" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Minimal" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "All" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Optional header text" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Channel layout for stereo" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "L-R on Same Line" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Alternate Lines" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "L Channel First" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Show messages" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Errors Only" +msgstr "" + +#: plug-ins/sample-data-export.ny plug-ins/sample-data-import.ny +msgid "File name" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "sample-data" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Output folder" +msgstr "" + +#: plug-ins/sample-data-export.ny plug-ins/sample-data-import.ny +msgid "Home directory" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Allow files to be overwritten" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "No samples selected." +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Cannot export more than 1 million samples." +msgstr "" + +#. i18n-hint abbreviates negative infinity +#: plug-ins/sample-data-export.ny +msgid "[-inf]" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left Channel.~%~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~%~%Right Channel.~%~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~aData written to:~%~a~a~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Output folder \"~a~a\" cannot be accessed." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "\"~a~a~a\" cannot be written." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Sample Rate: ~a Hz. Sample values on ~a scale.~%~a~%~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "" +"~a ~a~%~aSample Rate: ~a Hz.~%Length processed: ~a samples ~a seconds.~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "" +"~a ~a~%~aSample Rate: ~a Hz. Sample values on ~a scale.~%~\n" +"Length processed: ~a samples ~a seconds.~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "" +"~a~%Sample Rate: ~a Hz. Sample values on ~a scale. ~a.~%~aLength processed: " +"~a ~\n" +"samples, ~a seconds.~%Peak amplitude: ~a (lin) ~a dB. Unweighted RMS: ~a dB." +"~%~\n" +"DC offset: ~a~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~a linear, ~a dB." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left: ~a lin, ~a dB | Right: ~a lin, ~a dB." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~a samples." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~a seconds." +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Audio data analysis:" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Sample Rate:   ~a Hz." +msgstr "" + +#. i18n-hint: abbreviates "linear" and "decibels" +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Peak Amplitude:   ~a (lin)   ~a dB." +msgstr "" + +#. i18n-hint: RMS abbreviates root-mean-square, a method of averaging a signal; there also "weighted" versions of it but this isn't that +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "RMS (unweighted):   ~a dB." +msgstr "" + +#. i18n-hint: DC derives from "direct current" in electronics, really means the zero frequency component of a signal +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "DC Offset:   ~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~a linear,   ~a dB." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left: ~a lin, ~a dB | Right: ~a linear,   ~a dB." +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "sample data" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Sample #" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Value (linear)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Value (dB)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "audio sample value analysis" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Left (linear)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Right (linear)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Left (dB)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Right (dB)" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "" +"Produced with Sample Data Export for\n" +"Audacity by Steve\n" +"Daulton" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "linear" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "2 channels (stereo)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "1 channel (mono)" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "One column per channel.~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "One row per channel.~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left channel then Right channel on same line.~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left and right channels on alternate lines.~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left channel first then right channel.~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Unspecified channel order" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~a is not a number." +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "Sample Data Import" +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "Reading and rendering samples..." +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "File location (path to file)" +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "Invalid data handling" +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "Throw error" +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "Read as zero" +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "Error~%No file name." +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "" +"Error~%The file must be a plain ASCII text file~%with '.txt' file extension." +msgstr "" + +#. i18n-hint: ~~ format directive must be preserved; displays as one ~ +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "Error~%'~~/' is not valid on Windows" +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "" +"Error~%~\n" +" Directory '~a' could not be opened." +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "" +"Error~%~\n" +" '~a~a~a' could not be opened.~%~\n" +" Check that file exists." +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "" +"Error:~%~\n" +" The file must contain only plain ASCII text.~%~\n" +" (Invalid byte '~a' at byte number: ~a)" +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "" +"Error~%~\n" +" Data must be numbers in plain ASCII text.~%~\n" +" '~a' is not a numeric value." +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "Error.~%Unable to open file" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "Tremolo" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "Applying Tremolo..." +msgstr "" + +#: plug-ins/tremolo.ny +msgid "Waveform type" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "sine" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "triangle" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "sawtooth" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "inverse sawtooth" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "square" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "Starting phase (degrees)" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "Wet level (percent)" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Vocal Reduction and Isolation" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Applying Action..." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Robert Haenggi" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Remove Vocals" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Isolate Vocals" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Isolate Vocals and Invert" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Remove Center" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Isolate Center" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Isolate Center and Invert" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Remove Center Classic: Mono" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Analyze" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Strength" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Low Cut for Vocals (Hz)" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "High Cut for Vocals (Hz)" +msgstr "" + +#: plug-ins/vocalrediso.ny +#, lisp-format +msgid "" +"Average x: ~a, y: ~a\n" +"Covariance x y: ~a\n" +"Average variance x: ~a, y: ~a\n" +"Standard deviation x: ~a, y: ~a\n" +"Coefficient of correlation: ~a\n" +"Coefficient of determination: ~a \n" +"Variation of residuals: ~a\n" +"y equals ~a plus ~a times x~%" +msgstr "" + +#: plug-ins/vocalrediso.ny +#, lisp-format +msgid "" +"Pan position: ~a~%The left and right channels are correlated by about ~a %. " +"This means:~%~a~%" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - The two channels are identical, i.e. dual mono.\n" +" The center can't be removed.\n" +" Any remaining difference may be caused by lossy encoding." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - The two Channels are strongly related, i.e. nearly mono or extremely " +"panned.\n" +" Most likely, the center extraction will be poor." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - A fairly good value, at least stereo in average and not too wide spread." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - An ideal value for Stereo.\n" +" However, the center extraction depends also on the used reverb." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - The two channels are almost not related.\n" +" Either you have only noise or the piece is mastered in a unbalanced " +"manner.\n" +" The center extraction can still be good though." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - Although the Track is stereo, the field is obviously extra wide.\n" +" This can cause strange effects.\n" +" Especially when played by only one speaker." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - The two channels are nearly identical.\n" +" Obviously, a pseudo stereo effect has been used\n" +" to spread the signal over the physical distance between the speakers.\n" +" Don't expect good results from a center removal." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "This plug-in works only with stereo tracks." +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Vocal Remover" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Removing center-panned audio..." +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "For reducing center-panned vocals" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Remove vocals or view Help" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Remove vocals" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "View Help" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Removal choice" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Simple (entire spectrum)" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Remove frequency band" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Retain frequency band" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Frequency band from (Hz)" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Frequency band to (Hz)" +msgstr "" + +#: plug-ins/vocalremover.ny +#, lisp-format +msgid "" +"Vocal Remover requires a stereo track. It works best with\n" +"lossless files like WAV or AIFF, rather than MP3 or\n" +"other compressed formats. It only removes vocals or other\n" +"audio that is panned to center (sounds equally loud in left\n" +"and right). Vocals may be mixed this way. Inverting one\n" +"channel then panning both to center cancels out any audio\n" +"which was originally center-panned, making it inaudible.\n" +"This can remove some parts of the audio you may want to\n" +"keep, such as drums, which are also often mixed to center.\n" +"If the vocals and other centered parts differ in pitch,\n" +"this can be solved by removing only selected frequencies.~%\n" +"Vocal Remover thus has three choices of removal method.\n" +"'Simple' inverts the entire frequency spectrum of one\n" +"channel. This may remove too much music if other parts of\n" +"the audio are centered as well as the vocals. In that case,\n" +"try the other choices. If the vocals are at a different\n" +"pitch than the other audio (such as a high female voice),\n" +"try 'Remove frequency band'. This only removes frequencies\n" +"between a lower and upper limit which you can enter in the\n" +"'Frequency band...' boxes. Experiment by entering what\n" +"sounds like the most significant frequency range of the\n" +"original vocals. If the other choices remove too much\n" +"audio in a particular frequency range (such as low drums\n" +"or bass), try 'Retain frequency band'. This only removes\n" +"frequencies outside the limits, retaining the others." +msgstr "" + +#: plug-ins/vocalremover.ny +#, lisp-format +msgid "" +"~%Vocal Remover requires an unsplit, stereo track.~%~\n" +"If you have a stereo track split into left and right~%~\n" +"channels, use 'Make Stereo Track' on the Track~%~\n" +"Drop-Down Menu, then run Vocal Remover again.~%" +msgstr "" + +#: plug-ins/vocalremover.ny +#, lisp-format +msgid "" +"Warning:~%~\n" +" Selected band-stop filter is~%~\n" +" ~a Hz to ~a Hz.~%~\n" +" A very narrow stop-band filter may have~%~\n" +" unexpected results.~%~%" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Current settings returned the original audio." +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Vocoder" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Processing Vocoder..." +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Edgar-RFT" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Distance: (1 to 120, default = 20)" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Output choice" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "both channels" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "right only" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Number of vocoder bands" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Amplitude of original audio (percent)" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Amplitude of white noise (percent)" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Amplitude of Radar Needles (percent)" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Frequency of Radar Needles (Hz)" +msgstr "" + +#: plug-ins/vocoder.ny +#, lisp-format +msgid "Error.~%Stereo track required." +msgstr "" diff --git a/nyq-po/LINGUAS b/nyq-po/LINGUAS new file mode 120000 index 000000000..51aa6bece --- /dev/null +++ b/nyq-po/LINGUAS @@ -0,0 +1 @@ +locale/LINGUAS \ No newline at end of file diff --git a/nyq-po/Makefile.in.in b/nyq-po/Makefile.in.in new file mode 100644 index 000000000..83d8838ac --- /dev/null +++ b/nyq-po/Makefile.in.in @@ -0,0 +1,444 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.18 +GETTEXT_MACRO_VERSION = 0.18 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: check-macro-version all-@USE_NLS@ + +all-yes: stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +check-macro-version: + @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ + package_gnu='GNU '; \ + else \ + package_gnu=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_gnu}@PACKAGE@" \ + --package-version='@VERSION@' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +# Recreate Makefile by invoking config.status. Explicitly invoke the shell, +# because execution permission bits may not work on the current file system. +# Use @SHELL@, which is the shell determined by autoconf for the use by its +# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && @SHELL@ ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/nyq-po/Makevars b/nyq-po/Makevars new file mode 100644 index 000000000..9285461ee --- /dev/null +++ b/nyq-po/Makevars @@ -0,0 +1,41 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = nyq-po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = -L lisp --add-comments=" i18n" --add-location=file --keyword=_ + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Audacity Team + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = audacity-translation@lists.sourceforge.net + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = diff --git a/nyq-po/POTFILES.in b/nyq-po/POTFILES.in new file mode 100644 index 000000000..8c497311e --- /dev/null +++ b/nyq-po/POTFILES.in @@ -0,0 +1,26 @@ +plug-ins/SilenceMarker.ny +plug-ins/SoundFinder.ny +plug-ins/SpectralEditMulti.ny +plug-ins/SpectralEditParametricEQ.ny +plug-ins/SpectralEditShelves.ny +plug-ins/StudioFadeOut.ny +plug-ins/adjustable-fade.ny +plug-ins/beat.ny +plug-ins/clipfix.ny +plug-ins/crossfadeclips.ny +plug-ins/crossfadetracks.ny +plug-ins/delay.ny +plug-ins/equalabel.ny +plug-ins/highpass.ny +plug-ins/limiter.ny +plug-ins/lowpass.ny +plug-ins/notch.ny +plug-ins/pluck.ny +plug-ins/rhythmtrack.ny +plug-ins/rissetdrum.ny +plug-ins/sample-data-export.ny +plug-ins/sample-data-import.ny +plug-ins/tremolo.ny +plug-ins/vocalrediso.ny +plug-ins/vocalremover.ny +plug-ins/vocoder.ny diff --git a/nyq-po/audacity.pot b/nyq-po/audacity.pot new file mode 100644 index 000000000..b3ca853b2 --- /dev/null +++ b/nyq-po/audacity.pot @@ -0,0 +1,1797 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Audacity Team +# This file is distributed under the same license as the audacity package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: audacity 2.2.2\n" +"Report-Msgid-Bugs-To: audacity-translation@lists.sourceforge.net\n" +"POT-Creation-Date: 2018-03-02 15:12-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: plug-ins/SilenceMarker.ny +msgid "Silence Finder" +msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "Finding silence..." +msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "" +"Adds point labels in areas of silence according to the specified\n" +"level and duration of silence. If too many silences are detected,\n" +"increase the silence level and duration; if too few are detected,\n" +"reduce the level and duration." +msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "Alex S. Brown" +msgstr "" + +#: plug-ins/SilenceMarker.ny plug-ins/SoundFinder.ny +#: plug-ins/SpectralEditMulti.ny plug-ins/SpectralEditParametricEQ.ny +#: plug-ins/SpectralEditShelves.ny plug-ins/StudioFadeOut.ny +#: plug-ins/adjustable-fade.ny plug-ins/beat.ny plug-ins/crossfadeclips.ny +#: plug-ins/crossfadetracks.ny plug-ins/delay.ny plug-ins/equalabel.ny +#: plug-ins/highpass.ny plug-ins/limiter.ny plug-ins/lowpass.ny +#: plug-ins/notch.ny plug-ins/pluck.ny plug-ins/rhythmtrack.ny +#: plug-ins/rissetdrum.ny plug-ins/sample-data-export.ny +#: plug-ins/sample-data-import.ny plug-ins/tremolo.ny plug-ins/vocalrediso.ny +#: plug-ins/vocalremover.ny plug-ins/vocoder.ny +msgid "Released under terms of the GNU General Public License version 2" +msgstr "" + +#: plug-ins/SilenceMarker.ny plug-ins/SoundFinder.ny +msgid "Treat audio below this level as silence [ -dB]" +msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "Minimum duration of silence [seconds]" +msgstr "" + +#: plug-ins/SilenceMarker.ny +msgid "Label placement [seconds before silence ends]" +msgstr "" + +#: plug-ins/SilenceMarker.ny +#, lisp-format +msgid "" +"No silences found. Try reducing the silence~%level and minimum silence " +"duration." +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Sound Finder" +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Finding sound..." +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "" +"Adds region labels for areas of sound according to the specified level\n" +"and duration of surrounding silence. If too many labels are produced,\n" +"increase the silence level and duration; if too few are produced,\n" +"reduce the level and duration." +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Jeremy R. Brown" +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Minimum duration of silence between sounds [seconds]" +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Label starting point [seconds before sound starts]" +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Label ending point [seconds after sound ends]" +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "Add a label at the end of the track? [No=0, Yes=1]" +msgstr "" + +#: plug-ins/SoundFinder.ny +#, lisp-format +msgid "" +"No sounds found. Try reducing the silence~%level and minimum silence " +"duration." +msgstr "" + +#: plug-ins/SoundFinder.ny +msgid "[End]" +msgstr "" + +#: plug-ins/SpectralEditMulti.ny +msgid "Spectral edit multi tool" +msgstr "" + +#: plug-ins/SpectralEditMulti.ny plug-ins/SpectralEditParametricEQ.ny +#: plug-ins/SpectralEditShelves.ny +msgid "Filtering..." +msgstr "" + +#: plug-ins/SpectralEditMulti.ny plug-ins/SpectralEditParametricEQ.ny +#: plug-ins/SpectralEditShelves.ny +msgid "Paul Licameli" +msgstr "" + +#: plug-ins/SpectralEditMulti.ny plug-ins/SpectralEditParametricEQ.ny +#: plug-ins/SpectralEditShelves.ny +#, lisp-format +msgid "~aPlease select frequencies." +msgstr "" + +#: plug-ins/SpectralEditMulti.ny +#, lisp-format +msgid "" +"~aBandwidth is zero (the upper and lower~%~\n" +" frequencies are both ~a Hz).~%~\n" +" Please select a frequency range." +msgstr "" + +#: plug-ins/SpectralEditMulti.ny +#, lisp-format +msgid "" +"~aNotch filter parameters cannot be applied.~%~\n" +" Try increasing the low frequency bound~%~\n" +" or reduce the filter 'Width'." +msgstr "" + +#: plug-ins/SpectralEditMulti.ny plug-ins/SpectralEditParametricEQ.ny +#: plug-ins/SpectralEditShelves.ny +#, lisp-format +msgid "Error.~%" +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny +msgid "Spectral edit parametric EQ" +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny plug-ins/SpectralEditShelves.ny +msgid "Gain (dB)" +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny +#, lisp-format +msgid "~aLow frequency is undefined." +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny +#, lisp-format +msgid "~aHigh frequency is undefined." +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny +#, lisp-format +msgid "~aCenter frequency must be above 0 Hz." +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny +#, lisp-format +msgid "" +"~aFrequency selection is too high for track sample rate.~%~\n" +" For the current track, the high frequency setting " +"cannot~%~\n" +" be greater than ~a Hz" +msgstr "" + +#: plug-ins/SpectralEditParametricEQ.ny plug-ins/SpectralEditShelves.ny +#, lisp-format +msgid "" +"~aBandwidth is zero (the upper and lower~%~\n" +" frequencies are both ~a Hz).~%~\n" +" Please select a frequency range." +msgstr "" + +#: plug-ins/SpectralEditShelves.ny +msgid "Spectral edit shelves" +msgstr "" + +#: plug-ins/StudioFadeOut.ny +msgid "Studio Fade Out" +msgstr "" + +#: plug-ins/StudioFadeOut.ny plug-ins/adjustable-fade.ny +msgid "Applying Fade..." +msgstr "" + +#: plug-ins/StudioFadeOut.ny plug-ins/adjustable-fade.ny +#: plug-ins/crossfadeclips.ny plug-ins/crossfadetracks.ny plug-ins/delay.ny +#: plug-ins/equalabel.ny plug-ins/limiter.ny plug-ins/sample-data-export.ny +#: plug-ins/sample-data-import.ny plug-ins/tremolo.ny plug-ins/vocalremover.ny +msgid "Steve Daulton" +msgstr "" + +#: plug-ins/StudioFadeOut.ny +#, lisp-format +msgid "Selection too short.~%It must be more than 2 samples." +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Adjustable Fade" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Fade Type" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Fade Up" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Fade Down" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "S-Curve Up" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "S-Curve Down" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Mid-fade Adjust (%)" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Start/End as" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "% of Original" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "dB Gain" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Start (or end)" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "End (or start)" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "" +" Handy Presets\n" +"(override controls)" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "None Selected" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Linear In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Linear Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Exponential In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Exponential Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Logarithmic In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Logarithmic Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Rounded In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Rounded Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Cosine In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "Cosine Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "S-Curve In" +msgstr "" + +#: plug-ins/adjustable-fade.ny +msgid "S-Curve Out" +msgstr "" + +#: plug-ins/adjustable-fade.ny +#, lisp-format +msgid "~aPercentage values cannot be negative." +msgstr "" + +#: plug-ins/adjustable-fade.ny +#, lisp-format +msgid "~aPercentage values cannot be more than 1000 %." +msgstr "" + +#: plug-ins/adjustable-fade.ny +#, lisp-format +msgid "" +"~adB values cannot be more than +100 dB.~%~%~\n" +" Hint: 6 dB doubles the amplitude~%~\n" +" t-6 dB halves the amplitude." +msgstr "" + +#: plug-ins/adjustable-fade.ny +#, lisp-format +msgid "Error~%~%" +msgstr "" + +#: plug-ins/beat.ny +msgid "Beat Finder" +msgstr "" + +#: plug-ins/beat.ny +msgid "Finding beats..." +msgstr "" + +#: plug-ins/beat.ny +msgid "Audacity" +msgstr "" + +#: plug-ins/beat.ny +msgid "Threshold Percentage" +msgstr "" + +#: plug-ins/clipfix.ny +msgid "Clip Fix" +msgstr "" + +#: plug-ins/clipfix.ny +msgid "Reconstructing clips..." +msgstr "" + +#: plug-ins/clipfix.ny +msgid "Benjamin Schwartz and Steve Daulton" +msgstr "" + +#: plug-ins/clipfix.ny +msgid "" +"Licensing confirmed under terms of the GNU General Public License version 2" +msgstr "" + +#: plug-ins/clipfix.ny +msgid "Threshold of Clipping (%)" +msgstr "" + +#: plug-ins/clipfix.ny +msgid "Reduce amplitude to allow for restored peaks (dB)" +msgstr "" + +#: plug-ins/crossfadeclips.ny +msgid "Crossfade Clips" +msgstr "" + +#: plug-ins/crossfadeclips.ny plug-ins/crossfadetracks.ny +msgid "Crossfading..." +msgstr "" + +#: plug-ins/crossfadeclips.ny +#, lisp-format +msgid "Error.~%Invalid selection.~%More than 2 audio clips selected." +msgstr "" + +#: plug-ins/crossfadeclips.ny +#, lisp-format +msgid "Error.~%Invalid selection.~%Empty space at start/ end of the selection." +msgstr "" + +#: plug-ins/crossfadeclips.ny +#, lisp-format +msgid "Error.~%Crossfade Clips may only be applied to one track." +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Crossfade Tracks" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Fade type" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Constant Gain" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Constant Power 1" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Constant Power 2" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Custom Curve" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Custom curve" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Fade direction" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Automatic" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Alternating Out / In" +msgstr "" + +#: plug-ins/crossfadetracks.ny +msgid "Alternating In / Out" +msgstr "" + +#: plug-ins/crossfadetracks.ny +#, lisp-format +msgid "Error.~%Select 2 (or more) tracks to crossfade." +msgstr "" + +#: plug-ins/delay.ny +msgid "Delay" +msgstr "" + +#: plug-ins/delay.ny +msgid "Applying Delay Effect..." +msgstr "" + +#: plug-ins/delay.ny +msgid "Delay type" +msgstr "" + +#: plug-ins/delay.ny +msgid "regular" +msgstr "" + +#: plug-ins/delay.ny +msgid "bouncing ball" +msgstr "" + +#: plug-ins/delay.ny +msgid "reverse bouncing ball" +msgstr "" + +#: plug-ins/delay.ny +msgid "Delay level per echo (dB)" +msgstr "" + +#: plug-ins/delay.ny +msgid "Delay time (seconds)" +msgstr "" + +#: plug-ins/delay.ny +msgid "Pitch change effect" +msgstr "" + +#: plug-ins/delay.ny +msgid "Pitch/Tempo" +msgstr "" + +#: plug-ins/delay.ny +msgid "LQ Pitch Shift" +msgstr "" + +#: plug-ins/delay.ny +msgid "Pitch change per echo (semitones)" +msgstr "" + +#: plug-ins/delay.ny +msgid "Number of echoes" +msgstr "" + +#: plug-ins/delay.ny +msgid "Allow duration to change" +msgstr "" + +#: plug-ins/delay.ny plug-ins/equalabel.ny plug-ins/limiter.ny +#: plug-ins/sample-data-export.ny +msgid "Yes" +msgstr "" + +#: plug-ins/delay.ny plug-ins/equalabel.ny plug-ins/limiter.ny +#: plug-ins/sample-data-export.ny +msgid "No" +msgstr "" + +#: plug-ins/delay.ny +#, lisp-format +msgid "Number of echoes '~a' outside valid range 1 to 50.~%~a" +msgstr "" + +#: plug-ins/delay.ny +#, lisp-format +msgid "Pitch change '~a' outside valid range -12 to +12 semitones.~%~a" +msgstr "" + +#: plug-ins/delay.ny +#, lisp-format +msgid "Delay time '~a' outside valid range 0 to 10 seconds.~%~a" +msgstr "" + +#: plug-ins/delay.ny +#, lisp-format +msgid "Delay level '~a' outside valid range -30 to +6 dB.~%~a" +msgstr "" + +#: plug-ins/delay.ny plug-ins/sample-data-export.ny +#, lisp-format +msgid "Error.~%~a" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Regular Interval Labels" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Adding equally-spaced labels to the label track..." +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Use 'Number of labels' OR 'Label interval'" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Number of labels" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Label interval" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Label interval (seconds)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Adjust label interval to fit length" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Label text" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Label" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Minimum number of digits in label" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "None - text only" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "1 (before label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "2 (before label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "3 (before label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "1 (after label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "2 (after label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "3 (after label)" +msgstr "" + +#: plug-ins/equalabel.ny +msgid "Begin numbering from" +msgstr "" + +#: plug-ins/highpass.ny +msgid "High Pass Filter" +msgstr "" + +#: plug-ins/highpass.ny +msgid "Performing High Pass Filter..." +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny plug-ins/rhythmtrack.ny +msgid "Dominic Mazzoni" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny plug-ins/notch.ny +#: plug-ins/rissetdrum.ny plug-ins/tremolo.ny +msgid "Frequency (Hz)" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "Rolloff (dB per octave)" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "6 dB" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "12 dB" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "24 dB" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "36 dB" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +msgid "48 dB" +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny plug-ins/notch.ny +msgid "Frequency must be at least 0.1 Hz." +msgstr "" + +#: plug-ins/highpass.ny plug-ins/lowpass.ny +#, lisp-format +msgid "" +"Error:~%~%Frequency (~a Hz) is too high for track sample rate.~%~%~\n" +" Track sample rate is ~a Hz~%~\n" +" Frequency must be less than ~a Hz." +msgstr "" + +#: plug-ins/limiter.ny +msgid "Limiter" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Limiting..." +msgstr "" + +#: plug-ins/limiter.ny +msgid "Type" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Soft Limit" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Hard Limit" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Soft Clip" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Hard Clip" +msgstr "" + +#: plug-ins/limiter.ny +msgid "" +"Input Gain (dB)\n" +"mono/Left" +msgstr "" + +#: plug-ins/limiter.ny +msgid "" +"Input Gain (dB)\n" +"Right channel" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Limit to (dB)" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Hold (ms)" +msgstr "" + +#: plug-ins/limiter.ny +msgid "Apply Make-up Gain" +msgstr "" + +#: plug-ins/lowpass.ny +msgid "Low Pass Filter" +msgstr "" + +#: plug-ins/lowpass.ny +msgid "Performing Low Pass Filter..." +msgstr "" + +#: plug-ins/notch.ny +msgid "Notch Filter" +msgstr "" + +#: plug-ins/notch.ny +msgid "Applying Notch Filter..." +msgstr "" + +#: plug-ins/notch.ny +msgid "Steve Daulton and Bill Wharrie" +msgstr "" + +#: plug-ins/notch.ny +msgid "Q (higher value reduces width)" +msgstr "" + +#: plug-ins/notch.ny +#, lisp-format +msgid "" +"Error:~%~%Frequency (~a Hz) is too high for track sample rate.~%~%~\n" +" Track sample rate is ~a Hz.~%~\n" +" Frequency must be less than ~a Hz." +msgstr "" + +#: plug-ins/pluck.ny +msgid "Pluck" +msgstr "" + +#: plug-ins/pluck.ny +msgid "Generating pluck sound..." +msgstr "" + +#: plug-ins/pluck.ny +msgid "MIDI values for C notes: 36, 48, 60 [middle C], 72, 84, 96." +msgstr "" + +#: plug-ins/pluck.ny +msgid "David R.Sky" +msgstr "" + +#: plug-ins/pluck.ny +msgid "Pluck MIDI pitch" +msgstr "" + +#: plug-ins/pluck.ny +msgid "Fade-out type" +msgstr "" + +#: plug-ins/pluck.ny +msgid "abrupt" +msgstr "" + +#: plug-ins/pluck.ny +msgid "gradual" +msgstr "" + +#: plug-ins/pluck.ny +msgid "Duration [seconds]" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Rhythm Track" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Generating Rhythm..." +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Action choice" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Generate track" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Help screen 1" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Help screen 2" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Tempo (beats per minute)" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "30 - 300 beats/minute" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Beats per measure (bar)" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "1 - 20 beats/measure" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Swing amount" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "+/- 1" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Number of measures (bars)" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "1 - 1000 bars" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Optional rhythm track duration (minutes seconds)" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Whole numbers only" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Start time offset (seconds)" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "0 - 30 seconds" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Beat sound" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Metronome tick" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Ping" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Cowbell" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Resonant noise" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Noise click" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "Drip" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "MIDI pitch of strong beat" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "18 - 116" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "MIDI pitch of weak beat" +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "" +"Rhythm Track Generator help - screen 1 of 2\n" +"\n" +"Generates a rhythm track at the selected tempo, beats per\n" +"measure, and either number of measures or track duration,\n" +"using the selected sound.\n" +"\n" +"'Tempo': number of beats (clicks) per minute.\n" +"\n" +"'Beats per measure (bar)': For example, 3/4 time means one\n" +"strong beat then two others to form one bar, repeated\n" +"depending on 'number of measures' or 'rhythm track duration'.\n" +"\n" +"'Swing amount': When set to a non-zero amount, alternate\n" +"beats are delayed or advanced to give a swing feel. At\n" +"maximum / minimum settings the rhythm plays with triplet timing.\n" +"\n" +"'Optional rhythm track duration': If you enter a value into this\n" +"field, either (minutes seconds - separated by a space), or\n" +"(seconds), the generated rhythm track will be at or slightly\n" +"longer than this duration: the end of the track is extended\n" +"into a whole measure if the entered duration does not\n" +"produce this. Use whole numbers only.\n" +"\n" +"If you enter a value into this field, the 'number of measures'\n" +"value will be ignored.\n" +"\n" +"To generate rhythm track or view help screen 2,\n" +"restart Rhythm Track and select from 'Action choice'." +msgstr "" + +#: plug-ins/rhythmtrack.ny +msgid "" +"Rhythm Track Generator help - screen 2 of 2\n" +"\n" +"'Start time offset': makes the rhythm track start at a later\n" +"time than the very beginning (zero seconds), maximum\n" +"of 30 seconds.\n" +"\n" +"'Beat sound': choose which sound to use for the beats.\n" +"\n" +"'MIDI pitch of strong/weak beat': MIDI values indicate\n" +"what pitch to use. C-notes are:\n" +"\n" +"24, 36, 48, 60 (middle C), 72, 84, 96, 108.\n" +"C# (C-sharp) above middle C is 61.\n" +"\n" +"To generate rhythm track or view help screen 1,\n" +"restart Rhythm Track and select from 'Action choice'." +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Tempo ~a outside valid range 30 to 300 bpm\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Beats per measure ~a outside valid range 1 to 20\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Number of measures ~a outside valid range 1 to 1000\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Time offset ~a outside valid range 0 to 30 seconds\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Filter quality q ~a outside valid range 1 to 20\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "High MIDI pitch ~a outside valid range 18 to 116\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Low MIDI pitch ~a outside valid range 18 to 116\n" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "" +"If used, 'Optional rhythm track duration' must be \n" +"entered as either one number (seconds0, or two \n" +"numbers (minutes seconds) separated by a space.\n" +"Use whole numbers only.~%" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "~a seconds is outside valid range 0 to 3660~%" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "~a is outside valid range 0 to (60 59)~%" +msgstr "" + +#: plug-ins/rhythmtrack.ny +#, lisp-format +msgid "Error.~%You have entered at least one invalid value:~%~%" +msgstr "" + +#. i18n-hint named for Jean-Claude Risset (silent t) +#: plug-ins/rissetdrum.ny +msgid "Risset Drum" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Generating Risset Drum..." +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Steven Jones" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Decay (seconds)" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Center frequency of noise (Hz)" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Width of noise band (Hz)" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Amount of noise in mix (percent)" +msgstr "" + +#: plug-ins/rissetdrum.ny +msgid "Amplitude (0 - 1)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Sample Data Export" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Analyzing..." +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Limit output to first" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "samples" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Measurement scale" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "dB" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Linear" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "File data format" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Sample List (txt)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Indexed List (txt)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Time Indexed (txt)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Data (csv)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Web Page (html)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Include header information" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "None" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Minimal" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Standard" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "All" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Optional header text" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Channel layout for stereo" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "L-R on Same Line" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Alternate Lines" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "L Channel First" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Show messages" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Errors Only" +msgstr "" + +#: plug-ins/sample-data-export.ny plug-ins/sample-data-import.ny +msgid "File name" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "sample-data" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Output folder" +msgstr "" + +#: plug-ins/sample-data-export.ny plug-ins/sample-data-import.ny +msgid "Home directory" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Allow files to be overwritten" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "No samples selected." +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Cannot export more than 1 million samples." +msgstr "" + +#. i18n-hint abbreviates negative infinity +#: plug-ins/sample-data-export.ny +msgid "[-inf]" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left Channel.~%~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~%~%Right Channel.~%~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~aData written to:~%~a~a~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Output folder \"~a~a\" cannot be accessed." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "\"~a~a~a\" cannot be written." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Sample Rate: ~a Hz. Sample values on ~a scale.~%~a~%~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "" +"~a ~a~%~aSample Rate: ~a Hz.~%Length processed: ~a samples ~a seconds.~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "" +"~a ~a~%~aSample Rate: ~a Hz. Sample values on ~a scale.~%~\n" +"Length processed: ~a samples ~a seconds.~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "" +"~a~%Sample Rate: ~a Hz. Sample values on ~a scale. ~a.~%~aLength processed: " +"~a ~\n" +"samples, ~a seconds.~%Peak amplitude: ~a (lin) ~a dB. Unweighted RMS: ~a dB." +"~%~\n" +"DC offset: ~a~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~a linear, ~a dB." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left: ~a lin, ~a dB | Right: ~a lin, ~a dB." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~a samples." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~a seconds." +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Audio data analysis:" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Sample Rate:   ~a Hz." +msgstr "" + +#. i18n-hint: abbreviates "linear" and "decibels" +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Peak Amplitude:   ~a (lin)   ~a dB." +msgstr "" + +#. i18n-hint: RMS abbreviates root-mean-square, a method of averaging a signal; there also "weighted" versions of it but this isn't that +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "RMS (unweighted):   ~a dB." +msgstr "" + +#. i18n-hint: DC derives from "direct current" in electronics, really means the zero frequency component of a signal +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "DC Offset:   ~a" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~a linear,   ~a dB." +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left: ~a lin, ~a dB | Right: ~a linear,   ~a dB." +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "sample data" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Sample #" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Seconds" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Value (linear)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Value (dB)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "audio sample value analysis" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Left (linear)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Right (linear)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Left (dB)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Right (dB)" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "" +"Produced with Sample Data Export for\n" +"Audacity by Steve\n" +"Daulton" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "linear" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "2 channels (stereo)" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "1 channel (mono)" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "One column per channel.~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "One row per channel.~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left channel then Right channel on same line.~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left and right channels on alternate lines.~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "Left channel first then right channel.~%" +msgstr "" + +#: plug-ins/sample-data-export.ny +msgid "Unspecified channel order" +msgstr "" + +#: plug-ins/sample-data-export.ny +#, lisp-format +msgid "~a is not a number." +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "Sample Data Import" +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "Reading and rendering samples..." +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "File location (path to file)" +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "Invalid data handling" +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "Throw error" +msgstr "" + +#: plug-ins/sample-data-import.ny +msgid "Read as zero" +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "Error~%No file name." +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "" +"Error~%The file must be a plain ASCII text file~%with '.txt' file extension." +msgstr "" + +#. i18n-hint: ~~ format directive must be preserved; displays as one ~ +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "Error~%'~~/' is not valid on Windows" +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "" +"Error~%~\n" +" Directory '~a' could not be opened." +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "" +"Error~%~\n" +" '~a~a~a' could not be opened.~%~\n" +" Check that file exists." +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "" +"Error:~%~\n" +" The file must contain only plain ASCII text.~%~\n" +" (Invalid byte '~a' at byte number: ~a)" +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "" +"Error~%~\n" +" Data must be numbers in plain ASCII text.~%~\n" +" '~a' is not a numeric value." +msgstr "" + +#: plug-ins/sample-data-import.ny +#, lisp-format +msgid "Error.~%Unable to open file" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "Tremolo" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "Applying Tremolo..." +msgstr "" + +#: plug-ins/tremolo.ny +msgid "Waveform type" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "sine" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "triangle" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "sawtooth" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "inverse sawtooth" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "square" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "Starting phase (degrees)" +msgstr "" + +#: plug-ins/tremolo.ny +msgid "Wet level (percent)" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Vocal Reduction and Isolation" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Applying Action..." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Robert Haenggi" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Action" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Remove Vocals" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Isolate Vocals" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Isolate Vocals and Invert" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Remove Center" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Isolate Center" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Isolate Center and Invert" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Remove Center Classic: Mono" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Analyze" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Strength" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "Low Cut for Vocals (Hz)" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "High Cut for Vocals (Hz)" +msgstr "" + +#: plug-ins/vocalrediso.ny +#, lisp-format +msgid "" +"Average x: ~a, y: ~a\n" +"Covariance x y: ~a\n" +"Average variance x: ~a, y: ~a\n" +"Standard deviation x: ~a, y: ~a\n" +"Coefficient of correlation: ~a\n" +"Coefficient of determination: ~a \n" +"Variation of residuals: ~a\n" +"y equals ~a plus ~a times x~%" +msgstr "" + +#: plug-ins/vocalrediso.ny +#, lisp-format +msgid "" +"Pan position: ~a~%The left and right channels are correlated by about ~a %. " +"This means:~%~a~%" +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - The two channels are identical, i.e. dual mono.\n" +" The center can't be removed.\n" +" Any remaining difference may be caused by lossy encoding." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - The two Channels are strongly related, i.e. nearly mono or extremely " +"panned.\n" +" Most likely, the center extraction will be poor." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - A fairly good value, at least stereo in average and not too wide spread." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - An ideal value for Stereo.\n" +" However, the center extraction depends also on the used reverb." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - The two channels are almost not related.\n" +" Either you have only noise or the piece is mastered in a unbalanced " +"manner.\n" +" The center extraction can still be good though." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - Although the Track is stereo, the field is obviously extra wide.\n" +" This can cause strange effects.\n" +" Especially when played by only one speaker." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "" +" - The two channels are nearly identical.\n" +" Obviously, a pseudo stereo effect has been used\n" +" to spread the signal over the physical distance between the speakers.\n" +" Don't expect good results from a center removal." +msgstr "" + +#: plug-ins/vocalrediso.ny +msgid "This plug-in works only with stereo tracks." +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Vocal Remover" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Removing center-panned audio..." +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "For reducing center-panned vocals" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Remove vocals or view Help" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Remove vocals" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "View Help" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Removal choice" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Simple (entire spectrum)" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Remove frequency band" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Retain frequency band" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Frequency band from (Hz)" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Frequency band to (Hz)" +msgstr "" + +#: plug-ins/vocalremover.ny +#, lisp-format +msgid "" +"Vocal Remover requires a stereo track. It works best with\n" +"lossless files like WAV or AIFF, rather than MP3 or\n" +"other compressed formats. It only removes vocals or other\n" +"audio that is panned to center (sounds equally loud in left\n" +"and right). Vocals may be mixed this way. Inverting one\n" +"channel then panning both to center cancels out any audio\n" +"which was originally center-panned, making it inaudible.\n" +"This can remove some parts of the audio you may want to\n" +"keep, such as drums, which are also often mixed to center.\n" +"If the vocals and other centered parts differ in pitch,\n" +"this can be solved by removing only selected frequencies.~%\n" +"Vocal Remover thus has three choices of removal method.\n" +"'Simple' inverts the entire frequency spectrum of one\n" +"channel. This may remove too much music if other parts of\n" +"the audio are centered as well as the vocals. In that case,\n" +"try the other choices. If the vocals are at a different\n" +"pitch than the other audio (such as a high female voice),\n" +"try 'Remove frequency band'. This only removes frequencies\n" +"between a lower and upper limit which you can enter in the\n" +"'Frequency band...' boxes. Experiment by entering what\n" +"sounds like the most significant frequency range of the\n" +"original vocals. If the other choices remove too much\n" +"audio in a particular frequency range (such as low drums\n" +"or bass), try 'Retain frequency band'. This only removes\n" +"frequencies outside the limits, retaining the others." +msgstr "" + +#: plug-ins/vocalremover.ny +#, lisp-format +msgid "" +"~%Vocal Remover requires an unsplit, stereo track.~%~\n" +"If you have a stereo track split into left and right~%~\n" +"channels, use 'Make Stereo Track' on the Track~%~\n" +"Drop-Down Menu, then run Vocal Remover again.~%" +msgstr "" + +#: plug-ins/vocalremover.ny +#, lisp-format +msgid "" +"Warning:~%~\n" +" Selected band-stop filter is~%~\n" +" ~a Hz to ~a Hz.~%~\n" +" A very narrow stop-band filter may have~%~\n" +" unexpected results.~%~%" +msgstr "" + +#: plug-ins/vocalremover.ny +msgid "Current settings returned the original audio." +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Vocoder" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Processing Vocoder..." +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Edgar-RFT" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Distance: (1 to 120, default = 20)" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Output choice" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "both channels" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "right only" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Number of vocoder bands" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Amplitude of original audio (percent)" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Amplitude of white noise (percent)" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Amplitude of Radar Needles (percent)" +msgstr "" + +#: plug-ins/vocoder.ny +msgid "Frequency of Radar Needles (Hz)" +msgstr "" + +#: plug-ins/vocoder.ny +#, lisp-format +msgid "Error.~%Stereo track required." +msgstr "" diff --git a/nyq-po/remove-potcdate.sin b/nyq-po/remove-potcdate.sin new file mode 100644 index 000000000..2436c49e7 --- /dev/null +++ b/nyq-po/remove-potcdate.sin @@ -0,0 +1,19 @@ +# Sed script that remove the POT-Creation-Date line in the header entry +# from a POT file. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/plug-ins/SilenceMarker.ny b/plug-ins/SilenceMarker.ny index 9377a5f15..a98d7f9b4 100644 --- a/plug-ins/SilenceMarker.ny +++ b/plug-ins/SilenceMarker.ny @@ -2,20 +2,23 @@ ;version 1 ;type analyze ;categories "http://lv2plug.in/ns/lv2core#AnalyserPlugin" -;name "Silence Finder..." +$name (_"Silence Finder") ;manpage "Silence_Finder" -;action "Finding silence..." -;info "Adds point labels in areas of silence according to the specified\nlevel and duration of silence. If too many silences are detected,\nincrease the silence level and duration; if too few are detected,\nreduce the level and duration." -;author "Alex S. Brown" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Finding silence...") +$info (_"Adds point labels in areas of silence according to the specified +level and duration of silence. If too many silences are detected, +increase the silence level and duration; if too few are detected, +reduce the level and duration.") +$author (_"Alex S. Brown") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; by Alex S. Brown, PMP (http://www.alexsbrown.com) ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html -;control sil-lev "Treat audio below this level as silence [ -dB]" real "" 26 0 100 -;control sil-dur "Minimum duration of silence [seconds]" real "" 1.0 0.1 5.0 -;control labelbeforedur "Label placement [seconds before silence ends]" real "" 0.3 0.0 1.0 +$control sil-lev (_"Treat audio below this level as silence [ -dB]") real "" 26 0 100 +$control sil-dur (_"Minimum duration of silence [seconds]") real "" 1.0 0.1 5.0 +$control labelbeforedur (_"Label placement [seconds before silence ends]") real "" 0.3 0.0 1.0 ;Create a function to make the sum the two channels if they are stereo (defun mono-s (s-in) (if (arrayp s-in) (snd-add (aref s-in 0) (aref s-in 1)) @@ -88,6 +91,7 @@ s-in)) (if (and (> v thres) (> sil-c sil-length)) ;Mark the user-set number of seconds BEFORE this point to avoid clipping the start ;of the material. +; Should "S" be translated or become a control value? (add-label (- (/ n s1-srate) labelbeforedur) "S") ) ;If this sample is NOT silent, then reset the silence counter @@ -110,6 +114,6 @@ s-in)) ;If no silence markers were found, return a message (if (null l) - (setq l "No silences found. Try reducing the silence\nlevel and minimum silence duration.") + (setq l (format nil (_"No silences found. Try reducing the silence~%level and minimum silence duration."))) ) l diff --git a/plug-ins/SoundFinder.ny b/plug-ins/SoundFinder.ny index 042ff9d9c..029ef21ff 100644 --- a/plug-ins/SoundFinder.ny +++ b/plug-ins/SoundFinder.ny @@ -2,23 +2,26 @@ ;version 1 ;type analyze ;categories "http://lv2plug.in/ns/lv2core#AnalyserPlugin" -;name "Sound Finder..." +$name (_"Sound Finder") ;manpage "Sound_Finder" -;action "Finding sound..." -;info "Adds region labels for areas of sound according to the specified level\nand duration of surrounding silence. If too many labels are produced,\nincrease the silence level and duration; if too few are produced,\nreduce the level and duration." -;author "Jeremy R. Brown" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Finding sound...") +$info (_"Adds region labels for areas of sound according to the specified level +and duration of surrounding silence. If too many labels are produced, +increase the silence level and duration; if too few are produced, +reduce the level and duration.") +$author (_"Jeremy R. Brown") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; by Jeremy R. Brown (http://www.jeremy-brown.com/) ;; based on the Silence Finder script by Alex S. Brown (http://www.alexsbrown.com) ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html -;control sil-lev "Treat audio below this level as silence [ -dB]" real "" 26 0 100 -;control sil-dur "Minimum duration of silence between sounds [seconds]" real "" 1.0 0.1 5.0 -;control labelbeforedur "Label starting point [seconds before sound starts]" real "" 0.1 0.0 1.0 -;control labelafterdur "Label ending point [seconds after sound ends]" real "" 0.1 0.0 1.0 -;control finallabel "Add a label at the end of the track? [No=0, Yes=1]" int "" 0 0 1 +$control sil-lev (_"Treat audio below this level as silence [ -dB]") real "" 26 0 100 +$control sil-dur (_"Minimum duration of silence between sounds [seconds]") real "" 1.0 0.1 5.0 +$control labelbeforedur (_"Label starting point [seconds before sound starts]") real "" 0.1 0.0 1.0 +$control labelafterdur (_"Label ending point [seconds after sound ends]") real "" 0.1 0.0 1.0 +$control finallabel (_"Add a label at the end of the track? [No=0, Yes=1]") int "" 0 0 1 ;30Dec09: couple of changes made to default control values by Gale Andrews @@ -149,7 +152,7 @@ s-in)) ;If no sound markers were found, return a message ;Otherwise, if some sounds were found, also optionally place a label at the end of the file. (if (null l) - (setq l "No sounds found. Try reducing the silence\nlevel and minimum silence duration.") - (if (= finallabel 1) (add-label (/ s1-length s1-srate) (/ s1-length s1-srate) "[End]")) + (setq l (format nil (_"No sounds found. Try reducing the silence~%level and minimum silence duration."))) + (if (= finallabel 1) (add-label (/ s1-length s1-srate) (/ s1-length s1-srate) (_"[End]"))) ) l diff --git a/plug-ins/SpectralEditMulti.ny b/plug-ins/SpectralEditMulti.ny index 2e8ca2400..5a402edb4 100644 --- a/plug-ins/SpectralEditMulti.ny +++ b/plug-ins/SpectralEditMulti.ny @@ -1,11 +1,11 @@ ;nyquist plug-in ;version 4 ;type process spectral -;name "Spectral edit multi tool" +$name (_"Spectral edit multi tool") ;manpage "Spectral_edit_multi_tool" -;action "Filtering..." -;author "Paul Licameli" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Filtering...") +$author (_"Paul Licameli") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; SpectralEditMulti.ny by Paul Licameli, November 2014. ;; Updated by Steve Daulton 2014 / 2015. @@ -33,20 +33,21 @@ (env (snd-pwl 0.0 rate breakpoints))) (cond ((not (or f0 f1)) ; This should never happen for a 'spectral' effect. - (throw 'error-message "Please select frequencies.")) + (throw 'error-message + (format nil (_"~aPlease select frequencies.") p-err))) ((and f0 f1 (= f0 f1)) (throw 'error-message - (format nil "~aBandwidth is zero (the upper and lower~%~ + (format nil (_"~aBandwidth is zero (the upper and lower~%~ frequencies are both ~a Hz).~%~ - Please select a frequency range." + Please select a frequency range.") p-err f0))) ;; Biqud filter fails if centre frequency is very low and bandwidth very high. ;; 'Magic numbers' 10 Hz and 10 octaves are experimental. ((and f0 (< f0 10) (or (not bw)(> bw 10))) (throw 'error-message - (format nil "~aNotch filter parameters cannot be applied.~%~ + (format nil (_"~aNotch filter parameters cannot be applied.~%~ Try increasing the low frequency bound~%~ - or reduce the filter 'Width'." + or reduce the filter 'Width'.") p-err))) ;; low pass frequency is above Nyquist so do nothing ((and (not f1) (>= f0 (/ *sound-srate* 2.0))) @@ -61,5 +62,5 @@ (prod (diff 1.0 env) sig)))))) (catch 'error-message - (setf p-err "Error.\n") + (setf p-err (format nil (_"Error.~%"))) (multichan-expand #'result *track*)) diff --git a/plug-ins/SpectralEditParametricEQ.ny b/plug-ins/SpectralEditParametricEQ.ny index 8d7d3a35d..2d22c4126 100644 --- a/plug-ins/SpectralEditParametricEQ.ny +++ b/plug-ins/SpectralEditParametricEQ.ny @@ -2,18 +2,18 @@ ;version 4 ;type process spectral ;preview linear -;name "Spectral edit parametric EQ..." +$name (_"Spectral edit parametric EQ") ;manpage "Spectral_edit_parametric_EQ" -;action "Filtering..." -;author "Paul Licameli" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Filtering...") +$author (_"Paul Licameli") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; SpectralEditParametricEQ.ny by Paul Licameli, November 2014. ;; Updated by Steve Daulton 2014 / 2015. ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html -;control control-gain "Gain (dB)" real "" 0 -24 24 +$control control-gain (_"Gain (dB)") real "" 0 -24 24 (defun wet (sig gain fc bw) (eq-band sig fc gain (/ bw 2))) @@ -33,24 +33,24 @@ (env (snd-pwl 0.0 rate breakpoints))) (cond ((not (or f0 f1)) ; This should never happen for a 'spectral' effect. - (throw 'error-message (format nil "~aPlease select frequencies." p-err))) + (throw 'error-message (format nil (_"~aPlease select frequencies.") p-err))) ((not f0) - (throw 'error-message (format nil "~aLow frequency is undefined." p-err))) + (throw 'error-message (format nil (_"~aLow frequency is undefined.") p-err))) ((not f1) - (throw 'error-message (format nil "~aHigh frequency is undefined." p-err))) + (throw 'error-message (format nil (_"~aHigh frequency is undefined.") p-err))) ((and fc (= fc 0)) - (throw 'error-message (format nil "~aCenter frequency must be above 0 Hz." p-err))) + (throw 'error-message (format nil (_"~aCenter frequency must be above 0 Hz.") p-err))) ((and f1 (> f1 (/ *sound-srate* 2))) (throw 'error-message - (format nil "~aFrequency selection is too high for track sample rate. + (format nil (_"~aFrequency selection is too high for track sample rate.~%~ For the current track, the high frequency setting cannot~%~ - be greater than ~a Hz" + be greater than ~a Hz") p-err (/ *sound-srate* 2)))) ((and bw (= bw 0)) (throw 'error-message - (format nil "~aBandwidth is zero (the upper and lower~%~ + (format nil (_"~aBandwidth is zero (the upper and lower~%~ frequencies are both ~a Hz).~%~ - Please select a frequency range." + Please select a frequency range.") p-err f0))) ;; If centre frequency band is above Nyquist, do nothing. ((and fc (>= fc (/ *sound-srate* 2.0))) @@ -59,7 +59,7 @@ (prod (diff 1.0 env) sig)))))) (catch 'error-message - (setf p-err "Error.\n") + (setf p-err (format nil (_"Error.~%"))) (if (= control-gain 0) nil ; Do nothing (multichan-expand #'result *track*))) diff --git a/plug-ins/SpectralEditShelves.ny b/plug-ins/SpectralEditShelves.ny index cde754cfa..1faceb616 100644 --- a/plug-ins/SpectralEditShelves.ny +++ b/plug-ins/SpectralEditShelves.ny @@ -2,11 +2,11 @@ ;version 4 ;type process spectral ;preview linear -;name "Spectral edit shelves..." +$name (_"Spectral edit shelves") ;manpage "Spectral_edit_shelves" -;action "Filtering..." -;author "Paul Licameli" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Filtering...") +$author (_"Paul Licameli") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; SpectralEditShelves.ny by Paul Licameli, November 2014. @@ -14,7 +14,7 @@ ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html -;control control-gain "Gain (dB)" real "" 0 -24 24 +$control control-gain (_"Gain (dB)") real "" 0 -24 24 (defmacro validate (hz) "If frequency is above Nyquist, don't use it" @@ -49,15 +49,15 @@ (env (snd-pwl 0.0 rate breakpoints))) (cond ((not (or f0 f1)) ; This should never happen for a 'spectral' effect. - (throw 'error-message (format nil "~aPlease select frequencies." p-err))) + (throw 'error-message (format nil (_"~aPlease select frequencies.") p-err))) ((and f0 (>= f0 (/ *sound-srate* 2.0))) ; Shelf is above Nyquist frequency so do nothing. nil) ((and f0 f1 (= f0 f1)) (throw 'error-message - (format nil "~aBandwidth is zero (the upper and lower~%~ + (format nil (_"~aBandwidth is zero (the upper and lower~%~ frequencies are both ~a Hz).~%~ - Please select a frequency range." + Please select a frequency range.") p-err f0))) (T (if f0 (validate f0)) (if f1 (validate f1)) @@ -67,7 +67,7 @@ (prod (diff 1.0 env) sig))))))) (catch 'error-message - (setf p-err "Error.\n") + (setf p-err (format nil (_"Error.~%"))) (if (= control-gain 0) nil ; Do nothing (multichan-expand #'result *track*))) diff --git a/plug-ins/StudioFadeOut.ny b/plug-ins/StudioFadeOut.ny index 73570393c..5e7d5304b 100644 --- a/plug-ins/StudioFadeOut.ny +++ b/plug-ins/StudioFadeOut.ny @@ -2,11 +2,11 @@ ;version 1 ;type process ;categories "http://lv2plug.in/ns/lv2core#MixerPlugin" -;name "Studio Fade Out" +$name (_"Studio Fade Out") ;manpage "Fades#studio_fadeout" -;action "Applying Fade..." -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Applying Fade...") +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; StudioFadeOut.ny by Steve Daulton December 2012. ;; Released under terms of the GNU General Public License version 2: @@ -39,7 +39,7 @@ (let ((dur (get-duration 1))) (cond - ((< len 3) "Selection too short.\nIt must be more than 2 samples.") + ((< len 3) (format nil (_"Selection too short.~%It must be more than 2 samples."))) ((< dur 0.2) (mult s (r-cos dur))) (t (mult (filter s dur)(r-cos dur))))) - \ No newline at end of file + diff --git a/plug-ins/adjustable-fade.ny b/plug-ins/adjustable-fade.ny index a0c1f985f..ee218bc77 100644 --- a/plug-ins/adjustable-fade.ny +++ b/plug-ins/adjustable-fade.ny @@ -4,12 +4,12 @@ ;preview linear ;preview selection ;categories "http://lv2plug.in/ns/lv2core#MixerPlugin" -;name "Adjustable Fade..." +$name (_"Adjustable Fade") ;manpage "Adjustable_Fade" ;debugbutton false -;action "Applying Fade..." -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Applying Fade...") +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; adjustable-fade.ny by Steve Daulton Dec 2012 ;; Released under terms of the GNU General Public License version 2: @@ -18,12 +18,21 @@ ;; For information about writing and modifying Nyquist plug-ins: ;; https://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference -;control type "Fade Type" choice "Fade Up,Fade Down,S-Curve Up,S-Curve Down" 0 -;control curve "Mid-fade Adjust (%)" real "" 0 -100 100 -;control units "Start/End as" choice "% of Original,dB Gain" 0 -;control gain0 "Start (or end)" float-text "" 0 nil nil -;control gain1 "End (or start)" float-text "" 100 nil nil -;control preset " Handy Presets\n(override controls)" choice "None Selected,Linear In,Linear Out,Exponential In,Exponential Out,Logarithmic In,Logarithmic Out,Rounded In,Rounded Out,Cosine In,Cosine Out,S-Curve In,S-Curve Out" 0 +$control type (_"Fade Type") choice ((_"Fade Up") (_"Fade Down") (_"S-Curve Up") (_"S-Curve Down")) 0 +$control curve (_"Mid-fade Adjust (%)") real "" 0 -100 100 +$control units (_"Start/End as") choice ((_"% of Original") (_"dB Gain")) 0 +$control gain0 (_"Start (or end)") float-text "" 0 nil nil +$control gain1 (_"End (or start)") float-text "" 100 nil nil +$control preset (_" Handy Presets +(override controls)") choice ( + (_"None Selected") + (_"Linear In") (_"Linear Out") + (_"Exponential In") (_"Exponential Out") + (_"Logarithmic In") (_"Logarithmic Out") + (_"Rounded In") (_"Rounded Out") + (_"Cosine In") (_"Cosine Out") + (_"S-Curve In") (_"S-Curve Out") + ) 0 (defun get-input (sig) @@ -45,14 +54,14 @@ selection length, but preview only needs to process preview length." (if (= units 0) ;percentage values (cond ((or (< x 0)(< y 0)) - (throw 'err (format nil "~aPercentage values cannot be negative." err))) + (throw 'err (format nil (_"~aPercentage values cannot be negative.") err))) ((or (> x 1000)(> y 1000)) - (throw 'err (format nil "~aPercentage values cannot be more than 1000 %." err)))) + (throw 'err (format nil (_"~aPercentage values cannot be more than 1000 %.") err)))) (cond ;dB values ((or (> x 100)(> y 100)) - (throw 'err (format nil "~adB values cannot be more than +100 dB.~%~%~ + (throw 'err (format nil (_"~adB values cannot be more than +100 dB.~%~%~ Hint: 6 dB doubles the amplitude~%~ - \t-6 dB halves the amplitude." err)))))) + \t-6 dB halves the amplitude." err))))))) ;;; select and apply fade (defun fade (sig type curve g0 g1) @@ -184,7 +193,7 @@ selection length, but preview only needs to process preview length." (setf curve (/ curve 100.0)) (setf gain0 (gainscale gain0 units)) (setf gain1 (gainscale gain1 units)) -(setf err "Error\n\n") +(setf err (format nil (_"Error~%~%"))) (catch 'err (fade *track* type curve gain0 gain1)) diff --git a/plug-ins/beat.ny b/plug-ins/beat.ny index ae9093aa0..f0a6860d3 100644 --- a/plug-ins/beat.ny +++ b/plug-ins/beat.ny @@ -2,22 +2,23 @@ ;version 1 ;type analyze ;categories "https://audacityteam.org/namespace#OnsetDetector" -;name "Beat Finder..." +$name (_"Beat Finder") ;manpage "Beat_Finder" -;action "Finding beats..." -;author "Audacity" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Finding beats...") +$author (_"Audacity") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html -;control thresval "Threshold Percentage" int "" 65 5 100 +$control thresval (_"Threshold Percentage") int "" 65 5 100 (setf s1 (if (arrayp s) (snd-add (aref s 0) (aref s 1)) s)) (defun signal () (force-srate 1000 (lp (snd-follow (lp s1 50) 0.001 0.01 0.1 512) 10))) (setq max (peak (signal) NY:ALL)) (setq thres (* (/ thresval 100.0) max)) (setq s2 (signal)) (do ((c 0.0) (l NIL) (p T) (v (snd-fetch s2))) ((not v) l) +; "B" seems too short to put into the i18n catalog. Make it a control? (if (and p (> v thres)) (setq l (cons (list c "B") l))) (setq p (< v thres)) (setq c (+ c 0.001)) diff --git a/plug-ins/clipfix.ny b/plug-ins/clipfix.ny index a341c0b70..27ace4245 100644 --- a/plug-ins/clipfix.ny +++ b/plug-ins/clipfix.ny @@ -2,11 +2,11 @@ ;version 4 ;type process ;preview enabled -;name "Clip Fix..." +$name (_"Clip Fix") ;manpage "Clip_Fix" -;action "Reconstructing clips..." -;author "Benjamin Schwartz and Steve Daulton" -;copyright "Licensing confirmed under terms of the GNU General Public License version 2" +$action (_"Reconstructing clips...") +$author (_"Benjamin Schwartz and Steve Daulton") +$copyright (_"Licensing confirmed under terms of the GNU General Public License version 2") ;; Algorithm by Benjamin Schwartz ;; Clip Fix is a simple, stupid (but not blind) digital-clipping-corrector @@ -16,8 +16,8 @@ ;; 3. Do a cubic spline interpolation. ;; 4. Go to next region -;control threshold "Threshold of Clipping (%)" float "" 95 0 100 -;control gain "Reduce amplitude to allow for restored peaks (dB)" float "" -9 -30 0 +$control threshold (_"Threshold of Clipping (%)") float "" 95 0 100 +$control gain (_"Reduce amplitude to allow for restored peaks (dB)") float "" -9 -30 0 (setf threshold (/ threshold 100)) (setf gain (db-to-linear gain)) diff --git a/plug-ins/crossfadeclips.ny b/plug-ins/crossfadeclips.ny index f0c82bfa0..e326bc590 100644 --- a/plug-ins/crossfadeclips.ny +++ b/plug-ins/crossfadeclips.ny @@ -3,11 +3,11 @@ ;type process ;mergeclips 1 ;restoresplits 0 -;name "Crossfade Clips" +$name (_"Crossfade Clips") ;manpage "Crossfade_Clips" -;action "Crossfading..." -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Crossfading...") +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; crossfadeclips.ny by Steve Daulton Dec 2014. @@ -37,8 +37,8 @@ ;; 2) The selection may not start or end in white-space. -(setf err1 "Error.\nInvalid selection.\nMore than 2 audio clips selected.") -(setf err2 "Error.\nInvalid selection.\nEmpty space at start/ end of the selection.") +(setf err1 (format nil (_"Error.~%Invalid selection.~%More than 2 audio clips selected."))) +(setf err2 (format nil (_"Error.~%Invalid selection.~%Empty space at start/ end of the selection."))) (defun find-ends (T0 T1 clips) @@ -128,4 +128,4 @@ (get '*selection* 'start) (get '*selection* 'end) (get '*track* 'clips))) - "Error.\nCrossfade Clips may only be applied to one track.") + (format nil (_"Error.~%Crossfade Clips may only be applied to one track."))) diff --git a/plug-ins/crossfadetracks.ny b/plug-ins/crossfadetracks.ny index 4567e8d55..1709cc5b0 100644 --- a/plug-ins/crossfadetracks.ny +++ b/plug-ins/crossfadetracks.ny @@ -1,21 +1,21 @@ ;nyquist plug-in ;version 4 ;type process -;name "Crossfade Tracks..." +$name (_"Crossfade Tracks") ;manpage "Crossfade_Tracks" ;debugbutton disabled -;action "Crossfading..." +$action (_"Crossfading...") ;preview selection -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; crossfadetracks.ny by Steve Daulton Nov 2014 / Sep 2015 ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html . -;control type "Fade type" choice "Constant Gain,Constant Power 1,Constant Power 2,Custom Curve" 0 -;control curve "Custom curve" real "" 0 0 1 -;control direction "Fade direction" choice "Automatic,Alternating Out / In,Alternating In / Out" 0 +$control type (_"Fade type") choice ((_"Constant Gain") (_"Constant Power 1") (_"Constant Power 2") (_"Custom Curve")) 0 +$control curve (_"Custom curve") real "" 0 0 1 +$control direction (_"Fade direction") choice ((_"Automatic") (_"Alternating Out / In") (_"Alternating In / Out")) 0 (defun crossfade (type dir curve) @@ -72,5 +72,5 @@ audio clip, fade in, otherwise fade out." (if (< in-dist out-dist) 'in 'out))) (if (< (length (get '*selection* 'tracks)) 2) - "Error.\nSelect 2 (or more) tracks to crossfade." + (format nil (_"Error.~%Select 2 (or more) tracks to crossfade.")) (crossfade type direction curve)) diff --git a/plug-ins/delay.ny b/plug-ins/delay.ny index 60f620c36..93c8c13e2 100644 --- a/plug-ins/delay.ny +++ b/plug-ins/delay.ny @@ -3,11 +3,11 @@ ;type process ;preview linear ;categories "http://lv2plug.in/ns/lv2core#DelayPlugin" -;name "Delay..." +$name (_"Delay") ;manpage "Delay" -;action "Applying Delay Effect..." -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Applying Delay Effect...") +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; by Steve Daulton, July 2012. ;; based on 'Delay' by David R. Sky @@ -17,13 +17,13 @@ ;; For information about writing and modifying Nyquist plug-ins: ;; https://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference -;control delay-type "Delay type" choice "regular,bouncing ball,reverse bouncing ball" 0 -;control dgain "Delay level per echo (dB)" real "" -6 -30 1 -;control delay "Delay time (seconds)" real "" 0.3 0 5 -;control pitch-type "Pitch change effect" choice "Pitch/Tempo,LQ Pitch Shift" 0 -;control shift "Pitch change per echo (semitones)" real "" 0 -2 2 -;control number "Number of echoes" int "" 5 1 30 -;control constrain "Allow duration to change" choice "Yes,No" 0 +$control delay-type (_"Delay type") choice ((_"regular") (_"bouncing ball") (_"reverse bouncing ball")) 0 +$control dgain (_"Delay level per echo (dB)") real "" -6 -30 1 +$control delay (_"Delay time (seconds)") real "" 0.3 0 5 +$control pitch-type (_"Pitch change effect") choice ((_"Pitch/Tempo") (_"LQ Pitch Shift")) 0 +$control shift (_"Pitch change per echo (semitones)") real "" 0 -2 2 +$control number (_"Number of echoes") int "" 5 1 30 +$control constrain (_"Allow duration to change") choice ((_"Yes") (_"No")) 0 ;; The default pitch shift effect is a simple resampling, @@ -42,19 +42,19 @@ T nil)) (when (err-chk number 1 50)(setq err (format nil - "Number of echoes '~a' outside valid range 1 to 50.~%~a" + (_"Number of echoes '~a' outside valid range 1 to 50.~%~a") number err))) (when (err-chk shift -12 12)(setq err (format nil - "Pitch change '~a' outside valid range -12 to +12 semitones.~%~a" + (_"Pitch change '~a' outside valid range -12 to +12 semitones.~%~a") shift err))) (when (err-chk delay 0 10)(setq err (format nil - "Delay time '~a' outside valid range 0 to 10 seconds.~%~a" + (_"Delay time '~a' outside valid range 0 to 10 seconds.~%~a") delay err))) (when (err-chk dgain -30 6)(setq err (format nil - "Delay level '~a' outside valid range -30 to +6 dB.~%~a" + (_"Delay level '~a' outside valid range -30 to +6 dB.~%~a") dgain err))) @@ -121,7 +121,7 @@ ;;; return errors or process (if (> (length err) 0) - (format nil "Error.~%~a" err) ; return error + (format nil (_"Error.~%~a") err) ; return error (let* ((delay (if (= delay-type 0) delay (/ delay number))) (output (multichan-expand #'delays diff --git a/plug-ins/equalabel.ny b/plug-ins/equalabel.ny index dcc67a259..cbf43f6b3 100644 --- a/plug-ins/equalabel.ny +++ b/plug-ins/equalabel.ny @@ -1,11 +1,11 @@ ;nyquist plug-in ;version 4 ;type analyze -;name "Regular Interval Labels..." +$name (_"Regular Interval Labels") ;manpage "Regular_Interval_Labels" -;action "Adding equally-spaced labels to the label track..." -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Adding equally-spaced labels to the label track...") +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html @@ -15,13 +15,17 @@ ;; Alex S.Brown, Dominic Mazzoni, Pierre M.I., Gale Andrews, Steve Daulton. ;; This version by Steve Daulton (http://easyspacepro.com) 2016 -;control mode "Use 'Number of labels' OR 'Label interval'" choice "Number of labels,Label interval" 0 -;control totalnum "Number of labels" int-text "" 10 1 1000 -;control interval "Label interval (seconds)" float-text "" 60 0.001 3600 -;control adjust "Adjust label interval to fit length" choice "No,Yes" 0 -;control labeltext "Label text" string "" "Label" "" -;control zeros "Minimum number of digits in label" choice "None - text only,1 (before label),2 (before label),3 (before label),1 (after label),2 (after label),3 (after label)" 2 -;control firstnum "Begin numbering from" int-text "" 1 0 nil +$control mode (_"Use 'Number of labels' OR 'Label interval'") choice ((_"Number of labels") (_"Label interval")) 0 +$control totalnum (_"Number of labels") int-text "" 10 1 1000 +$control interval (_"Label interval (seconds)") float-text "" 60 0.001 3600 +$control adjust (_"Adjust label interval to fit length") choice ((_"No") (_"Yes")) 0 +$control labeltext (_"Label text") string "" (_"Label") +$control zeros (_"Minimum number of digits in label") choice ( + (_"None - text only") + (_"1 (before label)") (_"2 (before label)") (_"3 (before label)") + (_"1 (after label)") (_"2 (after label)") (_"3 (after label)") +) 2 +$control firstnum (_"Begin numbering from") int-text "" 1 0 nil (defun make-labels () @@ -45,12 +49,12 @@ "Throw error if excessive number of labels ('Interval' mode only)" (when (> totalnum 1000) (throw 'err - (format nil "Too many labels.~%~%~ + (format nil ("Too many labels.~%~%~ Selection length is ~a seconds and~%~ Label interval is ~a seconds~%~ giving a total of ~a labels.~%~ Maximum number of labels from this effect is 1000.~%~ - Please use a shorter selection, or a longer Label interval." + Please use a shorter selection, or a longer Label interval.") (formatgg (get-duration 1)) (formatgg interval) (if (= adjust 1) diff --git a/plug-ins/highpass.ny b/plug-ins/highpass.ny index e5642b31b..7b3716d55 100644 --- a/plug-ins/highpass.ny +++ b/plug-ins/highpass.ny @@ -2,12 +2,12 @@ ;version 4 ;type process ;preview linear -;name "High Pass Filter..." +$name (_"High Pass Filter") ;manpage "High_Pass_Filter" ;debugbutton disabled -;action "Performing High Pass Filter..." -;author "Dominic Mazzoni" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Performing High Pass Filter...") +$author (_"Dominic Mazzoni") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; highpass.ny by Dominic Mazzoni ;; Last updated August 2015 @@ -15,16 +15,16 @@ ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html . -;control frequency "Frequency (Hz)" float-text "" 1000 0 nil -;control rolloff "Rolloff (dB per octave)" choice " 6 dB,12 dB,24 dB,36 dB,48 dB" 0 +$control frequency (_"Frequency (Hz)") float-text "" 1000 0 nil +$control rolloff (_"Rolloff (dB per octave)") choice ((_"6 dB") (_"12 dB") (_"24 dB") (_"36 dB") (_"48 dB")) 0 (cond - ((< frequency 0.1) "Frequency must be at least 0.1 Hz.") + ((< frequency 0.1) (_"Frequency must be at least 0.1 Hz.")) ((>= frequency (/ *sound-srate* 2.0)) - (format nil "Error:~%~%Frequency (~a Hz) is too high for track sample rate.~%~%~ + (format nil (_"Error:~%~%Frequency (~a Hz) is too high for track sample rate.~%~%~ Track sample rate is ~a Hz~%~ - Frequency must be less than ~a Hz." + Frequency must be less than ~a Hz.") frequency *sound-srate* (/ *sound-srate* 2.0))) diff --git a/plug-ins/limiter.ny b/plug-ins/limiter.ny index 0b0f41f5d..c27a67ac0 100644 --- a/plug-ins/limiter.ny +++ b/plug-ins/limiter.ny @@ -2,13 +2,13 @@ ;version 4 ;type process ;categories "http://lv2plug.in/ns/lv2core/#DynamicsPlugin" -;name "Limiter..." +$name (_"Limiter") ;manpage "Limiter" ;debugbutton false -;action "Limiting..." +$action (_"Limiting...") ;preview enabled -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; limiter.ny by Steve Daulton November 2011, updated May 2015. ;; Released under terms of the GNU General Public License version 2: @@ -17,12 +17,14 @@ ;; For information about writing and modifying Nyquist plug-ins: ;; https://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference -;control type "Type" choice "Soft Limit,Hard Limit,Soft Clip,Hard Clip" 0 -;control gain-L "Input Gain (dB)\nmono/Left" real "" 0 0 10 -;control gain-R "Input Gain (dB)\nRight channel" real "" 0 0 10 -;control thresh "Limit to (dB)" real "" -3 -10 0 -;control hold "Hold (ms)" real "" 10 1 50 -;control makeup "Apply Make-up Gain" choice "No,Yes" 0 +$control type (_"Type") choice ((_"Soft Limit") (_"Hard Limit") (_"Soft Clip") (_"Hard Clip")) 0 +$control gain-L (_"Input Gain (dB) +mono/Left") real "" 0 0 10 +$control gain-R (_"Input Gain (dB) +Right channel") real "" 0 0 10 +$control thresh (_"Limit to (dB)") real "" -3 -10 0 +$control hold (_"Hold (ms)") real "" 10 1 50 +$control makeup (_"Apply Make-up Gain") choice ((_"No") (_"Yes")) 0 (if (not (boundp 'type)) (setf type 0)) diff --git a/plug-ins/lowpass.ny b/plug-ins/lowpass.ny index a2b8cd59a..4edde62d4 100644 --- a/plug-ins/lowpass.ny +++ b/plug-ins/lowpass.ny @@ -2,12 +2,12 @@ ;version 4 ;type process ;preview linear -;name "Low Pass Filter..." +$name (_"Low Pass Filter") ;manpage "Low_Pass_Filter" ;debugbutton disabled -;action "Performing Low Pass Filter..." -;author "Dominic Mazzoni" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Performing Low Pass Filter...") +$author (_"Dominic Mazzoni") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; lowpass.ny by Dominic Mazzoni ;; Last updated August 2015 @@ -15,16 +15,16 @@ ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html . -;control frequency "Frequency (Hz)" float-text "" 1000 0 nil -;control rolloff "Rolloff (dB per octave)" choice " 6 dB,12 dB,24 dB,36 dB,48 dB" 0 +$control frequency (_"Frequency (Hz)") float-text "" 1000 0 nil +$control rolloff (_"Rolloff (dB per octave)") choice ((_"6 dB") (_"12 dB") (_"24 dB") (_"36 dB") (_"48 dB")) 0 (cond - ((< frequency 0.1) "Frequency must be at least 0.1 Hz.") + ((< frequency 0.1) (_"Frequency must be at least 0.1 Hz.")) ((>= frequency (/ *sound-srate* 2.0)) - (format nil "Error:~%~%Frequency (~a Hz) is too high for track sample rate.~%~%~ + (format nil (_"Error:~%~%Frequency (~a Hz) is too high for track sample rate.~%~%~ Track sample rate is ~a Hz~%~ - Frequency must be less than ~a Hz." + Frequency must be less than ~a Hz.") frequency *sound-srate* (/ *sound-srate* 2.0))) diff --git a/plug-ins/notch.ny b/plug-ins/notch.ny index b6d011621..a974b212f 100644 --- a/plug-ins/notch.ny +++ b/plug-ins/notch.ny @@ -2,27 +2,27 @@ ;version 4 ;type process ;preview linear -;name "Notch Filter..." +$name (_"Notch Filter") ;manpage "Notch_Filter" ;debugbutton false -;action "Applying Notch Filter..." -;author "Steve Daulton and Bill Wharrie" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Applying Notch Filter...") +$author (_"Steve Daulton and Bill Wharrie") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; notch.ny by Steve Daulton and Bill Wharrie ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html . -;control frequency "Frequency (Hz)" float-text "" 60 0 nil -;control q "Q (higher value reduces width)" float-text "" 1 0.1 1000 +$control frequency (_"Frequency (Hz)") float-text "" 60 0 nil +$control q (_"Q (higher value reduces width)") float-text "" 1 0.1 1000 (cond - ((< frequency 0.1) "Frequency must be at least 0.1 Hz.") + ((< frequency 0.1) (_"Frequency must be at least 0.1 Hz.")) ((>= frequency (/ *sound-srate* 2.0)) - (format nil "Error:~%~%Frequency (~a Hz) is too high for track sample rate.~%~%~ + (format nil (_"Error:~%~%Frequency (~a Hz) is too high for track sample rate.~%~%~ Track sample rate is ~a Hz.~%~ - Frequency must be less than ~a Hz." + Frequency must be less than ~a Hz.") frequency *sound-srate* (/ *sound-srate* 2.0))) diff --git a/plug-ins/pluck.ny b/plug-ins/pluck.ny index 23a1429c1..f1e9f6805 100644 --- a/plug-ins/pluck.ny +++ b/plug-ins/pluck.ny @@ -2,21 +2,21 @@ ;version 4 ;type generate ;categories "http://lv2plug.in/ns/lv2core#GeneratorPlugin" -;name "Pluck..." +$name (_"Pluck") ;manpage "Pluck" ;debugbutton false ;preview linear -;action "Generating pluck sound..." -;info "MIDI values for C notes: 36, 48, 60 [middle C], 72, 84, 96." -;author "David R.Sky" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Generating pluck sound...") +$info (_"MIDI values for C notes: 36, 48, 60 [middle C], 72, 84, 96.") +$author (_"David R.Sky") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html . -;control pitch "Pluck MIDI pitch" int "" 60 1 120 -;control fade "Fade-out type" choice "abrupt,gradual" 0 -;control dur "Duration [seconds]" real "" 1 0.1 30 +$control pitch (_"Pluck MIDI pitch") int "" 60 1 120 +$control fade (_"Fade-out type") choice ((_"abrupt") (_"gradual")) 0 +$control dur (_"Duration [seconds]") real "" 1 0.1 30 ; original pluck.ny modified by David R.Sky October 2007 ; [vastly simplified later] diff --git a/plug-ins/rhythmtrack.ny b/plug-ins/rhythmtrack.ny index c98323f15..d93f43366 100644 --- a/plug-ins/rhythmtrack.ny +++ b/plug-ins/rhythmtrack.ny @@ -2,12 +2,12 @@ ;version 4 ;type generate ;categories "http://lv2plug.in/ns/lv2core#GeneratorPlugin" -;name "Rhythm Track..." +$name (_"Rhythm Track") ;manpage "Rhythm_Track" ;preview linear -;action "Generating Rhythm..." -;author "Dominic Mazzoni" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Generating Rhythm...") +$author (_"Dominic Mazzoni") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; by Dominic Mazzoni, David R. Sky and Steve Daulton. ;; Drip sound generator by Paul Beach @@ -15,22 +15,24 @@ ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html . -;control action "Action choice" choice "Generate track, Help screen 1, Help screen 2" 0 -;control tempo "Tempo (beats per minute)" real "30 - 300 beats/minute" 120 30 300 -;control timesig "Beats per measure (bar)" int "1 - 20 beats/measure" 4 1 20 -;control swing "Swing amount" float "+/- 1" 0 -1 1 -;control measures "Number of measures (bars)" int "1 - 1000 bars" 16 1 1000 -;control click-track-dur "Optional rhythm track duration (minutes seconds)" string "Whole numbers only" "" +$control action (_"Action choice") choice ((_"Generate track") (_"Help screen 1") (_"Help screen 2")) 0 +$control tempo (_"Tempo (beats per minute)") real (_"30 - 300 beats/minute") 120 30 300 +$control timesig (_"Beats per measure (bar)") int (_"1 - 20 beats/measure") 4 1 20 +$control swing (_"Swing amount") float (_"+/- 1") 0 -1 1 +$control measures (_"Number of measures (bars)") int (_"1 - 1000 bars") 16 1 1000 +$control click-track-dur (_"Optional rhythm track duration (minutes seconds)") string (_"Whole numbers only") "" ;;control ticklen "Individual beat duration (milliseconds)" int "1 - 100 ms" 10 1 100 -;control offset "Start time offset (seconds)" real "0 - 30 seconds" 0 0 30 -;control click-type "Beat sound" choice "Metronome tick,Ping,Cowbell,Resonant noise,Noise click,Drip" 0 +$control offset (_"Start time offset (seconds)") real (_"0 - 30 seconds") 0 0 30 +$control click-type (_"Beat sound") choice ( + (_"Metronome tick") (_"Ping") (_"Cowbell") (_"Resonant noise") (_"Noise click") (_"Drip") +) 0 ;;control q "Noise click resonance - discernable pitch (q)" int "1 - 20" 1 1 20 -;control high "MIDI pitch of strong beat" int "18 - 116" 84 18 116 -;control low "MIDI pitch of weak beat" int "18 - 116" 80 18 116 +$control high (_"MIDI pitch of strong beat") int (_"18 - 116") 84 18 116 +$control low (_"MIDI pitch of weak beat") int (_"18 - 116") 80 18 116 ;; allow q control to be commented out. (if (not (boundp 'q)) @@ -46,7 +48,7 @@ (defun help1 () (format nil -"Rhythm Track Generator help - screen 1 of 2 +(_"Rhythm Track Generator help - screen 1 of 2 Generates a rhythm track at the selected tempo, beats per measure, and either number of measures or track duration, @@ -73,12 +75,12 @@ If you enter a value into this field, the 'number of measures' value will be ignored. To generate rhythm track or view help screen 2, -restart Rhythm Track and select from 'Action choice'.")) ;end of help1 +restart Rhythm Track and select from 'Action choice'."))) ;end of help1 (defun help2 () (format nil -"Rhythm Track Generator help - screen 2 of 2 +(_"Rhythm Track Generator help - screen 2 of 2 'Start time offset': makes the rhythm track start at a later time than the very beginning (zero seconds), maximum @@ -93,7 +95,7 @@ what pitch to use. C-notes are: C# (C-sharp) above middle C is 61. To generate rhythm track or view help screen 1, -restart Rhythm Track and select from 'Action choice'.")) ;end of help 2 +restart Rhythm Track and select from 'Action choice'."))) ;end of help 2 ;Check function: returns 1 on error @@ -154,44 +156,44 @@ restart Rhythm Track and select from 'Action choice'.")) ;end of help 2 ; tempo (if (= (check tempo 30 300) 1) (setq error-msg (strcat error-msg (format nil -"Tempo ~a outside valid range 30 to 300 bpm -" tempo)))) +(_"Tempo ~a outside valid range 30 to 300 bpm +") tempo)))) ;beats per measure (if (= (check timesig 1 20) 1) (setq error-msg (strcat error-msg (format nil -"Beats per measure ~a outside valid range 1 to 20 -" timesig)))) +(_"Beats per measure ~a outside valid range 1 to 20 +") timesig)))) ;number of measures (if (= (check measures 1 1000) 1) (setq error-msg (strcat error-msg (format nil -"Number of measures ~a outside valid range 1 to 1000 -" measures)))) +(_"Number of measures ~a outside valid range 1 to 1000 +") measures)))) ;time start offset (if (= (check offset 0 30) 1) (setq error-msg (strcat error-msg (format nil -"Time offset ~a outside valid range 0 to 30 seconds -" offset)))) +(_"Time offset ~a outside valid range 0 to 30 seconds +") offset)))) ; q (if (= (check q 1 20) 1) (setq error-msg (strcat error-msg (format nil -"Filter quality q ~a outside valid range 1 to 20 -" q)))) +(_"Filter quality q ~a outside valid range 1 to 20 +") q)))) ;high MIDI pitch (if (= (check high 18 116) 1) (setq error-msg (strcat error-msg (format nil -"High MIDI pitch ~a outside valid range 18 to 116 -" high)))) +(_"High MIDI pitch ~a outside valid range 18 to 116 +") high)))) ;low MIDI pitch (if (= (check low 18 116) 1) (setq error-msg (strcat error-msg (format nil -"Low MIDI pitch ~a outside valid range 18 to 116 -" low)))) +(_"Low MIDI pitch ~a outside valid range 18 to 116 +") low)))) ;validate string (if (> (length m-s) 0) ;if at least one item @@ -201,16 +203,16 @@ restart Rhythm Track and select from 'Action choice'.")) ;end of help 2 (not (integerp (first m-s))) ;first is not an integer or (and (= (length m-s) 2)(not (integerp (second m-s))))) ;second is not an integer (setq error-msg (strcat error-msg (format nil -"If used, 'Optional rhythm track duration' must be +(_"If used, 'Optional rhythm track duration' must be entered as either one number (seconds0, or two numbers (minutes seconds) separated by a space. -Use whole numbers only.~%")))) +Use whole numbers only.~%"))))) ;one or two integers ((and (= (length m-s) 1) ;one integer and (= (check (first m-s) 0 3660) 1)) ;outside valid range (setq error-msg (strcat error-msg (format nil -"~a seconds is outside valid range 0 to 3660~%" (first m-s))))) +(_"~a seconds is outside valid range 0 to 3660~%") (first m-s))))) ;one or two integers ((and (= (length m-s) 2) ;2 integers and @@ -218,7 +220,7 @@ Use whole numbers only.~%")))) (= (check (first m-s) 0 60) 1) ;1st is outside valid range or (= (check (second m-s) 0 59) 1))) ;2nd is outside valid range or (setq error-msg (strcat error-msg (format nil -"~a is outside valid range 0 to (60 59)~%" +(_"~a is outside valid range 0 to (60 59)~%") m-s))))))) ;end of error checking (defun metronome-tick (hz peak) @@ -364,4 +366,4 @@ Use whole numbers only.~%")))) (make-click-track measures (* timesig beatlen)))) ;click track ;Else error message (setq error-msg (strcat (format nil -"Error.~%You have entered at least one invalid value:~%~%") error-msg))))) +(_"Error.~%You have entered at least one invalid value:~%~%")) error-msg))))) diff --git a/plug-ins/rissetdrum.ny b/plug-ins/rissetdrum.ny index 1f3287025..2b878317a 100644 --- a/plug-ins/rissetdrum.ny +++ b/plug-ins/rissetdrum.ny @@ -3,11 +3,12 @@ ;type generate ;categories "http://lv2plug.in/ns/lv2core#GeneratorPlugin" ;preview linear -;name "Risset Drum..." +;i18n-hint named for Jean-Claude Risset (silent t) +$name (_"Risset Drum") ;manpage "Risset_Drum" -;action "Generating Risset Drum..." -;author "Steven Jones" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Generating Risset Drum...") +$author (_"Steven Jones") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; rissetdrum.ny by Steven Jones, after Jean Claude Risset. ;; Updated by Steve Daulton July 2012 and May 2015. @@ -17,12 +18,12 @@ ;; For information about writing and modifying Nyquist plug-ins: ;; https://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference -;control freq "Frequency (Hz)" real "" 100 50 2000 -;control decay "Decay (seconds)" real "" 2 0.1 60 -;control cf "Center frequency of noise (Hz)" real "" 500 100 5000 -;control bw "Width of noise band (Hz)" real "" 400 10 1000 -;control noise "Amount of noise in mix (percent)" real "" 25 0 100 -;control gain "Amplitude (0 - 1)" real "" 0.8 0 1 +$control freq (_"Frequency (Hz)") real "" 100 50 2000 +$control decay (_"Decay (seconds)") real "" 2 0.1 60 +$control cf (_"Center frequency of noise (Hz)") real "" 500 100 5000 +$control bw (_"Width of noise band (Hz)") real "" 400 10 1000 +$control noise (_"Amount of noise in mix (percent)") real "" 25 0 100 +$control gain (_"Amplitude (0 - 1)") real "" 0.8 0 1 (defun sanitise (val minx maxx) diff --git a/plug-ins/sample-data-export.ny b/plug-ins/sample-data-export.ny index 6626c5506..78a44ccaa 100644 --- a/plug-ins/sample-data-export.ny +++ b/plug-ins/sample-data-export.ny @@ -1,13 +1,13 @@ ;nyquist plug-in ;version 3 ;type analyze -;name "Sample Data Export..." +$name (_"Sample Data Export") ;manpage "Sample_Data_Export" -;action "Analyzing..." +$action (_"Analyzing...") ;maxlen 1000001 ;categories "http://lv2plug.in/ns/lv2core#AnalyserPlugin" -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; sample-data-export.ny by Steve Daulton June 2012. ;; Updated July 16 2012. @@ -17,16 +17,35 @@ ;; For information about writing and modifying Nyquist plug-ins: ;; https://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference -;control number "Limit output to first" string "samples" "100" -;control units "Measurement scale" choice "dB,Linear" 0 -;control fileformat "File data format" choice "Sample List (txt),Indexed List (txt),Time Indexed (txt),Data (csv),Web Page (html)" 0 -;control header "Include header information" choice "None,Minimal,Standard,All" 2 -;control optext "Optional header text" string "" -;control chan "Channel layout for stereo" choice "L-R on Same Line,Alternate Lines,L Channel First" 0 -;control messages "Show messages" choice "Yes,Errors Only,None" 0 -;control filename "File name" string "" "sample-data" -;control path "Output folder" string "" "Home directory" -;control owrite "Allow files to be overwritten" choice "No,Yes" 0 +$control number (_"Limit output to first") string (_"samples") "100" +$control units (_"Measurement scale") choice ((_"dB") (_"Linear")) 0 +$control fileformat (_"File data format") choice ( + (_"Sample List (txt)") + (_"Indexed List (txt)") + (_"Time Indexed (txt)") + (_"Data (csv)") + (_"Web Page (html)") +) 0 +$control header (_"Include header information") choice ( + (_"None") + (_"Minimal") + (_"Standard") + (_"All") +) 2 +$control optext (_"Optional header text") string "" +$control chan (_"Channel layout for stereo") choice ( + (_"L-R on Same Line") + (_"Alternate Lines") + (_"L Channel First") +) 0 +$control messages (_"Show messages") choice ( + (_"Yes") + (_"Errors Only") + (_"None") +) 0 +$control filename (_"File name") string "" (_"sample-data") +$control path (_"Output folder") string "" (_"Home directory") +$control owrite (_"Allow files to be overwritten") choice ((_"No") (_"Yes")) 0 ;; To enable L/R prefix before alternate L/R channels @@ -36,7 +55,7 @@ (when (not (boundp 'LR-prefix))(setq LR-prefix nil)) -(setq default-filename "sample-data") ; default filename +(setq default-filename (_"sample-data")) ; default filename (setq err "") ; initialise error mesaage (setq *float-format* "%1.5f") ; 5 decimal places @@ -90,9 +109,9 @@ (defun checknumber () (setq number (min number len)) (if (< number 1) - (add-error "No samples selected.")) + (add-error (_"No samples selected."))) (if (> number 1000000) - (add-error "Cannot export more than 1 million samples.")) + (add-error (_"Cannot export more than 1 million samples."))) (setq number (truncate number))) @@ -112,7 +131,8 @@ (setf ln10over20 (/ (log 10.0) 20)) (defun lin-to-db (val) (if (= val 0) - "[-inf]" + ;i18n-hint abbreviates negative infinity + (_"[-inf]") (/ (log val) ln10over20))) @@ -195,15 +215,15 @@ (if (and (arrayp s)(= chan 2)) (progn (unless (= header 0) ; Don't print 'channel' if no header - (format fp "Left Channel.~%~%")) + (format fp (_"Left Channel.~%~%"))) (print-text (aref s 0)) (if (= header 0) ; Don't print 'channel' if no header (format fp "~%") - (format fp "~%~%Right Channel.~%~%")) + (format fp (_"~%~%Right Channel.~%~%"))) (print-text (aref s 1)) (close fp) (if (= messages 0) - (format nil "~aData written to:~%~a~a~a" + (format nil (_"~aData written to:~%~a~a~a") (normhead) path fileseparator filename) nil)) ;; mono or alternate @@ -211,7 +231,7 @@ (print-text s) (close fp) (if (= messages 0) - (format nil "~aData written to:~%~a~a~a" + (format nil (_"~aData written to:~%~a~a~a") (normhead) path fileseparator filename) nil)))) @@ -240,7 +260,7 @@ (if (string-equal path "~/" :end1 2) (setq path (strcat (home)(subseq path 1))))) ;; If path not set use home directory - (if (or (string-equal path "Home directory") + (if (or (string-equal path (_"Home directory")) (string-equal path "")) (setq path (home))) ;; if file name not set use default @@ -255,7 +275,7 @@ (string-equal path realdir))) ;; makefilename or error (setq filename (makefilename filename FileExt)) - (add-error (format nil "Output folder \"~a~a\" cannot be accessed." + (add-error (format nil (_"Output folder \"~a~a\" cannot be accessed.") path fileseparator)))) ;; check if file is writeable (when (= (length err) 0) @@ -263,7 +283,7 @@ (setq fp (open filename :direction :output)) ;check file is writeable (if (not fp) - (add-error (format nil "\"~a~a~a\" cannot be written." + (add-error (format nil (_"\"~a~a~a\" cannot be written.") path fileseparator filename))))) @@ -279,7 +299,7 @@ (defun minhead () (format nil -"Sample Rate: ~a Hz. Sample values on ~a scale.~%~a~%~a" +(_"Sample Rate: ~a Hz. Sample values on ~a scale.~%~a~%~a") (get 'info 'srate) ; sample rate (get 'info 'units) ; units (get 'info 'chan-order) ; Channel Order @@ -291,7 +311,7 @@ (defun normhead () (if (= fileformat 4) ; html (format nil -"~a ~a~%~aSample Rate: ~a Hz.~%Length processed: ~a samples ~a seconds.~a" +(_"~a ~a~%~aSample Rate: ~a Hz.~%Length processed: ~a samples ~a seconds.~a") filename ; file name (get 'info 'channels) ; mono/stereo (get 'info 'chan-order) ; Channel Order @@ -302,8 +322,8 @@ (format nil "~%~a~%~%~%" optext) ; optional text (format nil "~%~%~%"))) ; no optional text (format nil -"~a ~a~%~aSample Rate: ~a Hz. Sample values on ~a scale.~%~ -Length processed: ~a samples ~a seconds.~a" +(_"~a ~a~%~aSample Rate: ~a Hz. Sample values on ~a scale.~%~ +Length processed: ~a samples ~a seconds.~a") filename ; file name (get 'info 'channels) ; mono/stereo (get 'info 'chan-order) ; Channel Order @@ -318,9 +338,9 @@ Length processed: ~a samples ~a seconds.~a" (defun fullhead () (format nil -"~a~%Sample Rate: ~a Hz. Sample values on ~a scale. ~a.~%~aLength processed: ~a ~ +(_"~a~%Sample Rate: ~a Hz. Sample values on ~a scale. ~a.~%~aLength processed: ~a ~ samples, ~a seconds.~%Peak amplitude: ~a (lin) ~a dB. Unweighted RMS: ~a dB.~%~ -DC offset: ~a~a" +DC offset: ~a~a") filename ; file name (get 'info 'srate) ; sample rate (get 'info 'units) ; units @@ -333,9 +353,9 @@ DC offset: ~a~a" (srms s) ; rms (let ((vals (dc-off s))) ; DC offset (if (= (length vals) 2) ; mono - (format nil "~a linear, ~a dB." + (format nil (_"~a linear, ~a dB.") (first vals)(second vals)) - (format nil "Left: ~a lin, ~a dB | Right: ~a lin, ~a dB." + (format nil (_"Left: ~a lin, ~a dB | Right: ~a lin, ~a dB.") (first vals)(second vals)(third vals)(fourth vals)))) (if (> (length optext)0) (format nil "~%~a~%~%~%" optext) ; optional text @@ -346,7 +366,7 @@ DC offset: ~a~a" ;; HTML Output ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defun html-head () +(defun html-head () (strcat " @@ -427,26 +447,29 @@ ul { color: blue; } -Sample Data Export +" (_"Sample Data Export") " -") +")) ;;; document headings (defun doc-head () (format nil -" -

Sample Data Export - ~a

+(strcat " +

" (_"Sample Data Export") " - ~a

~a -

~a.   ~a samples.    ~a seconds.

-

Audio data analysis:

+

~a.   " (_"~a samples.") "    " (_"~a seconds.") "

+

" (_"Audio data analysis:") "

    -
  • Sample Rate:   ~a Hz.
  • -
  • Peak Amplitude:   ~a (lin)   ~a dB.
  • -
  • RMS (unweighted):   ~a dB.
  • -
  • DC Offset:   ~a
  • +
  • " (_"Sample Rate:   ~a Hz.") "
  • " +; i18n-hint: abbreviates "linear" and "decibels" +"
  • " (_"Peak Amplitude:   ~a (lin)   ~a dB.") "
  • " +; i18n-hint: RMS abbreviates root-mean-square, a method of averaging a signal; there also "weighted" versions of it but this isn't that +"
  • " (_"RMS (unweighted):   ~a dB.") "
  • " +; i18n-hint: DC derives from "direct current" in electronics, really means the zero frequency component of a signal +"
  • " (_"DC Offset:   ~a") "
-" +") ; end concatenated format string with inserted translations (string-right-trim ".html" filename) (format nil "

~a

" optext) ; Optional heading (get 'info 'channels) ; mono/stereo @@ -458,44 +481,45 @@ ul { (srms s) ; rms (let ((vals (dc-off s))) ; DC offset (if (= (length vals) 2) ; mono - (format nil "~a linear,   ~a dB." + (format nil (_"~a linear,   ~a dB.") (first vals)(second vals)) - (format nil "Left: ~a lin, ~a dB | Right: ~a linear,   ~a dB." + (format nil (_"Left: ~a lin, ~a dB | Right: ~a linear,   ~a dB.") (first vals)(second vals)(third vals)(fourth vals)))))) ;;; table headings (mono) (defun table-head-mono () -" +(strcat "
- - - - -") + + + + +")) ;;; table headings (stereo) (defun table-head-stereo () -"
Sample #SecondsValue (linear)Value (dB)
" (_"Sample #") "" (_"Seconds") "" (_"Value (linear)") "" (_"Value (dB)") "
+(strcat "
- - - - - - -") + + + + + + +")) (defun html-foot () + (format nil (strcat "
Sample #Seconds Left (linear)Right (linear)Left (dB)Right (dB)
" (_"Sample #") "" (_"Seconds") "" (_"Left (linear)") "" (_"Right (linear)") "" (_"Left (dB)") "" (_"Right (dB)") "
-

Produced with Sample Data Export for -Audacity by Steve -Daulton (" (_"Produced with Sample Data Export for +Audacity by Steve +Daulton") " (www.easyspacepro.com)

-") +") "https://www.audacityteam.org/")) ;;; html generator @@ -537,7 +561,7 @@ Daulton ( (length err) 0) ;; output error message if enabled (if (= messages 2) nil ; return nil - (format nil "Error.~%~a" err)) ; return errors + (format nil (_"Error.~%~a") err)) ; return errors ;; else print to file (progn (put-head-info) ; put basic info for headers diff --git a/plug-ins/sample-data-import.ny b/plug-ins/sample-data-import.ny index f395bd48c..e0578773c 100644 --- a/plug-ins/sample-data-import.ny +++ b/plug-ins/sample-data-import.ny @@ -1,20 +1,20 @@ ;nyquist plug-in ;version 4 ;type generate -;name "Sample Data Import..." +$name (_"Sample Data Import") ;manpage "Sample_Data_Import" -;action "Reading and rendering samples..." -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Reading and rendering samples...") +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; sample-data-import.ny by Steve Daulton November 2016. ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html -;control filename "File name" string "" "sample-data.txt" -;control path "File location (path to file)" string "" "Home directory" -;control bad-data "Invalid data handling" choice "Throw error,Read as zero" 0 +$control filename (_"File name") string "" "sample-data.txt" +$control path (_"File location (path to file)") string "" "Home directory" +$control bad-data (_"Invalid data handling") choice ((_"Throw error") (_"Read as zero")) 0 ;; Documentation. @@ -107,23 +107,25 @@ (defun fileopensp (path fname) (let ((path (string-trim " " path))) (if (string-equal fname "") - (throw 'err "Error\nNo file name.")) + (throw 'err (format nil (_"Error~%No file name.")))) (if (string-not-equal fname ".txt" :start1 (- (length fname) 4)) - (throw 'err "Error\nThe file must be a plain ASCII text file\nwith '.txt' file extension.")) + (throw 'err (format nil (_"Error~%The file must be a plain ASCII text file~%with '.txt' file extension.")))) ;; Handle special 'path' formats: (cond ; "~" without "/" is not recommended (or documented) ; but more user friendly to allow it. ((string= path "~") (if (windowsp) - "Error\n'~/' is not valid on Windows" + ;i18n-hint: ~~ format directive must be preserved; displays as one ~ + (format nil (_"Error~%'~~/' is not valid on Windows")) (setq path (home)))) ;; replace "~/" on Linux/Mac ((and (>= (length path) 2) (string= path "~/" :end1 2)) (if (windowsp) - "Error\n'~/' is not valid on Windows" + ;i18n-hint: ~~ format directive must be preserved; displays as one ~ + (format nil (_"Error~%'~~/' is not valid on Windows")) (setq path (strcat (home)(subseq path 1))))) - ((string-equal path "Home directory") + ((string-equal path (_"Home directory")) (setf path (home))) ;; If empty, use 'Home' ((string-equal path "") @@ -131,26 +133,26 @@ ;; Now check that the file can be opened: (cond ((not (setdir path)) - (throw 'err (format nil "Error~%~ - Directory '~a' could not be opened." path))) + (throw 'err (format nil (_"Error~%~ + Directory '~a' could not be opened.") path))) ((not (setf fstream (open fname))) - (throw 'err (format nil "Error~%~ + (throw 'err (format nil (_"Error~%~ '~a~a~a' could not be opened.~%~ - Check that file exists." + Check that file exists.") path *file-separator* fname))) ; File opened OK, so check for normal ASCII, then close it and return 'true' (t (do ((j 0 (1+ j))(b (read-byte fstream)(read-byte fstream))) ((or (> j 100000)(not b))) (when (> b 127) - (throw 'err (format nil "Error:~%~ + (throw 'err (format nil (_"Error:~%~ The file must contain only plain ASCII text.~%~ - (Invalid byte '~a' at byte number: ~a)" b (1+ j) )))) + (Invalid byte '~a' at byte number: ~a)") b (1+ j) )))) (close fstream) t)))) ;; ':new' creates a new class 'streamreader' ;; 'filestream' and 'chanel' are its instance variables. -;; (every objet of class 'streamreader' has it's own +;; (every object of class 'streamreader' has its own ;; copy of these variables) (setq streamreader (send class :new '(filestream chanel))) @@ -183,9 +185,9 @@ ((not val) nil) ;end of file ((numberp val) (float val)) ;valid. ((= bad-data 0) ;invalid. Throw error and quit - (throw 'err (format nil "Error~%~ + (throw 'err (format nil (_"Error~%~ Data must be numbers in plain ASCII text.~%~ - '~a' is not a numeric value." val))) + '~a' is not a numeric value.") val))) (t 0.0)))) ;invalid. Replace with zero. ;; Instantiate a new sound object @@ -195,7 +197,7 @@ (defun sound-from-file (filename) ;; Set path. fileopenp should return 'true' (if (not (fileopensp path filename)) - (throw 'err "Error.\nUnable to open file")) + (throw 'err (format nil (_"Error.~%Unable to open file")))) ; Note: we can't use (arrayp *track*) because ; *track* is nil in generate type plug-ins. (cond diff --git a/plug-ins/tremolo.ny b/plug-ins/tremolo.ny index bbddbf151..b876dea1f 100644 --- a/plug-ins/tremolo.ny +++ b/plug-ins/tremolo.ny @@ -3,12 +3,12 @@ ;type process ;preview linear ;categories "http://lv2plug.in/ns/lv2core#ModulatorPlugin" -;name "Tremolo..." +$name (_"Tremolo") ;manpage "Tremolo" ;debugbutton disabled -;action "Applying Tremolo..." -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Applying Tremolo...") +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; tremolo.ny by Steve Daulton (www.easyspacepro.com) July 2012. ;; Based on Tremolo by Dominic Mazzoni and David R. Sky." @@ -18,10 +18,10 @@ ;; For information about writing and modifying Nyquist plug-ins: ;; https://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference -;control wave "Waveform type" choice "sine,triangle,sawtooth,inverse sawtooth,square" 0 -;control phase "Starting phase (degrees)" int "" 0 -180 180 -;control wet "Wet level (percent)" int "" 40 1 100 -;control lfo "Frequency (Hz)" float-text "" 4 0.001 1000 +$control wave (_"Waveform type") choice ((_"sine") (_"triangle") (_"sawtooth") (_"inverse sawtooth") (_"square")) 0 +$control phase (_"Starting phase (degrees)") int "" 0 -180 180 +$control wet (_"Wet level (percent)") int "" 40 1 100 +$control lfo (_"Frequency (Hz)") float-text "" 4 0.001 1000 ; Convert % to linear (setq wet (/ wet 200.0)) diff --git a/plug-ins/vocalrediso.ny b/plug-ins/vocalrediso.ny index ace139fa3..62cde64e2 100644 --- a/plug-ins/vocalrediso.ny +++ b/plug-ins/vocalrediso.ny @@ -2,11 +2,11 @@ ;version 4 ;type process ;categories "http://lv2plug.in/ns/lv2core#MixerPlugin" -;name "Vocal Reduction and Isolation..." +$name (_"Vocal Reduction and Isolation") ;manpage "Vocal_Reduction_and_Isolation" -;action "Applying Action..." -;author "Robert Haenggi" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Applying Action...") +$author (_"Robert Haenggi") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; ;; vocrediso.ny, based on rjh-stereo-tool.ny ;; Released under terms of the GNU General Public License version 2: @@ -14,12 +14,21 @@ ;; Plug-in version 1.56, June 2015 ;; Requires Audacity 2.1.1 or later, developed under Audacity 2.1.1 ;; -;control action "Action" choice "Remove Vocals,Isolate Vocals,Isolate Vocals and Invert,Remove Center,Isolate Center,Isolate Center and Invert,Remove Center Classic: Mono,Analyze" 0 +$control action (_"Action") choice ( + (_"Remove Vocals") + (_"Isolate Vocals") + (_"Isolate Vocals and Invert") + (_"Remove Center") + (_"Isolate Center") + (_"Isolate Center and Invert") + (_"Remove Center Classic: Mono") + (_"Analyze") +) 0 (setf rotation 0.0) ;;control rotation "Rotation (Degrees)" real "" 0 -180 180 -;control strength "Strength" real "" 1.0 0.0 50.0 -;control low-transition "Low Cut for Vocals (Hz)" real "" 120 1 24000 -;control high-transition "High Cut for Vocals (Hz)" real "" 9000 1 24000 +$control strength (_"Strength") real "" 1.0 0.0 50.0 +$control low-transition (_"Low Cut for Vocals (Hz)") real "" 120 1 24000 +$control high-transition (_"High Cut for Vocals (Hz)") real "" 9000 1 24000 ; ;preview linear ; @@ -61,14 +70,14 @@ (t (/ s-xy s-x2)))) (a0 (- bar-y (* a1 bar-x)))) (if show (format t -"Average x: ~a, y: ~a +(_"Average x: ~a, y: ~a Covariance x y: ~a Average variance x: ~a, y: ~a Standard deviation x: ~a, y: ~a Coefficient of correlation: ~a Coefficient of determination: ~a Variation of residuals: ~a -y equals ~a plus ~a times x~%" +y equals ~a plus ~a times x~%") bar-x bar-y s-xy s-x2 s-y2 (sqrt s-x2) (sqrt s-y2) r r2 (* s-y2 (- 1 r2)) a0 a1)) (list r r2 pos-xy a0 a1))) ;; @@ -77,34 +86,34 @@ bar-x bar-y s-xy s-x2 s-y2 (sqrt s-x2) (sqrt s-y2) r r2 (* s-y2 (- 1 r2)) a0 a1) ;; ;; Summary for "Analyse", fed with coeff. of correlation (defun summary (analysis &aux (corr (car analysis)) (pan-position (third analysis))) - (format nil "Pan position: ~a~%The left and right channels are correlated by about ~a %. This means:~%~a~%" + (format nil (_"Pan position: ~a~%The left and right channels are correlated by about ~a %. This means:~%~a~%") pan-position (round (* corr 100)) (cond ((between corr 0.97 1.1) - " - The two channels are identical, i.e. dual mono. + (_" - The two channels are identical, i.e. dual mono. The center can't be removed. - Any remaining difference may be caused by lossy encoding.") + Any remaining difference may be caused by lossy encoding.")) ((between corr 0.9 0.97) - " - The two Channels are strongly related, i.e. nearly mono or extremely panned. - Most likely, the center extraction will be poor.") + (_" - The two Channels are strongly related, i.e. nearly mono or extremely panned. + Most likely, the center extraction will be poor.")) ((between corr 0.5 0.9) - " - A fairly good value, at least stereo in average and not too wide spread.") + (_" - A fairly good value, at least stereo in average and not too wide spread.")) ((between corr 0.2 0.5) - " - An ideal value for Stereo. - However, the center extraction depends also on the used reverb.") + (_" - An ideal value for Stereo. + However, the center extraction depends also on the used reverb.")) ((between corr -0.2 0.2) - " - The two channels are almost not related. + (_" - The two channels are almost not related. Either you have only noise or the piece is mastered in a unbalanced manner. - The center extraction can still be good though.") + The center extraction can still be good though.")) ((between corr -0.8 -0.2) - " - Although the Track is stereo, the field is obviously extra wide. + (_" - Although the Track is stereo, the field is obviously extra wide. This can cause strange effects. - Especially when played by only one speaker.") - (t " - The two channels are nearly identical. + Especially when played by only one speaker.")) + (t (_" - The two channels are nearly identical. Obviously, a pseudo stereo effect has been used to spread the signal over the physical distance between the speakers. - Don't expect good results from a center removal.")))) + Don't expect good results from a center removal."))))) ;;; ;;; FFT Functionality ;; @@ -119,7 +128,7 @@ bar-x bar-y s-xy s-x2 s-y2 (sqrt s-x2) (sqrt s-y2) r r2 (* s-y2 (- 1 r2)) a0 a1) (progn (setf cut (truncate (- fs zeros 1))) (snd-pwl 0 fs (list 0 (/ (float hop))(- cut hop) 1.0 cut 0.0 fs 0.0 fs))))) - ; Han + ; Hann ((= type 1) (seq (cue (control-srate-abs fs (mult 0.5 (sum 1 (lfo (/ fs (* 2.0 hop)) (/ (- fs zeros) (get-duration fs)) *table* 270))))) @@ -186,7 +195,7 @@ bar-x bar-y s-xy s-x2 s-y2 (sqrt s-x2) (sqrt s-y2) r r2 (* s-y2 (- 1 r2)) a0 a1) ;;; main procedure (defun catalog (&aux snd (original-len (/ (+ len hop) *sr*)) (dur (get-duration 1))) - (if (soundp *track*) (return-from catalog "This plug-in works only with stereo tracks.") + (if (soundp *track*) (return-from catalog (_"This plug-in works only with stereo tracks.")) (setf snd (vector (snd-copy (: *track* 0)) (snd-copy (: *track* 1))))) (cond ((= action 7) @@ -238,4 +247,4 @@ bar-x bar-y s-xy s-x2 s-y2 (sqrt s-x2) (sqrt s-y2) r r2 (* s-y2 (- 1 r2)) a0 a1) (setf *map* (snd-pwl 0 10000 (list 0 0.5 10000 0.0 20000 -0.5 20001))) (setf *norm* 1.0) (expand 120); remove for lower efficiency/more conservative memory management -(catalog) \ No newline at end of file +(catalog) diff --git a/plug-ins/vocalremover.ny b/plug-ins/vocalremover.ny index bbb97a176..7eeb8e5d9 100644 --- a/plug-ins/vocalremover.ny +++ b/plug-ins/vocalremover.ny @@ -2,12 +2,12 @@ ;version 4 ;type process ;preview linear -;name "Vocal Remover..." +$name (_"Vocal Remover") ;manpage "Vocal_Remover" -;action "Removing center-panned audio..." -;info "For reducing center-panned vocals" -;author "Steve Daulton" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Removing center-panned audio...") +$info (_"For reducing center-panned vocals") +$author (_"Steve Daulton") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; This version of vocalremover.ny by Steve Daulton June 2013. ;; @@ -20,15 +20,22 @@ ;; Released under terms of the GNU General Public License version 2: ;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html -;control action "Remove vocals or view Help" choice "Remove vocals,View Help" 0 -;control band-choice "Removal choice" choice "Simple (entire spectrum),Remove frequency band,Retain frequency band" 0 -;control low-range "Frequency band from (Hz)" float-text "" 500 0 nil -;control high-range "Frequency band to (Hz)" float-text "" 2000 0 nil +$control action (_"Remove vocals or view Help") choice ( + (_"Remove vocals") + (_"View Help") +) 0 +$control band-choice (_"Removal choice") choice ( + (_"Simple (entire spectrum)") + (_"Remove frequency band") + (_"Retain frequency band") +) 0 +$control low-range (_"Frequency band from (Hz)") float-text "" 500 0 nil +$control high-range (_"Frequency band to (Hz)") float-text "" 2000 0 nil (defun help () (let ((msg (format nil -"Vocal Remover requires a stereo track. It works best with +(_"Vocal Remover requires a stereo track. It works best with lossless files like WAV or AIFF, rather than MP3 or other compressed formats. It only removes vocals or other audio that is panned to center (sounds equally loud in left @@ -52,7 +59,7 @@ sounds like the most significant frequency range of the original vocals. If the other choices remove too much audio in a particular frequency range (such as low drums or bass), try 'Retain frequency band'. This only removes -frequencies outside the limits, retaining the others."))) +frequencies outside the limits, retaining the others.")))) (format t "~a" msg) ;print to debug (coppying supported on all platforms) msg)) ;return message @@ -60,10 +67,10 @@ frequencies outside the limits, retaining the others."))) (defun check-stereo () (when (soundp *track*) (throw 'err (format nil -"~%Vocal Remover requires an unsplit, stereo track.~%~ +(_"~%Vocal Remover requires an unsplit, stereo track.~%~ If you have a stereo track split into left and right~%~ channels, use 'Make Stereo Track' on the Track~%~ -Drop-Down Menu, then run Vocal Remover again.~%")))) +Drop-Down Menu, then run Vocal Remover again.~%"))))) (defmacro validate (Hz) ;; Filters become unstable when very close to 0 Hz or @@ -93,11 +100,11 @@ Drop-Down Menu, then run Vocal Remover again.~%")))) (defun bandstop (sig low high) (if (and low high (< (/ (- high low) low) 0.1)) - (format t "Warning:~%~ + (format t (_"Warning:~%~ Selected band-stop filter is~%~ ~a Hz to ~a Hz.~%~ A very narrow stop-band filter may have~%~ - unexpected results.~%~%" + unexpected results.~%~%") low high)) (let ((low-sig (if low (lowpass8 sig low)(s-rest 1)))) (sum @@ -114,7 +121,7 @@ Drop-Down Menu, then run Vocal Remover again.~%")))) (bandstop (aref *track* 1) low-range high-range))) ; Nothing to remove - skip effect. ((and (= band-choice 2)(not low-range)(not high-range)) - (format t "Current settings returned the original audio.") + (format t (_"Current settings returned the original audio.")) nil) ((= band-choice 2) ; remove frequencies inside range (sum (aref *track* 0) diff --git a/plug-ins/vocoder.ny b/plug-ins/vocoder.ny index 00da476b7..1d6975a4c 100644 --- a/plug-ins/vocoder.ny +++ b/plug-ins/vocoder.ny @@ -3,11 +3,11 @@ ;type process ;preview enabled ;categories "http://lv2plug.in/ns/lv2core#SpectralPlugin" -;name "Vocoder..." +$name (_"Vocoder") ;manpage "Vocoder" -;action "Processing Vocoder..." -;author "Edgar-RFT" -;copyright "Released under terms of the GNU General Public License version 2" +$action (_"Processing Vocoder...") +$author (_"Edgar-RFT") +$copyright (_"Released under terms of the GNU General Public License version 2") ;; vocoder.ny by Edgar-RFT ;; a bit of code added by David R. Sky @@ -21,13 +21,13 @@ ;; For information about writing and modifying Nyquist plug-ins: ;; https://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference -;control dst "Distance: (1 to 120, default = 20)" real "" 20 1 120 -;control mst "Output choice" choice "both channels, right only" 0 -;control bands "Number of vocoder bands" int "" 40 10 240 -;control track-vl "Amplitude of original audio (percent)" real "" 100 0 100 -;control noise-vl "Amplitude of white noise (percent)" real "" 0 0 100 -;control radar-vl "Amplitude of Radar Needles (percent)" real "" 0 0 100 -;control radar-f "Frequency of Radar Needles (Hz)" real "" 30 1 100 +$control dst (_"Distance: (1 to 120, default = 20)") real "" 20 1 120 +$control mst (_"Output choice") choice ((_"both channels") (_"right only")) 0 +$control bands (_"Number of vocoder bands") int "" 40 10 240 +$control track-vl (_"Amplitude of original audio (percent)") real "" 100 0 100 +$control noise-vl (_"Amplitude of white noise (percent)") real "" 0 0 100 +$control radar-vl (_"Amplitude of Radar Needles (percent)") real "" 0 0 100 +$control radar-f (_"Frequency of Radar Needles (Hz)") real "" 30 1 100 ; maybe the code once again has to be changed into _one_ local let-binding ; if you have lots of nyquist "[gc:" messages try this: @@ -136,4 +136,4 @@ (0 s) ; let Audacity coerce back to stereo (1 (vector original s))))) (t ; this effect isn't meant for mono - "Error.\nStereo track required.")) + (format nil (_"Error.~%Stereo track required.")))) diff --git a/src/effects/nyquist/Nyquist.cpp b/src/effects/nyquist/Nyquist.cpp index 2924520ec..3842b0c7b 100644 --- a/src/effects/nyquist/Nyquist.cpp +++ b/src/effects/nyquist/Nyquist.cpp @@ -329,7 +329,7 @@ bool NyquistEffect::DefineParams( ShuttleParams & S ) } else if (ctrl.type == NYQ_CTRL_CHOICE) { - wxArrayString choices = ParseChoice(ctrl); + const wxArrayString &choices = ctrl.choices; int x=d; //parms.WriteEnum(ctrl.var, (int) d, choices); S.DefineEnum( x, static_cast( ctrl.var.c_str() ), 0, choices ); @@ -378,7 +378,7 @@ bool NyquistEffect::GetAutomationParameters(CommandParameters & parms) } else if (ctrl.type == NYQ_CTRL_CHOICE) { - wxArrayString choices = ParseChoice(ctrl); + const wxArrayString &choices = ctrl.choices; parms.WriteEnum(ctrl.var, (int) d, choices); } else if (ctrl.type == NYQ_CTRL_STRING) @@ -428,7 +428,7 @@ bool NyquistEffect::SetAutomationParameters(CommandParameters & parms) else if (ctrl.type == NYQ_CTRL_CHOICE) { int val; - wxArrayString choices = ParseChoice(ctrl); + const wxArrayString &choices = ctrl.choices; good = parms.ReadEnum(ctrl.var, &val, choices) && val != wxNOT_FOUND; } @@ -468,7 +468,7 @@ bool NyquistEffect::SetAutomationParameters(CommandParameters & parms) else if (ctrl.type == NYQ_CTRL_CHOICE) { int val {0}; - wxArrayString choices = ParseChoice(ctrl); + const wxArrayString &choices = ctrl.choices; parms.ReadEnum(ctrl.var, &val, choices); ctrl.val = (double) val; } @@ -554,8 +554,12 @@ bool NyquistEffect::CheckWhetherSkipEffect() return (mIsPrompt && mControls.size() > 0); } +static void RegisterFunctions(); + bool NyquistEffect::Process() { + RegisterFunctions(); + bool success = true; mProjectChanged = false; @@ -1465,16 +1469,29 @@ wxString NyquistEffect::EscapeString(const wxString & inStr) return str; } -wxArrayString NyquistEffect::ParseChoice(const NyqControl & ctrl) +wxArrayString NyquistEffect::ParseChoice(const wxString & text) { - wxArrayString choices = wxStringTokenize(ctrl.label, wxT(",")); - - for (size_t i = 0, cnt = choices.GetCount();i < cnt; i++) - { - choices[i] = choices[i].Trim(true).Trim(false); + if (text[0] == wxT('(')) { + // New style: expecting a Lisp-like list of strings + Tokenizer tzer; + tzer.Tokenize(text, true, 1, 1); + auto &choices = tzer.tokens; + for (auto &choice : choices) + choice = UnQuote(choice); + return choices; + } + else { + // Old style: expecting a comma-separated list of + // un-internationalized names, ignoring leading and trailing spaces + // on each; and the whole may be quoted + auto choices = wxStringTokenize( + text[0] == wxT('"') ? text.Mid(1, text.Length() - 2) : text, + wxT(",") + ); + for (auto &choice : choices) + choice = choice.Trim(true).Trim(false); + return choices; } - - return choices; } void NyquistEffect::RedirectOutput() @@ -1504,16 +1521,29 @@ void NyquistEffect::Stop() mStop = true; } -wxString NyquistEffect::UnQuote(const wxString &s) +wxString NyquistEffect::UnQuote( + const wxString &s, bool allowParens, bool translate) { - wxString out; int len = s.Length(); - if (len >= 2 && s[0] == wxT('\"') && s[len - 1] == wxT('\"')) { - return s.Mid(1, len - 2); + auto unquoted = s.Mid(1, len - 2); + return translate ? GetCustomTranslation( unquoted ) : unquoted; } - - return s; + else if (allowParens && + len >= 2 && s[0] == wxT('(') && s[len - 1] == wxT(')')) { + Tokenizer tzer; + tzer.Tokenize(s, true, 1, 1); + auto &tokens = tzer.tokens; + if (tokens.size() > 1) + // Assume the first token was _ -- we don't check that + // And the second is the string, which is internationalized + return UnQuote( tokens[1], false, true ); + else + return {}; + } + else + // If string was not quoted, assume no translation exists + return s; } double NyquistEffect::GetCtrlValue(const wxString &s) @@ -1536,56 +1566,92 @@ double NyquistEffect::GetCtrlValue(const wxString &s) return Internat::CompatibleToDouble(s); } -void NyquistEffect::Parse(const wxString &line) +bool NyquistEffect::Tokenizer::Tokenize( + const wxString &line, bool eof, + size_t trimStart, size_t trimEnd) { - wxArrayString tokens; + auto endToken = [&]{ + if (!tok.empty()) { + tokens.push_back(tok); + tok = wxT(""); + } + }; - int i; - int len = line.Length(); - bool sl = false; - bool q = false; - wxString tok = wxT(""); - - for (i = 1; i < len; i++) { - wxChar c = line[i]; - - if (c == wxT('\\')) { + for (auto c : + make_iterator_range(line.begin() + trimStart, line.end() - trimEnd)) { + if (q && c == wxT('\\')) { + // begin escaped character, only within quotes sl = true; + continue; } - else if (c == wxT('"')) { - q = !q; + + if (!sl && !paren && c == wxT('"')) { + if (!q) + // finish previous token; begin token, including the delimiter + endToken(), q = true, tok += c; + else + // end token, including the delimiter + tok += c, q = false, endToken(); } - else { - if ((!q && !sl && c == wxT(' ')) || c == wxT('\t')) { - tokens.Add(tok); - tok = wxT(""); - } - else if (sl && c == wxT('n')) { - tok += wxT('\n'); - } - else { + else if (!q && !paren && (c == wxT(' ') || c == wxT('\t'))) + // Separate tokens; don't accumulate this character + endToken(); + else if (!q && c == wxT('(')) { + if (++paren == 1) + // finish previous token; begin list, including the delimiter + endToken(), tok += c; + else + // defer tokenizing of nested list to a later pass over the token tok += c; - } - - sl = false; } + else if (!q && c == wxT(')')) { + if (--paren == 0) + // finish list, including the delimiter + tok += c, endToken(); + else if (paren < 0) + // forgive unbalanced right paren + paren = 0, endToken(); + else + // nested list; deferred tokenizing + tok += c; + } + else + tok += c; + + sl = false; } - if (tok != wxT("")) { - tokens.Add(tok); + if (eof || (!q && !paren)) { + endToken(); + return true; } + else { + // End of line but not of file, and a string or list is yet unclosed + // If a string, accumulate a newline character + if (q) + tok += wxT('\n'); + return false; + } +} - len = tokens.GetCount(); +bool NyquistEffect::Parse( + Tokenizer &tzer, const wxString &line, bool eof, bool first) +{ + if ( !tzer.Tokenize(line, eof, first ? 1 : 0, 0) ) + return false; + + const auto &tokens = tzer.tokens; + int len = tokens.size(); if (len < 1) { - return; + return true; } - // Consistency decission is for "plug-in" as the correct spelling + // Consistency decision is for "plug-in" as the correct spelling // "plugin" (deprecated) is allowed as an undocumented convenience. if (len == 2 && tokens[0] == wxT("nyquist") && (tokens[1] == wxT("plug-in") || tokens[1] == wxT("plugin"))) { mOK = true; - return; + return true; } if (len >= 2 && tokens[0] == wxT("type")) { @@ -1601,7 +1667,7 @@ void NyquistEffect::Parse(const wxString &line) if (len >= 3 && tokens[2] == wxT("spectral")) {; mIsSpectral = true; } - return; + return true; } if (len == 2 && tokens[0] == wxT("codetype")) { @@ -1614,7 +1680,7 @@ void NyquistEffect::Parse(const wxString &line) mIsSal = true; mFoundType = true; } - return; + return true; } // TODO: Update documentation. @@ -1636,7 +1702,7 @@ void NyquistEffect::Parse(const wxString &line) mCompiler = false; } } - return; + return true; } // We support versions 1, 2 and 3 @@ -1653,28 +1719,24 @@ void NyquistEffect::Parse(const wxString &line) _("This version of Audacity does not support Nyquist plug-in version %ld"), v ); - return; + return true; } mVersion = (int) v; } if (len >= 2 && tokens[0] == wxT("name")) { mName = UnQuote(tokens[1]); - if (mName.EndsWith(wxT("..."))) - { - mName = mName.RemoveLast(3); - } - return; + return true; } if (len >= 2 && tokens[0] == wxT("action")) { mAction = UnQuote(tokens[1]); - return; + return true; } if (len >= 2 && tokens[0] == wxT("info")) { mInfo = UnQuote(tokens[1]); - return; + return true; } if (len >= 2 && tokens[0] == wxT("preview")) { @@ -1693,7 +1755,7 @@ void NyquistEffect::Parse(const wxString &line) else if (tokens[1] == wxT("disabled") || tokens[1] == wxT("false")) { mEnablePreview = false; } - return; + return true; } // Maximum number of samples to be processed. This can help the @@ -1710,7 +1772,7 @@ void NyquistEffect::Parse(const wxString &line) // -1 = auto (default), 0 = don't merge clips, 1 = do merge clips tokens[1].ToLong(&v); mMergeClips = v; - return; + return true; } if (len >= 2 && tokens[0] == wxT("restoresplits")) { @@ -1718,32 +1780,34 @@ void NyquistEffect::Parse(const wxString &line) // Splits are restored by default. Set to 0 to prevent. tokens[1].ToLong(&v); mRestoreSplits = !!v; - return; + return true; } #endif if (len >= 2 && tokens[0] == wxT("author")) { mAuthor = UnQuote(tokens[1]); - return; + return true; } if (len >= 2 && tokens[0] == wxT("copyright")) { mCopyright = UnQuote(tokens[1]); - return; + return true; } // TODO: Document. // Page name in Audacity development manual if (len >= 2 && tokens[0] == wxT("manpage")) { - mManPage = UnQuote(tokens[1]); - return; + // do not translate + mManPage = UnQuote(tokens[1], false, false); + return true; } // TODO: Document. // Local Help file if (len >= 2 && tokens[0] == wxT("helpfile")) { - mHelpFile = UnQuote(tokens[1]); - return; + // do not translate + mHelpFile = UnQuote(tokens[1], false, false); + return true; } // TODO: Document. @@ -1752,27 +1816,40 @@ void NyquistEffect::Parse(const wxString &line) if (tokens[1] == wxT("disabled") || tokens[1] == wxT("false")) { mDebugButton = false; } - return; + return true; } if (len >= 6 && tokens[0] == wxT("control")) { NyqControl ctrl; ctrl.var = tokens[1]; - ctrl.name = tokens[2]; + ctrl.name = UnQuote( tokens[2] ); + // 3 is type, below ctrl.label = tokens[4]; + + // valStr may or may not be a quoted string ctrl.valStr = tokens[5]; ctrl.val = GetCtrlValue(ctrl.valStr); + if (ctrl.valStr[0] == wxT('(') || ctrl.valStr[0] == wxT('"')) + ctrl.valStr = UnQuote( ctrl.valStr ); + + // 6 is minimum, below + // 7 is maximum, below if (tokens[3] == wxT("string")) { ctrl.type = NYQ_CTRL_STRING; + ctrl.label = UnQuote( ctrl.label ); } else if (tokens[3] == wxT("choice")) { ctrl.type = NYQ_CTRL_CHOICE; + ctrl.choices = ParseChoice(ctrl.label); + ctrl.label = wxT(""); } else { + ctrl.label = UnQuote( ctrl.label ); + if (len < 8) { - return; + return true; } if ((tokens[3] == wxT("float")) || @@ -1796,7 +1873,7 @@ void NyquistEffect::Parse(const wxString &line) // Note that the AudacityApp's mLogger has not yet been created, // so this brings up an alert box, but after the Audacity frame is up. wxLogWarning(str); - return; + return true; } ctrl.lowStr = tokens[6]; @@ -1851,6 +1928,7 @@ void NyquistEffect::Parse(const wxString &line) mCategories.Add(tokens[i]); } } + return true; } bool NyquistEffect::ParseProgram(wxInputStream & stream) @@ -1879,27 +1957,47 @@ bool NyquistEffect::ParseProgram(wxInputStream & stream) mFoundType = false; while (!stream.Eof() && stream.IsOk()) { + bool dollar = false; wxString line = pgm.ReadLine().Trim(false); - if (line.Length() > 1 && line[0] == wxT(';')) + if (line.Length() > 1 && + // New in 2.3.0: allow magic comment lines to start with $ + // The trick is that xgettext will not consider such lines comments + // and will extract the strings they contain + (line[0] == wxT(';') || + (dollar = (line[0] == wxT('$'))))) { - Parse(line); + Tokenizer tzer; + unsigned nLines = 1; + bool done; + do + // Allow run-ons only for new $ format header lines + done = Parse(tzer, line, !dollar || stream.Eof(), nLines == 1); + while(!done && + (line = pgm.ReadLine().Trim(false), ++nLines, true)); + + // Don't pass these lines to the interpreter, so it doesn't get confused + // by $, but pass blanks, + // so that SAL effects compile with proper line numbers + while (nLines --) + mCmd += wxT('\n'); } - else if (!mFoundType && line.Length() > 0) + else { - if (line[0] == wxT('(') || - (line[0] == wxT('#') && line.Length() > 1 && line[1] == wxT('|'))) - { - mIsSal = false; - mFoundType = true; - } - else if (line.Upper().Find(wxT("RETURN")) != wxNOT_FOUND) - { - mIsSal = true; - mFoundType = true; + if(!mFoundType && line.Length() > 0) { + if (line[0] == wxT('(') || + (line[0] == wxT('#') && line.Length() > 1 && line[1] == wxT('|'))) + { + mIsSal = false; + mFoundType = true; + } + else if (line.Upper().Find(wxT("RETURN")) != wxNOT_FOUND) + { + mIsSal = true; + mFoundType = true; + } } + mCmd += line + wxT("\n"); } - // preserve comments so that SAL effects compile with proper line numbers - mCmd += line + wxT("\n"); } if (!mFoundType && mIsPrompt) { @@ -2120,7 +2218,7 @@ bool NyquistEffect::TransferDataToEffectWindow() if (ctrl.type == NYQ_CTRL_CHOICE) { - wxArrayString choices = ParseChoice(ctrl); + const wxArrayString &choices = ctrl.choices; int val = (int)ctrl.val; if (val < 0 || val >= (int)choices.GetCount()) @@ -2284,7 +2382,7 @@ void NyquistEffect::BuildEffectWindow(ShuttleGui & S) { S.AddSpace(10, 10); - wxArrayString choices = wxStringTokenize(ctrl.label, wxT(",")); + const wxArrayString &choices = ctrl.choices; S.Id(ID_Choice + i).AddChoice( {}, wxT(""), &choices); } else @@ -2532,3 +2630,39 @@ void NyquistOutputDialog::OnOk(wxCommandEvent & /* event */) EndModal(wxID_OK); } +// Registration of extra functions in XLisp. +#include "../../../lib-src/libnyquist/nyquist/xlisp/xlisp.h" + +static LVAL gettext() +{ + auto string = UTF8CTOWX(getstring(xlgastring())); + xllastarg(); + return cvstring(GetCustomTranslation(string).mb_str(wxConvUTF8)); +} + +static LVAL ngettext() +{ + auto string1 = UTF8CTOWX(getstring(xlgastring())); + auto string2 = UTF8CTOWX(getstring(xlgastring())); + auto number = getfixnum(xlgafixnum()); + xllastarg(); + return cvstring( + wxGetTranslation(string1, string2, number).mb_str(wxConvUTF8)); +} + +static void RegisterFunctions() +{ + // Add functions to XLisp. Do this only once, + // before the first call to nyx_init. + static bool firstTime = true; + if (firstTime) { + firstTime = false; + + static const FUNDEF functions[] = { + { "_", SUBR, gettext }, + { "ngettext", SUBR, ngettext }, + }; + + xlbindfunctions( functions, sizeof(functions)/sizeof(*functions) ); + } +} diff --git a/src/effects/nyquist/Nyquist.h b/src/effects/nyquist/Nyquist.h index f86bbab2e..6e43fa99c 100644 --- a/src/effects/nyquist/Nyquist.h +++ b/src/effects/nyquist/Nyquist.h @@ -56,6 +56,7 @@ public: wxString var; wxString name; wxString label; + wxArrayString choices; wxString valStr; wxString lowStr; wxString highStr; @@ -141,7 +142,7 @@ private: static wxString NyquistToWxString(const char *nyqString); wxString EscapeString(const wxString & inStr); - wxArrayString ParseChoice(const NyqControl & ctrl); + static wxArrayString ParseChoice(const wxString & text); static int StaticGetCallback(float *buffer, int channel, long start, long len, long totlen, @@ -162,9 +163,21 @@ private: void ParseFile(); bool ParseCommand(const wxString & cmd); bool ParseProgram(wxInputStream & stream); - void Parse(const wxString &line); + struct Tokenizer { + bool sl { false }; + bool q { false }; + int paren{ 0 }; + wxString tok; + wxArrayString tokens; - wxString UnQuote(const wxString &s); + bool Tokenize( + const wxString &line, bool eof, + size_t trimStart, size_t trimEnd); + }; + bool Parse(Tokenizer &tokenizer, const wxString &line, bool eof, bool first); + + static wxString UnQuote(const wxString &s, + bool allowParens = true, bool translate = true); double GetCtrlValue(const wxString &s); void OnLoad(wxCommandEvent & evt);