monkeytype/frontend
Pavel Ivashkov ea144996f3
fix(language): update Ukrainian Latin to national standard (@paiv) (#6584)
### Description

In short, this PR is based on Ukraine's national standard [DSTU
9112:2021 (A)](https://en.wikipedia.org/wiki/DSTU_9112:2021), and
replaces non-standard transliteration originally submitted.

- Updates #3855

### Context

Unfortunately, this topic has been a bit toxic in Ukraine, I am sorry to
bring this on the developers of this popular tool. I am trying to stay
neutral [¹](https://paiv.github.io/blog/2024/11/26/ukrainian-latin.html
"The state of Ukrainian Latin"), with Ukraine's ultimate benefits in
mind.

At the moment, there is no definite Ukrainian Latin script. The state
standard (KMU 55) is a lossy transliteration, not useable for general
writing, only applied to personal names and places.

Practitioners of Latin script for the Ukrainian language is still only a
marginal group, without a unifying movement. Until 2021 basically
everyone had their own transliteration method, derived from two dozen
historical schemes.

In 2021 comes Ukraine's national standard DSTU 9112:2021, and
objectively is good enough for general writing among alternatives. It
does not prescribe transition from Cyrillic. Its future is in
integration with European languages, gradually replacing legacy KMU 55.

Thus my argument for the practitioners of Ukrainian Latin script is to
adopt DSTU standard, given its perspective and unifying power, and phase
out non-standard schemes, of which #3855 is only one.

I hope @tymof1j as the original contributor could critically review
these notes, with the two year perspective.

The script used for conversion from Cyrillic:
https://gist.github.com/paiv/df2f38ed86a103471a49cfa8064d0d2e

----
To reiterate, Ukrainian Latin script is not established, and people are
coming here to not only train keyboard but also to get used to the
concept of Ukrainian Latin. Hosting one of dozens unofficial
alternatives of Ukrainian Latin without giving wider context is not
appropriate. People should start with Ukraine's national standard, then
learn of alternatives, if interested.

The problem of the national standard is that it is young, and has little
adoption and tooling. Those will come in time. I have posted examples of
possible keyboard setups here: https://paiv.github.io/latynka-keyboard/

I used system A of the national standard, with diacritics. An
alternative would be to use system B, which only needs basic Latin. It
is more verbose, but is more accessible to type. I believe system A is
preferable for general text.

If this is too much for this project, I would rather remove Ukrainian
Latin than host one non-standard variant, until it is established in
Ukraine. But it is nice to keep this platform to teach the concept of
Ukrainian Latin script.
2025-05-26 15:57:13 +02:00
..
__tests__ impr(config): handle invalid config values (@fehmer) (#6555) 2025-05-13 16:43:45 +02:00
docker fix: local development using docker not working with pnpm (@fehmer) (#6401) 2025-03-26 13:11:02 +01:00
scripts refactor: move languages to contracts (@fehmer) (#6497) 2025-05-07 14:02:27 +02:00
src feat(language): add viossa (@nginearing) (#6571) 2025-05-26 15:44:57 +02:00
static fix(language): update Ukrainian Latin to national standard (@paiv) (#6584) 2025-05-26 15:57:13 +02:00
.eslintrc.cjs chore: add eslint compat plugin (@fehmer) (#6542) 2025-05-12 16:52:01 +02:00
.firebaserc_example
.oxlintrc.json refactor: enable ban-ts-comment rule 2025-04-16 19:15:30 +02:00
firebase.json
gulpfile.js chore: add oxlint (@miodec) (#6455) 2025-04-16 17:18:50 +02:00
knip.json
package.json chore: add eslint compat plugin (@fehmer) (#6542) 2025-05-12 16:52:01 +02:00
tsconfig.json
vite.config.dev.js chore: add oxlint (@miodec) (#6455) 2025-04-16 17:18:50 +02:00
vite.config.js chore: add sentry 2025-04-29 17:36:23 +02:00
vite.config.prod.js chore: try to use auto commit detection again 2025-05-03 12:02:51 +02:00
vitest.config.js