diff --git a/po/es.po b/po/es.po index 4c01082af..2c43d0008 100644 --- a/po/es.po +++ b/po/es.po @@ -10,6 +10,903 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/main.cpp:510 +msgid "this is a test!" +msgstr "este es una prueba!" + +#: src/gui/mixer.cpp:28 src/gui/insEdit.cpp:484 +msgid "left" +msgstr "" + +#: src/gui/mixer.cpp:29 src/gui/insEdit.cpp:483 +msgid "right" +msgstr "" + +#: src/gui/mixer.cpp:128 +msgid "input" +msgstr "" + +#: src/gui/mixer.cpp:168 +msgid "output" +msgstr "" + +#: src/gui/mixer.cpp:228 src/gui/editControls.cpp:454 src/gui/guiConst.cpp:593 +msgid "Mixer" +msgstr "" + +#: src/gui/mixer.cpp:229 +msgid "Master Volume" +msgstr "" + +#: src/gui/mixer.cpp:250 src/gui/exportOptions.cpp:90 +#: src/gui/userPresets.cpp:393 src/gui/userPresets.cpp:405 +#: src/gui/waveEdit.cpp:1096 src/gui/sampleEdit.cpp:1128 +#: src/gui/insEdit.cpp:519 +msgid "Invert" +msgstr "" + +#: src/gui/mixer.cpp:268 src/gui/userPresets.cpp:417 +#: src/gui/findReplace.cpp:687 src/gui/findReplace.cpp:943 +#: src/gui/guiConst.cpp:228 src/gui/sampleEdit.cpp:1003 +#: src/gui/insEdit.cpp:5575 src/gui/insEdit.cpp:5660 src/gui/insEdit.cpp:6920 +#: src/gui/insEdit.cpp:6928 src/gui/insEdit.cpp:6936 src/gui/insEdit.cpp:6946 +#: src/gui/insEdit.cpp:6961 src/gui/insEdit.cpp:6975 src/gui/insEdit.cpp:6987 +#: src/gui/insEdit.cpp:7000 src/gui/insEdit.cpp:7016 src/gui/insEdit.cpp:7022 +#: src/gui/insEdit.cpp:7032 src/gui/insEdit.cpp:7039 src/gui/insEdit.cpp:7045 +#: src/gui/insEdit.cpp:7058 src/gui/insEdit.cpp:7065 src/gui/insEdit.cpp:7072 +#: src/gui/insEdit.cpp:7081 src/gui/insEdit.cpp:7091 src/gui/insEdit.cpp:7099 +#: src/gui/insEdit.cpp:7105 src/gui/insEdit.cpp:7113 src/gui/insEdit.cpp:7120 +#: src/gui/insEdit.cpp:7126 src/gui/insEdit.cpp:7136 src/gui/insEdit.cpp:7148 +#: src/gui/insEdit.cpp:7156 src/gui/insEdit.cpp:7172 src/gui/insEdit.cpp:7177 +#: src/gui/insEdit.cpp:7190 src/gui/insEdit.cpp:7197 src/gui/insEdit.cpp:7208 +#: src/gui/insEdit.cpp:7221 src/gui/insEdit.cpp:7230 src/gui/insEdit.cpp:7237 +#: src/gui/insEdit.cpp:7245 src/gui/insEdit.cpp:7258 src/gui/insEdit.cpp:7263 +#: src/gui/insEdit.cpp:7269 src/gui/insEdit.cpp:7276 src/gui/insEdit.cpp:7284 +#: src/gui/insEdit.cpp:7295 src/gui/insEdit.cpp:7302 src/gui/insEdit.cpp:7310 +#: src/gui/insEdit.cpp:7318 src/gui/insEdit.cpp:7327 src/gui/insEdit.cpp:7335 +#: src/gui/insEdit.cpp:7341 src/gui/insEdit.cpp:7347 src/gui/insEdit.cpp:7353 +#: src/gui/insEdit.cpp:7358 src/gui/insEdit.cpp:7365 src/gui/insEdit.cpp:7372 +#: src/gui/insEdit.cpp:7380 src/gui/insEdit.cpp:7389 src/gui/insEdit.cpp:7397 +#: src/gui/insEdit.cpp:7409 src/gui/insEdit.cpp:7422 src/gui/insEdit.cpp:7433 +#: src/gui/insEdit.cpp:7443 src/gui/insEdit.cpp:7451 src/gui/insEdit.cpp:7461 +#: src/gui/insEdit.cpp:7470 +msgid "Volume" +msgstr "" + +#: src/gui/mixer.cpp:279 src/gui/userPresets.cpp:427 src/gui/guiConst.cpp:229 +#: src/gui/insEdit.cpp:6923 src/gui/insEdit.cpp:6930 src/gui/insEdit.cpp:6941 +#: src/gui/insEdit.cpp:6965 src/gui/insEdit.cpp:7067 src/gui/insEdit.cpp:7108 +#: src/gui/insEdit.cpp:7152 src/gui/insEdit.cpp:7192 src/gui/insEdit.cpp:7212 +#: src/gui/insEdit.cpp:7232 src/gui/insEdit.cpp:7240 src/gui/insEdit.cpp:7253 +#: src/gui/insEdit.cpp:7265 src/gui/insEdit.cpp:7271 src/gui/insEdit.cpp:7287 +#: src/gui/insEdit.cpp:7297 src/gui/insEdit.cpp:7360 src/gui/insEdit.cpp:7392 +#: src/gui/insEdit.cpp:7438 src/gui/insEdit.cpp:7446 +msgid "Panning" +msgstr "" + +#: src/gui/mixer.cpp:290 src/gui/userPresets.cpp:433 +msgid "Front/Rear" +msgstr "" + +#: src/gui/mixer.cpp:299 +msgid "Patchbay" +msgstr "" + +#: src/gui/mixer.cpp:305 +msgid "Automatic patchbay" +msgstr "" + +#: src/gui/mixer.cpp:310 +msgid "Display hidden ports" +msgstr "" + +#: src/gui/mixer.cpp:312 +msgid "Display internal" +msgstr "" + +#: src/gui/mixer.cpp:322 src/gui/mixer.cpp:383 src/gui/songInfo.cpp:69 +msgid "System" +msgstr "" + +#: src/gui/mixer.cpp:354 +msgid "Sample Preview" +msgstr "" + +#: src/gui/mixer.cpp:367 src/gui/editControls.cpp:745 +#: src/gui/editControls.cpp:837 src/gui/editControls.cpp:953 +#: src/gui/editControls.cpp:1093 src/gui/guiConst.cpp:558 +msgid "Metronome" +msgstr "" + +#: src/gui/mixer.cpp:446 +msgid "disconnect all" +msgstr "" + +#: src/gui/editing.cpp:200 +#, c-format +msgid "no data in oldPatMap for channel %d!" +msgstr "" + +#: src/gui/editing.cpp:664 src/gui/editing.cpp:1203 +#, c-format +msgid "invalid clipboard data! failed at line %d char %d" +msgstr "" + +#: src/gui/editing.cpp:1565 src/gui/editing.cpp:1669 +msgid "can't collapse any further!" +msgstr "" + +#: src/gui/editing.cpp:1749 +msgid "can't expand any further!" +msgstr "" + +#: src/gui/editing.cpp:1836 src/gui/editing.cpp:1851 +#, c-format +msgid "copy: %s" +msgstr "" + +#: src/gui/memory.cpp:146 +#, c-format +msgid "bank %d" +msgstr "" + +#: src/gui/memory.cpp:175 src/gui/memory.cpp:176 +msgid "no chips with memory" +msgstr "" + +#: src/gui/intro.cpp:89 src/gui/gui.cpp:2339 src/gui/gui.cpp:3740 +#: src/gui/gui.cpp:5007 src/gui/gui.cpp:5029 src/gui/gui.cpp:5467 +#: src/gui/gui.cpp:5769 src/gui/gui.cpp:5779 +#, c-format +msgid "Error while loading file! (%s)" +msgstr "" + +#: src/gui/intro.cpp:124 +msgid "Preview" +msgstr "" + +#: src/gui/intro.cpp:176 src/gui/intro.cpp:177 src/gui/intro.cpp:178 +msgid "SORRY NOTHING" +msgstr "" + +#: src/gui/intro.cpp:310 +msgid "hold to skip" +msgstr "" + +#: src/gui/dataList.cpp:76 +msgid "Bug!" +msgstr "" + +#: src/gui/dataList.cpp:79 src/gui/util.cpp:107 src/gui/util.cpp:109 +#: src/gui/insEdit.cpp:5334 +msgid "Unknown" +msgstr "" + +#: src/gui/dataList.cpp:136 src/gui/dataList.cpp:260 +msgid "duplicate" +msgstr "" + +#: src/gui/dataList.cpp:139 src/gui/dataList.cpp:263 src/gui/dataList.cpp:388 +#: src/gui/dataList.cpp:731 src/gui/dataList.cpp:867 +msgid "replace..." +msgstr "" + +#: src/gui/dataList.cpp:142 src/gui/dataList.cpp:266 src/gui/gui.cpp:4226 +msgid "save" +msgstr "" + +#: src/gui/dataList.cpp:145 +msgid "save (.dmp)" +msgstr "" + +#: src/gui/dataList.cpp:148 src/gui/dataList.cpp:269 src/gui/dataList.cpp:617 +#: src/gui/dataList.cpp:994 src/gui/dataList.cpp:1040 +#: src/gui/editControls.cpp:50 src/gui/gui.cpp:2761 src/gui/gui.cpp:2770 +msgid "delete" +msgstr "" + +#: src/gui/dataList.cpp:243 +msgid "out of memory for this sample!" +msgstr "" + +#: src/gui/dataList.cpp:254 +msgid "make instrument" +msgstr "" + +#: src/gui/dataList.cpp:257 +msgid "make me a drum kit" +msgstr "" + +#: src/gui/dataList.cpp:312 src/gui/dataList.cpp:714 src/gui/dataList.cpp:846 +#: src/gui/subSongs.cpp:88 src/gui/insEdit.cpp:520 +msgid "Add" +msgstr "" + +#: src/gui/dataList.cpp:338 src/gui/dataList.cpp:721 src/gui/dataList.cpp:853 +#: src/gui/subSongs.cpp:108 +msgid "Duplicate" +msgstr "" + +#: src/gui/dataList.cpp:359 src/gui/dataList.cpp:728 src/gui/dataList.cpp:860 +#: src/gui/editControls.cpp:497 src/gui/waveEdit.cpp:435 +#: src/gui/waveEdit.cpp:467 src/gui/sampleEdit.cpp:122 +#: src/gui/sampleEdit.cpp:171 src/gui/insEdit.cpp:5239 src/gui/insEdit.cpp:5304 +msgid "Open" +msgstr "" + +#: src/gui/dataList.cpp:363 +msgid "replace instrument..." +msgstr "" + +#: src/gui/dataList.cpp:366 +msgid "load instrument from TX81Z" +msgstr "" + +#: src/gui/dataList.cpp:372 +msgid "replace wavetable..." +msgstr "" + +#: src/gui/dataList.cpp:378 +msgid "replace sample..." +msgstr "" + +#: src/gui/dataList.cpp:381 +msgid "import raw sample..." +msgstr "" + +#: src/gui/dataList.cpp:384 +msgid "import raw sample (replace)..." +msgstr "" + +#: src/gui/dataList.cpp:392 +msgid "load from TX81Z" +msgstr "" + +#: src/gui/dataList.cpp:399 +msgid "Open (insert; right-click to replace)" +msgstr "" + +#: src/gui/dataList.cpp:420 src/gui/dataList.cpp:741 src/gui/dataList.cpp:884 +#: src/gui/editControls.cpp:502 src/gui/waveEdit.cpp:474 +#: src/gui/sampleEdit.cpp:184 src/gui/insEdit.cpp:5311 +msgid "Save" +msgstr "" + +#: src/gui/dataList.cpp:424 +msgid "save instrument as .dmp..." +msgstr "" + +#: src/gui/dataList.cpp:430 +msgid "save wavetable as .dmw..." +msgstr "" + +#: src/gui/dataList.cpp:433 +msgid "save raw wavetable..." +msgstr "" + +#: src/gui/dataList.cpp:439 +msgid "save raw sample..." +msgstr "" + +#: src/gui/dataList.cpp:443 src/gui/insEdit.cpp:5314 +msgid "save as .dmp..." +msgstr "" + +#: src/gui/dataList.cpp:456 src/gui/dataList.cpp:761 src/gui/dataList.cpp:903 +msgid "Toggle folders/standard view" +msgstr "" + +#: src/gui/dataList.cpp:478 src/gui/dataList.cpp:769 src/gui/dataList.cpp:911 +#: src/gui/subSongs.cpp:55 +msgid "Move up" +msgstr "" + +#: src/gui/dataList.cpp:499 src/gui/dataList.cpp:776 src/gui/dataList.cpp:918 +#: src/gui/subSongs.cpp:62 +msgid "Move down" +msgstr "" + +#: src/gui/dataList.cpp:510 src/gui/dataList.cpp:787 src/gui/dataList.cpp:929 +msgid "Create" +msgstr "" + +#: src/gui/dataList.cpp:540 src/gui/dataList.cpp:797 src/gui/dataList.cpp:939 +msgid "New folder" +msgstr "" + +#: src/gui/dataList.cpp:549 src/gui/dataList.cpp:947 +msgid "Preview (right click to stop)" +msgstr "" + +#: src/gui/dataList.cpp:576 src/gui/dataList.cpp:807 src/gui/dataList.cpp:959 +#: src/gui/guiConst.cpp:666 src/gui/sampleEdit.cpp:1105 +msgid "Delete" +msgstr "" + +#: src/gui/dataList.cpp:593 src/gui/gui.cpp:5902 +msgid "Instruments" +msgstr "" + +#: src/gui/dataList.cpp:608 src/gui/dataList.cpp:985 src/gui/dataList.cpp:1031 +msgid "" +msgstr "" + +#: src/gui/dataList.cpp:614 src/gui/dataList.cpp:991 src/gui/dataList.cpp:1037 +msgid "rename..." +msgstr "" + +#: src/gui/dataList.cpp:663 src/gui/gui.cpp:5911 +msgid "Wavetables" +msgstr "" + +#: src/gui/dataList.cpp:674 src/gui/xyOsc.cpp:68 src/gui/sampleEdit.cpp:898 +#: src/gui/sampleEdit.cpp:1072 src/gui/gui.cpp:5920 +msgid "Samples" +msgstr "" + +#: src/gui/dataList.cpp:745 src/gui/waveEdit.cpp:477 +msgid "save as .dmw..." +msgstr "" + +#: src/gui/dataList.cpp:748 src/gui/dataList.cpp:891 src/gui/waveEdit.cpp:480 +#: src/gui/sampleEdit.cpp:187 +msgid "save raw..." +msgstr "" + +#: src/gui/dataList.cpp:871 src/gui/sampleEdit.cpp:174 +msgid "import raw..." +msgstr "" + +#: src/gui/dataList.cpp:874 +msgid "import raw (replace)..." +msgstr "" + +#: src/gui/exportOptions.cpp:29 +msgid "Export type:" +msgstr "" + +#: src/gui/exportOptions.cpp:32 +msgid "one file" +msgstr "" + +#: src/gui/exportOptions.cpp:35 +msgid "multiple files (one per chip)" +msgstr "" + +#: src/gui/exportOptions.cpp:38 +msgid "multiple files (one per channel)" +msgstr "" + +#: src/gui/exportOptions.cpp:44 +msgid "Bit depth:" +msgstr "" + +#: src/gui/exportOptions.cpp:46 +msgid "16-bit integer" +msgstr "" + +#: src/gui/exportOptions.cpp:49 +msgid "32-bit float" +msgstr "" + +#: src/gui/exportOptions.cpp:55 src/gui/gui.cpp:6258 +msgid "Sample rate" +msgstr "" + +#: src/gui/exportOptions.cpp:61 +msgid "Channels in file" +msgstr "" + +#: src/gui/exportOptions.cpp:67 +msgid "Loops" +msgstr "" + +#: src/gui/exportOptions.cpp:70 +msgid "Fade out (seconds)" +msgstr "" + +#: src/gui/exportOptions.cpp:76 +msgid "Channels to export:" +msgstr "" + +#: src/gui/exportOptions.cpp:78 src/gui/effectList.cpp:32 src/gui/gui.cpp:6174 +msgid "All" +msgstr "" + +#: src/gui/exportOptions.cpp:84 src/gui/effectList.cpp:34 +#: src/gui/compatFlags.cpp:219 src/gui/waveEdit.cpp:37 src/gui/gui.cpp:6180 +#: src/gui/insEdit.cpp:518 +msgid "None" +msgstr "" + +#: src/gui/exportOptions.cpp:110 src/gui/exportOptions.cpp:214 +#: src/gui/exportOptions.cpp:225 src/gui/exportOptions.cpp:243 +#: src/gui/exportOptions.cpp:266 src/gui/exportOptions.cpp:297 +#: src/gui/exportOptions.cpp:318 src/gui/exportOptions.cpp:341 +#: src/gui/commandPalette.cpp:199 src/gui/newSong.cpp:273 src/gui/gui.cpp:5657 +#: src/gui/gui.cpp:5681 src/gui/gui.cpp:5705 src/gui/gui.cpp:5729 +#: src/gui/gui.cpp:5753 src/gui/gui.cpp:5784 src/gui/gui.cpp:5843 +#: src/gui/gui.cpp:6217 src/gui/gui.cpp:6341 +msgid "Cancel" +msgstr "" + +#: src/gui/exportOptions.cpp:115 src/gui/exportOptions.cpp:217 +#: src/gui/exportOptions.cpp:246 src/gui/exportOptions.cpp:300 +#: src/gui/exportOptions.cpp:321 src/gui/exportOptions.cpp:344 +#: src/gui/editControls.cpp:512 src/gui/userPresets.cpp:523 +#: src/gui/guiConst.cpp:536 src/gui/gui.cpp:5566 src/gui/gui.cpp:5618 +msgid "Export" +msgstr "" + +#: src/gui/exportOptions.cpp:130 +msgid "select at least one channel" +msgstr "" + +#: src/gui/exportOptions.cpp:137 +msgid "settings:" +msgstr "" + +#: src/gui/exportOptions.cpp:138 +msgid "format version" +msgstr "" + +#: src/gui/exportOptions.cpp:146 src/gui/exportOptions.cpp:238 +#: src/gui/insEdit.cpp:362 +msgid "loop" +msgstr "" + +#: src/gui/exportOptions.cpp:148 +msgid "loop trail:" +msgstr "" + +#: src/gui/exportOptions.cpp:150 +msgid "auto-detect" +msgstr "" + +#: src/gui/exportOptions.cpp:153 +msgid "add one loop" +msgstr "" + +#: src/gui/exportOptions.cpp:156 +msgid "custom" +msgstr "" + +#: src/gui/exportOptions.cpp:167 +msgid "add pattern change hints" +msgstr "" + +#: src/gui/exportOptions.cpp:170 +msgid "" +"inserts data blocks on pattern changes.\n" +"useful if you are writing a playback routine.\n" +"\n" +"the format of a pattern change data block is:\n" +"67 66 FE ll ll ll ll 01 oo rr pp pp pp ...\n" +"- ll: length, a 32-bit little-endian number\n" +"- oo: order\n" +"- rr: initial row (a 0Dxx effect is able to select a different row)\n" +"- pp: pattern index (one per channel)\n" +"\n" +"pattern indexes are ordered as they appear in the song." +msgstr "" + +#: src/gui/exportOptions.cpp:183 +msgid "direct stream mode" +msgstr "" + +#: src/gui/exportOptions.cpp:186 +msgid "" +"required for DualPCM and MSM6258 export.\n" +"\n" +"allows for volume/direction changes when playing samples,\n" +"at the cost of a massive increase in file size." +msgstr "" + +#: src/gui/exportOptions.cpp:191 +msgid "chips to export:" +msgstr "" + +#: src/gui/exportOptions.cpp:200 +#, c-format +msgid "this chip is only available in VGM %d.%.2x and higher!" +msgstr "" + +#: src/gui/exportOptions.cpp:204 +msgid "this chip is not supported by the VGM format!" +msgstr "" + +#: src/gui/exportOptions.cpp:210 +#, c-format +msgid "select the chip you wish to export, but only up to %d of each type." +msgstr "" + +#: src/gui/exportOptions.cpp:222 +msgid "nothing to export" +msgstr "" + +#: src/gui/exportOptions.cpp:233 +msgid "Commander X16 Zsound Music File" +msgstr "" + +#: src/gui/exportOptions.cpp:234 +msgid "Tick Rate (Hz)" +msgstr "" + +#: src/gui/exportOptions.cpp:240 +msgid "optimize size" +msgstr "" + +#: src/gui/exportOptions.cpp:256 src/gui/editControls.cpp:630 +msgid "" +"this is NOT ROM export! only use for making sure the\n" +"Furnace Amiga emulator is working properly by\n" +"comparing it with real Amiga output." +msgstr "" + +#: src/gui/exportOptions.cpp:261 src/gui/editControls.cpp:635 +msgid "Directory" +msgstr "" + +#: src/gui/exportOptions.cpp:269 src/gui/editControls.cpp:638 +msgid "Bake Data" +msgstr "" + +#: src/gui/exportOptions.cpp:284 src/gui/editControls.cpp:653 +#, c-format +msgid "Done! Baked %d files." +msgstr "" + +#: src/gui/exportOptions.cpp:293 +msgid "this option exports the song to a text file.\n" +msgstr "" + +#: src/gui/exportOptions.cpp:310 +msgid "" +"this option exports a text or binary file which\n" +"contains a dump of the internal command stream\n" +"produced when playing the song.\n" +"\n" +"technical/development use only!" +msgstr "" + +#: src/gui/exportOptions.cpp:331 +msgid "" +"export in DefleMask module format.\n" +"only do it if you really, really need to, or are downgrading an existing ." +"dmf." +msgstr "" + +#: src/gui/exportOptions.cpp:335 +msgid "format version:" +msgstr "" + +#: src/gui/exportOptions.cpp:336 +msgid "1.1.3 and higher" +msgstr "" + +#: src/gui/exportOptions.cpp:337 +msgid "1.0/legacy (0.12)" +msgstr "" + +#: src/gui/exportOptions.cpp:357 +msgid "Audio" +msgstr "" + +#: src/gui/exportOptions.cpp:361 +msgid "VGM" +msgstr "" + +#: src/gui/exportOptions.cpp:370 +msgid "ZSM" +msgstr "" + +#: src/gui/exportOptions.cpp:380 +msgid "Amiga Validation" +msgstr "" + +#: src/gui/exportOptions.cpp:385 +msgid "Text" +msgstr "" + +#: src/gui/exportOptions.cpp:389 +msgid "Command Stream" +msgstr "" + +#: src/gui/exportOptions.cpp:393 +msgid "DMF" +msgstr "" + +#: src/gui/exportOptions.cpp:422 +msgid "congratulations! you've unlocked a secret panel." +msgstr "" + +#: src/gui/exportOptions.cpp:423 +msgid "Toggle hidden systems" +msgstr "" + +#: src/gui/exportOptions.cpp:427 +msgid "Toggle all instrument types" +msgstr "" + +#: src/gui/exportOptions.cpp:431 +msgid "Set pitch linearity to Partial" +msgstr "" + +#: src/gui/exportOptions.cpp:435 +msgid "Enable multi-threading settings" +msgstr "" + +#: src/gui/exportOptions.cpp:439 +msgid "Set fat to max" +msgstr "" + +#: src/gui/exportOptions.cpp:446 +msgid "Set muscle and fat to zero" +msgstr "" + +#: src/gui/exportOptions.cpp:453 +msgid "Tell tildearrow this must be a mistake" +msgstr "" + +#: src/gui/exportOptions.cpp:454 +msgid "" +"yeah, it's a bug. write a bug report in the GitHub page and tell me how did " +"you get here." +msgstr "" + +#: src/gui/speed.cpp:41 +msgid "Base Tempo##TempoOrHz" +msgstr "" + +#: src/gui/speed.cpp:41 +msgid "Tick Rate##TempoOrHz" +msgstr "" + +#: src/gui/speed.cpp:46 +msgid "click to display tick rate" +msgstr "" + +#: src/gui/speed.cpp:48 +msgid "click to display base tempo" +msgstr "" + +#: src/gui/speed.cpp:80 +msgid "Groove" +msgstr "" + +#: src/gui/speed.cpp:87 +msgid "click for one speed" +msgstr "" + +#: src/gui/speed.cpp:90 +msgid "Speeds" +msgstr "" + +#: src/gui/speed.cpp:99 +msgid "click for groove pattern" +msgstr "" + +#: src/gui/speed.cpp:102 src/gui/editControls.cpp:532 src/gui/guiConst.cpp:232 +#: src/gui/guiConst.cpp:581 src/gui/insEdit.cpp:2028 src/gui/insEdit.cpp:5693 +#: src/gui/insEdit.cpp:6885 +msgid "Speed" +msgstr "" + +#: src/gui/speed.cpp:110 +msgid "click for two (alternating) speeds" +msgstr "" + +#: src/gui/speed.cpp:168 +msgid "Virtual Tempo" +msgstr "" + +#: src/gui/speed.cpp:177 +msgid "Numerator" +msgstr "" + +#: src/gui/speed.cpp:187 +msgid "Denominator (set to base tempo)" +msgstr "" + +#: src/gui/speed.cpp:193 +msgid "Divider" +msgstr "" + +#: src/gui/speed.cpp:208 +msgid "Highlight" +msgstr "" + +#: src/gui/speed.cpp:231 +msgid "Pattern Length" +msgstr "" + +#: src/gui/speed.cpp:245 +msgid "Song Length" +msgstr "" + +#: src/gui/channels.cpp:49 +msgid "Pat" +msgstr "" + +#: src/gui/channels.cpp:51 src/gui/editControls.cpp:550 +msgid "Osc" +msgstr "" + +#: src/gui/channels.cpp:53 +msgid "Swap" +msgstr "" + +#: src/gui/channels.cpp:55 src/gui/userPresets.cpp:368 +#: src/gui/effectList.cpp:45 src/gui/subSongs.cpp:125 +#: src/gui/sampleEdit.cpp:195 src/gui/songInfo.cpp:40 src/gui/sysManager.cpp:54 +#: src/gui/insEdit.cpp:5288 +msgid "Name" +msgstr "" + +#: src/gui/channels.cpp:64 +msgid "Show in pattern" +msgstr "" + +#: src/gui/channels.cpp:71 +msgid "Show in per-channel oscilloscope" +msgstr "" + +#: src/gui/channels.cpp:82 +#, c-format +msgid "" +"%s #%d\n" +"(drag to swap channels)" +msgstr "" + +#: src/gui/commandPalette.cpp:51 src/gui/sysPicker.cpp:35 +#: src/gui/newSong.cpp:133 +msgid "Search..." +msgstr "" + +#: src/gui/commandPalette.cpp:54 +msgid "Search recent files..." +msgstr "" + +#: src/gui/commandPalette.cpp:57 +msgid "Search instruments..." +msgstr "" + +#: src/gui/commandPalette.cpp:60 +msgid "Search samples..." +msgstr "" + +#: src/gui/commandPalette.cpp:63 +msgid "Search instruments (to change to)..." +msgstr "" + +#: src/gui/commandPalette.cpp:66 +msgid "Search chip (to add)..." +msgstr "" + +#: src/gui/commandPalette.cpp:93 src/gui/commandPalette.cpp:167 +msgid "- None -" +msgstr "" + +#: src/gui/commandPalette.cpp:123 src/gui/commandPalette.cpp:179 +#: src/gui/commandPalette.cpp:241 +msgid "invalid command palette type" +msgstr "" + +#: src/gui/regView.cpp:38 +msgid "- no register pool available" +msgstr "" + +#: src/gui/log.cpp:25 src/gui/effectList.cpp:84 +msgid "ERROR" +msgstr "" + +#: src/gui/log.cpp:26 +msgid "warning" +msgstr "" + +#: src/gui/log.cpp:27 +msgid "info" +msgstr "" + +#: src/gui/log.cpp:28 src/gui/gui.cpp:4507 +msgid "debug" +msgstr "" + +#: src/gui/log.cpp:29 +msgid "trace" +msgstr "" + +#: src/gui/log.cpp:48 src/gui/editControls.cpp:750 src/gui/editControls.cpp:883 +#: src/gui/editControls.cpp:1000 +msgid "Follow" +msgstr "" + +#: src/gui/log.cpp:50 src/gui/waveEdit.cpp:681 src/gui/insEdit.cpp:50 +msgid "Level" +msgstr "" + +#: src/gui/log.cpp:68 +msgid "time" +msgstr "" + +#: src/gui/log.cpp:70 +msgid "level" +msgstr "" + +#: src/gui/log.cpp:72 +msgid "message" +msgstr "" + +#: src/gui/pattern.cpp:468 +msgid "there aren't any channels to show." +msgstr "" + +#: src/gui/pattern.cpp:492 +msgid "click for pattern options (effect columns/pattern names/visualizer)" +msgstr "" + +#: src/gui/pattern.cpp:504 +msgid "Options:" +msgstr "" + +#: src/gui/pattern.cpp:506 +msgid "Effect columns/collapse" +msgstr "" + +#: src/gui/pattern.cpp:507 +msgid "Pattern names" +msgstr "" + +#: src/gui/pattern.cpp:508 +msgid "Channel group hints" +msgstr "" + +#: src/gui/pattern.cpp:509 +msgid "Visualizer" +msgstr "" + +#: src/gui/pattern.cpp:517 +msgid "Channel status:" +msgstr "" + +#: src/gui/pattern.cpp:519 +msgid "No##_PCS0" +msgstr "" + +#: src/gui/pattern.cpp:522 +msgid "Yes##_PCS1" +msgstr "" + +#: src/gui/pattern.cpp:1420 src/gui/pattern.cpp:1452 +msgid "WARNING!!" +msgstr "" + +#: src/gui/pattern.cpp:1422 src/gui/pattern.cpp:1459 +msgid "this instrument cannot be previewed because" +msgstr "" + +#: src/gui/pattern.cpp:1423 src/gui/pattern.cpp:1466 +msgid "none of the chips can play it" +msgstr "" + +#: src/gui/pattern.cpp:1424 src/gui/pattern.cpp:1473 +msgid "your instrument is in peril!! be careful..." +msgstr "" + +#: src/gui/osc.cpp:176 +#, c-format +msgid "zoom: %.2fx (%.1fdB)" +msgstr "" + +#: src/gui/osc.cpp:187 +#, c-format +msgid "window size: %.1fms" +msgstr "" + +#: src/gui/osc.cpp:385 +msgid "(-Infinity)dB" +msgstr "" + #: src/gui/debugWindow.cpp:662 msgid "This is a language test." msgstr "Este es una prueba de idioma." @@ -18,6 +915,6834 @@ msgstr "Este es una prueba de idioma." msgid "This is another language test." msgstr "Este es otra prueba de idioma." -#: src/main.cpp:510 -msgid "this is a test!" -msgstr "este es una prueba!" +#: src/gui/chanOsc.cpp:143 +msgid "Columns" +msgstr "" + +#: src/gui/chanOsc.cpp:152 +msgid "Size (ms)" +msgstr "" + +#: src/gui/chanOsc.cpp:163 +msgid "Automatic columns" +msgstr "" + +#: src/gui/chanOsc.cpp:177 +msgid "Center waveform" +msgstr "" + +#: src/gui/chanOsc.cpp:183 +msgid "Randomize phase on note" +msgstr "" + +#: src/gui/chanOsc.cpp:189 +msgid "Amplitude" +msgstr "" + +#: src/gui/chanOsc.cpp:199 +msgid "Line size" +msgstr "" + +#: src/gui/chanOsc.cpp:211 +msgid "Gradient" +msgstr "" + +#: src/gui/chanOsc.cpp:218 +msgid "error while creating gradient texture!" +msgstr "" + +#: src/gui/chanOsc.cpp:236 +msgid "error while updating gradient texture!" +msgstr "" + +#: src/gui/chanOsc.cpp:292 src/gui/chanOsc.cpp:348 +msgid "Color" +msgstr "" + +#: src/gui/chanOsc.cpp:296 +msgid "Distance" +msgstr "" + +#: src/gui/chanOsc.cpp:305 +msgid "Spread" +msgstr "" + +#: src/gui/chanOsc.cpp:314 src/gui/userPresets.cpp:370 src/gui/subSongs.cpp:121 +#: src/gui/sysManager.cpp:124 +msgid "Remove" +msgstr "" + +#: src/gui/chanOsc.cpp:338 +msgid "Background" +msgstr "" + +#: src/gui/chanOsc.cpp:341 +msgid "X Axis##AxisX" +msgstr "" + +#: src/gui/chanOsc.cpp:342 +msgid "Y Axis##AxisY" +msgstr "" + +#: src/gui/chanOsc.cpp:352 +msgid "Text format:" +msgstr "" + +#: src/gui/chanOsc.cpp:358 +msgid "" +"format guide:\n" +"- %c: channel name\n" +"- %C: channel short name\n" +"- %d: channel number (starting from 0)\n" +"- %D: channel number (starting from 1)\n" +"- %n: channel note\n" +"- %i: instrument name\n" +"- %I: instrument number (decimal)\n" +"- %x: instrument number (hex)\n" +"- %s: chip name\n" +"- %p: chip part number\n" +"- %S: chip ID\n" +"- %v: volume (decimal)\n" +"- %V: volume (percentage)\n" +"- %b: volume (hex)\n" +"- %l: new line\n" +"- %%: percent sign" +msgstr "" + +#: src/gui/chanOsc.cpp:380 +msgid "Text color" +msgstr "" + +#: src/gui/chanOsc.cpp:382 src/gui/xyOsc.cpp:80 src/gui/tutorial.cpp:687 +#: src/gui/gui.cpp:5627 src/gui/gui.cpp:6043 src/gui/gui.cpp:6211 +#: src/gui/gui.cpp:6310 src/gui/gui.cpp:6359 +msgid "OK" +msgstr "" + +#: src/gui/chanOsc.cpp:400 +msgid "creating chan osc work pool" +msgstr "" + +#: src/gui/chanOsc.cpp:429 +#, c-format +msgid "creating FFT plan for channel %d" +msgstr "" + +#: src/gui/chanOsc.cpp:436 +msgid "failed to create plan!" +msgstr "" + +#: src/gui/chanOsc.cpp:438 +msgid "failed to create inverse plan!" +msgstr "" + +#: src/gui/chanOsc.cpp:440 +msgid "failed to create FFT buffers" +msgstr "" + +#: src/gui/chanOsc.cpp:585 +msgid "Error!" +msgstr "" + +#: src/gui/editControls.cpp:47 src/gui/sampleEdit.cpp:1736 src/gui/gui.cpp:2727 +#: src/gui/insEdit.cpp:363 +msgid "cut" +msgstr "" + +#: src/gui/editControls.cpp:48 src/gui/sampleEdit.cpp:1740 src/gui/gui.cpp:2728 +#: src/gui/insEdit.cpp:7538 +msgid "copy" +msgstr "" + +#: src/gui/editControls.cpp:49 src/gui/sampleEdit.cpp:1744 src/gui/gui.cpp:2729 +#: src/gui/gui.cpp:2782 src/gui/insEdit.cpp:7543 +msgid "paste" +msgstr "" + +#: src/gui/editControls.cpp:51 +msgid "" +"select\n" +"all" +msgstr "" + +#: src/gui/editControls.cpp:52 +msgid "piano" +msgstr "" + +#: src/gui/editControls.cpp:53 src/gui/gui.cpp:4423 +msgid "undo" +msgstr "" + +#: src/gui/editControls.cpp:54 src/gui/gui.cpp:4424 +msgid "redo" +msgstr "" + +#: src/gui/editControls.cpp:57 +msgid "" +"paste\n" +"mix" +msgstr "" + +#: src/gui/editControls.cpp:58 +msgid "" +"paste\n" +"mix bg" +msgstr "" + +#: src/gui/editControls.cpp:59 +msgid "" +"paste\n" +"ins" +msgstr "" + +#: src/gui/editControls.cpp:60 +msgid "" +"paste\n" +"ins bg" +msgstr "" + +#: src/gui/editControls.cpp:61 +msgid "" +"paste\n" +"flood" +msgstr "" + +#: src/gui/editControls.cpp:62 +msgid "" +"paste\n" +"overflow" +msgstr "" + +#: src/gui/editControls.cpp:63 +msgid "" +"transpose\n" +"notes" +msgstr "" + +#: src/gui/editControls.cpp:64 +msgid "" +"transpose\n" +"values" +msgstr "" + +#: src/gui/editControls.cpp:67 +msgid "" +"change\n" +"ins" +msgstr "" + +#: src/gui/editControls.cpp:68 +msgid "" +"find/\n" +"replace" +msgstr "" + +#: src/gui/editControls.cpp:69 src/gui/gui.cpp:3057 +msgid "collapse" +msgstr "" + +#: src/gui/editControls.cpp:70 src/gui/gui.cpp:3058 +msgid "expand" +msgstr "" + +#: src/gui/editControls.cpp:71 src/gui/gui.cpp:2814 +msgid "flip" +msgstr "" + +#: src/gui/editControls.cpp:72 src/gui/insEdit.cpp:430 +msgid "invert" +msgstr "" + +#: src/gui/editControls.cpp:73 src/gui/gui.cpp:2794 src/gui/gui.cpp:2954 +msgid "interpolate" +msgstr "" + +#: src/gui/editControls.cpp:74 src/gui/gui.cpp:2806 src/gui/insEdit.cpp:7610 +msgid "scale" +msgstr "" + +#: src/gui/editControls.cpp:77 src/gui/gui.cpp:2798 +msgid "fade" +msgstr "" + +#: src/gui/editControls.cpp:78 src/gui/gui.cpp:2810 src/gui/insEdit.cpp:7639 +msgid "randomize" +msgstr "" + +#: src/gui/editControls.cpp:79 +msgid "opmask" +msgstr "" + +#: src/gui/editControls.cpp:80 +msgid "" +"scroll\n" +"mode" +msgstr "" + +#: src/gui/editControls.cpp:81 +msgid "" +"input\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:82 +msgid "" +"set\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:83 +msgid "" +"clear\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:84 src/gui/findReplace.cpp:43 +#: src/gui/insEdit.cpp:7557 +msgid "clear" +msgstr "" + +#: src/gui/editControls.cpp:421 src/gui/editControls.cpp:754 +#: src/gui/editControls.cpp:887 src/gui/editControls.cpp:1015 +#: src/gui/findReplace.cpp:794 src/gui/guiConst.cpp:582 src/gui/gui.cpp:5887 +msgid "Pattern" +msgstr "" + +#: src/gui/editControls.cpp:425 src/gui/editControls.cpp:752 +#: src/gui/editControls.cpp:885 src/gui/editControls.cpp:1007 +#: src/gui/guiConst.cpp:577 src/gui/gui.cpp:5876 +msgid "Orders" +msgstr "" + +#: src/gui/editControls.cpp:429 src/gui/findReplace.cpp:669 +#: src/gui/findReplace.cpp:914 +msgid "Ins" +msgstr "" + +#: src/gui/editControls.cpp:433 +msgid "Wave" +msgstr "" + +#: src/gui/editControls.cpp:437 src/gui/guiConst.cpp:1397 +#: src/gui/insEdit.cpp:2628 src/gui/insEdit.cpp:2666 +msgid "Sample" +msgstr "" + +#: src/gui/editControls.cpp:442 src/gui/findReplace.cpp:788 +#: src/gui/guiConst.cpp:230 +msgid "Song" +msgstr "" + +#: src/gui/editControls.cpp:446 src/gui/guiConst.cpp:601 src/gui/gui.cpp:6268 +msgid "Channels" +msgstr "" + +#: src/gui/editControls.cpp:450 src/gui/sampleEdit.cpp:494 +msgid "Chips" +msgstr "" + +#: src/gui/editControls.cpp:458 src/gui/compatFlags.cpp:319 +msgid "Other" +msgstr "" + +#: src/gui/editControls.cpp:487 src/gui/guiConst.cpp:531 +msgid "New" +msgstr "" + +#: src/gui/editControls.cpp:491 src/gui/doAction.cpp:38 src/gui/gui.cpp:4188 +msgid "Unsaved changes! Save changes before creating a new song?" +msgstr "" + +#: src/gui/editControls.cpp:507 +msgid "Save as..." +msgstr "" + +#: src/gui/editControls.cpp:516 src/gui/gui.cpp:1674 +msgid "Restore Backup" +msgstr "" + +#: src/gui/editControls.cpp:524 +msgid "Song Info" +msgstr "" + +#: src/gui/editControls.cpp:528 src/gui/guiConst.cpp:608 +msgid "Subsongs" +msgstr "" + +#: src/gui/editControls.cpp:541 +msgid "Channels here..." +msgstr "" + +#: src/gui/editControls.cpp:544 +msgid "Chips here..." +msgstr "" + +#: src/gui/editControls.cpp:547 +msgid "What the hell..." +msgstr "" + +#: src/gui/editControls.cpp:554 +msgid "ChanOsc" +msgstr "" + +#: src/gui/editControls.cpp:558 +msgid "RegView" +msgstr "" + +#: src/gui/editControls.cpp:562 +msgid "Stats" +msgstr "" + +#: src/gui/editControls.cpp:566 src/gui/guiConst.cpp:611 +msgid "Grooves" +msgstr "" + +#: src/gui/editControls.cpp:569 +msgid "Compat Flags" +msgstr "" + +#: src/gui/editControls.cpp:573 +msgid "XYOsc" +msgstr "" + +#: src/gui/editControls.cpp:577 +msgid "Meter" +msgstr "" + +#: src/gui/editControls.cpp:581 +msgid "Memory" +msgstr "" + +#: src/gui/editControls.cpp:585 +msgid "CV" +msgstr "" + +#: src/gui/editControls.cpp:589 +msgid "Presets" +msgstr "" + +#: src/gui/editControls.cpp:593 +msgid "PatManager" +msgstr "" + +#: src/gui/editControls.cpp:599 src/gui/guiConst.cpp:564 +msgid "Panic" +msgstr "" + +#: src/gui/editControls.cpp:601 src/gui/guiConst.cpp:589 +#: src/gui/guiConst.cpp:591 src/gui/gui.cpp:4433 +msgid "Settings" +msgstr "" + +#: src/gui/editControls.cpp:606 +msgid "Log" +msgstr "" + +#: src/gui/editControls.cpp:610 +msgid "Debug" +msgstr "" + +#: src/gui/editControls.cpp:614 src/gui/guiConst.cpp:587 +msgid "About" +msgstr "" + +#: src/gui/editControls.cpp:619 +msgid "Switch to Desktop Mode" +msgstr "" + +#: src/gui/editControls.cpp:681 src/gui/editControls.cpp:842 +#: src/gui/editControls.cpp:959 src/gui/editControls.cpp:1125 +msgid "Octave" +msgstr "" + +#: src/gui/editControls.cpp:698 src/gui/editControls.cpp:857 +msgid "Coarse Step" +msgstr "" + +#: src/gui/editControls.cpp:698 src/gui/editControls.cpp:857 +msgid "Edit Step" +msgstr "" + +#: src/gui/editControls.cpp:731 src/gui/editControls.cpp:797 +#: src/gui/editControls.cpp:911 src/gui/editControls.cpp:1048 +#: src/gui/guiConst.cpp:545 +msgid "Play" +msgstr "" + +#: src/gui/editControls.cpp:739 src/gui/editControls.cpp:789 +#: src/gui/editControls.cpp:918 src/gui/editControls.cpp:1040 +#: src/gui/guiConst.cpp:546 +msgid "Stop" +msgstr "" + +#: src/gui/editControls.cpp:742 src/gui/editControls.cpp:826 +#: src/gui/editControls.cpp:943 src/gui/editControls.cpp:1082 +#: src/gui/gui.cpp:4420 +msgid "Edit" +msgstr "" + +#: src/gui/editControls.cpp:757 src/gui/editControls.cpp:816 +#: src/gui/editControls.cpp:934 src/gui/editControls.cpp:1104 +msgid "Repeat pattern" +msgstr "" + +#: src/gui/editControls.cpp:766 src/gui/editControls.cpp:806 +#: src/gui/editControls.cpp:925 src/gui/editControls.cpp:1073 +msgid "Step one row" +msgstr "" + +#: src/gui/editControls.cpp:771 src/gui/editControls.cpp:891 +#: src/gui/editControls.cpp:1020 src/gui/editControls.cpp:1110 +msgid "Poly##PolyInput" +msgstr "" + +#: src/gui/editControls.cpp:771 src/gui/editControls.cpp:891 +#: src/gui/editControls.cpp:1020 src/gui/editControls.cpp:1110 +msgid "Mono##PolyInput" +msgstr "" + +#: src/gui/editControls.cpp:776 src/gui/editControls.cpp:896 +#: src/gui/editControls.cpp:1025 src/gui/editControls.cpp:1115 +msgid "Polyphony" +msgstr "" + +#: src/gui/editControls.cpp:957 +msgid "Oct." +msgstr "" + +#: src/gui/editControls.cpp:974 src/gui/editControls.cpp:1142 +msgid "Coarse" +msgstr "" + +#: src/gui/editControls.cpp:974 src/gui/editControls.cpp:1142 +msgid "Step" +msgstr "" + +#: src/gui/editControls.cpp:998 +msgid "Foll." +msgstr "" + +#: src/gui/editControls.cpp:1003 +msgid "Ord##FollowOrders" +msgstr "" + +#: src/gui/editControls.cpp:1011 +msgid "Pat##FollowPattern" +msgstr "" + +#: src/gui/editControls.cpp:1057 +msgid "Play from the beginning of this pattern" +msgstr "" + +#: src/gui/editControls.cpp:1065 +msgid "Repeat from the beginning of this pattern" +msgstr "" + +#: src/gui/editControls.cpp:1169 src/gui/guiConst.cpp:560 +msgid "Follow orders" +msgstr "" + +#: src/gui/editControls.cpp:1170 src/gui/guiConst.cpp:561 +msgid "Follow pattern" +msgstr "" + +#: src/gui/util.cpp:93 +msgid "" +msgstr "" + +#: src/gui/util.cpp:97 +msgid "Ctrl-" +msgstr "" + +#: src/gui/util.cpp:99 +msgid "Alt-" +msgstr "" + +#: src/gui/util.cpp:100 +msgid "Shift-" +msgstr "" + +#: src/gui/stats.cpp:36 +msgid "Audio load" +msgstr "" + +#: src/gui/xyOsc.cpp:45 +msgid "X Channel" +msgstr "" + +#: src/gui/xyOsc.cpp:51 +msgid "Invert##X" +msgstr "" + +#: src/gui/xyOsc.cpp:52 +msgid "Y Channel" +msgstr "" + +#: src/gui/xyOsc.cpp:58 +msgid "Invert##Y" +msgstr "" + +#: src/gui/xyOsc.cpp:59 src/gui/sampleEdit.cpp:1353 +msgid "Zoom" +msgstr "" + +#: src/gui/xyOsc.cpp:71 +msgid "Decay Time (ms)" +msgstr "" + +#: src/gui/xyOsc.cpp:74 +msgid "Intensity" +msgstr "" + +#: src/gui/xyOsc.cpp:77 +msgid "Line Thickness" +msgstr "" + +#: src/gui/xyOsc.cpp:213 +msgid "(-Infinity)dB,(-Infinity)dB" +msgstr "" + +#: src/gui/xyOsc.cpp:215 +#, c-format +msgid "(-Infinity)dB,%.1fdB" +msgstr "" + +#: src/gui/xyOsc.cpp:217 +#, c-format +msgid "%.1fdB,(-Infinity)dB" +msgstr "" + +#: src/gui/xyOsc.cpp:219 +#, c-format +msgid "%.1fdB,%.1fdB" +msgstr "" + +#: src/gui/userPresets.cpp:337 +msgid "Error! User category does not exist!" +msgstr "" + +#: src/gui/userPresets.cpp:346 src/gui/newSong.cpp:181 +msgid "Systems" +msgstr "" + +#: src/gui/userPresets.cpp:349 +msgid "New Preset" +msgstr "" + +#: src/gui/userPresets.cpp:361 +msgid "select a preset" +msgstr "" + +#: src/gui/userPresets.cpp:374 +msgid "Remove##UPresetRemove" +msgstr "" + +#: src/gui/userPresets.cpp:439 +msgid "Configure" +msgstr "" + +#: src/gui/userPresets.cpp:470 +msgid "Advanced" +msgstr "" + +#: src/gui/userPresets.cpp:476 +msgid "" +"insert additional settings in `option=value` format.\n" +"available options:\n" +"- tickRate" +msgstr "" + +#: src/gui/userPresets.cpp:509 +msgid "Save and Close" +msgstr "" + +#: src/gui/userPresets.cpp:515 +msgid "Import" +msgstr "" + +#: src/gui/userPresets.cpp:519 +msgid "Import (replace)" +msgstr "" + +#: src/gui/effectList.cpp:18 +#, c-format +msgid "Chip at cursor: %s" +msgstr "" + +#: src/gui/effectList.cpp:21 +msgid "Search" +msgstr "" + +#: src/gui/effectList.cpp:25 +msgid "Effect types to show:" +msgstr "" + +#: src/gui/effectList.cpp:47 +msgid "Description" +msgstr "" + +#: src/gui/subSongs.cpp:22 +#, c-format +msgid "%d. " +msgstr "" + +#: src/gui/subSongs.cpp:73 src/gui/subSongs.cpp:93 +msgid "too many subsongs!" +msgstr "" + +#: src/gui/subSongs.cpp:114 +msgid "this is the only subsong!" +msgstr "" + +#: src/gui/subSongs.cpp:116 +msgid "are you sure you want to remove this subsong?" +msgstr "" + +#: src/gui/spoiler.cpp:32 +msgid "SPOILER" +msgstr "" + +#: src/gui/orders.cpp:114 +msgid "Add new order" +msgstr "" + +#: src/gui/orders.cpp:125 src/gui/guiConst.cpp:794 +msgid "Remove order" +msgstr "" + +#: src/gui/orders.cpp:137 +msgid "Duplicate order (right-click to deep clone)" +msgstr "" + +#: src/gui/orders.cpp:146 src/gui/guiConst.cpp:795 +msgid "Move order up" +msgstr "" + +#: src/gui/orders.cpp:155 src/gui/guiConst.cpp:796 +msgid "Move order down" +msgstr "" + +#: src/gui/orders.cpp:167 +msgid "Place copy of current order at end of song (right-click to deep clone)" +msgstr "" + +#: src/gui/orders.cpp:177 +msgid "Order change mode: entire row" +msgstr "" + +#: src/gui/orders.cpp:179 +msgid "Order change mode: one" +msgstr "" + +#: src/gui/orders.cpp:205 +msgid "Order edit mode: Select and type (scroll vertically)" +msgstr "" + +#: src/gui/orders.cpp:207 +msgid "Order edit mode: Select and type (scroll horizontally)" +msgstr "" + +#: src/gui/orders.cpp:209 +msgid "Order edit mode: Select and type (don't scroll)" +msgstr "" + +#: src/gui/orders.cpp:211 +msgid "Order edit mode: Click to change" +msgstr "" + +#: src/gui/findReplace.cpp:29 +msgid "ignore" +msgstr "" + +#: src/gui/findReplace.cpp:30 +msgid "equals" +msgstr "" + +#: src/gui/findReplace.cpp:31 +msgid "not equal" +msgstr "" + +#: src/gui/findReplace.cpp:32 +msgid "between" +msgstr "" + +#: src/gui/findReplace.cpp:33 +msgid "not between" +msgstr "" + +#: src/gui/findReplace.cpp:34 +msgid "any" +msgstr "" + +#: src/gui/findReplace.cpp:35 src/gui/guiConst.cpp:217 +msgid "none" +msgstr "" + +#: src/gui/findReplace.cpp:39 +msgid "set" +msgstr "" + +#: src/gui/findReplace.cpp:40 +msgid "add" +msgstr "" + +#: src/gui/findReplace.cpp:41 +msgid "add (overflow)" +msgstr "" + +#: src/gui/findReplace.cpp:42 +msgid "scale %" +msgstr "" + +#: src/gui/findReplace.cpp:520 src/gui/findReplace.cpp:850 +msgid "Find" +msgstr "" + +#: src/gui/findReplace.cpp:526 src/gui/findReplace.cpp:535 +msgid "order" +msgstr "" + +#: src/gui/findReplace.cpp:527 src/gui/findReplace.cpp:537 +msgid "row" +msgstr "" + +#: src/gui/findReplace.cpp:539 src/gui/csPlayer.cpp:146 +msgid "channel" +msgstr "" + +#: src/gui/findReplace.cpp:541 +msgid "go" +msgstr "" + +#: src/gui/findReplace.cpp:585 +msgid "no matches found!" +msgstr "" + +#: src/gui/findReplace.cpp:587 +msgid "Back" +msgstr "" + +#: src/gui/findReplace.cpp:601 src/gui/findReplace.cpp:864 +#: src/gui/sampleEdit.cpp:590 +msgid "Note" +msgstr "" + +#: src/gui/findReplace.cpp:707 src/gui/findReplace.cpp:974 +msgid "Effect" +msgstr "" + +#: src/gui/findReplace.cpp:725 src/gui/findReplace.cpp:1003 +msgid "Value" +msgstr "" + +#: src/gui/findReplace.cpp:750 +msgid "Delete query" +msgstr "" + +#: src/gui/findReplace.cpp:754 src/gui/findReplace.cpp:1037 +msgid "Add effect" +msgstr "" + +#: src/gui/findReplace.cpp:761 src/gui/findReplace.cpp:1044 +msgid "Remove effect" +msgstr "" + +#: src/gui/findReplace.cpp:786 +msgid "Search range:" +msgstr "" + +#: src/gui/findReplace.cpp:791 +msgid "Selection" +msgstr "" + +#: src/gui/findReplace.cpp:799 +msgid "Confine to channels" +msgstr "" + +#: src/gui/findReplace.cpp:803 src/gui/sampleEdit.cpp:1152 +msgid "From" +msgstr "" + +#: src/gui/findReplace.cpp:814 src/gui/sampleEdit.cpp:1156 +msgid "To" +msgstr "" + +#: src/gui/findReplace.cpp:826 +msgid "Match effect position:" +msgstr "" + +#: src/gui/findReplace.cpp:828 src/gui/gui.cpp:5652 src/gui/gui.cpp:5676 +#: src/gui/gui.cpp:5700 src/gui/gui.cpp:5724 src/gui/gui.cpp:5748 +#: src/gui/gui.cpp:5776 src/gui/gui.cpp:5801 src/gui/gui.cpp:5812 +#: src/gui/gui.cpp:5824 src/gui/gui.cpp:5836 src/gui/gui.cpp:6000 +#: src/gui/gui.cpp:6015 src/gui/gui.cpp:6025 src/gui/gui.cpp:6038 +msgid "No" +msgstr "" + +#: src/gui/findReplace.cpp:832 +msgid "match effects regardless of position." +msgstr "" + +#: src/gui/findReplace.cpp:834 src/gui/compatFlags.cpp:288 +msgid "Lax" +msgstr "" + +#: src/gui/findReplace.cpp:838 +msgid "match effects only if they appear in-order." +msgstr "" + +#: src/gui/findReplace.cpp:840 src/gui/compatFlags.cpp:276 +msgid "Strict" +msgstr "" + +#: src/gui/findReplace.cpp:844 +msgid "match effects only if they appear exactly as specified." +msgstr "" + +#: src/gui/findReplace.cpp:856 +msgid "Replace" +msgstr "" + +#: src/gui/findReplace.cpp:908 +msgid "INVALID" +msgstr "" + +#: src/gui/findReplace.cpp:1052 +msgid "Effect replace mode:" +msgstr "" + +#: src/gui/findReplace.cpp:1053 +msgid "Replace matches only" +msgstr "" + +#: src/gui/findReplace.cpp:1056 +msgid "Replace matches, then free spaces" +msgstr "" + +#: src/gui/findReplace.cpp:1059 +msgid "Clear effects" +msgstr "" + +#: src/gui/findReplace.cpp:1062 +msgid "Insert in free spaces" +msgstr "" + +#: src/gui/findReplace.cpp:1065 +msgid "Replace##QueryReplace" +msgstr "" + +#: src/gui/compatFlags.cpp:32 +msgid "" +"these flags are designed to provide better DefleMask/older Furnace " +"compatibility.\n" +"it is recommended to disable most of these unless you rely on specific " +"quirks." +msgstr "" + +#: src/gui/compatFlags.cpp:34 src/gui/compatFlags.cpp:310 +msgid "DefleMask" +msgstr "" + +#: src/gui/compatFlags.cpp:35 +msgid "Limit slide range" +msgstr "" + +#: src/gui/compatFlags.cpp:37 +msgid "" +"when enabled, slides are limited to a compatible range.\n" +"may cause problems with slides in negative octaves." +msgstr "" + +#: src/gui/compatFlags.cpp:39 +msgid "Compatible noise layout on NES and PC Engine" +msgstr "" + +#: src/gui/compatFlags.cpp:41 +msgid "" +"use a rather unusual compatible noise frequency layout.\n" +"removes some noise frequencies on PC Engine." +msgstr "" + +#: src/gui/compatFlags.cpp:43 +msgid "Game Boy instrument duty is wave volume" +msgstr "" + +#: src/gui/compatFlags.cpp:45 +msgid "" +"if enabled, an instrument with duty macro in the wave channel will be mapped " +"to wavetable volume." +msgstr "" + +#: src/gui/compatFlags.cpp:48 +msgid "Restart macro on portamento" +msgstr "" + +#: src/gui/compatFlags.cpp:50 +msgid "" +"when enabled, a portamento effect will reset the channel's macro if used in " +"combination with a note." +msgstr "" + +#: src/gui/compatFlags.cpp:52 +msgid "Legacy volume slides" +msgstr "" + +#: src/gui/compatFlags.cpp:54 +msgid "" +"simulate glitchy volume slide behavior by silently overflowing the volume " +"when the slide goes below 0." +msgstr "" + +#: src/gui/compatFlags.cpp:56 +msgid "Compatible arpeggio" +msgstr "" + +#: src/gui/compatFlags.cpp:58 +msgid "delay arpeggio by one tick on every new note." +msgstr "" + +#: src/gui/compatFlags.cpp:60 +msgid "Disable DAC when sample ends" +msgstr "" + +#: src/gui/compatFlags.cpp:62 +msgid "" +"when enabled, the DAC in YM2612 will be disabled if there isn't any sample " +"playing." +msgstr "" + +#: src/gui/compatFlags.cpp:64 +msgid "Broken speed alternation" +msgstr "" + +#: src/gui/compatFlags.cpp:66 +msgid "" +"determines next speed based on whether the row is odd/even instead of " +"alternating between speeds." +msgstr "" + +#: src/gui/compatFlags.cpp:68 +msgid "Ignore duplicate slide effects" +msgstr "" + +#: src/gui/compatFlags.cpp:70 +msgid "" +"if this is on, only the first slide of a row in a channel will be considered." +msgstr "" + +#: src/gui/compatFlags.cpp:72 +msgid "Ignore 0Dxx on the last order" +msgstr "" + +#: src/gui/compatFlags.cpp:74 +msgid "" +"if this is on, a jump to next row effect will not take place when it is on " +"the last order of a song." +msgstr "" + +#: src/gui/compatFlags.cpp:76 +msgid "Buggy portamento after pitch slide" +msgstr "" + +#: src/gui/compatFlags.cpp:78 +msgid "simulates a bug in where portamento does not work after sliding." +msgstr "" + +#: src/gui/compatFlags.cpp:80 +msgid "FM pitch slide octave boundary odd behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:82 +msgid "" +"if this is on, a pitch slide that crosses the octave boundary will stop for " +"one tick and then continue from the nearest octave boundary.\n" +"for .dmf compatibility." +msgstr "" + +#: src/gui/compatFlags.cpp:84 +msgid "Don't apply Game Boy envelope on note-less instrument change" +msgstr "" + +#: src/gui/compatFlags.cpp:86 +msgid "if this is on, an instrument change will not affect the envelope." +msgstr "" + +#: src/gui/compatFlags.cpp:88 +msgid "Ignore DAC mode change outside of intended channel in ExtCh mode" +msgstr "" + +#: src/gui/compatFlags.cpp:90 +msgid "if this is on, 17xx has no effect on the operator channels in YM2612." +msgstr "" + +#: src/gui/compatFlags.cpp:92 +msgid "E1xy/E2xy also take priority over slide stops" +msgstr "" + +#: src/gui/compatFlags.cpp:94 +msgid "does this make any sense by now?" +msgstr "" + +#: src/gui/compatFlags.cpp:96 +msgid "E1xy/E2xy stop when repeating the same note" +msgstr "" + +#: src/gui/compatFlags.cpp:98 +msgid "ugh, if only this wasn't a thing..." +msgstr "" + +#: src/gui/compatFlags.cpp:100 +msgid "SN76489 duty macro always resets phase" +msgstr "" + +#: src/gui/compatFlags.cpp:102 +msgid "" +"when enabled, duty macro will always reset phase, even if its value hasn't " +"changed." +msgstr "" + +#: src/gui/compatFlags.cpp:104 +msgid "Broken volume scaling strategy" +msgstr "" + +#: src/gui/compatFlags.cpp:106 +msgid "" +"when enabled:\n" +"- log scaling: multiply\n" +"- linear scaling: subtract\n" +"when disabled:\n" +"- log scaling: subtract\n" +"- linear scaling: multiply" +msgstr "" + +#: src/gui/compatFlags.cpp:108 +msgid "Don't persist volume macro after it finishes" +msgstr "" + +#: src/gui/compatFlags.cpp:110 +msgid "" +"when enabled, a value in the volume column that happens after the volume " +"macro is done will disregard the macro." +msgstr "" + +#: src/gui/compatFlags.cpp:112 +msgid "Broken output volume on instrument change" +msgstr "" + +#: src/gui/compatFlags.cpp:114 +msgid "" +"if enabled, no checks for the presence of a volume macro will be made.\n" +"this will cause the last macro value to linger unless a value in the volume " +"column is present." +msgstr "" + +#: src/gui/compatFlags.cpp:116 +msgid "Broken output volume - Episode 2 (PLEASE KEEP ME DISABLED)" +msgstr "" + +#: src/gui/compatFlags.cpp:118 +msgid "" +"these compatibility flags are getting SO damn ridiculous and out of " +"control.\n" +"as you may have guessed, this one exists due to yet ANOTHER DefleMask-" +"specific behavior.\n" +"please keep this off at all costs, because I will not support it when ROM " +"export comes.\n" +"oh, and don't start an argument out of it. Furnace isn't a DefleMask " +"replacement, and no,\n" +"I am not trying to make it look like one with all these flags.\n" +"\n" +"oh, and what about the other flags that don't have to do with DefleMask?\n" +"those are for .mod import, future FamiTracker import and personal taste!\n" +"\n" +"end of rant" +msgstr "" + +#: src/gui/compatFlags.cpp:120 +msgid "Treat SN76489 periods under 8 as 1" +msgstr "" + +#: src/gui/compatFlags.cpp:122 +msgid "" +"when enabled, any SN period under 8 will be written as 1 instead.\n" +"this replicates DefleMask behavior, but reduces available period range." +msgstr "" + +#: src/gui/compatFlags.cpp:126 src/gui/compatFlags.cpp:304 +msgid "Old Furnace" +msgstr "" + +#: src/gui/compatFlags.cpp:127 +msgid "Arpeggio inhibits non-porta slides" +msgstr "" + +#: src/gui/compatFlags.cpp:129 src/gui/compatFlags.cpp:133 +msgid "behavior changed in 0.5.5" +msgstr "" + +#: src/gui/compatFlags.cpp:131 +msgid "Wack FM algorithm macro" +msgstr "" + +#: src/gui/compatFlags.cpp:135 +msgid "Broken shortcut slides (E1xy/E2xy)" +msgstr "" + +#: src/gui/compatFlags.cpp:137 +msgid "behavior changed in 0.5.7" +msgstr "" + +#: src/gui/compatFlags.cpp:139 +msgid "Stop portamento on note off" +msgstr "" + +#: src/gui/compatFlags.cpp:141 src/gui/compatFlags.cpp:145 +#: src/gui/compatFlags.cpp:149 src/gui/compatFlags.cpp:153 +#: src/gui/compatFlags.cpp:157 src/gui/compatFlags.cpp:161 +#: src/gui/compatFlags.cpp:165 +msgid "behavior changed in 0.6pre1" +msgstr "" + +#: src/gui/compatFlags.cpp:143 +msgid "Don't allow instrument change during slides" +msgstr "" + +#: src/gui/compatFlags.cpp:147 +msgid "Don't reset note to base on arpeggio stop" +msgstr "" + +#: src/gui/compatFlags.cpp:151 +msgid "ExtCh channel status is not shared among operators" +msgstr "" + +#: src/gui/compatFlags.cpp:155 +msgid "Disable new SegaPCM features (macros and better panning)" +msgstr "" + +#: src/gui/compatFlags.cpp:159 +msgid "Old FM octave boundary behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:163 +msgid "Disable OPN2 DAC volume control" +msgstr "" + +#: src/gui/compatFlags.cpp:167 +msgid "Broken initial position of portamento after arpeggio" +msgstr "" + +#: src/gui/compatFlags.cpp:169 +msgid "behavior changed in 0.6pre1.5" +msgstr "" + +#: src/gui/compatFlags.cpp:171 +msgid "Disable new sample features" +msgstr "" + +#: src/gui/compatFlags.cpp:173 src/gui/compatFlags.cpp:177 +msgid "behavior changed in 0.6pre2" +msgstr "" + +#: src/gui/compatFlags.cpp:175 +msgid "Old arpeggio macro + pitch slide strategy" +msgstr "" + +#: src/gui/compatFlags.cpp:179 +msgid "Broken portamento during legato" +msgstr "" + +#: src/gui/compatFlags.cpp:181 +msgid "behavior changed in 0.6pre4" +msgstr "" + +#: src/gui/compatFlags.cpp:183 +msgid "Broken macros in some FM chips after note off" +msgstr "" + +#: src/gui/compatFlags.cpp:185 +msgid "behavior changed in 0.6pre5" +msgstr "" + +#: src/gui/compatFlags.cpp:187 +msgid "Pre-note does not take effects into consideration" +msgstr "" + +#: src/gui/compatFlags.cpp:189 +msgid "behavior changed in 0.6pre9" +msgstr "" + +#: src/gui/compatFlags.cpp:191 +msgid "Disable new NES DPCM features" +msgstr "" + +#: src/gui/compatFlags.cpp:193 +msgid "behavior changed in 0.6.1" +msgstr "" + +#: src/gui/compatFlags.cpp:195 +msgid "Legacy technical ALWAYS_SET_VOLUME behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:197 +msgid "" +"behavior changed in 0.6.1\n" +"this flag will be removed if I find out that none of the songs break after " +"disabling it." +msgstr "" + +#: src/gui/compatFlags.cpp:199 +msgid "Old sample offset effect" +msgstr "" + +#: src/gui/compatFlags.cpp:201 +msgid "behavior changed in 0.6.3" +msgstr "" + +#: src/gui/compatFlags.cpp:205 +msgid ".mod import" +msgstr "" + +#: src/gui/compatFlags.cpp:206 +msgid "Don't slide on the first tick of a row" +msgstr "" + +#: src/gui/compatFlags.cpp:208 +msgid "" +"simulates ProTracker's behavior of not applying volume/pitch slides on the " +"first tick of a row." +msgstr "" + +#: src/gui/compatFlags.cpp:210 +msgid "Reset arpeggio position on row change" +msgstr "" + +#: src/gui/compatFlags.cpp:212 +msgid "" +"simulates ProTracker's behavior of arpeggio being bound to the current tick " +"of a row." +msgstr "" + +#: src/gui/compatFlags.cpp:216 +msgid "Pitch/Playback" +msgstr "" + +#: src/gui/compatFlags.cpp:217 +msgid "Pitch linearity:" +msgstr "" + +#: src/gui/compatFlags.cpp:223 +msgid "like ProTracker/FamiTracker" +msgstr "" + +#: src/gui/compatFlags.cpp:227 +msgid "Partial (only 04xy/E5xx)" +msgstr "" + +#: src/gui/compatFlags.cpp:231 +msgid "" +"like DefleMask\n" +"\n" +"this pitch linearity mode is deprecated due to:\n" +"- excessive complexity\n" +"- lack of possible optimization\n" +"\n" +"it is recommended to change it now because I will remove this option in the " +"future!" +msgstr "" + +#: src/gui/compatFlags.cpp:235 +msgid "Full" +msgstr "" + +#: src/gui/compatFlags.cpp:239 +msgid "like Impulse Tracker" +msgstr "" + +#: src/gui/compatFlags.cpp:246 +msgid "Pitch slide speed multiplier" +msgstr "" + +#: src/gui/compatFlags.cpp:252 +msgid "Loop modality:" +msgstr "" + +#: src/gui/compatFlags.cpp:254 +msgid "Reset channels" +msgstr "" + +#: src/gui/compatFlags.cpp:258 +msgid "" +"select to reset channels on loop. may trigger a voltage click on every loop!" +msgstr "" + +#: src/gui/compatFlags.cpp:260 +msgid "Soft reset channels" +msgstr "" + +#: src/gui/compatFlags.cpp:264 +msgid "select to turn channels off on loop." +msgstr "" + +#: src/gui/compatFlags.cpp:266 +msgid "Do nothing" +msgstr "" + +#: src/gui/compatFlags.cpp:270 +msgid "select to not reset channels on loop." +msgstr "" + +#: src/gui/compatFlags.cpp:274 +msgid "Cut/delay effect policy:" +msgstr "" + +#: src/gui/compatFlags.cpp:280 +msgid "only when time is less than speed (like DefleMask/ProTracker)" +msgstr "" + +#: src/gui/compatFlags.cpp:282 +msgid "Strict (old)" +msgstr "" + +#: src/gui/compatFlags.cpp:286 +msgid "only when time is less than or equal to speed (original buggy behavior)" +msgstr "" + +#: src/gui/compatFlags.cpp:292 +msgid "no checks" +msgstr "" + +#: src/gui/compatFlags.cpp:296 +msgid "Simultaneous jump (0B+0D) treatment:" +msgstr "" + +#: src/gui/compatFlags.cpp:298 src/gui/gui.cpp:6055 src/gui/insEdit.cpp:217 +#: src/gui/insEdit.cpp:231 +msgid "Normal" +msgstr "" + +#: src/gui/compatFlags.cpp:302 +msgid "accept 0B+0D to jump to a specific row of an order" +msgstr "" + +#: src/gui/compatFlags.cpp:308 +msgid "only accept the first jump effect" +msgstr "" + +#: src/gui/compatFlags.cpp:314 +msgid "only accept 0Dxx" +msgstr "" + +#: src/gui/compatFlags.cpp:320 +msgid "Auto-insert one tick gap between notes" +msgstr "" + +#: src/gui/compatFlags.cpp:322 +msgid "" +"when enabled, a one-tick note cut will be inserted between non-legato/non-" +"portamento notes.\n" +"this simulates the behavior of some Amiga/SNES music engines.\n" +"\n" +"ineffective on C64." +msgstr "" + +#: src/gui/compatFlags.cpp:327 +msgid "Don't reset slides after note off" +msgstr "" + +#: src/gui/compatFlags.cpp:329 +msgid "when enabled, note off will not reset the channel's slide effect." +msgstr "" + +#: src/gui/compatFlags.cpp:331 +msgid "Don't reset portamento after reaching target" +msgstr "" + +#: src/gui/compatFlags.cpp:333 +msgid "" +"when enabled, the slide effect will not be disabled after it reaches its " +"target." +msgstr "" + +#: src/gui/compatFlags.cpp:335 +msgid "Continuous vibrato" +msgstr "" + +#: src/gui/compatFlags.cpp:337 +msgid "when enabled, vibrato phase/position will not be reset on a new note." +msgstr "" + +#: src/gui/compatFlags.cpp:339 +msgid "Pitch macro is not linear" +msgstr "" + +#: src/gui/compatFlags.cpp:341 +msgid "" +"when enabled, the pitch macro of an instrument is in frequency/period space." +msgstr "" + +#: src/gui/compatFlags.cpp:343 +msgid "Reset arpeggio effect position on new note" +msgstr "" + +#: src/gui/compatFlags.cpp:345 +msgid "when enabled, arpeggio effect (00xy) position is reset on a new note." +msgstr "" + +#: src/gui/compatFlags.cpp:347 +msgid "Volume scaling rounds up" +msgstr "" + +#: src/gui/compatFlags.cpp:349 +msgid "" +"when enabled, volume macros round up when applied\n" +"this prevents volume scaling from causing vol=0, which is silent on some " +"chips\n" +"\n" +"ineffective on logarithmic channels" +msgstr "" + +#: src/gui/guiConst.cpp:127 +msgid "Generic Sample" +msgstr "" + +#: src/gui/guiConst.cpp:149 +msgid "VRC6 (saw)" +msgstr "" + +#: src/gui/guiConst.cpp:155 +msgid "OPL (drums)" +msgstr "" + +#: src/gui/guiConst.cpp:179 +msgid "PowerNoise (noise)" +msgstr "" + +#: src/gui/guiConst.cpp:180 +msgid "PowerNoise (slope)" +msgstr "" + +#: src/gui/guiConst.cpp:191 +msgid "Forward" +msgstr "" + +#: src/gui/guiConst.cpp:192 +msgid "Backward" +msgstr "" + +#: src/gui/guiConst.cpp:193 +msgid "Ping pong" +msgstr "" + +#: src/gui/guiConst.cpp:218 +msgid "linear" +msgstr "" + +#: src/gui/guiConst.cpp:219 +msgid "cubic spline" +msgstr "" + +#: src/gui/guiConst.cpp:220 +msgid "blep synthesis" +msgstr "" + +#: src/gui/guiConst.cpp:221 +msgid "sinc" +msgstr "" + +#: src/gui/guiConst.cpp:222 +msgid "best possible" +msgstr "" + +#: src/gui/guiConst.cpp:226 src/gui/sampleEdit.cpp:137 +#: src/gui/sampleEdit.cpp:143 +msgid "Invalid" +msgstr "" + +#: src/gui/guiConst.cpp:227 src/gui/insEdit.cpp:6924 src/gui/insEdit.cpp:6931 +#: src/gui/insEdit.cpp:6942 src/gui/insEdit.cpp:6950 src/gui/insEdit.cpp:6971 +#: src/gui/insEdit.cpp:6983 src/gui/insEdit.cpp:6993 src/gui/insEdit.cpp:7006 +#: src/gui/insEdit.cpp:7019 src/gui/insEdit.cpp:7028 src/gui/insEdit.cpp:7036 +#: src/gui/insEdit.cpp:7042 src/gui/insEdit.cpp:7052 src/gui/insEdit.cpp:7061 +#: src/gui/insEdit.cpp:7068 src/gui/insEdit.cpp:7075 src/gui/insEdit.cpp:7087 +#: src/gui/insEdit.cpp:7095 src/gui/insEdit.cpp:7102 src/gui/insEdit.cpp:7109 +#: src/gui/insEdit.cpp:7117 src/gui/insEdit.cpp:7123 src/gui/insEdit.cpp:7132 +#: src/gui/insEdit.cpp:7143 src/gui/insEdit.cpp:7153 src/gui/insEdit.cpp:7161 +#: src/gui/insEdit.cpp:7174 src/gui/insEdit.cpp:7182 src/gui/insEdit.cpp:7193 +#: src/gui/insEdit.cpp:7203 src/gui/insEdit.cpp:7213 src/gui/insEdit.cpp:7227 +#: src/gui/insEdit.cpp:7233 src/gui/insEdit.cpp:7241 src/gui/insEdit.cpp:7248 +#: src/gui/insEdit.cpp:7272 src/gui/insEdit.cpp:7280 src/gui/insEdit.cpp:7289 +#: src/gui/insEdit.cpp:7298 src/gui/insEdit.cpp:7306 src/gui/insEdit.cpp:7323 +#: src/gui/insEdit.cpp:7331 src/gui/insEdit.cpp:7337 src/gui/insEdit.cpp:7344 +#: src/gui/insEdit.cpp:7350 src/gui/insEdit.cpp:7355 src/gui/insEdit.cpp:7361 +#: src/gui/insEdit.cpp:7368 src/gui/insEdit.cpp:7376 src/gui/insEdit.cpp:7385 +#: src/gui/insEdit.cpp:7393 src/gui/insEdit.cpp:7401 src/gui/insEdit.cpp:7413 +#: src/gui/insEdit.cpp:7428 src/gui/insEdit.cpp:7439 src/gui/insEdit.cpp:7447 +#: src/gui/insEdit.cpp:7456 src/gui/insEdit.cpp:7466 src/gui/insEdit.cpp:7474 +msgid "Pitch" +msgstr "" + +#: src/gui/guiConst.cpp:231 +msgid "Time" +msgstr "" + +#: src/gui/guiConst.cpp:233 +msgid "System (Primary)" +msgstr "" + +#: src/gui/guiConst.cpp:234 +msgid "System (Secondary)" +msgstr "" + +#: src/gui/guiConst.cpp:235 +msgid "Miscellaneous" +msgstr "" + +#: src/gui/guiConst.cpp:530 +msgid "---Global" +msgstr "" + +#: src/gui/guiConst.cpp:532 +msgid "Open file" +msgstr "" + +#: src/gui/guiConst.cpp:533 +msgid "Restore backup" +msgstr "" + +#: src/gui/guiConst.cpp:534 +msgid "Save file" +msgstr "" + +#: src/gui/guiConst.cpp:535 +msgid "Save as" +msgstr "" + +#: src/gui/guiConst.cpp:537 src/gui/sampleEdit.cpp:982 +msgid "Undo" +msgstr "" + +#: src/gui/guiConst.cpp:539 src/gui/guiConst.cpp:541 src/gui/sampleEdit.cpp:989 +msgid "Redo" +msgstr "" + +#: src/gui/guiConst.cpp:543 +msgid "Exit" +msgstr "" + +#: src/gui/guiConst.cpp:544 +msgid "Play/Stop (toggle)" +msgstr "" + +#: src/gui/guiConst.cpp:547 +msgid "Play (from beginning)" +msgstr "" + +#: src/gui/guiConst.cpp:548 +msgid "Play (repeat pattern)" +msgstr "" + +#: src/gui/guiConst.cpp:549 +msgid "Play from cursor" +msgstr "" + +#: src/gui/guiConst.cpp:550 +msgid "Step row" +msgstr "" + +#: src/gui/guiConst.cpp:551 +msgid "Octave up" +msgstr "" + +#: src/gui/guiConst.cpp:552 +msgid "Octave down" +msgstr "" + +#: src/gui/guiConst.cpp:553 +msgid "Previous instrument" +msgstr "" + +#: src/gui/guiConst.cpp:554 +msgid "Next instrument" +msgstr "" + +#: src/gui/guiConst.cpp:555 +msgid "Increase edit step" +msgstr "" + +#: src/gui/guiConst.cpp:556 +msgid "Decrease edit step" +msgstr "" + +#: src/gui/guiConst.cpp:557 +msgid "Toggle edit mode" +msgstr "" + +#: src/gui/guiConst.cpp:559 +msgid "Toggle repeat pattern" +msgstr "" + +#: src/gui/guiConst.cpp:562 +msgid "Toggle full-screen" +msgstr "" + +#: src/gui/guiConst.cpp:563 +msgid "Request voice from TX81Z" +msgstr "" + +#: src/gui/guiConst.cpp:565 +msgid "Clear song data" +msgstr "" + +#: src/gui/guiConst.cpp:567 src/gui/gui.cpp:5561 src/gui/gui.cpp:5613 +msgid "Command Palette" +msgstr "" + +#: src/gui/guiConst.cpp:569 +msgid "Recent files (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:570 +msgid "Instruments (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:571 +msgid "Samples (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:572 +msgid "Change instrument (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:573 +msgid "Add chip (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:576 +msgid "Edit Controls" +msgstr "" + +#: src/gui/guiConst.cpp:578 +msgid "Instrument List" +msgstr "" + +#: src/gui/guiConst.cpp:579 +msgid "Instrument Editor" +msgstr "" + +#: src/gui/guiConst.cpp:580 +msgid "Song Information" +msgstr "" + +#: src/gui/guiConst.cpp:583 +msgid "Wavetable List" +msgstr "" + +#: src/gui/guiConst.cpp:584 +msgid "Wavetable Editor" +msgstr "" + +#: src/gui/guiConst.cpp:585 +msgid "Sample List" +msgstr "" + +#: src/gui/guiConst.cpp:586 +msgid "Sample Editor" +msgstr "" + +#: src/gui/guiConst.cpp:594 +msgid "Debug Menu" +msgstr "" + +#: src/gui/guiConst.cpp:595 +msgid "Oscilloscope (master)" +msgstr "" + +#: src/gui/guiConst.cpp:596 +msgid "Volume Meter" +msgstr "" + +#: src/gui/guiConst.cpp:597 +msgid "Statistics" +msgstr "" + +#: src/gui/guiConst.cpp:598 +msgid "Compatibility Flags" +msgstr "" + +#: src/gui/guiConst.cpp:599 +msgid "Piano" +msgstr "" + +#: src/gui/guiConst.cpp:600 +msgid "Song Comments" +msgstr "" + +#: src/gui/guiConst.cpp:602 +msgid "Pattern Manager" +msgstr "" + +#: src/gui/guiConst.cpp:603 +msgid "Chip Manager" +msgstr "" + +#: src/gui/guiConst.cpp:604 +msgid "Register View" +msgstr "" + +#: src/gui/guiConst.cpp:605 +msgid "Log Viewer" +msgstr "" + +#: src/gui/guiConst.cpp:606 +msgid "Effect List" +msgstr "" + +#: src/gui/guiConst.cpp:607 +msgid "Oscilloscope (per-channel)" +msgstr "" + +#: src/gui/guiConst.cpp:609 +msgid "Find/Replace" +msgstr "" + +#: src/gui/guiConst.cpp:610 +msgid "Clock" +msgstr "" + +#: src/gui/guiConst.cpp:612 +msgid "Oscilloscope (X-Y)" +msgstr "" + +#: src/gui/guiConst.cpp:613 +msgid "Memory Composition" +msgstr "" + +#: src/gui/guiConst.cpp:614 +msgid "Command Stream Player" +msgstr "" + +#: src/gui/guiConst.cpp:615 +msgid "User Presets" +msgstr "" + +#: src/gui/guiConst.cpp:617 +msgid "Collapse/expand current window" +msgstr "" + +#: src/gui/guiConst.cpp:618 +msgid "Close current window" +msgstr "" + +#: src/gui/guiConst.cpp:621 +msgid "---Pattern" +msgstr "" + +#: src/gui/guiConst.cpp:622 +msgid "Transpose (+1)" +msgstr "" + +#: src/gui/guiConst.cpp:623 +msgid "Transpose (-1)" +msgstr "" + +#: src/gui/guiConst.cpp:624 +msgid "Transpose (+1 octave)" +msgstr "" + +#: src/gui/guiConst.cpp:625 +msgid "Transpose (-1 octave)" +msgstr "" + +#: src/gui/guiConst.cpp:626 +msgid "Increase values (+1)" +msgstr "" + +#: src/gui/guiConst.cpp:627 +msgid "Increase values (-1)" +msgstr "" + +#: src/gui/guiConst.cpp:628 +msgid "Increase values (+16)" +msgstr "" + +#: src/gui/guiConst.cpp:629 +msgid "Increase values (-16)" +msgstr "" + +#: src/gui/guiConst.cpp:630 +msgid "Select all" +msgstr "" + +#: src/gui/guiConst.cpp:631 +msgid "Cut" +msgstr "" + +#: src/gui/guiConst.cpp:632 +msgid "Copy" +msgstr "" + +#: src/gui/guiConst.cpp:633 +msgid "Paste" +msgstr "" + +#: src/gui/guiConst.cpp:634 +msgid "Paste Mix (foreground)" +msgstr "" + +#: src/gui/guiConst.cpp:635 +msgid "Paste Mix (background)" +msgstr "" + +#: src/gui/guiConst.cpp:636 +msgid "Paste Flood" +msgstr "" + +#: src/gui/guiConst.cpp:637 +msgid "Paste Overflow" +msgstr "" + +#: src/gui/guiConst.cpp:638 +msgid "Move cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:639 +msgid "Move cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:640 +msgid "Move cursor left" +msgstr "" + +#: src/gui/guiConst.cpp:641 +msgid "Move cursor right" +msgstr "" + +#: src/gui/guiConst.cpp:642 +msgid "Move cursor up by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:643 +msgid "Move cursor down by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:644 +msgid "Move cursor to previous channel" +msgstr "" + +#: src/gui/guiConst.cpp:645 +msgid "Move cursor to next channel" +msgstr "" + +#: src/gui/guiConst.cpp:646 +msgid "Move cursor to next channel (overflow)" +msgstr "" + +#: src/gui/guiConst.cpp:647 +msgid "Move cursor to previous channel (overflow)" +msgstr "" + +#: src/gui/guiConst.cpp:648 +msgid "Move cursor to beginning of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:649 +msgid "Move cursor to end of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:650 +msgid "Move cursor up (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:651 +msgid "Move cursor down (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:652 +msgid "Expand selection upwards" +msgstr "" + +#: src/gui/guiConst.cpp:653 +msgid "Expand selection downwards" +msgstr "" + +#: src/gui/guiConst.cpp:654 +msgid "Expand selection to the left" +msgstr "" + +#: src/gui/guiConst.cpp:655 +msgid "Expand selection to the right" +msgstr "" + +#: src/gui/guiConst.cpp:656 +msgid "Expand selection upwards by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:657 +msgid "Expand selection downwards by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:658 +msgid "Expand selection to beginning of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:659 +msgid "Expand selection to end of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:660 +msgid "Expand selection upwards (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:661 +msgid "Expand selection downwards (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:662 +msgid "Move selection up" +msgstr "" + +#: src/gui/guiConst.cpp:663 +msgid "Move selection down" +msgstr "" + +#: src/gui/guiConst.cpp:664 +msgid "Move selection to previous channel" +msgstr "" + +#: src/gui/guiConst.cpp:665 +msgid "Move selection to next channel" +msgstr "" + +#: src/gui/guiConst.cpp:667 +msgid "Pull delete" +msgstr "" + +#: src/gui/guiConst.cpp:668 +msgid "Insert" +msgstr "" + +#: src/gui/guiConst.cpp:669 +msgid "Mute channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:670 +msgid "Solo channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:671 +msgid "Unmute all channels" +msgstr "" + +#: src/gui/guiConst.cpp:672 +msgid "Go to next order" +msgstr "" + +#: src/gui/guiConst.cpp:673 +msgid "Go to previous order" +msgstr "" + +#: src/gui/guiConst.cpp:674 +msgid "Collapse channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:675 +msgid "Increase effect columns" +msgstr "" + +#: src/gui/guiConst.cpp:676 +msgid "Decrease effect columns" +msgstr "" + +#: src/gui/guiConst.cpp:677 +msgid "Interpolate" +msgstr "" + +#: src/gui/guiConst.cpp:678 src/gui/insEdit.cpp:530 +msgid "Fade" +msgstr "" + +#: src/gui/guiConst.cpp:679 +msgid "Invert values" +msgstr "" + +#: src/gui/guiConst.cpp:680 +msgid "Flip selection" +msgstr "" + +#: src/gui/guiConst.cpp:681 +msgid "Collapse rows" +msgstr "" + +#: src/gui/guiConst.cpp:682 +msgid "Expand rows" +msgstr "" + +#: src/gui/guiConst.cpp:683 +msgid "Collapse pattern" +msgstr "" + +#: src/gui/guiConst.cpp:684 +msgid "Expand pattern" +msgstr "" + +#: src/gui/guiConst.cpp:685 +msgid "Collapse song" +msgstr "" + +#: src/gui/guiConst.cpp:686 +msgid "Expand song" +msgstr "" + +#: src/gui/guiConst.cpp:687 +msgid "Set note input latch" +msgstr "" + +#: src/gui/guiConst.cpp:688 +msgid "Change mobile scroll mode" +msgstr "" + +#: src/gui/guiConst.cpp:689 +msgid "Clear note input latch" +msgstr "" + +#: src/gui/guiConst.cpp:692 +msgid "---Instrument list" +msgstr "" + +#: src/gui/guiConst.cpp:693 +msgid "Add instrument" +msgstr "" + +#: src/gui/guiConst.cpp:694 +msgid "Duplicate instrument" +msgstr "" + +#: src/gui/guiConst.cpp:695 +msgid "Open instrument" +msgstr "" + +#: src/gui/guiConst.cpp:696 +msgid "Open instrument (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:697 +msgid "Save instrument" +msgstr "" + +#: src/gui/guiConst.cpp:698 +msgid "Save instrument (.dmp)" +msgstr "" + +#: src/gui/guiConst.cpp:699 +msgid "Move instrument up in list" +msgstr "" + +#: src/gui/guiConst.cpp:700 +msgid "Move instrument down in list" +msgstr "" + +#: src/gui/guiConst.cpp:701 +msgid "Delete instrument" +msgstr "" + +#: src/gui/guiConst.cpp:702 +msgid "Edit instrument" +msgstr "" + +#: src/gui/guiConst.cpp:703 +msgid "Instrument cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:704 +msgid "Instrument cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:705 +msgid "Instruments: toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:708 +msgid "---Wavetable list" +msgstr "" + +#: src/gui/guiConst.cpp:709 +msgid "Add wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:710 +msgid "Duplicate wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:711 +msgid "Open wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:712 +msgid "Open wavetable (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:713 +msgid "Save wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:714 +msgid "Save wavetable (.dmw)" +msgstr "" + +#: src/gui/guiConst.cpp:715 +msgid "Save wavetable (raw)" +msgstr "" + +#: src/gui/guiConst.cpp:716 +msgid "Move wavetable up in list" +msgstr "" + +#: src/gui/guiConst.cpp:717 +msgid "Move wavetable down in list" +msgstr "" + +#: src/gui/guiConst.cpp:718 +msgid "Delete wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:719 +msgid "Edit wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:720 +msgid "Wavetable cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:721 +msgid "Wavetable cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:722 +msgid "Wavetables: toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:725 +msgid "---Sample list" +msgstr "" + +#: src/gui/guiConst.cpp:726 +msgid "Add sample" +msgstr "" + +#: src/gui/guiConst.cpp:727 +msgid "Duplicate sample" +msgstr "" + +#: src/gui/guiConst.cpp:728 +msgid "Open sample" +msgstr "" + +#: src/gui/guiConst.cpp:729 +msgid "Open sample (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:730 +msgid "Import raw sample data" +msgstr "" + +#: src/gui/guiConst.cpp:731 +msgid "Import raw sample data (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:732 +msgid "Save sample" +msgstr "" + +#: src/gui/guiConst.cpp:733 +msgid "Save sample (raw)" +msgstr "" + +#: src/gui/guiConst.cpp:734 +msgid "Move sample up in list" +msgstr "" + +#: src/gui/guiConst.cpp:735 +msgid "Move sample down in list" +msgstr "" + +#: src/gui/guiConst.cpp:736 +msgid "Delete sample" +msgstr "" + +#: src/gui/guiConst.cpp:737 +msgid "Edit sample" +msgstr "" + +#: src/gui/guiConst.cpp:738 +msgid "Sample cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:739 +msgid "Sample cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:740 +msgid "Sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:741 src/gui/sampleEdit.cpp:1339 +msgid "Stop sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:742 +msgid "Samples: Toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:743 +msgid "Samples: Make me a drum kit" +msgstr "" + +#: src/gui/guiConst.cpp:746 +msgid "---Sample editor" +msgstr "" + +#: src/gui/guiConst.cpp:747 +msgid "Sample editor mode: Select" +msgstr "" + +#: src/gui/guiConst.cpp:748 +msgid "Sample editor mode: Draw" +msgstr "" + +#: src/gui/guiConst.cpp:749 +msgid "Sample editor: Cut" +msgstr "" + +#: src/gui/guiConst.cpp:750 +msgid "Sample editor: Copy" +msgstr "" + +#: src/gui/guiConst.cpp:751 +msgid "Sample editor: Paste" +msgstr "" + +#: src/gui/guiConst.cpp:752 +msgid "Sample editor: Paste replace" +msgstr "" + +#: src/gui/guiConst.cpp:753 +msgid "Sample editor: Paste mix" +msgstr "" + +#: src/gui/guiConst.cpp:754 +msgid "Sample editor: Select all" +msgstr "" + +#: src/gui/guiConst.cpp:755 +msgid "Sample editor: Resize" +msgstr "" + +#: src/gui/guiConst.cpp:756 +msgid "Sample editor: Resample" +msgstr "" + +#: src/gui/guiConst.cpp:757 +msgid "Sample editor: Amplify" +msgstr "" + +#: src/gui/guiConst.cpp:758 +msgid "Sample editor: Normalize" +msgstr "" + +#: src/gui/guiConst.cpp:759 +msgid "Sample editor: Fade in" +msgstr "" + +#: src/gui/guiConst.cpp:760 +msgid "Sample editor: Fade out" +msgstr "" + +#: src/gui/guiConst.cpp:761 +msgid "Sample editor: Apply silence" +msgstr "" + +#: src/gui/guiConst.cpp:762 +msgid "Sample editor: Insert silence" +msgstr "" + +#: src/gui/guiConst.cpp:763 +msgid "Sample editor: Delete" +msgstr "" + +#: src/gui/guiConst.cpp:764 +msgid "Sample editor: Trim" +msgstr "" + +#: src/gui/guiConst.cpp:765 +msgid "Sample editor: Reverse" +msgstr "" + +#: src/gui/guiConst.cpp:766 +msgid "Sample editor: Invert" +msgstr "" + +#: src/gui/guiConst.cpp:767 +msgid "Sample editor: Signed/unsigned exchange" +msgstr "" + +#: src/gui/guiConst.cpp:768 +msgid "Sample editor: Apply filter" +msgstr "" + +#: src/gui/guiConst.cpp:769 +msgid "Sample editor: Crossfade loop points" +msgstr "" + +#: src/gui/guiConst.cpp:770 +msgid "Sample editor: Preview sample" +msgstr "" + +#: src/gui/guiConst.cpp:771 +msgid "Sample editor: Stop sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:772 +msgid "Sample editor: Zoom in" +msgstr "" + +#: src/gui/guiConst.cpp:773 +msgid "Sample editor: Zoom out" +msgstr "" + +#: src/gui/guiConst.cpp:774 +msgid "Sample editor: Toggle auto-zoom" +msgstr "" + +#: src/gui/guiConst.cpp:775 +msgid "Sample editor: Create instrument from sample" +msgstr "" + +#: src/gui/guiConst.cpp:776 +msgid "Sample editor: Set loop to selection" +msgstr "" + +#: src/gui/guiConst.cpp:777 +msgid "Sample editor: Create wavetable from selection" +msgstr "" + +#: src/gui/guiConst.cpp:780 +msgid "---Orders" +msgstr "" + +#: src/gui/guiConst.cpp:781 +msgid "Previous order" +msgstr "" + +#: src/gui/guiConst.cpp:782 +msgid "Next order" +msgstr "" + +#: src/gui/guiConst.cpp:783 +msgid "Order cursor left" +msgstr "" + +#: src/gui/guiConst.cpp:784 +msgid "Order cursor right" +msgstr "" + +#: src/gui/guiConst.cpp:785 +msgid "Increase order value" +msgstr "" + +#: src/gui/guiConst.cpp:786 +msgid "Decrease order value" +msgstr "" + +#: src/gui/guiConst.cpp:787 +msgid "Switch order edit mode" +msgstr "" + +#: src/gui/guiConst.cpp:788 +msgid "Order: toggle alter entire row" +msgstr "" + +#: src/gui/guiConst.cpp:789 +msgid "Add order" +msgstr "" + +#: src/gui/guiConst.cpp:790 +msgid "Duplicate order" +msgstr "" + +#: src/gui/guiConst.cpp:791 +msgid "Deep clone order" +msgstr "" + +#: src/gui/guiConst.cpp:792 +msgid "Copy current order to end of song" +msgstr "" + +#: src/gui/guiConst.cpp:793 +msgid "Deep clone current order to end of song" +msgstr "" + +#: src/gui/guiConst.cpp:797 +msgid "Replay order" +msgstr "" + +#: src/gui/guiConst.cpp:1392 +msgid "All chips" +msgstr "" + +#: src/gui/guiConst.cpp:1393 src/gui/waveEdit.cpp:668 +msgid "FM" +msgstr "" + +#: src/gui/guiConst.cpp:1394 src/gui/waveEdit.cpp:199 src/gui/insEdit.cpp:183 +#: src/gui/insEdit.cpp:194 src/gui/insEdit.cpp:326 src/gui/insEdit.cpp:656 +msgid "Square" +msgstr "" + +#: src/gui/guiConst.cpp:1395 src/gui/insEdit.cpp:6652 +msgid "Wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:1396 src/gui/insEdit.cpp:6954 src/gui/insEdit.cpp:7204 +#: src/gui/insEdit.cpp:7458 src/gui/insEdit.cpp:7480 +msgid "Special" +msgstr "" + +#: src/gui/piano.cpp:103 +msgid "Options" +msgstr "" + +#: src/gui/piano.cpp:106 +msgid "Key layout:" +msgstr "" + +#: src/gui/piano.cpp:108 +msgid "Automatic" +msgstr "" + +#: src/gui/piano.cpp:111 +msgid "Standard" +msgstr "" + +#: src/gui/piano.cpp:114 +msgid "Continuous" +msgstr "" + +#: src/gui/piano.cpp:118 +msgid "Value input pad:" +msgstr "" + +#: src/gui/piano.cpp:120 +msgid "Disabled" +msgstr "" + +#: src/gui/piano.cpp:123 +msgid "Replace piano" +msgstr "" + +#: src/gui/piano.cpp:126 +msgid "Split (automatic)" +msgstr "" + +#: src/gui/piano.cpp:129 +msgid "Split (always visible)" +msgstr "" + +#: src/gui/piano.cpp:133 +msgid "Share play/edit offset/range" +msgstr "" + +#: src/gui/piano.cpp:134 +msgid "Read-only (can't input notes)" +msgstr "" + +#: src/gui/waveEdit.cpp:30 src/gui/waveEdit.cpp:192 src/gui/insEdit.cpp:177 +#: src/gui/insEdit.cpp:188 src/gui/insEdit.cpp:199 +msgid "Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:31 src/gui/waveEdit.cpp:217 src/gui/insEdit.cpp:200 +#: src/gui/insEdit.cpp:324 src/gui/insEdit.cpp:658 +msgid "Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:32 src/gui/waveEdit.cpp:202 src/gui/insEdit.cpp:325 +#: src/gui/insEdit.cpp:654 +msgid "Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:33 +msgid "Pulse" +msgstr "" + +#: src/gui/waveEdit.cpp:38 +msgid "Linear" +msgstr "" + +#: src/gui/waveEdit.cpp:39 +msgid "Cosine" +msgstr "" + +#: src/gui/waveEdit.cpp:40 +msgid "Cubic" +msgstr "" + +#: src/gui/waveEdit.cpp:193 +msgid "Rect. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:194 +msgid "Abs. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:195 +msgid "Quart. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:196 +msgid "Squish. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:197 +msgid "Abs. Squish. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:200 +msgid "rectSquare" +msgstr "" + +#: src/gui/waveEdit.cpp:203 +msgid "Rect. Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:204 +msgid "Abs. Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:206 +msgid "Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:207 +msgid "Rect. Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:208 +msgid "Abs. Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:210 +msgid "Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:211 +msgid "Rect. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:212 +msgid "Abs. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:213 +msgid "Quart. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:214 +msgid "Squish. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:215 +msgid "Squish. Abs. Cub. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:218 +msgid "Rect. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:219 +msgid "Abs. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:220 +msgid "Quart. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:221 +msgid "Squish. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:222 +msgid "Abs. Squish. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:224 +msgid "Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:225 +msgid "Rect. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:226 +msgid "Abs. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:227 +msgid "Quart. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:228 +msgid "Squish. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:229 +msgid "Squish. Abs. Cub. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:412 src/gui/waveEdit.cpp:413 +msgid "no wavetable selected" +msgstr "" + +#: src/gui/waveEdit.cpp:424 src/gui/sampleEdit.cpp:111 src/gui/insEdit.cpp:5223 +msgid "select one..." +msgstr "" + +#: src/gui/waveEdit.cpp:432 src/gui/waveEdit.cpp:439 src/gui/sampleEdit.cpp:119 +#: src/gui/sampleEdit.cpp:126 src/gui/insEdit.cpp:5236 src/gui/insEdit.cpp:5243 +msgid "or" +msgstr "" + +#: src/gui/waveEdit.cpp:441 src/gui/sampleEdit.cpp:128 src/gui/insEdit.cpp:5245 +msgid "Create New" +msgstr "" + +#: src/gui/waveEdit.cpp:487 +msgid "Steps" +msgstr "" + +#: src/gui/waveEdit.cpp:491 +msgid "Lines" +msgstr "" + +#: src/gui/waveEdit.cpp:496 src/gui/insEdit.cpp:2687 +msgid "Width" +msgstr "" + +#: src/gui/waveEdit.cpp:498 +msgid "" +"use a width of:\n" +"- any on Amiga/N163\n" +"- 32 on Game Boy, PC Engine, SCC, Konami Bubble System, Namco WSG, Virtual " +"Boy and WonderSwan\n" +"- 64 on FDS\n" +"- 128 on X1-010\n" +"any other widths will be scaled during playback." +msgstr "" + +#: src/gui/waveEdit.cpp:510 +msgid "Height" +msgstr "" + +#: src/gui/waveEdit.cpp:512 +msgid "" +"use a height of:\n" +"- 16 for Game Boy, WonderSwan, Namco WSG, Konami Bubble System, X1-010 " +"Envelope shape and N163\n" +"- 32 for PC Engine\n" +"- 64 for FDS and Virtual Boy\n" +"- 256 for X1-010 and SCC\n" +"any other heights will be scaled during playback." +msgstr "" + +#: src/gui/waveEdit.cpp:578 +msgid "Shapes" +msgstr "" + +#: src/gui/waveEdit.cpp:597 src/gui/insEdit.cpp:5879 src/gui/insEdit.cpp:6922 +#: src/gui/insEdit.cpp:6948 src/gui/insEdit.cpp:7008 src/gui/insEdit.cpp:7048 +#: src/gui/insEdit.cpp:7150 src/gui/insEdit.cpp:7436 src/gui/insEdit.cpp:7472 +msgid "Duty" +msgstr "" + +#: src/gui/waveEdit.cpp:607 +msgid "Exponent" +msgstr "" + +#: src/gui/waveEdit.cpp:617 +msgid "XOR Point" +msgstr "" + +#: src/gui/waveEdit.cpp:627 +msgid "Amplitude/Phase" +msgstr "" + +#: src/gui/waveEdit.cpp:679 src/gui/waveEdit.cpp:723 src/gui/waveEdit.cpp:728 +msgid "Op" +msgstr "" + +#: src/gui/waveEdit.cpp:683 +msgid "Mult" +msgstr "" + +#: src/gui/waveEdit.cpp:685 +msgid "FB" +msgstr "" + +#: src/gui/waveEdit.cpp:730 src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:4148 +#: src/gui/insEdit.cpp:5812 src/gui/insEdit.cpp:6940 src/gui/insEdit.cpp:6949 +#: src/gui/insEdit.cpp:6963 src/gui/insEdit.cpp:6980 src/gui/insEdit.cpp:6991 +#: src/gui/insEdit.cpp:7004 src/gui/insEdit.cpp:7018 src/gui/insEdit.cpp:7025 +#: src/gui/insEdit.cpp:7035 src/gui/insEdit.cpp:7041 src/gui/insEdit.cpp:7050 +#: src/gui/insEdit.cpp:7074 src/gui/insEdit.cpp:7084 src/gui/insEdit.cpp:7094 +#: src/gui/insEdit.cpp:7101 src/gui/insEdit.cpp:7116 src/gui/insEdit.cpp:7131 +#: src/gui/insEdit.cpp:7151 src/gui/insEdit.cpp:7158 src/gui/insEdit.cpp:7200 +#: src/gui/insEdit.cpp:7211 src/gui/insEdit.cpp:7224 src/gui/insEdit.cpp:7349 +#: src/gui/insEdit.cpp:7425 src/gui/insEdit.cpp:7445 src/gui/insEdit.cpp:7453 +#: src/gui/insEdit.cpp:7473 +msgid "Waveform" +msgstr "" + +#: src/gui/waveEdit.cpp:749 src/gui/waveEdit.cpp:750 +msgid "Connection Diagram" +msgstr "" + +#: src/gui/waveEdit.cpp:765 +msgid "Out" +msgstr "" + +#: src/gui/waveEdit.cpp:872 +msgid "WaveTools" +msgstr "" + +#: src/gui/waveEdit.cpp:890 +msgid "Scale X" +msgstr "" + +#: src/gui/waveEdit.cpp:896 +msgid "wavetable longer than 256 samples!" +msgstr "" + +#: src/gui/waveEdit.cpp:960 +msgid "Scale Y" +msgstr "" + +#: src/gui/waveEdit.cpp:978 +msgid "Offset X" +msgstr "" + +#: src/gui/waveEdit.cpp:1000 +msgid "Offset Y" +msgstr "" + +#: src/gui/waveEdit.cpp:1017 +msgid "Smooth" +msgstr "" + +#: src/gui/waveEdit.cpp:1045 src/gui/sampleEdit.cpp:996 +msgid "Amplify" +msgstr "" + +#: src/gui/waveEdit.cpp:1063 src/gui/sampleEdit.cpp:1046 +msgid "Normalize" +msgstr "" + +#: src/gui/waveEdit.cpp:1105 src/gui/sampleEdit.cpp:1121 +msgid "Reverse" +msgstr "" + +#: src/gui/waveEdit.cpp:1117 +msgid "Half" +msgstr "" + +#: src/gui/waveEdit.cpp:1127 +msgid "Double" +msgstr "" + +#: src/gui/waveEdit.cpp:1137 +msgid "Convert Signed/Unsigned" +msgstr "" + +#: src/gui/waveEdit.cpp:1149 src/gui/gui.cpp:3040 +msgid "Randomize" +msgstr "" + +#: src/gui/waveEdit.cpp:1167 +msgid "Dec" +msgstr "" + +#: src/gui/waveEdit.cpp:1171 src/gui/csPlayer.cpp:247 +msgid "Hex" +msgstr "" + +#: src/gui/waveEdit.cpp:1179 +msgid "Signed/Unsigned" +msgstr "" + +#: src/gui/sampleEdit.cpp:65 +#, c-format +msgid "%s: maximum sample rate is %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:72 +#, c-format +msgid "%s: minimum sample rate is %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:79 +#, c-format +msgid "%s: sample rate must be %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:99 src/gui/sampleEdit.cpp:100 +msgid "no sample selected" +msgstr "" + +#: src/gui/sampleEdit.cpp:229 +#, c-format +msgid "SNES: loop start must be a multiple of 16 (try with %d)" +msgstr "" + +#: src/gui/sampleEdit.cpp:235 +#, c-format +msgid "SNES: loop end must be a multiple of 16 (try with %d)" +msgstr "" + +#: src/gui/sampleEdit.cpp:240 +msgid "SNES: sample length will be padded to multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:249 +msgid "QSound: loop cannot be longer than 32767 samples" +msgstr "" + +#: src/gui/sampleEdit.cpp:259 +msgid "NES: loop point ignored on DPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:263 +msgid "NES: maximum DPCM sample length is 32648" +msgstr "" + +#: src/gui/sampleEdit.cpp:268 +msgid "X1-010: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:271 +msgid "X1-010: maximum sample length is 131072" +msgstr "" + +#: src/gui/sampleEdit.cpp:276 +msgid "GA20: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:287 +msgid "YM2608: loop point ignored on ADPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:290 +msgid "YM2608: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:300 +msgid "YM2610: ADPCM-A samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:302 +msgid "YM2610: loop point ignored on ADPCM-B (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:305 +msgid "YM2610: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:309 +msgid "YM2610: maximum ADPCM-A sample length is 2097152" +msgstr "" + +#: src/gui/sampleEdit.cpp:318 +msgid "Y8950: loop point ignored on ADPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:321 +msgid "Y8950: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:328 +msgid "Amiga: loop start must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:331 +msgid "Amiga: loop end must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:335 +msgid "Amiga: maximum sample length is 131070" +msgstr "" + +#: src/gui/sampleEdit.cpp:344 +msgid "SegaPCM: maximum sample length is 65280" +msgstr "" + +#: src/gui/sampleEdit.cpp:353 +msgid "K053260: loop point ignored (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:357 +msgid "K053260: maximum sample length is 65535" +msgstr "" + +#: src/gui/sampleEdit.cpp:362 +msgid "C140: maximum sample length is 65535" +msgstr "" + +#: src/gui/sampleEdit.cpp:371 +msgid "C219: loop start must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:374 +msgid "C219: loop end must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:378 +msgid "C219: maximum sample length is 131072" +msgstr "" + +#: src/gui/sampleEdit.cpp:386 +msgid "MSM6295: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:389 +msgid "MSM6295: maximum bankswitched sample length is 129024" +msgstr "" + +#: src/gui/sampleEdit.cpp:395 +msgid "GBA DMA: loop start must be a multiple of 4" +msgstr "" + +#: src/gui/sampleEdit.cpp:398 +msgid "GBA DMA: loop length must be a multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:402 +msgid "GBA DMA: sample length will be padded to multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:411 +msgid "ES5506: backward loop mode isn't supported" +msgstr "" + +#: src/gui/sampleEdit.cpp:414 +msgid "" +"backward/ping-pong only supported in Generic PCM DAC\n" +"ping-pong also on ES5506" +msgstr "" + +#: src/gui/sampleEdit.cpp:444 +msgid "Info" +msgstr "" + +#: src/gui/sampleEdit.cpp:447 src/gui/sampleEdit.cpp:933 +msgid "Rate" +msgstr "" + +#: src/gui/sampleEdit.cpp:453 +msgid "Compat Rate" +msgstr "" + +#: src/gui/sampleEdit.cpp:457 +msgid "" +"used in DefleMask-compatible sample mode (17xx), in where samples are mapped " +"to an octave." +msgstr "" + +#: src/gui/sampleEdit.cpp:463 +#, c-format +msgid "Loop (length: %d)##Loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:463 src/gui/insEdit.cpp:544 src/gui/insEdit.cpp:554 +#: src/gui/insEdit.cpp:605 src/gui/insEdit.cpp:6017 +msgid "Loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:487 src/gui/sampleEdit.cpp:716 +#: src/gui/sampleEdit.cpp:752 +msgid "changing the loop in a BRR sample may result in glitches!" +msgstr "" + +#: src/gui/sampleEdit.cpp:501 src/gui/insEdit.cpp:5321 +msgid "Type" +msgstr "" + +#: src/gui/sampleEdit.cpp:529 +msgid "BRR emphasis" +msgstr "" + +#: src/gui/sampleEdit.cpp:538 +msgid "" +"this is a BRR sample.\n" +"enabling this option will muffle it (only affects non-SNES chips)." +msgstr "" + +#: src/gui/sampleEdit.cpp:540 +msgid "" +"enable this option to slightly boost high frequencies\n" +"to compensate for the SNES' Gaussian filter's muffle." +msgstr "" + +#: src/gui/sampleEdit.cpp:546 +msgid "8-bit dither" +msgstr "" + +#: src/gui/sampleEdit.cpp:554 +msgid "dither the sample when used on a chip that only supports 8-bit samples." +msgstr "" + +#: src/gui/sampleEdit.cpp:695 src/gui/gui.cpp:2969 +msgid "Start" +msgstr "" + +#: src/gui/sampleEdit.cpp:731 src/gui/gui.cpp:2977 +msgid "End" +msgstr "" + +#: src/gui/sampleEdit.cpp:841 +#, c-format +msgid "" +"%s\n" +"%d bytes free" +msgstr "" + +#: src/gui/sampleEdit.cpp:843 +#, c-format +msgid "" +"%s (%s)\n" +"%d bytes free" +msgstr "" + +#: src/gui/sampleEdit.cpp:847 +msgid "" +"\n" +"\n" +"not enough memory for this sample!" +msgstr "" + +#: src/gui/sampleEdit.cpp:871 +msgid "Edit mode: Select" +msgstr "" + +#: src/gui/sampleEdit.cpp:880 +msgid "Edit mode: Draw" +msgstr "" + +#: src/gui/sampleEdit.cpp:891 src/gui/sampleEdit.cpp:902 +msgid "Resize" +msgstr "" + +#: src/gui/sampleEdit.cpp:906 +msgid "couldn't resize! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:926 src/gui/sampleEdit.cpp:957 +msgid "Resample" +msgstr "" + +#: src/gui/sampleEdit.cpp:951 +msgid "Factor" +msgstr "" + +#: src/gui/sampleEdit.cpp:956 +msgid "Filter" +msgstr "" + +#: src/gui/sampleEdit.cpp:961 +msgid "couldn't resample! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:1010 src/gui/sampleEdit.cpp:1197 +#: src/gui/sampleEdit.cpp:1281 +msgid "Apply" +msgstr "" + +#: src/gui/sampleEdit.cpp:1053 +msgid "Fade in" +msgstr "" + +#: src/gui/sampleEdit.cpp:1060 +msgid "Fade out" +msgstr "" + +#: src/gui/sampleEdit.cpp:1065 +msgid "Insert silence" +msgstr "" + +#: src/gui/sampleEdit.cpp:1076 +msgid "Go" +msgstr "" + +#: src/gui/sampleEdit.cpp:1081 +msgid "couldn't insert! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:1098 +msgid "Apply silence" +msgstr "" + +#: src/gui/sampleEdit.cpp:1112 +msgid "Trim" +msgstr "" + +#: src/gui/sampleEdit.cpp:1135 +msgid "Signed/unsigned exchange" +msgstr "" + +#: src/gui/sampleEdit.cpp:1140 +msgid "Apply filter" +msgstr "" + +#: src/gui/sampleEdit.cpp:1151 +msgid "Cutoff:" +msgstr "" + +#: src/gui/sampleEdit.cpp:1161 src/gui/insEdit.cpp:5895 +#: src/gui/insEdit.cpp:5898 src/gui/insEdit.cpp:6953 src/gui/insEdit.cpp:7216 +#: src/gui/insEdit.cpp:7478 +msgid "Resonance" +msgstr "" + +#: src/gui/sampleEdit.cpp:1167 src/gui/insEdit.cpp:6897 +msgid "Power" +msgstr "" + +#: src/gui/sampleEdit.cpp:1181 +msgid "Low-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1186 +msgid "Band-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1191 +msgid "High-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1262 +msgid "Crossfade loop points" +msgstr "" + +#: src/gui/sampleEdit.cpp:1271 +msgid "Number of samples" +msgstr "" + +#: src/gui/sampleEdit.cpp:1277 +msgid "Linear <-> Equal power" +msgstr "" + +#: src/gui/sampleEdit.cpp:1283 +msgid "Crossfade: length would go out of bounds. Aborted..." +msgstr "" + +#: src/gui/sampleEdit.cpp:1286 +msgid "Crossfade: length would overflow loopStart. Try a smaller random value." +msgstr "" + +#: src/gui/sampleEdit.cpp:1332 +msgid "Preview sample" +msgstr "" + +#: src/gui/sampleEdit.cpp:1346 +msgid "Create instrument from sample" +msgstr "" + +#: src/gui/sampleEdit.cpp:1747 +msgid "paste (replace)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1750 +msgid "paste (mix)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1754 src/gui/gui.cpp:2763 +msgid "select all" +msgstr "" + +#: src/gui/sampleEdit.cpp:1758 +msgid "set loop to selection" +msgstr "" + +#: src/gui/sampleEdit.cpp:1761 +msgid "create wavetable from selection" +msgstr "" + +#: src/gui/sampleEdit.cpp:1767 +msgid "Draw" +msgstr "" + +#: src/gui/sampleEdit.cpp:1767 +msgid "Select" +msgstr "" + +#: src/gui/sampleEdit.cpp:1769 +#, c-format +msgid "%d samples, %d bytes" +msgstr "" + +#: src/gui/sampleEdit.cpp:1784 +#, c-format +msgid " (%d-%d: %d samples)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1976 +msgid "Non-8/16-bit samples cannot be edited without prior conversion." +msgstr "" + +#: src/gui/newSong.cpp:122 src/gui/newSong.cpp:123 +msgid "Choose a System!" +msgstr "" + +#: src/gui/newSong.cpp:179 +msgid "Categories" +msgstr "" + +#: src/gui/newSong.cpp:210 +msgid "no systems here yet!" +msgstr "" + +#: src/gui/newSong.cpp:212 +msgid "no results" +msgstr "" + +#: src/gui/newSong.cpp:228 +msgid "I'm feeling lucky" +msgstr "" + +#: src/gui/newSong.cpp:230 +msgid "no categories available! what in the world." +msgstr "" + +#: src/gui/newSong.cpp:265 +msgid "it appears you're extremely lucky today!" +msgstr "" + +#: src/gui/cursor.cpp:205 +#, c-format +msgid "finish selection: %d.%d,%d - %d.%d,%d" +msgstr "" + +#: src/gui/tutorial.cpp:485 +msgid "" +"Play demo songs?\n" +"- Down: Play current song\n" +"- Up: Play demo songs" +msgstr "" + +#: src/gui/tutorial.cpp:489 +msgid "" +"Welcome to Combat Vehicle!\n" +"\n" +"Controls:\n" +"X - Shoot Arrow Key - Move\n" +"Z - Special Esc - Quit" +msgstr "" + +#: src/gui/tutorial.cpp:494 +msgid "GAME OVER" +msgstr "" + +#: src/gui/tutorial.cpp:496 +msgid "High Score!" +msgstr "" + +#: src/gui/tutorial.cpp:656 +msgid "Welcome!" +msgstr "" + +#: src/gui/tutorial.cpp:659 +msgid "welcome to Furnace, the biggest open-source chiptune tracker!" +msgstr "" + +#: src/gui/tutorial.cpp:663 +msgid "here are some tips to get you started:" +msgstr "" + +#: src/gui/tutorial.cpp:666 +msgid "" +"- add an instrument by clicking on + in Instruments\n" +"- click on the pattern view to focus it\n" +"- channel columns have the following, in this order: note, instrument, " +"volume and effects\n" +"- hit space bar while on the pattern to toggle Edit Mode\n" +"- click on the pattern or use arrow keys to move the cursor\n" +"- values (instrument, volume, effects and effect values) are in hexadecimal\n" +"- hit enter to play/stop the song\n" +"- extend the song by adding more orders in the Orders window\n" +"- click on the Orders matrix to change the patterns of a channel (left click " +"increases; right click decreases)" +msgstr "" + +#: src/gui/tutorial.cpp:678 +msgid "" +"if you need help, you may:\n" +"- read the manual (a file called manual.pdf)\n" +"- ask for help in Discussions (https://github.com/tildearrow/furnace/" +"discussions), the Furnace Discord (https://discord.gg/EfrwT2wq7z) or Furnace " +"in Revolt (official: https://rvlt.gg/GRPS6tmc)" +msgstr "" + +#: src/gui/tutorial.cpp:685 +msgid "" +"if you find any issues, be sure to report them! the issue tracker is here: " +"https://github.com/tildearrow/furnace/issues" +msgstr "" + +#: src/gui/tutorial.cpp:1426 +#, c-format +msgid "STAGE %d" +msgstr "" + +#: src/gui/songInfo.cpp:50 +msgid "Author" +msgstr "" + +#: src/gui/songInfo.cpp:60 +msgid "Album" +msgstr "" + +#: src/gui/songInfo.cpp:79 +msgid "Auto" +msgstr "" + +#: src/gui/songInfo.cpp:100 +msgid "Tuning (A-4)" +msgstr "" + +#: src/gui/grooves.cpp:38 +msgid "use effect 09xx to select a groove pattern." +msgstr "" + +#: src/gui/grooves.cpp:48 src/gui/gui.cpp:4474 +msgid "pattern" +msgstr "" + +#: src/gui/grooves.cpp:132 +msgid "remove" +msgstr "" + +#: src/gui/doAction.cpp:45 src/gui/gui.cpp:4195 +msgid "Unsaved changes! Save changes before opening another file?" +msgstr "" + +#: src/gui/doAction.cpp:52 +msgid "Unsaved changes! Save changes before opening backup?" +msgstr "" + +#: src/gui/doAction.cpp:62 src/gui/gui.cpp:4231 src/gui/gui.cpp:5013 +#: src/gui/gui.cpp:5051 src/gui/gui.cpp:5057 src/gui/gui.cpp:5645 +#: src/gui/gui.cpp:5669 src/gui/gui.cpp:5693 src/gui/gui.cpp:5717 +#: src/gui/gui.cpp:5741 src/gui/gui.cpp:5765 +#, c-format +msgid "Error while saving file! (%s)" +msgstr "" + +#: src/gui/doAction.cpp:189 +msgid "Error while sending request (MIDI output not configured?)" +msgstr "" + +#: src/gui/doAction.cpp:197 +msgid "Select an option: (cannot be undone!)" +msgstr "" + +#: src/gui/doAction.cpp:691 src/gui/doAction.cpp:720 src/gui/doAction.cpp:1593 +#: src/gui/gui.cpp:6079 +msgid "too many instruments!" +msgstr "" + +#: src/gui/doAction.cpp:825 src/gui/doAction.cpp:843 src/gui/doAction.cpp:1634 +#: src/gui/gui.cpp:6147 src/gui/insEdit.cpp:6860 +msgid "too many wavetables!" +msgstr "" + +#: src/gui/doAction.cpp:909 src/gui/doAction.cpp:921 +msgid "too many samples!" +msgstr "" + +#: src/gui/doAction.cpp:1124 +msgid "couldn't paste! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/doAction.cpp:1628 +msgid "select at least one sample!" +msgstr "" + +#: src/gui/doAction.cpp:1630 +msgid "maximum size is 256 samples!" +msgstr "" + +#: src/gui/csPlayer.cpp:113 +msgid "Load" +msgstr "" + +#: src/gui/csPlayer.cpp:117 +msgid "Kill" +msgstr "" + +#: src/gui/csPlayer.cpp:119 +msgid "Kikai wa mou shindeiru!" +msgstr "" + +#: src/gui/csPlayer.cpp:123 +msgid "Burn Current Song" +msgstr "" + +#: src/gui/csPlayer.cpp:141 +msgid "Status" +msgstr "" + +#: src/gui/csPlayer.cpp:148 +msgid "start" +msgstr "" + +#: src/gui/csPlayer.cpp:150 +msgid "PC" +msgstr "" + +#: src/gui/csPlayer.cpp:152 +msgid "wait" +msgstr "" + +#: src/gui/csPlayer.cpp:154 +msgid "SP" +msgstr "" + +#: src/gui/csPlayer.cpp:156 src/gui/insEdit.cpp:2733 +msgid "note" +msgstr "" + +#: src/gui/csPlayer.cpp:158 src/gui/insEdit.cpp:2728 +msgid "pitch" +msgstr "" + +#: src/gui/csPlayer.cpp:160 +msgid "vol" +msgstr "" + +#: src/gui/csPlayer.cpp:162 +msgid "vols" +msgstr "" + +#: src/gui/csPlayer.cpp:164 +msgid "vib" +msgstr "" + +#: src/gui/csPlayer.cpp:166 +msgid "porta" +msgstr "" + +#: src/gui/csPlayer.cpp:168 +msgid "arp" +msgstr "" + +#: src/gui/csPlayer.cpp:203 +msgid "Trace" +msgstr "" + +#: src/gui/csPlayer.cpp:244 +msgid "Disassemble" +msgstr "" + +#: src/gui/gui.cpp:1130 src/gui/gui.cpp:1134 +msgid "the song is over!" +msgstr "" + +#: src/gui/gui.cpp:1661 +msgid "Open File" +msgstr "" + +#: src/gui/gui.cpp:1662 src/gui/gui.cpp:1792 src/gui/gui.cpp:1832 +#: src/gui/gui.cpp:1947 src/gui/gui.cpp:1956 src/gui/gui.cpp:1965 +#: src/gui/gui.cpp:2067 src/gui/gui.cpp:2087 src/gui/gui.cpp:2105 +msgid "compatible files" +msgstr "" + +#: src/gui/gui.cpp:1663 src/gui/gui.cpp:1737 src/gui/gui.cpp:1793 +#: src/gui/gui.cpp:1833 src/gui/gui.cpp:1845 src/gui/gui.cpp:1864 +#: src/gui/gui.cpp:2068 src/gui/gui.cpp:2078 src/gui/gui.cpp:2089 +#: src/gui/gui.cpp:2107 +msgid "all files" +msgstr "" + +#: src/gui/gui.cpp:1670 +msgid "no backups made yet!" +msgstr "" + +#: src/gui/gui.cpp:1675 src/gui/gui.cpp:1684 src/gui/gui.cpp:2124 +msgid "Furnace song" +msgstr "" + +#: src/gui/gui.cpp:1683 +msgid "Save File" +msgstr "" + +#: src/gui/gui.cpp:1692 src/gui/gui.cpp:1702 +msgid "Export DMF" +msgstr "" + +#: src/gui/gui.cpp:1693 +msgid "DefleMask 1.1.3 module" +msgstr "" + +#: src/gui/gui.cpp:1703 +msgid "DefleMask 1.0/legacy module" +msgstr "" + +#: src/gui/gui.cpp:1720 +msgid "Load Instrument" +msgstr "" + +#: src/gui/gui.cpp:1721 +msgid "all compatible files" +msgstr "" + +#: src/gui/gui.cpp:1722 src/gui/gui.cpp:1771 +msgid "Furnace instrument" +msgstr "" + +#: src/gui/gui.cpp:1723 src/gui/gui.cpp:1781 +msgid "DefleMask preset" +msgstr "" + +#: src/gui/gui.cpp:1724 +msgid "TFM Music Maker instrument" +msgstr "" + +#: src/gui/gui.cpp:1725 +msgid "VGM Music Maker instrument" +msgstr "" + +#: src/gui/gui.cpp:1726 +msgid "Scream Tracker 3 instrument" +msgstr "" + +#: src/gui/gui.cpp:1727 +msgid "SoundBlaster instrument" +msgstr "" + +#: src/gui/gui.cpp:1728 +msgid "Wohlstand OPL instrument" +msgstr "" + +#: src/gui/gui.cpp:1729 +msgid "Wohlstand OPN instrument" +msgstr "" + +#: src/gui/gui.cpp:1730 +msgid "Gens KMod patch dump" +msgstr "" + +#: src/gui/gui.cpp:1731 +msgid "BNK file (AdLib)" +msgstr "" + +#: src/gui/gui.cpp:1732 +msgid "FF preset bank" +msgstr "" + +#: src/gui/gui.cpp:1733 +msgid "2612edit GYB preset bank" +msgstr "" + +#: src/gui/gui.cpp:1734 +msgid "VOPM preset bank" +msgstr "" + +#: src/gui/gui.cpp:1735 +msgid "Wohlstand WOPL bank" +msgstr "" + +#: src/gui/gui.cpp:1736 +msgid "Wohlstand WOPN bank" +msgstr "" + +#: src/gui/gui.cpp:1770 src/gui/gui.cpp:1780 +msgid "Save Instrument" +msgstr "" + +#: src/gui/gui.cpp:1791 +msgid "Load Wavetable" +msgstr "" + +#: src/gui/gui.cpp:1803 src/gui/gui.cpp:1812 src/gui/gui.cpp:1821 +msgid "Save Wavetable" +msgstr "" + +#: src/gui/gui.cpp:1804 +msgid "Furnace wavetable" +msgstr "" + +#: src/gui/gui.cpp:1813 +msgid "DefleMask wavetable" +msgstr "" + +#: src/gui/gui.cpp:1822 +msgid "raw data" +msgstr "" + +#: src/gui/gui.cpp:1831 +msgid "Load Sample" +msgstr "" + +#: src/gui/gui.cpp:1844 +msgid "Load Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:1853 +msgid "Save Sample" +msgstr "" + +#: src/gui/gui.cpp:1854 src/gui/gui.cpp:1874 src/gui/gui.cpp:1884 +#: src/gui/gui.cpp:1894 +msgid "Wave file" +msgstr "" + +#: src/gui/gui.cpp:1863 +msgid "Save Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:1873 src/gui/gui.cpp:1883 src/gui/gui.cpp:1893 +msgid "Export Audio" +msgstr "" + +#: src/gui/gui.cpp:1903 +msgid "Export VGM" +msgstr "" + +#: src/gui/gui.cpp:1904 +msgid "VGM file" +msgstr "" + +#: src/gui/gui.cpp:1913 +msgid "Export ZSM" +msgstr "" + +#: src/gui/gui.cpp:1914 +msgid "ZSM file" +msgstr "" + +#: src/gui/gui.cpp:1923 src/gui/gui.cpp:1933 +msgid "Export Command Stream" +msgstr "" + +#: src/gui/gui.cpp:1924 +msgid "text file" +msgstr "" + +#: src/gui/gui.cpp:1934 +msgid "binary file" +msgstr "" + +#: src/gui/gui.cpp:1941 src/gui/gui.cpp:5364 +msgid "Coming soon!" +msgstr "" + +#: src/gui/gui.cpp:1946 src/gui/gui.cpp:1955 src/gui/gui.cpp:1964 +msgid "Select Font" +msgstr "" + +#: src/gui/gui.cpp:1973 +msgid "Select Color File" +msgstr "" + +#: src/gui/gui.cpp:1974 src/gui/gui.cpp:1983 src/gui/gui.cpp:2002 +#: src/gui/gui.cpp:2011 src/gui/gui.cpp:2020 src/gui/gui.cpp:2029 +#: src/gui/gui.cpp:2047 src/gui/gui.cpp:2056 +msgid "configuration files" +msgstr "" + +#: src/gui/gui.cpp:1982 +msgid "Select Keybind File" +msgstr "" + +#: src/gui/gui.cpp:1991 +msgid "Select Layout File" +msgstr "" + +#: src/gui/gui.cpp:1992 src/gui/gui.cpp:2038 +msgid ".ini files" +msgstr "" + +#: src/gui/gui.cpp:2001 +msgid "Select User Presets File" +msgstr "" + +#: src/gui/gui.cpp:2010 +msgid "Select Settings File" +msgstr "" + +#: src/gui/gui.cpp:2019 +msgid "Export Colors" +msgstr "" + +#: src/gui/gui.cpp:2028 +msgid "Export Keybinds" +msgstr "" + +#: src/gui/gui.cpp:2037 +msgid "Export Layout" +msgstr "" + +#: src/gui/gui.cpp:2046 +msgid "Export User Presets" +msgstr "" + +#: src/gui/gui.cpp:2055 +msgid "Export Settings" +msgstr "" + +#: src/gui/gui.cpp:2066 +msgid "Load ROM" +msgstr "" + +#: src/gui/gui.cpp:2076 +msgid "Play Command Stream" +msgstr "" + +#: src/gui/gui.cpp:2077 +msgid "command stream" +msgstr "" + +#: src/gui/gui.cpp:2086 +msgid "Open Test" +msgstr "" + +#: src/gui/gui.cpp:2088 src/gui/gui.cpp:2106 +msgid "another option" +msgstr "" + +#: src/gui/gui.cpp:2104 +msgid "Open Test (Multi)" +msgstr "" + +#: src/gui/gui.cpp:2123 +msgid "Save Test" +msgstr "" + +#: src/gui/gui.cpp:2125 +msgid "DefleMask module" +msgstr "" + +#: src/gui/gui.cpp:2165 +msgid "compression error" +msgstr "" + +#: src/gui/gui.cpp:2177 +msgid "zlib stream error" +msgstr "" + +#: src/gui/gui.cpp:2199 +msgid "zlib finish stream error" +msgstr "" + +#: src/gui/gui.cpp:2253 src/gui/gui.cpp:2416 +#, c-format +msgid "on seek: %s" +msgstr "" + +#: src/gui/gui.cpp:2260 src/gui/gui.cpp:2423 +#, c-format +msgid "on pre tell: %s" +msgstr "" + +#: src/gui/gui.cpp:2267 src/gui/gui.cpp:2430 +msgid "file is empty" +msgstr "" + +#: src/gui/gui.cpp:2270 src/gui/gui.cpp:2433 +#, c-format +msgid "on tell: %s" +msgstr "" + +#: src/gui/gui.cpp:2277 src/gui/gui.cpp:2440 +#, c-format +msgid "on get size: %s" +msgstr "" + +#: src/gui/gui.cpp:2284 src/gui/gui.cpp:2447 +#, c-format +msgid "on read: %s" +msgstr "" + +#: src/gui/gui.cpp:2310 +msgid "everything OK" +msgstr "" + +#: src/gui/gui.cpp:2328 +msgid "" +"you have loaded a backup!\n" +"if you need to, please save it somewhere.\n" +"\n" +"DO NOT RELY ON THE BACKUP SYSTEM FOR AUTO-SAVE!\n" +"Furnace will not save backups of backups." +msgstr "" + +#: src/gui/gui.cpp:2336 src/gui/gui.cpp:3737 src/gui/gui.cpp:4207 +msgid "Unsaved changes! Save changes before opening file?" +msgstr "" + +#: src/gui/gui.cpp:2730 +msgid "paste special..." +msgstr "" + +#: src/gui/gui.cpp:2731 +msgid "paste mix" +msgstr "" + +#: src/gui/gui.cpp:2732 +msgid "paste mix (background)" +msgstr "" + +#: src/gui/gui.cpp:2733 +msgid "paste with ins (foreground)" +msgstr "" + +#: src/gui/gui.cpp:2735 src/gui/gui.cpp:2747 src/gui/gui.cpp:2957 +msgid "no instruments available" +msgstr "" + +#: src/gui/gui.cpp:2745 +msgid "paste with ins (background)" +msgstr "" + +#: src/gui/gui.cpp:2757 +msgid "paste flood" +msgstr "" + +#: src/gui/gui.cpp:2758 +msgid "paste overflow" +msgstr "" + +#: src/gui/gui.cpp:2767 +msgid "operation mask..." +msgstr "" + +#: src/gui/gui.cpp:2774 +msgid "pull delete" +msgstr "" + +#: src/gui/gui.cpp:2778 +msgid "insert" +msgstr "" + +#: src/gui/gui.cpp:2786 +msgid "transpose (note)" +msgstr "" + +#: src/gui/gui.cpp:2790 +msgid "transpose (value)" +msgstr "" + +#: src/gui/gui.cpp:2802 src/gui/gui.cpp:3046 +msgid "invert values" +msgstr "" + +#: src/gui/gui.cpp:2818 +msgid "collapse/expand" +msgstr "" + +#: src/gui/gui.cpp:2823 +msgid "input latch" +msgstr "" + +#: src/gui/gui.cpp:2850 +msgid "" +"&&: selected instrument\n" +"..: no instrument" +msgstr "" + +#: src/gui/gui.cpp:2904 +msgid "Set" +msgstr "" + +#: src/gui/gui.cpp:2914 +msgid "Reset" +msgstr "" + +#: src/gui/gui.cpp:2924 +msgid "note up" +msgstr "" + +#: src/gui/gui.cpp:2925 +msgid "note down" +msgstr "" + +#: src/gui/gui.cpp:2926 +msgid "octave up" +msgstr "" + +#: src/gui/gui.cpp:2927 +msgid "octave down" +msgstr "" + +#: src/gui/gui.cpp:2929 +msgid "values up" +msgstr "" + +#: src/gui/gui.cpp:2930 +msgid "values down" +msgstr "" + +#: src/gui/gui.cpp:2931 +msgid "values up (+16)" +msgstr "" + +#: src/gui/gui.cpp:2932 +msgid "values down (-16)" +msgstr "" + +#: src/gui/gui.cpp:2935 +msgid "transpose" +msgstr "" + +#: src/gui/gui.cpp:2943 +msgid "Notes" +msgstr "" + +#: src/gui/gui.cpp:2948 +msgid "Values" +msgstr "" + +#: src/gui/gui.cpp:2955 +msgid "change instrument..." +msgstr "" + +#: src/gui/gui.cpp:2968 +msgid "gradient/fade..." +msgstr "" + +#: src/gui/gui.cpp:2985 src/gui/gui.cpp:3030 +msgid "Nibble mode" +msgstr "" + +#: src/gui/gui.cpp:2994 +msgid "Go ahead" +msgstr "" + +#: src/gui/gui.cpp:3000 src/gui/insEdit.cpp:7604 +msgid "scale..." +msgstr "" + +#: src/gui/gui.cpp:3005 +msgid "Scale" +msgstr "" + +#: src/gui/gui.cpp:3011 src/gui/insEdit.cpp:7632 +msgid "randomize..." +msgstr "" + +#: src/gui/gui.cpp:3012 +msgid "Minimum" +msgstr "" + +#: src/gui/gui.cpp:3021 +msgid "Maximum" +msgstr "" + +#: src/gui/gui.cpp:3050 +msgid "flip selection" +msgstr "" + +#: src/gui/gui.cpp:3053 +msgid "collapse/expand amount##CollapseAmount" +msgstr "" + +#: src/gui/gui.cpp:3062 +msgid "collapse pattern" +msgstr "" + +#: src/gui/gui.cpp:3063 +msgid "expand pattern" +msgstr "" + +#: src/gui/gui.cpp:3068 +msgid "collapse song" +msgstr "" + +#: src/gui/gui.cpp:3069 +msgid "expand song" +msgstr "" + +#: src/gui/gui.cpp:3074 +msgid "find/replace" +msgstr "" + +#: src/gui/gui.cpp:3088 src/gui/gui.cpp:5795 src/gui/gui.cpp:7300 +#, c-format +msgid "could NOT save layout! %s" +msgstr "" + +#: src/gui/gui.cpp:3100 +#, c-format +msgid "could NOT load layout! %s" +msgstr "" + +#: src/gui/gui.cpp:3562 +msgid "" +"Furnace has been started in Safe Mode.\n" +"this means that:\n" +"\n" +"- software rendering is being used\n" +"- audio output may not work\n" +"- font loading is disabled\n" +"\n" +"check any settings which may have made Furnace start up in this mode.\n" +"font loading is one of these." +msgstr "" + +#: src/gui/gui.cpp:4047 +msgid "can't keep going without graphics! Furnace will quit now." +msgstr "" + +#: src/gui/gui.cpp:4061 src/gui/gui.cpp:6650 src/gui/gui.cpp:7026 +msgid "error while loading fonts! please check your settings." +msgstr "" + +#: src/gui/gui.cpp:4185 +msgid "File" +msgstr "" + +#: src/gui/gui.cpp:4185 +msgid "file" +msgstr "" + +#: src/gui/gui.cpp:4186 +msgid "new..." +msgstr "" + +#: src/gui/gui.cpp:4193 +msgid "open..." +msgstr "" + +#: src/gui/gui.cpp:4200 +msgid "open recent" +msgstr "" + +#: src/gui/gui.cpp:4216 +msgid "nothing here yet" +msgstr "" + +#: src/gui/gui.cpp:4219 +msgid "clear history" +msgstr "" + +#: src/gui/gui.cpp:4220 +msgid "Are you sure you want to clear the recent file list?" +msgstr "" + +#: src/gui/gui.cpp:4235 +msgid "save as..." +msgstr "" + +#: src/gui/gui.cpp:4240 src/gui/gui.cpp:4281 +msgid "export audio..." +msgstr "" + +#: src/gui/gui.cpp:4244 src/gui/gui.cpp:4285 +msgid "export VGM..." +msgstr "" + +#: src/gui/gui.cpp:4253 src/gui/gui.cpp:4294 +msgid "export ZSM..." +msgstr "" + +#: src/gui/gui.cpp:4263 src/gui/gui.cpp:4304 +msgid "export Amiga validation data..." +msgstr "" + +#: src/gui/gui.cpp:4268 src/gui/gui.cpp:4309 +msgid "export text..." +msgstr "" + +#: src/gui/gui.cpp:4272 src/gui/gui.cpp:4313 +msgid "export command stream..." +msgstr "" + +#: src/gui/gui.cpp:4276 src/gui/gui.cpp:4317 +msgid "export .dmf..." +msgstr "" + +#: src/gui/gui.cpp:4322 +msgid "export..." +msgstr "" + +#: src/gui/gui.cpp:4328 +msgid "manage chips" +msgstr "" + +#: src/gui/gui.cpp:4332 +msgid "add chip..." +msgstr "" + +#: src/gui/gui.cpp:4337 src/gui/sysManager.cpp:138 +#, c-format +msgid "cannot add chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4349 +msgid "configure chip..." +msgstr "" + +#: src/gui/gui.cpp:4359 +msgid "change chip..." +msgstr "" + +#: src/gui/gui.cpp:4361 src/gui/gui.cpp:4384 +msgid "Preserve channel positions" +msgstr "" + +#: src/gui/gui.cpp:4373 src/gui/sysManager.cpp:109 +#, c-format +msgid "cannot change chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4382 +msgid "remove chip..." +msgstr "" + +#: src/gui/gui.cpp:4388 +#, c-format +msgid "cannot remove chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4402 +msgid "open built-in assets directory" +msgstr "" + +#: src/gui/gui.cpp:4408 +msgid "restore backup" +msgstr "" + +#: src/gui/gui.cpp:4412 +msgid "exit..." +msgstr "" + +#: src/gui/gui.cpp:4420 +msgid "edit" +msgstr "" + +#: src/gui/gui.cpp:4428 +msgid "clear..." +msgstr "" + +#: src/gui/gui.cpp:4433 +msgid "settings" +msgstr "" + +#: src/gui/gui.cpp:4435 +msgid "full screen" +msgstr "" + +#: src/gui/gui.cpp:4439 +msgid "lock layout" +msgstr "" + +#: src/gui/gui.cpp:4442 +msgid "pattern visualizer" +msgstr "" + +#: src/gui/gui.cpp:4448 +msgid "reset layout" +msgstr "" + +#: src/gui/gui.cpp:4449 +msgid "Are you sure you want to reset the workspace layout?" +msgstr "" + +#: src/gui/gui.cpp:4452 +msgid "switch to mobile view" +msgstr "" + +#: src/gui/gui.cpp:4456 +msgid "user systems..." +msgstr "" + +#: src/gui/gui.cpp:4459 +msgid "settings..." +msgstr "" + +#: src/gui/gui.cpp:4465 +msgid "Window" +msgstr "" + +#: src/gui/gui.cpp:4465 +msgid "window" +msgstr "" + +#: src/gui/gui.cpp:4466 +msgid "song" +msgstr "" + +#: src/gui/gui.cpp:4467 +msgid "song comments" +msgstr "" + +#: src/gui/gui.cpp:4468 +msgid "song information" +msgstr "" + +#: src/gui/gui.cpp:4469 +msgid "subsongs" +msgstr "" + +#: src/gui/gui.cpp:4471 +msgid "channels" +msgstr "" + +#: src/gui/gui.cpp:4472 +msgid "chip manager" +msgstr "" + +#: src/gui/gui.cpp:4473 +msgid "orders" +msgstr "" + +#: src/gui/gui.cpp:4475 +msgid "pattern manager" +msgstr "" + +#: src/gui/gui.cpp:4476 +msgid "mixer" +msgstr "" + +#: src/gui/gui.cpp:4477 +msgid "compatibility flags" +msgstr "" + +#: src/gui/gui.cpp:4480 src/gui/gui.cpp:4482 +msgid "assets" +msgstr "" + +#: src/gui/gui.cpp:4484 +msgid "instruments" +msgstr "" + +#: src/gui/gui.cpp:4485 +msgid "samples" +msgstr "" + +#: src/gui/gui.cpp:4486 +msgid "wavetables" +msgstr "" + +#: src/gui/gui.cpp:4489 +msgid "instrument editor" +msgstr "" + +#: src/gui/gui.cpp:4490 +msgid "sample editor" +msgstr "" + +#: src/gui/gui.cpp:4491 +msgid "wavetable editor" +msgstr "" + +#: src/gui/gui.cpp:4494 +msgid "visualizers" +msgstr "" + +#: src/gui/gui.cpp:4495 +msgid "oscilloscope (master)" +msgstr "" + +#: src/gui/gui.cpp:4496 +msgid "oscilloscope (per-channel)" +msgstr "" + +#: src/gui/gui.cpp:4497 +msgid "oscilloscope (X-Y)" +msgstr "" + +#: src/gui/gui.cpp:4498 +msgid "volume meter" +msgstr "" + +#: src/gui/gui.cpp:4501 +msgid "tempo" +msgstr "" + +#: src/gui/gui.cpp:4502 +msgid "clock" +msgstr "" + +#: src/gui/gui.cpp:4503 +msgid "grooves" +msgstr "" + +#: src/gui/gui.cpp:4504 +msgid "speed" +msgstr "" + +#: src/gui/gui.cpp:4508 +msgid "log viewer" +msgstr "" + +#: src/gui/gui.cpp:4509 +msgid "register view" +msgstr "" + +#: src/gui/gui.cpp:4510 +msgid "statistics" +msgstr "" + +#: src/gui/gui.cpp:4511 +msgid "memory composition" +msgstr "" + +#: src/gui/gui.cpp:4515 src/gui/gui.cpp:4523 +msgid "effect list" +msgstr "" + +#: src/gui/gui.cpp:4516 +msgid "play/edit controls" +msgstr "" + +#: src/gui/gui.cpp:4517 +msgid "piano/input pad" +msgstr "" + +#: src/gui/gui.cpp:4518 +msgid "spoiler" +msgstr "" + +#: src/gui/gui.cpp:4522 +msgid "Help" +msgstr "" + +#: src/gui/gui.cpp:4522 +msgid "help" +msgstr "" + +#: src/gui/gui.cpp:4524 +msgid "debug menu" +msgstr "" + +#: src/gui/gui.cpp:4525 +msgid "inspector" +msgstr "" + +#: src/gui/gui.cpp:4526 +msgid "panic" +msgstr "" + +#: src/gui/gui.cpp:4527 +msgid "about..." +msgstr "" + +#: src/gui/gui.cpp:4542 +#, c-format +msgid "| Speed %d:%d" +msgstr "" + +#: src/gui/gui.cpp:4544 +#, c-format +msgid "| Speed %d" +msgstr "" + +#: src/gui/gui.cpp:4546 +msgid "| Groove" +msgstr "" + +#: src/gui/gui.cpp:4549 +#, c-format +msgid " @ %gHz (%g BPM) " +msgstr "" + +#: src/gui/gui.cpp:4552 +#, c-format +msgid "| Order %.2X/%.2X " +msgstr "" + +#: src/gui/gui.cpp:4554 +#, c-format +msgid "| Order %d/%d " +msgstr "" + +#: src/gui/gui.cpp:4558 +#, c-format +msgid "| Row %.2X/%.2X " +msgstr "" + +#: src/gui/gui.cpp:4560 +#, c-format +msgid "| Row %d/%d " +msgstr "" + +#: src/gui/gui.cpp:4563 +msgid "| " +msgstr "" + +#: src/gui/gui.cpp:4566 +msgid "Don't you have anything better to do?" +msgstr "" + +#: src/gui/gui.cpp:4575 +#, c-format +msgid "%d year " +msgid_plural "%d years " +msgstr[0] "" +msgstr[1] "" + +#: src/gui/gui.cpp:4576 +#, c-format +msgid "%d month " +msgid_plural "%d months " +msgstr[0] "" +msgstr[1] "" + +#: src/gui/gui.cpp:4577 +#, c-format +msgid "%d day " +msgid_plural "%d days " +msgstr[0] "" +msgstr[1] "" + +#: src/gui/gui.cpp:4597 +msgid "Note off (cut)" +msgstr "" + +#: src/gui/gui.cpp:4599 +msgid "Note off (release)" +msgstr "" + +#: src/gui/gui.cpp:4601 +msgid "Macro release only" +msgstr "" + +#: src/gui/gui.cpp:4603 +#, c-format +msgid "Note on: %s" +msgstr "" + +#: src/gui/gui.cpp:4611 +#, c-format +msgid "Ins %d: " +msgstr "" + +#: src/gui/gui.cpp:4614 +#, c-format +msgid "Ins %d: %s" +msgstr "" + +#: src/gui/gui.cpp:4623 +#, c-format +msgid "Set volume: %d (%.2X, INVALID!)" +msgstr "" + +#: src/gui/gui.cpp:4626 +#, c-format +msgid "Set volume: %d (%.2X, %d%%)" +msgstr "" + +#: src/gui/gui.cpp:4648 +msgid "| modified" +msgstr "" + +#: src/gui/gui.cpp:4813 src/gui/gui.cpp:4816 +msgid "System File Dialog Pending" +msgstr "" + +#: src/gui/gui.cpp:4929 +msgid "" +"there was an error in the file dialog! you may want to report this issue " +"to:\n" +"https://github.com/tildearrow/furnace/issues\n" +"check the Log Viewer (window > log viewer) for more information.\n" +"\n" +"for now please disable the system file picker in Settings > General." +msgstr "" + +#: src/gui/gui.cpp:4932 +msgid "can't do anything without Storage permissions!" +msgstr "" + +#: src/gui/gui.cpp:4934 +msgid "" +"Zenity/KDialog not available!\n" +"please install one of these, or disable the system file picker in Settings > " +"General." +msgstr "" + +#: src/gui/gui.cpp:5070 +msgid "" +"error while saving instrument! only the following instrument types are " +"supported:\n" +"- FM (OPN)\n" +"- SN76489/Sega PSG\n" +"- Game Boy\n" +"- PC Engine\n" +"- NES\n" +"- C64\n" +"- FM (OPLL)\n" +"- FDS" +msgstr "" + +#: src/gui/gui.cpp:5098 +msgid "there were some errors while loading samples:\n" +msgstr "" + +#: src/gui/gui.cpp:5143 src/gui/gui.cpp:6327 +msgid "...but you haven't selected a sample!" +msgstr "" + +#: src/gui/gui.cpp:5158 src/gui/gui.cpp:5167 +msgid "could not save sample! open Log Viewer for more information." +msgstr "" + +#: src/gui/gui.cpp:5186 +msgid "there were some warnings/errors while loading instruments:\n" +msgstr "" + +#: src/gui/gui.cpp:5192 +#, c-format +msgid "> %s: cannot load instrument! (%s)\n" +msgstr "" + +#: src/gui/gui.cpp:5210 src/gui/gui.cpp:5264 +#, c-format +msgid "cannot load instrument! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5216 +msgid "" +"congratulations! you managed to load nothing.\n" +"you are entitled to a bug report." +msgstr "" + +#: src/gui/gui.cpp:5257 src/gui/gui.cpp:6231 +msgid "...but you haven't selected an instrument!" +msgstr "" + +#: src/gui/gui.cpp:5269 +msgid "there were some errors while loading wavetables:\n" +msgstr "" + +#: src/gui/gui.cpp:5278 src/gui/gui.cpp:5288 src/gui/gui.cpp:5307 +#, c-format +msgid "cannot load wavetable! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5315 +msgid "...but you haven't selected a wavetable!" +msgstr "" + +#: src/gui/gui.cpp:5330 src/gui/gui.cpp:5351 src/gui/gui.cpp:5375 +#: src/gui/gui.cpp:5396 +msgid "could not open file!" +msgstr "" + +#: src/gui/gui.cpp:5338 +#, c-format +msgid "could not write VGM! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5359 +#, c-format +msgid "Could not write ZSM! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5383 +#, c-format +msgid "could not write text! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5404 +#, c-format +msgid "could not write command stream! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5428 +msgid "could not import user presets!" +msgstr "" + +#: src/gui/gui.cpp:5433 src/gui/gui.cpp:5450 +#, c-format +msgid "could not import user presets! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5471 +#, c-format +msgid "You opened: %s" +msgstr "" + +#: src/gui/gui.cpp:5474 +msgid "You opened:" +msgstr "" + +#: src/gui/gui.cpp:5482 +#, c-format +msgid "You saved: %s" +msgstr "" + +#: src/gui/gui.cpp:5498 src/gui/gui.cpp:5633 src/gui/gui.cpp:5634 +msgid "Warning" +msgstr "" + +#: src/gui/gui.cpp:5503 src/gui/gui.cpp:5624 src/gui/gui.cpp:5625 +#: src/gui/insEdit.cpp:7520 +msgid "Error" +msgstr "" + +#: src/gui/gui.cpp:5508 src/gui/gui.cpp:6165 src/gui/gui.cpp:6166 +msgid "Select Instrument" +msgstr "" + +#: src/gui/gui.cpp:5513 src/gui/gui.cpp:6244 src/gui/gui.cpp:6245 +msgid "Import Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:5528 src/gui/gui.cpp:5581 src/gui/gui.cpp:5582 +msgid "Rendering..." +msgstr "" + +#: src/gui/gui.cpp:5551 src/gui/gui.cpp:5601 +msgid "New Song" +msgstr "" + +#: src/gui/gui.cpp:5583 +msgid "Please wait..." +msgstr "" + +#: src/gui/gui.cpp:5584 +msgid "Abort" +msgstr "" + +#: src/gui/gui.cpp:5626 +#, c-format +msgid "%s" +msgstr "" + +#: src/gui/gui.cpp:5638 src/gui/gui.cpp:5662 src/gui/gui.cpp:5686 +#: src/gui/gui.cpp:5710 src/gui/gui.cpp:5734 src/gui/gui.cpp:5758 +#: src/gui/gui.cpp:5790 src/gui/gui.cpp:5806 src/gui/gui.cpp:5817 +#: src/gui/gui.cpp:5829 src/gui/gui.cpp:5983 src/gui/gui.cpp:6005 +#: src/gui/gui.cpp:6020 src/gui/gui.cpp:6031 +msgid "Yes" +msgstr "" + +#: src/gui/gui.cpp:5856 +msgid "Erasing" +msgstr "" + +#: src/gui/gui.cpp:5859 +msgid "All subsongs" +msgstr "" + +#: src/gui/gui.cpp:5866 +msgid "Current subsong" +msgstr "" + +#: src/gui/gui.cpp:5933 +msgid "Optimization" +msgstr "" + +#: src/gui/gui.cpp:5936 src/gui/patManager.cpp:36 +msgid "De-duplicate patterns" +msgstr "" + +#: src/gui/gui.cpp:5945 +msgid "Remove unused instruments" +msgstr "" + +#: src/gui/gui.cpp:5958 +msgid "Remove unused samples" +msgstr "" + +#: src/gui/gui.cpp:5975 +msgid "Never mind! Cancel" +msgstr "" + +#: src/gui/gui.cpp:6054 +msgid "Drum kit mode:" +msgstr "" + +#: src/gui/gui.cpp:6058 +msgid "12 samples per octave" +msgstr "" + +#: src/gui/gui.cpp:6063 +msgid "Starting octave" +msgstr "" + +#: src/gui/gui.cpp:6083 +msgid "Drum Kit" +msgstr "" + +#: src/gui/gui.cpp:6169 +msgid "this is an instrument bank! select which one to use:" +msgstr "" + +#: src/gui/gui.cpp:6172 +msgid "this is an instrument bank! select which ones to load:" +msgstr "" + +#: src/gui/gui.cpp:6246 +msgid "Data type:" +msgstr "" + +#: src/gui/gui.cpp:6273 +msgid "(will be mixed down to mono)" +msgstr "" + +#: src/gui/gui.cpp:6274 +msgid "Unsigned" +msgstr "" + +#: src/gui/gui.cpp:6278 +msgid "Big endian" +msgstr "" + +#: src/gui/gui.cpp:6286 +msgid "Swap nibbles" +msgstr "" + +#: src/gui/gui.cpp:6290 +msgid "Swap words" +msgstr "" + +#: src/gui/gui.cpp:6294 +msgid "Encoding:" +msgstr "" + +#: src/gui/gui.cpp:6307 +msgid "Reverse bit order" +msgstr "" + +#: src/gui/gui.cpp:6349 +msgid "Error! No string provided!" +msgstr "" + +#: src/gui/gui.cpp:6671 +msgid "it appears I couldn't load these fonts. any setting you can check?" +msgstr "" + +#: src/gui/gui.cpp:6851 src/gui/gui.cpp:6959 +msgid "" +"could not init renderer!\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:6853 src/gui/gui.cpp:6961 +#, c-format +msgid "" +"could not init renderer! %s\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:6858 src/gui/gui.cpp:6966 +msgid "could not init renderer!" +msgstr "" + +#: src/gui/gui.cpp:6869 +#, c-format +msgid "could not open window! %s" +msgstr "" + +#: src/gui/gui.cpp:6874 +msgid "" +"\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:7502 +msgid "Unsaved changes! Save changes before quitting?" +msgstr "" + +#: src/gui/sysManager.cpp:42 +msgid "Preserve channel order" +msgstr "" + +#: src/gui/sysManager.cpp:44 +msgid "Clone channel data" +msgstr "" + +#: src/gui/sysManager.cpp:46 +msgid "Clone at end" +msgstr "" + +#: src/gui/sysManager.cpp:56 +msgid "Actions" +msgstr "" + +#: src/gui/sysManager.cpp:69 +msgid "(drag to swap chips)" +msgstr "" + +#: src/gui/sysManager.cpp:90 +msgid "Clone##SysDup" +msgstr "" + +#: src/gui/sysManager.cpp:92 +#, c-format +msgid "cannot clone chip! (%s)" +msgstr "" + +#: src/gui/sysManager.cpp:98 +msgid "Change##SysChange" +msgstr "" + +#: src/gui/sysManager.cpp:120 +msgid "Are you sure you want to remove this chip?" +msgstr "" + +#: src/gui/patManager.cpp:43 +msgid "Re-arrange patterns" +msgstr "" + +#: src/gui/patManager.cpp:50 +msgid "Sort orders" +msgstr "" + +#: src/gui/patManager.cpp:57 +msgid "Make patterns unique" +msgstr "" + +#: src/gui/patManager.cpp:103 +#, c-format +msgid "" +"Pattern %.2X\n" +"- not allocated" +msgstr "" + +#: src/gui/patManager.cpp:105 +#, c-format +msgid "" +"Pattern %.2X\n" +"- use count: %d (%.0f%%)\n" +"\n" +"right-click to erase" +msgstr "" + +#: src/gui/insEdit.cpp:39 +msgid "Down Down Down" +msgstr "" + +#: src/gui/insEdit.cpp:40 +msgid "Down." +msgstr "" + +#: src/gui/insEdit.cpp:41 +msgid "Down Up Down Up" +msgstr "" + +#: src/gui/insEdit.cpp:42 +msgid "Down UP" +msgstr "" + +#: src/gui/insEdit.cpp:43 +msgid "Up Up Up" +msgstr "" + +#: src/gui/insEdit.cpp:44 +msgid "Up." +msgstr "" + +#: src/gui/insEdit.cpp:45 +msgid "Up Down Up Down" +msgstr "" + +#: src/gui/insEdit.cpp:46 +msgid "Up DOWN" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Algorithm" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Feedback" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO > Freq" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO > Amp" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1920 src/gui/insEdit.cpp:6955 +#: src/gui/insEdit.cpp:7481 +msgid "Attack" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1960 src/gui/insEdit.cpp:6956 +#: src/gui/insEdit.cpp:7482 +msgid "Decay" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Decay 2" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:604 src/gui/insEdit.cpp:1983 +#: src/gui/insEdit.cpp:6958 src/gui/insEdit.cpp:7484 +msgid "Release" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1929 src/gui/insEdit.cpp:6957 +#: src/gui/insEdit.cpp:7483 +msgid "Sustain" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "EnvScale" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Multiplier" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:63 src/gui/insEdit.cpp:75 +msgid "Detune" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Detune 2" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:4146 +msgid "SSG-EG" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "AM" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:5438 src/gui/insEdit.cpp:6516 +msgid "AM Depth" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Vibrato Depth" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Sustained" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Level Scaling" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Vibrato" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Scale Rate" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "OP2 Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "OP1 Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "EnvShift" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Reverb" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Fine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO2 > Freq" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO2 > Amp" +msgstr "" + +#: src/gui/insEdit.cpp:56 src/gui/insEdit.cpp:68 src/gui/insEdit.cpp:7391 +msgid "OP4 Noise Mode" +msgstr "" + +#: src/gui/insEdit.cpp:57 +msgid "Envelope Delay" +msgstr "" + +#: src/gui/insEdit.cpp:58 src/gui/insEdit.cpp:70 +msgid "Output Level" +msgstr "" + +#: src/gui/insEdit.cpp:59 +msgid "Modulation Input Level" +msgstr "" + +#: src/gui/insEdit.cpp:60 +msgid "Left Output" +msgstr "" + +#: src/gui/insEdit.cpp:61 +msgid "Right Output" +msgstr "" + +#: src/gui/insEdit.cpp:62 +msgid "Coarse Tune (semitones)" +msgstr "" + +#: src/gui/insEdit.cpp:64 +msgid "Fixed Frequency Mode" +msgstr "" + +#: src/gui/insEdit.cpp:69 +msgid "Env. Delay" +msgstr "" + +#: src/gui/insEdit.cpp:71 +msgid "ModInput" +msgstr "" + +#: src/gui/insEdit.cpp:72 +msgid "Left" +msgstr "" + +#: src/gui/insEdit.cpp:73 +msgid "Right" +msgstr "" + +#: src/gui/insEdit.cpp:74 +msgid "Tune" +msgstr "" + +#: src/gui/insEdit.cpp:76 src/gui/insEdit.cpp:610 src/gui/insEdit.cpp:3792 +#: src/gui/insEdit.cpp:4554 src/gui/insEdit.cpp:4848 +msgid "Fixed" +msgstr "" + +#: src/gui/insEdit.cpp:98 src/gui/insEdit.cpp:117 src/gui/insEdit.cpp:136 +#: src/gui/insEdit.cpp:156 +msgid "User" +msgstr "" + +#: src/gui/insEdit.cpp:99 +msgid "1. Violin" +msgstr "" + +#: src/gui/insEdit.cpp:100 src/gui/insEdit.cpp:138 src/gui/insEdit.cpp:158 +msgid "2. Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:101 src/gui/insEdit.cpp:159 +msgid "3. Piano" +msgstr "" + +#: src/gui/insEdit.cpp:102 src/gui/insEdit.cpp:160 +msgid "4. Flute" +msgstr "" + +#: src/gui/insEdit.cpp:103 src/gui/insEdit.cpp:122 src/gui/insEdit.cpp:161 +msgid "5. Clarinet" +msgstr "" + +#: src/gui/insEdit.cpp:104 +msgid "6. Oboe" +msgstr "" + +#: src/gui/insEdit.cpp:105 src/gui/insEdit.cpp:124 src/gui/insEdit.cpp:143 +#: src/gui/insEdit.cpp:163 +msgid "7. Trumpet" +msgstr "" + +#: src/gui/insEdit.cpp:106 +msgid "8. Organ" +msgstr "" + +#: src/gui/insEdit.cpp:107 +msgid "9. Horn" +msgstr "" + +#: src/gui/insEdit.cpp:108 +msgid "10. Synth" +msgstr "" + +#: src/gui/insEdit.cpp:109 +msgid "11. Harpsichord" +msgstr "" + +#: src/gui/insEdit.cpp:110 src/gui/insEdit.cpp:129 src/gui/insEdit.cpp:148 +msgid "12. Vibraphone" +msgstr "" + +#: src/gui/insEdit.cpp:111 +msgid "13. Synth Bass" +msgstr "" + +#: src/gui/insEdit.cpp:112 +msgid "14. Acoustic Bass" +msgstr "" + +#: src/gui/insEdit.cpp:113 +msgid "15. Electric Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:114 src/gui/insEdit.cpp:133 src/gui/insEdit.cpp:152 +#: src/gui/insEdit.cpp:172 src/gui/insEdit.cpp:3176 +msgid "Drums" +msgstr "" + +#: src/gui/insEdit.cpp:118 +msgid "1. Electric String" +msgstr "" + +#: src/gui/insEdit.cpp:119 +msgid "2. Bow wow" +msgstr "" + +#: src/gui/insEdit.cpp:120 src/gui/insEdit.cpp:139 +msgid "3. Electric Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:121 +msgid "4. Organ" +msgstr "" + +#: src/gui/insEdit.cpp:123 +msgid "6. Saxophone" +msgstr "" + +#: src/gui/insEdit.cpp:125 +msgid "8. Street Organ" +msgstr "" + +#: src/gui/insEdit.cpp:126 +msgid "9. Synth Brass" +msgstr "" + +#: src/gui/insEdit.cpp:127 +msgid "10. Electric Piano" +msgstr "" + +#: src/gui/insEdit.cpp:128 +msgid "11. Bass" +msgstr "" + +#: src/gui/insEdit.cpp:130 +msgid "13. Chime" +msgstr "" + +#: src/gui/insEdit.cpp:131 +msgid "14. Tom Tom II" +msgstr "" + +#: src/gui/insEdit.cpp:132 +msgid "15. Noise" +msgstr "" + +#: src/gui/insEdit.cpp:137 +msgid "1. Strings" +msgstr "" + +#: src/gui/insEdit.cpp:140 +msgid "4. Electric Piano" +msgstr "" + +#: src/gui/insEdit.cpp:141 +msgid "5. Flute" +msgstr "" + +#: src/gui/insEdit.cpp:142 +msgid "6. Marimba" +msgstr "" + +#: src/gui/insEdit.cpp:144 +msgid "8. Harmonica" +msgstr "" + +#: src/gui/insEdit.cpp:145 +msgid "9. Tuba" +msgstr "" + +#: src/gui/insEdit.cpp:146 +msgid "10. Synth Brass" +msgstr "" + +#: src/gui/insEdit.cpp:147 +msgid "11. Short Saw" +msgstr "" + +#: src/gui/insEdit.cpp:149 +msgid "13. Electric Guitar 2" +msgstr "" + +#: src/gui/insEdit.cpp:150 +msgid "14. Synth Bass" +msgstr "" + +#: src/gui/insEdit.cpp:151 +msgid "15. Sitar" +msgstr "" + +#: src/gui/insEdit.cpp:157 +msgid "1. Bell" +msgstr "" + +#: src/gui/insEdit.cpp:162 +msgid "6. Rattling Bell" +msgstr "" + +#: src/gui/insEdit.cpp:164 +msgid "8. Reed Organ" +msgstr "" + +#: src/gui/insEdit.cpp:165 +msgid "9. Soft Bell" +msgstr "" + +#: src/gui/insEdit.cpp:166 +msgid "10. Xylophone" +msgstr "" + +#: src/gui/insEdit.cpp:167 +msgid "11. Vibraphone" +msgstr "" + +#: src/gui/insEdit.cpp:168 +msgid "12. Brass" +msgstr "" + +#: src/gui/insEdit.cpp:169 +msgid "13. Bass Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:170 +msgid "14. Synth" +msgstr "" + +#: src/gui/insEdit.cpp:171 +msgid "15. Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:178 src/gui/insEdit.cpp:189 +msgid "Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:179 src/gui/insEdit.cpp:190 +msgid "Absolute Sine" +msgstr "" + +#: src/gui/insEdit.cpp:180 +msgid "Quarter Sine" +msgstr "" + +#: src/gui/insEdit.cpp:181 src/gui/insEdit.cpp:203 +msgid "Squished Sine" +msgstr "" + +#: src/gui/insEdit.cpp:182 src/gui/insEdit.cpp:205 +msgid "Squished AbsSine" +msgstr "" + +#: src/gui/insEdit.cpp:184 src/gui/insEdit.cpp:195 +msgid "Derived Square" +msgstr "" + +#: src/gui/insEdit.cpp:191 +msgid "Pulse Sine" +msgstr "" + +#: src/gui/insEdit.cpp:192 +msgid "Sine (Even Periods)" +msgstr "" + +#: src/gui/insEdit.cpp:193 +msgid "AbsSine (Even Periods)" +msgstr "" + +#: src/gui/insEdit.cpp:201 +msgid "Cut Sine" +msgstr "" + +#: src/gui/insEdit.cpp:202 +msgid "Cut Triangle" +msgstr "" + +#: src/gui/insEdit.cpp:204 +msgid "Squished Triangle" +msgstr "" + +#: src/gui/insEdit.cpp:206 +msgid "Squished AbsTriangle" +msgstr "" + +#: src/gui/insEdit.cpp:210 src/gui/insEdit.cpp:218 +msgid "Snare" +msgstr "" + +#: src/gui/insEdit.cpp:211 +msgid "Tom" +msgstr "" + +#: src/gui/insEdit.cpp:212 src/gui/insEdit.cpp:220 src/gui/insEdit.cpp:1909 +#: src/gui/insEdit.cpp:2014 +msgid "Top" +msgstr "" + +#: src/gui/insEdit.cpp:213 src/gui/insEdit.cpp:219 +msgid "HiHat" +msgstr "" + +#: src/gui/insEdit.cpp:224 +msgid "Noise disabled" +msgstr "" + +#: src/gui/insEdit.cpp:225 +msgid "Square + noise" +msgstr "" + +#: src/gui/insEdit.cpp:226 +msgid "Ringmod from OP3 + noise" +msgstr "" + +#: src/gui/insEdit.cpp:227 +msgid "" +"Ringmod from OP3 + double pitch ModInput\n" +"WARNING - has emulation issues; subject to change" +msgstr "" + +#: src/gui/insEdit.cpp:232 +msgid "Bitwise AND" +msgstr "" + +#: src/gui/insEdit.cpp:233 +msgid "Bitwise OR" +msgstr "" + +#: src/gui/insEdit.cpp:234 +msgid "Bitwise XOR" +msgstr "" + +#: src/gui/insEdit.cpp:239 src/gui/insEdit.cpp:390 +msgid "gate" +msgstr "" + +#: src/gui/insEdit.cpp:240 src/gui/insEdit.cpp:391 +msgid "sync" +msgstr "" + +#: src/gui/insEdit.cpp:241 src/gui/insEdit.cpp:392 +msgid "ring" +msgstr "" + +#: src/gui/insEdit.cpp:327 +msgid "How did you even" +msgstr "" + +#: src/gui/insEdit.cpp:335 +msgid "triangle" +msgstr "" + +#: src/gui/insEdit.cpp:336 src/gui/insEdit.cpp:5821 +msgid "saw" +msgstr "" + +#: src/gui/insEdit.cpp:337 src/gui/insEdit.cpp:5827 +msgid "pulse" +msgstr "" + +#: src/gui/insEdit.cpp:338 src/gui/insEdit.cpp:344 src/gui/insEdit.cpp:373 +#: src/gui/insEdit.cpp:424 src/gui/insEdit.cpp:429 src/gui/insEdit.cpp:5833 +msgid "noise" +msgstr "" + +#: src/gui/insEdit.cpp:343 +msgid "tone" +msgstr "" + +#: src/gui/insEdit.cpp:345 +msgid "envelope" +msgstr "" + +#: src/gui/insEdit.cpp:350 +msgid "hold" +msgstr "" + +#: src/gui/insEdit.cpp:351 +msgid "alternate" +msgstr "" + +#: src/gui/insEdit.cpp:352 src/gui/insEdit.cpp:364 +msgid "direction" +msgstr "" + +#: src/gui/insEdit.cpp:353 src/gui/insEdit.cpp:436 +msgid "enable" +msgstr "" + +#: src/gui/insEdit.cpp:357 src/gui/insEdit.cpp:368 +msgid "enabled" +msgstr "" + +#: src/gui/insEdit.cpp:361 +msgid "mirror" +msgstr "" + +#: src/gui/insEdit.cpp:365 +msgid "resolution" +msgstr "" + +#: src/gui/insEdit.cpp:366 +msgid "fixed" +msgstr "" + +#: src/gui/insEdit.cpp:367 +msgid "N/A" +msgstr "" + +#: src/gui/insEdit.cpp:374 +msgid "echo" +msgstr "" + +#: src/gui/insEdit.cpp:375 +msgid "pitch mod" +msgstr "" + +#: src/gui/insEdit.cpp:376 src/gui/insEdit.cpp:508 +msgid "invert right" +msgstr "" + +#: src/gui/insEdit.cpp:377 src/gui/insEdit.cpp:509 +msgid "invert left" +msgstr "" + +#: src/gui/insEdit.cpp:382 src/gui/insEdit.cpp:5905 +msgid "low" +msgstr "" + +#: src/gui/insEdit.cpp:383 src/gui/insEdit.cpp:5911 +msgid "band" +msgstr "" + +#: src/gui/insEdit.cpp:384 src/gui/insEdit.cpp:5917 +msgid "high" +msgstr "" + +#: src/gui/insEdit.cpp:385 src/gui/insEdit.cpp:5924 +msgid "ch3off" +msgstr "" + +#: src/gui/insEdit.cpp:393 +msgid "test" +msgstr "" + +#: src/gui/insEdit.cpp:398 +msgid "15KHz" +msgstr "" + +#: src/gui/insEdit.cpp:399 +msgid "filter 2+4" +msgstr "" + +#: src/gui/insEdit.cpp:400 +msgid "filter 1+3" +msgstr "" + +#: src/gui/insEdit.cpp:401 +msgid "16-bit 3+4" +msgstr "" + +#: src/gui/insEdit.cpp:402 +msgid "16-bit 1+2" +msgstr "" + +#: src/gui/insEdit.cpp:403 +msgid "high3" +msgstr "" + +#: src/gui/insEdit.cpp:404 +msgid "high1" +msgstr "" + +#: src/gui/insEdit.cpp:405 +msgid "poly9" +msgstr "" + +#: src/gui/insEdit.cpp:414 +msgid "16'" +msgstr "" + +#: src/gui/insEdit.cpp:415 +msgid "8'" +msgstr "" + +#: src/gui/insEdit.cpp:416 +msgid "4'" +msgstr "" + +#: src/gui/insEdit.cpp:417 +msgid "2'" +msgstr "" + +#: src/gui/insEdit.cpp:418 +msgid "sustain" +msgstr "" + +#: src/gui/insEdit.cpp:423 +msgid "square" +msgstr "" + +#: src/gui/insEdit.cpp:431 +msgid "surround" +msgstr "" + +#: src/gui/insEdit.cpp:437 +msgid "oneshot" +msgstr "" + +#: src/gui/insEdit.cpp:438 +msgid "split L/R" +msgstr "" + +#: src/gui/insEdit.cpp:439 +msgid "HinvR" +msgstr "" + +#: src/gui/insEdit.cpp:440 +msgid "VinvR" +msgstr "" + +#: src/gui/insEdit.cpp:441 +msgid "HinvL" +msgstr "" + +#: src/gui/insEdit.cpp:442 +msgid "VinvL" +msgstr "" + +#: src/gui/insEdit.cpp:447 src/gui/insEdit.cpp:476 +msgid "ring mod" +msgstr "" + +#: src/gui/insEdit.cpp:448 +msgid "low pass" +msgstr "" + +#: src/gui/insEdit.cpp:449 src/gui/insEdit.cpp:475 +msgid "high pass" +msgstr "" + +#: src/gui/insEdit.cpp:450 +msgid "band pass" +msgstr "" + +#: src/gui/insEdit.cpp:459 +msgid "enable tap B" +msgstr "" + +#: src/gui/insEdit.cpp:460 +msgid "AM with slope" +msgstr "" + +#: src/gui/insEdit.cpp:465 +msgid "invert B" +msgstr "" + +#: src/gui/insEdit.cpp:466 +msgid "invert A" +msgstr "" + +#: src/gui/insEdit.cpp:467 +msgid "reset B" +msgstr "" + +#: src/gui/insEdit.cpp:468 +msgid "reset A" +msgstr "" + +#: src/gui/insEdit.cpp:469 +msgid "clip B" +msgstr "" + +#: src/gui/insEdit.cpp:470 +msgid "clip A" +msgstr "" + +#: src/gui/insEdit.cpp:477 +msgid "swap counters (noise)" +msgstr "" + +#: src/gui/insEdit.cpp:478 +msgid "low pass (noise)" +msgstr "" + +#: src/gui/insEdit.cpp:485 +msgid "rear right" +msgstr "" + +#: src/gui/insEdit.cpp:486 +msgid "rear left" +msgstr "" + +#: src/gui/insEdit.cpp:491 +msgid "on" +msgstr "" + +#: src/gui/insEdit.cpp:496 +msgid "k1 slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:497 +msgid "k2 slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:502 +msgid "pause" +msgstr "" + +#: src/gui/insEdit.cpp:503 +msgid "reverse" +msgstr "" + +#: src/gui/insEdit.cpp:521 +msgid "Subtract" +msgstr "" + +#: src/gui/insEdit.cpp:522 +msgid "Average" +msgstr "" + +#: src/gui/insEdit.cpp:523 src/gui/insEdit.cpp:2037 +msgid "Phase" +msgstr "" + +#: src/gui/insEdit.cpp:524 +msgid "Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:528 +msgid "None (dual)" +msgstr "" + +#: src/gui/insEdit.cpp:529 +msgid "Wipe" +msgstr "" + +#: src/gui/insEdit.cpp:531 +msgid "Fade (ping-pong)" +msgstr "" + +#: src/gui/insEdit.cpp:532 +msgid "Overlay" +msgstr "" + +#: src/gui/insEdit.cpp:533 +msgid "Negative Overlay" +msgstr "" + +#: src/gui/insEdit.cpp:534 +msgid "Slide" +msgstr "" + +#: src/gui/insEdit.cpp:535 +msgid "Mix Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:536 +msgid "Phase Modulation" +msgstr "" + +#: src/gui/insEdit.cpp:540 src/gui/insEdit.cpp:3547 src/gui/insEdit.cpp:3548 +#: src/gui/insEdit.cpp:4081 src/gui/insEdit.cpp:4151 src/gui/insEdit.cpp:4790 +#: src/gui/insEdit.cpp:5861 src/gui/insEdit.cpp:5862 src/gui/insEdit.cpp:6487 +#: src/gui/insEdit.cpp:6488 src/gui/insEdit.cpp:6555 src/gui/insEdit.cpp:6556 +#: src/gui/insEdit.cpp:6995 src/gui/insEdit.cpp:7009 src/gui/insEdit.cpp:7029 +#: src/gui/insEdit.cpp:7166 +#, c-format +msgid "Envelope" +msgstr "" + +#: src/gui/insEdit.cpp:541 +msgid "Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:542 src/gui/insEdit.cpp:552 +msgid "Wait" +msgstr "" + +#: src/gui/insEdit.cpp:543 src/gui/insEdit.cpp:553 +msgid "Wait for Release" +msgstr "" + +#: src/gui/insEdit.cpp:545 src/gui/insEdit.cpp:555 +msgid "Loop until Release" +msgstr "" + +#: src/gui/insEdit.cpp:549 +msgid "Volume Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:550 +msgid "Frequency Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:551 +msgid "Cutoff Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:559 src/gui/insEdit.cpp:6604 +msgid "Direct" +msgstr "" + +#: src/gui/insEdit.cpp:560 src/gui/insEdit.cpp:6608 +msgid "Decrease (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:561 src/gui/insEdit.cpp:6612 +msgid "Decrease (logarithmic)" +msgstr "" + +#: src/gui/insEdit.cpp:562 src/gui/insEdit.cpp:6616 +msgid "Increase (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:563 src/gui/insEdit.cpp:6620 +msgid "Increase (bent line)" +msgstr "" + +#: src/gui/insEdit.cpp:611 +msgid "Relative" +msgstr "" + +#: src/gui/insEdit.cpp:616 +#, c-format +msgid "%d: +%d (exponential)" +msgstr "" + +#: src/gui/insEdit.cpp:619 +#, c-format +msgid "%d: +%d (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:622 +#, c-format +msgid "%d: -%d (exponential)" +msgstr "" + +#: src/gui/insEdit.cpp:625 +#, c-format +msgid "%d: -%d (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:627 +#, c-format +msgid "%d: %d (direct)" +msgstr "" + +#: src/gui/insEdit.cpp:660 +msgid "Random" +msgstr "" + +#: src/gui/insEdit.cpp:1610 +msgid "" +"left click to restart\n" +"middle click to pause\n" +"right click to see algorithm" +msgstr "" + +#: src/gui/insEdit.cpp:1620 +msgid "" +"left click to configure TL scaling\n" +"right click to see FM preview" +msgstr "" + +#: src/gui/insEdit.cpp:1624 +msgid "right click to see FM preview" +msgstr "" + +#: src/gui/insEdit.cpp:1639 +msgid "operator level changes with volume?" +msgstr "" + +#: src/gui/insEdit.cpp:1648 +msgid "AUTO##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1650 +msgid "NO##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1652 +msgid "YES##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1900 src/gui/insEdit.cpp:2005 +msgid "Bottom" +msgstr "" + +#: src/gui/insEdit.cpp:1940 +msgid "Hold" +msgstr "" + +#: src/gui/insEdit.cpp:1949 +msgid "SusTime" +msgstr "" + +#: src/gui/insEdit.cpp:1969 +msgid "SusDecay" +msgstr "" + +#: src/gui/insEdit.cpp:2047 +msgid "Shape" +msgstr "" + +#: src/gui/insEdit.cpp:2100 +msgid "Macro type: Sequence" +msgstr "" + +#: src/gui/insEdit.cpp:2103 +msgid "Macro type: ADSR" +msgstr "" + +#: src/gui/insEdit.cpp:2106 +msgid "Macro type: LFO" +msgstr "" + +#: src/gui/insEdit.cpp:2109 +msgid "Macro type: What's going on here?" +msgstr "" + +#: src/gui/insEdit.cpp:2122 +msgid "Delay/Step Length" +msgstr "" + +#: src/gui/insEdit.cpp:2125 +msgid "Step Length (ticks)##IMacroSpeed" +msgstr "" + +#: src/gui/insEdit.cpp:2129 +msgid "Delay##IMacroDelay" +msgstr "" + +#: src/gui/insEdit.cpp:2142 +msgid "Release mode: Active (jump to release pos)" +msgstr "" + +#: src/gui/insEdit.cpp:2144 +msgid "Release mode: Passive (delayed release)" +msgstr "" + +#: src/gui/insEdit.cpp:2284 src/gui/insEdit.cpp:2382 src/gui/insEdit.cpp:5582 +#: src/gui/insEdit.cpp:6241 +msgid "Length" +msgstr "" + +#: src/gui/insEdit.cpp:2393 +msgid "StepLen" +msgstr "" + +#: src/gui/insEdit.cpp:2401 +msgid "Delay" +msgstr "" + +#: src/gui/insEdit.cpp:2425 +msgid "The heck? No, this isn't even working correctly..." +msgstr "" + +#: src/gui/insEdit.cpp:2428 +msgid "The only problem with that selectedMacro is that it's a bug..." +msgstr "" + +#: src/gui/insEdit.cpp:2589 +msgid "(copying)" +msgstr "" + +#: src/gui/insEdit.cpp:2591 +msgid "(swapping)" +msgstr "" + +#: src/gui/insEdit.cpp:2595 +msgid "" +"- drag to swap operator\n" +"- shift-drag to copy operator" +msgstr "" + +#: src/gui/insEdit.cpp:2629 +msgid "DPCM" +msgstr "" + +#: src/gui/insEdit.cpp:2632 +msgid "new DPCM features disabled (compatibility)!" +msgstr "" + +#: src/gui/insEdit.cpp:2633 +msgid "click here to enable them." +msgstr "" + +#: src/gui/insEdit.cpp:2644 +msgid "none selected" +msgstr "" + +#: src/gui/insEdit.cpp:2657 +msgid "Use sample" +msgstr "" + +#: src/gui/insEdit.cpp:2659 +msgid "Sample bank slot##BANKSLOT" +msgstr "" + +#: src/gui/insEdit.cpp:2681 +msgid "Use wavetable (Amiga/Generic DAC only)" +msgstr "" + +#: src/gui/insEdit.cpp:2681 +msgid "Use wavetable" +msgstr "" + +#: src/gui/insEdit.cpp:2708 +msgid "Use sample map" +msgstr "" + +#: src/gui/insEdit.cpp:2730 +msgid "delta" +msgstr "" + +#: src/gui/insEdit.cpp:2736 +msgid "sample name" +msgstr "" + +#: src/gui/insEdit.cpp:3001 +msgid "set entire map to this pitch" +msgstr "" + +#: src/gui/insEdit.cpp:3009 +msgid "set entire map to this delta counter value" +msgstr "" + +#: src/gui/insEdit.cpp:3018 +msgid "set entire map to this note" +msgstr "" + +#: src/gui/insEdit.cpp:3027 +msgid "set entire map to this sample" +msgstr "" + +#: src/gui/insEdit.cpp:3037 +msgid "reset pitches" +msgstr "" + +#: src/gui/insEdit.cpp:3042 +msgid "clear delta counter values" +msgstr "" + +#: src/gui/insEdit.cpp:3048 +msgid "reset notes" +msgstr "" + +#: src/gui/insEdit.cpp:3054 +msgid "clear map samples" +msgstr "" + +#: src/gui/insEdit.cpp:3148 +msgid "Request from TX81Z" +msgstr "" + +#: src/gui/insEdit.cpp:3234 +#, c-format +msgid "%s name" +msgstr "" + +#: src/gui/insEdit.cpp:3286 +msgid "Fixed frequency mode" +msgstr "" + +#: src/gui/insEdit.cpp:3288 +msgid "" +"when enabled, drums will be set to the specified frequencies, ignoring the " +"note." +msgstr "" + +#: src/gui/insEdit.cpp:3296 +msgid "Drum" +msgstr "" + +#: src/gui/insEdit.cpp:3298 src/gui/insEdit.cpp:3798 src/gui/insEdit.cpp:3904 +#: src/gui/insEdit.cpp:4404 src/gui/insEdit.cpp:4468 src/gui/insEdit.cpp:5068 +#: src/gui/insEdit.cpp:5518 +msgid "Block" +msgstr "" + +#: src/gui/insEdit.cpp:3300 src/gui/insEdit.cpp:3803 src/gui/insEdit.cpp:3909 +#: src/gui/insEdit.cpp:4993 src/gui/insEdit.cpp:5079 src/gui/insEdit.cpp:5519 +msgid "FreqNum" +msgstr "" + +#: src/gui/insEdit.cpp:3302 src/gui/insEdit.cpp:3624 +msgid "Kick" +msgstr "" + +#: src/gui/insEdit.cpp:3303 +msgid "Snare/Hi-hat" +msgstr "" + +#: src/gui/insEdit.cpp:3304 +msgid "Tom/Top" +msgstr "" + +#: src/gui/insEdit.cpp:3314 +msgid "Volume##TL" +msgstr "" + +#: src/gui/insEdit.cpp:3316 +msgid "this volume slider only works in compatibility (non-drums) system." +msgstr "" + +#: src/gui/insEdit.cpp:3626 +msgid "Env" +msgstr "" + +#: src/gui/insEdit.cpp:3980 src/gui/insEdit.cpp:4346 src/gui/insEdit.cpp:4396 +#: src/gui/insEdit.cpp:5104 +msgid "OPL2/3 only (last 4 waveforms are OPL3 only)" +msgstr "" + +#: src/gui/insEdit.cpp:4079 src/gui/insEdit.cpp:4788 +#, c-format +msgid "Envelope 2 (kick only)" +msgstr "" + +#: src/gui/insEdit.cpp:4084 +#, c-format +msgid "Operator %d" +msgstr "" + +#: src/gui/insEdit.cpp:4414 +msgid "Freq" +msgstr "" + +#: src/gui/insEdit.cpp:4443 +msgid "Only on YM2151 (OPM)" +msgstr "" + +#: src/gui/insEdit.cpp:4466 +msgid "Blk" +msgstr "" + +#: src/gui/insEdit.cpp:4479 +msgid "F" +msgstr "" + +#: src/gui/insEdit.cpp:4481 +msgid "Frequency (F-Num)" +msgstr "" + +#: src/gui/insEdit.cpp:4833 +msgid "SSG On" +msgstr "" + +#: src/gui/insEdit.cpp:5206 src/gui/insEdit.cpp:5207 +msgid "waiting..." +msgstr "" + +#: src/gui/insEdit.cpp:5210 src/gui/insEdit.cpp:5211 +msgid "no instrument selected" +msgstr "" + +#: src/gui/insEdit.cpp:5393 +msgid "" +"none of the currently present chips are able to play this instrument type!" +msgstr "" + +#: src/gui/insEdit.cpp:5413 +msgid "FM Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5435 src/gui/insEdit.cpp:5440 +msgid "LFO Speed" +msgstr "" + +#: src/gui/insEdit.cpp:5439 src/gui/insEdit.cpp:6514 +msgid "PM Depth" +msgstr "" + +#: src/gui/insEdit.cpp:5441 +msgid "LFO Shape" +msgstr "" + +#: src/gui/insEdit.cpp:5444 +msgid "OpMask" +msgstr "" + +#: src/gui/insEdit.cpp:5446 +msgid "AM Depth 2" +msgstr "" + +#: src/gui/insEdit.cpp:5447 +msgid "PM Depth 2" +msgstr "" + +#: src/gui/insEdit.cpp:5448 +msgid "LFO2 Speed" +msgstr "" + +#: src/gui/insEdit.cpp:5449 +msgid "LFO2 Shape" +msgstr "" + +#: src/gui/insEdit.cpp:5458 +#, c-format +msgid "Operator Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5460 +#, c-format +msgid "OP%d Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5521 +msgid "Op. Arpeggio" +msgstr "" + +#: src/gui/insEdit.cpp:5522 +msgid "Op. Pitch" +msgstr "" + +#: src/gui/insEdit.cpp:5531 +msgid "Op. Panning" +msgstr "" + +#: src/gui/insEdit.cpp:5558 +msgid "Use software envelope" +msgstr "" + +#: src/gui/insEdit.cpp:5559 +msgid "Initialize envelope on every note" +msgstr "" + +#: src/gui/insEdit.cpp:5560 +msgid "Double wave length (GBA only)" +msgstr "" + +#: src/gui/insEdit.cpp:5589 src/gui/insEdit.cpp:5666 +msgid "Sound Length" +msgstr "" + +#: src/gui/insEdit.cpp:5592 src/gui/insEdit.cpp:5666 +msgid "Infinity" +msgstr "" + +#: src/gui/insEdit.cpp:5596 +msgid "Direction" +msgstr "" + +#: src/gui/insEdit.cpp:5599 src/gui/insEdit.cpp:5669 src/gui/insEdit.cpp:5697 +#: src/gui/insEdit.cpp:6008 src/gui/insEdit.cpp:6051 +msgid "Up" +msgstr "" + +#: src/gui/insEdit.cpp:5604 src/gui/insEdit.cpp:5674 src/gui/insEdit.cpp:5702 +#: src/gui/insEdit.cpp:6013 src/gui/insEdit.cpp:6056 +msgid "Down" +msgstr "" + +#: src/gui/insEdit.cpp:5620 src/gui/insEdit.cpp:5953 +msgid "Hardware Sequence" +msgstr "" + +#: src/gui/insEdit.cpp:5630 src/gui/insEdit.cpp:5963 +msgid "Tick" +msgstr "" + +#: src/gui/insEdit.cpp:5632 src/gui/insEdit.cpp:5965 +msgid "Command" +msgstr "" + +#: src/gui/insEdit.cpp:5634 src/gui/insEdit.cpp:5967 +msgid "Move/Remove" +msgstr "" + +#: src/gui/insEdit.cpp:5663 +msgid "Env Length" +msgstr "" + +#: src/gui/insEdit.cpp:5690 +msgid "Shift" +msgstr "" + +#: src/gui/insEdit.cpp:5717 src/gui/insEdit.cpp:6073 +msgid "Ticks" +msgstr "" + +#: src/gui/insEdit.cpp:5736 src/gui/insEdit.cpp:6092 src/gui/insEdit.cpp:6239 +msgid "Position" +msgstr "" + +#: src/gui/insEdit.cpp:5815 +msgid "tri" +msgstr "" + +#: src/gui/insEdit.cpp:5882 +msgid "Ring Modulation" +msgstr "" + +#: src/gui/insEdit.cpp:5886 +msgid "Oscillator Sync" +msgstr "" + +#: src/gui/insEdit.cpp:5890 +msgid "Enable filter" +msgstr "" + +#: src/gui/insEdit.cpp:5891 +msgid "Initialize filter" +msgstr "" + +#: src/gui/insEdit.cpp:5894 src/gui/insEdit.cpp:5897 src/gui/insEdit.cpp:6951 +#: src/gui/insEdit.cpp:7215 src/gui/insEdit.cpp:7476 +msgid "Cutoff" +msgstr "" + +#: src/gui/insEdit.cpp:5902 src/gui/insEdit.cpp:6408 src/gui/insEdit.cpp:6952 +#: src/gui/insEdit.cpp:7179 src/gui/insEdit.cpp:7477 +msgid "Filter Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5931 src/gui/insEdit.cpp:7485 +msgid "Noise Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5932 +msgid "Wave Mix Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5935 +msgid "Absolute Cutoff Macro" +msgstr "" + +#: src/gui/insEdit.cpp:5939 +msgid "Absolute Duty Macro" +msgstr "" + +#: src/gui/insEdit.cpp:5945 +msgid "Don't test before new note" +msgstr "" + +#: src/gui/insEdit.cpp:5950 +msgid "Switch roles of frequency and phase reset timer" +msgstr "" + +#: src/gui/insEdit.cpp:5997 src/gui/insEdit.cpp:6040 +msgid "Period" +msgstr "" + +#: src/gui/insEdit.cpp:6002 src/gui/insEdit.cpp:6045 src/gui/insEdit.cpp:6892 +msgid "Amount" +msgstr "" + +#: src/gui/insEdit.cpp:6005 src/gui/insEdit.cpp:6048 +msgid "Bound" +msgstr "" + +#: src/gui/insEdit.cpp:6021 +msgid "Flip" +msgstr "" + +#: src/gui/insEdit.cpp:6210 +msgid "Load waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6215 +msgid "" +"when enabled, a waveform will be loaded into RAM.\n" +"when disabled, only the offset and length change." +msgstr "" + +#: src/gui/insEdit.cpp:6219 +msgid "Waveform##WAVE" +msgstr "" + +#: src/gui/insEdit.cpp:6227 +msgid "Per-channel wave position/length" +msgstr "" + +#: src/gui/insEdit.cpp:6237 +msgid "Ch" +msgstr "" + +#: src/gui/insEdit.cpp:6286 +msgid "Compatibility mode" +msgstr "" + +#: src/gui/insEdit.cpp:6288 +msgid "" +"only use for compatibility with .dmf modules!\n" +"- initializes modulation table with first wavetable\n" +"- does not alter modulation parameters on instrument change" +msgstr "" + +#: src/gui/insEdit.cpp:6290 +msgid "Modulation depth" +msgstr "" + +#: src/gui/insEdit.cpp:6294 +msgid "Modulation speed" +msgstr "" + +#: src/gui/insEdit.cpp:6298 +msgid "Modulation table" +msgstr "" + +#: src/gui/insEdit.cpp:6347 +msgid "Set modulation table (channel 5 only)" +msgstr "" + +#: src/gui/insEdit.cpp:6411 src/gui/insEdit.cpp:7184 +msgid "Filter K1" +msgstr "" + +#: src/gui/insEdit.cpp:6413 src/gui/insEdit.cpp:7185 +msgid "Filter K2" +msgstr "" + +#: src/gui/insEdit.cpp:6417 +msgid "Envelope length" +msgstr "" + +#: src/gui/insEdit.cpp:6420 +msgid "Left Volume Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6422 +msgid "Right Volume Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6425 +msgid "Filter K1 Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6427 +msgid "Filter K2 Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6430 +msgid "K1 Ramp Slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:6432 +msgid "K2 Ramp Slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:6454 +msgid "Attack Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6460 +msgid "Decay 1 Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6466 +msgid "Decay Level" +msgstr "" + +#: src/gui/insEdit.cpp:6472 +msgid "Decay 2 Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6478 +msgid "Release Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6484 +msgid "Rate Correction" +msgstr "" + +#: src/gui/insEdit.cpp:6512 +msgid "LFO Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6523 +msgid "Use envelope" +msgstr "" + +#: src/gui/insEdit.cpp:6576 +msgid "Sustain/release mode:" +msgstr "" + +#: src/gui/insEdit.cpp:6577 +msgid "Direct (cut on release)" +msgstr "" + +#: src/gui/insEdit.cpp:6580 +msgid "Effective (linear decrease)" +msgstr "" + +#: src/gui/insEdit.cpp:6583 +msgid "Effective (exponential decrease)" +msgstr "" + +#: src/gui/insEdit.cpp:6586 +msgid "Delayed (write R on release)" +msgstr "" + +#: src/gui/insEdit.cpp:6596 src/gui/insEdit.cpp:6597 +msgid "Gain Mode" +msgstr "" + +#: src/gui/insEdit.cpp:6599 src/gui/insEdit.cpp:6600 src/gui/insEdit.cpp:7205 +msgid "Gain" +msgstr "" + +#: src/gui/insEdit.cpp:6633 +msgid "" +"using decrease modes will not produce any sound at all, unless you know what " +"you are doing.\n" +"it is recommended to use the Gain macro for decrease instead." +msgstr "" + +#: src/gui/insEdit.cpp:6703 +msgid "Enable synthesizer" +msgstr "" + +#: src/gui/insEdit.cpp:6721 +msgid "Single-waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6730 +msgid "Dual-waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6803 src/gui/insEdit.cpp:6812 +msgid "Wave 1" +msgstr "" + +#: src/gui/insEdit.cpp:6808 src/gui/insEdit.cpp:6823 +msgid "" +"waveform macro is controlling wave 1!\n" +"this value will be ineffective." +msgstr "" + +#: src/gui/insEdit.cpp:6829 +msgid "Wave 2" +msgstr "" + +#: src/gui/insEdit.cpp:6844 +msgid "Resume preview" +msgstr "" + +#: src/gui/insEdit.cpp:6846 +msgid "Pause preview" +msgstr "" + +#: src/gui/insEdit.cpp:6854 +msgid "Restart preview" +msgstr "" + +#: src/gui/insEdit.cpp:6874 +msgid "Copy to new wavetable" +msgstr "" + +#: src/gui/insEdit.cpp:6881 +msgid "Update Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6902 +msgid "Global" +msgstr "" + +#: src/gui/insEdit.cpp:6906 +msgid "" +"wavetable synthesizer disabled.\n" +"use the Waveform macro to set the wave for this instrument." +msgstr "" + +#: src/gui/insEdit.cpp:6912 +msgid "Macros" +msgstr "" + +#: src/gui/insEdit.cpp:6921 src/gui/insEdit.cpp:6929 src/gui/insEdit.cpp:6938 +#: src/gui/insEdit.cpp:6947 src/gui/insEdit.cpp:6962 src/gui/insEdit.cpp:6976 +#: src/gui/insEdit.cpp:6988 src/gui/insEdit.cpp:7001 src/gui/insEdit.cpp:7017 +#: src/gui/insEdit.cpp:7023 src/gui/insEdit.cpp:7033 src/gui/insEdit.cpp:7040 +#: src/gui/insEdit.cpp:7046 src/gui/insEdit.cpp:7059 src/gui/insEdit.cpp:7066 +#: src/gui/insEdit.cpp:7073 src/gui/insEdit.cpp:7082 src/gui/insEdit.cpp:7092 +#: src/gui/insEdit.cpp:7100 src/gui/insEdit.cpp:7106 src/gui/insEdit.cpp:7114 +#: src/gui/insEdit.cpp:7121 src/gui/insEdit.cpp:7127 src/gui/insEdit.cpp:7137 +#: src/gui/insEdit.cpp:7149 src/gui/insEdit.cpp:7157 src/gui/insEdit.cpp:7173 +#: src/gui/insEdit.cpp:7178 src/gui/insEdit.cpp:7191 src/gui/insEdit.cpp:7198 +#: src/gui/insEdit.cpp:7209 src/gui/insEdit.cpp:7222 src/gui/insEdit.cpp:7231 +#: src/gui/insEdit.cpp:7238 src/gui/insEdit.cpp:7246 src/gui/insEdit.cpp:7270 +#: src/gui/insEdit.cpp:7277 src/gui/insEdit.cpp:7285 src/gui/insEdit.cpp:7296 +#: src/gui/insEdit.cpp:7303 src/gui/insEdit.cpp:7311 src/gui/insEdit.cpp:7319 +#: src/gui/insEdit.cpp:7328 src/gui/insEdit.cpp:7336 src/gui/insEdit.cpp:7342 +#: src/gui/insEdit.cpp:7348 src/gui/insEdit.cpp:7354 src/gui/insEdit.cpp:7359 +#: src/gui/insEdit.cpp:7366 src/gui/insEdit.cpp:7373 src/gui/insEdit.cpp:7381 +#: src/gui/insEdit.cpp:7390 src/gui/insEdit.cpp:7398 src/gui/insEdit.cpp:7410 +#: src/gui/insEdit.cpp:7423 src/gui/insEdit.cpp:7434 src/gui/insEdit.cpp:7444 +#: src/gui/insEdit.cpp:7452 src/gui/insEdit.cpp:7462 src/gui/insEdit.cpp:7471 +msgid "Arpeggio" +msgstr "" + +#: src/gui/insEdit.cpp:6925 src/gui/insEdit.cpp:6932 src/gui/insEdit.cpp:6943 +#: src/gui/insEdit.cpp:6972 src/gui/insEdit.cpp:6984 src/gui/insEdit.cpp:6994 +#: src/gui/insEdit.cpp:7007 src/gui/insEdit.cpp:7054 src/gui/insEdit.cpp:7062 +#: src/gui/insEdit.cpp:7069 src/gui/insEdit.cpp:7088 src/gui/insEdit.cpp:7110 +#: src/gui/insEdit.cpp:7133 src/gui/insEdit.cpp:7144 src/gui/insEdit.cpp:7163 +#: src/gui/insEdit.cpp:7183 src/gui/insEdit.cpp:7194 src/gui/insEdit.cpp:7214 +#: src/gui/insEdit.cpp:7234 src/gui/insEdit.cpp:7242 src/gui/insEdit.cpp:7249 +#: src/gui/insEdit.cpp:7254 src/gui/insEdit.cpp:7260 src/gui/insEdit.cpp:7266 +#: src/gui/insEdit.cpp:7273 src/gui/insEdit.cpp:7281 src/gui/insEdit.cpp:7290 +#: src/gui/insEdit.cpp:7299 src/gui/insEdit.cpp:7307 src/gui/insEdit.cpp:7324 +#: src/gui/insEdit.cpp:7332 src/gui/insEdit.cpp:7338 src/gui/insEdit.cpp:7362 +#: src/gui/insEdit.cpp:7369 src/gui/insEdit.cpp:7377 src/gui/insEdit.cpp:7386 +#: src/gui/insEdit.cpp:7394 src/gui/insEdit.cpp:7402 src/gui/insEdit.cpp:7414 +#: src/gui/insEdit.cpp:7429 src/gui/insEdit.cpp:7440 src/gui/insEdit.cpp:7448 +#: src/gui/insEdit.cpp:7457 src/gui/insEdit.cpp:7475 +msgid "Phase Reset" +msgstr "" + +#: src/gui/insEdit.cpp:6939 src/gui/insEdit.cpp:7024 src/gui/insEdit.cpp:7210 +#: src/gui/insEdit.cpp:7247 +msgid "Duty/Noise" +msgstr "" + +#: src/gui/insEdit.cpp:6966 src/gui/insEdit.cpp:7288 +msgid "Surround" +msgstr "" + +#: src/gui/insEdit.cpp:6968 src/gui/insEdit.cpp:6981 src/gui/insEdit.cpp:7026 +#: src/gui/insEdit.cpp:7085 src/gui/insEdit.cpp:7141 src/gui/insEdit.cpp:7159 +#: src/gui/insEdit.cpp:7180 src/gui/insEdit.cpp:7201 src/gui/insEdit.cpp:7225 +#: src/gui/insEdit.cpp:7278 src/gui/insEdit.cpp:7304 src/gui/insEdit.cpp:7321 +#: src/gui/insEdit.cpp:7329 src/gui/insEdit.cpp:7374 src/gui/insEdit.cpp:7383 +#: src/gui/insEdit.cpp:7399 src/gui/insEdit.cpp:7411 src/gui/insEdit.cpp:7426 +#: src/gui/insEdit.cpp:7454 src/gui/insEdit.cpp:7464 +msgid "Panning (left)" +msgstr "" + +#: src/gui/insEdit.cpp:6969 src/gui/insEdit.cpp:6982 src/gui/insEdit.cpp:7027 +#: src/gui/insEdit.cpp:7086 src/gui/insEdit.cpp:7142 src/gui/insEdit.cpp:7160 +#: src/gui/insEdit.cpp:7181 src/gui/insEdit.cpp:7202 src/gui/insEdit.cpp:7226 +#: src/gui/insEdit.cpp:7279 src/gui/insEdit.cpp:7305 src/gui/insEdit.cpp:7322 +#: src/gui/insEdit.cpp:7330 src/gui/insEdit.cpp:7375 src/gui/insEdit.cpp:7384 +#: src/gui/insEdit.cpp:7400 src/gui/insEdit.cpp:7412 src/gui/insEdit.cpp:7427 +#: src/gui/insEdit.cpp:7455 src/gui/insEdit.cpp:7465 +msgid "Panning (right)" +msgstr "" + +#: src/gui/insEdit.cpp:6978 src/gui/insEdit.cpp:7129 src/gui/insEdit.cpp:7223 +#: src/gui/insEdit.cpp:7315 +msgid "Noise" +msgstr "" + +#: src/gui/insEdit.cpp:6990 src/gui/insEdit.cpp:7003 src/gui/insEdit.cpp:7107 +#: src/gui/insEdit.cpp:7199 src/gui/insEdit.cpp:7239 src/gui/insEdit.cpp:7424 +msgid "Noise Freq" +msgstr "" + +#: src/gui/insEdit.cpp:6996 src/gui/insEdit.cpp:7010 src/gui/insEdit.cpp:7167 +msgid "AutoEnv Num" +msgstr "" + +#: src/gui/insEdit.cpp:6997 src/gui/insEdit.cpp:7011 src/gui/insEdit.cpp:7168 +msgid "AutoEnv Den" +msgstr "" + +#: src/gui/insEdit.cpp:7012 +msgid "Noise AND Mask" +msgstr "" + +#: src/gui/insEdit.cpp:7013 +msgid "Noise OR Mask" +msgstr "" + +#: src/gui/insEdit.cpp:7034 +msgid "On/Off" +msgstr "" + +#: src/gui/insEdit.cpp:7060 +msgid "Patch" +msgstr "" + +#: src/gui/insEdit.cpp:7076 +msgid "Mod Depth" +msgstr "" + +#: src/gui/insEdit.cpp:7077 +msgid "Mod Speed" +msgstr "" + +#: src/gui/insEdit.cpp:7078 +msgid "Mod Position" +msgstr "" + +#: src/gui/insEdit.cpp:7083 +msgid "Noise Length" +msgstr "" + +#: src/gui/insEdit.cpp:7093 +msgid "Wave Pos" +msgstr "" + +#: src/gui/insEdit.cpp:7096 +msgid "Wave Length" +msgstr "" + +#: src/gui/insEdit.cpp:7115 +msgid "AUDCTL" +msgstr "" + +#: src/gui/insEdit.cpp:7122 src/gui/insEdit.cpp:7343 +msgid "Pulse Width" +msgstr "" + +#: src/gui/insEdit.cpp:7139 +msgid "Duty/Int" +msgstr "" + +#: src/gui/insEdit.cpp:7145 src/gui/insEdit.cpp:7406 +msgid "Load LFSR" +msgstr "" + +#: src/gui/insEdit.cpp:7165 +msgid "Envelope Mode" +msgstr "" + +#: src/gui/insEdit.cpp:7186 +msgid "Outputs" +msgstr "" + +#: src/gui/insEdit.cpp:7187 src/gui/insEdit.cpp:7217 src/gui/insEdit.cpp:7382 +#: src/gui/insEdit.cpp:7403 src/gui/insEdit.cpp:7415 src/gui/insEdit.cpp:7430 +msgid "Control" +msgstr "" + +#: src/gui/insEdit.cpp:7218 +msgid "Phase Reset Timer" +msgstr "" + +#: src/gui/insEdit.cpp:7252 src/gui/insEdit.cpp:7259 +msgid "Freq Divider" +msgstr "" + +#: src/gui/insEdit.cpp:7255 +msgid "Clock Divider" +msgstr "" + +#: src/gui/insEdit.cpp:7264 +msgid "Global Volume" +msgstr "" + +#: src/gui/insEdit.cpp:7286 +msgid "Echo Level" +msgstr "" + +#: src/gui/insEdit.cpp:7291 +msgid "Echo Feedback" +msgstr "" + +#: src/gui/insEdit.cpp:7292 +msgid "Echo Length" +msgstr "" + +#: src/gui/insEdit.cpp:7312 +msgid "Group Ctrl" +msgstr "" + +#: src/gui/insEdit.cpp:7313 +msgid "Group Attack" +msgstr "" + +#: src/gui/insEdit.cpp:7314 +msgid "Group Decay" +msgstr "" + +#: src/gui/insEdit.cpp:7320 +msgid "Noise Type" +msgstr "" + +#: src/gui/insEdit.cpp:7367 +msgid "Square/Noise" +msgstr "" + +#: src/gui/insEdit.cpp:7404 +msgid "Tap A Location" +msgstr "" + +#: src/gui/insEdit.cpp:7405 +msgid "Tap B Location" +msgstr "" + +#: src/gui/insEdit.cpp:7416 +msgid "Portion A Length" +msgstr "" + +#: src/gui/insEdit.cpp:7417 +msgid "Portion B Length" +msgstr "" + +#: src/gui/insEdit.cpp:7418 +msgid "Portion A Offset" +msgstr "" + +#: src/gui/insEdit.cpp:7419 +msgid "Portion B Offset" +msgstr "" + +#: src/gui/insEdit.cpp:7463 +msgid "Parameter" +msgstr "" + +#: src/gui/insEdit.cpp:7467 +msgid "Load Value" +msgstr "" + +#: src/gui/insEdit.cpp:7479 +msgid "Filter Toggle" +msgstr "" + +#: src/gui/insEdit.cpp:7486 +msgid "Wave Mix" +msgstr "" + +#: src/gui/insEdit.cpp:7500 +msgid "Octave offset" +msgstr "" + +#: src/gui/insEdit.cpp:7505 +msgid "go to Macros for other parameters." +msgstr "" + +#: src/gui/insEdit.cpp:7521 +msgid "invalid instrument type! change it first." +msgstr "" + +#: src/gui/insEdit.cpp:7565 +msgid "clear contents" +msgstr "" + +#: src/gui/insEdit.cpp:7571 +msgid "offset..." +msgstr "" + +#: src/gui/insEdit.cpp:7572 src/gui/insEdit.cpp:7605 +msgid "X" +msgstr "" + +#: src/gui/insEdit.cpp:7573 src/gui/insEdit.cpp:7609 +msgid "Y" +msgstr "" + +#: src/gui/insEdit.cpp:7574 +msgid "offset" +msgstr "" + +#: src/gui/insEdit.cpp:7637 +msgid "Min" +msgstr "" + +#: src/gui/insEdit.cpp:7638 +msgid "Max" +msgstr "" diff --git a/po/furnace.pot b/po/furnace.pot index 74243be7d..c6a55f603 100644 --- a/po/furnace.pot +++ b/po/furnace.pot @@ -6,6 +6,903 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +#: src/main.cpp:510 +msgid "this is a test!" +msgstr "" + +#: src/gui/mixer.cpp:28 src/gui/insEdit.cpp:484 +msgid "left" +msgstr "" + +#: src/gui/mixer.cpp:29 src/gui/insEdit.cpp:483 +msgid "right" +msgstr "" + +#: src/gui/mixer.cpp:128 +msgid "input" +msgstr "" + +#: src/gui/mixer.cpp:168 +msgid "output" +msgstr "" + +#: src/gui/mixer.cpp:228 src/gui/editControls.cpp:454 src/gui/guiConst.cpp:593 +msgid "Mixer" +msgstr "" + +#: src/gui/mixer.cpp:229 +msgid "Master Volume" +msgstr "" + +#: src/gui/mixer.cpp:250 src/gui/exportOptions.cpp:90 +#: src/gui/userPresets.cpp:393 src/gui/userPresets.cpp:405 +#: src/gui/waveEdit.cpp:1096 src/gui/sampleEdit.cpp:1128 +#: src/gui/insEdit.cpp:519 +msgid "Invert" +msgstr "" + +#: src/gui/mixer.cpp:268 src/gui/userPresets.cpp:417 +#: src/gui/findReplace.cpp:687 src/gui/findReplace.cpp:943 +#: src/gui/guiConst.cpp:228 src/gui/sampleEdit.cpp:1003 +#: src/gui/insEdit.cpp:5575 src/gui/insEdit.cpp:5660 src/gui/insEdit.cpp:6920 +#: src/gui/insEdit.cpp:6928 src/gui/insEdit.cpp:6936 src/gui/insEdit.cpp:6946 +#: src/gui/insEdit.cpp:6961 src/gui/insEdit.cpp:6975 src/gui/insEdit.cpp:6987 +#: src/gui/insEdit.cpp:7000 src/gui/insEdit.cpp:7016 src/gui/insEdit.cpp:7022 +#: src/gui/insEdit.cpp:7032 src/gui/insEdit.cpp:7039 src/gui/insEdit.cpp:7045 +#: src/gui/insEdit.cpp:7058 src/gui/insEdit.cpp:7065 src/gui/insEdit.cpp:7072 +#: src/gui/insEdit.cpp:7081 src/gui/insEdit.cpp:7091 src/gui/insEdit.cpp:7099 +#: src/gui/insEdit.cpp:7105 src/gui/insEdit.cpp:7113 src/gui/insEdit.cpp:7120 +#: src/gui/insEdit.cpp:7126 src/gui/insEdit.cpp:7136 src/gui/insEdit.cpp:7148 +#: src/gui/insEdit.cpp:7156 src/gui/insEdit.cpp:7172 src/gui/insEdit.cpp:7177 +#: src/gui/insEdit.cpp:7190 src/gui/insEdit.cpp:7197 src/gui/insEdit.cpp:7208 +#: src/gui/insEdit.cpp:7221 src/gui/insEdit.cpp:7230 src/gui/insEdit.cpp:7237 +#: src/gui/insEdit.cpp:7245 src/gui/insEdit.cpp:7258 src/gui/insEdit.cpp:7263 +#: src/gui/insEdit.cpp:7269 src/gui/insEdit.cpp:7276 src/gui/insEdit.cpp:7284 +#: src/gui/insEdit.cpp:7295 src/gui/insEdit.cpp:7302 src/gui/insEdit.cpp:7310 +#: src/gui/insEdit.cpp:7318 src/gui/insEdit.cpp:7327 src/gui/insEdit.cpp:7335 +#: src/gui/insEdit.cpp:7341 src/gui/insEdit.cpp:7347 src/gui/insEdit.cpp:7353 +#: src/gui/insEdit.cpp:7358 src/gui/insEdit.cpp:7365 src/gui/insEdit.cpp:7372 +#: src/gui/insEdit.cpp:7380 src/gui/insEdit.cpp:7389 src/gui/insEdit.cpp:7397 +#: src/gui/insEdit.cpp:7409 src/gui/insEdit.cpp:7422 src/gui/insEdit.cpp:7433 +#: src/gui/insEdit.cpp:7443 src/gui/insEdit.cpp:7451 src/gui/insEdit.cpp:7461 +#: src/gui/insEdit.cpp:7470 +msgid "Volume" +msgstr "" + +#: src/gui/mixer.cpp:279 src/gui/userPresets.cpp:427 src/gui/guiConst.cpp:229 +#: src/gui/insEdit.cpp:6923 src/gui/insEdit.cpp:6930 src/gui/insEdit.cpp:6941 +#: src/gui/insEdit.cpp:6965 src/gui/insEdit.cpp:7067 src/gui/insEdit.cpp:7108 +#: src/gui/insEdit.cpp:7152 src/gui/insEdit.cpp:7192 src/gui/insEdit.cpp:7212 +#: src/gui/insEdit.cpp:7232 src/gui/insEdit.cpp:7240 src/gui/insEdit.cpp:7253 +#: src/gui/insEdit.cpp:7265 src/gui/insEdit.cpp:7271 src/gui/insEdit.cpp:7287 +#: src/gui/insEdit.cpp:7297 src/gui/insEdit.cpp:7360 src/gui/insEdit.cpp:7392 +#: src/gui/insEdit.cpp:7438 src/gui/insEdit.cpp:7446 +msgid "Panning" +msgstr "" + +#: src/gui/mixer.cpp:290 src/gui/userPresets.cpp:433 +msgid "Front/Rear" +msgstr "" + +#: src/gui/mixer.cpp:299 +msgid "Patchbay" +msgstr "" + +#: src/gui/mixer.cpp:305 +msgid "Automatic patchbay" +msgstr "" + +#: src/gui/mixer.cpp:310 +msgid "Display hidden ports" +msgstr "" + +#: src/gui/mixer.cpp:312 +msgid "Display internal" +msgstr "" + +#: src/gui/mixer.cpp:322 src/gui/mixer.cpp:383 src/gui/songInfo.cpp:69 +msgid "System" +msgstr "" + +#: src/gui/mixer.cpp:354 +msgid "Sample Preview" +msgstr "" + +#: src/gui/mixer.cpp:367 src/gui/editControls.cpp:745 +#: src/gui/editControls.cpp:837 src/gui/editControls.cpp:953 +#: src/gui/editControls.cpp:1093 src/gui/guiConst.cpp:558 +msgid "Metronome" +msgstr "" + +#: src/gui/mixer.cpp:446 +msgid "disconnect all" +msgstr "" + +#: src/gui/editing.cpp:200 +#, c-format +msgid "no data in oldPatMap for channel %d!" +msgstr "" + +#: src/gui/editing.cpp:664 src/gui/editing.cpp:1203 +#, c-format +msgid "invalid clipboard data! failed at line %d char %d" +msgstr "" + +#: src/gui/editing.cpp:1565 src/gui/editing.cpp:1669 +msgid "can't collapse any further!" +msgstr "" + +#: src/gui/editing.cpp:1749 +msgid "can't expand any further!" +msgstr "" + +#: src/gui/editing.cpp:1836 src/gui/editing.cpp:1851 +#, c-format +msgid "copy: %s" +msgstr "" + +#: src/gui/memory.cpp:146 +#, c-format +msgid "bank %d" +msgstr "" + +#: src/gui/memory.cpp:175 src/gui/memory.cpp:176 +msgid "no chips with memory" +msgstr "" + +#: src/gui/intro.cpp:89 src/gui/gui.cpp:2339 src/gui/gui.cpp:3740 +#: src/gui/gui.cpp:5007 src/gui/gui.cpp:5029 src/gui/gui.cpp:5467 +#: src/gui/gui.cpp:5769 src/gui/gui.cpp:5779 +#, c-format +msgid "Error while loading file! (%s)" +msgstr "" + +#: src/gui/intro.cpp:124 +msgid "Preview" +msgstr "" + +#: src/gui/intro.cpp:176 src/gui/intro.cpp:177 src/gui/intro.cpp:178 +msgid "SORRY NOTHING" +msgstr "" + +#: src/gui/intro.cpp:310 +msgid "hold to skip" +msgstr "" + +#: src/gui/dataList.cpp:76 +msgid "Bug!" +msgstr "" + +#: src/gui/dataList.cpp:79 src/gui/util.cpp:107 src/gui/util.cpp:109 +#: src/gui/insEdit.cpp:5334 +msgid "Unknown" +msgstr "" + +#: src/gui/dataList.cpp:136 src/gui/dataList.cpp:260 +msgid "duplicate" +msgstr "" + +#: src/gui/dataList.cpp:139 src/gui/dataList.cpp:263 src/gui/dataList.cpp:388 +#: src/gui/dataList.cpp:731 src/gui/dataList.cpp:867 +msgid "replace..." +msgstr "" + +#: src/gui/dataList.cpp:142 src/gui/dataList.cpp:266 src/gui/gui.cpp:4226 +msgid "save" +msgstr "" + +#: src/gui/dataList.cpp:145 +msgid "save (.dmp)" +msgstr "" + +#: src/gui/dataList.cpp:148 src/gui/dataList.cpp:269 src/gui/dataList.cpp:617 +#: src/gui/dataList.cpp:994 src/gui/dataList.cpp:1040 +#: src/gui/editControls.cpp:50 src/gui/gui.cpp:2761 src/gui/gui.cpp:2770 +msgid "delete" +msgstr "" + +#: src/gui/dataList.cpp:243 +msgid "out of memory for this sample!" +msgstr "" + +#: src/gui/dataList.cpp:254 +msgid "make instrument" +msgstr "" + +#: src/gui/dataList.cpp:257 +msgid "make me a drum kit" +msgstr "" + +#: src/gui/dataList.cpp:312 src/gui/dataList.cpp:714 src/gui/dataList.cpp:846 +#: src/gui/subSongs.cpp:88 src/gui/insEdit.cpp:520 +msgid "Add" +msgstr "" + +#: src/gui/dataList.cpp:338 src/gui/dataList.cpp:721 src/gui/dataList.cpp:853 +#: src/gui/subSongs.cpp:108 +msgid "Duplicate" +msgstr "" + +#: src/gui/dataList.cpp:359 src/gui/dataList.cpp:728 src/gui/dataList.cpp:860 +#: src/gui/editControls.cpp:497 src/gui/waveEdit.cpp:435 +#: src/gui/waveEdit.cpp:467 src/gui/sampleEdit.cpp:122 +#: src/gui/sampleEdit.cpp:171 src/gui/insEdit.cpp:5239 src/gui/insEdit.cpp:5304 +msgid "Open" +msgstr "" + +#: src/gui/dataList.cpp:363 +msgid "replace instrument..." +msgstr "" + +#: src/gui/dataList.cpp:366 +msgid "load instrument from TX81Z" +msgstr "" + +#: src/gui/dataList.cpp:372 +msgid "replace wavetable..." +msgstr "" + +#: src/gui/dataList.cpp:378 +msgid "replace sample..." +msgstr "" + +#: src/gui/dataList.cpp:381 +msgid "import raw sample..." +msgstr "" + +#: src/gui/dataList.cpp:384 +msgid "import raw sample (replace)..." +msgstr "" + +#: src/gui/dataList.cpp:392 +msgid "load from TX81Z" +msgstr "" + +#: src/gui/dataList.cpp:399 +msgid "Open (insert; right-click to replace)" +msgstr "" + +#: src/gui/dataList.cpp:420 src/gui/dataList.cpp:741 src/gui/dataList.cpp:884 +#: src/gui/editControls.cpp:502 src/gui/waveEdit.cpp:474 +#: src/gui/sampleEdit.cpp:184 src/gui/insEdit.cpp:5311 +msgid "Save" +msgstr "" + +#: src/gui/dataList.cpp:424 +msgid "save instrument as .dmp..." +msgstr "" + +#: src/gui/dataList.cpp:430 +msgid "save wavetable as .dmw..." +msgstr "" + +#: src/gui/dataList.cpp:433 +msgid "save raw wavetable..." +msgstr "" + +#: src/gui/dataList.cpp:439 +msgid "save raw sample..." +msgstr "" + +#: src/gui/dataList.cpp:443 src/gui/insEdit.cpp:5314 +msgid "save as .dmp..." +msgstr "" + +#: src/gui/dataList.cpp:456 src/gui/dataList.cpp:761 src/gui/dataList.cpp:903 +msgid "Toggle folders/standard view" +msgstr "" + +#: src/gui/dataList.cpp:478 src/gui/dataList.cpp:769 src/gui/dataList.cpp:911 +#: src/gui/subSongs.cpp:55 +msgid "Move up" +msgstr "" + +#: src/gui/dataList.cpp:499 src/gui/dataList.cpp:776 src/gui/dataList.cpp:918 +#: src/gui/subSongs.cpp:62 +msgid "Move down" +msgstr "" + +#: src/gui/dataList.cpp:510 src/gui/dataList.cpp:787 src/gui/dataList.cpp:929 +msgid "Create" +msgstr "" + +#: src/gui/dataList.cpp:540 src/gui/dataList.cpp:797 src/gui/dataList.cpp:939 +msgid "New folder" +msgstr "" + +#: src/gui/dataList.cpp:549 src/gui/dataList.cpp:947 +msgid "Preview (right click to stop)" +msgstr "" + +#: src/gui/dataList.cpp:576 src/gui/dataList.cpp:807 src/gui/dataList.cpp:959 +#: src/gui/guiConst.cpp:666 src/gui/sampleEdit.cpp:1105 +msgid "Delete" +msgstr "" + +#: src/gui/dataList.cpp:593 src/gui/gui.cpp:5902 +msgid "Instruments" +msgstr "" + +#: src/gui/dataList.cpp:608 src/gui/dataList.cpp:985 src/gui/dataList.cpp:1031 +msgid "" +msgstr "" + +#: src/gui/dataList.cpp:614 src/gui/dataList.cpp:991 src/gui/dataList.cpp:1037 +msgid "rename..." +msgstr "" + +#: src/gui/dataList.cpp:663 src/gui/gui.cpp:5911 +msgid "Wavetables" +msgstr "" + +#: src/gui/dataList.cpp:674 src/gui/xyOsc.cpp:68 src/gui/sampleEdit.cpp:898 +#: src/gui/sampleEdit.cpp:1072 src/gui/gui.cpp:5920 +msgid "Samples" +msgstr "" + +#: src/gui/dataList.cpp:745 src/gui/waveEdit.cpp:477 +msgid "save as .dmw..." +msgstr "" + +#: src/gui/dataList.cpp:748 src/gui/dataList.cpp:891 src/gui/waveEdit.cpp:480 +#: src/gui/sampleEdit.cpp:187 +msgid "save raw..." +msgstr "" + +#: src/gui/dataList.cpp:871 src/gui/sampleEdit.cpp:174 +msgid "import raw..." +msgstr "" + +#: src/gui/dataList.cpp:874 +msgid "import raw (replace)..." +msgstr "" + +#: src/gui/exportOptions.cpp:29 +msgid "Export type:" +msgstr "" + +#: src/gui/exportOptions.cpp:32 +msgid "one file" +msgstr "" + +#: src/gui/exportOptions.cpp:35 +msgid "multiple files (one per chip)" +msgstr "" + +#: src/gui/exportOptions.cpp:38 +msgid "multiple files (one per channel)" +msgstr "" + +#: src/gui/exportOptions.cpp:44 +msgid "Bit depth:" +msgstr "" + +#: src/gui/exportOptions.cpp:46 +msgid "16-bit integer" +msgstr "" + +#: src/gui/exportOptions.cpp:49 +msgid "32-bit float" +msgstr "" + +#: src/gui/exportOptions.cpp:55 src/gui/gui.cpp:6258 +msgid "Sample rate" +msgstr "" + +#: src/gui/exportOptions.cpp:61 +msgid "Channels in file" +msgstr "" + +#: src/gui/exportOptions.cpp:67 +msgid "Loops" +msgstr "" + +#: src/gui/exportOptions.cpp:70 +msgid "Fade out (seconds)" +msgstr "" + +#: src/gui/exportOptions.cpp:76 +msgid "Channels to export:" +msgstr "" + +#: src/gui/exportOptions.cpp:78 src/gui/effectList.cpp:32 src/gui/gui.cpp:6174 +msgid "All" +msgstr "" + +#: src/gui/exportOptions.cpp:84 src/gui/effectList.cpp:34 +#: src/gui/compatFlags.cpp:219 src/gui/waveEdit.cpp:37 src/gui/gui.cpp:6180 +#: src/gui/insEdit.cpp:518 +msgid "None" +msgstr "" + +#: src/gui/exportOptions.cpp:110 src/gui/exportOptions.cpp:214 +#: src/gui/exportOptions.cpp:225 src/gui/exportOptions.cpp:243 +#: src/gui/exportOptions.cpp:266 src/gui/exportOptions.cpp:297 +#: src/gui/exportOptions.cpp:318 src/gui/exportOptions.cpp:341 +#: src/gui/commandPalette.cpp:199 src/gui/newSong.cpp:273 src/gui/gui.cpp:5657 +#: src/gui/gui.cpp:5681 src/gui/gui.cpp:5705 src/gui/gui.cpp:5729 +#: src/gui/gui.cpp:5753 src/gui/gui.cpp:5784 src/gui/gui.cpp:5843 +#: src/gui/gui.cpp:6217 src/gui/gui.cpp:6341 +msgid "Cancel" +msgstr "" + +#: src/gui/exportOptions.cpp:115 src/gui/exportOptions.cpp:217 +#: src/gui/exportOptions.cpp:246 src/gui/exportOptions.cpp:300 +#: src/gui/exportOptions.cpp:321 src/gui/exportOptions.cpp:344 +#: src/gui/editControls.cpp:512 src/gui/userPresets.cpp:523 +#: src/gui/guiConst.cpp:536 src/gui/gui.cpp:5566 src/gui/gui.cpp:5618 +msgid "Export" +msgstr "" + +#: src/gui/exportOptions.cpp:130 +msgid "select at least one channel" +msgstr "" + +#: src/gui/exportOptions.cpp:137 +msgid "settings:" +msgstr "" + +#: src/gui/exportOptions.cpp:138 +msgid "format version" +msgstr "" + +#: src/gui/exportOptions.cpp:146 src/gui/exportOptions.cpp:238 +#: src/gui/insEdit.cpp:362 +msgid "loop" +msgstr "" + +#: src/gui/exportOptions.cpp:148 +msgid "loop trail:" +msgstr "" + +#: src/gui/exportOptions.cpp:150 +msgid "auto-detect" +msgstr "" + +#: src/gui/exportOptions.cpp:153 +msgid "add one loop" +msgstr "" + +#: src/gui/exportOptions.cpp:156 +msgid "custom" +msgstr "" + +#: src/gui/exportOptions.cpp:167 +msgid "add pattern change hints" +msgstr "" + +#: src/gui/exportOptions.cpp:170 +msgid "" +"inserts data blocks on pattern changes.\n" +"useful if you are writing a playback routine.\n" +"\n" +"the format of a pattern change data block is:\n" +"67 66 FE ll ll ll ll 01 oo rr pp pp pp ...\n" +"- ll: length, a 32-bit little-endian number\n" +"- oo: order\n" +"- rr: initial row (a 0Dxx effect is able to select a different row)\n" +"- pp: pattern index (one per channel)\n" +"\n" +"pattern indexes are ordered as they appear in the song." +msgstr "" + +#: src/gui/exportOptions.cpp:183 +msgid "direct stream mode" +msgstr "" + +#: src/gui/exportOptions.cpp:186 +msgid "" +"required for DualPCM and MSM6258 export.\n" +"\n" +"allows for volume/direction changes when playing samples,\n" +"at the cost of a massive increase in file size." +msgstr "" + +#: src/gui/exportOptions.cpp:191 +msgid "chips to export:" +msgstr "" + +#: src/gui/exportOptions.cpp:200 +#, c-format +msgid "this chip is only available in VGM %d.%.2x and higher!" +msgstr "" + +#: src/gui/exportOptions.cpp:204 +msgid "this chip is not supported by the VGM format!" +msgstr "" + +#: src/gui/exportOptions.cpp:210 +#, c-format +msgid "select the chip you wish to export, but only up to %d of each type." +msgstr "" + +#: src/gui/exportOptions.cpp:222 +msgid "nothing to export" +msgstr "" + +#: src/gui/exportOptions.cpp:233 +msgid "Commander X16 Zsound Music File" +msgstr "" + +#: src/gui/exportOptions.cpp:234 +msgid "Tick Rate (Hz)" +msgstr "" + +#: src/gui/exportOptions.cpp:240 +msgid "optimize size" +msgstr "" + +#: src/gui/exportOptions.cpp:256 src/gui/editControls.cpp:630 +msgid "" +"this is NOT ROM export! only use for making sure the\n" +"Furnace Amiga emulator is working properly by\n" +"comparing it with real Amiga output." +msgstr "" + +#: src/gui/exportOptions.cpp:261 src/gui/editControls.cpp:635 +msgid "Directory" +msgstr "" + +#: src/gui/exportOptions.cpp:269 src/gui/editControls.cpp:638 +msgid "Bake Data" +msgstr "" + +#: src/gui/exportOptions.cpp:284 src/gui/editControls.cpp:653 +#, c-format +msgid "Done! Baked %d files." +msgstr "" + +#: src/gui/exportOptions.cpp:293 +msgid "this option exports the song to a text file.\n" +msgstr "" + +#: src/gui/exportOptions.cpp:310 +msgid "" +"this option exports a text or binary file which\n" +"contains a dump of the internal command stream\n" +"produced when playing the song.\n" +"\n" +"technical/development use only!" +msgstr "" + +#: src/gui/exportOptions.cpp:331 +msgid "" +"export in DefleMask module format.\n" +"only do it if you really, really need to, or are downgrading an existing ." +"dmf." +msgstr "" + +#: src/gui/exportOptions.cpp:335 +msgid "format version:" +msgstr "" + +#: src/gui/exportOptions.cpp:336 +msgid "1.1.3 and higher" +msgstr "" + +#: src/gui/exportOptions.cpp:337 +msgid "1.0/legacy (0.12)" +msgstr "" + +#: src/gui/exportOptions.cpp:357 +msgid "Audio" +msgstr "" + +#: src/gui/exportOptions.cpp:361 +msgid "VGM" +msgstr "" + +#: src/gui/exportOptions.cpp:370 +msgid "ZSM" +msgstr "" + +#: src/gui/exportOptions.cpp:380 +msgid "Amiga Validation" +msgstr "" + +#: src/gui/exportOptions.cpp:385 +msgid "Text" +msgstr "" + +#: src/gui/exportOptions.cpp:389 +msgid "Command Stream" +msgstr "" + +#: src/gui/exportOptions.cpp:393 +msgid "DMF" +msgstr "" + +#: src/gui/exportOptions.cpp:422 +msgid "congratulations! you've unlocked a secret panel." +msgstr "" + +#: src/gui/exportOptions.cpp:423 +msgid "Toggle hidden systems" +msgstr "" + +#: src/gui/exportOptions.cpp:427 +msgid "Toggle all instrument types" +msgstr "" + +#: src/gui/exportOptions.cpp:431 +msgid "Set pitch linearity to Partial" +msgstr "" + +#: src/gui/exportOptions.cpp:435 +msgid "Enable multi-threading settings" +msgstr "" + +#: src/gui/exportOptions.cpp:439 +msgid "Set fat to max" +msgstr "" + +#: src/gui/exportOptions.cpp:446 +msgid "Set muscle and fat to zero" +msgstr "" + +#: src/gui/exportOptions.cpp:453 +msgid "Tell tildearrow this must be a mistake" +msgstr "" + +#: src/gui/exportOptions.cpp:454 +msgid "" +"yeah, it's a bug. write a bug report in the GitHub page and tell me how did " +"you get here." +msgstr "" + +#: src/gui/speed.cpp:41 +msgid "Base Tempo##TempoOrHz" +msgstr "" + +#: src/gui/speed.cpp:41 +msgid "Tick Rate##TempoOrHz" +msgstr "" + +#: src/gui/speed.cpp:46 +msgid "click to display tick rate" +msgstr "" + +#: src/gui/speed.cpp:48 +msgid "click to display base tempo" +msgstr "" + +#: src/gui/speed.cpp:80 +msgid "Groove" +msgstr "" + +#: src/gui/speed.cpp:87 +msgid "click for one speed" +msgstr "" + +#: src/gui/speed.cpp:90 +msgid "Speeds" +msgstr "" + +#: src/gui/speed.cpp:99 +msgid "click for groove pattern" +msgstr "" + +#: src/gui/speed.cpp:102 src/gui/editControls.cpp:532 src/gui/guiConst.cpp:232 +#: src/gui/guiConst.cpp:581 src/gui/insEdit.cpp:2028 src/gui/insEdit.cpp:5693 +#: src/gui/insEdit.cpp:6885 +msgid "Speed" +msgstr "" + +#: src/gui/speed.cpp:110 +msgid "click for two (alternating) speeds" +msgstr "" + +#: src/gui/speed.cpp:168 +msgid "Virtual Tempo" +msgstr "" + +#: src/gui/speed.cpp:177 +msgid "Numerator" +msgstr "" + +#: src/gui/speed.cpp:187 +msgid "Denominator (set to base tempo)" +msgstr "" + +#: src/gui/speed.cpp:193 +msgid "Divider" +msgstr "" + +#: src/gui/speed.cpp:208 +msgid "Highlight" +msgstr "" + +#: src/gui/speed.cpp:231 +msgid "Pattern Length" +msgstr "" + +#: src/gui/speed.cpp:245 +msgid "Song Length" +msgstr "" + +#: src/gui/channels.cpp:49 +msgid "Pat" +msgstr "" + +#: src/gui/channels.cpp:51 src/gui/editControls.cpp:550 +msgid "Osc" +msgstr "" + +#: src/gui/channels.cpp:53 +msgid "Swap" +msgstr "" + +#: src/gui/channels.cpp:55 src/gui/userPresets.cpp:368 +#: src/gui/effectList.cpp:45 src/gui/subSongs.cpp:125 +#: src/gui/sampleEdit.cpp:195 src/gui/songInfo.cpp:40 src/gui/sysManager.cpp:54 +#: src/gui/insEdit.cpp:5288 +msgid "Name" +msgstr "" + +#: src/gui/channels.cpp:64 +msgid "Show in pattern" +msgstr "" + +#: src/gui/channels.cpp:71 +msgid "Show in per-channel oscilloscope" +msgstr "" + +#: src/gui/channels.cpp:82 +#, c-format +msgid "" +"%s #%d\n" +"(drag to swap channels)" +msgstr "" + +#: src/gui/commandPalette.cpp:51 src/gui/sysPicker.cpp:35 +#: src/gui/newSong.cpp:133 +msgid "Search..." +msgstr "" + +#: src/gui/commandPalette.cpp:54 +msgid "Search recent files..." +msgstr "" + +#: src/gui/commandPalette.cpp:57 +msgid "Search instruments..." +msgstr "" + +#: src/gui/commandPalette.cpp:60 +msgid "Search samples..." +msgstr "" + +#: src/gui/commandPalette.cpp:63 +msgid "Search instruments (to change to)..." +msgstr "" + +#: src/gui/commandPalette.cpp:66 +msgid "Search chip (to add)..." +msgstr "" + +#: src/gui/commandPalette.cpp:93 src/gui/commandPalette.cpp:167 +msgid "- None -" +msgstr "" + +#: src/gui/commandPalette.cpp:123 src/gui/commandPalette.cpp:179 +#: src/gui/commandPalette.cpp:241 +msgid "invalid command palette type" +msgstr "" + +#: src/gui/regView.cpp:38 +msgid "- no register pool available" +msgstr "" + +#: src/gui/log.cpp:25 src/gui/effectList.cpp:84 +msgid "ERROR" +msgstr "" + +#: src/gui/log.cpp:26 +msgid "warning" +msgstr "" + +#: src/gui/log.cpp:27 +msgid "info" +msgstr "" + +#: src/gui/log.cpp:28 src/gui/gui.cpp:4507 +msgid "debug" +msgstr "" + +#: src/gui/log.cpp:29 +msgid "trace" +msgstr "" + +#: src/gui/log.cpp:48 src/gui/editControls.cpp:750 src/gui/editControls.cpp:883 +#: src/gui/editControls.cpp:1000 +msgid "Follow" +msgstr "" + +#: src/gui/log.cpp:50 src/gui/waveEdit.cpp:681 src/gui/insEdit.cpp:50 +msgid "Level" +msgstr "" + +#: src/gui/log.cpp:68 +msgid "time" +msgstr "" + +#: src/gui/log.cpp:70 +msgid "level" +msgstr "" + +#: src/gui/log.cpp:72 +msgid "message" +msgstr "" + +#: src/gui/pattern.cpp:468 +msgid "there aren't any channels to show." +msgstr "" + +#: src/gui/pattern.cpp:492 +msgid "click for pattern options (effect columns/pattern names/visualizer)" +msgstr "" + +#: src/gui/pattern.cpp:504 +msgid "Options:" +msgstr "" + +#: src/gui/pattern.cpp:506 +msgid "Effect columns/collapse" +msgstr "" + +#: src/gui/pattern.cpp:507 +msgid "Pattern names" +msgstr "" + +#: src/gui/pattern.cpp:508 +msgid "Channel group hints" +msgstr "" + +#: src/gui/pattern.cpp:509 +msgid "Visualizer" +msgstr "" + +#: src/gui/pattern.cpp:517 +msgid "Channel status:" +msgstr "" + +#: src/gui/pattern.cpp:519 +msgid "No##_PCS0" +msgstr "" + +#: src/gui/pattern.cpp:522 +msgid "Yes##_PCS1" +msgstr "" + +#: src/gui/pattern.cpp:1420 src/gui/pattern.cpp:1452 +msgid "WARNING!!" +msgstr "" + +#: src/gui/pattern.cpp:1422 src/gui/pattern.cpp:1459 +msgid "this instrument cannot be previewed because" +msgstr "" + +#: src/gui/pattern.cpp:1423 src/gui/pattern.cpp:1466 +msgid "none of the chips can play it" +msgstr "" + +#: src/gui/pattern.cpp:1424 src/gui/pattern.cpp:1473 +msgid "your instrument is in peril!! be careful..." +msgstr "" + +#: src/gui/osc.cpp:176 +#, c-format +msgid "zoom: %.2fx (%.1fdB)" +msgstr "" + +#: src/gui/osc.cpp:187 +#, c-format +msgid "window size: %.1fms" +msgstr "" + +#: src/gui/osc.cpp:385 +msgid "(-Infinity)dB" +msgstr "" + #: src/gui/debugWindow.cpp:662 msgid "This is a language test." msgstr "" @@ -14,6 +911,6834 @@ msgstr "" msgid "This is another language test." msgstr "" -#: src/main.cpp:510 -msgid "this is a test!" +#: src/gui/chanOsc.cpp:143 +msgid "Columns" +msgstr "" + +#: src/gui/chanOsc.cpp:152 +msgid "Size (ms)" +msgstr "" + +#: src/gui/chanOsc.cpp:163 +msgid "Automatic columns" +msgstr "" + +#: src/gui/chanOsc.cpp:177 +msgid "Center waveform" +msgstr "" + +#: src/gui/chanOsc.cpp:183 +msgid "Randomize phase on note" +msgstr "" + +#: src/gui/chanOsc.cpp:189 +msgid "Amplitude" +msgstr "" + +#: src/gui/chanOsc.cpp:199 +msgid "Line size" +msgstr "" + +#: src/gui/chanOsc.cpp:211 +msgid "Gradient" +msgstr "" + +#: src/gui/chanOsc.cpp:218 +msgid "error while creating gradient texture!" +msgstr "" + +#: src/gui/chanOsc.cpp:236 +msgid "error while updating gradient texture!" +msgstr "" + +#: src/gui/chanOsc.cpp:292 src/gui/chanOsc.cpp:348 +msgid "Color" +msgstr "" + +#: src/gui/chanOsc.cpp:296 +msgid "Distance" +msgstr "" + +#: src/gui/chanOsc.cpp:305 +msgid "Spread" +msgstr "" + +#: src/gui/chanOsc.cpp:314 src/gui/userPresets.cpp:370 src/gui/subSongs.cpp:121 +#: src/gui/sysManager.cpp:124 +msgid "Remove" +msgstr "" + +#: src/gui/chanOsc.cpp:338 +msgid "Background" +msgstr "" + +#: src/gui/chanOsc.cpp:341 +msgid "X Axis##AxisX" +msgstr "" + +#: src/gui/chanOsc.cpp:342 +msgid "Y Axis##AxisY" +msgstr "" + +#: src/gui/chanOsc.cpp:352 +msgid "Text format:" +msgstr "" + +#: src/gui/chanOsc.cpp:358 +msgid "" +"format guide:\n" +"- %c: channel name\n" +"- %C: channel short name\n" +"- %d: channel number (starting from 0)\n" +"- %D: channel number (starting from 1)\n" +"- %n: channel note\n" +"- %i: instrument name\n" +"- %I: instrument number (decimal)\n" +"- %x: instrument number (hex)\n" +"- %s: chip name\n" +"- %p: chip part number\n" +"- %S: chip ID\n" +"- %v: volume (decimal)\n" +"- %V: volume (percentage)\n" +"- %b: volume (hex)\n" +"- %l: new line\n" +"- %%: percent sign" +msgstr "" + +#: src/gui/chanOsc.cpp:380 +msgid "Text color" +msgstr "" + +#: src/gui/chanOsc.cpp:382 src/gui/xyOsc.cpp:80 src/gui/tutorial.cpp:687 +#: src/gui/gui.cpp:5627 src/gui/gui.cpp:6043 src/gui/gui.cpp:6211 +#: src/gui/gui.cpp:6310 src/gui/gui.cpp:6359 +msgid "OK" +msgstr "" + +#: src/gui/chanOsc.cpp:400 +msgid "creating chan osc work pool" +msgstr "" + +#: src/gui/chanOsc.cpp:429 +#, c-format +msgid "creating FFT plan for channel %d" +msgstr "" + +#: src/gui/chanOsc.cpp:436 +msgid "failed to create plan!" +msgstr "" + +#: src/gui/chanOsc.cpp:438 +msgid "failed to create inverse plan!" +msgstr "" + +#: src/gui/chanOsc.cpp:440 +msgid "failed to create FFT buffers" +msgstr "" + +#: src/gui/chanOsc.cpp:585 +msgid "Error!" +msgstr "" + +#: src/gui/editControls.cpp:47 src/gui/sampleEdit.cpp:1736 src/gui/gui.cpp:2727 +#: src/gui/insEdit.cpp:363 +msgid "cut" +msgstr "" + +#: src/gui/editControls.cpp:48 src/gui/sampleEdit.cpp:1740 src/gui/gui.cpp:2728 +#: src/gui/insEdit.cpp:7538 +msgid "copy" +msgstr "" + +#: src/gui/editControls.cpp:49 src/gui/sampleEdit.cpp:1744 src/gui/gui.cpp:2729 +#: src/gui/gui.cpp:2782 src/gui/insEdit.cpp:7543 +msgid "paste" +msgstr "" + +#: src/gui/editControls.cpp:51 +msgid "" +"select\n" +"all" +msgstr "" + +#: src/gui/editControls.cpp:52 +msgid "piano" +msgstr "" + +#: src/gui/editControls.cpp:53 src/gui/gui.cpp:4423 +msgid "undo" +msgstr "" + +#: src/gui/editControls.cpp:54 src/gui/gui.cpp:4424 +msgid "redo" +msgstr "" + +#: src/gui/editControls.cpp:57 +msgid "" +"paste\n" +"mix" +msgstr "" + +#: src/gui/editControls.cpp:58 +msgid "" +"paste\n" +"mix bg" +msgstr "" + +#: src/gui/editControls.cpp:59 +msgid "" +"paste\n" +"ins" +msgstr "" + +#: src/gui/editControls.cpp:60 +msgid "" +"paste\n" +"ins bg" +msgstr "" + +#: src/gui/editControls.cpp:61 +msgid "" +"paste\n" +"flood" +msgstr "" + +#: src/gui/editControls.cpp:62 +msgid "" +"paste\n" +"overflow" +msgstr "" + +#: src/gui/editControls.cpp:63 +msgid "" +"transpose\n" +"notes" +msgstr "" + +#: src/gui/editControls.cpp:64 +msgid "" +"transpose\n" +"values" +msgstr "" + +#: src/gui/editControls.cpp:67 +msgid "" +"change\n" +"ins" +msgstr "" + +#: src/gui/editControls.cpp:68 +msgid "" +"find/\n" +"replace" +msgstr "" + +#: src/gui/editControls.cpp:69 src/gui/gui.cpp:3057 +msgid "collapse" +msgstr "" + +#: src/gui/editControls.cpp:70 src/gui/gui.cpp:3058 +msgid "expand" +msgstr "" + +#: src/gui/editControls.cpp:71 src/gui/gui.cpp:2814 +msgid "flip" +msgstr "" + +#: src/gui/editControls.cpp:72 src/gui/insEdit.cpp:430 +msgid "invert" +msgstr "" + +#: src/gui/editControls.cpp:73 src/gui/gui.cpp:2794 src/gui/gui.cpp:2954 +msgid "interpolate" +msgstr "" + +#: src/gui/editControls.cpp:74 src/gui/gui.cpp:2806 src/gui/insEdit.cpp:7610 +msgid "scale" +msgstr "" + +#: src/gui/editControls.cpp:77 src/gui/gui.cpp:2798 +msgid "fade" +msgstr "" + +#: src/gui/editControls.cpp:78 src/gui/gui.cpp:2810 src/gui/insEdit.cpp:7639 +msgid "randomize" +msgstr "" + +#: src/gui/editControls.cpp:79 +msgid "opmask" +msgstr "" + +#: src/gui/editControls.cpp:80 +msgid "" +"scroll\n" +"mode" +msgstr "" + +#: src/gui/editControls.cpp:81 +msgid "" +"input\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:82 +msgid "" +"set\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:83 +msgid "" +"clear\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:84 src/gui/findReplace.cpp:43 +#: src/gui/insEdit.cpp:7557 +msgid "clear" +msgstr "" + +#: src/gui/editControls.cpp:421 src/gui/editControls.cpp:754 +#: src/gui/editControls.cpp:887 src/gui/editControls.cpp:1015 +#: src/gui/findReplace.cpp:794 src/gui/guiConst.cpp:582 src/gui/gui.cpp:5887 +msgid "Pattern" +msgstr "" + +#: src/gui/editControls.cpp:425 src/gui/editControls.cpp:752 +#: src/gui/editControls.cpp:885 src/gui/editControls.cpp:1007 +#: src/gui/guiConst.cpp:577 src/gui/gui.cpp:5876 +msgid "Orders" +msgstr "" + +#: src/gui/editControls.cpp:429 src/gui/findReplace.cpp:669 +#: src/gui/findReplace.cpp:914 +msgid "Ins" +msgstr "" + +#: src/gui/editControls.cpp:433 +msgid "Wave" +msgstr "" + +#: src/gui/editControls.cpp:437 src/gui/guiConst.cpp:1397 +#: src/gui/insEdit.cpp:2628 src/gui/insEdit.cpp:2666 +msgid "Sample" +msgstr "" + +#: src/gui/editControls.cpp:442 src/gui/findReplace.cpp:788 +#: src/gui/guiConst.cpp:230 +msgid "Song" +msgstr "" + +#: src/gui/editControls.cpp:446 src/gui/guiConst.cpp:601 src/gui/gui.cpp:6268 +msgid "Channels" +msgstr "" + +#: src/gui/editControls.cpp:450 src/gui/sampleEdit.cpp:494 +msgid "Chips" +msgstr "" + +#: src/gui/editControls.cpp:458 src/gui/compatFlags.cpp:319 +msgid "Other" +msgstr "" + +#: src/gui/editControls.cpp:487 src/gui/guiConst.cpp:531 +msgid "New" +msgstr "" + +#: src/gui/editControls.cpp:491 src/gui/doAction.cpp:38 src/gui/gui.cpp:4188 +msgid "Unsaved changes! Save changes before creating a new song?" +msgstr "" + +#: src/gui/editControls.cpp:507 +msgid "Save as..." +msgstr "" + +#: src/gui/editControls.cpp:516 src/gui/gui.cpp:1674 +msgid "Restore Backup" +msgstr "" + +#: src/gui/editControls.cpp:524 +msgid "Song Info" +msgstr "" + +#: src/gui/editControls.cpp:528 src/gui/guiConst.cpp:608 +msgid "Subsongs" +msgstr "" + +#: src/gui/editControls.cpp:541 +msgid "Channels here..." +msgstr "" + +#: src/gui/editControls.cpp:544 +msgid "Chips here..." +msgstr "" + +#: src/gui/editControls.cpp:547 +msgid "What the hell..." +msgstr "" + +#: src/gui/editControls.cpp:554 +msgid "ChanOsc" +msgstr "" + +#: src/gui/editControls.cpp:558 +msgid "RegView" +msgstr "" + +#: src/gui/editControls.cpp:562 +msgid "Stats" +msgstr "" + +#: src/gui/editControls.cpp:566 src/gui/guiConst.cpp:611 +msgid "Grooves" +msgstr "" + +#: src/gui/editControls.cpp:569 +msgid "Compat Flags" +msgstr "" + +#: src/gui/editControls.cpp:573 +msgid "XYOsc" +msgstr "" + +#: src/gui/editControls.cpp:577 +msgid "Meter" +msgstr "" + +#: src/gui/editControls.cpp:581 +msgid "Memory" +msgstr "" + +#: src/gui/editControls.cpp:585 +msgid "CV" +msgstr "" + +#: src/gui/editControls.cpp:589 +msgid "Presets" +msgstr "" + +#: src/gui/editControls.cpp:593 +msgid "PatManager" +msgstr "" + +#: src/gui/editControls.cpp:599 src/gui/guiConst.cpp:564 +msgid "Panic" +msgstr "" + +#: src/gui/editControls.cpp:601 src/gui/guiConst.cpp:589 +#: src/gui/guiConst.cpp:591 src/gui/gui.cpp:4433 +msgid "Settings" +msgstr "" + +#: src/gui/editControls.cpp:606 +msgid "Log" +msgstr "" + +#: src/gui/editControls.cpp:610 +msgid "Debug" +msgstr "" + +#: src/gui/editControls.cpp:614 src/gui/guiConst.cpp:587 +msgid "About" +msgstr "" + +#: src/gui/editControls.cpp:619 +msgid "Switch to Desktop Mode" +msgstr "" + +#: src/gui/editControls.cpp:681 src/gui/editControls.cpp:842 +#: src/gui/editControls.cpp:959 src/gui/editControls.cpp:1125 +msgid "Octave" +msgstr "" + +#: src/gui/editControls.cpp:698 src/gui/editControls.cpp:857 +msgid "Coarse Step" +msgstr "" + +#: src/gui/editControls.cpp:698 src/gui/editControls.cpp:857 +msgid "Edit Step" +msgstr "" + +#: src/gui/editControls.cpp:731 src/gui/editControls.cpp:797 +#: src/gui/editControls.cpp:911 src/gui/editControls.cpp:1048 +#: src/gui/guiConst.cpp:545 +msgid "Play" +msgstr "" + +#: src/gui/editControls.cpp:739 src/gui/editControls.cpp:789 +#: src/gui/editControls.cpp:918 src/gui/editControls.cpp:1040 +#: src/gui/guiConst.cpp:546 +msgid "Stop" +msgstr "" + +#: src/gui/editControls.cpp:742 src/gui/editControls.cpp:826 +#: src/gui/editControls.cpp:943 src/gui/editControls.cpp:1082 +#: src/gui/gui.cpp:4420 +msgid "Edit" +msgstr "" + +#: src/gui/editControls.cpp:757 src/gui/editControls.cpp:816 +#: src/gui/editControls.cpp:934 src/gui/editControls.cpp:1104 +msgid "Repeat pattern" +msgstr "" + +#: src/gui/editControls.cpp:766 src/gui/editControls.cpp:806 +#: src/gui/editControls.cpp:925 src/gui/editControls.cpp:1073 +msgid "Step one row" +msgstr "" + +#: src/gui/editControls.cpp:771 src/gui/editControls.cpp:891 +#: src/gui/editControls.cpp:1020 src/gui/editControls.cpp:1110 +msgid "Poly##PolyInput" +msgstr "" + +#: src/gui/editControls.cpp:771 src/gui/editControls.cpp:891 +#: src/gui/editControls.cpp:1020 src/gui/editControls.cpp:1110 +msgid "Mono##PolyInput" +msgstr "" + +#: src/gui/editControls.cpp:776 src/gui/editControls.cpp:896 +#: src/gui/editControls.cpp:1025 src/gui/editControls.cpp:1115 +msgid "Polyphony" +msgstr "" + +#: src/gui/editControls.cpp:957 +msgid "Oct." +msgstr "" + +#: src/gui/editControls.cpp:974 src/gui/editControls.cpp:1142 +msgid "Coarse" +msgstr "" + +#: src/gui/editControls.cpp:974 src/gui/editControls.cpp:1142 +msgid "Step" +msgstr "" + +#: src/gui/editControls.cpp:998 +msgid "Foll." +msgstr "" + +#: src/gui/editControls.cpp:1003 +msgid "Ord##FollowOrders" +msgstr "" + +#: src/gui/editControls.cpp:1011 +msgid "Pat##FollowPattern" +msgstr "" + +#: src/gui/editControls.cpp:1057 +msgid "Play from the beginning of this pattern" +msgstr "" + +#: src/gui/editControls.cpp:1065 +msgid "Repeat from the beginning of this pattern" +msgstr "" + +#: src/gui/editControls.cpp:1169 src/gui/guiConst.cpp:560 +msgid "Follow orders" +msgstr "" + +#: src/gui/editControls.cpp:1170 src/gui/guiConst.cpp:561 +msgid "Follow pattern" +msgstr "" + +#: src/gui/util.cpp:93 +msgid "" +msgstr "" + +#: src/gui/util.cpp:97 +msgid "Ctrl-" +msgstr "" + +#: src/gui/util.cpp:99 +msgid "Alt-" +msgstr "" + +#: src/gui/util.cpp:100 +msgid "Shift-" +msgstr "" + +#: src/gui/stats.cpp:36 +msgid "Audio load" +msgstr "" + +#: src/gui/xyOsc.cpp:45 +msgid "X Channel" +msgstr "" + +#: src/gui/xyOsc.cpp:51 +msgid "Invert##X" +msgstr "" + +#: src/gui/xyOsc.cpp:52 +msgid "Y Channel" +msgstr "" + +#: src/gui/xyOsc.cpp:58 +msgid "Invert##Y" +msgstr "" + +#: src/gui/xyOsc.cpp:59 src/gui/sampleEdit.cpp:1353 +msgid "Zoom" +msgstr "" + +#: src/gui/xyOsc.cpp:71 +msgid "Decay Time (ms)" +msgstr "" + +#: src/gui/xyOsc.cpp:74 +msgid "Intensity" +msgstr "" + +#: src/gui/xyOsc.cpp:77 +msgid "Line Thickness" +msgstr "" + +#: src/gui/xyOsc.cpp:213 +msgid "(-Infinity)dB,(-Infinity)dB" +msgstr "" + +#: src/gui/xyOsc.cpp:215 +#, c-format +msgid "(-Infinity)dB,%.1fdB" +msgstr "" + +#: src/gui/xyOsc.cpp:217 +#, c-format +msgid "%.1fdB,(-Infinity)dB" +msgstr "" + +#: src/gui/xyOsc.cpp:219 +#, c-format +msgid "%.1fdB,%.1fdB" +msgstr "" + +#: src/gui/userPresets.cpp:337 +msgid "Error! User category does not exist!" +msgstr "" + +#: src/gui/userPresets.cpp:346 src/gui/newSong.cpp:181 +msgid "Systems" +msgstr "" + +#: src/gui/userPresets.cpp:349 +msgid "New Preset" +msgstr "" + +#: src/gui/userPresets.cpp:361 +msgid "select a preset" +msgstr "" + +#: src/gui/userPresets.cpp:374 +msgid "Remove##UPresetRemove" +msgstr "" + +#: src/gui/userPresets.cpp:439 +msgid "Configure" +msgstr "" + +#: src/gui/userPresets.cpp:470 +msgid "Advanced" +msgstr "" + +#: src/gui/userPresets.cpp:476 +msgid "" +"insert additional settings in `option=value` format.\n" +"available options:\n" +"- tickRate" +msgstr "" + +#: src/gui/userPresets.cpp:509 +msgid "Save and Close" +msgstr "" + +#: src/gui/userPresets.cpp:515 +msgid "Import" +msgstr "" + +#: src/gui/userPresets.cpp:519 +msgid "Import (replace)" +msgstr "" + +#: src/gui/effectList.cpp:18 +#, c-format +msgid "Chip at cursor: %s" +msgstr "" + +#: src/gui/effectList.cpp:21 +msgid "Search" +msgstr "" + +#: src/gui/effectList.cpp:25 +msgid "Effect types to show:" +msgstr "" + +#: src/gui/effectList.cpp:47 +msgid "Description" +msgstr "" + +#: src/gui/subSongs.cpp:22 +#, c-format +msgid "%d. " +msgstr "" + +#: src/gui/subSongs.cpp:73 src/gui/subSongs.cpp:93 +msgid "too many subsongs!" +msgstr "" + +#: src/gui/subSongs.cpp:114 +msgid "this is the only subsong!" +msgstr "" + +#: src/gui/subSongs.cpp:116 +msgid "are you sure you want to remove this subsong?" +msgstr "" + +#: src/gui/spoiler.cpp:32 +msgid "SPOILER" +msgstr "" + +#: src/gui/orders.cpp:114 +msgid "Add new order" +msgstr "" + +#: src/gui/orders.cpp:125 src/gui/guiConst.cpp:794 +msgid "Remove order" +msgstr "" + +#: src/gui/orders.cpp:137 +msgid "Duplicate order (right-click to deep clone)" +msgstr "" + +#: src/gui/orders.cpp:146 src/gui/guiConst.cpp:795 +msgid "Move order up" +msgstr "" + +#: src/gui/orders.cpp:155 src/gui/guiConst.cpp:796 +msgid "Move order down" +msgstr "" + +#: src/gui/orders.cpp:167 +msgid "Place copy of current order at end of song (right-click to deep clone)" +msgstr "" + +#: src/gui/orders.cpp:177 +msgid "Order change mode: entire row" +msgstr "" + +#: src/gui/orders.cpp:179 +msgid "Order change mode: one" +msgstr "" + +#: src/gui/orders.cpp:205 +msgid "Order edit mode: Select and type (scroll vertically)" +msgstr "" + +#: src/gui/orders.cpp:207 +msgid "Order edit mode: Select and type (scroll horizontally)" +msgstr "" + +#: src/gui/orders.cpp:209 +msgid "Order edit mode: Select and type (don't scroll)" +msgstr "" + +#: src/gui/orders.cpp:211 +msgid "Order edit mode: Click to change" +msgstr "" + +#: src/gui/findReplace.cpp:29 +msgid "ignore" +msgstr "" + +#: src/gui/findReplace.cpp:30 +msgid "equals" +msgstr "" + +#: src/gui/findReplace.cpp:31 +msgid "not equal" +msgstr "" + +#: src/gui/findReplace.cpp:32 +msgid "between" +msgstr "" + +#: src/gui/findReplace.cpp:33 +msgid "not between" +msgstr "" + +#: src/gui/findReplace.cpp:34 +msgid "any" +msgstr "" + +#: src/gui/findReplace.cpp:35 src/gui/guiConst.cpp:217 +msgid "none" +msgstr "" + +#: src/gui/findReplace.cpp:39 +msgid "set" +msgstr "" + +#: src/gui/findReplace.cpp:40 +msgid "add" +msgstr "" + +#: src/gui/findReplace.cpp:41 +msgid "add (overflow)" +msgstr "" + +#: src/gui/findReplace.cpp:42 +msgid "scale %" +msgstr "" + +#: src/gui/findReplace.cpp:520 src/gui/findReplace.cpp:850 +msgid "Find" +msgstr "" + +#: src/gui/findReplace.cpp:526 src/gui/findReplace.cpp:535 +msgid "order" +msgstr "" + +#: src/gui/findReplace.cpp:527 src/gui/findReplace.cpp:537 +msgid "row" +msgstr "" + +#: src/gui/findReplace.cpp:539 src/gui/csPlayer.cpp:146 +msgid "channel" +msgstr "" + +#: src/gui/findReplace.cpp:541 +msgid "go" +msgstr "" + +#: src/gui/findReplace.cpp:585 +msgid "no matches found!" +msgstr "" + +#: src/gui/findReplace.cpp:587 +msgid "Back" +msgstr "" + +#: src/gui/findReplace.cpp:601 src/gui/findReplace.cpp:864 +#: src/gui/sampleEdit.cpp:590 +msgid "Note" +msgstr "" + +#: src/gui/findReplace.cpp:707 src/gui/findReplace.cpp:974 +msgid "Effect" +msgstr "" + +#: src/gui/findReplace.cpp:725 src/gui/findReplace.cpp:1003 +msgid "Value" +msgstr "" + +#: src/gui/findReplace.cpp:750 +msgid "Delete query" +msgstr "" + +#: src/gui/findReplace.cpp:754 src/gui/findReplace.cpp:1037 +msgid "Add effect" +msgstr "" + +#: src/gui/findReplace.cpp:761 src/gui/findReplace.cpp:1044 +msgid "Remove effect" +msgstr "" + +#: src/gui/findReplace.cpp:786 +msgid "Search range:" +msgstr "" + +#: src/gui/findReplace.cpp:791 +msgid "Selection" +msgstr "" + +#: src/gui/findReplace.cpp:799 +msgid "Confine to channels" +msgstr "" + +#: src/gui/findReplace.cpp:803 src/gui/sampleEdit.cpp:1152 +msgid "From" +msgstr "" + +#: src/gui/findReplace.cpp:814 src/gui/sampleEdit.cpp:1156 +msgid "To" +msgstr "" + +#: src/gui/findReplace.cpp:826 +msgid "Match effect position:" +msgstr "" + +#: src/gui/findReplace.cpp:828 src/gui/gui.cpp:5652 src/gui/gui.cpp:5676 +#: src/gui/gui.cpp:5700 src/gui/gui.cpp:5724 src/gui/gui.cpp:5748 +#: src/gui/gui.cpp:5776 src/gui/gui.cpp:5801 src/gui/gui.cpp:5812 +#: src/gui/gui.cpp:5824 src/gui/gui.cpp:5836 src/gui/gui.cpp:6000 +#: src/gui/gui.cpp:6015 src/gui/gui.cpp:6025 src/gui/gui.cpp:6038 +msgid "No" +msgstr "" + +#: src/gui/findReplace.cpp:832 +msgid "match effects regardless of position." +msgstr "" + +#: src/gui/findReplace.cpp:834 src/gui/compatFlags.cpp:288 +msgid "Lax" +msgstr "" + +#: src/gui/findReplace.cpp:838 +msgid "match effects only if they appear in-order." +msgstr "" + +#: src/gui/findReplace.cpp:840 src/gui/compatFlags.cpp:276 +msgid "Strict" +msgstr "" + +#: src/gui/findReplace.cpp:844 +msgid "match effects only if they appear exactly as specified." +msgstr "" + +#: src/gui/findReplace.cpp:856 +msgid "Replace" +msgstr "" + +#: src/gui/findReplace.cpp:908 +msgid "INVALID" +msgstr "" + +#: src/gui/findReplace.cpp:1052 +msgid "Effect replace mode:" +msgstr "" + +#: src/gui/findReplace.cpp:1053 +msgid "Replace matches only" +msgstr "" + +#: src/gui/findReplace.cpp:1056 +msgid "Replace matches, then free spaces" +msgstr "" + +#: src/gui/findReplace.cpp:1059 +msgid "Clear effects" +msgstr "" + +#: src/gui/findReplace.cpp:1062 +msgid "Insert in free spaces" +msgstr "" + +#: src/gui/findReplace.cpp:1065 +msgid "Replace##QueryReplace" +msgstr "" + +#: src/gui/compatFlags.cpp:32 +msgid "" +"these flags are designed to provide better DefleMask/older Furnace " +"compatibility.\n" +"it is recommended to disable most of these unless you rely on specific " +"quirks." +msgstr "" + +#: src/gui/compatFlags.cpp:34 src/gui/compatFlags.cpp:310 +msgid "DefleMask" +msgstr "" + +#: src/gui/compatFlags.cpp:35 +msgid "Limit slide range" +msgstr "" + +#: src/gui/compatFlags.cpp:37 +msgid "" +"when enabled, slides are limited to a compatible range.\n" +"may cause problems with slides in negative octaves." +msgstr "" + +#: src/gui/compatFlags.cpp:39 +msgid "Compatible noise layout on NES and PC Engine" +msgstr "" + +#: src/gui/compatFlags.cpp:41 +msgid "" +"use a rather unusual compatible noise frequency layout.\n" +"removes some noise frequencies on PC Engine." +msgstr "" + +#: src/gui/compatFlags.cpp:43 +msgid "Game Boy instrument duty is wave volume" +msgstr "" + +#: src/gui/compatFlags.cpp:45 +msgid "" +"if enabled, an instrument with duty macro in the wave channel will be mapped " +"to wavetable volume." +msgstr "" + +#: src/gui/compatFlags.cpp:48 +msgid "Restart macro on portamento" +msgstr "" + +#: src/gui/compatFlags.cpp:50 +msgid "" +"when enabled, a portamento effect will reset the channel's macro if used in " +"combination with a note." +msgstr "" + +#: src/gui/compatFlags.cpp:52 +msgid "Legacy volume slides" +msgstr "" + +#: src/gui/compatFlags.cpp:54 +msgid "" +"simulate glitchy volume slide behavior by silently overflowing the volume " +"when the slide goes below 0." +msgstr "" + +#: src/gui/compatFlags.cpp:56 +msgid "Compatible arpeggio" +msgstr "" + +#: src/gui/compatFlags.cpp:58 +msgid "delay arpeggio by one tick on every new note." +msgstr "" + +#: src/gui/compatFlags.cpp:60 +msgid "Disable DAC when sample ends" +msgstr "" + +#: src/gui/compatFlags.cpp:62 +msgid "" +"when enabled, the DAC in YM2612 will be disabled if there isn't any sample " +"playing." +msgstr "" + +#: src/gui/compatFlags.cpp:64 +msgid "Broken speed alternation" +msgstr "" + +#: src/gui/compatFlags.cpp:66 +msgid "" +"determines next speed based on whether the row is odd/even instead of " +"alternating between speeds." +msgstr "" + +#: src/gui/compatFlags.cpp:68 +msgid "Ignore duplicate slide effects" +msgstr "" + +#: src/gui/compatFlags.cpp:70 +msgid "" +"if this is on, only the first slide of a row in a channel will be considered." +msgstr "" + +#: src/gui/compatFlags.cpp:72 +msgid "Ignore 0Dxx on the last order" +msgstr "" + +#: src/gui/compatFlags.cpp:74 +msgid "" +"if this is on, a jump to next row effect will not take place when it is on " +"the last order of a song." +msgstr "" + +#: src/gui/compatFlags.cpp:76 +msgid "Buggy portamento after pitch slide" +msgstr "" + +#: src/gui/compatFlags.cpp:78 +msgid "simulates a bug in where portamento does not work after sliding." +msgstr "" + +#: src/gui/compatFlags.cpp:80 +msgid "FM pitch slide octave boundary odd behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:82 +msgid "" +"if this is on, a pitch slide that crosses the octave boundary will stop for " +"one tick and then continue from the nearest octave boundary.\n" +"for .dmf compatibility." +msgstr "" + +#: src/gui/compatFlags.cpp:84 +msgid "Don't apply Game Boy envelope on note-less instrument change" +msgstr "" + +#: src/gui/compatFlags.cpp:86 +msgid "if this is on, an instrument change will not affect the envelope." +msgstr "" + +#: src/gui/compatFlags.cpp:88 +msgid "Ignore DAC mode change outside of intended channel in ExtCh mode" +msgstr "" + +#: src/gui/compatFlags.cpp:90 +msgid "if this is on, 17xx has no effect on the operator channels in YM2612." +msgstr "" + +#: src/gui/compatFlags.cpp:92 +msgid "E1xy/E2xy also take priority over slide stops" +msgstr "" + +#: src/gui/compatFlags.cpp:94 +msgid "does this make any sense by now?" +msgstr "" + +#: src/gui/compatFlags.cpp:96 +msgid "E1xy/E2xy stop when repeating the same note" +msgstr "" + +#: src/gui/compatFlags.cpp:98 +msgid "ugh, if only this wasn't a thing..." +msgstr "" + +#: src/gui/compatFlags.cpp:100 +msgid "SN76489 duty macro always resets phase" +msgstr "" + +#: src/gui/compatFlags.cpp:102 +msgid "" +"when enabled, duty macro will always reset phase, even if its value hasn't " +"changed." +msgstr "" + +#: src/gui/compatFlags.cpp:104 +msgid "Broken volume scaling strategy" +msgstr "" + +#: src/gui/compatFlags.cpp:106 +msgid "" +"when enabled:\n" +"- log scaling: multiply\n" +"- linear scaling: subtract\n" +"when disabled:\n" +"- log scaling: subtract\n" +"- linear scaling: multiply" +msgstr "" + +#: src/gui/compatFlags.cpp:108 +msgid "Don't persist volume macro after it finishes" +msgstr "" + +#: src/gui/compatFlags.cpp:110 +msgid "" +"when enabled, a value in the volume column that happens after the volume " +"macro is done will disregard the macro." +msgstr "" + +#: src/gui/compatFlags.cpp:112 +msgid "Broken output volume on instrument change" +msgstr "" + +#: src/gui/compatFlags.cpp:114 +msgid "" +"if enabled, no checks for the presence of a volume macro will be made.\n" +"this will cause the last macro value to linger unless a value in the volume " +"column is present." +msgstr "" + +#: src/gui/compatFlags.cpp:116 +msgid "Broken output volume - Episode 2 (PLEASE KEEP ME DISABLED)" +msgstr "" + +#: src/gui/compatFlags.cpp:118 +msgid "" +"these compatibility flags are getting SO damn ridiculous and out of " +"control.\n" +"as you may have guessed, this one exists due to yet ANOTHER DefleMask-" +"specific behavior.\n" +"please keep this off at all costs, because I will not support it when ROM " +"export comes.\n" +"oh, and don't start an argument out of it. Furnace isn't a DefleMask " +"replacement, and no,\n" +"I am not trying to make it look like one with all these flags.\n" +"\n" +"oh, and what about the other flags that don't have to do with DefleMask?\n" +"those are for .mod import, future FamiTracker import and personal taste!\n" +"\n" +"end of rant" +msgstr "" + +#: src/gui/compatFlags.cpp:120 +msgid "Treat SN76489 periods under 8 as 1" +msgstr "" + +#: src/gui/compatFlags.cpp:122 +msgid "" +"when enabled, any SN period under 8 will be written as 1 instead.\n" +"this replicates DefleMask behavior, but reduces available period range." +msgstr "" + +#: src/gui/compatFlags.cpp:126 src/gui/compatFlags.cpp:304 +msgid "Old Furnace" +msgstr "" + +#: src/gui/compatFlags.cpp:127 +msgid "Arpeggio inhibits non-porta slides" +msgstr "" + +#: src/gui/compatFlags.cpp:129 src/gui/compatFlags.cpp:133 +msgid "behavior changed in 0.5.5" +msgstr "" + +#: src/gui/compatFlags.cpp:131 +msgid "Wack FM algorithm macro" +msgstr "" + +#: src/gui/compatFlags.cpp:135 +msgid "Broken shortcut slides (E1xy/E2xy)" +msgstr "" + +#: src/gui/compatFlags.cpp:137 +msgid "behavior changed in 0.5.7" +msgstr "" + +#: src/gui/compatFlags.cpp:139 +msgid "Stop portamento on note off" +msgstr "" + +#: src/gui/compatFlags.cpp:141 src/gui/compatFlags.cpp:145 +#: src/gui/compatFlags.cpp:149 src/gui/compatFlags.cpp:153 +#: src/gui/compatFlags.cpp:157 src/gui/compatFlags.cpp:161 +#: src/gui/compatFlags.cpp:165 +msgid "behavior changed in 0.6pre1" +msgstr "" + +#: src/gui/compatFlags.cpp:143 +msgid "Don't allow instrument change during slides" +msgstr "" + +#: src/gui/compatFlags.cpp:147 +msgid "Don't reset note to base on arpeggio stop" +msgstr "" + +#: src/gui/compatFlags.cpp:151 +msgid "ExtCh channel status is not shared among operators" +msgstr "" + +#: src/gui/compatFlags.cpp:155 +msgid "Disable new SegaPCM features (macros and better panning)" +msgstr "" + +#: src/gui/compatFlags.cpp:159 +msgid "Old FM octave boundary behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:163 +msgid "Disable OPN2 DAC volume control" +msgstr "" + +#: src/gui/compatFlags.cpp:167 +msgid "Broken initial position of portamento after arpeggio" +msgstr "" + +#: src/gui/compatFlags.cpp:169 +msgid "behavior changed in 0.6pre1.5" +msgstr "" + +#: src/gui/compatFlags.cpp:171 +msgid "Disable new sample features" +msgstr "" + +#: src/gui/compatFlags.cpp:173 src/gui/compatFlags.cpp:177 +msgid "behavior changed in 0.6pre2" +msgstr "" + +#: src/gui/compatFlags.cpp:175 +msgid "Old arpeggio macro + pitch slide strategy" +msgstr "" + +#: src/gui/compatFlags.cpp:179 +msgid "Broken portamento during legato" +msgstr "" + +#: src/gui/compatFlags.cpp:181 +msgid "behavior changed in 0.6pre4" +msgstr "" + +#: src/gui/compatFlags.cpp:183 +msgid "Broken macros in some FM chips after note off" +msgstr "" + +#: src/gui/compatFlags.cpp:185 +msgid "behavior changed in 0.6pre5" +msgstr "" + +#: src/gui/compatFlags.cpp:187 +msgid "Pre-note does not take effects into consideration" +msgstr "" + +#: src/gui/compatFlags.cpp:189 +msgid "behavior changed in 0.6pre9" +msgstr "" + +#: src/gui/compatFlags.cpp:191 +msgid "Disable new NES DPCM features" +msgstr "" + +#: src/gui/compatFlags.cpp:193 +msgid "behavior changed in 0.6.1" +msgstr "" + +#: src/gui/compatFlags.cpp:195 +msgid "Legacy technical ALWAYS_SET_VOLUME behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:197 +msgid "" +"behavior changed in 0.6.1\n" +"this flag will be removed if I find out that none of the songs break after " +"disabling it." +msgstr "" + +#: src/gui/compatFlags.cpp:199 +msgid "Old sample offset effect" +msgstr "" + +#: src/gui/compatFlags.cpp:201 +msgid "behavior changed in 0.6.3" +msgstr "" + +#: src/gui/compatFlags.cpp:205 +msgid ".mod import" +msgstr "" + +#: src/gui/compatFlags.cpp:206 +msgid "Don't slide on the first tick of a row" +msgstr "" + +#: src/gui/compatFlags.cpp:208 +msgid "" +"simulates ProTracker's behavior of not applying volume/pitch slides on the " +"first tick of a row." +msgstr "" + +#: src/gui/compatFlags.cpp:210 +msgid "Reset arpeggio position on row change" +msgstr "" + +#: src/gui/compatFlags.cpp:212 +msgid "" +"simulates ProTracker's behavior of arpeggio being bound to the current tick " +"of a row." +msgstr "" + +#: src/gui/compatFlags.cpp:216 +msgid "Pitch/Playback" +msgstr "" + +#: src/gui/compatFlags.cpp:217 +msgid "Pitch linearity:" +msgstr "" + +#: src/gui/compatFlags.cpp:223 +msgid "like ProTracker/FamiTracker" +msgstr "" + +#: src/gui/compatFlags.cpp:227 +msgid "Partial (only 04xy/E5xx)" +msgstr "" + +#: src/gui/compatFlags.cpp:231 +msgid "" +"like DefleMask\n" +"\n" +"this pitch linearity mode is deprecated due to:\n" +"- excessive complexity\n" +"- lack of possible optimization\n" +"\n" +"it is recommended to change it now because I will remove this option in the " +"future!" +msgstr "" + +#: src/gui/compatFlags.cpp:235 +msgid "Full" +msgstr "" + +#: src/gui/compatFlags.cpp:239 +msgid "like Impulse Tracker" +msgstr "" + +#: src/gui/compatFlags.cpp:246 +msgid "Pitch slide speed multiplier" +msgstr "" + +#: src/gui/compatFlags.cpp:252 +msgid "Loop modality:" +msgstr "" + +#: src/gui/compatFlags.cpp:254 +msgid "Reset channels" +msgstr "" + +#: src/gui/compatFlags.cpp:258 +msgid "" +"select to reset channels on loop. may trigger a voltage click on every loop!" +msgstr "" + +#: src/gui/compatFlags.cpp:260 +msgid "Soft reset channels" +msgstr "" + +#: src/gui/compatFlags.cpp:264 +msgid "select to turn channels off on loop." +msgstr "" + +#: src/gui/compatFlags.cpp:266 +msgid "Do nothing" +msgstr "" + +#: src/gui/compatFlags.cpp:270 +msgid "select to not reset channels on loop." +msgstr "" + +#: src/gui/compatFlags.cpp:274 +msgid "Cut/delay effect policy:" +msgstr "" + +#: src/gui/compatFlags.cpp:280 +msgid "only when time is less than speed (like DefleMask/ProTracker)" +msgstr "" + +#: src/gui/compatFlags.cpp:282 +msgid "Strict (old)" +msgstr "" + +#: src/gui/compatFlags.cpp:286 +msgid "only when time is less than or equal to speed (original buggy behavior)" +msgstr "" + +#: src/gui/compatFlags.cpp:292 +msgid "no checks" +msgstr "" + +#: src/gui/compatFlags.cpp:296 +msgid "Simultaneous jump (0B+0D) treatment:" +msgstr "" + +#: src/gui/compatFlags.cpp:298 src/gui/gui.cpp:6055 src/gui/insEdit.cpp:217 +#: src/gui/insEdit.cpp:231 +msgid "Normal" +msgstr "" + +#: src/gui/compatFlags.cpp:302 +msgid "accept 0B+0D to jump to a specific row of an order" +msgstr "" + +#: src/gui/compatFlags.cpp:308 +msgid "only accept the first jump effect" +msgstr "" + +#: src/gui/compatFlags.cpp:314 +msgid "only accept 0Dxx" +msgstr "" + +#: src/gui/compatFlags.cpp:320 +msgid "Auto-insert one tick gap between notes" +msgstr "" + +#: src/gui/compatFlags.cpp:322 +msgid "" +"when enabled, a one-tick note cut will be inserted between non-legato/non-" +"portamento notes.\n" +"this simulates the behavior of some Amiga/SNES music engines.\n" +"\n" +"ineffective on C64." +msgstr "" + +#: src/gui/compatFlags.cpp:327 +msgid "Don't reset slides after note off" +msgstr "" + +#: src/gui/compatFlags.cpp:329 +msgid "when enabled, note off will not reset the channel's slide effect." +msgstr "" + +#: src/gui/compatFlags.cpp:331 +msgid "Don't reset portamento after reaching target" +msgstr "" + +#: src/gui/compatFlags.cpp:333 +msgid "" +"when enabled, the slide effect will not be disabled after it reaches its " +"target." +msgstr "" + +#: src/gui/compatFlags.cpp:335 +msgid "Continuous vibrato" +msgstr "" + +#: src/gui/compatFlags.cpp:337 +msgid "when enabled, vibrato phase/position will not be reset on a new note." +msgstr "" + +#: src/gui/compatFlags.cpp:339 +msgid "Pitch macro is not linear" +msgstr "" + +#: src/gui/compatFlags.cpp:341 +msgid "" +"when enabled, the pitch macro of an instrument is in frequency/period space." +msgstr "" + +#: src/gui/compatFlags.cpp:343 +msgid "Reset arpeggio effect position on new note" +msgstr "" + +#: src/gui/compatFlags.cpp:345 +msgid "when enabled, arpeggio effect (00xy) position is reset on a new note." +msgstr "" + +#: src/gui/compatFlags.cpp:347 +msgid "Volume scaling rounds up" +msgstr "" + +#: src/gui/compatFlags.cpp:349 +msgid "" +"when enabled, volume macros round up when applied\n" +"this prevents volume scaling from causing vol=0, which is silent on some " +"chips\n" +"\n" +"ineffective on logarithmic channels" +msgstr "" + +#: src/gui/guiConst.cpp:127 +msgid "Generic Sample" +msgstr "" + +#: src/gui/guiConst.cpp:149 +msgid "VRC6 (saw)" +msgstr "" + +#: src/gui/guiConst.cpp:155 +msgid "OPL (drums)" +msgstr "" + +#: src/gui/guiConst.cpp:179 +msgid "PowerNoise (noise)" +msgstr "" + +#: src/gui/guiConst.cpp:180 +msgid "PowerNoise (slope)" +msgstr "" + +#: src/gui/guiConst.cpp:191 +msgid "Forward" +msgstr "" + +#: src/gui/guiConst.cpp:192 +msgid "Backward" +msgstr "" + +#: src/gui/guiConst.cpp:193 +msgid "Ping pong" +msgstr "" + +#: src/gui/guiConst.cpp:218 +msgid "linear" +msgstr "" + +#: src/gui/guiConst.cpp:219 +msgid "cubic spline" +msgstr "" + +#: src/gui/guiConst.cpp:220 +msgid "blep synthesis" +msgstr "" + +#: src/gui/guiConst.cpp:221 +msgid "sinc" +msgstr "" + +#: src/gui/guiConst.cpp:222 +msgid "best possible" +msgstr "" + +#: src/gui/guiConst.cpp:226 src/gui/sampleEdit.cpp:137 +#: src/gui/sampleEdit.cpp:143 +msgid "Invalid" +msgstr "" + +#: src/gui/guiConst.cpp:227 src/gui/insEdit.cpp:6924 src/gui/insEdit.cpp:6931 +#: src/gui/insEdit.cpp:6942 src/gui/insEdit.cpp:6950 src/gui/insEdit.cpp:6971 +#: src/gui/insEdit.cpp:6983 src/gui/insEdit.cpp:6993 src/gui/insEdit.cpp:7006 +#: src/gui/insEdit.cpp:7019 src/gui/insEdit.cpp:7028 src/gui/insEdit.cpp:7036 +#: src/gui/insEdit.cpp:7042 src/gui/insEdit.cpp:7052 src/gui/insEdit.cpp:7061 +#: src/gui/insEdit.cpp:7068 src/gui/insEdit.cpp:7075 src/gui/insEdit.cpp:7087 +#: src/gui/insEdit.cpp:7095 src/gui/insEdit.cpp:7102 src/gui/insEdit.cpp:7109 +#: src/gui/insEdit.cpp:7117 src/gui/insEdit.cpp:7123 src/gui/insEdit.cpp:7132 +#: src/gui/insEdit.cpp:7143 src/gui/insEdit.cpp:7153 src/gui/insEdit.cpp:7161 +#: src/gui/insEdit.cpp:7174 src/gui/insEdit.cpp:7182 src/gui/insEdit.cpp:7193 +#: src/gui/insEdit.cpp:7203 src/gui/insEdit.cpp:7213 src/gui/insEdit.cpp:7227 +#: src/gui/insEdit.cpp:7233 src/gui/insEdit.cpp:7241 src/gui/insEdit.cpp:7248 +#: src/gui/insEdit.cpp:7272 src/gui/insEdit.cpp:7280 src/gui/insEdit.cpp:7289 +#: src/gui/insEdit.cpp:7298 src/gui/insEdit.cpp:7306 src/gui/insEdit.cpp:7323 +#: src/gui/insEdit.cpp:7331 src/gui/insEdit.cpp:7337 src/gui/insEdit.cpp:7344 +#: src/gui/insEdit.cpp:7350 src/gui/insEdit.cpp:7355 src/gui/insEdit.cpp:7361 +#: src/gui/insEdit.cpp:7368 src/gui/insEdit.cpp:7376 src/gui/insEdit.cpp:7385 +#: src/gui/insEdit.cpp:7393 src/gui/insEdit.cpp:7401 src/gui/insEdit.cpp:7413 +#: src/gui/insEdit.cpp:7428 src/gui/insEdit.cpp:7439 src/gui/insEdit.cpp:7447 +#: src/gui/insEdit.cpp:7456 src/gui/insEdit.cpp:7466 src/gui/insEdit.cpp:7474 +msgid "Pitch" +msgstr "" + +#: src/gui/guiConst.cpp:231 +msgid "Time" +msgstr "" + +#: src/gui/guiConst.cpp:233 +msgid "System (Primary)" +msgstr "" + +#: src/gui/guiConst.cpp:234 +msgid "System (Secondary)" +msgstr "" + +#: src/gui/guiConst.cpp:235 +msgid "Miscellaneous" +msgstr "" + +#: src/gui/guiConst.cpp:530 +msgid "---Global" +msgstr "" + +#: src/gui/guiConst.cpp:532 +msgid "Open file" +msgstr "" + +#: src/gui/guiConst.cpp:533 +msgid "Restore backup" +msgstr "" + +#: src/gui/guiConst.cpp:534 +msgid "Save file" +msgstr "" + +#: src/gui/guiConst.cpp:535 +msgid "Save as" +msgstr "" + +#: src/gui/guiConst.cpp:537 src/gui/sampleEdit.cpp:982 +msgid "Undo" +msgstr "" + +#: src/gui/guiConst.cpp:539 src/gui/guiConst.cpp:541 src/gui/sampleEdit.cpp:989 +msgid "Redo" +msgstr "" + +#: src/gui/guiConst.cpp:543 +msgid "Exit" +msgstr "" + +#: src/gui/guiConst.cpp:544 +msgid "Play/Stop (toggle)" +msgstr "" + +#: src/gui/guiConst.cpp:547 +msgid "Play (from beginning)" +msgstr "" + +#: src/gui/guiConst.cpp:548 +msgid "Play (repeat pattern)" +msgstr "" + +#: src/gui/guiConst.cpp:549 +msgid "Play from cursor" +msgstr "" + +#: src/gui/guiConst.cpp:550 +msgid "Step row" +msgstr "" + +#: src/gui/guiConst.cpp:551 +msgid "Octave up" +msgstr "" + +#: src/gui/guiConst.cpp:552 +msgid "Octave down" +msgstr "" + +#: src/gui/guiConst.cpp:553 +msgid "Previous instrument" +msgstr "" + +#: src/gui/guiConst.cpp:554 +msgid "Next instrument" +msgstr "" + +#: src/gui/guiConst.cpp:555 +msgid "Increase edit step" +msgstr "" + +#: src/gui/guiConst.cpp:556 +msgid "Decrease edit step" +msgstr "" + +#: src/gui/guiConst.cpp:557 +msgid "Toggle edit mode" +msgstr "" + +#: src/gui/guiConst.cpp:559 +msgid "Toggle repeat pattern" +msgstr "" + +#: src/gui/guiConst.cpp:562 +msgid "Toggle full-screen" +msgstr "" + +#: src/gui/guiConst.cpp:563 +msgid "Request voice from TX81Z" +msgstr "" + +#: src/gui/guiConst.cpp:565 +msgid "Clear song data" +msgstr "" + +#: src/gui/guiConst.cpp:567 src/gui/gui.cpp:5561 src/gui/gui.cpp:5613 +msgid "Command Palette" +msgstr "" + +#: src/gui/guiConst.cpp:569 +msgid "Recent files (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:570 +msgid "Instruments (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:571 +msgid "Samples (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:572 +msgid "Change instrument (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:573 +msgid "Add chip (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:576 +msgid "Edit Controls" +msgstr "" + +#: src/gui/guiConst.cpp:578 +msgid "Instrument List" +msgstr "" + +#: src/gui/guiConst.cpp:579 +msgid "Instrument Editor" +msgstr "" + +#: src/gui/guiConst.cpp:580 +msgid "Song Information" +msgstr "" + +#: src/gui/guiConst.cpp:583 +msgid "Wavetable List" +msgstr "" + +#: src/gui/guiConst.cpp:584 +msgid "Wavetable Editor" +msgstr "" + +#: src/gui/guiConst.cpp:585 +msgid "Sample List" +msgstr "" + +#: src/gui/guiConst.cpp:586 +msgid "Sample Editor" +msgstr "" + +#: src/gui/guiConst.cpp:594 +msgid "Debug Menu" +msgstr "" + +#: src/gui/guiConst.cpp:595 +msgid "Oscilloscope (master)" +msgstr "" + +#: src/gui/guiConst.cpp:596 +msgid "Volume Meter" +msgstr "" + +#: src/gui/guiConst.cpp:597 +msgid "Statistics" +msgstr "" + +#: src/gui/guiConst.cpp:598 +msgid "Compatibility Flags" +msgstr "" + +#: src/gui/guiConst.cpp:599 +msgid "Piano" +msgstr "" + +#: src/gui/guiConst.cpp:600 +msgid "Song Comments" +msgstr "" + +#: src/gui/guiConst.cpp:602 +msgid "Pattern Manager" +msgstr "" + +#: src/gui/guiConst.cpp:603 +msgid "Chip Manager" +msgstr "" + +#: src/gui/guiConst.cpp:604 +msgid "Register View" +msgstr "" + +#: src/gui/guiConst.cpp:605 +msgid "Log Viewer" +msgstr "" + +#: src/gui/guiConst.cpp:606 +msgid "Effect List" +msgstr "" + +#: src/gui/guiConst.cpp:607 +msgid "Oscilloscope (per-channel)" +msgstr "" + +#: src/gui/guiConst.cpp:609 +msgid "Find/Replace" +msgstr "" + +#: src/gui/guiConst.cpp:610 +msgid "Clock" +msgstr "" + +#: src/gui/guiConst.cpp:612 +msgid "Oscilloscope (X-Y)" +msgstr "" + +#: src/gui/guiConst.cpp:613 +msgid "Memory Composition" +msgstr "" + +#: src/gui/guiConst.cpp:614 +msgid "Command Stream Player" +msgstr "" + +#: src/gui/guiConst.cpp:615 +msgid "User Presets" +msgstr "" + +#: src/gui/guiConst.cpp:617 +msgid "Collapse/expand current window" +msgstr "" + +#: src/gui/guiConst.cpp:618 +msgid "Close current window" +msgstr "" + +#: src/gui/guiConst.cpp:621 +msgid "---Pattern" +msgstr "" + +#: src/gui/guiConst.cpp:622 +msgid "Transpose (+1)" +msgstr "" + +#: src/gui/guiConst.cpp:623 +msgid "Transpose (-1)" +msgstr "" + +#: src/gui/guiConst.cpp:624 +msgid "Transpose (+1 octave)" +msgstr "" + +#: src/gui/guiConst.cpp:625 +msgid "Transpose (-1 octave)" +msgstr "" + +#: src/gui/guiConst.cpp:626 +msgid "Increase values (+1)" +msgstr "" + +#: src/gui/guiConst.cpp:627 +msgid "Increase values (-1)" +msgstr "" + +#: src/gui/guiConst.cpp:628 +msgid "Increase values (+16)" +msgstr "" + +#: src/gui/guiConst.cpp:629 +msgid "Increase values (-16)" +msgstr "" + +#: src/gui/guiConst.cpp:630 +msgid "Select all" +msgstr "" + +#: src/gui/guiConst.cpp:631 +msgid "Cut" +msgstr "" + +#: src/gui/guiConst.cpp:632 +msgid "Copy" +msgstr "" + +#: src/gui/guiConst.cpp:633 +msgid "Paste" +msgstr "" + +#: src/gui/guiConst.cpp:634 +msgid "Paste Mix (foreground)" +msgstr "" + +#: src/gui/guiConst.cpp:635 +msgid "Paste Mix (background)" +msgstr "" + +#: src/gui/guiConst.cpp:636 +msgid "Paste Flood" +msgstr "" + +#: src/gui/guiConst.cpp:637 +msgid "Paste Overflow" +msgstr "" + +#: src/gui/guiConst.cpp:638 +msgid "Move cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:639 +msgid "Move cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:640 +msgid "Move cursor left" +msgstr "" + +#: src/gui/guiConst.cpp:641 +msgid "Move cursor right" +msgstr "" + +#: src/gui/guiConst.cpp:642 +msgid "Move cursor up by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:643 +msgid "Move cursor down by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:644 +msgid "Move cursor to previous channel" +msgstr "" + +#: src/gui/guiConst.cpp:645 +msgid "Move cursor to next channel" +msgstr "" + +#: src/gui/guiConst.cpp:646 +msgid "Move cursor to next channel (overflow)" +msgstr "" + +#: src/gui/guiConst.cpp:647 +msgid "Move cursor to previous channel (overflow)" +msgstr "" + +#: src/gui/guiConst.cpp:648 +msgid "Move cursor to beginning of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:649 +msgid "Move cursor to end of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:650 +msgid "Move cursor up (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:651 +msgid "Move cursor down (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:652 +msgid "Expand selection upwards" +msgstr "" + +#: src/gui/guiConst.cpp:653 +msgid "Expand selection downwards" +msgstr "" + +#: src/gui/guiConst.cpp:654 +msgid "Expand selection to the left" +msgstr "" + +#: src/gui/guiConst.cpp:655 +msgid "Expand selection to the right" +msgstr "" + +#: src/gui/guiConst.cpp:656 +msgid "Expand selection upwards by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:657 +msgid "Expand selection downwards by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:658 +msgid "Expand selection to beginning of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:659 +msgid "Expand selection to end of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:660 +msgid "Expand selection upwards (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:661 +msgid "Expand selection downwards (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:662 +msgid "Move selection up" +msgstr "" + +#: src/gui/guiConst.cpp:663 +msgid "Move selection down" +msgstr "" + +#: src/gui/guiConst.cpp:664 +msgid "Move selection to previous channel" +msgstr "" + +#: src/gui/guiConst.cpp:665 +msgid "Move selection to next channel" +msgstr "" + +#: src/gui/guiConst.cpp:667 +msgid "Pull delete" +msgstr "" + +#: src/gui/guiConst.cpp:668 +msgid "Insert" +msgstr "" + +#: src/gui/guiConst.cpp:669 +msgid "Mute channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:670 +msgid "Solo channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:671 +msgid "Unmute all channels" +msgstr "" + +#: src/gui/guiConst.cpp:672 +msgid "Go to next order" +msgstr "" + +#: src/gui/guiConst.cpp:673 +msgid "Go to previous order" +msgstr "" + +#: src/gui/guiConst.cpp:674 +msgid "Collapse channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:675 +msgid "Increase effect columns" +msgstr "" + +#: src/gui/guiConst.cpp:676 +msgid "Decrease effect columns" +msgstr "" + +#: src/gui/guiConst.cpp:677 +msgid "Interpolate" +msgstr "" + +#: src/gui/guiConst.cpp:678 src/gui/insEdit.cpp:530 +msgid "Fade" +msgstr "" + +#: src/gui/guiConst.cpp:679 +msgid "Invert values" +msgstr "" + +#: src/gui/guiConst.cpp:680 +msgid "Flip selection" +msgstr "" + +#: src/gui/guiConst.cpp:681 +msgid "Collapse rows" +msgstr "" + +#: src/gui/guiConst.cpp:682 +msgid "Expand rows" +msgstr "" + +#: src/gui/guiConst.cpp:683 +msgid "Collapse pattern" +msgstr "" + +#: src/gui/guiConst.cpp:684 +msgid "Expand pattern" +msgstr "" + +#: src/gui/guiConst.cpp:685 +msgid "Collapse song" +msgstr "" + +#: src/gui/guiConst.cpp:686 +msgid "Expand song" +msgstr "" + +#: src/gui/guiConst.cpp:687 +msgid "Set note input latch" +msgstr "" + +#: src/gui/guiConst.cpp:688 +msgid "Change mobile scroll mode" +msgstr "" + +#: src/gui/guiConst.cpp:689 +msgid "Clear note input latch" +msgstr "" + +#: src/gui/guiConst.cpp:692 +msgid "---Instrument list" +msgstr "" + +#: src/gui/guiConst.cpp:693 +msgid "Add instrument" +msgstr "" + +#: src/gui/guiConst.cpp:694 +msgid "Duplicate instrument" +msgstr "" + +#: src/gui/guiConst.cpp:695 +msgid "Open instrument" +msgstr "" + +#: src/gui/guiConst.cpp:696 +msgid "Open instrument (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:697 +msgid "Save instrument" +msgstr "" + +#: src/gui/guiConst.cpp:698 +msgid "Save instrument (.dmp)" +msgstr "" + +#: src/gui/guiConst.cpp:699 +msgid "Move instrument up in list" +msgstr "" + +#: src/gui/guiConst.cpp:700 +msgid "Move instrument down in list" +msgstr "" + +#: src/gui/guiConst.cpp:701 +msgid "Delete instrument" +msgstr "" + +#: src/gui/guiConst.cpp:702 +msgid "Edit instrument" +msgstr "" + +#: src/gui/guiConst.cpp:703 +msgid "Instrument cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:704 +msgid "Instrument cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:705 +msgid "Instruments: toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:708 +msgid "---Wavetable list" +msgstr "" + +#: src/gui/guiConst.cpp:709 +msgid "Add wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:710 +msgid "Duplicate wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:711 +msgid "Open wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:712 +msgid "Open wavetable (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:713 +msgid "Save wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:714 +msgid "Save wavetable (.dmw)" +msgstr "" + +#: src/gui/guiConst.cpp:715 +msgid "Save wavetable (raw)" +msgstr "" + +#: src/gui/guiConst.cpp:716 +msgid "Move wavetable up in list" +msgstr "" + +#: src/gui/guiConst.cpp:717 +msgid "Move wavetable down in list" +msgstr "" + +#: src/gui/guiConst.cpp:718 +msgid "Delete wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:719 +msgid "Edit wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:720 +msgid "Wavetable cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:721 +msgid "Wavetable cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:722 +msgid "Wavetables: toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:725 +msgid "---Sample list" +msgstr "" + +#: src/gui/guiConst.cpp:726 +msgid "Add sample" +msgstr "" + +#: src/gui/guiConst.cpp:727 +msgid "Duplicate sample" +msgstr "" + +#: src/gui/guiConst.cpp:728 +msgid "Open sample" +msgstr "" + +#: src/gui/guiConst.cpp:729 +msgid "Open sample (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:730 +msgid "Import raw sample data" +msgstr "" + +#: src/gui/guiConst.cpp:731 +msgid "Import raw sample data (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:732 +msgid "Save sample" +msgstr "" + +#: src/gui/guiConst.cpp:733 +msgid "Save sample (raw)" +msgstr "" + +#: src/gui/guiConst.cpp:734 +msgid "Move sample up in list" +msgstr "" + +#: src/gui/guiConst.cpp:735 +msgid "Move sample down in list" +msgstr "" + +#: src/gui/guiConst.cpp:736 +msgid "Delete sample" +msgstr "" + +#: src/gui/guiConst.cpp:737 +msgid "Edit sample" +msgstr "" + +#: src/gui/guiConst.cpp:738 +msgid "Sample cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:739 +msgid "Sample cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:740 +msgid "Sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:741 src/gui/sampleEdit.cpp:1339 +msgid "Stop sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:742 +msgid "Samples: Toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:743 +msgid "Samples: Make me a drum kit" +msgstr "" + +#: src/gui/guiConst.cpp:746 +msgid "---Sample editor" +msgstr "" + +#: src/gui/guiConst.cpp:747 +msgid "Sample editor mode: Select" +msgstr "" + +#: src/gui/guiConst.cpp:748 +msgid "Sample editor mode: Draw" +msgstr "" + +#: src/gui/guiConst.cpp:749 +msgid "Sample editor: Cut" +msgstr "" + +#: src/gui/guiConst.cpp:750 +msgid "Sample editor: Copy" +msgstr "" + +#: src/gui/guiConst.cpp:751 +msgid "Sample editor: Paste" +msgstr "" + +#: src/gui/guiConst.cpp:752 +msgid "Sample editor: Paste replace" +msgstr "" + +#: src/gui/guiConst.cpp:753 +msgid "Sample editor: Paste mix" +msgstr "" + +#: src/gui/guiConst.cpp:754 +msgid "Sample editor: Select all" +msgstr "" + +#: src/gui/guiConst.cpp:755 +msgid "Sample editor: Resize" +msgstr "" + +#: src/gui/guiConst.cpp:756 +msgid "Sample editor: Resample" +msgstr "" + +#: src/gui/guiConst.cpp:757 +msgid "Sample editor: Amplify" +msgstr "" + +#: src/gui/guiConst.cpp:758 +msgid "Sample editor: Normalize" +msgstr "" + +#: src/gui/guiConst.cpp:759 +msgid "Sample editor: Fade in" +msgstr "" + +#: src/gui/guiConst.cpp:760 +msgid "Sample editor: Fade out" +msgstr "" + +#: src/gui/guiConst.cpp:761 +msgid "Sample editor: Apply silence" +msgstr "" + +#: src/gui/guiConst.cpp:762 +msgid "Sample editor: Insert silence" +msgstr "" + +#: src/gui/guiConst.cpp:763 +msgid "Sample editor: Delete" +msgstr "" + +#: src/gui/guiConst.cpp:764 +msgid "Sample editor: Trim" +msgstr "" + +#: src/gui/guiConst.cpp:765 +msgid "Sample editor: Reverse" +msgstr "" + +#: src/gui/guiConst.cpp:766 +msgid "Sample editor: Invert" +msgstr "" + +#: src/gui/guiConst.cpp:767 +msgid "Sample editor: Signed/unsigned exchange" +msgstr "" + +#: src/gui/guiConst.cpp:768 +msgid "Sample editor: Apply filter" +msgstr "" + +#: src/gui/guiConst.cpp:769 +msgid "Sample editor: Crossfade loop points" +msgstr "" + +#: src/gui/guiConst.cpp:770 +msgid "Sample editor: Preview sample" +msgstr "" + +#: src/gui/guiConst.cpp:771 +msgid "Sample editor: Stop sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:772 +msgid "Sample editor: Zoom in" +msgstr "" + +#: src/gui/guiConst.cpp:773 +msgid "Sample editor: Zoom out" +msgstr "" + +#: src/gui/guiConst.cpp:774 +msgid "Sample editor: Toggle auto-zoom" +msgstr "" + +#: src/gui/guiConst.cpp:775 +msgid "Sample editor: Create instrument from sample" +msgstr "" + +#: src/gui/guiConst.cpp:776 +msgid "Sample editor: Set loop to selection" +msgstr "" + +#: src/gui/guiConst.cpp:777 +msgid "Sample editor: Create wavetable from selection" +msgstr "" + +#: src/gui/guiConst.cpp:780 +msgid "---Orders" +msgstr "" + +#: src/gui/guiConst.cpp:781 +msgid "Previous order" +msgstr "" + +#: src/gui/guiConst.cpp:782 +msgid "Next order" +msgstr "" + +#: src/gui/guiConst.cpp:783 +msgid "Order cursor left" +msgstr "" + +#: src/gui/guiConst.cpp:784 +msgid "Order cursor right" +msgstr "" + +#: src/gui/guiConst.cpp:785 +msgid "Increase order value" +msgstr "" + +#: src/gui/guiConst.cpp:786 +msgid "Decrease order value" +msgstr "" + +#: src/gui/guiConst.cpp:787 +msgid "Switch order edit mode" +msgstr "" + +#: src/gui/guiConst.cpp:788 +msgid "Order: toggle alter entire row" +msgstr "" + +#: src/gui/guiConst.cpp:789 +msgid "Add order" +msgstr "" + +#: src/gui/guiConst.cpp:790 +msgid "Duplicate order" +msgstr "" + +#: src/gui/guiConst.cpp:791 +msgid "Deep clone order" +msgstr "" + +#: src/gui/guiConst.cpp:792 +msgid "Copy current order to end of song" +msgstr "" + +#: src/gui/guiConst.cpp:793 +msgid "Deep clone current order to end of song" +msgstr "" + +#: src/gui/guiConst.cpp:797 +msgid "Replay order" +msgstr "" + +#: src/gui/guiConst.cpp:1392 +msgid "All chips" +msgstr "" + +#: src/gui/guiConst.cpp:1393 src/gui/waveEdit.cpp:668 +msgid "FM" +msgstr "" + +#: src/gui/guiConst.cpp:1394 src/gui/waveEdit.cpp:199 src/gui/insEdit.cpp:183 +#: src/gui/insEdit.cpp:194 src/gui/insEdit.cpp:326 src/gui/insEdit.cpp:656 +msgid "Square" +msgstr "" + +#: src/gui/guiConst.cpp:1395 src/gui/insEdit.cpp:6652 +msgid "Wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:1396 src/gui/insEdit.cpp:6954 src/gui/insEdit.cpp:7204 +#: src/gui/insEdit.cpp:7458 src/gui/insEdit.cpp:7480 +msgid "Special" +msgstr "" + +#: src/gui/piano.cpp:103 +msgid "Options" +msgstr "" + +#: src/gui/piano.cpp:106 +msgid "Key layout:" +msgstr "" + +#: src/gui/piano.cpp:108 +msgid "Automatic" +msgstr "" + +#: src/gui/piano.cpp:111 +msgid "Standard" +msgstr "" + +#: src/gui/piano.cpp:114 +msgid "Continuous" +msgstr "" + +#: src/gui/piano.cpp:118 +msgid "Value input pad:" +msgstr "" + +#: src/gui/piano.cpp:120 +msgid "Disabled" +msgstr "" + +#: src/gui/piano.cpp:123 +msgid "Replace piano" +msgstr "" + +#: src/gui/piano.cpp:126 +msgid "Split (automatic)" +msgstr "" + +#: src/gui/piano.cpp:129 +msgid "Split (always visible)" +msgstr "" + +#: src/gui/piano.cpp:133 +msgid "Share play/edit offset/range" +msgstr "" + +#: src/gui/piano.cpp:134 +msgid "Read-only (can't input notes)" +msgstr "" + +#: src/gui/waveEdit.cpp:30 src/gui/waveEdit.cpp:192 src/gui/insEdit.cpp:177 +#: src/gui/insEdit.cpp:188 src/gui/insEdit.cpp:199 +msgid "Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:31 src/gui/waveEdit.cpp:217 src/gui/insEdit.cpp:200 +#: src/gui/insEdit.cpp:324 src/gui/insEdit.cpp:658 +msgid "Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:32 src/gui/waveEdit.cpp:202 src/gui/insEdit.cpp:325 +#: src/gui/insEdit.cpp:654 +msgid "Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:33 +msgid "Pulse" +msgstr "" + +#: src/gui/waveEdit.cpp:38 +msgid "Linear" +msgstr "" + +#: src/gui/waveEdit.cpp:39 +msgid "Cosine" +msgstr "" + +#: src/gui/waveEdit.cpp:40 +msgid "Cubic" +msgstr "" + +#: src/gui/waveEdit.cpp:193 +msgid "Rect. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:194 +msgid "Abs. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:195 +msgid "Quart. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:196 +msgid "Squish. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:197 +msgid "Abs. Squish. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:200 +msgid "rectSquare" +msgstr "" + +#: src/gui/waveEdit.cpp:203 +msgid "Rect. Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:204 +msgid "Abs. Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:206 +msgid "Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:207 +msgid "Rect. Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:208 +msgid "Abs. Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:210 +msgid "Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:211 +msgid "Rect. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:212 +msgid "Abs. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:213 +msgid "Quart. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:214 +msgid "Squish. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:215 +msgid "Squish. Abs. Cub. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:218 +msgid "Rect. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:219 +msgid "Abs. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:220 +msgid "Quart. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:221 +msgid "Squish. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:222 +msgid "Abs. Squish. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:224 +msgid "Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:225 +msgid "Rect. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:226 +msgid "Abs. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:227 +msgid "Quart. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:228 +msgid "Squish. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:229 +msgid "Squish. Abs. Cub. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:412 src/gui/waveEdit.cpp:413 +msgid "no wavetable selected" +msgstr "" + +#: src/gui/waveEdit.cpp:424 src/gui/sampleEdit.cpp:111 src/gui/insEdit.cpp:5223 +msgid "select one..." +msgstr "" + +#: src/gui/waveEdit.cpp:432 src/gui/waveEdit.cpp:439 src/gui/sampleEdit.cpp:119 +#: src/gui/sampleEdit.cpp:126 src/gui/insEdit.cpp:5236 src/gui/insEdit.cpp:5243 +msgid "or" +msgstr "" + +#: src/gui/waveEdit.cpp:441 src/gui/sampleEdit.cpp:128 src/gui/insEdit.cpp:5245 +msgid "Create New" +msgstr "" + +#: src/gui/waveEdit.cpp:487 +msgid "Steps" +msgstr "" + +#: src/gui/waveEdit.cpp:491 +msgid "Lines" +msgstr "" + +#: src/gui/waveEdit.cpp:496 src/gui/insEdit.cpp:2687 +msgid "Width" +msgstr "" + +#: src/gui/waveEdit.cpp:498 +msgid "" +"use a width of:\n" +"- any on Amiga/N163\n" +"- 32 on Game Boy, PC Engine, SCC, Konami Bubble System, Namco WSG, Virtual " +"Boy and WonderSwan\n" +"- 64 on FDS\n" +"- 128 on X1-010\n" +"any other widths will be scaled during playback." +msgstr "" + +#: src/gui/waveEdit.cpp:510 +msgid "Height" +msgstr "" + +#: src/gui/waveEdit.cpp:512 +msgid "" +"use a height of:\n" +"- 16 for Game Boy, WonderSwan, Namco WSG, Konami Bubble System, X1-010 " +"Envelope shape and N163\n" +"- 32 for PC Engine\n" +"- 64 for FDS and Virtual Boy\n" +"- 256 for X1-010 and SCC\n" +"any other heights will be scaled during playback." +msgstr "" + +#: src/gui/waveEdit.cpp:578 +msgid "Shapes" +msgstr "" + +#: src/gui/waveEdit.cpp:597 src/gui/insEdit.cpp:5879 src/gui/insEdit.cpp:6922 +#: src/gui/insEdit.cpp:6948 src/gui/insEdit.cpp:7008 src/gui/insEdit.cpp:7048 +#: src/gui/insEdit.cpp:7150 src/gui/insEdit.cpp:7436 src/gui/insEdit.cpp:7472 +msgid "Duty" +msgstr "" + +#: src/gui/waveEdit.cpp:607 +msgid "Exponent" +msgstr "" + +#: src/gui/waveEdit.cpp:617 +msgid "XOR Point" +msgstr "" + +#: src/gui/waveEdit.cpp:627 +msgid "Amplitude/Phase" +msgstr "" + +#: src/gui/waveEdit.cpp:679 src/gui/waveEdit.cpp:723 src/gui/waveEdit.cpp:728 +msgid "Op" +msgstr "" + +#: src/gui/waveEdit.cpp:683 +msgid "Mult" +msgstr "" + +#: src/gui/waveEdit.cpp:685 +msgid "FB" +msgstr "" + +#: src/gui/waveEdit.cpp:730 src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:4148 +#: src/gui/insEdit.cpp:5812 src/gui/insEdit.cpp:6940 src/gui/insEdit.cpp:6949 +#: src/gui/insEdit.cpp:6963 src/gui/insEdit.cpp:6980 src/gui/insEdit.cpp:6991 +#: src/gui/insEdit.cpp:7004 src/gui/insEdit.cpp:7018 src/gui/insEdit.cpp:7025 +#: src/gui/insEdit.cpp:7035 src/gui/insEdit.cpp:7041 src/gui/insEdit.cpp:7050 +#: src/gui/insEdit.cpp:7074 src/gui/insEdit.cpp:7084 src/gui/insEdit.cpp:7094 +#: src/gui/insEdit.cpp:7101 src/gui/insEdit.cpp:7116 src/gui/insEdit.cpp:7131 +#: src/gui/insEdit.cpp:7151 src/gui/insEdit.cpp:7158 src/gui/insEdit.cpp:7200 +#: src/gui/insEdit.cpp:7211 src/gui/insEdit.cpp:7224 src/gui/insEdit.cpp:7349 +#: src/gui/insEdit.cpp:7425 src/gui/insEdit.cpp:7445 src/gui/insEdit.cpp:7453 +#: src/gui/insEdit.cpp:7473 +msgid "Waveform" +msgstr "" + +#: src/gui/waveEdit.cpp:749 src/gui/waveEdit.cpp:750 +msgid "Connection Diagram" +msgstr "" + +#: src/gui/waveEdit.cpp:765 +msgid "Out" +msgstr "" + +#: src/gui/waveEdit.cpp:872 +msgid "WaveTools" +msgstr "" + +#: src/gui/waveEdit.cpp:890 +msgid "Scale X" +msgstr "" + +#: src/gui/waveEdit.cpp:896 +msgid "wavetable longer than 256 samples!" +msgstr "" + +#: src/gui/waveEdit.cpp:960 +msgid "Scale Y" +msgstr "" + +#: src/gui/waveEdit.cpp:978 +msgid "Offset X" +msgstr "" + +#: src/gui/waveEdit.cpp:1000 +msgid "Offset Y" +msgstr "" + +#: src/gui/waveEdit.cpp:1017 +msgid "Smooth" +msgstr "" + +#: src/gui/waveEdit.cpp:1045 src/gui/sampleEdit.cpp:996 +msgid "Amplify" +msgstr "" + +#: src/gui/waveEdit.cpp:1063 src/gui/sampleEdit.cpp:1046 +msgid "Normalize" +msgstr "" + +#: src/gui/waveEdit.cpp:1105 src/gui/sampleEdit.cpp:1121 +msgid "Reverse" +msgstr "" + +#: src/gui/waveEdit.cpp:1117 +msgid "Half" +msgstr "" + +#: src/gui/waveEdit.cpp:1127 +msgid "Double" +msgstr "" + +#: src/gui/waveEdit.cpp:1137 +msgid "Convert Signed/Unsigned" +msgstr "" + +#: src/gui/waveEdit.cpp:1149 src/gui/gui.cpp:3040 +msgid "Randomize" +msgstr "" + +#: src/gui/waveEdit.cpp:1167 +msgid "Dec" +msgstr "" + +#: src/gui/waveEdit.cpp:1171 src/gui/csPlayer.cpp:247 +msgid "Hex" +msgstr "" + +#: src/gui/waveEdit.cpp:1179 +msgid "Signed/Unsigned" +msgstr "" + +#: src/gui/sampleEdit.cpp:65 +#, c-format +msgid "%s: maximum sample rate is %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:72 +#, c-format +msgid "%s: minimum sample rate is %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:79 +#, c-format +msgid "%s: sample rate must be %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:99 src/gui/sampleEdit.cpp:100 +msgid "no sample selected" +msgstr "" + +#: src/gui/sampleEdit.cpp:229 +#, c-format +msgid "SNES: loop start must be a multiple of 16 (try with %d)" +msgstr "" + +#: src/gui/sampleEdit.cpp:235 +#, c-format +msgid "SNES: loop end must be a multiple of 16 (try with %d)" +msgstr "" + +#: src/gui/sampleEdit.cpp:240 +msgid "SNES: sample length will be padded to multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:249 +msgid "QSound: loop cannot be longer than 32767 samples" +msgstr "" + +#: src/gui/sampleEdit.cpp:259 +msgid "NES: loop point ignored on DPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:263 +msgid "NES: maximum DPCM sample length is 32648" +msgstr "" + +#: src/gui/sampleEdit.cpp:268 +msgid "X1-010: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:271 +msgid "X1-010: maximum sample length is 131072" +msgstr "" + +#: src/gui/sampleEdit.cpp:276 +msgid "GA20: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:287 +msgid "YM2608: loop point ignored on ADPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:290 +msgid "YM2608: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:300 +msgid "YM2610: ADPCM-A samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:302 +msgid "YM2610: loop point ignored on ADPCM-B (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:305 +msgid "YM2610: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:309 +msgid "YM2610: maximum ADPCM-A sample length is 2097152" +msgstr "" + +#: src/gui/sampleEdit.cpp:318 +msgid "Y8950: loop point ignored on ADPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:321 +msgid "Y8950: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:328 +msgid "Amiga: loop start must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:331 +msgid "Amiga: loop end must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:335 +msgid "Amiga: maximum sample length is 131070" +msgstr "" + +#: src/gui/sampleEdit.cpp:344 +msgid "SegaPCM: maximum sample length is 65280" +msgstr "" + +#: src/gui/sampleEdit.cpp:353 +msgid "K053260: loop point ignored (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:357 +msgid "K053260: maximum sample length is 65535" +msgstr "" + +#: src/gui/sampleEdit.cpp:362 +msgid "C140: maximum sample length is 65535" +msgstr "" + +#: src/gui/sampleEdit.cpp:371 +msgid "C219: loop start must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:374 +msgid "C219: loop end must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:378 +msgid "C219: maximum sample length is 131072" +msgstr "" + +#: src/gui/sampleEdit.cpp:386 +msgid "MSM6295: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:389 +msgid "MSM6295: maximum bankswitched sample length is 129024" +msgstr "" + +#: src/gui/sampleEdit.cpp:395 +msgid "GBA DMA: loop start must be a multiple of 4" +msgstr "" + +#: src/gui/sampleEdit.cpp:398 +msgid "GBA DMA: loop length must be a multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:402 +msgid "GBA DMA: sample length will be padded to multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:411 +msgid "ES5506: backward loop mode isn't supported" +msgstr "" + +#: src/gui/sampleEdit.cpp:414 +msgid "" +"backward/ping-pong only supported in Generic PCM DAC\n" +"ping-pong also on ES5506" +msgstr "" + +#: src/gui/sampleEdit.cpp:444 +msgid "Info" +msgstr "" + +#: src/gui/sampleEdit.cpp:447 src/gui/sampleEdit.cpp:933 +msgid "Rate" +msgstr "" + +#: src/gui/sampleEdit.cpp:453 +msgid "Compat Rate" +msgstr "" + +#: src/gui/sampleEdit.cpp:457 +msgid "" +"used in DefleMask-compatible sample mode (17xx), in where samples are mapped " +"to an octave." +msgstr "" + +#: src/gui/sampleEdit.cpp:463 +#, c-format +msgid "Loop (length: %d)##Loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:463 src/gui/insEdit.cpp:544 src/gui/insEdit.cpp:554 +#: src/gui/insEdit.cpp:605 src/gui/insEdit.cpp:6017 +msgid "Loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:487 src/gui/sampleEdit.cpp:716 +#: src/gui/sampleEdit.cpp:752 +msgid "changing the loop in a BRR sample may result in glitches!" +msgstr "" + +#: src/gui/sampleEdit.cpp:501 src/gui/insEdit.cpp:5321 +msgid "Type" +msgstr "" + +#: src/gui/sampleEdit.cpp:529 +msgid "BRR emphasis" +msgstr "" + +#: src/gui/sampleEdit.cpp:538 +msgid "" +"this is a BRR sample.\n" +"enabling this option will muffle it (only affects non-SNES chips)." +msgstr "" + +#: src/gui/sampleEdit.cpp:540 +msgid "" +"enable this option to slightly boost high frequencies\n" +"to compensate for the SNES' Gaussian filter's muffle." +msgstr "" + +#: src/gui/sampleEdit.cpp:546 +msgid "8-bit dither" +msgstr "" + +#: src/gui/sampleEdit.cpp:554 +msgid "dither the sample when used on a chip that only supports 8-bit samples." +msgstr "" + +#: src/gui/sampleEdit.cpp:695 src/gui/gui.cpp:2969 +msgid "Start" +msgstr "" + +#: src/gui/sampleEdit.cpp:731 src/gui/gui.cpp:2977 +msgid "End" +msgstr "" + +#: src/gui/sampleEdit.cpp:841 +#, c-format +msgid "" +"%s\n" +"%d bytes free" +msgstr "" + +#: src/gui/sampleEdit.cpp:843 +#, c-format +msgid "" +"%s (%s)\n" +"%d bytes free" +msgstr "" + +#: src/gui/sampleEdit.cpp:847 +msgid "" +"\n" +"\n" +"not enough memory for this sample!" +msgstr "" + +#: src/gui/sampleEdit.cpp:871 +msgid "Edit mode: Select" +msgstr "" + +#: src/gui/sampleEdit.cpp:880 +msgid "Edit mode: Draw" +msgstr "" + +#: src/gui/sampleEdit.cpp:891 src/gui/sampleEdit.cpp:902 +msgid "Resize" +msgstr "" + +#: src/gui/sampleEdit.cpp:906 +msgid "couldn't resize! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:926 src/gui/sampleEdit.cpp:957 +msgid "Resample" +msgstr "" + +#: src/gui/sampleEdit.cpp:951 +msgid "Factor" +msgstr "" + +#: src/gui/sampleEdit.cpp:956 +msgid "Filter" +msgstr "" + +#: src/gui/sampleEdit.cpp:961 +msgid "couldn't resample! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:1010 src/gui/sampleEdit.cpp:1197 +#: src/gui/sampleEdit.cpp:1281 +msgid "Apply" +msgstr "" + +#: src/gui/sampleEdit.cpp:1053 +msgid "Fade in" +msgstr "" + +#: src/gui/sampleEdit.cpp:1060 +msgid "Fade out" +msgstr "" + +#: src/gui/sampleEdit.cpp:1065 +msgid "Insert silence" +msgstr "" + +#: src/gui/sampleEdit.cpp:1076 +msgid "Go" +msgstr "" + +#: src/gui/sampleEdit.cpp:1081 +msgid "couldn't insert! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:1098 +msgid "Apply silence" +msgstr "" + +#: src/gui/sampleEdit.cpp:1112 +msgid "Trim" +msgstr "" + +#: src/gui/sampleEdit.cpp:1135 +msgid "Signed/unsigned exchange" +msgstr "" + +#: src/gui/sampleEdit.cpp:1140 +msgid "Apply filter" +msgstr "" + +#: src/gui/sampleEdit.cpp:1151 +msgid "Cutoff:" +msgstr "" + +#: src/gui/sampleEdit.cpp:1161 src/gui/insEdit.cpp:5895 +#: src/gui/insEdit.cpp:5898 src/gui/insEdit.cpp:6953 src/gui/insEdit.cpp:7216 +#: src/gui/insEdit.cpp:7478 +msgid "Resonance" +msgstr "" + +#: src/gui/sampleEdit.cpp:1167 src/gui/insEdit.cpp:6897 +msgid "Power" +msgstr "" + +#: src/gui/sampleEdit.cpp:1181 +msgid "Low-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1186 +msgid "Band-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1191 +msgid "High-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1262 +msgid "Crossfade loop points" +msgstr "" + +#: src/gui/sampleEdit.cpp:1271 +msgid "Number of samples" +msgstr "" + +#: src/gui/sampleEdit.cpp:1277 +msgid "Linear <-> Equal power" +msgstr "" + +#: src/gui/sampleEdit.cpp:1283 +msgid "Crossfade: length would go out of bounds. Aborted..." +msgstr "" + +#: src/gui/sampleEdit.cpp:1286 +msgid "Crossfade: length would overflow loopStart. Try a smaller random value." +msgstr "" + +#: src/gui/sampleEdit.cpp:1332 +msgid "Preview sample" +msgstr "" + +#: src/gui/sampleEdit.cpp:1346 +msgid "Create instrument from sample" +msgstr "" + +#: src/gui/sampleEdit.cpp:1747 +msgid "paste (replace)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1750 +msgid "paste (mix)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1754 src/gui/gui.cpp:2763 +msgid "select all" +msgstr "" + +#: src/gui/sampleEdit.cpp:1758 +msgid "set loop to selection" +msgstr "" + +#: src/gui/sampleEdit.cpp:1761 +msgid "create wavetable from selection" +msgstr "" + +#: src/gui/sampleEdit.cpp:1767 +msgid "Draw" +msgstr "" + +#: src/gui/sampleEdit.cpp:1767 +msgid "Select" +msgstr "" + +#: src/gui/sampleEdit.cpp:1769 +#, c-format +msgid "%d samples, %d bytes" +msgstr "" + +#: src/gui/sampleEdit.cpp:1784 +#, c-format +msgid " (%d-%d: %d samples)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1976 +msgid "Non-8/16-bit samples cannot be edited without prior conversion." +msgstr "" + +#: src/gui/newSong.cpp:122 src/gui/newSong.cpp:123 +msgid "Choose a System!" +msgstr "" + +#: src/gui/newSong.cpp:179 +msgid "Categories" +msgstr "" + +#: src/gui/newSong.cpp:210 +msgid "no systems here yet!" +msgstr "" + +#: src/gui/newSong.cpp:212 +msgid "no results" +msgstr "" + +#: src/gui/newSong.cpp:228 +msgid "I'm feeling lucky" +msgstr "" + +#: src/gui/newSong.cpp:230 +msgid "no categories available! what in the world." +msgstr "" + +#: src/gui/newSong.cpp:265 +msgid "it appears you're extremely lucky today!" +msgstr "" + +#: src/gui/cursor.cpp:205 +#, c-format +msgid "finish selection: %d.%d,%d - %d.%d,%d" +msgstr "" + +#: src/gui/tutorial.cpp:485 +msgid "" +"Play demo songs?\n" +"- Down: Play current song\n" +"- Up: Play demo songs" +msgstr "" + +#: src/gui/tutorial.cpp:489 +msgid "" +"Welcome to Combat Vehicle!\n" +"\n" +"Controls:\n" +"X - Shoot Arrow Key - Move\n" +"Z - Special Esc - Quit" +msgstr "" + +#: src/gui/tutorial.cpp:494 +msgid "GAME OVER" +msgstr "" + +#: src/gui/tutorial.cpp:496 +msgid "High Score!" +msgstr "" + +#: src/gui/tutorial.cpp:656 +msgid "Welcome!" +msgstr "" + +#: src/gui/tutorial.cpp:659 +msgid "welcome to Furnace, the biggest open-source chiptune tracker!" +msgstr "" + +#: src/gui/tutorial.cpp:663 +msgid "here are some tips to get you started:" +msgstr "" + +#: src/gui/tutorial.cpp:666 +msgid "" +"- add an instrument by clicking on + in Instruments\n" +"- click on the pattern view to focus it\n" +"- channel columns have the following, in this order: note, instrument, " +"volume and effects\n" +"- hit space bar while on the pattern to toggle Edit Mode\n" +"- click on the pattern or use arrow keys to move the cursor\n" +"- values (instrument, volume, effects and effect values) are in hexadecimal\n" +"- hit enter to play/stop the song\n" +"- extend the song by adding more orders in the Orders window\n" +"- click on the Orders matrix to change the patterns of a channel (left click " +"increases; right click decreases)" +msgstr "" + +#: src/gui/tutorial.cpp:678 +msgid "" +"if you need help, you may:\n" +"- read the manual (a file called manual.pdf)\n" +"- ask for help in Discussions (https://github.com/tildearrow/furnace/" +"discussions), the Furnace Discord (https://discord.gg/EfrwT2wq7z) or Furnace " +"in Revolt (official: https://rvlt.gg/GRPS6tmc)" +msgstr "" + +#: src/gui/tutorial.cpp:685 +msgid "" +"if you find any issues, be sure to report them! the issue tracker is here: " +"https://github.com/tildearrow/furnace/issues" +msgstr "" + +#: src/gui/tutorial.cpp:1426 +#, c-format +msgid "STAGE %d" +msgstr "" + +#: src/gui/songInfo.cpp:50 +msgid "Author" +msgstr "" + +#: src/gui/songInfo.cpp:60 +msgid "Album" +msgstr "" + +#: src/gui/songInfo.cpp:79 +msgid "Auto" +msgstr "" + +#: src/gui/songInfo.cpp:100 +msgid "Tuning (A-4)" +msgstr "" + +#: src/gui/grooves.cpp:38 +msgid "use effect 09xx to select a groove pattern." +msgstr "" + +#: src/gui/grooves.cpp:48 src/gui/gui.cpp:4474 +msgid "pattern" +msgstr "" + +#: src/gui/grooves.cpp:132 +msgid "remove" +msgstr "" + +#: src/gui/doAction.cpp:45 src/gui/gui.cpp:4195 +msgid "Unsaved changes! Save changes before opening another file?" +msgstr "" + +#: src/gui/doAction.cpp:52 +msgid "Unsaved changes! Save changes before opening backup?" +msgstr "" + +#: src/gui/doAction.cpp:62 src/gui/gui.cpp:4231 src/gui/gui.cpp:5013 +#: src/gui/gui.cpp:5051 src/gui/gui.cpp:5057 src/gui/gui.cpp:5645 +#: src/gui/gui.cpp:5669 src/gui/gui.cpp:5693 src/gui/gui.cpp:5717 +#: src/gui/gui.cpp:5741 src/gui/gui.cpp:5765 +#, c-format +msgid "Error while saving file! (%s)" +msgstr "" + +#: src/gui/doAction.cpp:189 +msgid "Error while sending request (MIDI output not configured?)" +msgstr "" + +#: src/gui/doAction.cpp:197 +msgid "Select an option: (cannot be undone!)" +msgstr "" + +#: src/gui/doAction.cpp:691 src/gui/doAction.cpp:720 src/gui/doAction.cpp:1593 +#: src/gui/gui.cpp:6079 +msgid "too many instruments!" +msgstr "" + +#: src/gui/doAction.cpp:825 src/gui/doAction.cpp:843 src/gui/doAction.cpp:1634 +#: src/gui/gui.cpp:6147 src/gui/insEdit.cpp:6860 +msgid "too many wavetables!" +msgstr "" + +#: src/gui/doAction.cpp:909 src/gui/doAction.cpp:921 +msgid "too many samples!" +msgstr "" + +#: src/gui/doAction.cpp:1124 +msgid "couldn't paste! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/doAction.cpp:1628 +msgid "select at least one sample!" +msgstr "" + +#: src/gui/doAction.cpp:1630 +msgid "maximum size is 256 samples!" +msgstr "" + +#: src/gui/csPlayer.cpp:113 +msgid "Load" +msgstr "" + +#: src/gui/csPlayer.cpp:117 +msgid "Kill" +msgstr "" + +#: src/gui/csPlayer.cpp:119 +msgid "Kikai wa mou shindeiru!" +msgstr "" + +#: src/gui/csPlayer.cpp:123 +msgid "Burn Current Song" +msgstr "" + +#: src/gui/csPlayer.cpp:141 +msgid "Status" +msgstr "" + +#: src/gui/csPlayer.cpp:148 +msgid "start" +msgstr "" + +#: src/gui/csPlayer.cpp:150 +msgid "PC" +msgstr "" + +#: src/gui/csPlayer.cpp:152 +msgid "wait" +msgstr "" + +#: src/gui/csPlayer.cpp:154 +msgid "SP" +msgstr "" + +#: src/gui/csPlayer.cpp:156 src/gui/insEdit.cpp:2733 +msgid "note" +msgstr "" + +#: src/gui/csPlayer.cpp:158 src/gui/insEdit.cpp:2728 +msgid "pitch" +msgstr "" + +#: src/gui/csPlayer.cpp:160 +msgid "vol" +msgstr "" + +#: src/gui/csPlayer.cpp:162 +msgid "vols" +msgstr "" + +#: src/gui/csPlayer.cpp:164 +msgid "vib" +msgstr "" + +#: src/gui/csPlayer.cpp:166 +msgid "porta" +msgstr "" + +#: src/gui/csPlayer.cpp:168 +msgid "arp" +msgstr "" + +#: src/gui/csPlayer.cpp:203 +msgid "Trace" +msgstr "" + +#: src/gui/csPlayer.cpp:244 +msgid "Disassemble" +msgstr "" + +#: src/gui/gui.cpp:1130 src/gui/gui.cpp:1134 +msgid "the song is over!" +msgstr "" + +#: src/gui/gui.cpp:1661 +msgid "Open File" +msgstr "" + +#: src/gui/gui.cpp:1662 src/gui/gui.cpp:1792 src/gui/gui.cpp:1832 +#: src/gui/gui.cpp:1947 src/gui/gui.cpp:1956 src/gui/gui.cpp:1965 +#: src/gui/gui.cpp:2067 src/gui/gui.cpp:2087 src/gui/gui.cpp:2105 +msgid "compatible files" +msgstr "" + +#: src/gui/gui.cpp:1663 src/gui/gui.cpp:1737 src/gui/gui.cpp:1793 +#: src/gui/gui.cpp:1833 src/gui/gui.cpp:1845 src/gui/gui.cpp:1864 +#: src/gui/gui.cpp:2068 src/gui/gui.cpp:2078 src/gui/gui.cpp:2089 +#: src/gui/gui.cpp:2107 +msgid "all files" +msgstr "" + +#: src/gui/gui.cpp:1670 +msgid "no backups made yet!" +msgstr "" + +#: src/gui/gui.cpp:1675 src/gui/gui.cpp:1684 src/gui/gui.cpp:2124 +msgid "Furnace song" +msgstr "" + +#: src/gui/gui.cpp:1683 +msgid "Save File" +msgstr "" + +#: src/gui/gui.cpp:1692 src/gui/gui.cpp:1702 +msgid "Export DMF" +msgstr "" + +#: src/gui/gui.cpp:1693 +msgid "DefleMask 1.1.3 module" +msgstr "" + +#: src/gui/gui.cpp:1703 +msgid "DefleMask 1.0/legacy module" +msgstr "" + +#: src/gui/gui.cpp:1720 +msgid "Load Instrument" +msgstr "" + +#: src/gui/gui.cpp:1721 +msgid "all compatible files" +msgstr "" + +#: src/gui/gui.cpp:1722 src/gui/gui.cpp:1771 +msgid "Furnace instrument" +msgstr "" + +#: src/gui/gui.cpp:1723 src/gui/gui.cpp:1781 +msgid "DefleMask preset" +msgstr "" + +#: src/gui/gui.cpp:1724 +msgid "TFM Music Maker instrument" +msgstr "" + +#: src/gui/gui.cpp:1725 +msgid "VGM Music Maker instrument" +msgstr "" + +#: src/gui/gui.cpp:1726 +msgid "Scream Tracker 3 instrument" +msgstr "" + +#: src/gui/gui.cpp:1727 +msgid "SoundBlaster instrument" +msgstr "" + +#: src/gui/gui.cpp:1728 +msgid "Wohlstand OPL instrument" +msgstr "" + +#: src/gui/gui.cpp:1729 +msgid "Wohlstand OPN instrument" +msgstr "" + +#: src/gui/gui.cpp:1730 +msgid "Gens KMod patch dump" +msgstr "" + +#: src/gui/gui.cpp:1731 +msgid "BNK file (AdLib)" +msgstr "" + +#: src/gui/gui.cpp:1732 +msgid "FF preset bank" +msgstr "" + +#: src/gui/gui.cpp:1733 +msgid "2612edit GYB preset bank" +msgstr "" + +#: src/gui/gui.cpp:1734 +msgid "VOPM preset bank" +msgstr "" + +#: src/gui/gui.cpp:1735 +msgid "Wohlstand WOPL bank" +msgstr "" + +#: src/gui/gui.cpp:1736 +msgid "Wohlstand WOPN bank" +msgstr "" + +#: src/gui/gui.cpp:1770 src/gui/gui.cpp:1780 +msgid "Save Instrument" +msgstr "" + +#: src/gui/gui.cpp:1791 +msgid "Load Wavetable" +msgstr "" + +#: src/gui/gui.cpp:1803 src/gui/gui.cpp:1812 src/gui/gui.cpp:1821 +msgid "Save Wavetable" +msgstr "" + +#: src/gui/gui.cpp:1804 +msgid "Furnace wavetable" +msgstr "" + +#: src/gui/gui.cpp:1813 +msgid "DefleMask wavetable" +msgstr "" + +#: src/gui/gui.cpp:1822 +msgid "raw data" +msgstr "" + +#: src/gui/gui.cpp:1831 +msgid "Load Sample" +msgstr "" + +#: src/gui/gui.cpp:1844 +msgid "Load Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:1853 +msgid "Save Sample" +msgstr "" + +#: src/gui/gui.cpp:1854 src/gui/gui.cpp:1874 src/gui/gui.cpp:1884 +#: src/gui/gui.cpp:1894 +msgid "Wave file" +msgstr "" + +#: src/gui/gui.cpp:1863 +msgid "Save Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:1873 src/gui/gui.cpp:1883 src/gui/gui.cpp:1893 +msgid "Export Audio" +msgstr "" + +#: src/gui/gui.cpp:1903 +msgid "Export VGM" +msgstr "" + +#: src/gui/gui.cpp:1904 +msgid "VGM file" +msgstr "" + +#: src/gui/gui.cpp:1913 +msgid "Export ZSM" +msgstr "" + +#: src/gui/gui.cpp:1914 +msgid "ZSM file" +msgstr "" + +#: src/gui/gui.cpp:1923 src/gui/gui.cpp:1933 +msgid "Export Command Stream" +msgstr "" + +#: src/gui/gui.cpp:1924 +msgid "text file" +msgstr "" + +#: src/gui/gui.cpp:1934 +msgid "binary file" +msgstr "" + +#: src/gui/gui.cpp:1941 src/gui/gui.cpp:5364 +msgid "Coming soon!" +msgstr "" + +#: src/gui/gui.cpp:1946 src/gui/gui.cpp:1955 src/gui/gui.cpp:1964 +msgid "Select Font" +msgstr "" + +#: src/gui/gui.cpp:1973 +msgid "Select Color File" +msgstr "" + +#: src/gui/gui.cpp:1974 src/gui/gui.cpp:1983 src/gui/gui.cpp:2002 +#: src/gui/gui.cpp:2011 src/gui/gui.cpp:2020 src/gui/gui.cpp:2029 +#: src/gui/gui.cpp:2047 src/gui/gui.cpp:2056 +msgid "configuration files" +msgstr "" + +#: src/gui/gui.cpp:1982 +msgid "Select Keybind File" +msgstr "" + +#: src/gui/gui.cpp:1991 +msgid "Select Layout File" +msgstr "" + +#: src/gui/gui.cpp:1992 src/gui/gui.cpp:2038 +msgid ".ini files" +msgstr "" + +#: src/gui/gui.cpp:2001 +msgid "Select User Presets File" +msgstr "" + +#: src/gui/gui.cpp:2010 +msgid "Select Settings File" +msgstr "" + +#: src/gui/gui.cpp:2019 +msgid "Export Colors" +msgstr "" + +#: src/gui/gui.cpp:2028 +msgid "Export Keybinds" +msgstr "" + +#: src/gui/gui.cpp:2037 +msgid "Export Layout" +msgstr "" + +#: src/gui/gui.cpp:2046 +msgid "Export User Presets" +msgstr "" + +#: src/gui/gui.cpp:2055 +msgid "Export Settings" +msgstr "" + +#: src/gui/gui.cpp:2066 +msgid "Load ROM" +msgstr "" + +#: src/gui/gui.cpp:2076 +msgid "Play Command Stream" +msgstr "" + +#: src/gui/gui.cpp:2077 +msgid "command stream" +msgstr "" + +#: src/gui/gui.cpp:2086 +msgid "Open Test" +msgstr "" + +#: src/gui/gui.cpp:2088 src/gui/gui.cpp:2106 +msgid "another option" +msgstr "" + +#: src/gui/gui.cpp:2104 +msgid "Open Test (Multi)" +msgstr "" + +#: src/gui/gui.cpp:2123 +msgid "Save Test" +msgstr "" + +#: src/gui/gui.cpp:2125 +msgid "DefleMask module" +msgstr "" + +#: src/gui/gui.cpp:2165 +msgid "compression error" +msgstr "" + +#: src/gui/gui.cpp:2177 +msgid "zlib stream error" +msgstr "" + +#: src/gui/gui.cpp:2199 +msgid "zlib finish stream error" +msgstr "" + +#: src/gui/gui.cpp:2253 src/gui/gui.cpp:2416 +#, c-format +msgid "on seek: %s" +msgstr "" + +#: src/gui/gui.cpp:2260 src/gui/gui.cpp:2423 +#, c-format +msgid "on pre tell: %s" +msgstr "" + +#: src/gui/gui.cpp:2267 src/gui/gui.cpp:2430 +msgid "file is empty" +msgstr "" + +#: src/gui/gui.cpp:2270 src/gui/gui.cpp:2433 +#, c-format +msgid "on tell: %s" +msgstr "" + +#: src/gui/gui.cpp:2277 src/gui/gui.cpp:2440 +#, c-format +msgid "on get size: %s" +msgstr "" + +#: src/gui/gui.cpp:2284 src/gui/gui.cpp:2447 +#, c-format +msgid "on read: %s" +msgstr "" + +#: src/gui/gui.cpp:2310 +msgid "everything OK" +msgstr "" + +#: src/gui/gui.cpp:2328 +msgid "" +"you have loaded a backup!\n" +"if you need to, please save it somewhere.\n" +"\n" +"DO NOT RELY ON THE BACKUP SYSTEM FOR AUTO-SAVE!\n" +"Furnace will not save backups of backups." +msgstr "" + +#: src/gui/gui.cpp:2336 src/gui/gui.cpp:3737 src/gui/gui.cpp:4207 +msgid "Unsaved changes! Save changes before opening file?" +msgstr "" + +#: src/gui/gui.cpp:2730 +msgid "paste special..." +msgstr "" + +#: src/gui/gui.cpp:2731 +msgid "paste mix" +msgstr "" + +#: src/gui/gui.cpp:2732 +msgid "paste mix (background)" +msgstr "" + +#: src/gui/gui.cpp:2733 +msgid "paste with ins (foreground)" +msgstr "" + +#: src/gui/gui.cpp:2735 src/gui/gui.cpp:2747 src/gui/gui.cpp:2957 +msgid "no instruments available" +msgstr "" + +#: src/gui/gui.cpp:2745 +msgid "paste with ins (background)" +msgstr "" + +#: src/gui/gui.cpp:2757 +msgid "paste flood" +msgstr "" + +#: src/gui/gui.cpp:2758 +msgid "paste overflow" +msgstr "" + +#: src/gui/gui.cpp:2767 +msgid "operation mask..." +msgstr "" + +#: src/gui/gui.cpp:2774 +msgid "pull delete" +msgstr "" + +#: src/gui/gui.cpp:2778 +msgid "insert" +msgstr "" + +#: src/gui/gui.cpp:2786 +msgid "transpose (note)" +msgstr "" + +#: src/gui/gui.cpp:2790 +msgid "transpose (value)" +msgstr "" + +#: src/gui/gui.cpp:2802 src/gui/gui.cpp:3046 +msgid "invert values" +msgstr "" + +#: src/gui/gui.cpp:2818 +msgid "collapse/expand" +msgstr "" + +#: src/gui/gui.cpp:2823 +msgid "input latch" +msgstr "" + +#: src/gui/gui.cpp:2850 +msgid "" +"&&: selected instrument\n" +"..: no instrument" +msgstr "" + +#: src/gui/gui.cpp:2904 +msgid "Set" +msgstr "" + +#: src/gui/gui.cpp:2914 +msgid "Reset" +msgstr "" + +#: src/gui/gui.cpp:2924 +msgid "note up" +msgstr "" + +#: src/gui/gui.cpp:2925 +msgid "note down" +msgstr "" + +#: src/gui/gui.cpp:2926 +msgid "octave up" +msgstr "" + +#: src/gui/gui.cpp:2927 +msgid "octave down" +msgstr "" + +#: src/gui/gui.cpp:2929 +msgid "values up" +msgstr "" + +#: src/gui/gui.cpp:2930 +msgid "values down" +msgstr "" + +#: src/gui/gui.cpp:2931 +msgid "values up (+16)" +msgstr "" + +#: src/gui/gui.cpp:2932 +msgid "values down (-16)" +msgstr "" + +#: src/gui/gui.cpp:2935 +msgid "transpose" +msgstr "" + +#: src/gui/gui.cpp:2943 +msgid "Notes" +msgstr "" + +#: src/gui/gui.cpp:2948 +msgid "Values" +msgstr "" + +#: src/gui/gui.cpp:2955 +msgid "change instrument..." +msgstr "" + +#: src/gui/gui.cpp:2968 +msgid "gradient/fade..." +msgstr "" + +#: src/gui/gui.cpp:2985 src/gui/gui.cpp:3030 +msgid "Nibble mode" +msgstr "" + +#: src/gui/gui.cpp:2994 +msgid "Go ahead" +msgstr "" + +#: src/gui/gui.cpp:3000 src/gui/insEdit.cpp:7604 +msgid "scale..." +msgstr "" + +#: src/gui/gui.cpp:3005 +msgid "Scale" +msgstr "" + +#: src/gui/gui.cpp:3011 src/gui/insEdit.cpp:7632 +msgid "randomize..." +msgstr "" + +#: src/gui/gui.cpp:3012 +msgid "Minimum" +msgstr "" + +#: src/gui/gui.cpp:3021 +msgid "Maximum" +msgstr "" + +#: src/gui/gui.cpp:3050 +msgid "flip selection" +msgstr "" + +#: src/gui/gui.cpp:3053 +msgid "collapse/expand amount##CollapseAmount" +msgstr "" + +#: src/gui/gui.cpp:3062 +msgid "collapse pattern" +msgstr "" + +#: src/gui/gui.cpp:3063 +msgid "expand pattern" +msgstr "" + +#: src/gui/gui.cpp:3068 +msgid "collapse song" +msgstr "" + +#: src/gui/gui.cpp:3069 +msgid "expand song" +msgstr "" + +#: src/gui/gui.cpp:3074 +msgid "find/replace" +msgstr "" + +#: src/gui/gui.cpp:3088 src/gui/gui.cpp:5795 src/gui/gui.cpp:7300 +#, c-format +msgid "could NOT save layout! %s" +msgstr "" + +#: src/gui/gui.cpp:3100 +#, c-format +msgid "could NOT load layout! %s" +msgstr "" + +#: src/gui/gui.cpp:3562 +msgid "" +"Furnace has been started in Safe Mode.\n" +"this means that:\n" +"\n" +"- software rendering is being used\n" +"- audio output may not work\n" +"- font loading is disabled\n" +"\n" +"check any settings which may have made Furnace start up in this mode.\n" +"font loading is one of these." +msgstr "" + +#: src/gui/gui.cpp:4047 +msgid "can't keep going without graphics! Furnace will quit now." +msgstr "" + +#: src/gui/gui.cpp:4061 src/gui/gui.cpp:6650 src/gui/gui.cpp:7026 +msgid "error while loading fonts! please check your settings." +msgstr "" + +#: src/gui/gui.cpp:4185 +msgid "File" +msgstr "" + +#: src/gui/gui.cpp:4185 +msgid "file" +msgstr "" + +#: src/gui/gui.cpp:4186 +msgid "new..." +msgstr "" + +#: src/gui/gui.cpp:4193 +msgid "open..." +msgstr "" + +#: src/gui/gui.cpp:4200 +msgid "open recent" +msgstr "" + +#: src/gui/gui.cpp:4216 +msgid "nothing here yet" +msgstr "" + +#: src/gui/gui.cpp:4219 +msgid "clear history" +msgstr "" + +#: src/gui/gui.cpp:4220 +msgid "Are you sure you want to clear the recent file list?" +msgstr "" + +#: src/gui/gui.cpp:4235 +msgid "save as..." +msgstr "" + +#: src/gui/gui.cpp:4240 src/gui/gui.cpp:4281 +msgid "export audio..." +msgstr "" + +#: src/gui/gui.cpp:4244 src/gui/gui.cpp:4285 +msgid "export VGM..." +msgstr "" + +#: src/gui/gui.cpp:4253 src/gui/gui.cpp:4294 +msgid "export ZSM..." +msgstr "" + +#: src/gui/gui.cpp:4263 src/gui/gui.cpp:4304 +msgid "export Amiga validation data..." +msgstr "" + +#: src/gui/gui.cpp:4268 src/gui/gui.cpp:4309 +msgid "export text..." +msgstr "" + +#: src/gui/gui.cpp:4272 src/gui/gui.cpp:4313 +msgid "export command stream..." +msgstr "" + +#: src/gui/gui.cpp:4276 src/gui/gui.cpp:4317 +msgid "export .dmf..." +msgstr "" + +#: src/gui/gui.cpp:4322 +msgid "export..." +msgstr "" + +#: src/gui/gui.cpp:4328 +msgid "manage chips" +msgstr "" + +#: src/gui/gui.cpp:4332 +msgid "add chip..." +msgstr "" + +#: src/gui/gui.cpp:4337 src/gui/sysManager.cpp:138 +#, c-format +msgid "cannot add chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4349 +msgid "configure chip..." +msgstr "" + +#: src/gui/gui.cpp:4359 +msgid "change chip..." +msgstr "" + +#: src/gui/gui.cpp:4361 src/gui/gui.cpp:4384 +msgid "Preserve channel positions" +msgstr "" + +#: src/gui/gui.cpp:4373 src/gui/sysManager.cpp:109 +#, c-format +msgid "cannot change chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4382 +msgid "remove chip..." +msgstr "" + +#: src/gui/gui.cpp:4388 +#, c-format +msgid "cannot remove chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4402 +msgid "open built-in assets directory" +msgstr "" + +#: src/gui/gui.cpp:4408 +msgid "restore backup" +msgstr "" + +#: src/gui/gui.cpp:4412 +msgid "exit..." +msgstr "" + +#: src/gui/gui.cpp:4420 +msgid "edit" +msgstr "" + +#: src/gui/gui.cpp:4428 +msgid "clear..." +msgstr "" + +#: src/gui/gui.cpp:4433 +msgid "settings" +msgstr "" + +#: src/gui/gui.cpp:4435 +msgid "full screen" +msgstr "" + +#: src/gui/gui.cpp:4439 +msgid "lock layout" +msgstr "" + +#: src/gui/gui.cpp:4442 +msgid "pattern visualizer" +msgstr "" + +#: src/gui/gui.cpp:4448 +msgid "reset layout" +msgstr "" + +#: src/gui/gui.cpp:4449 +msgid "Are you sure you want to reset the workspace layout?" +msgstr "" + +#: src/gui/gui.cpp:4452 +msgid "switch to mobile view" +msgstr "" + +#: src/gui/gui.cpp:4456 +msgid "user systems..." +msgstr "" + +#: src/gui/gui.cpp:4459 +msgid "settings..." +msgstr "" + +#: src/gui/gui.cpp:4465 +msgid "Window" +msgstr "" + +#: src/gui/gui.cpp:4465 +msgid "window" +msgstr "" + +#: src/gui/gui.cpp:4466 +msgid "song" +msgstr "" + +#: src/gui/gui.cpp:4467 +msgid "song comments" +msgstr "" + +#: src/gui/gui.cpp:4468 +msgid "song information" +msgstr "" + +#: src/gui/gui.cpp:4469 +msgid "subsongs" +msgstr "" + +#: src/gui/gui.cpp:4471 +msgid "channels" +msgstr "" + +#: src/gui/gui.cpp:4472 +msgid "chip manager" +msgstr "" + +#: src/gui/gui.cpp:4473 +msgid "orders" +msgstr "" + +#: src/gui/gui.cpp:4475 +msgid "pattern manager" +msgstr "" + +#: src/gui/gui.cpp:4476 +msgid "mixer" +msgstr "" + +#: src/gui/gui.cpp:4477 +msgid "compatibility flags" +msgstr "" + +#: src/gui/gui.cpp:4480 src/gui/gui.cpp:4482 +msgid "assets" +msgstr "" + +#: src/gui/gui.cpp:4484 +msgid "instruments" +msgstr "" + +#: src/gui/gui.cpp:4485 +msgid "samples" +msgstr "" + +#: src/gui/gui.cpp:4486 +msgid "wavetables" +msgstr "" + +#: src/gui/gui.cpp:4489 +msgid "instrument editor" +msgstr "" + +#: src/gui/gui.cpp:4490 +msgid "sample editor" +msgstr "" + +#: src/gui/gui.cpp:4491 +msgid "wavetable editor" +msgstr "" + +#: src/gui/gui.cpp:4494 +msgid "visualizers" +msgstr "" + +#: src/gui/gui.cpp:4495 +msgid "oscilloscope (master)" +msgstr "" + +#: src/gui/gui.cpp:4496 +msgid "oscilloscope (per-channel)" +msgstr "" + +#: src/gui/gui.cpp:4497 +msgid "oscilloscope (X-Y)" +msgstr "" + +#: src/gui/gui.cpp:4498 +msgid "volume meter" +msgstr "" + +#: src/gui/gui.cpp:4501 +msgid "tempo" +msgstr "" + +#: src/gui/gui.cpp:4502 +msgid "clock" +msgstr "" + +#: src/gui/gui.cpp:4503 +msgid "grooves" +msgstr "" + +#: src/gui/gui.cpp:4504 +msgid "speed" +msgstr "" + +#: src/gui/gui.cpp:4508 +msgid "log viewer" +msgstr "" + +#: src/gui/gui.cpp:4509 +msgid "register view" +msgstr "" + +#: src/gui/gui.cpp:4510 +msgid "statistics" +msgstr "" + +#: src/gui/gui.cpp:4511 +msgid "memory composition" +msgstr "" + +#: src/gui/gui.cpp:4515 src/gui/gui.cpp:4523 +msgid "effect list" +msgstr "" + +#: src/gui/gui.cpp:4516 +msgid "play/edit controls" +msgstr "" + +#: src/gui/gui.cpp:4517 +msgid "piano/input pad" +msgstr "" + +#: src/gui/gui.cpp:4518 +msgid "spoiler" +msgstr "" + +#: src/gui/gui.cpp:4522 +msgid "Help" +msgstr "" + +#: src/gui/gui.cpp:4522 +msgid "help" +msgstr "" + +#: src/gui/gui.cpp:4524 +msgid "debug menu" +msgstr "" + +#: src/gui/gui.cpp:4525 +msgid "inspector" +msgstr "" + +#: src/gui/gui.cpp:4526 +msgid "panic" +msgstr "" + +#: src/gui/gui.cpp:4527 +msgid "about..." +msgstr "" + +#: src/gui/gui.cpp:4542 +#, c-format +msgid "| Speed %d:%d" +msgstr "" + +#: src/gui/gui.cpp:4544 +#, c-format +msgid "| Speed %d" +msgstr "" + +#: src/gui/gui.cpp:4546 +msgid "| Groove" +msgstr "" + +#: src/gui/gui.cpp:4549 +#, c-format +msgid " @ %gHz (%g BPM) " +msgstr "" + +#: src/gui/gui.cpp:4552 +#, c-format +msgid "| Order %.2X/%.2X " +msgstr "" + +#: src/gui/gui.cpp:4554 +#, c-format +msgid "| Order %d/%d " +msgstr "" + +#: src/gui/gui.cpp:4558 +#, c-format +msgid "| Row %.2X/%.2X " +msgstr "" + +#: src/gui/gui.cpp:4560 +#, c-format +msgid "| Row %d/%d " +msgstr "" + +#: src/gui/gui.cpp:4563 +msgid "| " +msgstr "" + +#: src/gui/gui.cpp:4566 +msgid "Don't you have anything better to do?" +msgstr "" + +#: src/gui/gui.cpp:4575 +#, c-format +msgid "%d year " +msgid_plural "%d years " +msgstr[0] "" +msgstr[1] "" + +#: src/gui/gui.cpp:4576 +#, c-format +msgid "%d month " +msgid_plural "%d months " +msgstr[0] "" +msgstr[1] "" + +#: src/gui/gui.cpp:4577 +#, c-format +msgid "%d day " +msgid_plural "%d days " +msgstr[0] "" +msgstr[1] "" + +#: src/gui/gui.cpp:4597 +msgid "Note off (cut)" +msgstr "" + +#: src/gui/gui.cpp:4599 +msgid "Note off (release)" +msgstr "" + +#: src/gui/gui.cpp:4601 +msgid "Macro release only" +msgstr "" + +#: src/gui/gui.cpp:4603 +#, c-format +msgid "Note on: %s" +msgstr "" + +#: src/gui/gui.cpp:4611 +#, c-format +msgid "Ins %d: " +msgstr "" + +#: src/gui/gui.cpp:4614 +#, c-format +msgid "Ins %d: %s" +msgstr "" + +#: src/gui/gui.cpp:4623 +#, c-format +msgid "Set volume: %d (%.2X, INVALID!)" +msgstr "" + +#: src/gui/gui.cpp:4626 +#, c-format +msgid "Set volume: %d (%.2X, %d%%)" +msgstr "" + +#: src/gui/gui.cpp:4648 +msgid "| modified" +msgstr "" + +#: src/gui/gui.cpp:4813 src/gui/gui.cpp:4816 +msgid "System File Dialog Pending" +msgstr "" + +#: src/gui/gui.cpp:4929 +msgid "" +"there was an error in the file dialog! you may want to report this issue " +"to:\n" +"https://github.com/tildearrow/furnace/issues\n" +"check the Log Viewer (window > log viewer) for more information.\n" +"\n" +"for now please disable the system file picker in Settings > General." +msgstr "" + +#: src/gui/gui.cpp:4932 +msgid "can't do anything without Storage permissions!" +msgstr "" + +#: src/gui/gui.cpp:4934 +msgid "" +"Zenity/KDialog not available!\n" +"please install one of these, or disable the system file picker in Settings > " +"General." +msgstr "" + +#: src/gui/gui.cpp:5070 +msgid "" +"error while saving instrument! only the following instrument types are " +"supported:\n" +"- FM (OPN)\n" +"- SN76489/Sega PSG\n" +"- Game Boy\n" +"- PC Engine\n" +"- NES\n" +"- C64\n" +"- FM (OPLL)\n" +"- FDS" +msgstr "" + +#: src/gui/gui.cpp:5098 +msgid "there were some errors while loading samples:\n" +msgstr "" + +#: src/gui/gui.cpp:5143 src/gui/gui.cpp:6327 +msgid "...but you haven't selected a sample!" +msgstr "" + +#: src/gui/gui.cpp:5158 src/gui/gui.cpp:5167 +msgid "could not save sample! open Log Viewer for more information." +msgstr "" + +#: src/gui/gui.cpp:5186 +msgid "there were some warnings/errors while loading instruments:\n" +msgstr "" + +#: src/gui/gui.cpp:5192 +#, c-format +msgid "> %s: cannot load instrument! (%s)\n" +msgstr "" + +#: src/gui/gui.cpp:5210 src/gui/gui.cpp:5264 +#, c-format +msgid "cannot load instrument! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5216 +msgid "" +"congratulations! you managed to load nothing.\n" +"you are entitled to a bug report." +msgstr "" + +#: src/gui/gui.cpp:5257 src/gui/gui.cpp:6231 +msgid "...but you haven't selected an instrument!" +msgstr "" + +#: src/gui/gui.cpp:5269 +msgid "there were some errors while loading wavetables:\n" +msgstr "" + +#: src/gui/gui.cpp:5278 src/gui/gui.cpp:5288 src/gui/gui.cpp:5307 +#, c-format +msgid "cannot load wavetable! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5315 +msgid "...but you haven't selected a wavetable!" +msgstr "" + +#: src/gui/gui.cpp:5330 src/gui/gui.cpp:5351 src/gui/gui.cpp:5375 +#: src/gui/gui.cpp:5396 +msgid "could not open file!" +msgstr "" + +#: src/gui/gui.cpp:5338 +#, c-format +msgid "could not write VGM! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5359 +#, c-format +msgid "Could not write ZSM! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5383 +#, c-format +msgid "could not write text! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5404 +#, c-format +msgid "could not write command stream! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5428 +msgid "could not import user presets!" +msgstr "" + +#: src/gui/gui.cpp:5433 src/gui/gui.cpp:5450 +#, c-format +msgid "could not import user presets! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5471 +#, c-format +msgid "You opened: %s" +msgstr "" + +#: src/gui/gui.cpp:5474 +msgid "You opened:" +msgstr "" + +#: src/gui/gui.cpp:5482 +#, c-format +msgid "You saved: %s" +msgstr "" + +#: src/gui/gui.cpp:5498 src/gui/gui.cpp:5633 src/gui/gui.cpp:5634 +msgid "Warning" +msgstr "" + +#: src/gui/gui.cpp:5503 src/gui/gui.cpp:5624 src/gui/gui.cpp:5625 +#: src/gui/insEdit.cpp:7520 +msgid "Error" +msgstr "" + +#: src/gui/gui.cpp:5508 src/gui/gui.cpp:6165 src/gui/gui.cpp:6166 +msgid "Select Instrument" +msgstr "" + +#: src/gui/gui.cpp:5513 src/gui/gui.cpp:6244 src/gui/gui.cpp:6245 +msgid "Import Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:5528 src/gui/gui.cpp:5581 src/gui/gui.cpp:5582 +msgid "Rendering..." +msgstr "" + +#: src/gui/gui.cpp:5551 src/gui/gui.cpp:5601 +msgid "New Song" +msgstr "" + +#: src/gui/gui.cpp:5583 +msgid "Please wait..." +msgstr "" + +#: src/gui/gui.cpp:5584 +msgid "Abort" +msgstr "" + +#: src/gui/gui.cpp:5626 +#, c-format +msgid "%s" +msgstr "" + +#: src/gui/gui.cpp:5638 src/gui/gui.cpp:5662 src/gui/gui.cpp:5686 +#: src/gui/gui.cpp:5710 src/gui/gui.cpp:5734 src/gui/gui.cpp:5758 +#: src/gui/gui.cpp:5790 src/gui/gui.cpp:5806 src/gui/gui.cpp:5817 +#: src/gui/gui.cpp:5829 src/gui/gui.cpp:5983 src/gui/gui.cpp:6005 +#: src/gui/gui.cpp:6020 src/gui/gui.cpp:6031 +msgid "Yes" +msgstr "" + +#: src/gui/gui.cpp:5856 +msgid "Erasing" +msgstr "" + +#: src/gui/gui.cpp:5859 +msgid "All subsongs" +msgstr "" + +#: src/gui/gui.cpp:5866 +msgid "Current subsong" +msgstr "" + +#: src/gui/gui.cpp:5933 +msgid "Optimization" +msgstr "" + +#: src/gui/gui.cpp:5936 src/gui/patManager.cpp:36 +msgid "De-duplicate patterns" +msgstr "" + +#: src/gui/gui.cpp:5945 +msgid "Remove unused instruments" +msgstr "" + +#: src/gui/gui.cpp:5958 +msgid "Remove unused samples" +msgstr "" + +#: src/gui/gui.cpp:5975 +msgid "Never mind! Cancel" +msgstr "" + +#: src/gui/gui.cpp:6054 +msgid "Drum kit mode:" +msgstr "" + +#: src/gui/gui.cpp:6058 +msgid "12 samples per octave" +msgstr "" + +#: src/gui/gui.cpp:6063 +msgid "Starting octave" +msgstr "" + +#: src/gui/gui.cpp:6083 +msgid "Drum Kit" +msgstr "" + +#: src/gui/gui.cpp:6169 +msgid "this is an instrument bank! select which one to use:" +msgstr "" + +#: src/gui/gui.cpp:6172 +msgid "this is an instrument bank! select which ones to load:" +msgstr "" + +#: src/gui/gui.cpp:6246 +msgid "Data type:" +msgstr "" + +#: src/gui/gui.cpp:6273 +msgid "(will be mixed down to mono)" +msgstr "" + +#: src/gui/gui.cpp:6274 +msgid "Unsigned" +msgstr "" + +#: src/gui/gui.cpp:6278 +msgid "Big endian" +msgstr "" + +#: src/gui/gui.cpp:6286 +msgid "Swap nibbles" +msgstr "" + +#: src/gui/gui.cpp:6290 +msgid "Swap words" +msgstr "" + +#: src/gui/gui.cpp:6294 +msgid "Encoding:" +msgstr "" + +#: src/gui/gui.cpp:6307 +msgid "Reverse bit order" +msgstr "" + +#: src/gui/gui.cpp:6349 +msgid "Error! No string provided!" +msgstr "" + +#: src/gui/gui.cpp:6671 +msgid "it appears I couldn't load these fonts. any setting you can check?" +msgstr "" + +#: src/gui/gui.cpp:6851 src/gui/gui.cpp:6959 +msgid "" +"could not init renderer!\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:6853 src/gui/gui.cpp:6961 +#, c-format +msgid "" +"could not init renderer! %s\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:6858 src/gui/gui.cpp:6966 +msgid "could not init renderer!" +msgstr "" + +#: src/gui/gui.cpp:6869 +#, c-format +msgid "could not open window! %s" +msgstr "" + +#: src/gui/gui.cpp:6874 +msgid "" +"\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:7502 +msgid "Unsaved changes! Save changes before quitting?" +msgstr "" + +#: src/gui/sysManager.cpp:42 +msgid "Preserve channel order" +msgstr "" + +#: src/gui/sysManager.cpp:44 +msgid "Clone channel data" +msgstr "" + +#: src/gui/sysManager.cpp:46 +msgid "Clone at end" +msgstr "" + +#: src/gui/sysManager.cpp:56 +msgid "Actions" +msgstr "" + +#: src/gui/sysManager.cpp:69 +msgid "(drag to swap chips)" +msgstr "" + +#: src/gui/sysManager.cpp:90 +msgid "Clone##SysDup" +msgstr "" + +#: src/gui/sysManager.cpp:92 +#, c-format +msgid "cannot clone chip! (%s)" +msgstr "" + +#: src/gui/sysManager.cpp:98 +msgid "Change##SysChange" +msgstr "" + +#: src/gui/sysManager.cpp:120 +msgid "Are you sure you want to remove this chip?" +msgstr "" + +#: src/gui/patManager.cpp:43 +msgid "Re-arrange patterns" +msgstr "" + +#: src/gui/patManager.cpp:50 +msgid "Sort orders" +msgstr "" + +#: src/gui/patManager.cpp:57 +msgid "Make patterns unique" +msgstr "" + +#: src/gui/patManager.cpp:103 +#, c-format +msgid "" +"Pattern %.2X\n" +"- not allocated" +msgstr "" + +#: src/gui/patManager.cpp:105 +#, c-format +msgid "" +"Pattern %.2X\n" +"- use count: %d (%.0f%%)\n" +"\n" +"right-click to erase" +msgstr "" + +#: src/gui/insEdit.cpp:39 +msgid "Down Down Down" +msgstr "" + +#: src/gui/insEdit.cpp:40 +msgid "Down." +msgstr "" + +#: src/gui/insEdit.cpp:41 +msgid "Down Up Down Up" +msgstr "" + +#: src/gui/insEdit.cpp:42 +msgid "Down UP" +msgstr "" + +#: src/gui/insEdit.cpp:43 +msgid "Up Up Up" +msgstr "" + +#: src/gui/insEdit.cpp:44 +msgid "Up." +msgstr "" + +#: src/gui/insEdit.cpp:45 +msgid "Up Down Up Down" +msgstr "" + +#: src/gui/insEdit.cpp:46 +msgid "Up DOWN" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Algorithm" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Feedback" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO > Freq" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO > Amp" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1920 src/gui/insEdit.cpp:6955 +#: src/gui/insEdit.cpp:7481 +msgid "Attack" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1960 src/gui/insEdit.cpp:6956 +#: src/gui/insEdit.cpp:7482 +msgid "Decay" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Decay 2" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:604 src/gui/insEdit.cpp:1983 +#: src/gui/insEdit.cpp:6958 src/gui/insEdit.cpp:7484 +msgid "Release" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1929 src/gui/insEdit.cpp:6957 +#: src/gui/insEdit.cpp:7483 +msgid "Sustain" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "EnvScale" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Multiplier" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:63 src/gui/insEdit.cpp:75 +msgid "Detune" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Detune 2" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:4146 +msgid "SSG-EG" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "AM" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:5438 src/gui/insEdit.cpp:6516 +msgid "AM Depth" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Vibrato Depth" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Sustained" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Level Scaling" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Vibrato" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Scale Rate" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "OP2 Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "OP1 Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "EnvShift" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Reverb" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Fine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO2 > Freq" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO2 > Amp" +msgstr "" + +#: src/gui/insEdit.cpp:56 src/gui/insEdit.cpp:68 src/gui/insEdit.cpp:7391 +msgid "OP4 Noise Mode" +msgstr "" + +#: src/gui/insEdit.cpp:57 +msgid "Envelope Delay" +msgstr "" + +#: src/gui/insEdit.cpp:58 src/gui/insEdit.cpp:70 +msgid "Output Level" +msgstr "" + +#: src/gui/insEdit.cpp:59 +msgid "Modulation Input Level" +msgstr "" + +#: src/gui/insEdit.cpp:60 +msgid "Left Output" +msgstr "" + +#: src/gui/insEdit.cpp:61 +msgid "Right Output" +msgstr "" + +#: src/gui/insEdit.cpp:62 +msgid "Coarse Tune (semitones)" +msgstr "" + +#: src/gui/insEdit.cpp:64 +msgid "Fixed Frequency Mode" +msgstr "" + +#: src/gui/insEdit.cpp:69 +msgid "Env. Delay" +msgstr "" + +#: src/gui/insEdit.cpp:71 +msgid "ModInput" +msgstr "" + +#: src/gui/insEdit.cpp:72 +msgid "Left" +msgstr "" + +#: src/gui/insEdit.cpp:73 +msgid "Right" +msgstr "" + +#: src/gui/insEdit.cpp:74 +msgid "Tune" +msgstr "" + +#: src/gui/insEdit.cpp:76 src/gui/insEdit.cpp:610 src/gui/insEdit.cpp:3792 +#: src/gui/insEdit.cpp:4554 src/gui/insEdit.cpp:4848 +msgid "Fixed" +msgstr "" + +#: src/gui/insEdit.cpp:98 src/gui/insEdit.cpp:117 src/gui/insEdit.cpp:136 +#: src/gui/insEdit.cpp:156 +msgid "User" +msgstr "" + +#: src/gui/insEdit.cpp:99 +msgid "1. Violin" +msgstr "" + +#: src/gui/insEdit.cpp:100 src/gui/insEdit.cpp:138 src/gui/insEdit.cpp:158 +msgid "2. Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:101 src/gui/insEdit.cpp:159 +msgid "3. Piano" +msgstr "" + +#: src/gui/insEdit.cpp:102 src/gui/insEdit.cpp:160 +msgid "4. Flute" +msgstr "" + +#: src/gui/insEdit.cpp:103 src/gui/insEdit.cpp:122 src/gui/insEdit.cpp:161 +msgid "5. Clarinet" +msgstr "" + +#: src/gui/insEdit.cpp:104 +msgid "6. Oboe" +msgstr "" + +#: src/gui/insEdit.cpp:105 src/gui/insEdit.cpp:124 src/gui/insEdit.cpp:143 +#: src/gui/insEdit.cpp:163 +msgid "7. Trumpet" +msgstr "" + +#: src/gui/insEdit.cpp:106 +msgid "8. Organ" +msgstr "" + +#: src/gui/insEdit.cpp:107 +msgid "9. Horn" +msgstr "" + +#: src/gui/insEdit.cpp:108 +msgid "10. Synth" +msgstr "" + +#: src/gui/insEdit.cpp:109 +msgid "11. Harpsichord" +msgstr "" + +#: src/gui/insEdit.cpp:110 src/gui/insEdit.cpp:129 src/gui/insEdit.cpp:148 +msgid "12. Vibraphone" +msgstr "" + +#: src/gui/insEdit.cpp:111 +msgid "13. Synth Bass" +msgstr "" + +#: src/gui/insEdit.cpp:112 +msgid "14. Acoustic Bass" +msgstr "" + +#: src/gui/insEdit.cpp:113 +msgid "15. Electric Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:114 src/gui/insEdit.cpp:133 src/gui/insEdit.cpp:152 +#: src/gui/insEdit.cpp:172 src/gui/insEdit.cpp:3176 +msgid "Drums" +msgstr "" + +#: src/gui/insEdit.cpp:118 +msgid "1. Electric String" +msgstr "" + +#: src/gui/insEdit.cpp:119 +msgid "2. Bow wow" +msgstr "" + +#: src/gui/insEdit.cpp:120 src/gui/insEdit.cpp:139 +msgid "3. Electric Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:121 +msgid "4. Organ" +msgstr "" + +#: src/gui/insEdit.cpp:123 +msgid "6. Saxophone" +msgstr "" + +#: src/gui/insEdit.cpp:125 +msgid "8. Street Organ" +msgstr "" + +#: src/gui/insEdit.cpp:126 +msgid "9. Synth Brass" +msgstr "" + +#: src/gui/insEdit.cpp:127 +msgid "10. Electric Piano" +msgstr "" + +#: src/gui/insEdit.cpp:128 +msgid "11. Bass" +msgstr "" + +#: src/gui/insEdit.cpp:130 +msgid "13. Chime" +msgstr "" + +#: src/gui/insEdit.cpp:131 +msgid "14. Tom Tom II" +msgstr "" + +#: src/gui/insEdit.cpp:132 +msgid "15. Noise" +msgstr "" + +#: src/gui/insEdit.cpp:137 +msgid "1. Strings" +msgstr "" + +#: src/gui/insEdit.cpp:140 +msgid "4. Electric Piano" +msgstr "" + +#: src/gui/insEdit.cpp:141 +msgid "5. Flute" +msgstr "" + +#: src/gui/insEdit.cpp:142 +msgid "6. Marimba" +msgstr "" + +#: src/gui/insEdit.cpp:144 +msgid "8. Harmonica" +msgstr "" + +#: src/gui/insEdit.cpp:145 +msgid "9. Tuba" +msgstr "" + +#: src/gui/insEdit.cpp:146 +msgid "10. Synth Brass" +msgstr "" + +#: src/gui/insEdit.cpp:147 +msgid "11. Short Saw" +msgstr "" + +#: src/gui/insEdit.cpp:149 +msgid "13. Electric Guitar 2" +msgstr "" + +#: src/gui/insEdit.cpp:150 +msgid "14. Synth Bass" +msgstr "" + +#: src/gui/insEdit.cpp:151 +msgid "15. Sitar" +msgstr "" + +#: src/gui/insEdit.cpp:157 +msgid "1. Bell" +msgstr "" + +#: src/gui/insEdit.cpp:162 +msgid "6. Rattling Bell" +msgstr "" + +#: src/gui/insEdit.cpp:164 +msgid "8. Reed Organ" +msgstr "" + +#: src/gui/insEdit.cpp:165 +msgid "9. Soft Bell" +msgstr "" + +#: src/gui/insEdit.cpp:166 +msgid "10. Xylophone" +msgstr "" + +#: src/gui/insEdit.cpp:167 +msgid "11. Vibraphone" +msgstr "" + +#: src/gui/insEdit.cpp:168 +msgid "12. Brass" +msgstr "" + +#: src/gui/insEdit.cpp:169 +msgid "13. Bass Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:170 +msgid "14. Synth" +msgstr "" + +#: src/gui/insEdit.cpp:171 +msgid "15. Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:178 src/gui/insEdit.cpp:189 +msgid "Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:179 src/gui/insEdit.cpp:190 +msgid "Absolute Sine" +msgstr "" + +#: src/gui/insEdit.cpp:180 +msgid "Quarter Sine" +msgstr "" + +#: src/gui/insEdit.cpp:181 src/gui/insEdit.cpp:203 +msgid "Squished Sine" +msgstr "" + +#: src/gui/insEdit.cpp:182 src/gui/insEdit.cpp:205 +msgid "Squished AbsSine" +msgstr "" + +#: src/gui/insEdit.cpp:184 src/gui/insEdit.cpp:195 +msgid "Derived Square" +msgstr "" + +#: src/gui/insEdit.cpp:191 +msgid "Pulse Sine" +msgstr "" + +#: src/gui/insEdit.cpp:192 +msgid "Sine (Even Periods)" +msgstr "" + +#: src/gui/insEdit.cpp:193 +msgid "AbsSine (Even Periods)" +msgstr "" + +#: src/gui/insEdit.cpp:201 +msgid "Cut Sine" +msgstr "" + +#: src/gui/insEdit.cpp:202 +msgid "Cut Triangle" +msgstr "" + +#: src/gui/insEdit.cpp:204 +msgid "Squished Triangle" +msgstr "" + +#: src/gui/insEdit.cpp:206 +msgid "Squished AbsTriangle" +msgstr "" + +#: src/gui/insEdit.cpp:210 src/gui/insEdit.cpp:218 +msgid "Snare" +msgstr "" + +#: src/gui/insEdit.cpp:211 +msgid "Tom" +msgstr "" + +#: src/gui/insEdit.cpp:212 src/gui/insEdit.cpp:220 src/gui/insEdit.cpp:1909 +#: src/gui/insEdit.cpp:2014 +msgid "Top" +msgstr "" + +#: src/gui/insEdit.cpp:213 src/gui/insEdit.cpp:219 +msgid "HiHat" +msgstr "" + +#: src/gui/insEdit.cpp:224 +msgid "Noise disabled" +msgstr "" + +#: src/gui/insEdit.cpp:225 +msgid "Square + noise" +msgstr "" + +#: src/gui/insEdit.cpp:226 +msgid "Ringmod from OP3 + noise" +msgstr "" + +#: src/gui/insEdit.cpp:227 +msgid "" +"Ringmod from OP3 + double pitch ModInput\n" +"WARNING - has emulation issues; subject to change" +msgstr "" + +#: src/gui/insEdit.cpp:232 +msgid "Bitwise AND" +msgstr "" + +#: src/gui/insEdit.cpp:233 +msgid "Bitwise OR" +msgstr "" + +#: src/gui/insEdit.cpp:234 +msgid "Bitwise XOR" +msgstr "" + +#: src/gui/insEdit.cpp:239 src/gui/insEdit.cpp:390 +msgid "gate" +msgstr "" + +#: src/gui/insEdit.cpp:240 src/gui/insEdit.cpp:391 +msgid "sync" +msgstr "" + +#: src/gui/insEdit.cpp:241 src/gui/insEdit.cpp:392 +msgid "ring" +msgstr "" + +#: src/gui/insEdit.cpp:327 +msgid "How did you even" +msgstr "" + +#: src/gui/insEdit.cpp:335 +msgid "triangle" +msgstr "" + +#: src/gui/insEdit.cpp:336 src/gui/insEdit.cpp:5821 +msgid "saw" +msgstr "" + +#: src/gui/insEdit.cpp:337 src/gui/insEdit.cpp:5827 +msgid "pulse" +msgstr "" + +#: src/gui/insEdit.cpp:338 src/gui/insEdit.cpp:344 src/gui/insEdit.cpp:373 +#: src/gui/insEdit.cpp:424 src/gui/insEdit.cpp:429 src/gui/insEdit.cpp:5833 +msgid "noise" +msgstr "" + +#: src/gui/insEdit.cpp:343 +msgid "tone" +msgstr "" + +#: src/gui/insEdit.cpp:345 +msgid "envelope" +msgstr "" + +#: src/gui/insEdit.cpp:350 +msgid "hold" +msgstr "" + +#: src/gui/insEdit.cpp:351 +msgid "alternate" +msgstr "" + +#: src/gui/insEdit.cpp:352 src/gui/insEdit.cpp:364 +msgid "direction" +msgstr "" + +#: src/gui/insEdit.cpp:353 src/gui/insEdit.cpp:436 +msgid "enable" +msgstr "" + +#: src/gui/insEdit.cpp:357 src/gui/insEdit.cpp:368 +msgid "enabled" +msgstr "" + +#: src/gui/insEdit.cpp:361 +msgid "mirror" +msgstr "" + +#: src/gui/insEdit.cpp:365 +msgid "resolution" +msgstr "" + +#: src/gui/insEdit.cpp:366 +msgid "fixed" +msgstr "" + +#: src/gui/insEdit.cpp:367 +msgid "N/A" +msgstr "" + +#: src/gui/insEdit.cpp:374 +msgid "echo" +msgstr "" + +#: src/gui/insEdit.cpp:375 +msgid "pitch mod" +msgstr "" + +#: src/gui/insEdit.cpp:376 src/gui/insEdit.cpp:508 +msgid "invert right" +msgstr "" + +#: src/gui/insEdit.cpp:377 src/gui/insEdit.cpp:509 +msgid "invert left" +msgstr "" + +#: src/gui/insEdit.cpp:382 src/gui/insEdit.cpp:5905 +msgid "low" +msgstr "" + +#: src/gui/insEdit.cpp:383 src/gui/insEdit.cpp:5911 +msgid "band" +msgstr "" + +#: src/gui/insEdit.cpp:384 src/gui/insEdit.cpp:5917 +msgid "high" +msgstr "" + +#: src/gui/insEdit.cpp:385 src/gui/insEdit.cpp:5924 +msgid "ch3off" +msgstr "" + +#: src/gui/insEdit.cpp:393 +msgid "test" +msgstr "" + +#: src/gui/insEdit.cpp:398 +msgid "15KHz" +msgstr "" + +#: src/gui/insEdit.cpp:399 +msgid "filter 2+4" +msgstr "" + +#: src/gui/insEdit.cpp:400 +msgid "filter 1+3" +msgstr "" + +#: src/gui/insEdit.cpp:401 +msgid "16-bit 3+4" +msgstr "" + +#: src/gui/insEdit.cpp:402 +msgid "16-bit 1+2" +msgstr "" + +#: src/gui/insEdit.cpp:403 +msgid "high3" +msgstr "" + +#: src/gui/insEdit.cpp:404 +msgid "high1" +msgstr "" + +#: src/gui/insEdit.cpp:405 +msgid "poly9" +msgstr "" + +#: src/gui/insEdit.cpp:414 +msgid "16'" +msgstr "" + +#: src/gui/insEdit.cpp:415 +msgid "8'" +msgstr "" + +#: src/gui/insEdit.cpp:416 +msgid "4'" +msgstr "" + +#: src/gui/insEdit.cpp:417 +msgid "2'" +msgstr "" + +#: src/gui/insEdit.cpp:418 +msgid "sustain" +msgstr "" + +#: src/gui/insEdit.cpp:423 +msgid "square" +msgstr "" + +#: src/gui/insEdit.cpp:431 +msgid "surround" +msgstr "" + +#: src/gui/insEdit.cpp:437 +msgid "oneshot" +msgstr "" + +#: src/gui/insEdit.cpp:438 +msgid "split L/R" +msgstr "" + +#: src/gui/insEdit.cpp:439 +msgid "HinvR" +msgstr "" + +#: src/gui/insEdit.cpp:440 +msgid "VinvR" +msgstr "" + +#: src/gui/insEdit.cpp:441 +msgid "HinvL" +msgstr "" + +#: src/gui/insEdit.cpp:442 +msgid "VinvL" +msgstr "" + +#: src/gui/insEdit.cpp:447 src/gui/insEdit.cpp:476 +msgid "ring mod" +msgstr "" + +#: src/gui/insEdit.cpp:448 +msgid "low pass" +msgstr "" + +#: src/gui/insEdit.cpp:449 src/gui/insEdit.cpp:475 +msgid "high pass" +msgstr "" + +#: src/gui/insEdit.cpp:450 +msgid "band pass" +msgstr "" + +#: src/gui/insEdit.cpp:459 +msgid "enable tap B" +msgstr "" + +#: src/gui/insEdit.cpp:460 +msgid "AM with slope" +msgstr "" + +#: src/gui/insEdit.cpp:465 +msgid "invert B" +msgstr "" + +#: src/gui/insEdit.cpp:466 +msgid "invert A" +msgstr "" + +#: src/gui/insEdit.cpp:467 +msgid "reset B" +msgstr "" + +#: src/gui/insEdit.cpp:468 +msgid "reset A" +msgstr "" + +#: src/gui/insEdit.cpp:469 +msgid "clip B" +msgstr "" + +#: src/gui/insEdit.cpp:470 +msgid "clip A" +msgstr "" + +#: src/gui/insEdit.cpp:477 +msgid "swap counters (noise)" +msgstr "" + +#: src/gui/insEdit.cpp:478 +msgid "low pass (noise)" +msgstr "" + +#: src/gui/insEdit.cpp:485 +msgid "rear right" +msgstr "" + +#: src/gui/insEdit.cpp:486 +msgid "rear left" +msgstr "" + +#: src/gui/insEdit.cpp:491 +msgid "on" +msgstr "" + +#: src/gui/insEdit.cpp:496 +msgid "k1 slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:497 +msgid "k2 slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:502 +msgid "pause" +msgstr "" + +#: src/gui/insEdit.cpp:503 +msgid "reverse" +msgstr "" + +#: src/gui/insEdit.cpp:521 +msgid "Subtract" +msgstr "" + +#: src/gui/insEdit.cpp:522 +msgid "Average" +msgstr "" + +#: src/gui/insEdit.cpp:523 src/gui/insEdit.cpp:2037 +msgid "Phase" +msgstr "" + +#: src/gui/insEdit.cpp:524 +msgid "Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:528 +msgid "None (dual)" +msgstr "" + +#: src/gui/insEdit.cpp:529 +msgid "Wipe" +msgstr "" + +#: src/gui/insEdit.cpp:531 +msgid "Fade (ping-pong)" +msgstr "" + +#: src/gui/insEdit.cpp:532 +msgid "Overlay" +msgstr "" + +#: src/gui/insEdit.cpp:533 +msgid "Negative Overlay" +msgstr "" + +#: src/gui/insEdit.cpp:534 +msgid "Slide" +msgstr "" + +#: src/gui/insEdit.cpp:535 +msgid "Mix Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:536 +msgid "Phase Modulation" +msgstr "" + +#: src/gui/insEdit.cpp:540 src/gui/insEdit.cpp:3547 src/gui/insEdit.cpp:3548 +#: src/gui/insEdit.cpp:4081 src/gui/insEdit.cpp:4151 src/gui/insEdit.cpp:4790 +#: src/gui/insEdit.cpp:5861 src/gui/insEdit.cpp:5862 src/gui/insEdit.cpp:6487 +#: src/gui/insEdit.cpp:6488 src/gui/insEdit.cpp:6555 src/gui/insEdit.cpp:6556 +#: src/gui/insEdit.cpp:6995 src/gui/insEdit.cpp:7009 src/gui/insEdit.cpp:7029 +#: src/gui/insEdit.cpp:7166 +#, c-format +msgid "Envelope" +msgstr "" + +#: src/gui/insEdit.cpp:541 +msgid "Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:542 src/gui/insEdit.cpp:552 +msgid "Wait" +msgstr "" + +#: src/gui/insEdit.cpp:543 src/gui/insEdit.cpp:553 +msgid "Wait for Release" +msgstr "" + +#: src/gui/insEdit.cpp:545 src/gui/insEdit.cpp:555 +msgid "Loop until Release" +msgstr "" + +#: src/gui/insEdit.cpp:549 +msgid "Volume Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:550 +msgid "Frequency Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:551 +msgid "Cutoff Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:559 src/gui/insEdit.cpp:6604 +msgid "Direct" +msgstr "" + +#: src/gui/insEdit.cpp:560 src/gui/insEdit.cpp:6608 +msgid "Decrease (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:561 src/gui/insEdit.cpp:6612 +msgid "Decrease (logarithmic)" +msgstr "" + +#: src/gui/insEdit.cpp:562 src/gui/insEdit.cpp:6616 +msgid "Increase (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:563 src/gui/insEdit.cpp:6620 +msgid "Increase (bent line)" +msgstr "" + +#: src/gui/insEdit.cpp:611 +msgid "Relative" +msgstr "" + +#: src/gui/insEdit.cpp:616 +#, c-format +msgid "%d: +%d (exponential)" +msgstr "" + +#: src/gui/insEdit.cpp:619 +#, c-format +msgid "%d: +%d (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:622 +#, c-format +msgid "%d: -%d (exponential)" +msgstr "" + +#: src/gui/insEdit.cpp:625 +#, c-format +msgid "%d: -%d (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:627 +#, c-format +msgid "%d: %d (direct)" +msgstr "" + +#: src/gui/insEdit.cpp:660 +msgid "Random" +msgstr "" + +#: src/gui/insEdit.cpp:1610 +msgid "" +"left click to restart\n" +"middle click to pause\n" +"right click to see algorithm" +msgstr "" + +#: src/gui/insEdit.cpp:1620 +msgid "" +"left click to configure TL scaling\n" +"right click to see FM preview" +msgstr "" + +#: src/gui/insEdit.cpp:1624 +msgid "right click to see FM preview" +msgstr "" + +#: src/gui/insEdit.cpp:1639 +msgid "operator level changes with volume?" +msgstr "" + +#: src/gui/insEdit.cpp:1648 +msgid "AUTO##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1650 +msgid "NO##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1652 +msgid "YES##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1900 src/gui/insEdit.cpp:2005 +msgid "Bottom" +msgstr "" + +#: src/gui/insEdit.cpp:1940 +msgid "Hold" +msgstr "" + +#: src/gui/insEdit.cpp:1949 +msgid "SusTime" +msgstr "" + +#: src/gui/insEdit.cpp:1969 +msgid "SusDecay" +msgstr "" + +#: src/gui/insEdit.cpp:2047 +msgid "Shape" +msgstr "" + +#: src/gui/insEdit.cpp:2100 +msgid "Macro type: Sequence" +msgstr "" + +#: src/gui/insEdit.cpp:2103 +msgid "Macro type: ADSR" +msgstr "" + +#: src/gui/insEdit.cpp:2106 +msgid "Macro type: LFO" +msgstr "" + +#: src/gui/insEdit.cpp:2109 +msgid "Macro type: What's going on here?" +msgstr "" + +#: src/gui/insEdit.cpp:2122 +msgid "Delay/Step Length" +msgstr "" + +#: src/gui/insEdit.cpp:2125 +msgid "Step Length (ticks)##IMacroSpeed" +msgstr "" + +#: src/gui/insEdit.cpp:2129 +msgid "Delay##IMacroDelay" +msgstr "" + +#: src/gui/insEdit.cpp:2142 +msgid "Release mode: Active (jump to release pos)" +msgstr "" + +#: src/gui/insEdit.cpp:2144 +msgid "Release mode: Passive (delayed release)" +msgstr "" + +#: src/gui/insEdit.cpp:2284 src/gui/insEdit.cpp:2382 src/gui/insEdit.cpp:5582 +#: src/gui/insEdit.cpp:6241 +msgid "Length" +msgstr "" + +#: src/gui/insEdit.cpp:2393 +msgid "StepLen" +msgstr "" + +#: src/gui/insEdit.cpp:2401 +msgid "Delay" +msgstr "" + +#: src/gui/insEdit.cpp:2425 +msgid "The heck? No, this isn't even working correctly..." +msgstr "" + +#: src/gui/insEdit.cpp:2428 +msgid "The only problem with that selectedMacro is that it's a bug..." +msgstr "" + +#: src/gui/insEdit.cpp:2589 +msgid "(copying)" +msgstr "" + +#: src/gui/insEdit.cpp:2591 +msgid "(swapping)" +msgstr "" + +#: src/gui/insEdit.cpp:2595 +msgid "" +"- drag to swap operator\n" +"- shift-drag to copy operator" +msgstr "" + +#: src/gui/insEdit.cpp:2629 +msgid "DPCM" +msgstr "" + +#: src/gui/insEdit.cpp:2632 +msgid "new DPCM features disabled (compatibility)!" +msgstr "" + +#: src/gui/insEdit.cpp:2633 +msgid "click here to enable them." +msgstr "" + +#: src/gui/insEdit.cpp:2644 +msgid "none selected" +msgstr "" + +#: src/gui/insEdit.cpp:2657 +msgid "Use sample" +msgstr "" + +#: src/gui/insEdit.cpp:2659 +msgid "Sample bank slot##BANKSLOT" +msgstr "" + +#: src/gui/insEdit.cpp:2681 +msgid "Use wavetable (Amiga/Generic DAC only)" +msgstr "" + +#: src/gui/insEdit.cpp:2681 +msgid "Use wavetable" +msgstr "" + +#: src/gui/insEdit.cpp:2708 +msgid "Use sample map" +msgstr "" + +#: src/gui/insEdit.cpp:2730 +msgid "delta" +msgstr "" + +#: src/gui/insEdit.cpp:2736 +msgid "sample name" +msgstr "" + +#: src/gui/insEdit.cpp:3001 +msgid "set entire map to this pitch" +msgstr "" + +#: src/gui/insEdit.cpp:3009 +msgid "set entire map to this delta counter value" +msgstr "" + +#: src/gui/insEdit.cpp:3018 +msgid "set entire map to this note" +msgstr "" + +#: src/gui/insEdit.cpp:3027 +msgid "set entire map to this sample" +msgstr "" + +#: src/gui/insEdit.cpp:3037 +msgid "reset pitches" +msgstr "" + +#: src/gui/insEdit.cpp:3042 +msgid "clear delta counter values" +msgstr "" + +#: src/gui/insEdit.cpp:3048 +msgid "reset notes" +msgstr "" + +#: src/gui/insEdit.cpp:3054 +msgid "clear map samples" +msgstr "" + +#: src/gui/insEdit.cpp:3148 +msgid "Request from TX81Z" +msgstr "" + +#: src/gui/insEdit.cpp:3234 +#, c-format +msgid "%s name" +msgstr "" + +#: src/gui/insEdit.cpp:3286 +msgid "Fixed frequency mode" +msgstr "" + +#: src/gui/insEdit.cpp:3288 +msgid "" +"when enabled, drums will be set to the specified frequencies, ignoring the " +"note." +msgstr "" + +#: src/gui/insEdit.cpp:3296 +msgid "Drum" +msgstr "" + +#: src/gui/insEdit.cpp:3298 src/gui/insEdit.cpp:3798 src/gui/insEdit.cpp:3904 +#: src/gui/insEdit.cpp:4404 src/gui/insEdit.cpp:4468 src/gui/insEdit.cpp:5068 +#: src/gui/insEdit.cpp:5518 +msgid "Block" +msgstr "" + +#: src/gui/insEdit.cpp:3300 src/gui/insEdit.cpp:3803 src/gui/insEdit.cpp:3909 +#: src/gui/insEdit.cpp:4993 src/gui/insEdit.cpp:5079 src/gui/insEdit.cpp:5519 +msgid "FreqNum" +msgstr "" + +#: src/gui/insEdit.cpp:3302 src/gui/insEdit.cpp:3624 +msgid "Kick" +msgstr "" + +#: src/gui/insEdit.cpp:3303 +msgid "Snare/Hi-hat" +msgstr "" + +#: src/gui/insEdit.cpp:3304 +msgid "Tom/Top" +msgstr "" + +#: src/gui/insEdit.cpp:3314 +msgid "Volume##TL" +msgstr "" + +#: src/gui/insEdit.cpp:3316 +msgid "this volume slider only works in compatibility (non-drums) system." +msgstr "" + +#: src/gui/insEdit.cpp:3626 +msgid "Env" +msgstr "" + +#: src/gui/insEdit.cpp:3980 src/gui/insEdit.cpp:4346 src/gui/insEdit.cpp:4396 +#: src/gui/insEdit.cpp:5104 +msgid "OPL2/3 only (last 4 waveforms are OPL3 only)" +msgstr "" + +#: src/gui/insEdit.cpp:4079 src/gui/insEdit.cpp:4788 +#, c-format +msgid "Envelope 2 (kick only)" +msgstr "" + +#: src/gui/insEdit.cpp:4084 +#, c-format +msgid "Operator %d" +msgstr "" + +#: src/gui/insEdit.cpp:4414 +msgid "Freq" +msgstr "" + +#: src/gui/insEdit.cpp:4443 +msgid "Only on YM2151 (OPM)" +msgstr "" + +#: src/gui/insEdit.cpp:4466 +msgid "Blk" +msgstr "" + +#: src/gui/insEdit.cpp:4479 +msgid "F" +msgstr "" + +#: src/gui/insEdit.cpp:4481 +msgid "Frequency (F-Num)" +msgstr "" + +#: src/gui/insEdit.cpp:4833 +msgid "SSG On" +msgstr "" + +#: src/gui/insEdit.cpp:5206 src/gui/insEdit.cpp:5207 +msgid "waiting..." +msgstr "" + +#: src/gui/insEdit.cpp:5210 src/gui/insEdit.cpp:5211 +msgid "no instrument selected" +msgstr "" + +#: src/gui/insEdit.cpp:5393 +msgid "" +"none of the currently present chips are able to play this instrument type!" +msgstr "" + +#: src/gui/insEdit.cpp:5413 +msgid "FM Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5435 src/gui/insEdit.cpp:5440 +msgid "LFO Speed" +msgstr "" + +#: src/gui/insEdit.cpp:5439 src/gui/insEdit.cpp:6514 +msgid "PM Depth" +msgstr "" + +#: src/gui/insEdit.cpp:5441 +msgid "LFO Shape" +msgstr "" + +#: src/gui/insEdit.cpp:5444 +msgid "OpMask" +msgstr "" + +#: src/gui/insEdit.cpp:5446 +msgid "AM Depth 2" +msgstr "" + +#: src/gui/insEdit.cpp:5447 +msgid "PM Depth 2" +msgstr "" + +#: src/gui/insEdit.cpp:5448 +msgid "LFO2 Speed" +msgstr "" + +#: src/gui/insEdit.cpp:5449 +msgid "LFO2 Shape" +msgstr "" + +#: src/gui/insEdit.cpp:5458 +#, c-format +msgid "Operator Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5460 +#, c-format +msgid "OP%d Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5521 +msgid "Op. Arpeggio" +msgstr "" + +#: src/gui/insEdit.cpp:5522 +msgid "Op. Pitch" +msgstr "" + +#: src/gui/insEdit.cpp:5531 +msgid "Op. Panning" +msgstr "" + +#: src/gui/insEdit.cpp:5558 +msgid "Use software envelope" +msgstr "" + +#: src/gui/insEdit.cpp:5559 +msgid "Initialize envelope on every note" +msgstr "" + +#: src/gui/insEdit.cpp:5560 +msgid "Double wave length (GBA only)" +msgstr "" + +#: src/gui/insEdit.cpp:5589 src/gui/insEdit.cpp:5666 +msgid "Sound Length" +msgstr "" + +#: src/gui/insEdit.cpp:5592 src/gui/insEdit.cpp:5666 +msgid "Infinity" +msgstr "" + +#: src/gui/insEdit.cpp:5596 +msgid "Direction" +msgstr "" + +#: src/gui/insEdit.cpp:5599 src/gui/insEdit.cpp:5669 src/gui/insEdit.cpp:5697 +#: src/gui/insEdit.cpp:6008 src/gui/insEdit.cpp:6051 +msgid "Up" +msgstr "" + +#: src/gui/insEdit.cpp:5604 src/gui/insEdit.cpp:5674 src/gui/insEdit.cpp:5702 +#: src/gui/insEdit.cpp:6013 src/gui/insEdit.cpp:6056 +msgid "Down" +msgstr "" + +#: src/gui/insEdit.cpp:5620 src/gui/insEdit.cpp:5953 +msgid "Hardware Sequence" +msgstr "" + +#: src/gui/insEdit.cpp:5630 src/gui/insEdit.cpp:5963 +msgid "Tick" +msgstr "" + +#: src/gui/insEdit.cpp:5632 src/gui/insEdit.cpp:5965 +msgid "Command" +msgstr "" + +#: src/gui/insEdit.cpp:5634 src/gui/insEdit.cpp:5967 +msgid "Move/Remove" +msgstr "" + +#: src/gui/insEdit.cpp:5663 +msgid "Env Length" +msgstr "" + +#: src/gui/insEdit.cpp:5690 +msgid "Shift" +msgstr "" + +#: src/gui/insEdit.cpp:5717 src/gui/insEdit.cpp:6073 +msgid "Ticks" +msgstr "" + +#: src/gui/insEdit.cpp:5736 src/gui/insEdit.cpp:6092 src/gui/insEdit.cpp:6239 +msgid "Position" +msgstr "" + +#: src/gui/insEdit.cpp:5815 +msgid "tri" +msgstr "" + +#: src/gui/insEdit.cpp:5882 +msgid "Ring Modulation" +msgstr "" + +#: src/gui/insEdit.cpp:5886 +msgid "Oscillator Sync" +msgstr "" + +#: src/gui/insEdit.cpp:5890 +msgid "Enable filter" +msgstr "" + +#: src/gui/insEdit.cpp:5891 +msgid "Initialize filter" +msgstr "" + +#: src/gui/insEdit.cpp:5894 src/gui/insEdit.cpp:5897 src/gui/insEdit.cpp:6951 +#: src/gui/insEdit.cpp:7215 src/gui/insEdit.cpp:7476 +msgid "Cutoff" +msgstr "" + +#: src/gui/insEdit.cpp:5902 src/gui/insEdit.cpp:6408 src/gui/insEdit.cpp:6952 +#: src/gui/insEdit.cpp:7179 src/gui/insEdit.cpp:7477 +msgid "Filter Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5931 src/gui/insEdit.cpp:7485 +msgid "Noise Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5932 +msgid "Wave Mix Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5935 +msgid "Absolute Cutoff Macro" +msgstr "" + +#: src/gui/insEdit.cpp:5939 +msgid "Absolute Duty Macro" +msgstr "" + +#: src/gui/insEdit.cpp:5945 +msgid "Don't test before new note" +msgstr "" + +#: src/gui/insEdit.cpp:5950 +msgid "Switch roles of frequency and phase reset timer" +msgstr "" + +#: src/gui/insEdit.cpp:5997 src/gui/insEdit.cpp:6040 +msgid "Period" +msgstr "" + +#: src/gui/insEdit.cpp:6002 src/gui/insEdit.cpp:6045 src/gui/insEdit.cpp:6892 +msgid "Amount" +msgstr "" + +#: src/gui/insEdit.cpp:6005 src/gui/insEdit.cpp:6048 +msgid "Bound" +msgstr "" + +#: src/gui/insEdit.cpp:6021 +msgid "Flip" +msgstr "" + +#: src/gui/insEdit.cpp:6210 +msgid "Load waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6215 +msgid "" +"when enabled, a waveform will be loaded into RAM.\n" +"when disabled, only the offset and length change." +msgstr "" + +#: src/gui/insEdit.cpp:6219 +msgid "Waveform##WAVE" +msgstr "" + +#: src/gui/insEdit.cpp:6227 +msgid "Per-channel wave position/length" +msgstr "" + +#: src/gui/insEdit.cpp:6237 +msgid "Ch" +msgstr "" + +#: src/gui/insEdit.cpp:6286 +msgid "Compatibility mode" +msgstr "" + +#: src/gui/insEdit.cpp:6288 +msgid "" +"only use for compatibility with .dmf modules!\n" +"- initializes modulation table with first wavetable\n" +"- does not alter modulation parameters on instrument change" +msgstr "" + +#: src/gui/insEdit.cpp:6290 +msgid "Modulation depth" +msgstr "" + +#: src/gui/insEdit.cpp:6294 +msgid "Modulation speed" +msgstr "" + +#: src/gui/insEdit.cpp:6298 +msgid "Modulation table" +msgstr "" + +#: src/gui/insEdit.cpp:6347 +msgid "Set modulation table (channel 5 only)" +msgstr "" + +#: src/gui/insEdit.cpp:6411 src/gui/insEdit.cpp:7184 +msgid "Filter K1" +msgstr "" + +#: src/gui/insEdit.cpp:6413 src/gui/insEdit.cpp:7185 +msgid "Filter K2" +msgstr "" + +#: src/gui/insEdit.cpp:6417 +msgid "Envelope length" +msgstr "" + +#: src/gui/insEdit.cpp:6420 +msgid "Left Volume Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6422 +msgid "Right Volume Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6425 +msgid "Filter K1 Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6427 +msgid "Filter K2 Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6430 +msgid "K1 Ramp Slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:6432 +msgid "K2 Ramp Slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:6454 +msgid "Attack Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6460 +msgid "Decay 1 Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6466 +msgid "Decay Level" +msgstr "" + +#: src/gui/insEdit.cpp:6472 +msgid "Decay 2 Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6478 +msgid "Release Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6484 +msgid "Rate Correction" +msgstr "" + +#: src/gui/insEdit.cpp:6512 +msgid "LFO Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6523 +msgid "Use envelope" +msgstr "" + +#: src/gui/insEdit.cpp:6576 +msgid "Sustain/release mode:" +msgstr "" + +#: src/gui/insEdit.cpp:6577 +msgid "Direct (cut on release)" +msgstr "" + +#: src/gui/insEdit.cpp:6580 +msgid "Effective (linear decrease)" +msgstr "" + +#: src/gui/insEdit.cpp:6583 +msgid "Effective (exponential decrease)" +msgstr "" + +#: src/gui/insEdit.cpp:6586 +msgid "Delayed (write R on release)" +msgstr "" + +#: src/gui/insEdit.cpp:6596 src/gui/insEdit.cpp:6597 +msgid "Gain Mode" +msgstr "" + +#: src/gui/insEdit.cpp:6599 src/gui/insEdit.cpp:6600 src/gui/insEdit.cpp:7205 +msgid "Gain" +msgstr "" + +#: src/gui/insEdit.cpp:6633 +msgid "" +"using decrease modes will not produce any sound at all, unless you know what " +"you are doing.\n" +"it is recommended to use the Gain macro for decrease instead." +msgstr "" + +#: src/gui/insEdit.cpp:6703 +msgid "Enable synthesizer" +msgstr "" + +#: src/gui/insEdit.cpp:6721 +msgid "Single-waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6730 +msgid "Dual-waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6803 src/gui/insEdit.cpp:6812 +msgid "Wave 1" +msgstr "" + +#: src/gui/insEdit.cpp:6808 src/gui/insEdit.cpp:6823 +msgid "" +"waveform macro is controlling wave 1!\n" +"this value will be ineffective." +msgstr "" + +#: src/gui/insEdit.cpp:6829 +msgid "Wave 2" +msgstr "" + +#: src/gui/insEdit.cpp:6844 +msgid "Resume preview" +msgstr "" + +#: src/gui/insEdit.cpp:6846 +msgid "Pause preview" +msgstr "" + +#: src/gui/insEdit.cpp:6854 +msgid "Restart preview" +msgstr "" + +#: src/gui/insEdit.cpp:6874 +msgid "Copy to new wavetable" +msgstr "" + +#: src/gui/insEdit.cpp:6881 +msgid "Update Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6902 +msgid "Global" +msgstr "" + +#: src/gui/insEdit.cpp:6906 +msgid "" +"wavetable synthesizer disabled.\n" +"use the Waveform macro to set the wave for this instrument." +msgstr "" + +#: src/gui/insEdit.cpp:6912 +msgid "Macros" +msgstr "" + +#: src/gui/insEdit.cpp:6921 src/gui/insEdit.cpp:6929 src/gui/insEdit.cpp:6938 +#: src/gui/insEdit.cpp:6947 src/gui/insEdit.cpp:6962 src/gui/insEdit.cpp:6976 +#: src/gui/insEdit.cpp:6988 src/gui/insEdit.cpp:7001 src/gui/insEdit.cpp:7017 +#: src/gui/insEdit.cpp:7023 src/gui/insEdit.cpp:7033 src/gui/insEdit.cpp:7040 +#: src/gui/insEdit.cpp:7046 src/gui/insEdit.cpp:7059 src/gui/insEdit.cpp:7066 +#: src/gui/insEdit.cpp:7073 src/gui/insEdit.cpp:7082 src/gui/insEdit.cpp:7092 +#: src/gui/insEdit.cpp:7100 src/gui/insEdit.cpp:7106 src/gui/insEdit.cpp:7114 +#: src/gui/insEdit.cpp:7121 src/gui/insEdit.cpp:7127 src/gui/insEdit.cpp:7137 +#: src/gui/insEdit.cpp:7149 src/gui/insEdit.cpp:7157 src/gui/insEdit.cpp:7173 +#: src/gui/insEdit.cpp:7178 src/gui/insEdit.cpp:7191 src/gui/insEdit.cpp:7198 +#: src/gui/insEdit.cpp:7209 src/gui/insEdit.cpp:7222 src/gui/insEdit.cpp:7231 +#: src/gui/insEdit.cpp:7238 src/gui/insEdit.cpp:7246 src/gui/insEdit.cpp:7270 +#: src/gui/insEdit.cpp:7277 src/gui/insEdit.cpp:7285 src/gui/insEdit.cpp:7296 +#: src/gui/insEdit.cpp:7303 src/gui/insEdit.cpp:7311 src/gui/insEdit.cpp:7319 +#: src/gui/insEdit.cpp:7328 src/gui/insEdit.cpp:7336 src/gui/insEdit.cpp:7342 +#: src/gui/insEdit.cpp:7348 src/gui/insEdit.cpp:7354 src/gui/insEdit.cpp:7359 +#: src/gui/insEdit.cpp:7366 src/gui/insEdit.cpp:7373 src/gui/insEdit.cpp:7381 +#: src/gui/insEdit.cpp:7390 src/gui/insEdit.cpp:7398 src/gui/insEdit.cpp:7410 +#: src/gui/insEdit.cpp:7423 src/gui/insEdit.cpp:7434 src/gui/insEdit.cpp:7444 +#: src/gui/insEdit.cpp:7452 src/gui/insEdit.cpp:7462 src/gui/insEdit.cpp:7471 +msgid "Arpeggio" +msgstr "" + +#: src/gui/insEdit.cpp:6925 src/gui/insEdit.cpp:6932 src/gui/insEdit.cpp:6943 +#: src/gui/insEdit.cpp:6972 src/gui/insEdit.cpp:6984 src/gui/insEdit.cpp:6994 +#: src/gui/insEdit.cpp:7007 src/gui/insEdit.cpp:7054 src/gui/insEdit.cpp:7062 +#: src/gui/insEdit.cpp:7069 src/gui/insEdit.cpp:7088 src/gui/insEdit.cpp:7110 +#: src/gui/insEdit.cpp:7133 src/gui/insEdit.cpp:7144 src/gui/insEdit.cpp:7163 +#: src/gui/insEdit.cpp:7183 src/gui/insEdit.cpp:7194 src/gui/insEdit.cpp:7214 +#: src/gui/insEdit.cpp:7234 src/gui/insEdit.cpp:7242 src/gui/insEdit.cpp:7249 +#: src/gui/insEdit.cpp:7254 src/gui/insEdit.cpp:7260 src/gui/insEdit.cpp:7266 +#: src/gui/insEdit.cpp:7273 src/gui/insEdit.cpp:7281 src/gui/insEdit.cpp:7290 +#: src/gui/insEdit.cpp:7299 src/gui/insEdit.cpp:7307 src/gui/insEdit.cpp:7324 +#: src/gui/insEdit.cpp:7332 src/gui/insEdit.cpp:7338 src/gui/insEdit.cpp:7362 +#: src/gui/insEdit.cpp:7369 src/gui/insEdit.cpp:7377 src/gui/insEdit.cpp:7386 +#: src/gui/insEdit.cpp:7394 src/gui/insEdit.cpp:7402 src/gui/insEdit.cpp:7414 +#: src/gui/insEdit.cpp:7429 src/gui/insEdit.cpp:7440 src/gui/insEdit.cpp:7448 +#: src/gui/insEdit.cpp:7457 src/gui/insEdit.cpp:7475 +msgid "Phase Reset" +msgstr "" + +#: src/gui/insEdit.cpp:6939 src/gui/insEdit.cpp:7024 src/gui/insEdit.cpp:7210 +#: src/gui/insEdit.cpp:7247 +msgid "Duty/Noise" +msgstr "" + +#: src/gui/insEdit.cpp:6966 src/gui/insEdit.cpp:7288 +msgid "Surround" +msgstr "" + +#: src/gui/insEdit.cpp:6968 src/gui/insEdit.cpp:6981 src/gui/insEdit.cpp:7026 +#: src/gui/insEdit.cpp:7085 src/gui/insEdit.cpp:7141 src/gui/insEdit.cpp:7159 +#: src/gui/insEdit.cpp:7180 src/gui/insEdit.cpp:7201 src/gui/insEdit.cpp:7225 +#: src/gui/insEdit.cpp:7278 src/gui/insEdit.cpp:7304 src/gui/insEdit.cpp:7321 +#: src/gui/insEdit.cpp:7329 src/gui/insEdit.cpp:7374 src/gui/insEdit.cpp:7383 +#: src/gui/insEdit.cpp:7399 src/gui/insEdit.cpp:7411 src/gui/insEdit.cpp:7426 +#: src/gui/insEdit.cpp:7454 src/gui/insEdit.cpp:7464 +msgid "Panning (left)" +msgstr "" + +#: src/gui/insEdit.cpp:6969 src/gui/insEdit.cpp:6982 src/gui/insEdit.cpp:7027 +#: src/gui/insEdit.cpp:7086 src/gui/insEdit.cpp:7142 src/gui/insEdit.cpp:7160 +#: src/gui/insEdit.cpp:7181 src/gui/insEdit.cpp:7202 src/gui/insEdit.cpp:7226 +#: src/gui/insEdit.cpp:7279 src/gui/insEdit.cpp:7305 src/gui/insEdit.cpp:7322 +#: src/gui/insEdit.cpp:7330 src/gui/insEdit.cpp:7375 src/gui/insEdit.cpp:7384 +#: src/gui/insEdit.cpp:7400 src/gui/insEdit.cpp:7412 src/gui/insEdit.cpp:7427 +#: src/gui/insEdit.cpp:7455 src/gui/insEdit.cpp:7465 +msgid "Panning (right)" +msgstr "" + +#: src/gui/insEdit.cpp:6978 src/gui/insEdit.cpp:7129 src/gui/insEdit.cpp:7223 +#: src/gui/insEdit.cpp:7315 +msgid "Noise" +msgstr "" + +#: src/gui/insEdit.cpp:6990 src/gui/insEdit.cpp:7003 src/gui/insEdit.cpp:7107 +#: src/gui/insEdit.cpp:7199 src/gui/insEdit.cpp:7239 src/gui/insEdit.cpp:7424 +msgid "Noise Freq" +msgstr "" + +#: src/gui/insEdit.cpp:6996 src/gui/insEdit.cpp:7010 src/gui/insEdit.cpp:7167 +msgid "AutoEnv Num" +msgstr "" + +#: src/gui/insEdit.cpp:6997 src/gui/insEdit.cpp:7011 src/gui/insEdit.cpp:7168 +msgid "AutoEnv Den" +msgstr "" + +#: src/gui/insEdit.cpp:7012 +msgid "Noise AND Mask" +msgstr "" + +#: src/gui/insEdit.cpp:7013 +msgid "Noise OR Mask" +msgstr "" + +#: src/gui/insEdit.cpp:7034 +msgid "On/Off" +msgstr "" + +#: src/gui/insEdit.cpp:7060 +msgid "Patch" +msgstr "" + +#: src/gui/insEdit.cpp:7076 +msgid "Mod Depth" +msgstr "" + +#: src/gui/insEdit.cpp:7077 +msgid "Mod Speed" +msgstr "" + +#: src/gui/insEdit.cpp:7078 +msgid "Mod Position" +msgstr "" + +#: src/gui/insEdit.cpp:7083 +msgid "Noise Length" +msgstr "" + +#: src/gui/insEdit.cpp:7093 +msgid "Wave Pos" +msgstr "" + +#: src/gui/insEdit.cpp:7096 +msgid "Wave Length" +msgstr "" + +#: src/gui/insEdit.cpp:7115 +msgid "AUDCTL" +msgstr "" + +#: src/gui/insEdit.cpp:7122 src/gui/insEdit.cpp:7343 +msgid "Pulse Width" +msgstr "" + +#: src/gui/insEdit.cpp:7139 +msgid "Duty/Int" +msgstr "" + +#: src/gui/insEdit.cpp:7145 src/gui/insEdit.cpp:7406 +msgid "Load LFSR" +msgstr "" + +#: src/gui/insEdit.cpp:7165 +msgid "Envelope Mode" +msgstr "" + +#: src/gui/insEdit.cpp:7186 +msgid "Outputs" +msgstr "" + +#: src/gui/insEdit.cpp:7187 src/gui/insEdit.cpp:7217 src/gui/insEdit.cpp:7382 +#: src/gui/insEdit.cpp:7403 src/gui/insEdit.cpp:7415 src/gui/insEdit.cpp:7430 +msgid "Control" +msgstr "" + +#: src/gui/insEdit.cpp:7218 +msgid "Phase Reset Timer" +msgstr "" + +#: src/gui/insEdit.cpp:7252 src/gui/insEdit.cpp:7259 +msgid "Freq Divider" +msgstr "" + +#: src/gui/insEdit.cpp:7255 +msgid "Clock Divider" +msgstr "" + +#: src/gui/insEdit.cpp:7264 +msgid "Global Volume" +msgstr "" + +#: src/gui/insEdit.cpp:7286 +msgid "Echo Level" +msgstr "" + +#: src/gui/insEdit.cpp:7291 +msgid "Echo Feedback" +msgstr "" + +#: src/gui/insEdit.cpp:7292 +msgid "Echo Length" +msgstr "" + +#: src/gui/insEdit.cpp:7312 +msgid "Group Ctrl" +msgstr "" + +#: src/gui/insEdit.cpp:7313 +msgid "Group Attack" +msgstr "" + +#: src/gui/insEdit.cpp:7314 +msgid "Group Decay" +msgstr "" + +#: src/gui/insEdit.cpp:7320 +msgid "Noise Type" +msgstr "" + +#: src/gui/insEdit.cpp:7367 +msgid "Square/Noise" +msgstr "" + +#: src/gui/insEdit.cpp:7404 +msgid "Tap A Location" +msgstr "" + +#: src/gui/insEdit.cpp:7405 +msgid "Tap B Location" +msgstr "" + +#: src/gui/insEdit.cpp:7416 +msgid "Portion A Length" +msgstr "" + +#: src/gui/insEdit.cpp:7417 +msgid "Portion B Length" +msgstr "" + +#: src/gui/insEdit.cpp:7418 +msgid "Portion A Offset" +msgstr "" + +#: src/gui/insEdit.cpp:7419 +msgid "Portion B Offset" +msgstr "" + +#: src/gui/insEdit.cpp:7463 +msgid "Parameter" +msgstr "" + +#: src/gui/insEdit.cpp:7467 +msgid "Load Value" +msgstr "" + +#: src/gui/insEdit.cpp:7479 +msgid "Filter Toggle" +msgstr "" + +#: src/gui/insEdit.cpp:7486 +msgid "Wave Mix" +msgstr "" + +#: src/gui/insEdit.cpp:7500 +msgid "Octave offset" +msgstr "" + +#: src/gui/insEdit.cpp:7505 +msgid "go to Macros for other parameters." +msgstr "" + +#: src/gui/insEdit.cpp:7521 +msgid "invalid instrument type! change it first." +msgstr "" + +#: src/gui/insEdit.cpp:7565 +msgid "clear contents" +msgstr "" + +#: src/gui/insEdit.cpp:7571 +msgid "offset..." +msgstr "" + +#: src/gui/insEdit.cpp:7572 src/gui/insEdit.cpp:7605 +msgid "X" +msgstr "" + +#: src/gui/insEdit.cpp:7573 src/gui/insEdit.cpp:7609 +msgid "Y" +msgstr "" + +#: src/gui/insEdit.cpp:7574 +msgid "offset" +msgstr "" + +#: src/gui/insEdit.cpp:7637 +msgid "Min" +msgstr "" + +#: src/gui/insEdit.cpp:7638 +msgid "Max" msgstr "" diff --git a/po/pl.po b/po/pl.po index 477329e1c..4819266ed 100644 --- a/po/pl.po +++ b/po/pl.po @@ -11,6 +11,903 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" +#: src/main.cpp:510 +msgid "this is a test!" +msgstr "" + +#: src/gui/mixer.cpp:28 src/gui/insEdit.cpp:484 +msgid "left" +msgstr "" + +#: src/gui/mixer.cpp:29 src/gui/insEdit.cpp:483 +msgid "right" +msgstr "" + +#: src/gui/mixer.cpp:128 +msgid "input" +msgstr "" + +#: src/gui/mixer.cpp:168 +msgid "output" +msgstr "" + +#: src/gui/mixer.cpp:228 src/gui/editControls.cpp:454 src/gui/guiConst.cpp:593 +msgid "Mixer" +msgstr "" + +#: src/gui/mixer.cpp:229 +msgid "Master Volume" +msgstr "" + +#: src/gui/mixer.cpp:250 src/gui/exportOptions.cpp:90 +#: src/gui/userPresets.cpp:393 src/gui/userPresets.cpp:405 +#: src/gui/waveEdit.cpp:1096 src/gui/sampleEdit.cpp:1128 +#: src/gui/insEdit.cpp:519 +msgid "Invert" +msgstr "" + +#: src/gui/mixer.cpp:268 src/gui/userPresets.cpp:417 +#: src/gui/findReplace.cpp:687 src/gui/findReplace.cpp:943 +#: src/gui/guiConst.cpp:228 src/gui/sampleEdit.cpp:1003 +#: src/gui/insEdit.cpp:5575 src/gui/insEdit.cpp:5660 src/gui/insEdit.cpp:6920 +#: src/gui/insEdit.cpp:6928 src/gui/insEdit.cpp:6936 src/gui/insEdit.cpp:6946 +#: src/gui/insEdit.cpp:6961 src/gui/insEdit.cpp:6975 src/gui/insEdit.cpp:6987 +#: src/gui/insEdit.cpp:7000 src/gui/insEdit.cpp:7016 src/gui/insEdit.cpp:7022 +#: src/gui/insEdit.cpp:7032 src/gui/insEdit.cpp:7039 src/gui/insEdit.cpp:7045 +#: src/gui/insEdit.cpp:7058 src/gui/insEdit.cpp:7065 src/gui/insEdit.cpp:7072 +#: src/gui/insEdit.cpp:7081 src/gui/insEdit.cpp:7091 src/gui/insEdit.cpp:7099 +#: src/gui/insEdit.cpp:7105 src/gui/insEdit.cpp:7113 src/gui/insEdit.cpp:7120 +#: src/gui/insEdit.cpp:7126 src/gui/insEdit.cpp:7136 src/gui/insEdit.cpp:7148 +#: src/gui/insEdit.cpp:7156 src/gui/insEdit.cpp:7172 src/gui/insEdit.cpp:7177 +#: src/gui/insEdit.cpp:7190 src/gui/insEdit.cpp:7197 src/gui/insEdit.cpp:7208 +#: src/gui/insEdit.cpp:7221 src/gui/insEdit.cpp:7230 src/gui/insEdit.cpp:7237 +#: src/gui/insEdit.cpp:7245 src/gui/insEdit.cpp:7258 src/gui/insEdit.cpp:7263 +#: src/gui/insEdit.cpp:7269 src/gui/insEdit.cpp:7276 src/gui/insEdit.cpp:7284 +#: src/gui/insEdit.cpp:7295 src/gui/insEdit.cpp:7302 src/gui/insEdit.cpp:7310 +#: src/gui/insEdit.cpp:7318 src/gui/insEdit.cpp:7327 src/gui/insEdit.cpp:7335 +#: src/gui/insEdit.cpp:7341 src/gui/insEdit.cpp:7347 src/gui/insEdit.cpp:7353 +#: src/gui/insEdit.cpp:7358 src/gui/insEdit.cpp:7365 src/gui/insEdit.cpp:7372 +#: src/gui/insEdit.cpp:7380 src/gui/insEdit.cpp:7389 src/gui/insEdit.cpp:7397 +#: src/gui/insEdit.cpp:7409 src/gui/insEdit.cpp:7422 src/gui/insEdit.cpp:7433 +#: src/gui/insEdit.cpp:7443 src/gui/insEdit.cpp:7451 src/gui/insEdit.cpp:7461 +#: src/gui/insEdit.cpp:7470 +msgid "Volume" +msgstr "" + +#: src/gui/mixer.cpp:279 src/gui/userPresets.cpp:427 src/gui/guiConst.cpp:229 +#: src/gui/insEdit.cpp:6923 src/gui/insEdit.cpp:6930 src/gui/insEdit.cpp:6941 +#: src/gui/insEdit.cpp:6965 src/gui/insEdit.cpp:7067 src/gui/insEdit.cpp:7108 +#: src/gui/insEdit.cpp:7152 src/gui/insEdit.cpp:7192 src/gui/insEdit.cpp:7212 +#: src/gui/insEdit.cpp:7232 src/gui/insEdit.cpp:7240 src/gui/insEdit.cpp:7253 +#: src/gui/insEdit.cpp:7265 src/gui/insEdit.cpp:7271 src/gui/insEdit.cpp:7287 +#: src/gui/insEdit.cpp:7297 src/gui/insEdit.cpp:7360 src/gui/insEdit.cpp:7392 +#: src/gui/insEdit.cpp:7438 src/gui/insEdit.cpp:7446 +msgid "Panning" +msgstr "" + +#: src/gui/mixer.cpp:290 src/gui/userPresets.cpp:433 +msgid "Front/Rear" +msgstr "" + +#: src/gui/mixer.cpp:299 +msgid "Patchbay" +msgstr "" + +#: src/gui/mixer.cpp:305 +msgid "Automatic patchbay" +msgstr "" + +#: src/gui/mixer.cpp:310 +msgid "Display hidden ports" +msgstr "" + +#: src/gui/mixer.cpp:312 +msgid "Display internal" +msgstr "" + +#: src/gui/mixer.cpp:322 src/gui/mixer.cpp:383 src/gui/songInfo.cpp:69 +msgid "System" +msgstr "" + +#: src/gui/mixer.cpp:354 +msgid "Sample Preview" +msgstr "" + +#: src/gui/mixer.cpp:367 src/gui/editControls.cpp:745 +#: src/gui/editControls.cpp:837 src/gui/editControls.cpp:953 +#: src/gui/editControls.cpp:1093 src/gui/guiConst.cpp:558 +msgid "Metronome" +msgstr "" + +#: src/gui/mixer.cpp:446 +msgid "disconnect all" +msgstr "" + +#: src/gui/editing.cpp:200 +#, c-format +msgid "no data in oldPatMap for channel %d!" +msgstr "" + +#: src/gui/editing.cpp:664 src/gui/editing.cpp:1203 +#, c-format +msgid "invalid clipboard data! failed at line %d char %d" +msgstr "" + +#: src/gui/editing.cpp:1565 src/gui/editing.cpp:1669 +msgid "can't collapse any further!" +msgstr "" + +#: src/gui/editing.cpp:1749 +msgid "can't expand any further!" +msgstr "" + +#: src/gui/editing.cpp:1836 src/gui/editing.cpp:1851 +#, c-format +msgid "copy: %s" +msgstr "" + +#: src/gui/memory.cpp:146 +#, c-format +msgid "bank %d" +msgstr "" + +#: src/gui/memory.cpp:175 src/gui/memory.cpp:176 +msgid "no chips with memory" +msgstr "" + +#: src/gui/intro.cpp:89 src/gui/gui.cpp:2339 src/gui/gui.cpp:3740 +#: src/gui/gui.cpp:5007 src/gui/gui.cpp:5029 src/gui/gui.cpp:5467 +#: src/gui/gui.cpp:5769 src/gui/gui.cpp:5779 +#, c-format +msgid "Error while loading file! (%s)" +msgstr "" + +#: src/gui/intro.cpp:124 +msgid "Preview" +msgstr "" + +#: src/gui/intro.cpp:176 src/gui/intro.cpp:177 src/gui/intro.cpp:178 +msgid "SORRY NOTHING" +msgstr "" + +#: src/gui/intro.cpp:310 +msgid "hold to skip" +msgstr "" + +#: src/gui/dataList.cpp:76 +msgid "Bug!" +msgstr "" + +#: src/gui/dataList.cpp:79 src/gui/util.cpp:107 src/gui/util.cpp:109 +#: src/gui/insEdit.cpp:5334 +msgid "Unknown" +msgstr "" + +#: src/gui/dataList.cpp:136 src/gui/dataList.cpp:260 +msgid "duplicate" +msgstr "" + +#: src/gui/dataList.cpp:139 src/gui/dataList.cpp:263 src/gui/dataList.cpp:388 +#: src/gui/dataList.cpp:731 src/gui/dataList.cpp:867 +msgid "replace..." +msgstr "" + +#: src/gui/dataList.cpp:142 src/gui/dataList.cpp:266 src/gui/gui.cpp:4226 +msgid "save" +msgstr "" + +#: src/gui/dataList.cpp:145 +msgid "save (.dmp)" +msgstr "" + +#: src/gui/dataList.cpp:148 src/gui/dataList.cpp:269 src/gui/dataList.cpp:617 +#: src/gui/dataList.cpp:994 src/gui/dataList.cpp:1040 +#: src/gui/editControls.cpp:50 src/gui/gui.cpp:2761 src/gui/gui.cpp:2770 +msgid "delete" +msgstr "" + +#: src/gui/dataList.cpp:243 +msgid "out of memory for this sample!" +msgstr "" + +#: src/gui/dataList.cpp:254 +msgid "make instrument" +msgstr "" + +#: src/gui/dataList.cpp:257 +msgid "make me a drum kit" +msgstr "" + +#: src/gui/dataList.cpp:312 src/gui/dataList.cpp:714 src/gui/dataList.cpp:846 +#: src/gui/subSongs.cpp:88 src/gui/insEdit.cpp:520 +msgid "Add" +msgstr "" + +#: src/gui/dataList.cpp:338 src/gui/dataList.cpp:721 src/gui/dataList.cpp:853 +#: src/gui/subSongs.cpp:108 +msgid "Duplicate" +msgstr "" + +#: src/gui/dataList.cpp:359 src/gui/dataList.cpp:728 src/gui/dataList.cpp:860 +#: src/gui/editControls.cpp:497 src/gui/waveEdit.cpp:435 +#: src/gui/waveEdit.cpp:467 src/gui/sampleEdit.cpp:122 +#: src/gui/sampleEdit.cpp:171 src/gui/insEdit.cpp:5239 src/gui/insEdit.cpp:5304 +msgid "Open" +msgstr "" + +#: src/gui/dataList.cpp:363 +msgid "replace instrument..." +msgstr "" + +#: src/gui/dataList.cpp:366 +msgid "load instrument from TX81Z" +msgstr "" + +#: src/gui/dataList.cpp:372 +msgid "replace wavetable..." +msgstr "" + +#: src/gui/dataList.cpp:378 +msgid "replace sample..." +msgstr "" + +#: src/gui/dataList.cpp:381 +msgid "import raw sample..." +msgstr "" + +#: src/gui/dataList.cpp:384 +msgid "import raw sample (replace)..." +msgstr "" + +#: src/gui/dataList.cpp:392 +msgid "load from TX81Z" +msgstr "" + +#: src/gui/dataList.cpp:399 +msgid "Open (insert; right-click to replace)" +msgstr "" + +#: src/gui/dataList.cpp:420 src/gui/dataList.cpp:741 src/gui/dataList.cpp:884 +#: src/gui/editControls.cpp:502 src/gui/waveEdit.cpp:474 +#: src/gui/sampleEdit.cpp:184 src/gui/insEdit.cpp:5311 +msgid "Save" +msgstr "" + +#: src/gui/dataList.cpp:424 +msgid "save instrument as .dmp..." +msgstr "" + +#: src/gui/dataList.cpp:430 +msgid "save wavetable as .dmw..." +msgstr "" + +#: src/gui/dataList.cpp:433 +msgid "save raw wavetable..." +msgstr "" + +#: src/gui/dataList.cpp:439 +msgid "save raw sample..." +msgstr "" + +#: src/gui/dataList.cpp:443 src/gui/insEdit.cpp:5314 +msgid "save as .dmp..." +msgstr "" + +#: src/gui/dataList.cpp:456 src/gui/dataList.cpp:761 src/gui/dataList.cpp:903 +msgid "Toggle folders/standard view" +msgstr "" + +#: src/gui/dataList.cpp:478 src/gui/dataList.cpp:769 src/gui/dataList.cpp:911 +#: src/gui/subSongs.cpp:55 +msgid "Move up" +msgstr "" + +#: src/gui/dataList.cpp:499 src/gui/dataList.cpp:776 src/gui/dataList.cpp:918 +#: src/gui/subSongs.cpp:62 +msgid "Move down" +msgstr "" + +#: src/gui/dataList.cpp:510 src/gui/dataList.cpp:787 src/gui/dataList.cpp:929 +msgid "Create" +msgstr "" + +#: src/gui/dataList.cpp:540 src/gui/dataList.cpp:797 src/gui/dataList.cpp:939 +msgid "New folder" +msgstr "" + +#: src/gui/dataList.cpp:549 src/gui/dataList.cpp:947 +msgid "Preview (right click to stop)" +msgstr "" + +#: src/gui/dataList.cpp:576 src/gui/dataList.cpp:807 src/gui/dataList.cpp:959 +#: src/gui/guiConst.cpp:666 src/gui/sampleEdit.cpp:1105 +msgid "Delete" +msgstr "" + +#: src/gui/dataList.cpp:593 src/gui/gui.cpp:5902 +msgid "Instruments" +msgstr "" + +#: src/gui/dataList.cpp:608 src/gui/dataList.cpp:985 src/gui/dataList.cpp:1031 +msgid "" +msgstr "" + +#: src/gui/dataList.cpp:614 src/gui/dataList.cpp:991 src/gui/dataList.cpp:1037 +msgid "rename..." +msgstr "" + +#: src/gui/dataList.cpp:663 src/gui/gui.cpp:5911 +msgid "Wavetables" +msgstr "" + +#: src/gui/dataList.cpp:674 src/gui/xyOsc.cpp:68 src/gui/sampleEdit.cpp:898 +#: src/gui/sampleEdit.cpp:1072 src/gui/gui.cpp:5920 +msgid "Samples" +msgstr "" + +#: src/gui/dataList.cpp:745 src/gui/waveEdit.cpp:477 +msgid "save as .dmw..." +msgstr "" + +#: src/gui/dataList.cpp:748 src/gui/dataList.cpp:891 src/gui/waveEdit.cpp:480 +#: src/gui/sampleEdit.cpp:187 +msgid "save raw..." +msgstr "" + +#: src/gui/dataList.cpp:871 src/gui/sampleEdit.cpp:174 +msgid "import raw..." +msgstr "" + +#: src/gui/dataList.cpp:874 +msgid "import raw (replace)..." +msgstr "" + +#: src/gui/exportOptions.cpp:29 +msgid "Export type:" +msgstr "" + +#: src/gui/exportOptions.cpp:32 +msgid "one file" +msgstr "" + +#: src/gui/exportOptions.cpp:35 +msgid "multiple files (one per chip)" +msgstr "" + +#: src/gui/exportOptions.cpp:38 +msgid "multiple files (one per channel)" +msgstr "" + +#: src/gui/exportOptions.cpp:44 +msgid "Bit depth:" +msgstr "" + +#: src/gui/exportOptions.cpp:46 +msgid "16-bit integer" +msgstr "" + +#: src/gui/exportOptions.cpp:49 +msgid "32-bit float" +msgstr "" + +#: src/gui/exportOptions.cpp:55 src/gui/gui.cpp:6258 +msgid "Sample rate" +msgstr "" + +#: src/gui/exportOptions.cpp:61 +msgid "Channels in file" +msgstr "" + +#: src/gui/exportOptions.cpp:67 +msgid "Loops" +msgstr "" + +#: src/gui/exportOptions.cpp:70 +msgid "Fade out (seconds)" +msgstr "" + +#: src/gui/exportOptions.cpp:76 +msgid "Channels to export:" +msgstr "" + +#: src/gui/exportOptions.cpp:78 src/gui/effectList.cpp:32 src/gui/gui.cpp:6174 +msgid "All" +msgstr "" + +#: src/gui/exportOptions.cpp:84 src/gui/effectList.cpp:34 +#: src/gui/compatFlags.cpp:219 src/gui/waveEdit.cpp:37 src/gui/gui.cpp:6180 +#: src/gui/insEdit.cpp:518 +msgid "None" +msgstr "" + +#: src/gui/exportOptions.cpp:110 src/gui/exportOptions.cpp:214 +#: src/gui/exportOptions.cpp:225 src/gui/exportOptions.cpp:243 +#: src/gui/exportOptions.cpp:266 src/gui/exportOptions.cpp:297 +#: src/gui/exportOptions.cpp:318 src/gui/exportOptions.cpp:341 +#: src/gui/commandPalette.cpp:199 src/gui/newSong.cpp:273 src/gui/gui.cpp:5657 +#: src/gui/gui.cpp:5681 src/gui/gui.cpp:5705 src/gui/gui.cpp:5729 +#: src/gui/gui.cpp:5753 src/gui/gui.cpp:5784 src/gui/gui.cpp:5843 +#: src/gui/gui.cpp:6217 src/gui/gui.cpp:6341 +msgid "Cancel" +msgstr "" + +#: src/gui/exportOptions.cpp:115 src/gui/exportOptions.cpp:217 +#: src/gui/exportOptions.cpp:246 src/gui/exportOptions.cpp:300 +#: src/gui/exportOptions.cpp:321 src/gui/exportOptions.cpp:344 +#: src/gui/editControls.cpp:512 src/gui/userPresets.cpp:523 +#: src/gui/guiConst.cpp:536 src/gui/gui.cpp:5566 src/gui/gui.cpp:5618 +msgid "Export" +msgstr "" + +#: src/gui/exportOptions.cpp:130 +msgid "select at least one channel" +msgstr "" + +#: src/gui/exportOptions.cpp:137 +msgid "settings:" +msgstr "" + +#: src/gui/exportOptions.cpp:138 +msgid "format version" +msgstr "" + +#: src/gui/exportOptions.cpp:146 src/gui/exportOptions.cpp:238 +#: src/gui/insEdit.cpp:362 +msgid "loop" +msgstr "" + +#: src/gui/exportOptions.cpp:148 +msgid "loop trail:" +msgstr "" + +#: src/gui/exportOptions.cpp:150 +msgid "auto-detect" +msgstr "" + +#: src/gui/exportOptions.cpp:153 +msgid "add one loop" +msgstr "" + +#: src/gui/exportOptions.cpp:156 +msgid "custom" +msgstr "" + +#: src/gui/exportOptions.cpp:167 +msgid "add pattern change hints" +msgstr "" + +#: src/gui/exportOptions.cpp:170 +msgid "" +"inserts data blocks on pattern changes.\n" +"useful if you are writing a playback routine.\n" +"\n" +"the format of a pattern change data block is:\n" +"67 66 FE ll ll ll ll 01 oo rr pp pp pp ...\n" +"- ll: length, a 32-bit little-endian number\n" +"- oo: order\n" +"- rr: initial row (a 0Dxx effect is able to select a different row)\n" +"- pp: pattern index (one per channel)\n" +"\n" +"pattern indexes are ordered as they appear in the song." +msgstr "" + +#: src/gui/exportOptions.cpp:183 +msgid "direct stream mode" +msgstr "" + +#: src/gui/exportOptions.cpp:186 +msgid "" +"required for DualPCM and MSM6258 export.\n" +"\n" +"allows for volume/direction changes when playing samples,\n" +"at the cost of a massive increase in file size." +msgstr "" + +#: src/gui/exportOptions.cpp:191 +msgid "chips to export:" +msgstr "" + +#: src/gui/exportOptions.cpp:200 +#, c-format +msgid "this chip is only available in VGM %d.%.2x and higher!" +msgstr "" + +#: src/gui/exportOptions.cpp:204 +msgid "this chip is not supported by the VGM format!" +msgstr "" + +#: src/gui/exportOptions.cpp:210 +#, c-format +msgid "select the chip you wish to export, but only up to %d of each type." +msgstr "" + +#: src/gui/exportOptions.cpp:222 +msgid "nothing to export" +msgstr "" + +#: src/gui/exportOptions.cpp:233 +msgid "Commander X16 Zsound Music File" +msgstr "" + +#: src/gui/exportOptions.cpp:234 +msgid "Tick Rate (Hz)" +msgstr "" + +#: src/gui/exportOptions.cpp:240 +msgid "optimize size" +msgstr "" + +#: src/gui/exportOptions.cpp:256 src/gui/editControls.cpp:630 +msgid "" +"this is NOT ROM export! only use for making sure the\n" +"Furnace Amiga emulator is working properly by\n" +"comparing it with real Amiga output." +msgstr "" + +#: src/gui/exportOptions.cpp:261 src/gui/editControls.cpp:635 +msgid "Directory" +msgstr "" + +#: src/gui/exportOptions.cpp:269 src/gui/editControls.cpp:638 +msgid "Bake Data" +msgstr "" + +#: src/gui/exportOptions.cpp:284 src/gui/editControls.cpp:653 +#, c-format +msgid "Done! Baked %d files." +msgstr "" + +#: src/gui/exportOptions.cpp:293 +msgid "this option exports the song to a text file.\n" +msgstr "" + +#: src/gui/exportOptions.cpp:310 +msgid "" +"this option exports a text or binary file which\n" +"contains a dump of the internal command stream\n" +"produced when playing the song.\n" +"\n" +"technical/development use only!" +msgstr "" + +#: src/gui/exportOptions.cpp:331 +msgid "" +"export in DefleMask module format.\n" +"only do it if you really, really need to, or are downgrading an existing ." +"dmf." +msgstr "" + +#: src/gui/exportOptions.cpp:335 +msgid "format version:" +msgstr "" + +#: src/gui/exportOptions.cpp:336 +msgid "1.1.3 and higher" +msgstr "" + +#: src/gui/exportOptions.cpp:337 +msgid "1.0/legacy (0.12)" +msgstr "" + +#: src/gui/exportOptions.cpp:357 +msgid "Audio" +msgstr "" + +#: src/gui/exportOptions.cpp:361 +msgid "VGM" +msgstr "" + +#: src/gui/exportOptions.cpp:370 +msgid "ZSM" +msgstr "" + +#: src/gui/exportOptions.cpp:380 +msgid "Amiga Validation" +msgstr "" + +#: src/gui/exportOptions.cpp:385 +msgid "Text" +msgstr "" + +#: src/gui/exportOptions.cpp:389 +msgid "Command Stream" +msgstr "" + +#: src/gui/exportOptions.cpp:393 +msgid "DMF" +msgstr "" + +#: src/gui/exportOptions.cpp:422 +msgid "congratulations! you've unlocked a secret panel." +msgstr "" + +#: src/gui/exportOptions.cpp:423 +msgid "Toggle hidden systems" +msgstr "" + +#: src/gui/exportOptions.cpp:427 +msgid "Toggle all instrument types" +msgstr "" + +#: src/gui/exportOptions.cpp:431 +msgid "Set pitch linearity to Partial" +msgstr "" + +#: src/gui/exportOptions.cpp:435 +msgid "Enable multi-threading settings" +msgstr "" + +#: src/gui/exportOptions.cpp:439 +msgid "Set fat to max" +msgstr "" + +#: src/gui/exportOptions.cpp:446 +msgid "Set muscle and fat to zero" +msgstr "" + +#: src/gui/exportOptions.cpp:453 +msgid "Tell tildearrow this must be a mistake" +msgstr "" + +#: src/gui/exportOptions.cpp:454 +msgid "" +"yeah, it's a bug. write a bug report in the GitHub page and tell me how did " +"you get here." +msgstr "" + +#: src/gui/speed.cpp:41 +msgid "Base Tempo##TempoOrHz" +msgstr "" + +#: src/gui/speed.cpp:41 +msgid "Tick Rate##TempoOrHz" +msgstr "" + +#: src/gui/speed.cpp:46 +msgid "click to display tick rate" +msgstr "" + +#: src/gui/speed.cpp:48 +msgid "click to display base tempo" +msgstr "" + +#: src/gui/speed.cpp:80 +msgid "Groove" +msgstr "" + +#: src/gui/speed.cpp:87 +msgid "click for one speed" +msgstr "" + +#: src/gui/speed.cpp:90 +msgid "Speeds" +msgstr "" + +#: src/gui/speed.cpp:99 +msgid "click for groove pattern" +msgstr "" + +#: src/gui/speed.cpp:102 src/gui/editControls.cpp:532 src/gui/guiConst.cpp:232 +#: src/gui/guiConst.cpp:581 src/gui/insEdit.cpp:2028 src/gui/insEdit.cpp:5693 +#: src/gui/insEdit.cpp:6885 +msgid "Speed" +msgstr "" + +#: src/gui/speed.cpp:110 +msgid "click for two (alternating) speeds" +msgstr "" + +#: src/gui/speed.cpp:168 +msgid "Virtual Tempo" +msgstr "" + +#: src/gui/speed.cpp:177 +msgid "Numerator" +msgstr "" + +#: src/gui/speed.cpp:187 +msgid "Denominator (set to base tempo)" +msgstr "" + +#: src/gui/speed.cpp:193 +msgid "Divider" +msgstr "" + +#: src/gui/speed.cpp:208 +msgid "Highlight" +msgstr "" + +#: src/gui/speed.cpp:231 +msgid "Pattern Length" +msgstr "" + +#: src/gui/speed.cpp:245 +msgid "Song Length" +msgstr "" + +#: src/gui/channels.cpp:49 +msgid "Pat" +msgstr "" + +#: src/gui/channels.cpp:51 src/gui/editControls.cpp:550 +msgid "Osc" +msgstr "" + +#: src/gui/channels.cpp:53 +msgid "Swap" +msgstr "" + +#: src/gui/channels.cpp:55 src/gui/userPresets.cpp:368 +#: src/gui/effectList.cpp:45 src/gui/subSongs.cpp:125 +#: src/gui/sampleEdit.cpp:195 src/gui/songInfo.cpp:40 src/gui/sysManager.cpp:54 +#: src/gui/insEdit.cpp:5288 +msgid "Name" +msgstr "" + +#: src/gui/channels.cpp:64 +msgid "Show in pattern" +msgstr "" + +#: src/gui/channels.cpp:71 +msgid "Show in per-channel oscilloscope" +msgstr "" + +#: src/gui/channels.cpp:82 +#, c-format +msgid "" +"%s #%d\n" +"(drag to swap channels)" +msgstr "" + +#: src/gui/commandPalette.cpp:51 src/gui/sysPicker.cpp:35 +#: src/gui/newSong.cpp:133 +msgid "Search..." +msgstr "" + +#: src/gui/commandPalette.cpp:54 +msgid "Search recent files..." +msgstr "" + +#: src/gui/commandPalette.cpp:57 +msgid "Search instruments..." +msgstr "" + +#: src/gui/commandPalette.cpp:60 +msgid "Search samples..." +msgstr "" + +#: src/gui/commandPalette.cpp:63 +msgid "Search instruments (to change to)..." +msgstr "" + +#: src/gui/commandPalette.cpp:66 +msgid "Search chip (to add)..." +msgstr "" + +#: src/gui/commandPalette.cpp:93 src/gui/commandPalette.cpp:167 +msgid "- None -" +msgstr "" + +#: src/gui/commandPalette.cpp:123 src/gui/commandPalette.cpp:179 +#: src/gui/commandPalette.cpp:241 +msgid "invalid command palette type" +msgstr "" + +#: src/gui/regView.cpp:38 +msgid "- no register pool available" +msgstr "" + +#: src/gui/log.cpp:25 src/gui/effectList.cpp:84 +msgid "ERROR" +msgstr "" + +#: src/gui/log.cpp:26 +msgid "warning" +msgstr "" + +#: src/gui/log.cpp:27 +msgid "info" +msgstr "" + +#: src/gui/log.cpp:28 src/gui/gui.cpp:4507 +msgid "debug" +msgstr "" + +#: src/gui/log.cpp:29 +msgid "trace" +msgstr "" + +#: src/gui/log.cpp:48 src/gui/editControls.cpp:750 src/gui/editControls.cpp:883 +#: src/gui/editControls.cpp:1000 +msgid "Follow" +msgstr "" + +#: src/gui/log.cpp:50 src/gui/waveEdit.cpp:681 src/gui/insEdit.cpp:50 +msgid "Level" +msgstr "" + +#: src/gui/log.cpp:68 +msgid "time" +msgstr "" + +#: src/gui/log.cpp:70 +msgid "level" +msgstr "" + +#: src/gui/log.cpp:72 +msgid "message" +msgstr "" + +#: src/gui/pattern.cpp:468 +msgid "there aren't any channels to show." +msgstr "" + +#: src/gui/pattern.cpp:492 +msgid "click for pattern options (effect columns/pattern names/visualizer)" +msgstr "" + +#: src/gui/pattern.cpp:504 +msgid "Options:" +msgstr "" + +#: src/gui/pattern.cpp:506 +msgid "Effect columns/collapse" +msgstr "" + +#: src/gui/pattern.cpp:507 +msgid "Pattern names" +msgstr "" + +#: src/gui/pattern.cpp:508 +msgid "Channel group hints" +msgstr "" + +#: src/gui/pattern.cpp:509 +msgid "Visualizer" +msgstr "" + +#: src/gui/pattern.cpp:517 +msgid "Channel status:" +msgstr "" + +#: src/gui/pattern.cpp:519 +msgid "No##_PCS0" +msgstr "" + +#: src/gui/pattern.cpp:522 +msgid "Yes##_PCS1" +msgstr "" + +#: src/gui/pattern.cpp:1420 src/gui/pattern.cpp:1452 +msgid "WARNING!!" +msgstr "" + +#: src/gui/pattern.cpp:1422 src/gui/pattern.cpp:1459 +msgid "this instrument cannot be previewed because" +msgstr "" + +#: src/gui/pattern.cpp:1423 src/gui/pattern.cpp:1466 +msgid "none of the chips can play it" +msgstr "" + +#: src/gui/pattern.cpp:1424 src/gui/pattern.cpp:1473 +msgid "your instrument is in peril!! be careful..." +msgstr "" + +#: src/gui/osc.cpp:176 +#, c-format +msgid "zoom: %.2fx (%.1fdB)" +msgstr "" + +#: src/gui/osc.cpp:187 +#, c-format +msgid "window size: %.1fms" +msgstr "" + +#: src/gui/osc.cpp:385 +msgid "(-Infinity)dB" +msgstr "" + #: src/gui/debugWindow.cpp:662 msgid "This is a language test." msgstr "" @@ -19,6 +916,6837 @@ msgstr "" msgid "This is another language test." msgstr "" -#: src/main.cpp:510 -msgid "this is a test!" +#: src/gui/chanOsc.cpp:143 +msgid "Columns" +msgstr "" + +#: src/gui/chanOsc.cpp:152 +msgid "Size (ms)" +msgstr "" + +#: src/gui/chanOsc.cpp:163 +msgid "Automatic columns" +msgstr "" + +#: src/gui/chanOsc.cpp:177 +msgid "Center waveform" +msgstr "" + +#: src/gui/chanOsc.cpp:183 +msgid "Randomize phase on note" +msgstr "" + +#: src/gui/chanOsc.cpp:189 +msgid "Amplitude" +msgstr "" + +#: src/gui/chanOsc.cpp:199 +msgid "Line size" +msgstr "" + +#: src/gui/chanOsc.cpp:211 +msgid "Gradient" +msgstr "" + +#: src/gui/chanOsc.cpp:218 +msgid "error while creating gradient texture!" +msgstr "" + +#: src/gui/chanOsc.cpp:236 +msgid "error while updating gradient texture!" +msgstr "" + +#: src/gui/chanOsc.cpp:292 src/gui/chanOsc.cpp:348 +msgid "Color" +msgstr "" + +#: src/gui/chanOsc.cpp:296 +msgid "Distance" +msgstr "" + +#: src/gui/chanOsc.cpp:305 +msgid "Spread" +msgstr "" + +#: src/gui/chanOsc.cpp:314 src/gui/userPresets.cpp:370 src/gui/subSongs.cpp:121 +#: src/gui/sysManager.cpp:124 +msgid "Remove" +msgstr "" + +#: src/gui/chanOsc.cpp:338 +msgid "Background" +msgstr "" + +#: src/gui/chanOsc.cpp:341 +msgid "X Axis##AxisX" +msgstr "" + +#: src/gui/chanOsc.cpp:342 +msgid "Y Axis##AxisY" +msgstr "" + +#: src/gui/chanOsc.cpp:352 +msgid "Text format:" +msgstr "" + +#: src/gui/chanOsc.cpp:358 +msgid "" +"format guide:\n" +"- %c: channel name\n" +"- %C: channel short name\n" +"- %d: channel number (starting from 0)\n" +"- %D: channel number (starting from 1)\n" +"- %n: channel note\n" +"- %i: instrument name\n" +"- %I: instrument number (decimal)\n" +"- %x: instrument number (hex)\n" +"- %s: chip name\n" +"- %p: chip part number\n" +"- %S: chip ID\n" +"- %v: volume (decimal)\n" +"- %V: volume (percentage)\n" +"- %b: volume (hex)\n" +"- %l: new line\n" +"- %%: percent sign" +msgstr "" + +#: src/gui/chanOsc.cpp:380 +msgid "Text color" +msgstr "" + +#: src/gui/chanOsc.cpp:382 src/gui/xyOsc.cpp:80 src/gui/tutorial.cpp:687 +#: src/gui/gui.cpp:5627 src/gui/gui.cpp:6043 src/gui/gui.cpp:6211 +#: src/gui/gui.cpp:6310 src/gui/gui.cpp:6359 +msgid "OK" +msgstr "" + +#: src/gui/chanOsc.cpp:400 +msgid "creating chan osc work pool" +msgstr "" + +#: src/gui/chanOsc.cpp:429 +#, c-format +msgid "creating FFT plan for channel %d" +msgstr "" + +#: src/gui/chanOsc.cpp:436 +msgid "failed to create plan!" +msgstr "" + +#: src/gui/chanOsc.cpp:438 +msgid "failed to create inverse plan!" +msgstr "" + +#: src/gui/chanOsc.cpp:440 +msgid "failed to create FFT buffers" +msgstr "" + +#: src/gui/chanOsc.cpp:585 +msgid "Error!" +msgstr "" + +#: src/gui/editControls.cpp:47 src/gui/sampleEdit.cpp:1736 src/gui/gui.cpp:2727 +#: src/gui/insEdit.cpp:363 +msgid "cut" +msgstr "" + +#: src/gui/editControls.cpp:48 src/gui/sampleEdit.cpp:1740 src/gui/gui.cpp:2728 +#: src/gui/insEdit.cpp:7538 +msgid "copy" +msgstr "" + +#: src/gui/editControls.cpp:49 src/gui/sampleEdit.cpp:1744 src/gui/gui.cpp:2729 +#: src/gui/gui.cpp:2782 src/gui/insEdit.cpp:7543 +msgid "paste" +msgstr "" + +#: src/gui/editControls.cpp:51 +msgid "" +"select\n" +"all" +msgstr "" + +#: src/gui/editControls.cpp:52 +msgid "piano" +msgstr "" + +#: src/gui/editControls.cpp:53 src/gui/gui.cpp:4423 +msgid "undo" +msgstr "" + +#: src/gui/editControls.cpp:54 src/gui/gui.cpp:4424 +msgid "redo" +msgstr "" + +#: src/gui/editControls.cpp:57 +msgid "" +"paste\n" +"mix" +msgstr "" + +#: src/gui/editControls.cpp:58 +msgid "" +"paste\n" +"mix bg" +msgstr "" + +#: src/gui/editControls.cpp:59 +msgid "" +"paste\n" +"ins" +msgstr "" + +#: src/gui/editControls.cpp:60 +msgid "" +"paste\n" +"ins bg" +msgstr "" + +#: src/gui/editControls.cpp:61 +msgid "" +"paste\n" +"flood" +msgstr "" + +#: src/gui/editControls.cpp:62 +msgid "" +"paste\n" +"overflow" +msgstr "" + +#: src/gui/editControls.cpp:63 +msgid "" +"transpose\n" +"notes" +msgstr "" + +#: src/gui/editControls.cpp:64 +msgid "" +"transpose\n" +"values" +msgstr "" + +#: src/gui/editControls.cpp:67 +msgid "" +"change\n" +"ins" +msgstr "" + +#: src/gui/editControls.cpp:68 +msgid "" +"find/\n" +"replace" +msgstr "" + +#: src/gui/editControls.cpp:69 src/gui/gui.cpp:3057 +msgid "collapse" +msgstr "" + +#: src/gui/editControls.cpp:70 src/gui/gui.cpp:3058 +msgid "expand" +msgstr "" + +#: src/gui/editControls.cpp:71 src/gui/gui.cpp:2814 +msgid "flip" +msgstr "" + +#: src/gui/editControls.cpp:72 src/gui/insEdit.cpp:430 +msgid "invert" +msgstr "" + +#: src/gui/editControls.cpp:73 src/gui/gui.cpp:2794 src/gui/gui.cpp:2954 +msgid "interpolate" +msgstr "" + +#: src/gui/editControls.cpp:74 src/gui/gui.cpp:2806 src/gui/insEdit.cpp:7610 +msgid "scale" +msgstr "" + +#: src/gui/editControls.cpp:77 src/gui/gui.cpp:2798 +msgid "fade" +msgstr "" + +#: src/gui/editControls.cpp:78 src/gui/gui.cpp:2810 src/gui/insEdit.cpp:7639 +msgid "randomize" +msgstr "" + +#: src/gui/editControls.cpp:79 +msgid "opmask" +msgstr "" + +#: src/gui/editControls.cpp:80 +msgid "" +"scroll\n" +"mode" +msgstr "" + +#: src/gui/editControls.cpp:81 +msgid "" +"input\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:82 +msgid "" +"set\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:83 +msgid "" +"clear\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:84 src/gui/findReplace.cpp:43 +#: src/gui/insEdit.cpp:7557 +msgid "clear" +msgstr "" + +#: src/gui/editControls.cpp:421 src/gui/editControls.cpp:754 +#: src/gui/editControls.cpp:887 src/gui/editControls.cpp:1015 +#: src/gui/findReplace.cpp:794 src/gui/guiConst.cpp:582 src/gui/gui.cpp:5887 +msgid "Pattern" +msgstr "" + +#: src/gui/editControls.cpp:425 src/gui/editControls.cpp:752 +#: src/gui/editControls.cpp:885 src/gui/editControls.cpp:1007 +#: src/gui/guiConst.cpp:577 src/gui/gui.cpp:5876 +msgid "Orders" +msgstr "" + +#: src/gui/editControls.cpp:429 src/gui/findReplace.cpp:669 +#: src/gui/findReplace.cpp:914 +msgid "Ins" +msgstr "" + +#: src/gui/editControls.cpp:433 +msgid "Wave" +msgstr "" + +#: src/gui/editControls.cpp:437 src/gui/guiConst.cpp:1397 +#: src/gui/insEdit.cpp:2628 src/gui/insEdit.cpp:2666 +msgid "Sample" +msgstr "" + +#: src/gui/editControls.cpp:442 src/gui/findReplace.cpp:788 +#: src/gui/guiConst.cpp:230 +msgid "Song" +msgstr "" + +#: src/gui/editControls.cpp:446 src/gui/guiConst.cpp:601 src/gui/gui.cpp:6268 +msgid "Channels" +msgstr "" + +#: src/gui/editControls.cpp:450 src/gui/sampleEdit.cpp:494 +msgid "Chips" +msgstr "" + +#: src/gui/editControls.cpp:458 src/gui/compatFlags.cpp:319 +msgid "Other" +msgstr "" + +#: src/gui/editControls.cpp:487 src/gui/guiConst.cpp:531 +msgid "New" +msgstr "" + +#: src/gui/editControls.cpp:491 src/gui/doAction.cpp:38 src/gui/gui.cpp:4188 +msgid "Unsaved changes! Save changes before creating a new song?" +msgstr "" + +#: src/gui/editControls.cpp:507 +msgid "Save as..." +msgstr "" + +#: src/gui/editControls.cpp:516 src/gui/gui.cpp:1674 +msgid "Restore Backup" +msgstr "" + +#: src/gui/editControls.cpp:524 +msgid "Song Info" +msgstr "" + +#: src/gui/editControls.cpp:528 src/gui/guiConst.cpp:608 +msgid "Subsongs" +msgstr "" + +#: src/gui/editControls.cpp:541 +msgid "Channels here..." +msgstr "" + +#: src/gui/editControls.cpp:544 +msgid "Chips here..." +msgstr "" + +#: src/gui/editControls.cpp:547 +msgid "What the hell..." +msgstr "" + +#: src/gui/editControls.cpp:554 +msgid "ChanOsc" +msgstr "" + +#: src/gui/editControls.cpp:558 +msgid "RegView" +msgstr "" + +#: src/gui/editControls.cpp:562 +msgid "Stats" +msgstr "" + +#: src/gui/editControls.cpp:566 src/gui/guiConst.cpp:611 +msgid "Grooves" +msgstr "" + +#: src/gui/editControls.cpp:569 +msgid "Compat Flags" +msgstr "" + +#: src/gui/editControls.cpp:573 +msgid "XYOsc" +msgstr "" + +#: src/gui/editControls.cpp:577 +msgid "Meter" +msgstr "" + +#: src/gui/editControls.cpp:581 +msgid "Memory" +msgstr "" + +#: src/gui/editControls.cpp:585 +msgid "CV" +msgstr "" + +#: src/gui/editControls.cpp:589 +msgid "Presets" +msgstr "" + +#: src/gui/editControls.cpp:593 +msgid "PatManager" +msgstr "" + +#: src/gui/editControls.cpp:599 src/gui/guiConst.cpp:564 +msgid "Panic" +msgstr "" + +#: src/gui/editControls.cpp:601 src/gui/guiConst.cpp:589 +#: src/gui/guiConst.cpp:591 src/gui/gui.cpp:4433 +msgid "Settings" +msgstr "" + +#: src/gui/editControls.cpp:606 +msgid "Log" +msgstr "" + +#: src/gui/editControls.cpp:610 +msgid "Debug" +msgstr "" + +#: src/gui/editControls.cpp:614 src/gui/guiConst.cpp:587 +msgid "About" +msgstr "" + +#: src/gui/editControls.cpp:619 +msgid "Switch to Desktop Mode" +msgstr "" + +#: src/gui/editControls.cpp:681 src/gui/editControls.cpp:842 +#: src/gui/editControls.cpp:959 src/gui/editControls.cpp:1125 +msgid "Octave" +msgstr "" + +#: src/gui/editControls.cpp:698 src/gui/editControls.cpp:857 +msgid "Coarse Step" +msgstr "" + +#: src/gui/editControls.cpp:698 src/gui/editControls.cpp:857 +msgid "Edit Step" +msgstr "" + +#: src/gui/editControls.cpp:731 src/gui/editControls.cpp:797 +#: src/gui/editControls.cpp:911 src/gui/editControls.cpp:1048 +#: src/gui/guiConst.cpp:545 +msgid "Play" +msgstr "" + +#: src/gui/editControls.cpp:739 src/gui/editControls.cpp:789 +#: src/gui/editControls.cpp:918 src/gui/editControls.cpp:1040 +#: src/gui/guiConst.cpp:546 +msgid "Stop" +msgstr "" + +#: src/gui/editControls.cpp:742 src/gui/editControls.cpp:826 +#: src/gui/editControls.cpp:943 src/gui/editControls.cpp:1082 +#: src/gui/gui.cpp:4420 +msgid "Edit" +msgstr "" + +#: src/gui/editControls.cpp:757 src/gui/editControls.cpp:816 +#: src/gui/editControls.cpp:934 src/gui/editControls.cpp:1104 +msgid "Repeat pattern" +msgstr "" + +#: src/gui/editControls.cpp:766 src/gui/editControls.cpp:806 +#: src/gui/editControls.cpp:925 src/gui/editControls.cpp:1073 +msgid "Step one row" +msgstr "" + +#: src/gui/editControls.cpp:771 src/gui/editControls.cpp:891 +#: src/gui/editControls.cpp:1020 src/gui/editControls.cpp:1110 +msgid "Poly##PolyInput" +msgstr "" + +#: src/gui/editControls.cpp:771 src/gui/editControls.cpp:891 +#: src/gui/editControls.cpp:1020 src/gui/editControls.cpp:1110 +msgid "Mono##PolyInput" +msgstr "" + +#: src/gui/editControls.cpp:776 src/gui/editControls.cpp:896 +#: src/gui/editControls.cpp:1025 src/gui/editControls.cpp:1115 +msgid "Polyphony" +msgstr "" + +#: src/gui/editControls.cpp:957 +msgid "Oct." +msgstr "" + +#: src/gui/editControls.cpp:974 src/gui/editControls.cpp:1142 +msgid "Coarse" +msgstr "" + +#: src/gui/editControls.cpp:974 src/gui/editControls.cpp:1142 +msgid "Step" +msgstr "" + +#: src/gui/editControls.cpp:998 +msgid "Foll." +msgstr "" + +#: src/gui/editControls.cpp:1003 +msgid "Ord##FollowOrders" +msgstr "" + +#: src/gui/editControls.cpp:1011 +msgid "Pat##FollowPattern" +msgstr "" + +#: src/gui/editControls.cpp:1057 +msgid "Play from the beginning of this pattern" +msgstr "" + +#: src/gui/editControls.cpp:1065 +msgid "Repeat from the beginning of this pattern" +msgstr "" + +#: src/gui/editControls.cpp:1169 src/gui/guiConst.cpp:560 +msgid "Follow orders" +msgstr "" + +#: src/gui/editControls.cpp:1170 src/gui/guiConst.cpp:561 +msgid "Follow pattern" +msgstr "" + +#: src/gui/util.cpp:93 +msgid "" +msgstr "" + +#: src/gui/util.cpp:97 +msgid "Ctrl-" +msgstr "" + +#: src/gui/util.cpp:99 +msgid "Alt-" +msgstr "" + +#: src/gui/util.cpp:100 +msgid "Shift-" +msgstr "" + +#: src/gui/stats.cpp:36 +msgid "Audio load" +msgstr "" + +#: src/gui/xyOsc.cpp:45 +msgid "X Channel" +msgstr "" + +#: src/gui/xyOsc.cpp:51 +msgid "Invert##X" +msgstr "" + +#: src/gui/xyOsc.cpp:52 +msgid "Y Channel" +msgstr "" + +#: src/gui/xyOsc.cpp:58 +msgid "Invert##Y" +msgstr "" + +#: src/gui/xyOsc.cpp:59 src/gui/sampleEdit.cpp:1353 +msgid "Zoom" +msgstr "" + +#: src/gui/xyOsc.cpp:71 +msgid "Decay Time (ms)" +msgstr "" + +#: src/gui/xyOsc.cpp:74 +msgid "Intensity" +msgstr "" + +#: src/gui/xyOsc.cpp:77 +msgid "Line Thickness" +msgstr "" + +#: src/gui/xyOsc.cpp:213 +msgid "(-Infinity)dB,(-Infinity)dB" +msgstr "" + +#: src/gui/xyOsc.cpp:215 +#, c-format +msgid "(-Infinity)dB,%.1fdB" +msgstr "" + +#: src/gui/xyOsc.cpp:217 +#, c-format +msgid "%.1fdB,(-Infinity)dB" +msgstr "" + +#: src/gui/xyOsc.cpp:219 +#, c-format +msgid "%.1fdB,%.1fdB" +msgstr "" + +#: src/gui/userPresets.cpp:337 +msgid "Error! User category does not exist!" +msgstr "" + +#: src/gui/userPresets.cpp:346 src/gui/newSong.cpp:181 +msgid "Systems" +msgstr "" + +#: src/gui/userPresets.cpp:349 +msgid "New Preset" +msgstr "" + +#: src/gui/userPresets.cpp:361 +msgid "select a preset" +msgstr "" + +#: src/gui/userPresets.cpp:374 +msgid "Remove##UPresetRemove" +msgstr "" + +#: src/gui/userPresets.cpp:439 +msgid "Configure" +msgstr "" + +#: src/gui/userPresets.cpp:470 +msgid "Advanced" +msgstr "" + +#: src/gui/userPresets.cpp:476 +msgid "" +"insert additional settings in `option=value` format.\n" +"available options:\n" +"- tickRate" +msgstr "" + +#: src/gui/userPresets.cpp:509 +msgid "Save and Close" +msgstr "" + +#: src/gui/userPresets.cpp:515 +msgid "Import" +msgstr "" + +#: src/gui/userPresets.cpp:519 +msgid "Import (replace)" +msgstr "" + +#: src/gui/effectList.cpp:18 +#, c-format +msgid "Chip at cursor: %s" +msgstr "" + +#: src/gui/effectList.cpp:21 +msgid "Search" +msgstr "" + +#: src/gui/effectList.cpp:25 +msgid "Effect types to show:" +msgstr "" + +#: src/gui/effectList.cpp:47 +msgid "Description" +msgstr "" + +#: src/gui/subSongs.cpp:22 +#, c-format +msgid "%d. " +msgstr "" + +#: src/gui/subSongs.cpp:73 src/gui/subSongs.cpp:93 +msgid "too many subsongs!" +msgstr "" + +#: src/gui/subSongs.cpp:114 +msgid "this is the only subsong!" +msgstr "" + +#: src/gui/subSongs.cpp:116 +msgid "are you sure you want to remove this subsong?" +msgstr "" + +#: src/gui/spoiler.cpp:32 +msgid "SPOILER" +msgstr "" + +#: src/gui/orders.cpp:114 +msgid "Add new order" +msgstr "" + +#: src/gui/orders.cpp:125 src/gui/guiConst.cpp:794 +msgid "Remove order" +msgstr "" + +#: src/gui/orders.cpp:137 +msgid "Duplicate order (right-click to deep clone)" +msgstr "" + +#: src/gui/orders.cpp:146 src/gui/guiConst.cpp:795 +msgid "Move order up" +msgstr "" + +#: src/gui/orders.cpp:155 src/gui/guiConst.cpp:796 +msgid "Move order down" +msgstr "" + +#: src/gui/orders.cpp:167 +msgid "Place copy of current order at end of song (right-click to deep clone)" +msgstr "" + +#: src/gui/orders.cpp:177 +msgid "Order change mode: entire row" +msgstr "" + +#: src/gui/orders.cpp:179 +msgid "Order change mode: one" +msgstr "" + +#: src/gui/orders.cpp:205 +msgid "Order edit mode: Select and type (scroll vertically)" +msgstr "" + +#: src/gui/orders.cpp:207 +msgid "Order edit mode: Select and type (scroll horizontally)" +msgstr "" + +#: src/gui/orders.cpp:209 +msgid "Order edit mode: Select and type (don't scroll)" +msgstr "" + +#: src/gui/orders.cpp:211 +msgid "Order edit mode: Click to change" +msgstr "" + +#: src/gui/findReplace.cpp:29 +msgid "ignore" +msgstr "" + +#: src/gui/findReplace.cpp:30 +msgid "equals" +msgstr "" + +#: src/gui/findReplace.cpp:31 +msgid "not equal" +msgstr "" + +#: src/gui/findReplace.cpp:32 +msgid "between" +msgstr "" + +#: src/gui/findReplace.cpp:33 +msgid "not between" +msgstr "" + +#: src/gui/findReplace.cpp:34 +msgid "any" +msgstr "" + +#: src/gui/findReplace.cpp:35 src/gui/guiConst.cpp:217 +msgid "none" +msgstr "" + +#: src/gui/findReplace.cpp:39 +msgid "set" +msgstr "" + +#: src/gui/findReplace.cpp:40 +msgid "add" +msgstr "" + +#: src/gui/findReplace.cpp:41 +msgid "add (overflow)" +msgstr "" + +#: src/gui/findReplace.cpp:42 +msgid "scale %" +msgstr "" + +#: src/gui/findReplace.cpp:520 src/gui/findReplace.cpp:850 +msgid "Find" +msgstr "" + +#: src/gui/findReplace.cpp:526 src/gui/findReplace.cpp:535 +msgid "order" +msgstr "" + +#: src/gui/findReplace.cpp:527 src/gui/findReplace.cpp:537 +msgid "row" +msgstr "" + +#: src/gui/findReplace.cpp:539 src/gui/csPlayer.cpp:146 +msgid "channel" +msgstr "" + +#: src/gui/findReplace.cpp:541 +msgid "go" +msgstr "" + +#: src/gui/findReplace.cpp:585 +msgid "no matches found!" +msgstr "" + +#: src/gui/findReplace.cpp:587 +msgid "Back" +msgstr "" + +#: src/gui/findReplace.cpp:601 src/gui/findReplace.cpp:864 +#: src/gui/sampleEdit.cpp:590 +msgid "Note" +msgstr "" + +#: src/gui/findReplace.cpp:707 src/gui/findReplace.cpp:974 +msgid "Effect" +msgstr "" + +#: src/gui/findReplace.cpp:725 src/gui/findReplace.cpp:1003 +msgid "Value" +msgstr "" + +#: src/gui/findReplace.cpp:750 +msgid "Delete query" +msgstr "" + +#: src/gui/findReplace.cpp:754 src/gui/findReplace.cpp:1037 +msgid "Add effect" +msgstr "" + +#: src/gui/findReplace.cpp:761 src/gui/findReplace.cpp:1044 +msgid "Remove effect" +msgstr "" + +#: src/gui/findReplace.cpp:786 +msgid "Search range:" +msgstr "" + +#: src/gui/findReplace.cpp:791 +msgid "Selection" +msgstr "" + +#: src/gui/findReplace.cpp:799 +msgid "Confine to channels" +msgstr "" + +#: src/gui/findReplace.cpp:803 src/gui/sampleEdit.cpp:1152 +msgid "From" +msgstr "" + +#: src/gui/findReplace.cpp:814 src/gui/sampleEdit.cpp:1156 +msgid "To" +msgstr "" + +#: src/gui/findReplace.cpp:826 +msgid "Match effect position:" +msgstr "" + +#: src/gui/findReplace.cpp:828 src/gui/gui.cpp:5652 src/gui/gui.cpp:5676 +#: src/gui/gui.cpp:5700 src/gui/gui.cpp:5724 src/gui/gui.cpp:5748 +#: src/gui/gui.cpp:5776 src/gui/gui.cpp:5801 src/gui/gui.cpp:5812 +#: src/gui/gui.cpp:5824 src/gui/gui.cpp:5836 src/gui/gui.cpp:6000 +#: src/gui/gui.cpp:6015 src/gui/gui.cpp:6025 src/gui/gui.cpp:6038 +msgid "No" +msgstr "" + +#: src/gui/findReplace.cpp:832 +msgid "match effects regardless of position." +msgstr "" + +#: src/gui/findReplace.cpp:834 src/gui/compatFlags.cpp:288 +msgid "Lax" +msgstr "" + +#: src/gui/findReplace.cpp:838 +msgid "match effects only if they appear in-order." +msgstr "" + +#: src/gui/findReplace.cpp:840 src/gui/compatFlags.cpp:276 +msgid "Strict" +msgstr "" + +#: src/gui/findReplace.cpp:844 +msgid "match effects only if they appear exactly as specified." +msgstr "" + +#: src/gui/findReplace.cpp:856 +msgid "Replace" +msgstr "" + +#: src/gui/findReplace.cpp:908 +msgid "INVALID" +msgstr "" + +#: src/gui/findReplace.cpp:1052 +msgid "Effect replace mode:" +msgstr "" + +#: src/gui/findReplace.cpp:1053 +msgid "Replace matches only" +msgstr "" + +#: src/gui/findReplace.cpp:1056 +msgid "Replace matches, then free spaces" +msgstr "" + +#: src/gui/findReplace.cpp:1059 +msgid "Clear effects" +msgstr "" + +#: src/gui/findReplace.cpp:1062 +msgid "Insert in free spaces" +msgstr "" + +#: src/gui/findReplace.cpp:1065 +msgid "Replace##QueryReplace" +msgstr "" + +#: src/gui/compatFlags.cpp:32 +msgid "" +"these flags are designed to provide better DefleMask/older Furnace " +"compatibility.\n" +"it is recommended to disable most of these unless you rely on specific " +"quirks." +msgstr "" + +#: src/gui/compatFlags.cpp:34 src/gui/compatFlags.cpp:310 +msgid "DefleMask" +msgstr "" + +#: src/gui/compatFlags.cpp:35 +msgid "Limit slide range" +msgstr "" + +#: src/gui/compatFlags.cpp:37 +msgid "" +"when enabled, slides are limited to a compatible range.\n" +"may cause problems with slides in negative octaves." +msgstr "" + +#: src/gui/compatFlags.cpp:39 +msgid "Compatible noise layout on NES and PC Engine" +msgstr "" + +#: src/gui/compatFlags.cpp:41 +msgid "" +"use a rather unusual compatible noise frequency layout.\n" +"removes some noise frequencies on PC Engine." +msgstr "" + +#: src/gui/compatFlags.cpp:43 +msgid "Game Boy instrument duty is wave volume" +msgstr "" + +#: src/gui/compatFlags.cpp:45 +msgid "" +"if enabled, an instrument with duty macro in the wave channel will be mapped " +"to wavetable volume." +msgstr "" + +#: src/gui/compatFlags.cpp:48 +msgid "Restart macro on portamento" +msgstr "" + +#: src/gui/compatFlags.cpp:50 +msgid "" +"when enabled, a portamento effect will reset the channel's macro if used in " +"combination with a note." +msgstr "" + +#: src/gui/compatFlags.cpp:52 +msgid "Legacy volume slides" +msgstr "" + +#: src/gui/compatFlags.cpp:54 +msgid "" +"simulate glitchy volume slide behavior by silently overflowing the volume " +"when the slide goes below 0." +msgstr "" + +#: src/gui/compatFlags.cpp:56 +msgid "Compatible arpeggio" +msgstr "" + +#: src/gui/compatFlags.cpp:58 +msgid "delay arpeggio by one tick on every new note." +msgstr "" + +#: src/gui/compatFlags.cpp:60 +msgid "Disable DAC when sample ends" +msgstr "" + +#: src/gui/compatFlags.cpp:62 +msgid "" +"when enabled, the DAC in YM2612 will be disabled if there isn't any sample " +"playing." +msgstr "" + +#: src/gui/compatFlags.cpp:64 +msgid "Broken speed alternation" +msgstr "" + +#: src/gui/compatFlags.cpp:66 +msgid "" +"determines next speed based on whether the row is odd/even instead of " +"alternating between speeds." +msgstr "" + +#: src/gui/compatFlags.cpp:68 +msgid "Ignore duplicate slide effects" +msgstr "" + +#: src/gui/compatFlags.cpp:70 +msgid "" +"if this is on, only the first slide of a row in a channel will be considered." +msgstr "" + +#: src/gui/compatFlags.cpp:72 +msgid "Ignore 0Dxx on the last order" +msgstr "" + +#: src/gui/compatFlags.cpp:74 +msgid "" +"if this is on, a jump to next row effect will not take place when it is on " +"the last order of a song." +msgstr "" + +#: src/gui/compatFlags.cpp:76 +msgid "Buggy portamento after pitch slide" +msgstr "" + +#: src/gui/compatFlags.cpp:78 +msgid "simulates a bug in where portamento does not work after sliding." +msgstr "" + +#: src/gui/compatFlags.cpp:80 +msgid "FM pitch slide octave boundary odd behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:82 +msgid "" +"if this is on, a pitch slide that crosses the octave boundary will stop for " +"one tick and then continue from the nearest octave boundary.\n" +"for .dmf compatibility." +msgstr "" + +#: src/gui/compatFlags.cpp:84 +msgid "Don't apply Game Boy envelope on note-less instrument change" +msgstr "" + +#: src/gui/compatFlags.cpp:86 +msgid "if this is on, an instrument change will not affect the envelope." +msgstr "" + +#: src/gui/compatFlags.cpp:88 +msgid "Ignore DAC mode change outside of intended channel in ExtCh mode" +msgstr "" + +#: src/gui/compatFlags.cpp:90 +msgid "if this is on, 17xx has no effect on the operator channels in YM2612." +msgstr "" + +#: src/gui/compatFlags.cpp:92 +msgid "E1xy/E2xy also take priority over slide stops" +msgstr "" + +#: src/gui/compatFlags.cpp:94 +msgid "does this make any sense by now?" +msgstr "" + +#: src/gui/compatFlags.cpp:96 +msgid "E1xy/E2xy stop when repeating the same note" +msgstr "" + +#: src/gui/compatFlags.cpp:98 +msgid "ugh, if only this wasn't a thing..." +msgstr "" + +#: src/gui/compatFlags.cpp:100 +msgid "SN76489 duty macro always resets phase" +msgstr "" + +#: src/gui/compatFlags.cpp:102 +msgid "" +"when enabled, duty macro will always reset phase, even if its value hasn't " +"changed." +msgstr "" + +#: src/gui/compatFlags.cpp:104 +msgid "Broken volume scaling strategy" +msgstr "" + +#: src/gui/compatFlags.cpp:106 +msgid "" +"when enabled:\n" +"- log scaling: multiply\n" +"- linear scaling: subtract\n" +"when disabled:\n" +"- log scaling: subtract\n" +"- linear scaling: multiply" +msgstr "" + +#: src/gui/compatFlags.cpp:108 +msgid "Don't persist volume macro after it finishes" +msgstr "" + +#: src/gui/compatFlags.cpp:110 +msgid "" +"when enabled, a value in the volume column that happens after the volume " +"macro is done will disregard the macro." +msgstr "" + +#: src/gui/compatFlags.cpp:112 +msgid "Broken output volume on instrument change" +msgstr "" + +#: src/gui/compatFlags.cpp:114 +msgid "" +"if enabled, no checks for the presence of a volume macro will be made.\n" +"this will cause the last macro value to linger unless a value in the volume " +"column is present." +msgstr "" + +#: src/gui/compatFlags.cpp:116 +msgid "Broken output volume - Episode 2 (PLEASE KEEP ME DISABLED)" +msgstr "" + +#: src/gui/compatFlags.cpp:118 +msgid "" +"these compatibility flags are getting SO damn ridiculous and out of " +"control.\n" +"as you may have guessed, this one exists due to yet ANOTHER DefleMask-" +"specific behavior.\n" +"please keep this off at all costs, because I will not support it when ROM " +"export comes.\n" +"oh, and don't start an argument out of it. Furnace isn't a DefleMask " +"replacement, and no,\n" +"I am not trying to make it look like one with all these flags.\n" +"\n" +"oh, and what about the other flags that don't have to do with DefleMask?\n" +"those are for .mod import, future FamiTracker import and personal taste!\n" +"\n" +"end of rant" +msgstr "" + +#: src/gui/compatFlags.cpp:120 +msgid "Treat SN76489 periods under 8 as 1" +msgstr "" + +#: src/gui/compatFlags.cpp:122 +msgid "" +"when enabled, any SN period under 8 will be written as 1 instead.\n" +"this replicates DefleMask behavior, but reduces available period range." +msgstr "" + +#: src/gui/compatFlags.cpp:126 src/gui/compatFlags.cpp:304 +msgid "Old Furnace" +msgstr "" + +#: src/gui/compatFlags.cpp:127 +msgid "Arpeggio inhibits non-porta slides" +msgstr "" + +#: src/gui/compatFlags.cpp:129 src/gui/compatFlags.cpp:133 +msgid "behavior changed in 0.5.5" +msgstr "" + +#: src/gui/compatFlags.cpp:131 +msgid "Wack FM algorithm macro" +msgstr "" + +#: src/gui/compatFlags.cpp:135 +msgid "Broken shortcut slides (E1xy/E2xy)" +msgstr "" + +#: src/gui/compatFlags.cpp:137 +msgid "behavior changed in 0.5.7" +msgstr "" + +#: src/gui/compatFlags.cpp:139 +msgid "Stop portamento on note off" +msgstr "" + +#: src/gui/compatFlags.cpp:141 src/gui/compatFlags.cpp:145 +#: src/gui/compatFlags.cpp:149 src/gui/compatFlags.cpp:153 +#: src/gui/compatFlags.cpp:157 src/gui/compatFlags.cpp:161 +#: src/gui/compatFlags.cpp:165 +msgid "behavior changed in 0.6pre1" +msgstr "" + +#: src/gui/compatFlags.cpp:143 +msgid "Don't allow instrument change during slides" +msgstr "" + +#: src/gui/compatFlags.cpp:147 +msgid "Don't reset note to base on arpeggio stop" +msgstr "" + +#: src/gui/compatFlags.cpp:151 +msgid "ExtCh channel status is not shared among operators" +msgstr "" + +#: src/gui/compatFlags.cpp:155 +msgid "Disable new SegaPCM features (macros and better panning)" +msgstr "" + +#: src/gui/compatFlags.cpp:159 +msgid "Old FM octave boundary behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:163 +msgid "Disable OPN2 DAC volume control" +msgstr "" + +#: src/gui/compatFlags.cpp:167 +msgid "Broken initial position of portamento after arpeggio" +msgstr "" + +#: src/gui/compatFlags.cpp:169 +msgid "behavior changed in 0.6pre1.5" +msgstr "" + +#: src/gui/compatFlags.cpp:171 +msgid "Disable new sample features" +msgstr "" + +#: src/gui/compatFlags.cpp:173 src/gui/compatFlags.cpp:177 +msgid "behavior changed in 0.6pre2" +msgstr "" + +#: src/gui/compatFlags.cpp:175 +msgid "Old arpeggio macro + pitch slide strategy" +msgstr "" + +#: src/gui/compatFlags.cpp:179 +msgid "Broken portamento during legato" +msgstr "" + +#: src/gui/compatFlags.cpp:181 +msgid "behavior changed in 0.6pre4" +msgstr "" + +#: src/gui/compatFlags.cpp:183 +msgid "Broken macros in some FM chips after note off" +msgstr "" + +#: src/gui/compatFlags.cpp:185 +msgid "behavior changed in 0.6pre5" +msgstr "" + +#: src/gui/compatFlags.cpp:187 +msgid "Pre-note does not take effects into consideration" +msgstr "" + +#: src/gui/compatFlags.cpp:189 +msgid "behavior changed in 0.6pre9" +msgstr "" + +#: src/gui/compatFlags.cpp:191 +msgid "Disable new NES DPCM features" +msgstr "" + +#: src/gui/compatFlags.cpp:193 +msgid "behavior changed in 0.6.1" +msgstr "" + +#: src/gui/compatFlags.cpp:195 +msgid "Legacy technical ALWAYS_SET_VOLUME behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:197 +msgid "" +"behavior changed in 0.6.1\n" +"this flag will be removed if I find out that none of the songs break after " +"disabling it." +msgstr "" + +#: src/gui/compatFlags.cpp:199 +msgid "Old sample offset effect" +msgstr "" + +#: src/gui/compatFlags.cpp:201 +msgid "behavior changed in 0.6.3" +msgstr "" + +#: src/gui/compatFlags.cpp:205 +msgid ".mod import" +msgstr "" + +#: src/gui/compatFlags.cpp:206 +msgid "Don't slide on the first tick of a row" +msgstr "" + +#: src/gui/compatFlags.cpp:208 +msgid "" +"simulates ProTracker's behavior of not applying volume/pitch slides on the " +"first tick of a row." +msgstr "" + +#: src/gui/compatFlags.cpp:210 +msgid "Reset arpeggio position on row change" +msgstr "" + +#: src/gui/compatFlags.cpp:212 +msgid "" +"simulates ProTracker's behavior of arpeggio being bound to the current tick " +"of a row." +msgstr "" + +#: src/gui/compatFlags.cpp:216 +msgid "Pitch/Playback" +msgstr "" + +#: src/gui/compatFlags.cpp:217 +msgid "Pitch linearity:" +msgstr "" + +#: src/gui/compatFlags.cpp:223 +msgid "like ProTracker/FamiTracker" +msgstr "" + +#: src/gui/compatFlags.cpp:227 +msgid "Partial (only 04xy/E5xx)" +msgstr "" + +#: src/gui/compatFlags.cpp:231 +msgid "" +"like DefleMask\n" +"\n" +"this pitch linearity mode is deprecated due to:\n" +"- excessive complexity\n" +"- lack of possible optimization\n" +"\n" +"it is recommended to change it now because I will remove this option in the " +"future!" +msgstr "" + +#: src/gui/compatFlags.cpp:235 +msgid "Full" +msgstr "" + +#: src/gui/compatFlags.cpp:239 +msgid "like Impulse Tracker" +msgstr "" + +#: src/gui/compatFlags.cpp:246 +msgid "Pitch slide speed multiplier" +msgstr "" + +#: src/gui/compatFlags.cpp:252 +msgid "Loop modality:" +msgstr "" + +#: src/gui/compatFlags.cpp:254 +msgid "Reset channels" +msgstr "" + +#: src/gui/compatFlags.cpp:258 +msgid "" +"select to reset channels on loop. may trigger a voltage click on every loop!" +msgstr "" + +#: src/gui/compatFlags.cpp:260 +msgid "Soft reset channels" +msgstr "" + +#: src/gui/compatFlags.cpp:264 +msgid "select to turn channels off on loop." +msgstr "" + +#: src/gui/compatFlags.cpp:266 +msgid "Do nothing" +msgstr "" + +#: src/gui/compatFlags.cpp:270 +msgid "select to not reset channels on loop." +msgstr "" + +#: src/gui/compatFlags.cpp:274 +msgid "Cut/delay effect policy:" +msgstr "" + +#: src/gui/compatFlags.cpp:280 +msgid "only when time is less than speed (like DefleMask/ProTracker)" +msgstr "" + +#: src/gui/compatFlags.cpp:282 +msgid "Strict (old)" +msgstr "" + +#: src/gui/compatFlags.cpp:286 +msgid "only when time is less than or equal to speed (original buggy behavior)" +msgstr "" + +#: src/gui/compatFlags.cpp:292 +msgid "no checks" +msgstr "" + +#: src/gui/compatFlags.cpp:296 +msgid "Simultaneous jump (0B+0D) treatment:" +msgstr "" + +#: src/gui/compatFlags.cpp:298 src/gui/gui.cpp:6055 src/gui/insEdit.cpp:217 +#: src/gui/insEdit.cpp:231 +msgid "Normal" +msgstr "" + +#: src/gui/compatFlags.cpp:302 +msgid "accept 0B+0D to jump to a specific row of an order" +msgstr "" + +#: src/gui/compatFlags.cpp:308 +msgid "only accept the first jump effect" +msgstr "" + +#: src/gui/compatFlags.cpp:314 +msgid "only accept 0Dxx" +msgstr "" + +#: src/gui/compatFlags.cpp:320 +msgid "Auto-insert one tick gap between notes" +msgstr "" + +#: src/gui/compatFlags.cpp:322 +msgid "" +"when enabled, a one-tick note cut will be inserted between non-legato/non-" +"portamento notes.\n" +"this simulates the behavior of some Amiga/SNES music engines.\n" +"\n" +"ineffective on C64." +msgstr "" + +#: src/gui/compatFlags.cpp:327 +msgid "Don't reset slides after note off" +msgstr "" + +#: src/gui/compatFlags.cpp:329 +msgid "when enabled, note off will not reset the channel's slide effect." +msgstr "" + +#: src/gui/compatFlags.cpp:331 +msgid "Don't reset portamento after reaching target" +msgstr "" + +#: src/gui/compatFlags.cpp:333 +msgid "" +"when enabled, the slide effect will not be disabled after it reaches its " +"target." +msgstr "" + +#: src/gui/compatFlags.cpp:335 +msgid "Continuous vibrato" +msgstr "" + +#: src/gui/compatFlags.cpp:337 +msgid "when enabled, vibrato phase/position will not be reset on a new note." +msgstr "" + +#: src/gui/compatFlags.cpp:339 +msgid "Pitch macro is not linear" +msgstr "" + +#: src/gui/compatFlags.cpp:341 +msgid "" +"when enabled, the pitch macro of an instrument is in frequency/period space." +msgstr "" + +#: src/gui/compatFlags.cpp:343 +msgid "Reset arpeggio effect position on new note" +msgstr "" + +#: src/gui/compatFlags.cpp:345 +msgid "when enabled, arpeggio effect (00xy) position is reset on a new note." +msgstr "" + +#: src/gui/compatFlags.cpp:347 +msgid "Volume scaling rounds up" +msgstr "" + +#: src/gui/compatFlags.cpp:349 +msgid "" +"when enabled, volume macros round up when applied\n" +"this prevents volume scaling from causing vol=0, which is silent on some " +"chips\n" +"\n" +"ineffective on logarithmic channels" +msgstr "" + +#: src/gui/guiConst.cpp:127 +msgid "Generic Sample" +msgstr "" + +#: src/gui/guiConst.cpp:149 +msgid "VRC6 (saw)" +msgstr "" + +#: src/gui/guiConst.cpp:155 +msgid "OPL (drums)" +msgstr "" + +#: src/gui/guiConst.cpp:179 +msgid "PowerNoise (noise)" +msgstr "" + +#: src/gui/guiConst.cpp:180 +msgid "PowerNoise (slope)" +msgstr "" + +#: src/gui/guiConst.cpp:191 +msgid "Forward" +msgstr "" + +#: src/gui/guiConst.cpp:192 +msgid "Backward" +msgstr "" + +#: src/gui/guiConst.cpp:193 +msgid "Ping pong" +msgstr "" + +#: src/gui/guiConst.cpp:218 +msgid "linear" +msgstr "" + +#: src/gui/guiConst.cpp:219 +msgid "cubic spline" +msgstr "" + +#: src/gui/guiConst.cpp:220 +msgid "blep synthesis" +msgstr "" + +#: src/gui/guiConst.cpp:221 +msgid "sinc" +msgstr "" + +#: src/gui/guiConst.cpp:222 +msgid "best possible" +msgstr "" + +#: src/gui/guiConst.cpp:226 src/gui/sampleEdit.cpp:137 +#: src/gui/sampleEdit.cpp:143 +msgid "Invalid" +msgstr "" + +#: src/gui/guiConst.cpp:227 src/gui/insEdit.cpp:6924 src/gui/insEdit.cpp:6931 +#: src/gui/insEdit.cpp:6942 src/gui/insEdit.cpp:6950 src/gui/insEdit.cpp:6971 +#: src/gui/insEdit.cpp:6983 src/gui/insEdit.cpp:6993 src/gui/insEdit.cpp:7006 +#: src/gui/insEdit.cpp:7019 src/gui/insEdit.cpp:7028 src/gui/insEdit.cpp:7036 +#: src/gui/insEdit.cpp:7042 src/gui/insEdit.cpp:7052 src/gui/insEdit.cpp:7061 +#: src/gui/insEdit.cpp:7068 src/gui/insEdit.cpp:7075 src/gui/insEdit.cpp:7087 +#: src/gui/insEdit.cpp:7095 src/gui/insEdit.cpp:7102 src/gui/insEdit.cpp:7109 +#: src/gui/insEdit.cpp:7117 src/gui/insEdit.cpp:7123 src/gui/insEdit.cpp:7132 +#: src/gui/insEdit.cpp:7143 src/gui/insEdit.cpp:7153 src/gui/insEdit.cpp:7161 +#: src/gui/insEdit.cpp:7174 src/gui/insEdit.cpp:7182 src/gui/insEdit.cpp:7193 +#: src/gui/insEdit.cpp:7203 src/gui/insEdit.cpp:7213 src/gui/insEdit.cpp:7227 +#: src/gui/insEdit.cpp:7233 src/gui/insEdit.cpp:7241 src/gui/insEdit.cpp:7248 +#: src/gui/insEdit.cpp:7272 src/gui/insEdit.cpp:7280 src/gui/insEdit.cpp:7289 +#: src/gui/insEdit.cpp:7298 src/gui/insEdit.cpp:7306 src/gui/insEdit.cpp:7323 +#: src/gui/insEdit.cpp:7331 src/gui/insEdit.cpp:7337 src/gui/insEdit.cpp:7344 +#: src/gui/insEdit.cpp:7350 src/gui/insEdit.cpp:7355 src/gui/insEdit.cpp:7361 +#: src/gui/insEdit.cpp:7368 src/gui/insEdit.cpp:7376 src/gui/insEdit.cpp:7385 +#: src/gui/insEdit.cpp:7393 src/gui/insEdit.cpp:7401 src/gui/insEdit.cpp:7413 +#: src/gui/insEdit.cpp:7428 src/gui/insEdit.cpp:7439 src/gui/insEdit.cpp:7447 +#: src/gui/insEdit.cpp:7456 src/gui/insEdit.cpp:7466 src/gui/insEdit.cpp:7474 +msgid "Pitch" +msgstr "" + +#: src/gui/guiConst.cpp:231 +msgid "Time" +msgstr "" + +#: src/gui/guiConst.cpp:233 +msgid "System (Primary)" +msgstr "" + +#: src/gui/guiConst.cpp:234 +msgid "System (Secondary)" +msgstr "" + +#: src/gui/guiConst.cpp:235 +msgid "Miscellaneous" +msgstr "" + +#: src/gui/guiConst.cpp:530 +msgid "---Global" +msgstr "" + +#: src/gui/guiConst.cpp:532 +msgid "Open file" +msgstr "" + +#: src/gui/guiConst.cpp:533 +msgid "Restore backup" +msgstr "" + +#: src/gui/guiConst.cpp:534 +msgid "Save file" +msgstr "" + +#: src/gui/guiConst.cpp:535 +msgid "Save as" +msgstr "" + +#: src/gui/guiConst.cpp:537 src/gui/sampleEdit.cpp:982 +msgid "Undo" +msgstr "" + +#: src/gui/guiConst.cpp:539 src/gui/guiConst.cpp:541 src/gui/sampleEdit.cpp:989 +msgid "Redo" +msgstr "" + +#: src/gui/guiConst.cpp:543 +msgid "Exit" +msgstr "" + +#: src/gui/guiConst.cpp:544 +msgid "Play/Stop (toggle)" +msgstr "" + +#: src/gui/guiConst.cpp:547 +msgid "Play (from beginning)" +msgstr "" + +#: src/gui/guiConst.cpp:548 +msgid "Play (repeat pattern)" +msgstr "" + +#: src/gui/guiConst.cpp:549 +msgid "Play from cursor" +msgstr "" + +#: src/gui/guiConst.cpp:550 +msgid "Step row" +msgstr "" + +#: src/gui/guiConst.cpp:551 +msgid "Octave up" +msgstr "" + +#: src/gui/guiConst.cpp:552 +msgid "Octave down" +msgstr "" + +#: src/gui/guiConst.cpp:553 +msgid "Previous instrument" +msgstr "" + +#: src/gui/guiConst.cpp:554 +msgid "Next instrument" +msgstr "" + +#: src/gui/guiConst.cpp:555 +msgid "Increase edit step" +msgstr "" + +#: src/gui/guiConst.cpp:556 +msgid "Decrease edit step" +msgstr "" + +#: src/gui/guiConst.cpp:557 +msgid "Toggle edit mode" +msgstr "" + +#: src/gui/guiConst.cpp:559 +msgid "Toggle repeat pattern" +msgstr "" + +#: src/gui/guiConst.cpp:562 +msgid "Toggle full-screen" +msgstr "" + +#: src/gui/guiConst.cpp:563 +msgid "Request voice from TX81Z" +msgstr "" + +#: src/gui/guiConst.cpp:565 +msgid "Clear song data" +msgstr "" + +#: src/gui/guiConst.cpp:567 src/gui/gui.cpp:5561 src/gui/gui.cpp:5613 +msgid "Command Palette" +msgstr "" + +#: src/gui/guiConst.cpp:569 +msgid "Recent files (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:570 +msgid "Instruments (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:571 +msgid "Samples (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:572 +msgid "Change instrument (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:573 +msgid "Add chip (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:576 +msgid "Edit Controls" +msgstr "" + +#: src/gui/guiConst.cpp:578 +msgid "Instrument List" +msgstr "" + +#: src/gui/guiConst.cpp:579 +msgid "Instrument Editor" +msgstr "" + +#: src/gui/guiConst.cpp:580 +msgid "Song Information" +msgstr "" + +#: src/gui/guiConst.cpp:583 +msgid "Wavetable List" +msgstr "" + +#: src/gui/guiConst.cpp:584 +msgid "Wavetable Editor" +msgstr "" + +#: src/gui/guiConst.cpp:585 +msgid "Sample List" +msgstr "" + +#: src/gui/guiConst.cpp:586 +msgid "Sample Editor" +msgstr "" + +#: src/gui/guiConst.cpp:594 +msgid "Debug Menu" +msgstr "" + +#: src/gui/guiConst.cpp:595 +msgid "Oscilloscope (master)" +msgstr "" + +#: src/gui/guiConst.cpp:596 +msgid "Volume Meter" +msgstr "" + +#: src/gui/guiConst.cpp:597 +msgid "Statistics" +msgstr "" + +#: src/gui/guiConst.cpp:598 +msgid "Compatibility Flags" +msgstr "" + +#: src/gui/guiConst.cpp:599 +msgid "Piano" +msgstr "" + +#: src/gui/guiConst.cpp:600 +msgid "Song Comments" +msgstr "" + +#: src/gui/guiConst.cpp:602 +msgid "Pattern Manager" +msgstr "" + +#: src/gui/guiConst.cpp:603 +msgid "Chip Manager" +msgstr "" + +#: src/gui/guiConst.cpp:604 +msgid "Register View" +msgstr "" + +#: src/gui/guiConst.cpp:605 +msgid "Log Viewer" +msgstr "" + +#: src/gui/guiConst.cpp:606 +msgid "Effect List" +msgstr "" + +#: src/gui/guiConst.cpp:607 +msgid "Oscilloscope (per-channel)" +msgstr "" + +#: src/gui/guiConst.cpp:609 +msgid "Find/Replace" +msgstr "" + +#: src/gui/guiConst.cpp:610 +msgid "Clock" +msgstr "" + +#: src/gui/guiConst.cpp:612 +msgid "Oscilloscope (X-Y)" +msgstr "" + +#: src/gui/guiConst.cpp:613 +msgid "Memory Composition" +msgstr "" + +#: src/gui/guiConst.cpp:614 +msgid "Command Stream Player" +msgstr "" + +#: src/gui/guiConst.cpp:615 +msgid "User Presets" +msgstr "" + +#: src/gui/guiConst.cpp:617 +msgid "Collapse/expand current window" +msgstr "" + +#: src/gui/guiConst.cpp:618 +msgid "Close current window" +msgstr "" + +#: src/gui/guiConst.cpp:621 +msgid "---Pattern" +msgstr "" + +#: src/gui/guiConst.cpp:622 +msgid "Transpose (+1)" +msgstr "" + +#: src/gui/guiConst.cpp:623 +msgid "Transpose (-1)" +msgstr "" + +#: src/gui/guiConst.cpp:624 +msgid "Transpose (+1 octave)" +msgstr "" + +#: src/gui/guiConst.cpp:625 +msgid "Transpose (-1 octave)" +msgstr "" + +#: src/gui/guiConst.cpp:626 +msgid "Increase values (+1)" +msgstr "" + +#: src/gui/guiConst.cpp:627 +msgid "Increase values (-1)" +msgstr "" + +#: src/gui/guiConst.cpp:628 +msgid "Increase values (+16)" +msgstr "" + +#: src/gui/guiConst.cpp:629 +msgid "Increase values (-16)" +msgstr "" + +#: src/gui/guiConst.cpp:630 +msgid "Select all" +msgstr "" + +#: src/gui/guiConst.cpp:631 +msgid "Cut" +msgstr "" + +#: src/gui/guiConst.cpp:632 +msgid "Copy" +msgstr "" + +#: src/gui/guiConst.cpp:633 +msgid "Paste" +msgstr "" + +#: src/gui/guiConst.cpp:634 +msgid "Paste Mix (foreground)" +msgstr "" + +#: src/gui/guiConst.cpp:635 +msgid "Paste Mix (background)" +msgstr "" + +#: src/gui/guiConst.cpp:636 +msgid "Paste Flood" +msgstr "" + +#: src/gui/guiConst.cpp:637 +msgid "Paste Overflow" +msgstr "" + +#: src/gui/guiConst.cpp:638 +msgid "Move cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:639 +msgid "Move cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:640 +msgid "Move cursor left" +msgstr "" + +#: src/gui/guiConst.cpp:641 +msgid "Move cursor right" +msgstr "" + +#: src/gui/guiConst.cpp:642 +msgid "Move cursor up by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:643 +msgid "Move cursor down by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:644 +msgid "Move cursor to previous channel" +msgstr "" + +#: src/gui/guiConst.cpp:645 +msgid "Move cursor to next channel" +msgstr "" + +#: src/gui/guiConst.cpp:646 +msgid "Move cursor to next channel (overflow)" +msgstr "" + +#: src/gui/guiConst.cpp:647 +msgid "Move cursor to previous channel (overflow)" +msgstr "" + +#: src/gui/guiConst.cpp:648 +msgid "Move cursor to beginning of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:649 +msgid "Move cursor to end of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:650 +msgid "Move cursor up (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:651 +msgid "Move cursor down (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:652 +msgid "Expand selection upwards" +msgstr "" + +#: src/gui/guiConst.cpp:653 +msgid "Expand selection downwards" +msgstr "" + +#: src/gui/guiConst.cpp:654 +msgid "Expand selection to the left" +msgstr "" + +#: src/gui/guiConst.cpp:655 +msgid "Expand selection to the right" +msgstr "" + +#: src/gui/guiConst.cpp:656 +msgid "Expand selection upwards by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:657 +msgid "Expand selection downwards by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:658 +msgid "Expand selection to beginning of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:659 +msgid "Expand selection to end of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:660 +msgid "Expand selection upwards (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:661 +msgid "Expand selection downwards (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:662 +msgid "Move selection up" +msgstr "" + +#: src/gui/guiConst.cpp:663 +msgid "Move selection down" +msgstr "" + +#: src/gui/guiConst.cpp:664 +msgid "Move selection to previous channel" +msgstr "" + +#: src/gui/guiConst.cpp:665 +msgid "Move selection to next channel" +msgstr "" + +#: src/gui/guiConst.cpp:667 +msgid "Pull delete" +msgstr "" + +#: src/gui/guiConst.cpp:668 +msgid "Insert" +msgstr "" + +#: src/gui/guiConst.cpp:669 +msgid "Mute channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:670 +msgid "Solo channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:671 +msgid "Unmute all channels" +msgstr "" + +#: src/gui/guiConst.cpp:672 +msgid "Go to next order" +msgstr "" + +#: src/gui/guiConst.cpp:673 +msgid "Go to previous order" +msgstr "" + +#: src/gui/guiConst.cpp:674 +msgid "Collapse channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:675 +msgid "Increase effect columns" +msgstr "" + +#: src/gui/guiConst.cpp:676 +msgid "Decrease effect columns" +msgstr "" + +#: src/gui/guiConst.cpp:677 +msgid "Interpolate" +msgstr "" + +#: src/gui/guiConst.cpp:678 src/gui/insEdit.cpp:530 +msgid "Fade" +msgstr "" + +#: src/gui/guiConst.cpp:679 +msgid "Invert values" +msgstr "" + +#: src/gui/guiConst.cpp:680 +msgid "Flip selection" +msgstr "" + +#: src/gui/guiConst.cpp:681 +msgid "Collapse rows" +msgstr "" + +#: src/gui/guiConst.cpp:682 +msgid "Expand rows" +msgstr "" + +#: src/gui/guiConst.cpp:683 +msgid "Collapse pattern" +msgstr "" + +#: src/gui/guiConst.cpp:684 +msgid "Expand pattern" +msgstr "" + +#: src/gui/guiConst.cpp:685 +msgid "Collapse song" +msgstr "" + +#: src/gui/guiConst.cpp:686 +msgid "Expand song" +msgstr "" + +#: src/gui/guiConst.cpp:687 +msgid "Set note input latch" +msgstr "" + +#: src/gui/guiConst.cpp:688 +msgid "Change mobile scroll mode" +msgstr "" + +#: src/gui/guiConst.cpp:689 +msgid "Clear note input latch" +msgstr "" + +#: src/gui/guiConst.cpp:692 +msgid "---Instrument list" +msgstr "" + +#: src/gui/guiConst.cpp:693 +msgid "Add instrument" +msgstr "" + +#: src/gui/guiConst.cpp:694 +msgid "Duplicate instrument" +msgstr "" + +#: src/gui/guiConst.cpp:695 +msgid "Open instrument" +msgstr "" + +#: src/gui/guiConst.cpp:696 +msgid "Open instrument (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:697 +msgid "Save instrument" +msgstr "" + +#: src/gui/guiConst.cpp:698 +msgid "Save instrument (.dmp)" +msgstr "" + +#: src/gui/guiConst.cpp:699 +msgid "Move instrument up in list" +msgstr "" + +#: src/gui/guiConst.cpp:700 +msgid "Move instrument down in list" +msgstr "" + +#: src/gui/guiConst.cpp:701 +msgid "Delete instrument" +msgstr "" + +#: src/gui/guiConst.cpp:702 +msgid "Edit instrument" +msgstr "" + +#: src/gui/guiConst.cpp:703 +msgid "Instrument cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:704 +msgid "Instrument cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:705 +msgid "Instruments: toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:708 +msgid "---Wavetable list" +msgstr "" + +#: src/gui/guiConst.cpp:709 +msgid "Add wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:710 +msgid "Duplicate wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:711 +msgid "Open wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:712 +msgid "Open wavetable (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:713 +msgid "Save wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:714 +msgid "Save wavetable (.dmw)" +msgstr "" + +#: src/gui/guiConst.cpp:715 +msgid "Save wavetable (raw)" +msgstr "" + +#: src/gui/guiConst.cpp:716 +msgid "Move wavetable up in list" +msgstr "" + +#: src/gui/guiConst.cpp:717 +msgid "Move wavetable down in list" +msgstr "" + +#: src/gui/guiConst.cpp:718 +msgid "Delete wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:719 +msgid "Edit wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:720 +msgid "Wavetable cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:721 +msgid "Wavetable cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:722 +msgid "Wavetables: toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:725 +msgid "---Sample list" +msgstr "" + +#: src/gui/guiConst.cpp:726 +msgid "Add sample" +msgstr "" + +#: src/gui/guiConst.cpp:727 +msgid "Duplicate sample" +msgstr "" + +#: src/gui/guiConst.cpp:728 +msgid "Open sample" +msgstr "" + +#: src/gui/guiConst.cpp:729 +msgid "Open sample (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:730 +msgid "Import raw sample data" +msgstr "" + +#: src/gui/guiConst.cpp:731 +msgid "Import raw sample data (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:732 +msgid "Save sample" +msgstr "" + +#: src/gui/guiConst.cpp:733 +msgid "Save sample (raw)" +msgstr "" + +#: src/gui/guiConst.cpp:734 +msgid "Move sample up in list" +msgstr "" + +#: src/gui/guiConst.cpp:735 +msgid "Move sample down in list" +msgstr "" + +#: src/gui/guiConst.cpp:736 +msgid "Delete sample" +msgstr "" + +#: src/gui/guiConst.cpp:737 +msgid "Edit sample" +msgstr "" + +#: src/gui/guiConst.cpp:738 +msgid "Sample cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:739 +msgid "Sample cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:740 +msgid "Sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:741 src/gui/sampleEdit.cpp:1339 +msgid "Stop sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:742 +msgid "Samples: Toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:743 +msgid "Samples: Make me a drum kit" +msgstr "" + +#: src/gui/guiConst.cpp:746 +msgid "---Sample editor" +msgstr "" + +#: src/gui/guiConst.cpp:747 +msgid "Sample editor mode: Select" +msgstr "" + +#: src/gui/guiConst.cpp:748 +msgid "Sample editor mode: Draw" +msgstr "" + +#: src/gui/guiConst.cpp:749 +msgid "Sample editor: Cut" +msgstr "" + +#: src/gui/guiConst.cpp:750 +msgid "Sample editor: Copy" +msgstr "" + +#: src/gui/guiConst.cpp:751 +msgid "Sample editor: Paste" +msgstr "" + +#: src/gui/guiConst.cpp:752 +msgid "Sample editor: Paste replace" +msgstr "" + +#: src/gui/guiConst.cpp:753 +msgid "Sample editor: Paste mix" +msgstr "" + +#: src/gui/guiConst.cpp:754 +msgid "Sample editor: Select all" +msgstr "" + +#: src/gui/guiConst.cpp:755 +msgid "Sample editor: Resize" +msgstr "" + +#: src/gui/guiConst.cpp:756 +msgid "Sample editor: Resample" +msgstr "" + +#: src/gui/guiConst.cpp:757 +msgid "Sample editor: Amplify" +msgstr "" + +#: src/gui/guiConst.cpp:758 +msgid "Sample editor: Normalize" +msgstr "" + +#: src/gui/guiConst.cpp:759 +msgid "Sample editor: Fade in" +msgstr "" + +#: src/gui/guiConst.cpp:760 +msgid "Sample editor: Fade out" +msgstr "" + +#: src/gui/guiConst.cpp:761 +msgid "Sample editor: Apply silence" +msgstr "" + +#: src/gui/guiConst.cpp:762 +msgid "Sample editor: Insert silence" +msgstr "" + +#: src/gui/guiConst.cpp:763 +msgid "Sample editor: Delete" +msgstr "" + +#: src/gui/guiConst.cpp:764 +msgid "Sample editor: Trim" +msgstr "" + +#: src/gui/guiConst.cpp:765 +msgid "Sample editor: Reverse" +msgstr "" + +#: src/gui/guiConst.cpp:766 +msgid "Sample editor: Invert" +msgstr "" + +#: src/gui/guiConst.cpp:767 +msgid "Sample editor: Signed/unsigned exchange" +msgstr "" + +#: src/gui/guiConst.cpp:768 +msgid "Sample editor: Apply filter" +msgstr "" + +#: src/gui/guiConst.cpp:769 +msgid "Sample editor: Crossfade loop points" +msgstr "" + +#: src/gui/guiConst.cpp:770 +msgid "Sample editor: Preview sample" +msgstr "" + +#: src/gui/guiConst.cpp:771 +msgid "Sample editor: Stop sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:772 +msgid "Sample editor: Zoom in" +msgstr "" + +#: src/gui/guiConst.cpp:773 +msgid "Sample editor: Zoom out" +msgstr "" + +#: src/gui/guiConst.cpp:774 +msgid "Sample editor: Toggle auto-zoom" +msgstr "" + +#: src/gui/guiConst.cpp:775 +msgid "Sample editor: Create instrument from sample" +msgstr "" + +#: src/gui/guiConst.cpp:776 +msgid "Sample editor: Set loop to selection" +msgstr "" + +#: src/gui/guiConst.cpp:777 +msgid "Sample editor: Create wavetable from selection" +msgstr "" + +#: src/gui/guiConst.cpp:780 +msgid "---Orders" +msgstr "" + +#: src/gui/guiConst.cpp:781 +msgid "Previous order" +msgstr "" + +#: src/gui/guiConst.cpp:782 +msgid "Next order" +msgstr "" + +#: src/gui/guiConst.cpp:783 +msgid "Order cursor left" +msgstr "" + +#: src/gui/guiConst.cpp:784 +msgid "Order cursor right" +msgstr "" + +#: src/gui/guiConst.cpp:785 +msgid "Increase order value" +msgstr "" + +#: src/gui/guiConst.cpp:786 +msgid "Decrease order value" +msgstr "" + +#: src/gui/guiConst.cpp:787 +msgid "Switch order edit mode" +msgstr "" + +#: src/gui/guiConst.cpp:788 +msgid "Order: toggle alter entire row" +msgstr "" + +#: src/gui/guiConst.cpp:789 +msgid "Add order" +msgstr "" + +#: src/gui/guiConst.cpp:790 +msgid "Duplicate order" +msgstr "" + +#: src/gui/guiConst.cpp:791 +msgid "Deep clone order" +msgstr "" + +#: src/gui/guiConst.cpp:792 +msgid "Copy current order to end of song" +msgstr "" + +#: src/gui/guiConst.cpp:793 +msgid "Deep clone current order to end of song" +msgstr "" + +#: src/gui/guiConst.cpp:797 +msgid "Replay order" +msgstr "" + +#: src/gui/guiConst.cpp:1392 +msgid "All chips" +msgstr "" + +#: src/gui/guiConst.cpp:1393 src/gui/waveEdit.cpp:668 +msgid "FM" +msgstr "" + +#: src/gui/guiConst.cpp:1394 src/gui/waveEdit.cpp:199 src/gui/insEdit.cpp:183 +#: src/gui/insEdit.cpp:194 src/gui/insEdit.cpp:326 src/gui/insEdit.cpp:656 +msgid "Square" +msgstr "" + +#: src/gui/guiConst.cpp:1395 src/gui/insEdit.cpp:6652 +msgid "Wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:1396 src/gui/insEdit.cpp:6954 src/gui/insEdit.cpp:7204 +#: src/gui/insEdit.cpp:7458 src/gui/insEdit.cpp:7480 +msgid "Special" +msgstr "" + +#: src/gui/piano.cpp:103 +msgid "Options" +msgstr "" + +#: src/gui/piano.cpp:106 +msgid "Key layout:" +msgstr "" + +#: src/gui/piano.cpp:108 +msgid "Automatic" +msgstr "" + +#: src/gui/piano.cpp:111 +msgid "Standard" +msgstr "" + +#: src/gui/piano.cpp:114 +msgid "Continuous" +msgstr "" + +#: src/gui/piano.cpp:118 +msgid "Value input pad:" +msgstr "" + +#: src/gui/piano.cpp:120 +msgid "Disabled" +msgstr "" + +#: src/gui/piano.cpp:123 +msgid "Replace piano" +msgstr "" + +#: src/gui/piano.cpp:126 +msgid "Split (automatic)" +msgstr "" + +#: src/gui/piano.cpp:129 +msgid "Split (always visible)" +msgstr "" + +#: src/gui/piano.cpp:133 +msgid "Share play/edit offset/range" +msgstr "" + +#: src/gui/piano.cpp:134 +msgid "Read-only (can't input notes)" +msgstr "" + +#: src/gui/waveEdit.cpp:30 src/gui/waveEdit.cpp:192 src/gui/insEdit.cpp:177 +#: src/gui/insEdit.cpp:188 src/gui/insEdit.cpp:199 +msgid "Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:31 src/gui/waveEdit.cpp:217 src/gui/insEdit.cpp:200 +#: src/gui/insEdit.cpp:324 src/gui/insEdit.cpp:658 +msgid "Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:32 src/gui/waveEdit.cpp:202 src/gui/insEdit.cpp:325 +#: src/gui/insEdit.cpp:654 +msgid "Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:33 +msgid "Pulse" +msgstr "" + +#: src/gui/waveEdit.cpp:38 +msgid "Linear" +msgstr "" + +#: src/gui/waveEdit.cpp:39 +msgid "Cosine" +msgstr "" + +#: src/gui/waveEdit.cpp:40 +msgid "Cubic" +msgstr "" + +#: src/gui/waveEdit.cpp:193 +msgid "Rect. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:194 +msgid "Abs. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:195 +msgid "Quart. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:196 +msgid "Squish. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:197 +msgid "Abs. Squish. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:200 +msgid "rectSquare" +msgstr "" + +#: src/gui/waveEdit.cpp:203 +msgid "Rect. Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:204 +msgid "Abs. Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:206 +msgid "Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:207 +msgid "Rect. Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:208 +msgid "Abs. Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:210 +msgid "Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:211 +msgid "Rect. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:212 +msgid "Abs. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:213 +msgid "Quart. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:214 +msgid "Squish. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:215 +msgid "Squish. Abs. Cub. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:218 +msgid "Rect. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:219 +msgid "Abs. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:220 +msgid "Quart. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:221 +msgid "Squish. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:222 +msgid "Abs. Squish. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:224 +msgid "Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:225 +msgid "Rect. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:226 +msgid "Abs. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:227 +msgid "Quart. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:228 +msgid "Squish. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:229 +msgid "Squish. Abs. Cub. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:412 src/gui/waveEdit.cpp:413 +msgid "no wavetable selected" +msgstr "" + +#: src/gui/waveEdit.cpp:424 src/gui/sampleEdit.cpp:111 src/gui/insEdit.cpp:5223 +msgid "select one..." +msgstr "" + +#: src/gui/waveEdit.cpp:432 src/gui/waveEdit.cpp:439 src/gui/sampleEdit.cpp:119 +#: src/gui/sampleEdit.cpp:126 src/gui/insEdit.cpp:5236 src/gui/insEdit.cpp:5243 +msgid "or" +msgstr "" + +#: src/gui/waveEdit.cpp:441 src/gui/sampleEdit.cpp:128 src/gui/insEdit.cpp:5245 +msgid "Create New" +msgstr "" + +#: src/gui/waveEdit.cpp:487 +msgid "Steps" +msgstr "" + +#: src/gui/waveEdit.cpp:491 +msgid "Lines" +msgstr "" + +#: src/gui/waveEdit.cpp:496 src/gui/insEdit.cpp:2687 +msgid "Width" +msgstr "" + +#: src/gui/waveEdit.cpp:498 +msgid "" +"use a width of:\n" +"- any on Amiga/N163\n" +"- 32 on Game Boy, PC Engine, SCC, Konami Bubble System, Namco WSG, Virtual " +"Boy and WonderSwan\n" +"- 64 on FDS\n" +"- 128 on X1-010\n" +"any other widths will be scaled during playback." +msgstr "" + +#: src/gui/waveEdit.cpp:510 +msgid "Height" +msgstr "" + +#: src/gui/waveEdit.cpp:512 +msgid "" +"use a height of:\n" +"- 16 for Game Boy, WonderSwan, Namco WSG, Konami Bubble System, X1-010 " +"Envelope shape and N163\n" +"- 32 for PC Engine\n" +"- 64 for FDS and Virtual Boy\n" +"- 256 for X1-010 and SCC\n" +"any other heights will be scaled during playback." +msgstr "" + +#: src/gui/waveEdit.cpp:578 +msgid "Shapes" +msgstr "" + +#: src/gui/waveEdit.cpp:597 src/gui/insEdit.cpp:5879 src/gui/insEdit.cpp:6922 +#: src/gui/insEdit.cpp:6948 src/gui/insEdit.cpp:7008 src/gui/insEdit.cpp:7048 +#: src/gui/insEdit.cpp:7150 src/gui/insEdit.cpp:7436 src/gui/insEdit.cpp:7472 +msgid "Duty" +msgstr "" + +#: src/gui/waveEdit.cpp:607 +msgid "Exponent" +msgstr "" + +#: src/gui/waveEdit.cpp:617 +msgid "XOR Point" +msgstr "" + +#: src/gui/waveEdit.cpp:627 +msgid "Amplitude/Phase" +msgstr "" + +#: src/gui/waveEdit.cpp:679 src/gui/waveEdit.cpp:723 src/gui/waveEdit.cpp:728 +msgid "Op" +msgstr "" + +#: src/gui/waveEdit.cpp:683 +msgid "Mult" +msgstr "" + +#: src/gui/waveEdit.cpp:685 +msgid "FB" +msgstr "" + +#: src/gui/waveEdit.cpp:730 src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:4148 +#: src/gui/insEdit.cpp:5812 src/gui/insEdit.cpp:6940 src/gui/insEdit.cpp:6949 +#: src/gui/insEdit.cpp:6963 src/gui/insEdit.cpp:6980 src/gui/insEdit.cpp:6991 +#: src/gui/insEdit.cpp:7004 src/gui/insEdit.cpp:7018 src/gui/insEdit.cpp:7025 +#: src/gui/insEdit.cpp:7035 src/gui/insEdit.cpp:7041 src/gui/insEdit.cpp:7050 +#: src/gui/insEdit.cpp:7074 src/gui/insEdit.cpp:7084 src/gui/insEdit.cpp:7094 +#: src/gui/insEdit.cpp:7101 src/gui/insEdit.cpp:7116 src/gui/insEdit.cpp:7131 +#: src/gui/insEdit.cpp:7151 src/gui/insEdit.cpp:7158 src/gui/insEdit.cpp:7200 +#: src/gui/insEdit.cpp:7211 src/gui/insEdit.cpp:7224 src/gui/insEdit.cpp:7349 +#: src/gui/insEdit.cpp:7425 src/gui/insEdit.cpp:7445 src/gui/insEdit.cpp:7453 +#: src/gui/insEdit.cpp:7473 +msgid "Waveform" +msgstr "" + +#: src/gui/waveEdit.cpp:749 src/gui/waveEdit.cpp:750 +msgid "Connection Diagram" +msgstr "" + +#: src/gui/waveEdit.cpp:765 +msgid "Out" +msgstr "" + +#: src/gui/waveEdit.cpp:872 +msgid "WaveTools" +msgstr "" + +#: src/gui/waveEdit.cpp:890 +msgid "Scale X" +msgstr "" + +#: src/gui/waveEdit.cpp:896 +msgid "wavetable longer than 256 samples!" +msgstr "" + +#: src/gui/waveEdit.cpp:960 +msgid "Scale Y" +msgstr "" + +#: src/gui/waveEdit.cpp:978 +msgid "Offset X" +msgstr "" + +#: src/gui/waveEdit.cpp:1000 +msgid "Offset Y" +msgstr "" + +#: src/gui/waveEdit.cpp:1017 +msgid "Smooth" +msgstr "" + +#: src/gui/waveEdit.cpp:1045 src/gui/sampleEdit.cpp:996 +msgid "Amplify" +msgstr "" + +#: src/gui/waveEdit.cpp:1063 src/gui/sampleEdit.cpp:1046 +msgid "Normalize" +msgstr "" + +#: src/gui/waveEdit.cpp:1105 src/gui/sampleEdit.cpp:1121 +msgid "Reverse" +msgstr "" + +#: src/gui/waveEdit.cpp:1117 +msgid "Half" +msgstr "" + +#: src/gui/waveEdit.cpp:1127 +msgid "Double" +msgstr "" + +#: src/gui/waveEdit.cpp:1137 +msgid "Convert Signed/Unsigned" +msgstr "" + +#: src/gui/waveEdit.cpp:1149 src/gui/gui.cpp:3040 +msgid "Randomize" +msgstr "" + +#: src/gui/waveEdit.cpp:1167 +msgid "Dec" +msgstr "" + +#: src/gui/waveEdit.cpp:1171 src/gui/csPlayer.cpp:247 +msgid "Hex" +msgstr "" + +#: src/gui/waveEdit.cpp:1179 +msgid "Signed/Unsigned" +msgstr "" + +#: src/gui/sampleEdit.cpp:65 +#, c-format +msgid "%s: maximum sample rate is %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:72 +#, c-format +msgid "%s: minimum sample rate is %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:79 +#, c-format +msgid "%s: sample rate must be %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:99 src/gui/sampleEdit.cpp:100 +msgid "no sample selected" +msgstr "" + +#: src/gui/sampleEdit.cpp:229 +#, c-format +msgid "SNES: loop start must be a multiple of 16 (try with %d)" +msgstr "" + +#: src/gui/sampleEdit.cpp:235 +#, c-format +msgid "SNES: loop end must be a multiple of 16 (try with %d)" +msgstr "" + +#: src/gui/sampleEdit.cpp:240 +msgid "SNES: sample length will be padded to multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:249 +msgid "QSound: loop cannot be longer than 32767 samples" +msgstr "" + +#: src/gui/sampleEdit.cpp:259 +msgid "NES: loop point ignored on DPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:263 +msgid "NES: maximum DPCM sample length is 32648" +msgstr "" + +#: src/gui/sampleEdit.cpp:268 +msgid "X1-010: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:271 +msgid "X1-010: maximum sample length is 131072" +msgstr "" + +#: src/gui/sampleEdit.cpp:276 +msgid "GA20: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:287 +msgid "YM2608: loop point ignored on ADPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:290 +msgid "YM2608: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:300 +msgid "YM2610: ADPCM-A samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:302 +msgid "YM2610: loop point ignored on ADPCM-B (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:305 +msgid "YM2610: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:309 +msgid "YM2610: maximum ADPCM-A sample length is 2097152" +msgstr "" + +#: src/gui/sampleEdit.cpp:318 +msgid "Y8950: loop point ignored on ADPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:321 +msgid "Y8950: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:328 +msgid "Amiga: loop start must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:331 +msgid "Amiga: loop end must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:335 +msgid "Amiga: maximum sample length is 131070" +msgstr "" + +#: src/gui/sampleEdit.cpp:344 +msgid "SegaPCM: maximum sample length is 65280" +msgstr "" + +#: src/gui/sampleEdit.cpp:353 +msgid "K053260: loop point ignored (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:357 +msgid "K053260: maximum sample length is 65535" +msgstr "" + +#: src/gui/sampleEdit.cpp:362 +msgid "C140: maximum sample length is 65535" +msgstr "" + +#: src/gui/sampleEdit.cpp:371 +msgid "C219: loop start must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:374 +msgid "C219: loop end must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:378 +msgid "C219: maximum sample length is 131072" +msgstr "" + +#: src/gui/sampleEdit.cpp:386 +msgid "MSM6295: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:389 +msgid "MSM6295: maximum bankswitched sample length is 129024" +msgstr "" + +#: src/gui/sampleEdit.cpp:395 +msgid "GBA DMA: loop start must be a multiple of 4" +msgstr "" + +#: src/gui/sampleEdit.cpp:398 +msgid "GBA DMA: loop length must be a multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:402 +msgid "GBA DMA: sample length will be padded to multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:411 +msgid "ES5506: backward loop mode isn't supported" +msgstr "" + +#: src/gui/sampleEdit.cpp:414 +msgid "" +"backward/ping-pong only supported in Generic PCM DAC\n" +"ping-pong also on ES5506" +msgstr "" + +#: src/gui/sampleEdit.cpp:444 +msgid "Info" +msgstr "" + +#: src/gui/sampleEdit.cpp:447 src/gui/sampleEdit.cpp:933 +msgid "Rate" +msgstr "" + +#: src/gui/sampleEdit.cpp:453 +msgid "Compat Rate" +msgstr "" + +#: src/gui/sampleEdit.cpp:457 +msgid "" +"used in DefleMask-compatible sample mode (17xx), in where samples are mapped " +"to an octave." +msgstr "" + +#: src/gui/sampleEdit.cpp:463 +#, c-format +msgid "Loop (length: %d)##Loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:463 src/gui/insEdit.cpp:544 src/gui/insEdit.cpp:554 +#: src/gui/insEdit.cpp:605 src/gui/insEdit.cpp:6017 +msgid "Loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:487 src/gui/sampleEdit.cpp:716 +#: src/gui/sampleEdit.cpp:752 +msgid "changing the loop in a BRR sample may result in glitches!" +msgstr "" + +#: src/gui/sampleEdit.cpp:501 src/gui/insEdit.cpp:5321 +msgid "Type" +msgstr "" + +#: src/gui/sampleEdit.cpp:529 +msgid "BRR emphasis" +msgstr "" + +#: src/gui/sampleEdit.cpp:538 +msgid "" +"this is a BRR sample.\n" +"enabling this option will muffle it (only affects non-SNES chips)." +msgstr "" + +#: src/gui/sampleEdit.cpp:540 +msgid "" +"enable this option to slightly boost high frequencies\n" +"to compensate for the SNES' Gaussian filter's muffle." +msgstr "" + +#: src/gui/sampleEdit.cpp:546 +msgid "8-bit dither" +msgstr "" + +#: src/gui/sampleEdit.cpp:554 +msgid "dither the sample when used on a chip that only supports 8-bit samples." +msgstr "" + +#: src/gui/sampleEdit.cpp:695 src/gui/gui.cpp:2969 +msgid "Start" +msgstr "" + +#: src/gui/sampleEdit.cpp:731 src/gui/gui.cpp:2977 +msgid "End" +msgstr "" + +#: src/gui/sampleEdit.cpp:841 +#, c-format +msgid "" +"%s\n" +"%d bytes free" +msgstr "" + +#: src/gui/sampleEdit.cpp:843 +#, c-format +msgid "" +"%s (%s)\n" +"%d bytes free" +msgstr "" + +#: src/gui/sampleEdit.cpp:847 +msgid "" +"\n" +"\n" +"not enough memory for this sample!" +msgstr "" + +#: src/gui/sampleEdit.cpp:871 +msgid "Edit mode: Select" +msgstr "" + +#: src/gui/sampleEdit.cpp:880 +msgid "Edit mode: Draw" +msgstr "" + +#: src/gui/sampleEdit.cpp:891 src/gui/sampleEdit.cpp:902 +msgid "Resize" +msgstr "" + +#: src/gui/sampleEdit.cpp:906 +msgid "couldn't resize! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:926 src/gui/sampleEdit.cpp:957 +msgid "Resample" +msgstr "" + +#: src/gui/sampleEdit.cpp:951 +msgid "Factor" +msgstr "" + +#: src/gui/sampleEdit.cpp:956 +msgid "Filter" +msgstr "" + +#: src/gui/sampleEdit.cpp:961 +msgid "couldn't resample! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:1010 src/gui/sampleEdit.cpp:1197 +#: src/gui/sampleEdit.cpp:1281 +msgid "Apply" +msgstr "" + +#: src/gui/sampleEdit.cpp:1053 +msgid "Fade in" +msgstr "" + +#: src/gui/sampleEdit.cpp:1060 +msgid "Fade out" +msgstr "" + +#: src/gui/sampleEdit.cpp:1065 +msgid "Insert silence" +msgstr "" + +#: src/gui/sampleEdit.cpp:1076 +msgid "Go" +msgstr "" + +#: src/gui/sampleEdit.cpp:1081 +msgid "couldn't insert! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:1098 +msgid "Apply silence" +msgstr "" + +#: src/gui/sampleEdit.cpp:1112 +msgid "Trim" +msgstr "" + +#: src/gui/sampleEdit.cpp:1135 +msgid "Signed/unsigned exchange" +msgstr "" + +#: src/gui/sampleEdit.cpp:1140 +msgid "Apply filter" +msgstr "" + +#: src/gui/sampleEdit.cpp:1151 +msgid "Cutoff:" +msgstr "" + +#: src/gui/sampleEdit.cpp:1161 src/gui/insEdit.cpp:5895 +#: src/gui/insEdit.cpp:5898 src/gui/insEdit.cpp:6953 src/gui/insEdit.cpp:7216 +#: src/gui/insEdit.cpp:7478 +msgid "Resonance" +msgstr "" + +#: src/gui/sampleEdit.cpp:1167 src/gui/insEdit.cpp:6897 +msgid "Power" +msgstr "" + +#: src/gui/sampleEdit.cpp:1181 +msgid "Low-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1186 +msgid "Band-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1191 +msgid "High-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1262 +msgid "Crossfade loop points" +msgstr "" + +#: src/gui/sampleEdit.cpp:1271 +msgid "Number of samples" +msgstr "" + +#: src/gui/sampleEdit.cpp:1277 +msgid "Linear <-> Equal power" +msgstr "" + +#: src/gui/sampleEdit.cpp:1283 +msgid "Crossfade: length would go out of bounds. Aborted..." +msgstr "" + +#: src/gui/sampleEdit.cpp:1286 +msgid "Crossfade: length would overflow loopStart. Try a smaller random value." +msgstr "" + +#: src/gui/sampleEdit.cpp:1332 +msgid "Preview sample" +msgstr "" + +#: src/gui/sampleEdit.cpp:1346 +msgid "Create instrument from sample" +msgstr "" + +#: src/gui/sampleEdit.cpp:1747 +msgid "paste (replace)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1750 +msgid "paste (mix)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1754 src/gui/gui.cpp:2763 +msgid "select all" +msgstr "" + +#: src/gui/sampleEdit.cpp:1758 +msgid "set loop to selection" +msgstr "" + +#: src/gui/sampleEdit.cpp:1761 +msgid "create wavetable from selection" +msgstr "" + +#: src/gui/sampleEdit.cpp:1767 +msgid "Draw" +msgstr "" + +#: src/gui/sampleEdit.cpp:1767 +msgid "Select" +msgstr "" + +#: src/gui/sampleEdit.cpp:1769 +#, c-format +msgid "%d samples, %d bytes" +msgstr "" + +#: src/gui/sampleEdit.cpp:1784 +#, c-format +msgid " (%d-%d: %d samples)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1976 +msgid "Non-8/16-bit samples cannot be edited without prior conversion." +msgstr "" + +#: src/gui/newSong.cpp:122 src/gui/newSong.cpp:123 +msgid "Choose a System!" +msgstr "" + +#: src/gui/newSong.cpp:179 +msgid "Categories" +msgstr "" + +#: src/gui/newSong.cpp:210 +msgid "no systems here yet!" +msgstr "" + +#: src/gui/newSong.cpp:212 +msgid "no results" +msgstr "" + +#: src/gui/newSong.cpp:228 +msgid "I'm feeling lucky" +msgstr "" + +#: src/gui/newSong.cpp:230 +msgid "no categories available! what in the world." +msgstr "" + +#: src/gui/newSong.cpp:265 +msgid "it appears you're extremely lucky today!" +msgstr "" + +#: src/gui/cursor.cpp:205 +#, c-format +msgid "finish selection: %d.%d,%d - %d.%d,%d" +msgstr "" + +#: src/gui/tutorial.cpp:485 +msgid "" +"Play demo songs?\n" +"- Down: Play current song\n" +"- Up: Play demo songs" +msgstr "" + +#: src/gui/tutorial.cpp:489 +msgid "" +"Welcome to Combat Vehicle!\n" +"\n" +"Controls:\n" +"X - Shoot Arrow Key - Move\n" +"Z - Special Esc - Quit" +msgstr "" + +#: src/gui/tutorial.cpp:494 +msgid "GAME OVER" +msgstr "" + +#: src/gui/tutorial.cpp:496 +msgid "High Score!" +msgstr "" + +#: src/gui/tutorial.cpp:656 +msgid "Welcome!" +msgstr "" + +#: src/gui/tutorial.cpp:659 +msgid "welcome to Furnace, the biggest open-source chiptune tracker!" +msgstr "" + +#: src/gui/tutorial.cpp:663 +msgid "here are some tips to get you started:" +msgstr "" + +#: src/gui/tutorial.cpp:666 +msgid "" +"- add an instrument by clicking on + in Instruments\n" +"- click on the pattern view to focus it\n" +"- channel columns have the following, in this order: note, instrument, " +"volume and effects\n" +"- hit space bar while on the pattern to toggle Edit Mode\n" +"- click on the pattern or use arrow keys to move the cursor\n" +"- values (instrument, volume, effects and effect values) are in hexadecimal\n" +"- hit enter to play/stop the song\n" +"- extend the song by adding more orders in the Orders window\n" +"- click on the Orders matrix to change the patterns of a channel (left click " +"increases; right click decreases)" +msgstr "" + +#: src/gui/tutorial.cpp:678 +msgid "" +"if you need help, you may:\n" +"- read the manual (a file called manual.pdf)\n" +"- ask for help in Discussions (https://github.com/tildearrow/furnace/" +"discussions), the Furnace Discord (https://discord.gg/EfrwT2wq7z) or Furnace " +"in Revolt (official: https://rvlt.gg/GRPS6tmc)" +msgstr "" + +#: src/gui/tutorial.cpp:685 +msgid "" +"if you find any issues, be sure to report them! the issue tracker is here: " +"https://github.com/tildearrow/furnace/issues" +msgstr "" + +#: src/gui/tutorial.cpp:1426 +#, c-format +msgid "STAGE %d" +msgstr "" + +#: src/gui/songInfo.cpp:50 +msgid "Author" +msgstr "" + +#: src/gui/songInfo.cpp:60 +msgid "Album" +msgstr "" + +#: src/gui/songInfo.cpp:79 +msgid "Auto" +msgstr "" + +#: src/gui/songInfo.cpp:100 +msgid "Tuning (A-4)" +msgstr "" + +#: src/gui/grooves.cpp:38 +msgid "use effect 09xx to select a groove pattern." +msgstr "" + +#: src/gui/grooves.cpp:48 src/gui/gui.cpp:4474 +msgid "pattern" +msgstr "" + +#: src/gui/grooves.cpp:132 +msgid "remove" +msgstr "" + +#: src/gui/doAction.cpp:45 src/gui/gui.cpp:4195 +msgid "Unsaved changes! Save changes before opening another file?" +msgstr "" + +#: src/gui/doAction.cpp:52 +msgid "Unsaved changes! Save changes before opening backup?" +msgstr "" + +#: src/gui/doAction.cpp:62 src/gui/gui.cpp:4231 src/gui/gui.cpp:5013 +#: src/gui/gui.cpp:5051 src/gui/gui.cpp:5057 src/gui/gui.cpp:5645 +#: src/gui/gui.cpp:5669 src/gui/gui.cpp:5693 src/gui/gui.cpp:5717 +#: src/gui/gui.cpp:5741 src/gui/gui.cpp:5765 +#, c-format +msgid "Error while saving file! (%s)" +msgstr "" + +#: src/gui/doAction.cpp:189 +msgid "Error while sending request (MIDI output not configured?)" +msgstr "" + +#: src/gui/doAction.cpp:197 +msgid "Select an option: (cannot be undone!)" +msgstr "" + +#: src/gui/doAction.cpp:691 src/gui/doAction.cpp:720 src/gui/doAction.cpp:1593 +#: src/gui/gui.cpp:6079 +msgid "too many instruments!" +msgstr "" + +#: src/gui/doAction.cpp:825 src/gui/doAction.cpp:843 src/gui/doAction.cpp:1634 +#: src/gui/gui.cpp:6147 src/gui/insEdit.cpp:6860 +msgid "too many wavetables!" +msgstr "" + +#: src/gui/doAction.cpp:909 src/gui/doAction.cpp:921 +msgid "too many samples!" +msgstr "" + +#: src/gui/doAction.cpp:1124 +msgid "couldn't paste! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/doAction.cpp:1628 +msgid "select at least one sample!" +msgstr "" + +#: src/gui/doAction.cpp:1630 +msgid "maximum size is 256 samples!" +msgstr "" + +#: src/gui/csPlayer.cpp:113 +msgid "Load" +msgstr "" + +#: src/gui/csPlayer.cpp:117 +msgid "Kill" +msgstr "" + +#: src/gui/csPlayer.cpp:119 +msgid "Kikai wa mou shindeiru!" +msgstr "" + +#: src/gui/csPlayer.cpp:123 +msgid "Burn Current Song" +msgstr "" + +#: src/gui/csPlayer.cpp:141 +msgid "Status" +msgstr "" + +#: src/gui/csPlayer.cpp:148 +msgid "start" +msgstr "" + +#: src/gui/csPlayer.cpp:150 +msgid "PC" +msgstr "" + +#: src/gui/csPlayer.cpp:152 +msgid "wait" +msgstr "" + +#: src/gui/csPlayer.cpp:154 +msgid "SP" +msgstr "" + +#: src/gui/csPlayer.cpp:156 src/gui/insEdit.cpp:2733 +msgid "note" +msgstr "" + +#: src/gui/csPlayer.cpp:158 src/gui/insEdit.cpp:2728 +msgid "pitch" +msgstr "" + +#: src/gui/csPlayer.cpp:160 +msgid "vol" +msgstr "" + +#: src/gui/csPlayer.cpp:162 +msgid "vols" +msgstr "" + +#: src/gui/csPlayer.cpp:164 +msgid "vib" +msgstr "" + +#: src/gui/csPlayer.cpp:166 +msgid "porta" +msgstr "" + +#: src/gui/csPlayer.cpp:168 +msgid "arp" +msgstr "" + +#: src/gui/csPlayer.cpp:203 +msgid "Trace" +msgstr "" + +#: src/gui/csPlayer.cpp:244 +msgid "Disassemble" +msgstr "" + +#: src/gui/gui.cpp:1130 src/gui/gui.cpp:1134 +msgid "the song is over!" +msgstr "" + +#: src/gui/gui.cpp:1661 +msgid "Open File" +msgstr "" + +#: src/gui/gui.cpp:1662 src/gui/gui.cpp:1792 src/gui/gui.cpp:1832 +#: src/gui/gui.cpp:1947 src/gui/gui.cpp:1956 src/gui/gui.cpp:1965 +#: src/gui/gui.cpp:2067 src/gui/gui.cpp:2087 src/gui/gui.cpp:2105 +msgid "compatible files" +msgstr "" + +#: src/gui/gui.cpp:1663 src/gui/gui.cpp:1737 src/gui/gui.cpp:1793 +#: src/gui/gui.cpp:1833 src/gui/gui.cpp:1845 src/gui/gui.cpp:1864 +#: src/gui/gui.cpp:2068 src/gui/gui.cpp:2078 src/gui/gui.cpp:2089 +#: src/gui/gui.cpp:2107 +msgid "all files" +msgstr "" + +#: src/gui/gui.cpp:1670 +msgid "no backups made yet!" +msgstr "" + +#: src/gui/gui.cpp:1675 src/gui/gui.cpp:1684 src/gui/gui.cpp:2124 +msgid "Furnace song" +msgstr "" + +#: src/gui/gui.cpp:1683 +msgid "Save File" +msgstr "" + +#: src/gui/gui.cpp:1692 src/gui/gui.cpp:1702 +msgid "Export DMF" +msgstr "" + +#: src/gui/gui.cpp:1693 +msgid "DefleMask 1.1.3 module" +msgstr "" + +#: src/gui/gui.cpp:1703 +msgid "DefleMask 1.0/legacy module" +msgstr "" + +#: src/gui/gui.cpp:1720 +msgid "Load Instrument" +msgstr "" + +#: src/gui/gui.cpp:1721 +msgid "all compatible files" +msgstr "" + +#: src/gui/gui.cpp:1722 src/gui/gui.cpp:1771 +msgid "Furnace instrument" +msgstr "" + +#: src/gui/gui.cpp:1723 src/gui/gui.cpp:1781 +msgid "DefleMask preset" +msgstr "" + +#: src/gui/gui.cpp:1724 +msgid "TFM Music Maker instrument" +msgstr "" + +#: src/gui/gui.cpp:1725 +msgid "VGM Music Maker instrument" +msgstr "" + +#: src/gui/gui.cpp:1726 +msgid "Scream Tracker 3 instrument" +msgstr "" + +#: src/gui/gui.cpp:1727 +msgid "SoundBlaster instrument" +msgstr "" + +#: src/gui/gui.cpp:1728 +msgid "Wohlstand OPL instrument" +msgstr "" + +#: src/gui/gui.cpp:1729 +msgid "Wohlstand OPN instrument" +msgstr "" + +#: src/gui/gui.cpp:1730 +msgid "Gens KMod patch dump" +msgstr "" + +#: src/gui/gui.cpp:1731 +msgid "BNK file (AdLib)" +msgstr "" + +#: src/gui/gui.cpp:1732 +msgid "FF preset bank" +msgstr "" + +#: src/gui/gui.cpp:1733 +msgid "2612edit GYB preset bank" +msgstr "" + +#: src/gui/gui.cpp:1734 +msgid "VOPM preset bank" +msgstr "" + +#: src/gui/gui.cpp:1735 +msgid "Wohlstand WOPL bank" +msgstr "" + +#: src/gui/gui.cpp:1736 +msgid "Wohlstand WOPN bank" +msgstr "" + +#: src/gui/gui.cpp:1770 src/gui/gui.cpp:1780 +msgid "Save Instrument" +msgstr "" + +#: src/gui/gui.cpp:1791 +msgid "Load Wavetable" +msgstr "" + +#: src/gui/gui.cpp:1803 src/gui/gui.cpp:1812 src/gui/gui.cpp:1821 +msgid "Save Wavetable" +msgstr "" + +#: src/gui/gui.cpp:1804 +msgid "Furnace wavetable" +msgstr "" + +#: src/gui/gui.cpp:1813 +msgid "DefleMask wavetable" +msgstr "" + +#: src/gui/gui.cpp:1822 +msgid "raw data" +msgstr "" + +#: src/gui/gui.cpp:1831 +msgid "Load Sample" +msgstr "" + +#: src/gui/gui.cpp:1844 +msgid "Load Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:1853 +msgid "Save Sample" +msgstr "" + +#: src/gui/gui.cpp:1854 src/gui/gui.cpp:1874 src/gui/gui.cpp:1884 +#: src/gui/gui.cpp:1894 +msgid "Wave file" +msgstr "" + +#: src/gui/gui.cpp:1863 +msgid "Save Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:1873 src/gui/gui.cpp:1883 src/gui/gui.cpp:1893 +msgid "Export Audio" +msgstr "" + +#: src/gui/gui.cpp:1903 +msgid "Export VGM" +msgstr "" + +#: src/gui/gui.cpp:1904 +msgid "VGM file" +msgstr "" + +#: src/gui/gui.cpp:1913 +msgid "Export ZSM" +msgstr "" + +#: src/gui/gui.cpp:1914 +msgid "ZSM file" +msgstr "" + +#: src/gui/gui.cpp:1923 src/gui/gui.cpp:1933 +msgid "Export Command Stream" +msgstr "" + +#: src/gui/gui.cpp:1924 +msgid "text file" +msgstr "" + +#: src/gui/gui.cpp:1934 +msgid "binary file" +msgstr "" + +#: src/gui/gui.cpp:1941 src/gui/gui.cpp:5364 +msgid "Coming soon!" +msgstr "" + +#: src/gui/gui.cpp:1946 src/gui/gui.cpp:1955 src/gui/gui.cpp:1964 +msgid "Select Font" +msgstr "" + +#: src/gui/gui.cpp:1973 +msgid "Select Color File" +msgstr "" + +#: src/gui/gui.cpp:1974 src/gui/gui.cpp:1983 src/gui/gui.cpp:2002 +#: src/gui/gui.cpp:2011 src/gui/gui.cpp:2020 src/gui/gui.cpp:2029 +#: src/gui/gui.cpp:2047 src/gui/gui.cpp:2056 +msgid "configuration files" +msgstr "" + +#: src/gui/gui.cpp:1982 +msgid "Select Keybind File" +msgstr "" + +#: src/gui/gui.cpp:1991 +msgid "Select Layout File" +msgstr "" + +#: src/gui/gui.cpp:1992 src/gui/gui.cpp:2038 +msgid ".ini files" +msgstr "" + +#: src/gui/gui.cpp:2001 +msgid "Select User Presets File" +msgstr "" + +#: src/gui/gui.cpp:2010 +msgid "Select Settings File" +msgstr "" + +#: src/gui/gui.cpp:2019 +msgid "Export Colors" +msgstr "" + +#: src/gui/gui.cpp:2028 +msgid "Export Keybinds" +msgstr "" + +#: src/gui/gui.cpp:2037 +msgid "Export Layout" +msgstr "" + +#: src/gui/gui.cpp:2046 +msgid "Export User Presets" +msgstr "" + +#: src/gui/gui.cpp:2055 +msgid "Export Settings" +msgstr "" + +#: src/gui/gui.cpp:2066 +msgid "Load ROM" +msgstr "" + +#: src/gui/gui.cpp:2076 +msgid "Play Command Stream" +msgstr "" + +#: src/gui/gui.cpp:2077 +msgid "command stream" +msgstr "" + +#: src/gui/gui.cpp:2086 +msgid "Open Test" +msgstr "" + +#: src/gui/gui.cpp:2088 src/gui/gui.cpp:2106 +msgid "another option" +msgstr "" + +#: src/gui/gui.cpp:2104 +msgid "Open Test (Multi)" +msgstr "" + +#: src/gui/gui.cpp:2123 +msgid "Save Test" +msgstr "" + +#: src/gui/gui.cpp:2125 +msgid "DefleMask module" +msgstr "" + +#: src/gui/gui.cpp:2165 +msgid "compression error" +msgstr "" + +#: src/gui/gui.cpp:2177 +msgid "zlib stream error" +msgstr "" + +#: src/gui/gui.cpp:2199 +msgid "zlib finish stream error" +msgstr "" + +#: src/gui/gui.cpp:2253 src/gui/gui.cpp:2416 +#, c-format +msgid "on seek: %s" +msgstr "" + +#: src/gui/gui.cpp:2260 src/gui/gui.cpp:2423 +#, c-format +msgid "on pre tell: %s" +msgstr "" + +#: src/gui/gui.cpp:2267 src/gui/gui.cpp:2430 +msgid "file is empty" +msgstr "" + +#: src/gui/gui.cpp:2270 src/gui/gui.cpp:2433 +#, c-format +msgid "on tell: %s" +msgstr "" + +#: src/gui/gui.cpp:2277 src/gui/gui.cpp:2440 +#, c-format +msgid "on get size: %s" +msgstr "" + +#: src/gui/gui.cpp:2284 src/gui/gui.cpp:2447 +#, c-format +msgid "on read: %s" +msgstr "" + +#: src/gui/gui.cpp:2310 +msgid "everything OK" +msgstr "" + +#: src/gui/gui.cpp:2328 +msgid "" +"you have loaded a backup!\n" +"if you need to, please save it somewhere.\n" +"\n" +"DO NOT RELY ON THE BACKUP SYSTEM FOR AUTO-SAVE!\n" +"Furnace will not save backups of backups." +msgstr "" + +#: src/gui/gui.cpp:2336 src/gui/gui.cpp:3737 src/gui/gui.cpp:4207 +msgid "Unsaved changes! Save changes before opening file?" +msgstr "" + +#: src/gui/gui.cpp:2730 +msgid "paste special..." +msgstr "" + +#: src/gui/gui.cpp:2731 +msgid "paste mix" +msgstr "" + +#: src/gui/gui.cpp:2732 +msgid "paste mix (background)" +msgstr "" + +#: src/gui/gui.cpp:2733 +msgid "paste with ins (foreground)" +msgstr "" + +#: src/gui/gui.cpp:2735 src/gui/gui.cpp:2747 src/gui/gui.cpp:2957 +msgid "no instruments available" +msgstr "" + +#: src/gui/gui.cpp:2745 +msgid "paste with ins (background)" +msgstr "" + +#: src/gui/gui.cpp:2757 +msgid "paste flood" +msgstr "" + +#: src/gui/gui.cpp:2758 +msgid "paste overflow" +msgstr "" + +#: src/gui/gui.cpp:2767 +msgid "operation mask..." +msgstr "" + +#: src/gui/gui.cpp:2774 +msgid "pull delete" +msgstr "" + +#: src/gui/gui.cpp:2778 +msgid "insert" +msgstr "" + +#: src/gui/gui.cpp:2786 +msgid "transpose (note)" +msgstr "" + +#: src/gui/gui.cpp:2790 +msgid "transpose (value)" +msgstr "" + +#: src/gui/gui.cpp:2802 src/gui/gui.cpp:3046 +msgid "invert values" +msgstr "" + +#: src/gui/gui.cpp:2818 +msgid "collapse/expand" +msgstr "" + +#: src/gui/gui.cpp:2823 +msgid "input latch" +msgstr "" + +#: src/gui/gui.cpp:2850 +msgid "" +"&&: selected instrument\n" +"..: no instrument" +msgstr "" + +#: src/gui/gui.cpp:2904 +msgid "Set" +msgstr "" + +#: src/gui/gui.cpp:2914 +msgid "Reset" +msgstr "" + +#: src/gui/gui.cpp:2924 +msgid "note up" +msgstr "" + +#: src/gui/gui.cpp:2925 +msgid "note down" +msgstr "" + +#: src/gui/gui.cpp:2926 +msgid "octave up" +msgstr "" + +#: src/gui/gui.cpp:2927 +msgid "octave down" +msgstr "" + +#: src/gui/gui.cpp:2929 +msgid "values up" +msgstr "" + +#: src/gui/gui.cpp:2930 +msgid "values down" +msgstr "" + +#: src/gui/gui.cpp:2931 +msgid "values up (+16)" +msgstr "" + +#: src/gui/gui.cpp:2932 +msgid "values down (-16)" +msgstr "" + +#: src/gui/gui.cpp:2935 +msgid "transpose" +msgstr "" + +#: src/gui/gui.cpp:2943 +msgid "Notes" +msgstr "" + +#: src/gui/gui.cpp:2948 +msgid "Values" +msgstr "" + +#: src/gui/gui.cpp:2955 +msgid "change instrument..." +msgstr "" + +#: src/gui/gui.cpp:2968 +msgid "gradient/fade..." +msgstr "" + +#: src/gui/gui.cpp:2985 src/gui/gui.cpp:3030 +msgid "Nibble mode" +msgstr "" + +#: src/gui/gui.cpp:2994 +msgid "Go ahead" +msgstr "" + +#: src/gui/gui.cpp:3000 src/gui/insEdit.cpp:7604 +msgid "scale..." +msgstr "" + +#: src/gui/gui.cpp:3005 +msgid "Scale" +msgstr "" + +#: src/gui/gui.cpp:3011 src/gui/insEdit.cpp:7632 +msgid "randomize..." +msgstr "" + +#: src/gui/gui.cpp:3012 +msgid "Minimum" +msgstr "" + +#: src/gui/gui.cpp:3021 +msgid "Maximum" +msgstr "" + +#: src/gui/gui.cpp:3050 +msgid "flip selection" +msgstr "" + +#: src/gui/gui.cpp:3053 +msgid "collapse/expand amount##CollapseAmount" +msgstr "" + +#: src/gui/gui.cpp:3062 +msgid "collapse pattern" +msgstr "" + +#: src/gui/gui.cpp:3063 +msgid "expand pattern" +msgstr "" + +#: src/gui/gui.cpp:3068 +msgid "collapse song" +msgstr "" + +#: src/gui/gui.cpp:3069 +msgid "expand song" +msgstr "" + +#: src/gui/gui.cpp:3074 +msgid "find/replace" +msgstr "" + +#: src/gui/gui.cpp:3088 src/gui/gui.cpp:5795 src/gui/gui.cpp:7300 +#, c-format +msgid "could NOT save layout! %s" +msgstr "" + +#: src/gui/gui.cpp:3100 +#, c-format +msgid "could NOT load layout! %s" +msgstr "" + +#: src/gui/gui.cpp:3562 +msgid "" +"Furnace has been started in Safe Mode.\n" +"this means that:\n" +"\n" +"- software rendering is being used\n" +"- audio output may not work\n" +"- font loading is disabled\n" +"\n" +"check any settings which may have made Furnace start up in this mode.\n" +"font loading is one of these." +msgstr "" + +#: src/gui/gui.cpp:4047 +msgid "can't keep going without graphics! Furnace will quit now." +msgstr "" + +#: src/gui/gui.cpp:4061 src/gui/gui.cpp:6650 src/gui/gui.cpp:7026 +msgid "error while loading fonts! please check your settings." +msgstr "" + +#: src/gui/gui.cpp:4185 +msgid "File" +msgstr "" + +#: src/gui/gui.cpp:4185 +msgid "file" +msgstr "" + +#: src/gui/gui.cpp:4186 +msgid "new..." +msgstr "" + +#: src/gui/gui.cpp:4193 +msgid "open..." +msgstr "" + +#: src/gui/gui.cpp:4200 +msgid "open recent" +msgstr "" + +#: src/gui/gui.cpp:4216 +msgid "nothing here yet" +msgstr "" + +#: src/gui/gui.cpp:4219 +msgid "clear history" +msgstr "" + +#: src/gui/gui.cpp:4220 +msgid "Are you sure you want to clear the recent file list?" +msgstr "" + +#: src/gui/gui.cpp:4235 +msgid "save as..." +msgstr "" + +#: src/gui/gui.cpp:4240 src/gui/gui.cpp:4281 +msgid "export audio..." +msgstr "" + +#: src/gui/gui.cpp:4244 src/gui/gui.cpp:4285 +msgid "export VGM..." +msgstr "" + +#: src/gui/gui.cpp:4253 src/gui/gui.cpp:4294 +msgid "export ZSM..." +msgstr "" + +#: src/gui/gui.cpp:4263 src/gui/gui.cpp:4304 +msgid "export Amiga validation data..." +msgstr "" + +#: src/gui/gui.cpp:4268 src/gui/gui.cpp:4309 +msgid "export text..." +msgstr "" + +#: src/gui/gui.cpp:4272 src/gui/gui.cpp:4313 +msgid "export command stream..." +msgstr "" + +#: src/gui/gui.cpp:4276 src/gui/gui.cpp:4317 +msgid "export .dmf..." +msgstr "" + +#: src/gui/gui.cpp:4322 +msgid "export..." +msgstr "" + +#: src/gui/gui.cpp:4328 +msgid "manage chips" +msgstr "" + +#: src/gui/gui.cpp:4332 +msgid "add chip..." +msgstr "" + +#: src/gui/gui.cpp:4337 src/gui/sysManager.cpp:138 +#, c-format +msgid "cannot add chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4349 +msgid "configure chip..." +msgstr "" + +#: src/gui/gui.cpp:4359 +msgid "change chip..." +msgstr "" + +#: src/gui/gui.cpp:4361 src/gui/gui.cpp:4384 +msgid "Preserve channel positions" +msgstr "" + +#: src/gui/gui.cpp:4373 src/gui/sysManager.cpp:109 +#, c-format +msgid "cannot change chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4382 +msgid "remove chip..." +msgstr "" + +#: src/gui/gui.cpp:4388 +#, c-format +msgid "cannot remove chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4402 +msgid "open built-in assets directory" +msgstr "" + +#: src/gui/gui.cpp:4408 +msgid "restore backup" +msgstr "" + +#: src/gui/gui.cpp:4412 +msgid "exit..." +msgstr "" + +#: src/gui/gui.cpp:4420 +msgid "edit" +msgstr "" + +#: src/gui/gui.cpp:4428 +msgid "clear..." +msgstr "" + +#: src/gui/gui.cpp:4433 +msgid "settings" +msgstr "" + +#: src/gui/gui.cpp:4435 +msgid "full screen" +msgstr "" + +#: src/gui/gui.cpp:4439 +msgid "lock layout" +msgstr "" + +#: src/gui/gui.cpp:4442 +msgid "pattern visualizer" +msgstr "" + +#: src/gui/gui.cpp:4448 +msgid "reset layout" +msgstr "" + +#: src/gui/gui.cpp:4449 +msgid "Are you sure you want to reset the workspace layout?" +msgstr "" + +#: src/gui/gui.cpp:4452 +msgid "switch to mobile view" +msgstr "" + +#: src/gui/gui.cpp:4456 +msgid "user systems..." +msgstr "" + +#: src/gui/gui.cpp:4459 +msgid "settings..." +msgstr "" + +#: src/gui/gui.cpp:4465 +msgid "Window" +msgstr "" + +#: src/gui/gui.cpp:4465 +msgid "window" +msgstr "" + +#: src/gui/gui.cpp:4466 +msgid "song" +msgstr "" + +#: src/gui/gui.cpp:4467 +msgid "song comments" +msgstr "" + +#: src/gui/gui.cpp:4468 +msgid "song information" +msgstr "" + +#: src/gui/gui.cpp:4469 +msgid "subsongs" +msgstr "" + +#: src/gui/gui.cpp:4471 +msgid "channels" +msgstr "" + +#: src/gui/gui.cpp:4472 +msgid "chip manager" +msgstr "" + +#: src/gui/gui.cpp:4473 +msgid "orders" +msgstr "" + +#: src/gui/gui.cpp:4475 +msgid "pattern manager" +msgstr "" + +#: src/gui/gui.cpp:4476 +msgid "mixer" +msgstr "" + +#: src/gui/gui.cpp:4477 +msgid "compatibility flags" +msgstr "" + +#: src/gui/gui.cpp:4480 src/gui/gui.cpp:4482 +msgid "assets" +msgstr "" + +#: src/gui/gui.cpp:4484 +msgid "instruments" +msgstr "" + +#: src/gui/gui.cpp:4485 +msgid "samples" +msgstr "" + +#: src/gui/gui.cpp:4486 +msgid "wavetables" +msgstr "" + +#: src/gui/gui.cpp:4489 +msgid "instrument editor" +msgstr "" + +#: src/gui/gui.cpp:4490 +msgid "sample editor" +msgstr "" + +#: src/gui/gui.cpp:4491 +msgid "wavetable editor" +msgstr "" + +#: src/gui/gui.cpp:4494 +msgid "visualizers" +msgstr "" + +#: src/gui/gui.cpp:4495 +msgid "oscilloscope (master)" +msgstr "" + +#: src/gui/gui.cpp:4496 +msgid "oscilloscope (per-channel)" +msgstr "" + +#: src/gui/gui.cpp:4497 +msgid "oscilloscope (X-Y)" +msgstr "" + +#: src/gui/gui.cpp:4498 +msgid "volume meter" +msgstr "" + +#: src/gui/gui.cpp:4501 +msgid "tempo" +msgstr "" + +#: src/gui/gui.cpp:4502 +msgid "clock" +msgstr "" + +#: src/gui/gui.cpp:4503 +msgid "grooves" +msgstr "" + +#: src/gui/gui.cpp:4504 +msgid "speed" +msgstr "" + +#: src/gui/gui.cpp:4508 +msgid "log viewer" +msgstr "" + +#: src/gui/gui.cpp:4509 +msgid "register view" +msgstr "" + +#: src/gui/gui.cpp:4510 +msgid "statistics" +msgstr "" + +#: src/gui/gui.cpp:4511 +msgid "memory composition" +msgstr "" + +#: src/gui/gui.cpp:4515 src/gui/gui.cpp:4523 +msgid "effect list" +msgstr "" + +#: src/gui/gui.cpp:4516 +msgid "play/edit controls" +msgstr "" + +#: src/gui/gui.cpp:4517 +msgid "piano/input pad" +msgstr "" + +#: src/gui/gui.cpp:4518 +msgid "spoiler" +msgstr "" + +#: src/gui/gui.cpp:4522 +msgid "Help" +msgstr "" + +#: src/gui/gui.cpp:4522 +msgid "help" +msgstr "" + +#: src/gui/gui.cpp:4524 +msgid "debug menu" +msgstr "" + +#: src/gui/gui.cpp:4525 +msgid "inspector" +msgstr "" + +#: src/gui/gui.cpp:4526 +msgid "panic" +msgstr "" + +#: src/gui/gui.cpp:4527 +msgid "about..." +msgstr "" + +#: src/gui/gui.cpp:4542 +#, c-format +msgid "| Speed %d:%d" +msgstr "" + +#: src/gui/gui.cpp:4544 +#, c-format +msgid "| Speed %d" +msgstr "" + +#: src/gui/gui.cpp:4546 +msgid "| Groove" +msgstr "" + +#: src/gui/gui.cpp:4549 +#, c-format +msgid " @ %gHz (%g BPM) " +msgstr "" + +#: src/gui/gui.cpp:4552 +#, c-format +msgid "| Order %.2X/%.2X " +msgstr "" + +#: src/gui/gui.cpp:4554 +#, c-format +msgid "| Order %d/%d " +msgstr "" + +#: src/gui/gui.cpp:4558 +#, c-format +msgid "| Row %.2X/%.2X " +msgstr "" + +#: src/gui/gui.cpp:4560 +#, c-format +msgid "| Row %d/%d " +msgstr "" + +#: src/gui/gui.cpp:4563 +msgid "| " +msgstr "" + +#: src/gui/gui.cpp:4566 +msgid "Don't you have anything better to do?" +msgstr "" + +#: src/gui/gui.cpp:4575 +#, c-format +msgid "%d year " +msgid_plural "%d years " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/gui/gui.cpp:4576 +#, c-format +msgid "%d month " +msgid_plural "%d months " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/gui/gui.cpp:4577 +#, c-format +msgid "%d day " +msgid_plural "%d days " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/gui/gui.cpp:4597 +msgid "Note off (cut)" +msgstr "" + +#: src/gui/gui.cpp:4599 +msgid "Note off (release)" +msgstr "" + +#: src/gui/gui.cpp:4601 +msgid "Macro release only" +msgstr "" + +#: src/gui/gui.cpp:4603 +#, c-format +msgid "Note on: %s" +msgstr "" + +#: src/gui/gui.cpp:4611 +#, c-format +msgid "Ins %d: " +msgstr "" + +#: src/gui/gui.cpp:4614 +#, c-format +msgid "Ins %d: %s" +msgstr "" + +#: src/gui/gui.cpp:4623 +#, c-format +msgid "Set volume: %d (%.2X, INVALID!)" +msgstr "" + +#: src/gui/gui.cpp:4626 +#, c-format +msgid "Set volume: %d (%.2X, %d%%)" +msgstr "" + +#: src/gui/gui.cpp:4648 +msgid "| modified" +msgstr "" + +#: src/gui/gui.cpp:4813 src/gui/gui.cpp:4816 +msgid "System File Dialog Pending" +msgstr "" + +#: src/gui/gui.cpp:4929 +msgid "" +"there was an error in the file dialog! you may want to report this issue " +"to:\n" +"https://github.com/tildearrow/furnace/issues\n" +"check the Log Viewer (window > log viewer) for more information.\n" +"\n" +"for now please disable the system file picker in Settings > General." +msgstr "" + +#: src/gui/gui.cpp:4932 +msgid "can't do anything without Storage permissions!" +msgstr "" + +#: src/gui/gui.cpp:4934 +msgid "" +"Zenity/KDialog not available!\n" +"please install one of these, or disable the system file picker in Settings > " +"General." +msgstr "" + +#: src/gui/gui.cpp:5070 +msgid "" +"error while saving instrument! only the following instrument types are " +"supported:\n" +"- FM (OPN)\n" +"- SN76489/Sega PSG\n" +"- Game Boy\n" +"- PC Engine\n" +"- NES\n" +"- C64\n" +"- FM (OPLL)\n" +"- FDS" +msgstr "" + +#: src/gui/gui.cpp:5098 +msgid "there were some errors while loading samples:\n" +msgstr "" + +#: src/gui/gui.cpp:5143 src/gui/gui.cpp:6327 +msgid "...but you haven't selected a sample!" +msgstr "" + +#: src/gui/gui.cpp:5158 src/gui/gui.cpp:5167 +msgid "could not save sample! open Log Viewer for more information." +msgstr "" + +#: src/gui/gui.cpp:5186 +msgid "there were some warnings/errors while loading instruments:\n" +msgstr "" + +#: src/gui/gui.cpp:5192 +#, c-format +msgid "> %s: cannot load instrument! (%s)\n" +msgstr "" + +#: src/gui/gui.cpp:5210 src/gui/gui.cpp:5264 +#, c-format +msgid "cannot load instrument! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5216 +msgid "" +"congratulations! you managed to load nothing.\n" +"you are entitled to a bug report." +msgstr "" + +#: src/gui/gui.cpp:5257 src/gui/gui.cpp:6231 +msgid "...but you haven't selected an instrument!" +msgstr "" + +#: src/gui/gui.cpp:5269 +msgid "there were some errors while loading wavetables:\n" +msgstr "" + +#: src/gui/gui.cpp:5278 src/gui/gui.cpp:5288 src/gui/gui.cpp:5307 +#, c-format +msgid "cannot load wavetable! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5315 +msgid "...but you haven't selected a wavetable!" +msgstr "" + +#: src/gui/gui.cpp:5330 src/gui/gui.cpp:5351 src/gui/gui.cpp:5375 +#: src/gui/gui.cpp:5396 +msgid "could not open file!" +msgstr "" + +#: src/gui/gui.cpp:5338 +#, c-format +msgid "could not write VGM! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5359 +#, c-format +msgid "Could not write ZSM! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5383 +#, c-format +msgid "could not write text! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5404 +#, c-format +msgid "could not write command stream! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5428 +msgid "could not import user presets!" +msgstr "" + +#: src/gui/gui.cpp:5433 src/gui/gui.cpp:5450 +#, c-format +msgid "could not import user presets! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5471 +#, c-format +msgid "You opened: %s" +msgstr "" + +#: src/gui/gui.cpp:5474 +msgid "You opened:" +msgstr "" + +#: src/gui/gui.cpp:5482 +#, c-format +msgid "You saved: %s" +msgstr "" + +#: src/gui/gui.cpp:5498 src/gui/gui.cpp:5633 src/gui/gui.cpp:5634 +msgid "Warning" +msgstr "" + +#: src/gui/gui.cpp:5503 src/gui/gui.cpp:5624 src/gui/gui.cpp:5625 +#: src/gui/insEdit.cpp:7520 +msgid "Error" +msgstr "" + +#: src/gui/gui.cpp:5508 src/gui/gui.cpp:6165 src/gui/gui.cpp:6166 +msgid "Select Instrument" +msgstr "" + +#: src/gui/gui.cpp:5513 src/gui/gui.cpp:6244 src/gui/gui.cpp:6245 +msgid "Import Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:5528 src/gui/gui.cpp:5581 src/gui/gui.cpp:5582 +msgid "Rendering..." +msgstr "" + +#: src/gui/gui.cpp:5551 src/gui/gui.cpp:5601 +msgid "New Song" +msgstr "" + +#: src/gui/gui.cpp:5583 +msgid "Please wait..." +msgstr "" + +#: src/gui/gui.cpp:5584 +msgid "Abort" +msgstr "" + +#: src/gui/gui.cpp:5626 +#, c-format +msgid "%s" +msgstr "" + +#: src/gui/gui.cpp:5638 src/gui/gui.cpp:5662 src/gui/gui.cpp:5686 +#: src/gui/gui.cpp:5710 src/gui/gui.cpp:5734 src/gui/gui.cpp:5758 +#: src/gui/gui.cpp:5790 src/gui/gui.cpp:5806 src/gui/gui.cpp:5817 +#: src/gui/gui.cpp:5829 src/gui/gui.cpp:5983 src/gui/gui.cpp:6005 +#: src/gui/gui.cpp:6020 src/gui/gui.cpp:6031 +msgid "Yes" +msgstr "" + +#: src/gui/gui.cpp:5856 +msgid "Erasing" +msgstr "" + +#: src/gui/gui.cpp:5859 +msgid "All subsongs" +msgstr "" + +#: src/gui/gui.cpp:5866 +msgid "Current subsong" +msgstr "" + +#: src/gui/gui.cpp:5933 +msgid "Optimization" +msgstr "" + +#: src/gui/gui.cpp:5936 src/gui/patManager.cpp:36 +msgid "De-duplicate patterns" +msgstr "" + +#: src/gui/gui.cpp:5945 +msgid "Remove unused instruments" +msgstr "" + +#: src/gui/gui.cpp:5958 +msgid "Remove unused samples" +msgstr "" + +#: src/gui/gui.cpp:5975 +msgid "Never mind! Cancel" +msgstr "" + +#: src/gui/gui.cpp:6054 +msgid "Drum kit mode:" +msgstr "" + +#: src/gui/gui.cpp:6058 +msgid "12 samples per octave" +msgstr "" + +#: src/gui/gui.cpp:6063 +msgid "Starting octave" +msgstr "" + +#: src/gui/gui.cpp:6083 +msgid "Drum Kit" +msgstr "" + +#: src/gui/gui.cpp:6169 +msgid "this is an instrument bank! select which one to use:" +msgstr "" + +#: src/gui/gui.cpp:6172 +msgid "this is an instrument bank! select which ones to load:" +msgstr "" + +#: src/gui/gui.cpp:6246 +msgid "Data type:" +msgstr "" + +#: src/gui/gui.cpp:6273 +msgid "(will be mixed down to mono)" +msgstr "" + +#: src/gui/gui.cpp:6274 +msgid "Unsigned" +msgstr "" + +#: src/gui/gui.cpp:6278 +msgid "Big endian" +msgstr "" + +#: src/gui/gui.cpp:6286 +msgid "Swap nibbles" +msgstr "" + +#: src/gui/gui.cpp:6290 +msgid "Swap words" +msgstr "" + +#: src/gui/gui.cpp:6294 +msgid "Encoding:" +msgstr "" + +#: src/gui/gui.cpp:6307 +msgid "Reverse bit order" +msgstr "" + +#: src/gui/gui.cpp:6349 +msgid "Error! No string provided!" +msgstr "" + +#: src/gui/gui.cpp:6671 +msgid "it appears I couldn't load these fonts. any setting you can check?" +msgstr "" + +#: src/gui/gui.cpp:6851 src/gui/gui.cpp:6959 +msgid "" +"could not init renderer!\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:6853 src/gui/gui.cpp:6961 +#, c-format +msgid "" +"could not init renderer! %s\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:6858 src/gui/gui.cpp:6966 +msgid "could not init renderer!" +msgstr "" + +#: src/gui/gui.cpp:6869 +#, c-format +msgid "could not open window! %s" +msgstr "" + +#: src/gui/gui.cpp:6874 +msgid "" +"\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:7502 +msgid "Unsaved changes! Save changes before quitting?" +msgstr "" + +#: src/gui/sysManager.cpp:42 +msgid "Preserve channel order" +msgstr "" + +#: src/gui/sysManager.cpp:44 +msgid "Clone channel data" +msgstr "" + +#: src/gui/sysManager.cpp:46 +msgid "Clone at end" +msgstr "" + +#: src/gui/sysManager.cpp:56 +msgid "Actions" +msgstr "" + +#: src/gui/sysManager.cpp:69 +msgid "(drag to swap chips)" +msgstr "" + +#: src/gui/sysManager.cpp:90 +msgid "Clone##SysDup" +msgstr "" + +#: src/gui/sysManager.cpp:92 +#, c-format +msgid "cannot clone chip! (%s)" +msgstr "" + +#: src/gui/sysManager.cpp:98 +msgid "Change##SysChange" +msgstr "" + +#: src/gui/sysManager.cpp:120 +msgid "Are you sure you want to remove this chip?" +msgstr "" + +#: src/gui/patManager.cpp:43 +msgid "Re-arrange patterns" +msgstr "" + +#: src/gui/patManager.cpp:50 +msgid "Sort orders" +msgstr "" + +#: src/gui/patManager.cpp:57 +msgid "Make patterns unique" +msgstr "" + +#: src/gui/patManager.cpp:103 +#, c-format +msgid "" +"Pattern %.2X\n" +"- not allocated" +msgstr "" + +#: src/gui/patManager.cpp:105 +#, c-format +msgid "" +"Pattern %.2X\n" +"- use count: %d (%.0f%%)\n" +"\n" +"right-click to erase" +msgstr "" + +#: src/gui/insEdit.cpp:39 +msgid "Down Down Down" +msgstr "" + +#: src/gui/insEdit.cpp:40 +msgid "Down." +msgstr "" + +#: src/gui/insEdit.cpp:41 +msgid "Down Up Down Up" +msgstr "" + +#: src/gui/insEdit.cpp:42 +msgid "Down UP" +msgstr "" + +#: src/gui/insEdit.cpp:43 +msgid "Up Up Up" +msgstr "" + +#: src/gui/insEdit.cpp:44 +msgid "Up." +msgstr "" + +#: src/gui/insEdit.cpp:45 +msgid "Up Down Up Down" +msgstr "" + +#: src/gui/insEdit.cpp:46 +msgid "Up DOWN" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Algorithm" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Feedback" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO > Freq" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO > Amp" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1920 src/gui/insEdit.cpp:6955 +#: src/gui/insEdit.cpp:7481 +msgid "Attack" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1960 src/gui/insEdit.cpp:6956 +#: src/gui/insEdit.cpp:7482 +msgid "Decay" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Decay 2" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:604 src/gui/insEdit.cpp:1983 +#: src/gui/insEdit.cpp:6958 src/gui/insEdit.cpp:7484 +msgid "Release" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1929 src/gui/insEdit.cpp:6957 +#: src/gui/insEdit.cpp:7483 +msgid "Sustain" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "EnvScale" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Multiplier" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:63 src/gui/insEdit.cpp:75 +msgid "Detune" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Detune 2" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:4146 +msgid "SSG-EG" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "AM" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:5438 src/gui/insEdit.cpp:6516 +msgid "AM Depth" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Vibrato Depth" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Sustained" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Level Scaling" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Vibrato" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Scale Rate" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "OP2 Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "OP1 Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "EnvShift" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Reverb" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Fine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO2 > Freq" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO2 > Amp" +msgstr "" + +#: src/gui/insEdit.cpp:56 src/gui/insEdit.cpp:68 src/gui/insEdit.cpp:7391 +msgid "OP4 Noise Mode" +msgstr "" + +#: src/gui/insEdit.cpp:57 +msgid "Envelope Delay" +msgstr "" + +#: src/gui/insEdit.cpp:58 src/gui/insEdit.cpp:70 +msgid "Output Level" +msgstr "" + +#: src/gui/insEdit.cpp:59 +msgid "Modulation Input Level" +msgstr "" + +#: src/gui/insEdit.cpp:60 +msgid "Left Output" +msgstr "" + +#: src/gui/insEdit.cpp:61 +msgid "Right Output" +msgstr "" + +#: src/gui/insEdit.cpp:62 +msgid "Coarse Tune (semitones)" +msgstr "" + +#: src/gui/insEdit.cpp:64 +msgid "Fixed Frequency Mode" +msgstr "" + +#: src/gui/insEdit.cpp:69 +msgid "Env. Delay" +msgstr "" + +#: src/gui/insEdit.cpp:71 +msgid "ModInput" +msgstr "" + +#: src/gui/insEdit.cpp:72 +msgid "Left" +msgstr "" + +#: src/gui/insEdit.cpp:73 +msgid "Right" +msgstr "" + +#: src/gui/insEdit.cpp:74 +msgid "Tune" +msgstr "" + +#: src/gui/insEdit.cpp:76 src/gui/insEdit.cpp:610 src/gui/insEdit.cpp:3792 +#: src/gui/insEdit.cpp:4554 src/gui/insEdit.cpp:4848 +msgid "Fixed" +msgstr "" + +#: src/gui/insEdit.cpp:98 src/gui/insEdit.cpp:117 src/gui/insEdit.cpp:136 +#: src/gui/insEdit.cpp:156 +msgid "User" +msgstr "" + +#: src/gui/insEdit.cpp:99 +msgid "1. Violin" +msgstr "" + +#: src/gui/insEdit.cpp:100 src/gui/insEdit.cpp:138 src/gui/insEdit.cpp:158 +msgid "2. Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:101 src/gui/insEdit.cpp:159 +msgid "3. Piano" +msgstr "" + +#: src/gui/insEdit.cpp:102 src/gui/insEdit.cpp:160 +msgid "4. Flute" +msgstr "" + +#: src/gui/insEdit.cpp:103 src/gui/insEdit.cpp:122 src/gui/insEdit.cpp:161 +msgid "5. Clarinet" +msgstr "" + +#: src/gui/insEdit.cpp:104 +msgid "6. Oboe" +msgstr "" + +#: src/gui/insEdit.cpp:105 src/gui/insEdit.cpp:124 src/gui/insEdit.cpp:143 +#: src/gui/insEdit.cpp:163 +msgid "7. Trumpet" +msgstr "" + +#: src/gui/insEdit.cpp:106 +msgid "8. Organ" +msgstr "" + +#: src/gui/insEdit.cpp:107 +msgid "9. Horn" +msgstr "" + +#: src/gui/insEdit.cpp:108 +msgid "10. Synth" +msgstr "" + +#: src/gui/insEdit.cpp:109 +msgid "11. Harpsichord" +msgstr "" + +#: src/gui/insEdit.cpp:110 src/gui/insEdit.cpp:129 src/gui/insEdit.cpp:148 +msgid "12. Vibraphone" +msgstr "" + +#: src/gui/insEdit.cpp:111 +msgid "13. Synth Bass" +msgstr "" + +#: src/gui/insEdit.cpp:112 +msgid "14. Acoustic Bass" +msgstr "" + +#: src/gui/insEdit.cpp:113 +msgid "15. Electric Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:114 src/gui/insEdit.cpp:133 src/gui/insEdit.cpp:152 +#: src/gui/insEdit.cpp:172 src/gui/insEdit.cpp:3176 +msgid "Drums" +msgstr "" + +#: src/gui/insEdit.cpp:118 +msgid "1. Electric String" +msgstr "" + +#: src/gui/insEdit.cpp:119 +msgid "2. Bow wow" +msgstr "" + +#: src/gui/insEdit.cpp:120 src/gui/insEdit.cpp:139 +msgid "3. Electric Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:121 +msgid "4. Organ" +msgstr "" + +#: src/gui/insEdit.cpp:123 +msgid "6. Saxophone" +msgstr "" + +#: src/gui/insEdit.cpp:125 +msgid "8. Street Organ" +msgstr "" + +#: src/gui/insEdit.cpp:126 +msgid "9. Synth Brass" +msgstr "" + +#: src/gui/insEdit.cpp:127 +msgid "10. Electric Piano" +msgstr "" + +#: src/gui/insEdit.cpp:128 +msgid "11. Bass" +msgstr "" + +#: src/gui/insEdit.cpp:130 +msgid "13. Chime" +msgstr "" + +#: src/gui/insEdit.cpp:131 +msgid "14. Tom Tom II" +msgstr "" + +#: src/gui/insEdit.cpp:132 +msgid "15. Noise" +msgstr "" + +#: src/gui/insEdit.cpp:137 +msgid "1. Strings" +msgstr "" + +#: src/gui/insEdit.cpp:140 +msgid "4. Electric Piano" +msgstr "" + +#: src/gui/insEdit.cpp:141 +msgid "5. Flute" +msgstr "" + +#: src/gui/insEdit.cpp:142 +msgid "6. Marimba" +msgstr "" + +#: src/gui/insEdit.cpp:144 +msgid "8. Harmonica" +msgstr "" + +#: src/gui/insEdit.cpp:145 +msgid "9. Tuba" +msgstr "" + +#: src/gui/insEdit.cpp:146 +msgid "10. Synth Brass" +msgstr "" + +#: src/gui/insEdit.cpp:147 +msgid "11. Short Saw" +msgstr "" + +#: src/gui/insEdit.cpp:149 +msgid "13. Electric Guitar 2" +msgstr "" + +#: src/gui/insEdit.cpp:150 +msgid "14. Synth Bass" +msgstr "" + +#: src/gui/insEdit.cpp:151 +msgid "15. Sitar" +msgstr "" + +#: src/gui/insEdit.cpp:157 +msgid "1. Bell" +msgstr "" + +#: src/gui/insEdit.cpp:162 +msgid "6. Rattling Bell" +msgstr "" + +#: src/gui/insEdit.cpp:164 +msgid "8. Reed Organ" +msgstr "" + +#: src/gui/insEdit.cpp:165 +msgid "9. Soft Bell" +msgstr "" + +#: src/gui/insEdit.cpp:166 +msgid "10. Xylophone" +msgstr "" + +#: src/gui/insEdit.cpp:167 +msgid "11. Vibraphone" +msgstr "" + +#: src/gui/insEdit.cpp:168 +msgid "12. Brass" +msgstr "" + +#: src/gui/insEdit.cpp:169 +msgid "13. Bass Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:170 +msgid "14. Synth" +msgstr "" + +#: src/gui/insEdit.cpp:171 +msgid "15. Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:178 src/gui/insEdit.cpp:189 +msgid "Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:179 src/gui/insEdit.cpp:190 +msgid "Absolute Sine" +msgstr "" + +#: src/gui/insEdit.cpp:180 +msgid "Quarter Sine" +msgstr "" + +#: src/gui/insEdit.cpp:181 src/gui/insEdit.cpp:203 +msgid "Squished Sine" +msgstr "" + +#: src/gui/insEdit.cpp:182 src/gui/insEdit.cpp:205 +msgid "Squished AbsSine" +msgstr "" + +#: src/gui/insEdit.cpp:184 src/gui/insEdit.cpp:195 +msgid "Derived Square" +msgstr "" + +#: src/gui/insEdit.cpp:191 +msgid "Pulse Sine" +msgstr "" + +#: src/gui/insEdit.cpp:192 +msgid "Sine (Even Periods)" +msgstr "" + +#: src/gui/insEdit.cpp:193 +msgid "AbsSine (Even Periods)" +msgstr "" + +#: src/gui/insEdit.cpp:201 +msgid "Cut Sine" +msgstr "" + +#: src/gui/insEdit.cpp:202 +msgid "Cut Triangle" +msgstr "" + +#: src/gui/insEdit.cpp:204 +msgid "Squished Triangle" +msgstr "" + +#: src/gui/insEdit.cpp:206 +msgid "Squished AbsTriangle" +msgstr "" + +#: src/gui/insEdit.cpp:210 src/gui/insEdit.cpp:218 +msgid "Snare" +msgstr "" + +#: src/gui/insEdit.cpp:211 +msgid "Tom" +msgstr "" + +#: src/gui/insEdit.cpp:212 src/gui/insEdit.cpp:220 src/gui/insEdit.cpp:1909 +#: src/gui/insEdit.cpp:2014 +msgid "Top" +msgstr "" + +#: src/gui/insEdit.cpp:213 src/gui/insEdit.cpp:219 +msgid "HiHat" +msgstr "" + +#: src/gui/insEdit.cpp:224 +msgid "Noise disabled" +msgstr "" + +#: src/gui/insEdit.cpp:225 +msgid "Square + noise" +msgstr "" + +#: src/gui/insEdit.cpp:226 +msgid "Ringmod from OP3 + noise" +msgstr "" + +#: src/gui/insEdit.cpp:227 +msgid "" +"Ringmod from OP3 + double pitch ModInput\n" +"WARNING - has emulation issues; subject to change" +msgstr "" + +#: src/gui/insEdit.cpp:232 +msgid "Bitwise AND" +msgstr "" + +#: src/gui/insEdit.cpp:233 +msgid "Bitwise OR" +msgstr "" + +#: src/gui/insEdit.cpp:234 +msgid "Bitwise XOR" +msgstr "" + +#: src/gui/insEdit.cpp:239 src/gui/insEdit.cpp:390 +msgid "gate" +msgstr "" + +#: src/gui/insEdit.cpp:240 src/gui/insEdit.cpp:391 +msgid "sync" +msgstr "" + +#: src/gui/insEdit.cpp:241 src/gui/insEdit.cpp:392 +msgid "ring" +msgstr "" + +#: src/gui/insEdit.cpp:327 +msgid "How did you even" +msgstr "" + +#: src/gui/insEdit.cpp:335 +msgid "triangle" +msgstr "" + +#: src/gui/insEdit.cpp:336 src/gui/insEdit.cpp:5821 +msgid "saw" +msgstr "" + +#: src/gui/insEdit.cpp:337 src/gui/insEdit.cpp:5827 +msgid "pulse" +msgstr "" + +#: src/gui/insEdit.cpp:338 src/gui/insEdit.cpp:344 src/gui/insEdit.cpp:373 +#: src/gui/insEdit.cpp:424 src/gui/insEdit.cpp:429 src/gui/insEdit.cpp:5833 +msgid "noise" +msgstr "" + +#: src/gui/insEdit.cpp:343 +msgid "tone" +msgstr "" + +#: src/gui/insEdit.cpp:345 +msgid "envelope" +msgstr "" + +#: src/gui/insEdit.cpp:350 +msgid "hold" +msgstr "" + +#: src/gui/insEdit.cpp:351 +msgid "alternate" +msgstr "" + +#: src/gui/insEdit.cpp:352 src/gui/insEdit.cpp:364 +msgid "direction" +msgstr "" + +#: src/gui/insEdit.cpp:353 src/gui/insEdit.cpp:436 +msgid "enable" +msgstr "" + +#: src/gui/insEdit.cpp:357 src/gui/insEdit.cpp:368 +msgid "enabled" +msgstr "" + +#: src/gui/insEdit.cpp:361 +msgid "mirror" +msgstr "" + +#: src/gui/insEdit.cpp:365 +msgid "resolution" +msgstr "" + +#: src/gui/insEdit.cpp:366 +msgid "fixed" +msgstr "" + +#: src/gui/insEdit.cpp:367 +msgid "N/A" +msgstr "" + +#: src/gui/insEdit.cpp:374 +msgid "echo" +msgstr "" + +#: src/gui/insEdit.cpp:375 +msgid "pitch mod" +msgstr "" + +#: src/gui/insEdit.cpp:376 src/gui/insEdit.cpp:508 +msgid "invert right" +msgstr "" + +#: src/gui/insEdit.cpp:377 src/gui/insEdit.cpp:509 +msgid "invert left" +msgstr "" + +#: src/gui/insEdit.cpp:382 src/gui/insEdit.cpp:5905 +msgid "low" +msgstr "" + +#: src/gui/insEdit.cpp:383 src/gui/insEdit.cpp:5911 +msgid "band" +msgstr "" + +#: src/gui/insEdit.cpp:384 src/gui/insEdit.cpp:5917 +msgid "high" +msgstr "" + +#: src/gui/insEdit.cpp:385 src/gui/insEdit.cpp:5924 +msgid "ch3off" +msgstr "" + +#: src/gui/insEdit.cpp:393 +msgid "test" +msgstr "" + +#: src/gui/insEdit.cpp:398 +msgid "15KHz" +msgstr "" + +#: src/gui/insEdit.cpp:399 +msgid "filter 2+4" +msgstr "" + +#: src/gui/insEdit.cpp:400 +msgid "filter 1+3" +msgstr "" + +#: src/gui/insEdit.cpp:401 +msgid "16-bit 3+4" +msgstr "" + +#: src/gui/insEdit.cpp:402 +msgid "16-bit 1+2" +msgstr "" + +#: src/gui/insEdit.cpp:403 +msgid "high3" +msgstr "" + +#: src/gui/insEdit.cpp:404 +msgid "high1" +msgstr "" + +#: src/gui/insEdit.cpp:405 +msgid "poly9" +msgstr "" + +#: src/gui/insEdit.cpp:414 +msgid "16'" +msgstr "" + +#: src/gui/insEdit.cpp:415 +msgid "8'" +msgstr "" + +#: src/gui/insEdit.cpp:416 +msgid "4'" +msgstr "" + +#: src/gui/insEdit.cpp:417 +msgid "2'" +msgstr "" + +#: src/gui/insEdit.cpp:418 +msgid "sustain" +msgstr "" + +#: src/gui/insEdit.cpp:423 +msgid "square" +msgstr "" + +#: src/gui/insEdit.cpp:431 +msgid "surround" +msgstr "" + +#: src/gui/insEdit.cpp:437 +msgid "oneshot" +msgstr "" + +#: src/gui/insEdit.cpp:438 +msgid "split L/R" +msgstr "" + +#: src/gui/insEdit.cpp:439 +msgid "HinvR" +msgstr "" + +#: src/gui/insEdit.cpp:440 +msgid "VinvR" +msgstr "" + +#: src/gui/insEdit.cpp:441 +msgid "HinvL" +msgstr "" + +#: src/gui/insEdit.cpp:442 +msgid "VinvL" +msgstr "" + +#: src/gui/insEdit.cpp:447 src/gui/insEdit.cpp:476 +msgid "ring mod" +msgstr "" + +#: src/gui/insEdit.cpp:448 +msgid "low pass" +msgstr "" + +#: src/gui/insEdit.cpp:449 src/gui/insEdit.cpp:475 +msgid "high pass" +msgstr "" + +#: src/gui/insEdit.cpp:450 +msgid "band pass" +msgstr "" + +#: src/gui/insEdit.cpp:459 +msgid "enable tap B" +msgstr "" + +#: src/gui/insEdit.cpp:460 +msgid "AM with slope" +msgstr "" + +#: src/gui/insEdit.cpp:465 +msgid "invert B" +msgstr "" + +#: src/gui/insEdit.cpp:466 +msgid "invert A" +msgstr "" + +#: src/gui/insEdit.cpp:467 +msgid "reset B" +msgstr "" + +#: src/gui/insEdit.cpp:468 +msgid "reset A" +msgstr "" + +#: src/gui/insEdit.cpp:469 +msgid "clip B" +msgstr "" + +#: src/gui/insEdit.cpp:470 +msgid "clip A" +msgstr "" + +#: src/gui/insEdit.cpp:477 +msgid "swap counters (noise)" +msgstr "" + +#: src/gui/insEdit.cpp:478 +msgid "low pass (noise)" +msgstr "" + +#: src/gui/insEdit.cpp:485 +msgid "rear right" +msgstr "" + +#: src/gui/insEdit.cpp:486 +msgid "rear left" +msgstr "" + +#: src/gui/insEdit.cpp:491 +msgid "on" +msgstr "" + +#: src/gui/insEdit.cpp:496 +msgid "k1 slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:497 +msgid "k2 slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:502 +msgid "pause" +msgstr "" + +#: src/gui/insEdit.cpp:503 +msgid "reverse" +msgstr "" + +#: src/gui/insEdit.cpp:521 +msgid "Subtract" +msgstr "" + +#: src/gui/insEdit.cpp:522 +msgid "Average" +msgstr "" + +#: src/gui/insEdit.cpp:523 src/gui/insEdit.cpp:2037 +msgid "Phase" +msgstr "" + +#: src/gui/insEdit.cpp:524 +msgid "Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:528 +msgid "None (dual)" +msgstr "" + +#: src/gui/insEdit.cpp:529 +msgid "Wipe" +msgstr "" + +#: src/gui/insEdit.cpp:531 +msgid "Fade (ping-pong)" +msgstr "" + +#: src/gui/insEdit.cpp:532 +msgid "Overlay" +msgstr "" + +#: src/gui/insEdit.cpp:533 +msgid "Negative Overlay" +msgstr "" + +#: src/gui/insEdit.cpp:534 +msgid "Slide" +msgstr "" + +#: src/gui/insEdit.cpp:535 +msgid "Mix Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:536 +msgid "Phase Modulation" +msgstr "" + +#: src/gui/insEdit.cpp:540 src/gui/insEdit.cpp:3547 src/gui/insEdit.cpp:3548 +#: src/gui/insEdit.cpp:4081 src/gui/insEdit.cpp:4151 src/gui/insEdit.cpp:4790 +#: src/gui/insEdit.cpp:5861 src/gui/insEdit.cpp:5862 src/gui/insEdit.cpp:6487 +#: src/gui/insEdit.cpp:6488 src/gui/insEdit.cpp:6555 src/gui/insEdit.cpp:6556 +#: src/gui/insEdit.cpp:6995 src/gui/insEdit.cpp:7009 src/gui/insEdit.cpp:7029 +#: src/gui/insEdit.cpp:7166 +#, c-format +msgid "Envelope" +msgstr "" + +#: src/gui/insEdit.cpp:541 +msgid "Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:542 src/gui/insEdit.cpp:552 +msgid "Wait" +msgstr "" + +#: src/gui/insEdit.cpp:543 src/gui/insEdit.cpp:553 +msgid "Wait for Release" +msgstr "" + +#: src/gui/insEdit.cpp:545 src/gui/insEdit.cpp:555 +msgid "Loop until Release" +msgstr "" + +#: src/gui/insEdit.cpp:549 +msgid "Volume Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:550 +msgid "Frequency Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:551 +msgid "Cutoff Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:559 src/gui/insEdit.cpp:6604 +msgid "Direct" +msgstr "" + +#: src/gui/insEdit.cpp:560 src/gui/insEdit.cpp:6608 +msgid "Decrease (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:561 src/gui/insEdit.cpp:6612 +msgid "Decrease (logarithmic)" +msgstr "" + +#: src/gui/insEdit.cpp:562 src/gui/insEdit.cpp:6616 +msgid "Increase (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:563 src/gui/insEdit.cpp:6620 +msgid "Increase (bent line)" +msgstr "" + +#: src/gui/insEdit.cpp:611 +msgid "Relative" +msgstr "" + +#: src/gui/insEdit.cpp:616 +#, c-format +msgid "%d: +%d (exponential)" +msgstr "" + +#: src/gui/insEdit.cpp:619 +#, c-format +msgid "%d: +%d (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:622 +#, c-format +msgid "%d: -%d (exponential)" +msgstr "" + +#: src/gui/insEdit.cpp:625 +#, c-format +msgid "%d: -%d (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:627 +#, c-format +msgid "%d: %d (direct)" +msgstr "" + +#: src/gui/insEdit.cpp:660 +msgid "Random" +msgstr "" + +#: src/gui/insEdit.cpp:1610 +msgid "" +"left click to restart\n" +"middle click to pause\n" +"right click to see algorithm" +msgstr "" + +#: src/gui/insEdit.cpp:1620 +msgid "" +"left click to configure TL scaling\n" +"right click to see FM preview" +msgstr "" + +#: src/gui/insEdit.cpp:1624 +msgid "right click to see FM preview" +msgstr "" + +#: src/gui/insEdit.cpp:1639 +msgid "operator level changes with volume?" +msgstr "" + +#: src/gui/insEdit.cpp:1648 +msgid "AUTO##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1650 +msgid "NO##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1652 +msgid "YES##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1900 src/gui/insEdit.cpp:2005 +msgid "Bottom" +msgstr "" + +#: src/gui/insEdit.cpp:1940 +msgid "Hold" +msgstr "" + +#: src/gui/insEdit.cpp:1949 +msgid "SusTime" +msgstr "" + +#: src/gui/insEdit.cpp:1969 +msgid "SusDecay" +msgstr "" + +#: src/gui/insEdit.cpp:2047 +msgid "Shape" +msgstr "" + +#: src/gui/insEdit.cpp:2100 +msgid "Macro type: Sequence" +msgstr "" + +#: src/gui/insEdit.cpp:2103 +msgid "Macro type: ADSR" +msgstr "" + +#: src/gui/insEdit.cpp:2106 +msgid "Macro type: LFO" +msgstr "" + +#: src/gui/insEdit.cpp:2109 +msgid "Macro type: What's going on here?" +msgstr "" + +#: src/gui/insEdit.cpp:2122 +msgid "Delay/Step Length" +msgstr "" + +#: src/gui/insEdit.cpp:2125 +msgid "Step Length (ticks)##IMacroSpeed" +msgstr "" + +#: src/gui/insEdit.cpp:2129 +msgid "Delay##IMacroDelay" +msgstr "" + +#: src/gui/insEdit.cpp:2142 +msgid "Release mode: Active (jump to release pos)" +msgstr "" + +#: src/gui/insEdit.cpp:2144 +msgid "Release mode: Passive (delayed release)" +msgstr "" + +#: src/gui/insEdit.cpp:2284 src/gui/insEdit.cpp:2382 src/gui/insEdit.cpp:5582 +#: src/gui/insEdit.cpp:6241 +msgid "Length" +msgstr "" + +#: src/gui/insEdit.cpp:2393 +msgid "StepLen" +msgstr "" + +#: src/gui/insEdit.cpp:2401 +msgid "Delay" +msgstr "" + +#: src/gui/insEdit.cpp:2425 +msgid "The heck? No, this isn't even working correctly..." +msgstr "" + +#: src/gui/insEdit.cpp:2428 +msgid "The only problem with that selectedMacro is that it's a bug..." +msgstr "" + +#: src/gui/insEdit.cpp:2589 +msgid "(copying)" +msgstr "" + +#: src/gui/insEdit.cpp:2591 +msgid "(swapping)" +msgstr "" + +#: src/gui/insEdit.cpp:2595 +msgid "" +"- drag to swap operator\n" +"- shift-drag to copy operator" +msgstr "" + +#: src/gui/insEdit.cpp:2629 +msgid "DPCM" +msgstr "" + +#: src/gui/insEdit.cpp:2632 +msgid "new DPCM features disabled (compatibility)!" +msgstr "" + +#: src/gui/insEdit.cpp:2633 +msgid "click here to enable them." +msgstr "" + +#: src/gui/insEdit.cpp:2644 +msgid "none selected" +msgstr "" + +#: src/gui/insEdit.cpp:2657 +msgid "Use sample" +msgstr "" + +#: src/gui/insEdit.cpp:2659 +msgid "Sample bank slot##BANKSLOT" +msgstr "" + +#: src/gui/insEdit.cpp:2681 +msgid "Use wavetable (Amiga/Generic DAC only)" +msgstr "" + +#: src/gui/insEdit.cpp:2681 +msgid "Use wavetable" +msgstr "" + +#: src/gui/insEdit.cpp:2708 +msgid "Use sample map" +msgstr "" + +#: src/gui/insEdit.cpp:2730 +msgid "delta" +msgstr "" + +#: src/gui/insEdit.cpp:2736 +msgid "sample name" +msgstr "" + +#: src/gui/insEdit.cpp:3001 +msgid "set entire map to this pitch" +msgstr "" + +#: src/gui/insEdit.cpp:3009 +msgid "set entire map to this delta counter value" +msgstr "" + +#: src/gui/insEdit.cpp:3018 +msgid "set entire map to this note" +msgstr "" + +#: src/gui/insEdit.cpp:3027 +msgid "set entire map to this sample" +msgstr "" + +#: src/gui/insEdit.cpp:3037 +msgid "reset pitches" +msgstr "" + +#: src/gui/insEdit.cpp:3042 +msgid "clear delta counter values" +msgstr "" + +#: src/gui/insEdit.cpp:3048 +msgid "reset notes" +msgstr "" + +#: src/gui/insEdit.cpp:3054 +msgid "clear map samples" +msgstr "" + +#: src/gui/insEdit.cpp:3148 +msgid "Request from TX81Z" +msgstr "" + +#: src/gui/insEdit.cpp:3234 +#, c-format +msgid "%s name" +msgstr "" + +#: src/gui/insEdit.cpp:3286 +msgid "Fixed frequency mode" +msgstr "" + +#: src/gui/insEdit.cpp:3288 +msgid "" +"when enabled, drums will be set to the specified frequencies, ignoring the " +"note." +msgstr "" + +#: src/gui/insEdit.cpp:3296 +msgid "Drum" +msgstr "" + +#: src/gui/insEdit.cpp:3298 src/gui/insEdit.cpp:3798 src/gui/insEdit.cpp:3904 +#: src/gui/insEdit.cpp:4404 src/gui/insEdit.cpp:4468 src/gui/insEdit.cpp:5068 +#: src/gui/insEdit.cpp:5518 +msgid "Block" +msgstr "" + +#: src/gui/insEdit.cpp:3300 src/gui/insEdit.cpp:3803 src/gui/insEdit.cpp:3909 +#: src/gui/insEdit.cpp:4993 src/gui/insEdit.cpp:5079 src/gui/insEdit.cpp:5519 +msgid "FreqNum" +msgstr "" + +#: src/gui/insEdit.cpp:3302 src/gui/insEdit.cpp:3624 +msgid "Kick" +msgstr "" + +#: src/gui/insEdit.cpp:3303 +msgid "Snare/Hi-hat" +msgstr "" + +#: src/gui/insEdit.cpp:3304 +msgid "Tom/Top" +msgstr "" + +#: src/gui/insEdit.cpp:3314 +msgid "Volume##TL" +msgstr "" + +#: src/gui/insEdit.cpp:3316 +msgid "this volume slider only works in compatibility (non-drums) system." +msgstr "" + +#: src/gui/insEdit.cpp:3626 +msgid "Env" +msgstr "" + +#: src/gui/insEdit.cpp:3980 src/gui/insEdit.cpp:4346 src/gui/insEdit.cpp:4396 +#: src/gui/insEdit.cpp:5104 +msgid "OPL2/3 only (last 4 waveforms are OPL3 only)" +msgstr "" + +#: src/gui/insEdit.cpp:4079 src/gui/insEdit.cpp:4788 +#, c-format +msgid "Envelope 2 (kick only)" +msgstr "" + +#: src/gui/insEdit.cpp:4084 +#, c-format +msgid "Operator %d" +msgstr "" + +#: src/gui/insEdit.cpp:4414 +msgid "Freq" +msgstr "" + +#: src/gui/insEdit.cpp:4443 +msgid "Only on YM2151 (OPM)" +msgstr "" + +#: src/gui/insEdit.cpp:4466 +msgid "Blk" +msgstr "" + +#: src/gui/insEdit.cpp:4479 +msgid "F" +msgstr "" + +#: src/gui/insEdit.cpp:4481 +msgid "Frequency (F-Num)" +msgstr "" + +#: src/gui/insEdit.cpp:4833 +msgid "SSG On" +msgstr "" + +#: src/gui/insEdit.cpp:5206 src/gui/insEdit.cpp:5207 +msgid "waiting..." +msgstr "" + +#: src/gui/insEdit.cpp:5210 src/gui/insEdit.cpp:5211 +msgid "no instrument selected" +msgstr "" + +#: src/gui/insEdit.cpp:5393 +msgid "" +"none of the currently present chips are able to play this instrument type!" +msgstr "" + +#: src/gui/insEdit.cpp:5413 +msgid "FM Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5435 src/gui/insEdit.cpp:5440 +msgid "LFO Speed" +msgstr "" + +#: src/gui/insEdit.cpp:5439 src/gui/insEdit.cpp:6514 +msgid "PM Depth" +msgstr "" + +#: src/gui/insEdit.cpp:5441 +msgid "LFO Shape" +msgstr "" + +#: src/gui/insEdit.cpp:5444 +msgid "OpMask" +msgstr "" + +#: src/gui/insEdit.cpp:5446 +msgid "AM Depth 2" +msgstr "" + +#: src/gui/insEdit.cpp:5447 +msgid "PM Depth 2" +msgstr "" + +#: src/gui/insEdit.cpp:5448 +msgid "LFO2 Speed" +msgstr "" + +#: src/gui/insEdit.cpp:5449 +msgid "LFO2 Shape" +msgstr "" + +#: src/gui/insEdit.cpp:5458 +#, c-format +msgid "Operator Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5460 +#, c-format +msgid "OP%d Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5521 +msgid "Op. Arpeggio" +msgstr "" + +#: src/gui/insEdit.cpp:5522 +msgid "Op. Pitch" +msgstr "" + +#: src/gui/insEdit.cpp:5531 +msgid "Op. Panning" +msgstr "" + +#: src/gui/insEdit.cpp:5558 +msgid "Use software envelope" +msgstr "" + +#: src/gui/insEdit.cpp:5559 +msgid "Initialize envelope on every note" +msgstr "" + +#: src/gui/insEdit.cpp:5560 +msgid "Double wave length (GBA only)" +msgstr "" + +#: src/gui/insEdit.cpp:5589 src/gui/insEdit.cpp:5666 +msgid "Sound Length" +msgstr "" + +#: src/gui/insEdit.cpp:5592 src/gui/insEdit.cpp:5666 +msgid "Infinity" +msgstr "" + +#: src/gui/insEdit.cpp:5596 +msgid "Direction" +msgstr "" + +#: src/gui/insEdit.cpp:5599 src/gui/insEdit.cpp:5669 src/gui/insEdit.cpp:5697 +#: src/gui/insEdit.cpp:6008 src/gui/insEdit.cpp:6051 +msgid "Up" +msgstr "" + +#: src/gui/insEdit.cpp:5604 src/gui/insEdit.cpp:5674 src/gui/insEdit.cpp:5702 +#: src/gui/insEdit.cpp:6013 src/gui/insEdit.cpp:6056 +msgid "Down" +msgstr "" + +#: src/gui/insEdit.cpp:5620 src/gui/insEdit.cpp:5953 +msgid "Hardware Sequence" +msgstr "" + +#: src/gui/insEdit.cpp:5630 src/gui/insEdit.cpp:5963 +msgid "Tick" +msgstr "" + +#: src/gui/insEdit.cpp:5632 src/gui/insEdit.cpp:5965 +msgid "Command" +msgstr "" + +#: src/gui/insEdit.cpp:5634 src/gui/insEdit.cpp:5967 +msgid "Move/Remove" +msgstr "" + +#: src/gui/insEdit.cpp:5663 +msgid "Env Length" +msgstr "" + +#: src/gui/insEdit.cpp:5690 +msgid "Shift" +msgstr "" + +#: src/gui/insEdit.cpp:5717 src/gui/insEdit.cpp:6073 +msgid "Ticks" +msgstr "" + +#: src/gui/insEdit.cpp:5736 src/gui/insEdit.cpp:6092 src/gui/insEdit.cpp:6239 +msgid "Position" +msgstr "" + +#: src/gui/insEdit.cpp:5815 +msgid "tri" +msgstr "" + +#: src/gui/insEdit.cpp:5882 +msgid "Ring Modulation" +msgstr "" + +#: src/gui/insEdit.cpp:5886 +msgid "Oscillator Sync" +msgstr "" + +#: src/gui/insEdit.cpp:5890 +msgid "Enable filter" +msgstr "" + +#: src/gui/insEdit.cpp:5891 +msgid "Initialize filter" +msgstr "" + +#: src/gui/insEdit.cpp:5894 src/gui/insEdit.cpp:5897 src/gui/insEdit.cpp:6951 +#: src/gui/insEdit.cpp:7215 src/gui/insEdit.cpp:7476 +msgid "Cutoff" +msgstr "" + +#: src/gui/insEdit.cpp:5902 src/gui/insEdit.cpp:6408 src/gui/insEdit.cpp:6952 +#: src/gui/insEdit.cpp:7179 src/gui/insEdit.cpp:7477 +msgid "Filter Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5931 src/gui/insEdit.cpp:7485 +msgid "Noise Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5932 +msgid "Wave Mix Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5935 +msgid "Absolute Cutoff Macro" +msgstr "" + +#: src/gui/insEdit.cpp:5939 +msgid "Absolute Duty Macro" +msgstr "" + +#: src/gui/insEdit.cpp:5945 +msgid "Don't test before new note" +msgstr "" + +#: src/gui/insEdit.cpp:5950 +msgid "Switch roles of frequency and phase reset timer" +msgstr "" + +#: src/gui/insEdit.cpp:5997 src/gui/insEdit.cpp:6040 +msgid "Period" +msgstr "" + +#: src/gui/insEdit.cpp:6002 src/gui/insEdit.cpp:6045 src/gui/insEdit.cpp:6892 +msgid "Amount" +msgstr "" + +#: src/gui/insEdit.cpp:6005 src/gui/insEdit.cpp:6048 +msgid "Bound" +msgstr "" + +#: src/gui/insEdit.cpp:6021 +msgid "Flip" +msgstr "" + +#: src/gui/insEdit.cpp:6210 +msgid "Load waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6215 +msgid "" +"when enabled, a waveform will be loaded into RAM.\n" +"when disabled, only the offset and length change." +msgstr "" + +#: src/gui/insEdit.cpp:6219 +msgid "Waveform##WAVE" +msgstr "" + +#: src/gui/insEdit.cpp:6227 +msgid "Per-channel wave position/length" +msgstr "" + +#: src/gui/insEdit.cpp:6237 +msgid "Ch" +msgstr "" + +#: src/gui/insEdit.cpp:6286 +msgid "Compatibility mode" +msgstr "" + +#: src/gui/insEdit.cpp:6288 +msgid "" +"only use for compatibility with .dmf modules!\n" +"- initializes modulation table with first wavetable\n" +"- does not alter modulation parameters on instrument change" +msgstr "" + +#: src/gui/insEdit.cpp:6290 +msgid "Modulation depth" +msgstr "" + +#: src/gui/insEdit.cpp:6294 +msgid "Modulation speed" +msgstr "" + +#: src/gui/insEdit.cpp:6298 +msgid "Modulation table" +msgstr "" + +#: src/gui/insEdit.cpp:6347 +msgid "Set modulation table (channel 5 only)" +msgstr "" + +#: src/gui/insEdit.cpp:6411 src/gui/insEdit.cpp:7184 +msgid "Filter K1" +msgstr "" + +#: src/gui/insEdit.cpp:6413 src/gui/insEdit.cpp:7185 +msgid "Filter K2" +msgstr "" + +#: src/gui/insEdit.cpp:6417 +msgid "Envelope length" +msgstr "" + +#: src/gui/insEdit.cpp:6420 +msgid "Left Volume Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6422 +msgid "Right Volume Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6425 +msgid "Filter K1 Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6427 +msgid "Filter K2 Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6430 +msgid "K1 Ramp Slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:6432 +msgid "K2 Ramp Slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:6454 +msgid "Attack Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6460 +msgid "Decay 1 Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6466 +msgid "Decay Level" +msgstr "" + +#: src/gui/insEdit.cpp:6472 +msgid "Decay 2 Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6478 +msgid "Release Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6484 +msgid "Rate Correction" +msgstr "" + +#: src/gui/insEdit.cpp:6512 +msgid "LFO Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6523 +msgid "Use envelope" +msgstr "" + +#: src/gui/insEdit.cpp:6576 +msgid "Sustain/release mode:" +msgstr "" + +#: src/gui/insEdit.cpp:6577 +msgid "Direct (cut on release)" +msgstr "" + +#: src/gui/insEdit.cpp:6580 +msgid "Effective (linear decrease)" +msgstr "" + +#: src/gui/insEdit.cpp:6583 +msgid "Effective (exponential decrease)" +msgstr "" + +#: src/gui/insEdit.cpp:6586 +msgid "Delayed (write R on release)" +msgstr "" + +#: src/gui/insEdit.cpp:6596 src/gui/insEdit.cpp:6597 +msgid "Gain Mode" +msgstr "" + +#: src/gui/insEdit.cpp:6599 src/gui/insEdit.cpp:6600 src/gui/insEdit.cpp:7205 +msgid "Gain" +msgstr "" + +#: src/gui/insEdit.cpp:6633 +msgid "" +"using decrease modes will not produce any sound at all, unless you know what " +"you are doing.\n" +"it is recommended to use the Gain macro for decrease instead." +msgstr "" + +#: src/gui/insEdit.cpp:6703 +msgid "Enable synthesizer" +msgstr "" + +#: src/gui/insEdit.cpp:6721 +msgid "Single-waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6730 +msgid "Dual-waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6803 src/gui/insEdit.cpp:6812 +msgid "Wave 1" +msgstr "" + +#: src/gui/insEdit.cpp:6808 src/gui/insEdit.cpp:6823 +msgid "" +"waveform macro is controlling wave 1!\n" +"this value will be ineffective." +msgstr "" + +#: src/gui/insEdit.cpp:6829 +msgid "Wave 2" +msgstr "" + +#: src/gui/insEdit.cpp:6844 +msgid "Resume preview" +msgstr "" + +#: src/gui/insEdit.cpp:6846 +msgid "Pause preview" +msgstr "" + +#: src/gui/insEdit.cpp:6854 +msgid "Restart preview" +msgstr "" + +#: src/gui/insEdit.cpp:6874 +msgid "Copy to new wavetable" +msgstr "" + +#: src/gui/insEdit.cpp:6881 +msgid "Update Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6902 +msgid "Global" +msgstr "" + +#: src/gui/insEdit.cpp:6906 +msgid "" +"wavetable synthesizer disabled.\n" +"use the Waveform macro to set the wave for this instrument." +msgstr "" + +#: src/gui/insEdit.cpp:6912 +msgid "Macros" +msgstr "" + +#: src/gui/insEdit.cpp:6921 src/gui/insEdit.cpp:6929 src/gui/insEdit.cpp:6938 +#: src/gui/insEdit.cpp:6947 src/gui/insEdit.cpp:6962 src/gui/insEdit.cpp:6976 +#: src/gui/insEdit.cpp:6988 src/gui/insEdit.cpp:7001 src/gui/insEdit.cpp:7017 +#: src/gui/insEdit.cpp:7023 src/gui/insEdit.cpp:7033 src/gui/insEdit.cpp:7040 +#: src/gui/insEdit.cpp:7046 src/gui/insEdit.cpp:7059 src/gui/insEdit.cpp:7066 +#: src/gui/insEdit.cpp:7073 src/gui/insEdit.cpp:7082 src/gui/insEdit.cpp:7092 +#: src/gui/insEdit.cpp:7100 src/gui/insEdit.cpp:7106 src/gui/insEdit.cpp:7114 +#: src/gui/insEdit.cpp:7121 src/gui/insEdit.cpp:7127 src/gui/insEdit.cpp:7137 +#: src/gui/insEdit.cpp:7149 src/gui/insEdit.cpp:7157 src/gui/insEdit.cpp:7173 +#: src/gui/insEdit.cpp:7178 src/gui/insEdit.cpp:7191 src/gui/insEdit.cpp:7198 +#: src/gui/insEdit.cpp:7209 src/gui/insEdit.cpp:7222 src/gui/insEdit.cpp:7231 +#: src/gui/insEdit.cpp:7238 src/gui/insEdit.cpp:7246 src/gui/insEdit.cpp:7270 +#: src/gui/insEdit.cpp:7277 src/gui/insEdit.cpp:7285 src/gui/insEdit.cpp:7296 +#: src/gui/insEdit.cpp:7303 src/gui/insEdit.cpp:7311 src/gui/insEdit.cpp:7319 +#: src/gui/insEdit.cpp:7328 src/gui/insEdit.cpp:7336 src/gui/insEdit.cpp:7342 +#: src/gui/insEdit.cpp:7348 src/gui/insEdit.cpp:7354 src/gui/insEdit.cpp:7359 +#: src/gui/insEdit.cpp:7366 src/gui/insEdit.cpp:7373 src/gui/insEdit.cpp:7381 +#: src/gui/insEdit.cpp:7390 src/gui/insEdit.cpp:7398 src/gui/insEdit.cpp:7410 +#: src/gui/insEdit.cpp:7423 src/gui/insEdit.cpp:7434 src/gui/insEdit.cpp:7444 +#: src/gui/insEdit.cpp:7452 src/gui/insEdit.cpp:7462 src/gui/insEdit.cpp:7471 +msgid "Arpeggio" +msgstr "" + +#: src/gui/insEdit.cpp:6925 src/gui/insEdit.cpp:6932 src/gui/insEdit.cpp:6943 +#: src/gui/insEdit.cpp:6972 src/gui/insEdit.cpp:6984 src/gui/insEdit.cpp:6994 +#: src/gui/insEdit.cpp:7007 src/gui/insEdit.cpp:7054 src/gui/insEdit.cpp:7062 +#: src/gui/insEdit.cpp:7069 src/gui/insEdit.cpp:7088 src/gui/insEdit.cpp:7110 +#: src/gui/insEdit.cpp:7133 src/gui/insEdit.cpp:7144 src/gui/insEdit.cpp:7163 +#: src/gui/insEdit.cpp:7183 src/gui/insEdit.cpp:7194 src/gui/insEdit.cpp:7214 +#: src/gui/insEdit.cpp:7234 src/gui/insEdit.cpp:7242 src/gui/insEdit.cpp:7249 +#: src/gui/insEdit.cpp:7254 src/gui/insEdit.cpp:7260 src/gui/insEdit.cpp:7266 +#: src/gui/insEdit.cpp:7273 src/gui/insEdit.cpp:7281 src/gui/insEdit.cpp:7290 +#: src/gui/insEdit.cpp:7299 src/gui/insEdit.cpp:7307 src/gui/insEdit.cpp:7324 +#: src/gui/insEdit.cpp:7332 src/gui/insEdit.cpp:7338 src/gui/insEdit.cpp:7362 +#: src/gui/insEdit.cpp:7369 src/gui/insEdit.cpp:7377 src/gui/insEdit.cpp:7386 +#: src/gui/insEdit.cpp:7394 src/gui/insEdit.cpp:7402 src/gui/insEdit.cpp:7414 +#: src/gui/insEdit.cpp:7429 src/gui/insEdit.cpp:7440 src/gui/insEdit.cpp:7448 +#: src/gui/insEdit.cpp:7457 src/gui/insEdit.cpp:7475 +msgid "Phase Reset" +msgstr "" + +#: src/gui/insEdit.cpp:6939 src/gui/insEdit.cpp:7024 src/gui/insEdit.cpp:7210 +#: src/gui/insEdit.cpp:7247 +msgid "Duty/Noise" +msgstr "" + +#: src/gui/insEdit.cpp:6966 src/gui/insEdit.cpp:7288 +msgid "Surround" +msgstr "" + +#: src/gui/insEdit.cpp:6968 src/gui/insEdit.cpp:6981 src/gui/insEdit.cpp:7026 +#: src/gui/insEdit.cpp:7085 src/gui/insEdit.cpp:7141 src/gui/insEdit.cpp:7159 +#: src/gui/insEdit.cpp:7180 src/gui/insEdit.cpp:7201 src/gui/insEdit.cpp:7225 +#: src/gui/insEdit.cpp:7278 src/gui/insEdit.cpp:7304 src/gui/insEdit.cpp:7321 +#: src/gui/insEdit.cpp:7329 src/gui/insEdit.cpp:7374 src/gui/insEdit.cpp:7383 +#: src/gui/insEdit.cpp:7399 src/gui/insEdit.cpp:7411 src/gui/insEdit.cpp:7426 +#: src/gui/insEdit.cpp:7454 src/gui/insEdit.cpp:7464 +msgid "Panning (left)" +msgstr "" + +#: src/gui/insEdit.cpp:6969 src/gui/insEdit.cpp:6982 src/gui/insEdit.cpp:7027 +#: src/gui/insEdit.cpp:7086 src/gui/insEdit.cpp:7142 src/gui/insEdit.cpp:7160 +#: src/gui/insEdit.cpp:7181 src/gui/insEdit.cpp:7202 src/gui/insEdit.cpp:7226 +#: src/gui/insEdit.cpp:7279 src/gui/insEdit.cpp:7305 src/gui/insEdit.cpp:7322 +#: src/gui/insEdit.cpp:7330 src/gui/insEdit.cpp:7375 src/gui/insEdit.cpp:7384 +#: src/gui/insEdit.cpp:7400 src/gui/insEdit.cpp:7412 src/gui/insEdit.cpp:7427 +#: src/gui/insEdit.cpp:7455 src/gui/insEdit.cpp:7465 +msgid "Panning (right)" +msgstr "" + +#: src/gui/insEdit.cpp:6978 src/gui/insEdit.cpp:7129 src/gui/insEdit.cpp:7223 +#: src/gui/insEdit.cpp:7315 +msgid "Noise" +msgstr "" + +#: src/gui/insEdit.cpp:6990 src/gui/insEdit.cpp:7003 src/gui/insEdit.cpp:7107 +#: src/gui/insEdit.cpp:7199 src/gui/insEdit.cpp:7239 src/gui/insEdit.cpp:7424 +msgid "Noise Freq" +msgstr "" + +#: src/gui/insEdit.cpp:6996 src/gui/insEdit.cpp:7010 src/gui/insEdit.cpp:7167 +msgid "AutoEnv Num" +msgstr "" + +#: src/gui/insEdit.cpp:6997 src/gui/insEdit.cpp:7011 src/gui/insEdit.cpp:7168 +msgid "AutoEnv Den" +msgstr "" + +#: src/gui/insEdit.cpp:7012 +msgid "Noise AND Mask" +msgstr "" + +#: src/gui/insEdit.cpp:7013 +msgid "Noise OR Mask" +msgstr "" + +#: src/gui/insEdit.cpp:7034 +msgid "On/Off" +msgstr "" + +#: src/gui/insEdit.cpp:7060 +msgid "Patch" +msgstr "" + +#: src/gui/insEdit.cpp:7076 +msgid "Mod Depth" +msgstr "" + +#: src/gui/insEdit.cpp:7077 +msgid "Mod Speed" +msgstr "" + +#: src/gui/insEdit.cpp:7078 +msgid "Mod Position" +msgstr "" + +#: src/gui/insEdit.cpp:7083 +msgid "Noise Length" +msgstr "" + +#: src/gui/insEdit.cpp:7093 +msgid "Wave Pos" +msgstr "" + +#: src/gui/insEdit.cpp:7096 +msgid "Wave Length" +msgstr "" + +#: src/gui/insEdit.cpp:7115 +msgid "AUDCTL" +msgstr "" + +#: src/gui/insEdit.cpp:7122 src/gui/insEdit.cpp:7343 +msgid "Pulse Width" +msgstr "" + +#: src/gui/insEdit.cpp:7139 +msgid "Duty/Int" +msgstr "" + +#: src/gui/insEdit.cpp:7145 src/gui/insEdit.cpp:7406 +msgid "Load LFSR" +msgstr "" + +#: src/gui/insEdit.cpp:7165 +msgid "Envelope Mode" +msgstr "" + +#: src/gui/insEdit.cpp:7186 +msgid "Outputs" +msgstr "" + +#: src/gui/insEdit.cpp:7187 src/gui/insEdit.cpp:7217 src/gui/insEdit.cpp:7382 +#: src/gui/insEdit.cpp:7403 src/gui/insEdit.cpp:7415 src/gui/insEdit.cpp:7430 +msgid "Control" +msgstr "" + +#: src/gui/insEdit.cpp:7218 +msgid "Phase Reset Timer" +msgstr "" + +#: src/gui/insEdit.cpp:7252 src/gui/insEdit.cpp:7259 +msgid "Freq Divider" +msgstr "" + +#: src/gui/insEdit.cpp:7255 +msgid "Clock Divider" +msgstr "" + +#: src/gui/insEdit.cpp:7264 +msgid "Global Volume" +msgstr "" + +#: src/gui/insEdit.cpp:7286 +msgid "Echo Level" +msgstr "" + +#: src/gui/insEdit.cpp:7291 +msgid "Echo Feedback" +msgstr "" + +#: src/gui/insEdit.cpp:7292 +msgid "Echo Length" +msgstr "" + +#: src/gui/insEdit.cpp:7312 +msgid "Group Ctrl" +msgstr "" + +#: src/gui/insEdit.cpp:7313 +msgid "Group Attack" +msgstr "" + +#: src/gui/insEdit.cpp:7314 +msgid "Group Decay" +msgstr "" + +#: src/gui/insEdit.cpp:7320 +msgid "Noise Type" +msgstr "" + +#: src/gui/insEdit.cpp:7367 +msgid "Square/Noise" +msgstr "" + +#: src/gui/insEdit.cpp:7404 +msgid "Tap A Location" +msgstr "" + +#: src/gui/insEdit.cpp:7405 +msgid "Tap B Location" +msgstr "" + +#: src/gui/insEdit.cpp:7416 +msgid "Portion A Length" +msgstr "" + +#: src/gui/insEdit.cpp:7417 +msgid "Portion B Length" +msgstr "" + +#: src/gui/insEdit.cpp:7418 +msgid "Portion A Offset" +msgstr "" + +#: src/gui/insEdit.cpp:7419 +msgid "Portion B Offset" +msgstr "" + +#: src/gui/insEdit.cpp:7463 +msgid "Parameter" +msgstr "" + +#: src/gui/insEdit.cpp:7467 +msgid "Load Value" +msgstr "" + +#: src/gui/insEdit.cpp:7479 +msgid "Filter Toggle" +msgstr "" + +#: src/gui/insEdit.cpp:7486 +msgid "Wave Mix" +msgstr "" + +#: src/gui/insEdit.cpp:7500 +msgid "Octave offset" +msgstr "" + +#: src/gui/insEdit.cpp:7505 +msgid "go to Macros for other parameters." +msgstr "" + +#: src/gui/insEdit.cpp:7521 +msgid "invalid instrument type! change it first." +msgstr "" + +#: src/gui/insEdit.cpp:7565 +msgid "clear contents" +msgstr "" + +#: src/gui/insEdit.cpp:7571 +msgid "offset..." +msgstr "" + +#: src/gui/insEdit.cpp:7572 src/gui/insEdit.cpp:7605 +msgid "X" +msgstr "" + +#: src/gui/insEdit.cpp:7573 src/gui/insEdit.cpp:7609 +msgid "Y" +msgstr "" + +#: src/gui/insEdit.cpp:7574 +msgid "offset" +msgstr "" + +#: src/gui/insEdit.cpp:7637 +msgid "Min" +msgstr "" + +#: src/gui/insEdit.cpp:7638 +msgid "Max" msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index aba8e161f..3dfe7ae22 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -10,6 +10,903 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: src/main.cpp:510 +msgid "this is a test!" +msgstr "" + +#: src/gui/mixer.cpp:28 src/gui/insEdit.cpp:484 +msgid "left" +msgstr "" + +#: src/gui/mixer.cpp:29 src/gui/insEdit.cpp:483 +msgid "right" +msgstr "" + +#: src/gui/mixer.cpp:128 +msgid "input" +msgstr "" + +#: src/gui/mixer.cpp:168 +msgid "output" +msgstr "" + +#: src/gui/mixer.cpp:228 src/gui/editControls.cpp:454 src/gui/guiConst.cpp:593 +msgid "Mixer" +msgstr "" + +#: src/gui/mixer.cpp:229 +msgid "Master Volume" +msgstr "" + +#: src/gui/mixer.cpp:250 src/gui/exportOptions.cpp:90 +#: src/gui/userPresets.cpp:393 src/gui/userPresets.cpp:405 +#: src/gui/waveEdit.cpp:1096 src/gui/sampleEdit.cpp:1128 +#: src/gui/insEdit.cpp:519 +msgid "Invert" +msgstr "" + +#: src/gui/mixer.cpp:268 src/gui/userPresets.cpp:417 +#: src/gui/findReplace.cpp:687 src/gui/findReplace.cpp:943 +#: src/gui/guiConst.cpp:228 src/gui/sampleEdit.cpp:1003 +#: src/gui/insEdit.cpp:5575 src/gui/insEdit.cpp:5660 src/gui/insEdit.cpp:6920 +#: src/gui/insEdit.cpp:6928 src/gui/insEdit.cpp:6936 src/gui/insEdit.cpp:6946 +#: src/gui/insEdit.cpp:6961 src/gui/insEdit.cpp:6975 src/gui/insEdit.cpp:6987 +#: src/gui/insEdit.cpp:7000 src/gui/insEdit.cpp:7016 src/gui/insEdit.cpp:7022 +#: src/gui/insEdit.cpp:7032 src/gui/insEdit.cpp:7039 src/gui/insEdit.cpp:7045 +#: src/gui/insEdit.cpp:7058 src/gui/insEdit.cpp:7065 src/gui/insEdit.cpp:7072 +#: src/gui/insEdit.cpp:7081 src/gui/insEdit.cpp:7091 src/gui/insEdit.cpp:7099 +#: src/gui/insEdit.cpp:7105 src/gui/insEdit.cpp:7113 src/gui/insEdit.cpp:7120 +#: src/gui/insEdit.cpp:7126 src/gui/insEdit.cpp:7136 src/gui/insEdit.cpp:7148 +#: src/gui/insEdit.cpp:7156 src/gui/insEdit.cpp:7172 src/gui/insEdit.cpp:7177 +#: src/gui/insEdit.cpp:7190 src/gui/insEdit.cpp:7197 src/gui/insEdit.cpp:7208 +#: src/gui/insEdit.cpp:7221 src/gui/insEdit.cpp:7230 src/gui/insEdit.cpp:7237 +#: src/gui/insEdit.cpp:7245 src/gui/insEdit.cpp:7258 src/gui/insEdit.cpp:7263 +#: src/gui/insEdit.cpp:7269 src/gui/insEdit.cpp:7276 src/gui/insEdit.cpp:7284 +#: src/gui/insEdit.cpp:7295 src/gui/insEdit.cpp:7302 src/gui/insEdit.cpp:7310 +#: src/gui/insEdit.cpp:7318 src/gui/insEdit.cpp:7327 src/gui/insEdit.cpp:7335 +#: src/gui/insEdit.cpp:7341 src/gui/insEdit.cpp:7347 src/gui/insEdit.cpp:7353 +#: src/gui/insEdit.cpp:7358 src/gui/insEdit.cpp:7365 src/gui/insEdit.cpp:7372 +#: src/gui/insEdit.cpp:7380 src/gui/insEdit.cpp:7389 src/gui/insEdit.cpp:7397 +#: src/gui/insEdit.cpp:7409 src/gui/insEdit.cpp:7422 src/gui/insEdit.cpp:7433 +#: src/gui/insEdit.cpp:7443 src/gui/insEdit.cpp:7451 src/gui/insEdit.cpp:7461 +#: src/gui/insEdit.cpp:7470 +msgid "Volume" +msgstr "" + +#: src/gui/mixer.cpp:279 src/gui/userPresets.cpp:427 src/gui/guiConst.cpp:229 +#: src/gui/insEdit.cpp:6923 src/gui/insEdit.cpp:6930 src/gui/insEdit.cpp:6941 +#: src/gui/insEdit.cpp:6965 src/gui/insEdit.cpp:7067 src/gui/insEdit.cpp:7108 +#: src/gui/insEdit.cpp:7152 src/gui/insEdit.cpp:7192 src/gui/insEdit.cpp:7212 +#: src/gui/insEdit.cpp:7232 src/gui/insEdit.cpp:7240 src/gui/insEdit.cpp:7253 +#: src/gui/insEdit.cpp:7265 src/gui/insEdit.cpp:7271 src/gui/insEdit.cpp:7287 +#: src/gui/insEdit.cpp:7297 src/gui/insEdit.cpp:7360 src/gui/insEdit.cpp:7392 +#: src/gui/insEdit.cpp:7438 src/gui/insEdit.cpp:7446 +msgid "Panning" +msgstr "" + +#: src/gui/mixer.cpp:290 src/gui/userPresets.cpp:433 +msgid "Front/Rear" +msgstr "" + +#: src/gui/mixer.cpp:299 +msgid "Patchbay" +msgstr "" + +#: src/gui/mixer.cpp:305 +msgid "Automatic patchbay" +msgstr "" + +#: src/gui/mixer.cpp:310 +msgid "Display hidden ports" +msgstr "" + +#: src/gui/mixer.cpp:312 +msgid "Display internal" +msgstr "" + +#: src/gui/mixer.cpp:322 src/gui/mixer.cpp:383 src/gui/songInfo.cpp:69 +msgid "System" +msgstr "" + +#: src/gui/mixer.cpp:354 +msgid "Sample Preview" +msgstr "" + +#: src/gui/mixer.cpp:367 src/gui/editControls.cpp:745 +#: src/gui/editControls.cpp:837 src/gui/editControls.cpp:953 +#: src/gui/editControls.cpp:1093 src/gui/guiConst.cpp:558 +msgid "Metronome" +msgstr "" + +#: src/gui/mixer.cpp:446 +msgid "disconnect all" +msgstr "" + +#: src/gui/editing.cpp:200 +#, c-format +msgid "no data in oldPatMap for channel %d!" +msgstr "" + +#: src/gui/editing.cpp:664 src/gui/editing.cpp:1203 +#, c-format +msgid "invalid clipboard data! failed at line %d char %d" +msgstr "" + +#: src/gui/editing.cpp:1565 src/gui/editing.cpp:1669 +msgid "can't collapse any further!" +msgstr "" + +#: src/gui/editing.cpp:1749 +msgid "can't expand any further!" +msgstr "" + +#: src/gui/editing.cpp:1836 src/gui/editing.cpp:1851 +#, c-format +msgid "copy: %s" +msgstr "" + +#: src/gui/memory.cpp:146 +#, c-format +msgid "bank %d" +msgstr "" + +#: src/gui/memory.cpp:175 src/gui/memory.cpp:176 +msgid "no chips with memory" +msgstr "" + +#: src/gui/intro.cpp:89 src/gui/gui.cpp:2339 src/gui/gui.cpp:3740 +#: src/gui/gui.cpp:5007 src/gui/gui.cpp:5029 src/gui/gui.cpp:5467 +#: src/gui/gui.cpp:5769 src/gui/gui.cpp:5779 +#, c-format +msgid "Error while loading file! (%s)" +msgstr "" + +#: src/gui/intro.cpp:124 +msgid "Preview" +msgstr "" + +#: src/gui/intro.cpp:176 src/gui/intro.cpp:177 src/gui/intro.cpp:178 +msgid "SORRY NOTHING" +msgstr "" + +#: src/gui/intro.cpp:310 +msgid "hold to skip" +msgstr "" + +#: src/gui/dataList.cpp:76 +msgid "Bug!" +msgstr "" + +#: src/gui/dataList.cpp:79 src/gui/util.cpp:107 src/gui/util.cpp:109 +#: src/gui/insEdit.cpp:5334 +msgid "Unknown" +msgstr "" + +#: src/gui/dataList.cpp:136 src/gui/dataList.cpp:260 +msgid "duplicate" +msgstr "" + +#: src/gui/dataList.cpp:139 src/gui/dataList.cpp:263 src/gui/dataList.cpp:388 +#: src/gui/dataList.cpp:731 src/gui/dataList.cpp:867 +msgid "replace..." +msgstr "" + +#: src/gui/dataList.cpp:142 src/gui/dataList.cpp:266 src/gui/gui.cpp:4226 +msgid "save" +msgstr "" + +#: src/gui/dataList.cpp:145 +msgid "save (.dmp)" +msgstr "" + +#: src/gui/dataList.cpp:148 src/gui/dataList.cpp:269 src/gui/dataList.cpp:617 +#: src/gui/dataList.cpp:994 src/gui/dataList.cpp:1040 +#: src/gui/editControls.cpp:50 src/gui/gui.cpp:2761 src/gui/gui.cpp:2770 +msgid "delete" +msgstr "" + +#: src/gui/dataList.cpp:243 +msgid "out of memory for this sample!" +msgstr "" + +#: src/gui/dataList.cpp:254 +msgid "make instrument" +msgstr "" + +#: src/gui/dataList.cpp:257 +msgid "make me a drum kit" +msgstr "" + +#: src/gui/dataList.cpp:312 src/gui/dataList.cpp:714 src/gui/dataList.cpp:846 +#: src/gui/subSongs.cpp:88 src/gui/insEdit.cpp:520 +msgid "Add" +msgstr "" + +#: src/gui/dataList.cpp:338 src/gui/dataList.cpp:721 src/gui/dataList.cpp:853 +#: src/gui/subSongs.cpp:108 +msgid "Duplicate" +msgstr "" + +#: src/gui/dataList.cpp:359 src/gui/dataList.cpp:728 src/gui/dataList.cpp:860 +#: src/gui/editControls.cpp:497 src/gui/waveEdit.cpp:435 +#: src/gui/waveEdit.cpp:467 src/gui/sampleEdit.cpp:122 +#: src/gui/sampleEdit.cpp:171 src/gui/insEdit.cpp:5239 src/gui/insEdit.cpp:5304 +msgid "Open" +msgstr "" + +#: src/gui/dataList.cpp:363 +msgid "replace instrument..." +msgstr "" + +#: src/gui/dataList.cpp:366 +msgid "load instrument from TX81Z" +msgstr "" + +#: src/gui/dataList.cpp:372 +msgid "replace wavetable..." +msgstr "" + +#: src/gui/dataList.cpp:378 +msgid "replace sample..." +msgstr "" + +#: src/gui/dataList.cpp:381 +msgid "import raw sample..." +msgstr "" + +#: src/gui/dataList.cpp:384 +msgid "import raw sample (replace)..." +msgstr "" + +#: src/gui/dataList.cpp:392 +msgid "load from TX81Z" +msgstr "" + +#: src/gui/dataList.cpp:399 +msgid "Open (insert; right-click to replace)" +msgstr "" + +#: src/gui/dataList.cpp:420 src/gui/dataList.cpp:741 src/gui/dataList.cpp:884 +#: src/gui/editControls.cpp:502 src/gui/waveEdit.cpp:474 +#: src/gui/sampleEdit.cpp:184 src/gui/insEdit.cpp:5311 +msgid "Save" +msgstr "" + +#: src/gui/dataList.cpp:424 +msgid "save instrument as .dmp..." +msgstr "" + +#: src/gui/dataList.cpp:430 +msgid "save wavetable as .dmw..." +msgstr "" + +#: src/gui/dataList.cpp:433 +msgid "save raw wavetable..." +msgstr "" + +#: src/gui/dataList.cpp:439 +msgid "save raw sample..." +msgstr "" + +#: src/gui/dataList.cpp:443 src/gui/insEdit.cpp:5314 +msgid "save as .dmp..." +msgstr "" + +#: src/gui/dataList.cpp:456 src/gui/dataList.cpp:761 src/gui/dataList.cpp:903 +msgid "Toggle folders/standard view" +msgstr "" + +#: src/gui/dataList.cpp:478 src/gui/dataList.cpp:769 src/gui/dataList.cpp:911 +#: src/gui/subSongs.cpp:55 +msgid "Move up" +msgstr "" + +#: src/gui/dataList.cpp:499 src/gui/dataList.cpp:776 src/gui/dataList.cpp:918 +#: src/gui/subSongs.cpp:62 +msgid "Move down" +msgstr "" + +#: src/gui/dataList.cpp:510 src/gui/dataList.cpp:787 src/gui/dataList.cpp:929 +msgid "Create" +msgstr "" + +#: src/gui/dataList.cpp:540 src/gui/dataList.cpp:797 src/gui/dataList.cpp:939 +msgid "New folder" +msgstr "" + +#: src/gui/dataList.cpp:549 src/gui/dataList.cpp:947 +msgid "Preview (right click to stop)" +msgstr "" + +#: src/gui/dataList.cpp:576 src/gui/dataList.cpp:807 src/gui/dataList.cpp:959 +#: src/gui/guiConst.cpp:666 src/gui/sampleEdit.cpp:1105 +msgid "Delete" +msgstr "" + +#: src/gui/dataList.cpp:593 src/gui/gui.cpp:5902 +msgid "Instruments" +msgstr "" + +#: src/gui/dataList.cpp:608 src/gui/dataList.cpp:985 src/gui/dataList.cpp:1031 +msgid "" +msgstr "" + +#: src/gui/dataList.cpp:614 src/gui/dataList.cpp:991 src/gui/dataList.cpp:1037 +msgid "rename..." +msgstr "" + +#: src/gui/dataList.cpp:663 src/gui/gui.cpp:5911 +msgid "Wavetables" +msgstr "" + +#: src/gui/dataList.cpp:674 src/gui/xyOsc.cpp:68 src/gui/sampleEdit.cpp:898 +#: src/gui/sampleEdit.cpp:1072 src/gui/gui.cpp:5920 +msgid "Samples" +msgstr "" + +#: src/gui/dataList.cpp:745 src/gui/waveEdit.cpp:477 +msgid "save as .dmw..." +msgstr "" + +#: src/gui/dataList.cpp:748 src/gui/dataList.cpp:891 src/gui/waveEdit.cpp:480 +#: src/gui/sampleEdit.cpp:187 +msgid "save raw..." +msgstr "" + +#: src/gui/dataList.cpp:871 src/gui/sampleEdit.cpp:174 +msgid "import raw..." +msgstr "" + +#: src/gui/dataList.cpp:874 +msgid "import raw (replace)..." +msgstr "" + +#: src/gui/exportOptions.cpp:29 +msgid "Export type:" +msgstr "" + +#: src/gui/exportOptions.cpp:32 +msgid "one file" +msgstr "" + +#: src/gui/exportOptions.cpp:35 +msgid "multiple files (one per chip)" +msgstr "" + +#: src/gui/exportOptions.cpp:38 +msgid "multiple files (one per channel)" +msgstr "" + +#: src/gui/exportOptions.cpp:44 +msgid "Bit depth:" +msgstr "" + +#: src/gui/exportOptions.cpp:46 +msgid "16-bit integer" +msgstr "" + +#: src/gui/exportOptions.cpp:49 +msgid "32-bit float" +msgstr "" + +#: src/gui/exportOptions.cpp:55 src/gui/gui.cpp:6258 +msgid "Sample rate" +msgstr "" + +#: src/gui/exportOptions.cpp:61 +msgid "Channels in file" +msgstr "" + +#: src/gui/exportOptions.cpp:67 +msgid "Loops" +msgstr "" + +#: src/gui/exportOptions.cpp:70 +msgid "Fade out (seconds)" +msgstr "" + +#: src/gui/exportOptions.cpp:76 +msgid "Channels to export:" +msgstr "" + +#: src/gui/exportOptions.cpp:78 src/gui/effectList.cpp:32 src/gui/gui.cpp:6174 +msgid "All" +msgstr "" + +#: src/gui/exportOptions.cpp:84 src/gui/effectList.cpp:34 +#: src/gui/compatFlags.cpp:219 src/gui/waveEdit.cpp:37 src/gui/gui.cpp:6180 +#: src/gui/insEdit.cpp:518 +msgid "None" +msgstr "" + +#: src/gui/exportOptions.cpp:110 src/gui/exportOptions.cpp:214 +#: src/gui/exportOptions.cpp:225 src/gui/exportOptions.cpp:243 +#: src/gui/exportOptions.cpp:266 src/gui/exportOptions.cpp:297 +#: src/gui/exportOptions.cpp:318 src/gui/exportOptions.cpp:341 +#: src/gui/commandPalette.cpp:199 src/gui/newSong.cpp:273 src/gui/gui.cpp:5657 +#: src/gui/gui.cpp:5681 src/gui/gui.cpp:5705 src/gui/gui.cpp:5729 +#: src/gui/gui.cpp:5753 src/gui/gui.cpp:5784 src/gui/gui.cpp:5843 +#: src/gui/gui.cpp:6217 src/gui/gui.cpp:6341 +msgid "Cancel" +msgstr "" + +#: src/gui/exportOptions.cpp:115 src/gui/exportOptions.cpp:217 +#: src/gui/exportOptions.cpp:246 src/gui/exportOptions.cpp:300 +#: src/gui/exportOptions.cpp:321 src/gui/exportOptions.cpp:344 +#: src/gui/editControls.cpp:512 src/gui/userPresets.cpp:523 +#: src/gui/guiConst.cpp:536 src/gui/gui.cpp:5566 src/gui/gui.cpp:5618 +msgid "Export" +msgstr "" + +#: src/gui/exportOptions.cpp:130 +msgid "select at least one channel" +msgstr "" + +#: src/gui/exportOptions.cpp:137 +msgid "settings:" +msgstr "" + +#: src/gui/exportOptions.cpp:138 +msgid "format version" +msgstr "" + +#: src/gui/exportOptions.cpp:146 src/gui/exportOptions.cpp:238 +#: src/gui/insEdit.cpp:362 +msgid "loop" +msgstr "" + +#: src/gui/exportOptions.cpp:148 +msgid "loop trail:" +msgstr "" + +#: src/gui/exportOptions.cpp:150 +msgid "auto-detect" +msgstr "" + +#: src/gui/exportOptions.cpp:153 +msgid "add one loop" +msgstr "" + +#: src/gui/exportOptions.cpp:156 +msgid "custom" +msgstr "" + +#: src/gui/exportOptions.cpp:167 +msgid "add pattern change hints" +msgstr "" + +#: src/gui/exportOptions.cpp:170 +msgid "" +"inserts data blocks on pattern changes.\n" +"useful if you are writing a playback routine.\n" +"\n" +"the format of a pattern change data block is:\n" +"67 66 FE ll ll ll ll 01 oo rr pp pp pp ...\n" +"- ll: length, a 32-bit little-endian number\n" +"- oo: order\n" +"- rr: initial row (a 0Dxx effect is able to select a different row)\n" +"- pp: pattern index (one per channel)\n" +"\n" +"pattern indexes are ordered as they appear in the song." +msgstr "" + +#: src/gui/exportOptions.cpp:183 +msgid "direct stream mode" +msgstr "" + +#: src/gui/exportOptions.cpp:186 +msgid "" +"required for DualPCM and MSM6258 export.\n" +"\n" +"allows for volume/direction changes when playing samples,\n" +"at the cost of a massive increase in file size." +msgstr "" + +#: src/gui/exportOptions.cpp:191 +msgid "chips to export:" +msgstr "" + +#: src/gui/exportOptions.cpp:200 +#, c-format +msgid "this chip is only available in VGM %d.%.2x and higher!" +msgstr "" + +#: src/gui/exportOptions.cpp:204 +msgid "this chip is not supported by the VGM format!" +msgstr "" + +#: src/gui/exportOptions.cpp:210 +#, c-format +msgid "select the chip you wish to export, but only up to %d of each type." +msgstr "" + +#: src/gui/exportOptions.cpp:222 +msgid "nothing to export" +msgstr "" + +#: src/gui/exportOptions.cpp:233 +msgid "Commander X16 Zsound Music File" +msgstr "" + +#: src/gui/exportOptions.cpp:234 +msgid "Tick Rate (Hz)" +msgstr "" + +#: src/gui/exportOptions.cpp:240 +msgid "optimize size" +msgstr "" + +#: src/gui/exportOptions.cpp:256 src/gui/editControls.cpp:630 +msgid "" +"this is NOT ROM export! only use for making sure the\n" +"Furnace Amiga emulator is working properly by\n" +"comparing it with real Amiga output." +msgstr "" + +#: src/gui/exportOptions.cpp:261 src/gui/editControls.cpp:635 +msgid "Directory" +msgstr "" + +#: src/gui/exportOptions.cpp:269 src/gui/editControls.cpp:638 +msgid "Bake Data" +msgstr "" + +#: src/gui/exportOptions.cpp:284 src/gui/editControls.cpp:653 +#, c-format +msgid "Done! Baked %d files." +msgstr "" + +#: src/gui/exportOptions.cpp:293 +msgid "this option exports the song to a text file.\n" +msgstr "" + +#: src/gui/exportOptions.cpp:310 +msgid "" +"this option exports a text or binary file which\n" +"contains a dump of the internal command stream\n" +"produced when playing the song.\n" +"\n" +"technical/development use only!" +msgstr "" + +#: src/gui/exportOptions.cpp:331 +msgid "" +"export in DefleMask module format.\n" +"only do it if you really, really need to, or are downgrading an existing ." +"dmf." +msgstr "" + +#: src/gui/exportOptions.cpp:335 +msgid "format version:" +msgstr "" + +#: src/gui/exportOptions.cpp:336 +msgid "1.1.3 and higher" +msgstr "" + +#: src/gui/exportOptions.cpp:337 +msgid "1.0/legacy (0.12)" +msgstr "" + +#: src/gui/exportOptions.cpp:357 +msgid "Audio" +msgstr "" + +#: src/gui/exportOptions.cpp:361 +msgid "VGM" +msgstr "" + +#: src/gui/exportOptions.cpp:370 +msgid "ZSM" +msgstr "" + +#: src/gui/exportOptions.cpp:380 +msgid "Amiga Validation" +msgstr "" + +#: src/gui/exportOptions.cpp:385 +msgid "Text" +msgstr "" + +#: src/gui/exportOptions.cpp:389 +msgid "Command Stream" +msgstr "" + +#: src/gui/exportOptions.cpp:393 +msgid "DMF" +msgstr "" + +#: src/gui/exportOptions.cpp:422 +msgid "congratulations! you've unlocked a secret panel." +msgstr "" + +#: src/gui/exportOptions.cpp:423 +msgid "Toggle hidden systems" +msgstr "" + +#: src/gui/exportOptions.cpp:427 +msgid "Toggle all instrument types" +msgstr "" + +#: src/gui/exportOptions.cpp:431 +msgid "Set pitch linearity to Partial" +msgstr "" + +#: src/gui/exportOptions.cpp:435 +msgid "Enable multi-threading settings" +msgstr "" + +#: src/gui/exportOptions.cpp:439 +msgid "Set fat to max" +msgstr "" + +#: src/gui/exportOptions.cpp:446 +msgid "Set muscle and fat to zero" +msgstr "" + +#: src/gui/exportOptions.cpp:453 +msgid "Tell tildearrow this must be a mistake" +msgstr "" + +#: src/gui/exportOptions.cpp:454 +msgid "" +"yeah, it's a bug. write a bug report in the GitHub page and tell me how did " +"you get here." +msgstr "" + +#: src/gui/speed.cpp:41 +msgid "Base Tempo##TempoOrHz" +msgstr "" + +#: src/gui/speed.cpp:41 +msgid "Tick Rate##TempoOrHz" +msgstr "" + +#: src/gui/speed.cpp:46 +msgid "click to display tick rate" +msgstr "" + +#: src/gui/speed.cpp:48 +msgid "click to display base tempo" +msgstr "" + +#: src/gui/speed.cpp:80 +msgid "Groove" +msgstr "" + +#: src/gui/speed.cpp:87 +msgid "click for one speed" +msgstr "" + +#: src/gui/speed.cpp:90 +msgid "Speeds" +msgstr "" + +#: src/gui/speed.cpp:99 +msgid "click for groove pattern" +msgstr "" + +#: src/gui/speed.cpp:102 src/gui/editControls.cpp:532 src/gui/guiConst.cpp:232 +#: src/gui/guiConst.cpp:581 src/gui/insEdit.cpp:2028 src/gui/insEdit.cpp:5693 +#: src/gui/insEdit.cpp:6885 +msgid "Speed" +msgstr "" + +#: src/gui/speed.cpp:110 +msgid "click for two (alternating) speeds" +msgstr "" + +#: src/gui/speed.cpp:168 +msgid "Virtual Tempo" +msgstr "" + +#: src/gui/speed.cpp:177 +msgid "Numerator" +msgstr "" + +#: src/gui/speed.cpp:187 +msgid "Denominator (set to base tempo)" +msgstr "" + +#: src/gui/speed.cpp:193 +msgid "Divider" +msgstr "" + +#: src/gui/speed.cpp:208 +msgid "Highlight" +msgstr "" + +#: src/gui/speed.cpp:231 +msgid "Pattern Length" +msgstr "" + +#: src/gui/speed.cpp:245 +msgid "Song Length" +msgstr "" + +#: src/gui/channels.cpp:49 +msgid "Pat" +msgstr "" + +#: src/gui/channels.cpp:51 src/gui/editControls.cpp:550 +msgid "Osc" +msgstr "" + +#: src/gui/channels.cpp:53 +msgid "Swap" +msgstr "" + +#: src/gui/channels.cpp:55 src/gui/userPresets.cpp:368 +#: src/gui/effectList.cpp:45 src/gui/subSongs.cpp:125 +#: src/gui/sampleEdit.cpp:195 src/gui/songInfo.cpp:40 src/gui/sysManager.cpp:54 +#: src/gui/insEdit.cpp:5288 +msgid "Name" +msgstr "" + +#: src/gui/channels.cpp:64 +msgid "Show in pattern" +msgstr "" + +#: src/gui/channels.cpp:71 +msgid "Show in per-channel oscilloscope" +msgstr "" + +#: src/gui/channels.cpp:82 +#, c-format +msgid "" +"%s #%d\n" +"(drag to swap channels)" +msgstr "" + +#: src/gui/commandPalette.cpp:51 src/gui/sysPicker.cpp:35 +#: src/gui/newSong.cpp:133 +msgid "Search..." +msgstr "" + +#: src/gui/commandPalette.cpp:54 +msgid "Search recent files..." +msgstr "" + +#: src/gui/commandPalette.cpp:57 +msgid "Search instruments..." +msgstr "" + +#: src/gui/commandPalette.cpp:60 +msgid "Search samples..." +msgstr "" + +#: src/gui/commandPalette.cpp:63 +msgid "Search instruments (to change to)..." +msgstr "" + +#: src/gui/commandPalette.cpp:66 +msgid "Search chip (to add)..." +msgstr "" + +#: src/gui/commandPalette.cpp:93 src/gui/commandPalette.cpp:167 +msgid "- None -" +msgstr "" + +#: src/gui/commandPalette.cpp:123 src/gui/commandPalette.cpp:179 +#: src/gui/commandPalette.cpp:241 +msgid "invalid command palette type" +msgstr "" + +#: src/gui/regView.cpp:38 +msgid "- no register pool available" +msgstr "" + +#: src/gui/log.cpp:25 src/gui/effectList.cpp:84 +msgid "ERROR" +msgstr "" + +#: src/gui/log.cpp:26 +msgid "warning" +msgstr "" + +#: src/gui/log.cpp:27 +msgid "info" +msgstr "" + +#: src/gui/log.cpp:28 src/gui/gui.cpp:4507 +msgid "debug" +msgstr "" + +#: src/gui/log.cpp:29 +msgid "trace" +msgstr "" + +#: src/gui/log.cpp:48 src/gui/editControls.cpp:750 src/gui/editControls.cpp:883 +#: src/gui/editControls.cpp:1000 +msgid "Follow" +msgstr "" + +#: src/gui/log.cpp:50 src/gui/waveEdit.cpp:681 src/gui/insEdit.cpp:50 +msgid "Level" +msgstr "" + +#: src/gui/log.cpp:68 +msgid "time" +msgstr "" + +#: src/gui/log.cpp:70 +msgid "level" +msgstr "" + +#: src/gui/log.cpp:72 +msgid "message" +msgstr "" + +#: src/gui/pattern.cpp:468 +msgid "there aren't any channels to show." +msgstr "" + +#: src/gui/pattern.cpp:492 +msgid "click for pattern options (effect columns/pattern names/visualizer)" +msgstr "" + +#: src/gui/pattern.cpp:504 +msgid "Options:" +msgstr "" + +#: src/gui/pattern.cpp:506 +msgid "Effect columns/collapse" +msgstr "" + +#: src/gui/pattern.cpp:507 +msgid "Pattern names" +msgstr "" + +#: src/gui/pattern.cpp:508 +msgid "Channel group hints" +msgstr "" + +#: src/gui/pattern.cpp:509 +msgid "Visualizer" +msgstr "" + +#: src/gui/pattern.cpp:517 +msgid "Channel status:" +msgstr "" + +#: src/gui/pattern.cpp:519 +msgid "No##_PCS0" +msgstr "" + +#: src/gui/pattern.cpp:522 +msgid "Yes##_PCS1" +msgstr "" + +#: src/gui/pattern.cpp:1420 src/gui/pattern.cpp:1452 +msgid "WARNING!!" +msgstr "" + +#: src/gui/pattern.cpp:1422 src/gui/pattern.cpp:1459 +msgid "this instrument cannot be previewed because" +msgstr "" + +#: src/gui/pattern.cpp:1423 src/gui/pattern.cpp:1466 +msgid "none of the chips can play it" +msgstr "" + +#: src/gui/pattern.cpp:1424 src/gui/pattern.cpp:1473 +msgid "your instrument is in peril!! be careful..." +msgstr "" + +#: src/gui/osc.cpp:176 +#, c-format +msgid "zoom: %.2fx (%.1fdB)" +msgstr "" + +#: src/gui/osc.cpp:187 +#, c-format +msgid "window size: %.1fms" +msgstr "" + +#: src/gui/osc.cpp:385 +msgid "(-Infinity)dB" +msgstr "" + #: src/gui/debugWindow.cpp:662 msgid "This is a language test." msgstr "" @@ -18,6 +915,6834 @@ msgstr "" msgid "This is another language test." msgstr "" -#: src/main.cpp:510 -msgid "this is a test!" +#: src/gui/chanOsc.cpp:143 +msgid "Columns" +msgstr "" + +#: src/gui/chanOsc.cpp:152 +msgid "Size (ms)" +msgstr "" + +#: src/gui/chanOsc.cpp:163 +msgid "Automatic columns" +msgstr "" + +#: src/gui/chanOsc.cpp:177 +msgid "Center waveform" +msgstr "" + +#: src/gui/chanOsc.cpp:183 +msgid "Randomize phase on note" +msgstr "" + +#: src/gui/chanOsc.cpp:189 +msgid "Amplitude" +msgstr "" + +#: src/gui/chanOsc.cpp:199 +msgid "Line size" +msgstr "" + +#: src/gui/chanOsc.cpp:211 +msgid "Gradient" +msgstr "" + +#: src/gui/chanOsc.cpp:218 +msgid "error while creating gradient texture!" +msgstr "" + +#: src/gui/chanOsc.cpp:236 +msgid "error while updating gradient texture!" +msgstr "" + +#: src/gui/chanOsc.cpp:292 src/gui/chanOsc.cpp:348 +msgid "Color" +msgstr "" + +#: src/gui/chanOsc.cpp:296 +msgid "Distance" +msgstr "" + +#: src/gui/chanOsc.cpp:305 +msgid "Spread" +msgstr "" + +#: src/gui/chanOsc.cpp:314 src/gui/userPresets.cpp:370 src/gui/subSongs.cpp:121 +#: src/gui/sysManager.cpp:124 +msgid "Remove" +msgstr "" + +#: src/gui/chanOsc.cpp:338 +msgid "Background" +msgstr "" + +#: src/gui/chanOsc.cpp:341 +msgid "X Axis##AxisX" +msgstr "" + +#: src/gui/chanOsc.cpp:342 +msgid "Y Axis##AxisY" +msgstr "" + +#: src/gui/chanOsc.cpp:352 +msgid "Text format:" +msgstr "" + +#: src/gui/chanOsc.cpp:358 +msgid "" +"format guide:\n" +"- %c: channel name\n" +"- %C: channel short name\n" +"- %d: channel number (starting from 0)\n" +"- %D: channel number (starting from 1)\n" +"- %n: channel note\n" +"- %i: instrument name\n" +"- %I: instrument number (decimal)\n" +"- %x: instrument number (hex)\n" +"- %s: chip name\n" +"- %p: chip part number\n" +"- %S: chip ID\n" +"- %v: volume (decimal)\n" +"- %V: volume (percentage)\n" +"- %b: volume (hex)\n" +"- %l: new line\n" +"- %%: percent sign" +msgstr "" + +#: src/gui/chanOsc.cpp:380 +msgid "Text color" +msgstr "" + +#: src/gui/chanOsc.cpp:382 src/gui/xyOsc.cpp:80 src/gui/tutorial.cpp:687 +#: src/gui/gui.cpp:5627 src/gui/gui.cpp:6043 src/gui/gui.cpp:6211 +#: src/gui/gui.cpp:6310 src/gui/gui.cpp:6359 +msgid "OK" +msgstr "" + +#: src/gui/chanOsc.cpp:400 +msgid "creating chan osc work pool" +msgstr "" + +#: src/gui/chanOsc.cpp:429 +#, c-format +msgid "creating FFT plan for channel %d" +msgstr "" + +#: src/gui/chanOsc.cpp:436 +msgid "failed to create plan!" +msgstr "" + +#: src/gui/chanOsc.cpp:438 +msgid "failed to create inverse plan!" +msgstr "" + +#: src/gui/chanOsc.cpp:440 +msgid "failed to create FFT buffers" +msgstr "" + +#: src/gui/chanOsc.cpp:585 +msgid "Error!" +msgstr "" + +#: src/gui/editControls.cpp:47 src/gui/sampleEdit.cpp:1736 src/gui/gui.cpp:2727 +#: src/gui/insEdit.cpp:363 +msgid "cut" +msgstr "" + +#: src/gui/editControls.cpp:48 src/gui/sampleEdit.cpp:1740 src/gui/gui.cpp:2728 +#: src/gui/insEdit.cpp:7538 +msgid "copy" +msgstr "" + +#: src/gui/editControls.cpp:49 src/gui/sampleEdit.cpp:1744 src/gui/gui.cpp:2729 +#: src/gui/gui.cpp:2782 src/gui/insEdit.cpp:7543 +msgid "paste" +msgstr "" + +#: src/gui/editControls.cpp:51 +msgid "" +"select\n" +"all" +msgstr "" + +#: src/gui/editControls.cpp:52 +msgid "piano" +msgstr "" + +#: src/gui/editControls.cpp:53 src/gui/gui.cpp:4423 +msgid "undo" +msgstr "" + +#: src/gui/editControls.cpp:54 src/gui/gui.cpp:4424 +msgid "redo" +msgstr "" + +#: src/gui/editControls.cpp:57 +msgid "" +"paste\n" +"mix" +msgstr "" + +#: src/gui/editControls.cpp:58 +msgid "" +"paste\n" +"mix bg" +msgstr "" + +#: src/gui/editControls.cpp:59 +msgid "" +"paste\n" +"ins" +msgstr "" + +#: src/gui/editControls.cpp:60 +msgid "" +"paste\n" +"ins bg" +msgstr "" + +#: src/gui/editControls.cpp:61 +msgid "" +"paste\n" +"flood" +msgstr "" + +#: src/gui/editControls.cpp:62 +msgid "" +"paste\n" +"overflow" +msgstr "" + +#: src/gui/editControls.cpp:63 +msgid "" +"transpose\n" +"notes" +msgstr "" + +#: src/gui/editControls.cpp:64 +msgid "" +"transpose\n" +"values" +msgstr "" + +#: src/gui/editControls.cpp:67 +msgid "" +"change\n" +"ins" +msgstr "" + +#: src/gui/editControls.cpp:68 +msgid "" +"find/\n" +"replace" +msgstr "" + +#: src/gui/editControls.cpp:69 src/gui/gui.cpp:3057 +msgid "collapse" +msgstr "" + +#: src/gui/editControls.cpp:70 src/gui/gui.cpp:3058 +msgid "expand" +msgstr "" + +#: src/gui/editControls.cpp:71 src/gui/gui.cpp:2814 +msgid "flip" +msgstr "" + +#: src/gui/editControls.cpp:72 src/gui/insEdit.cpp:430 +msgid "invert" +msgstr "" + +#: src/gui/editControls.cpp:73 src/gui/gui.cpp:2794 src/gui/gui.cpp:2954 +msgid "interpolate" +msgstr "" + +#: src/gui/editControls.cpp:74 src/gui/gui.cpp:2806 src/gui/insEdit.cpp:7610 +msgid "scale" +msgstr "" + +#: src/gui/editControls.cpp:77 src/gui/gui.cpp:2798 +msgid "fade" +msgstr "" + +#: src/gui/editControls.cpp:78 src/gui/gui.cpp:2810 src/gui/insEdit.cpp:7639 +msgid "randomize" +msgstr "" + +#: src/gui/editControls.cpp:79 +msgid "opmask" +msgstr "" + +#: src/gui/editControls.cpp:80 +msgid "" +"scroll\n" +"mode" +msgstr "" + +#: src/gui/editControls.cpp:81 +msgid "" +"input\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:82 +msgid "" +"set\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:83 +msgid "" +"clear\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:84 src/gui/findReplace.cpp:43 +#: src/gui/insEdit.cpp:7557 +msgid "clear" +msgstr "" + +#: src/gui/editControls.cpp:421 src/gui/editControls.cpp:754 +#: src/gui/editControls.cpp:887 src/gui/editControls.cpp:1015 +#: src/gui/findReplace.cpp:794 src/gui/guiConst.cpp:582 src/gui/gui.cpp:5887 +msgid "Pattern" +msgstr "" + +#: src/gui/editControls.cpp:425 src/gui/editControls.cpp:752 +#: src/gui/editControls.cpp:885 src/gui/editControls.cpp:1007 +#: src/gui/guiConst.cpp:577 src/gui/gui.cpp:5876 +msgid "Orders" +msgstr "" + +#: src/gui/editControls.cpp:429 src/gui/findReplace.cpp:669 +#: src/gui/findReplace.cpp:914 +msgid "Ins" +msgstr "" + +#: src/gui/editControls.cpp:433 +msgid "Wave" +msgstr "" + +#: src/gui/editControls.cpp:437 src/gui/guiConst.cpp:1397 +#: src/gui/insEdit.cpp:2628 src/gui/insEdit.cpp:2666 +msgid "Sample" +msgstr "" + +#: src/gui/editControls.cpp:442 src/gui/findReplace.cpp:788 +#: src/gui/guiConst.cpp:230 +msgid "Song" +msgstr "" + +#: src/gui/editControls.cpp:446 src/gui/guiConst.cpp:601 src/gui/gui.cpp:6268 +msgid "Channels" +msgstr "" + +#: src/gui/editControls.cpp:450 src/gui/sampleEdit.cpp:494 +msgid "Chips" +msgstr "" + +#: src/gui/editControls.cpp:458 src/gui/compatFlags.cpp:319 +msgid "Other" +msgstr "" + +#: src/gui/editControls.cpp:487 src/gui/guiConst.cpp:531 +msgid "New" +msgstr "" + +#: src/gui/editControls.cpp:491 src/gui/doAction.cpp:38 src/gui/gui.cpp:4188 +msgid "Unsaved changes! Save changes before creating a new song?" +msgstr "" + +#: src/gui/editControls.cpp:507 +msgid "Save as..." +msgstr "" + +#: src/gui/editControls.cpp:516 src/gui/gui.cpp:1674 +msgid "Restore Backup" +msgstr "" + +#: src/gui/editControls.cpp:524 +msgid "Song Info" +msgstr "" + +#: src/gui/editControls.cpp:528 src/gui/guiConst.cpp:608 +msgid "Subsongs" +msgstr "" + +#: src/gui/editControls.cpp:541 +msgid "Channels here..." +msgstr "" + +#: src/gui/editControls.cpp:544 +msgid "Chips here..." +msgstr "" + +#: src/gui/editControls.cpp:547 +msgid "What the hell..." +msgstr "" + +#: src/gui/editControls.cpp:554 +msgid "ChanOsc" +msgstr "" + +#: src/gui/editControls.cpp:558 +msgid "RegView" +msgstr "" + +#: src/gui/editControls.cpp:562 +msgid "Stats" +msgstr "" + +#: src/gui/editControls.cpp:566 src/gui/guiConst.cpp:611 +msgid "Grooves" +msgstr "" + +#: src/gui/editControls.cpp:569 +msgid "Compat Flags" +msgstr "" + +#: src/gui/editControls.cpp:573 +msgid "XYOsc" +msgstr "" + +#: src/gui/editControls.cpp:577 +msgid "Meter" +msgstr "" + +#: src/gui/editControls.cpp:581 +msgid "Memory" +msgstr "" + +#: src/gui/editControls.cpp:585 +msgid "CV" +msgstr "" + +#: src/gui/editControls.cpp:589 +msgid "Presets" +msgstr "" + +#: src/gui/editControls.cpp:593 +msgid "PatManager" +msgstr "" + +#: src/gui/editControls.cpp:599 src/gui/guiConst.cpp:564 +msgid "Panic" +msgstr "" + +#: src/gui/editControls.cpp:601 src/gui/guiConst.cpp:589 +#: src/gui/guiConst.cpp:591 src/gui/gui.cpp:4433 +msgid "Settings" +msgstr "" + +#: src/gui/editControls.cpp:606 +msgid "Log" +msgstr "" + +#: src/gui/editControls.cpp:610 +msgid "Debug" +msgstr "" + +#: src/gui/editControls.cpp:614 src/gui/guiConst.cpp:587 +msgid "About" +msgstr "" + +#: src/gui/editControls.cpp:619 +msgid "Switch to Desktop Mode" +msgstr "" + +#: src/gui/editControls.cpp:681 src/gui/editControls.cpp:842 +#: src/gui/editControls.cpp:959 src/gui/editControls.cpp:1125 +msgid "Octave" +msgstr "" + +#: src/gui/editControls.cpp:698 src/gui/editControls.cpp:857 +msgid "Coarse Step" +msgstr "" + +#: src/gui/editControls.cpp:698 src/gui/editControls.cpp:857 +msgid "Edit Step" +msgstr "" + +#: src/gui/editControls.cpp:731 src/gui/editControls.cpp:797 +#: src/gui/editControls.cpp:911 src/gui/editControls.cpp:1048 +#: src/gui/guiConst.cpp:545 +msgid "Play" +msgstr "" + +#: src/gui/editControls.cpp:739 src/gui/editControls.cpp:789 +#: src/gui/editControls.cpp:918 src/gui/editControls.cpp:1040 +#: src/gui/guiConst.cpp:546 +msgid "Stop" +msgstr "" + +#: src/gui/editControls.cpp:742 src/gui/editControls.cpp:826 +#: src/gui/editControls.cpp:943 src/gui/editControls.cpp:1082 +#: src/gui/gui.cpp:4420 +msgid "Edit" +msgstr "" + +#: src/gui/editControls.cpp:757 src/gui/editControls.cpp:816 +#: src/gui/editControls.cpp:934 src/gui/editControls.cpp:1104 +msgid "Repeat pattern" +msgstr "" + +#: src/gui/editControls.cpp:766 src/gui/editControls.cpp:806 +#: src/gui/editControls.cpp:925 src/gui/editControls.cpp:1073 +msgid "Step one row" +msgstr "" + +#: src/gui/editControls.cpp:771 src/gui/editControls.cpp:891 +#: src/gui/editControls.cpp:1020 src/gui/editControls.cpp:1110 +msgid "Poly##PolyInput" +msgstr "" + +#: src/gui/editControls.cpp:771 src/gui/editControls.cpp:891 +#: src/gui/editControls.cpp:1020 src/gui/editControls.cpp:1110 +msgid "Mono##PolyInput" +msgstr "" + +#: src/gui/editControls.cpp:776 src/gui/editControls.cpp:896 +#: src/gui/editControls.cpp:1025 src/gui/editControls.cpp:1115 +msgid "Polyphony" +msgstr "" + +#: src/gui/editControls.cpp:957 +msgid "Oct." +msgstr "" + +#: src/gui/editControls.cpp:974 src/gui/editControls.cpp:1142 +msgid "Coarse" +msgstr "" + +#: src/gui/editControls.cpp:974 src/gui/editControls.cpp:1142 +msgid "Step" +msgstr "" + +#: src/gui/editControls.cpp:998 +msgid "Foll." +msgstr "" + +#: src/gui/editControls.cpp:1003 +msgid "Ord##FollowOrders" +msgstr "" + +#: src/gui/editControls.cpp:1011 +msgid "Pat##FollowPattern" +msgstr "" + +#: src/gui/editControls.cpp:1057 +msgid "Play from the beginning of this pattern" +msgstr "" + +#: src/gui/editControls.cpp:1065 +msgid "Repeat from the beginning of this pattern" +msgstr "" + +#: src/gui/editControls.cpp:1169 src/gui/guiConst.cpp:560 +msgid "Follow orders" +msgstr "" + +#: src/gui/editControls.cpp:1170 src/gui/guiConst.cpp:561 +msgid "Follow pattern" +msgstr "" + +#: src/gui/util.cpp:93 +msgid "" +msgstr "" + +#: src/gui/util.cpp:97 +msgid "Ctrl-" +msgstr "" + +#: src/gui/util.cpp:99 +msgid "Alt-" +msgstr "" + +#: src/gui/util.cpp:100 +msgid "Shift-" +msgstr "" + +#: src/gui/stats.cpp:36 +msgid "Audio load" +msgstr "" + +#: src/gui/xyOsc.cpp:45 +msgid "X Channel" +msgstr "" + +#: src/gui/xyOsc.cpp:51 +msgid "Invert##X" +msgstr "" + +#: src/gui/xyOsc.cpp:52 +msgid "Y Channel" +msgstr "" + +#: src/gui/xyOsc.cpp:58 +msgid "Invert##Y" +msgstr "" + +#: src/gui/xyOsc.cpp:59 src/gui/sampleEdit.cpp:1353 +msgid "Zoom" +msgstr "" + +#: src/gui/xyOsc.cpp:71 +msgid "Decay Time (ms)" +msgstr "" + +#: src/gui/xyOsc.cpp:74 +msgid "Intensity" +msgstr "" + +#: src/gui/xyOsc.cpp:77 +msgid "Line Thickness" +msgstr "" + +#: src/gui/xyOsc.cpp:213 +msgid "(-Infinity)dB,(-Infinity)dB" +msgstr "" + +#: src/gui/xyOsc.cpp:215 +#, c-format +msgid "(-Infinity)dB,%.1fdB" +msgstr "" + +#: src/gui/xyOsc.cpp:217 +#, c-format +msgid "%.1fdB,(-Infinity)dB" +msgstr "" + +#: src/gui/xyOsc.cpp:219 +#, c-format +msgid "%.1fdB,%.1fdB" +msgstr "" + +#: src/gui/userPresets.cpp:337 +msgid "Error! User category does not exist!" +msgstr "" + +#: src/gui/userPresets.cpp:346 src/gui/newSong.cpp:181 +msgid "Systems" +msgstr "" + +#: src/gui/userPresets.cpp:349 +msgid "New Preset" +msgstr "" + +#: src/gui/userPresets.cpp:361 +msgid "select a preset" +msgstr "" + +#: src/gui/userPresets.cpp:374 +msgid "Remove##UPresetRemove" +msgstr "" + +#: src/gui/userPresets.cpp:439 +msgid "Configure" +msgstr "" + +#: src/gui/userPresets.cpp:470 +msgid "Advanced" +msgstr "" + +#: src/gui/userPresets.cpp:476 +msgid "" +"insert additional settings in `option=value` format.\n" +"available options:\n" +"- tickRate" +msgstr "" + +#: src/gui/userPresets.cpp:509 +msgid "Save and Close" +msgstr "" + +#: src/gui/userPresets.cpp:515 +msgid "Import" +msgstr "" + +#: src/gui/userPresets.cpp:519 +msgid "Import (replace)" +msgstr "" + +#: src/gui/effectList.cpp:18 +#, c-format +msgid "Chip at cursor: %s" +msgstr "" + +#: src/gui/effectList.cpp:21 +msgid "Search" +msgstr "" + +#: src/gui/effectList.cpp:25 +msgid "Effect types to show:" +msgstr "" + +#: src/gui/effectList.cpp:47 +msgid "Description" +msgstr "" + +#: src/gui/subSongs.cpp:22 +#, c-format +msgid "%d. " +msgstr "" + +#: src/gui/subSongs.cpp:73 src/gui/subSongs.cpp:93 +msgid "too many subsongs!" +msgstr "" + +#: src/gui/subSongs.cpp:114 +msgid "this is the only subsong!" +msgstr "" + +#: src/gui/subSongs.cpp:116 +msgid "are you sure you want to remove this subsong?" +msgstr "" + +#: src/gui/spoiler.cpp:32 +msgid "SPOILER" +msgstr "" + +#: src/gui/orders.cpp:114 +msgid "Add new order" +msgstr "" + +#: src/gui/orders.cpp:125 src/gui/guiConst.cpp:794 +msgid "Remove order" +msgstr "" + +#: src/gui/orders.cpp:137 +msgid "Duplicate order (right-click to deep clone)" +msgstr "" + +#: src/gui/orders.cpp:146 src/gui/guiConst.cpp:795 +msgid "Move order up" +msgstr "" + +#: src/gui/orders.cpp:155 src/gui/guiConst.cpp:796 +msgid "Move order down" +msgstr "" + +#: src/gui/orders.cpp:167 +msgid "Place copy of current order at end of song (right-click to deep clone)" +msgstr "" + +#: src/gui/orders.cpp:177 +msgid "Order change mode: entire row" +msgstr "" + +#: src/gui/orders.cpp:179 +msgid "Order change mode: one" +msgstr "" + +#: src/gui/orders.cpp:205 +msgid "Order edit mode: Select and type (scroll vertically)" +msgstr "" + +#: src/gui/orders.cpp:207 +msgid "Order edit mode: Select and type (scroll horizontally)" +msgstr "" + +#: src/gui/orders.cpp:209 +msgid "Order edit mode: Select and type (don't scroll)" +msgstr "" + +#: src/gui/orders.cpp:211 +msgid "Order edit mode: Click to change" +msgstr "" + +#: src/gui/findReplace.cpp:29 +msgid "ignore" +msgstr "" + +#: src/gui/findReplace.cpp:30 +msgid "equals" +msgstr "" + +#: src/gui/findReplace.cpp:31 +msgid "not equal" +msgstr "" + +#: src/gui/findReplace.cpp:32 +msgid "between" +msgstr "" + +#: src/gui/findReplace.cpp:33 +msgid "not between" +msgstr "" + +#: src/gui/findReplace.cpp:34 +msgid "any" +msgstr "" + +#: src/gui/findReplace.cpp:35 src/gui/guiConst.cpp:217 +msgid "none" +msgstr "" + +#: src/gui/findReplace.cpp:39 +msgid "set" +msgstr "" + +#: src/gui/findReplace.cpp:40 +msgid "add" +msgstr "" + +#: src/gui/findReplace.cpp:41 +msgid "add (overflow)" +msgstr "" + +#: src/gui/findReplace.cpp:42 +msgid "scale %" +msgstr "" + +#: src/gui/findReplace.cpp:520 src/gui/findReplace.cpp:850 +msgid "Find" +msgstr "" + +#: src/gui/findReplace.cpp:526 src/gui/findReplace.cpp:535 +msgid "order" +msgstr "" + +#: src/gui/findReplace.cpp:527 src/gui/findReplace.cpp:537 +msgid "row" +msgstr "" + +#: src/gui/findReplace.cpp:539 src/gui/csPlayer.cpp:146 +msgid "channel" +msgstr "" + +#: src/gui/findReplace.cpp:541 +msgid "go" +msgstr "" + +#: src/gui/findReplace.cpp:585 +msgid "no matches found!" +msgstr "" + +#: src/gui/findReplace.cpp:587 +msgid "Back" +msgstr "" + +#: src/gui/findReplace.cpp:601 src/gui/findReplace.cpp:864 +#: src/gui/sampleEdit.cpp:590 +msgid "Note" +msgstr "" + +#: src/gui/findReplace.cpp:707 src/gui/findReplace.cpp:974 +msgid "Effect" +msgstr "" + +#: src/gui/findReplace.cpp:725 src/gui/findReplace.cpp:1003 +msgid "Value" +msgstr "" + +#: src/gui/findReplace.cpp:750 +msgid "Delete query" +msgstr "" + +#: src/gui/findReplace.cpp:754 src/gui/findReplace.cpp:1037 +msgid "Add effect" +msgstr "" + +#: src/gui/findReplace.cpp:761 src/gui/findReplace.cpp:1044 +msgid "Remove effect" +msgstr "" + +#: src/gui/findReplace.cpp:786 +msgid "Search range:" +msgstr "" + +#: src/gui/findReplace.cpp:791 +msgid "Selection" +msgstr "" + +#: src/gui/findReplace.cpp:799 +msgid "Confine to channels" +msgstr "" + +#: src/gui/findReplace.cpp:803 src/gui/sampleEdit.cpp:1152 +msgid "From" +msgstr "" + +#: src/gui/findReplace.cpp:814 src/gui/sampleEdit.cpp:1156 +msgid "To" +msgstr "" + +#: src/gui/findReplace.cpp:826 +msgid "Match effect position:" +msgstr "" + +#: src/gui/findReplace.cpp:828 src/gui/gui.cpp:5652 src/gui/gui.cpp:5676 +#: src/gui/gui.cpp:5700 src/gui/gui.cpp:5724 src/gui/gui.cpp:5748 +#: src/gui/gui.cpp:5776 src/gui/gui.cpp:5801 src/gui/gui.cpp:5812 +#: src/gui/gui.cpp:5824 src/gui/gui.cpp:5836 src/gui/gui.cpp:6000 +#: src/gui/gui.cpp:6015 src/gui/gui.cpp:6025 src/gui/gui.cpp:6038 +msgid "No" +msgstr "" + +#: src/gui/findReplace.cpp:832 +msgid "match effects regardless of position." +msgstr "" + +#: src/gui/findReplace.cpp:834 src/gui/compatFlags.cpp:288 +msgid "Lax" +msgstr "" + +#: src/gui/findReplace.cpp:838 +msgid "match effects only if they appear in-order." +msgstr "" + +#: src/gui/findReplace.cpp:840 src/gui/compatFlags.cpp:276 +msgid "Strict" +msgstr "" + +#: src/gui/findReplace.cpp:844 +msgid "match effects only if they appear exactly as specified." +msgstr "" + +#: src/gui/findReplace.cpp:856 +msgid "Replace" +msgstr "" + +#: src/gui/findReplace.cpp:908 +msgid "INVALID" +msgstr "" + +#: src/gui/findReplace.cpp:1052 +msgid "Effect replace mode:" +msgstr "" + +#: src/gui/findReplace.cpp:1053 +msgid "Replace matches only" +msgstr "" + +#: src/gui/findReplace.cpp:1056 +msgid "Replace matches, then free spaces" +msgstr "" + +#: src/gui/findReplace.cpp:1059 +msgid "Clear effects" +msgstr "" + +#: src/gui/findReplace.cpp:1062 +msgid "Insert in free spaces" +msgstr "" + +#: src/gui/findReplace.cpp:1065 +msgid "Replace##QueryReplace" +msgstr "" + +#: src/gui/compatFlags.cpp:32 +msgid "" +"these flags are designed to provide better DefleMask/older Furnace " +"compatibility.\n" +"it is recommended to disable most of these unless you rely on specific " +"quirks." +msgstr "" + +#: src/gui/compatFlags.cpp:34 src/gui/compatFlags.cpp:310 +msgid "DefleMask" +msgstr "" + +#: src/gui/compatFlags.cpp:35 +msgid "Limit slide range" +msgstr "" + +#: src/gui/compatFlags.cpp:37 +msgid "" +"when enabled, slides are limited to a compatible range.\n" +"may cause problems with slides in negative octaves." +msgstr "" + +#: src/gui/compatFlags.cpp:39 +msgid "Compatible noise layout on NES and PC Engine" +msgstr "" + +#: src/gui/compatFlags.cpp:41 +msgid "" +"use a rather unusual compatible noise frequency layout.\n" +"removes some noise frequencies on PC Engine." +msgstr "" + +#: src/gui/compatFlags.cpp:43 +msgid "Game Boy instrument duty is wave volume" +msgstr "" + +#: src/gui/compatFlags.cpp:45 +msgid "" +"if enabled, an instrument with duty macro in the wave channel will be mapped " +"to wavetable volume." +msgstr "" + +#: src/gui/compatFlags.cpp:48 +msgid "Restart macro on portamento" +msgstr "" + +#: src/gui/compatFlags.cpp:50 +msgid "" +"when enabled, a portamento effect will reset the channel's macro if used in " +"combination with a note." +msgstr "" + +#: src/gui/compatFlags.cpp:52 +msgid "Legacy volume slides" +msgstr "" + +#: src/gui/compatFlags.cpp:54 +msgid "" +"simulate glitchy volume slide behavior by silently overflowing the volume " +"when the slide goes below 0." +msgstr "" + +#: src/gui/compatFlags.cpp:56 +msgid "Compatible arpeggio" +msgstr "" + +#: src/gui/compatFlags.cpp:58 +msgid "delay arpeggio by one tick on every new note." +msgstr "" + +#: src/gui/compatFlags.cpp:60 +msgid "Disable DAC when sample ends" +msgstr "" + +#: src/gui/compatFlags.cpp:62 +msgid "" +"when enabled, the DAC in YM2612 will be disabled if there isn't any sample " +"playing." +msgstr "" + +#: src/gui/compatFlags.cpp:64 +msgid "Broken speed alternation" +msgstr "" + +#: src/gui/compatFlags.cpp:66 +msgid "" +"determines next speed based on whether the row is odd/even instead of " +"alternating between speeds." +msgstr "" + +#: src/gui/compatFlags.cpp:68 +msgid "Ignore duplicate slide effects" +msgstr "" + +#: src/gui/compatFlags.cpp:70 +msgid "" +"if this is on, only the first slide of a row in a channel will be considered." +msgstr "" + +#: src/gui/compatFlags.cpp:72 +msgid "Ignore 0Dxx on the last order" +msgstr "" + +#: src/gui/compatFlags.cpp:74 +msgid "" +"if this is on, a jump to next row effect will not take place when it is on " +"the last order of a song." +msgstr "" + +#: src/gui/compatFlags.cpp:76 +msgid "Buggy portamento after pitch slide" +msgstr "" + +#: src/gui/compatFlags.cpp:78 +msgid "simulates a bug in where portamento does not work after sliding." +msgstr "" + +#: src/gui/compatFlags.cpp:80 +msgid "FM pitch slide octave boundary odd behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:82 +msgid "" +"if this is on, a pitch slide that crosses the octave boundary will stop for " +"one tick and then continue from the nearest octave boundary.\n" +"for .dmf compatibility." +msgstr "" + +#: src/gui/compatFlags.cpp:84 +msgid "Don't apply Game Boy envelope on note-less instrument change" +msgstr "" + +#: src/gui/compatFlags.cpp:86 +msgid "if this is on, an instrument change will not affect the envelope." +msgstr "" + +#: src/gui/compatFlags.cpp:88 +msgid "Ignore DAC mode change outside of intended channel in ExtCh mode" +msgstr "" + +#: src/gui/compatFlags.cpp:90 +msgid "if this is on, 17xx has no effect on the operator channels in YM2612." +msgstr "" + +#: src/gui/compatFlags.cpp:92 +msgid "E1xy/E2xy also take priority over slide stops" +msgstr "" + +#: src/gui/compatFlags.cpp:94 +msgid "does this make any sense by now?" +msgstr "" + +#: src/gui/compatFlags.cpp:96 +msgid "E1xy/E2xy stop when repeating the same note" +msgstr "" + +#: src/gui/compatFlags.cpp:98 +msgid "ugh, if only this wasn't a thing..." +msgstr "" + +#: src/gui/compatFlags.cpp:100 +msgid "SN76489 duty macro always resets phase" +msgstr "" + +#: src/gui/compatFlags.cpp:102 +msgid "" +"when enabled, duty macro will always reset phase, even if its value hasn't " +"changed." +msgstr "" + +#: src/gui/compatFlags.cpp:104 +msgid "Broken volume scaling strategy" +msgstr "" + +#: src/gui/compatFlags.cpp:106 +msgid "" +"when enabled:\n" +"- log scaling: multiply\n" +"- linear scaling: subtract\n" +"when disabled:\n" +"- log scaling: subtract\n" +"- linear scaling: multiply" +msgstr "" + +#: src/gui/compatFlags.cpp:108 +msgid "Don't persist volume macro after it finishes" +msgstr "" + +#: src/gui/compatFlags.cpp:110 +msgid "" +"when enabled, a value in the volume column that happens after the volume " +"macro is done will disregard the macro." +msgstr "" + +#: src/gui/compatFlags.cpp:112 +msgid "Broken output volume on instrument change" +msgstr "" + +#: src/gui/compatFlags.cpp:114 +msgid "" +"if enabled, no checks for the presence of a volume macro will be made.\n" +"this will cause the last macro value to linger unless a value in the volume " +"column is present." +msgstr "" + +#: src/gui/compatFlags.cpp:116 +msgid "Broken output volume - Episode 2 (PLEASE KEEP ME DISABLED)" +msgstr "" + +#: src/gui/compatFlags.cpp:118 +msgid "" +"these compatibility flags are getting SO damn ridiculous and out of " +"control.\n" +"as you may have guessed, this one exists due to yet ANOTHER DefleMask-" +"specific behavior.\n" +"please keep this off at all costs, because I will not support it when ROM " +"export comes.\n" +"oh, and don't start an argument out of it. Furnace isn't a DefleMask " +"replacement, and no,\n" +"I am not trying to make it look like one with all these flags.\n" +"\n" +"oh, and what about the other flags that don't have to do with DefleMask?\n" +"those are for .mod import, future FamiTracker import and personal taste!\n" +"\n" +"end of rant" +msgstr "" + +#: src/gui/compatFlags.cpp:120 +msgid "Treat SN76489 periods under 8 as 1" +msgstr "" + +#: src/gui/compatFlags.cpp:122 +msgid "" +"when enabled, any SN period under 8 will be written as 1 instead.\n" +"this replicates DefleMask behavior, but reduces available period range." +msgstr "" + +#: src/gui/compatFlags.cpp:126 src/gui/compatFlags.cpp:304 +msgid "Old Furnace" +msgstr "" + +#: src/gui/compatFlags.cpp:127 +msgid "Arpeggio inhibits non-porta slides" +msgstr "" + +#: src/gui/compatFlags.cpp:129 src/gui/compatFlags.cpp:133 +msgid "behavior changed in 0.5.5" +msgstr "" + +#: src/gui/compatFlags.cpp:131 +msgid "Wack FM algorithm macro" +msgstr "" + +#: src/gui/compatFlags.cpp:135 +msgid "Broken shortcut slides (E1xy/E2xy)" +msgstr "" + +#: src/gui/compatFlags.cpp:137 +msgid "behavior changed in 0.5.7" +msgstr "" + +#: src/gui/compatFlags.cpp:139 +msgid "Stop portamento on note off" +msgstr "" + +#: src/gui/compatFlags.cpp:141 src/gui/compatFlags.cpp:145 +#: src/gui/compatFlags.cpp:149 src/gui/compatFlags.cpp:153 +#: src/gui/compatFlags.cpp:157 src/gui/compatFlags.cpp:161 +#: src/gui/compatFlags.cpp:165 +msgid "behavior changed in 0.6pre1" +msgstr "" + +#: src/gui/compatFlags.cpp:143 +msgid "Don't allow instrument change during slides" +msgstr "" + +#: src/gui/compatFlags.cpp:147 +msgid "Don't reset note to base on arpeggio stop" +msgstr "" + +#: src/gui/compatFlags.cpp:151 +msgid "ExtCh channel status is not shared among operators" +msgstr "" + +#: src/gui/compatFlags.cpp:155 +msgid "Disable new SegaPCM features (macros and better panning)" +msgstr "" + +#: src/gui/compatFlags.cpp:159 +msgid "Old FM octave boundary behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:163 +msgid "Disable OPN2 DAC volume control" +msgstr "" + +#: src/gui/compatFlags.cpp:167 +msgid "Broken initial position of portamento after arpeggio" +msgstr "" + +#: src/gui/compatFlags.cpp:169 +msgid "behavior changed in 0.6pre1.5" +msgstr "" + +#: src/gui/compatFlags.cpp:171 +msgid "Disable new sample features" +msgstr "" + +#: src/gui/compatFlags.cpp:173 src/gui/compatFlags.cpp:177 +msgid "behavior changed in 0.6pre2" +msgstr "" + +#: src/gui/compatFlags.cpp:175 +msgid "Old arpeggio macro + pitch slide strategy" +msgstr "" + +#: src/gui/compatFlags.cpp:179 +msgid "Broken portamento during legato" +msgstr "" + +#: src/gui/compatFlags.cpp:181 +msgid "behavior changed in 0.6pre4" +msgstr "" + +#: src/gui/compatFlags.cpp:183 +msgid "Broken macros in some FM chips after note off" +msgstr "" + +#: src/gui/compatFlags.cpp:185 +msgid "behavior changed in 0.6pre5" +msgstr "" + +#: src/gui/compatFlags.cpp:187 +msgid "Pre-note does not take effects into consideration" +msgstr "" + +#: src/gui/compatFlags.cpp:189 +msgid "behavior changed in 0.6pre9" +msgstr "" + +#: src/gui/compatFlags.cpp:191 +msgid "Disable new NES DPCM features" +msgstr "" + +#: src/gui/compatFlags.cpp:193 +msgid "behavior changed in 0.6.1" +msgstr "" + +#: src/gui/compatFlags.cpp:195 +msgid "Legacy technical ALWAYS_SET_VOLUME behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:197 +msgid "" +"behavior changed in 0.6.1\n" +"this flag will be removed if I find out that none of the songs break after " +"disabling it." +msgstr "" + +#: src/gui/compatFlags.cpp:199 +msgid "Old sample offset effect" +msgstr "" + +#: src/gui/compatFlags.cpp:201 +msgid "behavior changed in 0.6.3" +msgstr "" + +#: src/gui/compatFlags.cpp:205 +msgid ".mod import" +msgstr "" + +#: src/gui/compatFlags.cpp:206 +msgid "Don't slide on the first tick of a row" +msgstr "" + +#: src/gui/compatFlags.cpp:208 +msgid "" +"simulates ProTracker's behavior of not applying volume/pitch slides on the " +"first tick of a row." +msgstr "" + +#: src/gui/compatFlags.cpp:210 +msgid "Reset arpeggio position on row change" +msgstr "" + +#: src/gui/compatFlags.cpp:212 +msgid "" +"simulates ProTracker's behavior of arpeggio being bound to the current tick " +"of a row." +msgstr "" + +#: src/gui/compatFlags.cpp:216 +msgid "Pitch/Playback" +msgstr "" + +#: src/gui/compatFlags.cpp:217 +msgid "Pitch linearity:" +msgstr "" + +#: src/gui/compatFlags.cpp:223 +msgid "like ProTracker/FamiTracker" +msgstr "" + +#: src/gui/compatFlags.cpp:227 +msgid "Partial (only 04xy/E5xx)" +msgstr "" + +#: src/gui/compatFlags.cpp:231 +msgid "" +"like DefleMask\n" +"\n" +"this pitch linearity mode is deprecated due to:\n" +"- excessive complexity\n" +"- lack of possible optimization\n" +"\n" +"it is recommended to change it now because I will remove this option in the " +"future!" +msgstr "" + +#: src/gui/compatFlags.cpp:235 +msgid "Full" +msgstr "" + +#: src/gui/compatFlags.cpp:239 +msgid "like Impulse Tracker" +msgstr "" + +#: src/gui/compatFlags.cpp:246 +msgid "Pitch slide speed multiplier" +msgstr "" + +#: src/gui/compatFlags.cpp:252 +msgid "Loop modality:" +msgstr "" + +#: src/gui/compatFlags.cpp:254 +msgid "Reset channels" +msgstr "" + +#: src/gui/compatFlags.cpp:258 +msgid "" +"select to reset channels on loop. may trigger a voltage click on every loop!" +msgstr "" + +#: src/gui/compatFlags.cpp:260 +msgid "Soft reset channels" +msgstr "" + +#: src/gui/compatFlags.cpp:264 +msgid "select to turn channels off on loop." +msgstr "" + +#: src/gui/compatFlags.cpp:266 +msgid "Do nothing" +msgstr "" + +#: src/gui/compatFlags.cpp:270 +msgid "select to not reset channels on loop." +msgstr "" + +#: src/gui/compatFlags.cpp:274 +msgid "Cut/delay effect policy:" +msgstr "" + +#: src/gui/compatFlags.cpp:280 +msgid "only when time is less than speed (like DefleMask/ProTracker)" +msgstr "" + +#: src/gui/compatFlags.cpp:282 +msgid "Strict (old)" +msgstr "" + +#: src/gui/compatFlags.cpp:286 +msgid "only when time is less than or equal to speed (original buggy behavior)" +msgstr "" + +#: src/gui/compatFlags.cpp:292 +msgid "no checks" +msgstr "" + +#: src/gui/compatFlags.cpp:296 +msgid "Simultaneous jump (0B+0D) treatment:" +msgstr "" + +#: src/gui/compatFlags.cpp:298 src/gui/gui.cpp:6055 src/gui/insEdit.cpp:217 +#: src/gui/insEdit.cpp:231 +msgid "Normal" +msgstr "" + +#: src/gui/compatFlags.cpp:302 +msgid "accept 0B+0D to jump to a specific row of an order" +msgstr "" + +#: src/gui/compatFlags.cpp:308 +msgid "only accept the first jump effect" +msgstr "" + +#: src/gui/compatFlags.cpp:314 +msgid "only accept 0Dxx" +msgstr "" + +#: src/gui/compatFlags.cpp:320 +msgid "Auto-insert one tick gap between notes" +msgstr "" + +#: src/gui/compatFlags.cpp:322 +msgid "" +"when enabled, a one-tick note cut will be inserted between non-legato/non-" +"portamento notes.\n" +"this simulates the behavior of some Amiga/SNES music engines.\n" +"\n" +"ineffective on C64." +msgstr "" + +#: src/gui/compatFlags.cpp:327 +msgid "Don't reset slides after note off" +msgstr "" + +#: src/gui/compatFlags.cpp:329 +msgid "when enabled, note off will not reset the channel's slide effect." +msgstr "" + +#: src/gui/compatFlags.cpp:331 +msgid "Don't reset portamento after reaching target" +msgstr "" + +#: src/gui/compatFlags.cpp:333 +msgid "" +"when enabled, the slide effect will not be disabled after it reaches its " +"target." +msgstr "" + +#: src/gui/compatFlags.cpp:335 +msgid "Continuous vibrato" +msgstr "" + +#: src/gui/compatFlags.cpp:337 +msgid "when enabled, vibrato phase/position will not be reset on a new note." +msgstr "" + +#: src/gui/compatFlags.cpp:339 +msgid "Pitch macro is not linear" +msgstr "" + +#: src/gui/compatFlags.cpp:341 +msgid "" +"when enabled, the pitch macro of an instrument is in frequency/period space." +msgstr "" + +#: src/gui/compatFlags.cpp:343 +msgid "Reset arpeggio effect position on new note" +msgstr "" + +#: src/gui/compatFlags.cpp:345 +msgid "when enabled, arpeggio effect (00xy) position is reset on a new note." +msgstr "" + +#: src/gui/compatFlags.cpp:347 +msgid "Volume scaling rounds up" +msgstr "" + +#: src/gui/compatFlags.cpp:349 +msgid "" +"when enabled, volume macros round up when applied\n" +"this prevents volume scaling from causing vol=0, which is silent on some " +"chips\n" +"\n" +"ineffective on logarithmic channels" +msgstr "" + +#: src/gui/guiConst.cpp:127 +msgid "Generic Sample" +msgstr "" + +#: src/gui/guiConst.cpp:149 +msgid "VRC6 (saw)" +msgstr "" + +#: src/gui/guiConst.cpp:155 +msgid "OPL (drums)" +msgstr "" + +#: src/gui/guiConst.cpp:179 +msgid "PowerNoise (noise)" +msgstr "" + +#: src/gui/guiConst.cpp:180 +msgid "PowerNoise (slope)" +msgstr "" + +#: src/gui/guiConst.cpp:191 +msgid "Forward" +msgstr "" + +#: src/gui/guiConst.cpp:192 +msgid "Backward" +msgstr "" + +#: src/gui/guiConst.cpp:193 +msgid "Ping pong" +msgstr "" + +#: src/gui/guiConst.cpp:218 +msgid "linear" +msgstr "" + +#: src/gui/guiConst.cpp:219 +msgid "cubic spline" +msgstr "" + +#: src/gui/guiConst.cpp:220 +msgid "blep synthesis" +msgstr "" + +#: src/gui/guiConst.cpp:221 +msgid "sinc" +msgstr "" + +#: src/gui/guiConst.cpp:222 +msgid "best possible" +msgstr "" + +#: src/gui/guiConst.cpp:226 src/gui/sampleEdit.cpp:137 +#: src/gui/sampleEdit.cpp:143 +msgid "Invalid" +msgstr "" + +#: src/gui/guiConst.cpp:227 src/gui/insEdit.cpp:6924 src/gui/insEdit.cpp:6931 +#: src/gui/insEdit.cpp:6942 src/gui/insEdit.cpp:6950 src/gui/insEdit.cpp:6971 +#: src/gui/insEdit.cpp:6983 src/gui/insEdit.cpp:6993 src/gui/insEdit.cpp:7006 +#: src/gui/insEdit.cpp:7019 src/gui/insEdit.cpp:7028 src/gui/insEdit.cpp:7036 +#: src/gui/insEdit.cpp:7042 src/gui/insEdit.cpp:7052 src/gui/insEdit.cpp:7061 +#: src/gui/insEdit.cpp:7068 src/gui/insEdit.cpp:7075 src/gui/insEdit.cpp:7087 +#: src/gui/insEdit.cpp:7095 src/gui/insEdit.cpp:7102 src/gui/insEdit.cpp:7109 +#: src/gui/insEdit.cpp:7117 src/gui/insEdit.cpp:7123 src/gui/insEdit.cpp:7132 +#: src/gui/insEdit.cpp:7143 src/gui/insEdit.cpp:7153 src/gui/insEdit.cpp:7161 +#: src/gui/insEdit.cpp:7174 src/gui/insEdit.cpp:7182 src/gui/insEdit.cpp:7193 +#: src/gui/insEdit.cpp:7203 src/gui/insEdit.cpp:7213 src/gui/insEdit.cpp:7227 +#: src/gui/insEdit.cpp:7233 src/gui/insEdit.cpp:7241 src/gui/insEdit.cpp:7248 +#: src/gui/insEdit.cpp:7272 src/gui/insEdit.cpp:7280 src/gui/insEdit.cpp:7289 +#: src/gui/insEdit.cpp:7298 src/gui/insEdit.cpp:7306 src/gui/insEdit.cpp:7323 +#: src/gui/insEdit.cpp:7331 src/gui/insEdit.cpp:7337 src/gui/insEdit.cpp:7344 +#: src/gui/insEdit.cpp:7350 src/gui/insEdit.cpp:7355 src/gui/insEdit.cpp:7361 +#: src/gui/insEdit.cpp:7368 src/gui/insEdit.cpp:7376 src/gui/insEdit.cpp:7385 +#: src/gui/insEdit.cpp:7393 src/gui/insEdit.cpp:7401 src/gui/insEdit.cpp:7413 +#: src/gui/insEdit.cpp:7428 src/gui/insEdit.cpp:7439 src/gui/insEdit.cpp:7447 +#: src/gui/insEdit.cpp:7456 src/gui/insEdit.cpp:7466 src/gui/insEdit.cpp:7474 +msgid "Pitch" +msgstr "" + +#: src/gui/guiConst.cpp:231 +msgid "Time" +msgstr "" + +#: src/gui/guiConst.cpp:233 +msgid "System (Primary)" +msgstr "" + +#: src/gui/guiConst.cpp:234 +msgid "System (Secondary)" +msgstr "" + +#: src/gui/guiConst.cpp:235 +msgid "Miscellaneous" +msgstr "" + +#: src/gui/guiConst.cpp:530 +msgid "---Global" +msgstr "" + +#: src/gui/guiConst.cpp:532 +msgid "Open file" +msgstr "" + +#: src/gui/guiConst.cpp:533 +msgid "Restore backup" +msgstr "" + +#: src/gui/guiConst.cpp:534 +msgid "Save file" +msgstr "" + +#: src/gui/guiConst.cpp:535 +msgid "Save as" +msgstr "" + +#: src/gui/guiConst.cpp:537 src/gui/sampleEdit.cpp:982 +msgid "Undo" +msgstr "" + +#: src/gui/guiConst.cpp:539 src/gui/guiConst.cpp:541 src/gui/sampleEdit.cpp:989 +msgid "Redo" +msgstr "" + +#: src/gui/guiConst.cpp:543 +msgid "Exit" +msgstr "" + +#: src/gui/guiConst.cpp:544 +msgid "Play/Stop (toggle)" +msgstr "" + +#: src/gui/guiConst.cpp:547 +msgid "Play (from beginning)" +msgstr "" + +#: src/gui/guiConst.cpp:548 +msgid "Play (repeat pattern)" +msgstr "" + +#: src/gui/guiConst.cpp:549 +msgid "Play from cursor" +msgstr "" + +#: src/gui/guiConst.cpp:550 +msgid "Step row" +msgstr "" + +#: src/gui/guiConst.cpp:551 +msgid "Octave up" +msgstr "" + +#: src/gui/guiConst.cpp:552 +msgid "Octave down" +msgstr "" + +#: src/gui/guiConst.cpp:553 +msgid "Previous instrument" +msgstr "" + +#: src/gui/guiConst.cpp:554 +msgid "Next instrument" +msgstr "" + +#: src/gui/guiConst.cpp:555 +msgid "Increase edit step" +msgstr "" + +#: src/gui/guiConst.cpp:556 +msgid "Decrease edit step" +msgstr "" + +#: src/gui/guiConst.cpp:557 +msgid "Toggle edit mode" +msgstr "" + +#: src/gui/guiConst.cpp:559 +msgid "Toggle repeat pattern" +msgstr "" + +#: src/gui/guiConst.cpp:562 +msgid "Toggle full-screen" +msgstr "" + +#: src/gui/guiConst.cpp:563 +msgid "Request voice from TX81Z" +msgstr "" + +#: src/gui/guiConst.cpp:565 +msgid "Clear song data" +msgstr "" + +#: src/gui/guiConst.cpp:567 src/gui/gui.cpp:5561 src/gui/gui.cpp:5613 +msgid "Command Palette" +msgstr "" + +#: src/gui/guiConst.cpp:569 +msgid "Recent files (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:570 +msgid "Instruments (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:571 +msgid "Samples (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:572 +msgid "Change instrument (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:573 +msgid "Add chip (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:576 +msgid "Edit Controls" +msgstr "" + +#: src/gui/guiConst.cpp:578 +msgid "Instrument List" +msgstr "" + +#: src/gui/guiConst.cpp:579 +msgid "Instrument Editor" +msgstr "" + +#: src/gui/guiConst.cpp:580 +msgid "Song Information" +msgstr "" + +#: src/gui/guiConst.cpp:583 +msgid "Wavetable List" +msgstr "" + +#: src/gui/guiConst.cpp:584 +msgid "Wavetable Editor" +msgstr "" + +#: src/gui/guiConst.cpp:585 +msgid "Sample List" +msgstr "" + +#: src/gui/guiConst.cpp:586 +msgid "Sample Editor" +msgstr "" + +#: src/gui/guiConst.cpp:594 +msgid "Debug Menu" +msgstr "" + +#: src/gui/guiConst.cpp:595 +msgid "Oscilloscope (master)" +msgstr "" + +#: src/gui/guiConst.cpp:596 +msgid "Volume Meter" +msgstr "" + +#: src/gui/guiConst.cpp:597 +msgid "Statistics" +msgstr "" + +#: src/gui/guiConst.cpp:598 +msgid "Compatibility Flags" +msgstr "" + +#: src/gui/guiConst.cpp:599 +msgid "Piano" +msgstr "" + +#: src/gui/guiConst.cpp:600 +msgid "Song Comments" +msgstr "" + +#: src/gui/guiConst.cpp:602 +msgid "Pattern Manager" +msgstr "" + +#: src/gui/guiConst.cpp:603 +msgid "Chip Manager" +msgstr "" + +#: src/gui/guiConst.cpp:604 +msgid "Register View" +msgstr "" + +#: src/gui/guiConst.cpp:605 +msgid "Log Viewer" +msgstr "" + +#: src/gui/guiConst.cpp:606 +msgid "Effect List" +msgstr "" + +#: src/gui/guiConst.cpp:607 +msgid "Oscilloscope (per-channel)" +msgstr "" + +#: src/gui/guiConst.cpp:609 +msgid "Find/Replace" +msgstr "" + +#: src/gui/guiConst.cpp:610 +msgid "Clock" +msgstr "" + +#: src/gui/guiConst.cpp:612 +msgid "Oscilloscope (X-Y)" +msgstr "" + +#: src/gui/guiConst.cpp:613 +msgid "Memory Composition" +msgstr "" + +#: src/gui/guiConst.cpp:614 +msgid "Command Stream Player" +msgstr "" + +#: src/gui/guiConst.cpp:615 +msgid "User Presets" +msgstr "" + +#: src/gui/guiConst.cpp:617 +msgid "Collapse/expand current window" +msgstr "" + +#: src/gui/guiConst.cpp:618 +msgid "Close current window" +msgstr "" + +#: src/gui/guiConst.cpp:621 +msgid "---Pattern" +msgstr "" + +#: src/gui/guiConst.cpp:622 +msgid "Transpose (+1)" +msgstr "" + +#: src/gui/guiConst.cpp:623 +msgid "Transpose (-1)" +msgstr "" + +#: src/gui/guiConst.cpp:624 +msgid "Transpose (+1 octave)" +msgstr "" + +#: src/gui/guiConst.cpp:625 +msgid "Transpose (-1 octave)" +msgstr "" + +#: src/gui/guiConst.cpp:626 +msgid "Increase values (+1)" +msgstr "" + +#: src/gui/guiConst.cpp:627 +msgid "Increase values (-1)" +msgstr "" + +#: src/gui/guiConst.cpp:628 +msgid "Increase values (+16)" +msgstr "" + +#: src/gui/guiConst.cpp:629 +msgid "Increase values (-16)" +msgstr "" + +#: src/gui/guiConst.cpp:630 +msgid "Select all" +msgstr "" + +#: src/gui/guiConst.cpp:631 +msgid "Cut" +msgstr "" + +#: src/gui/guiConst.cpp:632 +msgid "Copy" +msgstr "" + +#: src/gui/guiConst.cpp:633 +msgid "Paste" +msgstr "" + +#: src/gui/guiConst.cpp:634 +msgid "Paste Mix (foreground)" +msgstr "" + +#: src/gui/guiConst.cpp:635 +msgid "Paste Mix (background)" +msgstr "" + +#: src/gui/guiConst.cpp:636 +msgid "Paste Flood" +msgstr "" + +#: src/gui/guiConst.cpp:637 +msgid "Paste Overflow" +msgstr "" + +#: src/gui/guiConst.cpp:638 +msgid "Move cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:639 +msgid "Move cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:640 +msgid "Move cursor left" +msgstr "" + +#: src/gui/guiConst.cpp:641 +msgid "Move cursor right" +msgstr "" + +#: src/gui/guiConst.cpp:642 +msgid "Move cursor up by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:643 +msgid "Move cursor down by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:644 +msgid "Move cursor to previous channel" +msgstr "" + +#: src/gui/guiConst.cpp:645 +msgid "Move cursor to next channel" +msgstr "" + +#: src/gui/guiConst.cpp:646 +msgid "Move cursor to next channel (overflow)" +msgstr "" + +#: src/gui/guiConst.cpp:647 +msgid "Move cursor to previous channel (overflow)" +msgstr "" + +#: src/gui/guiConst.cpp:648 +msgid "Move cursor to beginning of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:649 +msgid "Move cursor to end of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:650 +msgid "Move cursor up (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:651 +msgid "Move cursor down (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:652 +msgid "Expand selection upwards" +msgstr "" + +#: src/gui/guiConst.cpp:653 +msgid "Expand selection downwards" +msgstr "" + +#: src/gui/guiConst.cpp:654 +msgid "Expand selection to the left" +msgstr "" + +#: src/gui/guiConst.cpp:655 +msgid "Expand selection to the right" +msgstr "" + +#: src/gui/guiConst.cpp:656 +msgid "Expand selection upwards by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:657 +msgid "Expand selection downwards by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:658 +msgid "Expand selection to beginning of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:659 +msgid "Expand selection to end of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:660 +msgid "Expand selection upwards (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:661 +msgid "Expand selection downwards (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:662 +msgid "Move selection up" +msgstr "" + +#: src/gui/guiConst.cpp:663 +msgid "Move selection down" +msgstr "" + +#: src/gui/guiConst.cpp:664 +msgid "Move selection to previous channel" +msgstr "" + +#: src/gui/guiConst.cpp:665 +msgid "Move selection to next channel" +msgstr "" + +#: src/gui/guiConst.cpp:667 +msgid "Pull delete" +msgstr "" + +#: src/gui/guiConst.cpp:668 +msgid "Insert" +msgstr "" + +#: src/gui/guiConst.cpp:669 +msgid "Mute channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:670 +msgid "Solo channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:671 +msgid "Unmute all channels" +msgstr "" + +#: src/gui/guiConst.cpp:672 +msgid "Go to next order" +msgstr "" + +#: src/gui/guiConst.cpp:673 +msgid "Go to previous order" +msgstr "" + +#: src/gui/guiConst.cpp:674 +msgid "Collapse channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:675 +msgid "Increase effect columns" +msgstr "" + +#: src/gui/guiConst.cpp:676 +msgid "Decrease effect columns" +msgstr "" + +#: src/gui/guiConst.cpp:677 +msgid "Interpolate" +msgstr "" + +#: src/gui/guiConst.cpp:678 src/gui/insEdit.cpp:530 +msgid "Fade" +msgstr "" + +#: src/gui/guiConst.cpp:679 +msgid "Invert values" +msgstr "" + +#: src/gui/guiConst.cpp:680 +msgid "Flip selection" +msgstr "" + +#: src/gui/guiConst.cpp:681 +msgid "Collapse rows" +msgstr "" + +#: src/gui/guiConst.cpp:682 +msgid "Expand rows" +msgstr "" + +#: src/gui/guiConst.cpp:683 +msgid "Collapse pattern" +msgstr "" + +#: src/gui/guiConst.cpp:684 +msgid "Expand pattern" +msgstr "" + +#: src/gui/guiConst.cpp:685 +msgid "Collapse song" +msgstr "" + +#: src/gui/guiConst.cpp:686 +msgid "Expand song" +msgstr "" + +#: src/gui/guiConst.cpp:687 +msgid "Set note input latch" +msgstr "" + +#: src/gui/guiConst.cpp:688 +msgid "Change mobile scroll mode" +msgstr "" + +#: src/gui/guiConst.cpp:689 +msgid "Clear note input latch" +msgstr "" + +#: src/gui/guiConst.cpp:692 +msgid "---Instrument list" +msgstr "" + +#: src/gui/guiConst.cpp:693 +msgid "Add instrument" +msgstr "" + +#: src/gui/guiConst.cpp:694 +msgid "Duplicate instrument" +msgstr "" + +#: src/gui/guiConst.cpp:695 +msgid "Open instrument" +msgstr "" + +#: src/gui/guiConst.cpp:696 +msgid "Open instrument (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:697 +msgid "Save instrument" +msgstr "" + +#: src/gui/guiConst.cpp:698 +msgid "Save instrument (.dmp)" +msgstr "" + +#: src/gui/guiConst.cpp:699 +msgid "Move instrument up in list" +msgstr "" + +#: src/gui/guiConst.cpp:700 +msgid "Move instrument down in list" +msgstr "" + +#: src/gui/guiConst.cpp:701 +msgid "Delete instrument" +msgstr "" + +#: src/gui/guiConst.cpp:702 +msgid "Edit instrument" +msgstr "" + +#: src/gui/guiConst.cpp:703 +msgid "Instrument cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:704 +msgid "Instrument cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:705 +msgid "Instruments: toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:708 +msgid "---Wavetable list" +msgstr "" + +#: src/gui/guiConst.cpp:709 +msgid "Add wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:710 +msgid "Duplicate wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:711 +msgid "Open wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:712 +msgid "Open wavetable (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:713 +msgid "Save wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:714 +msgid "Save wavetable (.dmw)" +msgstr "" + +#: src/gui/guiConst.cpp:715 +msgid "Save wavetable (raw)" +msgstr "" + +#: src/gui/guiConst.cpp:716 +msgid "Move wavetable up in list" +msgstr "" + +#: src/gui/guiConst.cpp:717 +msgid "Move wavetable down in list" +msgstr "" + +#: src/gui/guiConst.cpp:718 +msgid "Delete wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:719 +msgid "Edit wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:720 +msgid "Wavetable cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:721 +msgid "Wavetable cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:722 +msgid "Wavetables: toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:725 +msgid "---Sample list" +msgstr "" + +#: src/gui/guiConst.cpp:726 +msgid "Add sample" +msgstr "" + +#: src/gui/guiConst.cpp:727 +msgid "Duplicate sample" +msgstr "" + +#: src/gui/guiConst.cpp:728 +msgid "Open sample" +msgstr "" + +#: src/gui/guiConst.cpp:729 +msgid "Open sample (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:730 +msgid "Import raw sample data" +msgstr "" + +#: src/gui/guiConst.cpp:731 +msgid "Import raw sample data (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:732 +msgid "Save sample" +msgstr "" + +#: src/gui/guiConst.cpp:733 +msgid "Save sample (raw)" +msgstr "" + +#: src/gui/guiConst.cpp:734 +msgid "Move sample up in list" +msgstr "" + +#: src/gui/guiConst.cpp:735 +msgid "Move sample down in list" +msgstr "" + +#: src/gui/guiConst.cpp:736 +msgid "Delete sample" +msgstr "" + +#: src/gui/guiConst.cpp:737 +msgid "Edit sample" +msgstr "" + +#: src/gui/guiConst.cpp:738 +msgid "Sample cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:739 +msgid "Sample cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:740 +msgid "Sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:741 src/gui/sampleEdit.cpp:1339 +msgid "Stop sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:742 +msgid "Samples: Toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:743 +msgid "Samples: Make me a drum kit" +msgstr "" + +#: src/gui/guiConst.cpp:746 +msgid "---Sample editor" +msgstr "" + +#: src/gui/guiConst.cpp:747 +msgid "Sample editor mode: Select" +msgstr "" + +#: src/gui/guiConst.cpp:748 +msgid "Sample editor mode: Draw" +msgstr "" + +#: src/gui/guiConst.cpp:749 +msgid "Sample editor: Cut" +msgstr "" + +#: src/gui/guiConst.cpp:750 +msgid "Sample editor: Copy" +msgstr "" + +#: src/gui/guiConst.cpp:751 +msgid "Sample editor: Paste" +msgstr "" + +#: src/gui/guiConst.cpp:752 +msgid "Sample editor: Paste replace" +msgstr "" + +#: src/gui/guiConst.cpp:753 +msgid "Sample editor: Paste mix" +msgstr "" + +#: src/gui/guiConst.cpp:754 +msgid "Sample editor: Select all" +msgstr "" + +#: src/gui/guiConst.cpp:755 +msgid "Sample editor: Resize" +msgstr "" + +#: src/gui/guiConst.cpp:756 +msgid "Sample editor: Resample" +msgstr "" + +#: src/gui/guiConst.cpp:757 +msgid "Sample editor: Amplify" +msgstr "" + +#: src/gui/guiConst.cpp:758 +msgid "Sample editor: Normalize" +msgstr "" + +#: src/gui/guiConst.cpp:759 +msgid "Sample editor: Fade in" +msgstr "" + +#: src/gui/guiConst.cpp:760 +msgid "Sample editor: Fade out" +msgstr "" + +#: src/gui/guiConst.cpp:761 +msgid "Sample editor: Apply silence" +msgstr "" + +#: src/gui/guiConst.cpp:762 +msgid "Sample editor: Insert silence" +msgstr "" + +#: src/gui/guiConst.cpp:763 +msgid "Sample editor: Delete" +msgstr "" + +#: src/gui/guiConst.cpp:764 +msgid "Sample editor: Trim" +msgstr "" + +#: src/gui/guiConst.cpp:765 +msgid "Sample editor: Reverse" +msgstr "" + +#: src/gui/guiConst.cpp:766 +msgid "Sample editor: Invert" +msgstr "" + +#: src/gui/guiConst.cpp:767 +msgid "Sample editor: Signed/unsigned exchange" +msgstr "" + +#: src/gui/guiConst.cpp:768 +msgid "Sample editor: Apply filter" +msgstr "" + +#: src/gui/guiConst.cpp:769 +msgid "Sample editor: Crossfade loop points" +msgstr "" + +#: src/gui/guiConst.cpp:770 +msgid "Sample editor: Preview sample" +msgstr "" + +#: src/gui/guiConst.cpp:771 +msgid "Sample editor: Stop sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:772 +msgid "Sample editor: Zoom in" +msgstr "" + +#: src/gui/guiConst.cpp:773 +msgid "Sample editor: Zoom out" +msgstr "" + +#: src/gui/guiConst.cpp:774 +msgid "Sample editor: Toggle auto-zoom" +msgstr "" + +#: src/gui/guiConst.cpp:775 +msgid "Sample editor: Create instrument from sample" +msgstr "" + +#: src/gui/guiConst.cpp:776 +msgid "Sample editor: Set loop to selection" +msgstr "" + +#: src/gui/guiConst.cpp:777 +msgid "Sample editor: Create wavetable from selection" +msgstr "" + +#: src/gui/guiConst.cpp:780 +msgid "---Orders" +msgstr "" + +#: src/gui/guiConst.cpp:781 +msgid "Previous order" +msgstr "" + +#: src/gui/guiConst.cpp:782 +msgid "Next order" +msgstr "" + +#: src/gui/guiConst.cpp:783 +msgid "Order cursor left" +msgstr "" + +#: src/gui/guiConst.cpp:784 +msgid "Order cursor right" +msgstr "" + +#: src/gui/guiConst.cpp:785 +msgid "Increase order value" +msgstr "" + +#: src/gui/guiConst.cpp:786 +msgid "Decrease order value" +msgstr "" + +#: src/gui/guiConst.cpp:787 +msgid "Switch order edit mode" +msgstr "" + +#: src/gui/guiConst.cpp:788 +msgid "Order: toggle alter entire row" +msgstr "" + +#: src/gui/guiConst.cpp:789 +msgid "Add order" +msgstr "" + +#: src/gui/guiConst.cpp:790 +msgid "Duplicate order" +msgstr "" + +#: src/gui/guiConst.cpp:791 +msgid "Deep clone order" +msgstr "" + +#: src/gui/guiConst.cpp:792 +msgid "Copy current order to end of song" +msgstr "" + +#: src/gui/guiConst.cpp:793 +msgid "Deep clone current order to end of song" +msgstr "" + +#: src/gui/guiConst.cpp:797 +msgid "Replay order" +msgstr "" + +#: src/gui/guiConst.cpp:1392 +msgid "All chips" +msgstr "" + +#: src/gui/guiConst.cpp:1393 src/gui/waveEdit.cpp:668 +msgid "FM" +msgstr "" + +#: src/gui/guiConst.cpp:1394 src/gui/waveEdit.cpp:199 src/gui/insEdit.cpp:183 +#: src/gui/insEdit.cpp:194 src/gui/insEdit.cpp:326 src/gui/insEdit.cpp:656 +msgid "Square" +msgstr "" + +#: src/gui/guiConst.cpp:1395 src/gui/insEdit.cpp:6652 +msgid "Wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:1396 src/gui/insEdit.cpp:6954 src/gui/insEdit.cpp:7204 +#: src/gui/insEdit.cpp:7458 src/gui/insEdit.cpp:7480 +msgid "Special" +msgstr "" + +#: src/gui/piano.cpp:103 +msgid "Options" +msgstr "" + +#: src/gui/piano.cpp:106 +msgid "Key layout:" +msgstr "" + +#: src/gui/piano.cpp:108 +msgid "Automatic" +msgstr "" + +#: src/gui/piano.cpp:111 +msgid "Standard" +msgstr "" + +#: src/gui/piano.cpp:114 +msgid "Continuous" +msgstr "" + +#: src/gui/piano.cpp:118 +msgid "Value input pad:" +msgstr "" + +#: src/gui/piano.cpp:120 +msgid "Disabled" +msgstr "" + +#: src/gui/piano.cpp:123 +msgid "Replace piano" +msgstr "" + +#: src/gui/piano.cpp:126 +msgid "Split (automatic)" +msgstr "" + +#: src/gui/piano.cpp:129 +msgid "Split (always visible)" +msgstr "" + +#: src/gui/piano.cpp:133 +msgid "Share play/edit offset/range" +msgstr "" + +#: src/gui/piano.cpp:134 +msgid "Read-only (can't input notes)" +msgstr "" + +#: src/gui/waveEdit.cpp:30 src/gui/waveEdit.cpp:192 src/gui/insEdit.cpp:177 +#: src/gui/insEdit.cpp:188 src/gui/insEdit.cpp:199 +msgid "Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:31 src/gui/waveEdit.cpp:217 src/gui/insEdit.cpp:200 +#: src/gui/insEdit.cpp:324 src/gui/insEdit.cpp:658 +msgid "Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:32 src/gui/waveEdit.cpp:202 src/gui/insEdit.cpp:325 +#: src/gui/insEdit.cpp:654 +msgid "Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:33 +msgid "Pulse" +msgstr "" + +#: src/gui/waveEdit.cpp:38 +msgid "Linear" +msgstr "" + +#: src/gui/waveEdit.cpp:39 +msgid "Cosine" +msgstr "" + +#: src/gui/waveEdit.cpp:40 +msgid "Cubic" +msgstr "" + +#: src/gui/waveEdit.cpp:193 +msgid "Rect. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:194 +msgid "Abs. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:195 +msgid "Quart. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:196 +msgid "Squish. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:197 +msgid "Abs. Squish. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:200 +msgid "rectSquare" +msgstr "" + +#: src/gui/waveEdit.cpp:203 +msgid "Rect. Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:204 +msgid "Abs. Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:206 +msgid "Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:207 +msgid "Rect. Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:208 +msgid "Abs. Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:210 +msgid "Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:211 +msgid "Rect. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:212 +msgid "Abs. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:213 +msgid "Quart. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:214 +msgid "Squish. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:215 +msgid "Squish. Abs. Cub. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:218 +msgid "Rect. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:219 +msgid "Abs. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:220 +msgid "Quart. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:221 +msgid "Squish. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:222 +msgid "Abs. Squish. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:224 +msgid "Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:225 +msgid "Rect. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:226 +msgid "Abs. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:227 +msgid "Quart. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:228 +msgid "Squish. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:229 +msgid "Squish. Abs. Cub. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:412 src/gui/waveEdit.cpp:413 +msgid "no wavetable selected" +msgstr "" + +#: src/gui/waveEdit.cpp:424 src/gui/sampleEdit.cpp:111 src/gui/insEdit.cpp:5223 +msgid "select one..." +msgstr "" + +#: src/gui/waveEdit.cpp:432 src/gui/waveEdit.cpp:439 src/gui/sampleEdit.cpp:119 +#: src/gui/sampleEdit.cpp:126 src/gui/insEdit.cpp:5236 src/gui/insEdit.cpp:5243 +msgid "or" +msgstr "" + +#: src/gui/waveEdit.cpp:441 src/gui/sampleEdit.cpp:128 src/gui/insEdit.cpp:5245 +msgid "Create New" +msgstr "" + +#: src/gui/waveEdit.cpp:487 +msgid "Steps" +msgstr "" + +#: src/gui/waveEdit.cpp:491 +msgid "Lines" +msgstr "" + +#: src/gui/waveEdit.cpp:496 src/gui/insEdit.cpp:2687 +msgid "Width" +msgstr "" + +#: src/gui/waveEdit.cpp:498 +msgid "" +"use a width of:\n" +"- any on Amiga/N163\n" +"- 32 on Game Boy, PC Engine, SCC, Konami Bubble System, Namco WSG, Virtual " +"Boy and WonderSwan\n" +"- 64 on FDS\n" +"- 128 on X1-010\n" +"any other widths will be scaled during playback." +msgstr "" + +#: src/gui/waveEdit.cpp:510 +msgid "Height" +msgstr "" + +#: src/gui/waveEdit.cpp:512 +msgid "" +"use a height of:\n" +"- 16 for Game Boy, WonderSwan, Namco WSG, Konami Bubble System, X1-010 " +"Envelope shape and N163\n" +"- 32 for PC Engine\n" +"- 64 for FDS and Virtual Boy\n" +"- 256 for X1-010 and SCC\n" +"any other heights will be scaled during playback." +msgstr "" + +#: src/gui/waveEdit.cpp:578 +msgid "Shapes" +msgstr "" + +#: src/gui/waveEdit.cpp:597 src/gui/insEdit.cpp:5879 src/gui/insEdit.cpp:6922 +#: src/gui/insEdit.cpp:6948 src/gui/insEdit.cpp:7008 src/gui/insEdit.cpp:7048 +#: src/gui/insEdit.cpp:7150 src/gui/insEdit.cpp:7436 src/gui/insEdit.cpp:7472 +msgid "Duty" +msgstr "" + +#: src/gui/waveEdit.cpp:607 +msgid "Exponent" +msgstr "" + +#: src/gui/waveEdit.cpp:617 +msgid "XOR Point" +msgstr "" + +#: src/gui/waveEdit.cpp:627 +msgid "Amplitude/Phase" +msgstr "" + +#: src/gui/waveEdit.cpp:679 src/gui/waveEdit.cpp:723 src/gui/waveEdit.cpp:728 +msgid "Op" +msgstr "" + +#: src/gui/waveEdit.cpp:683 +msgid "Mult" +msgstr "" + +#: src/gui/waveEdit.cpp:685 +msgid "FB" +msgstr "" + +#: src/gui/waveEdit.cpp:730 src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:4148 +#: src/gui/insEdit.cpp:5812 src/gui/insEdit.cpp:6940 src/gui/insEdit.cpp:6949 +#: src/gui/insEdit.cpp:6963 src/gui/insEdit.cpp:6980 src/gui/insEdit.cpp:6991 +#: src/gui/insEdit.cpp:7004 src/gui/insEdit.cpp:7018 src/gui/insEdit.cpp:7025 +#: src/gui/insEdit.cpp:7035 src/gui/insEdit.cpp:7041 src/gui/insEdit.cpp:7050 +#: src/gui/insEdit.cpp:7074 src/gui/insEdit.cpp:7084 src/gui/insEdit.cpp:7094 +#: src/gui/insEdit.cpp:7101 src/gui/insEdit.cpp:7116 src/gui/insEdit.cpp:7131 +#: src/gui/insEdit.cpp:7151 src/gui/insEdit.cpp:7158 src/gui/insEdit.cpp:7200 +#: src/gui/insEdit.cpp:7211 src/gui/insEdit.cpp:7224 src/gui/insEdit.cpp:7349 +#: src/gui/insEdit.cpp:7425 src/gui/insEdit.cpp:7445 src/gui/insEdit.cpp:7453 +#: src/gui/insEdit.cpp:7473 +msgid "Waveform" +msgstr "" + +#: src/gui/waveEdit.cpp:749 src/gui/waveEdit.cpp:750 +msgid "Connection Diagram" +msgstr "" + +#: src/gui/waveEdit.cpp:765 +msgid "Out" +msgstr "" + +#: src/gui/waveEdit.cpp:872 +msgid "WaveTools" +msgstr "" + +#: src/gui/waveEdit.cpp:890 +msgid "Scale X" +msgstr "" + +#: src/gui/waveEdit.cpp:896 +msgid "wavetable longer than 256 samples!" +msgstr "" + +#: src/gui/waveEdit.cpp:960 +msgid "Scale Y" +msgstr "" + +#: src/gui/waveEdit.cpp:978 +msgid "Offset X" +msgstr "" + +#: src/gui/waveEdit.cpp:1000 +msgid "Offset Y" +msgstr "" + +#: src/gui/waveEdit.cpp:1017 +msgid "Smooth" +msgstr "" + +#: src/gui/waveEdit.cpp:1045 src/gui/sampleEdit.cpp:996 +msgid "Amplify" +msgstr "" + +#: src/gui/waveEdit.cpp:1063 src/gui/sampleEdit.cpp:1046 +msgid "Normalize" +msgstr "" + +#: src/gui/waveEdit.cpp:1105 src/gui/sampleEdit.cpp:1121 +msgid "Reverse" +msgstr "" + +#: src/gui/waveEdit.cpp:1117 +msgid "Half" +msgstr "" + +#: src/gui/waveEdit.cpp:1127 +msgid "Double" +msgstr "" + +#: src/gui/waveEdit.cpp:1137 +msgid "Convert Signed/Unsigned" +msgstr "" + +#: src/gui/waveEdit.cpp:1149 src/gui/gui.cpp:3040 +msgid "Randomize" +msgstr "" + +#: src/gui/waveEdit.cpp:1167 +msgid "Dec" +msgstr "" + +#: src/gui/waveEdit.cpp:1171 src/gui/csPlayer.cpp:247 +msgid "Hex" +msgstr "" + +#: src/gui/waveEdit.cpp:1179 +msgid "Signed/Unsigned" +msgstr "" + +#: src/gui/sampleEdit.cpp:65 +#, c-format +msgid "%s: maximum sample rate is %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:72 +#, c-format +msgid "%s: minimum sample rate is %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:79 +#, c-format +msgid "%s: sample rate must be %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:99 src/gui/sampleEdit.cpp:100 +msgid "no sample selected" +msgstr "" + +#: src/gui/sampleEdit.cpp:229 +#, c-format +msgid "SNES: loop start must be a multiple of 16 (try with %d)" +msgstr "" + +#: src/gui/sampleEdit.cpp:235 +#, c-format +msgid "SNES: loop end must be a multiple of 16 (try with %d)" +msgstr "" + +#: src/gui/sampleEdit.cpp:240 +msgid "SNES: sample length will be padded to multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:249 +msgid "QSound: loop cannot be longer than 32767 samples" +msgstr "" + +#: src/gui/sampleEdit.cpp:259 +msgid "NES: loop point ignored on DPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:263 +msgid "NES: maximum DPCM sample length is 32648" +msgstr "" + +#: src/gui/sampleEdit.cpp:268 +msgid "X1-010: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:271 +msgid "X1-010: maximum sample length is 131072" +msgstr "" + +#: src/gui/sampleEdit.cpp:276 +msgid "GA20: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:287 +msgid "YM2608: loop point ignored on ADPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:290 +msgid "YM2608: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:300 +msgid "YM2610: ADPCM-A samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:302 +msgid "YM2610: loop point ignored on ADPCM-B (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:305 +msgid "YM2610: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:309 +msgid "YM2610: maximum ADPCM-A sample length is 2097152" +msgstr "" + +#: src/gui/sampleEdit.cpp:318 +msgid "Y8950: loop point ignored on ADPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:321 +msgid "Y8950: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:328 +msgid "Amiga: loop start must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:331 +msgid "Amiga: loop end must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:335 +msgid "Amiga: maximum sample length is 131070" +msgstr "" + +#: src/gui/sampleEdit.cpp:344 +msgid "SegaPCM: maximum sample length is 65280" +msgstr "" + +#: src/gui/sampleEdit.cpp:353 +msgid "K053260: loop point ignored (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:357 +msgid "K053260: maximum sample length is 65535" +msgstr "" + +#: src/gui/sampleEdit.cpp:362 +msgid "C140: maximum sample length is 65535" +msgstr "" + +#: src/gui/sampleEdit.cpp:371 +msgid "C219: loop start must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:374 +msgid "C219: loop end must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:378 +msgid "C219: maximum sample length is 131072" +msgstr "" + +#: src/gui/sampleEdit.cpp:386 +msgid "MSM6295: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:389 +msgid "MSM6295: maximum bankswitched sample length is 129024" +msgstr "" + +#: src/gui/sampleEdit.cpp:395 +msgid "GBA DMA: loop start must be a multiple of 4" +msgstr "" + +#: src/gui/sampleEdit.cpp:398 +msgid "GBA DMA: loop length must be a multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:402 +msgid "GBA DMA: sample length will be padded to multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:411 +msgid "ES5506: backward loop mode isn't supported" +msgstr "" + +#: src/gui/sampleEdit.cpp:414 +msgid "" +"backward/ping-pong only supported in Generic PCM DAC\n" +"ping-pong also on ES5506" +msgstr "" + +#: src/gui/sampleEdit.cpp:444 +msgid "Info" +msgstr "" + +#: src/gui/sampleEdit.cpp:447 src/gui/sampleEdit.cpp:933 +msgid "Rate" +msgstr "" + +#: src/gui/sampleEdit.cpp:453 +msgid "Compat Rate" +msgstr "" + +#: src/gui/sampleEdit.cpp:457 +msgid "" +"used in DefleMask-compatible sample mode (17xx), in where samples are mapped " +"to an octave." +msgstr "" + +#: src/gui/sampleEdit.cpp:463 +#, c-format +msgid "Loop (length: %d)##Loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:463 src/gui/insEdit.cpp:544 src/gui/insEdit.cpp:554 +#: src/gui/insEdit.cpp:605 src/gui/insEdit.cpp:6017 +msgid "Loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:487 src/gui/sampleEdit.cpp:716 +#: src/gui/sampleEdit.cpp:752 +msgid "changing the loop in a BRR sample may result in glitches!" +msgstr "" + +#: src/gui/sampleEdit.cpp:501 src/gui/insEdit.cpp:5321 +msgid "Type" +msgstr "" + +#: src/gui/sampleEdit.cpp:529 +msgid "BRR emphasis" +msgstr "" + +#: src/gui/sampleEdit.cpp:538 +msgid "" +"this is a BRR sample.\n" +"enabling this option will muffle it (only affects non-SNES chips)." +msgstr "" + +#: src/gui/sampleEdit.cpp:540 +msgid "" +"enable this option to slightly boost high frequencies\n" +"to compensate for the SNES' Gaussian filter's muffle." +msgstr "" + +#: src/gui/sampleEdit.cpp:546 +msgid "8-bit dither" +msgstr "" + +#: src/gui/sampleEdit.cpp:554 +msgid "dither the sample when used on a chip that only supports 8-bit samples." +msgstr "" + +#: src/gui/sampleEdit.cpp:695 src/gui/gui.cpp:2969 +msgid "Start" +msgstr "" + +#: src/gui/sampleEdit.cpp:731 src/gui/gui.cpp:2977 +msgid "End" +msgstr "" + +#: src/gui/sampleEdit.cpp:841 +#, c-format +msgid "" +"%s\n" +"%d bytes free" +msgstr "" + +#: src/gui/sampleEdit.cpp:843 +#, c-format +msgid "" +"%s (%s)\n" +"%d bytes free" +msgstr "" + +#: src/gui/sampleEdit.cpp:847 +msgid "" +"\n" +"\n" +"not enough memory for this sample!" +msgstr "" + +#: src/gui/sampleEdit.cpp:871 +msgid "Edit mode: Select" +msgstr "" + +#: src/gui/sampleEdit.cpp:880 +msgid "Edit mode: Draw" +msgstr "" + +#: src/gui/sampleEdit.cpp:891 src/gui/sampleEdit.cpp:902 +msgid "Resize" +msgstr "" + +#: src/gui/sampleEdit.cpp:906 +msgid "couldn't resize! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:926 src/gui/sampleEdit.cpp:957 +msgid "Resample" +msgstr "" + +#: src/gui/sampleEdit.cpp:951 +msgid "Factor" +msgstr "" + +#: src/gui/sampleEdit.cpp:956 +msgid "Filter" +msgstr "" + +#: src/gui/sampleEdit.cpp:961 +msgid "couldn't resample! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:1010 src/gui/sampleEdit.cpp:1197 +#: src/gui/sampleEdit.cpp:1281 +msgid "Apply" +msgstr "" + +#: src/gui/sampleEdit.cpp:1053 +msgid "Fade in" +msgstr "" + +#: src/gui/sampleEdit.cpp:1060 +msgid "Fade out" +msgstr "" + +#: src/gui/sampleEdit.cpp:1065 +msgid "Insert silence" +msgstr "" + +#: src/gui/sampleEdit.cpp:1076 +msgid "Go" +msgstr "" + +#: src/gui/sampleEdit.cpp:1081 +msgid "couldn't insert! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:1098 +msgid "Apply silence" +msgstr "" + +#: src/gui/sampleEdit.cpp:1112 +msgid "Trim" +msgstr "" + +#: src/gui/sampleEdit.cpp:1135 +msgid "Signed/unsigned exchange" +msgstr "" + +#: src/gui/sampleEdit.cpp:1140 +msgid "Apply filter" +msgstr "" + +#: src/gui/sampleEdit.cpp:1151 +msgid "Cutoff:" +msgstr "" + +#: src/gui/sampleEdit.cpp:1161 src/gui/insEdit.cpp:5895 +#: src/gui/insEdit.cpp:5898 src/gui/insEdit.cpp:6953 src/gui/insEdit.cpp:7216 +#: src/gui/insEdit.cpp:7478 +msgid "Resonance" +msgstr "" + +#: src/gui/sampleEdit.cpp:1167 src/gui/insEdit.cpp:6897 +msgid "Power" +msgstr "" + +#: src/gui/sampleEdit.cpp:1181 +msgid "Low-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1186 +msgid "Band-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1191 +msgid "High-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1262 +msgid "Crossfade loop points" +msgstr "" + +#: src/gui/sampleEdit.cpp:1271 +msgid "Number of samples" +msgstr "" + +#: src/gui/sampleEdit.cpp:1277 +msgid "Linear <-> Equal power" +msgstr "" + +#: src/gui/sampleEdit.cpp:1283 +msgid "Crossfade: length would go out of bounds. Aborted..." +msgstr "" + +#: src/gui/sampleEdit.cpp:1286 +msgid "Crossfade: length would overflow loopStart. Try a smaller random value." +msgstr "" + +#: src/gui/sampleEdit.cpp:1332 +msgid "Preview sample" +msgstr "" + +#: src/gui/sampleEdit.cpp:1346 +msgid "Create instrument from sample" +msgstr "" + +#: src/gui/sampleEdit.cpp:1747 +msgid "paste (replace)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1750 +msgid "paste (mix)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1754 src/gui/gui.cpp:2763 +msgid "select all" +msgstr "" + +#: src/gui/sampleEdit.cpp:1758 +msgid "set loop to selection" +msgstr "" + +#: src/gui/sampleEdit.cpp:1761 +msgid "create wavetable from selection" +msgstr "" + +#: src/gui/sampleEdit.cpp:1767 +msgid "Draw" +msgstr "" + +#: src/gui/sampleEdit.cpp:1767 +msgid "Select" +msgstr "" + +#: src/gui/sampleEdit.cpp:1769 +#, c-format +msgid "%d samples, %d bytes" +msgstr "" + +#: src/gui/sampleEdit.cpp:1784 +#, c-format +msgid " (%d-%d: %d samples)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1976 +msgid "Non-8/16-bit samples cannot be edited without prior conversion." +msgstr "" + +#: src/gui/newSong.cpp:122 src/gui/newSong.cpp:123 +msgid "Choose a System!" +msgstr "" + +#: src/gui/newSong.cpp:179 +msgid "Categories" +msgstr "" + +#: src/gui/newSong.cpp:210 +msgid "no systems here yet!" +msgstr "" + +#: src/gui/newSong.cpp:212 +msgid "no results" +msgstr "" + +#: src/gui/newSong.cpp:228 +msgid "I'm feeling lucky" +msgstr "" + +#: src/gui/newSong.cpp:230 +msgid "no categories available! what in the world." +msgstr "" + +#: src/gui/newSong.cpp:265 +msgid "it appears you're extremely lucky today!" +msgstr "" + +#: src/gui/cursor.cpp:205 +#, c-format +msgid "finish selection: %d.%d,%d - %d.%d,%d" +msgstr "" + +#: src/gui/tutorial.cpp:485 +msgid "" +"Play demo songs?\n" +"- Down: Play current song\n" +"- Up: Play demo songs" +msgstr "" + +#: src/gui/tutorial.cpp:489 +msgid "" +"Welcome to Combat Vehicle!\n" +"\n" +"Controls:\n" +"X - Shoot Arrow Key - Move\n" +"Z - Special Esc - Quit" +msgstr "" + +#: src/gui/tutorial.cpp:494 +msgid "GAME OVER" +msgstr "" + +#: src/gui/tutorial.cpp:496 +msgid "High Score!" +msgstr "" + +#: src/gui/tutorial.cpp:656 +msgid "Welcome!" +msgstr "" + +#: src/gui/tutorial.cpp:659 +msgid "welcome to Furnace, the biggest open-source chiptune tracker!" +msgstr "" + +#: src/gui/tutorial.cpp:663 +msgid "here are some tips to get you started:" +msgstr "" + +#: src/gui/tutorial.cpp:666 +msgid "" +"- add an instrument by clicking on + in Instruments\n" +"- click on the pattern view to focus it\n" +"- channel columns have the following, in this order: note, instrument, " +"volume and effects\n" +"- hit space bar while on the pattern to toggle Edit Mode\n" +"- click on the pattern or use arrow keys to move the cursor\n" +"- values (instrument, volume, effects and effect values) are in hexadecimal\n" +"- hit enter to play/stop the song\n" +"- extend the song by adding more orders in the Orders window\n" +"- click on the Orders matrix to change the patterns of a channel (left click " +"increases; right click decreases)" +msgstr "" + +#: src/gui/tutorial.cpp:678 +msgid "" +"if you need help, you may:\n" +"- read the manual (a file called manual.pdf)\n" +"- ask for help in Discussions (https://github.com/tildearrow/furnace/" +"discussions), the Furnace Discord (https://discord.gg/EfrwT2wq7z) or Furnace " +"in Revolt (official: https://rvlt.gg/GRPS6tmc)" +msgstr "" + +#: src/gui/tutorial.cpp:685 +msgid "" +"if you find any issues, be sure to report them! the issue tracker is here: " +"https://github.com/tildearrow/furnace/issues" +msgstr "" + +#: src/gui/tutorial.cpp:1426 +#, c-format +msgid "STAGE %d" +msgstr "" + +#: src/gui/songInfo.cpp:50 +msgid "Author" +msgstr "" + +#: src/gui/songInfo.cpp:60 +msgid "Album" +msgstr "" + +#: src/gui/songInfo.cpp:79 +msgid "Auto" +msgstr "" + +#: src/gui/songInfo.cpp:100 +msgid "Tuning (A-4)" +msgstr "" + +#: src/gui/grooves.cpp:38 +msgid "use effect 09xx to select a groove pattern." +msgstr "" + +#: src/gui/grooves.cpp:48 src/gui/gui.cpp:4474 +msgid "pattern" +msgstr "" + +#: src/gui/grooves.cpp:132 +msgid "remove" +msgstr "" + +#: src/gui/doAction.cpp:45 src/gui/gui.cpp:4195 +msgid "Unsaved changes! Save changes before opening another file?" +msgstr "" + +#: src/gui/doAction.cpp:52 +msgid "Unsaved changes! Save changes before opening backup?" +msgstr "" + +#: src/gui/doAction.cpp:62 src/gui/gui.cpp:4231 src/gui/gui.cpp:5013 +#: src/gui/gui.cpp:5051 src/gui/gui.cpp:5057 src/gui/gui.cpp:5645 +#: src/gui/gui.cpp:5669 src/gui/gui.cpp:5693 src/gui/gui.cpp:5717 +#: src/gui/gui.cpp:5741 src/gui/gui.cpp:5765 +#, c-format +msgid "Error while saving file! (%s)" +msgstr "" + +#: src/gui/doAction.cpp:189 +msgid "Error while sending request (MIDI output not configured?)" +msgstr "" + +#: src/gui/doAction.cpp:197 +msgid "Select an option: (cannot be undone!)" +msgstr "" + +#: src/gui/doAction.cpp:691 src/gui/doAction.cpp:720 src/gui/doAction.cpp:1593 +#: src/gui/gui.cpp:6079 +msgid "too many instruments!" +msgstr "" + +#: src/gui/doAction.cpp:825 src/gui/doAction.cpp:843 src/gui/doAction.cpp:1634 +#: src/gui/gui.cpp:6147 src/gui/insEdit.cpp:6860 +msgid "too many wavetables!" +msgstr "" + +#: src/gui/doAction.cpp:909 src/gui/doAction.cpp:921 +msgid "too many samples!" +msgstr "" + +#: src/gui/doAction.cpp:1124 +msgid "couldn't paste! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/doAction.cpp:1628 +msgid "select at least one sample!" +msgstr "" + +#: src/gui/doAction.cpp:1630 +msgid "maximum size is 256 samples!" +msgstr "" + +#: src/gui/csPlayer.cpp:113 +msgid "Load" +msgstr "" + +#: src/gui/csPlayer.cpp:117 +msgid "Kill" +msgstr "" + +#: src/gui/csPlayer.cpp:119 +msgid "Kikai wa mou shindeiru!" +msgstr "" + +#: src/gui/csPlayer.cpp:123 +msgid "Burn Current Song" +msgstr "" + +#: src/gui/csPlayer.cpp:141 +msgid "Status" +msgstr "" + +#: src/gui/csPlayer.cpp:148 +msgid "start" +msgstr "" + +#: src/gui/csPlayer.cpp:150 +msgid "PC" +msgstr "" + +#: src/gui/csPlayer.cpp:152 +msgid "wait" +msgstr "" + +#: src/gui/csPlayer.cpp:154 +msgid "SP" +msgstr "" + +#: src/gui/csPlayer.cpp:156 src/gui/insEdit.cpp:2733 +msgid "note" +msgstr "" + +#: src/gui/csPlayer.cpp:158 src/gui/insEdit.cpp:2728 +msgid "pitch" +msgstr "" + +#: src/gui/csPlayer.cpp:160 +msgid "vol" +msgstr "" + +#: src/gui/csPlayer.cpp:162 +msgid "vols" +msgstr "" + +#: src/gui/csPlayer.cpp:164 +msgid "vib" +msgstr "" + +#: src/gui/csPlayer.cpp:166 +msgid "porta" +msgstr "" + +#: src/gui/csPlayer.cpp:168 +msgid "arp" +msgstr "" + +#: src/gui/csPlayer.cpp:203 +msgid "Trace" +msgstr "" + +#: src/gui/csPlayer.cpp:244 +msgid "Disassemble" +msgstr "" + +#: src/gui/gui.cpp:1130 src/gui/gui.cpp:1134 +msgid "the song is over!" +msgstr "" + +#: src/gui/gui.cpp:1661 +msgid "Open File" +msgstr "" + +#: src/gui/gui.cpp:1662 src/gui/gui.cpp:1792 src/gui/gui.cpp:1832 +#: src/gui/gui.cpp:1947 src/gui/gui.cpp:1956 src/gui/gui.cpp:1965 +#: src/gui/gui.cpp:2067 src/gui/gui.cpp:2087 src/gui/gui.cpp:2105 +msgid "compatible files" +msgstr "" + +#: src/gui/gui.cpp:1663 src/gui/gui.cpp:1737 src/gui/gui.cpp:1793 +#: src/gui/gui.cpp:1833 src/gui/gui.cpp:1845 src/gui/gui.cpp:1864 +#: src/gui/gui.cpp:2068 src/gui/gui.cpp:2078 src/gui/gui.cpp:2089 +#: src/gui/gui.cpp:2107 +msgid "all files" +msgstr "" + +#: src/gui/gui.cpp:1670 +msgid "no backups made yet!" +msgstr "" + +#: src/gui/gui.cpp:1675 src/gui/gui.cpp:1684 src/gui/gui.cpp:2124 +msgid "Furnace song" +msgstr "" + +#: src/gui/gui.cpp:1683 +msgid "Save File" +msgstr "" + +#: src/gui/gui.cpp:1692 src/gui/gui.cpp:1702 +msgid "Export DMF" +msgstr "" + +#: src/gui/gui.cpp:1693 +msgid "DefleMask 1.1.3 module" +msgstr "" + +#: src/gui/gui.cpp:1703 +msgid "DefleMask 1.0/legacy module" +msgstr "" + +#: src/gui/gui.cpp:1720 +msgid "Load Instrument" +msgstr "" + +#: src/gui/gui.cpp:1721 +msgid "all compatible files" +msgstr "" + +#: src/gui/gui.cpp:1722 src/gui/gui.cpp:1771 +msgid "Furnace instrument" +msgstr "" + +#: src/gui/gui.cpp:1723 src/gui/gui.cpp:1781 +msgid "DefleMask preset" +msgstr "" + +#: src/gui/gui.cpp:1724 +msgid "TFM Music Maker instrument" +msgstr "" + +#: src/gui/gui.cpp:1725 +msgid "VGM Music Maker instrument" +msgstr "" + +#: src/gui/gui.cpp:1726 +msgid "Scream Tracker 3 instrument" +msgstr "" + +#: src/gui/gui.cpp:1727 +msgid "SoundBlaster instrument" +msgstr "" + +#: src/gui/gui.cpp:1728 +msgid "Wohlstand OPL instrument" +msgstr "" + +#: src/gui/gui.cpp:1729 +msgid "Wohlstand OPN instrument" +msgstr "" + +#: src/gui/gui.cpp:1730 +msgid "Gens KMod patch dump" +msgstr "" + +#: src/gui/gui.cpp:1731 +msgid "BNK file (AdLib)" +msgstr "" + +#: src/gui/gui.cpp:1732 +msgid "FF preset bank" +msgstr "" + +#: src/gui/gui.cpp:1733 +msgid "2612edit GYB preset bank" +msgstr "" + +#: src/gui/gui.cpp:1734 +msgid "VOPM preset bank" +msgstr "" + +#: src/gui/gui.cpp:1735 +msgid "Wohlstand WOPL bank" +msgstr "" + +#: src/gui/gui.cpp:1736 +msgid "Wohlstand WOPN bank" +msgstr "" + +#: src/gui/gui.cpp:1770 src/gui/gui.cpp:1780 +msgid "Save Instrument" +msgstr "" + +#: src/gui/gui.cpp:1791 +msgid "Load Wavetable" +msgstr "" + +#: src/gui/gui.cpp:1803 src/gui/gui.cpp:1812 src/gui/gui.cpp:1821 +msgid "Save Wavetable" +msgstr "" + +#: src/gui/gui.cpp:1804 +msgid "Furnace wavetable" +msgstr "" + +#: src/gui/gui.cpp:1813 +msgid "DefleMask wavetable" +msgstr "" + +#: src/gui/gui.cpp:1822 +msgid "raw data" +msgstr "" + +#: src/gui/gui.cpp:1831 +msgid "Load Sample" +msgstr "" + +#: src/gui/gui.cpp:1844 +msgid "Load Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:1853 +msgid "Save Sample" +msgstr "" + +#: src/gui/gui.cpp:1854 src/gui/gui.cpp:1874 src/gui/gui.cpp:1884 +#: src/gui/gui.cpp:1894 +msgid "Wave file" +msgstr "" + +#: src/gui/gui.cpp:1863 +msgid "Save Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:1873 src/gui/gui.cpp:1883 src/gui/gui.cpp:1893 +msgid "Export Audio" +msgstr "" + +#: src/gui/gui.cpp:1903 +msgid "Export VGM" +msgstr "" + +#: src/gui/gui.cpp:1904 +msgid "VGM file" +msgstr "" + +#: src/gui/gui.cpp:1913 +msgid "Export ZSM" +msgstr "" + +#: src/gui/gui.cpp:1914 +msgid "ZSM file" +msgstr "" + +#: src/gui/gui.cpp:1923 src/gui/gui.cpp:1933 +msgid "Export Command Stream" +msgstr "" + +#: src/gui/gui.cpp:1924 +msgid "text file" +msgstr "" + +#: src/gui/gui.cpp:1934 +msgid "binary file" +msgstr "" + +#: src/gui/gui.cpp:1941 src/gui/gui.cpp:5364 +msgid "Coming soon!" +msgstr "" + +#: src/gui/gui.cpp:1946 src/gui/gui.cpp:1955 src/gui/gui.cpp:1964 +msgid "Select Font" +msgstr "" + +#: src/gui/gui.cpp:1973 +msgid "Select Color File" +msgstr "" + +#: src/gui/gui.cpp:1974 src/gui/gui.cpp:1983 src/gui/gui.cpp:2002 +#: src/gui/gui.cpp:2011 src/gui/gui.cpp:2020 src/gui/gui.cpp:2029 +#: src/gui/gui.cpp:2047 src/gui/gui.cpp:2056 +msgid "configuration files" +msgstr "" + +#: src/gui/gui.cpp:1982 +msgid "Select Keybind File" +msgstr "" + +#: src/gui/gui.cpp:1991 +msgid "Select Layout File" +msgstr "" + +#: src/gui/gui.cpp:1992 src/gui/gui.cpp:2038 +msgid ".ini files" +msgstr "" + +#: src/gui/gui.cpp:2001 +msgid "Select User Presets File" +msgstr "" + +#: src/gui/gui.cpp:2010 +msgid "Select Settings File" +msgstr "" + +#: src/gui/gui.cpp:2019 +msgid "Export Colors" +msgstr "" + +#: src/gui/gui.cpp:2028 +msgid "Export Keybinds" +msgstr "" + +#: src/gui/gui.cpp:2037 +msgid "Export Layout" +msgstr "" + +#: src/gui/gui.cpp:2046 +msgid "Export User Presets" +msgstr "" + +#: src/gui/gui.cpp:2055 +msgid "Export Settings" +msgstr "" + +#: src/gui/gui.cpp:2066 +msgid "Load ROM" +msgstr "" + +#: src/gui/gui.cpp:2076 +msgid "Play Command Stream" +msgstr "" + +#: src/gui/gui.cpp:2077 +msgid "command stream" +msgstr "" + +#: src/gui/gui.cpp:2086 +msgid "Open Test" +msgstr "" + +#: src/gui/gui.cpp:2088 src/gui/gui.cpp:2106 +msgid "another option" +msgstr "" + +#: src/gui/gui.cpp:2104 +msgid "Open Test (Multi)" +msgstr "" + +#: src/gui/gui.cpp:2123 +msgid "Save Test" +msgstr "" + +#: src/gui/gui.cpp:2125 +msgid "DefleMask module" +msgstr "" + +#: src/gui/gui.cpp:2165 +msgid "compression error" +msgstr "" + +#: src/gui/gui.cpp:2177 +msgid "zlib stream error" +msgstr "" + +#: src/gui/gui.cpp:2199 +msgid "zlib finish stream error" +msgstr "" + +#: src/gui/gui.cpp:2253 src/gui/gui.cpp:2416 +#, c-format +msgid "on seek: %s" +msgstr "" + +#: src/gui/gui.cpp:2260 src/gui/gui.cpp:2423 +#, c-format +msgid "on pre tell: %s" +msgstr "" + +#: src/gui/gui.cpp:2267 src/gui/gui.cpp:2430 +msgid "file is empty" +msgstr "" + +#: src/gui/gui.cpp:2270 src/gui/gui.cpp:2433 +#, c-format +msgid "on tell: %s" +msgstr "" + +#: src/gui/gui.cpp:2277 src/gui/gui.cpp:2440 +#, c-format +msgid "on get size: %s" +msgstr "" + +#: src/gui/gui.cpp:2284 src/gui/gui.cpp:2447 +#, c-format +msgid "on read: %s" +msgstr "" + +#: src/gui/gui.cpp:2310 +msgid "everything OK" +msgstr "" + +#: src/gui/gui.cpp:2328 +msgid "" +"you have loaded a backup!\n" +"if you need to, please save it somewhere.\n" +"\n" +"DO NOT RELY ON THE BACKUP SYSTEM FOR AUTO-SAVE!\n" +"Furnace will not save backups of backups." +msgstr "" + +#: src/gui/gui.cpp:2336 src/gui/gui.cpp:3737 src/gui/gui.cpp:4207 +msgid "Unsaved changes! Save changes before opening file?" +msgstr "" + +#: src/gui/gui.cpp:2730 +msgid "paste special..." +msgstr "" + +#: src/gui/gui.cpp:2731 +msgid "paste mix" +msgstr "" + +#: src/gui/gui.cpp:2732 +msgid "paste mix (background)" +msgstr "" + +#: src/gui/gui.cpp:2733 +msgid "paste with ins (foreground)" +msgstr "" + +#: src/gui/gui.cpp:2735 src/gui/gui.cpp:2747 src/gui/gui.cpp:2957 +msgid "no instruments available" +msgstr "" + +#: src/gui/gui.cpp:2745 +msgid "paste with ins (background)" +msgstr "" + +#: src/gui/gui.cpp:2757 +msgid "paste flood" +msgstr "" + +#: src/gui/gui.cpp:2758 +msgid "paste overflow" +msgstr "" + +#: src/gui/gui.cpp:2767 +msgid "operation mask..." +msgstr "" + +#: src/gui/gui.cpp:2774 +msgid "pull delete" +msgstr "" + +#: src/gui/gui.cpp:2778 +msgid "insert" +msgstr "" + +#: src/gui/gui.cpp:2786 +msgid "transpose (note)" +msgstr "" + +#: src/gui/gui.cpp:2790 +msgid "transpose (value)" +msgstr "" + +#: src/gui/gui.cpp:2802 src/gui/gui.cpp:3046 +msgid "invert values" +msgstr "" + +#: src/gui/gui.cpp:2818 +msgid "collapse/expand" +msgstr "" + +#: src/gui/gui.cpp:2823 +msgid "input latch" +msgstr "" + +#: src/gui/gui.cpp:2850 +msgid "" +"&&: selected instrument\n" +"..: no instrument" +msgstr "" + +#: src/gui/gui.cpp:2904 +msgid "Set" +msgstr "" + +#: src/gui/gui.cpp:2914 +msgid "Reset" +msgstr "" + +#: src/gui/gui.cpp:2924 +msgid "note up" +msgstr "" + +#: src/gui/gui.cpp:2925 +msgid "note down" +msgstr "" + +#: src/gui/gui.cpp:2926 +msgid "octave up" +msgstr "" + +#: src/gui/gui.cpp:2927 +msgid "octave down" +msgstr "" + +#: src/gui/gui.cpp:2929 +msgid "values up" +msgstr "" + +#: src/gui/gui.cpp:2930 +msgid "values down" +msgstr "" + +#: src/gui/gui.cpp:2931 +msgid "values up (+16)" +msgstr "" + +#: src/gui/gui.cpp:2932 +msgid "values down (-16)" +msgstr "" + +#: src/gui/gui.cpp:2935 +msgid "transpose" +msgstr "" + +#: src/gui/gui.cpp:2943 +msgid "Notes" +msgstr "" + +#: src/gui/gui.cpp:2948 +msgid "Values" +msgstr "" + +#: src/gui/gui.cpp:2955 +msgid "change instrument..." +msgstr "" + +#: src/gui/gui.cpp:2968 +msgid "gradient/fade..." +msgstr "" + +#: src/gui/gui.cpp:2985 src/gui/gui.cpp:3030 +msgid "Nibble mode" +msgstr "" + +#: src/gui/gui.cpp:2994 +msgid "Go ahead" +msgstr "" + +#: src/gui/gui.cpp:3000 src/gui/insEdit.cpp:7604 +msgid "scale..." +msgstr "" + +#: src/gui/gui.cpp:3005 +msgid "Scale" +msgstr "" + +#: src/gui/gui.cpp:3011 src/gui/insEdit.cpp:7632 +msgid "randomize..." +msgstr "" + +#: src/gui/gui.cpp:3012 +msgid "Minimum" +msgstr "" + +#: src/gui/gui.cpp:3021 +msgid "Maximum" +msgstr "" + +#: src/gui/gui.cpp:3050 +msgid "flip selection" +msgstr "" + +#: src/gui/gui.cpp:3053 +msgid "collapse/expand amount##CollapseAmount" +msgstr "" + +#: src/gui/gui.cpp:3062 +msgid "collapse pattern" +msgstr "" + +#: src/gui/gui.cpp:3063 +msgid "expand pattern" +msgstr "" + +#: src/gui/gui.cpp:3068 +msgid "collapse song" +msgstr "" + +#: src/gui/gui.cpp:3069 +msgid "expand song" +msgstr "" + +#: src/gui/gui.cpp:3074 +msgid "find/replace" +msgstr "" + +#: src/gui/gui.cpp:3088 src/gui/gui.cpp:5795 src/gui/gui.cpp:7300 +#, c-format +msgid "could NOT save layout! %s" +msgstr "" + +#: src/gui/gui.cpp:3100 +#, c-format +msgid "could NOT load layout! %s" +msgstr "" + +#: src/gui/gui.cpp:3562 +msgid "" +"Furnace has been started in Safe Mode.\n" +"this means that:\n" +"\n" +"- software rendering is being used\n" +"- audio output may not work\n" +"- font loading is disabled\n" +"\n" +"check any settings which may have made Furnace start up in this mode.\n" +"font loading is one of these." +msgstr "" + +#: src/gui/gui.cpp:4047 +msgid "can't keep going without graphics! Furnace will quit now." +msgstr "" + +#: src/gui/gui.cpp:4061 src/gui/gui.cpp:6650 src/gui/gui.cpp:7026 +msgid "error while loading fonts! please check your settings." +msgstr "" + +#: src/gui/gui.cpp:4185 +msgid "File" +msgstr "" + +#: src/gui/gui.cpp:4185 +msgid "file" +msgstr "" + +#: src/gui/gui.cpp:4186 +msgid "new..." +msgstr "" + +#: src/gui/gui.cpp:4193 +msgid "open..." +msgstr "" + +#: src/gui/gui.cpp:4200 +msgid "open recent" +msgstr "" + +#: src/gui/gui.cpp:4216 +msgid "nothing here yet" +msgstr "" + +#: src/gui/gui.cpp:4219 +msgid "clear history" +msgstr "" + +#: src/gui/gui.cpp:4220 +msgid "Are you sure you want to clear the recent file list?" +msgstr "" + +#: src/gui/gui.cpp:4235 +msgid "save as..." +msgstr "" + +#: src/gui/gui.cpp:4240 src/gui/gui.cpp:4281 +msgid "export audio..." +msgstr "" + +#: src/gui/gui.cpp:4244 src/gui/gui.cpp:4285 +msgid "export VGM..." +msgstr "" + +#: src/gui/gui.cpp:4253 src/gui/gui.cpp:4294 +msgid "export ZSM..." +msgstr "" + +#: src/gui/gui.cpp:4263 src/gui/gui.cpp:4304 +msgid "export Amiga validation data..." +msgstr "" + +#: src/gui/gui.cpp:4268 src/gui/gui.cpp:4309 +msgid "export text..." +msgstr "" + +#: src/gui/gui.cpp:4272 src/gui/gui.cpp:4313 +msgid "export command stream..." +msgstr "" + +#: src/gui/gui.cpp:4276 src/gui/gui.cpp:4317 +msgid "export .dmf..." +msgstr "" + +#: src/gui/gui.cpp:4322 +msgid "export..." +msgstr "" + +#: src/gui/gui.cpp:4328 +msgid "manage chips" +msgstr "" + +#: src/gui/gui.cpp:4332 +msgid "add chip..." +msgstr "" + +#: src/gui/gui.cpp:4337 src/gui/sysManager.cpp:138 +#, c-format +msgid "cannot add chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4349 +msgid "configure chip..." +msgstr "" + +#: src/gui/gui.cpp:4359 +msgid "change chip..." +msgstr "" + +#: src/gui/gui.cpp:4361 src/gui/gui.cpp:4384 +msgid "Preserve channel positions" +msgstr "" + +#: src/gui/gui.cpp:4373 src/gui/sysManager.cpp:109 +#, c-format +msgid "cannot change chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4382 +msgid "remove chip..." +msgstr "" + +#: src/gui/gui.cpp:4388 +#, c-format +msgid "cannot remove chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4402 +msgid "open built-in assets directory" +msgstr "" + +#: src/gui/gui.cpp:4408 +msgid "restore backup" +msgstr "" + +#: src/gui/gui.cpp:4412 +msgid "exit..." +msgstr "" + +#: src/gui/gui.cpp:4420 +msgid "edit" +msgstr "" + +#: src/gui/gui.cpp:4428 +msgid "clear..." +msgstr "" + +#: src/gui/gui.cpp:4433 +msgid "settings" +msgstr "" + +#: src/gui/gui.cpp:4435 +msgid "full screen" +msgstr "" + +#: src/gui/gui.cpp:4439 +msgid "lock layout" +msgstr "" + +#: src/gui/gui.cpp:4442 +msgid "pattern visualizer" +msgstr "" + +#: src/gui/gui.cpp:4448 +msgid "reset layout" +msgstr "" + +#: src/gui/gui.cpp:4449 +msgid "Are you sure you want to reset the workspace layout?" +msgstr "" + +#: src/gui/gui.cpp:4452 +msgid "switch to mobile view" +msgstr "" + +#: src/gui/gui.cpp:4456 +msgid "user systems..." +msgstr "" + +#: src/gui/gui.cpp:4459 +msgid "settings..." +msgstr "" + +#: src/gui/gui.cpp:4465 +msgid "Window" +msgstr "" + +#: src/gui/gui.cpp:4465 +msgid "window" +msgstr "" + +#: src/gui/gui.cpp:4466 +msgid "song" +msgstr "" + +#: src/gui/gui.cpp:4467 +msgid "song comments" +msgstr "" + +#: src/gui/gui.cpp:4468 +msgid "song information" +msgstr "" + +#: src/gui/gui.cpp:4469 +msgid "subsongs" +msgstr "" + +#: src/gui/gui.cpp:4471 +msgid "channels" +msgstr "" + +#: src/gui/gui.cpp:4472 +msgid "chip manager" +msgstr "" + +#: src/gui/gui.cpp:4473 +msgid "orders" +msgstr "" + +#: src/gui/gui.cpp:4475 +msgid "pattern manager" +msgstr "" + +#: src/gui/gui.cpp:4476 +msgid "mixer" +msgstr "" + +#: src/gui/gui.cpp:4477 +msgid "compatibility flags" +msgstr "" + +#: src/gui/gui.cpp:4480 src/gui/gui.cpp:4482 +msgid "assets" +msgstr "" + +#: src/gui/gui.cpp:4484 +msgid "instruments" +msgstr "" + +#: src/gui/gui.cpp:4485 +msgid "samples" +msgstr "" + +#: src/gui/gui.cpp:4486 +msgid "wavetables" +msgstr "" + +#: src/gui/gui.cpp:4489 +msgid "instrument editor" +msgstr "" + +#: src/gui/gui.cpp:4490 +msgid "sample editor" +msgstr "" + +#: src/gui/gui.cpp:4491 +msgid "wavetable editor" +msgstr "" + +#: src/gui/gui.cpp:4494 +msgid "visualizers" +msgstr "" + +#: src/gui/gui.cpp:4495 +msgid "oscilloscope (master)" +msgstr "" + +#: src/gui/gui.cpp:4496 +msgid "oscilloscope (per-channel)" +msgstr "" + +#: src/gui/gui.cpp:4497 +msgid "oscilloscope (X-Y)" +msgstr "" + +#: src/gui/gui.cpp:4498 +msgid "volume meter" +msgstr "" + +#: src/gui/gui.cpp:4501 +msgid "tempo" +msgstr "" + +#: src/gui/gui.cpp:4502 +msgid "clock" +msgstr "" + +#: src/gui/gui.cpp:4503 +msgid "grooves" +msgstr "" + +#: src/gui/gui.cpp:4504 +msgid "speed" +msgstr "" + +#: src/gui/gui.cpp:4508 +msgid "log viewer" +msgstr "" + +#: src/gui/gui.cpp:4509 +msgid "register view" +msgstr "" + +#: src/gui/gui.cpp:4510 +msgid "statistics" +msgstr "" + +#: src/gui/gui.cpp:4511 +msgid "memory composition" +msgstr "" + +#: src/gui/gui.cpp:4515 src/gui/gui.cpp:4523 +msgid "effect list" +msgstr "" + +#: src/gui/gui.cpp:4516 +msgid "play/edit controls" +msgstr "" + +#: src/gui/gui.cpp:4517 +msgid "piano/input pad" +msgstr "" + +#: src/gui/gui.cpp:4518 +msgid "spoiler" +msgstr "" + +#: src/gui/gui.cpp:4522 +msgid "Help" +msgstr "" + +#: src/gui/gui.cpp:4522 +msgid "help" +msgstr "" + +#: src/gui/gui.cpp:4524 +msgid "debug menu" +msgstr "" + +#: src/gui/gui.cpp:4525 +msgid "inspector" +msgstr "" + +#: src/gui/gui.cpp:4526 +msgid "panic" +msgstr "" + +#: src/gui/gui.cpp:4527 +msgid "about..." +msgstr "" + +#: src/gui/gui.cpp:4542 +#, c-format +msgid "| Speed %d:%d" +msgstr "" + +#: src/gui/gui.cpp:4544 +#, c-format +msgid "| Speed %d" +msgstr "" + +#: src/gui/gui.cpp:4546 +msgid "| Groove" +msgstr "" + +#: src/gui/gui.cpp:4549 +#, c-format +msgid " @ %gHz (%g BPM) " +msgstr "" + +#: src/gui/gui.cpp:4552 +#, c-format +msgid "| Order %.2X/%.2X " +msgstr "" + +#: src/gui/gui.cpp:4554 +#, c-format +msgid "| Order %d/%d " +msgstr "" + +#: src/gui/gui.cpp:4558 +#, c-format +msgid "| Row %.2X/%.2X " +msgstr "" + +#: src/gui/gui.cpp:4560 +#, c-format +msgid "| Row %d/%d " +msgstr "" + +#: src/gui/gui.cpp:4563 +msgid "| " +msgstr "" + +#: src/gui/gui.cpp:4566 +msgid "Don't you have anything better to do?" +msgstr "" + +#: src/gui/gui.cpp:4575 +#, c-format +msgid "%d year " +msgid_plural "%d years " +msgstr[0] "" +msgstr[1] "" + +#: src/gui/gui.cpp:4576 +#, c-format +msgid "%d month " +msgid_plural "%d months " +msgstr[0] "" +msgstr[1] "" + +#: src/gui/gui.cpp:4577 +#, c-format +msgid "%d day " +msgid_plural "%d days " +msgstr[0] "" +msgstr[1] "" + +#: src/gui/gui.cpp:4597 +msgid "Note off (cut)" +msgstr "" + +#: src/gui/gui.cpp:4599 +msgid "Note off (release)" +msgstr "" + +#: src/gui/gui.cpp:4601 +msgid "Macro release only" +msgstr "" + +#: src/gui/gui.cpp:4603 +#, c-format +msgid "Note on: %s" +msgstr "" + +#: src/gui/gui.cpp:4611 +#, c-format +msgid "Ins %d: " +msgstr "" + +#: src/gui/gui.cpp:4614 +#, c-format +msgid "Ins %d: %s" +msgstr "" + +#: src/gui/gui.cpp:4623 +#, c-format +msgid "Set volume: %d (%.2X, INVALID!)" +msgstr "" + +#: src/gui/gui.cpp:4626 +#, c-format +msgid "Set volume: %d (%.2X, %d%%)" +msgstr "" + +#: src/gui/gui.cpp:4648 +msgid "| modified" +msgstr "" + +#: src/gui/gui.cpp:4813 src/gui/gui.cpp:4816 +msgid "System File Dialog Pending" +msgstr "" + +#: src/gui/gui.cpp:4929 +msgid "" +"there was an error in the file dialog! you may want to report this issue " +"to:\n" +"https://github.com/tildearrow/furnace/issues\n" +"check the Log Viewer (window > log viewer) for more information.\n" +"\n" +"for now please disable the system file picker in Settings > General." +msgstr "" + +#: src/gui/gui.cpp:4932 +msgid "can't do anything without Storage permissions!" +msgstr "" + +#: src/gui/gui.cpp:4934 +msgid "" +"Zenity/KDialog not available!\n" +"please install one of these, or disable the system file picker in Settings > " +"General." +msgstr "" + +#: src/gui/gui.cpp:5070 +msgid "" +"error while saving instrument! only the following instrument types are " +"supported:\n" +"- FM (OPN)\n" +"- SN76489/Sega PSG\n" +"- Game Boy\n" +"- PC Engine\n" +"- NES\n" +"- C64\n" +"- FM (OPLL)\n" +"- FDS" +msgstr "" + +#: src/gui/gui.cpp:5098 +msgid "there were some errors while loading samples:\n" +msgstr "" + +#: src/gui/gui.cpp:5143 src/gui/gui.cpp:6327 +msgid "...but you haven't selected a sample!" +msgstr "" + +#: src/gui/gui.cpp:5158 src/gui/gui.cpp:5167 +msgid "could not save sample! open Log Viewer for more information." +msgstr "" + +#: src/gui/gui.cpp:5186 +msgid "there were some warnings/errors while loading instruments:\n" +msgstr "" + +#: src/gui/gui.cpp:5192 +#, c-format +msgid "> %s: cannot load instrument! (%s)\n" +msgstr "" + +#: src/gui/gui.cpp:5210 src/gui/gui.cpp:5264 +#, c-format +msgid "cannot load instrument! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5216 +msgid "" +"congratulations! you managed to load nothing.\n" +"you are entitled to a bug report." +msgstr "" + +#: src/gui/gui.cpp:5257 src/gui/gui.cpp:6231 +msgid "...but you haven't selected an instrument!" +msgstr "" + +#: src/gui/gui.cpp:5269 +msgid "there were some errors while loading wavetables:\n" +msgstr "" + +#: src/gui/gui.cpp:5278 src/gui/gui.cpp:5288 src/gui/gui.cpp:5307 +#, c-format +msgid "cannot load wavetable! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5315 +msgid "...but you haven't selected a wavetable!" +msgstr "" + +#: src/gui/gui.cpp:5330 src/gui/gui.cpp:5351 src/gui/gui.cpp:5375 +#: src/gui/gui.cpp:5396 +msgid "could not open file!" +msgstr "" + +#: src/gui/gui.cpp:5338 +#, c-format +msgid "could not write VGM! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5359 +#, c-format +msgid "Could not write ZSM! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5383 +#, c-format +msgid "could not write text! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5404 +#, c-format +msgid "could not write command stream! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5428 +msgid "could not import user presets!" +msgstr "" + +#: src/gui/gui.cpp:5433 src/gui/gui.cpp:5450 +#, c-format +msgid "could not import user presets! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5471 +#, c-format +msgid "You opened: %s" +msgstr "" + +#: src/gui/gui.cpp:5474 +msgid "You opened:" +msgstr "" + +#: src/gui/gui.cpp:5482 +#, c-format +msgid "You saved: %s" +msgstr "" + +#: src/gui/gui.cpp:5498 src/gui/gui.cpp:5633 src/gui/gui.cpp:5634 +msgid "Warning" +msgstr "" + +#: src/gui/gui.cpp:5503 src/gui/gui.cpp:5624 src/gui/gui.cpp:5625 +#: src/gui/insEdit.cpp:7520 +msgid "Error" +msgstr "" + +#: src/gui/gui.cpp:5508 src/gui/gui.cpp:6165 src/gui/gui.cpp:6166 +msgid "Select Instrument" +msgstr "" + +#: src/gui/gui.cpp:5513 src/gui/gui.cpp:6244 src/gui/gui.cpp:6245 +msgid "Import Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:5528 src/gui/gui.cpp:5581 src/gui/gui.cpp:5582 +msgid "Rendering..." +msgstr "" + +#: src/gui/gui.cpp:5551 src/gui/gui.cpp:5601 +msgid "New Song" +msgstr "" + +#: src/gui/gui.cpp:5583 +msgid "Please wait..." +msgstr "" + +#: src/gui/gui.cpp:5584 +msgid "Abort" +msgstr "" + +#: src/gui/gui.cpp:5626 +#, c-format +msgid "%s" +msgstr "" + +#: src/gui/gui.cpp:5638 src/gui/gui.cpp:5662 src/gui/gui.cpp:5686 +#: src/gui/gui.cpp:5710 src/gui/gui.cpp:5734 src/gui/gui.cpp:5758 +#: src/gui/gui.cpp:5790 src/gui/gui.cpp:5806 src/gui/gui.cpp:5817 +#: src/gui/gui.cpp:5829 src/gui/gui.cpp:5983 src/gui/gui.cpp:6005 +#: src/gui/gui.cpp:6020 src/gui/gui.cpp:6031 +msgid "Yes" +msgstr "" + +#: src/gui/gui.cpp:5856 +msgid "Erasing" +msgstr "" + +#: src/gui/gui.cpp:5859 +msgid "All subsongs" +msgstr "" + +#: src/gui/gui.cpp:5866 +msgid "Current subsong" +msgstr "" + +#: src/gui/gui.cpp:5933 +msgid "Optimization" +msgstr "" + +#: src/gui/gui.cpp:5936 src/gui/patManager.cpp:36 +msgid "De-duplicate patterns" +msgstr "" + +#: src/gui/gui.cpp:5945 +msgid "Remove unused instruments" +msgstr "" + +#: src/gui/gui.cpp:5958 +msgid "Remove unused samples" +msgstr "" + +#: src/gui/gui.cpp:5975 +msgid "Never mind! Cancel" +msgstr "" + +#: src/gui/gui.cpp:6054 +msgid "Drum kit mode:" +msgstr "" + +#: src/gui/gui.cpp:6058 +msgid "12 samples per octave" +msgstr "" + +#: src/gui/gui.cpp:6063 +msgid "Starting octave" +msgstr "" + +#: src/gui/gui.cpp:6083 +msgid "Drum Kit" +msgstr "" + +#: src/gui/gui.cpp:6169 +msgid "this is an instrument bank! select which one to use:" +msgstr "" + +#: src/gui/gui.cpp:6172 +msgid "this is an instrument bank! select which ones to load:" +msgstr "" + +#: src/gui/gui.cpp:6246 +msgid "Data type:" +msgstr "" + +#: src/gui/gui.cpp:6273 +msgid "(will be mixed down to mono)" +msgstr "" + +#: src/gui/gui.cpp:6274 +msgid "Unsigned" +msgstr "" + +#: src/gui/gui.cpp:6278 +msgid "Big endian" +msgstr "" + +#: src/gui/gui.cpp:6286 +msgid "Swap nibbles" +msgstr "" + +#: src/gui/gui.cpp:6290 +msgid "Swap words" +msgstr "" + +#: src/gui/gui.cpp:6294 +msgid "Encoding:" +msgstr "" + +#: src/gui/gui.cpp:6307 +msgid "Reverse bit order" +msgstr "" + +#: src/gui/gui.cpp:6349 +msgid "Error! No string provided!" +msgstr "" + +#: src/gui/gui.cpp:6671 +msgid "it appears I couldn't load these fonts. any setting you can check?" +msgstr "" + +#: src/gui/gui.cpp:6851 src/gui/gui.cpp:6959 +msgid "" +"could not init renderer!\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:6853 src/gui/gui.cpp:6961 +#, c-format +msgid "" +"could not init renderer! %s\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:6858 src/gui/gui.cpp:6966 +msgid "could not init renderer!" +msgstr "" + +#: src/gui/gui.cpp:6869 +#, c-format +msgid "could not open window! %s" +msgstr "" + +#: src/gui/gui.cpp:6874 +msgid "" +"\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:7502 +msgid "Unsaved changes! Save changes before quitting?" +msgstr "" + +#: src/gui/sysManager.cpp:42 +msgid "Preserve channel order" +msgstr "" + +#: src/gui/sysManager.cpp:44 +msgid "Clone channel data" +msgstr "" + +#: src/gui/sysManager.cpp:46 +msgid "Clone at end" +msgstr "" + +#: src/gui/sysManager.cpp:56 +msgid "Actions" +msgstr "" + +#: src/gui/sysManager.cpp:69 +msgid "(drag to swap chips)" +msgstr "" + +#: src/gui/sysManager.cpp:90 +msgid "Clone##SysDup" +msgstr "" + +#: src/gui/sysManager.cpp:92 +#, c-format +msgid "cannot clone chip! (%s)" +msgstr "" + +#: src/gui/sysManager.cpp:98 +msgid "Change##SysChange" +msgstr "" + +#: src/gui/sysManager.cpp:120 +msgid "Are you sure you want to remove this chip?" +msgstr "" + +#: src/gui/patManager.cpp:43 +msgid "Re-arrange patterns" +msgstr "" + +#: src/gui/patManager.cpp:50 +msgid "Sort orders" +msgstr "" + +#: src/gui/patManager.cpp:57 +msgid "Make patterns unique" +msgstr "" + +#: src/gui/patManager.cpp:103 +#, c-format +msgid "" +"Pattern %.2X\n" +"- not allocated" +msgstr "" + +#: src/gui/patManager.cpp:105 +#, c-format +msgid "" +"Pattern %.2X\n" +"- use count: %d (%.0f%%)\n" +"\n" +"right-click to erase" +msgstr "" + +#: src/gui/insEdit.cpp:39 +msgid "Down Down Down" +msgstr "" + +#: src/gui/insEdit.cpp:40 +msgid "Down." +msgstr "" + +#: src/gui/insEdit.cpp:41 +msgid "Down Up Down Up" +msgstr "" + +#: src/gui/insEdit.cpp:42 +msgid "Down UP" +msgstr "" + +#: src/gui/insEdit.cpp:43 +msgid "Up Up Up" +msgstr "" + +#: src/gui/insEdit.cpp:44 +msgid "Up." +msgstr "" + +#: src/gui/insEdit.cpp:45 +msgid "Up Down Up Down" +msgstr "" + +#: src/gui/insEdit.cpp:46 +msgid "Up DOWN" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Algorithm" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Feedback" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO > Freq" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO > Amp" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1920 src/gui/insEdit.cpp:6955 +#: src/gui/insEdit.cpp:7481 +msgid "Attack" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1960 src/gui/insEdit.cpp:6956 +#: src/gui/insEdit.cpp:7482 +msgid "Decay" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Decay 2" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:604 src/gui/insEdit.cpp:1983 +#: src/gui/insEdit.cpp:6958 src/gui/insEdit.cpp:7484 +msgid "Release" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1929 src/gui/insEdit.cpp:6957 +#: src/gui/insEdit.cpp:7483 +msgid "Sustain" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "EnvScale" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Multiplier" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:63 src/gui/insEdit.cpp:75 +msgid "Detune" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Detune 2" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:4146 +msgid "SSG-EG" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "AM" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:5438 src/gui/insEdit.cpp:6516 +msgid "AM Depth" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Vibrato Depth" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Sustained" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Level Scaling" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Vibrato" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Scale Rate" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "OP2 Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "OP1 Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "EnvShift" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Reverb" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Fine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO2 > Freq" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO2 > Amp" +msgstr "" + +#: src/gui/insEdit.cpp:56 src/gui/insEdit.cpp:68 src/gui/insEdit.cpp:7391 +msgid "OP4 Noise Mode" +msgstr "" + +#: src/gui/insEdit.cpp:57 +msgid "Envelope Delay" +msgstr "" + +#: src/gui/insEdit.cpp:58 src/gui/insEdit.cpp:70 +msgid "Output Level" +msgstr "" + +#: src/gui/insEdit.cpp:59 +msgid "Modulation Input Level" +msgstr "" + +#: src/gui/insEdit.cpp:60 +msgid "Left Output" +msgstr "" + +#: src/gui/insEdit.cpp:61 +msgid "Right Output" +msgstr "" + +#: src/gui/insEdit.cpp:62 +msgid "Coarse Tune (semitones)" +msgstr "" + +#: src/gui/insEdit.cpp:64 +msgid "Fixed Frequency Mode" +msgstr "" + +#: src/gui/insEdit.cpp:69 +msgid "Env. Delay" +msgstr "" + +#: src/gui/insEdit.cpp:71 +msgid "ModInput" +msgstr "" + +#: src/gui/insEdit.cpp:72 +msgid "Left" +msgstr "" + +#: src/gui/insEdit.cpp:73 +msgid "Right" +msgstr "" + +#: src/gui/insEdit.cpp:74 +msgid "Tune" +msgstr "" + +#: src/gui/insEdit.cpp:76 src/gui/insEdit.cpp:610 src/gui/insEdit.cpp:3792 +#: src/gui/insEdit.cpp:4554 src/gui/insEdit.cpp:4848 +msgid "Fixed" +msgstr "" + +#: src/gui/insEdit.cpp:98 src/gui/insEdit.cpp:117 src/gui/insEdit.cpp:136 +#: src/gui/insEdit.cpp:156 +msgid "User" +msgstr "" + +#: src/gui/insEdit.cpp:99 +msgid "1. Violin" +msgstr "" + +#: src/gui/insEdit.cpp:100 src/gui/insEdit.cpp:138 src/gui/insEdit.cpp:158 +msgid "2. Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:101 src/gui/insEdit.cpp:159 +msgid "3. Piano" +msgstr "" + +#: src/gui/insEdit.cpp:102 src/gui/insEdit.cpp:160 +msgid "4. Flute" +msgstr "" + +#: src/gui/insEdit.cpp:103 src/gui/insEdit.cpp:122 src/gui/insEdit.cpp:161 +msgid "5. Clarinet" +msgstr "" + +#: src/gui/insEdit.cpp:104 +msgid "6. Oboe" +msgstr "" + +#: src/gui/insEdit.cpp:105 src/gui/insEdit.cpp:124 src/gui/insEdit.cpp:143 +#: src/gui/insEdit.cpp:163 +msgid "7. Trumpet" +msgstr "" + +#: src/gui/insEdit.cpp:106 +msgid "8. Organ" +msgstr "" + +#: src/gui/insEdit.cpp:107 +msgid "9. Horn" +msgstr "" + +#: src/gui/insEdit.cpp:108 +msgid "10. Synth" +msgstr "" + +#: src/gui/insEdit.cpp:109 +msgid "11. Harpsichord" +msgstr "" + +#: src/gui/insEdit.cpp:110 src/gui/insEdit.cpp:129 src/gui/insEdit.cpp:148 +msgid "12. Vibraphone" +msgstr "" + +#: src/gui/insEdit.cpp:111 +msgid "13. Synth Bass" +msgstr "" + +#: src/gui/insEdit.cpp:112 +msgid "14. Acoustic Bass" +msgstr "" + +#: src/gui/insEdit.cpp:113 +msgid "15. Electric Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:114 src/gui/insEdit.cpp:133 src/gui/insEdit.cpp:152 +#: src/gui/insEdit.cpp:172 src/gui/insEdit.cpp:3176 +msgid "Drums" +msgstr "" + +#: src/gui/insEdit.cpp:118 +msgid "1. Electric String" +msgstr "" + +#: src/gui/insEdit.cpp:119 +msgid "2. Bow wow" +msgstr "" + +#: src/gui/insEdit.cpp:120 src/gui/insEdit.cpp:139 +msgid "3. Electric Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:121 +msgid "4. Organ" +msgstr "" + +#: src/gui/insEdit.cpp:123 +msgid "6. Saxophone" +msgstr "" + +#: src/gui/insEdit.cpp:125 +msgid "8. Street Organ" +msgstr "" + +#: src/gui/insEdit.cpp:126 +msgid "9. Synth Brass" +msgstr "" + +#: src/gui/insEdit.cpp:127 +msgid "10. Electric Piano" +msgstr "" + +#: src/gui/insEdit.cpp:128 +msgid "11. Bass" +msgstr "" + +#: src/gui/insEdit.cpp:130 +msgid "13. Chime" +msgstr "" + +#: src/gui/insEdit.cpp:131 +msgid "14. Tom Tom II" +msgstr "" + +#: src/gui/insEdit.cpp:132 +msgid "15. Noise" +msgstr "" + +#: src/gui/insEdit.cpp:137 +msgid "1. Strings" +msgstr "" + +#: src/gui/insEdit.cpp:140 +msgid "4. Electric Piano" +msgstr "" + +#: src/gui/insEdit.cpp:141 +msgid "5. Flute" +msgstr "" + +#: src/gui/insEdit.cpp:142 +msgid "6. Marimba" +msgstr "" + +#: src/gui/insEdit.cpp:144 +msgid "8. Harmonica" +msgstr "" + +#: src/gui/insEdit.cpp:145 +msgid "9. Tuba" +msgstr "" + +#: src/gui/insEdit.cpp:146 +msgid "10. Synth Brass" +msgstr "" + +#: src/gui/insEdit.cpp:147 +msgid "11. Short Saw" +msgstr "" + +#: src/gui/insEdit.cpp:149 +msgid "13. Electric Guitar 2" +msgstr "" + +#: src/gui/insEdit.cpp:150 +msgid "14. Synth Bass" +msgstr "" + +#: src/gui/insEdit.cpp:151 +msgid "15. Sitar" +msgstr "" + +#: src/gui/insEdit.cpp:157 +msgid "1. Bell" +msgstr "" + +#: src/gui/insEdit.cpp:162 +msgid "6. Rattling Bell" +msgstr "" + +#: src/gui/insEdit.cpp:164 +msgid "8. Reed Organ" +msgstr "" + +#: src/gui/insEdit.cpp:165 +msgid "9. Soft Bell" +msgstr "" + +#: src/gui/insEdit.cpp:166 +msgid "10. Xylophone" +msgstr "" + +#: src/gui/insEdit.cpp:167 +msgid "11. Vibraphone" +msgstr "" + +#: src/gui/insEdit.cpp:168 +msgid "12. Brass" +msgstr "" + +#: src/gui/insEdit.cpp:169 +msgid "13. Bass Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:170 +msgid "14. Synth" +msgstr "" + +#: src/gui/insEdit.cpp:171 +msgid "15. Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:178 src/gui/insEdit.cpp:189 +msgid "Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:179 src/gui/insEdit.cpp:190 +msgid "Absolute Sine" +msgstr "" + +#: src/gui/insEdit.cpp:180 +msgid "Quarter Sine" +msgstr "" + +#: src/gui/insEdit.cpp:181 src/gui/insEdit.cpp:203 +msgid "Squished Sine" +msgstr "" + +#: src/gui/insEdit.cpp:182 src/gui/insEdit.cpp:205 +msgid "Squished AbsSine" +msgstr "" + +#: src/gui/insEdit.cpp:184 src/gui/insEdit.cpp:195 +msgid "Derived Square" +msgstr "" + +#: src/gui/insEdit.cpp:191 +msgid "Pulse Sine" +msgstr "" + +#: src/gui/insEdit.cpp:192 +msgid "Sine (Even Periods)" +msgstr "" + +#: src/gui/insEdit.cpp:193 +msgid "AbsSine (Even Periods)" +msgstr "" + +#: src/gui/insEdit.cpp:201 +msgid "Cut Sine" +msgstr "" + +#: src/gui/insEdit.cpp:202 +msgid "Cut Triangle" +msgstr "" + +#: src/gui/insEdit.cpp:204 +msgid "Squished Triangle" +msgstr "" + +#: src/gui/insEdit.cpp:206 +msgid "Squished AbsTriangle" +msgstr "" + +#: src/gui/insEdit.cpp:210 src/gui/insEdit.cpp:218 +msgid "Snare" +msgstr "" + +#: src/gui/insEdit.cpp:211 +msgid "Tom" +msgstr "" + +#: src/gui/insEdit.cpp:212 src/gui/insEdit.cpp:220 src/gui/insEdit.cpp:1909 +#: src/gui/insEdit.cpp:2014 +msgid "Top" +msgstr "" + +#: src/gui/insEdit.cpp:213 src/gui/insEdit.cpp:219 +msgid "HiHat" +msgstr "" + +#: src/gui/insEdit.cpp:224 +msgid "Noise disabled" +msgstr "" + +#: src/gui/insEdit.cpp:225 +msgid "Square + noise" +msgstr "" + +#: src/gui/insEdit.cpp:226 +msgid "Ringmod from OP3 + noise" +msgstr "" + +#: src/gui/insEdit.cpp:227 +msgid "" +"Ringmod from OP3 + double pitch ModInput\n" +"WARNING - has emulation issues; subject to change" +msgstr "" + +#: src/gui/insEdit.cpp:232 +msgid "Bitwise AND" +msgstr "" + +#: src/gui/insEdit.cpp:233 +msgid "Bitwise OR" +msgstr "" + +#: src/gui/insEdit.cpp:234 +msgid "Bitwise XOR" +msgstr "" + +#: src/gui/insEdit.cpp:239 src/gui/insEdit.cpp:390 +msgid "gate" +msgstr "" + +#: src/gui/insEdit.cpp:240 src/gui/insEdit.cpp:391 +msgid "sync" +msgstr "" + +#: src/gui/insEdit.cpp:241 src/gui/insEdit.cpp:392 +msgid "ring" +msgstr "" + +#: src/gui/insEdit.cpp:327 +msgid "How did you even" +msgstr "" + +#: src/gui/insEdit.cpp:335 +msgid "triangle" +msgstr "" + +#: src/gui/insEdit.cpp:336 src/gui/insEdit.cpp:5821 +msgid "saw" +msgstr "" + +#: src/gui/insEdit.cpp:337 src/gui/insEdit.cpp:5827 +msgid "pulse" +msgstr "" + +#: src/gui/insEdit.cpp:338 src/gui/insEdit.cpp:344 src/gui/insEdit.cpp:373 +#: src/gui/insEdit.cpp:424 src/gui/insEdit.cpp:429 src/gui/insEdit.cpp:5833 +msgid "noise" +msgstr "" + +#: src/gui/insEdit.cpp:343 +msgid "tone" +msgstr "" + +#: src/gui/insEdit.cpp:345 +msgid "envelope" +msgstr "" + +#: src/gui/insEdit.cpp:350 +msgid "hold" +msgstr "" + +#: src/gui/insEdit.cpp:351 +msgid "alternate" +msgstr "" + +#: src/gui/insEdit.cpp:352 src/gui/insEdit.cpp:364 +msgid "direction" +msgstr "" + +#: src/gui/insEdit.cpp:353 src/gui/insEdit.cpp:436 +msgid "enable" +msgstr "" + +#: src/gui/insEdit.cpp:357 src/gui/insEdit.cpp:368 +msgid "enabled" +msgstr "" + +#: src/gui/insEdit.cpp:361 +msgid "mirror" +msgstr "" + +#: src/gui/insEdit.cpp:365 +msgid "resolution" +msgstr "" + +#: src/gui/insEdit.cpp:366 +msgid "fixed" +msgstr "" + +#: src/gui/insEdit.cpp:367 +msgid "N/A" +msgstr "" + +#: src/gui/insEdit.cpp:374 +msgid "echo" +msgstr "" + +#: src/gui/insEdit.cpp:375 +msgid "pitch mod" +msgstr "" + +#: src/gui/insEdit.cpp:376 src/gui/insEdit.cpp:508 +msgid "invert right" +msgstr "" + +#: src/gui/insEdit.cpp:377 src/gui/insEdit.cpp:509 +msgid "invert left" +msgstr "" + +#: src/gui/insEdit.cpp:382 src/gui/insEdit.cpp:5905 +msgid "low" +msgstr "" + +#: src/gui/insEdit.cpp:383 src/gui/insEdit.cpp:5911 +msgid "band" +msgstr "" + +#: src/gui/insEdit.cpp:384 src/gui/insEdit.cpp:5917 +msgid "high" +msgstr "" + +#: src/gui/insEdit.cpp:385 src/gui/insEdit.cpp:5924 +msgid "ch3off" +msgstr "" + +#: src/gui/insEdit.cpp:393 +msgid "test" +msgstr "" + +#: src/gui/insEdit.cpp:398 +msgid "15KHz" +msgstr "" + +#: src/gui/insEdit.cpp:399 +msgid "filter 2+4" +msgstr "" + +#: src/gui/insEdit.cpp:400 +msgid "filter 1+3" +msgstr "" + +#: src/gui/insEdit.cpp:401 +msgid "16-bit 3+4" +msgstr "" + +#: src/gui/insEdit.cpp:402 +msgid "16-bit 1+2" +msgstr "" + +#: src/gui/insEdit.cpp:403 +msgid "high3" +msgstr "" + +#: src/gui/insEdit.cpp:404 +msgid "high1" +msgstr "" + +#: src/gui/insEdit.cpp:405 +msgid "poly9" +msgstr "" + +#: src/gui/insEdit.cpp:414 +msgid "16'" +msgstr "" + +#: src/gui/insEdit.cpp:415 +msgid "8'" +msgstr "" + +#: src/gui/insEdit.cpp:416 +msgid "4'" +msgstr "" + +#: src/gui/insEdit.cpp:417 +msgid "2'" +msgstr "" + +#: src/gui/insEdit.cpp:418 +msgid "sustain" +msgstr "" + +#: src/gui/insEdit.cpp:423 +msgid "square" +msgstr "" + +#: src/gui/insEdit.cpp:431 +msgid "surround" +msgstr "" + +#: src/gui/insEdit.cpp:437 +msgid "oneshot" +msgstr "" + +#: src/gui/insEdit.cpp:438 +msgid "split L/R" +msgstr "" + +#: src/gui/insEdit.cpp:439 +msgid "HinvR" +msgstr "" + +#: src/gui/insEdit.cpp:440 +msgid "VinvR" +msgstr "" + +#: src/gui/insEdit.cpp:441 +msgid "HinvL" +msgstr "" + +#: src/gui/insEdit.cpp:442 +msgid "VinvL" +msgstr "" + +#: src/gui/insEdit.cpp:447 src/gui/insEdit.cpp:476 +msgid "ring mod" +msgstr "" + +#: src/gui/insEdit.cpp:448 +msgid "low pass" +msgstr "" + +#: src/gui/insEdit.cpp:449 src/gui/insEdit.cpp:475 +msgid "high pass" +msgstr "" + +#: src/gui/insEdit.cpp:450 +msgid "band pass" +msgstr "" + +#: src/gui/insEdit.cpp:459 +msgid "enable tap B" +msgstr "" + +#: src/gui/insEdit.cpp:460 +msgid "AM with slope" +msgstr "" + +#: src/gui/insEdit.cpp:465 +msgid "invert B" +msgstr "" + +#: src/gui/insEdit.cpp:466 +msgid "invert A" +msgstr "" + +#: src/gui/insEdit.cpp:467 +msgid "reset B" +msgstr "" + +#: src/gui/insEdit.cpp:468 +msgid "reset A" +msgstr "" + +#: src/gui/insEdit.cpp:469 +msgid "clip B" +msgstr "" + +#: src/gui/insEdit.cpp:470 +msgid "clip A" +msgstr "" + +#: src/gui/insEdit.cpp:477 +msgid "swap counters (noise)" +msgstr "" + +#: src/gui/insEdit.cpp:478 +msgid "low pass (noise)" +msgstr "" + +#: src/gui/insEdit.cpp:485 +msgid "rear right" +msgstr "" + +#: src/gui/insEdit.cpp:486 +msgid "rear left" +msgstr "" + +#: src/gui/insEdit.cpp:491 +msgid "on" +msgstr "" + +#: src/gui/insEdit.cpp:496 +msgid "k1 slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:497 +msgid "k2 slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:502 +msgid "pause" +msgstr "" + +#: src/gui/insEdit.cpp:503 +msgid "reverse" +msgstr "" + +#: src/gui/insEdit.cpp:521 +msgid "Subtract" +msgstr "" + +#: src/gui/insEdit.cpp:522 +msgid "Average" +msgstr "" + +#: src/gui/insEdit.cpp:523 src/gui/insEdit.cpp:2037 +msgid "Phase" +msgstr "" + +#: src/gui/insEdit.cpp:524 +msgid "Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:528 +msgid "None (dual)" +msgstr "" + +#: src/gui/insEdit.cpp:529 +msgid "Wipe" +msgstr "" + +#: src/gui/insEdit.cpp:531 +msgid "Fade (ping-pong)" +msgstr "" + +#: src/gui/insEdit.cpp:532 +msgid "Overlay" +msgstr "" + +#: src/gui/insEdit.cpp:533 +msgid "Negative Overlay" +msgstr "" + +#: src/gui/insEdit.cpp:534 +msgid "Slide" +msgstr "" + +#: src/gui/insEdit.cpp:535 +msgid "Mix Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:536 +msgid "Phase Modulation" +msgstr "" + +#: src/gui/insEdit.cpp:540 src/gui/insEdit.cpp:3547 src/gui/insEdit.cpp:3548 +#: src/gui/insEdit.cpp:4081 src/gui/insEdit.cpp:4151 src/gui/insEdit.cpp:4790 +#: src/gui/insEdit.cpp:5861 src/gui/insEdit.cpp:5862 src/gui/insEdit.cpp:6487 +#: src/gui/insEdit.cpp:6488 src/gui/insEdit.cpp:6555 src/gui/insEdit.cpp:6556 +#: src/gui/insEdit.cpp:6995 src/gui/insEdit.cpp:7009 src/gui/insEdit.cpp:7029 +#: src/gui/insEdit.cpp:7166 +#, c-format +msgid "Envelope" +msgstr "" + +#: src/gui/insEdit.cpp:541 +msgid "Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:542 src/gui/insEdit.cpp:552 +msgid "Wait" +msgstr "" + +#: src/gui/insEdit.cpp:543 src/gui/insEdit.cpp:553 +msgid "Wait for Release" +msgstr "" + +#: src/gui/insEdit.cpp:545 src/gui/insEdit.cpp:555 +msgid "Loop until Release" +msgstr "" + +#: src/gui/insEdit.cpp:549 +msgid "Volume Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:550 +msgid "Frequency Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:551 +msgid "Cutoff Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:559 src/gui/insEdit.cpp:6604 +msgid "Direct" +msgstr "" + +#: src/gui/insEdit.cpp:560 src/gui/insEdit.cpp:6608 +msgid "Decrease (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:561 src/gui/insEdit.cpp:6612 +msgid "Decrease (logarithmic)" +msgstr "" + +#: src/gui/insEdit.cpp:562 src/gui/insEdit.cpp:6616 +msgid "Increase (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:563 src/gui/insEdit.cpp:6620 +msgid "Increase (bent line)" +msgstr "" + +#: src/gui/insEdit.cpp:611 +msgid "Relative" +msgstr "" + +#: src/gui/insEdit.cpp:616 +#, c-format +msgid "%d: +%d (exponential)" +msgstr "" + +#: src/gui/insEdit.cpp:619 +#, c-format +msgid "%d: +%d (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:622 +#, c-format +msgid "%d: -%d (exponential)" +msgstr "" + +#: src/gui/insEdit.cpp:625 +#, c-format +msgid "%d: -%d (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:627 +#, c-format +msgid "%d: %d (direct)" +msgstr "" + +#: src/gui/insEdit.cpp:660 +msgid "Random" +msgstr "" + +#: src/gui/insEdit.cpp:1610 +msgid "" +"left click to restart\n" +"middle click to pause\n" +"right click to see algorithm" +msgstr "" + +#: src/gui/insEdit.cpp:1620 +msgid "" +"left click to configure TL scaling\n" +"right click to see FM preview" +msgstr "" + +#: src/gui/insEdit.cpp:1624 +msgid "right click to see FM preview" +msgstr "" + +#: src/gui/insEdit.cpp:1639 +msgid "operator level changes with volume?" +msgstr "" + +#: src/gui/insEdit.cpp:1648 +msgid "AUTO##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1650 +msgid "NO##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1652 +msgid "YES##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1900 src/gui/insEdit.cpp:2005 +msgid "Bottom" +msgstr "" + +#: src/gui/insEdit.cpp:1940 +msgid "Hold" +msgstr "" + +#: src/gui/insEdit.cpp:1949 +msgid "SusTime" +msgstr "" + +#: src/gui/insEdit.cpp:1969 +msgid "SusDecay" +msgstr "" + +#: src/gui/insEdit.cpp:2047 +msgid "Shape" +msgstr "" + +#: src/gui/insEdit.cpp:2100 +msgid "Macro type: Sequence" +msgstr "" + +#: src/gui/insEdit.cpp:2103 +msgid "Macro type: ADSR" +msgstr "" + +#: src/gui/insEdit.cpp:2106 +msgid "Macro type: LFO" +msgstr "" + +#: src/gui/insEdit.cpp:2109 +msgid "Macro type: What's going on here?" +msgstr "" + +#: src/gui/insEdit.cpp:2122 +msgid "Delay/Step Length" +msgstr "" + +#: src/gui/insEdit.cpp:2125 +msgid "Step Length (ticks)##IMacroSpeed" +msgstr "" + +#: src/gui/insEdit.cpp:2129 +msgid "Delay##IMacroDelay" +msgstr "" + +#: src/gui/insEdit.cpp:2142 +msgid "Release mode: Active (jump to release pos)" +msgstr "" + +#: src/gui/insEdit.cpp:2144 +msgid "Release mode: Passive (delayed release)" +msgstr "" + +#: src/gui/insEdit.cpp:2284 src/gui/insEdit.cpp:2382 src/gui/insEdit.cpp:5582 +#: src/gui/insEdit.cpp:6241 +msgid "Length" +msgstr "" + +#: src/gui/insEdit.cpp:2393 +msgid "StepLen" +msgstr "" + +#: src/gui/insEdit.cpp:2401 +msgid "Delay" +msgstr "" + +#: src/gui/insEdit.cpp:2425 +msgid "The heck? No, this isn't even working correctly..." +msgstr "" + +#: src/gui/insEdit.cpp:2428 +msgid "The only problem with that selectedMacro is that it's a bug..." +msgstr "" + +#: src/gui/insEdit.cpp:2589 +msgid "(copying)" +msgstr "" + +#: src/gui/insEdit.cpp:2591 +msgid "(swapping)" +msgstr "" + +#: src/gui/insEdit.cpp:2595 +msgid "" +"- drag to swap operator\n" +"- shift-drag to copy operator" +msgstr "" + +#: src/gui/insEdit.cpp:2629 +msgid "DPCM" +msgstr "" + +#: src/gui/insEdit.cpp:2632 +msgid "new DPCM features disabled (compatibility)!" +msgstr "" + +#: src/gui/insEdit.cpp:2633 +msgid "click here to enable them." +msgstr "" + +#: src/gui/insEdit.cpp:2644 +msgid "none selected" +msgstr "" + +#: src/gui/insEdit.cpp:2657 +msgid "Use sample" +msgstr "" + +#: src/gui/insEdit.cpp:2659 +msgid "Sample bank slot##BANKSLOT" +msgstr "" + +#: src/gui/insEdit.cpp:2681 +msgid "Use wavetable (Amiga/Generic DAC only)" +msgstr "" + +#: src/gui/insEdit.cpp:2681 +msgid "Use wavetable" +msgstr "" + +#: src/gui/insEdit.cpp:2708 +msgid "Use sample map" +msgstr "" + +#: src/gui/insEdit.cpp:2730 +msgid "delta" +msgstr "" + +#: src/gui/insEdit.cpp:2736 +msgid "sample name" +msgstr "" + +#: src/gui/insEdit.cpp:3001 +msgid "set entire map to this pitch" +msgstr "" + +#: src/gui/insEdit.cpp:3009 +msgid "set entire map to this delta counter value" +msgstr "" + +#: src/gui/insEdit.cpp:3018 +msgid "set entire map to this note" +msgstr "" + +#: src/gui/insEdit.cpp:3027 +msgid "set entire map to this sample" +msgstr "" + +#: src/gui/insEdit.cpp:3037 +msgid "reset pitches" +msgstr "" + +#: src/gui/insEdit.cpp:3042 +msgid "clear delta counter values" +msgstr "" + +#: src/gui/insEdit.cpp:3048 +msgid "reset notes" +msgstr "" + +#: src/gui/insEdit.cpp:3054 +msgid "clear map samples" +msgstr "" + +#: src/gui/insEdit.cpp:3148 +msgid "Request from TX81Z" +msgstr "" + +#: src/gui/insEdit.cpp:3234 +#, c-format +msgid "%s name" +msgstr "" + +#: src/gui/insEdit.cpp:3286 +msgid "Fixed frequency mode" +msgstr "" + +#: src/gui/insEdit.cpp:3288 +msgid "" +"when enabled, drums will be set to the specified frequencies, ignoring the " +"note." +msgstr "" + +#: src/gui/insEdit.cpp:3296 +msgid "Drum" +msgstr "" + +#: src/gui/insEdit.cpp:3298 src/gui/insEdit.cpp:3798 src/gui/insEdit.cpp:3904 +#: src/gui/insEdit.cpp:4404 src/gui/insEdit.cpp:4468 src/gui/insEdit.cpp:5068 +#: src/gui/insEdit.cpp:5518 +msgid "Block" +msgstr "" + +#: src/gui/insEdit.cpp:3300 src/gui/insEdit.cpp:3803 src/gui/insEdit.cpp:3909 +#: src/gui/insEdit.cpp:4993 src/gui/insEdit.cpp:5079 src/gui/insEdit.cpp:5519 +msgid "FreqNum" +msgstr "" + +#: src/gui/insEdit.cpp:3302 src/gui/insEdit.cpp:3624 +msgid "Kick" +msgstr "" + +#: src/gui/insEdit.cpp:3303 +msgid "Snare/Hi-hat" +msgstr "" + +#: src/gui/insEdit.cpp:3304 +msgid "Tom/Top" +msgstr "" + +#: src/gui/insEdit.cpp:3314 +msgid "Volume##TL" +msgstr "" + +#: src/gui/insEdit.cpp:3316 +msgid "this volume slider only works in compatibility (non-drums) system." +msgstr "" + +#: src/gui/insEdit.cpp:3626 +msgid "Env" +msgstr "" + +#: src/gui/insEdit.cpp:3980 src/gui/insEdit.cpp:4346 src/gui/insEdit.cpp:4396 +#: src/gui/insEdit.cpp:5104 +msgid "OPL2/3 only (last 4 waveforms are OPL3 only)" +msgstr "" + +#: src/gui/insEdit.cpp:4079 src/gui/insEdit.cpp:4788 +#, c-format +msgid "Envelope 2 (kick only)" +msgstr "" + +#: src/gui/insEdit.cpp:4084 +#, c-format +msgid "Operator %d" +msgstr "" + +#: src/gui/insEdit.cpp:4414 +msgid "Freq" +msgstr "" + +#: src/gui/insEdit.cpp:4443 +msgid "Only on YM2151 (OPM)" +msgstr "" + +#: src/gui/insEdit.cpp:4466 +msgid "Blk" +msgstr "" + +#: src/gui/insEdit.cpp:4479 +msgid "F" +msgstr "" + +#: src/gui/insEdit.cpp:4481 +msgid "Frequency (F-Num)" +msgstr "" + +#: src/gui/insEdit.cpp:4833 +msgid "SSG On" +msgstr "" + +#: src/gui/insEdit.cpp:5206 src/gui/insEdit.cpp:5207 +msgid "waiting..." +msgstr "" + +#: src/gui/insEdit.cpp:5210 src/gui/insEdit.cpp:5211 +msgid "no instrument selected" +msgstr "" + +#: src/gui/insEdit.cpp:5393 +msgid "" +"none of the currently present chips are able to play this instrument type!" +msgstr "" + +#: src/gui/insEdit.cpp:5413 +msgid "FM Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5435 src/gui/insEdit.cpp:5440 +msgid "LFO Speed" +msgstr "" + +#: src/gui/insEdit.cpp:5439 src/gui/insEdit.cpp:6514 +msgid "PM Depth" +msgstr "" + +#: src/gui/insEdit.cpp:5441 +msgid "LFO Shape" +msgstr "" + +#: src/gui/insEdit.cpp:5444 +msgid "OpMask" +msgstr "" + +#: src/gui/insEdit.cpp:5446 +msgid "AM Depth 2" +msgstr "" + +#: src/gui/insEdit.cpp:5447 +msgid "PM Depth 2" +msgstr "" + +#: src/gui/insEdit.cpp:5448 +msgid "LFO2 Speed" +msgstr "" + +#: src/gui/insEdit.cpp:5449 +msgid "LFO2 Shape" +msgstr "" + +#: src/gui/insEdit.cpp:5458 +#, c-format +msgid "Operator Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5460 +#, c-format +msgid "OP%d Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5521 +msgid "Op. Arpeggio" +msgstr "" + +#: src/gui/insEdit.cpp:5522 +msgid "Op. Pitch" +msgstr "" + +#: src/gui/insEdit.cpp:5531 +msgid "Op. Panning" +msgstr "" + +#: src/gui/insEdit.cpp:5558 +msgid "Use software envelope" +msgstr "" + +#: src/gui/insEdit.cpp:5559 +msgid "Initialize envelope on every note" +msgstr "" + +#: src/gui/insEdit.cpp:5560 +msgid "Double wave length (GBA only)" +msgstr "" + +#: src/gui/insEdit.cpp:5589 src/gui/insEdit.cpp:5666 +msgid "Sound Length" +msgstr "" + +#: src/gui/insEdit.cpp:5592 src/gui/insEdit.cpp:5666 +msgid "Infinity" +msgstr "" + +#: src/gui/insEdit.cpp:5596 +msgid "Direction" +msgstr "" + +#: src/gui/insEdit.cpp:5599 src/gui/insEdit.cpp:5669 src/gui/insEdit.cpp:5697 +#: src/gui/insEdit.cpp:6008 src/gui/insEdit.cpp:6051 +msgid "Up" +msgstr "" + +#: src/gui/insEdit.cpp:5604 src/gui/insEdit.cpp:5674 src/gui/insEdit.cpp:5702 +#: src/gui/insEdit.cpp:6013 src/gui/insEdit.cpp:6056 +msgid "Down" +msgstr "" + +#: src/gui/insEdit.cpp:5620 src/gui/insEdit.cpp:5953 +msgid "Hardware Sequence" +msgstr "" + +#: src/gui/insEdit.cpp:5630 src/gui/insEdit.cpp:5963 +msgid "Tick" +msgstr "" + +#: src/gui/insEdit.cpp:5632 src/gui/insEdit.cpp:5965 +msgid "Command" +msgstr "" + +#: src/gui/insEdit.cpp:5634 src/gui/insEdit.cpp:5967 +msgid "Move/Remove" +msgstr "" + +#: src/gui/insEdit.cpp:5663 +msgid "Env Length" +msgstr "" + +#: src/gui/insEdit.cpp:5690 +msgid "Shift" +msgstr "" + +#: src/gui/insEdit.cpp:5717 src/gui/insEdit.cpp:6073 +msgid "Ticks" +msgstr "" + +#: src/gui/insEdit.cpp:5736 src/gui/insEdit.cpp:6092 src/gui/insEdit.cpp:6239 +msgid "Position" +msgstr "" + +#: src/gui/insEdit.cpp:5815 +msgid "tri" +msgstr "" + +#: src/gui/insEdit.cpp:5882 +msgid "Ring Modulation" +msgstr "" + +#: src/gui/insEdit.cpp:5886 +msgid "Oscillator Sync" +msgstr "" + +#: src/gui/insEdit.cpp:5890 +msgid "Enable filter" +msgstr "" + +#: src/gui/insEdit.cpp:5891 +msgid "Initialize filter" +msgstr "" + +#: src/gui/insEdit.cpp:5894 src/gui/insEdit.cpp:5897 src/gui/insEdit.cpp:6951 +#: src/gui/insEdit.cpp:7215 src/gui/insEdit.cpp:7476 +msgid "Cutoff" +msgstr "" + +#: src/gui/insEdit.cpp:5902 src/gui/insEdit.cpp:6408 src/gui/insEdit.cpp:6952 +#: src/gui/insEdit.cpp:7179 src/gui/insEdit.cpp:7477 +msgid "Filter Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5931 src/gui/insEdit.cpp:7485 +msgid "Noise Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5932 +msgid "Wave Mix Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5935 +msgid "Absolute Cutoff Macro" +msgstr "" + +#: src/gui/insEdit.cpp:5939 +msgid "Absolute Duty Macro" +msgstr "" + +#: src/gui/insEdit.cpp:5945 +msgid "Don't test before new note" +msgstr "" + +#: src/gui/insEdit.cpp:5950 +msgid "Switch roles of frequency and phase reset timer" +msgstr "" + +#: src/gui/insEdit.cpp:5997 src/gui/insEdit.cpp:6040 +msgid "Period" +msgstr "" + +#: src/gui/insEdit.cpp:6002 src/gui/insEdit.cpp:6045 src/gui/insEdit.cpp:6892 +msgid "Amount" +msgstr "" + +#: src/gui/insEdit.cpp:6005 src/gui/insEdit.cpp:6048 +msgid "Bound" +msgstr "" + +#: src/gui/insEdit.cpp:6021 +msgid "Flip" +msgstr "" + +#: src/gui/insEdit.cpp:6210 +msgid "Load waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6215 +msgid "" +"when enabled, a waveform will be loaded into RAM.\n" +"when disabled, only the offset and length change." +msgstr "" + +#: src/gui/insEdit.cpp:6219 +msgid "Waveform##WAVE" +msgstr "" + +#: src/gui/insEdit.cpp:6227 +msgid "Per-channel wave position/length" +msgstr "" + +#: src/gui/insEdit.cpp:6237 +msgid "Ch" +msgstr "" + +#: src/gui/insEdit.cpp:6286 +msgid "Compatibility mode" +msgstr "" + +#: src/gui/insEdit.cpp:6288 +msgid "" +"only use for compatibility with .dmf modules!\n" +"- initializes modulation table with first wavetable\n" +"- does not alter modulation parameters on instrument change" +msgstr "" + +#: src/gui/insEdit.cpp:6290 +msgid "Modulation depth" +msgstr "" + +#: src/gui/insEdit.cpp:6294 +msgid "Modulation speed" +msgstr "" + +#: src/gui/insEdit.cpp:6298 +msgid "Modulation table" +msgstr "" + +#: src/gui/insEdit.cpp:6347 +msgid "Set modulation table (channel 5 only)" +msgstr "" + +#: src/gui/insEdit.cpp:6411 src/gui/insEdit.cpp:7184 +msgid "Filter K1" +msgstr "" + +#: src/gui/insEdit.cpp:6413 src/gui/insEdit.cpp:7185 +msgid "Filter K2" +msgstr "" + +#: src/gui/insEdit.cpp:6417 +msgid "Envelope length" +msgstr "" + +#: src/gui/insEdit.cpp:6420 +msgid "Left Volume Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6422 +msgid "Right Volume Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6425 +msgid "Filter K1 Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6427 +msgid "Filter K2 Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6430 +msgid "K1 Ramp Slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:6432 +msgid "K2 Ramp Slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:6454 +msgid "Attack Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6460 +msgid "Decay 1 Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6466 +msgid "Decay Level" +msgstr "" + +#: src/gui/insEdit.cpp:6472 +msgid "Decay 2 Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6478 +msgid "Release Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6484 +msgid "Rate Correction" +msgstr "" + +#: src/gui/insEdit.cpp:6512 +msgid "LFO Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6523 +msgid "Use envelope" +msgstr "" + +#: src/gui/insEdit.cpp:6576 +msgid "Sustain/release mode:" +msgstr "" + +#: src/gui/insEdit.cpp:6577 +msgid "Direct (cut on release)" +msgstr "" + +#: src/gui/insEdit.cpp:6580 +msgid "Effective (linear decrease)" +msgstr "" + +#: src/gui/insEdit.cpp:6583 +msgid "Effective (exponential decrease)" +msgstr "" + +#: src/gui/insEdit.cpp:6586 +msgid "Delayed (write R on release)" +msgstr "" + +#: src/gui/insEdit.cpp:6596 src/gui/insEdit.cpp:6597 +msgid "Gain Mode" +msgstr "" + +#: src/gui/insEdit.cpp:6599 src/gui/insEdit.cpp:6600 src/gui/insEdit.cpp:7205 +msgid "Gain" +msgstr "" + +#: src/gui/insEdit.cpp:6633 +msgid "" +"using decrease modes will not produce any sound at all, unless you know what " +"you are doing.\n" +"it is recommended to use the Gain macro for decrease instead." +msgstr "" + +#: src/gui/insEdit.cpp:6703 +msgid "Enable synthesizer" +msgstr "" + +#: src/gui/insEdit.cpp:6721 +msgid "Single-waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6730 +msgid "Dual-waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6803 src/gui/insEdit.cpp:6812 +msgid "Wave 1" +msgstr "" + +#: src/gui/insEdit.cpp:6808 src/gui/insEdit.cpp:6823 +msgid "" +"waveform macro is controlling wave 1!\n" +"this value will be ineffective." +msgstr "" + +#: src/gui/insEdit.cpp:6829 +msgid "Wave 2" +msgstr "" + +#: src/gui/insEdit.cpp:6844 +msgid "Resume preview" +msgstr "" + +#: src/gui/insEdit.cpp:6846 +msgid "Pause preview" +msgstr "" + +#: src/gui/insEdit.cpp:6854 +msgid "Restart preview" +msgstr "" + +#: src/gui/insEdit.cpp:6874 +msgid "Copy to new wavetable" +msgstr "" + +#: src/gui/insEdit.cpp:6881 +msgid "Update Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6902 +msgid "Global" +msgstr "" + +#: src/gui/insEdit.cpp:6906 +msgid "" +"wavetable synthesizer disabled.\n" +"use the Waveform macro to set the wave for this instrument." +msgstr "" + +#: src/gui/insEdit.cpp:6912 +msgid "Macros" +msgstr "" + +#: src/gui/insEdit.cpp:6921 src/gui/insEdit.cpp:6929 src/gui/insEdit.cpp:6938 +#: src/gui/insEdit.cpp:6947 src/gui/insEdit.cpp:6962 src/gui/insEdit.cpp:6976 +#: src/gui/insEdit.cpp:6988 src/gui/insEdit.cpp:7001 src/gui/insEdit.cpp:7017 +#: src/gui/insEdit.cpp:7023 src/gui/insEdit.cpp:7033 src/gui/insEdit.cpp:7040 +#: src/gui/insEdit.cpp:7046 src/gui/insEdit.cpp:7059 src/gui/insEdit.cpp:7066 +#: src/gui/insEdit.cpp:7073 src/gui/insEdit.cpp:7082 src/gui/insEdit.cpp:7092 +#: src/gui/insEdit.cpp:7100 src/gui/insEdit.cpp:7106 src/gui/insEdit.cpp:7114 +#: src/gui/insEdit.cpp:7121 src/gui/insEdit.cpp:7127 src/gui/insEdit.cpp:7137 +#: src/gui/insEdit.cpp:7149 src/gui/insEdit.cpp:7157 src/gui/insEdit.cpp:7173 +#: src/gui/insEdit.cpp:7178 src/gui/insEdit.cpp:7191 src/gui/insEdit.cpp:7198 +#: src/gui/insEdit.cpp:7209 src/gui/insEdit.cpp:7222 src/gui/insEdit.cpp:7231 +#: src/gui/insEdit.cpp:7238 src/gui/insEdit.cpp:7246 src/gui/insEdit.cpp:7270 +#: src/gui/insEdit.cpp:7277 src/gui/insEdit.cpp:7285 src/gui/insEdit.cpp:7296 +#: src/gui/insEdit.cpp:7303 src/gui/insEdit.cpp:7311 src/gui/insEdit.cpp:7319 +#: src/gui/insEdit.cpp:7328 src/gui/insEdit.cpp:7336 src/gui/insEdit.cpp:7342 +#: src/gui/insEdit.cpp:7348 src/gui/insEdit.cpp:7354 src/gui/insEdit.cpp:7359 +#: src/gui/insEdit.cpp:7366 src/gui/insEdit.cpp:7373 src/gui/insEdit.cpp:7381 +#: src/gui/insEdit.cpp:7390 src/gui/insEdit.cpp:7398 src/gui/insEdit.cpp:7410 +#: src/gui/insEdit.cpp:7423 src/gui/insEdit.cpp:7434 src/gui/insEdit.cpp:7444 +#: src/gui/insEdit.cpp:7452 src/gui/insEdit.cpp:7462 src/gui/insEdit.cpp:7471 +msgid "Arpeggio" +msgstr "" + +#: src/gui/insEdit.cpp:6925 src/gui/insEdit.cpp:6932 src/gui/insEdit.cpp:6943 +#: src/gui/insEdit.cpp:6972 src/gui/insEdit.cpp:6984 src/gui/insEdit.cpp:6994 +#: src/gui/insEdit.cpp:7007 src/gui/insEdit.cpp:7054 src/gui/insEdit.cpp:7062 +#: src/gui/insEdit.cpp:7069 src/gui/insEdit.cpp:7088 src/gui/insEdit.cpp:7110 +#: src/gui/insEdit.cpp:7133 src/gui/insEdit.cpp:7144 src/gui/insEdit.cpp:7163 +#: src/gui/insEdit.cpp:7183 src/gui/insEdit.cpp:7194 src/gui/insEdit.cpp:7214 +#: src/gui/insEdit.cpp:7234 src/gui/insEdit.cpp:7242 src/gui/insEdit.cpp:7249 +#: src/gui/insEdit.cpp:7254 src/gui/insEdit.cpp:7260 src/gui/insEdit.cpp:7266 +#: src/gui/insEdit.cpp:7273 src/gui/insEdit.cpp:7281 src/gui/insEdit.cpp:7290 +#: src/gui/insEdit.cpp:7299 src/gui/insEdit.cpp:7307 src/gui/insEdit.cpp:7324 +#: src/gui/insEdit.cpp:7332 src/gui/insEdit.cpp:7338 src/gui/insEdit.cpp:7362 +#: src/gui/insEdit.cpp:7369 src/gui/insEdit.cpp:7377 src/gui/insEdit.cpp:7386 +#: src/gui/insEdit.cpp:7394 src/gui/insEdit.cpp:7402 src/gui/insEdit.cpp:7414 +#: src/gui/insEdit.cpp:7429 src/gui/insEdit.cpp:7440 src/gui/insEdit.cpp:7448 +#: src/gui/insEdit.cpp:7457 src/gui/insEdit.cpp:7475 +msgid "Phase Reset" +msgstr "" + +#: src/gui/insEdit.cpp:6939 src/gui/insEdit.cpp:7024 src/gui/insEdit.cpp:7210 +#: src/gui/insEdit.cpp:7247 +msgid "Duty/Noise" +msgstr "" + +#: src/gui/insEdit.cpp:6966 src/gui/insEdit.cpp:7288 +msgid "Surround" +msgstr "" + +#: src/gui/insEdit.cpp:6968 src/gui/insEdit.cpp:6981 src/gui/insEdit.cpp:7026 +#: src/gui/insEdit.cpp:7085 src/gui/insEdit.cpp:7141 src/gui/insEdit.cpp:7159 +#: src/gui/insEdit.cpp:7180 src/gui/insEdit.cpp:7201 src/gui/insEdit.cpp:7225 +#: src/gui/insEdit.cpp:7278 src/gui/insEdit.cpp:7304 src/gui/insEdit.cpp:7321 +#: src/gui/insEdit.cpp:7329 src/gui/insEdit.cpp:7374 src/gui/insEdit.cpp:7383 +#: src/gui/insEdit.cpp:7399 src/gui/insEdit.cpp:7411 src/gui/insEdit.cpp:7426 +#: src/gui/insEdit.cpp:7454 src/gui/insEdit.cpp:7464 +msgid "Panning (left)" +msgstr "" + +#: src/gui/insEdit.cpp:6969 src/gui/insEdit.cpp:6982 src/gui/insEdit.cpp:7027 +#: src/gui/insEdit.cpp:7086 src/gui/insEdit.cpp:7142 src/gui/insEdit.cpp:7160 +#: src/gui/insEdit.cpp:7181 src/gui/insEdit.cpp:7202 src/gui/insEdit.cpp:7226 +#: src/gui/insEdit.cpp:7279 src/gui/insEdit.cpp:7305 src/gui/insEdit.cpp:7322 +#: src/gui/insEdit.cpp:7330 src/gui/insEdit.cpp:7375 src/gui/insEdit.cpp:7384 +#: src/gui/insEdit.cpp:7400 src/gui/insEdit.cpp:7412 src/gui/insEdit.cpp:7427 +#: src/gui/insEdit.cpp:7455 src/gui/insEdit.cpp:7465 +msgid "Panning (right)" +msgstr "" + +#: src/gui/insEdit.cpp:6978 src/gui/insEdit.cpp:7129 src/gui/insEdit.cpp:7223 +#: src/gui/insEdit.cpp:7315 +msgid "Noise" +msgstr "" + +#: src/gui/insEdit.cpp:6990 src/gui/insEdit.cpp:7003 src/gui/insEdit.cpp:7107 +#: src/gui/insEdit.cpp:7199 src/gui/insEdit.cpp:7239 src/gui/insEdit.cpp:7424 +msgid "Noise Freq" +msgstr "" + +#: src/gui/insEdit.cpp:6996 src/gui/insEdit.cpp:7010 src/gui/insEdit.cpp:7167 +msgid "AutoEnv Num" +msgstr "" + +#: src/gui/insEdit.cpp:6997 src/gui/insEdit.cpp:7011 src/gui/insEdit.cpp:7168 +msgid "AutoEnv Den" +msgstr "" + +#: src/gui/insEdit.cpp:7012 +msgid "Noise AND Mask" +msgstr "" + +#: src/gui/insEdit.cpp:7013 +msgid "Noise OR Mask" +msgstr "" + +#: src/gui/insEdit.cpp:7034 +msgid "On/Off" +msgstr "" + +#: src/gui/insEdit.cpp:7060 +msgid "Patch" +msgstr "" + +#: src/gui/insEdit.cpp:7076 +msgid "Mod Depth" +msgstr "" + +#: src/gui/insEdit.cpp:7077 +msgid "Mod Speed" +msgstr "" + +#: src/gui/insEdit.cpp:7078 +msgid "Mod Position" +msgstr "" + +#: src/gui/insEdit.cpp:7083 +msgid "Noise Length" +msgstr "" + +#: src/gui/insEdit.cpp:7093 +msgid "Wave Pos" +msgstr "" + +#: src/gui/insEdit.cpp:7096 +msgid "Wave Length" +msgstr "" + +#: src/gui/insEdit.cpp:7115 +msgid "AUDCTL" +msgstr "" + +#: src/gui/insEdit.cpp:7122 src/gui/insEdit.cpp:7343 +msgid "Pulse Width" +msgstr "" + +#: src/gui/insEdit.cpp:7139 +msgid "Duty/Int" +msgstr "" + +#: src/gui/insEdit.cpp:7145 src/gui/insEdit.cpp:7406 +msgid "Load LFSR" +msgstr "" + +#: src/gui/insEdit.cpp:7165 +msgid "Envelope Mode" +msgstr "" + +#: src/gui/insEdit.cpp:7186 +msgid "Outputs" +msgstr "" + +#: src/gui/insEdit.cpp:7187 src/gui/insEdit.cpp:7217 src/gui/insEdit.cpp:7382 +#: src/gui/insEdit.cpp:7403 src/gui/insEdit.cpp:7415 src/gui/insEdit.cpp:7430 +msgid "Control" +msgstr "" + +#: src/gui/insEdit.cpp:7218 +msgid "Phase Reset Timer" +msgstr "" + +#: src/gui/insEdit.cpp:7252 src/gui/insEdit.cpp:7259 +msgid "Freq Divider" +msgstr "" + +#: src/gui/insEdit.cpp:7255 +msgid "Clock Divider" +msgstr "" + +#: src/gui/insEdit.cpp:7264 +msgid "Global Volume" +msgstr "" + +#: src/gui/insEdit.cpp:7286 +msgid "Echo Level" +msgstr "" + +#: src/gui/insEdit.cpp:7291 +msgid "Echo Feedback" +msgstr "" + +#: src/gui/insEdit.cpp:7292 +msgid "Echo Length" +msgstr "" + +#: src/gui/insEdit.cpp:7312 +msgid "Group Ctrl" +msgstr "" + +#: src/gui/insEdit.cpp:7313 +msgid "Group Attack" +msgstr "" + +#: src/gui/insEdit.cpp:7314 +msgid "Group Decay" +msgstr "" + +#: src/gui/insEdit.cpp:7320 +msgid "Noise Type" +msgstr "" + +#: src/gui/insEdit.cpp:7367 +msgid "Square/Noise" +msgstr "" + +#: src/gui/insEdit.cpp:7404 +msgid "Tap A Location" +msgstr "" + +#: src/gui/insEdit.cpp:7405 +msgid "Tap B Location" +msgstr "" + +#: src/gui/insEdit.cpp:7416 +msgid "Portion A Length" +msgstr "" + +#: src/gui/insEdit.cpp:7417 +msgid "Portion B Length" +msgstr "" + +#: src/gui/insEdit.cpp:7418 +msgid "Portion A Offset" +msgstr "" + +#: src/gui/insEdit.cpp:7419 +msgid "Portion B Offset" +msgstr "" + +#: src/gui/insEdit.cpp:7463 +msgid "Parameter" +msgstr "" + +#: src/gui/insEdit.cpp:7467 +msgid "Load Value" +msgstr "" + +#: src/gui/insEdit.cpp:7479 +msgid "Filter Toggle" +msgstr "" + +#: src/gui/insEdit.cpp:7486 +msgid "Wave Mix" +msgstr "" + +#: src/gui/insEdit.cpp:7500 +msgid "Octave offset" +msgstr "" + +#: src/gui/insEdit.cpp:7505 +msgid "go to Macros for other parameters." +msgstr "" + +#: src/gui/insEdit.cpp:7521 +msgid "invalid instrument type! change it first." +msgstr "" + +#: src/gui/insEdit.cpp:7565 +msgid "clear contents" +msgstr "" + +#: src/gui/insEdit.cpp:7571 +msgid "offset..." +msgstr "" + +#: src/gui/insEdit.cpp:7572 src/gui/insEdit.cpp:7605 +msgid "X" +msgstr "" + +#: src/gui/insEdit.cpp:7573 src/gui/insEdit.cpp:7609 +msgid "Y" +msgstr "" + +#: src/gui/insEdit.cpp:7574 +msgid "offset" +msgstr "" + +#: src/gui/insEdit.cpp:7637 +msgid "Min" +msgstr "" + +#: src/gui/insEdit.cpp:7638 +msgid "Max" msgstr "" diff --git a/po/ru.po b/po/ru.po index caf4a0a52..974d97b84 100644 --- a/po/ru.po +++ b/po/ru.po @@ -8,8 +8,905 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: src/main.cpp:510 +msgid "this is a test!" +msgstr "" + +#: src/gui/mixer.cpp:28 src/gui/insEdit.cpp:484 +msgid "left" +msgstr "" + +#: src/gui/mixer.cpp:29 src/gui/insEdit.cpp:483 +msgid "right" +msgstr "" + +#: src/gui/mixer.cpp:128 +msgid "input" +msgstr "" + +#: src/gui/mixer.cpp:168 +msgid "output" +msgstr "" + +#: src/gui/mixer.cpp:228 src/gui/editControls.cpp:454 src/gui/guiConst.cpp:593 +msgid "Mixer" +msgstr "" + +#: src/gui/mixer.cpp:229 +msgid "Master Volume" +msgstr "" + +#: src/gui/mixer.cpp:250 src/gui/exportOptions.cpp:90 +#: src/gui/userPresets.cpp:393 src/gui/userPresets.cpp:405 +#: src/gui/waveEdit.cpp:1096 src/gui/sampleEdit.cpp:1128 +#: src/gui/insEdit.cpp:519 +msgid "Invert" +msgstr "" + +#: src/gui/mixer.cpp:268 src/gui/userPresets.cpp:417 +#: src/gui/findReplace.cpp:687 src/gui/findReplace.cpp:943 +#: src/gui/guiConst.cpp:228 src/gui/sampleEdit.cpp:1003 +#: src/gui/insEdit.cpp:5575 src/gui/insEdit.cpp:5660 src/gui/insEdit.cpp:6920 +#: src/gui/insEdit.cpp:6928 src/gui/insEdit.cpp:6936 src/gui/insEdit.cpp:6946 +#: src/gui/insEdit.cpp:6961 src/gui/insEdit.cpp:6975 src/gui/insEdit.cpp:6987 +#: src/gui/insEdit.cpp:7000 src/gui/insEdit.cpp:7016 src/gui/insEdit.cpp:7022 +#: src/gui/insEdit.cpp:7032 src/gui/insEdit.cpp:7039 src/gui/insEdit.cpp:7045 +#: src/gui/insEdit.cpp:7058 src/gui/insEdit.cpp:7065 src/gui/insEdit.cpp:7072 +#: src/gui/insEdit.cpp:7081 src/gui/insEdit.cpp:7091 src/gui/insEdit.cpp:7099 +#: src/gui/insEdit.cpp:7105 src/gui/insEdit.cpp:7113 src/gui/insEdit.cpp:7120 +#: src/gui/insEdit.cpp:7126 src/gui/insEdit.cpp:7136 src/gui/insEdit.cpp:7148 +#: src/gui/insEdit.cpp:7156 src/gui/insEdit.cpp:7172 src/gui/insEdit.cpp:7177 +#: src/gui/insEdit.cpp:7190 src/gui/insEdit.cpp:7197 src/gui/insEdit.cpp:7208 +#: src/gui/insEdit.cpp:7221 src/gui/insEdit.cpp:7230 src/gui/insEdit.cpp:7237 +#: src/gui/insEdit.cpp:7245 src/gui/insEdit.cpp:7258 src/gui/insEdit.cpp:7263 +#: src/gui/insEdit.cpp:7269 src/gui/insEdit.cpp:7276 src/gui/insEdit.cpp:7284 +#: src/gui/insEdit.cpp:7295 src/gui/insEdit.cpp:7302 src/gui/insEdit.cpp:7310 +#: src/gui/insEdit.cpp:7318 src/gui/insEdit.cpp:7327 src/gui/insEdit.cpp:7335 +#: src/gui/insEdit.cpp:7341 src/gui/insEdit.cpp:7347 src/gui/insEdit.cpp:7353 +#: src/gui/insEdit.cpp:7358 src/gui/insEdit.cpp:7365 src/gui/insEdit.cpp:7372 +#: src/gui/insEdit.cpp:7380 src/gui/insEdit.cpp:7389 src/gui/insEdit.cpp:7397 +#: src/gui/insEdit.cpp:7409 src/gui/insEdit.cpp:7422 src/gui/insEdit.cpp:7433 +#: src/gui/insEdit.cpp:7443 src/gui/insEdit.cpp:7451 src/gui/insEdit.cpp:7461 +#: src/gui/insEdit.cpp:7470 +msgid "Volume" +msgstr "" + +#: src/gui/mixer.cpp:279 src/gui/userPresets.cpp:427 src/gui/guiConst.cpp:229 +#: src/gui/insEdit.cpp:6923 src/gui/insEdit.cpp:6930 src/gui/insEdit.cpp:6941 +#: src/gui/insEdit.cpp:6965 src/gui/insEdit.cpp:7067 src/gui/insEdit.cpp:7108 +#: src/gui/insEdit.cpp:7152 src/gui/insEdit.cpp:7192 src/gui/insEdit.cpp:7212 +#: src/gui/insEdit.cpp:7232 src/gui/insEdit.cpp:7240 src/gui/insEdit.cpp:7253 +#: src/gui/insEdit.cpp:7265 src/gui/insEdit.cpp:7271 src/gui/insEdit.cpp:7287 +#: src/gui/insEdit.cpp:7297 src/gui/insEdit.cpp:7360 src/gui/insEdit.cpp:7392 +#: src/gui/insEdit.cpp:7438 src/gui/insEdit.cpp:7446 +msgid "Panning" +msgstr "" + +#: src/gui/mixer.cpp:290 src/gui/userPresets.cpp:433 +msgid "Front/Rear" +msgstr "" + +#: src/gui/mixer.cpp:299 +msgid "Patchbay" +msgstr "" + +#: src/gui/mixer.cpp:305 +msgid "Automatic patchbay" +msgstr "" + +#: src/gui/mixer.cpp:310 +msgid "Display hidden ports" +msgstr "" + +#: src/gui/mixer.cpp:312 +msgid "Display internal" +msgstr "" + +#: src/gui/mixer.cpp:322 src/gui/mixer.cpp:383 src/gui/songInfo.cpp:69 +msgid "System" +msgstr "" + +#: src/gui/mixer.cpp:354 +msgid "Sample Preview" +msgstr "" + +#: src/gui/mixer.cpp:367 src/gui/editControls.cpp:745 +#: src/gui/editControls.cpp:837 src/gui/editControls.cpp:953 +#: src/gui/editControls.cpp:1093 src/gui/guiConst.cpp:558 +msgid "Metronome" +msgstr "" + +#: src/gui/mixer.cpp:446 +msgid "disconnect all" +msgstr "" + +#: src/gui/editing.cpp:200 +#, c-format +msgid "no data in oldPatMap for channel %d!" +msgstr "" + +#: src/gui/editing.cpp:664 src/gui/editing.cpp:1203 +#, c-format +msgid "invalid clipboard data! failed at line %d char %d" +msgstr "" + +#: src/gui/editing.cpp:1565 src/gui/editing.cpp:1669 +msgid "can't collapse any further!" +msgstr "" + +#: src/gui/editing.cpp:1749 +msgid "can't expand any further!" +msgstr "" + +#: src/gui/editing.cpp:1836 src/gui/editing.cpp:1851 +#, c-format +msgid "copy: %s" +msgstr "" + +#: src/gui/memory.cpp:146 +#, c-format +msgid "bank %d" +msgstr "" + +#: src/gui/memory.cpp:175 src/gui/memory.cpp:176 +msgid "no chips with memory" +msgstr "" + +#: src/gui/intro.cpp:89 src/gui/gui.cpp:2339 src/gui/gui.cpp:3740 +#: src/gui/gui.cpp:5007 src/gui/gui.cpp:5029 src/gui/gui.cpp:5467 +#: src/gui/gui.cpp:5769 src/gui/gui.cpp:5779 +#, c-format +msgid "Error while loading file! (%s)" +msgstr "" + +#: src/gui/intro.cpp:124 +msgid "Preview" +msgstr "" + +#: src/gui/intro.cpp:176 src/gui/intro.cpp:177 src/gui/intro.cpp:178 +msgid "SORRY NOTHING" +msgstr "" + +#: src/gui/intro.cpp:310 +msgid "hold to skip" +msgstr "" + +#: src/gui/dataList.cpp:76 +msgid "Bug!" +msgstr "" + +#: src/gui/dataList.cpp:79 src/gui/util.cpp:107 src/gui/util.cpp:109 +#: src/gui/insEdit.cpp:5334 +msgid "Unknown" +msgstr "" + +#: src/gui/dataList.cpp:136 src/gui/dataList.cpp:260 +msgid "duplicate" +msgstr "" + +#: src/gui/dataList.cpp:139 src/gui/dataList.cpp:263 src/gui/dataList.cpp:388 +#: src/gui/dataList.cpp:731 src/gui/dataList.cpp:867 +msgid "replace..." +msgstr "" + +#: src/gui/dataList.cpp:142 src/gui/dataList.cpp:266 src/gui/gui.cpp:4226 +msgid "save" +msgstr "" + +#: src/gui/dataList.cpp:145 +msgid "save (.dmp)" +msgstr "" + +#: src/gui/dataList.cpp:148 src/gui/dataList.cpp:269 src/gui/dataList.cpp:617 +#: src/gui/dataList.cpp:994 src/gui/dataList.cpp:1040 +#: src/gui/editControls.cpp:50 src/gui/gui.cpp:2761 src/gui/gui.cpp:2770 +msgid "delete" +msgstr "" + +#: src/gui/dataList.cpp:243 +msgid "out of memory for this sample!" +msgstr "" + +#: src/gui/dataList.cpp:254 +msgid "make instrument" +msgstr "" + +#: src/gui/dataList.cpp:257 +msgid "make me a drum kit" +msgstr "" + +#: src/gui/dataList.cpp:312 src/gui/dataList.cpp:714 src/gui/dataList.cpp:846 +#: src/gui/subSongs.cpp:88 src/gui/insEdit.cpp:520 +msgid "Add" +msgstr "" + +#: src/gui/dataList.cpp:338 src/gui/dataList.cpp:721 src/gui/dataList.cpp:853 +#: src/gui/subSongs.cpp:108 +msgid "Duplicate" +msgstr "" + +#: src/gui/dataList.cpp:359 src/gui/dataList.cpp:728 src/gui/dataList.cpp:860 +#: src/gui/editControls.cpp:497 src/gui/waveEdit.cpp:435 +#: src/gui/waveEdit.cpp:467 src/gui/sampleEdit.cpp:122 +#: src/gui/sampleEdit.cpp:171 src/gui/insEdit.cpp:5239 src/gui/insEdit.cpp:5304 +msgid "Open" +msgstr "" + +#: src/gui/dataList.cpp:363 +msgid "replace instrument..." +msgstr "" + +#: src/gui/dataList.cpp:366 +msgid "load instrument from TX81Z" +msgstr "" + +#: src/gui/dataList.cpp:372 +msgid "replace wavetable..." +msgstr "" + +#: src/gui/dataList.cpp:378 +msgid "replace sample..." +msgstr "" + +#: src/gui/dataList.cpp:381 +msgid "import raw sample..." +msgstr "" + +#: src/gui/dataList.cpp:384 +msgid "import raw sample (replace)..." +msgstr "" + +#: src/gui/dataList.cpp:392 +msgid "load from TX81Z" +msgstr "" + +#: src/gui/dataList.cpp:399 +msgid "Open (insert; right-click to replace)" +msgstr "" + +#: src/gui/dataList.cpp:420 src/gui/dataList.cpp:741 src/gui/dataList.cpp:884 +#: src/gui/editControls.cpp:502 src/gui/waveEdit.cpp:474 +#: src/gui/sampleEdit.cpp:184 src/gui/insEdit.cpp:5311 +msgid "Save" +msgstr "" + +#: src/gui/dataList.cpp:424 +msgid "save instrument as .dmp..." +msgstr "" + +#: src/gui/dataList.cpp:430 +msgid "save wavetable as .dmw..." +msgstr "" + +#: src/gui/dataList.cpp:433 +msgid "save raw wavetable..." +msgstr "" + +#: src/gui/dataList.cpp:439 +msgid "save raw sample..." +msgstr "" + +#: src/gui/dataList.cpp:443 src/gui/insEdit.cpp:5314 +msgid "save as .dmp..." +msgstr "" + +#: src/gui/dataList.cpp:456 src/gui/dataList.cpp:761 src/gui/dataList.cpp:903 +msgid "Toggle folders/standard view" +msgstr "" + +#: src/gui/dataList.cpp:478 src/gui/dataList.cpp:769 src/gui/dataList.cpp:911 +#: src/gui/subSongs.cpp:55 +msgid "Move up" +msgstr "" + +#: src/gui/dataList.cpp:499 src/gui/dataList.cpp:776 src/gui/dataList.cpp:918 +#: src/gui/subSongs.cpp:62 +msgid "Move down" +msgstr "" + +#: src/gui/dataList.cpp:510 src/gui/dataList.cpp:787 src/gui/dataList.cpp:929 +msgid "Create" +msgstr "" + +#: src/gui/dataList.cpp:540 src/gui/dataList.cpp:797 src/gui/dataList.cpp:939 +msgid "New folder" +msgstr "" + +#: src/gui/dataList.cpp:549 src/gui/dataList.cpp:947 +msgid "Preview (right click to stop)" +msgstr "" + +#: src/gui/dataList.cpp:576 src/gui/dataList.cpp:807 src/gui/dataList.cpp:959 +#: src/gui/guiConst.cpp:666 src/gui/sampleEdit.cpp:1105 +msgid "Delete" +msgstr "" + +#: src/gui/dataList.cpp:593 src/gui/gui.cpp:5902 +msgid "Instruments" +msgstr "" + +#: src/gui/dataList.cpp:608 src/gui/dataList.cpp:985 src/gui/dataList.cpp:1031 +msgid "" +msgstr "" + +#: src/gui/dataList.cpp:614 src/gui/dataList.cpp:991 src/gui/dataList.cpp:1037 +msgid "rename..." +msgstr "" + +#: src/gui/dataList.cpp:663 src/gui/gui.cpp:5911 +msgid "Wavetables" +msgstr "" + +#: src/gui/dataList.cpp:674 src/gui/xyOsc.cpp:68 src/gui/sampleEdit.cpp:898 +#: src/gui/sampleEdit.cpp:1072 src/gui/gui.cpp:5920 +msgid "Samples" +msgstr "" + +#: src/gui/dataList.cpp:745 src/gui/waveEdit.cpp:477 +msgid "save as .dmw..." +msgstr "" + +#: src/gui/dataList.cpp:748 src/gui/dataList.cpp:891 src/gui/waveEdit.cpp:480 +#: src/gui/sampleEdit.cpp:187 +msgid "save raw..." +msgstr "" + +#: src/gui/dataList.cpp:871 src/gui/sampleEdit.cpp:174 +msgid "import raw..." +msgstr "" + +#: src/gui/dataList.cpp:874 +msgid "import raw (replace)..." +msgstr "" + +#: src/gui/exportOptions.cpp:29 +msgid "Export type:" +msgstr "" + +#: src/gui/exportOptions.cpp:32 +msgid "one file" +msgstr "" + +#: src/gui/exportOptions.cpp:35 +msgid "multiple files (one per chip)" +msgstr "" + +#: src/gui/exportOptions.cpp:38 +msgid "multiple files (one per channel)" +msgstr "" + +#: src/gui/exportOptions.cpp:44 +msgid "Bit depth:" +msgstr "" + +#: src/gui/exportOptions.cpp:46 +msgid "16-bit integer" +msgstr "" + +#: src/gui/exportOptions.cpp:49 +msgid "32-bit float" +msgstr "" + +#: src/gui/exportOptions.cpp:55 src/gui/gui.cpp:6258 +msgid "Sample rate" +msgstr "" + +#: src/gui/exportOptions.cpp:61 +msgid "Channels in file" +msgstr "" + +#: src/gui/exportOptions.cpp:67 +msgid "Loops" +msgstr "" + +#: src/gui/exportOptions.cpp:70 +msgid "Fade out (seconds)" +msgstr "" + +#: src/gui/exportOptions.cpp:76 +msgid "Channels to export:" +msgstr "" + +#: src/gui/exportOptions.cpp:78 src/gui/effectList.cpp:32 src/gui/gui.cpp:6174 +msgid "All" +msgstr "" + +#: src/gui/exportOptions.cpp:84 src/gui/effectList.cpp:34 +#: src/gui/compatFlags.cpp:219 src/gui/waveEdit.cpp:37 src/gui/gui.cpp:6180 +#: src/gui/insEdit.cpp:518 +msgid "None" +msgstr "" + +#: src/gui/exportOptions.cpp:110 src/gui/exportOptions.cpp:214 +#: src/gui/exportOptions.cpp:225 src/gui/exportOptions.cpp:243 +#: src/gui/exportOptions.cpp:266 src/gui/exportOptions.cpp:297 +#: src/gui/exportOptions.cpp:318 src/gui/exportOptions.cpp:341 +#: src/gui/commandPalette.cpp:199 src/gui/newSong.cpp:273 src/gui/gui.cpp:5657 +#: src/gui/gui.cpp:5681 src/gui/gui.cpp:5705 src/gui/gui.cpp:5729 +#: src/gui/gui.cpp:5753 src/gui/gui.cpp:5784 src/gui/gui.cpp:5843 +#: src/gui/gui.cpp:6217 src/gui/gui.cpp:6341 +msgid "Cancel" +msgstr "" + +#: src/gui/exportOptions.cpp:115 src/gui/exportOptions.cpp:217 +#: src/gui/exportOptions.cpp:246 src/gui/exportOptions.cpp:300 +#: src/gui/exportOptions.cpp:321 src/gui/exportOptions.cpp:344 +#: src/gui/editControls.cpp:512 src/gui/userPresets.cpp:523 +#: src/gui/guiConst.cpp:536 src/gui/gui.cpp:5566 src/gui/gui.cpp:5618 +msgid "Export" +msgstr "" + +#: src/gui/exportOptions.cpp:130 +msgid "select at least one channel" +msgstr "" + +#: src/gui/exportOptions.cpp:137 +msgid "settings:" +msgstr "" + +#: src/gui/exportOptions.cpp:138 +msgid "format version" +msgstr "" + +#: src/gui/exportOptions.cpp:146 src/gui/exportOptions.cpp:238 +#: src/gui/insEdit.cpp:362 +msgid "loop" +msgstr "" + +#: src/gui/exportOptions.cpp:148 +msgid "loop trail:" +msgstr "" + +#: src/gui/exportOptions.cpp:150 +msgid "auto-detect" +msgstr "" + +#: src/gui/exportOptions.cpp:153 +msgid "add one loop" +msgstr "" + +#: src/gui/exportOptions.cpp:156 +msgid "custom" +msgstr "" + +#: src/gui/exportOptions.cpp:167 +msgid "add pattern change hints" +msgstr "" + +#: src/gui/exportOptions.cpp:170 +msgid "" +"inserts data blocks on pattern changes.\n" +"useful if you are writing a playback routine.\n" +"\n" +"the format of a pattern change data block is:\n" +"67 66 FE ll ll ll ll 01 oo rr pp pp pp ...\n" +"- ll: length, a 32-bit little-endian number\n" +"- oo: order\n" +"- rr: initial row (a 0Dxx effect is able to select a different row)\n" +"- pp: pattern index (one per channel)\n" +"\n" +"pattern indexes are ordered as they appear in the song." +msgstr "" + +#: src/gui/exportOptions.cpp:183 +msgid "direct stream mode" +msgstr "" + +#: src/gui/exportOptions.cpp:186 +msgid "" +"required for DualPCM and MSM6258 export.\n" +"\n" +"allows for volume/direction changes when playing samples,\n" +"at the cost of a massive increase in file size." +msgstr "" + +#: src/gui/exportOptions.cpp:191 +msgid "chips to export:" +msgstr "" + +#: src/gui/exportOptions.cpp:200 +#, c-format +msgid "this chip is only available in VGM %d.%.2x and higher!" +msgstr "" + +#: src/gui/exportOptions.cpp:204 +msgid "this chip is not supported by the VGM format!" +msgstr "" + +#: src/gui/exportOptions.cpp:210 +#, c-format +msgid "select the chip you wish to export, but only up to %d of each type." +msgstr "" + +#: src/gui/exportOptions.cpp:222 +msgid "nothing to export" +msgstr "" + +#: src/gui/exportOptions.cpp:233 +msgid "Commander X16 Zsound Music File" +msgstr "" + +#: src/gui/exportOptions.cpp:234 +msgid "Tick Rate (Hz)" +msgstr "" + +#: src/gui/exportOptions.cpp:240 +msgid "optimize size" +msgstr "" + +#: src/gui/exportOptions.cpp:256 src/gui/editControls.cpp:630 +msgid "" +"this is NOT ROM export! only use for making sure the\n" +"Furnace Amiga emulator is working properly by\n" +"comparing it with real Amiga output." +msgstr "" + +#: src/gui/exportOptions.cpp:261 src/gui/editControls.cpp:635 +msgid "Directory" +msgstr "" + +#: src/gui/exportOptions.cpp:269 src/gui/editControls.cpp:638 +msgid "Bake Data" +msgstr "" + +#: src/gui/exportOptions.cpp:284 src/gui/editControls.cpp:653 +#, c-format +msgid "Done! Baked %d files." +msgstr "" + +#: src/gui/exportOptions.cpp:293 +msgid "this option exports the song to a text file.\n" +msgstr "" + +#: src/gui/exportOptions.cpp:310 +msgid "" +"this option exports a text or binary file which\n" +"contains a dump of the internal command stream\n" +"produced when playing the song.\n" +"\n" +"technical/development use only!" +msgstr "" + +#: src/gui/exportOptions.cpp:331 +msgid "" +"export in DefleMask module format.\n" +"only do it if you really, really need to, or are downgrading an existing ." +"dmf." +msgstr "" + +#: src/gui/exportOptions.cpp:335 +msgid "format version:" +msgstr "" + +#: src/gui/exportOptions.cpp:336 +msgid "1.1.3 and higher" +msgstr "" + +#: src/gui/exportOptions.cpp:337 +msgid "1.0/legacy (0.12)" +msgstr "" + +#: src/gui/exportOptions.cpp:357 +msgid "Audio" +msgstr "" + +#: src/gui/exportOptions.cpp:361 +msgid "VGM" +msgstr "" + +#: src/gui/exportOptions.cpp:370 +msgid "ZSM" +msgstr "" + +#: src/gui/exportOptions.cpp:380 +msgid "Amiga Validation" +msgstr "" + +#: src/gui/exportOptions.cpp:385 +msgid "Text" +msgstr "" + +#: src/gui/exportOptions.cpp:389 +msgid "Command Stream" +msgstr "" + +#: src/gui/exportOptions.cpp:393 +msgid "DMF" +msgstr "" + +#: src/gui/exportOptions.cpp:422 +msgid "congratulations! you've unlocked a secret panel." +msgstr "" + +#: src/gui/exportOptions.cpp:423 +msgid "Toggle hidden systems" +msgstr "" + +#: src/gui/exportOptions.cpp:427 +msgid "Toggle all instrument types" +msgstr "" + +#: src/gui/exportOptions.cpp:431 +msgid "Set pitch linearity to Partial" +msgstr "" + +#: src/gui/exportOptions.cpp:435 +msgid "Enable multi-threading settings" +msgstr "" + +#: src/gui/exportOptions.cpp:439 +msgid "Set fat to max" +msgstr "" + +#: src/gui/exportOptions.cpp:446 +msgid "Set muscle and fat to zero" +msgstr "" + +#: src/gui/exportOptions.cpp:453 +msgid "Tell tildearrow this must be a mistake" +msgstr "" + +#: src/gui/exportOptions.cpp:454 +msgid "" +"yeah, it's a bug. write a bug report in the GitHub page and tell me how did " +"you get here." +msgstr "" + +#: src/gui/speed.cpp:41 +msgid "Base Tempo##TempoOrHz" +msgstr "" + +#: src/gui/speed.cpp:41 +msgid "Tick Rate##TempoOrHz" +msgstr "" + +#: src/gui/speed.cpp:46 +msgid "click to display tick rate" +msgstr "" + +#: src/gui/speed.cpp:48 +msgid "click to display base tempo" +msgstr "" + +#: src/gui/speed.cpp:80 +msgid "Groove" +msgstr "" + +#: src/gui/speed.cpp:87 +msgid "click for one speed" +msgstr "" + +#: src/gui/speed.cpp:90 +msgid "Speeds" +msgstr "" + +#: src/gui/speed.cpp:99 +msgid "click for groove pattern" +msgstr "" + +#: src/gui/speed.cpp:102 src/gui/editControls.cpp:532 src/gui/guiConst.cpp:232 +#: src/gui/guiConst.cpp:581 src/gui/insEdit.cpp:2028 src/gui/insEdit.cpp:5693 +#: src/gui/insEdit.cpp:6885 +msgid "Speed" +msgstr "" + +#: src/gui/speed.cpp:110 +msgid "click for two (alternating) speeds" +msgstr "" + +#: src/gui/speed.cpp:168 +msgid "Virtual Tempo" +msgstr "" + +#: src/gui/speed.cpp:177 +msgid "Numerator" +msgstr "" + +#: src/gui/speed.cpp:187 +msgid "Denominator (set to base tempo)" +msgstr "" + +#: src/gui/speed.cpp:193 +msgid "Divider" +msgstr "" + +#: src/gui/speed.cpp:208 +msgid "Highlight" +msgstr "" + +#: src/gui/speed.cpp:231 +msgid "Pattern Length" +msgstr "" + +#: src/gui/speed.cpp:245 +msgid "Song Length" +msgstr "" + +#: src/gui/channels.cpp:49 +msgid "Pat" +msgstr "" + +#: src/gui/channels.cpp:51 src/gui/editControls.cpp:550 +msgid "Osc" +msgstr "" + +#: src/gui/channels.cpp:53 +msgid "Swap" +msgstr "" + +#: src/gui/channels.cpp:55 src/gui/userPresets.cpp:368 +#: src/gui/effectList.cpp:45 src/gui/subSongs.cpp:125 +#: src/gui/sampleEdit.cpp:195 src/gui/songInfo.cpp:40 src/gui/sysManager.cpp:54 +#: src/gui/insEdit.cpp:5288 +msgid "Name" +msgstr "" + +#: src/gui/channels.cpp:64 +msgid "Show in pattern" +msgstr "" + +#: src/gui/channels.cpp:71 +msgid "Show in per-channel oscilloscope" +msgstr "" + +#: src/gui/channels.cpp:82 +#, c-format +msgid "" +"%s #%d\n" +"(drag to swap channels)" +msgstr "" + +#: src/gui/commandPalette.cpp:51 src/gui/sysPicker.cpp:35 +#: src/gui/newSong.cpp:133 +msgid "Search..." +msgstr "" + +#: src/gui/commandPalette.cpp:54 +msgid "Search recent files..." +msgstr "" + +#: src/gui/commandPalette.cpp:57 +msgid "Search instruments..." +msgstr "" + +#: src/gui/commandPalette.cpp:60 +msgid "Search samples..." +msgstr "" + +#: src/gui/commandPalette.cpp:63 +msgid "Search instruments (to change to)..." +msgstr "" + +#: src/gui/commandPalette.cpp:66 +msgid "Search chip (to add)..." +msgstr "" + +#: src/gui/commandPalette.cpp:93 src/gui/commandPalette.cpp:167 +msgid "- None -" +msgstr "" + +#: src/gui/commandPalette.cpp:123 src/gui/commandPalette.cpp:179 +#: src/gui/commandPalette.cpp:241 +msgid "invalid command palette type" +msgstr "" + +#: src/gui/regView.cpp:38 +msgid "- no register pool available" +msgstr "" + +#: src/gui/log.cpp:25 src/gui/effectList.cpp:84 +msgid "ERROR" +msgstr "" + +#: src/gui/log.cpp:26 +msgid "warning" +msgstr "" + +#: src/gui/log.cpp:27 +msgid "info" +msgstr "" + +#: src/gui/log.cpp:28 src/gui/gui.cpp:4507 +msgid "debug" +msgstr "" + +#: src/gui/log.cpp:29 +msgid "trace" +msgstr "" + +#: src/gui/log.cpp:48 src/gui/editControls.cpp:750 src/gui/editControls.cpp:883 +#: src/gui/editControls.cpp:1000 +msgid "Follow" +msgstr "" + +#: src/gui/log.cpp:50 src/gui/waveEdit.cpp:681 src/gui/insEdit.cpp:50 +msgid "Level" +msgstr "" + +#: src/gui/log.cpp:68 +msgid "time" +msgstr "" + +#: src/gui/log.cpp:70 +msgid "level" +msgstr "" + +#: src/gui/log.cpp:72 +msgid "message" +msgstr "" + +#: src/gui/pattern.cpp:468 +msgid "there aren't any channels to show." +msgstr "" + +#: src/gui/pattern.cpp:492 +msgid "click for pattern options (effect columns/pattern names/visualizer)" +msgstr "" + +#: src/gui/pattern.cpp:504 +msgid "Options:" +msgstr "" + +#: src/gui/pattern.cpp:506 +msgid "Effect columns/collapse" +msgstr "" + +#: src/gui/pattern.cpp:507 +msgid "Pattern names" +msgstr "" + +#: src/gui/pattern.cpp:508 +msgid "Channel group hints" +msgstr "" + +#: src/gui/pattern.cpp:509 +msgid "Visualizer" +msgstr "" + +#: src/gui/pattern.cpp:517 +msgid "Channel status:" +msgstr "" + +#: src/gui/pattern.cpp:519 +msgid "No##_PCS0" +msgstr "" + +#: src/gui/pattern.cpp:522 +msgid "Yes##_PCS1" +msgstr "" + +#: src/gui/pattern.cpp:1420 src/gui/pattern.cpp:1452 +msgid "WARNING!!" +msgstr "" + +#: src/gui/pattern.cpp:1422 src/gui/pattern.cpp:1459 +msgid "this instrument cannot be previewed because" +msgstr "" + +#: src/gui/pattern.cpp:1423 src/gui/pattern.cpp:1466 +msgid "none of the chips can play it" +msgstr "" + +#: src/gui/pattern.cpp:1424 src/gui/pattern.cpp:1473 +msgid "your instrument is in peril!! be careful..." +msgstr "" + +#: src/gui/osc.cpp:176 +#, c-format +msgid "zoom: %.2fx (%.1fdB)" +msgstr "" + +#: src/gui/osc.cpp:187 +#, c-format +msgid "window size: %.1fms" +msgstr "" + +#: src/gui/osc.cpp:385 +msgid "(-Infinity)dB" +msgstr "" #: src/gui/debugWindow.cpp:662 msgid "This is a language test." @@ -19,6 +916,6837 @@ msgstr "" msgid "This is another language test." msgstr "" -#: src/main.cpp:510 -msgid "this is a test!" +#: src/gui/chanOsc.cpp:143 +msgid "Columns" +msgstr "" + +#: src/gui/chanOsc.cpp:152 +msgid "Size (ms)" +msgstr "" + +#: src/gui/chanOsc.cpp:163 +msgid "Automatic columns" +msgstr "" + +#: src/gui/chanOsc.cpp:177 +msgid "Center waveform" +msgstr "" + +#: src/gui/chanOsc.cpp:183 +msgid "Randomize phase on note" +msgstr "" + +#: src/gui/chanOsc.cpp:189 +msgid "Amplitude" +msgstr "" + +#: src/gui/chanOsc.cpp:199 +msgid "Line size" +msgstr "" + +#: src/gui/chanOsc.cpp:211 +msgid "Gradient" +msgstr "" + +#: src/gui/chanOsc.cpp:218 +msgid "error while creating gradient texture!" +msgstr "" + +#: src/gui/chanOsc.cpp:236 +msgid "error while updating gradient texture!" +msgstr "" + +#: src/gui/chanOsc.cpp:292 src/gui/chanOsc.cpp:348 +msgid "Color" +msgstr "" + +#: src/gui/chanOsc.cpp:296 +msgid "Distance" +msgstr "" + +#: src/gui/chanOsc.cpp:305 +msgid "Spread" +msgstr "" + +#: src/gui/chanOsc.cpp:314 src/gui/userPresets.cpp:370 src/gui/subSongs.cpp:121 +#: src/gui/sysManager.cpp:124 +msgid "Remove" +msgstr "" + +#: src/gui/chanOsc.cpp:338 +msgid "Background" +msgstr "" + +#: src/gui/chanOsc.cpp:341 +msgid "X Axis##AxisX" +msgstr "" + +#: src/gui/chanOsc.cpp:342 +msgid "Y Axis##AxisY" +msgstr "" + +#: src/gui/chanOsc.cpp:352 +msgid "Text format:" +msgstr "" + +#: src/gui/chanOsc.cpp:358 +msgid "" +"format guide:\n" +"- %c: channel name\n" +"- %C: channel short name\n" +"- %d: channel number (starting from 0)\n" +"- %D: channel number (starting from 1)\n" +"- %n: channel note\n" +"- %i: instrument name\n" +"- %I: instrument number (decimal)\n" +"- %x: instrument number (hex)\n" +"- %s: chip name\n" +"- %p: chip part number\n" +"- %S: chip ID\n" +"- %v: volume (decimal)\n" +"- %V: volume (percentage)\n" +"- %b: volume (hex)\n" +"- %l: new line\n" +"- %%: percent sign" +msgstr "" + +#: src/gui/chanOsc.cpp:380 +msgid "Text color" +msgstr "" + +#: src/gui/chanOsc.cpp:382 src/gui/xyOsc.cpp:80 src/gui/tutorial.cpp:687 +#: src/gui/gui.cpp:5627 src/gui/gui.cpp:6043 src/gui/gui.cpp:6211 +#: src/gui/gui.cpp:6310 src/gui/gui.cpp:6359 +msgid "OK" +msgstr "" + +#: src/gui/chanOsc.cpp:400 +msgid "creating chan osc work pool" +msgstr "" + +#: src/gui/chanOsc.cpp:429 +#, c-format +msgid "creating FFT plan for channel %d" +msgstr "" + +#: src/gui/chanOsc.cpp:436 +msgid "failed to create plan!" +msgstr "" + +#: src/gui/chanOsc.cpp:438 +msgid "failed to create inverse plan!" +msgstr "" + +#: src/gui/chanOsc.cpp:440 +msgid "failed to create FFT buffers" +msgstr "" + +#: src/gui/chanOsc.cpp:585 +msgid "Error!" +msgstr "" + +#: src/gui/editControls.cpp:47 src/gui/sampleEdit.cpp:1736 src/gui/gui.cpp:2727 +#: src/gui/insEdit.cpp:363 +msgid "cut" +msgstr "" + +#: src/gui/editControls.cpp:48 src/gui/sampleEdit.cpp:1740 src/gui/gui.cpp:2728 +#: src/gui/insEdit.cpp:7538 +msgid "copy" +msgstr "" + +#: src/gui/editControls.cpp:49 src/gui/sampleEdit.cpp:1744 src/gui/gui.cpp:2729 +#: src/gui/gui.cpp:2782 src/gui/insEdit.cpp:7543 +msgid "paste" +msgstr "" + +#: src/gui/editControls.cpp:51 +msgid "" +"select\n" +"all" +msgstr "" + +#: src/gui/editControls.cpp:52 +msgid "piano" +msgstr "" + +#: src/gui/editControls.cpp:53 src/gui/gui.cpp:4423 +msgid "undo" +msgstr "" + +#: src/gui/editControls.cpp:54 src/gui/gui.cpp:4424 +msgid "redo" +msgstr "" + +#: src/gui/editControls.cpp:57 +msgid "" +"paste\n" +"mix" +msgstr "" + +#: src/gui/editControls.cpp:58 +msgid "" +"paste\n" +"mix bg" +msgstr "" + +#: src/gui/editControls.cpp:59 +msgid "" +"paste\n" +"ins" +msgstr "" + +#: src/gui/editControls.cpp:60 +msgid "" +"paste\n" +"ins bg" +msgstr "" + +#: src/gui/editControls.cpp:61 +msgid "" +"paste\n" +"flood" +msgstr "" + +#: src/gui/editControls.cpp:62 +msgid "" +"paste\n" +"overflow" +msgstr "" + +#: src/gui/editControls.cpp:63 +msgid "" +"transpose\n" +"notes" +msgstr "" + +#: src/gui/editControls.cpp:64 +msgid "" +"transpose\n" +"values" +msgstr "" + +#: src/gui/editControls.cpp:67 +msgid "" +"change\n" +"ins" +msgstr "" + +#: src/gui/editControls.cpp:68 +msgid "" +"find/\n" +"replace" +msgstr "" + +#: src/gui/editControls.cpp:69 src/gui/gui.cpp:3057 +msgid "collapse" +msgstr "" + +#: src/gui/editControls.cpp:70 src/gui/gui.cpp:3058 +msgid "expand" +msgstr "" + +#: src/gui/editControls.cpp:71 src/gui/gui.cpp:2814 +msgid "flip" +msgstr "" + +#: src/gui/editControls.cpp:72 src/gui/insEdit.cpp:430 +msgid "invert" +msgstr "" + +#: src/gui/editControls.cpp:73 src/gui/gui.cpp:2794 src/gui/gui.cpp:2954 +msgid "interpolate" +msgstr "" + +#: src/gui/editControls.cpp:74 src/gui/gui.cpp:2806 src/gui/insEdit.cpp:7610 +msgid "scale" +msgstr "" + +#: src/gui/editControls.cpp:77 src/gui/gui.cpp:2798 +msgid "fade" +msgstr "" + +#: src/gui/editControls.cpp:78 src/gui/gui.cpp:2810 src/gui/insEdit.cpp:7639 +msgid "randomize" +msgstr "" + +#: src/gui/editControls.cpp:79 +msgid "opmask" +msgstr "" + +#: src/gui/editControls.cpp:80 +msgid "" +"scroll\n" +"mode" +msgstr "" + +#: src/gui/editControls.cpp:81 +msgid "" +"input\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:82 +msgid "" +"set\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:83 +msgid "" +"clear\n" +"latch" +msgstr "" + +#: src/gui/editControls.cpp:84 src/gui/findReplace.cpp:43 +#: src/gui/insEdit.cpp:7557 +msgid "clear" +msgstr "" + +#: src/gui/editControls.cpp:421 src/gui/editControls.cpp:754 +#: src/gui/editControls.cpp:887 src/gui/editControls.cpp:1015 +#: src/gui/findReplace.cpp:794 src/gui/guiConst.cpp:582 src/gui/gui.cpp:5887 +msgid "Pattern" +msgstr "" + +#: src/gui/editControls.cpp:425 src/gui/editControls.cpp:752 +#: src/gui/editControls.cpp:885 src/gui/editControls.cpp:1007 +#: src/gui/guiConst.cpp:577 src/gui/gui.cpp:5876 +msgid "Orders" +msgstr "" + +#: src/gui/editControls.cpp:429 src/gui/findReplace.cpp:669 +#: src/gui/findReplace.cpp:914 +msgid "Ins" +msgstr "" + +#: src/gui/editControls.cpp:433 +msgid "Wave" +msgstr "" + +#: src/gui/editControls.cpp:437 src/gui/guiConst.cpp:1397 +#: src/gui/insEdit.cpp:2628 src/gui/insEdit.cpp:2666 +msgid "Sample" +msgstr "" + +#: src/gui/editControls.cpp:442 src/gui/findReplace.cpp:788 +#: src/gui/guiConst.cpp:230 +msgid "Song" +msgstr "" + +#: src/gui/editControls.cpp:446 src/gui/guiConst.cpp:601 src/gui/gui.cpp:6268 +msgid "Channels" +msgstr "" + +#: src/gui/editControls.cpp:450 src/gui/sampleEdit.cpp:494 +msgid "Chips" +msgstr "" + +#: src/gui/editControls.cpp:458 src/gui/compatFlags.cpp:319 +msgid "Other" +msgstr "" + +#: src/gui/editControls.cpp:487 src/gui/guiConst.cpp:531 +msgid "New" +msgstr "" + +#: src/gui/editControls.cpp:491 src/gui/doAction.cpp:38 src/gui/gui.cpp:4188 +msgid "Unsaved changes! Save changes before creating a new song?" +msgstr "" + +#: src/gui/editControls.cpp:507 +msgid "Save as..." +msgstr "" + +#: src/gui/editControls.cpp:516 src/gui/gui.cpp:1674 +msgid "Restore Backup" +msgstr "" + +#: src/gui/editControls.cpp:524 +msgid "Song Info" +msgstr "" + +#: src/gui/editControls.cpp:528 src/gui/guiConst.cpp:608 +msgid "Subsongs" +msgstr "" + +#: src/gui/editControls.cpp:541 +msgid "Channels here..." +msgstr "" + +#: src/gui/editControls.cpp:544 +msgid "Chips here..." +msgstr "" + +#: src/gui/editControls.cpp:547 +msgid "What the hell..." +msgstr "" + +#: src/gui/editControls.cpp:554 +msgid "ChanOsc" +msgstr "" + +#: src/gui/editControls.cpp:558 +msgid "RegView" +msgstr "" + +#: src/gui/editControls.cpp:562 +msgid "Stats" +msgstr "" + +#: src/gui/editControls.cpp:566 src/gui/guiConst.cpp:611 +msgid "Grooves" +msgstr "" + +#: src/gui/editControls.cpp:569 +msgid "Compat Flags" +msgstr "" + +#: src/gui/editControls.cpp:573 +msgid "XYOsc" +msgstr "" + +#: src/gui/editControls.cpp:577 +msgid "Meter" +msgstr "" + +#: src/gui/editControls.cpp:581 +msgid "Memory" +msgstr "" + +#: src/gui/editControls.cpp:585 +msgid "CV" +msgstr "" + +#: src/gui/editControls.cpp:589 +msgid "Presets" +msgstr "" + +#: src/gui/editControls.cpp:593 +msgid "PatManager" +msgstr "" + +#: src/gui/editControls.cpp:599 src/gui/guiConst.cpp:564 +msgid "Panic" +msgstr "" + +#: src/gui/editControls.cpp:601 src/gui/guiConst.cpp:589 +#: src/gui/guiConst.cpp:591 src/gui/gui.cpp:4433 +msgid "Settings" +msgstr "" + +#: src/gui/editControls.cpp:606 +msgid "Log" +msgstr "" + +#: src/gui/editControls.cpp:610 +msgid "Debug" +msgstr "" + +#: src/gui/editControls.cpp:614 src/gui/guiConst.cpp:587 +msgid "About" +msgstr "" + +#: src/gui/editControls.cpp:619 +msgid "Switch to Desktop Mode" +msgstr "" + +#: src/gui/editControls.cpp:681 src/gui/editControls.cpp:842 +#: src/gui/editControls.cpp:959 src/gui/editControls.cpp:1125 +msgid "Octave" +msgstr "" + +#: src/gui/editControls.cpp:698 src/gui/editControls.cpp:857 +msgid "Coarse Step" +msgstr "" + +#: src/gui/editControls.cpp:698 src/gui/editControls.cpp:857 +msgid "Edit Step" +msgstr "" + +#: src/gui/editControls.cpp:731 src/gui/editControls.cpp:797 +#: src/gui/editControls.cpp:911 src/gui/editControls.cpp:1048 +#: src/gui/guiConst.cpp:545 +msgid "Play" +msgstr "" + +#: src/gui/editControls.cpp:739 src/gui/editControls.cpp:789 +#: src/gui/editControls.cpp:918 src/gui/editControls.cpp:1040 +#: src/gui/guiConst.cpp:546 +msgid "Stop" +msgstr "" + +#: src/gui/editControls.cpp:742 src/gui/editControls.cpp:826 +#: src/gui/editControls.cpp:943 src/gui/editControls.cpp:1082 +#: src/gui/gui.cpp:4420 +msgid "Edit" +msgstr "" + +#: src/gui/editControls.cpp:757 src/gui/editControls.cpp:816 +#: src/gui/editControls.cpp:934 src/gui/editControls.cpp:1104 +msgid "Repeat pattern" +msgstr "" + +#: src/gui/editControls.cpp:766 src/gui/editControls.cpp:806 +#: src/gui/editControls.cpp:925 src/gui/editControls.cpp:1073 +msgid "Step one row" +msgstr "" + +#: src/gui/editControls.cpp:771 src/gui/editControls.cpp:891 +#: src/gui/editControls.cpp:1020 src/gui/editControls.cpp:1110 +msgid "Poly##PolyInput" +msgstr "" + +#: src/gui/editControls.cpp:771 src/gui/editControls.cpp:891 +#: src/gui/editControls.cpp:1020 src/gui/editControls.cpp:1110 +msgid "Mono##PolyInput" +msgstr "" + +#: src/gui/editControls.cpp:776 src/gui/editControls.cpp:896 +#: src/gui/editControls.cpp:1025 src/gui/editControls.cpp:1115 +msgid "Polyphony" +msgstr "" + +#: src/gui/editControls.cpp:957 +msgid "Oct." +msgstr "" + +#: src/gui/editControls.cpp:974 src/gui/editControls.cpp:1142 +msgid "Coarse" +msgstr "" + +#: src/gui/editControls.cpp:974 src/gui/editControls.cpp:1142 +msgid "Step" +msgstr "" + +#: src/gui/editControls.cpp:998 +msgid "Foll." +msgstr "" + +#: src/gui/editControls.cpp:1003 +msgid "Ord##FollowOrders" +msgstr "" + +#: src/gui/editControls.cpp:1011 +msgid "Pat##FollowPattern" +msgstr "" + +#: src/gui/editControls.cpp:1057 +msgid "Play from the beginning of this pattern" +msgstr "" + +#: src/gui/editControls.cpp:1065 +msgid "Repeat from the beginning of this pattern" +msgstr "" + +#: src/gui/editControls.cpp:1169 src/gui/guiConst.cpp:560 +msgid "Follow orders" +msgstr "" + +#: src/gui/editControls.cpp:1170 src/gui/guiConst.cpp:561 +msgid "Follow pattern" +msgstr "" + +#: src/gui/util.cpp:93 +msgid "" +msgstr "" + +#: src/gui/util.cpp:97 +msgid "Ctrl-" +msgstr "" + +#: src/gui/util.cpp:99 +msgid "Alt-" +msgstr "" + +#: src/gui/util.cpp:100 +msgid "Shift-" +msgstr "" + +#: src/gui/stats.cpp:36 +msgid "Audio load" +msgstr "" + +#: src/gui/xyOsc.cpp:45 +msgid "X Channel" +msgstr "" + +#: src/gui/xyOsc.cpp:51 +msgid "Invert##X" +msgstr "" + +#: src/gui/xyOsc.cpp:52 +msgid "Y Channel" +msgstr "" + +#: src/gui/xyOsc.cpp:58 +msgid "Invert##Y" +msgstr "" + +#: src/gui/xyOsc.cpp:59 src/gui/sampleEdit.cpp:1353 +msgid "Zoom" +msgstr "" + +#: src/gui/xyOsc.cpp:71 +msgid "Decay Time (ms)" +msgstr "" + +#: src/gui/xyOsc.cpp:74 +msgid "Intensity" +msgstr "" + +#: src/gui/xyOsc.cpp:77 +msgid "Line Thickness" +msgstr "" + +#: src/gui/xyOsc.cpp:213 +msgid "(-Infinity)dB,(-Infinity)dB" +msgstr "" + +#: src/gui/xyOsc.cpp:215 +#, c-format +msgid "(-Infinity)dB,%.1fdB" +msgstr "" + +#: src/gui/xyOsc.cpp:217 +#, c-format +msgid "%.1fdB,(-Infinity)dB" +msgstr "" + +#: src/gui/xyOsc.cpp:219 +#, c-format +msgid "%.1fdB,%.1fdB" +msgstr "" + +#: src/gui/userPresets.cpp:337 +msgid "Error! User category does not exist!" +msgstr "" + +#: src/gui/userPresets.cpp:346 src/gui/newSong.cpp:181 +msgid "Systems" +msgstr "" + +#: src/gui/userPresets.cpp:349 +msgid "New Preset" +msgstr "" + +#: src/gui/userPresets.cpp:361 +msgid "select a preset" +msgstr "" + +#: src/gui/userPresets.cpp:374 +msgid "Remove##UPresetRemove" +msgstr "" + +#: src/gui/userPresets.cpp:439 +msgid "Configure" +msgstr "" + +#: src/gui/userPresets.cpp:470 +msgid "Advanced" +msgstr "" + +#: src/gui/userPresets.cpp:476 +msgid "" +"insert additional settings in `option=value` format.\n" +"available options:\n" +"- tickRate" +msgstr "" + +#: src/gui/userPresets.cpp:509 +msgid "Save and Close" +msgstr "" + +#: src/gui/userPresets.cpp:515 +msgid "Import" +msgstr "" + +#: src/gui/userPresets.cpp:519 +msgid "Import (replace)" +msgstr "" + +#: src/gui/effectList.cpp:18 +#, c-format +msgid "Chip at cursor: %s" +msgstr "" + +#: src/gui/effectList.cpp:21 +msgid "Search" +msgstr "" + +#: src/gui/effectList.cpp:25 +msgid "Effect types to show:" +msgstr "" + +#: src/gui/effectList.cpp:47 +msgid "Description" +msgstr "" + +#: src/gui/subSongs.cpp:22 +#, c-format +msgid "%d. " +msgstr "" + +#: src/gui/subSongs.cpp:73 src/gui/subSongs.cpp:93 +msgid "too many subsongs!" +msgstr "" + +#: src/gui/subSongs.cpp:114 +msgid "this is the only subsong!" +msgstr "" + +#: src/gui/subSongs.cpp:116 +msgid "are you sure you want to remove this subsong?" +msgstr "" + +#: src/gui/spoiler.cpp:32 +msgid "SPOILER" +msgstr "" + +#: src/gui/orders.cpp:114 +msgid "Add new order" +msgstr "" + +#: src/gui/orders.cpp:125 src/gui/guiConst.cpp:794 +msgid "Remove order" +msgstr "" + +#: src/gui/orders.cpp:137 +msgid "Duplicate order (right-click to deep clone)" +msgstr "" + +#: src/gui/orders.cpp:146 src/gui/guiConst.cpp:795 +msgid "Move order up" +msgstr "" + +#: src/gui/orders.cpp:155 src/gui/guiConst.cpp:796 +msgid "Move order down" +msgstr "" + +#: src/gui/orders.cpp:167 +msgid "Place copy of current order at end of song (right-click to deep clone)" +msgstr "" + +#: src/gui/orders.cpp:177 +msgid "Order change mode: entire row" +msgstr "" + +#: src/gui/orders.cpp:179 +msgid "Order change mode: one" +msgstr "" + +#: src/gui/orders.cpp:205 +msgid "Order edit mode: Select and type (scroll vertically)" +msgstr "" + +#: src/gui/orders.cpp:207 +msgid "Order edit mode: Select and type (scroll horizontally)" +msgstr "" + +#: src/gui/orders.cpp:209 +msgid "Order edit mode: Select and type (don't scroll)" +msgstr "" + +#: src/gui/orders.cpp:211 +msgid "Order edit mode: Click to change" +msgstr "" + +#: src/gui/findReplace.cpp:29 +msgid "ignore" +msgstr "" + +#: src/gui/findReplace.cpp:30 +msgid "equals" +msgstr "" + +#: src/gui/findReplace.cpp:31 +msgid "not equal" +msgstr "" + +#: src/gui/findReplace.cpp:32 +msgid "between" +msgstr "" + +#: src/gui/findReplace.cpp:33 +msgid "not between" +msgstr "" + +#: src/gui/findReplace.cpp:34 +msgid "any" +msgstr "" + +#: src/gui/findReplace.cpp:35 src/gui/guiConst.cpp:217 +msgid "none" +msgstr "" + +#: src/gui/findReplace.cpp:39 +msgid "set" +msgstr "" + +#: src/gui/findReplace.cpp:40 +msgid "add" +msgstr "" + +#: src/gui/findReplace.cpp:41 +msgid "add (overflow)" +msgstr "" + +#: src/gui/findReplace.cpp:42 +msgid "scale %" +msgstr "" + +#: src/gui/findReplace.cpp:520 src/gui/findReplace.cpp:850 +msgid "Find" +msgstr "" + +#: src/gui/findReplace.cpp:526 src/gui/findReplace.cpp:535 +msgid "order" +msgstr "" + +#: src/gui/findReplace.cpp:527 src/gui/findReplace.cpp:537 +msgid "row" +msgstr "" + +#: src/gui/findReplace.cpp:539 src/gui/csPlayer.cpp:146 +msgid "channel" +msgstr "" + +#: src/gui/findReplace.cpp:541 +msgid "go" +msgstr "" + +#: src/gui/findReplace.cpp:585 +msgid "no matches found!" +msgstr "" + +#: src/gui/findReplace.cpp:587 +msgid "Back" +msgstr "" + +#: src/gui/findReplace.cpp:601 src/gui/findReplace.cpp:864 +#: src/gui/sampleEdit.cpp:590 +msgid "Note" +msgstr "" + +#: src/gui/findReplace.cpp:707 src/gui/findReplace.cpp:974 +msgid "Effect" +msgstr "" + +#: src/gui/findReplace.cpp:725 src/gui/findReplace.cpp:1003 +msgid "Value" +msgstr "" + +#: src/gui/findReplace.cpp:750 +msgid "Delete query" +msgstr "" + +#: src/gui/findReplace.cpp:754 src/gui/findReplace.cpp:1037 +msgid "Add effect" +msgstr "" + +#: src/gui/findReplace.cpp:761 src/gui/findReplace.cpp:1044 +msgid "Remove effect" +msgstr "" + +#: src/gui/findReplace.cpp:786 +msgid "Search range:" +msgstr "" + +#: src/gui/findReplace.cpp:791 +msgid "Selection" +msgstr "" + +#: src/gui/findReplace.cpp:799 +msgid "Confine to channels" +msgstr "" + +#: src/gui/findReplace.cpp:803 src/gui/sampleEdit.cpp:1152 +msgid "From" +msgstr "" + +#: src/gui/findReplace.cpp:814 src/gui/sampleEdit.cpp:1156 +msgid "To" +msgstr "" + +#: src/gui/findReplace.cpp:826 +msgid "Match effect position:" +msgstr "" + +#: src/gui/findReplace.cpp:828 src/gui/gui.cpp:5652 src/gui/gui.cpp:5676 +#: src/gui/gui.cpp:5700 src/gui/gui.cpp:5724 src/gui/gui.cpp:5748 +#: src/gui/gui.cpp:5776 src/gui/gui.cpp:5801 src/gui/gui.cpp:5812 +#: src/gui/gui.cpp:5824 src/gui/gui.cpp:5836 src/gui/gui.cpp:6000 +#: src/gui/gui.cpp:6015 src/gui/gui.cpp:6025 src/gui/gui.cpp:6038 +msgid "No" +msgstr "" + +#: src/gui/findReplace.cpp:832 +msgid "match effects regardless of position." +msgstr "" + +#: src/gui/findReplace.cpp:834 src/gui/compatFlags.cpp:288 +msgid "Lax" +msgstr "" + +#: src/gui/findReplace.cpp:838 +msgid "match effects only if they appear in-order." +msgstr "" + +#: src/gui/findReplace.cpp:840 src/gui/compatFlags.cpp:276 +msgid "Strict" +msgstr "" + +#: src/gui/findReplace.cpp:844 +msgid "match effects only if they appear exactly as specified." +msgstr "" + +#: src/gui/findReplace.cpp:856 +msgid "Replace" +msgstr "" + +#: src/gui/findReplace.cpp:908 +msgid "INVALID" +msgstr "" + +#: src/gui/findReplace.cpp:1052 +msgid "Effect replace mode:" +msgstr "" + +#: src/gui/findReplace.cpp:1053 +msgid "Replace matches only" +msgstr "" + +#: src/gui/findReplace.cpp:1056 +msgid "Replace matches, then free spaces" +msgstr "" + +#: src/gui/findReplace.cpp:1059 +msgid "Clear effects" +msgstr "" + +#: src/gui/findReplace.cpp:1062 +msgid "Insert in free spaces" +msgstr "" + +#: src/gui/findReplace.cpp:1065 +msgid "Replace##QueryReplace" +msgstr "" + +#: src/gui/compatFlags.cpp:32 +msgid "" +"these flags are designed to provide better DefleMask/older Furnace " +"compatibility.\n" +"it is recommended to disable most of these unless you rely on specific " +"quirks." +msgstr "" + +#: src/gui/compatFlags.cpp:34 src/gui/compatFlags.cpp:310 +msgid "DefleMask" +msgstr "" + +#: src/gui/compatFlags.cpp:35 +msgid "Limit slide range" +msgstr "" + +#: src/gui/compatFlags.cpp:37 +msgid "" +"when enabled, slides are limited to a compatible range.\n" +"may cause problems with slides in negative octaves." +msgstr "" + +#: src/gui/compatFlags.cpp:39 +msgid "Compatible noise layout on NES and PC Engine" +msgstr "" + +#: src/gui/compatFlags.cpp:41 +msgid "" +"use a rather unusual compatible noise frequency layout.\n" +"removes some noise frequencies on PC Engine." +msgstr "" + +#: src/gui/compatFlags.cpp:43 +msgid "Game Boy instrument duty is wave volume" +msgstr "" + +#: src/gui/compatFlags.cpp:45 +msgid "" +"if enabled, an instrument with duty macro in the wave channel will be mapped " +"to wavetable volume." +msgstr "" + +#: src/gui/compatFlags.cpp:48 +msgid "Restart macro on portamento" +msgstr "" + +#: src/gui/compatFlags.cpp:50 +msgid "" +"when enabled, a portamento effect will reset the channel's macro if used in " +"combination with a note." +msgstr "" + +#: src/gui/compatFlags.cpp:52 +msgid "Legacy volume slides" +msgstr "" + +#: src/gui/compatFlags.cpp:54 +msgid "" +"simulate glitchy volume slide behavior by silently overflowing the volume " +"when the slide goes below 0." +msgstr "" + +#: src/gui/compatFlags.cpp:56 +msgid "Compatible arpeggio" +msgstr "" + +#: src/gui/compatFlags.cpp:58 +msgid "delay arpeggio by one tick on every new note." +msgstr "" + +#: src/gui/compatFlags.cpp:60 +msgid "Disable DAC when sample ends" +msgstr "" + +#: src/gui/compatFlags.cpp:62 +msgid "" +"when enabled, the DAC in YM2612 will be disabled if there isn't any sample " +"playing." +msgstr "" + +#: src/gui/compatFlags.cpp:64 +msgid "Broken speed alternation" +msgstr "" + +#: src/gui/compatFlags.cpp:66 +msgid "" +"determines next speed based on whether the row is odd/even instead of " +"alternating between speeds." +msgstr "" + +#: src/gui/compatFlags.cpp:68 +msgid "Ignore duplicate slide effects" +msgstr "" + +#: src/gui/compatFlags.cpp:70 +msgid "" +"if this is on, only the first slide of a row in a channel will be considered." +msgstr "" + +#: src/gui/compatFlags.cpp:72 +msgid "Ignore 0Dxx on the last order" +msgstr "" + +#: src/gui/compatFlags.cpp:74 +msgid "" +"if this is on, a jump to next row effect will not take place when it is on " +"the last order of a song." +msgstr "" + +#: src/gui/compatFlags.cpp:76 +msgid "Buggy portamento after pitch slide" +msgstr "" + +#: src/gui/compatFlags.cpp:78 +msgid "simulates a bug in where portamento does not work after sliding." +msgstr "" + +#: src/gui/compatFlags.cpp:80 +msgid "FM pitch slide octave boundary odd behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:82 +msgid "" +"if this is on, a pitch slide that crosses the octave boundary will stop for " +"one tick and then continue from the nearest octave boundary.\n" +"for .dmf compatibility." +msgstr "" + +#: src/gui/compatFlags.cpp:84 +msgid "Don't apply Game Boy envelope on note-less instrument change" +msgstr "" + +#: src/gui/compatFlags.cpp:86 +msgid "if this is on, an instrument change will not affect the envelope." +msgstr "" + +#: src/gui/compatFlags.cpp:88 +msgid "Ignore DAC mode change outside of intended channel in ExtCh mode" +msgstr "" + +#: src/gui/compatFlags.cpp:90 +msgid "if this is on, 17xx has no effect on the operator channels in YM2612." +msgstr "" + +#: src/gui/compatFlags.cpp:92 +msgid "E1xy/E2xy also take priority over slide stops" +msgstr "" + +#: src/gui/compatFlags.cpp:94 +msgid "does this make any sense by now?" +msgstr "" + +#: src/gui/compatFlags.cpp:96 +msgid "E1xy/E2xy stop when repeating the same note" +msgstr "" + +#: src/gui/compatFlags.cpp:98 +msgid "ugh, if only this wasn't a thing..." +msgstr "" + +#: src/gui/compatFlags.cpp:100 +msgid "SN76489 duty macro always resets phase" +msgstr "" + +#: src/gui/compatFlags.cpp:102 +msgid "" +"when enabled, duty macro will always reset phase, even if its value hasn't " +"changed." +msgstr "" + +#: src/gui/compatFlags.cpp:104 +msgid "Broken volume scaling strategy" +msgstr "" + +#: src/gui/compatFlags.cpp:106 +msgid "" +"when enabled:\n" +"- log scaling: multiply\n" +"- linear scaling: subtract\n" +"when disabled:\n" +"- log scaling: subtract\n" +"- linear scaling: multiply" +msgstr "" + +#: src/gui/compatFlags.cpp:108 +msgid "Don't persist volume macro after it finishes" +msgstr "" + +#: src/gui/compatFlags.cpp:110 +msgid "" +"when enabled, a value in the volume column that happens after the volume " +"macro is done will disregard the macro." +msgstr "" + +#: src/gui/compatFlags.cpp:112 +msgid "Broken output volume on instrument change" +msgstr "" + +#: src/gui/compatFlags.cpp:114 +msgid "" +"if enabled, no checks for the presence of a volume macro will be made.\n" +"this will cause the last macro value to linger unless a value in the volume " +"column is present." +msgstr "" + +#: src/gui/compatFlags.cpp:116 +msgid "Broken output volume - Episode 2 (PLEASE KEEP ME DISABLED)" +msgstr "" + +#: src/gui/compatFlags.cpp:118 +msgid "" +"these compatibility flags are getting SO damn ridiculous and out of " +"control.\n" +"as you may have guessed, this one exists due to yet ANOTHER DefleMask-" +"specific behavior.\n" +"please keep this off at all costs, because I will not support it when ROM " +"export comes.\n" +"oh, and don't start an argument out of it. Furnace isn't a DefleMask " +"replacement, and no,\n" +"I am not trying to make it look like one with all these flags.\n" +"\n" +"oh, and what about the other flags that don't have to do with DefleMask?\n" +"those are for .mod import, future FamiTracker import and personal taste!\n" +"\n" +"end of rant" +msgstr "" + +#: src/gui/compatFlags.cpp:120 +msgid "Treat SN76489 periods under 8 as 1" +msgstr "" + +#: src/gui/compatFlags.cpp:122 +msgid "" +"when enabled, any SN period under 8 will be written as 1 instead.\n" +"this replicates DefleMask behavior, but reduces available period range." +msgstr "" + +#: src/gui/compatFlags.cpp:126 src/gui/compatFlags.cpp:304 +msgid "Old Furnace" +msgstr "" + +#: src/gui/compatFlags.cpp:127 +msgid "Arpeggio inhibits non-porta slides" +msgstr "" + +#: src/gui/compatFlags.cpp:129 src/gui/compatFlags.cpp:133 +msgid "behavior changed in 0.5.5" +msgstr "" + +#: src/gui/compatFlags.cpp:131 +msgid "Wack FM algorithm macro" +msgstr "" + +#: src/gui/compatFlags.cpp:135 +msgid "Broken shortcut slides (E1xy/E2xy)" +msgstr "" + +#: src/gui/compatFlags.cpp:137 +msgid "behavior changed in 0.5.7" +msgstr "" + +#: src/gui/compatFlags.cpp:139 +msgid "Stop portamento on note off" +msgstr "" + +#: src/gui/compatFlags.cpp:141 src/gui/compatFlags.cpp:145 +#: src/gui/compatFlags.cpp:149 src/gui/compatFlags.cpp:153 +#: src/gui/compatFlags.cpp:157 src/gui/compatFlags.cpp:161 +#: src/gui/compatFlags.cpp:165 +msgid "behavior changed in 0.6pre1" +msgstr "" + +#: src/gui/compatFlags.cpp:143 +msgid "Don't allow instrument change during slides" +msgstr "" + +#: src/gui/compatFlags.cpp:147 +msgid "Don't reset note to base on arpeggio stop" +msgstr "" + +#: src/gui/compatFlags.cpp:151 +msgid "ExtCh channel status is not shared among operators" +msgstr "" + +#: src/gui/compatFlags.cpp:155 +msgid "Disable new SegaPCM features (macros and better panning)" +msgstr "" + +#: src/gui/compatFlags.cpp:159 +msgid "Old FM octave boundary behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:163 +msgid "Disable OPN2 DAC volume control" +msgstr "" + +#: src/gui/compatFlags.cpp:167 +msgid "Broken initial position of portamento after arpeggio" +msgstr "" + +#: src/gui/compatFlags.cpp:169 +msgid "behavior changed in 0.6pre1.5" +msgstr "" + +#: src/gui/compatFlags.cpp:171 +msgid "Disable new sample features" +msgstr "" + +#: src/gui/compatFlags.cpp:173 src/gui/compatFlags.cpp:177 +msgid "behavior changed in 0.6pre2" +msgstr "" + +#: src/gui/compatFlags.cpp:175 +msgid "Old arpeggio macro + pitch slide strategy" +msgstr "" + +#: src/gui/compatFlags.cpp:179 +msgid "Broken portamento during legato" +msgstr "" + +#: src/gui/compatFlags.cpp:181 +msgid "behavior changed in 0.6pre4" +msgstr "" + +#: src/gui/compatFlags.cpp:183 +msgid "Broken macros in some FM chips after note off" +msgstr "" + +#: src/gui/compatFlags.cpp:185 +msgid "behavior changed in 0.6pre5" +msgstr "" + +#: src/gui/compatFlags.cpp:187 +msgid "Pre-note does not take effects into consideration" +msgstr "" + +#: src/gui/compatFlags.cpp:189 +msgid "behavior changed in 0.6pre9" +msgstr "" + +#: src/gui/compatFlags.cpp:191 +msgid "Disable new NES DPCM features" +msgstr "" + +#: src/gui/compatFlags.cpp:193 +msgid "behavior changed in 0.6.1" +msgstr "" + +#: src/gui/compatFlags.cpp:195 +msgid "Legacy technical ALWAYS_SET_VOLUME behavior" +msgstr "" + +#: src/gui/compatFlags.cpp:197 +msgid "" +"behavior changed in 0.6.1\n" +"this flag will be removed if I find out that none of the songs break after " +"disabling it." +msgstr "" + +#: src/gui/compatFlags.cpp:199 +msgid "Old sample offset effect" +msgstr "" + +#: src/gui/compatFlags.cpp:201 +msgid "behavior changed in 0.6.3" +msgstr "" + +#: src/gui/compatFlags.cpp:205 +msgid ".mod import" +msgstr "" + +#: src/gui/compatFlags.cpp:206 +msgid "Don't slide on the first tick of a row" +msgstr "" + +#: src/gui/compatFlags.cpp:208 +msgid "" +"simulates ProTracker's behavior of not applying volume/pitch slides on the " +"first tick of a row." +msgstr "" + +#: src/gui/compatFlags.cpp:210 +msgid "Reset arpeggio position on row change" +msgstr "" + +#: src/gui/compatFlags.cpp:212 +msgid "" +"simulates ProTracker's behavior of arpeggio being bound to the current tick " +"of a row." +msgstr "" + +#: src/gui/compatFlags.cpp:216 +msgid "Pitch/Playback" +msgstr "" + +#: src/gui/compatFlags.cpp:217 +msgid "Pitch linearity:" +msgstr "" + +#: src/gui/compatFlags.cpp:223 +msgid "like ProTracker/FamiTracker" +msgstr "" + +#: src/gui/compatFlags.cpp:227 +msgid "Partial (only 04xy/E5xx)" +msgstr "" + +#: src/gui/compatFlags.cpp:231 +msgid "" +"like DefleMask\n" +"\n" +"this pitch linearity mode is deprecated due to:\n" +"- excessive complexity\n" +"- lack of possible optimization\n" +"\n" +"it is recommended to change it now because I will remove this option in the " +"future!" +msgstr "" + +#: src/gui/compatFlags.cpp:235 +msgid "Full" +msgstr "" + +#: src/gui/compatFlags.cpp:239 +msgid "like Impulse Tracker" +msgstr "" + +#: src/gui/compatFlags.cpp:246 +msgid "Pitch slide speed multiplier" +msgstr "" + +#: src/gui/compatFlags.cpp:252 +msgid "Loop modality:" +msgstr "" + +#: src/gui/compatFlags.cpp:254 +msgid "Reset channels" +msgstr "" + +#: src/gui/compatFlags.cpp:258 +msgid "" +"select to reset channels on loop. may trigger a voltage click on every loop!" +msgstr "" + +#: src/gui/compatFlags.cpp:260 +msgid "Soft reset channels" +msgstr "" + +#: src/gui/compatFlags.cpp:264 +msgid "select to turn channels off on loop." +msgstr "" + +#: src/gui/compatFlags.cpp:266 +msgid "Do nothing" +msgstr "" + +#: src/gui/compatFlags.cpp:270 +msgid "select to not reset channels on loop." +msgstr "" + +#: src/gui/compatFlags.cpp:274 +msgid "Cut/delay effect policy:" +msgstr "" + +#: src/gui/compatFlags.cpp:280 +msgid "only when time is less than speed (like DefleMask/ProTracker)" +msgstr "" + +#: src/gui/compatFlags.cpp:282 +msgid "Strict (old)" +msgstr "" + +#: src/gui/compatFlags.cpp:286 +msgid "only when time is less than or equal to speed (original buggy behavior)" +msgstr "" + +#: src/gui/compatFlags.cpp:292 +msgid "no checks" +msgstr "" + +#: src/gui/compatFlags.cpp:296 +msgid "Simultaneous jump (0B+0D) treatment:" +msgstr "" + +#: src/gui/compatFlags.cpp:298 src/gui/gui.cpp:6055 src/gui/insEdit.cpp:217 +#: src/gui/insEdit.cpp:231 +msgid "Normal" +msgstr "" + +#: src/gui/compatFlags.cpp:302 +msgid "accept 0B+0D to jump to a specific row of an order" +msgstr "" + +#: src/gui/compatFlags.cpp:308 +msgid "only accept the first jump effect" +msgstr "" + +#: src/gui/compatFlags.cpp:314 +msgid "only accept 0Dxx" +msgstr "" + +#: src/gui/compatFlags.cpp:320 +msgid "Auto-insert one tick gap between notes" +msgstr "" + +#: src/gui/compatFlags.cpp:322 +msgid "" +"when enabled, a one-tick note cut will be inserted between non-legato/non-" +"portamento notes.\n" +"this simulates the behavior of some Amiga/SNES music engines.\n" +"\n" +"ineffective on C64." +msgstr "" + +#: src/gui/compatFlags.cpp:327 +msgid "Don't reset slides after note off" +msgstr "" + +#: src/gui/compatFlags.cpp:329 +msgid "when enabled, note off will not reset the channel's slide effect." +msgstr "" + +#: src/gui/compatFlags.cpp:331 +msgid "Don't reset portamento after reaching target" +msgstr "" + +#: src/gui/compatFlags.cpp:333 +msgid "" +"when enabled, the slide effect will not be disabled after it reaches its " +"target." +msgstr "" + +#: src/gui/compatFlags.cpp:335 +msgid "Continuous vibrato" +msgstr "" + +#: src/gui/compatFlags.cpp:337 +msgid "when enabled, vibrato phase/position will not be reset on a new note." +msgstr "" + +#: src/gui/compatFlags.cpp:339 +msgid "Pitch macro is not linear" +msgstr "" + +#: src/gui/compatFlags.cpp:341 +msgid "" +"when enabled, the pitch macro of an instrument is in frequency/period space." +msgstr "" + +#: src/gui/compatFlags.cpp:343 +msgid "Reset arpeggio effect position on new note" +msgstr "" + +#: src/gui/compatFlags.cpp:345 +msgid "when enabled, arpeggio effect (00xy) position is reset on a new note." +msgstr "" + +#: src/gui/compatFlags.cpp:347 +msgid "Volume scaling rounds up" +msgstr "" + +#: src/gui/compatFlags.cpp:349 +msgid "" +"when enabled, volume macros round up when applied\n" +"this prevents volume scaling from causing vol=0, which is silent on some " +"chips\n" +"\n" +"ineffective on logarithmic channels" +msgstr "" + +#: src/gui/guiConst.cpp:127 +msgid "Generic Sample" +msgstr "" + +#: src/gui/guiConst.cpp:149 +msgid "VRC6 (saw)" +msgstr "" + +#: src/gui/guiConst.cpp:155 +msgid "OPL (drums)" +msgstr "" + +#: src/gui/guiConst.cpp:179 +msgid "PowerNoise (noise)" +msgstr "" + +#: src/gui/guiConst.cpp:180 +msgid "PowerNoise (slope)" +msgstr "" + +#: src/gui/guiConst.cpp:191 +msgid "Forward" +msgstr "" + +#: src/gui/guiConst.cpp:192 +msgid "Backward" +msgstr "" + +#: src/gui/guiConst.cpp:193 +msgid "Ping pong" +msgstr "" + +#: src/gui/guiConst.cpp:218 +msgid "linear" +msgstr "" + +#: src/gui/guiConst.cpp:219 +msgid "cubic spline" +msgstr "" + +#: src/gui/guiConst.cpp:220 +msgid "blep synthesis" +msgstr "" + +#: src/gui/guiConst.cpp:221 +msgid "sinc" +msgstr "" + +#: src/gui/guiConst.cpp:222 +msgid "best possible" +msgstr "" + +#: src/gui/guiConst.cpp:226 src/gui/sampleEdit.cpp:137 +#: src/gui/sampleEdit.cpp:143 +msgid "Invalid" +msgstr "" + +#: src/gui/guiConst.cpp:227 src/gui/insEdit.cpp:6924 src/gui/insEdit.cpp:6931 +#: src/gui/insEdit.cpp:6942 src/gui/insEdit.cpp:6950 src/gui/insEdit.cpp:6971 +#: src/gui/insEdit.cpp:6983 src/gui/insEdit.cpp:6993 src/gui/insEdit.cpp:7006 +#: src/gui/insEdit.cpp:7019 src/gui/insEdit.cpp:7028 src/gui/insEdit.cpp:7036 +#: src/gui/insEdit.cpp:7042 src/gui/insEdit.cpp:7052 src/gui/insEdit.cpp:7061 +#: src/gui/insEdit.cpp:7068 src/gui/insEdit.cpp:7075 src/gui/insEdit.cpp:7087 +#: src/gui/insEdit.cpp:7095 src/gui/insEdit.cpp:7102 src/gui/insEdit.cpp:7109 +#: src/gui/insEdit.cpp:7117 src/gui/insEdit.cpp:7123 src/gui/insEdit.cpp:7132 +#: src/gui/insEdit.cpp:7143 src/gui/insEdit.cpp:7153 src/gui/insEdit.cpp:7161 +#: src/gui/insEdit.cpp:7174 src/gui/insEdit.cpp:7182 src/gui/insEdit.cpp:7193 +#: src/gui/insEdit.cpp:7203 src/gui/insEdit.cpp:7213 src/gui/insEdit.cpp:7227 +#: src/gui/insEdit.cpp:7233 src/gui/insEdit.cpp:7241 src/gui/insEdit.cpp:7248 +#: src/gui/insEdit.cpp:7272 src/gui/insEdit.cpp:7280 src/gui/insEdit.cpp:7289 +#: src/gui/insEdit.cpp:7298 src/gui/insEdit.cpp:7306 src/gui/insEdit.cpp:7323 +#: src/gui/insEdit.cpp:7331 src/gui/insEdit.cpp:7337 src/gui/insEdit.cpp:7344 +#: src/gui/insEdit.cpp:7350 src/gui/insEdit.cpp:7355 src/gui/insEdit.cpp:7361 +#: src/gui/insEdit.cpp:7368 src/gui/insEdit.cpp:7376 src/gui/insEdit.cpp:7385 +#: src/gui/insEdit.cpp:7393 src/gui/insEdit.cpp:7401 src/gui/insEdit.cpp:7413 +#: src/gui/insEdit.cpp:7428 src/gui/insEdit.cpp:7439 src/gui/insEdit.cpp:7447 +#: src/gui/insEdit.cpp:7456 src/gui/insEdit.cpp:7466 src/gui/insEdit.cpp:7474 +msgid "Pitch" +msgstr "" + +#: src/gui/guiConst.cpp:231 +msgid "Time" +msgstr "" + +#: src/gui/guiConst.cpp:233 +msgid "System (Primary)" +msgstr "" + +#: src/gui/guiConst.cpp:234 +msgid "System (Secondary)" +msgstr "" + +#: src/gui/guiConst.cpp:235 +msgid "Miscellaneous" +msgstr "" + +#: src/gui/guiConst.cpp:530 +msgid "---Global" +msgstr "" + +#: src/gui/guiConst.cpp:532 +msgid "Open file" +msgstr "" + +#: src/gui/guiConst.cpp:533 +msgid "Restore backup" +msgstr "" + +#: src/gui/guiConst.cpp:534 +msgid "Save file" +msgstr "" + +#: src/gui/guiConst.cpp:535 +msgid "Save as" +msgstr "" + +#: src/gui/guiConst.cpp:537 src/gui/sampleEdit.cpp:982 +msgid "Undo" +msgstr "" + +#: src/gui/guiConst.cpp:539 src/gui/guiConst.cpp:541 src/gui/sampleEdit.cpp:989 +msgid "Redo" +msgstr "" + +#: src/gui/guiConst.cpp:543 +msgid "Exit" +msgstr "" + +#: src/gui/guiConst.cpp:544 +msgid "Play/Stop (toggle)" +msgstr "" + +#: src/gui/guiConst.cpp:547 +msgid "Play (from beginning)" +msgstr "" + +#: src/gui/guiConst.cpp:548 +msgid "Play (repeat pattern)" +msgstr "" + +#: src/gui/guiConst.cpp:549 +msgid "Play from cursor" +msgstr "" + +#: src/gui/guiConst.cpp:550 +msgid "Step row" +msgstr "" + +#: src/gui/guiConst.cpp:551 +msgid "Octave up" +msgstr "" + +#: src/gui/guiConst.cpp:552 +msgid "Octave down" +msgstr "" + +#: src/gui/guiConst.cpp:553 +msgid "Previous instrument" +msgstr "" + +#: src/gui/guiConst.cpp:554 +msgid "Next instrument" +msgstr "" + +#: src/gui/guiConst.cpp:555 +msgid "Increase edit step" +msgstr "" + +#: src/gui/guiConst.cpp:556 +msgid "Decrease edit step" +msgstr "" + +#: src/gui/guiConst.cpp:557 +msgid "Toggle edit mode" +msgstr "" + +#: src/gui/guiConst.cpp:559 +msgid "Toggle repeat pattern" +msgstr "" + +#: src/gui/guiConst.cpp:562 +msgid "Toggle full-screen" +msgstr "" + +#: src/gui/guiConst.cpp:563 +msgid "Request voice from TX81Z" +msgstr "" + +#: src/gui/guiConst.cpp:565 +msgid "Clear song data" +msgstr "" + +#: src/gui/guiConst.cpp:567 src/gui/gui.cpp:5561 src/gui/gui.cpp:5613 +msgid "Command Palette" +msgstr "" + +#: src/gui/guiConst.cpp:569 +msgid "Recent files (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:570 +msgid "Instruments (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:571 +msgid "Samples (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:572 +msgid "Change instrument (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:573 +msgid "Add chip (Palette)" +msgstr "" + +#: src/gui/guiConst.cpp:576 +msgid "Edit Controls" +msgstr "" + +#: src/gui/guiConst.cpp:578 +msgid "Instrument List" +msgstr "" + +#: src/gui/guiConst.cpp:579 +msgid "Instrument Editor" +msgstr "" + +#: src/gui/guiConst.cpp:580 +msgid "Song Information" +msgstr "" + +#: src/gui/guiConst.cpp:583 +msgid "Wavetable List" +msgstr "" + +#: src/gui/guiConst.cpp:584 +msgid "Wavetable Editor" +msgstr "" + +#: src/gui/guiConst.cpp:585 +msgid "Sample List" +msgstr "" + +#: src/gui/guiConst.cpp:586 +msgid "Sample Editor" +msgstr "" + +#: src/gui/guiConst.cpp:594 +msgid "Debug Menu" +msgstr "" + +#: src/gui/guiConst.cpp:595 +msgid "Oscilloscope (master)" +msgstr "" + +#: src/gui/guiConst.cpp:596 +msgid "Volume Meter" +msgstr "" + +#: src/gui/guiConst.cpp:597 +msgid "Statistics" +msgstr "" + +#: src/gui/guiConst.cpp:598 +msgid "Compatibility Flags" +msgstr "" + +#: src/gui/guiConst.cpp:599 +msgid "Piano" +msgstr "" + +#: src/gui/guiConst.cpp:600 +msgid "Song Comments" +msgstr "" + +#: src/gui/guiConst.cpp:602 +msgid "Pattern Manager" +msgstr "" + +#: src/gui/guiConst.cpp:603 +msgid "Chip Manager" +msgstr "" + +#: src/gui/guiConst.cpp:604 +msgid "Register View" +msgstr "" + +#: src/gui/guiConst.cpp:605 +msgid "Log Viewer" +msgstr "" + +#: src/gui/guiConst.cpp:606 +msgid "Effect List" +msgstr "" + +#: src/gui/guiConst.cpp:607 +msgid "Oscilloscope (per-channel)" +msgstr "" + +#: src/gui/guiConst.cpp:609 +msgid "Find/Replace" +msgstr "" + +#: src/gui/guiConst.cpp:610 +msgid "Clock" +msgstr "" + +#: src/gui/guiConst.cpp:612 +msgid "Oscilloscope (X-Y)" +msgstr "" + +#: src/gui/guiConst.cpp:613 +msgid "Memory Composition" +msgstr "" + +#: src/gui/guiConst.cpp:614 +msgid "Command Stream Player" +msgstr "" + +#: src/gui/guiConst.cpp:615 +msgid "User Presets" +msgstr "" + +#: src/gui/guiConst.cpp:617 +msgid "Collapse/expand current window" +msgstr "" + +#: src/gui/guiConst.cpp:618 +msgid "Close current window" +msgstr "" + +#: src/gui/guiConst.cpp:621 +msgid "---Pattern" +msgstr "" + +#: src/gui/guiConst.cpp:622 +msgid "Transpose (+1)" +msgstr "" + +#: src/gui/guiConst.cpp:623 +msgid "Transpose (-1)" +msgstr "" + +#: src/gui/guiConst.cpp:624 +msgid "Transpose (+1 octave)" +msgstr "" + +#: src/gui/guiConst.cpp:625 +msgid "Transpose (-1 octave)" +msgstr "" + +#: src/gui/guiConst.cpp:626 +msgid "Increase values (+1)" +msgstr "" + +#: src/gui/guiConst.cpp:627 +msgid "Increase values (-1)" +msgstr "" + +#: src/gui/guiConst.cpp:628 +msgid "Increase values (+16)" +msgstr "" + +#: src/gui/guiConst.cpp:629 +msgid "Increase values (-16)" +msgstr "" + +#: src/gui/guiConst.cpp:630 +msgid "Select all" +msgstr "" + +#: src/gui/guiConst.cpp:631 +msgid "Cut" +msgstr "" + +#: src/gui/guiConst.cpp:632 +msgid "Copy" +msgstr "" + +#: src/gui/guiConst.cpp:633 +msgid "Paste" +msgstr "" + +#: src/gui/guiConst.cpp:634 +msgid "Paste Mix (foreground)" +msgstr "" + +#: src/gui/guiConst.cpp:635 +msgid "Paste Mix (background)" +msgstr "" + +#: src/gui/guiConst.cpp:636 +msgid "Paste Flood" +msgstr "" + +#: src/gui/guiConst.cpp:637 +msgid "Paste Overflow" +msgstr "" + +#: src/gui/guiConst.cpp:638 +msgid "Move cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:639 +msgid "Move cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:640 +msgid "Move cursor left" +msgstr "" + +#: src/gui/guiConst.cpp:641 +msgid "Move cursor right" +msgstr "" + +#: src/gui/guiConst.cpp:642 +msgid "Move cursor up by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:643 +msgid "Move cursor down by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:644 +msgid "Move cursor to previous channel" +msgstr "" + +#: src/gui/guiConst.cpp:645 +msgid "Move cursor to next channel" +msgstr "" + +#: src/gui/guiConst.cpp:646 +msgid "Move cursor to next channel (overflow)" +msgstr "" + +#: src/gui/guiConst.cpp:647 +msgid "Move cursor to previous channel (overflow)" +msgstr "" + +#: src/gui/guiConst.cpp:648 +msgid "Move cursor to beginning of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:649 +msgid "Move cursor to end of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:650 +msgid "Move cursor up (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:651 +msgid "Move cursor down (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:652 +msgid "Expand selection upwards" +msgstr "" + +#: src/gui/guiConst.cpp:653 +msgid "Expand selection downwards" +msgstr "" + +#: src/gui/guiConst.cpp:654 +msgid "Expand selection to the left" +msgstr "" + +#: src/gui/guiConst.cpp:655 +msgid "Expand selection to the right" +msgstr "" + +#: src/gui/guiConst.cpp:656 +msgid "Expand selection upwards by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:657 +msgid "Expand selection downwards by one (override Edit Step)" +msgstr "" + +#: src/gui/guiConst.cpp:658 +msgid "Expand selection to beginning of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:659 +msgid "Expand selection to end of pattern" +msgstr "" + +#: src/gui/guiConst.cpp:660 +msgid "Expand selection upwards (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:661 +msgid "Expand selection downwards (coarse)" +msgstr "" + +#: src/gui/guiConst.cpp:662 +msgid "Move selection up" +msgstr "" + +#: src/gui/guiConst.cpp:663 +msgid "Move selection down" +msgstr "" + +#: src/gui/guiConst.cpp:664 +msgid "Move selection to previous channel" +msgstr "" + +#: src/gui/guiConst.cpp:665 +msgid "Move selection to next channel" +msgstr "" + +#: src/gui/guiConst.cpp:667 +msgid "Pull delete" +msgstr "" + +#: src/gui/guiConst.cpp:668 +msgid "Insert" +msgstr "" + +#: src/gui/guiConst.cpp:669 +msgid "Mute channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:670 +msgid "Solo channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:671 +msgid "Unmute all channels" +msgstr "" + +#: src/gui/guiConst.cpp:672 +msgid "Go to next order" +msgstr "" + +#: src/gui/guiConst.cpp:673 +msgid "Go to previous order" +msgstr "" + +#: src/gui/guiConst.cpp:674 +msgid "Collapse channel at cursor" +msgstr "" + +#: src/gui/guiConst.cpp:675 +msgid "Increase effect columns" +msgstr "" + +#: src/gui/guiConst.cpp:676 +msgid "Decrease effect columns" +msgstr "" + +#: src/gui/guiConst.cpp:677 +msgid "Interpolate" +msgstr "" + +#: src/gui/guiConst.cpp:678 src/gui/insEdit.cpp:530 +msgid "Fade" +msgstr "" + +#: src/gui/guiConst.cpp:679 +msgid "Invert values" +msgstr "" + +#: src/gui/guiConst.cpp:680 +msgid "Flip selection" +msgstr "" + +#: src/gui/guiConst.cpp:681 +msgid "Collapse rows" +msgstr "" + +#: src/gui/guiConst.cpp:682 +msgid "Expand rows" +msgstr "" + +#: src/gui/guiConst.cpp:683 +msgid "Collapse pattern" +msgstr "" + +#: src/gui/guiConst.cpp:684 +msgid "Expand pattern" +msgstr "" + +#: src/gui/guiConst.cpp:685 +msgid "Collapse song" +msgstr "" + +#: src/gui/guiConst.cpp:686 +msgid "Expand song" +msgstr "" + +#: src/gui/guiConst.cpp:687 +msgid "Set note input latch" +msgstr "" + +#: src/gui/guiConst.cpp:688 +msgid "Change mobile scroll mode" +msgstr "" + +#: src/gui/guiConst.cpp:689 +msgid "Clear note input latch" +msgstr "" + +#: src/gui/guiConst.cpp:692 +msgid "---Instrument list" +msgstr "" + +#: src/gui/guiConst.cpp:693 +msgid "Add instrument" +msgstr "" + +#: src/gui/guiConst.cpp:694 +msgid "Duplicate instrument" +msgstr "" + +#: src/gui/guiConst.cpp:695 +msgid "Open instrument" +msgstr "" + +#: src/gui/guiConst.cpp:696 +msgid "Open instrument (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:697 +msgid "Save instrument" +msgstr "" + +#: src/gui/guiConst.cpp:698 +msgid "Save instrument (.dmp)" +msgstr "" + +#: src/gui/guiConst.cpp:699 +msgid "Move instrument up in list" +msgstr "" + +#: src/gui/guiConst.cpp:700 +msgid "Move instrument down in list" +msgstr "" + +#: src/gui/guiConst.cpp:701 +msgid "Delete instrument" +msgstr "" + +#: src/gui/guiConst.cpp:702 +msgid "Edit instrument" +msgstr "" + +#: src/gui/guiConst.cpp:703 +msgid "Instrument cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:704 +msgid "Instrument cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:705 +msgid "Instruments: toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:708 +msgid "---Wavetable list" +msgstr "" + +#: src/gui/guiConst.cpp:709 +msgid "Add wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:710 +msgid "Duplicate wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:711 +msgid "Open wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:712 +msgid "Open wavetable (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:713 +msgid "Save wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:714 +msgid "Save wavetable (.dmw)" +msgstr "" + +#: src/gui/guiConst.cpp:715 +msgid "Save wavetable (raw)" +msgstr "" + +#: src/gui/guiConst.cpp:716 +msgid "Move wavetable up in list" +msgstr "" + +#: src/gui/guiConst.cpp:717 +msgid "Move wavetable down in list" +msgstr "" + +#: src/gui/guiConst.cpp:718 +msgid "Delete wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:719 +msgid "Edit wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:720 +msgid "Wavetable cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:721 +msgid "Wavetable cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:722 +msgid "Wavetables: toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:725 +msgid "---Sample list" +msgstr "" + +#: src/gui/guiConst.cpp:726 +msgid "Add sample" +msgstr "" + +#: src/gui/guiConst.cpp:727 +msgid "Duplicate sample" +msgstr "" + +#: src/gui/guiConst.cpp:728 +msgid "Open sample" +msgstr "" + +#: src/gui/guiConst.cpp:729 +msgid "Open sample (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:730 +msgid "Import raw sample data" +msgstr "" + +#: src/gui/guiConst.cpp:731 +msgid "Import raw sample data (replace current)" +msgstr "" + +#: src/gui/guiConst.cpp:732 +msgid "Save sample" +msgstr "" + +#: src/gui/guiConst.cpp:733 +msgid "Save sample (raw)" +msgstr "" + +#: src/gui/guiConst.cpp:734 +msgid "Move sample up in list" +msgstr "" + +#: src/gui/guiConst.cpp:735 +msgid "Move sample down in list" +msgstr "" + +#: src/gui/guiConst.cpp:736 +msgid "Delete sample" +msgstr "" + +#: src/gui/guiConst.cpp:737 +msgid "Edit sample" +msgstr "" + +#: src/gui/guiConst.cpp:738 +msgid "Sample cursor up" +msgstr "" + +#: src/gui/guiConst.cpp:739 +msgid "Sample cursor down" +msgstr "" + +#: src/gui/guiConst.cpp:740 +msgid "Sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:741 src/gui/sampleEdit.cpp:1339 +msgid "Stop sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:742 +msgid "Samples: Toggle folders/standard view" +msgstr "" + +#: src/gui/guiConst.cpp:743 +msgid "Samples: Make me a drum kit" +msgstr "" + +#: src/gui/guiConst.cpp:746 +msgid "---Sample editor" +msgstr "" + +#: src/gui/guiConst.cpp:747 +msgid "Sample editor mode: Select" +msgstr "" + +#: src/gui/guiConst.cpp:748 +msgid "Sample editor mode: Draw" +msgstr "" + +#: src/gui/guiConst.cpp:749 +msgid "Sample editor: Cut" +msgstr "" + +#: src/gui/guiConst.cpp:750 +msgid "Sample editor: Copy" +msgstr "" + +#: src/gui/guiConst.cpp:751 +msgid "Sample editor: Paste" +msgstr "" + +#: src/gui/guiConst.cpp:752 +msgid "Sample editor: Paste replace" +msgstr "" + +#: src/gui/guiConst.cpp:753 +msgid "Sample editor: Paste mix" +msgstr "" + +#: src/gui/guiConst.cpp:754 +msgid "Sample editor: Select all" +msgstr "" + +#: src/gui/guiConst.cpp:755 +msgid "Sample editor: Resize" +msgstr "" + +#: src/gui/guiConst.cpp:756 +msgid "Sample editor: Resample" +msgstr "" + +#: src/gui/guiConst.cpp:757 +msgid "Sample editor: Amplify" +msgstr "" + +#: src/gui/guiConst.cpp:758 +msgid "Sample editor: Normalize" +msgstr "" + +#: src/gui/guiConst.cpp:759 +msgid "Sample editor: Fade in" +msgstr "" + +#: src/gui/guiConst.cpp:760 +msgid "Sample editor: Fade out" +msgstr "" + +#: src/gui/guiConst.cpp:761 +msgid "Sample editor: Apply silence" +msgstr "" + +#: src/gui/guiConst.cpp:762 +msgid "Sample editor: Insert silence" +msgstr "" + +#: src/gui/guiConst.cpp:763 +msgid "Sample editor: Delete" +msgstr "" + +#: src/gui/guiConst.cpp:764 +msgid "Sample editor: Trim" +msgstr "" + +#: src/gui/guiConst.cpp:765 +msgid "Sample editor: Reverse" +msgstr "" + +#: src/gui/guiConst.cpp:766 +msgid "Sample editor: Invert" +msgstr "" + +#: src/gui/guiConst.cpp:767 +msgid "Sample editor: Signed/unsigned exchange" +msgstr "" + +#: src/gui/guiConst.cpp:768 +msgid "Sample editor: Apply filter" +msgstr "" + +#: src/gui/guiConst.cpp:769 +msgid "Sample editor: Crossfade loop points" +msgstr "" + +#: src/gui/guiConst.cpp:770 +msgid "Sample editor: Preview sample" +msgstr "" + +#: src/gui/guiConst.cpp:771 +msgid "Sample editor: Stop sample preview" +msgstr "" + +#: src/gui/guiConst.cpp:772 +msgid "Sample editor: Zoom in" +msgstr "" + +#: src/gui/guiConst.cpp:773 +msgid "Sample editor: Zoom out" +msgstr "" + +#: src/gui/guiConst.cpp:774 +msgid "Sample editor: Toggle auto-zoom" +msgstr "" + +#: src/gui/guiConst.cpp:775 +msgid "Sample editor: Create instrument from sample" +msgstr "" + +#: src/gui/guiConst.cpp:776 +msgid "Sample editor: Set loop to selection" +msgstr "" + +#: src/gui/guiConst.cpp:777 +msgid "Sample editor: Create wavetable from selection" +msgstr "" + +#: src/gui/guiConst.cpp:780 +msgid "---Orders" +msgstr "" + +#: src/gui/guiConst.cpp:781 +msgid "Previous order" +msgstr "" + +#: src/gui/guiConst.cpp:782 +msgid "Next order" +msgstr "" + +#: src/gui/guiConst.cpp:783 +msgid "Order cursor left" +msgstr "" + +#: src/gui/guiConst.cpp:784 +msgid "Order cursor right" +msgstr "" + +#: src/gui/guiConst.cpp:785 +msgid "Increase order value" +msgstr "" + +#: src/gui/guiConst.cpp:786 +msgid "Decrease order value" +msgstr "" + +#: src/gui/guiConst.cpp:787 +msgid "Switch order edit mode" +msgstr "" + +#: src/gui/guiConst.cpp:788 +msgid "Order: toggle alter entire row" +msgstr "" + +#: src/gui/guiConst.cpp:789 +msgid "Add order" +msgstr "" + +#: src/gui/guiConst.cpp:790 +msgid "Duplicate order" +msgstr "" + +#: src/gui/guiConst.cpp:791 +msgid "Deep clone order" +msgstr "" + +#: src/gui/guiConst.cpp:792 +msgid "Copy current order to end of song" +msgstr "" + +#: src/gui/guiConst.cpp:793 +msgid "Deep clone current order to end of song" +msgstr "" + +#: src/gui/guiConst.cpp:797 +msgid "Replay order" +msgstr "" + +#: src/gui/guiConst.cpp:1392 +msgid "All chips" +msgstr "" + +#: src/gui/guiConst.cpp:1393 src/gui/waveEdit.cpp:668 +msgid "FM" +msgstr "" + +#: src/gui/guiConst.cpp:1394 src/gui/waveEdit.cpp:199 src/gui/insEdit.cpp:183 +#: src/gui/insEdit.cpp:194 src/gui/insEdit.cpp:326 src/gui/insEdit.cpp:656 +msgid "Square" +msgstr "" + +#: src/gui/guiConst.cpp:1395 src/gui/insEdit.cpp:6652 +msgid "Wavetable" +msgstr "" + +#: src/gui/guiConst.cpp:1396 src/gui/insEdit.cpp:6954 src/gui/insEdit.cpp:7204 +#: src/gui/insEdit.cpp:7458 src/gui/insEdit.cpp:7480 +msgid "Special" +msgstr "" + +#: src/gui/piano.cpp:103 +msgid "Options" +msgstr "" + +#: src/gui/piano.cpp:106 +msgid "Key layout:" +msgstr "" + +#: src/gui/piano.cpp:108 +msgid "Automatic" +msgstr "" + +#: src/gui/piano.cpp:111 +msgid "Standard" +msgstr "" + +#: src/gui/piano.cpp:114 +msgid "Continuous" +msgstr "" + +#: src/gui/piano.cpp:118 +msgid "Value input pad:" +msgstr "" + +#: src/gui/piano.cpp:120 +msgid "Disabled" +msgstr "" + +#: src/gui/piano.cpp:123 +msgid "Replace piano" +msgstr "" + +#: src/gui/piano.cpp:126 +msgid "Split (automatic)" +msgstr "" + +#: src/gui/piano.cpp:129 +msgid "Split (always visible)" +msgstr "" + +#: src/gui/piano.cpp:133 +msgid "Share play/edit offset/range" +msgstr "" + +#: src/gui/piano.cpp:134 +msgid "Read-only (can't input notes)" +msgstr "" + +#: src/gui/waveEdit.cpp:30 src/gui/waveEdit.cpp:192 src/gui/insEdit.cpp:177 +#: src/gui/insEdit.cpp:188 src/gui/insEdit.cpp:199 +msgid "Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:31 src/gui/waveEdit.cpp:217 src/gui/insEdit.cpp:200 +#: src/gui/insEdit.cpp:324 src/gui/insEdit.cpp:658 +msgid "Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:32 src/gui/waveEdit.cpp:202 src/gui/insEdit.cpp:325 +#: src/gui/insEdit.cpp:654 +msgid "Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:33 +msgid "Pulse" +msgstr "" + +#: src/gui/waveEdit.cpp:38 +msgid "Linear" +msgstr "" + +#: src/gui/waveEdit.cpp:39 +msgid "Cosine" +msgstr "" + +#: src/gui/waveEdit.cpp:40 +msgid "Cubic" +msgstr "" + +#: src/gui/waveEdit.cpp:193 +msgid "Rect. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:194 +msgid "Abs. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:195 +msgid "Quart. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:196 +msgid "Squish. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:197 +msgid "Abs. Squish. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:200 +msgid "rectSquare" +msgstr "" + +#: src/gui/waveEdit.cpp:203 +msgid "Rect. Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:204 +msgid "Abs. Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:206 +msgid "Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:207 +msgid "Rect. Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:208 +msgid "Abs. Cubed Saw" +msgstr "" + +#: src/gui/waveEdit.cpp:210 +msgid "Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:211 +msgid "Rect. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:212 +msgid "Abs. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:213 +msgid "Quart. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:214 +msgid "Squish. Cubed Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:215 +msgid "Squish. Abs. Cub. Sine" +msgstr "" + +#: src/gui/waveEdit.cpp:218 +msgid "Rect. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:219 +msgid "Abs. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:220 +msgid "Quart. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:221 +msgid "Squish. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:222 +msgid "Abs. Squish. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:224 +msgid "Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:225 +msgid "Rect. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:226 +msgid "Abs. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:227 +msgid "Quart. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:228 +msgid "Squish. Cubed Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:229 +msgid "Squish. Abs. Cub. Triangle" +msgstr "" + +#: src/gui/waveEdit.cpp:412 src/gui/waveEdit.cpp:413 +msgid "no wavetable selected" +msgstr "" + +#: src/gui/waveEdit.cpp:424 src/gui/sampleEdit.cpp:111 src/gui/insEdit.cpp:5223 +msgid "select one..." +msgstr "" + +#: src/gui/waveEdit.cpp:432 src/gui/waveEdit.cpp:439 src/gui/sampleEdit.cpp:119 +#: src/gui/sampleEdit.cpp:126 src/gui/insEdit.cpp:5236 src/gui/insEdit.cpp:5243 +msgid "or" +msgstr "" + +#: src/gui/waveEdit.cpp:441 src/gui/sampleEdit.cpp:128 src/gui/insEdit.cpp:5245 +msgid "Create New" +msgstr "" + +#: src/gui/waveEdit.cpp:487 +msgid "Steps" +msgstr "" + +#: src/gui/waveEdit.cpp:491 +msgid "Lines" +msgstr "" + +#: src/gui/waveEdit.cpp:496 src/gui/insEdit.cpp:2687 +msgid "Width" +msgstr "" + +#: src/gui/waveEdit.cpp:498 +msgid "" +"use a width of:\n" +"- any on Amiga/N163\n" +"- 32 on Game Boy, PC Engine, SCC, Konami Bubble System, Namco WSG, Virtual " +"Boy and WonderSwan\n" +"- 64 on FDS\n" +"- 128 on X1-010\n" +"any other widths will be scaled during playback." +msgstr "" + +#: src/gui/waveEdit.cpp:510 +msgid "Height" +msgstr "" + +#: src/gui/waveEdit.cpp:512 +msgid "" +"use a height of:\n" +"- 16 for Game Boy, WonderSwan, Namco WSG, Konami Bubble System, X1-010 " +"Envelope shape and N163\n" +"- 32 for PC Engine\n" +"- 64 for FDS and Virtual Boy\n" +"- 256 for X1-010 and SCC\n" +"any other heights will be scaled during playback." +msgstr "" + +#: src/gui/waveEdit.cpp:578 +msgid "Shapes" +msgstr "" + +#: src/gui/waveEdit.cpp:597 src/gui/insEdit.cpp:5879 src/gui/insEdit.cpp:6922 +#: src/gui/insEdit.cpp:6948 src/gui/insEdit.cpp:7008 src/gui/insEdit.cpp:7048 +#: src/gui/insEdit.cpp:7150 src/gui/insEdit.cpp:7436 src/gui/insEdit.cpp:7472 +msgid "Duty" +msgstr "" + +#: src/gui/waveEdit.cpp:607 +msgid "Exponent" +msgstr "" + +#: src/gui/waveEdit.cpp:617 +msgid "XOR Point" +msgstr "" + +#: src/gui/waveEdit.cpp:627 +msgid "Amplitude/Phase" +msgstr "" + +#: src/gui/waveEdit.cpp:679 src/gui/waveEdit.cpp:723 src/gui/waveEdit.cpp:728 +msgid "Op" +msgstr "" + +#: src/gui/waveEdit.cpp:683 +msgid "Mult" +msgstr "" + +#: src/gui/waveEdit.cpp:685 +msgid "FB" +msgstr "" + +#: src/gui/waveEdit.cpp:730 src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:4148 +#: src/gui/insEdit.cpp:5812 src/gui/insEdit.cpp:6940 src/gui/insEdit.cpp:6949 +#: src/gui/insEdit.cpp:6963 src/gui/insEdit.cpp:6980 src/gui/insEdit.cpp:6991 +#: src/gui/insEdit.cpp:7004 src/gui/insEdit.cpp:7018 src/gui/insEdit.cpp:7025 +#: src/gui/insEdit.cpp:7035 src/gui/insEdit.cpp:7041 src/gui/insEdit.cpp:7050 +#: src/gui/insEdit.cpp:7074 src/gui/insEdit.cpp:7084 src/gui/insEdit.cpp:7094 +#: src/gui/insEdit.cpp:7101 src/gui/insEdit.cpp:7116 src/gui/insEdit.cpp:7131 +#: src/gui/insEdit.cpp:7151 src/gui/insEdit.cpp:7158 src/gui/insEdit.cpp:7200 +#: src/gui/insEdit.cpp:7211 src/gui/insEdit.cpp:7224 src/gui/insEdit.cpp:7349 +#: src/gui/insEdit.cpp:7425 src/gui/insEdit.cpp:7445 src/gui/insEdit.cpp:7453 +#: src/gui/insEdit.cpp:7473 +msgid "Waveform" +msgstr "" + +#: src/gui/waveEdit.cpp:749 src/gui/waveEdit.cpp:750 +msgid "Connection Diagram" +msgstr "" + +#: src/gui/waveEdit.cpp:765 +msgid "Out" +msgstr "" + +#: src/gui/waveEdit.cpp:872 +msgid "WaveTools" +msgstr "" + +#: src/gui/waveEdit.cpp:890 +msgid "Scale X" +msgstr "" + +#: src/gui/waveEdit.cpp:896 +msgid "wavetable longer than 256 samples!" +msgstr "" + +#: src/gui/waveEdit.cpp:960 +msgid "Scale Y" +msgstr "" + +#: src/gui/waveEdit.cpp:978 +msgid "Offset X" +msgstr "" + +#: src/gui/waveEdit.cpp:1000 +msgid "Offset Y" +msgstr "" + +#: src/gui/waveEdit.cpp:1017 +msgid "Smooth" +msgstr "" + +#: src/gui/waveEdit.cpp:1045 src/gui/sampleEdit.cpp:996 +msgid "Amplify" +msgstr "" + +#: src/gui/waveEdit.cpp:1063 src/gui/sampleEdit.cpp:1046 +msgid "Normalize" +msgstr "" + +#: src/gui/waveEdit.cpp:1105 src/gui/sampleEdit.cpp:1121 +msgid "Reverse" +msgstr "" + +#: src/gui/waveEdit.cpp:1117 +msgid "Half" +msgstr "" + +#: src/gui/waveEdit.cpp:1127 +msgid "Double" +msgstr "" + +#: src/gui/waveEdit.cpp:1137 +msgid "Convert Signed/Unsigned" +msgstr "" + +#: src/gui/waveEdit.cpp:1149 src/gui/gui.cpp:3040 +msgid "Randomize" +msgstr "" + +#: src/gui/waveEdit.cpp:1167 +msgid "Dec" +msgstr "" + +#: src/gui/waveEdit.cpp:1171 src/gui/csPlayer.cpp:247 +msgid "Hex" +msgstr "" + +#: src/gui/waveEdit.cpp:1179 +msgid "Signed/Unsigned" +msgstr "" + +#: src/gui/sampleEdit.cpp:65 +#, c-format +msgid "%s: maximum sample rate is %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:72 +#, c-format +msgid "%s: minimum sample rate is %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:79 +#, c-format +msgid "%s: sample rate must be %d" +msgstr "" + +#: src/gui/sampleEdit.cpp:99 src/gui/sampleEdit.cpp:100 +msgid "no sample selected" +msgstr "" + +#: src/gui/sampleEdit.cpp:229 +#, c-format +msgid "SNES: loop start must be a multiple of 16 (try with %d)" +msgstr "" + +#: src/gui/sampleEdit.cpp:235 +#, c-format +msgid "SNES: loop end must be a multiple of 16 (try with %d)" +msgstr "" + +#: src/gui/sampleEdit.cpp:240 +msgid "SNES: sample length will be padded to multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:249 +msgid "QSound: loop cannot be longer than 32767 samples" +msgstr "" + +#: src/gui/sampleEdit.cpp:259 +msgid "NES: loop point ignored on DPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:263 +msgid "NES: maximum DPCM sample length is 32648" +msgstr "" + +#: src/gui/sampleEdit.cpp:268 +msgid "X1-010: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:271 +msgid "X1-010: maximum sample length is 131072" +msgstr "" + +#: src/gui/sampleEdit.cpp:276 +msgid "GA20: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:287 +msgid "YM2608: loop point ignored on ADPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:290 +msgid "YM2608: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:300 +msgid "YM2610: ADPCM-A samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:302 +msgid "YM2610: loop point ignored on ADPCM-B (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:305 +msgid "YM2610: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:309 +msgid "YM2610: maximum ADPCM-A sample length is 2097152" +msgstr "" + +#: src/gui/sampleEdit.cpp:318 +msgid "Y8950: loop point ignored on ADPCM (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:321 +msgid "Y8950: sample length will be padded to multiple of 512" +msgstr "" + +#: src/gui/sampleEdit.cpp:328 +msgid "Amiga: loop start must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:331 +msgid "Amiga: loop end must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:335 +msgid "Amiga: maximum sample length is 131070" +msgstr "" + +#: src/gui/sampleEdit.cpp:344 +msgid "SegaPCM: maximum sample length is 65280" +msgstr "" + +#: src/gui/sampleEdit.cpp:353 +msgid "K053260: loop point ignored (may only loop entire sample)" +msgstr "" + +#: src/gui/sampleEdit.cpp:357 +msgid "K053260: maximum sample length is 65535" +msgstr "" + +#: src/gui/sampleEdit.cpp:362 +msgid "C140: maximum sample length is 65535" +msgstr "" + +#: src/gui/sampleEdit.cpp:371 +msgid "C219: loop start must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:374 +msgid "C219: loop end must be a multiple of 2" +msgstr "" + +#: src/gui/sampleEdit.cpp:378 +msgid "C219: maximum sample length is 131072" +msgstr "" + +#: src/gui/sampleEdit.cpp:386 +msgid "MSM6295: samples can't loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:389 +msgid "MSM6295: maximum bankswitched sample length is 129024" +msgstr "" + +#: src/gui/sampleEdit.cpp:395 +msgid "GBA DMA: loop start must be a multiple of 4" +msgstr "" + +#: src/gui/sampleEdit.cpp:398 +msgid "GBA DMA: loop length must be a multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:402 +msgid "GBA DMA: sample length will be padded to multiple of 16" +msgstr "" + +#: src/gui/sampleEdit.cpp:411 +msgid "ES5506: backward loop mode isn't supported" +msgstr "" + +#: src/gui/sampleEdit.cpp:414 +msgid "" +"backward/ping-pong only supported in Generic PCM DAC\n" +"ping-pong also on ES5506" +msgstr "" + +#: src/gui/sampleEdit.cpp:444 +msgid "Info" +msgstr "" + +#: src/gui/sampleEdit.cpp:447 src/gui/sampleEdit.cpp:933 +msgid "Rate" +msgstr "" + +#: src/gui/sampleEdit.cpp:453 +msgid "Compat Rate" +msgstr "" + +#: src/gui/sampleEdit.cpp:457 +msgid "" +"used in DefleMask-compatible sample mode (17xx), in where samples are mapped " +"to an octave." +msgstr "" + +#: src/gui/sampleEdit.cpp:463 +#, c-format +msgid "Loop (length: %d)##Loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:463 src/gui/insEdit.cpp:544 src/gui/insEdit.cpp:554 +#: src/gui/insEdit.cpp:605 src/gui/insEdit.cpp:6017 +msgid "Loop" +msgstr "" + +#: src/gui/sampleEdit.cpp:487 src/gui/sampleEdit.cpp:716 +#: src/gui/sampleEdit.cpp:752 +msgid "changing the loop in a BRR sample may result in glitches!" +msgstr "" + +#: src/gui/sampleEdit.cpp:501 src/gui/insEdit.cpp:5321 +msgid "Type" +msgstr "" + +#: src/gui/sampleEdit.cpp:529 +msgid "BRR emphasis" +msgstr "" + +#: src/gui/sampleEdit.cpp:538 +msgid "" +"this is a BRR sample.\n" +"enabling this option will muffle it (only affects non-SNES chips)." +msgstr "" + +#: src/gui/sampleEdit.cpp:540 +msgid "" +"enable this option to slightly boost high frequencies\n" +"to compensate for the SNES' Gaussian filter's muffle." +msgstr "" + +#: src/gui/sampleEdit.cpp:546 +msgid "8-bit dither" +msgstr "" + +#: src/gui/sampleEdit.cpp:554 +msgid "dither the sample when used on a chip that only supports 8-bit samples." +msgstr "" + +#: src/gui/sampleEdit.cpp:695 src/gui/gui.cpp:2969 +msgid "Start" +msgstr "" + +#: src/gui/sampleEdit.cpp:731 src/gui/gui.cpp:2977 +msgid "End" +msgstr "" + +#: src/gui/sampleEdit.cpp:841 +#, c-format +msgid "" +"%s\n" +"%d bytes free" +msgstr "" + +#: src/gui/sampleEdit.cpp:843 +#, c-format +msgid "" +"%s (%s)\n" +"%d bytes free" +msgstr "" + +#: src/gui/sampleEdit.cpp:847 +msgid "" +"\n" +"\n" +"not enough memory for this sample!" +msgstr "" + +#: src/gui/sampleEdit.cpp:871 +msgid "Edit mode: Select" +msgstr "" + +#: src/gui/sampleEdit.cpp:880 +msgid "Edit mode: Draw" +msgstr "" + +#: src/gui/sampleEdit.cpp:891 src/gui/sampleEdit.cpp:902 +msgid "Resize" +msgstr "" + +#: src/gui/sampleEdit.cpp:906 +msgid "couldn't resize! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:926 src/gui/sampleEdit.cpp:957 +msgid "Resample" +msgstr "" + +#: src/gui/sampleEdit.cpp:951 +msgid "Factor" +msgstr "" + +#: src/gui/sampleEdit.cpp:956 +msgid "Filter" +msgstr "" + +#: src/gui/sampleEdit.cpp:961 +msgid "couldn't resample! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:1010 src/gui/sampleEdit.cpp:1197 +#: src/gui/sampleEdit.cpp:1281 +msgid "Apply" +msgstr "" + +#: src/gui/sampleEdit.cpp:1053 +msgid "Fade in" +msgstr "" + +#: src/gui/sampleEdit.cpp:1060 +msgid "Fade out" +msgstr "" + +#: src/gui/sampleEdit.cpp:1065 +msgid "Insert silence" +msgstr "" + +#: src/gui/sampleEdit.cpp:1076 +msgid "Go" +msgstr "" + +#: src/gui/sampleEdit.cpp:1081 +msgid "couldn't insert! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/sampleEdit.cpp:1098 +msgid "Apply silence" +msgstr "" + +#: src/gui/sampleEdit.cpp:1112 +msgid "Trim" +msgstr "" + +#: src/gui/sampleEdit.cpp:1135 +msgid "Signed/unsigned exchange" +msgstr "" + +#: src/gui/sampleEdit.cpp:1140 +msgid "Apply filter" +msgstr "" + +#: src/gui/sampleEdit.cpp:1151 +msgid "Cutoff:" +msgstr "" + +#: src/gui/sampleEdit.cpp:1161 src/gui/insEdit.cpp:5895 +#: src/gui/insEdit.cpp:5898 src/gui/insEdit.cpp:6953 src/gui/insEdit.cpp:7216 +#: src/gui/insEdit.cpp:7478 +msgid "Resonance" +msgstr "" + +#: src/gui/sampleEdit.cpp:1167 src/gui/insEdit.cpp:6897 +msgid "Power" +msgstr "" + +#: src/gui/sampleEdit.cpp:1181 +msgid "Low-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1186 +msgid "Band-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1191 +msgid "High-pass" +msgstr "" + +#: src/gui/sampleEdit.cpp:1262 +msgid "Crossfade loop points" +msgstr "" + +#: src/gui/sampleEdit.cpp:1271 +msgid "Number of samples" +msgstr "" + +#: src/gui/sampleEdit.cpp:1277 +msgid "Linear <-> Equal power" +msgstr "" + +#: src/gui/sampleEdit.cpp:1283 +msgid "Crossfade: length would go out of bounds. Aborted..." +msgstr "" + +#: src/gui/sampleEdit.cpp:1286 +msgid "Crossfade: length would overflow loopStart. Try a smaller random value." +msgstr "" + +#: src/gui/sampleEdit.cpp:1332 +msgid "Preview sample" +msgstr "" + +#: src/gui/sampleEdit.cpp:1346 +msgid "Create instrument from sample" +msgstr "" + +#: src/gui/sampleEdit.cpp:1747 +msgid "paste (replace)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1750 +msgid "paste (mix)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1754 src/gui/gui.cpp:2763 +msgid "select all" +msgstr "" + +#: src/gui/sampleEdit.cpp:1758 +msgid "set loop to selection" +msgstr "" + +#: src/gui/sampleEdit.cpp:1761 +msgid "create wavetable from selection" +msgstr "" + +#: src/gui/sampleEdit.cpp:1767 +msgid "Draw" +msgstr "" + +#: src/gui/sampleEdit.cpp:1767 +msgid "Select" +msgstr "" + +#: src/gui/sampleEdit.cpp:1769 +#, c-format +msgid "%d samples, %d bytes" +msgstr "" + +#: src/gui/sampleEdit.cpp:1784 +#, c-format +msgid " (%d-%d: %d samples)" +msgstr "" + +#: src/gui/sampleEdit.cpp:1976 +msgid "Non-8/16-bit samples cannot be edited without prior conversion." +msgstr "" + +#: src/gui/newSong.cpp:122 src/gui/newSong.cpp:123 +msgid "Choose a System!" +msgstr "" + +#: src/gui/newSong.cpp:179 +msgid "Categories" +msgstr "" + +#: src/gui/newSong.cpp:210 +msgid "no systems here yet!" +msgstr "" + +#: src/gui/newSong.cpp:212 +msgid "no results" +msgstr "" + +#: src/gui/newSong.cpp:228 +msgid "I'm feeling lucky" +msgstr "" + +#: src/gui/newSong.cpp:230 +msgid "no categories available! what in the world." +msgstr "" + +#: src/gui/newSong.cpp:265 +msgid "it appears you're extremely lucky today!" +msgstr "" + +#: src/gui/cursor.cpp:205 +#, c-format +msgid "finish selection: %d.%d,%d - %d.%d,%d" +msgstr "" + +#: src/gui/tutorial.cpp:485 +msgid "" +"Play demo songs?\n" +"- Down: Play current song\n" +"- Up: Play demo songs" +msgstr "" + +#: src/gui/tutorial.cpp:489 +msgid "" +"Welcome to Combat Vehicle!\n" +"\n" +"Controls:\n" +"X - Shoot Arrow Key - Move\n" +"Z - Special Esc - Quit" +msgstr "" + +#: src/gui/tutorial.cpp:494 +msgid "GAME OVER" +msgstr "" + +#: src/gui/tutorial.cpp:496 +msgid "High Score!" +msgstr "" + +#: src/gui/tutorial.cpp:656 +msgid "Welcome!" +msgstr "" + +#: src/gui/tutorial.cpp:659 +msgid "welcome to Furnace, the biggest open-source chiptune tracker!" +msgstr "" + +#: src/gui/tutorial.cpp:663 +msgid "here are some tips to get you started:" +msgstr "" + +#: src/gui/tutorial.cpp:666 +msgid "" +"- add an instrument by clicking on + in Instruments\n" +"- click on the pattern view to focus it\n" +"- channel columns have the following, in this order: note, instrument, " +"volume and effects\n" +"- hit space bar while on the pattern to toggle Edit Mode\n" +"- click on the pattern or use arrow keys to move the cursor\n" +"- values (instrument, volume, effects and effect values) are in hexadecimal\n" +"- hit enter to play/stop the song\n" +"- extend the song by adding more orders in the Orders window\n" +"- click on the Orders matrix to change the patterns of a channel (left click " +"increases; right click decreases)" +msgstr "" + +#: src/gui/tutorial.cpp:678 +msgid "" +"if you need help, you may:\n" +"- read the manual (a file called manual.pdf)\n" +"- ask for help in Discussions (https://github.com/tildearrow/furnace/" +"discussions), the Furnace Discord (https://discord.gg/EfrwT2wq7z) or Furnace " +"in Revolt (official: https://rvlt.gg/GRPS6tmc)" +msgstr "" + +#: src/gui/tutorial.cpp:685 +msgid "" +"if you find any issues, be sure to report them! the issue tracker is here: " +"https://github.com/tildearrow/furnace/issues" +msgstr "" + +#: src/gui/tutorial.cpp:1426 +#, c-format +msgid "STAGE %d" +msgstr "" + +#: src/gui/songInfo.cpp:50 +msgid "Author" +msgstr "" + +#: src/gui/songInfo.cpp:60 +msgid "Album" +msgstr "" + +#: src/gui/songInfo.cpp:79 +msgid "Auto" +msgstr "" + +#: src/gui/songInfo.cpp:100 +msgid "Tuning (A-4)" +msgstr "" + +#: src/gui/grooves.cpp:38 +msgid "use effect 09xx to select a groove pattern." +msgstr "" + +#: src/gui/grooves.cpp:48 src/gui/gui.cpp:4474 +msgid "pattern" +msgstr "" + +#: src/gui/grooves.cpp:132 +msgid "remove" +msgstr "" + +#: src/gui/doAction.cpp:45 src/gui/gui.cpp:4195 +msgid "Unsaved changes! Save changes before opening another file?" +msgstr "" + +#: src/gui/doAction.cpp:52 +msgid "Unsaved changes! Save changes before opening backup?" +msgstr "" + +#: src/gui/doAction.cpp:62 src/gui/gui.cpp:4231 src/gui/gui.cpp:5013 +#: src/gui/gui.cpp:5051 src/gui/gui.cpp:5057 src/gui/gui.cpp:5645 +#: src/gui/gui.cpp:5669 src/gui/gui.cpp:5693 src/gui/gui.cpp:5717 +#: src/gui/gui.cpp:5741 src/gui/gui.cpp:5765 +#, c-format +msgid "Error while saving file! (%s)" +msgstr "" + +#: src/gui/doAction.cpp:189 +msgid "Error while sending request (MIDI output not configured?)" +msgstr "" + +#: src/gui/doAction.cpp:197 +msgid "Select an option: (cannot be undone!)" +msgstr "" + +#: src/gui/doAction.cpp:691 src/gui/doAction.cpp:720 src/gui/doAction.cpp:1593 +#: src/gui/gui.cpp:6079 +msgid "too many instruments!" +msgstr "" + +#: src/gui/doAction.cpp:825 src/gui/doAction.cpp:843 src/gui/doAction.cpp:1634 +#: src/gui/gui.cpp:6147 src/gui/insEdit.cpp:6860 +msgid "too many wavetables!" +msgstr "" + +#: src/gui/doAction.cpp:909 src/gui/doAction.cpp:921 +msgid "too many samples!" +msgstr "" + +#: src/gui/doAction.cpp:1124 +msgid "couldn't paste! make sure your sample is 8 or 16-bit." +msgstr "" + +#: src/gui/doAction.cpp:1628 +msgid "select at least one sample!" +msgstr "" + +#: src/gui/doAction.cpp:1630 +msgid "maximum size is 256 samples!" +msgstr "" + +#: src/gui/csPlayer.cpp:113 +msgid "Load" +msgstr "" + +#: src/gui/csPlayer.cpp:117 +msgid "Kill" +msgstr "" + +#: src/gui/csPlayer.cpp:119 +msgid "Kikai wa mou shindeiru!" +msgstr "" + +#: src/gui/csPlayer.cpp:123 +msgid "Burn Current Song" +msgstr "" + +#: src/gui/csPlayer.cpp:141 +msgid "Status" +msgstr "" + +#: src/gui/csPlayer.cpp:148 +msgid "start" +msgstr "" + +#: src/gui/csPlayer.cpp:150 +msgid "PC" +msgstr "" + +#: src/gui/csPlayer.cpp:152 +msgid "wait" +msgstr "" + +#: src/gui/csPlayer.cpp:154 +msgid "SP" +msgstr "" + +#: src/gui/csPlayer.cpp:156 src/gui/insEdit.cpp:2733 +msgid "note" +msgstr "" + +#: src/gui/csPlayer.cpp:158 src/gui/insEdit.cpp:2728 +msgid "pitch" +msgstr "" + +#: src/gui/csPlayer.cpp:160 +msgid "vol" +msgstr "" + +#: src/gui/csPlayer.cpp:162 +msgid "vols" +msgstr "" + +#: src/gui/csPlayer.cpp:164 +msgid "vib" +msgstr "" + +#: src/gui/csPlayer.cpp:166 +msgid "porta" +msgstr "" + +#: src/gui/csPlayer.cpp:168 +msgid "arp" +msgstr "" + +#: src/gui/csPlayer.cpp:203 +msgid "Trace" +msgstr "" + +#: src/gui/csPlayer.cpp:244 +msgid "Disassemble" +msgstr "" + +#: src/gui/gui.cpp:1130 src/gui/gui.cpp:1134 +msgid "the song is over!" +msgstr "" + +#: src/gui/gui.cpp:1661 +msgid "Open File" +msgstr "" + +#: src/gui/gui.cpp:1662 src/gui/gui.cpp:1792 src/gui/gui.cpp:1832 +#: src/gui/gui.cpp:1947 src/gui/gui.cpp:1956 src/gui/gui.cpp:1965 +#: src/gui/gui.cpp:2067 src/gui/gui.cpp:2087 src/gui/gui.cpp:2105 +msgid "compatible files" +msgstr "" + +#: src/gui/gui.cpp:1663 src/gui/gui.cpp:1737 src/gui/gui.cpp:1793 +#: src/gui/gui.cpp:1833 src/gui/gui.cpp:1845 src/gui/gui.cpp:1864 +#: src/gui/gui.cpp:2068 src/gui/gui.cpp:2078 src/gui/gui.cpp:2089 +#: src/gui/gui.cpp:2107 +msgid "all files" +msgstr "" + +#: src/gui/gui.cpp:1670 +msgid "no backups made yet!" +msgstr "" + +#: src/gui/gui.cpp:1675 src/gui/gui.cpp:1684 src/gui/gui.cpp:2124 +msgid "Furnace song" +msgstr "" + +#: src/gui/gui.cpp:1683 +msgid "Save File" +msgstr "" + +#: src/gui/gui.cpp:1692 src/gui/gui.cpp:1702 +msgid "Export DMF" +msgstr "" + +#: src/gui/gui.cpp:1693 +msgid "DefleMask 1.1.3 module" +msgstr "" + +#: src/gui/gui.cpp:1703 +msgid "DefleMask 1.0/legacy module" +msgstr "" + +#: src/gui/gui.cpp:1720 +msgid "Load Instrument" +msgstr "" + +#: src/gui/gui.cpp:1721 +msgid "all compatible files" +msgstr "" + +#: src/gui/gui.cpp:1722 src/gui/gui.cpp:1771 +msgid "Furnace instrument" +msgstr "" + +#: src/gui/gui.cpp:1723 src/gui/gui.cpp:1781 +msgid "DefleMask preset" +msgstr "" + +#: src/gui/gui.cpp:1724 +msgid "TFM Music Maker instrument" +msgstr "" + +#: src/gui/gui.cpp:1725 +msgid "VGM Music Maker instrument" +msgstr "" + +#: src/gui/gui.cpp:1726 +msgid "Scream Tracker 3 instrument" +msgstr "" + +#: src/gui/gui.cpp:1727 +msgid "SoundBlaster instrument" +msgstr "" + +#: src/gui/gui.cpp:1728 +msgid "Wohlstand OPL instrument" +msgstr "" + +#: src/gui/gui.cpp:1729 +msgid "Wohlstand OPN instrument" +msgstr "" + +#: src/gui/gui.cpp:1730 +msgid "Gens KMod patch dump" +msgstr "" + +#: src/gui/gui.cpp:1731 +msgid "BNK file (AdLib)" +msgstr "" + +#: src/gui/gui.cpp:1732 +msgid "FF preset bank" +msgstr "" + +#: src/gui/gui.cpp:1733 +msgid "2612edit GYB preset bank" +msgstr "" + +#: src/gui/gui.cpp:1734 +msgid "VOPM preset bank" +msgstr "" + +#: src/gui/gui.cpp:1735 +msgid "Wohlstand WOPL bank" +msgstr "" + +#: src/gui/gui.cpp:1736 +msgid "Wohlstand WOPN bank" +msgstr "" + +#: src/gui/gui.cpp:1770 src/gui/gui.cpp:1780 +msgid "Save Instrument" +msgstr "" + +#: src/gui/gui.cpp:1791 +msgid "Load Wavetable" +msgstr "" + +#: src/gui/gui.cpp:1803 src/gui/gui.cpp:1812 src/gui/gui.cpp:1821 +msgid "Save Wavetable" +msgstr "" + +#: src/gui/gui.cpp:1804 +msgid "Furnace wavetable" +msgstr "" + +#: src/gui/gui.cpp:1813 +msgid "DefleMask wavetable" +msgstr "" + +#: src/gui/gui.cpp:1822 +msgid "raw data" +msgstr "" + +#: src/gui/gui.cpp:1831 +msgid "Load Sample" +msgstr "" + +#: src/gui/gui.cpp:1844 +msgid "Load Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:1853 +msgid "Save Sample" +msgstr "" + +#: src/gui/gui.cpp:1854 src/gui/gui.cpp:1874 src/gui/gui.cpp:1884 +#: src/gui/gui.cpp:1894 +msgid "Wave file" +msgstr "" + +#: src/gui/gui.cpp:1863 +msgid "Save Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:1873 src/gui/gui.cpp:1883 src/gui/gui.cpp:1893 +msgid "Export Audio" +msgstr "" + +#: src/gui/gui.cpp:1903 +msgid "Export VGM" +msgstr "" + +#: src/gui/gui.cpp:1904 +msgid "VGM file" +msgstr "" + +#: src/gui/gui.cpp:1913 +msgid "Export ZSM" +msgstr "" + +#: src/gui/gui.cpp:1914 +msgid "ZSM file" +msgstr "" + +#: src/gui/gui.cpp:1923 src/gui/gui.cpp:1933 +msgid "Export Command Stream" +msgstr "" + +#: src/gui/gui.cpp:1924 +msgid "text file" +msgstr "" + +#: src/gui/gui.cpp:1934 +msgid "binary file" +msgstr "" + +#: src/gui/gui.cpp:1941 src/gui/gui.cpp:5364 +msgid "Coming soon!" +msgstr "" + +#: src/gui/gui.cpp:1946 src/gui/gui.cpp:1955 src/gui/gui.cpp:1964 +msgid "Select Font" +msgstr "" + +#: src/gui/gui.cpp:1973 +msgid "Select Color File" +msgstr "" + +#: src/gui/gui.cpp:1974 src/gui/gui.cpp:1983 src/gui/gui.cpp:2002 +#: src/gui/gui.cpp:2011 src/gui/gui.cpp:2020 src/gui/gui.cpp:2029 +#: src/gui/gui.cpp:2047 src/gui/gui.cpp:2056 +msgid "configuration files" +msgstr "" + +#: src/gui/gui.cpp:1982 +msgid "Select Keybind File" +msgstr "" + +#: src/gui/gui.cpp:1991 +msgid "Select Layout File" +msgstr "" + +#: src/gui/gui.cpp:1992 src/gui/gui.cpp:2038 +msgid ".ini files" +msgstr "" + +#: src/gui/gui.cpp:2001 +msgid "Select User Presets File" +msgstr "" + +#: src/gui/gui.cpp:2010 +msgid "Select Settings File" +msgstr "" + +#: src/gui/gui.cpp:2019 +msgid "Export Colors" +msgstr "" + +#: src/gui/gui.cpp:2028 +msgid "Export Keybinds" +msgstr "" + +#: src/gui/gui.cpp:2037 +msgid "Export Layout" +msgstr "" + +#: src/gui/gui.cpp:2046 +msgid "Export User Presets" +msgstr "" + +#: src/gui/gui.cpp:2055 +msgid "Export Settings" +msgstr "" + +#: src/gui/gui.cpp:2066 +msgid "Load ROM" +msgstr "" + +#: src/gui/gui.cpp:2076 +msgid "Play Command Stream" +msgstr "" + +#: src/gui/gui.cpp:2077 +msgid "command stream" +msgstr "" + +#: src/gui/gui.cpp:2086 +msgid "Open Test" +msgstr "" + +#: src/gui/gui.cpp:2088 src/gui/gui.cpp:2106 +msgid "another option" +msgstr "" + +#: src/gui/gui.cpp:2104 +msgid "Open Test (Multi)" +msgstr "" + +#: src/gui/gui.cpp:2123 +msgid "Save Test" +msgstr "" + +#: src/gui/gui.cpp:2125 +msgid "DefleMask module" +msgstr "" + +#: src/gui/gui.cpp:2165 +msgid "compression error" +msgstr "" + +#: src/gui/gui.cpp:2177 +msgid "zlib stream error" +msgstr "" + +#: src/gui/gui.cpp:2199 +msgid "zlib finish stream error" +msgstr "" + +#: src/gui/gui.cpp:2253 src/gui/gui.cpp:2416 +#, c-format +msgid "on seek: %s" +msgstr "" + +#: src/gui/gui.cpp:2260 src/gui/gui.cpp:2423 +#, c-format +msgid "on pre tell: %s" +msgstr "" + +#: src/gui/gui.cpp:2267 src/gui/gui.cpp:2430 +msgid "file is empty" +msgstr "" + +#: src/gui/gui.cpp:2270 src/gui/gui.cpp:2433 +#, c-format +msgid "on tell: %s" +msgstr "" + +#: src/gui/gui.cpp:2277 src/gui/gui.cpp:2440 +#, c-format +msgid "on get size: %s" +msgstr "" + +#: src/gui/gui.cpp:2284 src/gui/gui.cpp:2447 +#, c-format +msgid "on read: %s" +msgstr "" + +#: src/gui/gui.cpp:2310 +msgid "everything OK" +msgstr "" + +#: src/gui/gui.cpp:2328 +msgid "" +"you have loaded a backup!\n" +"if you need to, please save it somewhere.\n" +"\n" +"DO NOT RELY ON THE BACKUP SYSTEM FOR AUTO-SAVE!\n" +"Furnace will not save backups of backups." +msgstr "" + +#: src/gui/gui.cpp:2336 src/gui/gui.cpp:3737 src/gui/gui.cpp:4207 +msgid "Unsaved changes! Save changes before opening file?" +msgstr "" + +#: src/gui/gui.cpp:2730 +msgid "paste special..." +msgstr "" + +#: src/gui/gui.cpp:2731 +msgid "paste mix" +msgstr "" + +#: src/gui/gui.cpp:2732 +msgid "paste mix (background)" +msgstr "" + +#: src/gui/gui.cpp:2733 +msgid "paste with ins (foreground)" +msgstr "" + +#: src/gui/gui.cpp:2735 src/gui/gui.cpp:2747 src/gui/gui.cpp:2957 +msgid "no instruments available" +msgstr "" + +#: src/gui/gui.cpp:2745 +msgid "paste with ins (background)" +msgstr "" + +#: src/gui/gui.cpp:2757 +msgid "paste flood" +msgstr "" + +#: src/gui/gui.cpp:2758 +msgid "paste overflow" +msgstr "" + +#: src/gui/gui.cpp:2767 +msgid "operation mask..." +msgstr "" + +#: src/gui/gui.cpp:2774 +msgid "pull delete" +msgstr "" + +#: src/gui/gui.cpp:2778 +msgid "insert" +msgstr "" + +#: src/gui/gui.cpp:2786 +msgid "transpose (note)" +msgstr "" + +#: src/gui/gui.cpp:2790 +msgid "transpose (value)" +msgstr "" + +#: src/gui/gui.cpp:2802 src/gui/gui.cpp:3046 +msgid "invert values" +msgstr "" + +#: src/gui/gui.cpp:2818 +msgid "collapse/expand" +msgstr "" + +#: src/gui/gui.cpp:2823 +msgid "input latch" +msgstr "" + +#: src/gui/gui.cpp:2850 +msgid "" +"&&: selected instrument\n" +"..: no instrument" +msgstr "" + +#: src/gui/gui.cpp:2904 +msgid "Set" +msgstr "" + +#: src/gui/gui.cpp:2914 +msgid "Reset" +msgstr "" + +#: src/gui/gui.cpp:2924 +msgid "note up" +msgstr "" + +#: src/gui/gui.cpp:2925 +msgid "note down" +msgstr "" + +#: src/gui/gui.cpp:2926 +msgid "octave up" +msgstr "" + +#: src/gui/gui.cpp:2927 +msgid "octave down" +msgstr "" + +#: src/gui/gui.cpp:2929 +msgid "values up" +msgstr "" + +#: src/gui/gui.cpp:2930 +msgid "values down" +msgstr "" + +#: src/gui/gui.cpp:2931 +msgid "values up (+16)" +msgstr "" + +#: src/gui/gui.cpp:2932 +msgid "values down (-16)" +msgstr "" + +#: src/gui/gui.cpp:2935 +msgid "transpose" +msgstr "" + +#: src/gui/gui.cpp:2943 +msgid "Notes" +msgstr "" + +#: src/gui/gui.cpp:2948 +msgid "Values" +msgstr "" + +#: src/gui/gui.cpp:2955 +msgid "change instrument..." +msgstr "" + +#: src/gui/gui.cpp:2968 +msgid "gradient/fade..." +msgstr "" + +#: src/gui/gui.cpp:2985 src/gui/gui.cpp:3030 +msgid "Nibble mode" +msgstr "" + +#: src/gui/gui.cpp:2994 +msgid "Go ahead" +msgstr "" + +#: src/gui/gui.cpp:3000 src/gui/insEdit.cpp:7604 +msgid "scale..." +msgstr "" + +#: src/gui/gui.cpp:3005 +msgid "Scale" +msgstr "" + +#: src/gui/gui.cpp:3011 src/gui/insEdit.cpp:7632 +msgid "randomize..." +msgstr "" + +#: src/gui/gui.cpp:3012 +msgid "Minimum" +msgstr "" + +#: src/gui/gui.cpp:3021 +msgid "Maximum" +msgstr "" + +#: src/gui/gui.cpp:3050 +msgid "flip selection" +msgstr "" + +#: src/gui/gui.cpp:3053 +msgid "collapse/expand amount##CollapseAmount" +msgstr "" + +#: src/gui/gui.cpp:3062 +msgid "collapse pattern" +msgstr "" + +#: src/gui/gui.cpp:3063 +msgid "expand pattern" +msgstr "" + +#: src/gui/gui.cpp:3068 +msgid "collapse song" +msgstr "" + +#: src/gui/gui.cpp:3069 +msgid "expand song" +msgstr "" + +#: src/gui/gui.cpp:3074 +msgid "find/replace" +msgstr "" + +#: src/gui/gui.cpp:3088 src/gui/gui.cpp:5795 src/gui/gui.cpp:7300 +#, c-format +msgid "could NOT save layout! %s" +msgstr "" + +#: src/gui/gui.cpp:3100 +#, c-format +msgid "could NOT load layout! %s" +msgstr "" + +#: src/gui/gui.cpp:3562 +msgid "" +"Furnace has been started in Safe Mode.\n" +"this means that:\n" +"\n" +"- software rendering is being used\n" +"- audio output may not work\n" +"- font loading is disabled\n" +"\n" +"check any settings which may have made Furnace start up in this mode.\n" +"font loading is one of these." +msgstr "" + +#: src/gui/gui.cpp:4047 +msgid "can't keep going without graphics! Furnace will quit now." +msgstr "" + +#: src/gui/gui.cpp:4061 src/gui/gui.cpp:6650 src/gui/gui.cpp:7026 +msgid "error while loading fonts! please check your settings." +msgstr "" + +#: src/gui/gui.cpp:4185 +msgid "File" +msgstr "" + +#: src/gui/gui.cpp:4185 +msgid "file" +msgstr "" + +#: src/gui/gui.cpp:4186 +msgid "new..." +msgstr "" + +#: src/gui/gui.cpp:4193 +msgid "open..." +msgstr "" + +#: src/gui/gui.cpp:4200 +msgid "open recent" +msgstr "" + +#: src/gui/gui.cpp:4216 +msgid "nothing here yet" +msgstr "" + +#: src/gui/gui.cpp:4219 +msgid "clear history" +msgstr "" + +#: src/gui/gui.cpp:4220 +msgid "Are you sure you want to clear the recent file list?" +msgstr "" + +#: src/gui/gui.cpp:4235 +msgid "save as..." +msgstr "" + +#: src/gui/gui.cpp:4240 src/gui/gui.cpp:4281 +msgid "export audio..." +msgstr "" + +#: src/gui/gui.cpp:4244 src/gui/gui.cpp:4285 +msgid "export VGM..." +msgstr "" + +#: src/gui/gui.cpp:4253 src/gui/gui.cpp:4294 +msgid "export ZSM..." +msgstr "" + +#: src/gui/gui.cpp:4263 src/gui/gui.cpp:4304 +msgid "export Amiga validation data..." +msgstr "" + +#: src/gui/gui.cpp:4268 src/gui/gui.cpp:4309 +msgid "export text..." +msgstr "" + +#: src/gui/gui.cpp:4272 src/gui/gui.cpp:4313 +msgid "export command stream..." +msgstr "" + +#: src/gui/gui.cpp:4276 src/gui/gui.cpp:4317 +msgid "export .dmf..." +msgstr "" + +#: src/gui/gui.cpp:4322 +msgid "export..." +msgstr "" + +#: src/gui/gui.cpp:4328 +msgid "manage chips" +msgstr "" + +#: src/gui/gui.cpp:4332 +msgid "add chip..." +msgstr "" + +#: src/gui/gui.cpp:4337 src/gui/sysManager.cpp:138 +#, c-format +msgid "cannot add chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4349 +msgid "configure chip..." +msgstr "" + +#: src/gui/gui.cpp:4359 +msgid "change chip..." +msgstr "" + +#: src/gui/gui.cpp:4361 src/gui/gui.cpp:4384 +msgid "Preserve channel positions" +msgstr "" + +#: src/gui/gui.cpp:4373 src/gui/sysManager.cpp:109 +#, c-format +msgid "cannot change chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4382 +msgid "remove chip..." +msgstr "" + +#: src/gui/gui.cpp:4388 +#, c-format +msgid "cannot remove chip! (%s)" +msgstr "" + +#: src/gui/gui.cpp:4402 +msgid "open built-in assets directory" +msgstr "" + +#: src/gui/gui.cpp:4408 +msgid "restore backup" +msgstr "" + +#: src/gui/gui.cpp:4412 +msgid "exit..." +msgstr "" + +#: src/gui/gui.cpp:4420 +msgid "edit" +msgstr "" + +#: src/gui/gui.cpp:4428 +msgid "clear..." +msgstr "" + +#: src/gui/gui.cpp:4433 +msgid "settings" +msgstr "" + +#: src/gui/gui.cpp:4435 +msgid "full screen" +msgstr "" + +#: src/gui/gui.cpp:4439 +msgid "lock layout" +msgstr "" + +#: src/gui/gui.cpp:4442 +msgid "pattern visualizer" +msgstr "" + +#: src/gui/gui.cpp:4448 +msgid "reset layout" +msgstr "" + +#: src/gui/gui.cpp:4449 +msgid "Are you sure you want to reset the workspace layout?" +msgstr "" + +#: src/gui/gui.cpp:4452 +msgid "switch to mobile view" +msgstr "" + +#: src/gui/gui.cpp:4456 +msgid "user systems..." +msgstr "" + +#: src/gui/gui.cpp:4459 +msgid "settings..." +msgstr "" + +#: src/gui/gui.cpp:4465 +msgid "Window" +msgstr "" + +#: src/gui/gui.cpp:4465 +msgid "window" +msgstr "" + +#: src/gui/gui.cpp:4466 +msgid "song" +msgstr "" + +#: src/gui/gui.cpp:4467 +msgid "song comments" +msgstr "" + +#: src/gui/gui.cpp:4468 +msgid "song information" +msgstr "" + +#: src/gui/gui.cpp:4469 +msgid "subsongs" +msgstr "" + +#: src/gui/gui.cpp:4471 +msgid "channels" +msgstr "" + +#: src/gui/gui.cpp:4472 +msgid "chip manager" +msgstr "" + +#: src/gui/gui.cpp:4473 +msgid "orders" +msgstr "" + +#: src/gui/gui.cpp:4475 +msgid "pattern manager" +msgstr "" + +#: src/gui/gui.cpp:4476 +msgid "mixer" +msgstr "" + +#: src/gui/gui.cpp:4477 +msgid "compatibility flags" +msgstr "" + +#: src/gui/gui.cpp:4480 src/gui/gui.cpp:4482 +msgid "assets" +msgstr "" + +#: src/gui/gui.cpp:4484 +msgid "instruments" +msgstr "" + +#: src/gui/gui.cpp:4485 +msgid "samples" +msgstr "" + +#: src/gui/gui.cpp:4486 +msgid "wavetables" +msgstr "" + +#: src/gui/gui.cpp:4489 +msgid "instrument editor" +msgstr "" + +#: src/gui/gui.cpp:4490 +msgid "sample editor" +msgstr "" + +#: src/gui/gui.cpp:4491 +msgid "wavetable editor" +msgstr "" + +#: src/gui/gui.cpp:4494 +msgid "visualizers" +msgstr "" + +#: src/gui/gui.cpp:4495 +msgid "oscilloscope (master)" +msgstr "" + +#: src/gui/gui.cpp:4496 +msgid "oscilloscope (per-channel)" +msgstr "" + +#: src/gui/gui.cpp:4497 +msgid "oscilloscope (X-Y)" +msgstr "" + +#: src/gui/gui.cpp:4498 +msgid "volume meter" +msgstr "" + +#: src/gui/gui.cpp:4501 +msgid "tempo" +msgstr "" + +#: src/gui/gui.cpp:4502 +msgid "clock" +msgstr "" + +#: src/gui/gui.cpp:4503 +msgid "grooves" +msgstr "" + +#: src/gui/gui.cpp:4504 +msgid "speed" +msgstr "" + +#: src/gui/gui.cpp:4508 +msgid "log viewer" +msgstr "" + +#: src/gui/gui.cpp:4509 +msgid "register view" +msgstr "" + +#: src/gui/gui.cpp:4510 +msgid "statistics" +msgstr "" + +#: src/gui/gui.cpp:4511 +msgid "memory composition" +msgstr "" + +#: src/gui/gui.cpp:4515 src/gui/gui.cpp:4523 +msgid "effect list" +msgstr "" + +#: src/gui/gui.cpp:4516 +msgid "play/edit controls" +msgstr "" + +#: src/gui/gui.cpp:4517 +msgid "piano/input pad" +msgstr "" + +#: src/gui/gui.cpp:4518 +msgid "spoiler" +msgstr "" + +#: src/gui/gui.cpp:4522 +msgid "Help" +msgstr "" + +#: src/gui/gui.cpp:4522 +msgid "help" +msgstr "" + +#: src/gui/gui.cpp:4524 +msgid "debug menu" +msgstr "" + +#: src/gui/gui.cpp:4525 +msgid "inspector" +msgstr "" + +#: src/gui/gui.cpp:4526 +msgid "panic" +msgstr "" + +#: src/gui/gui.cpp:4527 +msgid "about..." +msgstr "" + +#: src/gui/gui.cpp:4542 +#, c-format +msgid "| Speed %d:%d" +msgstr "" + +#: src/gui/gui.cpp:4544 +#, c-format +msgid "| Speed %d" +msgstr "" + +#: src/gui/gui.cpp:4546 +msgid "| Groove" +msgstr "" + +#: src/gui/gui.cpp:4549 +#, c-format +msgid " @ %gHz (%g BPM) " +msgstr "" + +#: src/gui/gui.cpp:4552 +#, c-format +msgid "| Order %.2X/%.2X " +msgstr "" + +#: src/gui/gui.cpp:4554 +#, c-format +msgid "| Order %d/%d " +msgstr "" + +#: src/gui/gui.cpp:4558 +#, c-format +msgid "| Row %.2X/%.2X " +msgstr "" + +#: src/gui/gui.cpp:4560 +#, c-format +msgid "| Row %d/%d " +msgstr "" + +#: src/gui/gui.cpp:4563 +msgid "| " +msgstr "" + +#: src/gui/gui.cpp:4566 +msgid "Don't you have anything better to do?" +msgstr "" + +#: src/gui/gui.cpp:4575 +#, c-format +msgid "%d year " +msgid_plural "%d years " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/gui/gui.cpp:4576 +#, c-format +msgid "%d month " +msgid_plural "%d months " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/gui/gui.cpp:4577 +#, c-format +msgid "%d day " +msgid_plural "%d days " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: src/gui/gui.cpp:4597 +msgid "Note off (cut)" +msgstr "" + +#: src/gui/gui.cpp:4599 +msgid "Note off (release)" +msgstr "" + +#: src/gui/gui.cpp:4601 +msgid "Macro release only" +msgstr "" + +#: src/gui/gui.cpp:4603 +#, c-format +msgid "Note on: %s" +msgstr "" + +#: src/gui/gui.cpp:4611 +#, c-format +msgid "Ins %d: " +msgstr "" + +#: src/gui/gui.cpp:4614 +#, c-format +msgid "Ins %d: %s" +msgstr "" + +#: src/gui/gui.cpp:4623 +#, c-format +msgid "Set volume: %d (%.2X, INVALID!)" +msgstr "" + +#: src/gui/gui.cpp:4626 +#, c-format +msgid "Set volume: %d (%.2X, %d%%)" +msgstr "" + +#: src/gui/gui.cpp:4648 +msgid "| modified" +msgstr "" + +#: src/gui/gui.cpp:4813 src/gui/gui.cpp:4816 +msgid "System File Dialog Pending" +msgstr "" + +#: src/gui/gui.cpp:4929 +msgid "" +"there was an error in the file dialog! you may want to report this issue " +"to:\n" +"https://github.com/tildearrow/furnace/issues\n" +"check the Log Viewer (window > log viewer) for more information.\n" +"\n" +"for now please disable the system file picker in Settings > General." +msgstr "" + +#: src/gui/gui.cpp:4932 +msgid "can't do anything without Storage permissions!" +msgstr "" + +#: src/gui/gui.cpp:4934 +msgid "" +"Zenity/KDialog not available!\n" +"please install one of these, or disable the system file picker in Settings > " +"General." +msgstr "" + +#: src/gui/gui.cpp:5070 +msgid "" +"error while saving instrument! only the following instrument types are " +"supported:\n" +"- FM (OPN)\n" +"- SN76489/Sega PSG\n" +"- Game Boy\n" +"- PC Engine\n" +"- NES\n" +"- C64\n" +"- FM (OPLL)\n" +"- FDS" +msgstr "" + +#: src/gui/gui.cpp:5098 +msgid "there were some errors while loading samples:\n" +msgstr "" + +#: src/gui/gui.cpp:5143 src/gui/gui.cpp:6327 +msgid "...but you haven't selected a sample!" +msgstr "" + +#: src/gui/gui.cpp:5158 src/gui/gui.cpp:5167 +msgid "could not save sample! open Log Viewer for more information." +msgstr "" + +#: src/gui/gui.cpp:5186 +msgid "there were some warnings/errors while loading instruments:\n" +msgstr "" + +#: src/gui/gui.cpp:5192 +#, c-format +msgid "> %s: cannot load instrument! (%s)\n" +msgstr "" + +#: src/gui/gui.cpp:5210 src/gui/gui.cpp:5264 +#, c-format +msgid "cannot load instrument! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5216 +msgid "" +"congratulations! you managed to load nothing.\n" +"you are entitled to a bug report." +msgstr "" + +#: src/gui/gui.cpp:5257 src/gui/gui.cpp:6231 +msgid "...but you haven't selected an instrument!" +msgstr "" + +#: src/gui/gui.cpp:5269 +msgid "there were some errors while loading wavetables:\n" +msgstr "" + +#: src/gui/gui.cpp:5278 src/gui/gui.cpp:5288 src/gui/gui.cpp:5307 +#, c-format +msgid "cannot load wavetable! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5315 +msgid "...but you haven't selected a wavetable!" +msgstr "" + +#: src/gui/gui.cpp:5330 src/gui/gui.cpp:5351 src/gui/gui.cpp:5375 +#: src/gui/gui.cpp:5396 +msgid "could not open file!" +msgstr "" + +#: src/gui/gui.cpp:5338 +#, c-format +msgid "could not write VGM! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5359 +#, c-format +msgid "Could not write ZSM! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5383 +#, c-format +msgid "could not write text! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5404 +#, c-format +msgid "could not write command stream! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5428 +msgid "could not import user presets!" +msgstr "" + +#: src/gui/gui.cpp:5433 src/gui/gui.cpp:5450 +#, c-format +msgid "could not import user presets! (%s)" +msgstr "" + +#: src/gui/gui.cpp:5471 +#, c-format +msgid "You opened: %s" +msgstr "" + +#: src/gui/gui.cpp:5474 +msgid "You opened:" +msgstr "" + +#: src/gui/gui.cpp:5482 +#, c-format +msgid "You saved: %s" +msgstr "" + +#: src/gui/gui.cpp:5498 src/gui/gui.cpp:5633 src/gui/gui.cpp:5634 +msgid "Warning" +msgstr "" + +#: src/gui/gui.cpp:5503 src/gui/gui.cpp:5624 src/gui/gui.cpp:5625 +#: src/gui/insEdit.cpp:7520 +msgid "Error" +msgstr "" + +#: src/gui/gui.cpp:5508 src/gui/gui.cpp:6165 src/gui/gui.cpp:6166 +msgid "Select Instrument" +msgstr "" + +#: src/gui/gui.cpp:5513 src/gui/gui.cpp:6244 src/gui/gui.cpp:6245 +msgid "Import Raw Sample" +msgstr "" + +#: src/gui/gui.cpp:5528 src/gui/gui.cpp:5581 src/gui/gui.cpp:5582 +msgid "Rendering..." +msgstr "" + +#: src/gui/gui.cpp:5551 src/gui/gui.cpp:5601 +msgid "New Song" +msgstr "" + +#: src/gui/gui.cpp:5583 +msgid "Please wait..." +msgstr "" + +#: src/gui/gui.cpp:5584 +msgid "Abort" +msgstr "" + +#: src/gui/gui.cpp:5626 +#, c-format +msgid "%s" +msgstr "" + +#: src/gui/gui.cpp:5638 src/gui/gui.cpp:5662 src/gui/gui.cpp:5686 +#: src/gui/gui.cpp:5710 src/gui/gui.cpp:5734 src/gui/gui.cpp:5758 +#: src/gui/gui.cpp:5790 src/gui/gui.cpp:5806 src/gui/gui.cpp:5817 +#: src/gui/gui.cpp:5829 src/gui/gui.cpp:5983 src/gui/gui.cpp:6005 +#: src/gui/gui.cpp:6020 src/gui/gui.cpp:6031 +msgid "Yes" +msgstr "" + +#: src/gui/gui.cpp:5856 +msgid "Erasing" +msgstr "" + +#: src/gui/gui.cpp:5859 +msgid "All subsongs" +msgstr "" + +#: src/gui/gui.cpp:5866 +msgid "Current subsong" +msgstr "" + +#: src/gui/gui.cpp:5933 +msgid "Optimization" +msgstr "" + +#: src/gui/gui.cpp:5936 src/gui/patManager.cpp:36 +msgid "De-duplicate patterns" +msgstr "" + +#: src/gui/gui.cpp:5945 +msgid "Remove unused instruments" +msgstr "" + +#: src/gui/gui.cpp:5958 +msgid "Remove unused samples" +msgstr "" + +#: src/gui/gui.cpp:5975 +msgid "Never mind! Cancel" +msgstr "" + +#: src/gui/gui.cpp:6054 +msgid "Drum kit mode:" +msgstr "" + +#: src/gui/gui.cpp:6058 +msgid "12 samples per octave" +msgstr "" + +#: src/gui/gui.cpp:6063 +msgid "Starting octave" +msgstr "" + +#: src/gui/gui.cpp:6083 +msgid "Drum Kit" +msgstr "" + +#: src/gui/gui.cpp:6169 +msgid "this is an instrument bank! select which one to use:" +msgstr "" + +#: src/gui/gui.cpp:6172 +msgid "this is an instrument bank! select which ones to load:" +msgstr "" + +#: src/gui/gui.cpp:6246 +msgid "Data type:" +msgstr "" + +#: src/gui/gui.cpp:6273 +msgid "(will be mixed down to mono)" +msgstr "" + +#: src/gui/gui.cpp:6274 +msgid "Unsigned" +msgstr "" + +#: src/gui/gui.cpp:6278 +msgid "Big endian" +msgstr "" + +#: src/gui/gui.cpp:6286 +msgid "Swap nibbles" +msgstr "" + +#: src/gui/gui.cpp:6290 +msgid "Swap words" +msgstr "" + +#: src/gui/gui.cpp:6294 +msgid "Encoding:" +msgstr "" + +#: src/gui/gui.cpp:6307 +msgid "Reverse bit order" +msgstr "" + +#: src/gui/gui.cpp:6349 +msgid "Error! No string provided!" +msgstr "" + +#: src/gui/gui.cpp:6671 +msgid "it appears I couldn't load these fonts. any setting you can check?" +msgstr "" + +#: src/gui/gui.cpp:6851 src/gui/gui.cpp:6959 +msgid "" +"could not init renderer!\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:6853 src/gui/gui.cpp:6961 +#, c-format +msgid "" +"could not init renderer! %s\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:6858 src/gui/gui.cpp:6966 +msgid "could not init renderer!" +msgstr "" + +#: src/gui/gui.cpp:6869 +#, c-format +msgid "could not open window! %s" +msgstr "" + +#: src/gui/gui.cpp:6874 +msgid "" +"\n" +"falling back to software renderer. please restart Furnace." +msgstr "" + +#: src/gui/gui.cpp:7502 +msgid "Unsaved changes! Save changes before quitting?" +msgstr "" + +#: src/gui/sysManager.cpp:42 +msgid "Preserve channel order" +msgstr "" + +#: src/gui/sysManager.cpp:44 +msgid "Clone channel data" +msgstr "" + +#: src/gui/sysManager.cpp:46 +msgid "Clone at end" +msgstr "" + +#: src/gui/sysManager.cpp:56 +msgid "Actions" +msgstr "" + +#: src/gui/sysManager.cpp:69 +msgid "(drag to swap chips)" +msgstr "" + +#: src/gui/sysManager.cpp:90 +msgid "Clone##SysDup" +msgstr "" + +#: src/gui/sysManager.cpp:92 +#, c-format +msgid "cannot clone chip! (%s)" +msgstr "" + +#: src/gui/sysManager.cpp:98 +msgid "Change##SysChange" +msgstr "" + +#: src/gui/sysManager.cpp:120 +msgid "Are you sure you want to remove this chip?" +msgstr "" + +#: src/gui/patManager.cpp:43 +msgid "Re-arrange patterns" +msgstr "" + +#: src/gui/patManager.cpp:50 +msgid "Sort orders" +msgstr "" + +#: src/gui/patManager.cpp:57 +msgid "Make patterns unique" +msgstr "" + +#: src/gui/patManager.cpp:103 +#, c-format +msgid "" +"Pattern %.2X\n" +"- not allocated" +msgstr "" + +#: src/gui/patManager.cpp:105 +#, c-format +msgid "" +"Pattern %.2X\n" +"- use count: %d (%.0f%%)\n" +"\n" +"right-click to erase" +msgstr "" + +#: src/gui/insEdit.cpp:39 +msgid "Down Down Down" +msgstr "" + +#: src/gui/insEdit.cpp:40 +msgid "Down." +msgstr "" + +#: src/gui/insEdit.cpp:41 +msgid "Down Up Down Up" +msgstr "" + +#: src/gui/insEdit.cpp:42 +msgid "Down UP" +msgstr "" + +#: src/gui/insEdit.cpp:43 +msgid "Up Up Up" +msgstr "" + +#: src/gui/insEdit.cpp:44 +msgid "Up." +msgstr "" + +#: src/gui/insEdit.cpp:45 +msgid "Up Down Up Down" +msgstr "" + +#: src/gui/insEdit.cpp:46 +msgid "Up DOWN" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Algorithm" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Feedback" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO > Freq" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO > Amp" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1920 src/gui/insEdit.cpp:6955 +#: src/gui/insEdit.cpp:7481 +msgid "Attack" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1960 src/gui/insEdit.cpp:6956 +#: src/gui/insEdit.cpp:7482 +msgid "Decay" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Decay 2" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:604 src/gui/insEdit.cpp:1983 +#: src/gui/insEdit.cpp:6958 src/gui/insEdit.cpp:7484 +msgid "Release" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:1929 src/gui/insEdit.cpp:6957 +#: src/gui/insEdit.cpp:7483 +msgid "Sustain" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "EnvScale" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Multiplier" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:63 src/gui/insEdit.cpp:75 +msgid "Detune" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Detune 2" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:4146 +msgid "SSG-EG" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "AM" +msgstr "" + +#: src/gui/insEdit.cpp:50 src/gui/insEdit.cpp:5438 src/gui/insEdit.cpp:6516 +msgid "AM Depth" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Vibrato Depth" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Sustained" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Level Scaling" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Vibrato" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Scale Rate" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "OP2 Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "OP1 Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "EnvShift" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Reverb" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "Fine" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO2 > Freq" +msgstr "" + +#: src/gui/insEdit.cpp:50 +msgid "LFO2 > Amp" +msgstr "" + +#: src/gui/insEdit.cpp:56 src/gui/insEdit.cpp:68 src/gui/insEdit.cpp:7391 +msgid "OP4 Noise Mode" +msgstr "" + +#: src/gui/insEdit.cpp:57 +msgid "Envelope Delay" +msgstr "" + +#: src/gui/insEdit.cpp:58 src/gui/insEdit.cpp:70 +msgid "Output Level" +msgstr "" + +#: src/gui/insEdit.cpp:59 +msgid "Modulation Input Level" +msgstr "" + +#: src/gui/insEdit.cpp:60 +msgid "Left Output" +msgstr "" + +#: src/gui/insEdit.cpp:61 +msgid "Right Output" +msgstr "" + +#: src/gui/insEdit.cpp:62 +msgid "Coarse Tune (semitones)" +msgstr "" + +#: src/gui/insEdit.cpp:64 +msgid "Fixed Frequency Mode" +msgstr "" + +#: src/gui/insEdit.cpp:69 +msgid "Env. Delay" +msgstr "" + +#: src/gui/insEdit.cpp:71 +msgid "ModInput" +msgstr "" + +#: src/gui/insEdit.cpp:72 +msgid "Left" +msgstr "" + +#: src/gui/insEdit.cpp:73 +msgid "Right" +msgstr "" + +#: src/gui/insEdit.cpp:74 +msgid "Tune" +msgstr "" + +#: src/gui/insEdit.cpp:76 src/gui/insEdit.cpp:610 src/gui/insEdit.cpp:3792 +#: src/gui/insEdit.cpp:4554 src/gui/insEdit.cpp:4848 +msgid "Fixed" +msgstr "" + +#: src/gui/insEdit.cpp:98 src/gui/insEdit.cpp:117 src/gui/insEdit.cpp:136 +#: src/gui/insEdit.cpp:156 +msgid "User" +msgstr "" + +#: src/gui/insEdit.cpp:99 +msgid "1. Violin" +msgstr "" + +#: src/gui/insEdit.cpp:100 src/gui/insEdit.cpp:138 src/gui/insEdit.cpp:158 +msgid "2. Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:101 src/gui/insEdit.cpp:159 +msgid "3. Piano" +msgstr "" + +#: src/gui/insEdit.cpp:102 src/gui/insEdit.cpp:160 +msgid "4. Flute" +msgstr "" + +#: src/gui/insEdit.cpp:103 src/gui/insEdit.cpp:122 src/gui/insEdit.cpp:161 +msgid "5. Clarinet" +msgstr "" + +#: src/gui/insEdit.cpp:104 +msgid "6. Oboe" +msgstr "" + +#: src/gui/insEdit.cpp:105 src/gui/insEdit.cpp:124 src/gui/insEdit.cpp:143 +#: src/gui/insEdit.cpp:163 +msgid "7. Trumpet" +msgstr "" + +#: src/gui/insEdit.cpp:106 +msgid "8. Organ" +msgstr "" + +#: src/gui/insEdit.cpp:107 +msgid "9. Horn" +msgstr "" + +#: src/gui/insEdit.cpp:108 +msgid "10. Synth" +msgstr "" + +#: src/gui/insEdit.cpp:109 +msgid "11. Harpsichord" +msgstr "" + +#: src/gui/insEdit.cpp:110 src/gui/insEdit.cpp:129 src/gui/insEdit.cpp:148 +msgid "12. Vibraphone" +msgstr "" + +#: src/gui/insEdit.cpp:111 +msgid "13. Synth Bass" +msgstr "" + +#: src/gui/insEdit.cpp:112 +msgid "14. Acoustic Bass" +msgstr "" + +#: src/gui/insEdit.cpp:113 +msgid "15. Electric Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:114 src/gui/insEdit.cpp:133 src/gui/insEdit.cpp:152 +#: src/gui/insEdit.cpp:172 src/gui/insEdit.cpp:3176 +msgid "Drums" +msgstr "" + +#: src/gui/insEdit.cpp:118 +msgid "1. Electric String" +msgstr "" + +#: src/gui/insEdit.cpp:119 +msgid "2. Bow wow" +msgstr "" + +#: src/gui/insEdit.cpp:120 src/gui/insEdit.cpp:139 +msgid "3. Electric Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:121 +msgid "4. Organ" +msgstr "" + +#: src/gui/insEdit.cpp:123 +msgid "6. Saxophone" +msgstr "" + +#: src/gui/insEdit.cpp:125 +msgid "8. Street Organ" +msgstr "" + +#: src/gui/insEdit.cpp:126 +msgid "9. Synth Brass" +msgstr "" + +#: src/gui/insEdit.cpp:127 +msgid "10. Electric Piano" +msgstr "" + +#: src/gui/insEdit.cpp:128 +msgid "11. Bass" +msgstr "" + +#: src/gui/insEdit.cpp:130 +msgid "13. Chime" +msgstr "" + +#: src/gui/insEdit.cpp:131 +msgid "14. Tom Tom II" +msgstr "" + +#: src/gui/insEdit.cpp:132 +msgid "15. Noise" +msgstr "" + +#: src/gui/insEdit.cpp:137 +msgid "1. Strings" +msgstr "" + +#: src/gui/insEdit.cpp:140 +msgid "4. Electric Piano" +msgstr "" + +#: src/gui/insEdit.cpp:141 +msgid "5. Flute" +msgstr "" + +#: src/gui/insEdit.cpp:142 +msgid "6. Marimba" +msgstr "" + +#: src/gui/insEdit.cpp:144 +msgid "8. Harmonica" +msgstr "" + +#: src/gui/insEdit.cpp:145 +msgid "9. Tuba" +msgstr "" + +#: src/gui/insEdit.cpp:146 +msgid "10. Synth Brass" +msgstr "" + +#: src/gui/insEdit.cpp:147 +msgid "11. Short Saw" +msgstr "" + +#: src/gui/insEdit.cpp:149 +msgid "13. Electric Guitar 2" +msgstr "" + +#: src/gui/insEdit.cpp:150 +msgid "14. Synth Bass" +msgstr "" + +#: src/gui/insEdit.cpp:151 +msgid "15. Sitar" +msgstr "" + +#: src/gui/insEdit.cpp:157 +msgid "1. Bell" +msgstr "" + +#: src/gui/insEdit.cpp:162 +msgid "6. Rattling Bell" +msgstr "" + +#: src/gui/insEdit.cpp:164 +msgid "8. Reed Organ" +msgstr "" + +#: src/gui/insEdit.cpp:165 +msgid "9. Soft Bell" +msgstr "" + +#: src/gui/insEdit.cpp:166 +msgid "10. Xylophone" +msgstr "" + +#: src/gui/insEdit.cpp:167 +msgid "11. Vibraphone" +msgstr "" + +#: src/gui/insEdit.cpp:168 +msgid "12. Brass" +msgstr "" + +#: src/gui/insEdit.cpp:169 +msgid "13. Bass Guitar" +msgstr "" + +#: src/gui/insEdit.cpp:170 +msgid "14. Synth" +msgstr "" + +#: src/gui/insEdit.cpp:171 +msgid "15. Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:178 src/gui/insEdit.cpp:189 +msgid "Half Sine" +msgstr "" + +#: src/gui/insEdit.cpp:179 src/gui/insEdit.cpp:190 +msgid "Absolute Sine" +msgstr "" + +#: src/gui/insEdit.cpp:180 +msgid "Quarter Sine" +msgstr "" + +#: src/gui/insEdit.cpp:181 src/gui/insEdit.cpp:203 +msgid "Squished Sine" +msgstr "" + +#: src/gui/insEdit.cpp:182 src/gui/insEdit.cpp:205 +msgid "Squished AbsSine" +msgstr "" + +#: src/gui/insEdit.cpp:184 src/gui/insEdit.cpp:195 +msgid "Derived Square" +msgstr "" + +#: src/gui/insEdit.cpp:191 +msgid "Pulse Sine" +msgstr "" + +#: src/gui/insEdit.cpp:192 +msgid "Sine (Even Periods)" +msgstr "" + +#: src/gui/insEdit.cpp:193 +msgid "AbsSine (Even Periods)" +msgstr "" + +#: src/gui/insEdit.cpp:201 +msgid "Cut Sine" +msgstr "" + +#: src/gui/insEdit.cpp:202 +msgid "Cut Triangle" +msgstr "" + +#: src/gui/insEdit.cpp:204 +msgid "Squished Triangle" +msgstr "" + +#: src/gui/insEdit.cpp:206 +msgid "Squished AbsTriangle" +msgstr "" + +#: src/gui/insEdit.cpp:210 src/gui/insEdit.cpp:218 +msgid "Snare" +msgstr "" + +#: src/gui/insEdit.cpp:211 +msgid "Tom" +msgstr "" + +#: src/gui/insEdit.cpp:212 src/gui/insEdit.cpp:220 src/gui/insEdit.cpp:1909 +#: src/gui/insEdit.cpp:2014 +msgid "Top" +msgstr "" + +#: src/gui/insEdit.cpp:213 src/gui/insEdit.cpp:219 +msgid "HiHat" +msgstr "" + +#: src/gui/insEdit.cpp:224 +msgid "Noise disabled" +msgstr "" + +#: src/gui/insEdit.cpp:225 +msgid "Square + noise" +msgstr "" + +#: src/gui/insEdit.cpp:226 +msgid "Ringmod from OP3 + noise" +msgstr "" + +#: src/gui/insEdit.cpp:227 +msgid "" +"Ringmod from OP3 + double pitch ModInput\n" +"WARNING - has emulation issues; subject to change" +msgstr "" + +#: src/gui/insEdit.cpp:232 +msgid "Bitwise AND" +msgstr "" + +#: src/gui/insEdit.cpp:233 +msgid "Bitwise OR" +msgstr "" + +#: src/gui/insEdit.cpp:234 +msgid "Bitwise XOR" +msgstr "" + +#: src/gui/insEdit.cpp:239 src/gui/insEdit.cpp:390 +msgid "gate" +msgstr "" + +#: src/gui/insEdit.cpp:240 src/gui/insEdit.cpp:391 +msgid "sync" +msgstr "" + +#: src/gui/insEdit.cpp:241 src/gui/insEdit.cpp:392 +msgid "ring" +msgstr "" + +#: src/gui/insEdit.cpp:327 +msgid "How did you even" +msgstr "" + +#: src/gui/insEdit.cpp:335 +msgid "triangle" +msgstr "" + +#: src/gui/insEdit.cpp:336 src/gui/insEdit.cpp:5821 +msgid "saw" +msgstr "" + +#: src/gui/insEdit.cpp:337 src/gui/insEdit.cpp:5827 +msgid "pulse" +msgstr "" + +#: src/gui/insEdit.cpp:338 src/gui/insEdit.cpp:344 src/gui/insEdit.cpp:373 +#: src/gui/insEdit.cpp:424 src/gui/insEdit.cpp:429 src/gui/insEdit.cpp:5833 +msgid "noise" +msgstr "" + +#: src/gui/insEdit.cpp:343 +msgid "tone" +msgstr "" + +#: src/gui/insEdit.cpp:345 +msgid "envelope" +msgstr "" + +#: src/gui/insEdit.cpp:350 +msgid "hold" +msgstr "" + +#: src/gui/insEdit.cpp:351 +msgid "alternate" +msgstr "" + +#: src/gui/insEdit.cpp:352 src/gui/insEdit.cpp:364 +msgid "direction" +msgstr "" + +#: src/gui/insEdit.cpp:353 src/gui/insEdit.cpp:436 +msgid "enable" +msgstr "" + +#: src/gui/insEdit.cpp:357 src/gui/insEdit.cpp:368 +msgid "enabled" +msgstr "" + +#: src/gui/insEdit.cpp:361 +msgid "mirror" +msgstr "" + +#: src/gui/insEdit.cpp:365 +msgid "resolution" +msgstr "" + +#: src/gui/insEdit.cpp:366 +msgid "fixed" +msgstr "" + +#: src/gui/insEdit.cpp:367 +msgid "N/A" +msgstr "" + +#: src/gui/insEdit.cpp:374 +msgid "echo" +msgstr "" + +#: src/gui/insEdit.cpp:375 +msgid "pitch mod" +msgstr "" + +#: src/gui/insEdit.cpp:376 src/gui/insEdit.cpp:508 +msgid "invert right" +msgstr "" + +#: src/gui/insEdit.cpp:377 src/gui/insEdit.cpp:509 +msgid "invert left" +msgstr "" + +#: src/gui/insEdit.cpp:382 src/gui/insEdit.cpp:5905 +msgid "low" +msgstr "" + +#: src/gui/insEdit.cpp:383 src/gui/insEdit.cpp:5911 +msgid "band" +msgstr "" + +#: src/gui/insEdit.cpp:384 src/gui/insEdit.cpp:5917 +msgid "high" +msgstr "" + +#: src/gui/insEdit.cpp:385 src/gui/insEdit.cpp:5924 +msgid "ch3off" +msgstr "" + +#: src/gui/insEdit.cpp:393 +msgid "test" +msgstr "" + +#: src/gui/insEdit.cpp:398 +msgid "15KHz" +msgstr "" + +#: src/gui/insEdit.cpp:399 +msgid "filter 2+4" +msgstr "" + +#: src/gui/insEdit.cpp:400 +msgid "filter 1+3" +msgstr "" + +#: src/gui/insEdit.cpp:401 +msgid "16-bit 3+4" +msgstr "" + +#: src/gui/insEdit.cpp:402 +msgid "16-bit 1+2" +msgstr "" + +#: src/gui/insEdit.cpp:403 +msgid "high3" +msgstr "" + +#: src/gui/insEdit.cpp:404 +msgid "high1" +msgstr "" + +#: src/gui/insEdit.cpp:405 +msgid "poly9" +msgstr "" + +#: src/gui/insEdit.cpp:414 +msgid "16'" +msgstr "" + +#: src/gui/insEdit.cpp:415 +msgid "8'" +msgstr "" + +#: src/gui/insEdit.cpp:416 +msgid "4'" +msgstr "" + +#: src/gui/insEdit.cpp:417 +msgid "2'" +msgstr "" + +#: src/gui/insEdit.cpp:418 +msgid "sustain" +msgstr "" + +#: src/gui/insEdit.cpp:423 +msgid "square" +msgstr "" + +#: src/gui/insEdit.cpp:431 +msgid "surround" +msgstr "" + +#: src/gui/insEdit.cpp:437 +msgid "oneshot" +msgstr "" + +#: src/gui/insEdit.cpp:438 +msgid "split L/R" +msgstr "" + +#: src/gui/insEdit.cpp:439 +msgid "HinvR" +msgstr "" + +#: src/gui/insEdit.cpp:440 +msgid "VinvR" +msgstr "" + +#: src/gui/insEdit.cpp:441 +msgid "HinvL" +msgstr "" + +#: src/gui/insEdit.cpp:442 +msgid "VinvL" +msgstr "" + +#: src/gui/insEdit.cpp:447 src/gui/insEdit.cpp:476 +msgid "ring mod" +msgstr "" + +#: src/gui/insEdit.cpp:448 +msgid "low pass" +msgstr "" + +#: src/gui/insEdit.cpp:449 src/gui/insEdit.cpp:475 +msgid "high pass" +msgstr "" + +#: src/gui/insEdit.cpp:450 +msgid "band pass" +msgstr "" + +#: src/gui/insEdit.cpp:459 +msgid "enable tap B" +msgstr "" + +#: src/gui/insEdit.cpp:460 +msgid "AM with slope" +msgstr "" + +#: src/gui/insEdit.cpp:465 +msgid "invert B" +msgstr "" + +#: src/gui/insEdit.cpp:466 +msgid "invert A" +msgstr "" + +#: src/gui/insEdit.cpp:467 +msgid "reset B" +msgstr "" + +#: src/gui/insEdit.cpp:468 +msgid "reset A" +msgstr "" + +#: src/gui/insEdit.cpp:469 +msgid "clip B" +msgstr "" + +#: src/gui/insEdit.cpp:470 +msgid "clip A" +msgstr "" + +#: src/gui/insEdit.cpp:477 +msgid "swap counters (noise)" +msgstr "" + +#: src/gui/insEdit.cpp:478 +msgid "low pass (noise)" +msgstr "" + +#: src/gui/insEdit.cpp:485 +msgid "rear right" +msgstr "" + +#: src/gui/insEdit.cpp:486 +msgid "rear left" +msgstr "" + +#: src/gui/insEdit.cpp:491 +msgid "on" +msgstr "" + +#: src/gui/insEdit.cpp:496 +msgid "k1 slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:497 +msgid "k2 slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:502 +msgid "pause" +msgstr "" + +#: src/gui/insEdit.cpp:503 +msgid "reverse" +msgstr "" + +#: src/gui/insEdit.cpp:521 +msgid "Subtract" +msgstr "" + +#: src/gui/insEdit.cpp:522 +msgid "Average" +msgstr "" + +#: src/gui/insEdit.cpp:523 src/gui/insEdit.cpp:2037 +msgid "Phase" +msgstr "" + +#: src/gui/insEdit.cpp:524 +msgid "Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:528 +msgid "None (dual)" +msgstr "" + +#: src/gui/insEdit.cpp:529 +msgid "Wipe" +msgstr "" + +#: src/gui/insEdit.cpp:531 +msgid "Fade (ping-pong)" +msgstr "" + +#: src/gui/insEdit.cpp:532 +msgid "Overlay" +msgstr "" + +#: src/gui/insEdit.cpp:533 +msgid "Negative Overlay" +msgstr "" + +#: src/gui/insEdit.cpp:534 +msgid "Slide" +msgstr "" + +#: src/gui/insEdit.cpp:535 +msgid "Mix Chorus" +msgstr "" + +#: src/gui/insEdit.cpp:536 +msgid "Phase Modulation" +msgstr "" + +#: src/gui/insEdit.cpp:540 src/gui/insEdit.cpp:3547 src/gui/insEdit.cpp:3548 +#: src/gui/insEdit.cpp:4081 src/gui/insEdit.cpp:4151 src/gui/insEdit.cpp:4790 +#: src/gui/insEdit.cpp:5861 src/gui/insEdit.cpp:5862 src/gui/insEdit.cpp:6487 +#: src/gui/insEdit.cpp:6488 src/gui/insEdit.cpp:6555 src/gui/insEdit.cpp:6556 +#: src/gui/insEdit.cpp:6995 src/gui/insEdit.cpp:7009 src/gui/insEdit.cpp:7029 +#: src/gui/insEdit.cpp:7166 +#, c-format +msgid "Envelope" +msgstr "" + +#: src/gui/insEdit.cpp:541 +msgid "Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:542 src/gui/insEdit.cpp:552 +msgid "Wait" +msgstr "" + +#: src/gui/insEdit.cpp:543 src/gui/insEdit.cpp:553 +msgid "Wait for Release" +msgstr "" + +#: src/gui/insEdit.cpp:545 src/gui/insEdit.cpp:555 +msgid "Loop until Release" +msgstr "" + +#: src/gui/insEdit.cpp:549 +msgid "Volume Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:550 +msgid "Frequency Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:551 +msgid "Cutoff Sweep" +msgstr "" + +#: src/gui/insEdit.cpp:559 src/gui/insEdit.cpp:6604 +msgid "Direct" +msgstr "" + +#: src/gui/insEdit.cpp:560 src/gui/insEdit.cpp:6608 +msgid "Decrease (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:561 src/gui/insEdit.cpp:6612 +msgid "Decrease (logarithmic)" +msgstr "" + +#: src/gui/insEdit.cpp:562 src/gui/insEdit.cpp:6616 +msgid "Increase (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:563 src/gui/insEdit.cpp:6620 +msgid "Increase (bent line)" +msgstr "" + +#: src/gui/insEdit.cpp:611 +msgid "Relative" +msgstr "" + +#: src/gui/insEdit.cpp:616 +#, c-format +msgid "%d: +%d (exponential)" +msgstr "" + +#: src/gui/insEdit.cpp:619 +#, c-format +msgid "%d: +%d (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:622 +#, c-format +msgid "%d: -%d (exponential)" +msgstr "" + +#: src/gui/insEdit.cpp:625 +#, c-format +msgid "%d: -%d (linear)" +msgstr "" + +#: src/gui/insEdit.cpp:627 +#, c-format +msgid "%d: %d (direct)" +msgstr "" + +#: src/gui/insEdit.cpp:660 +msgid "Random" +msgstr "" + +#: src/gui/insEdit.cpp:1610 +msgid "" +"left click to restart\n" +"middle click to pause\n" +"right click to see algorithm" +msgstr "" + +#: src/gui/insEdit.cpp:1620 +msgid "" +"left click to configure TL scaling\n" +"right click to see FM preview" +msgstr "" + +#: src/gui/insEdit.cpp:1624 +msgid "right click to see FM preview" +msgstr "" + +#: src/gui/insEdit.cpp:1639 +msgid "operator level changes with volume?" +msgstr "" + +#: src/gui/insEdit.cpp:1648 +msgid "AUTO##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1650 +msgid "NO##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1652 +msgid "YES##OPKVS" +msgstr "" + +#: src/gui/insEdit.cpp:1900 src/gui/insEdit.cpp:2005 +msgid "Bottom" +msgstr "" + +#: src/gui/insEdit.cpp:1940 +msgid "Hold" +msgstr "" + +#: src/gui/insEdit.cpp:1949 +msgid "SusTime" +msgstr "" + +#: src/gui/insEdit.cpp:1969 +msgid "SusDecay" +msgstr "" + +#: src/gui/insEdit.cpp:2047 +msgid "Shape" +msgstr "" + +#: src/gui/insEdit.cpp:2100 +msgid "Macro type: Sequence" +msgstr "" + +#: src/gui/insEdit.cpp:2103 +msgid "Macro type: ADSR" +msgstr "" + +#: src/gui/insEdit.cpp:2106 +msgid "Macro type: LFO" +msgstr "" + +#: src/gui/insEdit.cpp:2109 +msgid "Macro type: What's going on here?" +msgstr "" + +#: src/gui/insEdit.cpp:2122 +msgid "Delay/Step Length" +msgstr "" + +#: src/gui/insEdit.cpp:2125 +msgid "Step Length (ticks)##IMacroSpeed" +msgstr "" + +#: src/gui/insEdit.cpp:2129 +msgid "Delay##IMacroDelay" +msgstr "" + +#: src/gui/insEdit.cpp:2142 +msgid "Release mode: Active (jump to release pos)" +msgstr "" + +#: src/gui/insEdit.cpp:2144 +msgid "Release mode: Passive (delayed release)" +msgstr "" + +#: src/gui/insEdit.cpp:2284 src/gui/insEdit.cpp:2382 src/gui/insEdit.cpp:5582 +#: src/gui/insEdit.cpp:6241 +msgid "Length" +msgstr "" + +#: src/gui/insEdit.cpp:2393 +msgid "StepLen" +msgstr "" + +#: src/gui/insEdit.cpp:2401 +msgid "Delay" +msgstr "" + +#: src/gui/insEdit.cpp:2425 +msgid "The heck? No, this isn't even working correctly..." +msgstr "" + +#: src/gui/insEdit.cpp:2428 +msgid "The only problem with that selectedMacro is that it's a bug..." +msgstr "" + +#: src/gui/insEdit.cpp:2589 +msgid "(copying)" +msgstr "" + +#: src/gui/insEdit.cpp:2591 +msgid "(swapping)" +msgstr "" + +#: src/gui/insEdit.cpp:2595 +msgid "" +"- drag to swap operator\n" +"- shift-drag to copy operator" +msgstr "" + +#: src/gui/insEdit.cpp:2629 +msgid "DPCM" +msgstr "" + +#: src/gui/insEdit.cpp:2632 +msgid "new DPCM features disabled (compatibility)!" +msgstr "" + +#: src/gui/insEdit.cpp:2633 +msgid "click here to enable them." +msgstr "" + +#: src/gui/insEdit.cpp:2644 +msgid "none selected" +msgstr "" + +#: src/gui/insEdit.cpp:2657 +msgid "Use sample" +msgstr "" + +#: src/gui/insEdit.cpp:2659 +msgid "Sample bank slot##BANKSLOT" +msgstr "" + +#: src/gui/insEdit.cpp:2681 +msgid "Use wavetable (Amiga/Generic DAC only)" +msgstr "" + +#: src/gui/insEdit.cpp:2681 +msgid "Use wavetable" +msgstr "" + +#: src/gui/insEdit.cpp:2708 +msgid "Use sample map" +msgstr "" + +#: src/gui/insEdit.cpp:2730 +msgid "delta" +msgstr "" + +#: src/gui/insEdit.cpp:2736 +msgid "sample name" +msgstr "" + +#: src/gui/insEdit.cpp:3001 +msgid "set entire map to this pitch" +msgstr "" + +#: src/gui/insEdit.cpp:3009 +msgid "set entire map to this delta counter value" +msgstr "" + +#: src/gui/insEdit.cpp:3018 +msgid "set entire map to this note" +msgstr "" + +#: src/gui/insEdit.cpp:3027 +msgid "set entire map to this sample" +msgstr "" + +#: src/gui/insEdit.cpp:3037 +msgid "reset pitches" +msgstr "" + +#: src/gui/insEdit.cpp:3042 +msgid "clear delta counter values" +msgstr "" + +#: src/gui/insEdit.cpp:3048 +msgid "reset notes" +msgstr "" + +#: src/gui/insEdit.cpp:3054 +msgid "clear map samples" +msgstr "" + +#: src/gui/insEdit.cpp:3148 +msgid "Request from TX81Z" +msgstr "" + +#: src/gui/insEdit.cpp:3234 +#, c-format +msgid "%s name" +msgstr "" + +#: src/gui/insEdit.cpp:3286 +msgid "Fixed frequency mode" +msgstr "" + +#: src/gui/insEdit.cpp:3288 +msgid "" +"when enabled, drums will be set to the specified frequencies, ignoring the " +"note." +msgstr "" + +#: src/gui/insEdit.cpp:3296 +msgid "Drum" +msgstr "" + +#: src/gui/insEdit.cpp:3298 src/gui/insEdit.cpp:3798 src/gui/insEdit.cpp:3904 +#: src/gui/insEdit.cpp:4404 src/gui/insEdit.cpp:4468 src/gui/insEdit.cpp:5068 +#: src/gui/insEdit.cpp:5518 +msgid "Block" +msgstr "" + +#: src/gui/insEdit.cpp:3300 src/gui/insEdit.cpp:3803 src/gui/insEdit.cpp:3909 +#: src/gui/insEdit.cpp:4993 src/gui/insEdit.cpp:5079 src/gui/insEdit.cpp:5519 +msgid "FreqNum" +msgstr "" + +#: src/gui/insEdit.cpp:3302 src/gui/insEdit.cpp:3624 +msgid "Kick" +msgstr "" + +#: src/gui/insEdit.cpp:3303 +msgid "Snare/Hi-hat" +msgstr "" + +#: src/gui/insEdit.cpp:3304 +msgid "Tom/Top" +msgstr "" + +#: src/gui/insEdit.cpp:3314 +msgid "Volume##TL" +msgstr "" + +#: src/gui/insEdit.cpp:3316 +msgid "this volume slider only works in compatibility (non-drums) system." +msgstr "" + +#: src/gui/insEdit.cpp:3626 +msgid "Env" +msgstr "" + +#: src/gui/insEdit.cpp:3980 src/gui/insEdit.cpp:4346 src/gui/insEdit.cpp:4396 +#: src/gui/insEdit.cpp:5104 +msgid "OPL2/3 only (last 4 waveforms are OPL3 only)" +msgstr "" + +#: src/gui/insEdit.cpp:4079 src/gui/insEdit.cpp:4788 +#, c-format +msgid "Envelope 2 (kick only)" +msgstr "" + +#: src/gui/insEdit.cpp:4084 +#, c-format +msgid "Operator %d" +msgstr "" + +#: src/gui/insEdit.cpp:4414 +msgid "Freq" +msgstr "" + +#: src/gui/insEdit.cpp:4443 +msgid "Only on YM2151 (OPM)" +msgstr "" + +#: src/gui/insEdit.cpp:4466 +msgid "Blk" +msgstr "" + +#: src/gui/insEdit.cpp:4479 +msgid "F" +msgstr "" + +#: src/gui/insEdit.cpp:4481 +msgid "Frequency (F-Num)" +msgstr "" + +#: src/gui/insEdit.cpp:4833 +msgid "SSG On" +msgstr "" + +#: src/gui/insEdit.cpp:5206 src/gui/insEdit.cpp:5207 +msgid "waiting..." +msgstr "" + +#: src/gui/insEdit.cpp:5210 src/gui/insEdit.cpp:5211 +msgid "no instrument selected" +msgstr "" + +#: src/gui/insEdit.cpp:5393 +msgid "" +"none of the currently present chips are able to play this instrument type!" +msgstr "" + +#: src/gui/insEdit.cpp:5413 +msgid "FM Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5435 src/gui/insEdit.cpp:5440 +msgid "LFO Speed" +msgstr "" + +#: src/gui/insEdit.cpp:5439 src/gui/insEdit.cpp:6514 +msgid "PM Depth" +msgstr "" + +#: src/gui/insEdit.cpp:5441 +msgid "LFO Shape" +msgstr "" + +#: src/gui/insEdit.cpp:5444 +msgid "OpMask" +msgstr "" + +#: src/gui/insEdit.cpp:5446 +msgid "AM Depth 2" +msgstr "" + +#: src/gui/insEdit.cpp:5447 +msgid "PM Depth 2" +msgstr "" + +#: src/gui/insEdit.cpp:5448 +msgid "LFO2 Speed" +msgstr "" + +#: src/gui/insEdit.cpp:5449 +msgid "LFO2 Shape" +msgstr "" + +#: src/gui/insEdit.cpp:5458 +#, c-format +msgid "Operator Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5460 +#, c-format +msgid "OP%d Macros" +msgstr "" + +#: src/gui/insEdit.cpp:5521 +msgid "Op. Arpeggio" +msgstr "" + +#: src/gui/insEdit.cpp:5522 +msgid "Op. Pitch" +msgstr "" + +#: src/gui/insEdit.cpp:5531 +msgid "Op. Panning" +msgstr "" + +#: src/gui/insEdit.cpp:5558 +msgid "Use software envelope" +msgstr "" + +#: src/gui/insEdit.cpp:5559 +msgid "Initialize envelope on every note" +msgstr "" + +#: src/gui/insEdit.cpp:5560 +msgid "Double wave length (GBA only)" +msgstr "" + +#: src/gui/insEdit.cpp:5589 src/gui/insEdit.cpp:5666 +msgid "Sound Length" +msgstr "" + +#: src/gui/insEdit.cpp:5592 src/gui/insEdit.cpp:5666 +msgid "Infinity" +msgstr "" + +#: src/gui/insEdit.cpp:5596 +msgid "Direction" +msgstr "" + +#: src/gui/insEdit.cpp:5599 src/gui/insEdit.cpp:5669 src/gui/insEdit.cpp:5697 +#: src/gui/insEdit.cpp:6008 src/gui/insEdit.cpp:6051 +msgid "Up" +msgstr "" + +#: src/gui/insEdit.cpp:5604 src/gui/insEdit.cpp:5674 src/gui/insEdit.cpp:5702 +#: src/gui/insEdit.cpp:6013 src/gui/insEdit.cpp:6056 +msgid "Down" +msgstr "" + +#: src/gui/insEdit.cpp:5620 src/gui/insEdit.cpp:5953 +msgid "Hardware Sequence" +msgstr "" + +#: src/gui/insEdit.cpp:5630 src/gui/insEdit.cpp:5963 +msgid "Tick" +msgstr "" + +#: src/gui/insEdit.cpp:5632 src/gui/insEdit.cpp:5965 +msgid "Command" +msgstr "" + +#: src/gui/insEdit.cpp:5634 src/gui/insEdit.cpp:5967 +msgid "Move/Remove" +msgstr "" + +#: src/gui/insEdit.cpp:5663 +msgid "Env Length" +msgstr "" + +#: src/gui/insEdit.cpp:5690 +msgid "Shift" +msgstr "" + +#: src/gui/insEdit.cpp:5717 src/gui/insEdit.cpp:6073 +msgid "Ticks" +msgstr "" + +#: src/gui/insEdit.cpp:5736 src/gui/insEdit.cpp:6092 src/gui/insEdit.cpp:6239 +msgid "Position" +msgstr "" + +#: src/gui/insEdit.cpp:5815 +msgid "tri" +msgstr "" + +#: src/gui/insEdit.cpp:5882 +msgid "Ring Modulation" +msgstr "" + +#: src/gui/insEdit.cpp:5886 +msgid "Oscillator Sync" +msgstr "" + +#: src/gui/insEdit.cpp:5890 +msgid "Enable filter" +msgstr "" + +#: src/gui/insEdit.cpp:5891 +msgid "Initialize filter" +msgstr "" + +#: src/gui/insEdit.cpp:5894 src/gui/insEdit.cpp:5897 src/gui/insEdit.cpp:6951 +#: src/gui/insEdit.cpp:7215 src/gui/insEdit.cpp:7476 +msgid "Cutoff" +msgstr "" + +#: src/gui/insEdit.cpp:5902 src/gui/insEdit.cpp:6408 src/gui/insEdit.cpp:6952 +#: src/gui/insEdit.cpp:7179 src/gui/insEdit.cpp:7477 +msgid "Filter Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5931 src/gui/insEdit.cpp:7485 +msgid "Noise Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5932 +msgid "Wave Mix Mode" +msgstr "" + +#: src/gui/insEdit.cpp:5935 +msgid "Absolute Cutoff Macro" +msgstr "" + +#: src/gui/insEdit.cpp:5939 +msgid "Absolute Duty Macro" +msgstr "" + +#: src/gui/insEdit.cpp:5945 +msgid "Don't test before new note" +msgstr "" + +#: src/gui/insEdit.cpp:5950 +msgid "Switch roles of frequency and phase reset timer" +msgstr "" + +#: src/gui/insEdit.cpp:5997 src/gui/insEdit.cpp:6040 +msgid "Period" +msgstr "" + +#: src/gui/insEdit.cpp:6002 src/gui/insEdit.cpp:6045 src/gui/insEdit.cpp:6892 +msgid "Amount" +msgstr "" + +#: src/gui/insEdit.cpp:6005 src/gui/insEdit.cpp:6048 +msgid "Bound" +msgstr "" + +#: src/gui/insEdit.cpp:6021 +msgid "Flip" +msgstr "" + +#: src/gui/insEdit.cpp:6210 +msgid "Load waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6215 +msgid "" +"when enabled, a waveform will be loaded into RAM.\n" +"when disabled, only the offset and length change." +msgstr "" + +#: src/gui/insEdit.cpp:6219 +msgid "Waveform##WAVE" +msgstr "" + +#: src/gui/insEdit.cpp:6227 +msgid "Per-channel wave position/length" +msgstr "" + +#: src/gui/insEdit.cpp:6237 +msgid "Ch" +msgstr "" + +#: src/gui/insEdit.cpp:6286 +msgid "Compatibility mode" +msgstr "" + +#: src/gui/insEdit.cpp:6288 +msgid "" +"only use for compatibility with .dmf modules!\n" +"- initializes modulation table with first wavetable\n" +"- does not alter modulation parameters on instrument change" +msgstr "" + +#: src/gui/insEdit.cpp:6290 +msgid "Modulation depth" +msgstr "" + +#: src/gui/insEdit.cpp:6294 +msgid "Modulation speed" +msgstr "" + +#: src/gui/insEdit.cpp:6298 +msgid "Modulation table" +msgstr "" + +#: src/gui/insEdit.cpp:6347 +msgid "Set modulation table (channel 5 only)" +msgstr "" + +#: src/gui/insEdit.cpp:6411 src/gui/insEdit.cpp:7184 +msgid "Filter K1" +msgstr "" + +#: src/gui/insEdit.cpp:6413 src/gui/insEdit.cpp:7185 +msgid "Filter K2" +msgstr "" + +#: src/gui/insEdit.cpp:6417 +msgid "Envelope length" +msgstr "" + +#: src/gui/insEdit.cpp:6420 +msgid "Left Volume Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6422 +msgid "Right Volume Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6425 +msgid "Filter K1 Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6427 +msgid "Filter K2 Ramp" +msgstr "" + +#: src/gui/insEdit.cpp:6430 +msgid "K1 Ramp Slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:6432 +msgid "K2 Ramp Slowdown" +msgstr "" + +#: src/gui/insEdit.cpp:6454 +msgid "Attack Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6460 +msgid "Decay 1 Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6466 +msgid "Decay Level" +msgstr "" + +#: src/gui/insEdit.cpp:6472 +msgid "Decay 2 Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6478 +msgid "Release Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6484 +msgid "Rate Correction" +msgstr "" + +#: src/gui/insEdit.cpp:6512 +msgid "LFO Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6523 +msgid "Use envelope" +msgstr "" + +#: src/gui/insEdit.cpp:6576 +msgid "Sustain/release mode:" +msgstr "" + +#: src/gui/insEdit.cpp:6577 +msgid "Direct (cut on release)" +msgstr "" + +#: src/gui/insEdit.cpp:6580 +msgid "Effective (linear decrease)" +msgstr "" + +#: src/gui/insEdit.cpp:6583 +msgid "Effective (exponential decrease)" +msgstr "" + +#: src/gui/insEdit.cpp:6586 +msgid "Delayed (write R on release)" +msgstr "" + +#: src/gui/insEdit.cpp:6596 src/gui/insEdit.cpp:6597 +msgid "Gain Mode" +msgstr "" + +#: src/gui/insEdit.cpp:6599 src/gui/insEdit.cpp:6600 src/gui/insEdit.cpp:7205 +msgid "Gain" +msgstr "" + +#: src/gui/insEdit.cpp:6633 +msgid "" +"using decrease modes will not produce any sound at all, unless you know what " +"you are doing.\n" +"it is recommended to use the Gain macro for decrease instead." +msgstr "" + +#: src/gui/insEdit.cpp:6703 +msgid "Enable synthesizer" +msgstr "" + +#: src/gui/insEdit.cpp:6721 +msgid "Single-waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6730 +msgid "Dual-waveform" +msgstr "" + +#: src/gui/insEdit.cpp:6803 src/gui/insEdit.cpp:6812 +msgid "Wave 1" +msgstr "" + +#: src/gui/insEdit.cpp:6808 src/gui/insEdit.cpp:6823 +msgid "" +"waveform macro is controlling wave 1!\n" +"this value will be ineffective." +msgstr "" + +#: src/gui/insEdit.cpp:6829 +msgid "Wave 2" +msgstr "" + +#: src/gui/insEdit.cpp:6844 +msgid "Resume preview" +msgstr "" + +#: src/gui/insEdit.cpp:6846 +msgid "Pause preview" +msgstr "" + +#: src/gui/insEdit.cpp:6854 +msgid "Restart preview" +msgstr "" + +#: src/gui/insEdit.cpp:6874 +msgid "Copy to new wavetable" +msgstr "" + +#: src/gui/insEdit.cpp:6881 +msgid "Update Rate" +msgstr "" + +#: src/gui/insEdit.cpp:6902 +msgid "Global" +msgstr "" + +#: src/gui/insEdit.cpp:6906 +msgid "" +"wavetable synthesizer disabled.\n" +"use the Waveform macro to set the wave for this instrument." +msgstr "" + +#: src/gui/insEdit.cpp:6912 +msgid "Macros" +msgstr "" + +#: src/gui/insEdit.cpp:6921 src/gui/insEdit.cpp:6929 src/gui/insEdit.cpp:6938 +#: src/gui/insEdit.cpp:6947 src/gui/insEdit.cpp:6962 src/gui/insEdit.cpp:6976 +#: src/gui/insEdit.cpp:6988 src/gui/insEdit.cpp:7001 src/gui/insEdit.cpp:7017 +#: src/gui/insEdit.cpp:7023 src/gui/insEdit.cpp:7033 src/gui/insEdit.cpp:7040 +#: src/gui/insEdit.cpp:7046 src/gui/insEdit.cpp:7059 src/gui/insEdit.cpp:7066 +#: src/gui/insEdit.cpp:7073 src/gui/insEdit.cpp:7082 src/gui/insEdit.cpp:7092 +#: src/gui/insEdit.cpp:7100 src/gui/insEdit.cpp:7106 src/gui/insEdit.cpp:7114 +#: src/gui/insEdit.cpp:7121 src/gui/insEdit.cpp:7127 src/gui/insEdit.cpp:7137 +#: src/gui/insEdit.cpp:7149 src/gui/insEdit.cpp:7157 src/gui/insEdit.cpp:7173 +#: src/gui/insEdit.cpp:7178 src/gui/insEdit.cpp:7191 src/gui/insEdit.cpp:7198 +#: src/gui/insEdit.cpp:7209 src/gui/insEdit.cpp:7222 src/gui/insEdit.cpp:7231 +#: src/gui/insEdit.cpp:7238 src/gui/insEdit.cpp:7246 src/gui/insEdit.cpp:7270 +#: src/gui/insEdit.cpp:7277 src/gui/insEdit.cpp:7285 src/gui/insEdit.cpp:7296 +#: src/gui/insEdit.cpp:7303 src/gui/insEdit.cpp:7311 src/gui/insEdit.cpp:7319 +#: src/gui/insEdit.cpp:7328 src/gui/insEdit.cpp:7336 src/gui/insEdit.cpp:7342 +#: src/gui/insEdit.cpp:7348 src/gui/insEdit.cpp:7354 src/gui/insEdit.cpp:7359 +#: src/gui/insEdit.cpp:7366 src/gui/insEdit.cpp:7373 src/gui/insEdit.cpp:7381 +#: src/gui/insEdit.cpp:7390 src/gui/insEdit.cpp:7398 src/gui/insEdit.cpp:7410 +#: src/gui/insEdit.cpp:7423 src/gui/insEdit.cpp:7434 src/gui/insEdit.cpp:7444 +#: src/gui/insEdit.cpp:7452 src/gui/insEdit.cpp:7462 src/gui/insEdit.cpp:7471 +msgid "Arpeggio" +msgstr "" + +#: src/gui/insEdit.cpp:6925 src/gui/insEdit.cpp:6932 src/gui/insEdit.cpp:6943 +#: src/gui/insEdit.cpp:6972 src/gui/insEdit.cpp:6984 src/gui/insEdit.cpp:6994 +#: src/gui/insEdit.cpp:7007 src/gui/insEdit.cpp:7054 src/gui/insEdit.cpp:7062 +#: src/gui/insEdit.cpp:7069 src/gui/insEdit.cpp:7088 src/gui/insEdit.cpp:7110 +#: src/gui/insEdit.cpp:7133 src/gui/insEdit.cpp:7144 src/gui/insEdit.cpp:7163 +#: src/gui/insEdit.cpp:7183 src/gui/insEdit.cpp:7194 src/gui/insEdit.cpp:7214 +#: src/gui/insEdit.cpp:7234 src/gui/insEdit.cpp:7242 src/gui/insEdit.cpp:7249 +#: src/gui/insEdit.cpp:7254 src/gui/insEdit.cpp:7260 src/gui/insEdit.cpp:7266 +#: src/gui/insEdit.cpp:7273 src/gui/insEdit.cpp:7281 src/gui/insEdit.cpp:7290 +#: src/gui/insEdit.cpp:7299 src/gui/insEdit.cpp:7307 src/gui/insEdit.cpp:7324 +#: src/gui/insEdit.cpp:7332 src/gui/insEdit.cpp:7338 src/gui/insEdit.cpp:7362 +#: src/gui/insEdit.cpp:7369 src/gui/insEdit.cpp:7377 src/gui/insEdit.cpp:7386 +#: src/gui/insEdit.cpp:7394 src/gui/insEdit.cpp:7402 src/gui/insEdit.cpp:7414 +#: src/gui/insEdit.cpp:7429 src/gui/insEdit.cpp:7440 src/gui/insEdit.cpp:7448 +#: src/gui/insEdit.cpp:7457 src/gui/insEdit.cpp:7475 +msgid "Phase Reset" +msgstr "" + +#: src/gui/insEdit.cpp:6939 src/gui/insEdit.cpp:7024 src/gui/insEdit.cpp:7210 +#: src/gui/insEdit.cpp:7247 +msgid "Duty/Noise" +msgstr "" + +#: src/gui/insEdit.cpp:6966 src/gui/insEdit.cpp:7288 +msgid "Surround" +msgstr "" + +#: src/gui/insEdit.cpp:6968 src/gui/insEdit.cpp:6981 src/gui/insEdit.cpp:7026 +#: src/gui/insEdit.cpp:7085 src/gui/insEdit.cpp:7141 src/gui/insEdit.cpp:7159 +#: src/gui/insEdit.cpp:7180 src/gui/insEdit.cpp:7201 src/gui/insEdit.cpp:7225 +#: src/gui/insEdit.cpp:7278 src/gui/insEdit.cpp:7304 src/gui/insEdit.cpp:7321 +#: src/gui/insEdit.cpp:7329 src/gui/insEdit.cpp:7374 src/gui/insEdit.cpp:7383 +#: src/gui/insEdit.cpp:7399 src/gui/insEdit.cpp:7411 src/gui/insEdit.cpp:7426 +#: src/gui/insEdit.cpp:7454 src/gui/insEdit.cpp:7464 +msgid "Panning (left)" +msgstr "" + +#: src/gui/insEdit.cpp:6969 src/gui/insEdit.cpp:6982 src/gui/insEdit.cpp:7027 +#: src/gui/insEdit.cpp:7086 src/gui/insEdit.cpp:7142 src/gui/insEdit.cpp:7160 +#: src/gui/insEdit.cpp:7181 src/gui/insEdit.cpp:7202 src/gui/insEdit.cpp:7226 +#: src/gui/insEdit.cpp:7279 src/gui/insEdit.cpp:7305 src/gui/insEdit.cpp:7322 +#: src/gui/insEdit.cpp:7330 src/gui/insEdit.cpp:7375 src/gui/insEdit.cpp:7384 +#: src/gui/insEdit.cpp:7400 src/gui/insEdit.cpp:7412 src/gui/insEdit.cpp:7427 +#: src/gui/insEdit.cpp:7455 src/gui/insEdit.cpp:7465 +msgid "Panning (right)" +msgstr "" + +#: src/gui/insEdit.cpp:6978 src/gui/insEdit.cpp:7129 src/gui/insEdit.cpp:7223 +#: src/gui/insEdit.cpp:7315 +msgid "Noise" +msgstr "" + +#: src/gui/insEdit.cpp:6990 src/gui/insEdit.cpp:7003 src/gui/insEdit.cpp:7107 +#: src/gui/insEdit.cpp:7199 src/gui/insEdit.cpp:7239 src/gui/insEdit.cpp:7424 +msgid "Noise Freq" +msgstr "" + +#: src/gui/insEdit.cpp:6996 src/gui/insEdit.cpp:7010 src/gui/insEdit.cpp:7167 +msgid "AutoEnv Num" +msgstr "" + +#: src/gui/insEdit.cpp:6997 src/gui/insEdit.cpp:7011 src/gui/insEdit.cpp:7168 +msgid "AutoEnv Den" +msgstr "" + +#: src/gui/insEdit.cpp:7012 +msgid "Noise AND Mask" +msgstr "" + +#: src/gui/insEdit.cpp:7013 +msgid "Noise OR Mask" +msgstr "" + +#: src/gui/insEdit.cpp:7034 +msgid "On/Off" +msgstr "" + +#: src/gui/insEdit.cpp:7060 +msgid "Patch" +msgstr "" + +#: src/gui/insEdit.cpp:7076 +msgid "Mod Depth" +msgstr "" + +#: src/gui/insEdit.cpp:7077 +msgid "Mod Speed" +msgstr "" + +#: src/gui/insEdit.cpp:7078 +msgid "Mod Position" +msgstr "" + +#: src/gui/insEdit.cpp:7083 +msgid "Noise Length" +msgstr "" + +#: src/gui/insEdit.cpp:7093 +msgid "Wave Pos" +msgstr "" + +#: src/gui/insEdit.cpp:7096 +msgid "Wave Length" +msgstr "" + +#: src/gui/insEdit.cpp:7115 +msgid "AUDCTL" +msgstr "" + +#: src/gui/insEdit.cpp:7122 src/gui/insEdit.cpp:7343 +msgid "Pulse Width" +msgstr "" + +#: src/gui/insEdit.cpp:7139 +msgid "Duty/Int" +msgstr "" + +#: src/gui/insEdit.cpp:7145 src/gui/insEdit.cpp:7406 +msgid "Load LFSR" +msgstr "" + +#: src/gui/insEdit.cpp:7165 +msgid "Envelope Mode" +msgstr "" + +#: src/gui/insEdit.cpp:7186 +msgid "Outputs" +msgstr "" + +#: src/gui/insEdit.cpp:7187 src/gui/insEdit.cpp:7217 src/gui/insEdit.cpp:7382 +#: src/gui/insEdit.cpp:7403 src/gui/insEdit.cpp:7415 src/gui/insEdit.cpp:7430 +msgid "Control" +msgstr "" + +#: src/gui/insEdit.cpp:7218 +msgid "Phase Reset Timer" +msgstr "" + +#: src/gui/insEdit.cpp:7252 src/gui/insEdit.cpp:7259 +msgid "Freq Divider" +msgstr "" + +#: src/gui/insEdit.cpp:7255 +msgid "Clock Divider" +msgstr "" + +#: src/gui/insEdit.cpp:7264 +msgid "Global Volume" +msgstr "" + +#: src/gui/insEdit.cpp:7286 +msgid "Echo Level" +msgstr "" + +#: src/gui/insEdit.cpp:7291 +msgid "Echo Feedback" +msgstr "" + +#: src/gui/insEdit.cpp:7292 +msgid "Echo Length" +msgstr "" + +#: src/gui/insEdit.cpp:7312 +msgid "Group Ctrl" +msgstr "" + +#: src/gui/insEdit.cpp:7313 +msgid "Group Attack" +msgstr "" + +#: src/gui/insEdit.cpp:7314 +msgid "Group Decay" +msgstr "" + +#: src/gui/insEdit.cpp:7320 +msgid "Noise Type" +msgstr "" + +#: src/gui/insEdit.cpp:7367 +msgid "Square/Noise" +msgstr "" + +#: src/gui/insEdit.cpp:7404 +msgid "Tap A Location" +msgstr "" + +#: src/gui/insEdit.cpp:7405 +msgid "Tap B Location" +msgstr "" + +#: src/gui/insEdit.cpp:7416 +msgid "Portion A Length" +msgstr "" + +#: src/gui/insEdit.cpp:7417 +msgid "Portion B Length" +msgstr "" + +#: src/gui/insEdit.cpp:7418 +msgid "Portion A Offset" +msgstr "" + +#: src/gui/insEdit.cpp:7419 +msgid "Portion B Offset" +msgstr "" + +#: src/gui/insEdit.cpp:7463 +msgid "Parameter" +msgstr "" + +#: src/gui/insEdit.cpp:7467 +msgid "Load Value" +msgstr "" + +#: src/gui/insEdit.cpp:7479 +msgid "Filter Toggle" +msgstr "" + +#: src/gui/insEdit.cpp:7486 +msgid "Wave Mix" +msgstr "" + +#: src/gui/insEdit.cpp:7500 +msgid "Octave offset" +msgstr "" + +#: src/gui/insEdit.cpp:7505 +msgid "go to Macros for other parameters." +msgstr "" + +#: src/gui/insEdit.cpp:7521 +msgid "invalid instrument type! change it first." +msgstr "" + +#: src/gui/insEdit.cpp:7565 +msgid "clear contents" +msgstr "" + +#: src/gui/insEdit.cpp:7571 +msgid "offset..." +msgstr "" + +#: src/gui/insEdit.cpp:7572 src/gui/insEdit.cpp:7605 +msgid "X" +msgstr "" + +#: src/gui/insEdit.cpp:7573 src/gui/insEdit.cpp:7609 +msgid "Y" +msgstr "" + +#: src/gui/insEdit.cpp:7574 +msgid "offset" +msgstr "" + +#: src/gui/insEdit.cpp:7637 +msgid "Min" +msgstr "" + +#: src/gui/insEdit.cpp:7638 +msgid "Max" msgstr "" diff --git a/scripts/update-po.sh b/scripts/update-po.sh index fbccfdcf8..7c8c27581 100755 --- a/scripts/update-po.sh +++ b/scripts/update-po.sh @@ -13,7 +13,7 @@ echo '"MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ' >> po/furnace.pot -find src/ -type f -regex ".*\(cpp\|h\)$" | xargs xgettext --omit-header -k_ -L C++ -o - >> po/furnace.pot +find src/ -type f -regex ".*\(cpp\|h\)$" | xargs xgettext --omit-header -k_ -k_N -L C++ -o - >> po/furnace.pot || exit 1 cd po for i in ${EXPORT_LANGS[@]}; do diff --git a/src/gui/chanOsc.cpp b/src/gui/chanOsc.cpp index 111c59b65..5a1f56cb6 100644 --- a/src/gui/chanOsc.cpp +++ b/src/gui/chanOsc.cpp @@ -140,7 +140,7 @@ void FurnaceGUI::drawChanOsc() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Columns"); + ImGui::Text(_("Columns")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputInt("##COSColumns",&chanOscCols,1,3)) { @@ -149,7 +149,7 @@ void FurnaceGUI::drawChanOsc() { } ImGui::TableNextColumn(); - ImGui::Text("Size (ms)"); + ImGui::Text(_("Size (ms)")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputFloat("##COSWinSize",&chanOscWindowSize,1.0f,10.0f)) { @@ -160,7 +160,7 @@ void FurnaceGUI::drawChanOsc() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Automatic columns"); + ImGui::Text(_("Automatic columns")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); const char* previewColType=autoColsTypes[chanOscAutoColsType&3]; @@ -174,19 +174,19 @@ void FurnaceGUI::drawChanOsc() { } ImGui::TableNextColumn(); - if (ImGui::Checkbox("Center waveform",&chanOscWaveCorr)) { + if (ImGui::Checkbox(_("Center waveform"),&chanOscWaveCorr)) { centerSettingReset=true; } ImGui::TableNextRow(); ImGui::TableNextColumn(); - if (ImGui::Checkbox("Randomize phase on note",&chanOscRandomPhase)) { + if (ImGui::Checkbox(_("Randomize phase on note"),&chanOscRandomPhase)) { } ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Amplitude"); + ImGui::Text(_("Amplitude")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderFloat("##COSAmp",&chanOscAmplify,0.0f,2.0f)) { @@ -196,7 +196,7 @@ void FurnaceGUI::drawChanOsc() { ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Line size"); + ImGui::Text(_("Line size")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderFloat("##COSLine",&chanOscLineSize,0.25f,16.0f)) { @@ -208,14 +208,14 @@ void FurnaceGUI::drawChanOsc() { ImGui::EndTable(); } - ImGui::Checkbox("Gradient",&chanOscUseGrad); + ImGui::Checkbox(_("Gradient"),&chanOscUseGrad); if (chanOscUseGrad) { if (chanOscGradTex==NULL) { chanOscGradTex=rend->createTexture(true,chanOscGrad.width,chanOscGrad.height,true,bestTexFormat); if (chanOscGradTex==NULL) { - logE("error while creating gradient texture!"); + logE(_("error while creating gradient texture!")); } else { updateChanOscGradTex=true; } @@ -233,7 +233,7 @@ void FurnaceGUI::drawChanOsc() { if (rend->updateTexture(chanOscGradTex,chanOscGrad.grad.get(),chanOscGrad.width*4)) { updateChanOscGradTex=false; } else { - logE("error while updating gradient texture!"); + logE(_("error while updating gradient texture!")); } } @@ -289,11 +289,11 @@ void FurnaceGUI::drawChanOsc() { i.prevY=i.y; } if (ImGui::BeginPopup("gradPointSettings",ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_AlwaysAutoResize)) { - if (ImGui::ColorPicker4("Color",(float*)&i.color)) { + if (ImGui::ColorPicker4(_("Color"),(float*)&i.color)) { updateChanOscGradTex=true; } ImGui::AlignTextToFramePadding(); - ImGui::Text("Distance"); + ImGui::Text(_("Distance")); ImGui::SameLine(); float pDist=i.distance*100.0f; if (ImGui::SliderFloat("##PDistance",&pDist,0.0f,150.0f,"%.1f%%")) { @@ -302,7 +302,7 @@ void FurnaceGUI::drawChanOsc() { } ImGui::AlignTextToFramePadding(); - ImGui::Text("Spread"); + ImGui::Text(_("Spread")); ImGui::SameLine(); float pSpread=i.spread*100.0f; if (ImGui::SliderFloat("##PSpread",&pSpread,0.0f,150.0f,"%.1f%%")) { @@ -311,7 +311,7 @@ void FurnaceGUI::drawChanOsc() { } pushDestColor(); - if (ImGui::Button("Remove")) { + if (ImGui::Button(_("Remove"))) { removePoint=index; ImGui::CloseCurrentPopup(); } @@ -335,26 +335,26 @@ void FurnaceGUI::drawChanOsc() { } ImGui::TableNextColumn(); - if (ImGui::ColorEdit4("Background",(float*)&chanOscGrad.bgColor)) { + if (ImGui::ColorEdit4(_("Background"),(float*)&chanOscGrad.bgColor)) { updateChanOscGradTex=true; } - ImGui::Combo("X Axis##AxisX",&chanOscColorX,chanOscRefs,GUI_OSCREF_MAX); - ImGui::Combo("Y Axis##AxisY",&chanOscColorY,chanOscRefs,GUI_OSCREF_MAX); + ImGui::Combo(_("X Axis##AxisX"),&chanOscColorX,chanOscRefs,GUI_OSCREF_MAX); + ImGui::Combo(_("Y Axis##AxisY"),&chanOscColorY,chanOscRefs,GUI_OSCREF_MAX); ImGui::EndTable(); } } else { ImGui::SetNextItemWidth(400.0f*dpiScale); - ImGui::ColorPicker4("Color",(float*)&chanOscColor); + ImGui::ColorPicker4(_("Color"),(float*)&chanOscColor); } ImGui::AlignTextToFramePadding(); - ImGui::Text("Text format:"); + ImGui::Text(_("Text format:")); ImGui::SameLine(); ImGui::InputText("##TextFormat",&chanOscTextFormat); if (ImGui::IsItemHovered()) { if (ImGui::BeginTooltip()) { - ImGui::TextUnformatted( + ImGui::TextUnformatted(_( "format guide:\n" "- %c: channel name\n" "- %C: channel short name\n" @@ -372,14 +372,14 @@ void FurnaceGUI::drawChanOsc() { "- %b: volume (hex)\n" "- %l: new line\n" "- %%: percent sign" - ); + )); ImGui::EndTooltip(); } } - ImGui::ColorEdit4("Text color",(float*)&chanOscTextColor); + ImGui::ColorEdit4(_("Text color"),(float*)&chanOscTextColor); - if (ImGui::Button("OK")) { + if (ImGui::Button(_("OK"))) { chanOscOptions=false; } } else { @@ -397,7 +397,7 @@ void FurnaceGUI::drawChanOsc() { // check work thread if (chanOscWorkPool==NULL) { - logV("creating chan osc work pool"); + logV(_("creating chan osc work pool")); chanOscWorkPool=new DivWorkPool(settings.chanOscThreads); } @@ -426,18 +426,18 @@ void FurnaceGUI::drawChanOsc() { // check FFT status existence if (!fft_->ready) { - logD("creating FFT plan for channel %d",fft_->relatedCh); + logD(_("creating FFT plan for channel %d"),fft_->relatedCh); fft_->inBuf=(double*)fftw_malloc(FURNACE_FFT_SIZE*sizeof(double)); fft_->outBuf=(fftw_complex*)fftw_malloc(FURNACE_FFT_SIZE*sizeof(fftw_complex)); fft_->corrBuf=(double*)fftw_malloc(FURNACE_FFT_SIZE*sizeof(double)); fft_->plan=fftw_plan_dft_r2c_1d(FURNACE_FFT_SIZE,fft_->inBuf,fft_->outBuf,FFTW_ESTIMATE); fft_->planI=fftw_plan_dft_c2r_1d(FURNACE_FFT_SIZE,fft_->outBuf,fft_->corrBuf,FFTW_ESTIMATE); if (fft_->plan==NULL) { - logE("failed to create plan!"); + logE(_("failed to create plan!")); } else if (fft_->planI==NULL) { - logE("failed to create inverse plan!"); + logE(_("failed to create inverse plan!")); } else if (fft_->inBuf==NULL || fft_->outBuf==NULL || fft_->corrBuf==NULL) { - logE("failed to create FFT buffers"); + logE(_("failed to create FFT buffers")); } else { fft_->ready=true; } @@ -582,7 +582,7 @@ void FurnaceGUI::drawChanOsc() { ChanOscStatus* fft=oscFFTs[i]; int ch=oscChans[i]; if (buf==NULL) { - ImGui::Text("Error!"); + ImGui::Text(_("Error!")); } else { ImVec2 size=ImGui::GetContentRegionAvail(); size.y=availY/rows; diff --git a/src/gui/channels.cpp b/src/gui/channels.cpp index 69ed7385c..8c644d268 100644 --- a/src/gui/channels.cpp +++ b/src/gui/channels.cpp @@ -46,13 +46,13 @@ void FurnaceGUI::drawChannels() { ImGui::TableSetupColumn("c4",ImGuiTableColumnFlags_WidthFixed,48.0f*dpiScale); ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("Pat"); + ImGui::Text(_("Pat")); ImGui::TableNextColumn(); - ImGui::Text("Osc"); + ImGui::Text(_("Osc")); ImGui::TableNextColumn(); - ImGui::Text("Swap"); + ImGui::Text(_("Swap")); ImGui::TableNextColumn(); - ImGui::Text("Name"); + ImGui::Text(_("Name")); for (int i=0; igetTotalChannelCount(); i++) { ImGui::PushID(i); ImGui::TableNextRow(); @@ -61,14 +61,14 @@ void FurnaceGUI::drawChannels() { MARK_MODIFIED; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Show in pattern"); + ImGui::SetTooltip(_("Show in pattern")); } ImGui::TableNextColumn(); if (ImGui::Checkbox("##VisibleChanOsc",&e->curSubSong->chanShowChanOsc[i])) { MARK_MODIFIED; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Show in per-channel oscilloscope"); + ImGui::SetTooltip(_("Show in per-channel oscilloscope")); } ImGui::TableNextColumn(); if (ImGui::Button(ICON_FA_ARROWS)) { @@ -79,7 +79,7 @@ void FurnaceGUI::drawChannels() { ImGui::Button(ICON_FA_ARROWS "##ChanDrag"); ImGui::EndDragDropSource(); } else if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("%s #%d\n(drag to swap channels)",e->getSystemName(e->sysOfChan[i]),e->dispatchChanOfChan[i]); + ImGui::SetTooltip(_("%s #%d\n(drag to swap channels)"),e->getSystemName(e->sysOfChan[i]),e->dispatchChanOfChan[i]); } if (ImGui::BeginDragDropTarget()) { const ImGuiPayload* dragItem=ImGui::AcceptDragDropPayload("FUR_CHAN"); diff --git a/src/gui/commandPalette.cpp b/src/gui/commandPalette.cpp index 01c26c010..e4cca5bf9 100644 --- a/src/gui/commandPalette.cpp +++ b/src/gui/commandPalette.cpp @@ -48,22 +48,22 @@ void FurnaceGUI::drawPalette() { int width=ImGui::GetContentRegionAvail().x; ImGui::SetNextItemWidth(width); - const char* hint="Search..."; + const char* hint=_("Search..."); switch (curPaletteType) { case CMDPAL_TYPE_RECENT: - hint="Search recent files..."; + hint=_("Search recent files..."); break; case CMDPAL_TYPE_INSTRUMENTS: - hint="Search instruments..."; + hint=_("Search instruments..."); break; case CMDPAL_TYPE_SAMPLES: - hint="Search samples..."; + hint=_("Search samples..."); break; case CMDPAL_TYPE_INSTRUMENT_CHANGE: - hint="Search instruments (to change to)..."; + hint=_("Search instruments (to change to)..."); break; case CMDPAL_TYPE_ADD_CHIP: - hint="Search chip (to add)..."; + hint=_("Search chip (to add)..."); break; } @@ -90,7 +90,7 @@ void FurnaceGUI::drawPalette() { case CMDPAL_TYPE_INSTRUMENTS: case CMDPAL_TYPE_INSTRUMENT_CHANGE: - if (matchFuzzy("- None -",paletteQuery.c_str())) { + if (matchFuzzy(_("- None -"),paletteQuery.c_str())) { paletteSearchResults.push_back(0); } for (int i=0; isong.insLen; i++) { @@ -120,7 +120,7 @@ void FurnaceGUI::drawPalette() { break; default: - logE("invalid command palette type"); + logE(_("invalid command palette type")); ImGui::CloseCurrentPopup(); break; }; @@ -164,7 +164,7 @@ void FurnaceGUI::drawPalette() { case CMDPAL_TYPE_INSTRUMENTS: case CMDPAL_TYPE_INSTRUMENT_CHANGE: if (id==0) { - s="- None -"; + s=_("- None -"); } else { s=fmt::sprintf("%02X: %s", id-1, e->song.ins[id-1]->name.c_str()); } @@ -176,7 +176,7 @@ void FurnaceGUI::drawPalette() { s=getSystemName((DivSystem)id); break; default: - logE("invalid command palette type"); + logE(_("invalid command palette type")); break; }; @@ -196,7 +196,7 @@ void FurnaceGUI::drawPalette() { accepted=ImGui::IsKeyPressed(ImGuiKey_Enter); } - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); } @@ -238,7 +238,7 @@ void FurnaceGUI::drawPalette() { } break; default: - logE("invalid command palette type"); + logE(_("invalid command palette type")); break; }; } diff --git a/src/gui/compatFlags.cpp b/src/gui/compatFlags.cpp index 0c2d92a9b..4bde0ddb5 100644 --- a/src/gui/compatFlags.cpp +++ b/src/gui/compatFlags.cpp @@ -29,324 +29,324 @@ void FurnaceGUI::drawCompatFlags() { } if (!compatFlagsOpen) return; if (ImGui::Begin("Compatibility Flags",&compatFlagsOpen,globalWinFlags)) { - ImGui::TextWrapped("these flags are designed to provide better DefleMask/older Furnace compatibility.\nit is recommended to disable most of these unless you rely on specific quirks."); + ImGui::TextWrapped(_("these flags are designed to provide better DefleMask/older Furnace compatibility.\nit is recommended to disable most of these unless you rely on specific quirks.")); if (ImGui::BeginTabBar("settingsTab")) { - if (ImGui::BeginTabItem("DefleMask")) { - ImGui::Checkbox("Limit slide range",&e->song.limitSlides); + if (ImGui::BeginTabItem(_("DefleMask"))) { + ImGui::Checkbox(_("Limit slide range"),&e->song.limitSlides); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, slides are limited to a compatible range.\nmay cause problems with slides in negative octaves."); + ImGui::SetTooltip(_("when enabled, slides are limited to a compatible range.\nmay cause problems with slides in negative octaves.")); } - InvCheckbox("Compatible noise layout on NES and PC Engine",&e->song.properNoiseLayout); + InvCheckbox(_("Compatible noise layout on NES and PC Engine"),&e->song.properNoiseLayout); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("use a rather unusual compatible noise frequency layout.\nremoves some noise frequencies on PC Engine."); + ImGui::SetTooltip(_("use a rather unusual compatible noise frequency layout.\nremoves some noise frequencies on PC Engine.")); } - ImGui::Checkbox("Game Boy instrument duty is wave volume",&e->song.waveDutyIsVol); + ImGui::Checkbox(_("Game Boy instrument duty is wave volume"),&e->song.waveDutyIsVol); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("if enabled, an instrument with duty macro in the wave channel will be mapped to wavetable volume."); + ImGui::SetTooltip(_("if enabled, an instrument with duty macro in the wave channel will be mapped to wavetable volume.")); } - ImGui::Checkbox("Restart macro on portamento",&e->song.resetMacroOnPorta); + ImGui::Checkbox(_("Restart macro on portamento"),&e->song.resetMacroOnPorta); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, a portamento effect will reset the channel's macro if used in combination with a note."); + ImGui::SetTooltip(_("when enabled, a portamento effect will reset the channel's macro if used in combination with a note.")); } - ImGui::Checkbox("Legacy volume slides",&e->song.legacyVolumeSlides); + ImGui::Checkbox(_("Legacy volume slides"),&e->song.legacyVolumeSlides); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("simulate glitchy volume slide behavior by silently overflowing the volume when the slide goes below 0."); + ImGui::SetTooltip(_("simulate glitchy volume slide behavior by silently overflowing the volume when the slide goes below 0.")); } - ImGui::Checkbox("Compatible arpeggio",&e->song.compatibleArpeggio); + ImGui::Checkbox(_("Compatible arpeggio"),&e->song.compatibleArpeggio); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("delay arpeggio by one tick on every new note."); + ImGui::SetTooltip(_("delay arpeggio by one tick on every new note.")); } - ImGui::Checkbox("Disable DAC when sample ends",&e->song.brokenDACMode); + ImGui::Checkbox(_("Disable DAC when sample ends"),&e->song.brokenDACMode); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, the DAC in YM2612 will be disabled if there isn't any sample playing."); + ImGui::SetTooltip(_("when enabled, the DAC in YM2612 will be disabled if there isn't any sample playing.")); } - ImGui::Checkbox("Broken speed alternation",&e->song.brokenSpeedSel); + ImGui::Checkbox(_("Broken speed alternation"),&e->song.brokenSpeedSel); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("determines next speed based on whether the row is odd/even instead of alternating between speeds."); + ImGui::SetTooltip(_("determines next speed based on whether the row is odd/even instead of alternating between speeds.")); } - ImGui::Checkbox("Ignore duplicate slide effects",&e->song.ignoreDuplicateSlides); + ImGui::Checkbox(_("Ignore duplicate slide effects"),&e->song.ignoreDuplicateSlides); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("if this is on, only the first slide of a row in a channel will be considered."); + ImGui::SetTooltip(_("if this is on, only the first slide of a row in a channel will be considered.")); } - ImGui::Checkbox("Ignore 0Dxx on the last order",&e->song.ignoreJumpAtEnd); + ImGui::Checkbox(_("Ignore 0Dxx on the last order"),&e->song.ignoreJumpAtEnd); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("if this is on, a jump to next row effect will not take place when it is on the last order of a song."); + ImGui::SetTooltip(_("if this is on, a jump to next row effect will not take place when it is on the last order of a song.")); } - ImGui::Checkbox("Buggy portamento after pitch slide",&e->song.buggyPortaAfterSlide); + ImGui::Checkbox(_("Buggy portamento after pitch slide"),&e->song.buggyPortaAfterSlide); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("simulates a bug in where portamento does not work after sliding."); + ImGui::SetTooltip(_("simulates a bug in where portamento does not work after sliding.")); } - ImGui::Checkbox("FM pitch slide octave boundary odd behavior",&e->song.fbPortaPause); + ImGui::Checkbox(_("FM pitch slide octave boundary odd behavior"),&e->song.fbPortaPause); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("if this is on, a pitch slide that crosses the octave boundary will stop for one tick and then continue from the nearest octave boundary.\nfor .dmf compatibility."); + ImGui::SetTooltip(_("if this is on, a pitch slide that crosses the octave boundary will stop for one tick and then continue from the nearest octave boundary.\nfor .dmf compatibility.")); } - InvCheckbox("Don't apply Game Boy envelope on note-less instrument change",&e->song.gbInsAffectsEnvelope); + InvCheckbox(_("Don't apply Game Boy envelope on note-less instrument change"),&e->song.gbInsAffectsEnvelope); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("if this is on, an instrument change will not affect the envelope."); + ImGui::SetTooltip(_("if this is on, an instrument change will not affect the envelope.")); } - ImGui::Checkbox("Ignore DAC mode change outside of intended channel in ExtCh mode",&e->song.ignoreDACModeOutsideIntendedChannel); + ImGui::Checkbox(_("Ignore DAC mode change outside of intended channel in ExtCh mode"),&e->song.ignoreDACModeOutsideIntendedChannel); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("if this is on, 17xx has no effect on the operator channels in YM2612."); + ImGui::SetTooltip(_("if this is on, 17xx has no effect on the operator channels in YM2612.")); } - ImGui::Checkbox("E1xy/E2xy also take priority over slide stops",&e->song.e1e2AlsoTakePriority); + ImGui::Checkbox(_("E1xy/E2xy also take priority over slide stops"),&e->song.e1e2AlsoTakePriority); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("does this make any sense by now?"); + ImGui::SetTooltip(_("does this make any sense by now?")); } - ImGui::Checkbox("E1xy/E2xy stop when repeating the same note",&e->song.e1e2StopOnSameNote); + ImGui::Checkbox(_("E1xy/E2xy stop when repeating the same note"),&e->song.e1e2StopOnSameNote); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("ugh, if only this wasn't a thing..."); + ImGui::SetTooltip(_("ugh, if only this wasn't a thing...")); } - ImGui::Checkbox("SN76489 duty macro always resets phase",&e->song.snDutyReset); + ImGui::Checkbox(_("SN76489 duty macro always resets phase"),&e->song.snDutyReset); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, duty macro will always reset phase, even if its value hasn't changed."); + ImGui::SetTooltip(_("when enabled, duty macro will always reset phase, even if its value hasn't changed.")); } - InvCheckbox("Broken volume scaling strategy",&e->song.newVolumeScaling); + InvCheckbox(_("Broken volume scaling strategy"),&e->song.newVolumeScaling); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled:\n- log scaling: multiply\n- linear scaling: subtract\nwhen disabled:\n- log scaling: subtract\n- linear scaling: multiply"); + ImGui::SetTooltip(_("when enabled:\n- log scaling: multiply\n- linear scaling: subtract\nwhen disabled:\n- log scaling: subtract\n- linear scaling: multiply")); } - InvCheckbox("Don't persist volume macro after it finishes",&e->song.volMacroLinger); + InvCheckbox(_("Don't persist volume macro after it finishes"),&e->song.volMacroLinger); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, a value in the volume column that happens after the volume macro is done will disregard the macro."); + ImGui::SetTooltip(_("when enabled, a value in the volume column that happens after the volume macro is done will disregard the macro.")); } - ImGui::Checkbox("Broken output volume on instrument change",&e->song.brokenOutVol); + ImGui::Checkbox(_("Broken output volume on instrument change"),&e->song.brokenOutVol); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("if enabled, no checks for the presence of a volume macro will be made.\nthis will cause the last macro value to linger unless a value in the volume column is present."); + ImGui::SetTooltip(_("if enabled, no checks for the presence of a volume macro will be made.\nthis will cause the last macro value to linger unless a value in the volume column is present.")); } - ImGui::Checkbox("Broken output volume - Episode 2 (PLEASE KEEP ME DISABLED)",&e->song.brokenOutVol2); + ImGui::Checkbox(_("Broken output volume - Episode 2 (PLEASE KEEP ME DISABLED)"),&e->song.brokenOutVol2); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("these compatibility flags are getting SO damn ridiculous and out of control.\nas you may have guessed, this one exists due to yet ANOTHER DefleMask-specific behavior.\nplease keep this off at all costs, because I will not support it when ROM export comes.\noh, and don't start an argument out of it. Furnace isn't a DefleMask replacement, and no,\nI am not trying to make it look like one with all these flags.\n\noh, and what about the other flags that don't have to do with DefleMask?\nthose are for .mod import, future FamiTracker import and personal taste!\n\nend of rant"); + ImGui::SetTooltip(_("these compatibility flags are getting SO damn ridiculous and out of control.\nas you may have guessed, this one exists due to yet ANOTHER DefleMask-specific behavior.\nplease keep this off at all costs, because I will not support it when ROM export comes.\noh, and don't start an argument out of it. Furnace isn't a DefleMask replacement, and no,\nI am not trying to make it look like one with all these flags.\n\noh, and what about the other flags that don't have to do with DefleMask?\nthose are for .mod import, future FamiTracker import and personal taste!\n\nend of rant")); } - ImGui::Checkbox("Treat SN76489 periods under 8 as 1",&e->song.snNoLowPeriods); + ImGui::Checkbox(_("Treat SN76489 periods under 8 as 1"),&e->song.snNoLowPeriods); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, any SN period under 8 will be written as 1 instead.\nthis replicates DefleMask behavior, but reduces available period range."); + ImGui::SetTooltip(_("when enabled, any SN period under 8 will be written as 1 instead.\nthis replicates DefleMask behavior, but reduces available period range.")); } ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Old Furnace")) { - ImGui::Checkbox("Arpeggio inhibits non-porta slides",&e->song.arpNonPorta); + if (ImGui::BeginTabItem(_("Old Furnace"))) { + ImGui::Checkbox(_("Arpeggio inhibits non-porta slides"),&e->song.arpNonPorta); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.5.5"); + ImGui::SetTooltip(_("behavior changed in 0.5.5")); } - ImGui::Checkbox("Wack FM algorithm macro",&e->song.algMacroBehavior); + ImGui::Checkbox(_("Wack FM algorithm macro"),&e->song.algMacroBehavior); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.5.5"); + ImGui::SetTooltip(_("behavior changed in 0.5.5")); } - ImGui::Checkbox("Broken shortcut slides (E1xy/E2xy)",&e->song.brokenShortcutSlides); + ImGui::Checkbox(_("Broken shortcut slides (E1xy/E2xy)"),&e->song.brokenShortcutSlides); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.5.7"); + ImGui::SetTooltip(_("behavior changed in 0.5.7")); } - ImGui::Checkbox("Stop portamento on note off",&e->song.stopPortaOnNoteOff); + ImGui::Checkbox(_("Stop portamento on note off"),&e->song.stopPortaOnNoteOff); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre1"); + ImGui::SetTooltip(_("behavior changed in 0.6pre1")); } - InvCheckbox("Don't allow instrument change during slides",&e->song.newInsTriggersInPorta); + InvCheckbox(_("Don't allow instrument change during slides"),&e->song.newInsTriggersInPorta); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre1"); + ImGui::SetTooltip(_("behavior changed in 0.6pre1")); } - InvCheckbox("Don't reset note to base on arpeggio stop",&e->song.arp0Reset); + InvCheckbox(_("Don't reset note to base on arpeggio stop"),&e->song.arp0Reset); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre1"); + ImGui::SetTooltip(_("behavior changed in 0.6pre1")); } - InvCheckbox("ExtCh channel status is not shared among operators",&e->song.sharedExtStat); + InvCheckbox(_("ExtCh channel status is not shared among operators"),&e->song.sharedExtStat); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre1"); + ImGui::SetTooltip(_("behavior changed in 0.6pre1")); } - InvCheckbox("Disable new SegaPCM features (macros and better panning)",&e->song.newSegaPCM); + InvCheckbox(_("Disable new SegaPCM features (macros and better panning)"),&e->song.newSegaPCM); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre1"); + ImGui::SetTooltip(_("behavior changed in 0.6pre1")); } - ImGui::Checkbox("Old FM octave boundary behavior",&e->song.oldOctaveBoundary); + ImGui::Checkbox(_("Old FM octave boundary behavior"),&e->song.oldOctaveBoundary); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre1"); + ImGui::SetTooltip(_("behavior changed in 0.6pre1")); } - ImGui::Checkbox("Disable OPN2 DAC volume control",&e->song.noOPN2Vol); + ImGui::Checkbox(_("Disable OPN2 DAC volume control"),&e->song.noOPN2Vol); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre1"); + ImGui::SetTooltip(_("behavior changed in 0.6pre1")); } - ImGui::Checkbox("Broken initial position of portamento after arpeggio",&e->song.brokenPortaArp); + ImGui::Checkbox(_("Broken initial position of portamento after arpeggio"),&e->song.brokenPortaArp); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre1.5"); + ImGui::SetTooltip(_("behavior changed in 0.6pre1.5")); } - ImGui::Checkbox("Disable new sample features",&e->song.disableSampleMacro); + ImGui::Checkbox(_("Disable new sample features"),&e->song.disableSampleMacro); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre2"); + ImGui::SetTooltip(_("behavior changed in 0.6pre2")); } - ImGui::Checkbox("Old arpeggio macro + pitch slide strategy",&e->song.oldArpStrategy); + ImGui::Checkbox(_("Old arpeggio macro + pitch slide strategy"),&e->song.oldArpStrategy); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre2"); + ImGui::SetTooltip(_("behavior changed in 0.6pre2")); } - ImGui::Checkbox("Broken portamento during legato",&e->song.brokenPortaLegato); + ImGui::Checkbox(_("Broken portamento during legato"),&e->song.brokenPortaLegato); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre4"); + ImGui::SetTooltip(_("behavior changed in 0.6pre4")); } - ImGui::Checkbox("Broken macros in some FM chips after note off",&e->song.brokenFMOff); + ImGui::Checkbox(_("Broken macros in some FM chips after note off"),&e->song.brokenFMOff); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre5"); + ImGui::SetTooltip(_("behavior changed in 0.6pre5")); } - ImGui::Checkbox("Pre-note does not take effects into consideration",&e->song.preNoteNoEffect); + ImGui::Checkbox(_("Pre-note does not take effects into consideration"),&e->song.preNoteNoEffect); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6pre9"); + ImGui::SetTooltip(_("behavior changed in 0.6pre9")); } - ImGui::Checkbox("Disable new NES DPCM features",&e->song.oldDPCM); + ImGui::Checkbox(_("Disable new NES DPCM features"),&e->song.oldDPCM); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6.1"); + ImGui::SetTooltip(_("behavior changed in 0.6.1")); } - ImGui::Checkbox("Legacy technical ALWAYS_SET_VOLUME behavior",&e->song.oldAlwaysSetVolume); + ImGui::Checkbox(_("Legacy technical ALWAYS_SET_VOLUME behavior"),&e->song.oldAlwaysSetVolume); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6.1\nthis flag will be removed if I find out that none of the songs break after disabling it."); + ImGui::SetTooltip(_("behavior changed in 0.6.1\nthis flag will be removed if I find out that none of the songs break after disabling it.")); } - ImGui::Checkbox("Old sample offset effect",&e->song.oldSampleOffset); + ImGui::Checkbox(_("Old sample offset effect"),&e->song.oldSampleOffset); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6.3"); + ImGui::SetTooltip(_("behavior changed in 0.6.3")); } ImGui::EndTabItem(); } - if (ImGui::BeginTabItem(".mod import")) { - ImGui::Checkbox("Don't slide on the first tick of a row",&e->song.noSlidesOnFirstTick); + if (ImGui::BeginTabItem(_(".mod import"))) { + ImGui::Checkbox(_("Don't slide on the first tick of a row"),&e->song.noSlidesOnFirstTick); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("simulates ProTracker's behavior of not applying volume/pitch slides on the first tick of a row."); + ImGui::SetTooltip(_("simulates ProTracker's behavior of not applying volume/pitch slides on the first tick of a row.")); } - ImGui::Checkbox("Reset arpeggio position on row change",&e->song.rowResetsArpPos); + ImGui::Checkbox(_("Reset arpeggio position on row change"),&e->song.rowResetsArpPos); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("simulates ProTracker's behavior of arpeggio being bound to the current tick of a row."); + ImGui::SetTooltip(_("simulates ProTracker's behavior of arpeggio being bound to the current tick of a row.")); } ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Pitch/Playback")) { - ImGui::Text("Pitch linearity:"); + if (ImGui::BeginTabItem(_("Pitch/Playback"))) { + ImGui::Text(_("Pitch linearity:")); ImGui::Indent(); - if (ImGui::RadioButton("None",e->song.linearPitch==0)) { + if (ImGui::RadioButton(_("None"),e->song.linearPitch==0)) { e->song.linearPitch=0; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("like ProTracker/FamiTracker"); + ImGui::SetTooltip(_("like ProTracker/FamiTracker")); } if (e->song.linearPitch==1) { pushWarningColor(true); - if (ImGui::RadioButton("Partial (only 04xy/E5xx)",e->song.linearPitch==1)) { + if (ImGui::RadioButton(_("Partial (only 04xy/E5xx)"),e->song.linearPitch==1)) { e->song.linearPitch=1; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("like DefleMask\n\nthis pitch linearity mode is deprecated due to:\n- excessive complexity\n- lack of possible optimization\n\nit is recommended to change it now because I will remove this option in the future!"); + ImGui::SetTooltip(_("like DefleMask\n\nthis pitch linearity mode is deprecated due to:\n- excessive complexity\n- lack of possible optimization\n\nit is recommended to change it now because I will remove this option in the future!")); } popWarningColor(); } - if (ImGui::RadioButton("Full",e->song.linearPitch==2)) { + if (ImGui::RadioButton(_("Full"),e->song.linearPitch==2)) { e->song.linearPitch=2; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("like Impulse Tracker"); + ImGui::SetTooltip(_("like Impulse Tracker")); } ImGui::Unindent(); if (e->song.linearPitch==2) { ImGui::SameLine(); ImGui::SetNextItemWidth(120.0f*dpiScale); - if (ImGui::InputScalar("Pitch slide speed multiplier",ImGuiDataType_U8,&e->song.pitchSlideSpeed,&_ONE,&_ONE)) { + if (ImGui::InputScalar(_("Pitch slide speed multiplier"),ImGuiDataType_U8,&e->song.pitchSlideSpeed,&_ONE,&_ONE)) { if (e->song.pitchSlideSpeed<1) e->song.pitchSlideSpeed=1; if (e->song.pitchSlideSpeed>64) e->song.pitchSlideSpeed=64; } } - ImGui::Text("Loop modality:"); + ImGui::Text(_("Loop modality:")); ImGui::Indent(); - if (ImGui::RadioButton("Reset channels",e->song.loopModality==0)) { + if (ImGui::RadioButton(_("Reset channels"),e->song.loopModality==0)) { e->song.loopModality=0; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("select to reset channels on loop. may trigger a voltage click on every loop!"); + ImGui::SetTooltip(_("select to reset channels on loop. may trigger a voltage click on every loop!")); } - if (ImGui::RadioButton("Soft reset channels",e->song.loopModality==1)) { + if (ImGui::RadioButton(_("Soft reset channels"),e->song.loopModality==1)) { e->song.loopModality=1; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("select to turn channels off on loop."); + ImGui::SetTooltip(_("select to turn channels off on loop.")); } - if (ImGui::RadioButton("Do nothing",e->song.loopModality==2)) { + if (ImGui::RadioButton(_("Do nothing"),e->song.loopModality==2)) { e->song.loopModality=2; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("select to not reset channels on loop."); + ImGui::SetTooltip(_("select to not reset channels on loop.")); } ImGui::Unindent(); - ImGui::Text("Cut/delay effect policy:"); + ImGui::Text(_("Cut/delay effect policy:")); ImGui::Indent(); - if (ImGui::RadioButton("Strict",e->song.delayBehavior==0)) { + if (ImGui::RadioButton(_("Strict"),e->song.delayBehavior==0)) { e->song.delayBehavior=0; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("only when time is less than speed (like DefleMask/ProTracker)"); + ImGui::SetTooltip(_("only when time is less than speed (like DefleMask/ProTracker)")); } - if (ImGui::RadioButton("Strict (old)",e->song.delayBehavior==1)) { + if (ImGui::RadioButton(_("Strict (old)"),e->song.delayBehavior==1)) { e->song.delayBehavior=1; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("only when time is less than or equal to speed (original buggy behavior)"); + ImGui::SetTooltip(_("only when time is less than or equal to speed (original buggy behavior)")); } - if (ImGui::RadioButton("Lax",e->song.delayBehavior==2)) { + if (ImGui::RadioButton(_("Lax"),e->song.delayBehavior==2)) { e->song.delayBehavior=2; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("no checks"); + ImGui::SetTooltip(_("no checks")); } ImGui::Unindent(); - ImGui::Text("Simultaneous jump (0B+0D) treatment:"); + ImGui::Text(_("Simultaneous jump (0B+0D) treatment:")); ImGui::Indent(); - if (ImGui::RadioButton("Normal",e->song.jumpTreatment==0)) { + if (ImGui::RadioButton(_("Normal"),e->song.jumpTreatment==0)) { e->song.jumpTreatment=0; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("accept 0B+0D to jump to a specific row of an order"); + ImGui::SetTooltip(_("accept 0B+0D to jump to a specific row of an order")); } - if (ImGui::RadioButton("Old Furnace",e->song.jumpTreatment==1)) { + if (ImGui::RadioButton(_("Old Furnace"),e->song.jumpTreatment==1)) { e->song.jumpTreatment=1; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("only accept the first jump effect"); + ImGui::SetTooltip(_("only accept the first jump effect")); } - if (ImGui::RadioButton("DefleMask",e->song.jumpTreatment==2)) { + if (ImGui::RadioButton(_("DefleMask"),e->song.jumpTreatment==2)) { e->song.jumpTreatment=2; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("only accept 0Dxx"); + ImGui::SetTooltip(_("only accept 0Dxx")); } ImGui::Unindent(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Other")) { - ImGui::Checkbox("Auto-insert one tick gap between notes",&e->song.oneTickCut); + if (ImGui::BeginTabItem(_("Other"))) { + ImGui::Checkbox(_("Auto-insert one tick gap between notes"),&e->song.oneTickCut); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, a one-tick note cut will be inserted between non-legato/non-portamento notes.\nthis simulates the behavior of some Amiga/SNES music engines.\n\nineffective on C64."); + ImGui::SetTooltip(_("when enabled, a one-tick note cut will be inserted between non-legato/non-portamento notes.\nthis simulates the behavior of some Amiga/SNES music engines.\n\nineffective on C64.")); } ImGui::Separator(); - InvCheckbox("Don't reset slides after note off",&e->song.noteOffResetsSlides); + InvCheckbox(_("Don't reset slides after note off"),&e->song.noteOffResetsSlides); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, note off will not reset the channel's slide effect."); + ImGui::SetTooltip(_("when enabled, note off will not reset the channel's slide effect.")); } - InvCheckbox("Don't reset portamento after reaching target",&e->song.targetResetsSlides); + InvCheckbox(_("Don't reset portamento after reaching target"),&e->song.targetResetsSlides); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, the slide effect will not be disabled after it reaches its target."); + ImGui::SetTooltip(_("when enabled, the slide effect will not be disabled after it reaches its target.")); } - ImGui::Checkbox("Continuous vibrato",&e->song.continuousVibrato); + ImGui::Checkbox(_("Continuous vibrato"),&e->song.continuousVibrato); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, vibrato phase/position will not be reset on a new note."); + ImGui::SetTooltip(_("when enabled, vibrato phase/position will not be reset on a new note.")); } - InvCheckbox("Pitch macro is not linear",&e->song.pitchMacroIsLinear); + InvCheckbox(_("Pitch macro is not linear"),&e->song.pitchMacroIsLinear); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, the pitch macro of an instrument is in frequency/period space."); + ImGui::SetTooltip(_("when enabled, the pitch macro of an instrument is in frequency/period space.")); } - ImGui::Checkbox("Reset arpeggio effect position on new note",&e->song.resetArpPhaseOnNewNote); + ImGui::Checkbox(_("Reset arpeggio effect position on new note"),&e->song.resetArpPhaseOnNewNote); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, arpeggio effect (00xy) position is reset on a new note."); + ImGui::SetTooltip(_("when enabled, arpeggio effect (00xy) position is reset on a new note.")); } - ImGui::Checkbox("Volume scaling rounds up",&e->song.ceilVolumeScaling); + ImGui::Checkbox(_("Volume scaling rounds up"),&e->song.ceilVolumeScaling); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, volume macros round up when applied\nthis prevents volume scaling from causing vol=0, which is silent on some chips\n\nineffective on logarithmic channels"); + ImGui::SetTooltip(_("when enabled, volume macros round up when applied\nthis prevents volume scaling from causing vol=0, which is silent on some chips\n\nineffective on logarithmic channels")); } ImGui::EndTabItem(); } diff --git a/src/gui/csPlayer.cpp b/src/gui/csPlayer.cpp index bc43fe99f..25c01f003 100644 --- a/src/gui/csPlayer.cpp +++ b/src/gui/csPlayer.cpp @@ -110,17 +110,17 @@ void FurnaceGUI::drawCSPlayer() { } if (!csPlayerOpen) return; if (ImGui::Begin("Command Stream Player",&csPlayerOpen,globalWinFlags)) { - if (ImGui::Button("Load")) { + if (ImGui::Button(_("Load"))) { openFileDialog(GUI_FILE_CMDSTREAM_OPEN); } ImGui::SameLine(); - if (ImGui::Button("Kill")) { + if (ImGui::Button(_("Kill"))) { if (!e->killStream()) { - showError("Kikai wa mou shindeiru!"); + showError(_("Kikai wa mou shindeiru!")); } } ImGui::SameLine(); - if (ImGui::Button("Burn Current Song")) { + if (ImGui::Button(_("Burn Current Song"))) { SafeWriter* w=e->saveCommand(); if (w!=NULL) { if (!e->playStream(w->getFinalBuf(),w->size())) { @@ -138,34 +138,34 @@ void FurnaceGUI::drawCSPlayer() { if (cs) { if (ImGui::BeginTabBar("CSOptions")) { int chans=e->getTotalChannelCount(); - if (ImGui::BeginTabItem("Status")) { + if (ImGui::BeginTabItem(_("Status"))) { if (ImGui::BeginTable("CSStat",12,ImGuiTableFlags_SizingFixedSame|ImGuiTableFlags_ScrollX|ImGuiTableFlags_Borders)) { ImGui::TableSetupScrollFreeze(1,1); ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("channel"); + ImGui::Text(_("channel")); ImGui::TableNextColumn(); - ImGui::Text("start"); + ImGui::Text(_("start")); ImGui::TableNextColumn(); - ImGui::Text("PC"); + ImGui::Text(_("PC")); ImGui::TableNextColumn(); - ImGui::Text("wait"); + ImGui::Text(_("wait")); ImGui::TableNextColumn(); - ImGui::Text("SP"); + ImGui::Text(_("SP")); ImGui::TableNextColumn(); - ImGui::Text("note"); + ImGui::Text(_("note")); ImGui::TableNextColumn(); - ImGui::Text("pitch"); + ImGui::Text(_("pitch")); ImGui::TableNextColumn(); - ImGui::Text("vol"); + ImGui::Text(_("vol")); ImGui::TableNextColumn(); - ImGui::Text("vols"); + ImGui::Text(_("vols")); ImGui::TableNextColumn(); - ImGui::Text("vib"); + ImGui::Text(_("vib")); ImGui::TableNextColumn(); - ImGui::Text("porta"); + ImGui::Text(_("porta")); ImGui::TableNextColumn(); - ImGui::Text("arp"); + ImGui::Text(_("arp")); for (int i=0; igetChanState(i); @@ -200,7 +200,7 @@ void FurnaceGUI::drawCSPlayer() { } ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Trace")) { + if (ImGui::BeginTabItem(_("Trace"))) { ImGui::PushFont(patFont); if (ImGui::BeginTable("CSTrace",chans,ImGuiTableFlags_SizingFixedSame|ImGuiTableFlags_Borders|ImGuiTableFlags_ScrollX)) { char tempID[32]; @@ -241,10 +241,10 @@ void FurnaceGUI::drawCSPlayer() { ImGui::PopFont(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Disassemble")) { + if (ImGui::BeginTabItem(_("Disassemble"))) { ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Hex")) { + if (ImGui::BeginTabItem(_("Hex"))) { ImGui::PushFont(patFont); if (ImGui::BeginTable("CSHexPos",chans,ImGuiTableFlags_SizingStretchSame)) { ImGui::TableNextRow(); diff --git a/src/gui/cursor.cpp b/src/gui/cursor.cpp index 80dcd17f8..64f7114b3 100644 --- a/src/gui/cursor.cpp +++ b/src/gui/cursor.cpp @@ -202,7 +202,7 @@ void FurnaceGUI::finishSelection() { selEnd.xFine=2+e->curPat[selEnd.xCoarse].effectCols*2; } - logV("finish selection: %d.%d,%d - %d.%d,%d",selStart.xCoarse,selStart.xFine,selStart.y,selEnd.xCoarse,selEnd.xFine,selEnd.y); + logV(_("finish selection: %d.%d,%d - %d.%d,%d"),selStart.xCoarse,selStart.xFine,selStart.y,selEnd.xCoarse,selEnd.xFine,selEnd.y); e->setMidiBaseChan(cursor.xCoarse); } diff --git a/src/gui/dataList.cpp b/src/gui/dataList.cpp index e86e830e8..9ef807e67 100644 --- a/src/gui/dataList.cpp +++ b/src/gui/dataList.cpp @@ -73,10 +73,10 @@ const char* sampleNote[12]={ void FurnaceGUI::insListItem(int i, int dir, int asset) { ImGui::PushID(i); String name=(settings.insIconsStyle==0)?"":ICON_FA_CIRCLE_O; - const char* insType="Bug!"; + const char* insType=_("Bug!"); if (i>=0 && isong.insLen) { DivInstrument* ins=e->song.ins[i]; - insType=(ins->type>=DIV_INS_MAX)?"Unknown":insTypes[ins->type][0]; + insType=(ins->type>=DIV_INS_MAX)?_("Unknown"):_(insTypes[ins->type][0]); const char** insIcon=NULL; if (ins->type>=DIV_INS_MAX) { @@ -133,19 +133,19 @@ void FurnaceGUI::insListItem(int i, int dir, int asset) { curIns=i; updateFMPreview=true; ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_TEXT]); - if (ImGui::MenuItem("duplicate")) { + if (ImGui::MenuItem(_("duplicate"))) { doAction(GUI_ACTION_INS_LIST_DUPLICATE); } - if (ImGui::MenuItem("replace...")) { + if (ImGui::MenuItem(_("replace..."))) { doAction((curIns>=0 && curIns<(int)e->song.ins.size())?GUI_ACTION_INS_LIST_OPEN_REPLACE:GUI_ACTION_INS_LIST_OPEN); } - if (ImGui::MenuItem("save")) { + if (ImGui::MenuItem(_("save"))) { doAction(GUI_ACTION_INS_LIST_SAVE); } - if (ImGui::MenuItem("save (.dmp)")) { + if (ImGui::MenuItem(_("save (.dmp)"))) { doAction(GUI_ACTION_INS_LIST_SAVE_DMP); } - if (ImGui::MenuItem("delete")) { + if (ImGui::MenuItem(_("delete"))) { doAction(GUI_ACTION_INS_LIST_DELETE); } ImGui::PopStyleColor(); @@ -240,7 +240,7 @@ void FurnaceGUI::sampleListItem(int i, int dir, int asset) { ImGui::Text(ICON_FA_EXCLAMATION_TRIANGLE); if (ImGui::IsItemHovered() && !mobileUI) { ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_TEXT]); - ImGui::SetTooltip("out of memory for this sample!"); + ImGui::SetTooltip(_("out of memory for this sample!")); ImGui::PopStyleColor(); } ImGui::PopStyleColor(); @@ -251,22 +251,22 @@ void FurnaceGUI::sampleListItem(int i, int dir, int asset) { updateSampleTex=true; lastAssetType=2; ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_TEXT]); - if (ImGui::MenuItem("make instrument")) { + if (ImGui::MenuItem(_("make instrument"))) { doAction(GUI_ACTION_SAMPLE_MAKE_INS); } - if (ImGui::MenuItem("make me a drum kit")) { + if (ImGui::MenuItem(_("make me a drum kit"))) { doAction(GUI_ACTION_SAMPLE_LIST_MAKE_MAP); } - if (ImGui::MenuItem("duplicate")) { + if (ImGui::MenuItem(_("duplicate"))) { doAction(GUI_ACTION_SAMPLE_LIST_DUPLICATE); } - if (ImGui::MenuItem("replace...")) { + if (ImGui::MenuItem(_("replace..."))) { doAction((curSample>=0 && curSample<(int)e->song.sample.size())?GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE:GUI_ACTION_SAMPLE_LIST_OPEN); } - if (ImGui::MenuItem("save")) { + if (ImGui::MenuItem(_("save"))) { doAction(GUI_ACTION_SAMPLE_LIST_SAVE); } - if (ImGui::MenuItem("delete")) { + if (ImGui::MenuItem(_("delete"))) { doAction(GUI_ACTION_SAMPLE_LIST_DELETE); } ImGui::PopStyleColor(); @@ -309,7 +309,7 @@ void FurnaceGUI::drawInsList(bool asChild) { } } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Add"); + ImGui::SetTooltip(_("Add")); } if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) { makeInsTypeList=e->getPossibleInsTypes(); @@ -335,7 +335,7 @@ void FurnaceGUI::drawInsList(bool asChild) { } } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Duplicate"); + ImGui::SetTooltip(_("Duplicate")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_FOLDER_OPEN "##InsLoad")) { @@ -356,47 +356,47 @@ void FurnaceGUI::drawInsList(bool asChild) { } } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Open"); + ImGui::SetTooltip(_("Open")); } if (ImGui::BeginPopupContextItem("InsOpenOpt")) { if (settings.unifiedDataView) { - if (ImGui::MenuItem("replace instrument...")) { + if (ImGui::MenuItem(_("replace instrument..."))) { doAction((curIns>=0 && curIns<(int)e->song.ins.size())?GUI_ACTION_INS_LIST_OPEN_REPLACE:GUI_ACTION_INS_LIST_OPEN); } - if (ImGui::MenuItem("load instrument from TX81Z")) { + if (ImGui::MenuItem(_("load instrument from TX81Z"))) { doAction(GUI_ACTION_TX81Z_REQUEST); } ImGui::Separator(); - if (ImGui::MenuItem("replace wavetable...")) { + if (ImGui::MenuItem(_("replace wavetable..."))) { doAction((curWave>=0 && curWave<(int)e->song.wave.size())?GUI_ACTION_WAVE_LIST_OPEN_REPLACE:GUI_ACTION_WAVE_LIST_OPEN); } ImGui::Separator(); - if (ImGui::MenuItem("replace sample...")) { + if (ImGui::MenuItem(_("replace sample..."))) { doAction((curSample>=0 && curSample<(int)e->song.sample.size())?GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE:GUI_ACTION_SAMPLE_LIST_OPEN); } - if (ImGui::MenuItem("import raw sample...")) { + if (ImGui::MenuItem(_("import raw sample..."))) { doAction(GUI_ACTION_SAMPLE_LIST_OPEN_RAW); } - if (ImGui::MenuItem("import raw sample (replace)...")) { + if (ImGui::MenuItem(_("import raw sample (replace)..."))) { doAction((curSample>=0 && curSample<(int)e->song.sample.size())?GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE_RAW:GUI_ACTION_SAMPLE_LIST_OPEN_RAW); } } else { - if (ImGui::MenuItem("replace...")) { + if (ImGui::MenuItem(_("replace..."))) { doAction((curIns>=0 && curIns<(int)e->song.ins.size())?GUI_ACTION_INS_LIST_OPEN_REPLACE:GUI_ACTION_INS_LIST_OPEN); } ImGui::Separator(); - if (ImGui::MenuItem("load from TX81Z")) { + if (ImGui::MenuItem(_("load from TX81Z"))) { doAction(GUI_ACTION_TX81Z_REQUEST); } } ImGui::EndPopup(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Open (insert; right-click to replace)"); + ImGui::SetTooltip(_("Open (insert; right-click to replace)")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_FLOPPY_O "##InsSave")) { @@ -417,30 +417,30 @@ void FurnaceGUI::drawInsList(bool asChild) { } } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Save"); + ImGui::SetTooltip(_("Save")); } if (ImGui::BeginPopupContextItem("InsSaveFormats",ImGuiMouseButton_Right)) { if (settings.unifiedDataView) { - if (ImGui::MenuItem("save instrument as .dmp...")) { + if (ImGui::MenuItem(_("save instrument as .dmp..."))) { doAction(GUI_ACTION_INS_LIST_SAVE_DMP); } ImGui::Separator(); - if (ImGui::MenuItem("save wavetable as .dmw...")) { + if (ImGui::MenuItem(_("save wavetable as .dmw..."))) { doAction(GUI_ACTION_WAVE_LIST_SAVE_DMW); } - if (ImGui::MenuItem("save raw wavetable...")) { + if (ImGui::MenuItem(_("save raw wavetable..."))) { doAction(GUI_ACTION_WAVE_LIST_SAVE_RAW); } ImGui::Separator(); - if (ImGui::MenuItem("save raw sample...")) { + if (ImGui::MenuItem(_("save raw sample..."))) { doAction(GUI_ACTION_SAMPLE_LIST_SAVE_RAW); } } else { - if (ImGui::MenuItem("save as .dmp...")) { + if (ImGui::MenuItem(_("save as .dmp..."))) { doAction(GUI_ACTION_INS_LIST_SAVE_DMP); } } @@ -453,7 +453,7 @@ void FurnaceGUI::drawInsList(bool asChild) { } popToggleColors(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Toggle folders/standard view"); + ImGui::SetTooltip(_("Toggle folders/standard view")); } if (!insListDir) { ImGui::SameLine(); @@ -475,7 +475,7 @@ void FurnaceGUI::drawInsList(bool asChild) { } } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Move up"); + ImGui::SetTooltip(_("Move up")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_ARROW_DOWN "##InsDown")) { @@ -496,7 +496,7 @@ void FurnaceGUI::drawInsList(bool asChild) { } } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Move down"); + ImGui::SetTooltip(_("Move down")); } } else { ImGui::SameLine(); @@ -507,7 +507,7 @@ void FurnaceGUI::drawInsList(bool asChild) { ImGui::InputText("##FolderName",&folderString); ImGui::SameLine(); ImGui::BeginDisabled(folderString.empty()); - if (ImGui::Button("Create")) { + if (ImGui::Button(_("Create"))) { if (settings.unifiedDataView) { switch (lastAssetType) { case 0: @@ -537,7 +537,7 @@ void FurnaceGUI::drawInsList(bool asChild) { ImGui::EndPopup(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("New folder"); + ImGui::SetTooltip(_("New folder")); } } if (lastAssetType==2) { @@ -546,7 +546,7 @@ void FurnaceGUI::drawInsList(bool asChild) { doAction(GUI_ACTION_SAMPLE_LIST_PREVIEW); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Preview (right click to stop)"); + ImGui::SetTooltip(_("Preview (right click to stop)")); } if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) { doAction(GUI_ACTION_SAMPLE_LIST_STOP_PREVIEW); @@ -573,7 +573,7 @@ void FurnaceGUI::drawInsList(bool asChild) { } popDestColor(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Delete"); + ImGui::SetTooltip(_("Delete")); } ImGui::Separator(); int availableRows=ImGui::GetContentRegionAvail().y/ImGui::GetFrameHeight(); @@ -590,7 +590,7 @@ void FurnaceGUI::drawInsList(bool asChild) { lastAssetType=0; } ImGui::SameLine(); - ImGui::Text("Instruments"); + ImGui::Text(_("Instruments")); ImGui::Indent(); } @@ -605,16 +605,16 @@ void FurnaceGUI::drawInsList(bool asChild) { int dirIndex=0; int dirToDelete=-1; for (DivAssetDir& i: e->song.insDir) { - String nodeName=fmt::sprintf("%s %s##_ADI%d",i.name.empty()?ICON_FA_FOLDER_O:ICON_FA_FOLDER,i.name.empty()?"":i.name,i.name.empty()?-1:dirIndex); + String nodeName=fmt::sprintf("%s %s##_ADI%d",i.name.empty()?ICON_FA_FOLDER_O:ICON_FA_FOLDER,i.name.empty()?_(""):i.name,i.name.empty()?-1:dirIndex); String popupID=fmt::sprintf("DirRightMenu%d",dirIndex); bool treeNode=ImGui::TreeNodeEx(nodeName.c_str(),ImGuiTreeNodeFlags_SpanAvailWidth|(i.name.empty()?ImGuiTreeNodeFlags_DefaultOpen:0)); DRAG_SOURCE(dirIndex,-1,"FUR_INSDIR"); DRAG_TARGET(dirIndex,-1,e->song.insDir,"FUR_INSDIR"); if (ImGui::BeginPopupContextItem(popupID.c_str())) { - if (ImGui::MenuItem("rename...")) { + if (ImGui::MenuItem(_("rename..."))) { editStr(&i.name); } - if (ImGui::MenuItem("delete")) { + if (ImGui::MenuItem(_("delete"))) { dirToDelete=dirIndex; } ImGui::EndPopup(); @@ -660,7 +660,7 @@ void FurnaceGUI::drawInsList(bool asChild) { lastAssetType=1; } ImGui::SameLine(); - ImGui::Text("Wavetables"); + ImGui::Text(_("Wavetables")); ImGui::Indent(); actualWaveList(); ImGui::Unindent(); @@ -671,7 +671,7 @@ void FurnaceGUI::drawInsList(bool asChild) { lastAssetType=2; } ImGui::SameLine(); - ImGui::Text("Samples"); + ImGui::Text(_("Samples")); ImGui::Indent(); actualSampleList(); ImGui::Unindent(); @@ -711,24 +711,24 @@ void FurnaceGUI::drawWaveList(bool asChild) { doAction(GUI_ACTION_WAVE_LIST_ADD); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Add"); + ImGui::SetTooltip(_("Add")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_FILES_O "##WaveClone")) { doAction(GUI_ACTION_WAVE_LIST_DUPLICATE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Duplicate"); + ImGui::SetTooltip(_("Duplicate")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_FOLDER_OPEN "##WaveLoad")) { doAction(GUI_ACTION_WAVE_LIST_OPEN); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Open"); + ImGui::SetTooltip(_("Open")); } if (ImGui::BeginPopupContextItem("WaveOpenOpt")) { - if (ImGui::MenuItem("replace...")) { + if (ImGui::MenuItem(_("replace..."))) { doAction((curWave>=0 && curWave<(int)e->song.wave.size())?GUI_ACTION_WAVE_LIST_OPEN_REPLACE:GUI_ACTION_WAVE_LIST_OPEN); } ImGui::EndPopup(); @@ -738,14 +738,14 @@ void FurnaceGUI::drawWaveList(bool asChild) { doAction(GUI_ACTION_WAVE_LIST_SAVE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Save"); + ImGui::SetTooltip(_("Save")); } if (!settings.unifiedDataView) { if (ImGui::BeginPopupContextItem("WaveSaveFormats",ImGuiMouseButton_Right)) { - if (ImGui::MenuItem("save as .dmw...")) { + if (ImGui::MenuItem(_("save as .dmw..."))) { doAction(GUI_ACTION_WAVE_LIST_SAVE_DMW); } - if (ImGui::MenuItem("save raw...")) { + if (ImGui::MenuItem(_("save raw..."))) { doAction(GUI_ACTION_WAVE_LIST_SAVE_RAW); } ImGui::EndPopup(); @@ -758,7 +758,7 @@ void FurnaceGUI::drawWaveList(bool asChild) { } popToggleColors(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Toggle folders/standard view"); + ImGui::SetTooltip(_("Toggle folders/standard view")); } if (!waveListDir) { ImGui::SameLine(); @@ -766,14 +766,14 @@ void FurnaceGUI::drawWaveList(bool asChild) { doAction(GUI_ACTION_WAVE_LIST_MOVE_UP); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Move up"); + ImGui::SetTooltip(_("Move up")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_ARROW_DOWN "##WaveDown")) { doAction(GUI_ACTION_WAVE_LIST_MOVE_DOWN); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Move down"); + ImGui::SetTooltip(_("Move down")); } } else { ImGui::SameLine(); @@ -784,7 +784,7 @@ void FurnaceGUI::drawWaveList(bool asChild) { ImGui::InputText("##FolderName",&folderString); ImGui::SameLine(); ImGui::BeginDisabled(folderString.empty()); - if (ImGui::Button("Create")) { + if (ImGui::Button(_("Create"))) { e->lockEngine([this]() { e->song.waveDir.push_back(DivAssetDir(folderString)); }); @@ -794,7 +794,7 @@ void FurnaceGUI::drawWaveList(bool asChild) { ImGui::EndPopup(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("New folder"); + ImGui::SetTooltip(_("New folder")); } } ImGui::SameLine(); @@ -804,7 +804,7 @@ void FurnaceGUI::drawWaveList(bool asChild) { } popDestColor(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Delete"); + ImGui::SetTooltip(_("Delete")); } ImGui::Separator(); if (ImGui::BeginTable("WaveListScroll",1,ImGuiTableFlags_ScrollY)) { @@ -843,35 +843,35 @@ void FurnaceGUI::drawSampleList(bool asChild) { doAction(GUI_ACTION_SAMPLE_LIST_ADD); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Add"); + ImGui::SetTooltip(_("Add")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_FILES_O "##SampleClone")) { doAction(GUI_ACTION_SAMPLE_LIST_DUPLICATE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Duplicate"); + ImGui::SetTooltip(_("Duplicate")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_FOLDER_OPEN "##SampleLoad")) { doAction(GUI_ACTION_SAMPLE_LIST_OPEN); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Open"); + ImGui::SetTooltip(_("Open")); } if (mobileUI && ImGui::IsItemActive() && CHECK_LONG_HOLD) { ImGui::OpenPopup("SampleOpenOpt"); NOTIFY_LONG_HOLD; } if (ImGui::BeginPopupContextItem("SampleOpenOpt")) { - if (ImGui::MenuItem("replace...")) { + if (ImGui::MenuItem(_("replace..."))) { doAction((curSample>=0 && curSample<(int)e->song.sample.size())?GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE:GUI_ACTION_SAMPLE_LIST_OPEN); } ImGui::Separator(); - if (ImGui::MenuItem("import raw...")) { + if (ImGui::MenuItem(_("import raw..."))) { doAction(GUI_ACTION_SAMPLE_LIST_OPEN_RAW); } - if (ImGui::MenuItem("import raw (replace)...")) { + if (ImGui::MenuItem(_("import raw (replace)..."))) { doAction((curSample>=0 && curSample<(int)e->song.sample.size())?GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE_RAW:GUI_ACTION_SAMPLE_LIST_OPEN_RAW); } ImGui::EndPopup(); @@ -881,14 +881,14 @@ void FurnaceGUI::drawSampleList(bool asChild) { doAction(GUI_ACTION_SAMPLE_LIST_SAVE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Save"); + ImGui::SetTooltip(_("Save")); } if (mobileUI && ImGui::IsItemActive() && CHECK_LONG_HOLD) { ImGui::OpenPopup("SampleSaveOpt"); NOTIFY_LONG_HOLD; } if (ImGui::BeginPopupContextItem("SampleSaveOpt")) { - if (ImGui::MenuItem("save raw...")) { + if (ImGui::MenuItem(_("save raw..."))) { doAction(GUI_ACTION_SAMPLE_LIST_SAVE_RAW); } ImGui::EndPopup(); @@ -900,7 +900,7 @@ void FurnaceGUI::drawSampleList(bool asChild) { } popToggleColors(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Toggle folders/standard view"); + ImGui::SetTooltip(_("Toggle folders/standard view")); } if (!sampleListDir) { ImGui::SameLine(); @@ -908,14 +908,14 @@ void FurnaceGUI::drawSampleList(bool asChild) { doAction(GUI_ACTION_SAMPLE_LIST_MOVE_UP); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Move up"); + ImGui::SetTooltip(_("Move up")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_ARROW_DOWN "##SampleDown")) { doAction(GUI_ACTION_SAMPLE_LIST_MOVE_DOWN); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Move down"); + ImGui::SetTooltip(_("Move down")); } } else { ImGui::SameLine(); @@ -926,7 +926,7 @@ void FurnaceGUI::drawSampleList(bool asChild) { ImGui::InputText("##FolderName",&folderString); ImGui::SameLine(); ImGui::BeginDisabled(folderString.empty()); - if (ImGui::Button("Create")) { + if (ImGui::Button(_("Create"))) { e->lockEngine([this]() { e->song.sampleDir.push_back(DivAssetDir(folderString)); }); @@ -936,7 +936,7 @@ void FurnaceGUI::drawSampleList(bool asChild) { ImGui::EndPopup(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("New folder"); + ImGui::SetTooltip(_("New folder")); } } ImGui::SameLine(); @@ -944,7 +944,7 @@ void FurnaceGUI::drawSampleList(bool asChild) { doAction(GUI_ACTION_SAMPLE_LIST_PREVIEW); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Preview (right click to stop)"); + ImGui::SetTooltip(_("Preview (right click to stop)")); } if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) { doAction(GUI_ACTION_SAMPLE_LIST_STOP_PREVIEW); @@ -956,7 +956,7 @@ void FurnaceGUI::drawSampleList(bool asChild) { } popDestColor(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Delete"); + ImGui::SetTooltip(_("Delete")); } ImGui::Separator(); if (ImGui::BeginTable("SampleListScroll",1,ImGuiTableFlags_ScrollY)) { @@ -982,16 +982,16 @@ void FurnaceGUI::actualWaveList() { int dirIndex=0; int dirToDelete=-1; for (DivAssetDir& i: e->song.waveDir) { - String nodeName=fmt::sprintf("%s %s##_ADW%d",i.name.empty()?ICON_FA_FOLDER_O:ICON_FA_FOLDER,i.name.empty()?"":i.name,i.name.empty()?-1:dirIndex); + String nodeName=fmt::sprintf("%s %s##_ADW%d",i.name.empty()?ICON_FA_FOLDER_O:ICON_FA_FOLDER,i.name.empty()?_(""):i.name,i.name.empty()?-1:dirIndex); String popupID=fmt::sprintf("DirRightMenu%d",dirIndex); bool treeNode=ImGui::TreeNodeEx(nodeName.c_str(),ImGuiTreeNodeFlags_SpanAvailWidth|(i.name.empty()?ImGuiTreeNodeFlags_DefaultOpen:0)); DRAG_SOURCE(dirIndex,-1,"FUR_WAVEDIR"); DRAG_TARGET(dirIndex,-1,e->song.waveDir,"FUR_WAVEDIR"); if (ImGui::BeginPopupContextItem(popupID.c_str())) { - if (ImGui::MenuItem("rename...")) { + if (ImGui::MenuItem(_("rename..."))) { editStr(&i.name); } - if (ImGui::MenuItem("delete")) { + if (ImGui::MenuItem(_("delete"))) { dirToDelete=dirIndex; } ImGui::EndPopup(); @@ -1028,16 +1028,16 @@ void FurnaceGUI::actualSampleList() { int dirIndex=0; int dirToDelete=-1; for (DivAssetDir& i: e->song.sampleDir) { - String nodeName=fmt::sprintf("%s %s##_ADS%d",i.name.empty()?ICON_FA_FOLDER_O:ICON_FA_FOLDER,i.name.empty()?"":i.name,i.name.empty()?-1:dirIndex); + String nodeName=fmt::sprintf("%s %s##_ADS%d",i.name.empty()?ICON_FA_FOLDER_O:ICON_FA_FOLDER,i.name.empty()?_(""):i.name,i.name.empty()?-1:dirIndex); String popupID=fmt::sprintf("DirRightMenu%d",dirIndex); bool treeNode=ImGui::TreeNodeEx(nodeName.c_str(),ImGuiTreeNodeFlags_SpanAvailWidth|(i.name.empty()?ImGuiTreeNodeFlags_DefaultOpen:0)); DRAG_SOURCE(dirIndex,-1,"FUR_SDIR"); DRAG_TARGET(dirIndex,-1,e->song.sampleDir,"FUR_SDIR"); if (ImGui::BeginPopupContextItem(popupID.c_str())) { - if (ImGui::MenuItem("rename...")) { + if (ImGui::MenuItem(_("rename..."))) { editStr(&i.name); } - if (ImGui::MenuItem("delete")) { + if (ImGui::MenuItem(_("delete"))) { dirToDelete=dirIndex; } ImGui::EndPopup(); diff --git a/src/gui/doAction.cpp b/src/gui/doAction.cpp index 2820c7355..985fc06ca 100644 --- a/src/gui/doAction.cpp +++ b/src/gui/doAction.cpp @@ -35,21 +35,21 @@ void FurnaceGUI::doAction(int what) { switch (what) { case GUI_ACTION_NEW: if (modified) { - showWarning("Unsaved changes! Save changes before creating a new song?",GUI_WARN_NEW); + showWarning(_("Unsaved changes! Save changes before creating a new song?"),GUI_WARN_NEW); } else { displayNew=true; } break; case GUI_ACTION_OPEN: if (modified) { - showWarning("Unsaved changes! Save changes before opening another file?",GUI_WARN_OPEN); + showWarning(_("Unsaved changes! Save changes before opening another file?"),GUI_WARN_OPEN); } else { openFileDialog(GUI_FILE_OPEN); } break; case GUI_ACTION_OPEN_BACKUP: if (modified) { - showWarning("Unsaved changes! Save changes before opening backup?",GUI_WARN_OPEN_BACKUP); + showWarning(_("Unsaved changes! Save changes before opening backup?"),GUI_WARN_OPEN_BACKUP); } else { openFileDialog(GUI_FILE_OPEN_BACKUP); } @@ -59,7 +59,7 @@ void FurnaceGUI::doAction(int what) { openFileDialog(GUI_FILE_SAVE); } else { if (save(curFileName,e->song.isDMF?e->song.version:0)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); } } break; @@ -186,7 +186,7 @@ void FurnaceGUI::doAction(int what) { msg.sysExLen=15; memcpy(msg.sysExData.get(),avRequest,15); if (!e->sendMidiMessage(msg)) { - showError("Error while sending request (MIDI output not configured?)"); + showError(_("Error while sending request (MIDI output not configured?)")); } break; } @@ -194,7 +194,7 @@ void FurnaceGUI::doAction(int what) { e->syncReset(); break; case GUI_ACTION_CLEAR: - showWarning("Select an option: (cannot be undone!)",GUI_WARN_CLEAR); + showWarning(_("Select an option: (cannot be undone!)"),GUI_WARN_CLEAR); break; case GUI_ACTION_COMMAND_PALETTE: displayPalette=true; @@ -688,7 +688,7 @@ void FurnaceGUI::doAction(int what) { } curIns=e->addInstrument(cursor.xCoarse); if (curIns==-1) { - showError("too many instruments!"); + showError(_("too many instruments!")); } else { if (settings.blankIns) { e->song.ins[curIns]->fm.fb=0; @@ -717,7 +717,7 @@ void FurnaceGUI::doAction(int what) { int prevIns=curIns; curIns=e->addInstrument(cursor.xCoarse); if (curIns==-1) { - showError("too many instruments!"); + showError(_("too many instruments!")); } else { (*e->song.ins[curIns])=(*e->song.ins[prevIns]); wantScrollListIns=true; @@ -822,7 +822,7 @@ void FurnaceGUI::doAction(int what) { curWave=e->addWave(); if (curWave==-1) { - showError("too many wavetables!"); + showError(_("too many wavetables!")); } else { wantScrollListWave=true; e->song.wave[curWave]->len=finalWidth; @@ -840,7 +840,7 @@ void FurnaceGUI::doAction(int what) { int prevWave=curWave; curWave=e->addWave(); if (curWave==-1) { - showError("too many wavetables!"); + showError(_("too many wavetables!")); } else { (*e->song.wave[curWave])=(*e->song.wave[prevWave]); wantScrollListWave=true; @@ -906,7 +906,7 @@ void FurnaceGUI::doAction(int what) { case GUI_ACTION_SAMPLE_LIST_ADD: curSample=e->addSample(); if (curSample==-1) { - showError("too many samples!"); + showError(_("too many samples!")); } else { wantScrollListSample=true; MARK_MODIFIED; @@ -918,7 +918,7 @@ void FurnaceGUI::doAction(int what) { DivSample* prevSample=e->getSample(curSample); curSample=e->addSample(); if (curSample==-1) { - showError("too many samples!"); + showError(_("too many samples!")); } else { e->lockEngine([this,prevSample]() { DivSample* sample=e->getSample(curSample); @@ -1121,7 +1121,7 @@ void FurnaceGUI::doAction(int what) { e->lockEngine([this,sample,pos]() { if (!sample->insert(pos,sampleClipboardLen)) { - showError("couldn't paste! make sure your sample is 8 or 16-bit."); + showError(_("couldn't paste! make sure your sample is 8 or 16-bit.")); } else { if (sample->depth==DIV_SAMPLE_DEPTH_8BIT) { for (size_t i=0; isong.sample[curSample]; curIns=e->addInstrument(cursor.xCoarse); if (curIns==-1) { - showError("too many instruments!"); + showError(_("too many instruments!")); } else { e->song.ins[curIns]->type=insType; e->song.ins[curIns]->name=sample->name; @@ -1625,13 +1625,13 @@ void FurnaceGUI::doAction(int what) { DivSample* sample=e->song.sample[curSample]; SAMPLE_OP_BEGIN; if (end-start<1) { - showError("select at least one sample!"); + showError(_("select at least one sample!")); } else if (end-start>256) { - showError("maximum size is 256 samples!"); + showError(_("maximum size is 256 samples!")); } else { curWave=e->addWave(); if (curWave==-1) { - showError("too many wavetables!"); + showError(_("too many wavetables!")); } else { DivWavetable* wave=e->song.wave[curWave]; wave->min=0; diff --git a/src/gui/editControls.cpp b/src/gui/editControls.cpp index 649aeb927..3edb63608 100644 --- a/src/gui/editControls.cpp +++ b/src/gui/editControls.cpp @@ -44,44 +44,44 @@ const float mobileButtonDistances[4][8]={ const char* mobileButtonLabels[32]={ // page 1 - "cut", - "copy", - "paste", - "delete", - "select\nall", - "piano", - "undo", - "redo", + _N("cut"), + _N("copy"), + _N("paste"), + _N("delete"), + _N("select\nall"), + _N("piano"), + _N("undo"), + _N("redo"), // page 2 - "paste\nmix", - "paste\nmix bg", - "paste\nins", - "paste\nins bg", - "paste\nflood", - "paste\noverflow", - "transpose\nnotes", - "transpose\nvalues", + _N("paste\nmix"), + _N("paste\nmix bg"), + _N("paste\nins"), + _N("paste\nins bg"), + _N("paste\nflood"), + _N("paste\noverflow"), + _N("transpose\nnotes"), + _N("transpose\nvalues"), // page 3 - "change\nins", - "find/\nreplace", - "collapse", - "expand", - "flip", - "invert", - "interpolate", - "scale", + _N("change\nins"), + _N("find/\nreplace"), + _N("collapse"), + _N("expand"), + _N("flip"), + _N("invert"), + _N("interpolate"), + _N("scale"), // page 4 - "fade", - "randomize", - "opmask", - "scroll\nmode", - "input\nlatch", - "set\nlatch", - "clear\nlatch", - "clear" + _N("fade"), + _N("randomize"), + _N("opmask"), + _N("scroll\nmode"), + _N("input\nlatch"), + _N("set\nlatch"), + _N("clear\nlatch"), + _N("clear") }; const int mobileButtonActions[32]={ @@ -293,7 +293,7 @@ void FurnaceGUI::drawMobileControls() { (mobileEditButtonPos.x*canvasW)+cos(buttonDir*2.0*M_PI)*buttonDist*buttonMirrorX*anim, (mobileEditButtonPos.y*canvasH)+sin(buttonDir*2.0*M_PI)*buttonDist*buttonMirrorY*anim )); - if (ImGui::Button(mobileButtonLabels[i+mobileEditPage*8],mobileEditButtonSize)) { + if (ImGui::Button(_(mobileButtonLabels[i+mobileEditPage*8]),mobileEditButtonSize)) { if (mobileButtonActions[i+mobileEditPage*8]) { doAction(mobileButtonActions[i+mobileEditPage*8]); } @@ -418,44 +418,44 @@ void FurnaceGUI::drawMobileControls() { ImVec2 buttonSize=ImGui::GetContentRegionAvail(); buttonSize.y=30.0f*dpiScale; - if (ImGui::Button("Pattern",buttonSize)) { + if (ImGui::Button(_("Pattern"),buttonSize)) { mobScene=GUI_SCENE_PATTERN; } ImGui::TableNextColumn(); - if (ImGui::Button("Orders",buttonSize)) { + if (ImGui::Button(_("Orders"),buttonSize)) { mobScene=GUI_SCENE_ORDERS; } ImGui::TableNextColumn(); - if (ImGui::Button("Ins",buttonSize)) { + if (ImGui::Button(_("Ins"),buttonSize)) { mobScene=GUI_SCENE_INSTRUMENT; } ImGui::TableNextColumn(); - if (ImGui::Button("Wave",buttonSize)) { + if (ImGui::Button(_("Wave"),buttonSize)) { mobScene=GUI_SCENE_WAVETABLE; } ImGui::TableNextColumn(); - if (ImGui::Button("Sample",buttonSize)) { + if (ImGui::Button(_("Sample"),buttonSize)) { mobScene=GUI_SCENE_SAMPLE; } ImGui::TableNextRow(); ImGui::TableNextColumn(); - if (ImGui::Button("Song",buttonSize)) { + if (ImGui::Button(_("Song"),buttonSize)) { mobScene=GUI_SCENE_SONG; } ImGui::TableNextColumn(); - if (ImGui::Button("Channels",buttonSize)) { + if (ImGui::Button(_("Channels"),buttonSize)) { mobScene=GUI_SCENE_CHANNELS; } ImGui::TableNextColumn(); - if (ImGui::Button("Chips",buttonSize)) { + if (ImGui::Button(_("Chips"),buttonSize)) { mobScene=GUI_SCENE_CHIPS; } ImGui::TableNextColumn(); - if (ImGui::Button("Mixer",buttonSize)) { + if (ImGui::Button(_("Mixer"),buttonSize)) { mobScene=GUI_SCENE_MIXER; } ImGui::TableNextColumn(); - if (ImGui::Button("Other",buttonSize)) { + if (ImGui::Button(_("Other"),buttonSize)) { mobScene=GUI_SCENE_OTHER; } ImGui::EndTable(); @@ -484,36 +484,36 @@ void FurnaceGUI::drawMobileControls() { } break; case GUI_SCENE_SONG: { - if (ImGui::Button("New")) { + if (ImGui::Button(_("New"))) { mobileMenuOpen=false; //doAction(GUI_ACTION_NEW); if (modified) { - showWarning("Unsaved changes! Save changes before creating a new song?",GUI_WARN_NEW); + showWarning(_("Unsaved changes! Save changes before creating a new song?"),GUI_WARN_NEW); } else { displayNew=true; } } ImGui::SameLine(); - if (ImGui::Button("Open")) { + if (ImGui::Button(_("Open"))) { mobileMenuOpen=false; doAction(GUI_ACTION_OPEN); } ImGui::SameLine(); - if (ImGui::Button("Save")) { + if (ImGui::Button(_("Save"))) { mobileMenuOpen=false; doAction(GUI_ACTION_SAVE); } ImGui::SameLine(); - if (ImGui::Button("Save as...")) { + if (ImGui::Button(_("Save as..."))) { mobileMenuOpen=false; doAction(GUI_ACTION_SAVE_AS); } - if (ImGui::Button("Export")) { + if (ImGui::Button(_("Export"))) { doAction(GUI_ACTION_EXPORT); } - if (ImGui::Button("Restore Backup")) { + if (ImGui::Button(_("Restore Backup"))) { mobileMenuOpen=false; doAction(GUI_ACTION_OPEN_BACKUP); } @@ -521,15 +521,15 @@ void FurnaceGUI::drawMobileControls() { ImGui::Separator(); if (ImGui::BeginTabBar("MobileSong")) { - if (ImGui::BeginTabItem("Song Info")) { + if (ImGui::BeginTabItem(_("Song Info"))) { drawSongInfo(true); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Subsongs")) { + if (ImGui::BeginTabItem(_("Subsongs"))) { drawSubSongs(true); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Speed")) { + if (ImGui::BeginTabItem(_("Speed"))) { drawSpeed(true); ImGui::EndTabItem(); } @@ -538,85 +538,85 @@ void FurnaceGUI::drawMobileControls() { break; } case GUI_SCENE_CHANNELS: - ImGui::Text("Channels here..."); + ImGui::Text(_("Channels here...")); break; case GUI_SCENE_CHIPS: - ImGui::Text("Chips here..."); + ImGui::Text(_("Chips here...")); break; case GUI_SCENE_MIXER: - ImGui::Text("What the hell..."); + ImGui::Text(_("What the hell...")); break; case GUI_SCENE_OTHER: { - if (ImGui::Button("Osc")) { + if (ImGui::Button(_("Osc"))) { oscOpen=!oscOpen; } ImGui::SameLine(); - if (ImGui::Button("ChanOsc")) { + if (ImGui::Button(_("ChanOsc"))) { chanOscOpen=!chanOscOpen; } ImGui::SameLine(); - if (ImGui::Button("RegView")) { + if (ImGui::Button(_("RegView"))) { regViewOpen=!regViewOpen; } ImGui::SameLine(); - if (ImGui::Button("Stats")) { + if (ImGui::Button(_("Stats"))) { statsOpen=!statsOpen; } ImGui::SameLine(); - if (ImGui::Button("Grooves")) { + if (ImGui::Button(_("Grooves"))) { groovesOpen=!groovesOpen; } - if (ImGui::Button("Compat Flags")) { + if (ImGui::Button(_("Compat Flags"))) { compatFlagsOpen=!compatFlagsOpen; } ImGui::SameLine(); - if (ImGui::Button("XYOsc")) { + if (ImGui::Button(_("XYOsc"))) { xyOscOpen=!xyOscOpen; } ImGui::SameLine(); - if (ImGui::Button("Meter")) { + if (ImGui::Button(_("Meter"))) { volMeterOpen=!volMeterOpen; } ImGui::SameLine(); - if (ImGui::Button("Memory")) { + if (ImGui::Button(_("Memory"))) { memoryOpen=!memoryOpen; } - if (ImGui::Button("CV")) { + if (ImGui::Button(_("CV"))) { cvOpen=!cvOpen; } ImGui::SameLine(); - if (ImGui::Button("Presets")) { + if (ImGui::Button(_("Presets"))) { userPresetsOpen=!userPresetsOpen; } ImGui::SameLine(); - if (ImGui::Button("PatManager")) { + if (ImGui::Button(_("PatManager"))) { patManagerOpen=!patManagerOpen; } ImGui::Separator(); - ImGui::Button("Panic"); + ImGui::Button(_("Panic")); ImGui::SameLine(); - if (ImGui::Button("Settings")) { + if (ImGui::Button(_("Settings"))) { mobileMenuOpen=false; settingsOpen=true; } ImGui::SameLine(); - if (ImGui::Button("Log")) { + if (ImGui::Button(_("Log"))) { logOpen=!logOpen; } ImGui::SameLine(); - if (ImGui::Button("Debug")) { + if (ImGui::Button(_("Debug"))) { debugOpen=!debugOpen; } ImGui::SameLine(); - if (ImGui::Button("About")) { + if (ImGui::Button(_("About"))) { mobileMenuOpen=false; mobileMenuPos=0.0f; aboutOpen=true; } - if (ImGui::Button("Switch to Desktop Mode")) { + if (ImGui::Button(_("Switch to Desktop Mode"))) { toggleMobileUI(!mobileUI); } @@ -626,16 +626,16 @@ void FurnaceGUI::drawMobileControls() { } if (numAmiga) { - ImGui::Text( + ImGui::Text(_( "this is NOT ROM export! only use for making sure the\n" "Furnace Amiga emulator is working properly by\n" "comparing it with real Amiga output." - ); + )); ImGui::AlignTextToFramePadding(); - ImGui::Text("Directory"); + ImGui::Text(_("Directory")); ImGui::SameLine(); ImGui::InputText("##AVDPath",&workingDirROMExport); - if (ImGui::Button("Bake Data")) { + if (ImGui::Button(_("Bake Data"))) { std::vector out=e->buildROM(DIV_ROM_AMIGA_VALIDATION); if (workingDirROMExport.size()>0) { if (workingDirROMExport[workingDirROMExport.size()-1]!=DIR_SEPARATOR) workingDirROMExport+=DIR_SEPARATOR_STR; @@ -650,7 +650,7 @@ void FurnaceGUI::drawMobileControls() { i.data->finish(); delete i.data; } - showError(fmt::sprintf("Done! Baked %d files.",(int)out.size())); + showError(fmt::sprintf(_("Done! Baked %d files."),(int)out.size())); } } @@ -678,7 +678,7 @@ void FurnaceGUI::drawEditControls() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Octave"); + ImGui::Text(_("Octave")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputInt("##Octave",&curOctave,1,1)) { @@ -695,7 +695,7 @@ void FurnaceGUI::drawEditControls() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - if (ImGui::SmallButton(changeCoarse?"Coarse Step":"Edit Step")) { + if (ImGui::SmallButton(changeCoarse?_("Coarse Step"):_("Edit Step"))) { changeCoarse=!changeCoarse; } ImGui::TableNextColumn(); @@ -728,7 +728,7 @@ void FurnaceGUI::drawEditControls() { play(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Play"); + ImGui::SetTooltip(_("Play")); } popToggleColors(); ImGui::SameLine(); @@ -736,25 +736,25 @@ void FurnaceGUI::drawEditControls() { stop(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Stop"); + ImGui::SetTooltip(_("Stop")); } ImGui::SameLine(); - ImGui::Checkbox("Edit",&edit); + ImGui::Checkbox(_("Edit"),&edit); ImGui::SameLine(); bool metro=e->getMetronome(); - if (ImGui::Checkbox("Metronome",&metro)) { + if (ImGui::Checkbox(_("Metronome"),&metro)) { e->setMetronome(metro); } ImGui::AlignTextToFramePadding(); - ImGui::Text("Follow"); + ImGui::Text(_("Follow")); ImGui::SameLine(); - unimportant(ImGui::Checkbox("Orders",&followOrders)); + unimportant(ImGui::Checkbox(_("Orders"),&followOrders)); ImGui::SameLine(); - unimportant(ImGui::Checkbox("Pattern",&followPattern)); + unimportant(ImGui::Checkbox(_("Pattern"),&followPattern)); bool repeatPattern=e->getRepeatPattern(); - if (ImGui::Checkbox("Repeat pattern",&repeatPattern)) { + if (ImGui::Checkbox(_("Repeat pattern"),&repeatPattern)) { e->setRepeatPattern(repeatPattern); } ImGui::SameLine(); @@ -763,17 +763,17 @@ void FurnaceGUI::drawEditControls() { pendingStepUpdate=1; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Step one row"); + ImGui::SetTooltip(_("Step one row")); } ImGui::SameLine(); pushToggleColors(noteInputPoly); - if (ImGui::Button(noteInputPoly?("Poly##PolyInput"):("Mono##PolyInput"))) { + if (ImGui::Button(noteInputPoly?(_("Poly##PolyInput")):(_("Mono##PolyInput")))) { noteInputPoly=!noteInputPoly; e->setAutoNotePoly(noteInputPoly); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Polyphony"); + ImGui::SetTooltip(_("Polyphony")); } popToggleColors(); } @@ -786,7 +786,7 @@ void FurnaceGUI::drawEditControls() { stop(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Stop"); + ImGui::SetTooltip(_("Stop")); } ImGui::SameLine(); pushToggleColors(e->isPlaying()); @@ -794,7 +794,7 @@ void FurnaceGUI::drawEditControls() { play(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Play"); + ImGui::SetTooltip(_("Play")); } popToggleColors(); ImGui::SameLine(); @@ -803,7 +803,7 @@ void FurnaceGUI::drawEditControls() { pendingStepUpdate=1; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Step one row"); + ImGui::SetTooltip(_("Step one row")); } ImGui::SameLine(); @@ -813,7 +813,7 @@ void FurnaceGUI::drawEditControls() { e->setRepeatPattern(!repeatPattern); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Repeat pattern"); + ImGui::SetTooltip(_("Repeat pattern")); } popToggleColors(); @@ -823,7 +823,7 @@ void FurnaceGUI::drawEditControls() { edit=!edit; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Edit"); + ImGui::SetTooltip(_("Edit")); } popToggleColors(); @@ -834,12 +834,12 @@ void FurnaceGUI::drawEditControls() { e->setMetronome(!metro); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Metronome"); + ImGui::SetTooltip(_("Metronome")); } popToggleColors(); ImGui::SameLine(); - ImGui::Text("Octave"); + ImGui::Text(_("Octave")); ImGui::SameLine(); ImGui::SetNextItemWidth(96.0f*dpiScale); if (ImGui::InputInt("##Octave",&curOctave,1,1)) { @@ -854,7 +854,7 @@ void FurnaceGUI::drawEditControls() { } ImGui::SameLine(); - if (ImGui::SmallButton(changeCoarse?"Coarse Step":"Edit Step")) { + if (ImGui::SmallButton(changeCoarse?_("Coarse Step"):_("Edit Step"))) { changeCoarse=!changeCoarse; } ImGui::SameLine(); @@ -880,20 +880,20 @@ void FurnaceGUI::drawEditControls() { } ImGui::SameLine(); - ImGui::Text("Follow"); + ImGui::Text(_("Follow")); ImGui::SameLine(); - unimportant(ImGui::Checkbox("Orders",&followOrders)); + unimportant(ImGui::Checkbox(_("Orders"),&followOrders)); ImGui::SameLine(); - unimportant(ImGui::Checkbox("Pattern",&followPattern)); + unimportant(ImGui::Checkbox(_("Pattern"),&followPattern)); ImGui::SameLine(); pushToggleColors(noteInputPoly); - if (ImGui::Button(noteInputPoly?("Poly##PolyInput"):("Mono##PolyInput"))) { + if (ImGui::Button(noteInputPoly?_("Poly##PolyInput"):_("Mono##PolyInput"))) { noteInputPoly=!noteInputPoly; e->setAutoNotePoly(noteInputPoly); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Polyphony"); + ImGui::SetTooltip(_("Polyphony")); } popToggleColors(); } @@ -908,21 +908,21 @@ void FurnaceGUI::drawEditControls() { play(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Play"); + ImGui::SetTooltip(_("Play")); } popToggleColors(); if (ImGui::Button(ICON_FA_STOP "##Stop",buttonSize)) { stop(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Stop"); + ImGui::SetTooltip(_("Stop")); } if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne",buttonSize)) { e->stepOne(cursor.y); pendingStepUpdate=1; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Step one row"); + ImGui::SetTooltip(_("Step one row")); } bool repeatPattern=e->getRepeatPattern(); @@ -931,7 +931,7 @@ void FurnaceGUI::drawEditControls() { e->setRepeatPattern(!repeatPattern); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Repeat pattern"); + ImGui::SetTooltip(_("Repeat pattern")); } popToggleColors(); @@ -940,7 +940,7 @@ void FurnaceGUI::drawEditControls() { edit=!edit; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Edit"); + ImGui::SetTooltip(_("Edit")); } popToggleColors(); @@ -950,13 +950,13 @@ void FurnaceGUI::drawEditControls() { e->setMetronome(!metro); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Metronome"); + ImGui::SetTooltip(_("Metronome")); } popToggleColors(); - ImGui::Text("Oct."); + ImGui::Text(_("Oct.")); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Octave"); + ImGui::SetTooltip(_("Octave")); } float avail=ImGui::GetContentRegionAvail().x; ImGui::SetNextItemWidth(avail); @@ -971,7 +971,7 @@ void FurnaceGUI::drawEditControls() { } } - if (ImGui::SmallButton(changeCoarse?"Coarse":"Step")) { + if (ImGui::SmallButton(changeCoarse?_("Coarse"):_("Step"))) { changeCoarse=!changeCoarse; } ImGui::SetNextItemWidth(avail); @@ -995,34 +995,34 @@ void FurnaceGUI::drawEditControls() { } } - ImGui::Text("Foll."); + ImGui::Text(_("Foll.")); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Follow"); + ImGui::SetTooltip(_("Follow")); } pushToggleColors(followOrders); - if (ImGui::Button("Ord##FollowOrders",buttonSize)) { handleUnimportant + if (ImGui::Button(_("Ord##FollowOrders"),buttonSize)) { handleUnimportant followOrders=!followOrders; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Orders"); + ImGui::SetTooltip(_("Orders")); } popToggleColors(); pushToggleColors(followPattern); - if (ImGui::Button("Pat##FollowPattern",buttonSize)) { handleUnimportant + if (ImGui::Button(_("Pat##FollowPattern"),buttonSize)) { handleUnimportant followPattern=!followPattern; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Pattern"); + ImGui::SetTooltip(_("Pattern")); } popToggleColors(); pushToggleColors(noteInputPoly); - if (ImGui::Button(noteInputPoly?("Poly##PolyInput"):("Mono##PolyInput"))) { + if (ImGui::Button(noteInputPoly?_("Poly##PolyInput"):_("Mono##PolyInput"))) { noteInputPoly=!noteInputPoly; e->setAutoNotePoly(noteInputPoly); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Polyphony"); + ImGui::SetTooltip(_("Polyphony")); } popToggleColors(); } @@ -1037,7 +1037,7 @@ void FurnaceGUI::drawEditControls() { stop(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Stop"); + ImGui::SetTooltip(_("Stop")); } popToggleColors(); } else { @@ -1045,7 +1045,7 @@ void FurnaceGUI::drawEditControls() { play(oldRow); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Play"); + ImGui::SetTooltip(_("Play")); } } ImGui::SameLine(); @@ -1054,7 +1054,7 @@ void FurnaceGUI::drawEditControls() { play(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Play from the beginning of this pattern"); + ImGui::SetTooltip(_("Play from the beginning of this pattern")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_STEP_FORWARD "##PlayRepeat")) { @@ -1062,7 +1062,7 @@ void FurnaceGUI::drawEditControls() { play(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Repeat from the beginning of this pattern"); + ImGui::SetTooltip(_("Repeat from the beginning of this pattern")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne")) { @@ -1070,7 +1070,7 @@ void FurnaceGUI::drawEditControls() { pendingStepUpdate=1; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Step one row"); + ImGui::SetTooltip(_("Step one row")); } ImGui::SameLine(); @@ -1079,7 +1079,7 @@ void FurnaceGUI::drawEditControls() { edit=!edit; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Edit"); + ImGui::SetTooltip(_("Edit")); } popToggleColors(); @@ -1090,7 +1090,7 @@ void FurnaceGUI::drawEditControls() { e->setMetronome(!metro); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Metronome"); + ImGui::SetTooltip(_("Metronome")); } popToggleColors(); @@ -1101,18 +1101,18 @@ void FurnaceGUI::drawEditControls() { e->setRepeatPattern(!repeatPattern); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Repeat pattern"); + ImGui::SetTooltip(_("Repeat pattern")); } popToggleColors(); ImGui::SameLine(); pushToggleColors(noteInputPoly); - if (ImGui::Button(noteInputPoly?("Poly##PolyInput"):("Mono##PolyInput"))) { + if (ImGui::Button(noteInputPoly?_("Poly##PolyInput"):_("Mono##PolyInput"))) { noteInputPoly=!noteInputPoly; e->setAutoNotePoly(noteInputPoly); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Polyphony"); + ImGui::SetTooltip(_("Polyphony")); } popToggleColors(); } @@ -1122,7 +1122,7 @@ void FurnaceGUI::drawEditControls() { if (ImGui::Begin("Edit Controls",&editControlsOpen,globalWinFlags)) { ImGui::Columns(2); ImGui::AlignTextToFramePadding(); - ImGui::Text("Octave"); + ImGui::Text(_("Octave")); ImGui::SameLine(); float cursor=ImGui::GetCursorPosX(); float avail=ImGui::GetContentRegionAvail().x; @@ -1139,7 +1139,7 @@ void FurnaceGUI::drawEditControls() { } ImGui::AlignTextToFramePadding(); - if (ImGui::SmallButton(changeCoarse?"Coarse":"Step")) { + if (ImGui::SmallButton(changeCoarse?_("Coarse"):_("Step"))) { changeCoarse=!changeCoarse; } ImGui::SameLine(); @@ -1166,8 +1166,8 @@ void FurnaceGUI::drawEditControls() { } ImGui::NextColumn(); - unimportant(ImGui::Checkbox("Follow orders",&followOrders)); - unimportant(ImGui::Checkbox("Follow pattern",&followPattern)); + unimportant(ImGui::Checkbox(_("Follow orders"),&followOrders)); + unimportant(ImGui::Checkbox(_("Follow pattern"),&followPattern)); } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS; ImGui::End(); diff --git a/src/gui/editing.cpp b/src/gui/editing.cpp index dad5f3efb..1a4449098 100644 --- a/src/gui/editing.cpp +++ b/src/gui/editing.cpp @@ -197,7 +197,7 @@ void FurnaceGUI::makeUndo(ActionType action, UndoRegion region) { auto it=oldPatMap.find(id); if (it==oldPatMap.end()) { - logW("no data in oldPatMap for channel %d!",i); + logW(_("no data in oldPatMap for channel %d!"),i); continue; } else { op=it->second; @@ -661,7 +661,7 @@ void FurnaceGUI::doPasteFurnace(PasteMode mode, int arg, bool readClipboard, Str } if (invalidData) { - logW("invalid clipboard data! failed at line %d char %d",i,charPos); + logW(_("invalid clipboard data! failed at line %d char %d"),i,charPos); logW("%s",line.c_str()); break; } @@ -1200,7 +1200,7 @@ void FurnaceGUI::doPasteMPT(PasteMode mode, int arg, bool readClipboard, String if (invalidData) { - logW("invalid clipboard data! failed at line %d char %d",i,charPos); + logW(_("invalid clipboard data! failed at line %d char %d"),i,charPos); logW("%s",line.c_str()); break; } @@ -1562,7 +1562,7 @@ void FurnaceGUI::doFlip() { void FurnaceGUI::doCollapse(int divider, const SelectionPoint& sStart, const SelectionPoint& sEnd) { if (divider<2) return; if (e->curSubSong->patLencurSubSong->patLencurSubSong->patLen>(256/multiplier)) { - showError("can't expand any further!"); + showError(_("can't expand any further!")); return; } finishSelection(); @@ -1833,7 +1833,7 @@ void FurnaceGUI::doDrag() { // copy and clear String c=doCopy(true,false,dragStart,dragEnd); - logV("copy: %s",c); + logV(_("copy: %s"),c); // replace cursor=selStart; @@ -1848,7 +1848,7 @@ void FurnaceGUI::moveSelected(int x, int y) { // copy and clear String c=doCopy(true,false,selStart,selEnd); - logV("copy: %s",c); + logV(_("copy: %s"),c); // replace selStart.xCoarse+=x; diff --git a/src/gui/effectList.cpp b/src/gui/effectList.cpp index 7f8ecd40c..eac35f0c0 100644 --- a/src/gui/effectList.cpp +++ b/src/gui/effectList.cpp @@ -15,23 +15,23 @@ void FurnaceGUI::drawEffectList() { float availB=ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing(); if (availB>0) { ImGui::PushTextWrapPos(availB); - ImGui::TextWrapped("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse])); + ImGui::TextWrapped(_("Chip at cursor: %s"),e->getSystemName(e->sysOfChan[cursor.xCoarse])); ImGui::PopTextWrapPos(); } - effectSearch.Draw("Search"); + effectSearch.Draw(_("Search")); ImGui::SameLine(); ImGui::Button(ICON_FA_BARS "##SortEffects"); if (ImGui::BeginPopupContextItem("effectSort",ImGuiPopupFlags_MouseButtonLeft)) { - ImGui::Text("Effect types to show:"); + ImGui::Text(_("Effect types to show:")); for (int i=1; i<10; i++) { ImGui::PushStyleColor(ImGuiCol_Text,uiColors[i+GUI_COLOR_PATTERN_EFFECT_INVALID]); - ImGui::Checkbox(fxColorsNames[i],&effectsShow[i]); + ImGui::Checkbox(_(fxColorsNames[i]),&effectsShow[i]); ImGui::PopStyleColor(); } - if (ImGui::Button("All")) memset(effectsShow,1,sizeof(bool)*10); + if (ImGui::Button(_("All"))) memset(effectsShow,1,sizeof(bool)*10); ImGui::SameLine(); - if (ImGui::Button("None")) memset(effectsShow,0,sizeof(bool)*10); + if (ImGui::Button(_("None"))) memset(effectsShow,0,sizeof(bool)*10); ImGui::EndPopup(); } @@ -42,9 +42,9 @@ void FurnaceGUI::drawEffectList() { ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("Name"); + ImGui::Text(_("Name")); ImGui::TableNextColumn(); - ImGui::Text("Description"); + ImGui::Text(_("Description")); const char* prevName=NULL; for (int i=0; i<256; i++) { @@ -81,7 +81,7 @@ void FurnaceGUI::drawEffectList() { if (strlen(name)>6) { ImGui::TextWrapped("%s",&name[6]); } else { - ImGui::Text("ERROR"); + ImGui::Text(_("ERROR")); } } } diff --git a/src/gui/exportOptions.cpp b/src/gui/exportOptions.cpp index 47747465b..47710d327 100644 --- a/src/gui/exportOptions.cpp +++ b/src/gui/exportOptions.cpp @@ -26,68 +26,68 @@ void FurnaceGUI::drawExportAudio(bool onWindow) { exitDisabledTimer=1; - ImGui::Text("Export type:"); + ImGui::Text(_("Export type:")); ImGui::Indent(); - if (ImGui::RadioButton("one file",audioExportOptions.mode==DIV_EXPORT_MODE_ONE)) { + if (ImGui::RadioButton(_("one file"),audioExportOptions.mode==DIV_EXPORT_MODE_ONE)) { audioExportOptions.mode=DIV_EXPORT_MODE_ONE; } - if (ImGui::RadioButton("multiple files (one per chip)",audioExportOptions.mode==DIV_EXPORT_MODE_MANY_SYS)) { + if (ImGui::RadioButton(_("multiple files (one per chip)"),audioExportOptions.mode==DIV_EXPORT_MODE_MANY_SYS)) { audioExportOptions.mode=DIV_EXPORT_MODE_MANY_SYS; } - if (ImGui::RadioButton("multiple files (one per channel)",audioExportOptions.mode==DIV_EXPORT_MODE_MANY_CHAN)) { + if (ImGui::RadioButton(_("multiple files (one per channel)"),audioExportOptions.mode==DIV_EXPORT_MODE_MANY_CHAN)) { audioExportOptions.mode=DIV_EXPORT_MODE_MANY_CHAN; } ImGui::Unindent(); if (audioExportOptions.mode!=DIV_EXPORT_MODE_MANY_SYS) { - ImGui::Text("Bit depth:"); + ImGui::Text(_("Bit depth:")); ImGui::Indent(); - if (ImGui::RadioButton("16-bit integer",audioExportOptions.format==DIV_EXPORT_FORMAT_S16)) { + if (ImGui::RadioButton(_("16-bit integer"),audioExportOptions.format==DIV_EXPORT_FORMAT_S16)) { audioExportOptions.format=DIV_EXPORT_FORMAT_S16; } - if (ImGui::RadioButton("32-bit float",audioExportOptions.format==DIV_EXPORT_FORMAT_F32)) { + if (ImGui::RadioButton(_("32-bit float"),audioExportOptions.format==DIV_EXPORT_FORMAT_F32)) { audioExportOptions.format=DIV_EXPORT_FORMAT_F32; } ImGui::Unindent(); } - if (ImGui::InputInt("Sample rate",&audioExportOptions.sampleRate,100,10000)) { + if (ImGui::InputInt(_("Sample rate"),&audioExportOptions.sampleRate,100,10000)) { if (audioExportOptions.sampleRate<8000) audioExportOptions.sampleRate=8000; if (audioExportOptions.sampleRate>384000) audioExportOptions.sampleRate=384000; } if (audioExportOptions.mode!=DIV_EXPORT_MODE_MANY_SYS) { - if (ImGui::InputInt("Channels in file",&audioExportOptions.chans,1,1)) { + if (ImGui::InputInt(_("Channels in file"),&audioExportOptions.chans,1,1)) { if (audioExportOptions.chans<1) audioExportOptions.chans=1; if (audioExportOptions.chans>16) audioExportOptions.chans=16; } } - if (ImGui::InputInt("Loops",&audioExportOptions.loops,1,2)) { + if (ImGui::InputInt(_("Loops"),&audioExportOptions.loops,1,2)) { if (audioExportOptions.loops<0) audioExportOptions.loops=0; } - if (ImGui::InputDouble("Fade out (seconds)",&audioExportOptions.fadeOut,1.0,2.0,"%.1f")) { + if (ImGui::InputDouble(_("Fade out (seconds)"),&audioExportOptions.fadeOut,1.0,2.0,"%.1f")) { if (audioExportOptions.fadeOut<0.0) audioExportOptions.fadeOut=0.0; } bool isOneOn=false; if (audioExportOptions.mode==DIV_EXPORT_MODE_MANY_CHAN) { - ImGui::Text("Channels to export:"); + ImGui::Text(_("Channels to export:")); ImGui::SameLine(); - if (ImGui::SmallButton("All")) { + if (ImGui::SmallButton(_("All"))) { for (int i=0; i>8,vgmExportVersion&0xff).c_str())) { + ImGui::Text(_("settings:")); + if (ImGui::BeginCombo(_("format version"),fmt::sprintf("%d.%.2x",vgmExportVersion>>8,vgmExportVersion&0xff).c_str())) { for (int i=0; i<7; i++) { if (ImGui::Selectable(fmt::sprintf("%d.%.2x",vgmVersions[i]>>8,vgmVersions[i]&0xff).c_str(),vgmExportVersion==vgmVersions[i])) { vgmExportVersion=vgmVersions[i]; @@ -143,17 +143,17 @@ void FurnaceGUI::drawExportVGM(bool onWindow) { } ImGui::EndCombo(); } - ImGui::Checkbox("loop",&vgmExportLoop); + ImGui::Checkbox(_("loop"),&vgmExportLoop); if (vgmExportLoop && e->song.loopModality==2) { - ImGui::Text("loop trail:"); + ImGui::Text(_("loop trail:")); ImGui::Indent(); - if (ImGui::RadioButton("auto-detect",vgmExportTrailingTicks==-1)) { + if (ImGui::RadioButton(_("auto-detect"),vgmExportTrailingTicks==-1)) { vgmExportTrailingTicks=-1; } - if (ImGui::RadioButton("add one loop",vgmExportTrailingTicks==-2)) { + if (ImGui::RadioButton(_("add one loop"),vgmExportTrailingTicks==-2)) { vgmExportTrailingTicks=-2; } - if (ImGui::RadioButton("custom",vgmExportTrailingTicks>=0)) { + if (ImGui::RadioButton(_("custom"),vgmExportTrailingTicks>=0)) { vgmExportTrailingTicks=0; } if (vgmExportTrailingTicks>=0) { @@ -164,9 +164,9 @@ void FurnaceGUI::drawExportVGM(bool onWindow) { } ImGui::Unindent(); } - ImGui::Checkbox("add pattern change hints",&vgmExportPatternHints); + ImGui::Checkbox(_("add pattern change hints"),&vgmExportPatternHints); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip( + ImGui::SetTooltip(_( "inserts data blocks on pattern changes.\n" "useful if you are writing a playback routine.\n\n" @@ -178,17 +178,17 @@ void FurnaceGUI::drawExportVGM(bool onWindow) { "- pp: pattern index (one per channel)\n\n" "pattern indexes are ordered as they appear in the song." - ); + )); } - ImGui::Checkbox("direct stream mode",&vgmExportDirectStream); + ImGui::Checkbox(_("direct stream mode"),&vgmExportDirectStream); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip( + ImGui::SetTooltip(_( "required for DualPCM and MSM6258 export.\n\n" "allows for volume/direction changes when playing samples,\n" "at the cost of a massive increase in file size." - ); + )); } - ImGui::Text("chips to export:"); + ImGui::Text(_("chips to export:")); bool hasOneAtLeast=false; for (int i=0; isong.systemLen; i++) { int minVersion=e->minVGMVersion(e->song.system[i]); @@ -197,32 +197,32 @@ void FurnaceGUI::drawExportVGM(bool onWindow) { ImGui::EndDisabled(); if (minVersion>vgmExportVersion) { if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled)) { - ImGui::SetTooltip("this chip is only available in VGM %d.%.2x and higher!",minVersion>>8,minVersion&0xff); + ImGui::SetTooltip(_("this chip is only available in VGM %d.%.2x and higher!"),minVersion>>8,minVersion&0xff); } } else if (minVersion==0) { if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled)) { - ImGui::SetTooltip("this chip is not supported by the VGM format!"); + ImGui::SetTooltip(_("this chip is not supported by the VGM format!")); } } else { if (willExport[i]) hasOneAtLeast=true; } } - ImGui::Text("select the chip you wish to export, but only up to %d of each type.",(vgmExportVersion>=0x151)?2:1); + ImGui::Text(_("select the chip you wish to export, but only up to %d of each type."),(vgmExportVersion>=0x151)?2:1); if (hasOneAtLeast) { if (onWindow) { ImGui::Separator(); - if (ImGui::Button("Cancel",ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); + if (ImGui::Button(_("Cancel"),ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); ImGui::SameLine(); } - if (ImGui::Button("Export",ImVec2(200.0f*dpiScale,0))) { + if (ImGui::Button(_("Export"),ImVec2(200.0f*dpiScale,0))) { openFileDialog(GUI_FILE_EXPORT_VGM); ImGui::CloseCurrentPopup(); } } else { - ImGui::Text("nothing to export"); + ImGui::Text(_("nothing to export")); if (onWindow) { ImGui::Separator(); - if (ImGui::Button("Cancel",ImVec2(400.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); + if (ImGui::Button(_("Cancel"),ImVec2(400.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); } } } @@ -230,20 +230,20 @@ void FurnaceGUI::drawExportVGM(bool onWindow) { void FurnaceGUI::drawExportZSM(bool onWindow) { exitDisabledTimer=1; - ImGui::Text("Commander X16 Zsound Music File"); - if (ImGui::InputInt("Tick Rate (Hz)",&zsmExportTickRate,1,2)) { + ImGui::Text(_("Commander X16 Zsound Music File")); + if (ImGui::InputInt(_("Tick Rate (Hz)"),&zsmExportTickRate,1,2)) { if (zsmExportTickRate<1) zsmExportTickRate=1; if (zsmExportTickRate>44100) zsmExportTickRate=44100; } - ImGui::Checkbox("loop",&zsmExportLoop); + ImGui::Checkbox(_("loop"),&zsmExportLoop); ImGui::SameLine(); - ImGui::Checkbox("optimize size",&zsmExportOptimize); + ImGui::Checkbox(_("optimize size"),&zsmExportOptimize); if (onWindow) { ImGui::Separator(); - if (ImGui::Button("Cancel",ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); + if (ImGui::Button(_("Cancel"),ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); ImGui::SameLine(); } - if (ImGui::Button("Export",ImVec2(200.0f*dpiScale,0))) { + if (ImGui::Button(_("Export"),ImVec2(200.0f*dpiScale,0))) { openFileDialog(GUI_FILE_EXPORT_ZSM); ImGui::CloseCurrentPopup(); } @@ -252,21 +252,21 @@ void FurnaceGUI::drawExportZSM(bool onWindow) { void FurnaceGUI::drawExportAmigaVal(bool onWindow) { exitDisabledTimer=1; - ImGui::Text( + ImGui::Text(_( "this is NOT ROM export! only use for making sure the\n" "Furnace Amiga emulator is working properly by\n" "comparing it with real Amiga output." - ); + )); ImGui::AlignTextToFramePadding(); - ImGui::Text("Directory"); + ImGui::Text(_("Directory")); ImGui::SameLine(); ImGui::InputText("##AVDPath",&workingDirROMExport); if (onWindow) { ImGui::Separator(); - if (ImGui::Button("Cancel",ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); + if (ImGui::Button(_("Cancel"),ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); ImGui::SameLine(); } - if (ImGui::Button("Bake Data",ImVec2(200.0f*dpiScale,0))) { + if (ImGui::Button(_("Bake Data"),ImVec2(200.0f*dpiScale,0))) { std::vector out=e->buildROM(DIV_ROM_AMIGA_VALIDATION); if (workingDirROMExport.size()>0) { if (workingDirROMExport[workingDirROMExport.size()-1]!=DIR_SEPARATOR) workingDirROMExport+=DIR_SEPARATOR_STR; @@ -281,7 +281,7 @@ void FurnaceGUI::drawExportAmigaVal(bool onWindow) { i.data->finish(); delete i.data; } - showError(fmt::sprintf("Done! Baked %d files.",(int)out.size())); + showError(fmt::sprintf(_("Done! Baked %d files."),(int)out.size())); ImGui::CloseCurrentPopup(); } } @@ -290,14 +290,14 @@ void FurnaceGUI::drawExportText(bool onWindow) { exitDisabledTimer=1; ImGui::Text( - "this option exports the song to a text file.\n" + _("this option exports the song to a text file.\n") ); if (onWindow) { ImGui::Separator(); - if (ImGui::Button("Cancel",ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); + if (ImGui::Button(_("Cancel"),ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); ImGui::SameLine(); } - if (ImGui::Button("Export",ImVec2(200.0f*dpiScale,0))) { + if (ImGui::Button(_("Export"),ImVec2(200.0f*dpiScale,0))) { openFileDialog(GUI_FILE_EXPORT_TEXT); ImGui::CloseCurrentPopup(); } @@ -306,19 +306,19 @@ void FurnaceGUI::drawExportText(bool onWindow) { void FurnaceGUI::drawExportCommand(bool onWindow) { exitDisabledTimer=1; - ImGui::Text( + ImGui::Text(_( "this option exports a text or binary file which\n" "contains a dump of the internal command stream\n" "produced when playing the song.\n\n" "technical/development use only!" - ); + )); if (onWindow) { ImGui::Separator(); - if (ImGui::Button("Cancel",ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); + if (ImGui::Button(_("Cancel"),ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); ImGui::SameLine(); } - if (ImGui::Button("Export",ImVec2(200.0f*dpiScale,0))) { + if (ImGui::Button(_("Export"),ImVec2(200.0f*dpiScale,0))) { openFileDialog(GUI_FILE_EXPORT_CMDSTREAM); ImGui::CloseCurrentPopup(); } @@ -327,21 +327,21 @@ void FurnaceGUI::drawExportCommand(bool onWindow) { void FurnaceGUI::drawExportDMF(bool onWindow) { exitDisabledTimer=1; - ImGui::Text( + ImGui::Text(_( "export in DefleMask module format.\n" "only do it if you really, really need to, or are downgrading an existing .dmf." - ); + )); - ImGui::Text("format version:"); - ImGui::RadioButton("1.1.3 and higher",&dmfExportVersion,0); - ImGui::RadioButton("1.0/legacy (0.12)",&dmfExportVersion,1); + ImGui::Text(_("format version:")); + ImGui::RadioButton(_("1.1.3 and higher"),&dmfExportVersion,0); + ImGui::RadioButton(_("1.0/legacy (0.12)"),&dmfExportVersion,1); if (onWindow) { ImGui::Separator(); - if (ImGui::Button("Cancel",ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); + if (ImGui::Button(_("Cancel"),ImVec2(200.0f*dpiScale,0))) ImGui::CloseCurrentPopup(); ImGui::SameLine(); } - if (ImGui::Button("Export",ImVec2(200.0f*dpiScale,0))) { + if (ImGui::Button(_("Export"),ImVec2(200.0f*dpiScale,0))) { if (dmfExportVersion==1) { openFileDialog(GUI_FILE_SAVE_DMF_LEGACY); } else { @@ -354,11 +354,11 @@ void FurnaceGUI::drawExportDMF(bool onWindow) { void FurnaceGUI::drawExport() { if (settings.exportOptionsLayout==1 || curExportType==GUI_EXPORT_NONE) { if (ImGui::BeginTabBar("ExportTypes")) { - if (ImGui::BeginTabItem("Audio")) { + if (ImGui::BeginTabItem(_("Audio"))) { drawExportAudio(true); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("VGM")) { + if (ImGui::BeginTabItem(_("VGM"))) { drawExportVGM(true); ImGui::EndTabItem(); } @@ -367,7 +367,7 @@ void FurnaceGUI::drawExport() { if ((e->song.system[i]==DIV_SYSTEM_VERA) || (e->song.system[i]==DIV_SYSTEM_YM2151)) numZSMCompat++; } if (numZSMCompat>0) { - if (ImGui::BeginTabItem("ZSM")) { + if (ImGui::BeginTabItem(_("ZSM"))) { drawExportZSM(true); ImGui::EndTabItem(); } @@ -377,20 +377,20 @@ void FurnaceGUI::drawExport() { if (e->song.system[i]==DIV_SYSTEM_AMIGA) numAmiga++; } if (numAmiga && settings.iCannotWait) { - if (ImGui::BeginTabItem("Amiga Validation")) { + if (ImGui::BeginTabItem(_("Amiga Validation"))) { drawExportAmigaVal(true); ImGui::EndTabItem(); } } - if (ImGui::BeginTabItem("Text")) { + if (ImGui::BeginTabItem(_("Text"))) { drawExportText(true); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Command Stream")) { + if (ImGui::BeginTabItem(_("Command Stream"))) { drawExportCommand(true); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("DMF")) { + if (ImGui::BeginTabItem(_("DMF"))) { drawExportDMF(true); ImGui::EndTabItem(); } @@ -419,39 +419,39 @@ void FurnaceGUI::drawExport() { drawExportDMF(true); break; default: - ImGui::Text("congratulations! you've unlocked a secret panel."); - if (ImGui::Button("Toggle hidden systems")) { + ImGui::Text(_("congratulations! you've unlocked a secret panel.")); + if (ImGui::Button(_("Toggle hidden systems"))) { settings.hiddenSystems=!settings.hiddenSystems; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Toggle all instrument types")) { + if (ImGui::Button(_("Toggle all instrument types"))) { settings.displayAllInsTypes=!settings.displayAllInsTypes; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Set pitch linearity to Partial")) { + if (ImGui::Button(_("Set pitch linearity to Partial"))) { e->song.linearPitch=1; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Enable multi-threading settings")) { + if (ImGui::Button(_("Enable multi-threading settings"))) { settings.showPool=1; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Set fat to max")) { + if (ImGui::Button(_("Set fat to max"))) { ImGuiStyle& sty=ImGui::GetStyle(); sty.FramePadding=ImVec2(20.0f*dpiScale,20.0f*dpiScale); sty.ItemSpacing=ImVec2(10.0f*dpiScale,10.0f*dpiScale); sty.ItemInnerSpacing=ImVec2(10.0f*dpiScale,10.0f*dpiScale); ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Set muscle and fat to zero")) { + if (ImGui::Button(_("Set muscle and fat to zero"))) { ImGuiStyle& sty=ImGui::GetStyle(); sty.FramePadding=ImVec2(0,0); sty.ItemSpacing=ImVec2(0,0); sty.ItemInnerSpacing=ImVec2(0,0); ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Tell tildearrow this must be a mistake")) { - showError("yeah, it's a bug. write a bug report in the GitHub page and tell me how did you get here."); + if (ImGui::Button(_("Tell tildearrow this must be a mistake"))) { + showError(_("yeah, it's a bug. write a bug report in the GitHub page and tell me how did you get here.")); ImGui::CloseCurrentPopup(); } break; diff --git a/src/gui/findReplace.cpp b/src/gui/findReplace.cpp index dd87d5313..84cf04d52 100644 --- a/src/gui/findReplace.cpp +++ b/src/gui/findReplace.cpp @@ -26,21 +26,21 @@ #include "../ta-log.h" const char* queryModes[GUI_QUERY_MAX]={ - "ignore", - "equals", - "not equal", - "between", - "not between", - "any", - "none" + _N("ignore"), + _N("equals"), + _N("not equal"), + _N("between"), + _N("not between"), + _N("any"), + _N("none") }; const char* queryReplaceModes[GUI_QUERY_REPLACE_MAX]={ - "set", - "add", - "add (overflow)", - "scale %", - "clear" + _N("set"), + _N("add"), + _N("add (overflow)"), + _N("scale %"), + _N("clear") }; int queryNote(int note, int octave) { @@ -517,14 +517,14 @@ void FurnaceGUI::drawFindReplace() { int eraseIndex=-1; char tempID[1024]; if (ImGui::BeginTabBar("FindOrReplace")) { - if (ImGui::BeginTabItem("Find")) { + if (ImGui::BeginTabItem(_("Find"))) { if (queryViewingResults) { if (!curQueryResults.empty()) { ImVec2 avail=ImGui::GetContentRegionAvail(); avail.y-=ImGui::GetFrameHeightWithSpacing(); if (ImGui::BeginTable("FindResults",4,ImGuiTableFlags_Borders|ImGuiTableFlags_ScrollY,avail)) { - ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,ImGui::CalcTextSize("order").x); - ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed,ImGui::CalcTextSize("row").x); + ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,ImGui::CalcTextSize(_("order")).x); + ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed,ImGui::CalcTextSize(_("row")).x); ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch); ImGui::TableSetupColumn("c3",ImGuiTableColumnFlags_WidthFixed); @@ -532,13 +532,13 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("order"); + ImGui::Text(_("order")); ImGui::TableNextColumn(); - ImGui::Text("row"); + ImGui::Text(_("row")); ImGui::TableNextColumn(); - ImGui::Text("channel"); + ImGui::Text(_("channel")); ImGui::TableNextColumn(); - ImGui::Text("go"); + ImGui::Text(_("go")); int index=0; for (FurnaceGUIQueryResult& i: curQueryResults) { @@ -582,9 +582,9 @@ void FurnaceGUI::drawFindReplace() { ImGui::EndTable(); } } else { - ImGui::Text("no matches found!"); + ImGui::Text(_("no matches found!")); } - if (ImGui::Button("Back")) { + if (ImGui::Button(_("Back"))) { queryViewingResults=false; } } else { @@ -598,7 +598,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Note"); + ImGui::Text(_("Note")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::Combo("##NCondition",&i.noteMode,queryModes,GUI_QUERY_MAX); @@ -666,7 +666,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Ins"); + ImGui::Text(_("Ins")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::Combo("##ICondition",&i.insMode,queryModes,GUI_QUERY_MAX); @@ -684,7 +684,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Volume"); + ImGui::Text(_("Volume")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::Combo("##VCondition",&i.volMode,queryModes,GUI_QUERY_MAX); @@ -704,7 +704,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Effect"); + ImGui::Text(_("Effect")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::Combo("##ECondition",&i.effectMode[j],queryModes,GUI_QUERY_MAX); @@ -722,7 +722,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Value"); + ImGui::Text(_("Value")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::Combo("##EVCondition",&i.effectValMode[j],queryModes,GUI_QUERY_MAX); @@ -747,18 +747,18 @@ void FurnaceGUI::drawFindReplace() { } popDestColor(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Delete query"); + ImGui::SetTooltip(_("Delete query")); } ImGui::TableNextColumn(); if (i.effectCount<8) { - if (ImGui::Button("Add effect")) { + if (ImGui::Button(_("Add effect"))) { i.effectCount++; } } ImGui::TableNextColumn(); if (i.effectCount>0) { pushDestColor(); - if (ImGui::Button("Remove effect")) { + if (ImGui::Button(_("Remove effect"))) { i.effectCount--; } popDestColor(); @@ -783,24 +783,24 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Text("Search range:"); + ImGui::Text(_("Search range:")); - if (ImGui::RadioButton("Song",curQueryRangeY==0)) { + if (ImGui::RadioButton(_("Song"),curQueryRangeY==0)) { curQueryRangeY=0; } - if (ImGui::RadioButton("Selection",curQueryRangeY==1)) { + if (ImGui::RadioButton(_("Selection"),curQueryRangeY==1)) { curQueryRangeY=1; } - if (ImGui::RadioButton("Pattern",curQueryRangeY==2)) { + if (ImGui::RadioButton(_("Pattern"),curQueryRangeY==2)) { curQueryRangeY=2; } ImGui::TableNextColumn(); - ImGui::Checkbox("Confine to channels",&curQueryRangeX); + ImGui::Checkbox(_("Confine to channels"),&curQueryRangeX); ImGui::BeginDisabled(!curQueryRangeX); snprintf(tempID,1024,"%d: %s",curQueryRangeXMin+1,e->getChannelName(curQueryRangeXMin)); - if (ImGui::BeginCombo("From",tempID)) { + if (ImGui::BeginCombo(_("From"),tempID)) { for (int i=0; igetTotalChannelCount(); i++) { snprintf(tempID,1024,"%d: %s",i+1,e->getChannelName(i)); if (ImGui::Selectable(tempID,curQueryRangeXMin==i)) { @@ -811,7 +811,7 @@ void FurnaceGUI::drawFindReplace() { } snprintf(tempID,1024,"%d: %s",curQueryRangeXMax+1,e->getChannelName(curQueryRangeXMax)); - if (ImGui::BeginCombo("To",tempID)) { + if (ImGui::BeginCombo(_("To"),tempID)) { for (int i=0; igetTotalChannelCount(); i++) { snprintf(tempID,1024,"%d: %s",i+1,e->getChannelName(i)); if (ImGui::Selectable(tempID,curQueryRangeXMax==i)) { @@ -823,37 +823,37 @@ void FurnaceGUI::drawFindReplace() { ImGui::EndDisabled(); ImGui::TableNextColumn(); - ImGui::Text("Match effect position:"); + ImGui::Text(_("Match effect position:")); - if (ImGui::RadioButton("No",curQueryEffectPos==0)) { + if (ImGui::RadioButton(_("No"),curQueryEffectPos==0)) { curQueryEffectPos=0; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("match effects regardless of position."); + ImGui::SetTooltip(_("match effects regardless of position.")); } - if (ImGui::RadioButton("Lax",curQueryEffectPos==1)) { + if (ImGui::RadioButton(_("Lax"),curQueryEffectPos==1)) { curQueryEffectPos=1; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("match effects only if they appear in-order."); + ImGui::SetTooltip(_("match effects only if they appear in-order.")); } - if (ImGui::RadioButton("Strict",curQueryEffectPos==2)) { + if (ImGui::RadioButton(_("Strict"),curQueryEffectPos==2)) { curQueryEffectPos=2; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("match effects only if they appear exactly as specified."); + ImGui::SetTooltip(_("match effects only if they appear exactly as specified.")); } ImGui::EndTable(); } - if (ImGui::Button("Find")) { + if (ImGui::Button(_("Find"))) { doFind(); } } ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Replace")) { + if (ImGui::BeginTabItem(_("Replace"))) { if (ImGui::BeginTable("QueryReplace",3,ImGuiTableFlags_BordersOuter)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.5); @@ -861,7 +861,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Checkbox("Note",&queryReplaceNoteDo); + ImGui::Checkbox(_("Note"),&queryReplaceNoteDo); ImGui::TableNextColumn(); ImGui::BeginDisabled(!queryReplaceNoteDo); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -905,13 +905,13 @@ void FurnaceGUI::drawFindReplace() { if (queryReplaceNote>180) queryReplaceNote=180; } } else if (queryReplaceNoteMode==GUI_QUERY_REPLACE_SCALE) { - ImGui::Text("INVALID"); + ImGui::Text(_("INVALID")); } ImGui::EndDisabled(); ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Checkbox("Ins",&queryReplaceInsDo); + ImGui::Checkbox(_("Ins"),&queryReplaceInsDo); ImGui::TableNextColumn(); ImGui::BeginDisabled(!queryReplaceInsDo); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -940,7 +940,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Checkbox("Volume",&queryReplaceVolDo); + ImGui::Checkbox(_("Volume"),&queryReplaceVolDo); ImGui::TableNextColumn(); ImGui::BeginDisabled(!queryReplaceVolDo); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -971,7 +971,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::PushID(0x100+i); ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Checkbox("Effect",&queryReplaceEffectDo[i]); + ImGui::Checkbox(_("Effect"),&queryReplaceEffectDo[i]); ImGui::TableNextColumn(); ImGui::BeginDisabled(!queryReplaceEffectDo[i]); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -1000,7 +1000,7 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Checkbox("Value",&queryReplaceEffectValDo[i]); + ImGui::Checkbox(_("Value"),&queryReplaceEffectValDo[i]); ImGui::TableNextColumn(); ImGui::BeginDisabled(!queryReplaceEffectValDo[i]); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -1034,14 +1034,14 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextColumn(); ImGui::TableNextColumn(); if (queryReplaceEffectCount<8) { - if (ImGui::Button("Add effect")) { + if (ImGui::Button(_("Add effect"))) { queryReplaceEffectCount++; } } ImGui::TableNextColumn(); if (queryReplaceEffectCount>0) { pushDestColor(); - if (ImGui::Button("Remove effect")) { + if (ImGui::Button(_("Remove effect"))) { queryReplaceEffectCount--; } popDestColor(); @@ -1049,20 +1049,20 @@ void FurnaceGUI::drawFindReplace() { ImGui::EndTable(); } - ImGui::Text("Effect replace mode:"); - if (ImGui::RadioButton("Replace matches only",queryReplaceEffectPos==1)) { + ImGui::Text(_("Effect replace mode:")); + if (ImGui::RadioButton(_("Replace matches only"),queryReplaceEffectPos==1)) { queryReplaceEffectPos=1; } - if (ImGui::RadioButton("Replace matches, then free spaces",queryReplaceEffectPos==2)) { + if (ImGui::RadioButton(_("Replace matches, then free spaces"),queryReplaceEffectPos==2)) { queryReplaceEffectPos=2; } - if (ImGui::RadioButton("Clear effects",queryReplaceEffectPos==0)) { + if (ImGui::RadioButton(_("Clear effects"),queryReplaceEffectPos==0)) { queryReplaceEffectPos=0; } - if (ImGui::RadioButton("Insert in free spaces",queryReplaceEffectPos==3)) { + if (ImGui::RadioButton(_("Insert in free spaces"),queryReplaceEffectPos==3)) { queryReplaceEffectPos=3; } - if (ImGui::Button("Replace##QueryReplace")) { + if (ImGui::Button(_("Replace##QueryReplace"))) { doReplace(); } ImGui::EndTabItem(); diff --git a/src/gui/grooves.cpp b/src/gui/grooves.cpp index 431cae610..b76664350 100644 --- a/src/gui/grooves.cpp +++ b/src/gui/grooves.cpp @@ -35,7 +35,7 @@ void FurnaceGUI::drawGrooves() { if (ImGui::Begin("Grooves",&groovesOpen,globalWinFlags)) { int delGroove=-1; - ImGui::Text("use effect 09xx to select a groove pattern."); + ImGui::Text(_("use effect 09xx to select a groove pattern.")); if (!e->song.grooves.empty()) if (ImGui::BeginTable("GrooveList",3,ImGuiTableFlags_Borders)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch); @@ -45,7 +45,7 @@ void FurnaceGUI::drawGrooves() { ImGui::TableNextColumn(); ImGui::Text("#"); ImGui::TableNextColumn(); - ImGui::Text("pattern"); + ImGui::Text(_("pattern")); ImGui::TableNextColumn(); // ImGui::Text("remove"); removed because the text clips from the fixed width @@ -129,7 +129,7 @@ void FurnaceGUI::drawGrooves() { } popDestColor(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("remove"); + ImGui::SetTooltip(_("remove")); } index++; diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index e3b3fac1f..4549bd738 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -1127,11 +1127,11 @@ void FurnaceGUI::play(int row) { if (!followPattern) e->setOrder(curOrder); if (row>0) { if (!e->playToRow(row)) { - showError("the song is over!"); + showError(_("the song is over!")); } } else { if (!e->play()) { - showError("the song is over!"); + showError(_("the song is over!")); } } curNibble=false; @@ -1658,21 +1658,21 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_OPEN: if (!dirExists(workingDirSong)) workingDirSong=getHomeDir(); hasOpened=fileDialog->openLoad( - "Open File", - {"compatible files", "*.fur *.dmf *.mod *.fc13 *.fc14 *.smod *.fc *.ftm *.0cc *.dnm *.eft *.fub *.tfe", - "all files", "*"}, + _("Open File"), + {_("compatible files"), "*.fur *.dmf *.mod *.fc13 *.fc14 *.smod *.fc *.ftm *.0cc *.dnm *.eft *.fub *.tfe", + _("all files"), "*"}, workingDirSong, dpiScale ); break; case GUI_FILE_OPEN_BACKUP: if (!dirExists(backupPath)) { - showError("no backups made yet!"); + showError(_("no backups made yet!")); break; } hasOpened=fileDialog->openLoad( - "Restore Backup", - {"Furnace song", "*.fur"}, + _("Restore Backup"), + {_("Furnace song"), "*.fur"}, backupPath+String(DIR_SEPARATOR_STR), dpiScale ); @@ -1680,8 +1680,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_SAVE: if (!dirExists(workingDirSong)) workingDirSong=getHomeDir(); hasOpened=fileDialog->openSave( - "Save File", - {"Furnace song", "*.fur"}, + _("Save File"), + {_("Furnace song"), "*.fur"}, workingDirSong, dpiScale ); @@ -1689,8 +1689,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_SAVE_DMF: if (!dirExists(workingDirSong)) workingDirSong=getHomeDir(); hasOpened=fileDialog->openSave( - "Export DMF", - {"DefleMask 1.1.3 module", "*.dmf"}, + _("Export DMF"), + {_("DefleMask 1.1.3 module"), "*.dmf"}, workingDirSong, dpiScale, (settings.autoFillSave)?shortName:"" @@ -1699,8 +1699,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_SAVE_DMF_LEGACY: if (!dirExists(workingDirSong)) workingDirSong=getHomeDir(); hasOpened=fileDialog->openSave( - "Export DMF", - {"DefleMask 1.0/legacy module", "*.dmf"}, + _("Export DMF"), + {_("DefleMask 1.0/legacy module"), "*.dmf"}, workingDirSong, dpiScale, (settings.autoFillSave)?shortName:"" @@ -1717,24 +1717,24 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { *prevInsData=*e->getIns(curIns); if (!dirExists(workingDirIns)) workingDirIns=getHomeDir(); hasOpened=fileDialog->openLoad( - "Load Instrument", - {"all compatible files", "*.fui *.dmp *.tfi *.vgi *.s3i *.sbi *.opli *.opni *.y12 *.bnk *.ff *.gyb *.opm *.wopl *.wopn", - "Furnace instrument", "*.fui", - "DefleMask preset", "*.dmp", - "TFM Music Maker instrument", "*.tfi", - "VGM Music Maker instrument", "*.vgi", - "Scream Tracker 3 instrument", "*.s3i", - "SoundBlaster instrument", "*.sbi", - "Wohlstand OPL instrument", "*.opli", - "Wohlstand OPN instrument", "*.opni", - "Gens KMod patch dump", "*.y12", - "BNK file (AdLib)", "*.bnk", - "FF preset bank", "*.ff", - "2612edit GYB preset bank", "*.gyb", - "VOPM preset bank", "*.opm", - "Wohlstand WOPL bank", "*.wopl", - "Wohlstand WOPN bank", "*.wopn", - "all files", "*"}, + _("Load Instrument"), + {_("all compatible files"), "*.fui *.dmp *.tfi *.vgi *.s3i *.sbi *.opli *.opni *.y12 *.bnk *.ff *.gyb *.opm *.wopl *.wopn", + _("Furnace instrument"), "*.fui", + _("DefleMask preset"), "*.dmp", + _("TFM Music Maker instrument"), "*.tfi", + _("VGM Music Maker instrument"), "*.vgi", + _("Scream Tracker 3 instrument"), "*.s3i", + _("SoundBlaster instrument"), "*.sbi", + _("Wohlstand OPL instrument"), "*.opli", + _("Wohlstand OPN instrument"), "*.opni", + _("Gens KMod patch dump"), "*.y12", + _("BNK file (AdLib)"), "*.bnk", + _("FF preset bank"), "*.ff", + _("2612edit GYB preset bank"), "*.gyb", + _("VOPM preset bank"), "*.opm", + _("Wohlstand WOPL bank"), "*.wopl", + _("Wohlstand WOPN bank"), "*.wopn", + _("all files"), "*"}, workingDirIns, dpiScale, [this](const char* path) { @@ -1767,8 +1767,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_INS_SAVE: if (!dirExists(workingDirIns)) workingDirIns=getHomeDir(); hasOpened=fileDialog->openSave( - "Save Instrument", - {"Furnace instrument", "*.fui"}, + _("Save Instrument"), + {_("Furnace instrument"), "*.fui"}, workingDirIns, dpiScale, (settings.autoFillSave)?e->getIns(curIns)->name:"" @@ -1777,8 +1777,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_INS_SAVE_DMP: if (!dirExists(workingDirIns)) workingDirIns=getHomeDir(); hasOpened=fileDialog->openSave( - "Save Instrument", - {"DefleMask preset", "*.dmp"}, + _("Save Instrument"), + {_("DefleMask preset"), "*.dmp"}, workingDirIns, dpiScale, (settings.autoFillSave)?e->getIns(curIns)->name:"" @@ -1788,9 +1788,9 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_WAVE_OPEN_REPLACE: if (!dirExists(workingDirWave)) workingDirWave=getHomeDir(); hasOpened=fileDialog->openLoad( - "Load Wavetable", - {"compatible files", "*.fuw *.dmw", - "all files", "*"}, + _("Load Wavetable"), + {_("compatible files"), "*.fuw *.dmw", + _("all files"), "*"}, workingDirWave, dpiScale, NULL, // TODO @@ -1800,8 +1800,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_WAVE_SAVE: if (!dirExists(workingDirWave)) workingDirWave=getHomeDir(); hasOpened=fileDialog->openSave( - "Save Wavetable", - {"Furnace wavetable", ".fuw"}, + _("Save Wavetable"), + {_("Furnace wavetable"), ".fuw"}, workingDirWave, dpiScale ); @@ -1809,8 +1809,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_WAVE_SAVE_DMW: if (!dirExists(workingDirWave)) workingDirWave=getHomeDir(); hasOpened=fileDialog->openSave( - "Save Wavetable", - {"DefleMask wavetable", ".dmw"}, + _("Save Wavetable"), + {_("DefleMask wavetable"), ".dmw"}, workingDirWave, dpiScale ); @@ -1818,8 +1818,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_WAVE_SAVE_RAW: if (!dirExists(workingDirWave)) workingDirWave=getHomeDir(); hasOpened=fileDialog->openSave( - "Save Wavetable", - {"raw data", ".raw"}, + _("Save Wavetable"), + {_("raw data"), ".raw"}, workingDirWave, dpiScale ); @@ -1828,9 +1828,9 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_SAMPLE_OPEN_REPLACE: if (!dirExists(workingDirSample)) workingDirSample=getHomeDir(); hasOpened=fileDialog->openLoad( - "Load Sample", - {"compatible files", "*.wav *.dmc *.brr", - "all files", "*"}, + _("Load Sample"), + {_("compatible files"), "*.wav *.dmc *.brr", + _("all files"), "*"}, workingDirSample, dpiScale, NULL, // TODO @@ -1841,8 +1841,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_SAMPLE_OPEN_REPLACE_RAW: if (!dirExists(workingDirSample)) workingDirSample=getHomeDir(); hasOpened=fileDialog->openLoad( - "Load Raw Sample", - {"all files", "*"}, + _("Load Raw Sample"), + {_("all files"), "*"}, workingDirSample, dpiScale ); @@ -1850,8 +1850,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_SAMPLE_SAVE: if (!dirExists(workingDirSample)) workingDirSample=getHomeDir(); hasOpened=fileDialog->openSave( - "Save Sample", - {"Wave file", "*.wav"}, + _("Save Sample"), + {_("Wave file"), "*.wav"}, workingDirSample, dpiScale, (settings.autoFillSave)?e->getSample(curSample)->name:"" @@ -1860,8 +1860,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_SAMPLE_SAVE_RAW: if (!dirExists(workingDirSample)) workingDirSample=getHomeDir(); hasOpened=fileDialog->openSave( - "Save Raw Sample", - {"all files", "*"}, + _("Save Raw Sample"), + {_("all files"), "*"}, workingDirSample, dpiScale, (settings.autoFillSave)?e->getSample(curSample)->name:"" @@ -1870,8 +1870,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_AUDIO_ONE: if (!dirExists(workingDirAudioExport)) workingDirAudioExport=getHomeDir(); hasOpened=fileDialog->openSave( - "Export Audio", - {"Wave file", "*.wav"}, + _("Export Audio"), + {_("Wave file"), "*.wav"}, workingDirAudioExport, dpiScale, (settings.autoFillSave)?shortName:"" @@ -1880,8 +1880,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_AUDIO_PER_SYS: if (!dirExists(workingDirAudioExport)) workingDirAudioExport=getHomeDir(); hasOpened=fileDialog->openSave( - "Export Audio", - {"Wave file", "*.wav"}, + _("Export Audio"), + {_("Wave file"), "*.wav"}, workingDirAudioExport, dpiScale, (settings.autoFillSave)?shortName:"" @@ -1890,8 +1890,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_AUDIO_PER_CHANNEL: if (!dirExists(workingDirAudioExport)) workingDirAudioExport=getHomeDir(); hasOpened=fileDialog->openSave( - "Export Audio", - {"Wave file", "*.wav"}, + _("Export Audio"), + {_("Wave file"), "*.wav"}, workingDirAudioExport, dpiScale, (settings.autoFillSave)?shortName:"" @@ -1900,8 +1900,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_VGM: if (!dirExists(workingDirVGMExport)) workingDirVGMExport=getHomeDir(); hasOpened=fileDialog->openSave( - "Export VGM", - {"VGM file", "*.vgm"}, + _("Export VGM"), + {_("VGM file"), "*.vgm"}, workingDirVGMExport, dpiScale, (settings.autoFillSave)?shortName:"" @@ -1910,8 +1910,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_ZSM: if (!dirExists(workingDirZSMExport)) workingDirZSMExport=getHomeDir(); hasOpened=fileDialog->openSave( - "Export ZSM", - {"ZSM file", "*.zsm"}, + _("Export ZSM"), + {_("ZSM file"), "*.zsm"}, workingDirZSMExport, dpiScale, (settings.autoFillSave)?shortName:"" @@ -1920,8 +1920,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_TEXT: if (!dirExists(workingDirROMExport)) workingDirROMExport=getHomeDir(); hasOpened=fileDialog->openSave( - "Export Command Stream", - {"text file", "*.txt"}, + _("Export Command Stream"), + {_("text file"), "*.txt"}, workingDirROMExport, dpiScale, (settings.autoFillSave)?shortName:"" @@ -1930,21 +1930,21 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_CMDSTREAM: if (!dirExists(workingDirROMExport)) workingDirROMExport=getHomeDir(); hasOpened=fileDialog->openSave( - "Export Command Stream", - {"binary file", "*.bin"}, + _("Export Command Stream"), + {_("binary file"), "*.bin"}, workingDirROMExport, dpiScale, (settings.autoFillSave)?shortName:"" ); break; case GUI_FILE_EXPORT_ROM: - showError("Coming soon!"); + showError(_("Coming soon!")); break; case GUI_FILE_LOAD_MAIN_FONT: if (!dirExists(workingDirFont)) workingDirFont=getHomeDir(); hasOpened=fileDialog->openLoad( - "Select Font", - {"compatible files", "*.ttf *.otf *.ttc *.dfont *.pcf *.psf *.fon"}, + _("Select Font"), + {_("compatible files"), "*.ttf *.otf *.ttc *.dfont *.pcf *.psf"}, workingDirFont, dpiScale ); @@ -1952,8 +1952,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_LOAD_HEAD_FONT: if (!dirExists(workingDirFont)) workingDirFont=getHomeDir(); hasOpened=fileDialog->openLoad( - "Select Font", - {"compatible files", "*.ttf *.otf *.ttc *.dfont *.pcf *.psf *.fon"}, + _("Select Font"), + {_("compatible files"), "*.ttf *.otf *.ttc *.dfont *.pcf *.psf"}, workingDirFont, dpiScale ); @@ -1961,8 +1961,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_LOAD_PAT_FONT: if (!dirExists(workingDirFont)) workingDirFont=getHomeDir(); hasOpened=fileDialog->openLoad( - "Select Font", - {"compatible files", "*.ttf *.otf *.ttc *.dfont *.pcf *.psf *.fon"}, + _("Select Font"), + {_("compatible files"), "*.ttf *.otf *.ttc *.dfont *.pcf *.psf"}, workingDirFont, dpiScale ); @@ -1970,8 +1970,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_IMPORT_COLORS: if (!dirExists(workingDirColors)) workingDirColors=getHomeDir(); hasOpened=fileDialog->openLoad( - "Select Color File", - {"configuration files", "*.cfgc"}, + _("Select Color File"), + {_("configuration files"), "*.cfgc"}, workingDirColors, dpiScale ); @@ -1979,8 +1979,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_IMPORT_KEYBINDS: if (!dirExists(workingDirKeybinds)) workingDirKeybinds=getHomeDir(); hasOpened=fileDialog->openLoad( - "Select Keybind File", - {"configuration files", "*.cfgk"}, + _("Select Keybind File"), + {_("configuration files"), "*.cfgk"}, workingDirKeybinds, dpiScale ); @@ -1988,8 +1988,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_IMPORT_LAYOUT: if (!dirExists(workingDirLayout)) workingDirLayout=getHomeDir(); hasOpened=fileDialog->openLoad( - "Select Layout File", - {".ini files", "*.ini"}, + _("Select Layout File"), + {_(".ini files"), "*.ini"}, workingDirLayout, dpiScale ); @@ -1998,8 +1998,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_IMPORT_USER_PRESETS_REPLACE: if (!dirExists(workingDirConfig)) workingDirConfig=getHomeDir(); hasOpened=fileDialog->openLoad( - "Select User Presets File", - {"configuration files", "*.cfgu"}, + _("Select User Presets File"), + {_("configuration files"), "*.cfgu"}, workingDirConfig, dpiScale ); @@ -2007,8 +2007,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_IMPORT_CONFIG: if (!dirExists(workingDirConfig)) workingDirConfig=getHomeDir(); hasOpened=fileDialog->openLoad( - "Select Settings File", - {"configuration files", "*.cfg"}, + _("Select Settings File"), + {_("configuration files"), "*.cfg"}, workingDirConfig, dpiScale ); @@ -2016,8 +2016,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_COLORS: if (!dirExists(workingDirColors)) workingDirColors=getHomeDir(); hasOpened=fileDialog->openSave( - "Export Colors", - {"configuration files", "*.cfgc"}, + _("Export Colors"), + {_("configuration files"), "*.cfgc"}, workingDirColors, dpiScale ); @@ -2025,8 +2025,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_KEYBINDS: if (!dirExists(workingDirKeybinds)) workingDirKeybinds=getHomeDir(); hasOpened=fileDialog->openSave( - "Export Keybinds", - {"configuration files", "*.cfgk"}, + _("Export Keybinds"), + {_("configuration files"), "*.cfgk"}, workingDirKeybinds, dpiScale ); @@ -2034,8 +2034,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_LAYOUT: if (!dirExists(workingDirLayout)) workingDirLayout=getHomeDir(); hasOpened=fileDialog->openSave( - "Export Layout", - {".ini files", "*.ini"}, + _("Export Layout"), + {_(".ini files"), "*.ini"}, workingDirLayout, dpiScale ); @@ -2043,8 +2043,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_USER_PRESETS: if (!dirExists(workingDirConfig)) workingDirConfig=getHomeDir(); hasOpened=fileDialog->openSave( - "Export User Presets", - {"configuration files", "*.cfgu"}, + _("Export User Presets"), + {_("configuration files"), "*.cfgu"}, workingDirConfig, dpiScale ); @@ -2052,8 +2052,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_EXPORT_CONFIG: if (!dirExists(workingDirConfig)) workingDirConfig=getHomeDir(); hasOpened=fileDialog->openSave( - "Export Settings", - {"configuration files", "*.cfg"}, + _("Export Settings"), + {_("configuration files"), "*.cfg"}, workingDirConfig, dpiScale ); @@ -2063,9 +2063,9 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_MU5_ROM_OPEN: if (!dirExists(workingDirSample)) workingDirSample=getHomeDir(); hasOpened=fileDialog->openLoad( - "Load ROM", - {"compatible files", "*.rom *.bin", - "all files", "*"}, + _("Load ROM"), + {_("compatible files"), "*.rom *.bin", + _("all files"), "*"}, workingDirROM, dpiScale ); @@ -2073,9 +2073,9 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_CMDSTREAM_OPEN: if (!dirExists(workingDirROM)) workingDirROM=getHomeDir(); hasOpened=fileDialog->openLoad( - "Play Command Stream", - {"command stream", "*.bin", - "all files", "*"}, + _("Play Command Stream"), + {_("command stream"), "*.bin", + _("all files"), "*"}, workingDirROM, dpiScale ); @@ -2083,10 +2083,10 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_TEST_OPEN: if (!dirExists(workingDirTest)) workingDirTest=getHomeDir(); hasOpened=fileDialog->openLoad( - "Open Test", - {"compatible files", "*.fur *.dmf *.mod", - "another option", "*.wav *.ttf", - "all files", "*"}, + _("Open Test"), + {_("compatible files"), "*.fur *.dmf *.mod", + _("another option"), "*.wav *.ttf", + _("all files"), "*"}, workingDirTest, dpiScale, [](const char* path) { @@ -2101,10 +2101,10 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_TEST_OPEN_MULTI: if (!dirExists(workingDirTest)) workingDirTest=getHomeDir(); hasOpened=fileDialog->openLoad( - "Open Test (Multi)", - {"compatible files", "*.fur *.dmf *.mod", - "another option", "*.wav *.ttf", - "all files", "*"}, + _("Open Test (Multi)"), + {_("compatible files"), "*.fur *.dmf *.mod", + _("another option"), "*.wav *.ttf", + _("all files"), "*"}, workingDirTest, dpiScale, [](const char* path) { @@ -2120,9 +2120,9 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { case GUI_FILE_TEST_SAVE: if (!dirExists(workingDirTest)) workingDirTest=getHomeDir(); hasOpened=fileDialog->openSave( - "Save Test", - {"Furnace song", "*.fur", - "DefleMask module", "*.dmf"}, + _("Save Test"), + {_("Furnace song"), "*.fur", + _("DefleMask module"), "*.dmf"}, workingDirTest, dpiScale ); @@ -2162,7 +2162,7 @@ int FurnaceGUI::save(String path, int dmfVersion) { ret=deflateInit(&zl,Z_DEFAULT_COMPRESSION); if (ret!=Z_OK) { logE("zlib error!"); - lastError="compression error"; + lastError=_("compression error"); fclose(outFile); w->finish(); return 2; @@ -2174,7 +2174,7 @@ int FurnaceGUI::save(String path, int dmfVersion) { zl.next_out=zbuf; if ((ret=deflate(&zl,Z_NO_FLUSH))==Z_STREAM_ERROR) { logE("zlib stream error!"); - lastError="zlib stream error"; + lastError=_("zlib stream error"); deflateEnd(&zl); fclose(outFile); w->finish(); @@ -2196,7 +2196,7 @@ int FurnaceGUI::save(String path, int dmfVersion) { zl.next_out=zbuf; if ((ret=deflate(&zl,Z_FINISH))==Z_STREAM_ERROR) { logE("zlib finish stream error!"); - lastError="zlib finish stream error"; + lastError=_("zlib finish stream error"); deflateEnd(&zl); fclose(outFile); w->finish(); @@ -2250,38 +2250,38 @@ int FurnaceGUI::load(String path) { } if (fseek(f,0,SEEK_END)<0) { perror("size error"); - lastError=fmt::sprintf("on seek: %s",strerror(errno)); + lastError=fmt::sprintf(_("on seek: %s"),strerror(errno)); fclose(f); return 1; } ssize_t len=ftell(f); if (len==(SIZE_MAX>>1)) { perror("could not get file length"); - lastError=fmt::sprintf("on pre tell: %s",strerror(errno)); + lastError=fmt::sprintf(_("on pre tell: %s"),strerror(errno)); fclose(f); return 1; } if (len<1) { if (len==0) { logE("that file is empty!"); - lastError="file is empty"; + lastError=_("file is empty"); } else { perror("tell error"); - lastError=fmt::sprintf("on tell: %s",strerror(errno)); + lastError=fmt::sprintf(_("on tell: %s"),strerror(errno)); } fclose(f); return 1; } if (fseek(f,0,SEEK_SET)<0) { perror("size error"); - lastError=fmt::sprintf("on get size: %s",strerror(errno)); + lastError=fmt::sprintf(_("on get size: %s"),strerror(errno)); fclose(f); return 1; } unsigned char* file=new unsigned char[len]; if (fread(file,1,(size_t)len,f)!=(size_t)len) { perror("read error"); - lastError=fmt::sprintf("on read: %s",strerror(errno)); + lastError=fmt::sprintf(_("on read: %s"),strerror(errno)); fclose(f); delete[] file; return 1; @@ -2307,7 +2307,7 @@ int FurnaceGUI::load(String path) { selStart=SelectionPoint(); selEnd=SelectionPoint(); cursor=SelectionPoint(); - lastError="everything OK"; + lastError=_("everything OK"); undoHist.clear(); redoHist.clear(); updateWindowTitle(); @@ -2325,7 +2325,7 @@ int FurnaceGUI::load(String path) { } } else { // warn the user - showWarning("you have loaded a backup!\nif you need to, please save it somewhere.\n\nDO NOT RELY ON THE BACKUP SYSTEM FOR AUTO-SAVE!\nFurnace will not save backups of backups.",GUI_WARN_GENERIC); + showWarning(_("you have loaded a backup!\nif you need to, please save it somewhere.\n\nDO NOT RELY ON THE BACKUP SYSTEM FOR AUTO-SAVE!\nFurnace will not save backups of backups."),GUI_WARN_GENERIC); } return 0; } @@ -2333,10 +2333,10 @@ int FurnaceGUI::load(String path) { void FurnaceGUI::openRecentFile(String path) { if (modified) { nextFile=path; - showWarning("Unsaved changes! Save changes before opening file?",GUI_WARN_OPEN_DROP); + showWarning(_("Unsaved changes! Save changes before opening file?"),GUI_WARN_OPEN_DROP); } else { if (load(path)>0) { - showError(fmt::sprintf("Error while loading file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while loading file! (%s)"),lastError)); } } } @@ -2413,38 +2413,38 @@ int FurnaceGUI::loadStream(String path) { } if (fseek(f,0,SEEK_END)<0) { perror("size error"); - lastError=fmt::sprintf("on seek: %s",strerror(errno)); + lastError=fmt::sprintf(_("on seek: %s"),strerror(errno)); fclose(f); return 1; } ssize_t len=ftell(f); if (len==(SIZE_MAX>>1)) { perror("could not get file length"); - lastError=fmt::sprintf("on pre tell: %s",strerror(errno)); + lastError=fmt::sprintf(_("on pre tell: %s"),strerror(errno)); fclose(f); return 1; } if (len<1) { if (len==0) { logE("that file is empty!"); - lastError="file is empty"; + lastError=_("file is empty"); } else { perror("tell error"); - lastError=fmt::sprintf("on tell: %s",strerror(errno)); + lastError=fmt::sprintf(_("on tell: %s"),strerror(errno)); } fclose(f); return 1; } if (fseek(f,0,SEEK_SET)<0) { perror("size error"); - lastError=fmt::sprintf("on get size: %s",strerror(errno)); + lastError=fmt::sprintf(_("on get size: %s"),strerror(errno)); fclose(f); return 1; } unsigned char* file=new unsigned char[len]; if (fread(file,1,(size_t)len,f)!=(size_t)len) { perror("read error"); - lastError=fmt::sprintf("on read: %s",strerror(errno)); + lastError=fmt::sprintf(_("on read: %s"),strerror(errno)); fclose(f); delete[] file; return 1; @@ -2724,15 +2724,15 @@ void FurnaceGUI::editOptions(bool topMenu) { char id[4096]; editOptsVisible=true; - if (ImGui::MenuItem("cut",BIND_FOR(GUI_ACTION_PAT_CUT))) doCopy(true,true,selStart,selEnd); - if (ImGui::MenuItem("copy",BIND_FOR(GUI_ACTION_PAT_COPY))) doCopy(false,true,selStart,selEnd); - if (ImGui::MenuItem("paste",BIND_FOR(GUI_ACTION_PAT_PASTE))) doPaste(); - if (ImGui::BeginMenu("paste special...")) { - if (ImGui::MenuItem("paste mix",BIND_FOR(GUI_ACTION_PAT_PASTE_MIX))) doPaste(GUI_PASTE_MODE_MIX_FG); - if (ImGui::MenuItem("paste mix (background)",BIND_FOR(GUI_ACTION_PAT_PASTE_MIX_BG))) doPaste(GUI_PASTE_MODE_MIX_BG); - if (ImGui::BeginMenu("paste with ins (foreground)")) { + if (ImGui::MenuItem(_("cut"),BIND_FOR(GUI_ACTION_PAT_CUT))) doCopy(true,true,selStart,selEnd); + if (ImGui::MenuItem(_("copy"),BIND_FOR(GUI_ACTION_PAT_COPY))) doCopy(false,true,selStart,selEnd); + if (ImGui::MenuItem(_("paste"),BIND_FOR(GUI_ACTION_PAT_PASTE))) doPaste(); + if (ImGui::BeginMenu(_("paste special..."))) { + if (ImGui::MenuItem(_("paste mix"),BIND_FOR(GUI_ACTION_PAT_PASTE_MIX))) doPaste(GUI_PASTE_MODE_MIX_FG); + if (ImGui::MenuItem(_("paste mix (background)"),BIND_FOR(GUI_ACTION_PAT_PASTE_MIX_BG))) doPaste(GUI_PASTE_MODE_MIX_BG); + if (ImGui::BeginMenu(_("paste with ins (foreground)"))) { if (e->song.ins.empty()) { - ImGui::Text("no instruments available"); + ImGui::Text(_("no instruments available")); } for (size_t i=0; isong.ins.size(); i++) { snprintf(id,4095,"%.2X: %s",(int)i,e->song.ins[i]->name.c_str()); @@ -2742,9 +2742,9 @@ void FurnaceGUI::editOptions(bool topMenu) { } ImGui::EndMenu(); } - if (ImGui::BeginMenu("paste with ins (background)")) { + if (ImGui::BeginMenu(_("paste with ins (background)"))) { if (e->song.ins.empty()) { - ImGui::Text("no instruments available"); + ImGui::Text(_("no instruments available")); } for (size_t i=0; isong.ins.size(); i++) { snprintf(id,4095,"%.2X: %s",(int)i,e->song.ins[i]->name.c_str()); @@ -2754,73 +2754,73 @@ void FurnaceGUI::editOptions(bool topMenu) { } ImGui::EndMenu(); } - if (ImGui::MenuItem("paste flood",BIND_FOR(GUI_ACTION_PAT_PASTE_FLOOD))) doPaste(GUI_PASTE_MODE_FLOOD); - if (ImGui::MenuItem("paste overflow",BIND_FOR(GUI_ACTION_PAT_PASTE_OVERFLOW))) doPaste(GUI_PASTE_MODE_OVERFLOW); + if (ImGui::MenuItem(_("paste flood"),BIND_FOR(GUI_ACTION_PAT_PASTE_FLOOD))) doPaste(GUI_PASTE_MODE_FLOOD); + if (ImGui::MenuItem(_("paste overflow"),BIND_FOR(GUI_ACTION_PAT_PASTE_OVERFLOW))) doPaste(GUI_PASTE_MODE_OVERFLOW); ImGui::EndMenu(); } - if (ImGui::MenuItem("delete",BIND_FOR(GUI_ACTION_PAT_DELETE))) doDelete(); + if (ImGui::MenuItem(_("delete"),BIND_FOR(GUI_ACTION_PAT_DELETE))) doDelete(); if (topMenu) { - if (ImGui::MenuItem("select all",BIND_FOR(GUI_ACTION_PAT_SELECT_ALL))) doSelectAll(); + if (ImGui::MenuItem(_("select all"),BIND_FOR(GUI_ACTION_PAT_SELECT_ALL))) doSelectAll(); } ImGui::Separator(); - if (ImGui::BeginMenu("operation mask...")) { + if (ImGui::BeginMenu(_("operation mask..."))) { drawOpMask(opMaskDelete); ImGui::SameLine(); - ImGui::Text("delete"); + ImGui::Text(_("delete")); drawOpMask(opMaskPullDelete); ImGui::SameLine(); - ImGui::Text("pull delete"); + ImGui::Text(_("pull delete")); drawOpMask(opMaskInsert); ImGui::SameLine(); - ImGui::Text("insert"); + ImGui::Text(_("insert")); drawOpMask(opMaskPaste); ImGui::SameLine(); - ImGui::Text("paste"); + ImGui::Text(_("paste")); drawOpMask(opMaskTransposeNote); ImGui::SameLine(); - ImGui::Text("transpose (note)"); + ImGui::Text(_("transpose (note)")); drawOpMask(opMaskTransposeValue); ImGui::SameLine(); - ImGui::Text("transpose (value)"); + ImGui::Text(_("transpose (value)")); drawOpMask(opMaskInterpolate); ImGui::SameLine(); - ImGui::Text("interpolate"); + ImGui::Text(_("interpolate")); drawOpMask(opMaskFade); ImGui::SameLine(); - ImGui::Text("fade"); + ImGui::Text(_("fade")); drawOpMask(opMaskInvertVal); ImGui::SameLine(); - ImGui::Text("invert values"); + ImGui::Text(_("invert values")); drawOpMask(opMaskScale); ImGui::SameLine(); - ImGui::Text("scale"); + ImGui::Text(_("scale")); drawOpMask(opMaskRandomize); ImGui::SameLine(); - ImGui::Text("randomize"); + ImGui::Text(_("randomize")); drawOpMask(opMaskFlip); ImGui::SameLine(); - ImGui::Text("flip"); + ImGui::Text(_("flip")); drawOpMask(opMaskCollapseExpand); ImGui::SameLine(); - ImGui::Text("collapse/expand"); + ImGui::Text(_("collapse/expand")); ImGui::EndMenu(); } - ImGui::Text("input latch"); + ImGui::Text(_("input latch")); ImGui::PushFont(patFont); if (ImGui::BeginTable("inputLatchTable",5,ImGuiTableFlags_Borders|ImGuiTableFlags_SizingFixedFit|ImGuiTableFlags_NoHostExtendX)) { static char id[64]; @@ -2847,7 +2847,7 @@ void FurnaceGUI::editOptions(bool topMenu) { } if (ImGui::IsItemHovered()) { ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_TEXT]); - ImGui::SetTooltip("&&: selected instrument\n..: no instrument"); + ImGui::SetTooltip(_("&&: selected instrument\n..: no instrument")); ImGui::PopStyleColor(); } ImGui::PopStyleColor(); @@ -2901,7 +2901,7 @@ void FurnaceGUI::editOptions(bool topMenu) { } ImGui::PopFont(); ImGui::SameLine(); - if (ImGui::Button("Set")) { + if (ImGui::Button(_("Set"))) { DivPattern* pat=e->curPat[cursor.xCoarse].getPattern(e->curOrders->ord[cursor.xCoarse][curOrder],true); latchIns=pat->data[cursor.y][2]; latchVol=pat->data[cursor.y][3]; @@ -2911,7 +2911,7 @@ void FurnaceGUI::editOptions(bool topMenu) { latchNibble=false; } ImGui::SameLine(); - if (ImGui::Button("Reset")) { + if (ImGui::Button(_("Reset"))) { latchIns=-2; latchVol=-1; latchEffect=-1; @@ -2921,18 +2921,18 @@ void FurnaceGUI::editOptions(bool topMenu) { } ImGui::Separator(); - if (ImGui::MenuItem("note up",BIND_FOR(GUI_ACTION_PAT_NOTE_UP))) doTranspose(1,opMaskTransposeNote); - if (ImGui::MenuItem("note down",BIND_FOR(GUI_ACTION_PAT_NOTE_DOWN))) doTranspose(-1,opMaskTransposeNote); - if (ImGui::MenuItem("octave up",BIND_FOR(GUI_ACTION_PAT_OCTAVE_UP))) doTranspose(12,opMaskTransposeNote); - if (ImGui::MenuItem("octave down",BIND_FOR(GUI_ACTION_PAT_OCTAVE_DOWN))) doTranspose(-12,opMaskTransposeNote); + if (ImGui::MenuItem(_("note up"),BIND_FOR(GUI_ACTION_PAT_NOTE_UP))) doTranspose(1,opMaskTransposeNote); + if (ImGui::MenuItem(_("note down"),BIND_FOR(GUI_ACTION_PAT_NOTE_DOWN))) doTranspose(-1,opMaskTransposeNote); + if (ImGui::MenuItem(_("octave up"),BIND_FOR(GUI_ACTION_PAT_OCTAVE_UP))) doTranspose(12,opMaskTransposeNote); + if (ImGui::MenuItem(_("octave down"),BIND_FOR(GUI_ACTION_PAT_OCTAVE_DOWN))) doTranspose(-12,opMaskTransposeNote); ImGui::Separator(); - if (ImGui::MenuItem("values up",BIND_FOR(GUI_ACTION_PAT_VALUE_UP))) doTranspose(1,opMaskTransposeValue); - if (ImGui::MenuItem("values down",BIND_FOR(GUI_ACTION_PAT_VALUE_DOWN))) doTranspose(-1,opMaskTransposeValue); - if (ImGui::MenuItem("values up (+16)",BIND_FOR(GUI_ACTION_PAT_VALUE_UP_COARSE))) doTranspose(16,opMaskTransposeValue); - if (ImGui::MenuItem("values down (-16)",BIND_FOR(GUI_ACTION_PAT_VALUE_DOWN_COARSE))) doTranspose(-16,opMaskTransposeValue); + if (ImGui::MenuItem(_("values up"),BIND_FOR(GUI_ACTION_PAT_VALUE_UP))) doTranspose(1,opMaskTransposeValue); + if (ImGui::MenuItem(_("values down"),BIND_FOR(GUI_ACTION_PAT_VALUE_DOWN))) doTranspose(-1,opMaskTransposeValue); + if (ImGui::MenuItem(_("values up (+16)"),BIND_FOR(GUI_ACTION_PAT_VALUE_UP_COARSE))) doTranspose(16,opMaskTransposeValue); + if (ImGui::MenuItem(_("values down (-16)"),BIND_FOR(GUI_ACTION_PAT_VALUE_DOWN_COARSE))) doTranspose(-16,opMaskTransposeValue); ImGui::Separator(); ImGui::AlignTextToFramePadding(); - ImGui::Text("transpose"); + ImGui::Text(_("transpose")); ImGui::SameLine(); ImGui::SetNextItemWidth(120.0f*dpiScale); if (ImGui::InputInt("##TransposeAmount",&transposeAmount,1,12)) { @@ -2940,21 +2940,21 @@ void FurnaceGUI::editOptions(bool topMenu) { if (transposeAmount>96) transposeAmount=96; } ImGui::SameLine(); - if (ImGui::Button("Notes")) { + if (ImGui::Button(_("Notes"))) { doTranspose(transposeAmount,opMaskTransposeNote); ImGui::CloseCurrentPopup(); } ImGui::SameLine(); - if (ImGui::Button("Values")) { + if (ImGui::Button(_("Values"))) { doTranspose(transposeAmount,opMaskTransposeValue); ImGui::CloseCurrentPopup(); } ImGui::Separator(); - if (ImGui::MenuItem("interpolate",BIND_FOR(GUI_ACTION_PAT_INTERPOLATE))) doInterpolate(); - if (ImGui::BeginMenu("change instrument...")) { + if (ImGui::MenuItem(_("interpolate"),BIND_FOR(GUI_ACTION_PAT_INTERPOLATE))) doInterpolate(); + if (ImGui::BeginMenu(_("change instrument..."))) { if (e->song.ins.empty()) { - ImGui::Text("no instruments available"); + ImGui::Text(_("no instruments available")); } for (size_t i=0; isong.ins.size(); i++) { snprintf(id,4095,"%.2X: %s",(int)i,e->song.ins[i]->name.c_str()); @@ -2965,8 +2965,8 @@ void FurnaceGUI::editOptions(bool topMenu) { ImGui::EndMenu(); } - if (ImGui::BeginMenu("gradient/fade...")) { - if (ImGui::InputInt("Start",&fadeMin,1,16)) { + if (ImGui::BeginMenu(_("gradient/fade..."))) { + if (ImGui::InputInt(_("Start"),&fadeMin,1,16)) { if (fadeMin<0) fadeMin=0; if (fadeMode) { if (fadeMin>15) fadeMin=15; @@ -2974,7 +2974,7 @@ void FurnaceGUI::editOptions(bool topMenu) { if (fadeMin>255) fadeMin=255; } } - if (ImGui::InputInt("End",&fadeMax,1,16)) { + if (ImGui::InputInt(_("End"),&fadeMax,1,16)) { if (fadeMax<0) fadeMax=0; if (fadeMode) { if (fadeMax>15) fadeMax=15; @@ -2982,7 +2982,7 @@ void FurnaceGUI::editOptions(bool topMenu) { if (fadeMax>255) fadeMax=255; } } - if (ImGui::Checkbox("Nibble mode",&fadeMode)) { + if (ImGui::Checkbox(_("Nibble mode"),&fadeMode)) { if (fadeMode) { if (fadeMin>15) fadeMin=15; if (fadeMax>15) fadeMax=15; @@ -2991,25 +2991,25 @@ void FurnaceGUI::editOptions(bool topMenu) { if (fadeMax>255) fadeMax=255; } } - if (ImGui::Button("Go ahead")) { + if (ImGui::Button(_("Go ahead"))) { doFade(fadeMin,fadeMax,fadeMode); ImGui::CloseCurrentPopup(); } ImGui::EndMenu(); } - if (ImGui::BeginMenu("scale...")) { + if (ImGui::BeginMenu(_("scale..."))) { if (ImGui::InputFloat("##ScaleMax",&scaleMax,1,10,"%.1f%%")) { if (scaleMax<0.0f) scaleMax=0.0f; if (scaleMax>25600.0f) scaleMax=25600.0f; } - if (ImGui::Button("Scale")) { + if (ImGui::Button(_("Scale"))) { doScale(scaleMax); ImGui::CloseCurrentPopup(); } ImGui::EndMenu(); } - if (ImGui::BeginMenu("randomize...")) { - if (ImGui::InputInt("Minimum",&randomizeMin,1,16)) { + if (ImGui::BeginMenu(_("randomize..."))) { + if (ImGui::InputInt(_("Minimum"),&randomizeMin,1,16)) { if (randomizeMin<0) randomizeMin=0; if (randomMode) { if (randomizeMin>15) randomizeMin=15; @@ -3018,7 +3018,7 @@ void FurnaceGUI::editOptions(bool topMenu) { } if (randomizeMin>randomizeMax) randomizeMin=randomizeMax; } - if (ImGui::InputInt("Maximum",&randomizeMax,1,16)) { + if (ImGui::InputInt(_("Maximum"),&randomizeMax,1,16)) { if (randomizeMax<0) randomizeMax=0; if (randomizeMax255) randomizeMax=255; } } - if (ImGui::Checkbox("Nibble mode",&randomMode)) { + if (ImGui::Checkbox(_("Nibble mode"),&randomMode)) { if (randomMode) { if (randomizeMin>15) randomizeMin=15; if (randomizeMax>15) randomizeMax=15; @@ -3037,41 +3037,41 @@ void FurnaceGUI::editOptions(bool topMenu) { } } // TODO: add an option to set effect to specific value? - if (ImGui::Button("Randomize")) { + if (ImGui::Button(_("Randomize"))) { doRandomize(randomizeMin,randomizeMax,randomMode); ImGui::CloseCurrentPopup(); } ImGui::EndMenu(); } - if (ImGui::MenuItem("invert values",BIND_FOR(GUI_ACTION_PAT_INVERT_VALUES))) doInvertValues(); + if (ImGui::MenuItem(_("invert values"),BIND_FOR(GUI_ACTION_PAT_INVERT_VALUES))) doInvertValues(); ImGui::Separator(); - if (ImGui::MenuItem("flip selection",BIND_FOR(GUI_ACTION_PAT_FLIP_SELECTION))) doFlip(); + if (ImGui::MenuItem(_("flip selection"),BIND_FOR(GUI_ACTION_PAT_FLIP_SELECTION))) doFlip(); ImGui::SetNextItemWidth(120.0f*dpiScale); - if (ImGui::InputInt("collapse/expand amount##CollapseAmount",&collapseAmount,1,4)) { + if (ImGui::InputInt(_("collapse/expand amount##CollapseAmount"),&collapseAmount,1,4)) { if (collapseAmount<2) collapseAmount=2; if (collapseAmount>256) collapseAmount=256; } - if (ImGui::MenuItem("collapse",BIND_FOR(GUI_ACTION_PAT_COLLAPSE_ROWS))) doCollapse(collapseAmount,selStart,selEnd); - if (ImGui::MenuItem("expand",BIND_FOR(GUI_ACTION_PAT_EXPAND_ROWS))) doExpand(collapseAmount,selStart,selEnd); + if (ImGui::MenuItem(_("collapse"),BIND_FOR(GUI_ACTION_PAT_COLLAPSE_ROWS))) doCollapse(collapseAmount,selStart,selEnd); + if (ImGui::MenuItem(_("expand"),BIND_FOR(GUI_ACTION_PAT_EXPAND_ROWS))) doExpand(collapseAmount,selStart,selEnd); if (topMenu) { ImGui::Separator(); - if (ImGui::MenuItem("collapse pattern",BIND_FOR(GUI_ACTION_PAT_COLLAPSE_PAT))) doAction(GUI_ACTION_PAT_COLLAPSE_PAT); - if (ImGui::MenuItem("expand pattern",BIND_FOR(GUI_ACTION_PAT_EXPAND_PAT))) doAction(GUI_ACTION_PAT_EXPAND_PAT); + if (ImGui::MenuItem(_("collapse pattern"),BIND_FOR(GUI_ACTION_PAT_COLLAPSE_PAT))) doAction(GUI_ACTION_PAT_COLLAPSE_PAT); + if (ImGui::MenuItem(_("expand pattern"),BIND_FOR(GUI_ACTION_PAT_EXPAND_PAT))) doAction(GUI_ACTION_PAT_EXPAND_PAT); } if (topMenu) { ImGui::Separator(); - if (ImGui::MenuItem("collapse song",BIND_FOR(GUI_ACTION_PAT_COLLAPSE_SONG))) doAction(GUI_ACTION_PAT_COLLAPSE_SONG); - if (ImGui::MenuItem("expand song",BIND_FOR(GUI_ACTION_PAT_EXPAND_SONG))) doAction(GUI_ACTION_PAT_EXPAND_SONG); + if (ImGui::MenuItem(_("collapse song"),BIND_FOR(GUI_ACTION_PAT_COLLAPSE_SONG))) doAction(GUI_ACTION_PAT_COLLAPSE_SONG); + if (ImGui::MenuItem(_("expand song"),BIND_FOR(GUI_ACTION_PAT_EXPAND_SONG))) doAction(GUI_ACTION_PAT_EXPAND_SONG); } if (topMenu) { ImGui::Separator(); - if (ImGui::MenuItem("find/replace",BIND_FOR(GUI_ACTION_WINDOW_FIND),findOpen)) { + if (ImGui::MenuItem(_("find/replace"),BIND_FOR(GUI_ACTION_WINDOW_FIND),findOpen)) { if (findOpen) { findOpen=false; } else { @@ -3085,7 +3085,7 @@ void FurnaceGUI::toggleMobileUI(bool enable, bool force) { if (mobileUI!=enable || force) { if (!mobileUI && enable) { if (!ImGui::SaveIniSettingsToDisk(finalLayoutPath,true)) { - reportError(fmt::sprintf("could NOT save layout! %s",strerror(errno))); + reportError(fmt::sprintf(_("could NOT save layout! %s"),strerror(errno))); } } mobileUI=enable; @@ -3097,7 +3097,7 @@ void FurnaceGUI::toggleMobileUI(bool enable, bool force) { } else { ImGui::GetIO().IniFilename=NULL; if (!ImGui::LoadIniSettingsFromDisk(finalLayoutPath,true)) { - reportError(fmt::sprintf("could NOT load layout! %s",strerror(errno))); + reportError(fmt::sprintf(_("could NOT load layout! %s"),strerror(errno))); ImGui::LoadIniSettingsFromMemory(defaultLayout); } ImGui::GetIO().ConfigFlags&=~ImGuiConfigFlags_InertialScrollEnable; @@ -3559,7 +3559,7 @@ bool FurnaceGUI::loop() { } if (safeMode) { - showError("Furnace has been started in Safe Mode.\nthis means that:\n\n- software rendering is being used\n- audio output may not work\n- font loading is disabled\n\ncheck any settings which may have made Furnace start up in this mode.\nfont loading is one of these."); + showError(_("Furnace has been started in Safe Mode.\nthis means that:\n\n- software rendering is being used\n- audio output may not work\n- font loading is disabled\n\ncheck any settings which may have made Furnace start up in this mode.\nfont loading is one of these.")); settingsOpen=true; } @@ -3734,10 +3734,10 @@ bool FurnaceGUI::loop() { MARK_MODIFIED; } else if (modified) { nextFile=ev.drop.file; - showWarning("Unsaved changes! Save changes before opening file?",GUI_WARN_OPEN_DROP); + showWarning(_("Unsaved changes! Save changes before opening file?"),GUI_WARN_OPEN_DROP); } else { if (load(ev.drop.file)>0) { - showError(fmt::sprintf("Error while loading file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while loading file! (%s)"),lastError)); } } SDL_free(ev.drop.file); @@ -4044,7 +4044,7 @@ bool FurnaceGUI::loop() { } if (initAttempts>5) { - reportError("can't keep going without graphics! Furnace will quit now."); + reportError(_("can't keep going without graphics! Furnace will quit now.")); quit=true; break; } @@ -4058,7 +4058,7 @@ bool FurnaceGUI::loop() { logD("building font..."); if (!ImGui::GetIO().Fonts->Build()) { logE("error while building font atlas!"); - showError("error while loading fonts! please check your settings."); + showError(_("error while loading fonts! please check your settings.")); ImGui::GetIO().Fonts->Clear(); mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; @@ -4182,29 +4182,29 @@ bool FurnaceGUI::loop() { if (!mobileUI) { ImGui::BeginMainMenuBar(); - if (ImGui::BeginMenu(settings.capitalMenuBar?"File":"file")) { - if (ImGui::MenuItem("new...",BIND_FOR(GUI_ACTION_NEW))) { + if (ImGui::BeginMenu(settings.capitalMenuBar?_("File"):_("file"))) { + if (ImGui::MenuItem(_("new..."),BIND_FOR(GUI_ACTION_NEW))) { if (modified) { - showWarning("Unsaved changes! Save changes before creating a new song?",GUI_WARN_NEW); + showWarning(_("Unsaved changes! Save changes before creating a new song?"),GUI_WARN_NEW); } else { displayNew=true; } } - if (ImGui::MenuItem("open...",BIND_FOR(GUI_ACTION_OPEN))) { + if (ImGui::MenuItem(_("open..."),BIND_FOR(GUI_ACTION_OPEN))) { if (modified) { - showWarning("Unsaved changes! Save changes before opening another file?",GUI_WARN_OPEN); + showWarning(_("Unsaved changes! Save changes before opening another file?"),GUI_WARN_OPEN); } else { openFileDialog(GUI_FILE_OPEN); } } - if (ImGui::BeginMenu("open recent")) { + if (ImGui::BeginMenu(_("open recent"))) { exitDisabledTimer=1; for (int i=0; i<(int)recentFile.size(); i++) { String item=recentFile[i]; if (ImGui::MenuItem(item.c_str())) { if (modified) { nextFile=item; - showWarning("Unsaved changes! Save changes before opening file?",GUI_WARN_OPEN_DROP); + showWarning(_("Unsaved changes! Save changes before opening file?"),GUI_WARN_OPEN_DROP); } else { recentFile.erase(i); i--; @@ -4213,35 +4213,35 @@ bool FurnaceGUI::loop() { } } if (recentFile.empty()) { - ImGui::Text("nothing here yet"); + ImGui::Text(_("nothing here yet")); } else { ImGui::Separator(); - if (ImGui::MenuItem("clear history")) { - showWarning("Are you sure you want to clear the recent file list?",GUI_WARN_CLEAR_HISTORY); + if (ImGui::MenuItem(_("clear history"))) { + showWarning(_("Are you sure you want to clear the recent file list?"),GUI_WARN_CLEAR_HISTORY); } } ImGui::EndMenu(); } ImGui::Separator(); - if (ImGui::MenuItem("save",BIND_FOR(GUI_ACTION_SAVE))) { + if (ImGui::MenuItem(_("save"),BIND_FOR(GUI_ACTION_SAVE))) { if (curFileName=="" || (curFileName.find(backupPath)==0) || e->song.version>=0xff00) { openFileDialog(GUI_FILE_SAVE); } else { if (save(curFileName,e->song.isDMF?e->song.version:0)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); } } } - if (ImGui::MenuItem("save as...",BIND_FOR(GUI_ACTION_SAVE_AS))) { + if (ImGui::MenuItem(_("save as..."),BIND_FOR(GUI_ACTION_SAVE_AS))) { openFileDialog(GUI_FILE_SAVE); } ImGui::Separator(); if (settings.exportOptionsLayout==0) { - if (ImGui::BeginMenu("export audio...")) { + if (ImGui::BeginMenu(_("export audio..."))) { drawExportAudio(); ImGui::EndMenu(); } - if (ImGui::BeginMenu("export VGM...")) { + if (ImGui::BeginMenu(_("export VGM..."))) { drawExportVGM(); ImGui::EndMenu(); } @@ -4250,7 +4250,7 @@ bool FurnaceGUI::loop() { if ((e->song.system[i]==DIV_SYSTEM_VERA) || (e->song.system[i]==DIV_SYSTEM_YM2151)) numZSMCompat++; } if (numZSMCompat>0) { - if (ImGui::BeginMenu("export ZSM...")) { + if (ImGui::BeginMenu(_("export ZSM..."))) { drawExportZSM(); ImGui::EndMenu(); } @@ -4260,29 +4260,29 @@ bool FurnaceGUI::loop() { if (e->song.system[i]==DIV_SYSTEM_AMIGA) numAmiga++; } if (numAmiga && settings.iCannotWait) { - if (ImGui::BeginMenu("export Amiga validation data...")) { + if (ImGui::BeginMenu(_("export Amiga validation data..."))) { drawExportAmigaVal(); ImGui::EndMenu(); } } - if (ImGui::BeginMenu("export text...")) { + if (ImGui::BeginMenu(_("export text..."))) { drawExportText(); ImGui::EndMenu(); } - if (ImGui::BeginMenu("export command stream...")) { + if (ImGui::BeginMenu(_("export command stream..."))) { drawExportCommand(); ImGui::EndMenu(); } - if (ImGui::BeginMenu("export .dmf...")) { + if (ImGui::BeginMenu(_("export .dmf..."))) { drawExportDMF(); ImGui::EndMenu(); } } else if (settings.exportOptionsLayout==2) { - if (ImGui::MenuItem("export audio...")) { + if (ImGui::MenuItem(_("export audio..."))) { curExportType=GUI_EXPORT_AUDIO; displayExport=true; } - if (ImGui::MenuItem("export VGM...")) { + if (ImGui::MenuItem(_("export VGM..."))) { curExportType=GUI_EXPORT_VGM; displayExport=true; } @@ -4291,7 +4291,7 @@ bool FurnaceGUI::loop() { if ((e->song.system[i]==DIV_SYSTEM_VERA) || (e->song.system[i]==DIV_SYSTEM_YM2151)) numZSMCompat++; } if (numZSMCompat>0) { - if (ImGui::MenuItem("export ZSM...")) { + if (ImGui::MenuItem(_("export ZSM..."))) { curExportType=GUI_EXPORT_ZSM; displayExport=true; } @@ -4301,40 +4301,40 @@ bool FurnaceGUI::loop() { if (e->song.system[i]==DIV_SYSTEM_AMIGA) numAmiga++; } if (numAmiga && settings.iCannotWait) { - if (ImGui::MenuItem("export Amiga validation data...")) { + if (ImGui::MenuItem(_("export Amiga validation data..."))) { curExportType=GUI_EXPORT_AMIGA_VAL; displayExport=true; } } - if (ImGui::MenuItem("export text...")) { + if (ImGui::MenuItem(_("export text..."))) { curExportType=GUI_EXPORT_TEXT; displayExport=true; } - if (ImGui::MenuItem("export command stream...")) { + if (ImGui::MenuItem(_("export command stream..."))) { curExportType=GUI_EXPORT_CMD_STREAM; displayExport=true; } - if (ImGui::MenuItem("export .dmf...")) { + if (ImGui::MenuItem(_("export .dmf..."))) { curExportType=GUI_EXPORT_DMF; displayExport=true; } } else { - if (ImGui::MenuItem("export...",BIND_FOR(GUI_ACTION_EXPORT))) { + if (ImGui::MenuItem(_("export..."),BIND_FOR(GUI_ACTION_EXPORT))) { displayExport=true; } } ImGui::Separator(); if (!settings.classicChipOptions) { - if (ImGui::MenuItem("manage chips")) { + if (ImGui::MenuItem(_("manage chips"))) { nextWindow=GUI_WINDOW_SYS_MANAGER; } } else { - if (ImGui::BeginMenu("add chip...")) { + if (ImGui::BeginMenu(_("add chip..."))) { exitDisabledTimer=1; DivSystem picked=systemPicker(); if (picked!=DIV_SYSTEM_NULL) { if (!e->addSystem(picked)) { - showError("cannot add chip! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot add chip! (%s)"),e->getLastError())); } else { MARK_MODIFIED; } @@ -4346,7 +4346,7 @@ bool FurnaceGUI::loop() { } ImGui::EndMenu(); } - if (ImGui::BeginMenu("configure chip...")) { + if (ImGui::BeginMenu(_("configure chip..."))) { exitDisabledTimer=1; for (int i=0; isong.systemLen; i++) { if (ImGui::TreeNode(fmt::sprintf("%d. %s##_SYSP%d",i+1,getSystemName(e->song.system[i]),i).c_str())) { @@ -4356,9 +4356,9 @@ bool FurnaceGUI::loop() { } ImGui::EndMenu(); } - if (ImGui::BeginMenu("change chip...")) { + if (ImGui::BeginMenu(_("change chip..."))) { exitDisabledTimer=1; - ImGui::Checkbox("Preserve channel positions",&preserveChanPos); + ImGui::Checkbox(_("Preserve channel positions"),&preserveChanPos); for (int i=0; isong.systemLen; i++) { if (ImGui::BeginMenu(fmt::sprintf("%d. %s##_SYSC%d",i+1,getSystemName(e->song.system[i]),i).c_str())) { DivSystem picked=systemPicker(); @@ -4370,7 +4370,7 @@ bool FurnaceGUI::loop() { } updateWindowTitle(); } else { - showError("cannot change chip! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot change chip! (%s)"),e->getLastError())); } ImGui::CloseCurrentPopup(); } @@ -4379,13 +4379,13 @@ bool FurnaceGUI::loop() { } ImGui::EndMenu(); } - if (ImGui::BeginMenu("remove chip...")) { + if (ImGui::BeginMenu(_("remove chip..."))) { exitDisabledTimer=1; - ImGui::Checkbox("Preserve channel positions",&preserveChanPos); + ImGui::Checkbox(_("Preserve channel positions"),&preserveChanPos); for (int i=0; isong.systemLen; i++) { if (ImGui::MenuItem(fmt::sprintf("%d. %s##_SYSR%d",i+1,getSystemName(e->song.system[i]),i).c_str())) { if (!e->removeSystem(i,preserveChanPos)) { - showError("cannot remove chip! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot remove chip! (%s)"),e->getLastError())); } else { MARK_MODIFIED; } @@ -4399,17 +4399,17 @@ bool FurnaceGUI::loop() { } } #if defined(FURNACE_DATADIR) && defined(SHOW_OPEN_ASSETS_MENU_ENTRY) - if (ImGui::MenuItem("open built-in assets directory")) { + if (ImGui::MenuItem(_("open built-in assets directory"))) { SDL_OpenURL("file://" FURNACE_DATADIR); } #endif ImGui::BeginDisabled(exitDisabledTimer); ImGui::Separator(); - if (ImGui::MenuItem("restore backup",BIND_FOR(GUI_ACTION_OPEN_BACKUP))) { + if (ImGui::MenuItem(_("restore backup"),BIND_FOR(GUI_ACTION_OPEN_BACKUP))) { doAction(GUI_ACTION_OPEN_BACKUP); } ImGui::Separator(); - if (ImGui::MenuItem("exit...",BIND_FOR(GUI_ACTION_QUIT))) { + if (ImGui::MenuItem(_("exit..."),BIND_FOR(GUI_ACTION_QUIT))) { requestQuit(); } ImGui::EndDisabled(); @@ -4417,114 +4417,114 @@ bool FurnaceGUI::loop() { } else { exitDisabledTimer=0; } - if (ImGui::BeginMenu(settings.capitalMenuBar?"Edit":"edit")) { + if (ImGui::BeginMenu(settings.capitalMenuBar?_("Edit"):_("edit"))) { ImGui::Text("..."); ImGui::Separator(); - if (ImGui::MenuItem("undo",BIND_FOR(GUI_ACTION_UNDO))) doUndo(); - if (ImGui::MenuItem("redo",BIND_FOR(GUI_ACTION_REDO))) doRedo(); + if (ImGui::MenuItem(_("undo"),BIND_FOR(GUI_ACTION_UNDO))) doUndo(); + if (ImGui::MenuItem(_("redo"),BIND_FOR(GUI_ACTION_REDO))) doRedo(); ImGui::Separator(); editOptions(true); ImGui::Separator(); - if (ImGui::MenuItem("clear...")) { + if (ImGui::MenuItem(_("clear..."))) { doAction(GUI_ACTION_CLEAR); } ImGui::EndMenu(); } - if (ImGui::BeginMenu(settings.capitalMenuBar?"Settings":"settings")) { + if (ImGui::BeginMenu(settings.capitalMenuBar?_("Settings"):_("settings"))) { #ifndef IS_MOBILE - if (ImGui::MenuItem("full screen",BIND_FOR(GUI_ACTION_FULLSCREEN),fullScreen)) { + if (ImGui::MenuItem(_("full screen"),BIND_FOR(GUI_ACTION_FULLSCREEN),fullScreen)) { doAction(GUI_ACTION_FULLSCREEN); } #endif - if (ImGui::MenuItem("lock layout",NULL,lockLayout)) { + if (ImGui::MenuItem(_("lock layout"),NULL,lockLayout)) { lockLayout=!lockLayout; } - if (ImGui::MenuItem("pattern visualizer",NULL,fancyPattern)) { + if (ImGui::MenuItem(_("pattern visualizer"),NULL,fancyPattern)) { fancyPattern=!fancyPattern; e->enableCommandStream(fancyPattern); e->getCommandStream(cmdStream); cmdStream.clear(); } - if (ImGui::MenuItem("reset layout")) { - showWarning("Are you sure you want to reset the workspace layout?",GUI_WARN_RESET_LAYOUT); + if (ImGui::MenuItem(_("reset layout"))) { + showWarning(_("Are you sure you want to reset the workspace layout?"),GUI_WARN_RESET_LAYOUT); } #ifdef IS_MOBILE - if (ImGui::MenuItem("switch to mobile view")) { + if (ImGui::MenuItem(_("switch to mobile view"))) { toggleMobileUI(!mobileUI); } #endif - if (ImGui::MenuItem("user systems...",BIND_FOR(GUI_ACTION_WINDOW_USER_PRESETS))) { + if (ImGui::MenuItem(_("user systems..."),BIND_FOR(GUI_ACTION_WINDOW_USER_PRESETS))) { userPresetsOpen=true; } - if (ImGui::MenuItem("settings...",BIND_FOR(GUI_ACTION_WINDOW_SETTINGS))) { + if (ImGui::MenuItem(_("settings..."),BIND_FOR(GUI_ACTION_WINDOW_SETTINGS))) { syncSettings(); settingsOpen=true; } ImGui::EndMenu(); } - if (ImGui::BeginMenu(settings.capitalMenuBar?"Window":"window")) { - if (ImGui::BeginMenu("song")) { - if (ImGui::MenuItem("song comments", BIND_FOR(GUI_ACTION_WINDOW_NOTES), notesOpen)) notesOpen = !notesOpen; - if (ImGui::MenuItem("song information", BIND_FOR(GUI_ACTION_WINDOW_SONG_INFO), songInfoOpen)) songInfoOpen = !songInfoOpen; - if (ImGui::MenuItem("subsongs", BIND_FOR(GUI_ACTION_WINDOW_SUBSONGS), subSongsOpen)) subSongsOpen = !subSongsOpen; + if (ImGui::BeginMenu(settings.capitalMenuBar?_("Window"):_("window"))) { + if (ImGui::BeginMenu(_("song"))) { + if (ImGui::MenuItem(_("song comments"), BIND_FOR(GUI_ACTION_WINDOW_NOTES), notesOpen)) notesOpen = !notesOpen; + if (ImGui::MenuItem(_("song information"), BIND_FOR(GUI_ACTION_WINDOW_SONG_INFO), songInfoOpen)) songInfoOpen = !songInfoOpen; + if (ImGui::MenuItem(_("subsongs"), BIND_FOR(GUI_ACTION_WINDOW_SUBSONGS), subSongsOpen)) subSongsOpen = !subSongsOpen; ImGui::Separator(); - if (ImGui::MenuItem("channels",BIND_FOR(GUI_ACTION_WINDOW_CHANNELS),channelsOpen)) channelsOpen=!channelsOpen; - if (ImGui::MenuItem("chip manager",BIND_FOR(GUI_ACTION_WINDOW_SYS_MANAGER),sysManagerOpen)) sysManagerOpen=!sysManagerOpen; - if (ImGui::MenuItem("orders",BIND_FOR(GUI_ACTION_WINDOW_ORDERS),ordersOpen)) ordersOpen=!ordersOpen; - if (ImGui::MenuItem("pattern",BIND_FOR(GUI_ACTION_WINDOW_PATTERN),patternOpen)) patternOpen=!patternOpen; - if (ImGui::MenuItem("pattern manager",BIND_FOR(GUI_ACTION_WINDOW_PAT_MANAGER),patManagerOpen)) patManagerOpen=!patManagerOpen; - if (ImGui::MenuItem("mixer",BIND_FOR(GUI_ACTION_WINDOW_MIXER),mixerOpen)) mixerOpen=!mixerOpen; - if (ImGui::MenuItem("compatibility flags",BIND_FOR(GUI_ACTION_WINDOW_COMPAT_FLAGS),compatFlagsOpen)) compatFlagsOpen=!compatFlagsOpen; + if (ImGui::MenuItem(_("channels"),BIND_FOR(GUI_ACTION_WINDOW_CHANNELS),channelsOpen)) channelsOpen=!channelsOpen; + if (ImGui::MenuItem(_("chip manager"),BIND_FOR(GUI_ACTION_WINDOW_SYS_MANAGER),sysManagerOpen)) sysManagerOpen=!sysManagerOpen; + if (ImGui::MenuItem(_("orders"),BIND_FOR(GUI_ACTION_WINDOW_ORDERS),ordersOpen)) ordersOpen=!ordersOpen; + if (ImGui::MenuItem(_("pattern"),BIND_FOR(GUI_ACTION_WINDOW_PATTERN),patternOpen)) patternOpen=!patternOpen; + if (ImGui::MenuItem(_("pattern manager"),BIND_FOR(GUI_ACTION_WINDOW_PAT_MANAGER),patManagerOpen)) patManagerOpen=!patManagerOpen; + if (ImGui::MenuItem(_("mixer"),BIND_FOR(GUI_ACTION_WINDOW_MIXER),mixerOpen)) mixerOpen=!mixerOpen; + if (ImGui::MenuItem(_("compatibility flags"),BIND_FOR(GUI_ACTION_WINDOW_COMPAT_FLAGS),compatFlagsOpen)) compatFlagsOpen=!compatFlagsOpen; ImGui::EndMenu(); } - if (ImGui::BeginMenu("assets")) { + if (ImGui::BeginMenu(_("assets"))) { if (settings.unifiedDataView) { - if (ImGui::MenuItem("assets", BIND_FOR(GUI_ACTION_WINDOW_INS_LIST), insListOpen)) insListOpen = !insListOpen; + if (ImGui::MenuItem(_("assets"), BIND_FOR(GUI_ACTION_WINDOW_INS_LIST), insListOpen)) insListOpen = !insListOpen; } else { - if (ImGui::MenuItem("instruments", BIND_FOR(GUI_ACTION_WINDOW_INS_LIST), insListOpen)) insListOpen = !insListOpen; - if (ImGui::MenuItem("samples", BIND_FOR(GUI_ACTION_WINDOW_SAMPLE_LIST), sampleListOpen)) sampleListOpen = !sampleListOpen; - if (ImGui::MenuItem("wavetables", BIND_FOR(GUI_ACTION_WINDOW_WAVE_LIST), waveListOpen)) waveListOpen = !waveListOpen; + if (ImGui::MenuItem(_("instruments"), BIND_FOR(GUI_ACTION_WINDOW_INS_LIST), insListOpen)) insListOpen = !insListOpen; + if (ImGui::MenuItem(_("samples"), BIND_FOR(GUI_ACTION_WINDOW_SAMPLE_LIST), sampleListOpen)) sampleListOpen = !sampleListOpen; + if (ImGui::MenuItem(_("wavetables"), BIND_FOR(GUI_ACTION_WINDOW_WAVE_LIST), waveListOpen)) waveListOpen = !waveListOpen; } ImGui::Separator(); - if (ImGui::MenuItem("instrument editor", BIND_FOR(GUI_ACTION_WINDOW_INS_EDIT), insEditOpen)) insEditOpen = !insEditOpen; - if (ImGui::MenuItem("sample editor", BIND_FOR(GUI_ACTION_WINDOW_SAMPLE_EDIT), sampleEditOpen)) sampleEditOpen = !sampleEditOpen; - if (ImGui::MenuItem("wavetable editor", BIND_FOR(GUI_ACTION_WINDOW_WAVE_EDIT), waveEditOpen)) waveEditOpen = !waveEditOpen; + if (ImGui::MenuItem(_("instrument editor"), BIND_FOR(GUI_ACTION_WINDOW_INS_EDIT), insEditOpen)) insEditOpen = !insEditOpen; + if (ImGui::MenuItem(_("sample editor"), BIND_FOR(GUI_ACTION_WINDOW_SAMPLE_EDIT), sampleEditOpen)) sampleEditOpen = !sampleEditOpen; + if (ImGui::MenuItem(_("wavetable editor"), BIND_FOR(GUI_ACTION_WINDOW_WAVE_EDIT), waveEditOpen)) waveEditOpen = !waveEditOpen; ImGui::EndMenu(); } - if (ImGui::BeginMenu("visualizers")) { - if (ImGui::MenuItem("oscilloscope (master)",BIND_FOR(GUI_ACTION_WINDOW_OSCILLOSCOPE),oscOpen)) oscOpen=!oscOpen; - if (ImGui::MenuItem("oscilloscope (per-channel)",BIND_FOR(GUI_ACTION_WINDOW_CHAN_OSC),chanOscOpen)) chanOscOpen=!chanOscOpen; - if (ImGui::MenuItem("oscilloscope (X-Y)",BIND_FOR(GUI_ACTION_WINDOW_XY_OSC),xyOscOpen)) xyOscOpen=!xyOscOpen; - if (ImGui::MenuItem("volume meter",BIND_FOR(GUI_ACTION_WINDOW_VOL_METER),volMeterOpen)) volMeterOpen=!volMeterOpen; + if (ImGui::BeginMenu(_("visualizers"))) { + if (ImGui::MenuItem(_("oscilloscope (master)"),BIND_FOR(GUI_ACTION_WINDOW_OSCILLOSCOPE),oscOpen)) oscOpen=!oscOpen; + if (ImGui::MenuItem(_("oscilloscope (per-channel)"),BIND_FOR(GUI_ACTION_WINDOW_CHAN_OSC),chanOscOpen)) chanOscOpen=!chanOscOpen; + if (ImGui::MenuItem(_("oscilloscope (X-Y)"),BIND_FOR(GUI_ACTION_WINDOW_XY_OSC),xyOscOpen)) xyOscOpen=!xyOscOpen; + if (ImGui::MenuItem(_("volume meter"),BIND_FOR(GUI_ACTION_WINDOW_VOL_METER),volMeterOpen)) volMeterOpen=!volMeterOpen; ImGui::EndMenu(); } - if (ImGui::BeginMenu("tempo")) { - if (ImGui::MenuItem("clock",BIND_FOR(GUI_ACTION_WINDOW_CLOCK),clockOpen)) clockOpen=!clockOpen; - if (ImGui::MenuItem("grooves",BIND_FOR(GUI_ACTION_WINDOW_GROOVES),groovesOpen)) groovesOpen=!groovesOpen; - if (ImGui::MenuItem("speed",BIND_FOR(GUI_ACTION_WINDOW_SPEED),speedOpen)) speedOpen=!speedOpen; + if (ImGui::BeginMenu(_("tempo"))) { + if (ImGui::MenuItem(_("clock"),BIND_FOR(GUI_ACTION_WINDOW_CLOCK),clockOpen)) clockOpen=!clockOpen; + if (ImGui::MenuItem(_("grooves"),BIND_FOR(GUI_ACTION_WINDOW_GROOVES),groovesOpen)) groovesOpen=!groovesOpen; + if (ImGui::MenuItem(_("speed"),BIND_FOR(GUI_ACTION_WINDOW_SPEED),speedOpen)) speedOpen=!speedOpen; ImGui::EndMenu(); } - if (ImGui::BeginMenu("debug")) { - if (ImGui::MenuItem("log viewer",BIND_FOR(GUI_ACTION_WINDOW_LOG),logOpen)) logOpen=!logOpen; - if (ImGui::MenuItem("register view",BIND_FOR(GUI_ACTION_WINDOW_REGISTER_VIEW),regViewOpen)) regViewOpen=!regViewOpen; - if (ImGui::MenuItem("statistics",BIND_FOR(GUI_ACTION_WINDOW_STATS),statsOpen)) statsOpen=!statsOpen; - if (ImGui::MenuItem("memory composition",BIND_FOR(GUI_ACTION_WINDOW_MEMORY),memoryOpen)) memoryOpen=!memoryOpen; + if (ImGui::BeginMenu(_("debug"))) { + if (ImGui::MenuItem(_("log viewer"),BIND_FOR(GUI_ACTION_WINDOW_LOG),logOpen)) logOpen=!logOpen; + if (ImGui::MenuItem(_("register view"),BIND_FOR(GUI_ACTION_WINDOW_REGISTER_VIEW),regViewOpen)) regViewOpen=!regViewOpen; + if (ImGui::MenuItem(_("statistics"),BIND_FOR(GUI_ACTION_WINDOW_STATS),statsOpen)) statsOpen=!statsOpen; + if (ImGui::MenuItem(_("memory composition"),BIND_FOR(GUI_ACTION_WINDOW_MEMORY),memoryOpen)) memoryOpen=!memoryOpen; ImGui::EndMenu(); } ImGui::Separator(); - if (ImGui::MenuItem("effect list",BIND_FOR(GUI_ACTION_WINDOW_EFFECT_LIST),effectListOpen)) effectListOpen=!effectListOpen; - if (ImGui::MenuItem("play/edit controls",BIND_FOR(GUI_ACTION_WINDOW_EDIT_CONTROLS),editControlsOpen)) editControlsOpen=!editControlsOpen; - if (ImGui::MenuItem("piano/input pad",BIND_FOR(GUI_ACTION_WINDOW_PIANO),pianoOpen)) pianoOpen=!pianoOpen; - if (spoilerOpen) if (ImGui::MenuItem("spoiler",NULL,spoilerOpen)) spoilerOpen=!spoilerOpen; + if (ImGui::MenuItem(_("effect list"),BIND_FOR(GUI_ACTION_WINDOW_EFFECT_LIST),effectListOpen)) effectListOpen=!effectListOpen; + if (ImGui::MenuItem(_("play/edit controls"),BIND_FOR(GUI_ACTION_WINDOW_EDIT_CONTROLS),editControlsOpen)) editControlsOpen=!editControlsOpen; + if (ImGui::MenuItem(_("piano/input pad"),BIND_FOR(GUI_ACTION_WINDOW_PIANO),pianoOpen)) pianoOpen=!pianoOpen; + if (spoilerOpen) if (ImGui::MenuItem(_("spoiler"),NULL,spoilerOpen)) spoilerOpen=!spoilerOpen; ImGui::EndMenu(); } - if (ImGui::BeginMenu(settings.capitalMenuBar?"Help":"help")) { - if (ImGui::MenuItem("effect list",BIND_FOR(GUI_ACTION_WINDOW_EFFECT_LIST),effectListOpen)) effectListOpen=!effectListOpen; - if (ImGui::MenuItem("debug menu",BIND_FOR(GUI_ACTION_WINDOW_DEBUG))) debugOpen=!debugOpen; - if (ImGui::MenuItem("inspector")) inspectorOpen=!inspectorOpen; - if (ImGui::MenuItem("panic",BIND_FOR(GUI_ACTION_PANIC))) e->syncReset(); - if (ImGui::MenuItem("about...",BIND_FOR(GUI_ACTION_WINDOW_ABOUT))) { + if (ImGui::BeginMenu(settings.capitalMenuBar?_("Help"):_("help"))) { + if (ImGui::MenuItem(_("effect list"),BIND_FOR(GUI_ACTION_WINDOW_EFFECT_LIST),effectListOpen)) effectListOpen=!effectListOpen; + if (ImGui::MenuItem(_("debug menu"),BIND_FOR(GUI_ACTION_WINDOW_DEBUG))) debugOpen=!debugOpen; + if (ImGui::MenuItem(_("inspector"))) inspectorOpen=!inspectorOpen; + if (ImGui::MenuItem(_("panic"),BIND_FOR(GUI_ACTION_PANIC))) e->syncReset(); + if (ImGui::MenuItem(_("about..."),BIND_FOR(GUI_ACTION_WINDOW_ABOUT))) { aboutOpen=true; aboutScroll=0; } @@ -4539,31 +4539,31 @@ bool FurnaceGUI::loop() { DivGroovePattern gp=e->getSpeeds(); if (gp.len==2) { - info=fmt::sprintf("| Speed %d:%d",gp.val[0],gp.val[1]); + info=fmt::sprintf(_("| Speed %d:%d"),gp.val[0],gp.val[1]); } else if (gp.len==1) { - info=fmt::sprintf("| Speed %d",gp.val[0]); + info=fmt::sprintf(_("| Speed %d"),gp.val[0]); } else { - info="| Groove"; + info=_("| Groove"); } - info+=fmt::sprintf(" @ %gHz (%g BPM) ",e->getCurHz(),calcBPM(e->getSpeeds(),e->getCurHz(),e->getVirtualTempoN(),e->getVirtualTempoD())); + info+=fmt::sprintf(_(" @ %gHz (%g BPM) "),e->getCurHz(),calcBPM(e->getSpeeds(),e->getCurHz(),e->getVirtualTempoN(),e->getVirtualTempoD())); if (settings.orderRowsBase) { - info+=fmt::sprintf("| Order %.2X/%.2X ",playOrder,e->curSubSong->ordersLen-1); + info+=fmt::sprintf(_("| Order %.2X/%.2X "),playOrder,e->curSubSong->ordersLen-1); } else { - info+=fmt::sprintf("| Order %d/%d ",playOrder,e->curSubSong->ordersLen-1); + info+=fmt::sprintf(_("| Order %d/%d "),playOrder,e->curSubSong->ordersLen-1); } if (settings.patRowsBase) { - info+=fmt::sprintf("| Row %.2X/%.2X ",oldRow,e->curSubSong->patLen); + info+=fmt::sprintf(_("| Row %.2X/%.2X "),oldRow,e->curSubSong->patLen); } else { - info+=fmt::sprintf("| Row %d/%d ",oldRow,e->curSubSong->patLen); + info+=fmt::sprintf(_("| Row %d/%d "),oldRow,e->curSubSong->patLen); } - info+="| "; + info+=_("| "); if (totalSeconds==0x7fffffff) { - info+="Don't you have anything better to do?"; + info+=_("Don't you have anything better to do?"); } else { if (totalSeconds>=86400) { int totalDays=totalSeconds/86400; @@ -4572,23 +4572,9 @@ bool FurnaceGUI::loop() { int totalMonths=totalDays/30; totalDays%=30; - if (totalYears>1) { - info+=fmt::sprintf("%d years ",totalYears); - } else if (totalYears) { - info+=fmt::sprintf("%d year ",totalYears); - } - - if (totalMonths>1) { - info+=fmt::sprintf("%d months ",totalMonths); - } else if (totalMonths) { - info+=fmt::sprintf("%d month ",totalMonths); - } - - if (totalDays>1) { - info+=fmt::sprintf("%d days ",totalDays); - } else { - info+=fmt::sprintf("%d day ",totalDays); - } + info+=fmt::sprintf(ngettext("%d year ","%d years ",totalYears),totalYears); + info+=fmt::sprintf(ngettext("%d month ","%d months ",totalMonths),totalMonths); + info+=fmt::sprintf(ngettext("%d day ","%d days ",totalDays),totalDays); } if (totalSeconds>=3600) { @@ -4608,13 +4594,13 @@ bool FurnaceGUI::loop() { case 0: // note if (p->data[cursor.y][0]>0) { if (p->data[cursor.y][0]==100) { - info=fmt::sprintf("Note off (cut)"); + info=fmt::sprintf(_("Note off (cut)")); } else if (p->data[cursor.y][0]==101) { - info=fmt::sprintf("Note off (release)"); + info=fmt::sprintf(_("Note off (release)")); } else if (p->data[cursor.y][0]==102) { - info=fmt::sprintf("Macro release only"); + info=fmt::sprintf(_("Macro release only")); } else { - info=fmt::sprintf("Note on: %s",noteName(p->data[cursor.y][0],p->data[cursor.y][1])); + info=fmt::sprintf(_("Note on: %s"),noteName(p->data[cursor.y][0],p->data[cursor.y][1])); } hasInfo=true; } @@ -4622,10 +4608,10 @@ bool FurnaceGUI::loop() { case 1: // instrument if (p->data[cursor.y][2]>-1) { if (p->data[cursor.y][2]>=(int)e->song.ins.size()) { - info=fmt::sprintf("Ins %d: ",p->data[cursor.y][2]); + info=fmt::sprintf(_("Ins %d: "),p->data[cursor.y][2]); } else { DivInstrument* ins=e->getIns(p->data[cursor.y][2]); - info=fmt::sprintf("Ins %d: %s",p->data[cursor.y][2],ins->name); + info=fmt::sprintf(_("Ins %d: %s"),p->data[cursor.y][2],ins->name); } hasInfo=true; } @@ -4634,10 +4620,10 @@ bool FurnaceGUI::loop() { if (p->data[cursor.y][3]>-1) { int maxVol=e->getMaxVolumeChan(cursor.xCoarse); if (maxVol<1 || p->data[cursor.y][3]>maxVol) { - info=fmt::sprintf("Set volume: %d (%.2X, INVALID!)",p->data[cursor.y][3],p->data[cursor.y][3]); + info=fmt::sprintf(_("Set volume: %d (%.2X, INVALID!)"),p->data[cursor.y][3],p->data[cursor.y][3]); } else { float realVol=e->mapVelocity(cursor.xCoarse,(float)p->data[cursor.y][3]/(float)maxVol); - info=fmt::sprintf("Set volume: %d (%.2X, %d%%)",p->data[cursor.y][3],p->data[cursor.y][3],(int)(realVol*100.0f/(float)maxVol)); + info=fmt::sprintf(_("Set volume: %d (%.2X, %d%%)"),p->data[cursor.y][3],p->data[cursor.y][3],(int)(realVol*100.0f/(float)maxVol)); } hasInfo=true; } @@ -4659,7 +4645,7 @@ bool FurnaceGUI::loop() { } ImGui::PopStyleColor(); if (modified) { - ImGui::Text("| modified"); + ImGui::Text(_("| modified")); } ImGui::EndMainMenuBar(); } @@ -4824,10 +4810,10 @@ bool FurnaceGUI::loop() { #ifndef NFD_NON_THREADED if (fileDialog->isOpen() && settings.sysFileDialog) { - ImGui::OpenPopup("System File Dialog Pending"); + ImGui::OpenPopup(_("System File Dialog Pending")); } - if (ImGui::BeginPopupModal("System File Dialog Pending",NULL,ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoBackground|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove)) { + if (ImGui::BeginPopupModal(_("System File Dialog Pending"),NULL,ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoBackground|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove)) { if (!fileDialog->isOpen()) { ImGui::CloseCurrentPopup(); } @@ -4940,12 +4926,12 @@ bool FurnaceGUI::loop() { } if (fileDialog->isError()) { #if defined(_WIN32) || defined(__APPLE__) - showError("there was an error in the file dialog! you may want to report this issue to:\nhttps://github.com/tildearrow/furnace/issues\ncheck the Log Viewer (window > log viewer) for more information.\n\nfor now please disable the system file picker in Settings > General."); + showError(_("there was an error in the file dialog! you may want to report this issue to:\nhttps://github.com/tildearrow/furnace/issues\ncheck the Log Viewer (window > log viewer) for more information.\n\nfor now please disable the system file picker in Settings > General.")); #else #ifdef ANDROID - showError("can't do anything without Storage permissions!"); + showError(_("can't do anything without Storage permissions!")); #else - showError("Zenity/KDialog not available!\nplease install one of these, or disable the system file picker in Settings > General."); + showError(_("Zenity/KDialog not available!\nplease install one of these, or disable the system file picker in Settings > General.")); #endif #endif } @@ -5018,13 +5004,13 @@ bool FurnaceGUI::loop() { case GUI_FILE_OPEN: case GUI_FILE_OPEN_BACKUP: if (load(copyOfName)>0) { - showError(fmt::sprintf("Error while loading file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while loading file! (%s)"),lastError)); } break; case GUI_FILE_SAVE: { bool saveWasSuccessful=true; if (save(copyOfName,0)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); saveWasSuccessful=false; } if (saveWasSuccessful && postWarnAction!=GUI_WARN_GENERIC) { @@ -5040,7 +5026,7 @@ bool FurnaceGUI::loop() { break; case GUI_WARN_OPEN_DROP: if (load(nextFile)>0) { - showError(fmt::sprintf("Error while loading file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while loading file! (%s)"),lastError)); } nextFile=""; break; @@ -5062,13 +5048,13 @@ bool FurnaceGUI::loop() { case GUI_FILE_SAVE_DMF: logD("saving: %s",copyOfName.c_str()); if (save(copyOfName,26)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); } break; case GUI_FILE_SAVE_DMF_LEGACY: logD("saving: %s",copyOfName.c_str()); if (save(copyOfName,24)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); } break; case GUI_FILE_INS_SAVE: @@ -5081,7 +5067,7 @@ bool FurnaceGUI::loop() { case GUI_FILE_INS_SAVE_DMP: if (curIns>=0 && curIns<(int)e->song.ins.size()) { if (!e->song.ins[curIns]->saveDMP(copyOfName.c_str())) { - showError("error while saving instrument! only the following instrument types are supported:\n- FM (OPN)\n- SN76489/Sega PSG\n- Game Boy\n- PC Engine\n- NES\n- C64\n- FM (OPLL)\n- FDS"); + showError(_("error while saving instrument! only the following instrument types are supported:\n- FM (OPN)\n- SN76489/Sega PSG\n- Game Boy\n- PC Engine\n- NES\n- C64\n- FM (OPLL)\n- FDS")); } else { pushRecentSys(copyOfName.c_str()); } @@ -5109,7 +5095,7 @@ bool FurnaceGUI::loop() { } break; case GUI_FILE_SAMPLE_OPEN: { - String errs="there were some errors while loading samples:\n"; + String errs=_("there were some errors while loading samples:\n"); bool warn=false; for (String i: fileDialog->getFileName()) { DivSample* s=e->sampleFromFile(i.c_str()); @@ -5154,7 +5140,7 @@ bool FurnaceGUI::loop() { }); updateSampleTex=true; } else { - showError("...but you haven't selected a sample!"); + showError(_("...but you haven't selected a sample!")); delete s; } } @@ -5169,7 +5155,7 @@ bool FurnaceGUI::loop() { case GUI_FILE_SAMPLE_SAVE: if (curSample>=0 && curSample<(int)e->song.sample.size()) { if (!e->song.sample[curSample]->save(copyOfName.c_str())) { - showError("could not save sample! open Log Viewer for more information."); + showError(_("could not save sample! open Log Viewer for more information.")); } else { pushRecentSys(copyOfName.c_str()); } @@ -5178,7 +5164,7 @@ bool FurnaceGUI::loop() { case GUI_FILE_SAMPLE_SAVE_RAW: if (curSample>=0 && curSample<(int)e->song.sample.size()) { if (!e->song.sample[curSample]->saveRaw(copyOfName.c_str())) { - showError("could not save sample! open Log Viewer for more information."); + showError(_("could not save sample! open Log Viewer for more information.")); } else { pushRecentSys(copyOfName.c_str()); } @@ -5197,13 +5183,13 @@ bool FurnaceGUI::loop() { std::vector instruments; bool ask=false; bool warn=false; - String warns="there were some warnings/errors while loading instruments:\n"; + String warns=_("there were some warnings/errors while loading instruments:\n"); int sampleCountBefore=e->song.sampleLen; for (String i: fileDialog->getFileName()) { std::vector insTemp=e->instrumentFromFile(i.c_str(),true,settings.readInsNames); if (insTemp.empty()) { warn=true; - warns+=fmt::sprintf("> %s: cannot load instrument! (%s)\n",i,e->getLastError()); + warns+=fmt::sprintf(_("> %s: cannot load instrument! (%s)\n"),i,e->getLastError()); } else if (!e->getWarnings().empty()) { warn=true; warns+=fmt::sprintf("> %s:\n%s\n",i,e->getWarnings()); @@ -5221,13 +5207,13 @@ bool FurnaceGUI::loop() { if (fileDialog->getFileName().size()>1) { showError(warns); } else { - showError("cannot load instrument! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot load instrument! (%s)"),e->getLastError())); } } else { showWarning(warns,GUI_WARN_GENERIC); } } else if (instruments.empty()) { - showError("congratulations! you managed to load nothing.\nyou are entitled to a bug report."); + showError(_("congratulations! you managed to load nothing.\nyou are entitled to a bug report.")); } if (!instruments.empty()) { if (ask) { // ask which instruments to load @@ -5268,19 +5254,19 @@ bool FurnaceGUI::loop() { if (curIns>=0 && curIns<(int)e->song.ins.size()) { *e->song.ins[curIns]=*instruments[0]; } else { - showError("...but you haven't selected an instrument!"); + showError(_("...but you haven't selected an instrument!")); } for (DivInstrument* i: instruments) { delete i; } } } else { - showError("cannot load instrument! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot load instrument! (%s)"),e->getLastError())); } break; } case GUI_FILE_WAVE_OPEN: { - String errs="there were some errors while loading wavetables:\n"; + String errs=_("there were some errors while loading wavetables:\n"); bool warn=false; for (String i: fileDialog->getFileName()) { DivWavetable* wave=e->waveFromFile(i.c_str()); @@ -5289,7 +5275,7 @@ bool FurnaceGUI::loop() { warn=true; errs+=fmt::sprintf("- %s: %s\n",i,e->getLastError()); } else { - showError("cannot load wavetable! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot load wavetable! (%s)"),e->getLastError())); } } else { int waveCount=-1; @@ -5299,7 +5285,7 @@ bool FurnaceGUI::loop() { warn=true; errs+=fmt::sprintf("- %s: %s\n",i,e->getLastError()); } else { - showError("cannot load wavetable! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot load wavetable! (%s)"),e->getLastError())); } } else { if (settings.selectAssetOnLoad) { @@ -5318,7 +5304,7 @@ bool FurnaceGUI::loop() { case GUI_FILE_WAVE_OPEN_REPLACE: { DivWavetable* wave=e->waveFromFile(copyOfName.c_str()); if (wave==NULL) { - showError("cannot load wavetable! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot load wavetable! (%s)"),e->getLastError())); } else { if (curWave>=0 && curWave<(int)e->song.wave.size()) { e->lockEngine([this,wave]() { @@ -5326,7 +5312,7 @@ bool FurnaceGUI::loop() { MARK_MODIFIED; }); } else { - showError("...but you haven't selected a wavetable!"); + showError(_("...but you haven't selected a wavetable!")); } delete wave; } @@ -5341,7 +5327,7 @@ bool FurnaceGUI::loop() { fclose(f); pushRecentSys(copyOfName.c_str()); } else { - showError("could not open file!"); + showError(_("could not open file!")); } w->finish(); delete w; @@ -5349,7 +5335,7 @@ bool FurnaceGUI::loop() { showWarning(e->getWarnings(),GUI_WARN_GENERIC); } } else { - showError(fmt::sprintf("could not write VGM! (%s)",e->getLastError())); + showError(fmt::sprintf(_("could not write VGM! (%s)"),e->getLastError())); } break; } @@ -5362,7 +5348,7 @@ bool FurnaceGUI::loop() { fclose(f); pushRecentSys(copyOfName.c_str()); } else { - showError("could not open file!"); + showError(_("could not open file!")); } w->finish(); delete w; @@ -5370,12 +5356,12 @@ bool FurnaceGUI::loop() { showWarning(e->getWarnings(),GUI_WARN_GENERIC); } } else { - showError(fmt::sprintf("Could not write ZSM! (%s)",e->getLastError())); + showError(fmt::sprintf(_("Could not write ZSM! (%s)"),e->getLastError())); } break; } case GUI_FILE_EXPORT_ROM: - showError("Coming soon!"); + showError(_("Coming soon!")); break; case GUI_FILE_EXPORT_TEXT: { SafeWriter* w=e->saveText(false); @@ -5386,7 +5372,7 @@ bool FurnaceGUI::loop() { fclose(f); pushRecentSys(copyOfName.c_str()); } else { - showError("could not open file!"); + showError(_("could not open file!")); } w->finish(); delete w; @@ -5394,7 +5380,7 @@ bool FurnaceGUI::loop() { showWarning(e->getWarnings(),GUI_WARN_GENERIC); } } else { - showError(fmt::sprintf("could not write text! (%s)",e->getLastError())); + showError(fmt::sprintf(_("could not write text! (%s)"),e->getLastError())); } break; } @@ -5407,7 +5393,7 @@ bool FurnaceGUI::loop() { fclose(f); pushRecentSys(copyOfName.c_str()); } else { - showError("could not open file!"); + showError(_("could not open file!")); } w->finish(); delete w; @@ -5415,7 +5401,7 @@ bool FurnaceGUI::loop() { showWarning(e->getWarnings(),GUI_WARN_GENERIC); } } else { - showError(fmt::sprintf("could not write command stream! (%s)",e->getLastError())); + showError(fmt::sprintf(_("could not write command stream! (%s)"),e->getLastError())); } break; } @@ -5439,12 +5425,12 @@ bool FurnaceGUI::loop() { break; case GUI_FILE_IMPORT_USER_PRESETS: if (!loadUserPresets(false,copyOfName,true)) { - showError("could not import user presets!"); + showError(_("could not import user presets!")); } break; case GUI_FILE_IMPORT_USER_PRESETS_REPLACE: if (!loadUserPresets(false,copyOfName,false)) { - showError(fmt::sprintf("could not import user presets! (%s)",strerror(errno))); + showError(fmt::sprintf(_("could not import user presets! (%s)"),strerror(errno))); } break; case GUI_FILE_IMPORT_CONFIG: @@ -5461,7 +5447,7 @@ bool FurnaceGUI::loop() { break; case GUI_FILE_EXPORT_USER_PRESETS: if (!saveUserPresets(false,copyOfName)) { - showError(fmt::sprintf("could not import user presets! (%s)",strerror(errno))); + showError(fmt::sprintf(_("could not import user presets! (%s)"),strerror(errno))); } break; case GUI_FILE_EXPORT_CONFIG: @@ -5478,14 +5464,14 @@ bool FurnaceGUI::loop() { break; case GUI_FILE_CMDSTREAM_OPEN: if (loadStream(copyOfName)>0) { - showError(fmt::sprintf("Error while loading file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while loading file! (%s)"),lastError)); } break; case GUI_FILE_TEST_OPEN: - showWarning(fmt::sprintf("You opened: %s",copyOfName),GUI_WARN_GENERIC); + showWarning(fmt::sprintf(_("You opened: %s"),copyOfName),GUI_WARN_GENERIC); break; case GUI_FILE_TEST_OPEN_MULTI: { - String msg="You opened:"; + String msg=_("You opened:"); for (String i: fileDialog->getFileName()) { msg+=fmt::sprintf("\n- %s",i); } @@ -5493,7 +5479,7 @@ bool FurnaceGUI::loop() { break; } case GUI_FILE_TEST_SAVE: - showWarning(fmt::sprintf("You saved: %s",copyOfName),GUI_WARN_GENERIC); + showWarning(fmt::sprintf(_("You saved: %s"),copyOfName),GUI_WARN_GENERIC); break; } curFileDialog=GUI_FILE_OPEN; @@ -5509,22 +5495,22 @@ bool FurnaceGUI::loop() { if (warnQuit && introPos>=11.0) { warnQuit=false; - ImGui::OpenPopup("Warning"); + ImGui::OpenPopup(_("Warning")); } if (displayError && introPos>=11.0) { displayError=false; - ImGui::OpenPopup("Error"); + ImGui::OpenPopup(_("Error")); } if (displayPendingIns) { displayPendingIns=false; - ImGui::OpenPopup("Select Instrument"); + ImGui::OpenPopup(_("Select Instrument")); } if (displayPendingRawSample) { displayPendingRawSample=false; - ImGui::OpenPopup("Import Raw Sample"); + ImGui::OpenPopup(_("Import Raw Sample")); } if (displayInsTypeList) { @@ -5539,7 +5525,7 @@ bool FurnaceGUI::loop() { if (displayExporting) { displayExporting=false; - ImGui::OpenPopup("Rendering..."); + ImGui::OpenPopup(_("Rendering...")); } if (displayNew) { @@ -5562,7 +5548,7 @@ bool FurnaceGUI::loop() { cursor=SelectionPoint(); updateWindowTitle(); } else { - ImGui::OpenPopup("New Song"); + ImGui::OpenPopup(_("New Song")); } } @@ -5572,12 +5558,12 @@ bool FurnaceGUI::loop() { paletteFirstFrame=true; curPaletteChoice=0; displayPalette=false; - ImGui::OpenPopup("Command Palette"); + ImGui::OpenPopup(_("Command Palette")); } if (displayExport) { displayExport=false; - ImGui::OpenPopup("Export"); + ImGui::OpenPopup(_("Export")); } if (displayEditString) { @@ -5592,10 +5578,10 @@ bool FurnaceGUI::loop() { MEASURE_BEGIN(popup); - centerNextWindow("Rendering...",canvasW,canvasH); - if (ImGui::BeginPopupModal("Rendering...",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::Text("Please wait..."); - if (ImGui::Button("Abort")) { + centerNextWindow(_("Rendering..."),canvasW,canvasH); + if (ImGui::BeginPopupModal(_("Rendering..."),NULL,ImGuiWindowFlags_AlwaysAutoResize)) { + ImGui::Text(_("Please wait...")); + if (ImGui::Button(_("Abort"))) { if (e->haltAudioFile()) { ImGui::CloseCurrentPopup(); } @@ -5612,7 +5598,7 @@ bool FurnaceGUI::loop() { ImVec2 newSongMinSize=mobileUI?ImVec2(canvasW-(portrait?0:(60.0*dpiScale)),canvasH-60.0*dpiScale):ImVec2(400.0f*dpiScale,200.0f*dpiScale); ImVec2 newSongMaxSize=ImVec2(canvasW-((mobileUI && !portrait)?(60.0*dpiScale):0),canvasH-(mobileUI?(60.0*dpiScale):0)); ImGui::SetNextWindowSizeConstraints(newSongMinSize,newSongMaxSize); - if (ImGui::BeginPopupModal("New Song",NULL,ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoScrollWithMouse|ImGuiWindowFlags_NoScrollbar)) { + if (ImGui::BeginPopupModal(_("New Song"),NULL,ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoScrollWithMouse|ImGuiWindowFlags_NoScrollbar)) { ImGui::SetWindowPos(ImVec2(((canvasW)-ImGui::GetWindowSize().x)*0.5,((canvasH)-ImGui::GetWindowSize().y)*0.5)); if (ImGui::GetWindowSize().xsong.version>=0xff00) { openFileDialog(GUI_FILE_SAVE); postWarnAction=GUI_WARN_QUIT; } else { if (save(curFileName,e->song.isDMF?e->song.version:0)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); } else { quit=true; } } } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); quit=true; } ImGui::SameLine(); - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_NEW: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { ImGui::CloseCurrentPopup(); if (curFileName=="" || curFileName.find(backupPath)==0 || e->song.version>=0xff00) { openFileDialog(GUI_FILE_SAVE); postWarnAction=GUI_WARN_NEW; } else { if (save(curFileName,e->song.isDMF?e->song.version:0)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); } else { displayNew=true; } } } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); displayNew=true; } ImGui::SameLine(); - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_OPEN: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { ImGui::CloseCurrentPopup(); if (curFileName=="" || curFileName.find(backupPath)==0 || e->song.version>=0xff00) { openFileDialog(GUI_FILE_SAVE); postWarnAction=GUI_WARN_OPEN; } else { if (save(curFileName,e->song.isDMF?e->song.version:0)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); } else { openFileDialog(GUI_FILE_OPEN); } } } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); openFileDialog(GUI_FILE_OPEN); } ImGui::SameLine(); - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_CV: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { ImGui::CloseCurrentPopup(); if (curFileName=="" || curFileName.find(backupPath)==0 || e->song.version>=0xff00) { openFileDialog(GUI_FILE_SAVE); postWarnAction=GUI_WARN_CV; } else { if (save(curFileName,e->song.isDMF?e->song.version:0)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); } else { cvOpen=true; } } } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); cvOpen=true; } ImGui::SameLine(); - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_OPEN_BACKUP: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { ImGui::CloseCurrentPopup(); if (curFileName=="" || curFileName.find(backupPath)==0 || e->song.version>=0xff00) { openFileDialog(GUI_FILE_SAVE); postWarnAction=GUI_WARN_OPEN_BACKUP; } else { if (save(curFileName,e->song.isDMF?e->song.version:0)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); } else { openFileDialog(GUI_FILE_OPEN_BACKUP); } } } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); openFileDialog(GUI_FILE_OPEN_BACKUP); } ImGui::SameLine(); - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_OPEN_DROP: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { ImGui::CloseCurrentPopup(); if (curFileName=="" || curFileName.find(backupPath)==0 || e->song.version>=0xff00) { openFileDialog(GUI_FILE_SAVE); postWarnAction=GUI_WARN_OPEN_DROP; } else { if (save(curFileName,e->song.isDMF?e->song.version:0)>0) { - showError(fmt::sprintf("Error while saving file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while saving file! (%s)"),lastError)); nextFile=""; } else { if (load(nextFile)>0) { - showError(fmt::sprintf("Error while loading file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while loading file! (%s)"),lastError)); } nextFile=""; } } } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); if (load(nextFile)>0) { - showError(fmt::sprintf("Error while loading file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while loading file! (%s)"),lastError)); } nextFile=""; } ImGui::SameLine(); - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); nextFile=""; } break; case GUI_WARN_RESET_LAYOUT: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { ImGui::CloseCurrentPopup(); if (!mobileUI) { ImGui::LoadIniSettingsFromMemory(defaultLayout); if (!ImGui::SaveIniSettingsToDisk(finalLayoutPath,true)) { - reportError(fmt::sprintf("could NOT save layout! %s",strerror(errno))); + reportError(fmt::sprintf(_("could NOT save layout! %s"),strerror(errno))); } } settingsChanged=true; } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_RESET_KEYBINDS: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { ImGui::CloseCurrentPopup(); resetKeybinds(); settingsChanged=true; } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_RESET_COLORS: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { ImGui::CloseCurrentPopup(); resetColors(); applyUISettings(false); settingsChanged=true; } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_CLOSE_SETTINGS: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { ImGui::CloseCurrentPopup(); settingsOpen=false; willCommit=true; settingsChanged=false; } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); settingsOpen=false; syncSettings(); settingsChanged=false; } ImGui::SameLine(); - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); } break; @@ -5867,17 +5853,17 @@ bool FurnaceGUI::loop() { ImGui::TableNextColumn(); ImGui::PushFont(headFont); ImGui::AlignTextToFramePadding(); - ImGui::Text("Erasing"); + ImGui::Text(_("Erasing")); ImGui::PopFont(); - if (ImGui::Button("All subsongs")) { + if (ImGui::Button(_("All subsongs"))) { stop(); e->clearSubSongs(); curOrder=0; MARK_MODIFIED; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Current subsong")) { + if (ImGui::Button(_("Current subsong"))) { stop(); e->lockEngine([this]() { e->curSubSong->clearData(); @@ -5887,7 +5873,7 @@ bool FurnaceGUI::loop() { MARK_MODIFIED; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Orders")) { + if (ImGui::Button(_("Orders"))) { stop(); e->lockEngine([this]() { memset(e->curOrders->ord,0,DIV_MAX_CHANS*DIV_MAX_PATTERNS); @@ -5898,7 +5884,7 @@ bool FurnaceGUI::loop() { MARK_MODIFIED; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Pattern")) { + if (ImGui::Button(_("Pattern"))) { stop(); e->lockEngine([this]() { for (int i=0; igetTotalChannelCount(); i++) { @@ -5913,7 +5899,7 @@ bool FurnaceGUI::loop() { MARK_MODIFIED; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Instruments")) { + if (ImGui::Button(_("Instruments"))) { stop(); e->lockEngine([this]() { e->song.clearInstruments(); @@ -5922,7 +5908,7 @@ bool FurnaceGUI::loop() { MARK_MODIFIED; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Wavetables")) { + if (ImGui::Button(_("Wavetables"))) { stop(); e->lockEngine([this]() { e->song.clearWavetables(); @@ -5931,7 +5917,7 @@ bool FurnaceGUI::loop() { MARK_MODIFIED; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Samples")) { + if (ImGui::Button(_("Samples"))) { stop(); e->lockEngine([this]() { e->song.clearSamples(); @@ -5944,10 +5930,10 @@ bool FurnaceGUI::loop() { ImGui::TableNextColumn(); ImGui::PushFont(headFont); ImGui::AlignTextToFramePadding(); - ImGui::Text("Optimization"); + ImGui::Text(_("Optimization")); ImGui::PopFont(); - if (ImGui::Button("De-duplicate patterns")) { + if (ImGui::Button(_("De-duplicate patterns"))) { stop(); e->lockEngine([this]() { e->curSubSong->optimizePatterns(); @@ -5956,20 +5942,20 @@ bool FurnaceGUI::loop() { MARK_MODIFIED; ImGui::CloseCurrentPopup(); } - if (ImGui::Button("Remove unused instruments")) { + if (ImGui::Button(_("Remove unused instruments"))) { stop(); e->delUnusedIns(); MARK_MODIFIED; ImGui::CloseCurrentPopup(); } /* - if (ImGui::Button("Remove unused wavetables")) { + if (ImGui::Button(_("Remove unused wavetables"))) { stop(); e->delUnusedWaves(); MARK_MODIFIED; ImGui::CloseCurrentPopup(); }*/ - if (ImGui::Button("Remove unused samples")) { + if (ImGui::Button(_("Remove unused samples"))) { stop(); e->delUnusedSamples(); MARK_MODIFIED; @@ -5986,7 +5972,7 @@ bool FurnaceGUI::loop() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::TableNextColumn(); - if (ImGui::Button("Never mind! Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Never mind! Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); } ImGui::TableNextColumn(); @@ -5994,7 +5980,7 @@ bool FurnaceGUI::loop() { } break; case GUI_WARN_SUBSONG_DEL: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { if (e->removeSubSong(e->getCurrentSubSong())) { undoHist.clear(); redoHist.clear(); @@ -6011,12 +5997,12 @@ bool FurnaceGUI::loop() { ImGui::CloseCurrentPopup(); } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_SYSTEM_DEL: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { e->removeSystem(sysToDelete,preserveChanPos); if (e->song.autoSystem) { autoDetectSystem(); @@ -6026,35 +6012,35 @@ bool FurnaceGUI::loop() { ImGui::CloseCurrentPopup(); } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_CLEAR_HISTORY: - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { recentFile.clear(); ImGui::CloseCurrentPopup(); } ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_RESET_CONFIG: pushDestColor(); - if (ImGui::Button("Yes")) { + if (ImGui::Button(_("Yes"))) { e->factoryReset(); quit=true; ImGui::CloseCurrentPopup(); } popDestColor(); ImGui::SameLine(); - if (ImGui::Button("No")) { + if (ImGui::Button(_("No"))) { ImGui::CloseCurrentPopup(); } break; case GUI_WARN_GENERIC: - if (ImGui::Button("OK")) { + if (ImGui::Button(_("OK"))) { ImGui::CloseCurrentPopup(); } break; @@ -6065,16 +6051,16 @@ bool FurnaceGUI::loop() { if (ImGui::BeginPopup("InsTypeList",ImGuiWindowFlags_NoMove|ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings)) { char temp[1024]; if (displayInsTypeListMakeInsSample==-2) { - ImGui::Text("Drum kit mode:"); - if (ImGui::RadioButton("Normal",!makeDrumkitMode)) { + ImGui::Text(_("Drum kit mode:")); + if (ImGui::RadioButton(_("Normal"),!makeDrumkitMode)) { makeDrumkitMode=false; } - if (ImGui::RadioButton("12 samples per octave",makeDrumkitMode)) { + if (ImGui::RadioButton(_("12 samples per octave"),makeDrumkitMode)) { makeDrumkitMode=true; } if (!makeDrumkitMode) { - ImGui::Text("Starting octave"); + ImGui::Text(_("Starting octave")); ImGui::SameLine(); if (ImGui::InputInt("##DKOctave",&makeDrumkitOctave,1,3)) { if (makeDrumkitOctave<0) makeDrumkitOctave=0; @@ -6090,11 +6076,11 @@ bool FurnaceGUI::loop() { // create ins curIns=e->addInstrument(-1,i); if (curIns==-1) { - showError("too many instruments!"); + showError(_("too many instruments!")); } else { if (displayInsTypeListMakeInsSample==-2) { e->song.ins[curIns]->type=i; - e->song.ins[curIns]->name="Drum Kit"; + e->song.ins[curIns]->name=_("Drum Kit"); e->song.ins[curIns]->amiga.useNoteMap=true; if (i!=DIV_INS_AMIGA) e->song.ins[curIns]->amiga.useSample=true; @@ -6158,7 +6144,7 @@ bool FurnaceGUI::loop() { // create wave curWave=e->addWave(); if (curWave==-1) { - showError("too many wavetables!"); + showError(_("too many wavetables!")); } else { e->song.wave[curWave]->len=i.width; e->song.wave[curWave]->max=i.height-1; @@ -6176,22 +6162,22 @@ bool FurnaceGUI::loop() { // TODO: // - multiple selection // - replace instrument - centerNextWindow("Select Instrument",canvasW,canvasH); - if (ImGui::BeginPopupModal("Select Instrument",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { + centerNextWindow(_("Select Instrument"),canvasW,canvasH); + if (ImGui::BeginPopupModal(_("Select Instrument"),NULL,ImGuiWindowFlags_AlwaysAutoResize)) { bool quitPlease=false; if (pendingInsSingle) { - ImGui::Text("this is an instrument bank! select which one to use:"); + ImGui::Text(_("this is an instrument bank! select which one to use:")); } else { ImGui::AlignTextToFramePadding(); - ImGui::Text("this is an instrument bank! select which ones to load:"); + ImGui::Text(_("this is an instrument bank! select which ones to load:")); ImGui::SameLine(); - if (ImGui::Button("All")) { + if (ImGui::Button(_("All"))) { for (std::pair& i: pendingIns) { i.second=true; } } ImGui::SameLine(); - if (ImGui::Button("None")) { + if (ImGui::Button(_("None"))) { for (std::pair& i: pendingIns) { i.second=false; } @@ -6222,13 +6208,13 @@ bool FurnaceGUI::loop() { } if (!pendingInsSingle) { ImGui::BeginDisabled(!anySelected); - if (ImGui::Button("OK")) { + if (ImGui::Button(_("OK"))) { quitPlease=true; } ImGui::EndDisabled(); ImGui::SameLine(); } - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { for (std::pair& i: pendingIns) { i.second=false; } @@ -6242,7 +6228,7 @@ bool FurnaceGUI::loop() { if (curIns>=0 && curIns<(int)e->song.ins.size()) { *e->song.ins[curIns]=*i.first; } else { - showError("...but you haven't selected an instrument!"); + showError(_("...but you haven't selected an instrument!")); } } delete i.first; @@ -6255,9 +6241,9 @@ bool FurnaceGUI::loop() { ImGui::EndPopup(); } - centerNextWindow("Import Raw Sample",canvasW,canvasH); - if (ImGui::BeginPopupModal("Import Raw Sample",NULL,ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::Text("Data type:"); + centerNextWindow(_("Import Raw Sample"),canvasW,canvasH); + if (ImGui::BeginPopupModal(_("Import Raw Sample"),NULL,ImGuiWindowFlags_AlwaysAutoResize)) { + ImGui::Text(_("Data type:")); for (int i=0; isampleFromFileRaw(pendingRawSample.c_str(),(DivSampleDepth)pendingRawSampleDepth,pendingRawSampleChannels,pendingRawSampleBigEndian,pendingRawSampleUnsigned,pendingRawSampleSwapNibbles,pendingRawSampleRate); if (s==NULL) { showError(e->getLastError()); @@ -6338,7 +6324,7 @@ bool FurnaceGUI::loop() { }); updateSampleTex=true; } else { - showError("...but you haven't selected a sample!"); + showError(_("...but you haven't selected a sample!")); delete s; } } else { @@ -6352,7 +6338,7 @@ bool FurnaceGUI::loop() { ImGui::CloseCurrentPopup(); } ImGui::SameLine(); - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); } ImGui::EndPopup(); @@ -6360,7 +6346,7 @@ bool FurnaceGUI::loop() { if (ImGui::BeginPopup("EditString",ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings)) { if (editString==NULL) { - ImGui::Text("Error! No string provided!"); + ImGui::Text(_("Error! No string provided!")); } else { if (displayEditString) { ImGui::SetItemDefaultFocus(); @@ -6370,7 +6356,7 @@ bool FurnaceGUI::loop() { } displayEditString=false; ImGui::SameLine(); - if (ImGui::Button("OK") || ImGui::IsKeyPressed(ImGuiKey_Enter,false)) { + if (ImGui::Button(_("OK")) || ImGui::IsKeyPressed(ImGuiKey_Enter,false)) { editString=NULL; ImGui::CloseCurrentPopup(); } @@ -6661,7 +6647,7 @@ bool FurnaceGUI::loop() { if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { logE("error while building font atlas!"); - showError("error while loading fonts! please check your settings."); + showError(_("error while loading fonts! please check your settings.")); ImGui::GetIO().Fonts->Clear(); mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; @@ -6682,7 +6668,7 @@ bool FurnaceGUI::loop() { } if (fontsFailed) { - showError("it appears I couldn't load these fonts. any setting you can check?"); + showError(_("it appears I couldn't load these fonts. any setting you can check?")); logE("couldn't load fonts"); ImGui::GetIO().Fonts->Clear(); mainFont=ImGui::GetIO().Fonts->AddFontDefault(); @@ -6862,14 +6848,14 @@ bool FurnaceGUI::init() { settings.renderBackend="Software"; e->setConf("renderBackend","Software"); e->saveConf(); - lastError=fmt::sprintf("could not init renderer!\r\nfalling back to software renderer. please restart Furnace."); + lastError=fmt::sprintf(_("could not init renderer!\nfalling back to software renderer. please restart Furnace.")); } else if (settings.renderBackend=="SDL") { - lastError=fmt::sprintf("could not init renderer! %s\r\nfalling back to software renderer. please restart Furnace.",SDL_GetError()); + lastError=fmt::sprintf(_("could not init renderer! %s\nfalling back to software renderer. please restart Furnace."),SDL_GetError()); settings.renderBackend="Software"; e->setConf("renderBackend","Software"); e->saveConf(); } else { - lastError=fmt::sprintf("could not init renderer!"); + lastError=fmt::sprintf(_("could not init renderer!")); } return false; } @@ -6880,12 +6866,12 @@ bool FurnaceGUI::init() { sdlWin=SDL_CreateWindow("Furnace",scrX,scrY,scrW,scrH,SDL_WINDOW_RESIZABLE|SDL_WINDOW_ALLOW_HIGHDPI|(scrMax?SDL_WINDOW_MAXIMIZED:0)|(fullScreen?SDL_WINDOW_FULLSCREEN_DESKTOP:0)|rend->getWindowFlags()); if (sdlWin==NULL) { const char* sdlErr=SDL_GetError(); - lastError=fmt::sprintf("could not open window! %s",sdlErr); + lastError=fmt::sprintf(_("could not open window! %s"),sdlErr); if (settings.renderBackend!="Software" && strstr(sdlErr,"matching")!=NULL) { settings.renderBackend="Software"; e->setConf("renderBackend","Software"); e->saveConf(); - lastError+="\r\nfalling back to software renderer. please restart Furnace."; + lastError+=_("\nfalling back to software renderer. please restart Furnace."); } return false; } @@ -6970,14 +6956,14 @@ bool FurnaceGUI::init() { settings.renderBackend="Software"; e->setConf("renderBackend","Software"); e->saveConf(); - lastError=fmt::sprintf("could not init renderer!\r\nfalling back to software renderer. please restart Furnace."); + lastError=fmt::sprintf(_("could not init renderer!\nfalling back to software renderer. please restart Furnace.")); } else if (settings.renderBackend=="SDL") { - lastError=fmt::sprintf("could not init renderer! %s\r\nfalling back to software renderer. please restart Furnace.",SDL_GetError()); + lastError=fmt::sprintf(_("could not init renderer! %s\nfalling back to software renderer. please restart Furnace."),SDL_GetError()); settings.renderBackend="Software"; e->setConf("renderBackend","Software"); e->saveConf(); } else { - lastError=fmt::sprintf("could not init renderer!"); + lastError=fmt::sprintf(_("could not init renderer!")); } return false; } @@ -7037,7 +7023,7 @@ bool FurnaceGUI::init() { logD("building font..."); if (!ImGui::GetIO().Fonts->Build()) { logE("error while building font atlas!"); - showError("error while loading fonts! please check your settings."); + showError(_("error while loading fonts! please check your settings.")); ImGui::GetIO().Fonts->Clear(); mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; @@ -7311,7 +7297,7 @@ void FurnaceGUI::syncState() { void FurnaceGUI::commitState(DivConfig& conf) { if (!mobileUI) { if (!ImGui::SaveIniSettingsToDisk(finalLayoutPath,true)) { - reportError(fmt::sprintf("could NOT save layout! %s",strerror(errno))); + reportError(fmt::sprintf(_("could NOT save layout! %s"),strerror(errno))); } } @@ -7513,7 +7499,7 @@ bool FurnaceGUI::finish(bool saveConfig) { bool FurnaceGUI::requestQuit() { if (modified && !cvOpen) { - showWarning("Unsaved changes! Save changes before quitting?",GUI_WARN_QUIT); + showWarning(_("Unsaved changes! Save changes before quitting?"),GUI_WARN_QUIT); } else { quit=true; } diff --git a/src/gui/guiConst.cpp b/src/gui/guiConst.cpp index dd3955ad7..0a0033071 100644 --- a/src/gui/guiConst.cpp +++ b/src/gui/guiConst.cpp @@ -124,7 +124,7 @@ const char* insTypes[DIV_INS_MAX+1][3]={ {"FM (OPN)",ICON_FA_AREA_CHART,ICON_FUR_INS_FM}, {"Game Boy",ICON_FA_GAMEPAD,ICON_FUR_INS_GB}, {"C64",ICON_FA_KEYBOARD_O,ICON_FUR_INS_C64}, - {"Generic Sample",ICON_FA_VOLUME_UP,ICON_FUR_INS_AMIGA}, + {_N("Generic Sample"),ICON_FA_VOLUME_UP,ICON_FUR_INS_AMIGA}, {"PC Engine",ICON_FA_ID_BADGE,ICON_FUR_INS_PCE}, {"AY-3-8910/SSG",ICON_FA_BAR_CHART,ICON_FUR_INS_AY}, {"AY8930",ICON_FA_BAR_CHART,ICON_FUR_INS_AY8930}, @@ -146,13 +146,13 @@ const char* insTypes[DIV_INS_MAX+1][3]={ {"Atari Lynx",ICON_FA_BAR_CHART,ICON_FUR_INS_MIKEY}, {"VERA",ICON_FA_KEYBOARD_O,ICON_FUR_INS_VERA}, {"X1-010",ICON_FA_BAR_CHART,ICON_FUR_INS_X1_010}, - {"VRC6 (saw)",ICON_FA_BAR_CHART,ICON_FUR_INS_VRC6_SAW}, + {_("VRC6 (saw)"),ICON_FA_BAR_CHART,ICON_FUR_INS_VRC6_SAW}, {"ES5506",ICON_FA_VOLUME_UP,ICON_FUR_INS_ES5506}, {"MultiPCM",ICON_FA_VOLUME_UP,ICON_FUR_INS_MULTIPCM}, {"SNES",ICON_FA_VOLUME_UP,ICON_FUR_INS_SNES}, {"Sound Unit",ICON_FA_MICROCHIP,ICON_FUR_INS_SU}, {"Namco WSG",ICON_FA_PIE_CHART,ICON_FUR_INS_NAMCO}, - {"OPL (drums)",ICON_FA_COFFEE,ICON_FUR_INS_OPL_DRUMS}, + {_N("OPL (drums)"),ICON_FA_COFFEE,ICON_FUR_INS_OPL_DRUMS}, {"FM (OPM)",ICON_FA_AREA_CHART,ICON_FUR_INS_OPM}, {"NES",ICON_FA_GAMEPAD,ICON_FUR_INS_NES}, {"MSM6258",ICON_FA_VOLUME_UP,ICON_FUR_INS_MSM6258}, @@ -176,8 +176,8 @@ const char* insTypes[DIV_INS_MAX+1][3]={ {"C140",ICON_FA_VOLUME_UP,ICON_FUR_INS_C140}, {"C219",ICON_FA_VOLUME_UP,ICON_FUR_INS_C219}, {"FM (ESFM)",ICON_FA_AREA_CHART,ICON_FUR_INS_ESFM}, - {"PowerNoise (noise)",ICON_FUR_NOISE,ICON_FUR_INS_POWERNOISE}, - {"PowerNoise (slope)",ICON_FUR_SAW,ICON_FUR_INS_POWERNOISE_SAW}, + {_N("PowerNoise (noise)"),ICON_FUR_NOISE,ICON_FUR_INS_POWERNOISE}, + {_N("PowerNoise (slope)"),ICON_FUR_SAW,ICON_FUR_INS_POWERNOISE_SAW}, {"Dave",ICON_FA_BAR_CHART,ICON_FUR_INS_DAVE}, {"Nintendo DS",ICON_FA_BAR_CHART,ICON_FUR_INS_NDS}, {"GBA DMA",ICON_FA_GAMEPAD,ICON_FUR_INS_GBA_DMA}, @@ -188,9 +188,9 @@ const char* insTypes[DIV_INS_MAX+1][3]={ }; const char* sampleLoopModes[DIV_SAMPLE_LOOP_MAX]={ - "Forward", - "Backward", - "Ping pong" + _N("Forward"), + _N("Backward"), + _N("Ping pong") }; const char* sampleDepths[DIV_SAMPLE_DEPTH_MAX]={ @@ -214,25 +214,25 @@ const char* sampleDepths[DIV_SAMPLE_DEPTH_MAX]={ }; const char* resampleStrats[]={ - "none", - "linear", - "cubic spline", - "blep synthesis", - "sinc", - "best possible" + _N("none"), + _N("linear"), + _N("cubic spline"), + _N("blep synthesis"), + _N("sinc"), + _N("best possible") }; const char* fxColorsNames[]={ - "Invalid", - "Pitch", - "Volume", - "Panning", - "Song", - "Time", - "Speed", - "System (Primary)", - "System (Secondary)", - "Miscellaneous" + _N("Invalid"), + _N("Pitch"), + _N("Volume"), + _N("Panning"), + _N("Song"), + _N("Time"), + _N("Speed"), + _N("System (Primary)"), + _N("System (Secondary)"), + _N("Miscellaneous") }; const FurnaceGUIColors fxColors[256]={ @@ -527,274 +527,274 @@ const FurnaceGUIColors fxColors[256]={ // format: ("ACTION_ENUM", "Action name", defaultBind) const FurnaceGUIActionDef guiActions[GUI_ACTION_MAX]={ - D("GLOBAL_MIN", "---Global", NOT_AN_ACTION), - D("NEW", "New", FURKMOD_CMD|SDLK_n), - D("OPEN", "Open file", FURKMOD_CMD|SDLK_o), - D("OPEN_BACKUP", "Restore backup", 0), - D("SAVE", "Save file", FURKMOD_CMD|SDLK_s), - D("SAVE_AS", "Save as", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_s), - D("EXPORT", "Export", 0), - D("UNDO", "Undo", FURKMOD_CMD|SDLK_z), + D("GLOBAL_MIN", _N("---Global"), NOT_AN_ACTION), + D("NEW", _N("New"), FURKMOD_CMD|SDLK_n), + D("OPEN", _N("Open file"), FURKMOD_CMD|SDLK_o), + D("OPEN_BACKUP", _N("Restore backup"), 0), + D("SAVE", _N("Save file"), FURKMOD_CMD|SDLK_s), + D("SAVE_AS", _N("Save as"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_s), + D("EXPORT", _N("Export"), 0), + D("UNDO", _N("Undo"), FURKMOD_CMD|SDLK_z), #ifdef __APPLE__ - D("REDO", "Redo", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_z), + D("REDO", _N("Redo"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_z), #else - D("REDO", "Redo", FURKMOD_CMD|SDLK_y), + D("REDO", _N("Redo"), FURKMOD_CMD|SDLK_y), #endif - D("QUIT", "Exit", 0), - D("PLAY_TOGGLE", "Play/Stop (toggle)", SDLK_RETURN), - D("PLAY", "Play", 0), - D("STOP", "Stop", 0), - D("PLAY_START", "Play (from beginning)", SDLK_F5), - D("PLAY_REPEAT", "Play (repeat pattern)", 0), - D("PLAY_CURSOR", "Play from cursor", FURKMOD_SHIFT|SDLK_RETURN), - D("STEP_ONE", "Step row", FURKMOD_CMD|SDLK_RETURN), - D("OCTAVE_UP", "Octave up", SDLK_KP_MULTIPLY), - D("OCTAVE_DOWN", "Octave down", SDLK_KP_DIVIDE), - D("INS_UP", "Previous instrument", FURKMOD_SHIFT|SDLK_KP_DIVIDE), - D("INS_DOWN", "Next instrument", FURKMOD_SHIFT|SDLK_KP_MULTIPLY), - D("STEP_UP", "Increase edit step", FURKMOD_CMD|SDLK_KP_MULTIPLY), - D("STEP_DOWN", "Decrease edit step", FURKMOD_CMD|SDLK_KP_DIVIDE), - D("TOGGLE_EDIT", "Toggle edit mode", SDLK_SPACE), - D("METRONOME", "Metronome", FURKMOD_CMD|SDLK_m), - D("REPEAT_PATTERN", "Toggle repeat pattern", 0), - D("FOLLOW_ORDERS", "Follow orders", 0), - D("FOLLOW_PATTERN", "Follow pattern", 0), - D("FULLSCREEN", "Toggle full-screen", SDLK_F11), - D("TX81Z_REQUEST", "Request voice from TX81Z", 0), - D("PANIC", "Panic", SDLK_F12), - D("CLEAR", "Clear song data", 0), + D("QUIT", _N("Exit"), 0), + D("PLAY_TOGGLE", _N("Play/Stop (toggle)"), SDLK_RETURN), + D("PLAY", _N("Play"), 0), + D("STOP", _N("Stop"), 0), + D("PLAY_START", _N("Play (from beginning)"), SDLK_F5), + D("PLAY_REPEAT", _N("Play (repeat pattern)"), 0), + D("PLAY_CURSOR", _N("Play from cursor"), FURKMOD_SHIFT|SDLK_RETURN), + D("STEP_ONE", _N("Step row"), FURKMOD_CMD|SDLK_RETURN), + D("OCTAVE_UP", _N("Octave up"), SDLK_KP_MULTIPLY), + D("OCTAVE_DOWN", _N("Octave down"), SDLK_KP_DIVIDE), + D("INS_UP", _N("Previous instrument"), FURKMOD_SHIFT|SDLK_KP_DIVIDE), + D("INS_DOWN", _N("Next instrument"), FURKMOD_SHIFT|SDLK_KP_MULTIPLY), + D("STEP_UP", _N("Increase edit step"), FURKMOD_CMD|SDLK_KP_MULTIPLY), + D("STEP_DOWN", _N("Decrease edit step"), FURKMOD_CMD|SDLK_KP_DIVIDE), + D("TOGGLE_EDIT", _N("Toggle edit mode"), SDLK_SPACE), + D("METRONOME", _N("Metronome"), FURKMOD_CMD|SDLK_m), + D("REPEAT_PATTERN", _N("Toggle repeat pattern"), 0), + D("FOLLOW_ORDERS", _N("Follow orders"), 0), + D("FOLLOW_PATTERN", _N("Follow pattern"), 0), + D("FULLSCREEN", _N("Toggle full-screen"), SDLK_F11), + D("TX81Z_REQUEST", _N("Request voice from TX81Z"), 0), + D("PANIC", _N("Panic"), SDLK_F12), + D("CLEAR", _N("Clear song data"), 0), - D("COMMAND_PALETTE", "Command Palette", FURKMOD_CMD|SDLK_p), + D("COMMAND_PALETTE", _N("Command Palette"), FURKMOD_CMD|SDLK_p), D("CMDPAL_MIN", "", NOT_AN_ACTION), - D("CMDPAL_RECENT", "Recent files (Palette)", 0), - D("CMDPAL_INSTRUMENTS", "Instruments (Palette)", 0), - D("CMDPAL_SAMPLES", "Samples (Palette)", 0), - D("CMDPAL_INSTRUMENT_CHANGE", "Change instrument (Palette)", 0), - D("CMDPAL_ADD_CHIP", "Add chip (Palette)", 0), + D("CMDPAL_RECENT", _N("Recent files (Palette)"), 0), + D("CMDPAL_INSTRUMENTS", _N("Instruments (Palette)"), 0), + D("CMDPAL_SAMPLES", _N("Samples (Palette)"), 0), + D("CMDPAL_INSTRUMENT_CHANGE", _N("Change instrument (Palette)"), 0), + D("CMDPAL_ADD_CHIP", _N("Add chip (Palette)"), 0), D("CMDPAL_MAX", "", NOT_AN_ACTION), - D("WINDOW_EDIT_CONTROLS", "Edit Controls", 0), - D("WINDOW_ORDERS", "Orders", 0), - D("WINDOW_INS_LIST", "Instrument List", 0), - D("WINDOW_INS_EDIT", "Instrument Editor", 0), - D("WINDOW_SONG_INFO", "Song Information", 0), - D("WINDOW_SPEED", "Speed", 0), - D("WINDOW_PATTERN", "Pattern", 0), - D("WINDOW_WAVE_LIST", "Wavetable List", 0), - D("WINDOW_WAVE_EDIT", "Wavetable Editor", 0), - D("WINDOW_SAMPLE_LIST", "Sample List", 0), - D("WINDOW_SAMPLE_EDIT", "Sample Editor", 0), - D("WINDOW_ABOUT", "About", 0), + D("WINDOW_EDIT_CONTROLS", _N("Edit Controls"), 0), + D("WINDOW_ORDERS", _N("Orders"), 0), + D("WINDOW_INS_LIST", _N("Instrument List"), 0), + D("WINDOW_INS_EDIT", _N("Instrument Editor"), 0), + D("WINDOW_SONG_INFO", _N("Song Information"), 0), + D("WINDOW_SPEED", _N("Speed"), 0), + D("WINDOW_PATTERN", _N("Pattern"), 0), + D("WINDOW_WAVE_LIST", _N("Wavetable List"), 0), + D("WINDOW_WAVE_EDIT", _N("Wavetable Editor"), 0), + D("WINDOW_SAMPLE_LIST", _N("Sample List"), 0), + D("WINDOW_SAMPLE_EDIT", _N("Sample Editor"), 0), + D("WINDOW_ABOUT", _N("About"), 0), #ifdef __APPLE__ - D("WINDOW_SETTINGS", "Settings", FURKMOD_CMD|SDLK_COMMA), + D("WINDOW_SETTINGS", _N("Settings"), FURKMOD_CMD|SDLK_COMMA), #else - D("WINDOW_SETTINGS", "Settings", 0), + D("WINDOW_SETTINGS", _N("Settings"), 0), #endif - D("WINDOW_MIXER", "Mixer", 0), - D("WINDOW_DEBUG", "Debug Menu", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_d), - D("WINDOW_OSCILLOSCOPE", "Oscilloscope (master)", 0), - D("WINDOW_VOL_METER", "Volume Meter", 0), - D("WINDOW_STATS", "Statistics", 0), - D("WINDOW_COMPAT_FLAGS", "Compatibility Flags", 0), - D("WINDOW_PIANO", "Piano", 0), - D("WINDOW_NOTES", "Song Comments", 0), - D("WINDOW_CHANNELS", "Channels", 0), - D("WINDOW_PAT_MANAGER", "Pattern Manager", 0), - D("WINDOW_SYS_MANAGER", "Chip Manager", 0), - D("WINDOW_REGISTER_VIEW", "Register View", 0), - D("WINDOW_LOG", "Log Viewer", 0), - D("WINDOW_EFFECT_LIST", "Effect List", 0), - D("WINDOW_CHAN_OSC", "Oscilloscope (per-channel)", 0), - D("WINDOW_SUBSONGS", "Subsongs", 0), - D("WINDOW_FIND", "Find/Replace", FURKMOD_CMD|SDLK_f), - D("WINDOW_CLOCK", "Clock", 0), - D("WINDOW_GROOVES", "Grooves", 0), - D("WINDOW_XY_OSC", "Oscilloscope (X-Y)", 0), - D("WINDOW_MEMORY", "Memory Composition", 0), - D("WINDOW_CS_PLAYER", "Command Stream Player", 0), - D("WINDOW_USER_PRESETS", "User Presets", 0), + D("WINDOW_MIXER", _N("Mixer"), 0), + D("WINDOW_DEBUG", _N("Debug Menu"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_d), + D("WINDOW_OSCILLOSCOPE", _N("Oscilloscope (master)"), 0), + D("WINDOW_VOL_METER", _N("Volume Meter"), 0), + D("WINDOW_STATS", _N("Statistics"), 0), + D("WINDOW_COMPAT_FLAGS", _N("Compatibility Flags"), 0), + D("WINDOW_PIANO", _N("Piano"), 0), + D("WINDOW_NOTES", _N("Song Comments"), 0), + D("WINDOW_CHANNELS", _N("Channels"), 0), + D("WINDOW_PAT_MANAGER", _N("Pattern Manager"), 0), + D("WINDOW_SYS_MANAGER", _N("Chip Manager"), 0), + D("WINDOW_REGISTER_VIEW", _N("Register View"), 0), + D("WINDOW_LOG", _N("Log Viewer"), 0), + D("WINDOW_EFFECT_LIST", _N("Effect List"), 0), + D("WINDOW_CHAN_OSC", _N("Oscilloscope (per-channel)"), 0), + D("WINDOW_SUBSONGS", _N("Subsongs"), 0), + D("WINDOW_FIND", _N("Find/Replace"), FURKMOD_CMD|SDLK_f), + D("WINDOW_CLOCK", _N("Clock"), 0), + D("WINDOW_GROOVES", _N("Grooves"), 0), + D("WINDOW_XY_OSC", _N("Oscilloscope (X-Y)"), 0), + D("WINDOW_MEMORY", _N("Memory Composition"), 0), + D("WINDOW_CS_PLAYER", _N("Command Stream Player"), 0), + D("WINDOW_USER_PRESETS", _N("User Presets"), 0), - D("COLLAPSE_WINDOW", "Collapse/expand current window", 0), - D("CLOSE_WINDOW", "Close current window", FURKMOD_SHIFT|SDLK_ESCAPE), + D("COLLAPSE_WINDOW", _N("Collapse/expand current window"), 0), + D("CLOSE_WINDOW", _N("Close current window"), FURKMOD_SHIFT|SDLK_ESCAPE), D("GLOBAL_MAX", "", NOT_AN_ACTION), - D("PAT_MIN", "---Pattern", NOT_AN_ACTION), - D("PAT_NOTE_UP", "Transpose (+1)", FURKMOD_CMD|SDLK_F2), - D("PAT_NOTE_DOWN", "Transpose (-1)", FURKMOD_CMD|SDLK_F1), - D("PAT_OCTAVE_UP", "Transpose (+1 octave)", FURKMOD_CMD|SDLK_F4), - D("PAT_OCTAVE_DOWN", "Transpose (-1 octave)", FURKMOD_CMD|SDLK_F3), - D("PAT_VALUE_UP", "Increase values (+1)", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_F2), - D("PAT_VALUE_DOWN", "Increase values (-1)", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_F1), - D("PAT_VALUE_UP_COARSE", "Increase values (+16)", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_F4), - D("PAT_VALUE_DOWN_COARSE", "Increase values (-16)", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_F3), - D("PAT_SELECT_ALL", "Select all", FURKMOD_CMD|SDLK_a), - D("PAT_CUT", "Cut", FURKMOD_CMD|SDLK_x), - D("PAT_COPY", "Copy", FURKMOD_CMD|SDLK_c), - D("PAT_PASTE", "Paste", FURKMOD_CMD|SDLK_v), - D("PAT_PASTE_MIX", "Paste Mix (foreground)", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_v), - D("PAT_PASTE_MIX_BG", "Paste Mix (background)", 0), - D("PAT_PASTE_FLOOD", "Paste Flood", 0), - D("PAT_PASTE_OVERFLOW", "Paste Overflow", 0), - D("PAT_CURSOR_UP", "Move cursor up", SDLK_UP), - D("PAT_CURSOR_DOWN", "Move cursor down", SDLK_DOWN), - D("PAT_CURSOR_LEFT", "Move cursor left", SDLK_LEFT), - D("PAT_CURSOR_RIGHT", "Move cursor right", SDLK_RIGHT), - D("PAT_CURSOR_UP_ONE", "Move cursor up by one (override Edit Step)", FURKMOD_SHIFT|SDLK_HOME), - D("PAT_CURSOR_DOWN_ONE", "Move cursor down by one (override Edit Step)", FURKMOD_SHIFT|SDLK_END), - D("PAT_CURSOR_LEFT_CHANNEL", "Move cursor to previous channel", 0), - D("PAT_CURSOR_RIGHT_CHANNEL", "Move cursor to next channel", 0), - D("PAT_CURSOR_NEXT_CHANNEL", "Move cursor to next channel (overflow)", 0), - D("PAT_CURSOR_PREVIOUS_CHANNEL", "Move cursor to previous channel (overflow)", 0), - D("PAT_CURSOR_BEGIN", "Move cursor to beginning of pattern", SDLK_HOME), - D("PAT_CURSOR_END", "Move cursor to end of pattern", SDLK_END), - D("PAT_CURSOR_UP_COARSE", "Move cursor up (coarse)", SDLK_PAGEUP), - D("PAT_CURSOR_DOWN_COARSE", "Move cursor down (coarse)", SDLK_PAGEDOWN), - D("PAT_SELECTION_UP", "Expand selection upwards", FURKMOD_SHIFT|SDLK_UP), - D("PAT_SELECTION_DOWN", "Expand selection downwards", FURKMOD_SHIFT|SDLK_DOWN), - D("PAT_SELECTION_LEFT", "Expand selection to the left", FURKMOD_SHIFT|SDLK_LEFT), - D("PAT_SELECTION_RIGHT", "Expand selection to the right", FURKMOD_SHIFT|SDLK_RIGHT), - D("PAT_SELECTION_UP_ONE", "Expand selection upwards by one (override Edit Step)", 0), - D("PAT_SELECTION_DOWN_ONE", "Expand selection downwards by one (override Edit Step)", 0), - D("PAT_SELECTION_BEGIN", "Expand selection to beginning of pattern", 0), - D("PAT_SELECTION_END", "Expand selection to end of pattern", 0), - D("PAT_SELECTION_UP_COARSE", "Expand selection upwards (coarse)", FURKMOD_SHIFT|SDLK_PAGEUP), - D("PAT_SELECTION_DOWN_COARSE", "Expand selection downwards (coarse)", FURKMOD_SHIFT|SDLK_PAGEDOWN), - D("PAT_MOVE_UP", "Move selection up", FURKMOD_ALT|SDLK_UP), - D("PAT_MOVE_DOWN", "Move selection down", FURKMOD_ALT|SDLK_DOWN), - D("PAT_MOVE_LEFT_CHANNEL", "Move selection to previous channel", FURKMOD_ALT|SDLK_LEFT), - D("PAT_MOVE_RIGHT_CHANNEL", "Move selection to next channel", FURKMOD_ALT|SDLK_RIGHT), - D("PAT_DELETE", "Delete", SDLK_DELETE), - D("PAT_PULL_DELETE", "Pull delete", SDLK_BACKSPACE), - D("PAT_INSERT", "Insert", SDLK_INSERT), - D("PAT_MUTE_CURSOR", "Mute channel at cursor", FURKMOD_ALT|SDLK_F9), - D("PAT_SOLO_CURSOR", "Solo channel at cursor", FURKMOD_ALT|SDLK_F10), - D("PAT_UNMUTE_ALL", "Unmute all channels", FURKMOD_ALT|FURKMOD_SHIFT|SDLK_F9), - D("PAT_NEXT_ORDER", "Go to next order", 0), - D("PAT_PREV_ORDER", "Go to previous order", 0), - D("PAT_COLLAPSE", "Collapse channel at cursor", 0), - D("PAT_INCREASE_COLUMNS", "Increase effect columns", 0), - D("PAT_DECREASE_COLUMNS", "Decrease effect columns", 0), - D("PAT_INTERPOLATE", "Interpolate", 0), - D("PAT_FADE", "Fade", 0), - D("PAT_INVERT_VALUES", "Invert values", 0), - D("PAT_FLIP_SELECTION", "Flip selection", 0), - D("PAT_COLLAPSE_ROWS", "Collapse rows", 0), - D("PAT_EXPAND_ROWS", "Expand rows", 0), - D("PAT_COLLAPSE_PAT", "Collapse pattern", 0), - D("PAT_EXPAND_PAT", "Expand pattern", 0), - D("PAT_COLLAPSE_SONG", "Collapse song", 0), - D("PAT_EXPAND_SONG", "Expand song", 0), - D("PAT_LATCH", "Set note input latch", 0), - D("PAT_SCROLL_MODE", "Change mobile scroll mode", 0), - D("PAT_CLEAR_LATCH", "Clear note input latch", 0), + D("PAT_MIN", _N("---Pattern"), NOT_AN_ACTION), + D("PAT_NOTE_UP", _N("Transpose (+1)"), FURKMOD_CMD|SDLK_F2), + D("PAT_NOTE_DOWN", _N("Transpose (-1)"), FURKMOD_CMD|SDLK_F1), + D("PAT_OCTAVE_UP", _N("Transpose (+1 octave)"), FURKMOD_CMD|SDLK_F4), + D("PAT_OCTAVE_DOWN", _N("Transpose (-1 octave)"), FURKMOD_CMD|SDLK_F3), + D("PAT_VALUE_UP", _N("Increase values (+1)"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_F2), + D("PAT_VALUE_DOWN", _N("Increase values (-1)"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_F1), + D("PAT_VALUE_UP_COARSE", _N("Increase values (+16)"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_F4), + D("PAT_VALUE_DOWN_COARSE", _N("Increase values (-16)"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_F3), + D("PAT_SELECT_ALL", _N("Select all"), FURKMOD_CMD|SDLK_a), + D("PAT_CUT", _N("Cut"), FURKMOD_CMD|SDLK_x), + D("PAT_COPY", _N("Copy"), FURKMOD_CMD|SDLK_c), + D("PAT_PASTE", _N("Paste"), FURKMOD_CMD|SDLK_v), + D("PAT_PASTE_MIX", _N("Paste Mix (foreground)"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_v), + D("PAT_PASTE_MIX_BG", _N("Paste Mix (background)"), 0), + D("PAT_PASTE_FLOOD", _N("Paste Flood"), 0), + D("PAT_PASTE_OVERFLOW", _N("Paste Overflow"), 0), + D("PAT_CURSOR_UP", _N("Move cursor up"), SDLK_UP), + D("PAT_CURSOR_DOWN", _N("Move cursor down"), SDLK_DOWN), + D("PAT_CURSOR_LEFT", _N("Move cursor left"), SDLK_LEFT), + D("PAT_CURSOR_RIGHT", _N("Move cursor right"), SDLK_RIGHT), + D("PAT_CURSOR_UP_ONE", _N("Move cursor up by one (override Edit Step)"), FURKMOD_SHIFT|SDLK_HOME), + D("PAT_CURSOR_DOWN_ONE", _N("Move cursor down by one (override Edit Step)"), FURKMOD_SHIFT|SDLK_END), + D("PAT_CURSOR_LEFT_CHANNEL", _N("Move cursor to previous channel"), 0), + D("PAT_CURSOR_RIGHT_CHANNEL", _N("Move cursor to next channel"), 0), + D("PAT_CURSOR_NEXT_CHANNEL", _N("Move cursor to next channel (overflow)"), 0), + D("PAT_CURSOR_PREVIOUS_CHANNEL", _N("Move cursor to previous channel (overflow)"), 0), + D("PAT_CURSOR_BEGIN", _N("Move cursor to beginning of pattern"), SDLK_HOME), + D("PAT_CURSOR_END", _N("Move cursor to end of pattern"), SDLK_END), + D("PAT_CURSOR_UP_COARSE", _N("Move cursor up (coarse)"), SDLK_PAGEUP), + D("PAT_CURSOR_DOWN_COARSE", _N("Move cursor down (coarse)"), SDLK_PAGEDOWN), + D("PAT_SELECTION_UP", _N("Expand selection upwards"), FURKMOD_SHIFT|SDLK_UP), + D("PAT_SELECTION_DOWN", _N("Expand selection downwards"), FURKMOD_SHIFT|SDLK_DOWN), + D("PAT_SELECTION_LEFT", _N("Expand selection to the left"), FURKMOD_SHIFT|SDLK_LEFT), + D("PAT_SELECTION_RIGHT", _N("Expand selection to the right"), FURKMOD_SHIFT|SDLK_RIGHT), + D("PAT_SELECTION_UP_ONE", _N("Expand selection upwards by one (override Edit Step)"), 0), + D("PAT_SELECTION_DOWN_ONE", _N("Expand selection downwards by one (override Edit Step)"), 0), + D("PAT_SELECTION_BEGIN", _N("Expand selection to beginning of pattern"), 0), + D("PAT_SELECTION_END", _N("Expand selection to end of pattern"), 0), + D("PAT_SELECTION_UP_COARSE", _N("Expand selection upwards (coarse)"), FURKMOD_SHIFT|SDLK_PAGEUP), + D("PAT_SELECTION_DOWN_COARSE", _N("Expand selection downwards (coarse)"), FURKMOD_SHIFT|SDLK_PAGEDOWN), + D("PAT_MOVE_UP", _N("Move selection up"), FURKMOD_ALT|SDLK_UP), + D("PAT_MOVE_DOWN", _N("Move selection down"), FURKMOD_ALT|SDLK_DOWN), + D("PAT_MOVE_LEFT_CHANNEL", _N("Move selection to previous channel"), FURKMOD_ALT|SDLK_LEFT), + D("PAT_MOVE_RIGHT_CHANNEL", _N("Move selection to next channel"), FURKMOD_ALT|SDLK_RIGHT), + D("PAT_DELETE", _N("Delete"), SDLK_DELETE), + D("PAT_PULL_DELETE", _N("Pull delete"), SDLK_BACKSPACE), + D("PAT_INSERT", _N("Insert"), SDLK_INSERT), + D("PAT_MUTE_CURSOR", _N("Mute channel at cursor"), FURKMOD_ALT|SDLK_F9), + D("PAT_SOLO_CURSOR", _N("Solo channel at cursor"), FURKMOD_ALT|SDLK_F10), + D("PAT_UNMUTE_ALL", _N("Unmute all channels"), FURKMOD_ALT|FURKMOD_SHIFT|SDLK_F9), + D("PAT_NEXT_ORDER", _N("Go to next order"), 0), + D("PAT_PREV_ORDER", _N("Go to previous order"), 0), + D("PAT_COLLAPSE", _N("Collapse channel at cursor"), 0), + D("PAT_INCREASE_COLUMNS", _N("Increase effect columns"), 0), + D("PAT_DECREASE_COLUMNS", _N("Decrease effect columns"), 0), + D("PAT_INTERPOLATE", _N("Interpolate"), 0), + D("PAT_FADE", _N("Fade"), 0), + D("PAT_INVERT_VALUES", _N("Invert values"), 0), + D("PAT_FLIP_SELECTION", _N("Flip selection"), 0), + D("PAT_COLLAPSE_ROWS", _N("Collapse rows"), 0), + D("PAT_EXPAND_ROWS", _N("Expand rows"), 0), + D("PAT_COLLAPSE_PAT", _N("Collapse pattern"), 0), + D("PAT_EXPAND_PAT", _N("Expand pattern"), 0), + D("PAT_COLLAPSE_SONG", _N("Collapse song"), 0), + D("PAT_EXPAND_SONG", _N("Expand song"), 0), + D("PAT_LATCH", _N("Set note input latch"), 0), + D("PAT_SCROLL_MODE", _N("Change mobile scroll mode"), 0), + D("PAT_CLEAR_LATCH", _N("Clear note input latch"), 0), D("PAT_MAX", "", NOT_AN_ACTION), - D("INS_LIST_MIN", "---Instrument list", NOT_AN_ACTION), - D("INS_LIST_ADD", "Add instrument", SDLK_INSERT), - D("INS_LIST_DUPLICATE", "Duplicate instrument", FURKMOD_CMD|SDLK_d), - D("INS_LIST_OPEN", "Open instrument", 0), - D("INS_LIST_OPEN_REPLACE", "Open instrument (replace current)", 0), - D("INS_LIST_SAVE", "Save instrument", 0), - D("INS_LIST_SAVE_DMP", "Save instrument (.dmp)", 0), - D("INS_LIST_MOVE_UP", "Move instrument up in list", FURKMOD_SHIFT|SDLK_UP), - D("INS_LIST_MOVE_DOWN", "Move instrument down in list", FURKMOD_SHIFT|SDLK_DOWN), - D("INS_LIST_DELETE", "Delete instrument", 0), - D("INS_LIST_EDIT", "Edit instrument", FURKMOD_SHIFT|SDLK_RETURN), - D("INS_LIST_UP", "Instrument cursor up", SDLK_UP), - D("INS_LIST_DOWN", "Instrument cursor down", SDLK_DOWN), - D("INS_LIST_DIR_VIEW", "Instruments: toggle folders/standard view", FURKMOD_CMD|SDLK_v), + D("INS_LIST_MIN", _N("---Instrument list"), NOT_AN_ACTION), + D("INS_LIST_ADD", _N("Add instrument"), SDLK_INSERT), + D("INS_LIST_DUPLICATE", _N("Duplicate instrument"), FURKMOD_CMD|SDLK_d), + D("INS_LIST_OPEN", _N("Open instrument"), 0), + D("INS_LIST_OPEN_REPLACE", _N("Open instrument (replace current)"), 0), + D("INS_LIST_SAVE", _N("Save instrument"), 0), + D("INS_LIST_SAVE_DMP", _N("Save instrument (.dmp)"), 0), + D("INS_LIST_MOVE_UP", _N("Move instrument up in list"), FURKMOD_SHIFT|SDLK_UP), + D("INS_LIST_MOVE_DOWN", _N("Move instrument down in list"), FURKMOD_SHIFT|SDLK_DOWN), + D("INS_LIST_DELETE", _N("Delete instrument"), 0), + D("INS_LIST_EDIT", _N("Edit instrument"), FURKMOD_SHIFT|SDLK_RETURN), + D("INS_LIST_UP", _N("Instrument cursor up"), SDLK_UP), + D("INS_LIST_DOWN", _N("Instrument cursor down"), SDLK_DOWN), + D("INS_LIST_DIR_VIEW", _N("Instruments: toggle folders/standard view"), FURKMOD_CMD|SDLK_v), D("INS_LIST_MAX", "", NOT_AN_ACTION), - D("WAVE_LIST_MIN", "---Wavetable list", NOT_AN_ACTION), - D("WAVE_LIST_ADD", "Add wavetable", SDLK_INSERT), - D("WAVE_LIST_DUPLICATE", "Duplicate wavetable", FURKMOD_CMD|SDLK_d), - D("WAVE_LIST_OPEN", "Open wavetable", 0), - D("WAVE_LIST_OPEN_REPLACE", "Open wavetable (replace current)", 0), - D("WAVE_LIST_SAVE", "Save wavetable", 0), - D("WAVE_LIST_SAVE_DMW", "Save wavetable (.dmw)", 0), - D("WAVE_LIST_SAVE_RAW", "Save wavetable (raw)", 0), - D("WAVE_LIST_MOVE_UP", "Move wavetable up in list", FURKMOD_SHIFT|SDLK_UP), - D("WAVE_LIST_MOVE_DOWN", "Move wavetable down in list", FURKMOD_SHIFT|SDLK_DOWN), - D("WAVE_LIST_DELETE", "Delete wavetable", 0), - D("WAVE_LIST_EDIT", "Edit wavetable", FURKMOD_SHIFT|SDLK_RETURN), - D("WAVE_LIST_UP", "Wavetable cursor up", SDLK_UP), - D("WAVE_LIST_DOWN", "Wavetable cursor down", SDLK_DOWN), - D("WAVE_LIST_DIR_VIEW", "Wavetables: toggle folders/standard view", FURKMOD_CMD|SDLK_v), + D("WAVE_LIST_MIN", _N("---Wavetable list"), NOT_AN_ACTION), + D("WAVE_LIST_ADD", _N("Add wavetable"), SDLK_INSERT), + D("WAVE_LIST_DUPLICATE", _N("Duplicate wavetable"), FURKMOD_CMD|SDLK_d), + D("WAVE_LIST_OPEN", _N("Open wavetable"), 0), + D("WAVE_LIST_OPEN_REPLACE", _N("Open wavetable (replace current)"), 0), + D("WAVE_LIST_SAVE", _N("Save wavetable"), 0), + D("WAVE_LIST_SAVE_DMW", _N("Save wavetable (.dmw)"), 0), + D("WAVE_LIST_SAVE_RAW", _N("Save wavetable (raw)"), 0), + D("WAVE_LIST_MOVE_UP", _N("Move wavetable up in list"), FURKMOD_SHIFT|SDLK_UP), + D("WAVE_LIST_MOVE_DOWN", _N("Move wavetable down in list"), FURKMOD_SHIFT|SDLK_DOWN), + D("WAVE_LIST_DELETE", _N("Delete wavetable"), 0), + D("WAVE_LIST_EDIT", _N("Edit wavetable"), FURKMOD_SHIFT|SDLK_RETURN), + D("WAVE_LIST_UP", _N("Wavetable cursor up"), SDLK_UP), + D("WAVE_LIST_DOWN", _N("Wavetable cursor down"), SDLK_DOWN), + D("WAVE_LIST_DIR_VIEW", _N("Wavetables: toggle folders/standard view"), FURKMOD_CMD|SDLK_v), D("WAVE_LIST_MAX", "", NOT_AN_ACTION), - D("SAMPLE_LIST_MIN", "---Sample list", NOT_AN_ACTION), - D("SAMPLE_LIST_ADD", "Add sample", SDLK_INSERT), - D("SAMPLE_LIST_DUPLICATE", "Duplicate sample", FURKMOD_CMD|SDLK_d), - D("SAMPLE_LIST_OPEN", "Open sample", 0), - D("SAMPLE_LIST_OPEN_REPLACE", "Open sample (replace current)", 0), - D("SAMPLE_LIST_OPEN_RAW", "Import raw sample data", 0), - D("SAMPLE_LIST_OPEN_REPLACE_RAW", "Import raw sample data (replace current)", 0), - D("SAMPLE_LIST_SAVE", "Save sample", 0), - D("SAMPLE_LIST_SAVE_RAW", "Save sample (raw)", 0), - D("SAMPLE_LIST_MOVE_UP", "Move sample up in list", FURKMOD_SHIFT|SDLK_UP), - D("SAMPLE_LIST_MOVE_DOWN", "Move sample down in list", FURKMOD_SHIFT|SDLK_DOWN), - D("SAMPLE_LIST_DELETE", "Delete sample", 0), - D("SAMPLE_LIST_EDIT", "Edit sample", FURKMOD_SHIFT|SDLK_RETURN), - D("SAMPLE_LIST_UP", "Sample cursor up", SDLK_UP), - D("SAMPLE_LIST_DOWN", "Sample cursor down", SDLK_DOWN), - D("SAMPLE_LIST_PREVIEW", "Sample preview", 0), - D("SAMPLE_LIST_STOP_PREVIEW", "Stop sample preview", 0), - D("SAMPLE_LIST_DIR_VIEW", "Samples: Toggle folders/standard view", FURKMOD_CMD|SDLK_v), - D("SAMPLE_LIST_MAKE_MAP", "Samples: Make me a drum kit", 0), + D("SAMPLE_LIST_MIN", _N("---Sample list"), NOT_AN_ACTION), + D("SAMPLE_LIST_ADD", _N("Add sample"), SDLK_INSERT), + D("SAMPLE_LIST_DUPLICATE", _N("Duplicate sample"), FURKMOD_CMD|SDLK_d), + D("SAMPLE_LIST_OPEN", _N("Open sample"), 0), + D("SAMPLE_LIST_OPEN_REPLACE", _N("Open sample (replace current)"), 0), + D("SAMPLE_LIST_OPEN_RAW", _N("Import raw sample data"), 0), + D("SAMPLE_LIST_OPEN_REPLACE_RAW", _N("Import raw sample data (replace current)"), 0), + D("SAMPLE_LIST_SAVE", _N("Save sample"), 0), + D("SAMPLE_LIST_SAVE_RAW", _N("Save sample (raw)"), 0), + D("SAMPLE_LIST_MOVE_UP", _N("Move sample up in list"), FURKMOD_SHIFT|SDLK_UP), + D("SAMPLE_LIST_MOVE_DOWN", _N("Move sample down in list"), FURKMOD_SHIFT|SDLK_DOWN), + D("SAMPLE_LIST_DELETE", _N("Delete sample"), 0), + D("SAMPLE_LIST_EDIT", _N("Edit sample"), FURKMOD_SHIFT|SDLK_RETURN), + D("SAMPLE_LIST_UP", _N("Sample cursor up"), SDLK_UP), + D("SAMPLE_LIST_DOWN", _N("Sample cursor down"), SDLK_DOWN), + D("SAMPLE_LIST_PREVIEW", _N("Sample preview"), 0), + D("SAMPLE_LIST_STOP_PREVIEW", _N("Stop sample preview"), 0), + D("SAMPLE_LIST_DIR_VIEW", _N("Samples: Toggle folders/standard view"), FURKMOD_CMD|SDLK_v), + D("SAMPLE_LIST_MAKE_MAP", _N("Samples: Make me a drum kit"), 0), D("SAMPLE_LIST_MAX", "", NOT_AN_ACTION), - D("SAMPLE_MIN", "---Sample editor", NOT_AN_ACTION), - D("SAMPLE_SELECT", "Sample editor mode: Select", FURKMOD_SHIFT|SDLK_i), - D("SAMPLE_DRAW", "Sample editor mode: Draw", FURKMOD_SHIFT|SDLK_d), - D("SAMPLE_CUT", "Sample editor: Cut", FURKMOD_CMD|SDLK_x), - D("SAMPLE_COPY", "Sample editor: Copy", FURKMOD_CMD|SDLK_c), - D("SAMPLE_PASTE", "Sample editor: Paste", FURKMOD_CMD|SDLK_v), - D("SAMPLE_PASTE_REPLACE", "Sample editor: Paste replace", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_v), - D("SAMPLE_PASTE_MIX", "Sample editor: Paste mix", FURKMOD_CMD|FURKMOD_ALT|SDLK_v), - D("SAMPLE_SELECT_ALL", "Sample editor: Select all", FURKMOD_CMD|SDLK_a), - D("SAMPLE_RESIZE", "Sample editor: Resize", FURKMOD_CMD|SDLK_r), - D("SAMPLE_RESAMPLE", "Sample editor: Resample", FURKMOD_CMD|SDLK_e), - D("SAMPLE_AMPLIFY", "Sample editor: Amplify", FURKMOD_CMD|SDLK_b), - D("SAMPLE_NORMALIZE", "Sample editor: Normalize", FURKMOD_CMD|SDLK_n), - D("SAMPLE_FADE_IN", "Sample editor: Fade in", FURKMOD_CMD|SDLK_i), - D("SAMPLE_FADE_OUT", "Sample editor: Fade out", FURKMOD_CMD|SDLK_o), - D("SAMPLE_SILENCE", "Sample editor: Apply silence", FURKMOD_SHIFT|SDLK_DELETE), - D("SAMPLE_INSERT", "Sample editor: Insert silence", SDLK_INSERT), - D("SAMPLE_DELETE", "Sample editor: Delete", SDLK_DELETE), - D("SAMPLE_TRIM", "Sample editor: Trim", FURKMOD_CMD|SDLK_DELETE), - D("SAMPLE_REVERSE", "Sample editor: Reverse", FURKMOD_CMD|SDLK_t), - D("SAMPLE_INVERT", "Sample editor: Invert", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_t), - D("SAMPLE_SIGN", "Sample editor: Signed/unsigned exchange", FURKMOD_CMD|SDLK_u), - D("SAMPLE_FILTER", "Sample editor: Apply filter", FURKMOD_CMD|SDLK_f), - D("SAMPLE_CROSSFADE_LOOP", "Sample editor: Crossfade loop points", NOT_AN_ACTION), - D("SAMPLE_PREVIEW", "Sample editor: Preview sample", 0), - D("SAMPLE_STOP_PREVIEW", "Sample editor: Stop sample preview", 0), - D("SAMPLE_ZOOM_IN", "Sample editor: Zoom in", FURKMOD_CMD|SDLK_EQUALS), - D("SAMPLE_ZOOM_OUT", "Sample editor: Zoom out", FURKMOD_CMD|SDLK_MINUS), - D("SAMPLE_ZOOM_AUTO", "Sample editor: Toggle auto-zoom", FURKMOD_CMD|SDLK_0), - D("SAMPLE_MAKE_INS", "Sample editor: Create instrument from sample", 0), - D("SAMPLE_SET_LOOP", "Sample editor: Set loop to selection", FURKMOD_CMD|SDLK_l), - D("SAMPLE_CREATE_WAVE", "Sample editor: Create wavetable from selection", FURKMOD_CMD|SDLK_w), + D("SAMPLE_MIN", _N("---Sample editor"), NOT_AN_ACTION), + D("SAMPLE_SELECT", _N("Sample editor mode: Select"), FURKMOD_SHIFT|SDLK_i), + D("SAMPLE_DRAW", _N("Sample editor mode: Draw"), FURKMOD_SHIFT|SDLK_d), + D("SAMPLE_CUT", _N("Sample editor: Cut"), FURKMOD_CMD|SDLK_x), + D("SAMPLE_COPY", _N("Sample editor: Copy"), FURKMOD_CMD|SDLK_c), + D("SAMPLE_PASTE", _N("Sample editor: Paste"), FURKMOD_CMD|SDLK_v), + D("SAMPLE_PASTE_REPLACE", _N("Sample editor: Paste replace"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_v), + D("SAMPLE_PASTE_MIX", _N("Sample editor: Paste mix"), FURKMOD_CMD|FURKMOD_ALT|SDLK_v), + D("SAMPLE_SELECT_ALL", _N("Sample editor: Select all"), FURKMOD_CMD|SDLK_a), + D("SAMPLE_RESIZE", _N("Sample editor: Resize"), FURKMOD_CMD|SDLK_r), + D("SAMPLE_RESAMPLE", _N("Sample editor: Resample"), FURKMOD_CMD|SDLK_e), + D("SAMPLE_AMPLIFY", _N("Sample editor: Amplify"), FURKMOD_CMD|SDLK_b), + D("SAMPLE_NORMALIZE", _N("Sample editor: Normalize"), FURKMOD_CMD|SDLK_n), + D("SAMPLE_FADE_IN", _N("Sample editor: Fade in"), FURKMOD_CMD|SDLK_i), + D("SAMPLE_FADE_OUT", _N("Sample editor: Fade out"), FURKMOD_CMD|SDLK_o), + D("SAMPLE_SILENCE", _N("Sample editor: Apply silence"), FURKMOD_SHIFT|SDLK_DELETE), + D("SAMPLE_INSERT", _N("Sample editor: Insert silence"), SDLK_INSERT), + D("SAMPLE_DELETE", _N("Sample editor: Delete"), SDLK_DELETE), + D("SAMPLE_TRIM", _N("Sample editor: Trim"), FURKMOD_CMD|SDLK_DELETE), + D("SAMPLE_REVERSE", _N("Sample editor: Reverse"), FURKMOD_CMD|SDLK_t), + D("SAMPLE_INVERT", _N("Sample editor: Invert"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_t), + D("SAMPLE_SIGN", _N("Sample editor: Signed/unsigned exchange"), FURKMOD_CMD|SDLK_u), + D("SAMPLE_FILTER", _N("Sample editor: Apply filter"), FURKMOD_CMD|SDLK_f), + D("SAMPLE_CROSSFADE_LOOP", _N("Sample editor: Crossfade loop points"), NOT_AN_ACTION), + D("SAMPLE_PREVIEW", _N("Sample editor: Preview sample"), 0), + D("SAMPLE_STOP_PREVIEW", _N("Sample editor: Stop sample preview"), 0), + D("SAMPLE_ZOOM_IN", _N("Sample editor: Zoom in"), FURKMOD_CMD|SDLK_EQUALS), + D("SAMPLE_ZOOM_OUT", _N("Sample editor: Zoom out"), FURKMOD_CMD|SDLK_MINUS), + D("SAMPLE_ZOOM_AUTO", _N("Sample editor: Toggle auto-zoom"), FURKMOD_CMD|SDLK_0), + D("SAMPLE_MAKE_INS", _N("Sample editor: Create instrument from sample"), 0), + D("SAMPLE_SET_LOOP", _N("Sample editor: Set loop to selection"), FURKMOD_CMD|SDLK_l), + D("SAMPLE_CREATE_WAVE", _N("Sample editor: Create wavetable from selection"), FURKMOD_CMD|SDLK_w), D("SAMPLE_MAX", "", NOT_AN_ACTION), - D("ORDERS_MIN", "---Orders", NOT_AN_ACTION), - D("ORDERS_UP", "Previous order", SDLK_UP), - D("ORDERS_DOWN", "Next order", SDLK_DOWN), - D("ORDERS_LEFT", "Order cursor left", SDLK_LEFT), - D("ORDERS_RIGHT", "Order cursor right", SDLK_RIGHT), - D("ORDERS_INCREASE", "Increase order value", 0), - D("ORDERS_DECREASE", "Decrease order value", 0), - D("ORDERS_EDIT_MODE", "Switch order edit mode", 0), - D("ORDERS_LINK", "Order: toggle alter entire row", FURKMOD_CMD|SDLK_l), - D("ORDERS_ADD", "Add order", SDLK_INSERT), - D("ORDERS_DUPLICATE", "Duplicate order", FURKMOD_CMD|SDLK_d), - D("ORDERS_DEEP_CLONE", "Deep clone order", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_d), - D("ORDERS_DUPLICATE_END", "Copy current order to end of song", FURKMOD_CMD|SDLK_e), - D("ORDERS_DEEP_CLONE_END", "Deep clone current order to end of song", FURKMOD_CMD|FURKMOD_SHIFT|SDLK_e), - D("ORDERS_REMOVE", "Remove order", SDLK_DELETE), - D("ORDERS_MOVE_UP", "Move order up", FURKMOD_SHIFT|SDLK_UP), - D("ORDERS_MOVE_DOWN", "Move order down", FURKMOD_SHIFT|SDLK_DOWN), - D("ORDERS_REPLAY", "Replay order", 0), + D("ORDERS_MIN", _N("---Orders"), NOT_AN_ACTION), + D("ORDERS_UP", _N("Previous order"), SDLK_UP), + D("ORDERS_DOWN", _N("Next order"), SDLK_DOWN), + D("ORDERS_LEFT", _N("Order cursor left"), SDLK_LEFT), + D("ORDERS_RIGHT", _N("Order cursor right"), SDLK_RIGHT), + D("ORDERS_INCREASE", _N("Increase order value"), 0), + D("ORDERS_DECREASE", _N("Decrease order value"), 0), + D("ORDERS_EDIT_MODE", _N("Switch order edit mode"), 0), + D("ORDERS_LINK", _N("Order: toggle alter entire row"), FURKMOD_CMD|SDLK_l), + D("ORDERS_ADD", _N("Add order"), SDLK_INSERT), + D("ORDERS_DUPLICATE", _N("Duplicate order"), FURKMOD_CMD|SDLK_d), + D("ORDERS_DEEP_CLONE", _N("Deep clone order"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_d), + D("ORDERS_DUPLICATE_END", _N("Copy current order to end of song"), FURKMOD_CMD|SDLK_e), + D("ORDERS_DEEP_CLONE_END", _N("Deep clone current order to end of song"), FURKMOD_CMD|FURKMOD_SHIFT|SDLK_e), + D("ORDERS_REMOVE", _N("Remove order"), SDLK_DELETE), + D("ORDERS_MOVE_UP", _N("Move order up"), FURKMOD_SHIFT|SDLK_UP), + D("ORDERS_MOVE_DOWN", _N("Move order down"), FURKMOD_SHIFT|SDLK_DOWN), + D("ORDERS_REPLAY", _N("Replay order"), 0), D("ORDERS_MAX", "", NOT_AN_ACTION), }; #undef D @@ -1389,11 +1389,11 @@ const int* chipCategories[]={ }; const char* chipCategoryNames[]={ - "All chips", - "FM", - "Square", - "Wavetable", - "Special", - "Sample", + _N("All chips"), + _N("FM"), + _N("Square"), + _N("Wavetable"), + _N("Special"), + _N("Sample"), NULL }; diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index 6ba5938e7..c026422d3 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -36,21 +36,44 @@ extern "C" { } const char* ssgEnvTypes[8]={ - "Down Down Down", "Down.", "Down Up Down Up", "Down UP", "Up Up Up", "Up.", "Up Down Up Down", "Up DOWN" + _N("Down Down Down"), + _N("Down."), + _N("Down Up Down Up"), + _N("Down UP"), + _N("Up Up Up"), + _N("Up."), + _N("Up Down Up Down"), + _N("Up DOWN") }; const char* fmParamNames[3][32]={ - {"Algorithm", "Feedback", "LFO > Freq", "LFO > Amp", "Attack", "Decay", "Decay 2", "Release", "Sustain", "Level", "EnvScale", "Multiplier", "Detune", "Detune 2", "SSG-EG", "AM", "AM Depth", "Vibrato Depth", "Sustained", "Sustained", "Level Scaling", "Sustain", "Vibrato", "Waveform", "Scale Rate", "OP2 Half Sine", "OP1 Half Sine", "EnvShift", "Reverb", "Fine", "LFO2 > Freq", "LFO2 > Amp"}, + {_N("Algorithm"), _N("Feedback"), _N("LFO > Freq"), _N("LFO > Amp"), _N("Attack"), _N("Decay"), _N("Decay 2"), _N("Release"), _N("Sustain"), _N("Level"), _N("EnvScale"), _N("Multiplier"), _N("Detune"), _N("Detune 2"), _N("SSG-EG"), _N("AM"), _N("AM Depth"), _N("Vibrato Depth"), _N("Sustained"), _N("Sustained"), _N("Level Scaling"), _N("Sustain"), _N("Vibrato"), _N("Waveform"), _N("Scale Rate"), _N("OP2 Half Sine"), _N("OP1 Half Sine"), _N("EnvShift"), _N("Reverb"), _N("Fine"), _N("LFO2 > Freq"), _N("LFO2 > Amp")}, {"ALG", "FB", "FMS/PMS", "AMS", "AR", "DR", "SR", "RR", "SL", "TL", "KS", "MULT", "DT", "DT2", "SSG-EG", "AM", "AMD", "FMD", "EGT", "EGT", "KSL", "SUS", "VIB", "WS", "KSR", "DC", "DM", "EGS", "REV", "Fine", "FMS/PMS2", "AMS2"}, {"ALG", "FB", "FMS/PMS", "AMS", "AR", "DR", "D2R", "RR", "SL", "TL", "RS", "MULT", "DT", "DT2", "SSG-EG", "AM", "DAM", "DVB", "EGT", "EGS", "KSL", "SUS", "VIB", "WS", "KSR", "DC", "DM", "EGS", "REV", "Fine", "FMS/PMS2", "AMS2"} }; const char* esfmParamLongNames[9]={ - "OP4 Noise Mode", "Envelope Delay", "Output Level", "Modulation Input Level", "Left Output", "Right Output", "Coarse Tune (semitones)", "Detune", "Fixed Frequency Mode" + _N("OP4 Noise Mode"), + _N("Envelope Delay"), + _N("Output Level"), + _N("Modulation Input Level"), + _N("Left Output"), + _N("Right Output"), + _N("Coarse Tune (semitones)"), + _N("Detune"), + _N("Fixed Frequency Mode") }; const char* esfmParamNames[9]={ - "OP4 Noise Mode", "Env. Delay", "Output Level", "ModInput", "Left", "Right", "Tune", "Detune", "Fixed" + _N("OP4 Noise Mode"), + _N("Env. Delay"), + _N("Output Level"), + _N("ModInput"), + _N("Left"), + _N("Right"), + _N("Tune"), + _N("Detune"), + _N("Fixed") }; const char* esfmParamShortNames[9]={ @@ -72,114 +95,151 @@ const char* opllVariants[4]={ const char* opllInsNames[4][17]={ /* YM2413 */ { - "User", - "1. Violin", - "2. Guitar", - "3. Piano", - "4. Flute", - "5. Clarinet", - "6. Oboe", - "7. Trumpet", - "8. Organ", - "9. Horn", - "10. Synth", - "11. Harpsichord", - "12. Vibraphone", - "13. Synth Bass", - "14. Acoustic Bass", - "15. Electric Guitar", - "Drums" + _N("User"), + _N("1. Violin"), + _N("2. Guitar"), + _N("3. Piano"), + _N("4. Flute"), + _N("5. Clarinet"), + _N("6. Oboe"), + _N("7. Trumpet"), + _N("8. Organ"), + _N("9. Horn"), + _N("10. Synth"), + _N("11. Harpsichord"), + _N("12. Vibraphone"), + _N("13. Synth Bass"), + _N("14. Acoustic Bass"), + _N("15. Electric Guitar"), + _N("Drums") }, /* YMF281 */ { - "User", - "1. Electric String", - "2. Bow wow", - "3. Electric Guitar", - "4. Organ", - "5. Clarinet", - "6. Saxophone", - "7. Trumpet", - "8. Street Organ", - "9. Synth Brass", - "10. Electric Piano", - "11. Bass", - "12. Vibraphone", - "13. Chime", - "14. Tom Tom II", - "15. Noise", - "Drums" + _N("User"), + _N("1. Electric String"), + _N("2. Bow wow"), + _N("3. Electric Guitar"), + _N("4. Organ"), + _N("5. Clarinet"), + _N("6. Saxophone"), + _N("7. Trumpet"), + _N("8. Street Organ"), + _N("9. Synth Brass"), + _N("10. Electric Piano"), + _N("11. Bass"), + _N("12. Vibraphone"), + _N("13. Chime"), + _N("14. Tom Tom II"), + _N("15. Noise"), + _N("Drums") }, /* YM2423 */ { - "User", - "1. Strings", - "2. Guitar", - "3. Electric Guitar", - "4. Electric Piano", - "5. Flute", - "6. Marimba", - "7. Trumpet", - "8. Harmonica", - "9. Tuba", - "10. Synth Brass", - "11. Short Saw", - "12. Vibraphone", - "13. Electric Guitar 2", - "14. Synth Bass", - "15. Sitar", - "Drums" + _N("User"), + _N("1. Strings"), + _N("2. Guitar"), + _N("3. Electric Guitar"), + _N("4. Electric Piano"), + _N("5. Flute"), + _N("6. Marimba"), + _N("7. Trumpet"), + _N("8. Harmonica"), + _N("9. Tuba"), + _N("10. Synth Brass"), + _N("11. Short Saw"), + _N("12. Vibraphone"), + _N("13. Electric Guitar 2"), + _N("14. Synth Bass"), + _N("15. Sitar"), + _N("Drums") }, // stolen from FamiTracker /* VRC7 */ { - "User", - "1. Bell", - "2. Guitar", - "3. Piano", - "4. Flute", - "5. Clarinet", - "6. Rattling Bell", - "7. Trumpet", - "8. Reed Organ", - "9. Soft Bell", - "10. Xylophone", - "11. Vibraphone", - "12. Brass", - "13. Bass Guitar", - "14. Synth", - "15. Chorus", - "Drums" + _N("User"), + _N("1. Bell"), + _N("2. Guitar"), + _N("3. Piano"), + _N("4. Flute"), + _N("5. Clarinet"), + _N("6. Rattling Bell"), + _N("7. Trumpet"), + _N("8. Reed Organ"), + _N("9. Soft Bell"), + _N("10. Xylophone"), + _N("11. Vibraphone"), + _N("12. Brass"), + _N("13. Bass Guitar"), + _N("14. Synth"), + _N("15. Chorus"), + _N("Drums") } }; const char* oplWaveforms[8]={ - "Sine", "Half Sine", "Absolute Sine", "Quarter Sine", "Squished Sine", "Squished AbsSine", "Square", "Derived Square" + _N("Sine"), + _N("Half Sine"), + _N("Absolute Sine"), + _N("Quarter Sine"), + _N("Squished Sine"), + _N("Squished AbsSine"), + _N("Square"), + _N("Derived Square") }; const char* oplWaveformsStandard[8]={ - "Sine", "Half Sine", "Absolute Sine", "Pulse Sine", "Sine (Even Periods)", "AbsSine (Even Periods)", "Square", "Derived Square" + _N("Sine"), + _N("Half Sine"), + _N("Absolute Sine"), + _N("Pulse Sine"), + _N("Sine (Even Periods)"), + _N("AbsSine (Even Periods)"), + _N("Square"), + _N("Derived Square") }; const char* opzWaveforms[8]={ - "Sine", "Triangle", "Cut Sine", "Cut Triangle", "Squished Sine", "Squished Triangle", "Squished AbsSine", "Squished AbsTriangle" + _N("Sine"), + _N("Triangle"), + _N("Cut Sine"), + _N("Cut Triangle"), + _N("Squished Sine"), + _N("Squished Triangle"), + _N("Squished AbsSine"), + _N("Squished AbsTriangle") }; const char* oplDrumNames[4]={ - "Snare", "Tom", "Top", "HiHat" + _N("Snare"), + _N("Tom"), + _N("Top"), + _N("HiHat") }; const char* esfmNoiseModeNames[4]={ - "Normal", "Snare", "HiHat", "Top" + _N("Normal"), + _N("Snare"), + _N("HiHat"), + _N("Top") }; const char* esfmNoiseModeDescriptions[4]={ - "Noise disabled", "Square + noise", "Ringmod from OP3 + noise", "Ringmod from OP3 + double pitch ModInput\nWARNING - has emulation issues, subject to change" + _N("Noise disabled"), + _N("Square + noise"), + _N("Ringmod from OP3 + noise"), + _N("Ringmod from OP3 + double pitch ModInput\nWARNING - has emulation issues; subject to change") }; const char* sid2WaveMixModes[5]={ - "Normal", "Bitwise AND", "Bitwise OR", "Bitwise XOR", NULL + _N("Normal"), + _N("Bitwise AND"), + _N("Bitwise OR"), + _N("Bitwise XOR"), + NULL }; const char* sid2ControlBits[4]={ - "gate", "sync", "ring", NULL + _N("gate"), + _N("sync"), + _N("ring"), + NULL }; const bool opIsOutput[8][4]={ @@ -247,10 +307,10 @@ enum ESFMParams { ESFM_FIXED=8 }; -#define FM_NAME(x) fmParamNames[settings.fmNames][x] +#define FM_NAME(x) _(fmParamNames[settings.fmNames][x]) #define FM_SHORT_NAME(x) fmParamShortNames[settings.fmNames][x] -#define ESFM_LONG_NAME(x) (esfmParamLongNames[x]) -#define ESFM_NAME(x) (esfmParamNames[x]) +#define ESFM_LONG_NAME(x) _(esfmParamLongNames[x]) +#define ESFM_NAME(x) _(esfmParamNames[x]) #define ESFM_SHORT_NAME(x) (esfmParamShortNames[x]) const char* macroTypeLabels[4]={ @@ -261,7 +321,10 @@ const char* macroTypeLabels[4]={ }; const char* macroLFOShapes[4]={ - "Triangle", "Saw", "Square", "How did you even" + _N("Triangle"), + _N("Saw"), + _N("Square"), + _N("How did you even") }; const char* fmOperatorBits[5]={ @@ -269,39 +332,78 @@ const char* fmOperatorBits[5]={ }; const char* c64ShapeBits[5]={ - "triangle", "saw", "pulse", "noise", NULL + _N("triangle"), + _N("saw"), + _N("pulse"), + _N("noise"), + NULL }; const char* ayShapeBits[4]={ - "tone", "noise", "envelope", NULL + _N("tone"), + _N("noise"), + _N("envelope"), + NULL }; const char* ayEnvBits[4]={ - "hold", "alternate", "direction", "enable" + _N("hold"), + _N("alternate"), + _N("direction"), + _N("enable") }; const char* ssgEnvBits[5]={ - "0", "1", "2", "enabled", NULL + "0", "1", "2", _N("enabled"), NULL }; const char* saaEnvBits[9]={ - "mirror", "loop", "cut", "direction", "resolution", "fixed", "N/A","enabled", NULL + _N("mirror"), + _N("loop"), + _N("cut"), + _N("direction"), + _N("resolution"), + _N("fixed"), + _N("N/A"), + _N("enabled"), + NULL }; const char* snesModeBits[6]={ - "noise", "echo", "pitch mod", "invert right", "invert left", NULL + _N("noise"), + _N("echo"), + _N("pitch mod"), + _N("invert right"), + _N("invert left"), + NULL }; const char* filtModeBits[5]={ - "low", "band", "high", "ch3off", NULL + _N("low"), + _N("band"), + _N("high"), + _N("ch3off"), + NULL }; const char* c64TestGateBits[5]={ - "gate", "sync", "ring", "test", NULL + _N("gate"), + _N("sync"), + _N("ring"), + _N("test"), + NULL }; const char* pokeyCtlBits[9]={ - "15KHz", "filter 2+4", "filter 1+3", "16-bit 3+4", "16-bit 1+2", "high3", "high1", "poly9", NULL + _N("15KHz"), + _N("filter 2+4"), + _N("filter 1+3"), + _N("16-bit 3+4"), + _N("16-bit 1+2"), + _N("high3"), + _N("high1"), + _N("poly9"), + NULL }; const char* mikeyFeedbackBits[11] = { @@ -309,27 +411,44 @@ const char* mikeyFeedbackBits[11] = { }; const char* msm5232ControlBits[7]={ - "16'", "8'", "4'", "2'", "sustain", NULL + _N("16'"), + _N("8'"), + _N("4'"), + _N("2'"), + _N("sustain"), + NULL }; const char* tedControlBits[3]={ - "square", "noise", NULL + _N("square"), + _N("noise"), + NULL }; const char* c219ControlBits[4]={ - "noise", "invert", "surround", NULL + _N("noise"), + _N("invert"), + _N("surround"), + NULL }; const char* x1_010EnvBits[8]={ - "enable", "oneshot", "split L/R", "HinvR", "VinvR", "HinvL", "VinvL", NULL + _N("enable"), + _N("oneshot"), + _N("split L/R"), + _N("HinvR"), + _N("VinvR"), + _N("HinvL"), + _N("VinvL"), + NULL }; -/*const char* n163UpdateBits[8]={ - "now", "every waveform changed", NULL -};*/ - const char* suControlBits[5]={ - "ring mod", "low pass", "high pass", "band pass", NULL + _N("ring mod"), + _N("low pass"), + _N("high pass"), + _N("band pass"), + NULL }; const char* es5506FilterModes[4]={ @@ -337,35 +456,58 @@ const char* es5506FilterModes[4]={ }; const char* powerNoiseControlBits[3]={ - "enable tap B", "AM with slope", NULL + _N("enable tap B"), + _N("AM with slope"), + NULL }; const char* powerNoiseSlopeControlBits[7]={ - "invert B", "invert A", "reset B", "reset A", "clip B", "clip A", NULL + _N("invert B"), + _N("invert A"), + _N("reset B"), + _N("reset A"), + _N("clip B"), + _N("clip A"), + NULL }; const char* daveControlBits[5]={ - "high pass", "ring mod", "swap counters (noise)", "low pass (noise)", NULL + _N("high pass"), + _N("ring mod"), + _N("swap counters (noise)"), + _N("low pass (noise)"), + NULL }; const char* panBits[5]={ - "right", "left", "rear right", "rear left", NULL + _N("right"), + _N("left"), + _N("rear right"), + _N("rear left"), + NULL }; const char* oneBit[2]={ - "on", NULL + _N("on"), + NULL }; const char* es5506EnvelopeModes[3]={ - "k1 slowdown", "k2 slowdown", NULL + _N("k1 slowdown"), + _N("k2 slowdown"), + NULL }; const char* es5506ControlModes[3]={ - "pause", "reverse", NULL + _N("pause"), + _N("reverse"), + NULL }; const char* minModModeBits[3]={ - "invert right", "invert left", NULL + _N("invert right"), + _N("invert left"), + NULL }; const int orderedOps[4]={ @@ -373,52 +515,52 @@ const int orderedOps[4]={ }; const char* singleWSEffects[7]={ - "None", - "Invert", - "Add", - "Subtract", - "Average", - "Phase", - "Chorus" + _N("None"), + _N("Invert"), + _N("Add"), + _N("Subtract"), + _N("Average"), + _N("Phase"), + _N("Chorus") }; const char* dualWSEffects[9]={ - "None (dual)", - "Wipe", - "Fade", - "Fade (ping-pong)", - "Overlay", - "Negative Overlay", - "Slide", - "Mix Chorus", - "Phase Modulation" + _N("None (dual)"), + _N("Wipe"), + _N("Fade"), + _N("Fade (ping-pong)"), + _N("Overlay"), + _N("Negative Overlay"), + _N("Slide"), + _N("Mix Chorus"), + _N("Phase Modulation") }; const char* gbHWSeqCmdTypes[6]={ - "Envelope", - "Sweep", - "Wait", - "Wait for Release", - "Loop", - "Loop until Release" + _N("Envelope"), + _N("Sweep"), + _N("Wait"), + _N("Wait for Release"), + _N("Loop"), + _N("Loop until Release") }; const char* suHWSeqCmdTypes[7]={ - "Volume Sweep", - "Frequency Sweep", - "Cutoff Sweep", - "Wait", - "Wait for Release", - "Loop", - "Loop until Release" + _N("Volume Sweep"), + _N("Frequency Sweep"), + _N("Cutoff Sweep"), + _N("Wait"), + _N("Wait for Release"), + _N("Loop"), + _N("Loop until Release") }; const char* snesGainModes[5]={ - "Direct", - "Decrease (linear)", - "Decrease (logarithmic)", - "Increase (linear)", - "Increase (bent line)" + _N("Direct"), + _N("Decrease (linear)"), + _N("Decrease (logarithmic)"), + _N("Increase (linear)"), + _N("Increase (bent line)") }; const int detuneMap[2][8]={ @@ -459,30 +601,30 @@ String macroHover(int id, float val, void* u) { } String macroHoverLoop(int id, float val, void* u) { - if (val>1) return "Release"; - if (val>0) return "Loop"; + if (val>1) return _("Release"); + if (val>0) return _("Loop"); return ""; } String macroHoverBit30(int id, float val, void* u) { - if (val>0) return "Fixed"; - return "Relative"; + if (val>0) return _("Fixed"); + return _("Relative"); } String macroHoverGain(int id, float val, void* u) { if (val>=224.0f) { - return fmt::sprintf("%d: +%d (exponential)",id,(int)(val-224)); + return fmt::sprintf(_("%d: +%d (exponential)"),id,(int)(val-224)); } if (val>=192.0f) { - return fmt::sprintf("%d: +%d (linear)",id,(int)(val-192)); + return fmt::sprintf(_("%d: +%d (linear)"),id,(int)(val-192)); } if (val>=160.0f) { - return fmt::sprintf("%d: -%d (exponential)",id,(int)(val-160)); + return fmt::sprintf(_("%d: -%d (exponential)"),id,(int)(val-160)); } if (val>=128.0f) { - return fmt::sprintf("%d: -%d (linear)",id,(int)(val-128)); + return fmt::sprintf(_("%d: -%d (linear)"),id,(int)(val-128)); } - return fmt::sprintf("%d: %d (direct)",id,(int)val); + return fmt::sprintf(_("%d: %d (direct)"),id,(int)val); } String macroHoverES5506FilterMode(int id, float val, void* u) { @@ -509,13 +651,13 @@ String macroHoverES5506FilterMode(int id, float val, void* u) { String macroLFOWaves(int id, float val, void* u) { switch (((int)val)&3) { case 0: - return "Saw"; + return _("Saw"); case 1: - return "Square"; + return _("Square"); case 2: - return "Triangle"; + return _("Triangle"); case 3: - return "Random"; + return _("Random"); default: return "???"; } @@ -1465,7 +1607,7 @@ inline bool enBit30(const int val) { void FurnaceGUI::kvsConfig(DivInstrument* ins, bool supportsKVS) { if (fmPreviewOn) { if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("left click to restart\nmiddle click to pause\nright click to see algorithm"); + ImGui::SetTooltip(_("left click to restart\nmiddle click to pause\nright click to see algorithm")); } if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) { updateFMPreview=true; @@ -1475,11 +1617,11 @@ void FurnaceGUI::kvsConfig(DivInstrument* ins, bool supportsKVS) { } } else if (supportsKVS) { if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("left click to configure TL scaling\nright click to see FM preview"); + ImGui::SetTooltip(_("left click to configure TL scaling\nright click to see FM preview")); } } else { if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("right click to see FM preview"); + ImGui::SetTooltip(_("right click to see FM preview")); } } if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) { @@ -1494,7 +1636,7 @@ void FurnaceGUI::kvsConfig(DivInstrument* ins, bool supportsKVS) { if (ins->type==DIV_INS_OPLL) opCount=2; if (ins->type==DIV_INS_OPL) opCount=(ins->fm.ops==4)?4:2; if (ImGui::BeginPopupContextItem("IKVSOpt",ImGuiPopupFlags_MouseButtonLeft)) { - ImGui::Text("operator level changes with volume?"); + ImGui::Text(_("operator level changes with volume?")); if (ImGui::BeginTable("KVSTable",4,ImGuiTableFlags_BordersInner)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch); @@ -1503,11 +1645,11 @@ void FurnaceGUI::kvsConfig(DivInstrument* ins, bool supportsKVS) { for (int i=0; i<4; i++) { int o=(opCount==4 && ins->type!=DIV_INS_ESFM)?orderedOps[i]:i; if (!(i&1)) ImGui::TableNextRow(); - const char* label="AUTO##OPKVS"; + const char* label=_("AUTO##OPKVS"); if (ins->fm.op[o].kvs==0) { - label="NO##OPKVS"; + label=_("NO##OPKVS"); } else if (ins->fm.op[o].kvs==1) { - label="YES##OPKVS"; + label=_("YES##OPKVS"); } ImGui::TableNextColumn(); ImGui::Text("%d",i+1); @@ -1755,7 +1897,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Bottom"); + ImGui::Text(_("Bottom")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputInt("##MABottom",&i.macro->val[0],1,16)) { PARAMETER @@ -1764,7 +1906,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail } ImGui::TableNextColumn(); - ImGui::Text("Top"); + ImGui::Text(_("Top")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputInt("##MATop",&i.macro->val[1],1,16)) { PARAMETER @@ -1772,13 +1914,10 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail if (i.macro->val[1]>i.max) i.macro->val[1]=i.max; } - /*ImGui::TableNextColumn(); - ImGui::Text("the envelope goes here");*/ - ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Attack"); + ImGui::Text(_("Attack")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##MAAR",&i.macro->val[2],0,255)) { PARAMETER @@ -1787,7 +1926,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail } rightClickable ImGui::TableNextColumn(); - ImGui::Text("Sustain"); + ImGui::Text(_("Sustain")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##MASL",&i.macro->val[5],0,255)) { PARAMETER @@ -1798,7 +1937,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Hold"); + ImGui::Text(_("Hold")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##MAHT",&i.macro->val[3],0,255)) { PARAMETER @@ -1807,7 +1946,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail } rightClickable ImGui::TableNextColumn(); - ImGui::Text("SusTime"); + ImGui::Text(_("SusTime")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##MAST",&i.macro->val[6],0,255)) { PARAMETER @@ -1818,7 +1957,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Decay"); + ImGui::Text(_("Decay")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##MADR",&i.macro->val[4],0,255)) { PARAMETER @@ -1827,7 +1966,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail } rightClickable ImGui::TableNextColumn(); - ImGui::Text("SusDecay"); + ImGui::Text(_("SusDecay")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##MASR",&i.macro->val[7],0,255)) { PARAMETER @@ -1841,7 +1980,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Release"); + ImGui::Text(_("Release")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##MARR",&i.macro->val[8],0,255)) { PARAMETER @@ -1863,7 +2002,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Bottom"); + ImGui::Text(_("Bottom")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputInt("##MABottom",&i.macro->val[0],1,16)) { PARAMETER @@ -1872,7 +2011,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail } ImGui::TableNextColumn(); - ImGui::Text("Top"); + ImGui::Text(_("Top")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputInt("##MATop",&i.macro->val[1],1,16)) { PARAMETER @@ -1886,7 +2025,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Speed"); + ImGui::Text(_("Speed")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##MLSpeed",&i.macro->val[11],0,255)) { PARAMETER @@ -1895,7 +2034,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail } rightClickable ImGui::TableNextColumn(); - ImGui::Text("Phase"); + ImGui::Text(_("Phase")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##MLPhase",&i.macro->val[13],0,1023)) { PARAMETER @@ -1905,7 +2044,7 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Shape"); + ImGui::Text(_("Shape")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##MLShape",&i.macro->val[12],0,2,macroLFOShapes[i.macro->val[12]&3])) { PARAMETER @@ -1958,16 +2097,16 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail if (ImGui::IsItemHovered()) { \ switch (i.macro->open&6) { \ case 0: \ - ImGui::SetTooltip("Macro type: Sequence"); \ + ImGui::SetTooltip(_("Macro type: Sequence")); \ break; \ case 2: \ - ImGui::SetTooltip("Macro type: ADSR"); \ + ImGui::SetTooltip(_("Macro type: ADSR")); \ break; \ case 4: \ - ImGui::SetTooltip("Macro type: LFO"); \ + ImGui::SetTooltip(_("Macro type: LFO")); \ break; \ default: \ - ImGui::SetTooltip("Macro type: What's going on here?"); \ + ImGui::SetTooltip(_("Macro type: What's going on here?")); \ break; \ } \ } \ @@ -1980,14 +2119,14 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail ImGui::Button(ICON_FA_ELLIPSIS_H "##IMacroSet"); \ popToggleColors(); \ if (ImGui::IsItemHovered()) { \ - ImGui::SetTooltip("Delay/Step Length"); \ + ImGui::SetTooltip(_("Delay/Step Length")); \ } \ if (ImGui::BeginPopupContextItem("IMacroSetP",ImGuiPopupFlags_MouseButtonLeft)) { \ - if (ImGui::InputScalar("Step Length (ticks)##IMacroSpeed",ImGuiDataType_U8,&_x.macro->speed,&_ONE,&_THREE)) { \ + if (ImGui::InputScalar(_("Step Length (ticks)##IMacroSpeed"),ImGuiDataType_U8,&_x.macro->speed,&_ONE,&_THREE)) { \ if (_x.macro->speed<1) _x.macro->speed=1; \ MARK_MODIFIED; \ } \ - if (ImGui::InputScalar("Delay##IMacroDelay",ImGuiDataType_U8,&_x.macro->delay,&_ONE,&_THREE)) { \ + if (ImGui::InputScalar(_("Delay##IMacroDelay"),ImGuiDataType_U8,&_x.macro->delay,&_ONE,&_THREE)) { \ MARK_MODIFIED; \ } \ ImGui::EndPopup(); \ @@ -2000,9 +2139,9 @@ void FurnaceGUI::drawMacroEdit(FurnaceGUIMacroDesc& i, int totalFit, float avail } \ if (ImGui::IsItemHovered()) { \ if (i.macro->open&8) { \ - ImGui::SetTooltip("Release mode: Active (jump to release pos)"); \ + ImGui::SetTooltip(_("Release mode: Active (jump to release pos)")); \ } else { \ - ImGui::SetTooltip("Release mode: Passive (delayed release)"); \ + ImGui::SetTooltip(_("Release mode: Passive (delayed release)")); \ } \ } \ popToggleColors(); \ @@ -2142,7 +2281,7 @@ void FurnaceGUI::drawMacros(std::vector& macros, FurnaceGUI if (i.macro->open&1) { if ((i.macro->open&6)==0) { - ImGui::Text("Length"); + ImGui::Text(_("Length")); ImGui::SameLine(); ImGui::SetNextItemWidth(120.0f*dpiScale); int macroLen=i.macro->len; @@ -2240,7 +2379,7 @@ void FurnaceGUI::drawMacros(std::vector& macros, FurnaceGUI if (m.macro->open&1) { if ((m.macro->open&6)==0) { - ImGui::Text("Length"); + ImGui::Text(_("Length")); ImGui::SameLine(); ImGui::SetNextItemWidth(120.0f*dpiScale); int macroLen=m.macro->len; @@ -2251,7 +2390,7 @@ void FurnaceGUI::drawMacros(std::vector& macros, FurnaceGUI } ImGui::SameLine(); } - ImGui::Text("StepLen"); + ImGui::Text(_("StepLen")); ImGui::SameLine(); ImGui::SetNextItemWidth(120.0f*dpiScale); if (ImGui::InputScalar("##IMacroSpeed",ImGuiDataType_U8,&m.macro->speed,&_ONE,&_THREE)) { @@ -2259,7 +2398,7 @@ void FurnaceGUI::drawMacros(std::vector& macros, FurnaceGUI MARK_MODIFIED; } ImGui::SameLine(); - ImGui::Text("Delay"); + ImGui::Text(_("Delay")); ImGui::SameLine(); ImGui::SetNextItemWidth(120.0f*dpiScale); if (ImGui::InputScalar("##IMacroDelay",ImGuiDataType_U8,&m.macro->delay,&_ONE,&_THREE)) { @@ -2283,10 +2422,10 @@ void FurnaceGUI::drawMacros(std::vector& macros, FurnaceGUI } } } else { - ImGui::Text("The heck? No, this isn't even working correctly..."); + ImGui::Text(_("The heck? No, this isn't even working correctly...")); } } else { - ImGui::Text("The only problem with that selectedMacro is that it's a bug..."); + ImGui::Text(_("The only problem with that selectedMacro is that it's a bug...")); } // goes here @@ -2447,13 +2586,13 @@ void FurnaceGUI::alterSampleMap(int column, int val) { ImGui::Button(ICON_FA_ARROWS "##SysDrag"); \ ImGui::SameLine(); \ if (ImGui::IsKeyDown(ImGuiKey_LeftShift) || ImGui::IsKeyDown(ImGuiKey_RightShift)) { \ - ImGui::Text("(copying)"); \ + ImGui::Text(_("(copying)")); \ } else { \ - ImGui::Text("(swapping)"); \ + ImGui::Text(_("(swapping)")); \ } \ ImGui::EndDragDropSource(); \ } else if (ImGui::IsItemHovered()) { \ - ImGui::SetTooltip("- drag to swap operator\n- shift-drag to copy operator"); \ + ImGui::SetTooltip(_("- drag to swap operator\n- shift-drag to copy operator")); \ } \ if (ImGui::BeginDragDropTarget()) { \ const ImGuiPayload* dragItem=ImGui::AcceptDragDropPayload("FUR_OP"); \ @@ -2486,12 +2625,12 @@ void FurnaceGUI::alterSampleMap(int column, int val) { } void FurnaceGUI::insTabSample(DivInstrument* ins) { - const char* sampleTabName="Sample"; - if (ins->type==DIV_INS_NES) sampleTabName="DPCM"; + const char* sampleTabName=_("Sample"); + if (ins->type==DIV_INS_NES) sampleTabName=_("DPCM"); if (ImGui::BeginTabItem(sampleTabName)) { if (ins->type==DIV_INS_NES && e->song.oldDPCM) { - ImGui::Text("new DPCM features disabled (compatibility)!"); - if (ImGui::Button("click here to enable them.")) { + ImGui::Text(_("new DPCM features disabled (compatibility)!")); + if (ImGui::Button(_("click here to enable them."))) { e->song.oldDPCM=false; MARK_MODIFIED; } @@ -2502,7 +2641,7 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) { String sName; bool wannaOpenSMPopup=false; if (ins->amiga.initSample<0 || ins->amiga.initSample>=e->song.sampleLen) { - sName="none selected"; + sName=_("none selected"); } else { sName=e->song.sample[ins->amiga.initSample]->name; } @@ -2515,16 +2654,16 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) { ins->type==DIV_INS_VRC6 || ins->type==DIV_INS_SU || ins->type==DIV_INS_NDS) { - P(ImGui::Checkbox("Use sample",&ins->amiga.useSample)); + P(ImGui::Checkbox(_("Use sample"),&ins->amiga.useSample)); if (ins->type==DIV_INS_X1_010) { - if (ImGui::InputInt("Sample bank slot##BANKSLOT",&ins->x1_010.bankSlot,1,4)) { PARAMETER + if (ImGui::InputInt(_("Sample bank slot##BANKSLOT"),&ins->x1_010.bankSlot,1,4)) { PARAMETER if (ins->x1_010.bankSlot<0) ins->x1_010.bankSlot=0; if (ins->x1_010.bankSlot>=7) ins->x1_010.bankSlot=7; } } } ImGui::AlignTextToFramePadding(); - ImGui::Text("Sample"); + ImGui::Text(_("Sample")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::BeginCombo("##ISample",sName.c_str())) { @@ -2539,13 +2678,13 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) { } // Wavetable if (ins->type==DIV_INS_AMIGA || ins->type==DIV_INS_SNES || ins->type==DIV_INS_GBA_DMA || ins->type==DIV_INS_GBA_MINMOD) { - const char* useWaveText=ins->type==DIV_INS_AMIGA?"Use wavetable (Amiga/Generic DAC only)":"Use wavetable"; + const char* useWaveText=ins->type==DIV_INS_AMIGA?_("Use wavetable (Amiga/Generic DAC only)"):_("Use wavetable"); ImGui::BeginDisabled(ins->amiga.useNoteMap); P(ImGui::Checkbox(useWaveText,&ins->amiga.useWave)); if (ins->amiga.useWave) { int len=ins->amiga.waveLen+1; int origLen=len; - if (ImGui::InputInt("Width",&len,2,16)) { + if (ImGui::InputInt(_("Width"),&len,2,16)) { if (ins->type==DIV_INS_SNES || ins->type==DIV_INS_GBA_DMA) { if (len<16) len=16; if (len>256) len=256; @@ -2566,7 +2705,7 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) { } // Note map ImGui::BeginDisabled(ins->amiga.useWave); - P(ImGui::Checkbox("Use sample map",&ins->amiga.useNoteMap)); + P(ImGui::Checkbox(_("Use sample map"),&ins->amiga.useNoteMap)); if (ins->amiga.useNoteMap) { if (ImGui::IsMouseClicked(ImGuiMouseButton_Left) && ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows)) sampleMapFocused=false; if (curWindowLast!=GUI_WINDOW_INS_EDIT) sampleMapFocused=false; @@ -2586,15 +2725,15 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) { ImGui::Text("#"); if (ins->type==DIV_INS_NES) { ImGui::TableNextColumn(); - ImGui::Text("pitch"); + ImGui::Text(_("pitch")); ImGui::TableNextColumn(); - ImGui::Text("delta"); + ImGui::Text(_("delta")); } else { ImGui::TableNextColumn(); - ImGui::Text("note"); + ImGui::Text(_("note")); } ImGui::TableNextColumn(); - ImGui::Text("sample name"); + ImGui::Text(_("sample name")); int sampleMapMin=sampleMapSelStart; int sampleMapMax=sampleMapSelEnd; if (sampleMapMin>sampleMapMax) { @@ -2859,7 +2998,7 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) { if (ImGui::BeginPopup("SampleMapUtils",ImGuiWindowFlags_NoMove|ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings)) { if (sampleMapSelStart==sampleMapSelEnd && sampleMapSelStart>=0 && sampleMapSelStart<120) { if (ins->type==DIV_INS_NES) { - if (ImGui::MenuItem("set entire map to this pitch")) { + if (ImGui::MenuItem(_("set entire map to this pitch"))) { if (sampleMapSelStart>=0 && sampleMapSelStart<120) { for (int i=0; i<120; i++) { if (i==sampleMapSelStart) continue; @@ -2867,7 +3006,7 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) { } } } - if (ImGui::MenuItem("set entire map to this delta counter value")) { + if (ImGui::MenuItem(_("set entire map to this delta counter value"))) { if (sampleMapSelStart>=0 && sampleMapSelStart<120) { for (int i=0; i<120; i++) { if (i==sampleMapSelStart) continue; @@ -2876,7 +3015,7 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) { } } } else { - if (ImGui::MenuItem("set entire map to this note")) { + if (ImGui::MenuItem(_("set entire map to this note"))) { if (sampleMapSelStart>=0 && sampleMapSelStart<120) { for (int i=0; i<120; i++) { if (i==sampleMapSelStart) continue; @@ -2885,7 +3024,7 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) { } } } - if (ImGui::MenuItem("set entire map to this sample")) { + if (ImGui::MenuItem(_("set entire map to this sample"))) { if (sampleMapSelStart>=0 && sampleMapSelStart<120) { for (int i=0; i<120; i++) { if (i==sampleMapSelStart) continue; @@ -2895,24 +3034,24 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) { } } if (ins->type==DIV_INS_NES) { - if (ImGui::MenuItem("reset pitches")) { + if (ImGui::MenuItem(_("reset pitches"))) { for (int i=0; i<120; i++) { ins->amiga.noteMap[i].dpcmFreq=15; } } - if (ImGui::MenuItem("clear delta counter values")) { + if (ImGui::MenuItem(_("clear delta counter values"))) { for (int i=0; i<120; i++) { ins->amiga.noteMap[i].dpcmDelta=-1; } } } else { - if (ImGui::MenuItem("reset notes")) { + if (ImGui::MenuItem(_("reset notes"))) { for (int i=0; i<120; i++) { ins->amiga.noteMap[i].freq=i; } } } - if (ImGui::MenuItem("clear map samples")) { + if (ImGui::MenuItem(_("clear map samples"))) { for (int i=0; i<120; i++) { ins->amiga.noteMap[i].map=-1; } @@ -3006,7 +3145,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { } kvsConfig(ins); - if (ImGui::Button("Request from TX81Z")) { + if (ImGui::Button(_("Request from TX81Z"))) { doAction(GUI_ACTION_TX81Z_REQUEST); } /* @@ -3034,7 +3173,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { ImGui::TableNextColumn(); P(CWSliderScalar(FM_NAME(FM_ALG),ImGuiDataType_U8,&ins->fm.alg,&_ZERO,&algMax)); rightClickable if (ins->type==DIV_INS_OPL) { - if (ImGui::Checkbox("Drums",&drums)) { PARAMETER + if (ImGui::Checkbox(_("Drums"),&drums)) { PARAMETER ins->fm.opllPreset=drums?16:0; } } @@ -3085,14 +3224,14 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (ImGui::BeginCombo("##LLPreset",opllInsNames[presentWhich][ins->fm.opllPreset])) { + if (ImGui::BeginCombo("##LLPreset",_(opllInsNames[presentWhich][ins->fm.opllPreset]))) { if (isPresentCount>1) { if (ImGui::BeginTable("LLPresetList",isPresentCount)) { ImGui::TableNextRow(ImGuiTableRowFlags_Headers); for (int i=0; i<4; i++) { if (!isPresent[i]) continue; ImGui::TableNextColumn(); - ImGui::Text("%s name",opllVariants[i]); + ImGui::Text(_("%s name"),opllVariants[i]); } for (int i=0; i<17; i++) { ImGui::TableNextRow(); @@ -3100,7 +3239,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { if (!isPresent[j]) continue; ImGui::TableNextColumn(); ImGui::PushID(j*17+i); - if (ImGui::Selectable(opllInsNames[j][i])) { + if (ImGui::Selectable(_(opllInsNames[j][i]))) { ins->fm.opllPreset=i; } ImGui::PopID(); @@ -3110,7 +3249,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { } } else { for (int i=0; i<17; i++) { - if (ImGui::Selectable(opllInsNames[presentWhich][i])) { + if (ImGui::Selectable(_(opllInsNames[presentWhich][i]))) { ins->fm.opllPreset=i; } } @@ -3121,8 +3260,8 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { } case DIV_INS_ESFM: { ImGui::TableNextColumn(); - P(CWSliderScalar(ESFM_LONG_NAME(ESFM_NOISE),ImGuiDataType_U8,&ins->esfm.noise,&_ZERO,&_THREE,esfmNoiseModeNames[ins->esfm.noise&3])); rightClickable - ImGui::TextUnformatted(esfmNoiseModeDescriptions[ins->esfm.noise&3]); + P(CWSliderScalar(ESFM_LONG_NAME(ESFM_NOISE),ImGuiDataType_U8,&ins->esfm.noise,&_ZERO,&_THREE,_(esfmNoiseModeNames[ins->esfm.noise&3]))); rightClickable + ImGui::TextUnformatted(_(esfmNoiseModeDescriptions[ins->esfm.noise&3])); ImGui::TableNextColumn(); ImGui::TableNextColumn(); if (fmPreviewOn) { @@ -3144,9 +3283,9 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { if (((ins->type==DIV_INS_OPLL || ins->type==DIV_INS_OPL) && ins->fm.opllPreset==16) || ins->type==DIV_INS_OPL_DRUMS) { ins->fm.ops=2; - P(ImGui::Checkbox("Fixed frequency mode",&ins->fm.fixedDrums)); + P(ImGui::Checkbox(_("Fixed frequency mode"),&ins->fm.fixedDrums)); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, drums will be set to the specified frequencies, ignoring the note."); + ImGui::SetTooltip(_("when enabled, drums will be set to the specified frequencies, ignoring the note.")); } if (ins->fm.fixedDrums) { int block=0; @@ -3154,15 +3293,15 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { if (ImGui::BeginTable("fixedDrumSettings",3)) { ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("Drum"); + ImGui::Text(_("Drum")); ImGui::TableNextColumn(); - ImGui::Text("Block"); + ImGui::Text(_("Block")); ImGui::TableNextColumn(); - ImGui::Text("FreqNum"); + ImGui::Text(_("FreqNum")); - DRUM_FREQ("Kick","##DBlock0","##DFreq0",ins->fm.kickFreq); - DRUM_FREQ("Snare/Hi-hat","##DBlock1","##DFreq1",ins->fm.snareHatFreq); - DRUM_FREQ("Tom/Top","##DBlock2","##DFreq2",ins->fm.tomTopFreq); + DRUM_FREQ(_("Kick"),"##DBlock0","##DFreq0",ins->fm.kickFreq); + DRUM_FREQ(_("Snare/Hi-hat"),"##DBlock1","##DFreq1",ins->fm.snareHatFreq); + DRUM_FREQ(_("Tom/Top"),"##DBlock2","##DFreq2",ins->fm.tomTopFreq); ImGui::EndTable(); } } @@ -3172,9 +3311,9 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { if (ins->type==DIV_INS_OPLL && ins->fm.opllPreset!=0) willDisplayOps=false; if (!willDisplayOps && ins->type==DIV_INS_OPLL) { ins->fm.op[1].tl&=15; - P(CWSliderScalar("Volume##TL",ImGuiDataType_U8,&ins->fm.op[1].tl,&_FIFTEEN,&_ZERO)); rightClickable + P(CWSliderScalar(_("Volume##TL"),ImGuiDataType_U8,&ins->fm.op[1].tl,&_FIFTEEN,&_ZERO)); rightClickable if (ins->fm.opllPreset==16) { - ImGui::Text("this volume slider only works in compatibility (non-drums) system."); + ImGui::Text(_("this volume slider only works in compatibility (non-drums) system.")); } // update OPLL preset preview @@ -3405,8 +3544,8 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { ImGui::TextUnformatted(FM_NAME(FM_SSG)); } ImGui::TableNextColumn(); - CENTER_TEXT("Envelope"); - ImGui::TextUnformatted("Envelope"); + CENTER_TEXT(_("Envelope")); + ImGui::TextUnformatted(_("Envelope")); float sliderHeight=32.0f*dpiScale; @@ -3482,9 +3621,9 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { opNameLabel=fmt::sprintf("%s",oplDrumNames[i]); } else if (ins->type==DIV_INS_OPL && fmOrigin.opllPreset==16) { if (i==1) { - opNameLabel="Kick"; + opNameLabel=_("Kick"); } else { - opNameLabel="Env"; + opNameLabel=_("Env"); } } else { opNameLabel=fmt::sprintf("OP%d",i+1); @@ -3650,18 +3789,18 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { if (ImGui::Checkbox("AM",&amOn)) { PARAMETER op.am=amOn; } - if (ImGui::Checkbox("Fixed",&egtOn)) { PARAMETER + if (ImGui::Checkbox(_("Fixed"),&egtOn)) { PARAMETER op.egt=egtOn; } if (egtOn) { int block=op.dt; int freqNum=(op.mult<<4)|(op.dvb&15); - if (ImGui::InputInt("Block",&block,1,1)) { + if (ImGui::InputInt(_("Block"),&block,1,1)) { if (block<0) block=0; if (block>7) block=7; op.dt=block; } - if (ImGui::InputInt("FreqNum",&freqNum,1,16)) { + if (ImGui::InputInt(_("FreqNum"),&freqNum,1,16)) { if (freqNum<0) freqNum=0; if (freqNum>255) freqNum=255; op.mult=freqNum>>4; @@ -3688,7 +3827,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (CWSliderScalar("##SSG",ImGuiDataType_U8,&ssgEnv,&_ZERO,&_SEVEN,ssgEnvTypes[ssgEnv])) { PARAMETER + if (CWSliderScalar("##SSG",ImGuiDataType_U8,&ssgEnv,&_ZERO,&_SEVEN,_(ssgEnvTypes[ssgEnv]))) { PARAMETER op.ssgEnv=(op.ssgEnv&8)|(ssgEnv&7); } } @@ -3762,12 +3901,12 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { if (fixedOn) { int block=(opE.ct>>2)&7; int freqNum=((opE.ct&3)<<8)|((unsigned char)opE.dt); - if (ImGui::InputInt("Block",&block,1,1)) { + if (ImGui::InputInt(_("Block"),&block,1,1)) { if (block<0) block=0; if (block>7) block=7; opE.ct=(opE.ct&(~(7<<2)))|(block<<2); } - if (ImGui::InputInt("FreqNum",&freqNum,1,16)) { + if (ImGui::InputInt(_("FreqNum"),&freqNum,1,16)) { if (freqNum<0) freqNum=0; if (freqNum>1023) freqNum=1023; opE.dt=freqNum&0xff; @@ -3838,7 +3977,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); P(CWSliderScalar("##WS",ImGuiDataType_U8,&op.ws,&_ZERO,&_SEVEN,(ins->type==DIV_INS_OPZ)?opzWaveforms[op.ws&7]:(settings.oplStandardWaveNames?oplWaveformsStandard[op.ws&7]:oplWaveforms[op.ws&7]))); rightClickable if ((ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPL_DRUMS) && ImGui::IsItemHovered()) { - ImGui::SetTooltip("OPL2/3 only (last 4 waveforms are OPL3 only)"); + ImGui::SetTooltip(_("OPL2/3 only (last 4 waveforms are OPL3 only)")); } if (ins->type==DIV_INS_ESFM && fixedOn) { if (ImGui::Checkbox(FM_SHORT_NAME(FM_VIB),&vibOn)) { PARAMETER @@ -3937,12 +4076,12 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { snprintf(tempID,1024,"%s",oplDrumNames[i]); } else if (ins->type==DIV_INS_OPL && fmOrigin.opllPreset==16) { if (i==1) { - snprintf(tempID,1024,"Envelope 2 (kick only)"); + snprintf(tempID,1024,_("Envelope 2 (kick only)")); } else { - snprintf(tempID,1024,"Envelope"); + snprintf(tempID,1024,_("Envelope")); } } else { - snprintf(tempID,1024,"Operator %d",i+1); + snprintf(tempID,1024,_("Operator %d"),i+1); } float nextCursorPosX=ImGui::GetCursorPosX()+0.5*(ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize(tempID).x-(opsAreMutable?(ImGui::GetStyle().FramePadding.x*2.0f):0.0f)); OP_DRAG_POINT; @@ -4004,12 +4143,12 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { } ImGui::TableNextColumn(); if (ins->type==DIV_INS_FM) { - ImGui::Text("SSG-EG"); + ImGui::Text(_("SSG-EG")); } else { - ImGui::Text("Waveform"); + ImGui::Text(_("Waveform")); } ImGui::TableNextColumn(); - ImGui::Text("Envelope"); + ImGui::Text(_("Envelope")); ImGui::TableNextColumn(); // A/D/S/R @@ -4105,7 +4244,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (CWSliderScalar("##SSG",ImGuiDataType_U8,&ssgEnv,&_ZERO,&_SEVEN,ssgEnvTypes[ssgEnv])) { PARAMETER + if (CWSliderScalar("##SSG",ImGuiDataType_U8,&ssgEnv,&_ZERO,&_SEVEN,_(ssgEnvTypes[ssgEnv]))) { PARAMETER op.ssgEnv=(op.ssgEnv&8)|(ssgEnv&7); } @@ -4204,7 +4343,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); P(CWSliderScalar("##WS",ImGuiDataType_U8,&op.ws,&_ZERO,&_SEVEN,(ins->type==DIV_INS_OPZ)?opzWaveforms[op.ws&7]:(settings.oplStandardWaveNames?oplWaveformsStandard[op.ws&7]:oplWaveforms[op.ws&7]))); rightClickable if ((ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPL_DRUMS) && ImGui::IsItemHovered()) { - ImGui::SetTooltip("OPL2/3 only (last 4 waveforms are OPL3 only)"); + ImGui::SetTooltip(_("OPL2/3 only (last 4 waveforms are OPL3 only)")); } // params @@ -4254,7 +4393,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); P(CWSliderScalar("##WS",ImGuiDataType_U8,&op.ws,&_ZERO,&_SEVEN,(ins->type==DIV_INS_OPZ)?opzWaveforms[op.ws&7]:(settings.oplStandardWaveNames?oplWaveformsStandard[op.ws&7]:oplWaveforms[op.ws&7]))); rightClickable if ((ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPL_DRUMS) && ImGui::IsItemHovered()) { - ImGui::SetTooltip("OPL2/3 only (last 4 waveforms are OPL3 only)"); + ImGui::SetTooltip(_("OPL2/3 only (last 4 waveforms are OPL3 only)")); } // params @@ -4262,7 +4401,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { if (egtOn) { int block=op.dt; int freqNum=(op.mult<<4)|(op.dvb&15); - ImGui::Text("Block"); + ImGui::Text(_("Block")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImVec2 cursorAlign=ImGui::GetCursorPos(); @@ -4272,7 +4411,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { op.dt=block; } - ImGui::Text("Freq"); + ImGui::Text(_("Freq")); ImGui::SameLine(); ImGui::SetCursorPos(ImVec2(cursorAlign.x,ImGui::GetCursorPosY())); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -4301,7 +4440,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { snprintf(tempID,1024,"%s: %%d",FM_NAME(FM_DT2)); P(CWSliderScalar("##DT2",ImGuiDataType_U8,&op.dt2,&_ZERO,&_THREE,tempID)); rightClickable if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Only on YM2151 (OPM)"); + ImGui::SetTooltip(_("Only on YM2151 (OPM)")); } ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -4324,9 +4463,9 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { if (opE.fixed) { int block=(opE.ct>>2)&7; int freqNum=((opE.ct&3)<<8)|((unsigned char)opE.dt); - ImGui::Text("Blk"); + ImGui::Text(_("Blk")); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Block"); + ImGui::SetTooltip(_("Block")); } ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -4337,9 +4476,9 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { opE.ct=(opE.ct&(~(7<<2)))|(block<<2); } - ImGui::Text("F"); + ImGui::Text(_("F")); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Frequency (F-Num)"); + ImGui::SetTooltip(_("Frequency (F-Num)")); } ImGui::SameLine(); //ImGui::SetCursorPos(ImVec2(cursorAlign.x,ImGui::GetCursorPosY())); @@ -4412,7 +4551,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { op.am=amOn; } ImGui::SameLine(); - if (ImGui::Checkbox("Fixed",&egtOn)) { PARAMETER + if (ImGui::Checkbox(_("Fixed"),&egtOn)) { PARAMETER op.egt=egtOn; } @@ -4646,9 +4785,9 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { opNameLabel=fmt::sprintf("%s",oplDrumNames[i]); } else if (ins->type==DIV_INS_OPL && fmOrigin.opllPreset==16) { if (i==1) { - opNameLabel="Envelope 2 (kick only)"; + opNameLabel=_("Envelope 2 (kick only)"); } else { - opNameLabel="Envelope"; + opNameLabel=_("Envelope"); } } else { opNameLabel=fmt::sprintf("OP%d",i+1); @@ -4691,7 +4830,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { unsigned char ssgEnv=op.ssgEnv&7; if (ins->type!=DIV_INS_OPL && ins->type!=DIV_INS_OPL_DRUMS && ins->type!=DIV_INS_OPZ && ins->type!=DIV_INS_OPM && ins->type!=DIV_INS_ESFM) { ImGui::SameLine(); - if (ImGui::Checkbox((ins->type==DIV_INS_OPLL)?FM_NAME(FM_EGS):"SSG On",&ssgOn)) { PARAMETER + if (ImGui::Checkbox((ins->type==DIV_INS_OPLL)?FM_NAME(FM_EGS):_("SSG On"),&ssgOn)) { PARAMETER op.ssgEnv=(op.ssgEnv&7)|(ssgOn<<3); } } @@ -4706,7 +4845,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { if (ins->type==DIV_INS_OPZ) { ImGui::SameLine(); bool fixedOn=op.egt; - if (ImGui::Checkbox("Fixed",&fixedOn)) { PARAMETER + if (ImGui::Checkbox(_("Fixed"),&fixedOn)) { PARAMETER op.egt=fixedOn; } } @@ -4851,7 +4990,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { op.dvb=freqNum&15; } rightClickable ImGui::TableNextColumn(); - ImGui::Text("FreqNum"); + ImGui::Text(_("FreqNum")); } else { ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -4904,7 +5043,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (CWSliderScalar("##SSG",ImGuiDataType_U8,&ssgEnv,&_ZERO,&_SEVEN,ssgEnvTypes[ssgEnv])) { PARAMETER + if (CWSliderScalar("##SSG",ImGuiDataType_U8,&ssgEnv,&_ZERO,&_SEVEN,_(ssgEnvTypes[ssgEnv]))) { PARAMETER op.ssgEnv=(op.ssgEnv&8)|(ssgEnv&7); } rightClickable ImGui::TableNextColumn(); @@ -4926,7 +5065,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { opE.ct=(opE.ct&(~(7<<2)))|(block<<2); } ImGui::TableNextColumn(); - ImGui::Text("Block"); + ImGui::Text(_("Block")); ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -4937,7 +5076,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { opE.ct=(opE.ct&(~3))|(freqNum>>8); } ImGui::TableNextColumn(); - ImGui::Text("FreqNum"); + ImGui::Text(_("FreqNum")); } else { ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -4962,7 +5101,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) { ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); P(CWSliderScalar("##WS",ImGuiDataType_U8,&op.ws,&_ZERO,&_SEVEN,(ins->type==DIV_INS_OPZ)?opzWaveforms[op.ws&7]:(settings.oplStandardWaveNames?oplWaveformsStandard[op.ws&7]:oplWaveforms[op.ws&7]))); rightClickable if ((ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPL_DRUMS) && ImGui::IsItemHovered()) { - ImGui::SetTooltip("OPL2/3 only (last 4 waveforms are OPL3 only)"); + ImGui::SetTooltip(_("OPL2/3 only (last 4 waveforms are OPL3 only)")); } ImGui::TableNextColumn(); ImGui::Text("%s",FM_NAME(FM_WS)); @@ -5064,12 +5203,12 @@ void FurnaceGUI::drawInsEdit() { if (ImGui::Begin("Instrument Editor",&insEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) { if (curIns==-2) { ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()+ImGui::GetStyle().ItemSpacing.y)*0.5f); - CENTER_TEXT("waiting..."); - ImGui::Text("waiting..."); + CENTER_TEXT(_("waiting...")); + ImGui::Text(_("waiting...")); } else if (curIns<0 || curIns>=(int)e->song.ins.size()) { ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()*(e->song.ins.empty()?2.0f:3.0f)+ImGui::GetStyle().ItemSpacing.y)*0.5f); - CENTER_TEXT("no instrument selected"); - ImGui::Text("no instrument selected"); + CENTER_TEXT(_("no instrument selected")); + ImGui::Text(_("no instrument selected")); if (ImGui::BeginTable("noAssetCenter",3)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch,0.5f); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed); @@ -5081,7 +5220,7 @@ void FurnaceGUI::drawInsEdit() { if (e->song.ins.size()>0) { ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (ImGui::BeginCombo("##InsSelect","select one...")) { + if (ImGui::BeginCombo("##InsSelect",_("select one..."))) { String name; for (size_t i=0; isong.ins.size(); i++) { name=fmt::sprintf("%.2X: %s##_INSS%d",i,e->song.ins[i]->name,i); @@ -5094,16 +5233,16 @@ void FurnaceGUI::drawInsEdit() { ImGui::EndCombo(); } ImGui::AlignTextToFramePadding(); - ImGui::TextUnformatted("or"); + ImGui::TextUnformatted(_("or")); ImGui::SameLine(); } - if (ImGui::Button("Open")) { + if (ImGui::Button(_("Open"))) { doAction(GUI_ACTION_INS_LIST_OPEN); } ImGui::SameLine(); - ImGui::TextUnformatted("or"); + ImGui::TextUnformatted(_("or")); ImGui::SameLine(); - if (ImGui::Button("Create New")) { + if (ImGui::Button(_("Create New"))) { doAction(GUI_ACTION_INS_LIST_ADD); } @@ -5146,7 +5285,7 @@ void FurnaceGUI::drawInsEdit() { } ImGui::TableNextColumn(); - ImGui::Text("Name"); + ImGui::Text(_("Name")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -5162,24 +5301,24 @@ void FurnaceGUI::drawInsEdit() { doAction(GUI_ACTION_INS_LIST_OPEN_REPLACE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Open"); + ImGui::SetTooltip(_("Open")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_FLOPPY_O "##IESave")) { doAction(GUI_ACTION_INS_LIST_SAVE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Save"); + ImGui::SetTooltip(_("Save")); } if (ImGui::BeginPopupContextItem("InsSaveFormats",ImGuiMouseButton_Right)) { - if (ImGui::MenuItem("save as .dmp...")) { + if (ImGui::MenuItem(_("save as .dmp..."))) { doAction(GUI_ACTION_INS_LIST_SAVE_DMP); } ImGui::EndPopup(); } ImGui::TableNextColumn(); - ImGui::Text("Type"); + ImGui::Text(_("Type")); ImGui::TableNextColumn(); int insType=ins->type; @@ -5192,7 +5331,7 @@ void FurnaceGUI::drawInsEdit() { } pushWarningColor(warnType,warnType && failedNoteOn); - if (ImGui::BeginCombo("##Type",(insType>=DIV_INS_MAX)?"Unknown":insTypes[insType][0])) { + if (ImGui::BeginCombo("##Type",(insType>=DIV_INS_MAX)?_("Unknown"):_(insTypes[insType][0]))) { std::vector insTypeList; if (settings.displayAllInsTypes) { for (int i=0; insTypes[i][0]; i++) { @@ -5251,7 +5390,7 @@ void FurnaceGUI::drawInsEdit() { ImGui::EndCombo(); } else if (warnType) { if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("none of the currently present chips are able to play this instrument type!"); + ImGui::SetTooltip(_("none of the currently present chips are able to play this instrument type!")); } } popWarningColor(); @@ -5271,7 +5410,7 @@ void FurnaceGUI::drawInsEdit() { insTabFM(ins); if (ins->type!=DIV_INS_ESFM) { - if (ImGui::BeginTabItem("FM Macros")) { + if (ImGui::BeginTabItem(_("FM Macros"))) { if (ins->type==DIV_INS_OPLL) { macroList.push_back(FurnaceGUIMacroDesc(FM_NAME(FM_SUS),&ins->std.algMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); macroList.push_back(FurnaceGUIMacroDesc(FM_NAME(FM_FB),&ins->std.fbMacro,0,7,96,uiColors[GUI_COLOR_MACRO_OTHER])); @@ -5293,21 +5432,21 @@ void FurnaceGUI::drawInsEdit() { } if (ins->type==DIV_INS_FM) { - macroList.push_back(FurnaceGUIMacroDesc("LFO Speed",&ins->std.ex3Macro,0,8,96,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("LFO Speed"),&ins->std.ex3Macro,0,8,96,uiColors[GUI_COLOR_MACRO_OTHER])); } if (ins->type==DIV_INS_OPZ || ins->type==DIV_INS_OPM) { - macroList.push_back(FurnaceGUIMacroDesc("AM Depth",&ins->std.ex1Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("PM Depth",&ins->std.ex2Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("LFO Speed",&ins->std.ex3Macro,0,255,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("LFO Shape",&ins->std.waveMacro,0,3,48,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,macroLFOWaves)); + macroList.push_back(FurnaceGUIMacroDesc(_("AM Depth"),&ins->std.ex1Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("PM Depth"),&ins->std.ex2Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("LFO Speed"),&ins->std.ex3Macro,0,255,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("LFO Shape"),&ins->std.waveMacro,0,3,48,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,macroLFOWaves)); } if (ins->type==DIV_INS_FM || ins->type==DIV_INS_OPM) { - macroList.push_back(FurnaceGUIMacroDesc("OpMask",&ins->std.ex4Macro,0,4,128,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,fmOperatorBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("OpMask"),&ins->std.ex4Macro,0,4,128,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,fmOperatorBits)); } else if (ins->type==DIV_INS_OPZ) { - macroList.push_back(FurnaceGUIMacroDesc("AM Depth 2",&ins->std.ex5Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("PM Depth 2",&ins->std.ex6Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("LFO2 Speed",&ins->std.ex7Macro,0,255,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("LFO2 Shape",&ins->std.ex8Macro,0,3,48,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,macroLFOWaves)); + macroList.push_back(FurnaceGUIMacroDesc(_("AM Depth 2"),&ins->std.ex5Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("PM Depth 2"),&ins->std.ex6Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("LFO2 Speed"),&ins->std.ex7Macro,0,255,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("LFO2 Shape"),&ins->std.ex8Macro,0,3,48,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,macroLFOWaves)); } drawMacros(macroList,macroEditStateFM); ImGui::EndTabItem(); @@ -5316,9 +5455,9 @@ void FurnaceGUI::drawInsEdit() { for (int i=0; itype==DIV_INS_OPL_DRUMS) { if (i>0) break; - snprintf(label,31,"Operator Macros"); + snprintf(label,31,_("Operator Macros")); } else { - snprintf(label,31,"OP%d Macros",i+1); + snprintf(label,31,_("OP%d Macros"),i+1); } if (ImGui::BeginTabItem(label)) { ImGui::PushID(i); @@ -5376,11 +5515,11 @@ void FurnaceGUI::drawInsEdit() { macroList.push_back(FurnaceGUIMacroDesc(ESFM_NAME(ESFM_OUTLVL),&ins->std.opMacros[ordi].egtMacro,0,7,64,uiColors[GUI_COLOR_MACRO_OTHER])); macroList.push_back(FurnaceGUIMacroDesc(ESFM_NAME(ESFM_MODIN),&ins->std.opMacros[ordi].d2rMacro,0,7,64,uiColors[GUI_COLOR_MACRO_OTHER])); if (ins->esfm.op[ordi].fixed) { - macroList.push_back(FurnaceGUIMacroDesc("Block",&ins->std.opMacros[ordi].ssgMacro,0,7,64,uiColors[GUI_COLOR_MACRO_OTHER],true)); - macroList.push_back(FurnaceGUIMacroDesc("FreqNum",&ins->std.opMacros[ordi].dtMacro,0,1023,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Block"),&ins->std.opMacros[ordi].ssgMacro,0,7,64,uiColors[GUI_COLOR_MACRO_OTHER],true)); + macroList.push_back(FurnaceGUIMacroDesc(_("FreqNum"),&ins->std.opMacros[ordi].dtMacro,0,1023,160,uiColors[GUI_COLOR_MACRO_OTHER])); } else { - macroList.push_back(FurnaceGUIMacroDesc("Op. Arpeggio",&ins->std.opMacros[ordi].ssgMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.opMacros[ordi].ssgMacro.val,true)); - macroList.push_back(FurnaceGUIMacroDesc("Op. Pitch",&ins->std.opMacros[ordi].dtMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode,NULL,false,NULL,false,NULL,false,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Op. Arpeggio"),&ins->std.opMacros[ordi].ssgMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.opMacros[ordi].ssgMacro.val,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Op. Pitch"),&ins->std.opMacros[ordi].dtMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode,NULL,false,NULL,false,NULL,false,true)); } macroList.push_back(FurnaceGUIMacroDesc(FM_NAME(FM_AM),&ins->std.opMacros[ordi].amMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); @@ -5389,7 +5528,7 @@ void FurnaceGUI::drawInsEdit() { macroList.push_back(FurnaceGUIMacroDesc(FM_NAME(FM_DVB),&ins->std.opMacros[ordi].dvbMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); macroList.push_back(FurnaceGUIMacroDesc(FM_NAME(FM_KSR),&ins->std.opMacros[ordi].ksrMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); macroList.push_back(FurnaceGUIMacroDesc(FM_NAME(FM_SUS),&ins->std.opMacros[ordi].susMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Op. Panning",&ins->std.opMacros[ordi].rsMacro,0,2,40,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Op. Panning"),&ins->std.opMacros[ordi].rsMacro,0,2,40,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); } else { macroList.push_back(FurnaceGUIMacroDesc(FM_NAME(FM_TL),&ins->std.opMacros[ordi].tlMacro,0,maxTl,128,uiColors[GUI_COLOR_MACRO_OTHER])); macroList.push_back(FurnaceGUIMacroDesc(FM_NAME(FM_AR),&ins->std.opMacros[ordi].arMacro,0,maxArDr,64,uiColors[GUI_COLOR_MACRO_OTHER])); @@ -5416,9 +5555,9 @@ void FurnaceGUI::drawInsEdit() { } } if (ins->type==DIV_INS_GB) if (ImGui::BeginTabItem("Game Boy")) { - P(ImGui::Checkbox("Use software envelope",&ins->gb.softEnv)); - P(ImGui::Checkbox("Initialize envelope on every note",&ins->gb.alwaysInit)); - P(ImGui::Checkbox("Double wave length (GBA only)",&ins->gb.doubleWave)); + P(ImGui::Checkbox(_("Use software envelope"),&ins->gb.softEnv)); + P(ImGui::Checkbox(_("Initialize envelope on every note"),&ins->gb.alwaysInit)); + P(ImGui::Checkbox(_("Double wave length (GBA only)"),&ins->gb.doubleWave)); ImGui::BeginDisabled(ins->gb.softEnv); if (ImGui::BeginTable("GBParams",2)) { @@ -5433,36 +5572,36 @@ void FurnaceGUI::drawInsEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Text("Volume"); + ImGui::Text(_("Volume")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); P(CWSliderScalar("##GBVolume",ImGuiDataType_U8,&ins->gb.envVol,&_ZERO,&_FIFTEEN)); rightClickable ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Text("Length"); + ImGui::Text(_("Length")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); P(CWSliderScalar("##GBEnvLen",ImGuiDataType_U8,&ins->gb.envLen,&_ZERO,&_SEVEN)); rightClickable ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Text("Sound Length"); + ImGui::Text(_("Sound Length")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - P(CWSliderScalar("##GBSoundLen",ImGuiDataType_U8,&ins->gb.soundLen,&_ZERO,&_SIXTY_FOUR,ins->gb.soundLen>63?"Infinity":"%d")); rightClickable + P(CWSliderScalar("##GBSoundLen",ImGuiDataType_U8,&ins->gb.soundLen,&_ZERO,&_SIXTY_FOUR,ins->gb.soundLen>63?_("Infinity"):"%d")); rightClickable ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Text("Direction"); + ImGui::Text(_("Direction")); ImGui::TableNextColumn(); bool goesUp=ins->gb.envDir; - if (ImGui::RadioButton("Up",goesUp)) { PARAMETER + if (ImGui::RadioButton(_("Up"),goesUp)) { PARAMETER goesUp=true; ins->gb.envDir=goesUp; } ImGui::SameLine(); - if (ImGui::RadioButton("Down",!goesUp)) { PARAMETER + if (ImGui::RadioButton(_("Down"),!goesUp)) { PARAMETER goesUp=false; ins->gb.envDir=goesUp; } @@ -5478,7 +5617,7 @@ void FurnaceGUI::drawInsEdit() { if (ImGui::BeginChild("HWSeq",ImGui::GetContentRegionAvail(),true,ImGuiWindowFlags_MenuBar)) { ImGui::BeginMenuBar(); - ImGui::Text("Hardware Sequence"); + ImGui::Text(_("Hardware Sequence")); ImGui::EndMenuBar(); if (ins->gb.hwSeqLen>0) if (ImGui::BeginTable("HWSeqList",3)) { @@ -5488,11 +5627,11 @@ void FurnaceGUI::drawInsEdit() { int curFrame=0; ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("Tick"); + ImGui::Text(_("Tick")); ImGui::TableNextColumn(); - ImGui::Text("Command"); + ImGui::Text(_("Command")); ImGui::TableNextColumn(); - ImGui::Text("Move/Remove"); + ImGui::Text(_("Move/Remove")); for (int i=0; igb.hwSeqLen; i++) { ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -5518,21 +5657,21 @@ void FurnaceGUI::drawInsEdit() { int hwsLen=ins->gb.hwSeq[i].data&7; int hwsSoundLen=ins->gb.hwSeq[i].data>>8; - if (CWSliderInt("Volume",&hwsVol,0,15)) { + if (CWSliderInt(_("Volume"),&hwsVol,0,15)) { somethingChanged=true; } - if (CWSliderInt("Env Length",&hwsLen,0,7)) { + if (CWSliderInt(_("Env Length"),&hwsLen,0,7)) { somethingChanged=true; } - if (CWSliderInt("Sound Length",&hwsSoundLen,0,64,hwsSoundLen>63?"Infinity":"%d")) { + if (CWSliderInt(_("Sound Length"),&hwsSoundLen,0,64,hwsSoundLen>63?_("Infinity"):"%d")) { somethingChanged=true; } - if (ImGui::RadioButton("Up",hwsDir)) { PARAMETER + if (ImGui::RadioButton(_("Up"),hwsDir)) { PARAMETER hwsDir=true; somethingChanged=true; } ImGui::SameLine(); - if (ImGui::RadioButton("Down",!hwsDir)) { PARAMETER + if (ImGui::RadioButton(_("Down"),!hwsDir)) { PARAMETER hwsDir=false; somethingChanged=true; } @@ -5548,19 +5687,19 @@ void FurnaceGUI::drawInsEdit() { int hwsSpeed=(ins->gb.hwSeq[i].data&0x70)>>4; bool hwsDir=ins->gb.hwSeq[i].data&8; - if (CWSliderInt("Shift",&hwsShift,0,7)) { + if (CWSliderInt(_("Shift"),&hwsShift,0,7)) { somethingChanged=true; } - if (CWSliderInt("Speed",&hwsSpeed,0,7)) { + if (CWSliderInt(_("Speed"),&hwsSpeed,0,7)) { somethingChanged=true; } - if (ImGui::RadioButton("Up",!hwsDir)) { PARAMETER + if (ImGui::RadioButton(_("Up"),!hwsDir)) { PARAMETER hwsDir=false; somethingChanged=true; } ImGui::SameLine(); - if (ImGui::RadioButton("Down",hwsDir)) { PARAMETER + if (ImGui::RadioButton(_("Down"),hwsDir)) { PARAMETER hwsDir=true; somethingChanged=true; } @@ -5575,7 +5714,7 @@ void FurnaceGUI::drawInsEdit() { int len=ins->gb.hwSeq[i].data+1; curFrame+=ins->gb.hwSeq[i].data+1; - if (ImGui::InputInt("Ticks",&len,1,4)) { + if (ImGui::InputInt(_("Ticks"),&len,1,4)) { if (len<1) len=1; if (len>255) len=256; somethingChanged=true; @@ -5594,7 +5733,7 @@ void FurnaceGUI::drawInsEdit() { case DivInstrumentGB::DIV_GB_HWCMD_LOOP_REL: { int pos=ins->gb.hwSeq[i].data; - if (ImGui::InputInt("Position",&pos,1,1)) { + if (ImGui::InputInt(_("Position"),&pos,1,1)) { if (pos<0) pos=0; if (pos>(ins->gb.hwSeqLen-1)) pos=(ins->gb.hwSeqLen-1); somethingChanged=true; @@ -5670,28 +5809,28 @@ void FurnaceGUI::drawInsEdit() { } if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_SID2) if (ImGui::BeginTabItem((ins->type==DIV_INS_SID2)?"SID2":"C64")) { ImGui::AlignTextToFramePadding(); - ImGui::Text("Waveform"); + ImGui::Text(_("Waveform")); ImGui::SameLine(); pushToggleColors(ins->c64.triOn); - if (ImGui::Button("tri")) { PARAMETER + if (ImGui::Button(_("tri"))) { PARAMETER ins->c64.triOn=!ins->c64.triOn; } popToggleColors(); ImGui::SameLine(); pushToggleColors(ins->c64.sawOn); - if (ImGui::Button("saw")) { PARAMETER + if (ImGui::Button(_("saw"))) { PARAMETER ins->c64.sawOn=!ins->c64.sawOn; } popToggleColors(); ImGui::SameLine(); pushToggleColors(ins->c64.pulseOn); - if (ImGui::Button("pulse")) { PARAMETER + if (ImGui::Button(_("pulse"))) { PARAMETER ins->c64.pulseOn=!ins->c64.pulseOn; } popToggleColors(); ImGui::SameLine(); pushToggleColors(ins->c64.noiseOn); - if (ImGui::Button("noise")) { PARAMETER + if (ImGui::Button(_("noise"))) { PARAMETER ins->c64.noiseOn=!ins->c64.noiseOn; } popToggleColors(); @@ -5719,8 +5858,8 @@ void FurnaceGUI::drawInsEdit() { CENTER_TEXT("R"); ImGui::TextUnformatted("R"); ImGui::TableNextColumn(); - CENTER_TEXT("Envelope"); - ImGui::TextUnformatted("Envelope"); + CENTER_TEXT(_("Envelope")); + ImGui::TextUnformatted(_("Envelope")); ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -5737,81 +5876,81 @@ void FurnaceGUI::drawInsEdit() { ImGui::EndTable(); } - P(CWSliderScalar("Duty",ImGuiDataType_U16,&ins->c64.duty,&_ZERO,&_FOUR_THOUSAND_NINETY_FIVE)); rightClickable + P(CWSliderScalar(_("Duty"),ImGuiDataType_U16,&ins->c64.duty,&_ZERO,&_FOUR_THOUSAND_NINETY_FIVE)); rightClickable bool ringMod=ins->c64.ringMod; - if (ImGui::Checkbox("Ring Modulation",&ringMod)) { PARAMETER + if (ImGui::Checkbox(_("Ring Modulation"),&ringMod)) { PARAMETER ins->c64.ringMod=ringMod; } bool oscSync=ins->c64.oscSync; - if (ImGui::Checkbox("Oscillator Sync",&oscSync)) { PARAMETER + if (ImGui::Checkbox(_("Oscillator Sync"),&oscSync)) { PARAMETER ins->c64.oscSync=oscSync; } - P(ImGui::Checkbox("Enable filter",&ins->c64.toFilter)); - P(ImGui::Checkbox("Initialize filter",&ins->c64.initFilter)); + P(ImGui::Checkbox(_("Enable filter"),&ins->c64.toFilter)); + P(ImGui::Checkbox(_("Initialize filter"),&ins->c64.initFilter)); if (ins->type==DIV_INS_SID2) { - P(CWSliderScalar("Cutoff",ImGuiDataType_U16,&ins->c64.cut,&_ZERO,&_FOUR_THOUSAND_NINETY_FIVE)); rightClickable - P(CWSliderScalar("Resonance",ImGuiDataType_U8,&ins->c64.res,&_ZERO,&_TWO_HUNDRED_FIFTY_FIVE)); rightClickable + P(CWSliderScalar(_("Cutoff"),ImGuiDataType_U16,&ins->c64.cut,&_ZERO,&_FOUR_THOUSAND_NINETY_FIVE)); rightClickable + P(CWSliderScalar(_("Resonance"),ImGuiDataType_U8,&ins->c64.res,&_ZERO,&_TWO_HUNDRED_FIFTY_FIVE)); rightClickable } else { - P(CWSliderScalar("Cutoff",ImGuiDataType_U16,&ins->c64.cut,&_ZERO,&_TWO_THOUSAND_FORTY_SEVEN)); rightClickable - P(CWSliderScalar("Resonance",ImGuiDataType_U8,&ins->c64.res,&_ZERO,&_FIFTEEN)); rightClickable + P(CWSliderScalar(_("Cutoff"),ImGuiDataType_U16,&ins->c64.cut,&_ZERO,&_TWO_THOUSAND_FORTY_SEVEN)); rightClickable + P(CWSliderScalar(_("Resonance"),ImGuiDataType_U8,&ins->c64.res,&_ZERO,&_FIFTEEN)); rightClickable } ImGui::AlignTextToFramePadding(); - ImGui::Text("Filter Mode"); + ImGui::Text(_("Filter Mode")); ImGui::SameLine(); pushToggleColors(ins->c64.lp); - if (ImGui::Button("low")) { PARAMETER + if (ImGui::Button(_("low"))) { PARAMETER ins->c64.lp=!ins->c64.lp; } popToggleColors(); ImGui::SameLine(); pushToggleColors(ins->c64.bp); - if (ImGui::Button("band")) { PARAMETER + if (ImGui::Button(_("band"))) { PARAMETER ins->c64.bp=!ins->c64.bp; } popToggleColors(); ImGui::SameLine(); pushToggleColors(ins->c64.hp); - if (ImGui::Button("high")) { PARAMETER + if (ImGui::Button(_("high"))) { PARAMETER ins->c64.hp=!ins->c64.hp; } popToggleColors(); if (ins->type!=DIV_INS_SID2) { ImGui::SameLine(); pushToggleColors(ins->c64.ch3off); - if (ImGui::Button("ch3off")) { PARAMETER + if (ImGui::Button(_("ch3off"))) { PARAMETER ins->c64.ch3off=!ins->c64.ch3off; } popToggleColors(); } if (ins->type==DIV_INS_SID2) { - P(CWSliderScalar("Noise Mode",ImGuiDataType_U8,&ins->sid2.noiseMode,&_ZERO,&_THREE)); - P(CWSliderScalar("Wave Mix Mode",ImGuiDataType_U8,&ins->sid2.mixMode,&_ZERO,&_THREE,sid2WaveMixModes[ins->sid2.mixMode&3])); + P(CWSliderScalar(_("Noise Mode"),ImGuiDataType_U8,&ins->sid2.noiseMode,&_ZERO,&_THREE)); + P(CWSliderScalar(_("Wave Mix Mode"),ImGuiDataType_U8,&ins->sid2.mixMode,&_ZERO,&_THREE,sid2WaveMixModes[ins->sid2.mixMode&3])); } - if (ImGui::Checkbox("Absolute Cutoff Macro",&ins->c64.filterIsAbs)) { + if (ImGui::Checkbox(_("Absolute Cutoff Macro"),&ins->c64.filterIsAbs)) { ins->std.algMacro.vZoom=-1; PARAMETER; } - if (ImGui::Checkbox("Absolute Duty Macro",&ins->c64.dutyIsAbs)) { + if (ImGui::Checkbox(_("Absolute Duty Macro"),&ins->c64.dutyIsAbs)) { ins->std.dutyMacro.vZoom=-1; PARAMETER; } if (ins->type!=DIV_INS_SID2) { - P(ImGui::Checkbox("Don't test before new note",&ins->c64.noTest)); + P(ImGui::Checkbox(_("Don't test before new note"),&ins->c64.noTest)); } ImGui::EndTabItem(); } if (ins->type==DIV_INS_SU) if (ImGui::BeginTabItem("Sound Unit")) { - P(ImGui::Checkbox("Switch roles of frequency and phase reset timer",&ins->su.switchRoles)); + P(ImGui::Checkbox(_("Switch roles of frequency and phase reset timer"),&ins->su.switchRoles)); if (ImGui::BeginChild("HWSeqSU",ImGui::GetContentRegionAvail(),true,ImGuiWindowFlags_MenuBar)) { ImGui::BeginMenuBar(); - ImGui::Text("Hardware Sequence"); + ImGui::Text(_("Hardware Sequence")); ImGui::EndMenuBar(); if (ins->su.hwSeqLen>0) if (ImGui::BeginTable("HWSeqListSU",3)) { @@ -5821,11 +5960,11 @@ void FurnaceGUI::drawInsEdit() { int curFrame=0; ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("Tick"); + ImGui::Text(_("Tick")); ImGui::TableNextColumn(); - ImGui::Text("Command"); + ImGui::Text(_("Command")); ImGui::TableNextColumn(); - ImGui::Text("Move/Remove"); + ImGui::Text(_("Move/Remove")); for (int i=0; isu.hwSeqLen; i++) { ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -5855,31 +5994,31 @@ void FurnaceGUI::drawInsEdit() { bool swLoop=ins->su.hwSeq[i].val&64; bool swInvert=ins->su.hwSeq[i].val&128; - if (ImGui::InputInt("Period",&swPeriod,1,16)) { + if (ImGui::InputInt(_("Period"),&swPeriod,1,16)) { if (swPeriod<0) swPeriod=0; if (swPeriod>65535) swPeriod=65535; somethingChanged=true; } - if (CWSliderInt("Amount",&swVal,0,31)) { + if (CWSliderInt(_("Amount"),&swVal,0,31)) { somethingChanged=true; } - if (CWSliderInt("Bound",&swBound,0,255)) { + if (CWSliderInt(_("Bound"),&swBound,0,255)) { somethingChanged=true; } - if (ImGui::RadioButton("Up",swDir)) { PARAMETER + if (ImGui::RadioButton(_("Up"),swDir)) { PARAMETER swDir=true; somethingChanged=true; } ImGui::SameLine(); - if (ImGui::RadioButton("Down",!swDir)) { PARAMETER + if (ImGui::RadioButton(_("Down"),!swDir)) { PARAMETER swDir=false; somethingChanged=true; } - if (ImGui::Checkbox("Loop",&swLoop)) { PARAMETER + if (ImGui::Checkbox(_("Loop"),&swLoop)) { PARAMETER somethingChanged=true; } ImGui::SameLine(); - if (ImGui::Checkbox("Flip",&swInvert)) { PARAMETER + if (ImGui::Checkbox(_("Flip"),&swInvert)) { PARAMETER somethingChanged=true; } @@ -5898,23 +6037,23 @@ void FurnaceGUI::drawInsEdit() { int swVal=ins->su.hwSeq[i].val&127; bool swDir=ins->su.hwSeq[i].val&128; - if (ImGui::InputInt("Period",&swPeriod,1,16)) { + if (ImGui::InputInt(_("Period"),&swPeriod,1,16)) { if (swPeriod<0) swPeriod=0; if (swPeriod>65535) swPeriod=65535; somethingChanged=true; } - if (CWSliderInt("Amount",&swVal,0,31)) { + if (CWSliderInt(_("Amount"),&swVal,0,31)) { somethingChanged=true; } - if (CWSliderInt("Bound",&swBound,0,255)) { + if (CWSliderInt(_("Bound"),&swBound,0,255)) { somethingChanged=true; } - if (ImGui::RadioButton("Up",swDir)) { PARAMETER + if (ImGui::RadioButton(_("Up"),swDir)) { PARAMETER swDir=true; somethingChanged=true; } ImGui::SameLine(); - if (ImGui::RadioButton("Down",!swDir)) { PARAMETER + if (ImGui::RadioButton(_("Down"),!swDir)) { PARAMETER swDir=false; somethingChanged=true; } @@ -5931,7 +6070,7 @@ void FurnaceGUI::drawInsEdit() { int len=ins->su.hwSeq[i].val+1; curFrame+=ins->su.hwSeq[i].val+1; - if (ImGui::InputInt("Ticks",&len)) { + if (ImGui::InputInt(_("Ticks"),&len)) { if (len<1) len=1; if (len>255) len=256; somethingChanged=true; @@ -5950,7 +6089,7 @@ void FurnaceGUI::drawInsEdit() { case DivInstrumentSoundUnit::DIV_SU_HWCMD_LOOP_REL: { int pos=ins->su.hwSeq[i].val; - if (ImGui::InputInt("Position",&pos,1,4)) { + if (ImGui::InputInt(_("Position"),&pos,1,4)) { if (pos<0) pos=0; if (pos>(ins->su.hwSeqLen-1)) pos=(ins->su.hwSeqLen-1); somethingChanged=true; @@ -6068,16 +6207,16 @@ void FurnaceGUI::drawInsEdit() { } if (ins->type==DIV_INS_N163) if (ImGui::BeginTabItem("Namco 163")) { bool preLoad=ins->n163.waveMode&0x1; - if (ImGui::Checkbox("Load waveform",&preLoad)) { PARAMETER + if (ImGui::Checkbox(_("Load waveform"),&preLoad)) { PARAMETER ins->n163.waveMode=(ins->n163.waveMode&~0x1)|(preLoad?0x1:0); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("when enabled, a waveform will be loaded into RAM.\nwhen disabled, only the offset and length change."); + ImGui::SetTooltip(_("when enabled, a waveform will be loaded into RAM.\nwhen disabled, only the offset and length change.")); } if (preLoad) { - if (ImGui::InputInt("Waveform##WAVE",&ins->n163.wave,1,10)) { PARAMETER + if (ImGui::InputInt(_("Waveform##WAVE"),&ins->n163.wave,1,10)) { PARAMETER if (ins->n163.wave<0) ins->n163.wave=0; if (ins->n163.wave>=e->song.waveLen) ins->n163.wave=e->song.waveLen-1; } @@ -6085,7 +6224,7 @@ void FurnaceGUI::drawInsEdit() { ImGui::Separator(); - P(ImGui::Checkbox("Per-channel wave position/length",&ins->n163.perChanPos)); + P(ImGui::Checkbox(_("Per-channel wave position/length"),&ins->n163.perChanPos)); if (ins->n163.perChanPos) { if (ImGui::BeginTable("N1PerChPos",3)) { @@ -6095,11 +6234,11 @@ void FurnaceGUI::drawInsEdit() { ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("Ch"); + ImGui::Text(_("Ch")); ImGui::TableNextColumn(); - ImGui::Text("Position"); + ImGui::Text(_("Position")); ImGui::TableNextColumn(); - ImGui::Text("Length"); + ImGui::Text(_("Length")); for (int i=0; i<8; i++) { ImGui::PushID(64+i); @@ -6144,19 +6283,19 @@ void FurnaceGUI::drawInsEdit() { if (ins->type==DIV_INS_FDS) if (ImGui::BeginTabItem("FDS")) { float modTable[32]; int modTableInt[256]; - ImGui::Checkbox("Compatibility mode",&ins->fds.initModTableWithFirstWave); + ImGui::Checkbox(_("Compatibility mode"),&ins->fds.initModTableWithFirstWave); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("only use for compatibility with .dmf modules!\n- initializes modulation table with first wavetable\n- does not alter modulation parameters on instrument change"); + ImGui::SetTooltip(_("only use for compatibility with .dmf modules!\n- initializes modulation table with first wavetable\n- does not alter modulation parameters on instrument change")); } - if (ImGui::InputInt("Modulation depth",&ins->fds.modDepth,1,4)) { + if (ImGui::InputInt(_("Modulation depth"),&ins->fds.modDepth,1,4)) { if (ins->fds.modDepth<0) ins->fds.modDepth=0; if (ins->fds.modDepth>63) ins->fds.modDepth=63; } - if (ImGui::InputInt("Modulation speed",&ins->fds.modSpeed,1,4)) { + if (ImGui::InputInt(_("Modulation speed"),&ins->fds.modSpeed,1,4)) { if (ins->fds.modSpeed<0) ins->fds.modSpeed=0; if (ins->fds.modSpeed>4095) ins->fds.modSpeed=4095; } - ImGui::Text("Modulation table"); + ImGui::Text(_("Modulation table")); for (int i=0; i<32; i++) { modTable[i]=ins->fds.modTable[i]; modTableInt[i]=ins->fds.modTable[i]; @@ -6205,7 +6344,7 @@ void FurnaceGUI::drawInsEdit() { if (ins->type==DIV_INS_VBOY) if (ImGui::BeginTabItem("Virtual Boy")) { float modTable[32]; int modTableInt[256]; - P(ImGui::Checkbox("Set modulation table (channel 5 only)",&ins->fds.initModTableWithFirstWave)); + P(ImGui::Checkbox(_("Set modulation table (channel 5 only)"),&ins->fds.initModTableWithFirstWave)); ImGui::BeginDisabled(!ins->fds.initModTableWithFirstWave); for (int i=0; i<32; i++) { @@ -6266,31 +6405,31 @@ void FurnaceGUI::drawInsEdit() { // filter ImGui::TableNextRow(); ImGui::TableNextColumn(); - P(CWSliderScalar("Filter Mode",ImGuiDataType_U8,&ins->es5506.filter.mode,&_ZERO,&_THREE,es5506FilterModes[ins->es5506.filter.mode&3])); + P(CWSliderScalar(_("Filter Mode"),ImGuiDataType_U8,&ins->es5506.filter.mode,&_ZERO,&_THREE,es5506FilterModes[ins->es5506.filter.mode&3])); ImGui::TableNextRow(); ImGui::TableNextColumn(); - P(CWSliderScalar("Filter K1",ImGuiDataType_U16,&ins->es5506.filter.k1,&_ZERO,&_SIXTY_FIVE_THOUSAND_FIVE_HUNDRED_THIRTY_FIVE)); rightClickable + P(CWSliderScalar(_("Filter K1"),ImGuiDataType_U16,&ins->es5506.filter.k1,&_ZERO,&_SIXTY_FIVE_THOUSAND_FIVE_HUNDRED_THIRTY_FIVE)); rightClickable ImGui::TableNextColumn(); - P(CWSliderScalar("Filter K2",ImGuiDataType_U16,&ins->es5506.filter.k2,&_ZERO,&_SIXTY_FIVE_THOUSAND_FIVE_HUNDRED_THIRTY_FIVE)); rightClickable + P(CWSliderScalar(_("Filter K2"),ImGuiDataType_U16,&ins->es5506.filter.k2,&_ZERO,&_SIXTY_FIVE_THOUSAND_FIVE_HUNDRED_THIRTY_FIVE)); rightClickable // envelope ImGui::TableNextRow(); ImGui::TableNextColumn(); - P(CWSliderScalar("Envelope length",ImGuiDataType_U16,&ins->es5506.envelope.ecount,&_ZERO,&_FIVE_HUNDRED_ELEVEN)); rightClickable + P(CWSliderScalar(_("Envelope length"),ImGuiDataType_U16,&ins->es5506.envelope.ecount,&_ZERO,&_FIVE_HUNDRED_ELEVEN)); rightClickable ImGui::TableNextRow(); ImGui::TableNextColumn(); - P(CWSliderScalar("Left Volume Ramp",ImGuiDataType_S8,&ins->es5506.envelope.lVRamp,&_MINUS_ONE_HUNDRED_TWENTY_EIGHT,&_ONE_HUNDRED_TWENTY_SEVEN)); rightClickable + P(CWSliderScalar(_("Left Volume Ramp"),ImGuiDataType_S8,&ins->es5506.envelope.lVRamp,&_MINUS_ONE_HUNDRED_TWENTY_EIGHT,&_ONE_HUNDRED_TWENTY_SEVEN)); rightClickable ImGui::TableNextColumn(); - P(CWSliderScalar("Right Volume Ramp",ImGuiDataType_S8,&ins->es5506.envelope.rVRamp,&_MINUS_ONE_HUNDRED_TWENTY_EIGHT,&_ONE_HUNDRED_TWENTY_SEVEN)); rightClickable + P(CWSliderScalar(_("Right Volume Ramp"),ImGuiDataType_S8,&ins->es5506.envelope.rVRamp,&_MINUS_ONE_HUNDRED_TWENTY_EIGHT,&_ONE_HUNDRED_TWENTY_SEVEN)); rightClickable ImGui::TableNextRow(); ImGui::TableNextColumn(); - P(CWSliderScalar("Filter K1 Ramp",ImGuiDataType_S8,&ins->es5506.envelope.k1Ramp,&_MINUS_ONE_HUNDRED_TWENTY_EIGHT,&_ONE_HUNDRED_TWENTY_SEVEN)); rightClickable + P(CWSliderScalar(_("Filter K1 Ramp"),ImGuiDataType_S8,&ins->es5506.envelope.k1Ramp,&_MINUS_ONE_HUNDRED_TWENTY_EIGHT,&_ONE_HUNDRED_TWENTY_SEVEN)); rightClickable ImGui::TableNextColumn(); - P(CWSliderScalar("Filter K2 Ramp",ImGuiDataType_S8,&ins->es5506.envelope.k2Ramp,&_MINUS_ONE_HUNDRED_TWENTY_EIGHT,&_ONE_HUNDRED_TWENTY_SEVEN)); rightClickable + P(CWSliderScalar(_("Filter K2 Ramp"),ImGuiDataType_S8,&ins->es5506.envelope.k2Ramp,&_MINUS_ONE_HUNDRED_TWENTY_EIGHT,&_ONE_HUNDRED_TWENTY_SEVEN)); rightClickable ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Checkbox("K1 Ramp Slowdown",&ins->es5506.envelope.k1Slow); + ImGui::Checkbox(_("K1 Ramp Slowdown"),&ins->es5506.envelope.k1Slow); ImGui::TableNextColumn(); - ImGui::Checkbox("K2 Ramp Slowdown",&ins->es5506.envelope.k2Slow); + ImGui::Checkbox(_("K2 Ramp Slowdown"),&ins->es5506.envelope.k2Slow); ImGui::EndTable(); } ImGui::EndTabItem(); @@ -6312,41 +6451,41 @@ void FurnaceGUI::drawInsEdit() { CENTER_TEXT("AR"); ImGui::TextUnformatted("AR"); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Attack Rate"); + ImGui::SetTooltip(_("Attack Rate")); } ImGui::TableNextColumn(); CENTER_TEXT("D1R"); ImGui::TextUnformatted("D1R"); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Decay 1 Rate"); + ImGui::SetTooltip(_("Decay 1 Rate")); } ImGui::TableNextColumn(); CENTER_TEXT("DL"); ImGui::TextUnformatted("DL"); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Decay Level"); + ImGui::SetTooltip(_("Decay Level")); } ImGui::TableNextColumn(); CENTER_TEXT("D2R"); ImGui::TextUnformatted("D2R"); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Decay 2 Rate"); + ImGui::SetTooltip(_("Decay 2 Rate")); } ImGui::TableNextColumn(); CENTER_TEXT("RR"); ImGui::TextUnformatted("RR"); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Release Rate"); + ImGui::SetTooltip(_("Release Rate")); } ImGui::TableNextColumn(); CENTER_TEXT("RC"); ImGui::TextUnformatted("RC"); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Rate Correction"); + ImGui::SetTooltip(_("Rate Correction")); } ImGui::TableNextColumn(); - CENTER_TEXT("Envelope"); - ImGui::TextUnformatted("Envelope"); + CENTER_TEXT(_("Envelope")); + ImGui::TextUnformatted(_("Envelope")); ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -6370,18 +6509,18 @@ void FurnaceGUI::drawInsEdit() { ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.0); ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch,0.0); ImGui::TableNextColumn(); - P(CWSliderScalar("LFO Rate",ImGuiDataType_U8,&ins->multipcm.lfo,&_ZERO,&_SEVEN)); rightClickable + P(CWSliderScalar(_("LFO Rate"),ImGuiDataType_U8,&ins->multipcm.lfo,&_ZERO,&_SEVEN)); rightClickable ImGui::TableNextColumn(); - P(CWSliderScalar("PM Depth",ImGuiDataType_U8,&ins->multipcm.vib,&_ZERO,&_SEVEN)); rightClickable + P(CWSliderScalar(_("PM Depth"),ImGuiDataType_U8,&ins->multipcm.vib,&_ZERO,&_SEVEN)); rightClickable ImGui::TableNextColumn(); - P(CWSliderScalar("AM Depth",ImGuiDataType_U8,&ins->multipcm.am,&_ZERO,&_SEVEN)); rightClickable + P(CWSliderScalar(_("AM Depth"),ImGuiDataType_U8,&ins->multipcm.am,&_ZERO,&_SEVEN)); rightClickable ImGui::EndTable(); } ImGui::EndTabItem(); } } if (ins->type==DIV_INS_SNES) if (ImGui::BeginTabItem("SNES")) { - P(ImGui::Checkbox("Use envelope",&ins->snes.useEnv)); + P(ImGui::Checkbox(_("Use envelope"),&ins->snes.useEnv)); ImVec2 sliderSize=ImVec2(20.0f*dpiScale,128.0*dpiScale); if (ins->snes.useEnv) { if (ImGui::BeginTable("SNESEnvParams",ins->snes.sus?6:5,ImGuiTableFlags_NoHostExtendX)) { @@ -6413,8 +6552,8 @@ void FurnaceGUI::drawInsEdit() { CENTER_TEXT("R"); ImGui::TextUnformatted("R"); ImGui::TableNextColumn(); - CENTER_TEXT("Envelope"); - ImGui::TextUnformatted("Envelope"); + CENTER_TEXT(_("Envelope")); + ImGui::TextUnformatted(_("Envelope")); ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -6434,17 +6573,17 @@ void FurnaceGUI::drawInsEdit() { ImGui::EndTable(); } - ImGui::Text("Sustain/release mode:"); - if (ImGui::RadioButton("Direct (cut on release)",ins->snes.sus==0)) { + ImGui::Text(_("Sustain/release mode:")); + if (ImGui::RadioButton(_("Direct (cut on release)"),ins->snes.sus==0)) { ins->snes.sus=0; } - if (ImGui::RadioButton("Effective (linear decrease)",ins->snes.sus==1)) { + if (ImGui::RadioButton(_("Effective (linear decrease)"),ins->snes.sus==1)) { ins->snes.sus=1; } - if (ImGui::RadioButton("Effective (exponential decrease)",ins->snes.sus==2)) { + if (ImGui::RadioButton(_("Effective (exponential decrease)"),ins->snes.sus==2)) { ins->snes.sus=2; } - if (ImGui::RadioButton("Delayed (write R on release)",ins->snes.sus==3)) { + if (ImGui::RadioButton(_("Delayed (write R on release)"),ins->snes.sus==3)) { ins->snes.sus=3; } } else { @@ -6454,31 +6593,31 @@ void FurnaceGUI::drawInsEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); - CENTER_TEXT("Gain Mode"); - ImGui::TextUnformatted("Gain Mode"); + CENTER_TEXT(_("Gain Mode")); + ImGui::TextUnformatted(_("Gain Mode")); ImGui::TableNextColumn(); - CENTER_TEXT("Gain"); - ImGui::TextUnformatted("Gain"); + CENTER_TEXT(_("Gain")); + ImGui::TextUnformatted(_("Gain")); ImGui::TableNextRow(); ImGui::TableNextColumn(); - if (ImGui::RadioButton("Direct",ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_DIRECT)) { + if (ImGui::RadioButton(_("Direct"),ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_DIRECT)) { ins->snes.gainMode=DivInstrumentSNES::GAIN_MODE_DIRECT; PARAMETER; } - if (ImGui::RadioButton("Decrease (linear)",ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_DEC_LINEAR)) { + if (ImGui::RadioButton(_("Decrease (linear)"),ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_DEC_LINEAR)) { ins->snes.gainMode=DivInstrumentSNES::GAIN_MODE_DEC_LINEAR; PARAMETER; } - if (ImGui::RadioButton("Decrease (logarithmic)",ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_DEC_LOG)) { + if (ImGui::RadioButton(_("Decrease (logarithmic)"),ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_DEC_LOG)) { ins->snes.gainMode=DivInstrumentSNES::GAIN_MODE_DEC_LOG; PARAMETER; } - if (ImGui::RadioButton("Increase (linear)",ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_INC_LINEAR)) { + if (ImGui::RadioButton(_("Increase (linear)"),ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_INC_LINEAR)) { ins->snes.gainMode=DivInstrumentSNES::GAIN_MODE_INC_LINEAR; PARAMETER; } - if (ImGui::RadioButton("Increase (bent line)",ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_INC_INVLOG)) { + if (ImGui::RadioButton(_("Increase (bent line)"),ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_INC_INVLOG)) { ins->snes.gainMode=DivInstrumentSNES::GAIN_MODE_INC_INVLOG; PARAMETER; } @@ -6491,7 +6630,7 @@ void FurnaceGUI::drawInsEdit() { ImGui::EndTable(); } if (ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_DEC_LINEAR || ins->snes.gainMode==DivInstrumentSNES::GAIN_MODE_DEC_LOG) { - ImGui::TextWrapped("using decrease modes will not produce any sound at all, unless you know what you are doing.\nit is recommended to use the Gain macro for decrease instead."); + ImGui::TextWrapped(_("using decrease modes will not produce any sound at all, unless you know what you are doing.\nit is recommended to use the Gain macro for decrease instead.")); } } ImGui::EndTabItem(); @@ -6510,7 +6649,7 @@ void FurnaceGUI::drawInsEdit() { ins->type==DIV_INS_NAMCO || ins->type==DIV_INS_SM8521 || (ins->type==DIV_INS_GBA_MINMOD && ins->amiga.useWave)) { - if (ImGui::BeginTabItem("Wavetable")) { + if (ImGui::BeginTabItem(_("Wavetable"))) { switch (ins->type) { case DIV_INS_GB: case DIV_INS_NAMCO: @@ -6561,7 +6700,7 @@ void FurnaceGUI::drawInsEdit() { wavePreviewHeight=31; break; } - if (ImGui::Checkbox("Enable synthesizer",&ins->ws.enabled)) { + if (ImGui::Checkbox(_("Enable synthesizer"),&ins->ws.enabled)) { wavePreviewInit=true; } if (ins->ws.enabled) { @@ -6579,19 +6718,19 @@ void FurnaceGUI::drawInsEdit() { } } if (ImGui::BeginCombo("##WSEffect",(ins->ws.effect&0x80)?dualWSEffects[ins->ws.effect&0x7f]:singleWSEffects[ins->ws.effect&0x7f])) { - ImGui::Text("Single-waveform"); + ImGui::Text(_("Single-waveform")); ImGui::Indent(); for (int i=0; iws.effect=i; wavePreviewInit=true; } } ImGui::Unindent(); - ImGui::Text("Dual-waveform"); + ImGui::Text(_("Dual-waveform")); ImGui::Indent(); for (int i=129; iws.effect=i; wavePreviewInit=true; } @@ -6661,14 +6800,16 @@ void FurnaceGUI::drawInsEdit() { if (ins->std.waveMacro.len>0) { ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_WARNING]); ImGui::AlignTextToFramePadding(); - ImGui::Text("Wave 1 " ICON_FA_EXCLAMATION_TRIANGLE); + ImGui::Text(_("Wave 1")); + ImGui::SameLine(); + ImGui::Text(ICON_FA_EXCLAMATION_TRIANGLE); ImGui::PopStyleColor(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("waveform macro is controlling wave 1!\nthis value will be ineffective."); + ImGui::SetTooltip(_("waveform macro is controlling wave 1!\nthis value will be ineffective.")); } } else { ImGui::AlignTextToFramePadding(); - ImGui::Text("Wave 1"); + ImGui::Text(_("Wave 1")); } ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); @@ -6679,13 +6820,13 @@ void FurnaceGUI::drawInsEdit() { } if (ins->std.waveMacro.len>0) { if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("waveform macro is controlling wave 1!\nthis value will be ineffective."); + ImGui::SetTooltip(_("waveform macro is controlling wave 1!\nthis value will be ineffective.")); } } if (isSingleWaveFX) { ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Wave 2"); + ImGui::Text(_("Wave 2")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputInt("##SelWave2",&ins->ws.wave2,1,4)) { @@ -6700,9 +6841,9 @@ void FurnaceGUI::drawInsEdit() { } if (ImGui::IsItemHovered()) { if (wavePreviewPaused) { - ImGui::SetTooltip("Resume preview"); + ImGui::SetTooltip(_("Resume preview")); } else { - ImGui::SetTooltip("Pause preview"); + ImGui::SetTooltip(_("Pause preview")); } } ImGui::SameLine(); @@ -6710,13 +6851,13 @@ void FurnaceGUI::drawInsEdit() { wavePreviewInit=true; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Restart preview"); + ImGui::SetTooltip(_("Restart preview")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_UPLOAD "##WSCopy")) { curWave=e->addWave(); if (curWave==-1) { - showError("too many wavetables!"); + showError(_("too many wavetables!")); } else { wantScrollListWave=true; MARK_MODIFIED; @@ -6730,45 +6871,45 @@ void FurnaceGUI::drawInsEdit() { } } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Copy to new wavetable"); + ImGui::SetTooltip(_("Copy to new wavetable")); } ImGui::SameLine(); ImGui::Text("(%d×%d)",wavePreviewLen,wavePreviewHeight+1); ImGui::EndTable(); } - if (ImGui::InputScalar("Update Rate",ImGuiDataType_U8,&ins->ws.rateDivider,&_ONE,&_EIGHT)) { + if (ImGui::InputScalar(_("Update Rate"),ImGuiDataType_U8,&ins->ws.rateDivider,&_ONE,&_EIGHT)) { wavePreviewInit=true; } int speed=ins->ws.speed+1; - if (ImGui::InputInt("Speed",&speed,1,8)) { + if (ImGui::InputInt(_("Speed"),&speed,1,8)) { if (speed<1) speed=1; if (speed>256) speed=256; ins->ws.speed=speed-1; wavePreviewInit=true; } - if (ImGui::InputScalar("Amount",ImGuiDataType_U8,&ins->ws.param1,&_ONE,&_EIGHT)) { + if (ImGui::InputScalar(_("Amount"),ImGuiDataType_U8,&ins->ws.param1,&_ONE,&_EIGHT)) { wavePreviewInit=true; } if (ins->ws.effect==DIV_WS_PHASE_MOD) { - if (ImGui::InputScalar("Power",ImGuiDataType_U8,&ins->ws.param2,&_ONE,&_EIGHT)) { + if (ImGui::InputScalar(_("Power"),ImGuiDataType_U8,&ins->ws.param2,&_ONE,&_EIGHT)) { wavePreviewInit=true; } } - if (ImGui::Checkbox("Global",&ins->ws.global)) { + if (ImGui::Checkbox(_("Global"),&ins->ws.global)) { wavePreviewInit=true; } } else { - ImGui::TextWrapped("wavetable synthesizer disabled.\nuse the Waveform macro to set the wave for this instrument."); + ImGui::TextWrapped(_("wavetable synthesizer disabled.\nuse the Waveform macro to set the wave for this instrument.")); } ImGui::EndTabItem(); } } - if (ins->typetypetype) { case DIV_INS_STD: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Duty",&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty"),&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_FM: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_GB: if (ins->gb.softEnv) { - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); } - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Duty/Noise",&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty/Noise"),&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_C64: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Duty",&ins->std.dutyMacro,ins->c64.dutyIsAbs?0:-4095,4095,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,4,64,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,c64ShapeBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Cutoff",&ins->std.algMacro,ins->c64.filterIsAbs?0:-2047,2047,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Filter Mode",&ins->std.ex1Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,filtModeBits)); - macroList.push_back(FurnaceGUIMacroDesc("Resonance",&ins->std.ex2Macro,0,15,64,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Special",&ins->std.ex4Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,c64TestGateBits)); - macroList.push_back(FurnaceGUIMacroDesc("Attack",&ins->std.ex5Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Decay",&ins->std.ex6Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Sustain",&ins->std.ex7Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Release",&ins->std.ex8Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty"),&ins->std.dutyMacro,ins->c64.dutyIsAbs?0:-4095,4095,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,4,64,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,c64ShapeBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Cutoff"),&ins->std.algMacro,ins->c64.filterIsAbs?0:-2047,2047,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Filter Mode"),&ins->std.ex1Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,filtModeBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Resonance"),&ins->std.ex2Macro,0,15,64,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Special"),&ins->std.ex4Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,c64TestGateBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Attack"),&ins->std.ex5Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Decay"),&ins->std.ex6Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Sustain"),&ins->std.ex7Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Release"),&ins->std.ex8Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); break; case DIV_INS_AMIGA: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,64,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,64,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); if (ins->std.panLMacro.mode) { - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,-16,16,63,uiColors[GUI_COLOR_MACRO_OTHER],false,macroQSoundMode)); - macroList.push_back(FurnaceGUIMacroDesc("Surround",&ins->std.panRMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,-16,16,63,uiColors[GUI_COLOR_MACRO_OTHER],false,macroQSoundMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Surround"),&ins->std.panRMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); } else { - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER],false,macroQSoundMode)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER],false,macroQSoundMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER])); } - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_PCE: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,31,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,31,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); if (!ins->amiga.useSample) { - macroList.push_back(FurnaceGUIMacroDesc("Noise",&ins->std.dutyMacro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise"),&ins->std.dutyMacro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); } - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_AY: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); if (!ins->amiga.useSample) { - macroList.push_back(FurnaceGUIMacroDesc("Noise Freq",&ins->std.dutyMacro,0,31,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,3,64,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,ayShapeBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise Freq"),&ins->std.dutyMacro,0,31,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,3,64,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,ayShapeBits)); } - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Envelope",&ins->std.ex2Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,ayEnvBits)); - macroList.push_back(FurnaceGUIMacroDesc("AutoEnv Num",&ins->std.ex3Macro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("AutoEnv Den",&ins->std.algMacro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Envelope"),&ins->std.ex2Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,ayEnvBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("AutoEnv Num"),&ins->std.ex3Macro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("AutoEnv Den"),&ins->std.algMacro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); break; case DIV_INS_AY8930: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,31,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,31,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); if (!ins->amiga.useSample) { - macroList.push_back(FurnaceGUIMacroDesc("Noise Freq",&ins->std.dutyMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,3,64,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,ayShapeBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise Freq"),&ins->std.dutyMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,3,64,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,ayShapeBits)); } - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Duty",&ins->std.ex1Macro,0,8,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Envelope",&ins->std.ex2Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,ayEnvBits)); - macroList.push_back(FurnaceGUIMacroDesc("AutoEnv Num",&ins->std.ex3Macro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("AutoEnv Den",&ins->std.algMacro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Noise AND Mask",&ins->std.fbMacro,0,8,96,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Noise OR Mask",&ins->std.fmsMacro,0,8,96,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty"),&ins->std.ex1Macro,0,8,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Envelope"),&ins->std.ex2Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,ayEnvBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("AutoEnv Num"),&ins->std.ex3Macro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("AutoEnv Den"),&ins->std.algMacro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise AND Mask"),&ins->std.fbMacro,0,8,96,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise OR Mask"),&ins->std.fmsMacro,0,8,96,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_TIA: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,15,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,15,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_SAA1099: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Duty/Noise",&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,2,64,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,ayShapeBits)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Envelope",&ins->std.ex1Macro,0,8,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,saaEnvBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty/Noise"),&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,2,64,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,ayShapeBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Envelope"),&ins->std.ex1Macro,0,8,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,saaEnvBits)); break; case DIV_INS_VIC: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("On/Off",&ins->std.dutyMacro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,15,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("On/Off"),&ins->std.dutyMacro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,15,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_PET: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,1,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,8,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,1,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,8,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_VRC6: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); if (!ins->amiga.useSample) { - macroList.push_back(FurnaceGUIMacroDesc("Duty",&ins->std.dutyMacro,0,7,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty"),&ins->std.dutyMacro,0,7,160,uiColors[GUI_COLOR_MACRO_OTHER])); } else { - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); } - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); if (ins->amiga.useSample) { - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); } break; case DIV_INS_OPLL: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Patch",&ins->std.waveMacro,0,15,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Patch"),&ins->std.waveMacro,0,15,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_OPL: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,4,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,4,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_FDS: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,32,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Mod Depth",&ins->std.ex1Macro,0,63,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Mod Speed",&ins->std.ex2Macro,0,4095,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Mod Position",&ins->std.ex3Macro,0,127,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,32,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Mod Depth"),&ins->std.ex1Macro,0,63,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Mod Speed"),&ins->std.ex2Macro,0,4095,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Mod Position"),&ins->std.ex3Macro,0,127,160,uiColors[GUI_COLOR_MACRO_OTHER])); break; case DIV_INS_VBOY: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Noise Length",&ins->std.dutyMacro,0,7,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise Length"),&ins->std.dutyMacro,0,7,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_N163: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Wave Pos",&ins->std.dutyMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Wave Length",&ins->std.ex1Macro,0,252,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Wave Pos"),&ins->std.dutyMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Wave Length"),&ins->std.ex1Macro,0,252,160,uiColors[GUI_COLOR_MACRO_OTHER])); break; case DIV_INS_SCC: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_OPZ: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Noise Freq",&ins->std.dutyMacro,0,32,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise Freq"),&ins->std.dutyMacro,0,32,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_POKEY: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("AUDCTL",&ins->std.dutyMacro,0,8,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,pokeyCtlBits)); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,7,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("AUDCTL"),&ins->std.dutyMacro,0,8,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,pokeyCtlBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,7,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_BEEPER: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,1,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Pulse Width",&ins->std.dutyMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,1,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pulse Width"),&ins->std.dutyMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_SWAN: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); if (!ins->amiga.useSample) { - macroList.push_back(FurnaceGUIMacroDesc("Noise",&ins->std.dutyMacro,0,8,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise"),&ins->std.dutyMacro,0,8,160,uiColors[GUI_COLOR_MACRO_OTHER])); } - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_MIKEY: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); if (!ins->amiga.useSample) { - macroList.push_back(FurnaceGUIMacroDesc("Duty/Int",&ins->std.dutyMacro,0,10,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,mikeyFeedbackBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty/Int"),&ins->std.dutyMacro,0,10,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,mikeyFeedbackBits)); } - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Load LFSR",&ins->std.ex1Macro,0,12,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Load LFSR"),&ins->std.ex1Macro,0,12,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_VERA: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Duty",&ins->std.dutyMacro,0,63,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,3,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty"),&ins->std.dutyMacro,0,63,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,3,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_X1_010: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); if (ins->amiga.useSample) { - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); } else { - macroList.push_back(FurnaceGUIMacroDesc("Envelope Mode",&ins->std.ex1Macro,0,7,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,x1_010EnvBits)); - macroList.push_back(FurnaceGUIMacroDesc("Envelope",&ins->std.ex2Macro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,false,ayEnvBits)); - macroList.push_back(FurnaceGUIMacroDesc("AutoEnv Num",&ins->std.ex3Macro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("AutoEnv Den",&ins->std.algMacro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Envelope Mode"),&ins->std.ex1Macro,0,7,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,x1_010EnvBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Envelope"),&ins->std.ex2Macro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,false,ayEnvBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("AutoEnv Num"),&ins->std.ex3Macro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("AutoEnv Den"),&ins->std.algMacro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER])); } break; case DIV_INS_VRC6_SAW: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_ES5506: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,4095,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Filter Mode",&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,¯oHoverES5506FilterMode)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,4095,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,4095,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Filter K1",&ins->std.ex1Macro,((ins->std.ex1Macro.mode==1)?(-65535):0),65535,160,uiColors[GUI_COLOR_MACRO_OTHER],false,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Filter K2",&ins->std.ex2Macro,((ins->std.ex2Macro.mode==1)?(-65535):0),65535,160,uiColors[GUI_COLOR_MACRO_OTHER],false,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Outputs",&ins->std.fbMacro,0,5,64,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Control",&ins->std.algMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,es5506ControlModes)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,4095,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Filter Mode"),&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,¯oHoverES5506FilterMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,4095,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,4095,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Filter K1"),&ins->std.ex1Macro,((ins->std.ex1Macro.mode==1)?(-65535):0),65535,160,uiColors[GUI_COLOR_MACRO_OTHER],false,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Filter K2"),&ins->std.ex2Macro,((ins->std.ex2Macro.mode==1)?(-65535):0),65535,160,uiColors[GUI_COLOR_MACRO_OTHER],false,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Outputs"),&ins->std.fbMacro,0,5,64,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Control"),&ins->std.algMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,es5506ControlModes)); break; case DIV_INS_MULTIPCM: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,-7,7,45,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,-7,7,45,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_SNES: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Noise Freq",&ins->std.dutyMacro,0,31,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Special",&ins->std.ex1Macro,0,5,96,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,snesModeBits)); - macroList.push_back(FurnaceGUIMacroDesc("Gain",&ins->std.ex2Macro,0,255,256,uiColors[GUI_COLOR_MACRO_VOLUME],false,NULL,macroHoverGain,false)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise Freq"),&ins->std.dutyMacro,0,31,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Special"),&ins->std.ex1Macro,0,5,96,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,snesModeBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Gain"),&ins->std.ex2Macro,0,255,256,uiColors[GUI_COLOR_MACRO_VOLUME],false,NULL,macroHoverGain,false)); break; case DIV_INS_SU: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Duty/Noise",&ins->std.dutyMacro,0,127,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,7,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,-127,127,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Cutoff",&ins->std.ex1Macro,0,16383,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Resonance",&ins->std.ex2Macro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Control",&ins->std.ex3Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,suControlBits)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset Timer",&ins->std.ex4Macro,0,65535,160,uiColors[GUI_COLOR_MACRO_OTHER])); // again reuse code from resonance macro but use ex4 instead + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty/Noise"),&ins->std.dutyMacro,0,127,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,7,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,-127,127,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Cutoff"),&ins->std.ex1Macro,0,16383,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Resonance"),&ins->std.ex2Macro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Control"),&ins->std.ex3Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,suControlBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset Timer"),&ins->std.ex4Macro,0,65535,160,uiColors[GUI_COLOR_MACRO_OTHER])); // again reuse code from resonance macro but use ex4 instead break; case DIV_INS_NAMCO: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Noise",&ins->std.dutyMacro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise"),&ins->std.dutyMacro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_OPL_DRUMS: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,4,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,4,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_OPM: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Noise Freq",&ins->std.dutyMacro,0,32,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise Freq"),&ins->std.dutyMacro,0,32,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_NES: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Duty/Noise",&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty/Noise"),&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_MSM6258: - macroList.push_back(FurnaceGUIMacroDesc("Freq Divider",&ins->std.dutyMacro,0,2,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Clock Divider",&ins->std.ex1Macro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Freq Divider"),&ins->std.dutyMacro,0,2,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Clock Divider"),&ins->std.ex1Macro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); break; case DIV_INS_MSM6295: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,8,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Freq Divider",&ins->std.dutyMacro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,8,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Freq Divider"),&ins->std.dutyMacro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_ADPCMA: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,31,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Global Volume",&ins->std.dutyMacro,0,63,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,31,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Global Volume"),&ins->std.dutyMacro,0,63,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_ADPCMB: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_SEGAPCM: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,127,158,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_QSOUND: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,16383,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Echo Level",&ins->std.dutyMacro,0,32767,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,-16,16,63,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Surround",&ins->std.panRMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Echo Feedback",&ins->std.ex1Macro,0,16383,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Echo Length",&ins->std.ex2Macro,0,2725,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,16383,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Echo Level"),&ins->std.dutyMacro,0,32767,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,-16,16,63,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Surround"),&ins->std.panRMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Echo Feedback"),&ins->std.ex1Macro,0,16383,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Echo Length"),&ins->std.ex2Macro,0,2725,160,uiColors[GUI_COLOR_MACRO_OTHER])); break; case DIV_INS_YMZ280B: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,-7,7,45,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,-7,7,45,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_RF5C68: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_MSM5232: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Group Ctrl",&ins->std.dutyMacro,0,5,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,msm5232ControlBits)); - macroList.push_back(FurnaceGUIMacroDesc("Group Attack",&ins->std.ex1Macro,0,5,96,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Group Decay",&ins->std.ex2Macro,0,11,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Noise",&ins->std.ex3Macro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Group Ctrl"),&ins->std.dutyMacro,0,5,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,msm5232ControlBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Group Attack"),&ins->std.ex1Macro,0,5,96,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Group Decay"),&ins->std.ex2Macro,0,11,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise"),&ins->std.ex3Macro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_T6W28: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Noise Type",&ins->std.dutyMacro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise Type"),&ins->std.dutyMacro,0,1,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_K007232: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_GA20: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_POKEMINI: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,2,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Pulse Width",&ins->std.dutyMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,2,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pulse Width"),&ins->std.dutyMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_SM8521: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,31,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,31,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_PV1000: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,1,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,1,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); break; case DIV_INS_K053260: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,-3,3,37,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,-3,3,37,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_TED: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,8,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Square/Noise",&ins->std.dutyMacro,0,2,80,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,tedControlBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,8,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Square/Noise"),&ins->std.dutyMacro,0,2,80,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,tedControlBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_C140: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_C219: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Control",&ins->std.dutyMacro,0,3,120,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,c219ControlBits)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Control"),&ins->std.dutyMacro,0,3,120,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,c219ControlBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_ESFM: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("OP4 Noise Mode",&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("OP4 Noise Mode"),&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_POWERNOISE: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Control",&ins->std.ex1Macro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,powerNoiseControlBits)); - macroList.push_back(FurnaceGUIMacroDesc("Tap A Location",&ins->std.ex4Macro,0,15,96,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Tap B Location",&ins->std.ex5Macro,0,15,96,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Load LFSR",&ins->std.ex8Macro,0,16,256,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Control"),&ins->std.ex1Macro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,powerNoiseControlBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Tap A Location"),&ins->std.ex4Macro,0,15,96,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Tap B Location"),&ins->std.ex5Macro,0,15,96,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Load LFSR"),&ins->std.ex8Macro,0,16,256,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_POWERNOISE_SLOPE: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Control",&ins->std.ex1Macro,0,6,96,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,powerNoiseSlopeControlBits)); - macroList.push_back(FurnaceGUIMacroDesc("Portion A Length",&ins->std.ex2Macro,0,255,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Portion B Length",&ins->std.ex3Macro,0,255,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Portion A Offset",&ins->std.ex6Macro,0,15,96,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Portion B Offset",&ins->std.ex7Macro,0,15,96,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,15,46,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Control"),&ins->std.ex1Macro,0,6,96,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,powerNoiseSlopeControlBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Portion A Length"),&ins->std.ex2Macro,0,255,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Portion B Length"),&ins->std.ex3Macro,0,255,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Portion A Offset"),&ins->std.ex6Macro,0,15,96,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Portion B Offset"),&ins->std.ex7Macro,0,15,96,uiColors[GUI_COLOR_MACRO_OTHER])); break; case DIV_INS_DAVE: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Noise Freq",&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,4,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,63,94,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,63,94,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Control",&ins->std.ex1Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,daveControlBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,63,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise Freq"),&ins->std.dutyMacro,0,3,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,4,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,63,94,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,63,94,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Control"),&ins->std.ex1Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,daveControlBits)); break; case DIV_INS_NDS: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,127,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); if (!ins->amiga.useSample) { - macroList.push_back(FurnaceGUIMacroDesc("Duty",&ins->std.dutyMacro,0,7,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty"),&ins->std.dutyMacro,0,7,160,uiColors[GUI_COLOR_MACRO_OTHER])); } - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,-64,63,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,-64,63,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_GBA_DMA: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,2,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning",&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,2,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning"),&ins->std.panLMacro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,panBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); break; case DIV_INS_GBA_MINMOD: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Special",&ins->std.ex1Macro,0,2,96,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,minModModeBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,waveCount,160,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Special"),&ins->std.ex1Macro,0,2,96,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,minModModeBits)); break; case DIV_INS_BIFURCATOR: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Parameter",&ins->std.dutyMacro,0,65535,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Panning (left)",&ins->std.panLMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); - macroList.push_back(FurnaceGUIMacroDesc("Panning (right)",&ins->std.panRMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Load Value",&ins->std.ex1Macro,0,65535,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,255,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Parameter"),&ins->std.dutyMacro,0,65535,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (left)"),&ins->std.panLMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL)); + macroList.push_back(FurnaceGUIMacroDesc(_("Panning (right)"),&ins->std.panRMacro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Load Value"),&ins->std.ex1Macro,0,65535,160,uiColors[GUI_COLOR_MACRO_OTHER])); break; case DIV_INS_SID2: - macroList.push_back(FurnaceGUIMacroDesc("Volume",&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); - macroList.push_back(FurnaceGUIMacroDesc("Arpeggio",&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); - macroList.push_back(FurnaceGUIMacroDesc("Duty",&ins->std.dutyMacro,ins->c64.dutyIsAbs?0:-4095,4095,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Waveform",&ins->std.waveMacro,0,4,64,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,c64ShapeBits)); - macroList.push_back(FurnaceGUIMacroDesc("Pitch",&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); - macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Cutoff",&ins->std.algMacro,ins->c64.filterIsAbs?0:-4095,4095,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Filter Mode",&ins->std.ex1Macro,0,3,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,filtModeBits)); - macroList.push_back(FurnaceGUIMacroDesc("Resonance",&ins->std.ex2Macro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Filter Toggle",&ins->std.ex3Macro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); - macroList.push_back(FurnaceGUIMacroDesc("Special",&ins->std.ex4Macro,0,3,48,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,sid2ControlBits)); - macroList.push_back(FurnaceGUIMacroDesc("Attack",&ins->std.ex5Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Decay",&ins->std.ex6Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Sustain",&ins->std.ex7Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Release",&ins->std.ex8Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Noise Mode",&ins->std.fmsMacro,0,3,64,uiColors[GUI_COLOR_MACRO_OTHER])); - macroList.push_back(FurnaceGUIMacroDesc("Wave Mix",&ins->std.amsMacro,0,3,64,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Volume"),&ins->std.volMacro,0,15,160,uiColors[GUI_COLOR_MACRO_VOLUME])); + macroList.push_back(FurnaceGUIMacroDesc(_("Arpeggio"),&ins->std.arpMacro,-120,120,160,uiColors[GUI_COLOR_MACRO_PITCH],true,NULL,macroHoverNote,false,NULL,true,ins->std.arpMacro.val)); + macroList.push_back(FurnaceGUIMacroDesc(_("Duty"),&ins->std.dutyMacro,ins->c64.dutyIsAbs?0:-4095,4095,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Waveform"),&ins->std.waveMacro,0,4,64,uiColors[GUI_COLOR_MACRO_WAVE],false,NULL,NULL,true,c64ShapeBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Pitch"),&ins->std.pitchMacro,-2048,2047,160,uiColors[GUI_COLOR_MACRO_PITCH],true,macroRelativeMode)); + macroList.push_back(FurnaceGUIMacroDesc(_("Phase Reset"),&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Cutoff"),&ins->std.algMacro,ins->c64.filterIsAbs?0:-4095,4095,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Filter Mode"),&ins->std.ex1Macro,0,3,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,filtModeBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Resonance"),&ins->std.ex2Macro,0,255,160,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Filter Toggle"),&ins->std.ex3Macro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true)); + macroList.push_back(FurnaceGUIMacroDesc(_("Special"),&ins->std.ex4Macro,0,3,48,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,sid2ControlBits)); + macroList.push_back(FurnaceGUIMacroDesc(_("Attack"),&ins->std.ex5Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Decay"),&ins->std.ex6Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Sustain"),&ins->std.ex7Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Release"),&ins->std.ex8Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Noise Mode"),&ins->std.fmsMacro,0,3,64,uiColors[GUI_COLOR_MACRO_OTHER])); + macroList.push_back(FurnaceGUIMacroDesc(_("Wave Mix"),&ins->std.amsMacro,0,3,64,uiColors[GUI_COLOR_MACRO_OTHER])); break; case DIV_INS_MAX: @@ -7356,12 +7497,12 @@ void FurnaceGUI::drawInsEdit() { if (ins->type==DIV_INS_POWERNOISE || ins->type==DIV_INS_POWERNOISE_SLOPE) { if (ImGui::BeginTabItem("PowerNoise")) { int pnOctave=ins->powernoise.octave; - if (ImGui::InputInt("Octave offset",&pnOctave,1,4)) { PARAMETER + if (ImGui::InputInt(_("Octave offset"),&pnOctave,1,4)) { PARAMETER if (pnOctave<0) pnOctave=0; if (pnOctave>15) pnOctave=15; ins->powernoise.octave=pnOctave; } - ImGui::Text("go to Macros for other parameters."); + ImGui::Text(_("go to Macros for other parameters.")); ImGui::EndTabItem(); } } @@ -7376,8 +7517,8 @@ void FurnaceGUI::drawInsEdit() { insTabSample(ins); } if (ins->type>=DIV_INS_MAX) { - if (ImGui::BeginTabItem("Error")) { - ImGui::Text("invalid instrument type! change it first."); + if (ImGui::BeginTabItem(_("Error"))) { + ImGui::Text(_("invalid instrument type! change it first.")); ImGui::EndTabItem(); } } @@ -7394,12 +7535,12 @@ void FurnaceGUI::drawInsEdit() { } } if (ImGui::BeginPopup("macroMenu",ImGuiWindowFlags_NoMove|ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings)) { - if (ImGui::MenuItem("copy")) { + if (ImGui::MenuItem(_("copy"))) { String mmlStr; encodeMMLStr(mmlStr,lastMacroDesc.macro->val,lastMacroDesc.macro->len,lastMacroDesc.macro->loop,lastMacroDesc.macro->rel); SDL_SetClipboardText(mmlStr.c_str()); } - if (ImGui::MenuItem("paste")) { + if (ImGui::MenuItem(_("paste"))) { String mmlStr; char* clipText=SDL_GetClipboardText(); if (clipText!=NULL) { @@ -7413,7 +7554,7 @@ void FurnaceGUI::drawInsEdit() { } } ImGui::Separator(); - if (ImGui::MenuItem("clear")) { + if (ImGui::MenuItem(_("clear"))) { lastMacroDesc.macro->len=0; lastMacroDesc.macro->loop=255; lastMacroDesc.macro->rel=255; @@ -7421,16 +7562,16 @@ void FurnaceGUI::drawInsEdit() { lastMacroDesc.macro->val[i]=0; } } - if (ImGui::MenuItem("clear contents")) { + if (ImGui::MenuItem(_("clear contents"))) { for (int i=0; i<256; i++) { lastMacroDesc.macro->val[i]=0; } } ImGui::Separator(); - if (ImGui::BeginMenu("offset...")) { - ImGui::InputInt("X",¯oOffX,1,10); - ImGui::InputInt("Y",¯oOffY,1,10); - if (ImGui::Button("offset")) { + if (ImGui::BeginMenu(_("offset..."))) { + ImGui::InputInt(_("X"),¯oOffX,1,10); + ImGui::InputInt(_("Y"),¯oOffY,1,10); + if (ImGui::Button(_("offset"))) { int oldData[256]; memset(oldData,0,256*sizeof(int)); memcpy(oldData,lastMacroDesc.macro->val,lastMacroDesc.macro->len*sizeof(int)); @@ -7460,13 +7601,13 @@ void FurnaceGUI::drawInsEdit() { } ImGui::EndMenu(); } - if (ImGui::BeginMenu("scale...")) { - if (ImGui::InputFloat("X",¯oScaleX,1.0f,10.0f,"%.2f%%")) { + if (ImGui::BeginMenu(_("scale..."))) { + if (ImGui::InputFloat(_("X"),¯oScaleX,1.0f,10.0f,"%.2f%%")) { if (macroScaleX<0.1) macroScaleX=0.1; if (macroScaleX>12800.0) macroScaleX=12800.0; } - ImGui::InputFloat("Y",¯oScaleY,1.0f,10.0f,"%.2f%%"); - if (ImGui::Button("scale")) { + ImGui::InputFloat(_("Y"),¯oScaleY,1.0f,10.0f,"%.2f%%"); + if (ImGui::Button(_("scale"))) { int oldData[256]; memset(oldData,0,256*sizeof(int)); memcpy(oldData,lastMacroDesc.macro->val,lastMacroDesc.macro->len*sizeof(int)); @@ -7488,14 +7629,14 @@ void FurnaceGUI::drawInsEdit() { } ImGui::EndMenu(); } - if (ImGui::BeginMenu("randomize...")) { + if (ImGui::BeginMenu(_("randomize..."))) { if (macroRandMinlastMacroDesc.max) macroRandMin=lastMacroDesc.max; if (macroRandMaxlastMacroDesc.max) macroRandMax=lastMacroDesc.max; - ImGui::InputInt("Min",¯oRandMin,1,10); - ImGui::InputInt("Max",¯oRandMax,1,10); - if (ImGui::Button("randomize")) { + ImGui::InputInt(_("Min"),¯oRandMin,1,10); + ImGui::InputInt(_("Max"),¯oRandMax,1,10); + if (ImGui::Button(_("randomize"))) { for (int i=0; ilen; i++) { int val=0; if (macroRandMax<=macroRandMin) { diff --git a/src/gui/intro.cpp b/src/gui/intro.cpp index f191d4b34..fbd66cd9a 100644 --- a/src/gui/intro.cpp +++ b/src/gui/intro.cpp @@ -86,7 +86,7 @@ void FurnaceGUI::endIntroTune() { e->createNewFromDefaults(); } else { // load pending song if (load(curFileName)>0) { - showError(fmt::sprintf("Error while loading file! (%s)",lastError)); + showError(fmt::sprintf(_("Error while loading file! (%s)"),lastError)); curFileName=""; e->createNewFromDefaults(); } @@ -121,7 +121,7 @@ void FurnaceGUI::drawIntro(double introTime, bool monitor) { } if (ImGui::Begin(monitor?"IntroMon X":"Intro",NULL,monitor?globalWinFlags:(ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoDocking|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoBackground))) { if (monitor) { - if (ImGui::Button("Preview")) { + if (ImGui::Button(_("Preview"))) { introPos=0; tutorial.introPlayed=false; shortIntro=false; @@ -173,9 +173,9 @@ void FurnaceGUI::drawIntro(double introTime, bool monitor) { if (monitor) { ImVec2 textPos=ImLerp(top,bottom,ImVec2(0.5,0.5)); - textPos.x-=ImGui::CalcTextSize("SORRY NOTHING").x*0.5; - textPos.y-=ImGui::CalcTextSize("SORRY NOTHING").y*0.5; - dl->AddText(textPos,ImGui::GetColorU32(uiColors[GUI_COLOR_TEXT]),"SORRY NOTHING"); + textPos.x-=ImGui::CalcTextSize(_("SORRY NOTHING")).x*0.5; + textPos.y-=ImGui::CalcTextSize(_("SORRY NOTHING")).y*0.5; + dl->AddText(textPos,ImGui::GetColorU32(uiColors[GUI_COLOR_TEXT]),_("SORRY NOTHING")); } if (introSkip<0.5 || monitor) { @@ -307,7 +307,7 @@ void FurnaceGUI::drawIntro(double introTime, bool monitor) { } dl->AddRectFilled(top,bottom,ImGui::GetColorU32(ImVec4(0.0,0.0,0.0,CLAMP(introSkip*2.0,0.0,1.0)-CLAMP((introSkip-0.5)*4,0.0,1.0)))); - if (introSkip<0.5) dl->AddText(ImVec2(8.0*dpiScale,8.0*dpiScale),ImGui::GetColorU32(ImVec4(1.0,1.0,1.0,CLAMP(introSkip*8.0,0.0,1.0))),"hold to skip"); + if (introSkip<0.5) dl->AddText(ImVec2(8.0*dpiScale,8.0*dpiScale),ImGui::GetColorU32(ImVec4(1.0,1.0,1.0,CLAMP(introSkip*8.0,0.0,1.0))),_("hold to skip")); } } diff --git a/src/gui/log.cpp b/src/gui/log.cpp index 552259e91..0208a727d 100644 --- a/src/gui/log.cpp +++ b/src/gui/log.cpp @@ -22,11 +22,11 @@ #include const char* logLevels[5]={ - "ERROR", - "warning", - "info", - "debug", - "trace" + _N("ERROR"), + _N("warning"), + _N("info"), + _N("debug"), + _N("trace") }; FurnaceGUIColors logColors[5]={ @@ -45,9 +45,9 @@ void FurnaceGUI::drawLog() { } if (!logOpen) return; if (ImGui::Begin("Log Viewer",&logOpen,globalWinFlags)) { - ImGui::Checkbox("Follow",&followLog); + ImGui::Checkbox(_("Follow"),&followLog); ImGui::SameLine(); - ImGui::Text("Level"); + ImGui::Text(_("Level")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::Combo("##LogLevel",&logLevel,logLevels,5); @@ -65,11 +65,11 @@ void FurnaceGUI::drawLog() { ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::TextUnformatted("time"); + ImGui::TextUnformatted(_("time")); ImGui::TableNextColumn(); - ImGui::TextUnformatted("level"); + ImGui::TextUnformatted(_("level")); ImGui::TableNextColumn(); - ImGui::TextUnformatted("message"); + ImGui::TextUnformatted(_("message")); int pos=logPosition; for (int i=0; igetSample(entry.asset); ImGui::Text("%d: %s",curHover,sample->name.c_str()); if ((int)entry.type>=(int)DIV_MEMORY_BANK0) { - ImGui::Text("bank %d",(int)entry.type-(int)DIV_MEMORY_BANK0); + ImGui::Text(_("bank %d"),(int)entry.type-(int)DIV_MEMORY_BANK0); } if ((entry.end-entry.begin)>=1024 && settings.memUsageUnit==1) { ImGui::Text("%d-%d ($%x-$%x): %dK ($%x)",(int)entry.begin,(int)entry.end-1,(int)entry.begin,(int)entry.end-1,(int)(entry.end-entry.begin)>>10,(int)(entry.end-entry.begin)); @@ -172,8 +172,8 @@ void FurnaceGUI::drawMemory() { if (!have) { ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeight()+ImGui::GetStyle().ItemSpacing.y)*0.5f); - CENTER_TEXT("no chips with memory"); - ImGui::Text("no chips with memory"); + CENTER_TEXT(_("no chips with memory")); + ImGui::Text(_("no chips with memory")); } } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_MEMORY; diff --git a/src/gui/mixer.cpp b/src/gui/mixer.cpp index 0c0325e9b..2ff62c341 100644 --- a/src/gui/mixer.cpp +++ b/src/gui/mixer.cpp @@ -25,8 +25,8 @@ #include "imgui_internal.h" const char* portNamesStereo[2]={ - "left", - "right" + _N("left"), + _N("right") }; ImVec2 FurnaceGUI::calcPortSetSize(String label, int ins, int outs) { @@ -125,10 +125,10 @@ bool FurnaceGUI::portSet(String label, unsigned int portSetID, int ins, int outs // input ports for (int i=0; i2) { portLabel=fmt::sprintf("%d",i+1); } @@ -165,10 +165,10 @@ bool FurnaceGUI::portSet(String label, unsigned int portSetID, int ins, int outs // output ports for (int i=0; i2) { portLabel=fmt::sprintf("%d",i+1); } @@ -225,8 +225,8 @@ void FurnaceGUI::drawMixer() { } if (ImGui::Begin("Mixer",&mixerOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) { if (ImGui::BeginTabBar("MixerView")) { - if (ImGui::BeginTabItem("Mixer")) { - if (ImGui::SliderFloat("Master Volume",&e->song.masterVol,0,3,"%.2fx")) { + if (ImGui::BeginTabItem(_("Mixer"))) { + if (ImGui::SliderFloat(_("Master Volume"),&e->song.masterVol,0,3,"%.2fx")) { if (e->song.masterVol<0) e->song.masterVol=0; if (e->song.masterVol>3) e->song.masterVol=3; MARK_MODIFIED; @@ -247,7 +247,7 @@ void FurnaceGUI::drawMixer() { ImGui::AlignTextToFramePadding(); ImGui::Text("%d. %s",i+1,getSystemName(e->song.system[i])); ImGui::TableNextColumn(); - if (ImGui::Checkbox("Invert",&doInvert)) { + if (ImGui::Checkbox(_("Invert"),&doInvert)) { e->song.systemVol[i]=-e->song.systemVol[i]; MARK_MODIFIED; } @@ -265,7 +265,7 @@ void FurnaceGUI::drawMixer() { MARK_MODIFIED; } rightClickable ImGui::TableNextColumn(); - ImGui::Text("Volume"); + ImGui::Text(_("Volume")); ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -276,7 +276,7 @@ void FurnaceGUI::drawMixer() { MARK_MODIFIED; } rightClickable ImGui::TableNextColumn(); - ImGui::Text("Panning"); + ImGui::Text(_("Panning")); ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -287,7 +287,7 @@ void FurnaceGUI::drawMixer() { MARK_MODIFIED; } rightClickable ImGui::TableNextColumn(); - ImGui::Text("Front/Rear"); + ImGui::Text(_("Front/Rear")); ImGui::PopID(); } @@ -296,20 +296,20 @@ void FurnaceGUI::drawMixer() { } ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Patchbay")) { + if (ImGui::BeginTabItem(_("Patchbay"))) { std::map portPos; if (ImGui::BeginTable("PatchbayOptions",3)) { ImGui::TableNextRow(); ImGui::TableNextColumn(); - if (ImGui::Checkbox("Automatic patchbay",&e->song.patchbayAuto)) { + if (ImGui::Checkbox(_("Automatic patchbay"),&e->song.patchbayAuto)) { if (e->song.patchbayAuto) e->autoPatchbayP(); MARK_MODIFIED; } ImGui::TableNextColumn(); - ImGui::Checkbox("Display hidden ports",&displayHiddenPorts); + ImGui::Checkbox(_("Display hidden ports"),&displayHiddenPorts); ImGui::TableNextColumn(); - ImGui::Checkbox("Display internal",&displayInternalPorts); + ImGui::Checkbox(_("Display internal"),&displayInternalPorts); ImGui::EndTable(); } @@ -319,7 +319,7 @@ void FurnaceGUI::drawMixer() { if (ImGui::BeginChild("Patchbay",ImVec2(0,0),true)) { ImDrawList* dl=ImGui::GetWindowDrawList(); ImVec2 topPos=ImGui::GetCursorPos(); - ImVec2 sysSize=calcPortSetSize("System",displayHiddenPorts?DIV_MAX_OUTPUTS:e->getAudioDescGot().outChans,0); + ImVec2 sysSize=calcPortSetSize(_("System"),displayHiddenPorts?DIV_MAX_OUTPUTS:e->getAudioDescGot().outChans,0); topPos.x+=ImGui::GetContentRegionAvail().x-sysSize.x; if (ImGui::GetContentRegionAvail().y>sysSize.y) topPos.y+=(ImGui::GetContentRegionAvail().y-sysSize.y)*0.5+ImGui::GetScrollY(); @@ -351,7 +351,7 @@ void FurnaceGUI::drawMixer() { // metronome/sample preview if (displayInternalPorts) { - if (portSet("Sample Preview",0xffd,0,1,0,1,selectedSubPort,portPos)) { + if (portSet(_("Sample Preview"),0xffd,0,1,0,1,selectedSubPort,portPos)) { selectedPortSet=0xffd; if (selectedSubPort>=0) { portDragActive=true; @@ -364,7 +364,7 @@ void FurnaceGUI::drawMixer() { } } } - if (portSet("Metronome",0xffe,0,1,0,1,selectedSubPort,portPos)) { + if (portSet(_("Metronome"),0xffe,0,1,0,1,selectedSubPort,portPos)) { selectedPortSet=0xffe; if (selectedSubPort>=0) { portDragActive=true; @@ -380,7 +380,7 @@ void FurnaceGUI::drawMixer() { } ImGui::SetCursorPos(topPos); - if (portSet("System",0x1000,displayHiddenPorts?DIV_MAX_OUTPUTS:e->getAudioDescGot().outChans,0,e->getAudioDescGot().outChans,0,selectedSubPort,portPos)) { + if (portSet(_("System"),0x1000,displayHiddenPorts?DIV_MAX_OUTPUTS:e->getAudioDescGot().outChans,0,e->getAudioDescGot().outChans,0,selectedSubPort,portPos)) { selectedPortSet=0x1000; if (selectedSubPort>=0) { portDragActive=true; @@ -443,7 +443,7 @@ void FurnaceGUI::drawMixer() { } } if (ImGui::BeginPopup("SubPortOptions",ImGuiWindowFlags_NoMove|ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings)) { - if (ImGui::MenuItem("disconnect all")) { + if (ImGui::MenuItem(_("disconnect all"))) { e->patchDisconnectAll(selectedPortSet); MARK_MODIFIED; } diff --git a/src/gui/newSong.cpp b/src/gui/newSong.cpp index 2d780f48b..d542188a4 100644 --- a/src/gui/newSong.cpp +++ b/src/gui/newSong.cpp @@ -119,8 +119,8 @@ void FurnaceGUI::drawNewSong() { std::vector sysDefStack; ImGui::PushFont(bigFont); - ImGui::SetCursorPosX((ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize("Choose a System!").x)*0.5); - ImGui::Text("Choose a System!"); + ImGui::SetCursorPosX((ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize(_("Choose a System!")).x)*0.5); + ImGui::Text(_("Choose a System!")); ImGui::PopFont(); ImVec2 avail=ImGui::GetContentRegionAvail(); @@ -130,7 +130,7 @@ void FurnaceGUI::drawNewSong() { if (newSongFirstFrame) ImGui::SetKeyboardFocusHere(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (ImGui::InputTextWithHint("##SysSearch","Search...",&newSongQuery)) { + if (ImGui::InputTextWithHint("##SysSearch",_("Search..."),&newSongQuery)) { String lowerCase=newSongQuery; for (char& i: lowerCase) { if (i>='A' && i<='Z') i+='a'-'A'; @@ -176,9 +176,9 @@ void FurnaceGUI::drawNewSong() { if (newSongQuery.empty()) { ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("Categories"); + ImGui::Text(_("Categories")); ImGui::TableNextColumn(); - ImGui::Text("Systems"); + ImGui::Text(_("Systems")); } ImGui::TableNextRow(); @@ -207,9 +207,9 @@ void FurnaceGUI::drawNewSong() { ImGui::TableNextRow(); ImGui::TableNextColumn(); if (newSongQuery.empty()) { - ImGui::Text("no systems here yet!"); + ImGui::Text(_("no systems here yet!")); } else { - ImGui::Text("no results"); + ImGui::Text(_("no results")); } } else { bool alreadyHover=false; @@ -225,9 +225,9 @@ void FurnaceGUI::drawNewSong() { } ImGui::EndChild(); - if (ImGui::Button("I'm feeling lucky")) { + if (ImGui::Button(_("I'm feeling lucky"))) { if (sysCategories.size()==0) { - showError("no categories available! what in the world."); + showError(_("no categories available! what in the world.")); ImGui::CloseCurrentPopup(); } else { int tries=0; @@ -262,7 +262,7 @@ void FurnaceGUI::drawNewSong() { } if (tries>=50) { - showError("it appears you're extremely lucky today!"); + showError(_("it appears you're extremely lucky today!")); ImGui::CloseCurrentPopup(); } } @@ -270,7 +270,7 @@ void FurnaceGUI::drawNewSong() { ImGui::SameLine(); - if (ImGui::Button("Cancel") || ImGui::IsKeyPressed(ImGuiKey_Escape)) { + if (ImGui::Button(_("Cancel")) || ImGui::IsKeyPressed(ImGuiKey_Escape)) { ImGui::CloseCurrentPopup(); } diff --git a/src/gui/orders.cpp b/src/gui/orders.cpp index 2ff6d13b8..4184d45e8 100644 --- a/src/gui/orders.cpp +++ b/src/gui/orders.cpp @@ -111,7 +111,7 @@ void FurnaceGUI::drawOrderButtons() { doAction(GUI_ACTION_ORDERS_ADD); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Add new order"); + ImGui::SetTooltip(_("Add new order")); } NEXT_BUTTON; @@ -122,7 +122,7 @@ void FurnaceGUI::drawOrderButtons() { } popDestColor(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Remove order"); + ImGui::SetTooltip(_("Remove order")); } NEXT_BUTTON; @@ -134,7 +134,7 @@ void FurnaceGUI::drawOrderButtons() { doAction(GUI_ACTION_ORDERS_DEEP_CLONE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Duplicate order (right-click to deep clone)"); + ImGui::SetTooltip(_("Duplicate order (right-click to deep clone)")); } NEXT_BUTTON; @@ -143,7 +143,7 @@ void FurnaceGUI::drawOrderButtons() { doAction(GUI_ACTION_ORDERS_MOVE_UP); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Move order up"); + ImGui::SetTooltip(_("Move order up")); } NEXT_BUTTON; @@ -152,7 +152,7 @@ void FurnaceGUI::drawOrderButtons() { doAction(GUI_ACTION_ORDERS_MOVE_DOWN); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Move order down"); + ImGui::SetTooltip(_("Move order down")); } NEXT_BUTTON; @@ -164,7 +164,7 @@ void FurnaceGUI::drawOrderButtons() { doAction(GUI_ACTION_ORDERS_DEEP_CLONE_END); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Place copy of current order at end of song (right-click to deep clone)"); + ImGui::SetTooltip(_("Place copy of current order at end of song (right-click to deep clone)")); } NEXT_BUTTON; @@ -174,9 +174,9 @@ void FurnaceGUI::drawOrderButtons() { } if (ImGui::IsItemHovered()) { if (changeAllOrders) { - ImGui::SetTooltip("Order change mode: entire row"); + ImGui::SetTooltip(_("Order change mode: entire row")); } else { - ImGui::SetTooltip("Order change mode: one"); + ImGui::SetTooltip(_("Order change mode: one")); } } NEXT_BUTTON; @@ -202,13 +202,13 @@ void FurnaceGUI::drawOrderButtons() { } if (ImGui::IsItemHovered()) { if (orderEditMode==3) { - ImGui::SetTooltip("Order edit mode: Select and type (scroll vertically)"); + ImGui::SetTooltip(_("Order edit mode: Select and type (scroll vertically)")); } else if (orderEditMode==2) { - ImGui::SetTooltip("Order edit mode: Select and type (scroll horizontally)"); + ImGui::SetTooltip(_("Order edit mode: Select and type (scroll horizontally)")); } else if (orderEditMode==1) { - ImGui::SetTooltip("Order edit mode: Select and type (don't scroll)"); + ImGui::SetTooltip(_("Order edit mode: Select and type (don't scroll)")); } else { - ImGui::SetTooltip("Order edit mode: Click to change"); + ImGui::SetTooltip(_("Order edit mode: Click to change")); } } } diff --git a/src/gui/osc.cpp b/src/gui/osc.cpp index 7af0bce24..578a48c01 100644 --- a/src/gui/osc.cpp +++ b/src/gui/osc.cpp @@ -173,7 +173,7 @@ void FurnaceGUI::drawOsc() { if (oscZoom>2.0) oscZoom=2.0; } rightClickable if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("zoom: %.2fx (%.1fdB)",oscZoom,20.0*log10(oscZoom*2.0)); + ImGui::SetTooltip(_("zoom: %.2fx (%.1fdB)"),oscZoom,20.0*log10(oscZoom*2.0)); } if (ImGui::IsItemClicked(ImGuiMouseButton_Middle)) { oscZoom=0.5; @@ -184,7 +184,7 @@ void FurnaceGUI::drawOsc() { if (oscWindowSize>100.0) oscWindowSize=100.0; } rightClickable if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("window size: %.1fms",oscWindowSize); + ImGui::SetTooltip(_("window size: %.1fms"),oscWindowSize); } if (ImGui::IsItemClicked(ImGuiMouseButton_Middle)) { oscWindowSize=20.0; @@ -382,7 +382,7 @@ void FurnaceGUI::drawOsc() { float val=20.0*log10(2.0*fabs(0.5-((ImGui::GetMousePos().y-inRect.Min.y)/(inRect.Max.y-inRect.Min.y)))); if (val>0.0f) val=0.0f; if (val<=-INFINITY) { - ImGui::SetTooltip("(-Infinity)dB"); + ImGui::SetTooltip(_("(-Infinity)dB")); } else { ImGui::SetTooltip("%.1fdB",val); } diff --git a/src/gui/patManager.cpp b/src/gui/patManager.cpp index 55439365c..04cc48f0d 100644 --- a/src/gui/patManager.cpp +++ b/src/gui/patManager.cpp @@ -33,28 +33,28 @@ void FurnaceGUI::drawPatManager() { unsigned char isUsed[DIV_MAX_PATTERNS]; bool isNull[DIV_MAX_PATTERNS]; if (ImGui::Begin("Pattern Manager",&patManagerOpen,globalWinFlags)) { - if (ImGui::Button("De-duplicate patterns")) { + if (ImGui::Button(_("De-duplicate patterns"))) { e->lockEngine([this]() { e->curSubSong->optimizePatterns(); }); MARK_MODIFIED; } ImGui::SameLine(); - if (ImGui::Button("Re-arrange patterns")) { + if (ImGui::Button(_("Re-arrange patterns"))) { e->lockEngine([this]() { e->curSubSong->rearrangePatterns(); }); MARK_MODIFIED; } ImGui::SameLine(); - if (ImGui::Button("Sort orders")) { + if (ImGui::Button(_("Sort orders"))) { e->lockEngine([this]() { e->curSubSong->sortOrders(); }); MARK_MODIFIED; } ImGui::SameLine(); - if (ImGui::Button("Make patterns unique")) { + if (ImGui::Button(_("Make patterns unique"))) { e->lockEngine([this]() { e->curSubSong->makePatUnique(); }); @@ -100,9 +100,9 @@ void FurnaceGUI::drawPatManager() { ImGui::PushFont(mainFont); ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_TEXT]); if (isNull[k]) { - ImGui::SetTooltip("Pattern %.2X\n- not allocated",k); + ImGui::SetTooltip(_("Pattern %.2X\n- not allocated"),k); } else { - ImGui::SetTooltip("Pattern %.2X\n- use count: %d (%.0f%%)\n\nright-click to erase",k,isUsed[k],100.0*(double)isUsed[k]/(double)e->curSubSong->ordersLen); + ImGui::SetTooltip(_("Pattern %.2X\n- use count: %d (%.0f%%)\n\nright-click to erase"),k,isUsed[k],100.0*(double)isUsed[k]/(double)e->curSubSong->ordersLen); } ImGui::PopStyleColor(); ImGui::PopFont(); diff --git a/src/gui/pattern.cpp b/src/gui/pattern.cpp index a1fc3a87c..cf833624d 100644 --- a/src/gui/pattern.cpp +++ b/src/gui/pattern.cpp @@ -465,7 +465,7 @@ void FurnaceGUI::drawPattern() { ImDrawList* tdl=NULL; if (chans<1) { - ImGui::Text("there aren't any channels to show."); + ImGui::Text(_("there aren't any channels to show.")); } else if (ImGui::BeginTable("PatternView",displayChans+2,ImGuiTableFlags_BordersInnerV|ImGuiTableFlags_ScrollX|ImGuiTableFlags_ScrollY|ImGuiTableFlags_NoPadInnerX|ImGuiTableFlags_NoBordersInFrozenArea|((settings.cursorFollowsWheel || wheelCalmDown)?ImGuiTableFlags_NoScrollWithMouse:0))) { ImGui::TableSetupColumn("pos",ImGuiTableColumnFlags_WidthFixed); char chanID[2048]; @@ -489,7 +489,7 @@ void FurnaceGUI::drawPattern() { ImGui::OpenPopup("PatternOpt"); } if (ImGui::IsItemHovered() && !mobileUI) { - ImGui::SetTooltip("click for pattern options (effect columns/pattern names/visualizer)"); + ImGui::SetTooltip(_("click for pattern options (effect columns/pattern names/visualizer)")); } if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) { fancyPattern=!fancyPattern; @@ -501,12 +501,12 @@ void FurnaceGUI::drawPattern() { ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding,origWinPadding); ImGui::PushFont(mainFont); if (ImGui::BeginPopup("PatternOpt",ImGuiWindowFlags_NoMove|ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings)) { - ImGui::Text("Options:"); + ImGui::Text(_("Options:")); ImGui::Indent(); - ImGui::Checkbox("Effect columns/collapse",&patExtraButtons); - ImGui::Checkbox("Pattern names",&patChannelNames); - ImGui::Checkbox("Channel group hints",&patChannelPairs); - if (ImGui::Checkbox("Visualizer",&fancyPattern)) { + ImGui::Checkbox(_("Effect columns/collapse"),&patExtraButtons); + ImGui::Checkbox(_("Pattern names"),&patChannelNames); + ImGui::Checkbox(_("Channel group hints"),&patChannelPairs); + if (ImGui::Checkbox(_("Visualizer"),&fancyPattern)) { inhibitMenu=true; e->enableCommandStream(fancyPattern); e->getCommandStream(cmdStream); @@ -514,19 +514,19 @@ void FurnaceGUI::drawPattern() { } ImGui::Unindent(); - ImGui::Text("Channel status:"); + ImGui::Text(_("Channel status:")); ImGui::Indent(); - if (ImGui::RadioButton("No##_PCS0",patChannelHints==0)) { + if (ImGui::RadioButton(_("No##_PCS0"),patChannelHints==0)) { patChannelHints=0; } - if (ImGui::RadioButton("Yes##_PCS1",patChannelHints==1)) { + if (ImGui::RadioButton(_("Yes##_PCS1"),patChannelHints==1)) { patChannelHints=1; } /* - if (ImGui::RadioButton("Regular##_PCS2",patChannelHints==2)) { + if (ImGui::RadioButton(_("Regular##_PCS2"),patChannelHints==2)) { patChannelHints=2; } - if (ImGui::RadioButton("Detailed##_PCS3",patChannelHints==3)) { + if (ImGui::RadioButton(_("Detailed##_PCS3"),patChannelHints==3)) { patChannelHints=3; }*/ ImGui::Unindent(); @@ -1417,11 +1417,11 @@ void FurnaceGUI::drawPattern() { if (tdl!=NULL && failedNoteOn) { ImVec2 winCenter=ImGui::GetWindowPos()+ImGui::GetWindowSize()*0.5f; ImGui::PushFont(bigFont); - ImVec2 warnHeadSize=ImGui::CalcTextSize("WARNING!!"); + ImVec2 warnHeadSize=ImGui::CalcTextSize(_("WARNING!!")); ImGui::PopFont(); - ImVec2 warnTextSize1=ImGui::CalcTextSize("this instrument cannot be previewed because"); - ImVec2 warnTextSize2=ImGui::CalcTextSize("none of the chips can play it"); - ImVec2 warnTextSize3=ImGui::CalcTextSize("your instrument is in peril!! be careful..."); + ImVec2 warnTextSize1=ImGui::CalcTextSize(_("this instrument cannot be previewed because")); + ImVec2 warnTextSize2=ImGui::CalcTextSize(_("none of the chips can play it")); + ImVec2 warnTextSize3=ImGui::CalcTextSize(_("your instrument is in peril!! be careful...")); float maxTextSize=warnHeadSize.x; if (warnTextSize1.x>maxTextSize) maxTextSize=warnTextSize1.x; @@ -1449,28 +1449,28 @@ void FurnaceGUI::drawPattern() { MAX(1,40*dpiScale), ImVec2(winCenter.x-warnHeadSize.x*0.5,whereY), ImGui::GetColorU32(ImGuiCol_Text), - "WARNING!!" + _("WARNING!!") ); whereY+=warnHeadSize.y; tdl->AddText( ImVec2(winCenter.x-warnTextSize1.x*0.5,whereY), ImGui::GetColorU32(ImGuiCol_Text), - "this instrument cannot be previewed because" + _("this instrument cannot be previewed because") ); whereY+=warnTextSize1.y; tdl->AddText( ImVec2(winCenter.x-warnTextSize2.x*0.5,whereY), ImGui::GetColorU32(ImGuiCol_Text), - "none of the chips can play it" + _("none of the chips can play it") ); whereY+=warnTextSize2.y; tdl->AddText( ImVec2(winCenter.x-warnTextSize3.x*0.5,whereY), ImGui::GetColorU32(ImGuiCol_Text), - "your instrument is in peril!! be careful..." + _("your instrument is in peril!! be careful...") ); whereY+=warnTextSize3.y; } @@ -1759,7 +1759,5 @@ void FurnaceGUI::drawPattern() { } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_PATTERN; ImGui::End(); - //int delta1=SDL_GetPerformanceCounter(); - //logV("render time: %dµs",(delta1-delta0)/(SDL_GetPerformanceFrequency()/1000000)); } diff --git a/src/gui/piano.cpp b/src/gui/piano.cpp index d71740cdb..8e5fa78ac 100644 --- a/src/gui/piano.cpp +++ b/src/gui/piano.cpp @@ -100,38 +100,38 @@ void FurnaceGUI::drawPiano() { ImGui::SameLine(); ImGui::Button(ICON_FA_ELLIPSIS_V "##PianoOptions",optionSize); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Options"); + ImGui::SetTooltip(_("Options")); } if (ImGui::BeginPopupContextItem("PianoOptions",ImGuiPopupFlags_MouseButtonLeft)) { - ImGui::Text("Key layout:"); + ImGui::Text(_("Key layout:")); ImGui::Indent(); - if (ImGui::RadioButton("Automatic",pianoView==PIANO_LAYOUT_AUTOMATIC)) { + if (ImGui::RadioButton(_("Automatic"),pianoView==PIANO_LAYOUT_AUTOMATIC)) { pianoView=PIANO_LAYOUT_AUTOMATIC; } - if (ImGui::RadioButton("Standard",pianoView==PIANO_LAYOUT_STANDARD)) { + if (ImGui::RadioButton(_("Standard"),pianoView==PIANO_LAYOUT_STANDARD)) { pianoView=PIANO_LAYOUT_STANDARD; } - if (ImGui::RadioButton("Continuous",pianoView==PIANO_LAYOUT_CONTINUOUS)) { + if (ImGui::RadioButton(_("Continuous"),pianoView==PIANO_LAYOUT_CONTINUOUS)) { pianoView=PIANO_LAYOUT_CONTINUOUS; } ImGui::Unindent(); - ImGui::Text("Value input pad:"); + ImGui::Text(_("Value input pad:")); ImGui::Indent(); - if (ImGui::RadioButton("Disabled",pianoInputPadMode==PIANO_INPUT_PAD_DISABLE)) { + if (ImGui::RadioButton(_("Disabled"),pianoInputPadMode==PIANO_INPUT_PAD_DISABLE)) { pianoInputPadMode=PIANO_INPUT_PAD_DISABLE; } - if (ImGui::RadioButton("Replace piano",pianoInputPadMode==PIANO_INPUT_PAD_REPLACE)) { + if (ImGui::RadioButton(_("Replace piano"),pianoInputPadMode==PIANO_INPUT_PAD_REPLACE)) { pianoInputPadMode=PIANO_INPUT_PAD_REPLACE; } - if (ImGui::RadioButton("Split (automatic)",pianoInputPadMode==PIANO_INPUT_PAD_SPLIT_AUTO)) { + if (ImGui::RadioButton(_("Split (automatic)"),pianoInputPadMode==PIANO_INPUT_PAD_SPLIT_AUTO)) { pianoInputPadMode=PIANO_INPUT_PAD_SPLIT_AUTO; } - if (ImGui::RadioButton("Split (always visible)",pianoInputPadMode==PIANO_INPUT_PAD_SPLIT_VISIBLE)) { + if (ImGui::RadioButton(_("Split (always visible)"),pianoInputPadMode==PIANO_INPUT_PAD_SPLIT_VISIBLE)) { pianoInputPadMode=PIANO_INPUT_PAD_SPLIT_VISIBLE; } ImGui::Unindent(); - ImGui::Checkbox("Share play/edit offset/range",&pianoSharePosition); - ImGui::Checkbox("Read-only (can't input notes)",&pianoReadonly); + ImGui::Checkbox(_("Share play/edit offset/range"),&pianoSharePosition); + ImGui::Checkbox(_("Read-only (can't input notes)"),&pianoReadonly); ImGui::EndPopup(); } diff --git a/src/gui/regView.cpp b/src/gui/regView.cpp index 6ad6c0814..59f560da1 100644 --- a/src/gui/regView.cpp +++ b/src/gui/regView.cpp @@ -35,7 +35,7 @@ void FurnaceGUI::drawRegView() { unsigned char* regPool=e->getRegisterPool(i,size,depth); unsigned short* regPoolW=(unsigned short*)regPool; if (regPool==NULL) { - ImGui::Text("- no register pool available"); + ImGui::Text(_("- no register pool available")); } else { ImGui::PushFont(patFont); if (ImGui::BeginTable("Memory",17)) { diff --git a/src/gui/sampleEdit.cpp b/src/gui/sampleEdit.cpp index 4a85cdd06..adb2ba3d1 100644 --- a/src/gui/sampleEdit.cpp +++ b/src/gui/sampleEdit.cpp @@ -62,21 +62,21 @@ const double timeMultipliers[13]={ #define MAX_RATE(_name,_x) \ if (e->isPreviewingSample()) { \ if ((int)e->getSamplePreviewRate()>(int)(_x)) { \ - SAMPLE_WARN(warnRate,fmt::sprintf("%s: maximum sample rate is %d",_name,(int)(_x))); \ + SAMPLE_WARN(warnRate,fmt::sprintf(_("%s: maximum sample rate is %d"),_name,(int)(_x))); \ } \ } #define MIN_RATE(_name,_x) \ if (e->isPreviewingSample()) { \ if ((int)e->getSamplePreviewRate()<(int)(_x)) { \ - SAMPLE_WARN(warnRate,fmt::sprintf("%s: minimum sample rate is %d",_name,(int)(_x))); \ + SAMPLE_WARN(warnRate,fmt::sprintf(_("%s: minimum sample rate is %d"),_name,(int)(_x))); \ } \ } #define EXACT_RATE(_name,_x) \ if (e->isPreviewingSample()) { \ if ((int)e->getSamplePreviewRate()!=(int)(_x)) { \ - SAMPLE_WARN(warnRate,fmt::sprintf("%s: sample rate must be %d",_name,(int)(_x))); \ + SAMPLE_WARN(warnRate,fmt::sprintf(_("%s: sample rate must be %d"),_name,(int)(_x))); \ } \ } @@ -96,8 +96,8 @@ void FurnaceGUI::drawSampleEdit() { if (ImGui::Begin("Sample Editor",&sampleEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) { if (curSample<0 || curSample>=(int)e->song.sample.size()) { ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()*2.0f)*0.5f); - CENTER_TEXT("no sample selected"); - ImGui::Text("no sample selected"); + CENTER_TEXT(_("no sample selected")); + ImGui::Text(_("no sample selected")); if (ImGui::BeginTable("noAssetCenter",3)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch,0.5f); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed); @@ -108,7 +108,7 @@ void FurnaceGUI::drawSampleEdit() { ImGui::TableNextColumn(); if (e->song.sample.size()>0) { - if (ImGui::BeginCombo("##SampleSelect","select one...")) { + if (ImGui::BeginCombo("##SampleSelect",_("select one..."))) { if (ImGui::BeginTable("SampleSelCombo",1,ImGuiTableFlags_ScrollY)) { actualSampleList(); ImGui::EndTable(); @@ -116,16 +116,16 @@ void FurnaceGUI::drawSampleEdit() { ImGui::EndCombo(); } ImGui::SameLine(); - ImGui::TextUnformatted("or"); + ImGui::TextUnformatted(_("or")); ImGui::SameLine(); } - if (ImGui::Button("Open")) { + if (ImGui::Button(_("Open"))) { doAction(GUI_ACTION_SAMPLE_LIST_OPEN); } ImGui::SameLine(); - ImGui::TextUnformatted("or"); + ImGui::TextUnformatted(_("or")); ImGui::SameLine(); - if (ImGui::Button("Create New")) { + if (ImGui::Button(_("Create New"))) { doAction(GUI_ACTION_SAMPLE_LIST_ADD); } @@ -134,16 +134,16 @@ void FurnaceGUI::drawSampleEdit() { } } else { DivSample* sample=e->song.sample[curSample]; - String sampleType="Invalid"; + String sampleType=_("Invalid"); if (sample->depthdepth]!=NULL) { sampleType=sampleDepths[sample->depth]; } } - String loopType="Invalid"; + String loopType=_("Invalid"); if (sample->loopModeloopMode]!=NULL) { - loopType=sampleLoopModes[sample->loopMode]; + loopType=_(sampleLoopModes[sample->loopMode]); } } @@ -168,10 +168,10 @@ void FurnaceGUI::drawSampleEdit() { doAction(GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Open"); + ImGui::SetTooltip(_("Open")); } if (ImGui::BeginPopupContextItem("SampleEOpenOpt")) { - if (ImGui::MenuItem("import raw...")) { + if (ImGui::MenuItem(_("import raw..."))) { doAction((curSample>=0 && curSample<(int)e->song.sample.size())?GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE_RAW:GUI_ACTION_SAMPLE_LIST_OPEN_RAW); } ImGui::EndPopup(); @@ -181,10 +181,10 @@ void FurnaceGUI::drawSampleEdit() { doAction(GUI_ACTION_SAMPLE_LIST_SAVE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Save"); + ImGui::SetTooltip(_("Save")); } if (ImGui::BeginPopupContextItem("SampleESaveOpt")) { - if (ImGui::MenuItem("save raw...")) { + if (ImGui::MenuItem(_("save raw..."))) { doAction(GUI_ACTION_SAMPLE_LIST_SAVE_RAW); } ImGui::EndPopup(); @@ -192,7 +192,7 @@ void FurnaceGUI::drawSampleEdit() { ImGui::SameLine(); - ImGui::Text("Name"); + ImGui::Text(_("Name")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::PushID(2+curSample); @@ -226,18 +226,18 @@ void FurnaceGUI::drawSampleEdit() { if (sample->loopStart&15) { int tryWith=(sample->loopStart+8)&(~15); if (tryWith>(int)sample->samples) tryWith-=16; - String alignHint=fmt::sprintf("SNES: loop start must be a multiple of 16 (try with %d)",tryWith); + String alignHint=fmt::sprintf(_("SNES: loop start must be a multiple of 16 (try with %d)"),tryWith); SAMPLE_WARN(warnLoopStart,alignHint); } if (sample->loopEnd&15) { int tryWith=(sample->loopEnd+8)&(~15); if (tryWith>(int)sample->samples) tryWith-=16; - String alignHint=fmt::sprintf("SNES: loop end must be a multiple of 16 (try with %d)",tryWith); + String alignHint=fmt::sprintf(_("SNES: loop end must be a multiple of 16 (try with %d)"),tryWith); SAMPLE_WARN(warnLoopEnd,alignHint); } } if (sample->samples&15) { - SAMPLE_WARN(warnLength,"SNES: sample length will be padded to multiple of 16"); + SAMPLE_WARN(warnLength,_("SNES: sample length will be padded to multiple of 16")); } if (dispatch!=NULL) { MAX_RATE("SNES",dispatch->chipClock/8.0); @@ -246,7 +246,7 @@ void FurnaceGUI::drawSampleEdit() { case DIV_SYSTEM_QSOUND: if (sample->loop) { if (sample->loopEnd-sample->loopStart>32767) { - SAMPLE_WARN(warnLoopPos,"QSound: loop cannot be longer than 32767 samples"); + SAMPLE_WARN(warnLoopPos,_("QSound: loop cannot be longer than 32767 samples")); } } if (sample->samples>65535) { @@ -256,24 +256,24 @@ void FurnaceGUI::drawSampleEdit() { case DIV_SYSTEM_NES: if (sample->loop) { if (sample->loopStart!=0 || sample->loopEnd!=(int)(sample->samples)) { - SAMPLE_WARN(warnLoopPos,"NES: loop point ignored on DPCM (may only loop entire sample)"); + SAMPLE_WARN(warnLoopPos,_("NES: loop point ignored on DPCM (may only loop entire sample)")); } } if (sample->samples>32648) { - SAMPLE_WARN(warnLength,"NES: maximum DPCM sample length is 32648"); + SAMPLE_WARN(warnLength,_("NES: maximum DPCM sample length is 32648")); } break; case DIV_SYSTEM_X1_010: if (sample->loop) { - SAMPLE_WARN(warnLoop,"X1-010: samples can't loop"); + SAMPLE_WARN(warnLoop,_("X1-010: samples can't loop")); } if (sample->samples>131072) { - SAMPLE_WARN(warnLength,"X1-010: maximum sample length is 131072"); + SAMPLE_WARN(warnLength,_("X1-010: maximum sample length is 131072")); } break; case DIV_SYSTEM_GA20: if (sample->loop) { - SAMPLE_WARN(warnLoop,"GA20: samples can't loop"); + SAMPLE_WARN(warnLoop,_("GA20: samples can't loop")); } if (dispatch!=NULL) { MIN_RATE("GA20",dispatch->chipClock/1024); @@ -284,10 +284,10 @@ void FurnaceGUI::drawSampleEdit() { case DIV_SYSTEM_YM2608_CSM: if (sample->loop) { if (sample->loopStart!=0 || sample->loopEnd!=(int)(sample->samples)) { - SAMPLE_WARN(warnLoopPos,"YM2608: loop point ignored on ADPCM (may only loop entire sample)"); + SAMPLE_WARN(warnLoopPos,_("YM2608: loop point ignored on ADPCM (may only loop entire sample)")); } if (sample->samples&511) { - SAMPLE_WARN(warnLength,"YM2608: sample length will be padded to multiple of 512"); + SAMPLE_WARN(warnLength,_("YM2608: sample length will be padded to multiple of 512")); } } break; @@ -297,16 +297,16 @@ void FurnaceGUI::drawSampleEdit() { case DIV_SYSTEM_YM2610B: case DIV_SYSTEM_YM2610B_EXT: if (sample->loop) { - SAMPLE_WARN(warnLoop,"YM2610: ADPCM-A samples can't loop"); + SAMPLE_WARN(warnLoop,_("YM2610: ADPCM-A samples can't loop")); if (sample->loopStart!=0 || sample->loopEnd!=(int)(sample->samples)) { - SAMPLE_WARN(warnLoopPos,"YM2610: loop point ignored on ADPCM-B (may only loop entire sample)"); + SAMPLE_WARN(warnLoopPos,_("YM2610: loop point ignored on ADPCM-B (may only loop entire sample)")); } if (sample->samples&511) { - SAMPLE_WARN(warnLength,"YM2610: sample length will be padded to multiple of 512"); + SAMPLE_WARN(warnLength,_("YM2610: sample length will be padded to multiple of 512")); } } if (sample->samples>2097152) { - SAMPLE_WARN(warnLength,"YM2610: maximum ADPCM-A sample length is 2097152"); + SAMPLE_WARN(warnLength,_("YM2610: maximum ADPCM-A sample length is 2097152")); } if (dispatch!=NULL) { EXACT_RATE("YM2610 (ADPCM-A)",dispatch->chipClock/432); @@ -315,24 +315,24 @@ void FurnaceGUI::drawSampleEdit() { case DIV_SYSTEM_Y8950: if (sample->loop) { if (sample->loopStart!=0 || sample->loopEnd!=(int)(sample->samples)) { - SAMPLE_WARN(warnLoopPos,"Y8950: loop point ignored on ADPCM (may only loop entire sample)"); + SAMPLE_WARN(warnLoopPos,_("Y8950: loop point ignored on ADPCM (may only loop entire sample)")); } if (sample->samples&511) { - SAMPLE_WARN(warnLength,"Y8950: sample length will be padded to multiple of 512"); + SAMPLE_WARN(warnLength,_("Y8950: sample length will be padded to multiple of 512")); } } break; case DIV_SYSTEM_AMIGA: if (sample->loop) { if (sample->loopStart&1) { - SAMPLE_WARN(warnLoopStart,"Amiga: loop start must be a multiple of 2"); + SAMPLE_WARN(warnLoopStart,_("Amiga: loop start must be a multiple of 2")); } if (sample->loopEnd&1) { - SAMPLE_WARN(warnLoopEnd,"Amiga: loop end must be a multiple of 2"); + SAMPLE_WARN(warnLoopEnd,_("Amiga: loop end must be a multiple of 2")); } } if (sample->samples>131070) { - SAMPLE_WARN(warnLength,"Amiga: maximum sample length is 131070"); + SAMPLE_WARN(warnLength,_("Amiga: maximum sample length is 131070")); } if (dispatch!=NULL) { MAX_RATE("Amiga",31250.0); @@ -341,7 +341,7 @@ void FurnaceGUI::drawSampleEdit() { case DIV_SYSTEM_SEGAPCM: case DIV_SYSTEM_SEGAPCM_COMPAT: if (sample->samples>65280) { - SAMPLE_WARN(warnLength,"SegaPCM: maximum sample length is 65280"); + SAMPLE_WARN(warnLength,_("SegaPCM: maximum sample length is 65280")); } if (dispatch!=NULL) { MAX_RATE("SegaPCM",dispatch->chipClock/256); @@ -350,16 +350,16 @@ void FurnaceGUI::drawSampleEdit() { case DIV_SYSTEM_K053260: if (sample->loop) { if (sample->loopStart!=0 || sample->loopEnd!=(int)(sample->samples)) { - SAMPLE_WARN(warnLoopPos,"K053260: loop point ignored (may only loop entire sample)"); + SAMPLE_WARN(warnLoopPos,_("K053260: loop point ignored (may only loop entire sample)")); } } if (sample->samples>65535) { - SAMPLE_WARN(warnLength,"K053260: maximum sample length is 65535"); + SAMPLE_WARN(warnLength,_("K053260: maximum sample length is 65535")); } break; case DIV_SYSTEM_C140: if (sample->samples>65535) { - SAMPLE_WARN(warnLength,"C140: maximum sample length is 65535"); + SAMPLE_WARN(warnLength,_("C140: maximum sample length is 65535")); } if (dispatch!=NULL) { MAX_RATE("C140",dispatch->rate); @@ -368,14 +368,14 @@ void FurnaceGUI::drawSampleEdit() { case DIV_SYSTEM_C219: if (sample->loop) { if (sample->loopStart&1) { - SAMPLE_WARN(warnLoopStart,"C219: loop start must be a multiple of 2"); + SAMPLE_WARN(warnLoopStart,_("C219: loop start must be a multiple of 2")); } if (sample->loopEnd&1) { - SAMPLE_WARN(warnLoopEnd,"C219: loop end must be a multiple of 2"); + SAMPLE_WARN(warnLoopEnd,_("C219: loop end must be a multiple of 2")); } } if (sample->samples>131072) { - SAMPLE_WARN(warnLength,"C219: maximum sample length is 131072"); + SAMPLE_WARN(warnLength,_("C219: maximum sample length is 131072")); } if (dispatch!=NULL) { MAX_RATE("C219",dispatch->rate); @@ -383,23 +383,23 @@ void FurnaceGUI::drawSampleEdit() { break; case DIV_SYSTEM_MSM6295: if (sample->loop) { - SAMPLE_WARN(warnLoop,"MSM6295: samples can't loop"); + SAMPLE_WARN(warnLoop,_("MSM6295: samples can't loop")); } if (sample->samples>129024) { - SAMPLE_WARN(warnLength,"MSM6295: maximum bankswitched sample length is 129024"); + SAMPLE_WARN(warnLength,_("MSM6295: maximum bankswitched sample length is 129024")); } break; case DIV_SYSTEM_GBA_DMA: if (sample->loop) { if (sample->loopStart&3) { - SAMPLE_WARN(warnLoopStart,"GBA DMA: loop start must be a multiple of 4"); + SAMPLE_WARN(warnLoopStart,_("GBA DMA: loop start must be a multiple of 4")); } if ((sample->loopEnd-sample->loopStart)&15) { - SAMPLE_WARN(warnLoopEnd,"GBA DMA: loop length must be a multiple of 16"); + SAMPLE_WARN(warnLoopEnd,_("GBA DMA: loop length must be a multiple of 16")); } } if (sample->samples&15) { - SAMPLE_WARN(warnLength,"GBA DMA: sample length will be padded to multiple of 16"); + SAMPLE_WARN(warnLength,_("GBA DMA: sample length will be padded to multiple of 16")); } break; default: @@ -408,10 +408,10 @@ void FurnaceGUI::drawSampleEdit() { if (e->song.system[i]!=DIV_SYSTEM_PCM_DAC) { if (e->song.system[i]==DIV_SYSTEM_ES5506) { if (sample->loopMode==DIV_SAMPLE_LOOP_BACKWARD) { - SAMPLE_WARN(warnLoopMode,"ES5506: backward loop mode isn't supported"); + SAMPLE_WARN(warnLoopMode,_("ES5506: backward loop mode isn't supported")); } } else if (sample->loopMode!=DIV_SAMPLE_LOOP_FORWARD) { - SAMPLE_WARN(warnLoopMode,"backward/ping-pong only supported in Generic PCM DAC\nping-pong also on ES5506"); + SAMPLE_WARN(warnLoopMode,_("backward/ping-pong only supported in Generic PCM DAC\nping-pong also on ES5506")); } } @@ -441,26 +441,26 @@ void FurnaceGUI::drawSampleEdit() { sampleInfo=!sampleInfo; } ImGui::SameLine(); - ImGui::Text("Info"); + ImGui::Text(_("Info")); ImGui::TableNextColumn(); pushToggleColors(!sampleCompatRate); - if (ImGui::Button("Rate")) { + if (ImGui::Button(_("Rate"))) { sampleCompatRate=false; } popToggleColors(); ImGui::SameLine(); pushToggleColors(sampleCompatRate); - if (ImGui::Button("Compat Rate")) { + if (ImGui::Button(_("Compat Rate"))) { sampleCompatRate=true; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("used in DefleMask-compatible sample mode (17xx), in where samples are mapped to an octave."); + ImGui::SetTooltip(_("used in DefleMask-compatible sample mode (17xx), in where samples are mapped to an octave.")); } popToggleColors(); ImGui::TableNextColumn(); bool doLoop=(sample->loop); pushWarningColor(!warnLoop.empty()); - String loopCheckboxName=(doLoop && (sample->loopEnd-sample->loopStart)>0)?fmt::sprintf("Loop (length: %d)##Loop",sample->loopEnd-sample->loopStart):String("Loop"); + String loopCheckboxName=(doLoop && (sample->loopEnd-sample->loopStart)>0)?fmt::sprintf(_("Loop (length: %d)##Loop"),sample->loopEnd-sample->loopStart):String(_("Loop")); if (ImGui::Checkbox(loopCheckboxName.c_str(),&doLoop)) { MARK_MODIFIED if (doLoop) { sample->loop=true; @@ -484,21 +484,21 @@ void FurnaceGUI::drawSampleEdit() { popWarningColor(); if (ImGui::IsItemHovered() && (!warnLoop.empty() || sample->depth==DIV_SAMPLE_DEPTH_BRR)) { if (sample->depth==DIV_SAMPLE_DEPTH_BRR) { - SAMPLE_WARN(warnLoop,"changing the loop in a BRR sample may result in glitches!"); + SAMPLE_WARN(warnLoop,_("changing the loop in a BRR sample may result in glitches!")); } ImGui::SetTooltip("%s",warnLoop.c_str()); } if (selColumns>1) { ImGui::TableNextColumn(); - ImGui::Text("Chips"); + ImGui::Text(_("Chips")); } if (sampleInfo) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Type"); + ImGui::Text(_("Type")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::BeginCombo("##SampleType",sampleType.c_str())) { @@ -526,7 +526,7 @@ void FurnaceGUI::drawSampleEdit() { } if (sample->depth==DIV_SAMPLE_DEPTH_BRR || isThereSNES) { bool be=sample->brrEmphasis; - if (ImGui::Checkbox("BRR emphasis",&be)) { + if (ImGui::Checkbox(_("BRR emphasis"),&be)) { sample->prepareUndo(true); sample->brrEmphasis=be; e->renderSamplesP(curSample); @@ -535,15 +535,15 @@ void FurnaceGUI::drawSampleEdit() { } if (ImGui::IsItemHovered()) { if (sample->depth==DIV_SAMPLE_DEPTH_BRR) { - ImGui::SetTooltip("this is a BRR sample.\nenabling this option will muffle it (only affects non-SNES chips)."); + ImGui::SetTooltip(_("this is a BRR sample.\nenabling this option will muffle it (only affects non-SNES chips).")); } else { - ImGui::SetTooltip("enable this option to slightly boost high frequencies\nto compensate for the SNES' Gaussian filter's muffle."); + ImGui::SetTooltip(_("enable this option to slightly boost high frequencies\nto compensate for the SNES' Gaussian filter's muffle.")); } } } if (sample->depth!=DIV_SAMPLE_DEPTH_8BIT && e->getSampleFormatMask()&(1L<dither; - if (ImGui::Checkbox("8-bit dither",&di)) { + if (ImGui::Checkbox(_("8-bit dither"),&di)) { sample->prepareUndo(true); sample->dither=di; e->renderSamplesP(curSample); @@ -551,7 +551,7 @@ void FurnaceGUI::drawSampleEdit() { MARK_MODIFIED; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("dither the sample when used on a chip that only supports 8-bit samples."); + ImGui::SetTooltip(_("dither the sample when used on a chip that only supports 8-bit samples.")); } } @@ -587,7 +587,7 @@ void FurnaceGUI::drawSampleEdit() { } ImGui::AlignTextToFramePadding(); - ImGui::Text("Note"); + ImGui::Text(_("Note")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::BeginCombo("##SampleNote",noteNames[sampleNoteCoarse+60])) { @@ -692,7 +692,7 @@ void FurnaceGUI::drawSampleEdit() { pushWarningColor(!warnLoopPos.empty() || !warnLoopStart.empty()); ImGui::AlignTextToFramePadding(); - ImGui::Text("Start"); + ImGui::Text(_("Start")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputInt("##LoopStartPosition",&sample->loopStart,1,16)) { MARK_MODIFIED @@ -713,7 +713,7 @@ void FurnaceGUI::drawSampleEdit() { if (ImGui::IsItemHovered() && (!warnLoopPos.empty() || !warnLoopStart.empty() || sample->depth==DIV_SAMPLE_DEPTH_BRR)) { if (ImGui::BeginTooltip()) { if (sample->depth==DIV_SAMPLE_DEPTH_BRR) { - ImGui::Text("changing the loop in a BRR sample may result in glitches!"); + ImGui::Text(_("changing the loop in a BRR sample may result in glitches!")); } if (!warnLoopStart.empty()) { ImGui::Text("%s",warnLoopStart.c_str()); @@ -728,7 +728,7 @@ void FurnaceGUI::drawSampleEdit() { pushWarningColor(!warnLoopPos.empty() || !warnLoopEnd.empty()); ImGui::AlignTextToFramePadding(); - ImGui::Text("End"); + ImGui::Text(_("End")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputInt("##LoopEndPosition",&sample->loopEnd,1,16)) { MARK_MODIFIED @@ -749,7 +749,7 @@ void FurnaceGUI::drawSampleEdit() { if (ImGui::IsItemHovered() && (!warnLoopPos.empty() || !warnLoopEnd.empty() || sample->depth==DIV_SAMPLE_DEPTH_BRR)) { if (ImGui::BeginTooltip()) { if (sample->depth==DIV_SAMPLE_DEPTH_BRR) { - ImGui::Text("changing the loop in a BRR sample may result in glitches!"); + ImGui::Text(_("changing the loop in a BRR sample may result in glitches!")); } if (!warnLoopEnd.empty()) { ImGui::Text("%s",warnLoopEnd.c_str()); @@ -838,13 +838,13 @@ void FurnaceGUI::drawSampleEdit() { } String toolText; if (memName==NULL) { - toolText=fmt::sprintf("%s\n%d bytes free",e->getSystemName(e->song.system[j]),totalFree); + toolText=fmt::sprintf(_("%s\n%d bytes free"),e->getSystemName(e->song.system[j]),totalFree); } else { - toolText=fmt::sprintf("%s (%s)\n%d bytes free",e->getSystemName(e->song.system[j]),memName,totalFree); + toolText=fmt::sprintf(_("%s (%s)\n%d bytes free"),e->getSystemName(e->song.system[j]),memName,totalFree); } if (isMemWarning[i][j] && sample->renderOn[i][j]) { - toolText+="\n\nnot enough memory for this sample!"; + toolText+=_("\n\nnot enough memory for this sample!"); } ImGui::SetTooltip("%s",toolText.c_str()); @@ -868,7 +868,7 @@ void FurnaceGUI::drawSampleEdit() { } popToggleColors(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Edit mode: Select"); + ImGui::SetTooltip(_("Edit mode: Select")); } sameLineMaybe(); pushToggleColors(sampleDragMode); @@ -877,7 +877,7 @@ void FurnaceGUI::drawSampleEdit() { } popToggleColors(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Edit mode: Draw"); + ImGui::SetTooltip(_("Edit mode: Draw")); } ImGui::BeginDisabled(sample->depth!=DIV_SAMPLE_DEPTH_8BIT && sample->depth!=DIV_SAMPLE_DEPTH_16BIT); sameLineMaybe(); @@ -888,22 +888,22 @@ void FurnaceGUI::drawSampleEdit() { resizeSize=sample->samples; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Resize"); + ImGui::SetTooltip(_("Resize")); } if (openSampleResizeOpt) { openSampleResizeOpt=false; ImGui::OpenPopup("SResizeOpt"); } if (ImGui::BeginPopupContextItem("SResizeOpt",ImGuiPopupFlags_MouseButtonLeft)) { - if (ImGui::InputInt("Samples",&resizeSize,1,64)) { + if (ImGui::InputInt(_("Samples"),&resizeSize,1,64)) { if (resizeSize<0) resizeSize=0; if (resizeSize>16777215) resizeSize=16777215; } - if (ImGui::Button("Resize")) { + if (ImGui::Button(_("Resize"))) { sample->prepareUndo(true); e->lockEngine([this,sample]() { if (!sample->resize(resizeSize)) { - showError("couldn't resize! make sure your sample is 8 or 16-bit."); + showError(_("couldn't resize! make sure your sample is 8 or 16-bit.")); } e->renderSamples(curSample); }); @@ -923,14 +923,14 @@ void FurnaceGUI::drawSampleEdit() { resampleTarget=targetRate; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Resample"); + ImGui::SetTooltip(_("Resample")); } if (openSampleResampleOpt) { openSampleResampleOpt=false; ImGui::OpenPopup("SResampleOpt"); } if (ImGui::BeginPopupContextItem("SResampleOpt",ImGuiPopupFlags_MouseButtonLeft)) { - ImGui::Text("Rate"); + ImGui::Text(_("Rate")); if (ImGui::InputDouble("##SRRate",&resampleTarget,1.0,50.0,"%g")) { if (resampleTarget<0) resampleTarget=0; if (resampleTarget>96000) resampleTarget=96000; @@ -948,17 +948,17 @@ void FurnaceGUI::drawSampleEdit() { resampleTarget*=2.0; } double factor=resampleTarget/(double)targetRate; - if (ImGui::InputDouble("Factor",&factor,0.125,0.5,"%g")) { + if (ImGui::InputDouble(_("Factor"),&factor,0.125,0.5,"%g")) { resampleTarget=(double)targetRate*factor; if (resampleTarget<0) resampleTarget=0; if (resampleTarget>96000) resampleTarget=96000; } - ImGui::Combo("Filter",&resampleStrat,resampleStrats,6); - if (ImGui::Button("Resample")) { + ImGui::Combo(_("Filter"),&resampleStrat,resampleStrats,6); + if (ImGui::Button(_("Resample"))) { sample->prepareUndo(true); e->lockEngine([this,sample,targetRate]() { if (!sample->resample(targetRate,resampleTarget,resampleStrat)) { - showError("couldn't resample! make sure your sample is 8 or 16-bit."); + showError(_("couldn't resample! make sure your sample is 8 or 16-bit.")); } e->renderSamples(curSample); }); @@ -979,35 +979,35 @@ void FurnaceGUI::drawSampleEdit() { doUndoSample(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Undo"); + ImGui::SetTooltip(_("Undo")); } sameLineMaybe(); if (ImGui::Button(ICON_FA_REPEAT "##SRedo")) { doRedoSample(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Redo"); + ImGui::SetTooltip(_("Redo")); } ImGui::SameLine(); ImGui::Dummy(ImVec2(4.0*dpiScale,dpiScale)); sameLineMaybe(); ImGui::Button(ICON_FA_VOLUME_UP "##SAmplify"); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Amplify"); + ImGui::SetTooltip(_("Amplify")); } if (openSampleAmplifyOpt) { openSampleAmplifyOpt=false; ImGui::OpenPopup("SAmplifyOpt"); } if (ImGui::BeginPopupContextItem("SAmplifyOpt",ImGuiPopupFlags_MouseButtonLeft)) { - ImGui::Text("Volume"); + ImGui::Text(_("Volume")); if (ImGui::InputFloat("##SRVolume",&lifyVol,10.0,50.0,"%g%%")) { if (amplifyVol<0) amplifyVol=0; if (amplifyVol>10000) amplifyVol=10000; } ImGui::SameLine(); ImGui::Text("(%.1fdB)",20.0*log10(amplifyVol/100.0f)); - if (ImGui::Button("Apply")) { + if (ImGui::Button(_("Apply"))) { sample->prepareUndo(true); e->lockEngine([this,sample]() { SAMPLE_OP_BEGIN; @@ -1043,42 +1043,42 @@ void FurnaceGUI::drawSampleEdit() { doAction(GUI_ACTION_SAMPLE_NORMALIZE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Normalize"); + ImGui::SetTooltip(_("Normalize")); } sameLineMaybe(); if (ImGui::Button(ICON_FUR_SAMPLE_FADEIN "##SFadeIn")) { doAction(GUI_ACTION_SAMPLE_FADE_IN); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Fade in"); + ImGui::SetTooltip(_("Fade in")); } sameLineMaybe(); if (ImGui::Button(ICON_FUR_SAMPLE_FADEOUT "##SFadeOut")) { doAction(GUI_ACTION_SAMPLE_FADE_OUT); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Fade out"); + ImGui::SetTooltip(_("Fade out")); } sameLineMaybe(); ImGui::Button(ICON_FUR_SAMPLE_INSERT_SILENCE "##SInsertSilence"); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Insert silence"); + ImGui::SetTooltip(_("Insert silence")); } if (openSampleSilenceOpt) { openSampleSilenceOpt=false; ImGui::OpenPopup("SSilenceOpt"); } if (ImGui::BeginPopupContextItem("SSilenceOpt",ImGuiPopupFlags_MouseButtonLeft)) { - if (ImGui::InputInt("Samples",&silenceSize,1,64)) { + if (ImGui::InputInt(_("Samples"),&silenceSize,1,64)) { if (silenceSize<0) silenceSize=0; if (silenceSize>16777215) silenceSize=16777215; } - if (ImGui::Button("Go")) { + if (ImGui::Button(_("Go"))) { int pos=(sampleSelStart==-1 || sampleSelStart==sampleSelEnd)?sample->samples:sampleSelStart; sample->prepareUndo(true); e->lockEngine([this,sample,pos]() { if (!sample->insert(pos,silenceSize)) { - showError("couldn't insert! make sure your sample is 8 or 16-bit."); + showError(_("couldn't insert! make sure your sample is 8 or 16-bit.")); } e->renderSamples(curSample); }); @@ -1095,21 +1095,21 @@ void FurnaceGUI::drawSampleEdit() { doAction(GUI_ACTION_SAMPLE_SILENCE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Apply silence"); + ImGui::SetTooltip(_("Apply silence")); } sameLineMaybe(); if (ImGui::Button(ICON_FA_TIMES "##SDelete")) { doAction(GUI_ACTION_SAMPLE_DELETE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Delete"); + ImGui::SetTooltip(_("Delete")); } sameLineMaybe(); if (ImGui::Button(ICON_FA_CROP "##STrim")) { doAction(GUI_ACTION_SAMPLE_TRIM); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Trim"); + ImGui::SetTooltip(_("Trim")); } ImGui::SameLine(); ImGui::Dummy(ImVec2(4.0*dpiScale,dpiScale)); @@ -1118,26 +1118,26 @@ void FurnaceGUI::drawSampleEdit() { doAction(GUI_ACTION_SAMPLE_REVERSE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Reverse"); + ImGui::SetTooltip(_("Reverse")); } sameLineMaybe(); if (ImGui::Button(ICON_FUR_SAMPLE_INVERT "##SInvert")) { doAction(GUI_ACTION_SAMPLE_INVERT); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Invert"); + ImGui::SetTooltip(_("Invert")); } sameLineMaybe(); if (ImGui::Button(ICON_FUR_SAMPLE_SIGN "##SSign")) { doAction(GUI_ACTION_SAMPLE_SIGN); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Signed/unsigned exchange"); + ImGui::SetTooltip(_("Signed/unsigned exchange")); } sameLineMaybe(); ImGui::Button(ICON_FUR_SAMPLE_FILTER "##SFilter"); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Apply filter"); + ImGui::SetTooltip(_("Apply filter")); } if (openSampleFilterOpt) { openSampleFilterOpt=false; @@ -1148,23 +1148,23 @@ void FurnaceGUI::drawSampleEdit() { float bandP=sampleFilterB*100.0f; float highP=sampleFilterH*100.0f; float resP=sampleFilterRes*100.0f; - ImGui::Text("Cutoff:"); - if (ImGui::InputFloat("From",&sampleFilterCutStart,10.0f,1000.0f,"%.0f")) { + ImGui::Text(_("Cutoff:")); + if (ImGui::InputFloat(_("From"),&sampleFilterCutStart,10.0f,1000.0f,"%.0f")) { if (sampleFilterCutStart<0.0) sampleFilterCutStart=0.0; if (sampleFilterCutStart>sample->centerRate*0.5) sampleFilterCutStart=sample->centerRate*0.5; } - if (ImGui::InputFloat("To",&sampleFilterCutEnd,10.0f,1000.0f,"%.0f")) { + if (ImGui::InputFloat(_("To"),&sampleFilterCutEnd,10.0f,1000.0f,"%.0f")) { if (sampleFilterCutEnd<0.0) sampleFilterCutEnd=0.0; if (sampleFilterCutEnd>sample->centerRate*0.5) sampleFilterCutEnd=sample->centerRate*0.5; } ImGui::Separator(); - if (ImGui::SliderFloat("Resonance",&resP,0.0f,99.0f,"%.1f%%")) { + if (ImGui::SliderFloat(_("Resonance"),&resP,0.0f,99.0f,"%.1f%%")) { sampleFilterRes=resP/100.0f; if (sampleFilterRes<0.0f) sampleFilterRes=0.0f; if (sampleFilterRes>0.99f) sampleFilterRes=0.99f; } ImGui::AlignTextToFramePadding(); - ImGui::Text("Power"); + ImGui::Text(_("Power")); ImGui::SameLine(); if (ImGui::RadioButton("1x",sampleFilterPower==1)) { sampleFilterPower=1; @@ -1178,23 +1178,23 @@ void FurnaceGUI::drawSampleEdit() { sampleFilterPower=3; } ImGui::Separator(); - if (ImGui::SliderFloat("Low-pass",&lowP,0.0f,100.0f,"%.1f%%")) { + if (ImGui::SliderFloat(_("Low-pass"),&lowP,0.0f,100.0f,"%.1f%%")) { sampleFilterL=lowP/100.0f; if (sampleFilterL<0.0f) sampleFilterL=0.0f; if (sampleFilterL>1.0f) sampleFilterL=1.0f; } - if (ImGui::SliderFloat("Band-pass",&bandP,0.0f,100.0f,"%.1f%%")) { + if (ImGui::SliderFloat(_("Band-pass"),&bandP,0.0f,100.0f,"%.1f%%")) { sampleFilterB=bandP/100.0f; if (sampleFilterB<0.0f) sampleFilterB=0.0f; if (sampleFilterB>1.0f) sampleFilterB=1.0f; } - if (ImGui::SliderFloat("High-pass",&highP,0.0f,100.0f,"%.1f%%")) { + if (ImGui::SliderFloat(_("High-pass"),&highP,0.0f,100.0f,"%.1f%%")) { sampleFilterH=highP/100.0f; if (sampleFilterH<0.0f) sampleFilterH=0.0f; if (sampleFilterH>1.0f) sampleFilterH=1.0f; } - if (ImGui::Button("Apply")) { + if (ImGui::Button(_("Apply"))) { sample->prepareUndo(true); e->lockEngine([this,sample]() { SAMPLE_OP_BEGIN; @@ -1259,7 +1259,7 @@ void FurnaceGUI::drawSampleEdit() { sameLineMaybe(); ImGui::Button(ICON_FUR_CROSSFADE "##CrossFade"); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Crossfade loop points"); + ImGui::SetTooltip(_("Crossfade loop points")); } if (openSampleCrossFadeOpt) { openSampleCrossFadeOpt=false; @@ -1268,22 +1268,22 @@ void FurnaceGUI::drawSampleEdit() { if (ImGui::BeginPopupContextItem("SCrossFadeOpt",ImGuiPopupFlags_MouseButtonLeft)) { if (sampleCrossFadeLoopLength>sample->loopStart) sampleCrossFadeLoopLength=sample->loopStart; if (sampleCrossFadeLoopLength>(sample->loopEnd-sample->loopStart)) sampleCrossFadeLoopLength=sample->loopEnd-sample->loopStart; - if (ImGui::SliderInt("Number of samples",&sampleCrossFadeLoopLength,0,100000)) { + if (ImGui::SliderInt(_("Number of samples"),&sampleCrossFadeLoopLength,0,100000)) { if (sampleCrossFadeLoopLength<0) sampleCrossFadeLoopLength=0; if (sampleCrossFadeLoopLength>sample->loopStart) sampleCrossFadeLoopLength=sample->loopStart; if (sampleCrossFadeLoopLength>(sample->loopEnd-sample->loopStart)) sampleCrossFadeLoopLength=sample->loopEnd-sample->loopStart; if (sampleCrossFadeLoopLength>100000) sampleCrossFadeLoopLength=100000; } - if (ImGui::SliderInt("Linear <-> Equal power",&sampleCrossFadeLoopLaw,0,100)) { + if (ImGui::SliderInt(_("Linear <-> Equal power"),&sampleCrossFadeLoopLaw,0,100)) { if (sampleCrossFadeLoopLaw<0) sampleCrossFadeLoopLaw=0; if (sampleCrossFadeLoopLaw>100) sampleCrossFadeLoopLaw=100; } - if (ImGui::Button("Apply")) { + if (ImGui::Button(_("Apply"))) { if (sampleCrossFadeLoopLength>sample->loopStart) { - showError("Crossfade: length would go out of bounds. Aborted..."); + showError(_("Crossfade: length would go out of bounds. Aborted...")); ImGui::CloseCurrentPopup(); } else if (sampleCrossFadeLoopLength>(sample->loopEnd-sample->loopStart)) { - showError("Crossfade: length would overflow loopStart. Try a smaller random value."); + showError(_("Crossfade: length would overflow loopStart. Try a smaller random value.")); ImGui::CloseCurrentPopup(); } else { sample->prepareUndo(true); @@ -1329,28 +1329,28 @@ void FurnaceGUI::drawSampleEdit() { e->previewSample(curSample); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Preview sample"); + ImGui::SetTooltip(_("Preview sample")); } sameLineMaybe(); if (ImGui::Button(ICON_FA_STOP "##StopSample")) { e->stopSamplePreview(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Stop sample preview"); + ImGui::SetTooltip(_("Stop sample preview")); } sameLineMaybe(); if (ImGui::Button(ICON_FA_UPLOAD "##MakeIns")) { doAction(GUI_ACTION_SAMPLE_MAKE_INS); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Create instrument from sample"); + ImGui::SetTooltip(_("Create instrument from sample")); } sameLineMaybe(ImGui::CalcTextSize("Zoom").x+150.0f*dpiScale+ImGui::CalcTextSize("100%").x); double zoomPercent=100.0/sampleZoom; bool checkZoomLimit=false; ImGui::AlignTextToFramePadding(); - ImGui::Text("Zoom"); + ImGui::Text(_("Zoom")); ImGui::SameLine(); ImGui::SetNextItemWidth(150.0f*dpiScale); if (ImGui::InputDouble("##SZoom",&zoomPercent,zoomPercent/8.0,20.0,"%g%%")) { @@ -1733,40 +1733,40 @@ void FurnaceGUI::drawSampleEdit() { if (ImGui::BeginPopup("SRightClick",ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::BeginDisabled(sample->depth!=DIV_SAMPLE_DEPTH_8BIT && sample->depth!=DIV_SAMPLE_DEPTH_16BIT); - if (ImGui::MenuItem("cut",BIND_FOR(GUI_ACTION_SAMPLE_CUT))) { + if (ImGui::MenuItem(_("cut"),BIND_FOR(GUI_ACTION_SAMPLE_CUT))) { doAction(GUI_ACTION_SAMPLE_CUT); } ImGui::EndDisabled(); - if (ImGui::MenuItem("copy",BIND_FOR(GUI_ACTION_SAMPLE_COPY))) { + if (ImGui::MenuItem(_("copy"),BIND_FOR(GUI_ACTION_SAMPLE_COPY))) { doAction(GUI_ACTION_SAMPLE_COPY); } ImGui::BeginDisabled(sample->depth!=DIV_SAMPLE_DEPTH_8BIT && sample->depth!=DIV_SAMPLE_DEPTH_16BIT); - if (ImGui::MenuItem("paste",BIND_FOR(GUI_ACTION_SAMPLE_PASTE))) { + if (ImGui::MenuItem(_("paste"),BIND_FOR(GUI_ACTION_SAMPLE_PASTE))) { doAction(GUI_ACTION_SAMPLE_PASTE); } - if (ImGui::MenuItem("paste (replace)",BIND_FOR(GUI_ACTION_SAMPLE_PASTE_REPLACE))) { + if (ImGui::MenuItem(_("paste (replace)"),BIND_FOR(GUI_ACTION_SAMPLE_PASTE_REPLACE))) { doAction(GUI_ACTION_SAMPLE_PASTE_REPLACE); } - if (ImGui::MenuItem("paste (mix)",BIND_FOR(GUI_ACTION_SAMPLE_PASTE_MIX))) { + if (ImGui::MenuItem(_("paste (mix)"),BIND_FOR(GUI_ACTION_SAMPLE_PASTE_MIX))) { doAction(GUI_ACTION_SAMPLE_PASTE_MIX); } ImGui::EndDisabled(); - if (ImGui::MenuItem("select all",BIND_FOR(GUI_ACTION_SAMPLE_SELECT_ALL))) { + if (ImGui::MenuItem(_("select all"),BIND_FOR(GUI_ACTION_SAMPLE_SELECT_ALL))) { doAction(GUI_ACTION_SAMPLE_SELECT_ALL); } ImGui::Separator(); - if (ImGui::MenuItem("set loop to selection",BIND_FOR(GUI_ACTION_SAMPLE_SET_LOOP))) { + if (ImGui::MenuItem(_("set loop to selection"),BIND_FOR(GUI_ACTION_SAMPLE_SET_LOOP))) { doAction(GUI_ACTION_SAMPLE_SET_LOOP); } - if (ImGui::MenuItem("create wavetable from selection",BIND_FOR(GUI_ACTION_SAMPLE_CREATE_WAVE))) { + if (ImGui::MenuItem(_("create wavetable from selection"),BIND_FOR(GUI_ACTION_SAMPLE_CREATE_WAVE))) { doAction(GUI_ACTION_SAMPLE_CREATE_WAVE); } ImGui::EndPopup(); } - String statusBar=sampleDragMode?"Draw":"Select"; + String statusBar=sampleDragMode?_("Draw"):_("Select"); String statusBar2=""; - String statusBar3=fmt::sprintf("%d samples, %d bytes",sample->samples,sample->getCurBufLen()); + String statusBar3=fmt::sprintf(_("%d samples, %d bytes"),sample->samples,sample->getCurBufLen()); bool drawSelection=false; if (!sampleDragMode) { @@ -1781,7 +1781,7 @@ void FurnaceGUI::drawSampleEdit() { if (start==end) { statusBar+=fmt::sprintf(" (%d)",start); } else { - statusBar+=fmt::sprintf(" (%d-%d: %d samples)",start,end,end-start); + statusBar+=fmt::sprintf(_(" (%d-%d: %d samples)"),start,end,end-start); } drawSelection=true; } @@ -1973,7 +1973,7 @@ void FurnaceGUI::drawSampleEdit() { } if (sample->depth!=DIV_SAMPLE_DEPTH_8BIT && sample->depth!=DIV_SAMPLE_DEPTH_16BIT && sampleDragMode) { - statusBar="Non-8/16-bit samples cannot be edited without prior conversion."; + statusBar=_("Non-8/16-bit samples cannot be edited without prior conversion."); } ImGui::SetCursorPosY(ImGui::GetCursorPosY()+ImGui::GetStyle().ScrollbarSize); diff --git a/src/gui/songInfo.cpp b/src/gui/songInfo.cpp index 5f97360ef..efc536713 100644 --- a/src/gui/songInfo.cpp +++ b/src/gui/songInfo.cpp @@ -37,7 +37,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Name"); + ImGui::Text(_("Name")); ImGui::TableNextColumn(); float avail=ImGui::GetContentRegionAvail().x; ImGui::SetNextItemWidth(avail); @@ -47,7 +47,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Author"); + ImGui::Text(_("Author")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(avail); if (ImGui::InputText("##Author",&e->song.author,ImGuiInputTextFlags_UndoRedo)) { @@ -57,7 +57,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Album"); + ImGui::Text(_("Album")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(avail); if (ImGui::InputText("##Category",&e->song.category,ImGuiInputTextFlags_UndoRedo)) { @@ -66,7 +66,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("System"); + ImGui::Text(_("System")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(MAX(16.0f*dpiScale,avail-autoButtonSize-ImGui::GetStyle().ItemSpacing.x)); if (ImGui::InputText("##SystemName",&e->song.systemName,ImGuiInputTextFlags_UndoRedo)) { @@ -76,7 +76,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { } ImGui::SameLine(); pushToggleColors(e->song.autoSystem); - if (ImGui::Button("Auto")) { + if (ImGui::Button(_("Auto"))) { e->song.autoSystem=!e->song.autoSystem; if (e->song.autoSystem) { autoDetectSystem(); @@ -97,7 +97,7 @@ void FurnaceGUI::drawSongInfo(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Tuning (A-4)"); + ImGui::Text(_("Tuning (A-4)")); ImGui::TableNextColumn(); float tune=e->song.tuning; float avail=ImGui::GetContentRegionAvail().x; diff --git a/src/gui/speed.cpp b/src/gui/speed.cpp index df0265741..fccecace5 100644 --- a/src/gui/speed.cpp +++ b/src/gui/speed.cpp @@ -38,14 +38,14 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - if (ImGui::SmallButton(tempoView?"Base Tempo##TempoOrHz":"Tick Rate##TempoOrHz")) { + if (ImGui::SmallButton(tempoView?_("Base Tempo##TempoOrHz"):_("Tick Rate##TempoOrHz"))) { tempoView=!tempoView; } if (ImGui::IsItemHovered()) { if (tempoView) { - ImGui::SetTooltip("click to display tick rate"); + ImGui::SetTooltip(_("click to display tick rate")); } else { - ImGui::SetTooltip("click to display base tempo"); + ImGui::SetTooltip(_("click to display base tempo")); } } ImGui::TableNextColumn(); @@ -77,17 +77,17 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); if (keepGrooveAlive || e->curSubSong->speeds.len>2) { - if (ImGui::SmallButton("Groove")) { + if (ImGui::SmallButton(_("Groove"))) { e->lockEngine([this]() { e->curSubSong->speeds.len=1; }); if (e->isPlaying()) play(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("click for one speed"); + ImGui::SetTooltip(_("click for one speed")); } } else if (e->curSubSong->speeds.len>1) { - if (ImGui::SmallButton("Speeds")) { + if (ImGui::SmallButton(_("Speeds"))) { e->lockEngine([this]() { e->curSubSong->speeds.len=4; e->curSubSong->speeds.val[2]=e->curSubSong->speeds.val[0]; @@ -96,10 +96,10 @@ void FurnaceGUI::drawSpeed(bool asChild) { if (e->isPlaying()) play(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("click for groove pattern"); + ImGui::SetTooltip(_("click for groove pattern")); } } else { - if (ImGui::SmallButton("Speed")) { + if (ImGui::SmallButton(_("Speed"))) { e->lockEngine([this]() { e->curSubSong->speeds.len=2; e->curSubSong->speeds.val[1]=e->curSubSong->speeds.val[0]; @@ -107,7 +107,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { if (e->isPlaying()) play(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("click for two (alternating) speeds"); + ImGui::SetTooltip(_("click for two (alternating) speeds")); } } ImGui::TableNextColumn(); @@ -165,7 +165,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Virtual Tempo"); + ImGui::Text(_("Virtual Tempo")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(halfAvail); if (ImGui::InputScalar("##VTempoN",ImGuiDataType_S16,&e->curSubSong->virtualTempoN,&_ONE,&_TEN)) { MARK_MODIFIED @@ -174,7 +174,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { e->virtualTempoChanged(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Numerator"); + ImGui::SetTooltip(_("Numerator")); } ImGui::SameLine(); ImGui::SetNextItemWidth(halfAvail); @@ -184,13 +184,13 @@ void FurnaceGUI::drawSpeed(bool asChild) { e->virtualTempoChanged(); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Denominator (set to base tempo)"); + ImGui::SetTooltip(_("Denominator (set to base tempo)")); } ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Divider"); + ImGui::Text(_("Divider")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(halfAvail); unsigned char realTB=e->curSubSong->timeBase+1; @@ -205,7 +205,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Highlight"); + ImGui::Text(_("Highlight")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(halfAvail); if (ImGui::InputScalar("##Highlight1",ImGuiDataType_U8,&e->curSubSong->hilightA,&_ONE,&_FOUR)) { @@ -228,7 +228,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Pattern Length"); + ImGui::Text(_("Pattern Length")); ImGui::TableNextColumn(); float avail=ImGui::GetContentRegionAvail().x; ImGui::SetNextItemWidth(avail); @@ -242,7 +242,7 @@ void FurnaceGUI::drawSpeed(bool asChild) { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Song Length"); + ImGui::Text(_("Song Length")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(avail); int ordLen=e->curSubSong->ordersLen; diff --git a/src/gui/spoiler.cpp b/src/gui/spoiler.cpp index 74026a6df..125f79d1b 100644 --- a/src/gui/spoiler.cpp +++ b/src/gui/spoiler.cpp @@ -29,7 +29,7 @@ void FurnaceGUI::drawSpoiler() { if (!spoilerOpen) return; if (ImGui::Begin("Spoiler",&spoilerOpen,globalWinFlags|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_AlwaysAutoResize)) { ImGui::PushFont(bigFont); - ImGui::Text("SPOILER"); + ImGui::Text(_("SPOILER")); ImGui::PopFont(); } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_SPOILER; diff --git a/src/gui/stats.cpp b/src/gui/stats.cpp index b8c719267..d6884f6ea 100644 --- a/src/gui/stats.cpp +++ b/src/gui/stats.cpp @@ -33,7 +33,7 @@ void FurnaceGUI::drawStats() { double maxGot=1000000000.0*(double)e->getAudioDescGot().bufsize/(double)e->getAudioDescGot().rate; String procStr=fmt::sprintf("%.1f%%",100.0*((double)lastProcTime/(double)maxGot)); ImGui::AlignTextToFramePadding(); - ImGui::Text("Audio load"); + ImGui::Text(_("Audio load")); ImGui::SameLine(); ImGui::ProgressBar((double)lastProcTime/maxGot,ImVec2(-FLT_MIN,0),procStr.c_str()); } diff --git a/src/gui/subSongs.cpp b/src/gui/subSongs.cpp index aeb91041a..5fea90907 100644 --- a/src/gui/subSongs.cpp +++ b/src/gui/subSongs.cpp @@ -19,7 +19,7 @@ void FurnaceGUI::drawSubSongs(bool asChild) { char id[1024]; ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing()*3.0f-ImGui::GetStyle().ItemSpacing.x*2.0f); if (e->curSubSong->name.empty()) { - snprintf(id,1023,"%d. ",(int)e->getCurrentSubSong()+1); + snprintf(id,1023,_("%d. "),(int)e->getCurrentSubSong()+1); } else { snprintf(id,1023,"%d. %s",(int)e->getCurrentSubSong()+1,e->curSubSong->name.c_str()); } @@ -52,14 +52,14 @@ void FurnaceGUI::drawSubSongs(bool asChild) { e->moveSubSongUp(i); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Move up"); + ImGui::SetTooltip(_("Move up")); } ImGui::SameLine(); if (ImGui::SmallButton(ICON_FA_ARROW_DOWN "##SubDown")) { e->moveSubSongDown(i); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Move down"); + ImGui::SetTooltip(_("Move down")); } ImGui::PopID(); } @@ -70,7 +70,7 @@ void FurnaceGUI::drawSubSongs(bool asChild) { ImGui::SameLine(); if (ImGui::Button(ICON_FA_PLUS "##SubSongAdd")) { if (!e->addSubSong()) { - showError("too many subsongs!"); + showError(_("too many subsongs!")); } else { e->changeSongP(e->song.subsong.size()-1); updateScroll(0); @@ -85,12 +85,12 @@ void FurnaceGUI::drawSubSongs(bool asChild) { } } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Add"); + ImGui::SetTooltip(_("Add")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_FILES_O "##SubSongDuplicate")) { if (!e->duplicateSubSong(e->getCurrentSubSong())) { - showError("too many subsongs!"); + showError(_("too many subsongs!")); } else { e->changeSongP(e->song.subsong.size()-1); updateScroll(0); @@ -105,24 +105,24 @@ void FurnaceGUI::drawSubSongs(bool asChild) { } } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Duplicate"); + ImGui::SetTooltip(_("Duplicate")); } ImGui::SameLine(); pushDestColor(); if (ImGui::Button(ICON_FA_MINUS "##SubSongDel")) { if (e->song.subsong.size()<=1) { - showError("this is the only subsong!"); + showError(_("this is the only subsong!")); } else { - showWarning("are you sure you want to remove this subsong?",GUI_WARN_SUBSONG_DEL); + showWarning(_("are you sure you want to remove this subsong?"),GUI_WARN_SUBSONG_DEL); } } popDestColor(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Remove"); + ImGui::SetTooltip(_("Remove")); } ImGui::AlignTextToFramePadding(); - ImGui::Text("Name"); + ImGui::Text(_("Name")); ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (ImGui::InputText("##SubSongName",&e->curSubSong->name,ImGuiInputTextFlags_UndoRedo)) { diff --git a/src/gui/sysManager.cpp b/src/gui/sysManager.cpp index 68b3cbda9..c63dd2a06 100644 --- a/src/gui/sysManager.cpp +++ b/src/gui/sysManager.cpp @@ -39,11 +39,11 @@ void FurnaceGUI::drawSysManager() { //ImGui::SetNextWindowSizeConstraints(ImVec2(440.0f*dpiScale,400.0f*dpiScale),ImVec2(canvasW,canvasH)); } if (ImGui::Begin("Chip Manager",&sysManagerOpen,globalWinFlags)) { - ImGui::Checkbox("Preserve channel order",&preserveChanPos); + ImGui::Checkbox(_("Preserve channel order"),&preserveChanPos); ImGui::SameLine(); - ImGui::Checkbox("Clone channel data",&sysDupCloneChannels); + ImGui::Checkbox(_("Clone channel data"),&sysDupCloneChannels); ImGui::SameLine(); - ImGui::Checkbox("Clone at end",&sysDupEnd); + ImGui::Checkbox(_("Clone at end"),&sysDupEnd); if (ImGui::BeginTable("SystemList",3)) { ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed); ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch); @@ -51,9 +51,9 @@ void FurnaceGUI::drawSysManager() { ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); ImGui::TableNextColumn(); - ImGui::Text("Name"); + ImGui::Text(_("Name")); ImGui::TableNextColumn(); - ImGui::Text("Actions"); + ImGui::Text(_("Actions")); for (unsigned char i=0; isong.systemLen; i++) { ImGui::PushID(i); ImGui::TableNextRow(); @@ -66,7 +66,7 @@ void FurnaceGUI::drawSysManager() { ImGui::Button(ICON_FA_ARROWS "##SysDrag"); ImGui::EndDragDropSource(); } else if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("(drag to swap chips)"); + ImGui::SetTooltip(_("(drag to swap chips)")); } if (ImGui::BeginDragDropTarget()) { const ImGuiPayload* dragItem=ImGui::AcceptDragDropPayload("FUR_SYS"); @@ -87,15 +87,15 @@ void FurnaceGUI::drawSysManager() { ImGui::TreePop(); } ImGui::TableNextColumn(); - if (ImGui::Button("Clone##SysDup")) { + if (ImGui::Button(_("Clone##SysDup"))) { if (!e->duplicateSystem(i,sysDupCloneChannels,sysDupEnd)) { - showError("cannot clone chip! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot clone chip! (%s)"),e->getLastError())); } else { MARK_MODIFIED; } } ImGui::SameLine(); - ImGui::Button("Change##SysChange"); + ImGui::Button(_("Change##SysChange")); if (ImGui::BeginPopupContextItem("SysPickerC",ImGuiPopupFlags_MouseButtonLeft)) { DivSystem picked=systemPicker(); if (picked!=DIV_SYSTEM_NULL) { @@ -106,7 +106,7 @@ void FurnaceGUI::drawSysManager() { } updateWindowTitle(); } else { - showError("cannot change chip! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot change chip! (%s)"),e->getLastError())); } ImGui::CloseCurrentPopup(); } @@ -117,11 +117,11 @@ void FurnaceGUI::drawSysManager() { pushDestColor(); if (ImGui::Button(ICON_FA_TIMES "##SysRemove")) { sysToDelete=i; - showWarning("Are you sure you want to remove this chip?",GUI_WARN_SYSTEM_DEL); + showWarning(_("Are you sure you want to remove this chip?"),GUI_WARN_SYSTEM_DEL); } popDestColor(); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Remove"); + ImGui::SetTooltip(_("Remove")); } ImGui::EndDisabled(); ImGui::PopID(); @@ -135,7 +135,7 @@ void FurnaceGUI::drawSysManager() { DivSystem picked=systemPicker(); if (picked!=DIV_SYSTEM_NULL) { if (!e->addSystem(picked)) { - showError("cannot add chip! ("+e->getLastError()+")"); + showError(fmt::sprintf(_("cannot add chip! (%s)"),e->getLastError())); } else { MARK_MODIFIED; } diff --git a/src/gui/sysPicker.cpp b/src/gui/sysPicker.cpp index b374a815f..3eb7f5015 100644 --- a/src/gui/sysPicker.cpp +++ b/src/gui/sysPicker.cpp @@ -32,10 +32,10 @@ DivSystem FurnaceGUI::systemPicker() { } ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (ImGui::InputTextWithHint("##SysSearch","Search...",&sysSearchQuery)) reissueSearch=true; + if (ImGui::InputTextWithHint("##SysSearch",_("Search..."),&sysSearchQuery)) reissueSearch=true; if (ImGui::BeginTabBar("SysCats")) { for (int i=0; chipCategories[i]; i++) { - if (ImGui::BeginTabItem(chipCategoryNames[i])) { + if (ImGui::BeginTabItem(_(chipCategoryNames[i]))) { if (ImGui::IsItemActive()) { reissueSearch=true; } @@ -94,4 +94,4 @@ DivSystem FurnaceGUI::systemPicker() { } ImGui::EndChild(); return ret; -} \ No newline at end of file +} diff --git a/src/gui/tutorial.cpp b/src/gui/tutorial.cpp index 43ed2248d..6c180f29c 100644 --- a/src/gui/tutorial.cpp +++ b/src/gui/tutorial.cpp @@ -482,18 +482,18 @@ struct FurnaceCV { static const char* cvText[]={ // intro - "Play demo songs?\n" + _N("Play demo songs?\n" "- Down: Play current song\n" - "- Up: Play demo songs", + "- Up: Play demo songs"), - "Welcome to Combat Vehicle!\n\n" + _N("Welcome to Combat Vehicle!\n\n" "Controls:\n" "X - Shoot Arrow Key - Move\n" - "Z - Special Esc - Quit", + "Z - Special Esc - Quit"), - "GAME OVER", + _N("GAME OVER"), - "High Score!" + _N("High Score!") }; void FurnaceGUI::syncTutorial() { @@ -653,16 +653,16 @@ void FurnaceGUI::drawTutorial() { if (ImGui::BeginPopupModal("Welcome",NULL,ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoTitleBar)) { ImGui::PushFont(bigFont); ImGui::SetCursorPosX((ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize("Welcome!").x)*0.5); - ImGui::Text("Welcome!"); + ImGui::Text(_("Welcome!")); ImGui::PopFont(); - ImGui::Text("welcome to Furnace, the biggest open-source chiptune tracker!"); + ImGui::Text(_("welcome to Furnace, the biggest open-source chiptune tracker!")); ImGui::Separator(); - ImGui::TextWrapped("here are some tips to get you started:"); + ImGui::TextWrapped(_("here are some tips to get you started:")); - ImGui::TextWrapped( + ImGui::TextWrapped(_( "- add an instrument by clicking on + in Instruments\n" "- click on the pattern view to focus it\n" "- channel columns have the following, in this order: note, instrument, volume and effects\n" @@ -672,19 +672,19 @@ void FurnaceGUI::drawTutorial() { "- hit enter to play/stop the song\n" "- extend the song by adding more orders in the Orders window\n" "- click on the Orders matrix to change the patterns of a channel (left click increases; right click decreases)" - ); + )); - ImGui::TextWrapped( + ImGui::TextWrapped(_( "if you need help, you may:\n" "- read the manual (a file called manual.pdf)\n" "- ask for help in Discussions (https://github.com/tildearrow/furnace/discussions), the Furnace Discord (https://discord.gg/EfrwT2wq7z) or Furnace in Revolt (official: https://rvlt.gg/GRPS6tmc)" - ); + )); ImGui::Separator(); - ImGui::TextWrapped("if you find any issues, be sure to report them! the issue tracker is here: https://github.com/tildearrow/furnace/issues"); + ImGui::TextWrapped(_("if you find any issues, be sure to report them! the issue tracker is here: https://github.com/tildearrow/furnace/issues")); - if (ImGui::Button("OK")) { + if (ImGui::Button(_("OK"))) { tutorial.protoWelcome=true; commitTutorial(); ImGui::CloseCurrentPopup(); @@ -1388,13 +1388,13 @@ void FurnaceCV::render(unsigned char joyIn) { } memset(tile0,0,80*56*sizeof(short)); memset(tile1,0,80*56*sizeof(short)); - startTyping(cvText[3],2,3); + startTyping(_(cvText[3]),2,3); e->setConf("cvHiScore",hiScore); e->saveConf(); curText=4; textWait=90; } else { - startTyping(cvText[2],15,13); + startTyping(_(cvText[2]),15,13); } } } @@ -1423,7 +1423,7 @@ void FurnaceCV::render(unsigned char joyIn) { inGame=true; } if (transWait==40) { - putText(CV_FONTBASE_8x16,true,fmt::sprintf("STAGE %d",stage+2),16,13); + putText(CV_FONTBASE_8x16,true,fmt::sprintf(_("STAGE %d"),stage+2),16,13); } else if (transWait>40) { for (int i=1; i<28; i++) { for (int j=0; j<40; j++) { @@ -1459,7 +1459,7 @@ void FurnaceCV::render(unsigned char joyIn) { inGame=true; } else { memset(tile1,0,80*56*sizeof(short)); - startTyping(cvText[curText++],2,3); + startTyping(_(cvText[curText++]),2,3); textWait=90; } } diff --git a/src/gui/userPresets.cpp b/src/gui/userPresets.cpp index 1bbab1909..fb671d2fa 100644 --- a/src/gui/userPresets.cpp +++ b/src/gui/userPresets.cpp @@ -334,7 +334,7 @@ void FurnaceGUI::drawUserPresets() { std::vector depthStack; if (userCategory==NULL) { - ImGui::Text("Error! User category does not exist!"); + ImGui::Text(_("Error! User category does not exist!")); } else if (ImGui::BeginTable("UserPresets",2,ImGuiTableFlags_BordersInnerV,ImVec2(ImGui::GetContentRegionAvail().x,ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()))) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch,0.25f); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.75f); @@ -343,10 +343,10 @@ void FurnaceGUI::drawUserPresets() { ImGui::TableNextColumn(); if (ImGui::BeginChild("UList",ImVec2(ImGui::GetContentRegionAvail().x,ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()))) { ImGui::AlignTextToFramePadding(); - ImGui::Text("Systems"); + ImGui::Text(_("Systems")); ImGui::SameLine(); if (ImGui::Button(ICON_FA_PLUS "##AddPreset")) { - userCategory->systems.push_back(FurnaceGUISysDef("New Preset",{})); + userCategory->systems.push_back(FurnaceGUISysDef(_("New Preset"),{})); selectedUserPreset.clear(); selectedUserPreset.push_back(userCategory->systems.size()-1); } @@ -358,20 +358,20 @@ void FurnaceGUI::drawUserPresets() { ImGui::TableNextColumn(); if (ImGui::BeginChild("UEdit",ImVec2(ImGui::GetContentRegionAvail().x,ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()))) { if (selectedUserPreset.empty()) { - ImGui::Text("select a preset"); + ImGui::Text(_("select a preset")); } else { FurnaceGUISysDef* preset=selectPreset(userCategory->systems); bool doRemovePreset=false; if (preset!=NULL) { ImGui::AlignTextToFramePadding(); - ImGui::Text("Name"); + ImGui::Text(_("Name")); ImGui::SameLine(); - ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize("Remove").x-ImGui::GetStyle().ItemSpacing.x*2.0-ImGui::GetStyle().ItemInnerSpacing.x*2.0); + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize(_("Remove")).x-ImGui::GetStyle().ItemSpacing.x*2.0-ImGui::GetStyle().ItemInnerSpacing.x*2.0); ImGui::InputText("##PName",&preset->name); ImGui::SameLine(); pushDestColor(); - if (ImGui::Button("Remove##UPresetRemove")) { + if (ImGui::Button(_("Remove##UPresetRemove"))) { doRemovePreset=true; } popDestColor(); @@ -390,7 +390,7 @@ void FurnaceGUI::drawUserPresets() { ImGui::PushID(i); tempID=fmt::sprintf("%s##USystem",getSystemName(chip.sys)); - ImGui::Button(tempID.c_str(),ImVec2(ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize("Invert").x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x*2.0,0)); + ImGui::Button(tempID.c_str(),ImVec2(ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize(_("Invert")).x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x*2.0,0)); if (ImGui::BeginPopupContextItem("SysPickerCU",ImGuiPopupFlags_MouseButtonLeft)) { DivSystem picked=systemPicker(); if (picked!=DIV_SYSTEM_NULL) { @@ -402,7 +402,7 @@ void FurnaceGUI::drawUserPresets() { } ImGui::SameLine(); - if (ImGui::Checkbox("Invert",&doInvert)) { + if (ImGui::Checkbox(_("Invert"),&doInvert)) { chip.vol=-chip.vol; mustBake=true; } @@ -414,7 +414,7 @@ void FurnaceGUI::drawUserPresets() { } popDestColor(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x*2.0); - if (CWSliderFloat("Volume",&vol,0.0f,3.0f)) { + if (CWSliderFloat(_("Volume"),&vol,0.0f,3.0f)) { if (doInvert) { if (vol<0.0001) vol=0.0001; } @@ -424,19 +424,19 @@ void FurnaceGUI::drawUserPresets() { mustBake=true; } rightClickable ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x*2.0); - if (CWSliderFloat("Panning",&chip.pan,-1.0f,1.0f)) { + if (CWSliderFloat(_("Panning"),&chip.pan,-1.0f,1.0f)) { if (chip.pan<-1.0f) chip.pan=-1.0f; if (chip.pan>1.0f) chip.pan=1.0f; mustBake=true; } rightClickable ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x*2.0); - if (CWSliderFloat("Front/Rear",&chip.panFR,-1.0f,1.0f)) { + if (CWSliderFloat(_("Front/Rear"),&chip.panFR,-1.0f,1.0f)) { if (chip.panFR<-1.0f) chip.panFR=-1.0f; if (chip.panFR>1.0f) chip.panFR=1.0f; mustBake=true; } rightClickable - if (ImGui::TreeNode("Configure")) { + if (ImGui::TreeNode(_("Configure"))) { DivConfig sysFlags; sysFlags.loadFromMemory(chip.flags.c_str()); if (drawSysConf(-1,i,chip.sys,sysFlags,false)) { @@ -467,16 +467,16 @@ void FurnaceGUI::drawUserPresets() { ImGui::Separator(); - ImGui::Text("Advanced"); + ImGui::Text(_("Advanced")); if (ImGui::InputTextMultiline("##UExtra",&preset->extra,ImVec2(ImGui::GetContentRegionAvail().x,120.0f*dpiScale),ImGuiInputTextFlags_UndoRedo)) { mustBake=true; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip( + ImGui::SetTooltip(_( "insert additional settings in `option=value` format.\n" "available options:\n" "- tickRate" - ); + )); } if (mustBake) preset->bake(); @@ -506,21 +506,21 @@ void FurnaceGUI::drawUserPresets() { ImGui::EndTable(); } - if (ImGui::Button("Save and Close")) { + if (ImGui::Button(_("Save and Close"))) { userPresetsOpen=false; } ImGui::SameLine(); ImGui::Dummy(ImVec2(8.0f*dpiScale,1.0f)); ImGui::SameLine(); - if (ImGui::Button("Import")) { + if (ImGui::Button(_("Import"))) { openFileDialog(GUI_FILE_IMPORT_USER_PRESETS); } ImGui::SameLine(); - if (ImGui::Button("Import (replace)")) { + if (ImGui::Button(_("Import (replace)"))) { openFileDialog(GUI_FILE_IMPORT_USER_PRESETS_REPLACE); } ImGui::SameLine(); - if (ImGui::Button("Export")) { + if (ImGui::Button(_("Export"))) { openFileDialog(GUI_FILE_EXPORT_USER_PRESETS); } } diff --git a/src/gui/util.cpp b/src/gui/util.cpp index f1b657725..94e33148a 100644 --- a/src/gui/util.cpp +++ b/src/gui/util.cpp @@ -90,23 +90,23 @@ String getKeyName(int key, bool emptyNone) { if (emptyNone) { return ""; } else { - return ""; + return _(""); } } String ret; - if (key&FURKMOD_CTRL) ret+="Ctrl-"; + if (key&FURKMOD_CTRL) ret+=_("Ctrl-"); if (key&FURKMOD_META) ret+=META_MODIFIER_NAME; - if (key&FURKMOD_ALT) ret+="Alt-"; - if (key&FURKMOD_SHIFT) ret+="Shift-"; + if (key&FURKMOD_ALT) ret+=_("Alt-"); + if (key&FURKMOD_SHIFT) ret+=_("Shift-"); if ((key&FURK_MASK)==0xffffff) { ret+="..."; return ret; } const char* name=SDL_GetKeyName(key&FURK_MASK); if (name==NULL) { - ret+="Unknown"; + ret+=_("Unknown"); } else if (name[0]==0) { - ret+="Unknown"; + ret+=_("Unknown"); } else { ret+=name; } diff --git a/src/gui/waveEdit.cpp b/src/gui/waveEdit.cpp index 90f6e3f52..693ab740c 100644 --- a/src/gui/waveEdit.cpp +++ b/src/gui/waveEdit.cpp @@ -27,17 +27,17 @@ #include const char* waveGenBaseShapes[4]={ - "Sine", - "Triangle", - "Saw", - "Pulse" + _N("Sine"), + _N("Triangle"), + _N("Saw"), + _N("Pulse") }; const char* waveInterpolations[4]={ - "None", - "Linear", - "Cosine", - "Cubic" + _N("None"), + _N("Linear"), + _N("Cosine"), + _N("Cubic") }; double sinus(double x) { @@ -189,44 +189,44 @@ WaveFunc waveFuncs[]={ }; const char* fmWaveforms[] = { - "Sine", - "Rect. Sine", - "Abs. Sine", - "Quart. Sine", - "Squish. Sine", - "Abs. Squish. Sine", + _N("Sine"), + _N("Rect. Sine"), + _N("Abs. Sine"), + _N("Quart. Sine"), + _N("Squish. Sine"), + _N("Abs. Squish. Sine"), - "Square", - "rectSquare", + _N("Square"), + _N("rectSquare"), - "Saw", - "Rect. Saw", - "Abs. Saw", + _N("Saw"), + _N("Rect. Saw"), + _N("Abs. Saw"), - "Cubed Saw", - "Rect. Cubed Saw", - "Abs. Cubed Saw", + _N("Cubed Saw"), + _N("Rect. Cubed Saw"), + _N("Abs. Cubed Saw"), - "Cubed Sine", - "Rect. Cubed Sine", - "Abs. Cubed Sine", - "Quart. Cubed Sine", - "Squish. Cubed Sine", - "Squish. Abs. Cub. Sine", + _N("Cubed Sine"), + _N("Rect. Cubed Sine"), + _N("Abs. Cubed Sine"), + _N("Quart. Cubed Sine"), + _N("Squish. Cubed Sine"), + _N("Squish. Abs. Cub. Sine"), - "Triangle", - "Rect. Triangle", - "Abs. Triangle", - "Quart. Triangle", - "Squish. Triangle", - "Abs. Squish. Triangle", + _N("Triangle"), + _N("Rect. Triangle"), + _N("Abs. Triangle"), + _N("Quart. Triangle"), + _N("Squish. Triangle"), + _N("Abs. Squish. Triangle"), - "Cubed Triangle", - "Rect. Cubed Triangle", - "Abs. Cubed Triangle", - "Quart. Cubed Triangle", - "Squish. Cubed Triangle", - "Squish. Abs. Cub. Triangle", + _N("Cubed Triangle"), + _N("Rect. Cubed Triangle"), + _N("Abs. Cubed Triangle"), + _N("Quart. Cubed Triangle"), + _N("Squish. Cubed Triangle"), + _N("Squish. Abs. Cub. Triangle"), }; const size_t fmWaveformsLen=sizeof(fmWaveforms)/sizeof(fmWaveforms[0]); @@ -409,8 +409,8 @@ void FurnaceGUI::drawWaveEdit() { if (ImGui::Begin("Wavetable Editor",&waveEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) { if (curWave<0 || curWave>=(int)e->song.wave.size()) { ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()*2.0f)*0.5f); - CENTER_TEXT("no wavetable selected"); - ImGui::Text("no wavetable selected"); + CENTER_TEXT(_("no wavetable selected")); + ImGui::Text(_("no wavetable selected")); if (ImGui::BeginTable("noAssetCenter",3)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch,0.5f); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed); @@ -421,7 +421,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextColumn(); if (e->song.wave.size()>0) { - if (ImGui::BeginCombo("##WaveSelect","select one...")) { + if (ImGui::BeginCombo("##WaveSelect",_("select one..."))) { if (ImGui::BeginTable("WaveSelCombo",1,ImGuiTableFlags_ScrollY)) { actualWaveList(); ImGui::EndTable(); @@ -429,16 +429,16 @@ void FurnaceGUI::drawWaveEdit() { ImGui::EndCombo(); } ImGui::SameLine(); - ImGui::TextUnformatted("or"); + ImGui::TextUnformatted(_("or")); ImGui::SameLine(); } - if (ImGui::Button("Open")) { + if (ImGui::Button(_("Open"))) { doAction(GUI_ACTION_WAVE_LIST_OPEN); } ImGui::SameLine(); - ImGui::TextUnformatted("or"); + ImGui::TextUnformatted(_("or")); ImGui::SameLine(); - if (ImGui::Button("Create New")) { + if (ImGui::Button(_("Create New"))) { doAction(GUI_ACTION_WAVE_LIST_ADD); } @@ -464,38 +464,38 @@ void FurnaceGUI::drawWaveEdit() { doAction(GUI_ACTION_WAVE_LIST_OPEN_REPLACE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Open"); + ImGui::SetTooltip(_("Open")); } ImGui::SameLine(); if (ImGui::Button(ICON_FA_FLOPPY_O "##WESave")) { doAction(GUI_ACTION_WAVE_LIST_SAVE); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Save"); + ImGui::SetTooltip(_("Save")); } if (ImGui::BeginPopupContextItem("WaveSaveFormats",ImGuiMouseButton_Right)) { - if (ImGui::MenuItem("save as .dmw...")) { + if (ImGui::MenuItem(_("save as .dmw..."))) { doAction(GUI_ACTION_WAVE_LIST_SAVE_DMW); } - if (ImGui::MenuItem("save raw...")) { + if (ImGui::MenuItem(_("save raw..."))) { doAction(GUI_ACTION_WAVE_LIST_SAVE_RAW); } ImGui::EndPopup(); } ImGui::SameLine(); - if (ImGui::RadioButton("Steps",waveEditStyle==0)) { + if (ImGui::RadioButton(_("Steps"),waveEditStyle==0)) { waveEditStyle=0; } ImGui::SameLine(); - if (ImGui::RadioButton("Lines",waveEditStyle==1)) { + if (ImGui::RadioButton(_("Lines"),waveEditStyle==1)) { waveEditStyle=1; } ImGui::TableNextColumn(); - ImGui::Text("Width"); + ImGui::Text(_("Width")); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("use a width of:\n- any on Amiga/N163\n- 32 on Game Boy, PC Engine, SCC, Konami Bubble System, Namco WSG, Virtual Boy and WonderSwan\n- 64 on FDS\n- 128 on X1-010\nany other widths will be scaled during playback."); + ImGui::SetTooltip(_("use a width of:\n- any on Amiga/N163\n- 32 on Game Boy, PC Engine, SCC, Konami Bubble System, Namco WSG, Virtual Boy and WonderSwan\n- 64 on FDS\n- 128 on X1-010\nany other widths will be scaled during playback.")); } ImGui::SameLine(); ImGui::SetNextItemWidth(96.0f*dpiScale); @@ -507,9 +507,9 @@ void FurnaceGUI::drawWaveEdit() { MARK_MODIFIED; } ImGui::SameLine(); - ImGui::Text("Height"); + ImGui::Text(_("Height")); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("use a height of:\n- 16 for Game Boy, WonderSwan, Namco WSG, Konami Bubble System, X1-010 Envelope shape and N163\n- 32 for PC Engine\n- 64 for FDS and Virtual Boy\n- 256 for X1-010 and SCC\nany other heights will be scaled during playback."); + ImGui::SetTooltip(_("use a height of:\n- 16 for Game Boy, WonderSwan, Namco WSG, Konami Bubble System, X1-010 Envelope shape and N163\n- 32 for PC Engine\n- 64 for FDS and Virtual Boy\n- 256 for X1-010 and SCC\nany other heights will be scaled during playback.")); } ImGui::SameLine(); ImGui::SetNextItemWidth(96.0f*dpiScale); @@ -575,13 +575,13 @@ void FurnaceGUI::drawWaveEdit() { waveGenSize.y=contentRegion.y; if (ImGui::BeginChild("WaveGenView",waveGenSize)) { if (ImGui::BeginTabBar("WaveGenOpt")) { - if (ImGui::BeginTabItem("Shapes")) { + if (ImGui::BeginTabItem(_("Shapes"))) { waveGenFM=false; if (waveGenBaseShape<0) waveGenBaseShape=0; if (waveGenBaseShape>3) waveGenBaseShape=3; ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (CWSliderInt("##WGShape",&waveGenBaseShape,0,3,waveGenBaseShapes[waveGenBaseShape])) { + if (CWSliderInt("##WGShape",&waveGenBaseShape,0,3,_(waveGenBaseShapes[waveGenBaseShape]))) { if (waveGenBaseShape<0) waveGenBaseShape=0; if (waveGenBaseShape>3) waveGenBaseShape=3; doGenerateWave(); @@ -594,7 +594,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Duty"); + ImGui::Text(_("Duty")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderFloat("##WGDuty",&waveGenDuty,0.0f,1.0f)) { @@ -604,7 +604,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("Exponent"); + ImGui::Text(_("Exponent")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderInt("##WGExp",&waveGenPower,1,8)) { @@ -614,7 +614,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::AlignTextToFramePadding(); - ImGui::Text("XOR Point"); + ImGui::Text(_("XOR Point")); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (CWSliderFloat("##WGXOR",&waveGenInvertPoint,0.0f,1.0f)) { @@ -624,7 +624,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::EndTable(); } - if (ImGui::TreeNode("Amplitude/Phase")) { + if (ImGui::TreeNode(_("Amplitude/Phase"))) { if (ImGui::BeginTable("WGShapeProps",3)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.6f); @@ -665,7 +665,7 @@ void FurnaceGUI::drawWaveEdit() { } ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("FM")) { + if (ImGui::BeginTabItem(_("FM"))) { waveGenFM=true; if (ImGui::BeginTable("WGFMProps",4)) { @@ -676,13 +676,13 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("Op"); + ImGui::Text(_("Op")); ImGui::TableNextColumn(); - ImGui::Text("Level"); + ImGui::Text(_("Level")); ImGui::TableNextColumn(); - ImGui::Text("Mult"); + ImGui::Text(_("Mult")); ImGui::TableNextColumn(); - ImGui::Text("FB"); + ImGui::Text(_("FB")); for (int i=0; i<4; i++) { ImGui::TableNextRow(); @@ -720,14 +720,14 @@ void FurnaceGUI::drawWaveEdit() { } if (ImGui::BeginTable("WGFMWAVE",2)) { - ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,ImGui::CalcTextSize("Op").x); + ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,ImGui::CalcTextSize(_("Op")).x); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,1); ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); - ImGui::Text("Op"); + ImGui::Text(_("Op")); ImGui::TableNextColumn(); - ImGui::Text("Waveform"); + ImGui::Text(_("Waveform")); for (int i=0; i<4; i++) { ImGui::TableNextRow(); @@ -738,7 +738,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::PushID(i); - if (CWSliderInt("##WGWAVEFORM",&fmWaveform[i],0,fmWaveformsLen-1,fmWaveforms[fmWaveform[i]])) { + if (CWSliderInt("##WGWAVEFORM",&fmWaveform[i],0,fmWaveformsLen-1,_(fmWaveforms[fmWaveform[i]]))) { doGenerateWave(); } ImGui::PopID(); @@ -746,8 +746,8 @@ void FurnaceGUI::drawWaveEdit() { ImGui::EndTable(); } - CENTER_TEXT("Connection Diagram"); - ImGui::Text("Connection Diagram"); + CENTER_TEXT(_("Connection Diagram")); + ImGui::Text(_("Connection Diagram")); if (ImGui::BeginTable("WGFMCon",6)) { ImGui::TableNextRow(); @@ -762,7 +762,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::TableNextColumn(); ImGui::Text("4"); ImGui::TableNextColumn(); - ImGui::Text("Out"); + ImGui::Text(_("Out")); ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -869,7 +869,7 @@ void FurnaceGUI::drawWaveEdit() { ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("WaveTools")) { + if (ImGui::BeginTabItem(_("WaveTools"))) { if (ImGui::BeginTable("WGParamItems",2)) { ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed); @@ -882,18 +882,18 @@ void FurnaceGUI::drawWaveEdit() { if (waveGenScaleX>256) waveGenScaleX=256; } ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - if (CWSliderInt("##WGInterpolation",&waveInterpolation,0,3,waveInterpolations[waveInterpolation])) { + if (CWSliderInt("##WGInterpolation",&waveInterpolation,0,3,_(waveInterpolations[waveInterpolation]))) { if (waveInterpolation<0) waveInterpolation=0; if (waveInterpolation>3) waveInterpolation=3; } ImGui::TableNextColumn(); - if (ImGui::Button("Scale X")) { + if (ImGui::Button(_("Scale X"))) { if (waveGenScaleX>0 && wave->len!=waveGenScaleX) e->lockEngine([this,wave]() { int origData[256]; // Copy original wave to temp buffer // If longer than 256 samples, return if (wave->len>256) { - showError("wavetable longer than 256 samples!"); + showError(_("wavetable longer than 256 samples!")); return; } memcpy(origData,wave->data,wave->len*sizeof(int)); @@ -957,7 +957,7 @@ void FurnaceGUI::drawWaveEdit() { if (waveGenScaleY>256) waveGenScaleY=256; } ImGui::TableNextColumn(); - if (ImGui::Button("Scale Y")) { + if (ImGui::Button(_("Scale Y"))) { if (waveGenScaleY>0 && wave->max!=(waveGenScaleY-1)) e->lockEngine([this,wave]() { for (int i=0; ilen; i++) { wave->data[i]=(wave->data[i]*(waveGenScaleY))/(wave->max+1); @@ -975,7 +975,7 @@ void FurnaceGUI::drawWaveEdit() { if (waveGenOffsetX>wave->len-1) waveGenOffsetX=wave->len-1; } ImGui::TableNextColumn(); - if (ImGui::Button("Offset X")) { + if (ImGui::Button(_("Offset X"))) { if (waveGenOffsetX!=0 && wave->len>0) e->lockEngine([this,wave]() { int origData[256]; memcpy(origData,wave->data,wave->len*sizeof(int)); @@ -997,7 +997,7 @@ void FurnaceGUI::drawWaveEdit() { if (waveGenOffsetY>wave->max) waveGenOffsetY=wave->max; } ImGui::TableNextColumn(); - if (ImGui::Button("Offset Y")) { + if (ImGui::Button(_("Offset Y"))) { if (waveGenOffsetY!=0) e->lockEngine([this,wave]() { for (int i=0; ilen; i++) { wave->data[i]=CLAMP(wave->data[i]+waveGenOffsetY,0,wave->max); @@ -1014,7 +1014,7 @@ void FurnaceGUI::drawWaveEdit() { if (waveGenSmooth<1) waveGenSmooth=1; } ImGui::TableNextColumn(); - if (ImGui::Button("Smooth")) { + if (ImGui::Button(_("Smooth"))) { if (waveGenSmooth>0) e->lockEngine([this,wave]() { int origData[256]; memcpy(origData,wave->data,wave->len*sizeof(int)); @@ -1042,7 +1042,7 @@ void FurnaceGUI::drawWaveEdit() { if (waveGenAmplify>100.0f) waveGenAmplify=100.0f; } ImGui::TableNextColumn(); - if (ImGui::Button("Amplify")) { + if (ImGui::Button(_("Amplify"))) { if (waveGenAmplify!=1.0f) e->lockEngine([this,wave]() { for (int i=0; ilen; i++) { wave->data[i]=CLAMP(round((float)(wave->data[i]-(int)( /* Clang can you stop complaining */ (int)(wave->max+1)/(int)2))*waveGenAmplify),(int)(-((wave->max+1)/2)),(int)(wave->max/2))+(int)((wave->max+1)/2); @@ -1060,7 +1060,7 @@ void FurnaceGUI::drawWaveEdit() { buttonSizeHalf.x-=ImGui::GetStyle().ItemSpacing.x; buttonSizeHalf.x*=0.5; - if (ImGui::Button("Normalize",buttonSize)) { + if (ImGui::Button(_("Normalize"),buttonSize)) { e->lockEngine([this,wave]() { // find lowest point int lowest=wave->max; @@ -1093,7 +1093,7 @@ void FurnaceGUI::drawWaveEdit() { MARK_MODIFIED; }); } - if (ImGui::Button("Invert",buttonSizeHalf)) { + if (ImGui::Button(_("Invert"),buttonSizeHalf)) { e->lockEngine([this,wave]() { for (int i=0; ilen; i++) { wave->data[i]=wave->max-wave->data[i]; @@ -1102,7 +1102,7 @@ void FurnaceGUI::drawWaveEdit() { }); } ImGui::SameLine(); - if (ImGui::Button("Reverse",buttonSizeHalf)) { + if (ImGui::Button(_("Reverse"),buttonSizeHalf)) { e->lockEngine([this,wave]() { int origData[256]; memcpy(origData,wave->data,wave->len*sizeof(int)); @@ -1114,7 +1114,7 @@ void FurnaceGUI::drawWaveEdit() { }); } - if (ImGui::Button("Half",buttonSizeHalf)) { + if (ImGui::Button(_("Half"),buttonSizeHalf)) { int origData[256]; memcpy(origData,wave->data,wave->len*sizeof(int)); @@ -1124,7 +1124,7 @@ void FurnaceGUI::drawWaveEdit() { MARK_MODIFIED; } ImGui::SameLine(); - if (ImGui::Button("Double",buttonSizeHalf)) { + if (ImGui::Button(_("Double"),buttonSizeHalf)) { int origData[256]; memcpy(origData,wave->data,wave->len*sizeof(int)); @@ -1134,7 +1134,7 @@ void FurnaceGUI::drawWaveEdit() { MARK_MODIFIED; } - if (ImGui::Button("Convert Signed/Unsigned",buttonSize)) { + if (ImGui::Button(_("Convert Signed/Unsigned"),buttonSize)) { if (wave->max>0) e->lockEngine([this,wave]() { for (int i=0; ilen; i++) { if (wave->data[i]>(wave->max/2)) { @@ -1146,7 +1146,7 @@ void FurnaceGUI::drawWaveEdit() { MARK_MODIFIED; }); } - if (ImGui::Button("Randomize",buttonSize)) { + if (ImGui::Button(_("Randomize"),buttonSize)) { if (wave->max>0) e->lockEngine([this,wave]() { for (int i=0; ilen; i++) { wave->data[i]=rand()%(wave->max+1); @@ -1164,11 +1164,11 @@ void FurnaceGUI::drawWaveEdit() { ImGui::EndTable(); } - if (ImGui::RadioButton("Dec",!waveHex)) { + if (ImGui::RadioButton(_("Dec"),!waveHex)) { waveHex=false; } ImGui::SameLine(); - if (ImGui::RadioButton("Hex",waveHex)) { + if (ImGui::RadioButton(_("Hex"),waveHex)) { waveHex=true; } ImGui::SameLine(); @@ -1176,7 +1176,7 @@ void FurnaceGUI::drawWaveEdit() { waveSigned=!waveSigned; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Signed/Unsigned"); + ImGui::SetTooltip(_("Signed/Unsigned")); } ImGui::SameLine(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); // wavetable text input size found here diff --git a/src/gui/xyOsc.cpp b/src/gui/xyOsc.cpp index 5a727127d..9a26bbd7b 100644 --- a/src/gui/xyOsc.cpp +++ b/src/gui/xyOsc.cpp @@ -42,21 +42,21 @@ void FurnaceGUI::drawXYOsc() { int xyOscXChannelP1 = xyOscXChannel+1; int xyOscYChannelP1 = xyOscYChannel+1; - ImGui::Text("X Channel"); + ImGui::Text(_("X Channel")); ImGui::SameLine(); if (ImGui::DragInt("##XChannel",&xyOscXChannelP1,1.0f,1,DIV_MAX_OUTPUTS)) { xyOscXChannel=MIN(MAX(xyOscXChannelP1,1),DIV_MAX_OUTPUTS)-1; } rightClickable ImGui::SameLine(); - ImGui::Checkbox("Invert##X",&xyOscXInvert); - ImGui::Text("Y Channel"); + ImGui::Checkbox(_("Invert##X"),&xyOscXInvert); + ImGui::Text(_("Y Channel")); ImGui::SameLine(); if (ImGui::DragInt("##YChannel",&xyOscYChannelP1,1.0f,1,DIV_MAX_OUTPUTS)) { xyOscXChannel=MIN(MAX(xyOscYChannelP1,1),DIV_MAX_OUTPUTS)-1; } rightClickable ImGui::SameLine(); - ImGui::Checkbox("Invert##Y",&xyOscYInvert); - if (ImGui::SliderFloat("Zoom",&xyOscZoom,0.5f,4.0f,"%.2fx")) { + ImGui::Checkbox(_("Invert##Y"),&xyOscYInvert); + if (ImGui::SliderFloat(_("Zoom"),&xyOscZoom,0.5f,4.0f,"%.2fx")) { xyOscZoom=MAX(xyOscZoom,0.0f); } rightClickable if (ImGui::IsItemHovered()) { @@ -65,19 +65,19 @@ void FurnaceGUI::drawXYOsc() { if (ImGui::IsItemClicked(ImGuiMouseButton_Middle)) { xyOscZoom=1.0f; } - if (ImGui::SliderInt("Samples",&xyOscSamples,2,32768)) { + if (ImGui::SliderInt(_("Samples"),&xyOscSamples,2,32768)) { xyOscSamples=MIN(MAX(xyOscSamples,2),32768); } rightClickable - if (ImGui::SliderFloat("Decay Time (ms)",&xyOscDecayTime,1.0f,1000.0f,"%.1f",ImGuiSliderFlags_Logarithmic)) { + if (ImGui::SliderFloat(_("Decay Time (ms)"),&xyOscDecayTime,1.0f,1000.0f,"%.1f",ImGuiSliderFlags_Logarithmic)) { xyOscDecayTime=MAX(xyOscDecayTime,0.0f); } rightClickable - if (ImGui::SliderFloat("Intensity",&xyOscIntensity,0.0f,5.0f,"%.2f")) { + if (ImGui::SliderFloat(_("Intensity"),&xyOscIntensity,0.0f,5.0f,"%.2f")) { xyOscIntensity=MAX(xyOscIntensity,0.0f); } rightClickable - if (ImGui::SliderFloat("Line Thickness",&xyOscThickness,0.0f,10.0f,"%.2f")) { + if (ImGui::SliderFloat(_("Line Thickness"),&xyOscThickness,0.0f,10.0f,"%.2f")) { xyOscThickness=MAX(xyOscThickness,0.0f); } rightClickable - if (ImGui::Button("OK")) { + if (ImGui::Button(_("OK"))) { xyOscOptions=false; } } else { @@ -210,13 +210,13 @@ void FurnaceGUI::drawXYOsc() { float valX=20.0f*log10f(fabsf((ImGui::GetMousePos().x-inSqrCenter.x)/scaleX)); float valY=20.0f*log10f(fabsf((ImGui::GetMousePos().y-inSqrCenter.y)/scaleY)); if (valX<=-INFINITY && valY<=-INFINITY) { - ImGui::SetTooltip("(-Infinity)dB,(-Infinity)dB"); + ImGui::SetTooltip(_("(-Infinity)dB,(-Infinity)dB")); } else if (valX<=-INFINITY) { - ImGui::SetTooltip("(-Infinity)dB,%.1fdB",valY); + ImGui::SetTooltip(_("(-Infinity)dB,%.1fdB"),valY); } else if (valY<=-INFINITY) { - ImGui::SetTooltip("%.1fdB,(-Infinity)dB",valY); + ImGui::SetTooltip(_("%.1fdB,(-Infinity)dB"),valY); } else { - ImGui::SetTooltip("%.1fdB,%.1fdB",valX,valY); + ImGui::SetTooltip(_("%.1fdB,%.1fdB"),valX,valY); } } if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) { diff --git a/src/ta-utils.h b/src/ta-utils.h index 7d6f9a9b3..3a9bd7f93 100644 --- a/src/ta-utils.h +++ b/src/ta-utils.h @@ -47,8 +47,11 @@ typedef std::string String; #define _(_str) gettext(_str) #else #define _(_str) _str +#define ngettext(_strS,_strP,_cond) (((_cond)==1)?(_strS):(_strP)) #endif +#define _N(_str) _str + typedef std::wstring WString; enum TAParamResult {