Writing Non-English Languages with a Qwerty Keyboard
Key topics
The eternal conundrum of typing non-English languages on a QWERTY keyboard sparked a lively debate, with commenters sharing their personal hacks and gripes. Some swear by mental mapping, like sallveburrpi, who types German on an English keyboard without looking at the keys, while others, like whateverboat, opt for simplified spellings, using "ae" instead of "ä". The discussion revealed a surprising consensus: many developers and linguaphiles have found workarounds, such as using International AltGr dead keys or switching between multiple keyboard layouts, to accommodate their multilingual needs. As adastra22 wryly noted, the author's touted solution was, in fact, the widely-used International AltGr dead keys mapping all along.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
4d
Peak period
22
96-108h
Avg / period
8
Based on 32 loaded comments
Key moments
- 01Story posted
Dec 24, 2025 at 6:21 PM EST
12 days ago
Step 01 - 02First comment
Dec 28, 2025 at 8:32 PM EST
4d after posting
Step 02 - 03Peak activity
22 comments in 96-108h
Hottest window of the conversation
Step 03 - 04Latest activity
Dec 31, 2025 at 3:02 PM EST
4d ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
Commenting on the actual text, his solution for the cedilla is awkward and is one of the first things I disable on any computer, because it is a extremely common letter in portuguese.
> English (of course), Danish, Dutch, Finnish, French, German, Italian, Norwegian, Portuguese, Spanish and Swedish
so basically all using some variation of the latin alphabet.
UK keyboard layouts suck for writing Portuguese, because they lack convenient ways to type all the diacritics. Portuguese layouts (especially on macOS) suck horrendously for programming (curly braces and square brackets are inordinately annoying to type).
These days, all my physical keyboards are US (ANSI) layouts, and I use the US International (with dead keys) layout exclusively. It's the only relatively sane option that allows me to write both code and all the natural languages I'm liable to write on any given day (read: English, Portuguese, and some random French or German loanwords here and there).
When I bought a laptop in Japan it came with a QWERTY and kana keyboard, with a sane way to write in three languages on any OS that turned out to be US international with a quick switch for kana. Immediately got used to it and never looked back.
AZERTY used to cause problems with software that assumes QWERTY with no way to remap keys. Hardware availability is also maximal for QWERTY, for example when trying to buy a laptop on sale.
These days I only speak English and French so I dropped the kana. I'm not sure I can even be comfortable on AZERTY anymore these days.
I guess I don't mind it too much because the standard portuguese keyboard layout also rely on dead keys for accented letters, instead of having dedicated keys for them. (Or at least the Brazilian Portuguese layout does, not sure about the European Portuguese layout). So that's just what I've always been used to.
Without dead keys it is def better, but even then I cannot write in said non-english language with that, instead of using one actual layout for that language, and I do not see why not just change layout. Granted, there are some small annoyances because punctuation marks may change place, but I find that easier to learn than using altgr to write letters.
Altgr-intl is pretty good for when you code and write English most of the time and occasionally need accented letters. If you need to write a lot in your native language it's better to get a local layout keyboard.
The main difference seems to be in positioning of different characters on a quick glance?
There was a replacement in "AllChars" which is still on Sourceforge: https://sourceforge.net/projects/allchars/ but hasn't been updated for a while.
Looks like:
https://wincompose.info/
is up-to-date, and if I wrote more, would definitely try out, but these days, either I write the accented character w/ a stylus, type out the LaTeX command, or use the on-screen keyboard via touchscreen.
I also want to say that once you try the Compose way, you begin laughing at the disproportionate efforts so many people have dedicated to the chimera of finding the perfect layout.
My only annoyance is that Symless Synergy for some reason doesn't trigger the Compose key on Windows when using it as secondary computer
And even with the Italian layout, I still have no idea how to type an uppercase accented E (È).
With compose key, that's trivial!
even the article only talks of european languagues.
someone needs to find a better solution.
The AltGr approach is much superior by not invading on the keyboard shortcut space.
If you mean in the terminal, or in a RDP session, yeah, that can happen (but it’s obviously a minority of users, and you can select the US International keyboard anyway).
It's similar to the international layout, but focuses on the French subset of use-cases.
Try out the online preview.
[1] https://github.com/qwerty-fr/qwerty-fr
Edit: EURkey seems to be pretty much the altgr-weur mentioned in OP
[0] https://eurkey.steffen.bruentjen.eu/start.html
OP invented the International AltGr dead keys layout and this is the story.
My point being: wow, I've never thought about standardizing the layout, what a marvelous thought. Not for the general public perhaps, but for some programmers it would be a godsend. The whole terminal is basically non-ergonomic on other layouts. Stuff like ./ is right together on the US layout. Similar for coding. I preach to my fellow developers and they see my point but most won't go outside of what's provided by the OS for some reason.
I don't know enough about other European languages from my "region" to make a more general standard (though I suspect it wouldn't be as simple as creating a single "eastern" one, I doubt e.g. Hungarian and Polish have so much in common) but it's a good idea, something that could be collaborated on.
I've bound caps lock to alt gr while using it as a modifier key in niri at the same time. So `caps_lock => return` opens a terminal and `caps_lock => a` inserts "ä". Since the caps lock key is right over the shift key, it's also easy to type uppercase umlauts.
This is as easy as you can make typing special characters by configuring the keyboard, but it's still annoying. What I really want is to type things like "schoen" and have that automatically converted to "schön" when I press space.
There was a chrome extension to do this called Umlauter[1], but it didn't recognize language, so it wrongly converted umlauts in english text, like "guess" to "güss", which isn't even a german word, but to save space the extension uses heuristics rather then a dictionary.
(Would it to be too much to ask of a browser to include dictionaries for every language the user speaks in a way that can be accessed by extensions and web apps?)
Today, chrome has an API to recognize language, but the extension doesn't work anymore because it doesn't support manifest v3.
I work on a scratchpad[2]. I plan to add something like Umlauter with language recognition, and maybe using other Web AI APIs.
[1]: https://github.com/jaflo/umlauter
[2]: https://thinktype.app