[HN Gopher] I Created 175 Fonts Using Rust
___________________________________________________________________
I Created 175 Fonts Using Rust
Author : azhenley
Score : 445 points
Date : 2024-08-10 23:52 UTC (23 hours ago)
(HTM) web link (chevyray.dev)
(TXT) w3m dump (chevyray.dev)
| nitinreddy88 wrote:
| I actually liked some of the fonts and simple styling used in the
| site. Luckily it's available as another post:
| https://chevyray.dev/blog/how-this-site-is-made/#catppuccin-...
| Vecr wrote:
| Interesting how easy it is to make an operation like this run on
| multiple cores in Rust. Inserting a single call into a chain of
| functions can be enough.
| MontagFTB wrote:
| Rust is built to be memory- and thread-safe by default.
| Assuming you follow the prescribed rules of the language,
| multithreading is "free".
|
| Amdahl's Law still gets a vote, but at least your app won't
| blow up in your face.
| jjtheblunt wrote:
| > Assuming you follow the prescribed rules of the language,
| multithreading is "free".
|
| I'm wondering if you're referring to the async await addition
| from a few years back, to use of Tokio's crate(s), or
| something else.
| kevincox wrote:
| I think they are referring to this section:
| https://chevyray.dev/blog/creating-175-fonts/#automatic-
| kern...
|
| In this case they are not using async but Rayon which
| provides some easy primitives for splitting tasks into
| smaller parts that can run in parallel. In this case the
| par_iter and par_extend calls.
| hypeatei wrote:
| IIRC, async/await in most languages doesn't imply multi
| threading, it just allows other work to be done on the same
| thread simultaneously.
| vips7L wrote:
| It's not really unique to Rust. Scala and Java both support
| this out of the box.
| Filligree wrote:
| Yeah, but in Rust it's far less likely to explode in your
| face.
| johnisgood wrote:
| Or in Ada. Ada 202x[1] brings enhancements like the
| parallel block, making parallelism easier to express,
| somewhat similar to Rust's approach but still with Ada's
| emphasis on clarity and safety.
|
| [1] https://blog.adacore.com/ada-202x-support-in-gnat
| (2020)
|
| There may be more enhancements that I may not know about or
| remember, although I did mention Ada's constructs for safe
| concurrent code before.
| dwattttt wrote:
| The stronger guarantees/performance fall out of the stronger
| lifetime/ownership model, combined with errors around
| ambiguous/invalid lifetimes being a compiler error.
|
| In other languages those violations are things you have to
| run a race detector and actually evoke the condition to find,
| or you abandon fine grained/tracked ownership and use garbage
| collection.
| vips7L wrote:
| None of that matters with this code. There are no lifetimes
| here and in fact there is no ownership either. Everything
| is a primitive char. They're always copied and no mutation
| occurs. It's pure computation. You could write this code
| exactly the same way in those languages.
| dwattttt wrote:
| True. You could write it in C or asm too, and it would be
| about as simple. But there's still a difference that if
| they weren't all primitive (and you can't always rely
| that they will be), you'll know it won't work straight
| away in Rust, whereas in the others you need to walk
| every data type involved to make sure ownership is clear
| (or rely on a garbage collector to save you).
| n_plus_1_acc wrote:
| Java's HashMap for example is not thread-safe, but if you
| use it from multiple threads, you may or may not
| experience all kinds of issues.
| vips7L wrote:
| Again that only matters if there is mutation. Reads are
| perfectly safe to happen from any thread. This code is
| self contained. Rust isn't a silver bullet here.
| waldothedog wrote:
| This is neat! And cool to hear this made a financial difference
| for them. Gah, I remember the name Chevy Ray from indie games,
| but I cannot put my finger on what this person made... would have
| been like 2010 to 2012?
|
| In the same vein as VVVVVV or nidhogg or canabalt as I recall
| bitvoid wrote:
| Ikenfell
| TeaDude wrote:
| Flashpunk?
| chevyray wrote:
| The game you are probably talking about is Beacon.
| waldothedog wrote:
| It was flashpunk! Beacon was rad too -- blast from the past, I
| miss indie games
| wrsh07 wrote:
| I also found Ikenfell to be really delightful!
| bentinata wrote:
| Even though the methods is simple, the way the author visualizing
| it is really neat.
| Daub wrote:
| Impressive indeed. Making a complete font set can easily take as
| long as a year. The tasks include to go from 'A' to 'Z', upper
| and lower case, plus all the glyphs (brackets, ampersand,
| exclamation marks etc). Optionally the variations (bold, italic
| etc) without which a font is of limited use. The thing that
| separates the men from the boys is the kerning (spacing between
| the characters) which can absorb as much obsessive compulsion as
| you can throw at it. From TFA:
|
| > My new fonts were going to support 176 characters, meaning I
| might have to enter as many as 1762 = 37,976 kerning pairs...
| yeah not going to happen. So this time, since I was (spoiler
| alert) writing my own tool to generate the fonts, I decided to
| semi-automate this process to take care of a huge majority of the
| kerning, and do manual entry when algorithm didn't suffice.
| inferiorhuman wrote:
| Making a complete font set can easily take as long as a year.
|
| Making a font family can easily be a lifelong project.
| chevyray wrote:
| It makes me very happy to see people talking about how much
| work can go into a typeface. Like, these pixel fonts are very
| quick to make, but fully contoured vector fonts can be
| tweaked to perfection infinitely, there's always more
| languages and more diacritics and more weights and styles you
| could do.
|
| Truly a rabbit hole, but when it's done well it's very
| worthwhile. I have a lot of respect for font makers.
| galangalalgol wrote:
| Has anyone tried training a DL model to handwrite things?
| That seems like a fascinating rabbit hole as well. In
| addition to all the context sensitive letter differences,
| you could even label training pieces with the mood of the
| writer and the flexiness of the nib/quill. If I type an
| angry emoji after a sentence it gets scribbled harder when
| drawn.
| amelius wrote:
| > Making a font family can easily be a lifelong project.
|
| Donald Knuth made https://www.1001fonts.com/cmu-font.html
| __and__ designed and implemented an entire typesetting system
| __and__ did a bunch of other not-so-small things that makes
| designing a font family seem like a side project.
| 0cf8612b2e1e wrote:
| Tex was the side project. Knuth went on a years long yak
| shave to write book-making software instead of writing the
| book because he was unhappy with the fonts in the printer
| proof.
| p4bl0 wrote:
| > _Making a complete font set can easily take as long as a
| year. The tasks include to go from 'A' to 'Z', upper and lower
| case, plus all the glyphs (brackets, ampersand, exclamation
| marks etc)._
|
| That's when you're limiting the font to purely English usage.
| If you want to support any other language you have to add more
| characters, even for languages that also use the latin alphabet
| (e.g., French, Spanish, Italian, Portuguese, etc). Then you may
| want to support Greek and Cyrillic, Japanese, Chinese, ...
|
| For example, " _Noto fonts cover over 77,000 characters, which
| is around half of the 149,186 characters defined in Unicode
| 15.0_ " according to the font's Wikipedia entry.
| citizenpaul wrote:
| >Making a complete font set can easily take as long as a year.
|
| I'm sorry I just don't buy this. Its possible to endlessly
| obsess over anything. I've noticed things like
| language/writing/music/calligraphy tend to have high draw to
| people that are prone to obsessing.
|
| It sounds like gatekeeping to me is my point. Discouraging
| people from entering a field always makes me a bit triggered.
| worik wrote:
| Nice work
|
| I would like microns on the vowles, as we type a lot of Maori
| words....
| Daub wrote:
| Same here for diacritics in Vietnamese. There are very few font
| sets which natively support our vast range of diacritics.
| chevyray wrote:
| Is a micron the name of the straight line over the 'a' in
| Maori? A single pixel line over a bunch of a's is tremendously
| simple to do in pixel fonts, I could probably add that to all
| the fonts in a day... hmmmm
| travisjungroth wrote:
| The straight bars over vowels are called "macrons" in
| English. https://en.m.wikipedia.org/wiki/Macron_(diacritic)
|
| In Maori, there are a, e, i, o and u.
| chevyray wrote:
| Ahh yes there it is, thanks for clarifying. These are quite
| simple and would be easy to support.
| bspammer wrote:
| Apologies if this nerd-snipes you, but supporting the
| caron might also be fairly simple given you could just
| vertically flip the circumflex
| https://en.wikipedia.org/wiki/Caron
|
| Together with the macron, pinyin (the main romanization
| for Chinese) would be mostly supported.
| https://en.wikipedia.org/wiki/Pinyin
| chevyray wrote:
| Great suggestion, I would not have discovered this
| easily. thanks!
| zeta0134 wrote:
| These look absolutely delightful! A quick question: I'm working
| on retro consoles, and so I need fonts where each glyph is a
| multiple of 8px wide for easy display on tile-based backgrounds.
| Are the sizes (in pixels) of your font packs listed anywhere?
| Vecr wrote:
| 16. Or an integer multiple of that like 32 or 64. It's in the
| _Step 5: Exporting_ section
|
| Edit: that's the height, the width is not fixed/I think it
| varies with the exact font and the kerning. It's probably too
| big for you anyways.
| bryanlarsen wrote:
| The example tile sheet in the article appears to be 8 pixels
| wide by my count. Count the width in pixels on the "m" and if
| it's 7 the font will likely work for you.
| Vecr wrote:
| The main issue is you can't have them literally touching or
| it'll be really hard to read. Maybe it would work, but most
| of these "pixel art" fonts really benefit from some faking
| enabled by running on what's actually a high resolution
| display.
| bryanlarsen wrote:
| That's why I said the "m" should only be 7 bits wide for an
| 8 bit wide font.
| damieng wrote:
| It's a trade-off. Have every single instance of m look
| squished vs it might touch another m or w somewhere else
| and look odd.
|
| I've done fonts in both categories.
| kelnos wrote:
| > _each glyph is a multiple of 8px wide_
|
| These look to be variable-width fonts. I believe the _heights_
| are multiples of 16, but the width will vary by character.
| bryanlarsen wrote:
| It appears that the "tile sheet" export puts the fonts on a
| fixed width grid, so that can be used for a fixed width font.
| They look left-justified in the grid though, and fixed width
| fonts usually have the glyphs centered in their grid. That
| could be fixed with some scripting.
| two_handfuls wrote:
| They are variable-width yes but there is also a monospace
| variation, those will be constant width.
| jacksonrya wrote:
| Check out The Ultimate Oldschool PC Font Pack
| (https://int10h.org/oldschool-pc-fonts/). Each font description
| includes glyph dimensions and aspect ratios
| damieng wrote:
| My own collection of free 8x8 fonts might suit your needs at
| https://damieng.com/zx-origins
|
| Looking forward to trying this exciting rust tool in my chain
| as well to see what additional formats I can include.
|
| (Update: Seems the PIFO tool is not open-source :( I guess I'll
| stick to using scripts + FontLab Studio 5)
| claytonwramsey wrote:
| This is really excellent work, and a great write-up. I think it
| would definitely be possible to speed up a lot of the algorithms
| with some tricks. Replacing hashmaps with bitmaps and byte-index
| arrays for character painting and ascii-to-variants seems like a
| lead, based on what I've read. Of course, that doesn't really
| matter for this code since it's already fast enough.
| chevyray wrote:
| Glad you brought this up, because it's absolutely true! All the
| code is not on the site, but I actually allocate and clone a
| lot of strings and data structures as well. I did optimal code
| where it was obvious (bitmap copying, easily parallelizable
| things), and it was SO instant that I didn't even bother trying
| to optimize the other things. But it could be done!
|
| It's easy to forget how fast on-the-ground languages like Rust
| and C++ and Go are, not to mention when you use their multi-
| threading primitives and worker queues/etc.
| peteforde wrote:
| What an amazing accomplishment! Bravo.
|
| I find typography resists my attempts to wrap my head around it,
| because even though I can do basic analysis like serif vs sans
| serif, I get a sort of brain fog when it comes to telling fonts
| apart or intuiting which fonts to use in different situations.
|
| It's really hard to wrap my head around the idea that one person
| could make 175 fonts and that they would each be meaningfully
| different from each other. Like, how does one not accidentally
| recreate the same font?
| chevyray wrote:
| Sometimes I would get pretty far into a new font only to
| realize it was almost a total copy of another. It happened, I
| just managed to notice before releasing them lol
| omnimus wrote:
| Actually it is impossible to recreate the same font from
| memory. Even if you tried the font would be in some ways
| different. With pixel fonts where the grid is very coarse its
| much easier to do but normal fonts with curves you wont make
| it. Even if you are using same image of a font as a reference.
| theahura wrote:
| Btw anyone who's into fonts should check out
| https://tomorrow.type.today/ they're a typography studio that
| does fantastic original and experimental fonts. One of our team
| is super into typography and has been building a collection of
| their work at https://play.soot.com/tomorrowtypetoday
| vindex10 wrote:
| just as a note: the company is registered in Russia
| MissTake wrote:
| Also in Georgia.
| theahura wrote:
| Iirc they're originally Russian, but have fled the country
| out of strong disagreement of the war
| Tohhou wrote:
| This is an inflammatory comment. Shame on you.
| musha68k wrote:
| Fantastic!
|
| Da Vinci types like the author here always remind me that there
| was a time when being an artist and an engineer were one and the
| same, with no clear distinction between the two.
| jcynix wrote:
| Impressive and a nice site. Regarding font generation, let's not
| forget Donald Knuth and his
| https://en.wikipedia.org/wiki/Metafont software which generates
| raster fonts.
| patal wrote:
| Impressive work!
|
| In the "mixed-case kerning pairs" quality testing image, I notice
| that the letter "j" sometimes reaches under the previous letter,
| like in "Fdj". Sometimes it creates a lot of space, like in
| "Fjo". Is there a stylistic reason for this? The Fjo spacing is
| the only thing that stood out to me.
|
| Kudos
| chevyray wrote:
| Nice catch. That's a culprit of the `auto_kerning_min` property
| that you'll see on a lot of the fonts. this tells the auto
| kerner not to exceed that.
|
| I added this parameter because I fouund that for a lot of
| fonts, squeezing letters together over a certain distance would
| just look bad, so I would set -1 or -2 as a cap.
|
| It looks like that's just one that snuck past my notice. The
| word "Fjord" would look strange because of this. This is a good
| example of how even with the quality testing, things can get
| through, because I still have to visually glance over hundreds
| of kerning tests.
|
| One thing that might be a nice adjustment is to have an
| algorithm that detects the "area" between two letters, so
| basically how many pixels can volumetrically fit between them,
| and flag ones that go over a certain threshold. I could then
| color those tuples as red in the sample text, basically the
| system marking them as "potential problems" that required an
| author's look.
| dotinvoke wrote:
| Why not just feed that information back into the algorithm
| itself?
| chevyray wrote:
| I definitely could, I would have to do a bit of tests to
| see what kinds of volumes deserved special treatment.
|
| Usually the way I do things is I start by doing work
| manually. If I find that there's a common pattern in
| something I'm doing that could be automated, then I am able
| to transcribe it into the algorithm because I just follow
| the same steps I've been using in my head.
|
| This wasn't a thing that actually came up a huge amount, as
| these glaring pairs aren't tremendously common. But they're
| just common enough that if I sat down and examined them, I
| could probably say something like "hey if 1.5 vertical
| lines worth of pixels are between two letters, kern this
| extra" or something like that.
| patal wrote:
| Thanks for taking the time to answer. I don't understand why
| in the dj combination, j is able to reach under d for what
| looks like a kerning of about -4, when the auto_kerning_min
| property is set to -1 or -2, keeping Fj apart.
| zerocrates wrote:
| Maybe they just manually kerned "j" with the lowercase
| letters? The "j" line on the lowercase sample would jump
| out pretty strongly in a way the capitals-with-j don't on
| the mixed-case one.
| beardyw wrote:
| What I picked up from a lifelong typographer is that kerning
| should be about the area enclosed by the two letters. The aim
| is to make that consistent. I think that might help in this
| kind of case.
| swiftcoder wrote:
| Fascinating, I didn't previously realise you were converting
| pixel fonts to vectors when encoding them to TTF. I guess that
| gives some ability to seamlessly scale them for folks who load
| them into a competent text renderer as well (i.e. not a game
| engine that mostly just uses pixel fonts 1:1)
| chevyray wrote:
| It also just makes them usable in traditional graphics editors
| like photoshop, indesign, affinity, aseprite, etc. Those tools
| do not have the concept of a pixel font, so using a TTF with
| hinting/antialiasing turned off allows you to use them in those
| apps.
| bravura wrote:
| Curious: Once the fonts are made, how are they marketed and sold?
|
| Where do the people who use them become of aware of them and how?
| chevyray wrote:
| A combination of word of mouth and itch.io's search system. I
| have a decent amount of social media followers, many who have
| used my fonts in the past, so the initial flood of wishlisters
| put it on the front page for a bit.
|
| After that wave, they get used in various projects here and
| there, and those projects eventually release or post
| screenshots. Because it's indie, lots of people also attribute
| the fonts directly when they post screenshots of their games,
| posters, videos, and stream overlays where they use them. I am
| very supportive of people using them, and repost their work,
| and so it's very casually symbiotic.
|
| They're not lucrative on the scale that you might expect from a
| company or a popular vector font, but as supplementary income
| for a solo developer what they bring in helps put food on my
| table and also helps indie games get made which I think is
| great.
| networked wrote:
| Cool fonts, and an interesting post. I kind of want the top-right
| fake game in
| https://chevyray.dev/blog/creating-175-fonts/old_previews.pn...
| to be real. It has a " _Wonder Boy in Monster World_ on the GBA "
| vibe I think is nice.
|
| I have noticed that the license doesn't allow you to use the TTFs
| in open-source software, which is something to keep in mind.
|
| > Licensed Content may not be distributed to third parties as
| standalone files or in a way that unreasonably permits the
| recipient to extract the Licensed Content for use separately and
| apart from the Work for Distribution.
|
| > Licensee may not distribute the Licensed Content in any library
| or reusable template, including but not limited to game
| templates, website templates intended to allow reproduction by
| third parties on electronic or printed products.
|
| > Licensee may not distribute Licensed Content in a manner meant
| to enable third parties to create derivative works incorporating
| Licensed Content.
|
| To me, a non-lawyer, the last clause reads like it unambiguously
| forbids it.
|
| https://github.com/ChevyRay/pixel_font_megapack_license/blob...
| BHSPitMonkey wrote:
| If you like platformers, give Celeste a try. The scene in that
| mockup is a reference to an opening scene from that game.
| networked wrote:
| Oh, I didn't realize. Thanks for telling me.
|
| I have played the original _Celeste_ for PICO-8 (now called
| _Celeste Classic_ ). I plan on playing the full release
| eventually. The screenshot actually reminded me a little of
| an earlier game by Maddy Thorson, _An Untitled Story_. I
| think it is the way the mountains are drawn in the background
| and the thick outlines.
|
| A link to play _Celeste Classic_ :
| https://www.lexaloffle.com/bbs/?tid=2145.
|
| TIG Wiki page for _An Untitled Story_ :
| https://tig.fandom.com/wiki/An_Untitled_Story.
| Liquix wrote:
| If you like Celeste, check out Studio Pixel [0]. His most
| recent game Kero Blaster (mobile) is excellent but Cave Story
| is the classic. Tight controls, retro aesthetic, imaginative
| levels, very well executed.
|
| [0] https://studiopixel.jp
| zerocrates wrote:
| Hmm, it definitely doesn't allow you to distribute them _as_
| open source (or CC or whatever) but I don 't know that I'd
| agree that it forbids you from shipping them _with_ something
| that 's otherwise open source.
|
| Though clearly the intent is that these be used more in the
| final product stage of the kinds of things that are more rarely
| open source, games vs. engines or templates.
|
| I found myself thinking about a different copyright corner-case
| when reading the post and this question: the fact that
| typefaces aren't copyrightable in the US. _Fonts_ are, as
| computer programs, but typefaces (and so also fonts that are
| simple bitmaps) aren 't. So this workflow goes from a non-
| copyrighted source, (the original tilesheet) to a copyrighted
| output (the TTFs) and also back to a non-copyrighted output too
| (the output tilesheet/atlas).
| networked wrote:
| You have a point! You may be able to legally distribute
| binary builds of a work that is open-source except for these
| fonts, as long as the open-source parts aren't copyleft and
| the fonts aren't part of the source distribution. I should
| have said the license didn't allow you to distribute the TTFs
| with your open-source code and assets. Sorry for probably
| overstating the case.
|
| According to https://en.wikipedia.org/wiki/Intellectual_prope
| rty_protecti..., typefaces also aren't copyrighted in Japan
| and South Korea but are in Germany (for no more than 25
| years) and the United Kingdom (also 25 years). So bitmap
| fonts from classic 8- and 16-bit video games should be in the
| public domain in all of these countries.
| czarit wrote:
| Very nice! One question: I was curious why you chose this subset
| of Scandinavian special characters.
|
| There are three extended chars in Swedish (aoa) and
| Norwegian/Danish (aeoa), but your fonts have ae, but not o, which
| means you could drop the ae and still support Swedish, or add an
| o to also support Norwegian and Danish. Was this an oversight or
| is there some locale that has just ae and not o? (and before
| anyone asks I did not confuse ae with the oe-ligature oe, which
| is a different glyph used in French, and which the fonts also do
| support)
| kd5bjo wrote:
| > Was this an oversight or is there some locale that has just
| ae and not o?
|
| Well, Icelandic uses o in place of o, but also requires d and y
| which are not included.
|
| AE is sometimes used in older English texts, though, in words
| like "encyclopaedia" or in plurals of latin-derived words:
| https://en.wiktionary.org/wiki/Category:English_plurals_in_-...
| chevyray wrote:
| This was just an oversight. I actually got very far into the
| project before I realized that o was missing from my set.
|
| It's something that I could definitely go through and patch
| into all the fonts, but I was waiting to see if there was
| enough demand for the effort. I think supporting two more
| languages would be very cool though.
| kipari wrote:
| From a Dane that finds multiple of these fonts gorgeous and
| highly appreciate the elaborate kern pairs: please consider
| patching the fonts with an o. ;-)
| chevyray wrote:
| I will absolutely consider it. I am getting some good ideas
| from other comments as well, so I'll put those in my
| project notes to do as a possible update to the fonts.
| kmacdough wrote:
| Awesome work! It's a wonder how much hasn't been done in a world
| of 8 billion people. A single skilled individual with some free
| time filling in a gap can be HUGE. Gets me looking for gaps.
|
| 8 Billion people seems like a lot, but it cuts down fast. When
| 1/10 people have the freedom and, 1/100 the resources and time,
| 1/100 the training and experience, and 1/100 have the drive, and
| with hundreds of domains each with hubdreds of major unfilled
| niches...
|
| That's 800 people split among tens of thousands of gaps _. It
| pretty quickly gets down to you, the reader, to pick up that
| keyboard and start tapping away!
|
| _ These are obviously wild-a* numbers. Constraints may be
| overstated or understated & they're not fully independent. I'm
| missing others. The point stands: you need only to cut 8 billion
| by 100 a few times to get <1.
| euroderf wrote:
| About kerning. Uppercase Finnish is a nightmare. Odd pairs like
| LJ and KY and TY . How about an option to let some letter pairs
| touch ?
|
| It also creates a tendency to use quite light font weights for
| all-uppercase text, so that whitespace is not so prominent.
| chevyray wrote:
| Not a bad suggestion at all. Lots of fonts even provide
| ligatures for certain letter pairs so they can touch, but tweak
| them so they look a bit better.
|
| That kind of thing is another level of polish that I could
| definitely do, or even just providing more spaced variations.
| jezzamon wrote:
| Nice! I'm a user of your last batch of fonts, I'll have to check
| these new ones out :)
| Tohhou wrote:
| What's the point in this article if pifo isn't open source?
|
| Here's a tutorial on my software... you can't use it!!!
| chevyray wrote:
| I wanted to describe how the algorithm works, and show what it
| looks like to ship a project of that magnitude, and share some
| of the fun problems complexities that come up. I'd like to see
| more creatives using code as a way to bolster their projects
| and reducing tedious work for themselves with automation or
| deployment scripts, and I think Rust is a really great language
| for doing this, so I thought it would be inspiring to share how
| and why I'm doing it.
|
| I agree that it would be overall more valuable to have the
| whole thing open source online, but sometimes I want to share
| how I solved problems without open sourcing all my code
| directly, for various personal reasons. But from the many
| comments I'm getting across the internet on the article it
| seems like people are getting a lot of value and motivation out
| of it, which was the intent, so that makes me happy.
| laserDinosaur wrote:
| somepx on itch.io also makes some really nice fonts:
| https://somepx.itch.io/
| chevyray wrote:
| some is a homie and does excellent work! They also have a
| Patreon where you can support/guide them in the creation of new
| pixel art assets and fonts and stuff like that, if you're into
| that sort of thing. It's a cool approach, different than mine,
| and I'm rooting for them.
| meindnoch wrote:
| >The final character set I settled on.
|
| Sigh. No _o_ and _u_.
| chevyray wrote:
| I did a quick search, this for Hungarian support, yes? If those
| are the only two characters I would have to do to support the
| language, I'm collecting suggestions from other comments in
| this post as well and might do a 1-year anniversary update to
| add support for more languages, and I can add this.
| meindnoch wrote:
| Yes, these are the only Hungarian-only accents.
___________________________________________________________________
(page generated 2024-08-11 23:00 UTC)