Smcp feature with for capital-only localisation (Ef-cy.loclBGR)

Hello. I have a question concerning feature order, naming and how to properly write localisation feature code.

For example, I have a Cyrillic font with Ef-cy.loclBGR. As you might well be aware, there is no Bulgarian alternate for the lowercase ef-cy. This means that my current automatically generated smcp code only has a line sub ef-cy by ef-cy.sc, but what if my text is set to Bulgarian? I would still like my ef-cy.loclBGR.sc to be displayed when setting small caps.

Do I need to add a language and script tag with

script cyrl;
language BGR;
sub ef-cy by ef-cy.loclBGR.sc;

?

Is there a more efficient/correct way of accomplishing this? Thanks!

Why do you think that is inefficient?

I was just wondering whether this is the correct solution, since it was the first one I came up with (which is often a bad sign). But if this is correct, then that’s great to know.

I assume I need to put this before the sub ef-cy by ef-cy.loclBGR.sc line, correct? Would the very beginning of the smcp feature make sense?

Is this something that could be done automatically by Glyphs?

You mean sub ef-cy by ef-cy.sc? Yes, the local version needs to be before that. Or write the locl version like this: sub ef-cy.sc by ef-cy.sc.loclBGR. That would beed to be below the regular small caps substitutions.
Or, add another locl feature below smcp and put

script cyrl;
language BGR;
sub ef-cy.sc by ef-cy.sc.loclBGR;

in it. (I would do ef-cy.sc.loclBGR, not ef-cy.loclBGR.sc)

Great, thanks for the help!

One note.

If I use sc.loclBGR for all my localised small caps, then the loclBGR glyphs are not automatically added to the c2sc feature by Glyphs. Is there something I’m missing? .loclBGR.sc seems to work much better: I only need to add a single sub line to my extra locl feature, like you described.

Good point.