June 7, 2026
Yesterday, I was about to add the word for to blink, nih(8) mak8, when I noticed on What Teochew Say that the nih4 character was rendered as a tofu! And then I looked up the word on Wiktionary, and the simplified character is different and it's also a tofu! 😱 And I was like, oh no, this is too much work for today, and I put my laptop down and started doing something else.
But that was yesterday and today is a new day! And to make this a little less daunting for the next time, I'm making sure to document all the steps I need to take when I need to add these commonly-unrenderable characters to my site.
So, I have a custom font that I created using FontForge. I don't really remember the initial steps for this, but it exists now and it only has a few glyphs defined in it. In order to add more glyphs to this, this is what I do:
- First I go to GlyphWiki and search for the character I need
- Then I download it as an SVG
- Then I open up FontForge and I load my custom font file
- I scroll down to this character's unicode point, and I double click to edit it
- Umm, there might be an easier way than just scrolling. I haven't looked into it though
- I go to File > Import... and I choose the SVG file I downloaded
- Keep all the default options, I guess. I don't know what they mean
- Then I go to Element > Round > To Int
- Then I validate the glyph using Element > Validation > Validate
- Hopefully, there are no errors, but I know in the past I've seen errors here. What do I do about them? I don't remember. If I ever see other errors again though, I'll try to document it
- And finally, I generate the font as a woff2 using File > Generate Fonts...
My font is currently named learning-teochew-custom-font2, and yes, whenever I make changes to this file, I tick the number up by one to avoid the browser loading in the old, cached font.
Then I can save it to the appropriate spot in my repository and update the CSS file. That's mainly just me replacing the old font name with the new one, but I also have to update a unicode-range line that defines what characters should be rendered with my custom font:
@font-face {
font-family: "learning-teochew-custom-font2";
src: url("/fonts/learning-teochew-custom-font2.woff2" format("woff2");
font-display: swap;
unicode-range: U+20895, U+25349, U+2E8F6, U+30291, U+31CC5;
}
I also have to rename the CSS file after doing all this.
So, since I added the word "to blink", I figured I should also add the word for lightning, since it's like, the god of thunder blinking. Something like that. I noticed that mogher has an entry for lightning, and they do this interesting thing to display the non-displayable character: 𱳅 is displayed as[目聂]!
June 5, 2026
In one of my conversations with my aunt, I asked her for the term for "manager". And she told me about jong(6) li2, but then she also told me the word for "supervisor" and the word for "company owner" and the word for..."cell leader"? What the heck is a cell leader? I think these are all just variations on the word "boss". Right now this is my understanding:
- ju1 jiang2 is like a team lead, or really the leader of any group, doesn't have to be work-related
- geng1 li2 or jong(6) li2 is a manager
- gang1 tao5 is a supervisor, but it literally means "head of work". Is that above a manager? A specific type of manager? I don't know
- tao(7) ge1 is the owner of a company
I've gotta ask her the difference between all these words. Maybe it's worth adding a lesson about it later. I know that I only have a few lessons and it's in my long long long term todo list to add more!
At this point, I've added enough School and Work words that I think they deserve separate categories. So I've split them out!
June 4, 2026
So I actually run through a set of flashcards on this site every single day, just so I'm practicing my Teochew a little bit. Lately I've been wanting a feature that allows me to shuffle the current set of flashcards, because I'll often go through it once, and there's maybe a couple of words that I had trouble remembering, and I want to practice it again. But running through the words in the same order doesn't feel quite as helpful as having them mixed up a little bit. So I added a shuffle feature!
I cannot at all remember where I got the arrow icons, and all I have in my code is a really generic looking SVG file. I'm sure I very diligently made sure that this was a completely free-to-use icon without attribution, but of course now that I want to add another icon, I'm not sure how to add one that fits with the existing ones. So the styling is a little off, but maybe I can make that look nicer later.
I was also running into these weird issues with refreshing the page where it was giving me the same set of flashcards. I feel like I've hit this issue before, but I can't reliably reproduce it right now so...that's another thing that I'm tabling.
June 3, 2026
Today I added two translations for to sneeze. One of them is hak8 chiu3, which is just the sound of a sneeze using Teochew sounds. I couldn't really find any appropriate Chinese characters for this, and when this happens I just store it as question marks in the database.
Previously, I was displaying these unknown characters as [?], but I found that kind of messy looking so I replaced them with a full-width question mark: ?. Chinese is displayed using only full-width characters so I'm trying to follow that standard on my sit as well. But something interesting that I learned is that the ? symbol is displayed differently in Traditional vs Simplified chinese! In traditional, it's centered, and in simplified, it's left aligned. At least, that's how Noto Sans did it.
And this made me realize that I never completely finished implementing the traditional and simplified site settings. In order for me to do that, I need to use two different fonts, and I need to go through all the characters I have in my database to see which ones have differing traditional and simplified representation with the same unicode point. And I'd need to inspect like 1000 rows in my database 😱
Not a project for today. But hopefully soon!
June 2, 2026
I find compound words in Chinese so interesting! Like the word for waffle is lou(7) teng1 gue2, which character-for-character translates to "stove window cake".
Recently, I learned that the word for sunny side up eggs is neung(7) gu1. It was pretty obvious to me that neung6 means eggs, but what is gu1? Apparently it means turtle. "Egg turtle". Because...a sunny side egg kind of looks like a turtle? I can see it.
Also, the character for turtle 龜 is kind of crazy looking to me! I think it's actually supposed to look like a sideways turtle, with its legs pointing to the left!
<< More Recent Older >>