lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: string not clear for a translator


From: Lukas-Fabian Moser
Subject: Re: string not clear for a translator
Date: Tue, 8 Nov 2022 00:24:05 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2

Hi Federico,

Am 07.11.22 um 23:51 schrieb Federico Bruni:
I'm updating the italian language and I can't understand what this dash is about here:

$ git grep -n -A4 -B4 "Re-defining dash" lily/
lily/parser.yy-3316-// ----------------------------------------------------------------- lily/parser.yy-3317-// obsoletion handling, may be removed at some point (e.g. for 2.26)
lily/parser.yy-3318- } else if (scm_is_string (s)) {
lily/parser.yy-3319- string s_string = ly_scm2string (s);
lily/parser.yy:3320: @$.warning (_f ("Re-defining dash%s using a string is deprecated. \ lily/parser.yy-3321-Please try replacing \"%s\" by \\%s or run convert-ly.",
lily/parser.yy-3322- ly_scm2string ($1), s_string, s_string));
lily/parser.yy-3323- Music *a = MY_MAKE_MUSIC ("ArticulationEvent", @$);
lily/parser.yy-3324- set_property (a, "articulation-type", scm_string_to_symbol (s));

BTW, no space between dash and %s?

That was me :-).

commit 61cd3bc1f3254b430bf04acd587c4082253602d4
Author: Lukas-Fabian Moser <lfm@gmx.de>
Date:   Mon Dec 27 01:25:43 2021 +0100

    Make articulation-type a symbol? instead of a string?

    This was an ancient TODO (see note from 2003 in scm/define-music-properties.scm).
    It does not seem to make much sense to rely on string comparison for
    distinguishing a well-defined set of articulation types. Also, the
    articulation-type is used as an alist index, for which symbols are much more
    natural than strings.

    This also makes it easier to (for instance) let users enter lists of articulation
    types to use in custom code, since nowadays the parser turns

        types = tenuto, fermata, espressivo

    into a symbol-list?.

    This commit also starts an obsoletion cycle for the outdated articulation
    definition style: As a legacy feature, it used to be possible to do

        dashDash = "tenuto"

    instead of the modern variants

        dashDash = \tenuto
        dashDash = #(make-articulation 'tenuto)

    which are more in line with current LilyPond syntax principles.

    The legacy input still works but emits an obsoletion warning that may be
    removed later (e.g. for 2.26).

    Lastly, the code handling scripts is made more robust: Choosing non-existing     scripts now tends to emit warnings/programming errors instead of terminating.
In plain English: If you want to re-define the meaning of commands like "--" (tenuto), "-." (staccato) etc., you formerly could set them to a string, which is not at all in line with current LilyPond syntax principles. This is now officially deprecated (but still supported).

So, dash%s is displayed as "dashHat", "dashDot", "dashDash" etc.

Lukas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]