def body(): from help.html import p text = [] text.append(p( _("Import a Music XML file using the command line tool musicxml2ly " "from the LilyPond package."), _("In this dialog you can set some parameters for the musicxml2ly import. " "Currently there are four parameters that can be set by the checkboxes:"))) text.append('<dl>\n') for para, descr in ( ('--nd --no-articulation-directions', _('do not convert directions (^, _ or -) for articulations, dynamics, etc.')), ('--nrp --no-rest-positions', _('do not convert exact vertical positions of rests')), ('--npl --no-page-layout', _('do not convert the exact page layout and breaks')), ('--no-beaming', _('do not convert beaming information, use LilyPonds automatic beaming instead.')), ): text.append('<dt><code>{0}</code></dt>'.format(para)) text.append('<dd>{0}</dd>\n'.format(descr)) text.append('</dl>') text.append(p(_("The following replacements will be made in the command line:"))) text.append('<dl>\n') for name, msg in ( ('$musicxml2ly', _("The musicxml2ly executable")), ('$filename', _("The filename of the document")), ): text.append('<dt><code>{0}</code></dt>'.format(name)) text.append('<dd>{0}</dd>\n'.format(msg)) text.append('</dl>') return ''.join(text)
def body(): return p( _( "In the Preferences Dialog (under {menu}) you can configure many " "aspects of Frescobaldi and LilyPond." ).format(menu=help.menu(_("Edit"), _("Preferences"))) )
def body(): return p( _( "Under <em>{general_preferences}</em>, you can choose in " "which language Frescobaldi's user interface is translated, " "which user interface style you want to use, " "and whether you want to use the built-in Tango iconset or to use " "the system-wide configured icon set." ).format(general_preferences=_("General Preferences")), _( "Language and style take effect immediately, but the new iconset " "is visible after Frescobaldi has been restarted." ), _( "Under <em>{startup}</em> you can configure which session " "to load if Frescobaldi is started without a filename. " "You can choose whether to start with one empty document, with the " "last used session, or with a specific session. " "See also {link}." ).format( startup=_("Session to load if Frescobaldi is started without arguments"), link=help.contents.sessions.link(), ), _( "Under <em>{saving}</em>, you can choose what to do when " "a document is saved, such as remembering the cursor position and " "marked lines, or leaving a backup copy of the document (with a ~ " "appended). " "Also, you can specify a default folder in which you keep your " "LilyPond documents." ).format(saving=_("When saving documents")), )
def body(): return p( _("In this page you can enter commands to open different file types. " "<code>$f</code> is replaced with the filename, " "<code>$u</code> with the URL. " "Leave a field empty to use the operating system default " "application."), _("For the e-mail setting, the command should accept a " "<code>mailto:</code> url. " "For the command prompt, the command should open a console window. " "A <code>$f</code> value is replaced with the directory of the " "current document."), '<b>{0}</b>'.format(_("Printing Music")), # next paragraph should be the same as the tooltip in helpers.py _("The printing command is used to print a PostScript or PDF file. " "On Linux you don't need this, but on Windows and Mac OS X you can " "provide a command to avoid that PDF documents are being printed " "using raster images, which is less optimal.\n" "<code>$pdf</code> gets replaced with the PDF filename, or alternatively, " "<code>$ps</code> is replaced with the PostScript filename. " "<code>$printer</code> is replaced with the printer's name to use."), _("Uncheck the \"Use Frescobaldi's print dialog\" option when the " "printing command opens a print dialog itself, in which you can " "select e.g. the page range to print and the printer to use. " "If you don't use Frescobaldi's print dialog, you don't need to put " "the <code>$printer</code> variable in your command line."), _("If Frescobaldi must fall back to printing using raster images, " "you can specify the number of dots per inch here."), )
def body(): return p( _("The document outline view is created by looking for certain " "expressions in the document text."), _("You can specify what to search for by entering a list of " "regular expressions.") + " " + _( "In those expressions, <code>^</code> matches at the beginning of " "every line, and <code>$</code> matches at the end of a line." ), _("Normally when an expressions matches text, the whole match is " "displayed as an item in the outline.") + " " + _("You can also use named groups, with the {code} named group syntax.").format( code="<code>(?P<name></code>..." ) + " " + _("You can use the name {text} or {title}.").format(text='"text"', title='"title"') + " " + _( "In that case, only the named part of a match is displayed. " "If the {title} name is used, it is displayed in a bold font." ).format(title='"title"'), _("For more information about regular expressions, see {link}.").format( link=help.contents.search_replace.link() ), )
def body(): return p( _("Here you can configure Frescobaldi's MIDI settings."), " ".join( ( _("You can specify the MIDI port name to play to."), _( "If there are no port names visible in the drop-down box, " "it may be necessary to connect a hardware MIDI synthesizer to " "your computer, or to start a software synthesizer program such " "as TiMidity or Fluidsynth." ), _("On Linux, the synthesizer should be available as an ALSA MIDI " "device."), ) ), _( "If you have a device with multiple ports, you can specify the " "first letters of the name, to have Frescobaldi automatically pick " "the first available one." ), _( "And finally, when using a software synthesizer it is recommended " "to enable the option <em>{close_unused}</em>." ).format(close_unused=_("Close unused MIDI output")), ) + _( # keep this text in sync with the whatsthis in midi.py "<p>If checked, Frescobaldi will close MIDI output ports that are not " "used for one minute.</p>\n" "<p>This could free up system resources that a software MIDI synthesizer " "might be using, thus saving battery power.</p>\n" "<p>A side effect is that if you pause a MIDI file for a long time " "the instruments are reset to the default piano (instrument 0). " "In that case, playing the file from the beginning sets up the " "instruments again.</p>\n" )
def body(): return p( _("Here, directories can be added that contain " "<code>hyph_*.dic</code> files, where the <code>*</code> " "stands for different language codes."), _("These hyphenation dictionaries are used by Frescobaldi to break " "lyrics text into syllabes."), )
def body(): return p( _("In this page you can enter commands to open different file types. " "<code>$f</code> is replaced with the filename, " "<code>$u</code> with the URL. " "Leave a field empty to use the operating system default " "application."), _("For the e-mail setting, the command should accept a " "<code>mailto:</code> url. " "For the command prompt, the command should open a console window. " "A <code>$f</code> value is replaced with the directory of the " "current document."), )
def body(): return p( _("Here you can configure how LilyPond is run when you engrave your " "document."), _("If you have multiple versions of LilyPond installed you can " "specify them here, and configure Frescobaldi to automatically " "choose the right one, based on the version number that is set in " "the document ({more_info}).").format( more_info=preferences_lilypond_autoversion.link(_("more info"))), _("You can also configure how LilyPond is run. See the tooltips of " "the settings for more information."), _("Finally, you can specify a list of paths where the LilyPond " "<code>\include</code> command looks for files."), )
def body(): link = '<a href="help:{0}">{1}</a>'.format return p( _("Here you can add keyboard shortcuts to all commands available. " "Also the {snippets} or {quickinsert} buttons that have keyboard " "shortcuts are listed here.").format( snippets=link("snippet_help", _("Snippets")), quickinsert=link("quickinsert_help", _("Quick Insert"))), _("To change a keyboard shortcut, highlight an action in the list " "and click the Edit button, or double-click an action. " "In the dialog that appears, you can enter up to four shortcuts " "for the action by clicking the button and typing the shortcut. "), _("You can define a new scheme by using the New button."), )
def body(): from help.html import p return p( _("To keep a certain group of snippets manageable as a snippet " "library, you can of course prefix the snippet titles with some sort " "of special name. But a smarter way is to use a snippet variable."), _("It is suggested to use the \"{set}\" variable, and set it to the " "name of the library you want the snippet to belong to.").format( set='<code>set</code>'), _("Then in the snippet manager, you can easily select all the snippets " "belonging to the library by entering <code>:{set} name</code> in " "the snippet search bar, where \"name\" is the name you want to use. " "And then e.g. export the snippets to an XML " "file for sharing the snippets with others.").format(set="set"), )
def body(): return p( _("Here you can set the editor font (a monospace font is " "recommended) and all colors."), _("The first item lets you set the colors for the text editor " "backgroud, foreground, selection background, the current line, " "line markings, the paper color in the Music View, etcetera."), _("The second item lets you set color and other attributes of the " "general highlighting styles, e.g. keyword, variable, value, " "comment, etcetera."), _("The other items contain the types of text the syntax highlighter " "recognizes for every particular document type Frescobaldi " "supports. Some of these types inherit a general style. " "It is possible to set the attributes bold, italic, underline and " "the foreground, background and underline color."), _("You can define a new scheme by using the New button."), )
def body(): return p( _("Here you can configure how LilyPond is run when you engrave your " "document."), _("If you have multiple versions of LilyPond installed you can " "specify them here, and configure Frescobaldi to automatically " "choose the right one, based on the version number that is set in " "the document ({more_info}).").format( more_info=preferences_lilypond_autoversion.link(_("more info"))), _("If the LilyPond executable is not in your system's PATH you can " "specify the full path here so Frescobaldi can run it. " "For the helper applications like convert-ly and lilypond-book " "you don't need to specify the full path if they are in the same " "directory as the LilyPond executable itself."), _("You can also configure how LilyPond is run. See the tooltips of " "the settings for more information."), _("Finally, you can specify a list of paths where the LilyPond " "<code>\include</code> command looks for files."), )
def body(): return p(_("Here you can change the settings for various tools."))
def body(): return p( _("Under <em>{preview_preferences}</em>, you can configure " "the appearance of several aspects of the Preview Mode.").format( preview_preferences=_("Preview Preferences")))