Can i add a new language alphabet table here?

Hello~
Can i add a new language alphabet table for myself ?
because i want to reordering the GB2312 ,in a new order。

how?

WechatIMG1

thx

https://glyphsapp.com/tutorials/custom-sidebar-entries-in-font-view

1 Like

thank you!~

follow the tutorial,i get it ~ thx
but i have a new question,

can i reorder the sequence of Unicodes i add ?

For example, the PLIST code adds from top to bottom
(like this:)

but i want the sequence like this:

Can this be achieved?

thank you

The glyphs in the font are sorted by various criteria. Ideographs are sorted alphabetically by name.
There are two ways to have a custom ordering. This is explained here: https://glyphsapp.com/tutorials/alter-the-glyph-order-in-font-view

1 Like

thank you thank you,very thank you

@GeorgSeifert @mekkablue
Can I move my custom sidebar “Sundanese” to Southeast Asia Group?

53

1 Like

+1 for moving custom languages into existing categories :slight_smile:

1 Like

You can. Add an otherwise empty “Southeast Asia” group that only contains Sundanese.

1 Like

Or better yet, create a git repository and let us know. So we can add it by default.

Can’t figure this out. The tutorial has ‘categories’ and ‘subcategories’ in the plist but these don’t appear in the sidebar screenshot, so I’m not sure what a category is, is ‘Southeast Asia’ the category here? Is that what you mean by ‘group’?

This doesn’t seem to work:

{
categories = (
	{
		name = "Southeast Asia";
	},
);	

languages = (
    {
        name = "Pallava";
        icon = PallavaTemplate;
        script = pallava;
        subGroup = (
            {
                name = "Consonants";
                coverage = (
					ka-pallava,
					kha-pallava,
					ga-pallava,
					gha-pallava,

Also, what is ‘predicate’?

Try this:

{
    name = "Southeast Asia";
    subGroup = (
        {
            name = "Pallava";
            script = pallava;
            subGroup = (
                {
                     name = Letters;
                     coverage = (...);
                }
            );
        }
    );
}

The predicate is a logical condition (in addition to a list of glyph names), to also catch unforeseen glyph names.

Update:

  1. Be very careful with indents. Do not mix tabs and spaces for indentation.
  2. Make sure every named item (the ones with equals signs) is concluded with a semicolon, e.g., subGroup = (...); or name = "...";
  3. Make sure any group of named and semicoloned items (a ‘dictionary’) is surrounded by curly quotes
  4. Items inside a list () must be comma-separated and not have a name (otherwise it would be a dictionary). The last item can have a comma afterwards, but does not have to have one.

Thanks Rainer! (This took us an hour and a half to get right.)

If you write that file in TextMate, it will flag wrong parts with a red background. And it has a validation (Ctrl+Shift+V) for each file type.

Yes, we used TextMate, but it didn’t pick up on the indentations, I think [and the extra curly brackets after subGroup = ( ]

BTW @GeorgSeifert are you using TextMate on Catalina 10.15.4? Mine’s not working properly.

I don’t have problems. I opted in for the beta update channel. Maybe the issues are fixed already in the beta?

@Bendy

Can I see your full “Groups.plist”? I’m a little confused. Thank you! :slight_smile:

Oh dear, Glyphs forum won’t let me attach a .plist file to a DM for you.

You can zip it first. Or paste the contents between triple backticks (```) directly in the message.

1 Like

Here’s what I did for Buginese:

{
    languages = (
        {
            name = "Southeast Asia";
            subGroup = (
                {
                    name = Buginese;
                    icon = bugineseTemplate;
                    predicate = "script == \"buginese\" or name == \"pangrangkep-java\"";
                    subGroup = (
                        {
                            name = Letters;
                            coverage = (
                                "ka-bugi",
                                "ga-bugi",
                                "nga-bugi",
                                "ngka-bugi",
                                "pa-bugi",
                                "ba-bugi",
                                "ma-bugi",
                                "mpa-bugi",
                                "ta-bugi",
                                "da-bugi",
                                "na-bugi",
                                "nra-bugi",
                                "ca-bugi",
                                "ja-bugi",
                                "nya-bugi",
                                "nyca-bugi",
                                "ya-bugi",
                                "ra-bugi",
                                "la-bugi",
                                "va-bugi",
                                "sa-bugi",
                                "a-bugi",
                                "ha-bugi",
                                "iya-bugi"
                            );
                        },
                        {
                            name = Marks;
                            coverage = (
                                "i-bugi",
                                "u-bugi",
                                "e-bugi",
                                "o-bugi",
                                "ae-bugi"
                            );
                        },
                        {
                            name = "Symbols and Punctuation";
                            coverage = (
                                "pallawa-bugi",
                                "sectionEnd-bugi",
                                "pangrangkep-java"
                            );
                        },
                        {
                            name = "Other";
                            coverage = (
                                "dottedCircle",
                                "zerowidthjoiner"
                            );
                        }
                    );
                }
            );
        }
    );
}