5. The writing system
Ukrainian is written in a Cyrillic alphabet of 33 letters, plus one non-letter mark that behaves like a letter inside words, the apostrophe (’). The spelling is close to the sound: most letters stand for one phoneme, most phonemes have one letter, and the main deviations are regular and few. This chapter describes the alphabet and the names of the letters (§1), what each letter stands for (§2), the letters that are special to Ukrainian, ь, the apostrophe and ґ above all (§§3–5), the mapping from sounds to letters and back (§6), the stress mark and other marks on letters (§7), the characters that turn up in real digital text (§8), the transliteration systems into Latin letters (§9) and the history of the script in brief (§10). §11 says how Mova handles the writing system. The rules of spelling proper (alternations, the soft sign in suffixes, doubled letters, loanwords, the 2019 orthography and its variants) are in 6. Spelling rules and the 2019 orthography; punctuation, capitals, abbreviations and numbers are in 7. Punctuation, capitals, abbreviations and numbers. The sounds themselves are in 1. Consonants and 2. Vowels.
The norm cited throughout is Український правопис (Ukrajins'kyj pravopys, 'Ukrainian orthography'), the edition approved by resolution No. 437 of the Cabinet of Ministers of 22 May 2019 (cited as Pravopys 2019 §n). It is an official document and is not protected by copyright; the library holds its text with the paragraph numbers and stress marks (uk-gram-pravopys-2019).
Counts in this chapter were made on 2026-11-06 over: UD Ukrainian IU and ParlaMint 2.18 (all three files of each; IU is CC BY-NC-SA, so it is counted, never quoted); the Leipzig Corpora Collection samples ukr_news_2024 (1 000 000 sentences, 14.2 M words), ukr_newscrawl_2018 (1 000 000 sentences) and ukr_wikipedia_2021 (1 000 000 sentences) (Goldhahn, Eckart & Quasthoff 2012; CC BY), held under leipzig-*. The Leipzig samples are sentence collections, deduplicated and shuffled, from many sources; their counts describe those samples, not the language as a whole.
Transliteration in this manual follows the scholarly system of §9.3 (h for г, g for ґ, y for и, i for і, ji for ї, j for й, je ju ja for є ю я, ž š č šč x c for ж ш ч щ х ц, and ' for both the soft sign and the apostrophe; the Cyrillic decides where they could be confused).
1. The alphabet
1.1 The letters, their order and their names
| # | letter | name | # | letter | name | # | letter | name |
|---|---|---|---|---|---|---|---|---|
| 1 | А а | а | 12 | І і | і | 23 | Т т | те |
| 2 | Б б | бе | 13 | Ї ї | ї | 24 | У у | у |
| 3 | В в | ве | 14 | Й й | йот | 25 | Ф ф | еф |
| 4 | Г г | ге | 15 | К к | ка | 26 | Х х | ха |
| 5 | Ґ ґ | ґе | 16 | Л л | ел | 27 | Ц ц | це |
| 6 | Д д | де | 17 | М м | ем | 28 | Ч ч | че |
| 7 | Е е | е | 18 | Н н | ен | 29 | Ш ш | ша |
| 8 | Є є | є | 19 | О о | о | 30 | Щ щ | ща |
| 9 | Ж ж | же | 20 | П п | пе | 31 | Ь ь | м'який знак 'soft sign' |
| 10 | З з | зе | 21 | Р р | ер | 32 | Ю ю | ю |
| 11 | И и | и | 22 | С с | ес | 33 | Я я | я |
Ten letters are vowel letters (а е є и і ї о у ю я), twenty-two are consonant letters, and one, ь, has no sound of its own. The apostrophe is not a letter of the alphabet and has no place in the alphabetical order: dictionaries sort з'їзд 'congress' as if it were зїзд. The digraphs дж and дз, which spell the single affricates /d͡ʒ/ and /d͡z/ inside a morpheme, are not letters either and are sorted under д. Both conventions are stated in the Pravopys of 1926 and 1928 (uk-gram-pravopys-1926-proiekt, uk-gram-pravopys-1928, alphabet page) and have not changed.
The order has moved over the century. Simovych 1919 (§28) lists 33 letters with й before і (…и, й, і, ї…) and the soft sign last, after я; the 1926 draft and the 1928 orthography also put ь at the very end; the 1945 edition still has …ю, я, ь. The present order, with ь between щ and ю and with й after ї, is the one of today's dictionaries and schoolbooks. During 1933–1989 the alphabet had 32 letters, because ґ had been removed (§5).
Letters are named in the masculine or neuter (велике Ґ 'capital G'); the names in the table are the ones used at school. Simovych 1919 gives the older names йе, йу, йа for є, ю, я, шче for щ and ер or мнякий знак for ь, and Smal-Stockyj 1913 the same set in German transcription; these are out of use.
1.2 Letters Ukrainian has and its neighbours lack, and the reverse
Compared with Russian Cyrillic, Ukrainian has ґ, є, і, ї and the apostrophe, and lacks ё, ъ, ы, э. Compared with Belarusian, it has и, ї, є, ґ (which standard Belarusian does not use) and щ, and lacks ў, ё, ы, э. The letter и exists in both Ukrainian and Russian but stands for different sounds: Ukrainian и is the lax vowel /ɪ/, Russian и is /i/, which Ukrainian writes і. The letter є in its Ukrainian value (/jɛ/ and /ʲɛ/) is not used by any other modern Cyrillic orthography, as the 2019 preface notes; ї is unique to Ukrainian (and Rusyn).
These letters make Ukrainian easy to tell from Russian in writing. Of the 8.1 million Cyrillic letters in a one-in-ten sample of the 2024 news collection, 28 were ы, 4 э, 1 ъ and 1 ё, all from quoted Russian names or text (Leipzig ukr_news_2024, every tenth sentence, 2026-11-06).
1.3 Letter frequencies
Relative frequency of letters in the same sample (8 101 340 Cyrillic letters and apostrophes, lowercased):
| rank | letter | % | rank | letter | % | rank | letter | % |
|---|---|---|---|---|---|---|---|---|
| 1 | о | 9.48 | 12 | у | 3.51 | 23 | ч | 1.14 |
| 2 | а | 8.45 | 13 | л | 3.37 | 24 | х | 0.98 |
| 3 | н | 7.03 | 14 | д | 3.35 | 25 | ц | 0.92 |
| 4 | и | 6.17 | 15 | п | 3.01 | 26 | ж | 0.92 |
| 5 | і | 5.90 | 16 | м | 2.99 | 27 | ї | 0.84 |
| 6 | в | 5.38 | 17 | з | 2.40 | 28 | ю | 0.80 |
| 7 | т | 5.20 | 18 | я | 2.16 | 29 | ш | 0.69 |
| 8 | р | 5.18 | 19 | ь | 1.76 | 30 | є | 0.64 |
| 9 | е | 4.53 | 20 | б | 1.62 | 31 | щ | 0.53 |
| 10 | с | 4.05 | 21 | г | 1.47 | 32 | ф | 0.31 |
| 11 | к | 3.89 | 22 | й | 1.21 | 33 | ґ | 0.005 |
Apostrophes of all kinds together are 0.13%. Two letters stand out against Russian: и and і are both frequent (6.17% and 5.90%), because each covers part of what Russian spells и; and ф is rare (0.31%), because it is found almost only in loans (native Ukrainian replaced foreign /f/ with /xv/ or /p/ in older borrowings: Хведір, Пилип). The rarest letter, ґ, occurs 394 times in the 8.1 million: about one letter in twenty thousand.
2. What each letter stands for
The table gives the main values; the full description of the sounds is in chapters 01 and 02.
| letter | value | examples |
|---|---|---|
| а | /ɑ/ | мама (mama) 'mum' |
| б | /b/, never devoiced | хліб (xlib) [xlʲib] 'bread' |
| в | /ʋ/; [u̯] at the end of a syllable | вода (voda) 'water'; вовк (vovk) [ʋɔu̯k] 'wolf' |
| г | /ɦ/, a voiced glottal fricative | гора (hora) 'mountain' |
| ґ | /g/ | ґанок (ganok) 'porch' |
| д | /d/ | дім (dim) 'house' |
| е | /ɛ/ | село (selo) 'village' |
| є | /jɛ/ initially, after a vowel or apostrophe; /ʲɛ/ after a consonant | єдиний (jedynyj) 'only', моє (moje) 'mine (n.)', п'є (p'je) 'drinks'; синє (synje) [ˈsɪnʲɛ] 'blue (n.)' |
| ж | /ʒ/ | жаба (žaba) 'frog' |
| з | /z/ | зима (zyma) 'winter' |
| и | /ɪ/ | син (syn) 'son' |
| і | /i/; the consonant before it is soft or half-soft | ліс (lis) [lʲis] 'forest' |
| ї | /ji/, always | їжак (jižak) 'hedgehog', мої (moji) 'my (pl.)' |
| й | /j/ | мій (mij) 'my', йти (jty) 'go' |
| к л м н о п р с т у ф х | /k l m n ɔ p r s t u f x/ | кіт 'cat', осінь 'autumn', хата 'house' |
| ц | /t͡s/ | цукор (cukor) 'sugar' |
| ч | /t͡ʃ/ | час (čas) 'time' |
| ш | /ʃ/ | шлях (šljax) 'road' |
| щ | /ʃt͡ʃ/, two sounds | ще (šče) 'still', борщ (boršč) 'borshch' |
| ь | softness of the consonant before it | день (den') 'day', кінь (kin') 'horse' |
| ю | /ju/ or /ʲu/, like є | юнак (junak) 'youth', люди (ljudy) 'people' |
| я | /jɑ/ or /ʲɑ/, like є | яблуко (jabluko) 'apple', земля (zemlja) 'earth' |
Three points set this table apart from Russian and need watching in any processing that borrows Russian habits:
- Voiced consonants keep their voice. Ukrainian does not devoice at the end of the word or before a voiceless consonant: дуб is [dub], казка 'tale' is [ˈkɑzkɑ]. The spelling shows it, and the spelling rule is the plain one: write what is heard, check by a related form (казка — казочка). The one regular exception is г before a voiceless consonant in a few words, легко 'easily' [ˈlɛxkɔ], нігті 'nails', кігті 'claws', вогко 'damp', дьоготь/дігтяр (Kotsa 2023, after the 1999 draft). Simovych 1919 (§§30–31) already set this against Russian and Polish devoicing.
- The prefix and preposition з- does not become с- before voiceless consonants, except before к, п, т, ф, х in prefixes: сказати 'say', спитати 'ask', стерти 'wipe off', сфотографувати 'photograph', схопити 'seize', but зшити 'sew together', зцідити 'strain off', and always з тобою 'with you' (Pravopys 2019 §31; Simovych 1919 §32). The other voiced-final prefixes (без-, від-, над-, об-, під-, перед-, роз-) are written unchanged before any consonant: безпечний 'safe', розписка 'receipt'.
- и and і are separate phonemes, both frequent; the old и of Common Slavic *y and the old *i merged into Ukrainian и, and Ukrainian і continues mainly old *ě and, in newly closed syllables, old *o and *e (кінь — коня 'horse', піч — печі 'stove', хліб, from *xlěbъ). The alternation is in 06 §2 and the history in 9. Older Ukrainian and the old forms alive today.
3. The iotated letters and the soft sign
3.1 є, ю, я: one letter, two jobs
The letters є, ю, я do one of two things (Pravopys 2019 §4):
- at the start of a word, after a vowel letter and after the apostrophe they spell /j/ + vowel: яма 'pit', моя 'my (f.)', в'юн 'loach';
- after a consonant letter they spell the vowel and mark the consonant as soft: дядько 'uncle', люди 'people', ряд 'row'.
The same holds for йо and ьо, since Ukrainian has no letter for "iotated o": йо spells /jɔ/ at the start of a word, after a vowel and after a consonant at the start of a syllable (його 'his', район 'district', бульйон 'broth', мільйон 'million'), and ьо spells softness + /ɔ/ (льон 'flax', сьогодні 'today', трьох 'three (gen.)') (§8). A sequence ьо after a soft consonant and йо after a consonant contrast: Ковальов (a surname) has soft л + o, батальйон 'battalion' has л + /j/ + o.
ї has only the first job. It always spells /ji/: at the start of a word (їжа 'food'), after a vowel (країна 'country', наївний 'naive'), after the apostrophe (з'їзд 'congress', під'їзд 'entrance') and after the soft sign in a few names (Віньї Vigny). і after a consonant marks the consonant as soft or half-soft, and i after a vowel would be read as a separate syllable without /j/; so Каїр 'Cairo' and поінформувати 'inform' (по- + інформувати) differ in exactly that way (Pravopys 2019 §3 and §129 II note).
Because є, ю, я, ї carry a /j/ in some positions and not in others, letter counts and sound counts differ, and a grapheme-to-phoneme rule must look at the letter before.
3.2 The soft sign
ь has no sound. It marks the consonant before it as soft. It is written only after the letters that have a phonemic soft partner: д, т, з, с, ц, дз, л, н, and (before о only) р (Pravopys 2019 §26). The main positions:
- at the end of a word or syllable after those letters: мідь 'copper', суть 'essence', вісь 'axis', ґедзь 'gadfly', палець 'finger', кінь, дядько, близько 'near', восьмий 'eighth', ганьба 'shame';
- before о: дьоготь 'tar', дзьоб 'beak', сьомий 'seventh', трьох, царьок 'petty tsar';
- after л before another consonant: їдальня 'canteen', пальці 'fingers', сільський 'rural';
- in the suffixes -зьк-, -ськ-, -цьк- and the diminutive -еньк-, -оньк-, -есеньк-, -ісіньк-: волинський 'of Volhynia', донецький 'of Donetsk', рученька 'little hand';
- in verb forms: ходить 'walks', ходять 'they walk', будь 'be!', киньте 'throw!';
- in the genitive plural of soft-stem nouns: пісень 'of songs', знань 'of knowledge'.
It is not written (§27): after р at the end of a syllable or word (кобзар 'kobza player', лікар 'doctor', Харків); after н before ж, ч, ш, щ and before -ськ- (кінчик 'tip', менший 'smaller', селянський 'peasant'), unless the base already has it (донька → доньчин 'daughter's'); after a consonant before another soft consonant other than after л (світ 'world', сніг 'snow', радість 'joy'); between two identical soft consonants (життя 'life', знання 'knowledge', ллється 'is poured'); after ц in some interjections and at the end of masculine loans (палац 'palace', шприц 'syringe'). The rule of thumb that the soft sign of the nominative stays in all forms (кулька — кульці 'ball'), and its absence too (галка — галці 'jackdaw'), is in §27, note to point 3. Labial consonants, ж, ч, ш, щ and (word-finally) р are never followed by ь in native words, because they have no soft phonemes of their own; their softness, where it occurs before я, ю, є, ї, is the business of the apostrophe.
4. The apostrophe
4.1 What it does
The apostrophe shows that a consonant and a following є, ю, я, ї are pronounced separately: the consonant stays hard and the letter spells /j/ + vowel. It is written before я, ю, є, ї (Pravopys 2019 §7):
- after labials б, п, в, м, ф: б'ю 'I beat', п'ять 'five', в'язи 'elms', м'ясо 'meat', солов'ї 'nightingales', В'ячеслав; but not when another root consonant other than р stands before the labial: свято 'holiday', цвях 'nail', тьмяний 'dim', мавпячий 'monkey's', against верб'я 'willows', торф'яний 'peaty', черв'як 'worm';
- after р, when р is hard: бур'ян 'weed', пір'я 'feathers', матір'ю 'mother (instr.)', кур'єр 'courier', Мар'яна; no apostrophe when р is soft: буряк 'beet', рябий 'speckled', крюк 'hook';
- after к in Лук'ян and names derived from it;
- after a prefix or the first part of a compound ending in a hard consonant: з'їсти 'eat up', від'їзд 'departure', об'єм 'volume', роз'юшити 'bloody', пан'європейський 'pan-European', Мін'юст 'Ministry of Justice'; before other vowels no apostrophe is written after a prefix (зекономити 'save', безіменний 'nameless').
In loanwords (§138) the apostrophe is written after б, п, в, м, ф, г, к, х, ж, ч, ш, р before /j/ + vowel (комп'ютер 'computer', інтерв'ю 'interview', прем'єр 'premier', кар'єра 'career', Монтеск'є) and after a prefix-final consonant (ад'ютант 'adjutant', ін'єкція 'injection', кон'юнктура); not before йо (курйоз) and not where я, ю only mark softness (бюро 'bureau', пюре 'purée', рюкзак 'rucksack', Гюго).
The apostrophe thus works where the soft sign cannot: labials and р are hard, and the apostrophe keeps them so. Where the soft consonants д, т, з, с, л, н precede /j/ in loans, the soft sign is written instead: мільярд 'billion', ательє 'studio', Мольєр (§139).
4.2 What it is in the text
The Pravopys prints the apostrophe as a raised comma, ’ (U+2019 RIGHT SINGLE QUOTATION MARK in its own text). It does not name a code point. Three characters compete in real text:
| character | code point | Unicode class | in Leipzig news 2018 | news 2024 | Wikipedia 2021 | UD IU | UD ParlaMint |
|---|---|---|---|---|---|---|---|
| ’ right single quotation mark | U+2019 | punctuation | 60 887 | 29 188 | 5 474 | 502 | 0 |
| ' ASCII apostrophe | U+0027 | punctuation | 44 911 | 64 907 | 109 947 | 216 | 438 |
| ʼ modifier letter apostrophe | U+02BC | letter | 77 | 4 447 | 62 | 1 | 0 |
| other look-alikes (` ´ ‘) | 5 177 | 464 | 256 | 6 | 0 |
(Counts of the character between two letters; 2026-11-06.) The ASCII apostrophe dominates in the 2024 news and in Wikipedia; the typographic ’ in the 2018 news and in UD IU; ParlaMint has normalised all to ASCII. The modifier letter ʼ, which Unicode classes as a letter and which therefore keeps п'ять one word for any tokenizer that splits on punctuation, has grown from 77 to 4 447 between the two news samples but remains under 5%. A program has to accept all of them as the same apostrophe, and must also tell them from the same characters used as quotation marks (‘…’) and from the English possessive (Assassin’s, which UD IU keeps as a foreign token).
5. The letter ґ
5.1 Value and use
ґ spells the voiced velar plosive /g/; г spells the voiced glottal fricative /ɦ/, the usual reflex of Common Slavic *g in Ukrainian. Since /g/ is marginal in the native system, ґ is a rare letter (§1.3). The Pravopys (§6) writes ґ:
- in native words and old, assimilated loans, mostly expressive or from Polish, German, Hungarian or Romanian: аґрус 'gooseberry', ґава 'crow; gawker', ґазда 'master of the house', ґанок 'porch', ґатунок 'sort, grade', ґвалт 'uproar', ґедзь 'gadfly', ґніт 'wick', ґрати 'bars', ґречний 'polite', ґринджоли 'sledge', ґрунт 'soil', ґудзик 'button', ґуля 'bump', ґуральня 'distillery', дзиґа 'spinning top', дриґати 'jerk', and their derivatives (ґрунтовний 'thorough');
- in Ukrainian place names and surnames: Ґорґани (a mountain range), Ґоронда, Уґля (villages in Transcarpathia); Ґалаґан, Ґонта, Ґудзь.
In foreign words g is normally rendered by г: газета, генерал, агресія, Гренландія, Чикаго (§§5, 122). In personal names the 2019 text allows two spellings, adapted г or imitating ґ: Гегель and Геґель 'Hegel', Гете and Ґете 'Goethe', Георг and Ґеорґ (§122.3). The 2019 edition extended the list of common words with ґ compared with 1993 (ґелґотіти 'cackle', ґерґелі 'mess', ґонта 'shingle', ґуральня, дриґати, ремиґати 'chew the cud') and added the Ukrainian place names (Kotsa 2023).
5.2 Usage
The restored letter has not displaced г in all the words where the norm wants it, and has spread to some where it does not:
| words | 2018 news ґ : г | 2024 news ґ : г | Wikipedia 2021 ґ : г |
|---|---|---|---|
| ґрунт- / грунт- 'soil' | 872 : 291 | 1 632 : 147 | 2 767 : 63 |
| ґудзик- / гудзик- 'button' | 31 : 9 | 57 : 5 | 62 : 5 |
| ґвалт- / гвалт- 'uproar; rape' | 91 : 27 | 87 : 4 | 41 : 10 |
| ґанок, ґанку, ґанки / ганок… 'porch' | 7 : 9 | 18 : 0 | 40 : 4 |
| Ґете / Гете | 4 : 22 | 3 : 1 | 10 : 34 |
| Геґел- / Гегел- | 5 : 6 | 0 : 0 | 6 : 29 |
| hypercorrect ґазет-, реґіон- / газет-, регіон- | 366 : 11 687 | 0 : 6 158 | 18 : 7 974 |
(Word tokens, lowercased, all inflected forms; Leipzig samples, 2026-11-06.) The prescribed ґ in native words has gained between 2018 and 2024 (ґрунт- from 75% to 92%). In foreign names, where both letters are allowed, г still prevails. The hypercorrect ґ in international words (ґазета, реґіон, інтеліґент), which the norm rejects and which Kotsa 2023 proposes to forbid explicitly, appears in the 2018 news sample (366 tokens, about 3%) and not at all in the 2024 one.
5.3 History in brief
The letter is not in the Old Church Slavonic alphabet. The 2019 preface dates it from the end of the sixteenth century and its spread from the seventeenth; it was written for /g/ in Polish, German and other loans and in the few native words with that sound. It was dropped from the official Soviet orthography in 1933, as part of a revision that the 2019 preface describes as imposed by the authorities, and restored in the 1990 edition (approved in 1989). Galician and diaspora printing kept it throughout, on the basis of the 1928 orthography, which also used ґ for g in foreign words (Ґете, Вюртемберґ). The 32-letter alphabet of 1933–1989 is the reason why older Soviet-era texts, dictionaries and OCR'd scans have грунт, гудзик, ганок where today's norm has ґ.
6. From sound to letter and from letter to sound
Ukrainian spelling is described by its codifiers as mainly phonemic: a letter stands for a phoneme in all its positional variants, with a morphological principle in second place (a morpheme keeps its spelling) and historical and differentiating spellings at the edges (Horodenska 2023, summarising Shevelov and Vykhovanets). In practice:
- What is not written: positional reduction and assimilation. Unstressed /ɛ/ and /ɪ/ move toward each other (02), but each is written by the morpheme: село 'village' (because села), пишу 'I write' (because пише), and in words with fixed stress by the dictionary (кишеня 'pocket', левада 'meadow') (Pravopys 2019 §1). Regressive assimilation across a morpheme boundary is not written: зшити [ˈʃːɪtɪ] 'sew together', безшумний [bɛʃːumnɪj] 'noiseless', смієшся [smʲiˈjɛsʲːɑ] 'you laugh', сміється [smʲiˈjɛt͡sʲːɑ] 'laughs', розчистити [rɔʃt͡ʃɪstɪtɪ] 'clear'; neither is the voicing of a voiceless consonant before a voiced one (боротьба [bɔrɔdʲˈbɑ] 'struggle', просьба [ˈprɔzʲbɑ] 'request'). These are in 4. Connected speech.
- What is written although not heard: the т and д in -стн-, -здн- clusters are dropped in spelling as in speech (честь — чесний 'honest', тиждень — тижня 'week'), except in a list of words that keep them (шістнадцять 'sixteen', кістлявий 'bony') and in adjectives from loans (контрастний 'contrasting'), where т is written and not pronounced (§28). Doubled consonant letters spell long consonants (знання, життя, ніччю 'by night') or a meeting of two morphemes (віддати 'give back', бездоріжжя) (§§29–30).
- What is ambiguous from letter to sound: є, ю, я, ї (§3.1); в (/ʋ/ or [u̯]); і (softening or not, depending on the consonant); stress, which is free and mobile and is not marked (3. Syllable, stress and intonation); дж, дз (one sound inside a root, two across a prefix boundary: джерело 'spring' with /d͡ʒ/, піджарити 'fry a little' with /d/ + /ʒ/), which the hyphenation rule of §63 encodes (ґу-дзик, хо-джу, but під-живляти).
The letter-to-sound mapping is regular enough that a rule-based grapheme-to-phoneme converter covers almost all of it. What it cannot get from spelling alone is stress, and with it the realisation of unstressed vowels, which needs a lexicon or a model (Senyk et al. 2025 train a context-aware stress predictor for this reason, for text-to-speech).
6.1 Homographs
Since stress is not written, words that differ only in stress are homographs. The Pravopys (§65) allows the stress mark exactly here and on rare or local words: Ми схо́дили на гору 'we climbed the mountain (and came down)' against Ми сходи́ли гору 'we went all over the mountain'; обра́зи 'insults', о́брази 'images', образи́ 'icons'. Other frequent pairs: за́мок 'castle' — замо́к 'lock', му́ка 'torment' — мука́ 'flour', бра́ти 'to take' — брати́ 'brothers', пла́чу 'I cry' — плачу́ 'I pay'. Inflection adds more: ру́ки 'hands (nom. pl.)' — руки́ 'hand (gen. sg.)'. A parser needs context, not spelling, to choose.
7. Marks on letters
7.1 The stress mark
The stress mark is an acute accent over the stressed vowel, мо́ва 'language'. In digital text it is normally the combining acute accent U+0301 after the vowel letter. Its use is marked: dictionaries, textbooks, the Pravopys itself, and homographs. In running text it is rare: 21 marks in the million sentences of the 2024 news, 4 504 in the Wikipedia sample, where article headwords carry stress, and 22 in UD IU. The 2019 text also prints a few non-standard stress marks (precomposed Latin é, ú, ó in the alphabetical index, бóзна-що, мáвпа) that a normaliser must map back to Cyrillic letter + U+0301 or drop.
A stress mark inside a word breaks naive word matching (мо́ва ≠ мова). Any lookup has to strip it first; where the norm allows two stresses, two marks are printed (ґа́зда́ 'master of the house' in §6 of the 2019 text).
7.2 Diaeresis and breve: й and ї
й and ї are single letters, but each can also be typed or stored as a base letter plus a combining mark: и + U+0306 combining breve for й, і + U+0308 combining diaeresis for ї. In the 2024 news sample (every tenth sentence) the combining breve occurs 29 times and the combining diaeresis 20 times. Canonical composition (Unicode NFC) maps them back to the single code points U+0439 and U+0457. Without it, мій and мій (decomposed) are different strings, and a tokenizer that treats combining marks as non-letters cuts the word in two.
7.3 Latin look-alikes inside Cyrillic words
Many Cyrillic letters have Latin twins: а a, е e, і i, о o, р p, с c, у y, х x, and capitals В, К, М, Н, Т. Mixed words, where a Latin letter has been typed or converted into a Cyrillic word, are frequent in web text: the 2024 news sample has 1 174 word tokens that mix Cyrillic with ASCII Latin letters, 230 of them with a Latin i in place of Cyrillic і (мiсцях 'places', iнтенсивних 'intensive'), and the Wikipedia sample 3 299 and 1 449. UD IU has 6 such tokens, ParlaMint 4. The Latin i for і is the commonest, because і is not on every keyboard layout and the two look identical in most fonts.
8. The orthographic syllable and word division
Words are divided at the end of a line by syllables, with restrictions that keep spelling units together (Pravopys 2019 §§63–64): no single letter is left or carried (ака-де-мія, not а-кадемія); дж and дз are not split when they spell one sound; йо, ьо are not split; the apostrophe, ь and й stay with the preceding letter (бур'-ян, кіль-це, бай-ка); a doubled consonant is split (закон-ний; знан-ня or зна-ння); single-syllable prefixes are not split before a consonant (над-мірний); initial abbreviations (АЕС, НТШ) and combinations of initials with surnames (Т. Г. Шевченко), numbers with units (150 га) and numbers with endings (2-й) are not split. The syllable itself is in 03.
9. Transliteration
Three systems of Latin transliteration are in use, each with its own purpose. The table gives all three; the notes after it give the conditions.
| Cyrillic | national 2010 (passports, maps, official names) | ISO 9:1995 (library, one-to-one) | scholarly (linguistics, this manual) | UD IU Translit |
|---|---|---|---|---|
| а | a | a | a | a |
| б | b | b | b | b |
| в | v | v | v | v |
| г | h (zgh for зг) | g | h | h |
| ґ | g | g̀ | g | g |
| д | d | d | d | d |
| е | e | e | e | e |
| є | ye initially, ie otherwise | ê | je | je / ě |
| ж | zh | ž | ž | ž |
| з | z | z | z | z |
| и | y | i | y | y |
| і | i | ì | i | i |
| ї | yi initially, i otherwise | ï | ji | ji |
| й | y initially, i otherwise | j | j | j |
| к | k | k | k | k |
| л | l | l | l | l (ľ when soft) |
| м н о п р с т у ф | m n o p r s t u f | m n o p r s t u f | m n o p r s t u f | same (ś, ť, ń when soft) |
| х | kh | h | x | ch |
| ц | ts | c | c | c (ć when soft) |
| ч | ch | č | č | č |
| ш | sh | š | š | š |
| щ | shch | ŝ | šč | šč |
| ь | not rendered | ʹ (prime) | ' | marks the consonant (ś, ť, ľ…) |
| ю | yu initially, iu otherwise | û | ju | ju |
| я | ya initially, ia otherwise | â | ja | ja |
| ' apostrophe | not rendered | kept | ' | not rendered |
9.1 The national system (2010)
The national transliteration was adopted by resolution No. 55 of the Cabinet of Ministers of 27 January 2010 (Про впорядкування транслітерації українського алфавіту латиницею, 'On regulating the transliteration of the Ukrainian alphabet into Latin script'). It is the system of passports, road signs, maps and the official names of places and institutions, and it was designed to be typed with English letters only. Its rules beyond the table: є, ї, й, ю, я have the forms with y only at the start of a word; зг is written zgh to keep it apart from ж = zh (Згорани Zghorany, Розгон Rozghon); the soft sign and the apostrophe are not rendered (Знам'янка Znamianka, Тернопіль Ternopil). Examples from the resolution's own list: Київ Kyiv, Харків Kharkiv, Одеса Odesa, Вінниця Vinnytsia, Житомир Zhytomyr, Ужгород Uzhhorod, Чернігів Chernihiv, Біла Церква Bila Tserkva, Миколаїв Mykolaiv, Їжакевич Yizhakevych, Юрій Yurii, Яготин Yahotyn, Ічня Ichnia, Гоща Hoshcha.
The system is lossy: и and й (non-initial) both give y or i, the soft sign and the apostrophe disappear, so a national transliteration cannot be turned back into Cyrillic without a lexicon. Its spelling Kyiv (rather than the older Kiev, from Russian) is the form adopted internationally in the late 2010s and early 2020s.
The resolution itself is not held in Mova's research library; the official text (zakon.rada.gov.ua, resolution 55-2010-п) could not be reached from our build host on 2026-11-06, and the table above was checked against the summary of the Wikipedia article Romanization of Ukrainian and against the transliteration used for the library's own folder names, which follows the 2010 table (without the zgh rule: the library writes zh for both). This is a gap to close.
9.2 ISO 9
ISO 9:1995 is a strict one-to-one transliteration of all Cyrillic alphabets, reversible by design, used in library catalogues and in some bibliographic standards. Its diacritic letters (ì, ï, ê, û, â, ŝ, g̀) are hard to type and rarely seen outside catalogues.
9.3 The scholarly system
The scholarly (or "scientific", "linguistic") transliteration is the one of Slavic linguistics, shared with the transliteration of other Slavic Cyrillic languages (č, š, ž, x or ch, c, j for /j/). It keeps и and і apart (y, i), writes ї as ji (or ï) and the soft sign as a prime or apostrophe; it is reversible except for the rare clash of soft sign + я and apostrophe + я (Севілья Sevil'ja, Мар'яна Mar'jana), which only the Cyrillic resolves. This manual uses it, with ' for both marks.
9.4 The transliteration in UD Ukrainian IU
UD Ukrainian IU gives a transliteration of every token in the MISC column (Translit=, and LTranslit= for the lemma). Its scheme is a scholarly variant that marks the soft consonants with diacritics (бабуся babuśa, абсолютно absoľutno, Батьківщини Baťkivščyny), writes х as ch and is otherwise close to §9.3. In UD 2.18 the field contains Cyrillic letters in 8 160 of 122 750 tokens: after a soft consonant the vowel of я is left as Cyrillic а (U+0430) instead of Latin a, so that бажанням comes out as bažanńаm with a Cyrillic а (count over all three IU files, 2026-11-06). Anyone who uses that field as Latin text has to repair it.
10. The script in history, in brief
The Ukrainian alphabet descends from the Cyrillic of Old Church Slavonic and the Old East Slavic writing of Kyivan Rus'. Middle Ukrainian writing (fourteenth to eighteenth centuries) used the old Cyrillic letters (ѣ, ы, ъ, ѧ, ѫ in book style, ѳ, ѵ, ѱ, ѯ in learned words) in an etymological spelling that hid the vernacular sound changes. The modern letters grew out of the attempts, from the late eighteenth century on, to write the living language: the 2019 preface counts about fifty spelling systems between 1798 and 1905, among them those of Pavlovskyi (1818), Rusalka Dnistrovaja (1837), Kuliš (the kulišivka, late 1850s), Želexivskyj (the želexivka, the 1886 Galician dictionary) and Drahomanov. ї was first written for the reflex of old ѣ and for е in newly closed syllables, and only later took over the job of /ji/; є was specialised for /jɛ/ and /ʲɛ/ (2019 preface).
In the Russian Empire the Ems decree of 1876 banned Ukrainian printing except for a few genres, and texts allowed by the censors had to be printed in Russian letters; after the ban was lifted (1905–1906), Hrinchenko's Slovar' ukrajins'koji movy (1907–1909) fixed a phonetic spelling that drew on Kuliš and his successors (Horodenska 2023). In Austrian Galicia and Bukovyna the želexivka was the school spelling, and Smal-Stockyj and Gartner's grammar (1893, 1913) built on it. The first official all-Ukrainian rules followed in 1918–1921 (Ohijenko, then the Academy under Krymskyj), the all-Ukrainian orthography of 1928 (the "Kharkiv" orthography), and its Soviet revision of 1933 (06 §10).
Latin script has been proposed for Ukrainian more than once (in Galicia in the 1830s and 1850s, and again in the Soviet 1920s); none of the proposals was adopted, and the Cyrillic alphabet has never been seriously challenged in print.
11. How Mova handles the writing system
Mova has no Ukrainian writing-system module of its own. There is no grapheme-to-phoneme converter, no stress lexicon or stress predictor, no Unicode normaliser written for Ukrainian, and no transliterator in the public code. What exists:
- The
kgtokenizer and normaliser (kg/src/uk.rs,tokenize;kg/src/morph.rs,norm,invisible). The tokenizer keeps a hyphen or an apostrophe of any of the forms',’andʼinside a word when a letter follows (so п'ять, п’ять, пʼять and пів-Європи are one token each).normlowercases, maps’,ʼ,`and‘to the ASCII', and removes the combining acute U+0301, the combining grave U+0300, the zero-width characters and the soft hyphen, so that мо́ва and мова are looked up alike in VESUM. It does not compose combining breve or diaeresis (§7.2) and does not map Latin look-alikes (§7.3) back to Cyrillic; both make the word an unknown form. The behaviour on decomposed й, ї has not been tested. - The English tokenizer on Ukrainian.
en tok-eval, trained on UD Ukrainian IU train and evaluated on IU dev (binary of 2026-10-22; two runs of 2026-11-06 identical), gives exact token sequences for 92.6% of the 673 sentences and token F1 99.05; on ParlaMint (train → dev, 739 sentences) 99.6% and F1 99.95. It learns from the training data that the apostrophe joins letters, so в’їзд and Суб'єкти stay whole, as in UD. Its errors are in hyphenated words and abbreviations, which belong to 07 §11. - VESUM as the spelling authority for
kg.kgaccepts a word only if VESUM (dict_corp_vis.txt.bz2, CC BY-NC-SA, research and tests only) knows the normalised form. VESUM spells by the current norm, so pre-1990 spellings without ґ and the 1928-style variants that UD IU marksOrth=Alt(матеріял, инший, роля, Европа: 129 tokens in IU, 2 in ParlaMint) are lookups that may fail. - Transliteration. The research library names its folders with the 2010 national table without the zgh rule; there is no reverse transliteration, and nothing in Mova reads the IU
Translitfield.
What would be needed: a Ukrainian normaliser in Rust (NFC composition, apostrophe unification, stress-mark removal with the stress kept as a feature, Latin-look-alike repair restricted to words that are otherwise all Cyrillic); a rule-based grapheme-to-phoneme converter for the regular part of §2 and §6, with stress from a lexicon (VESUM carries no stress; the Ukrainian Wiktionary, CC BY-SA, carries stressed headwords and is held as a raw dump for learning and tests only); and the national and scholarly transliterators, both directions where the system allows it. None of this is built, and no figure in this chapter comes from such a component.
Sources for this chapter
- Український правопис (2019). Approved by Cabinet of Ministers resolution No. 437 of 22 May 2019. Official document, not protected by copyright. Preface; §§1–8, 26–31, 63–65, 121–139. Library
books/u/uk/ukrainskyi-pravopys-2019(uk-gram-pravopys-2019); archive.org/details/6032727-Ukr-Pravopys-2019 - Український правопис (1928) and its draft (1926). Official documents. Alphabet page, notes on the apostrophe and on дж, дз; §§ on ь and on foreign words. Library
books/u/uk/ukrainskyi-pravopys-1928-r-1928(uk-gram-pravopys-1928),books/u/uk/ukrainskyi-pravopys-1926(uk-gram-pravopys-1926-proiekt). - Український правопис (1945). Official document. Alphabet page. Library
books/u/uk/ukrainskyi-pravopys-1945(uk-gram-pravopys-1945). - Simovych, Vasyl'. 1919. Hramatyka ukrajins'koji movy dlja samonavčannja ta v dopomohu škil'nij nauci. Kyiv–Leipzig. Public domain. §§28–33. Library
books/s/si/simovych-1919-hramatyka-ukrainskoi-movy-dlia(uk-gram-simovych-1919). - Smal-Stockyj, Stephan. 1913. Ruthenische Grammatik. Berlin–Leipzig: Göschen. Public domain. Library
books/s/st/stockyj-1913-ruthenische-grammatik(uk-gram-smal-stockyj-1913); archive.org/details/ruthenischegramm00smaluoft - Horodenska, K. H. 2023. Pryncypy i metodolohija «Ukrajins'koho pravopysu». Ukrajins'ka mova 1(85): 32–49. doi.org/10.15407/ukrmova2023.01.032 (
horodenska-2023-pryntsypy-pravopysu). Library card CC BY 4.0; the article prints CC BY-NC-ND 4.0, so paraphrased only. - Kotsa, R. O. 2023. Pro zminy i dopovnennja do pravopysu častyn osnovy slova. Ukrajins'ka mova 1(85): 50–61. doi.org/10.15407/ukrmova2023.01.050 (
kotsa-2023-chastyny-osnovy). Licence as for Horodenska 2023. - Senyk, Anastasiia, Mykhailo Lukianchuk, Valentyna Robeiko & Yurii Paniv. 2025. Context-Aware Lexical Stress Prediction and Phonemization for Ukrainian TTS Systems. UNLP 2025. CC BY 4.0 (ACL Anthology) (
senyk-2025-context-aware-lexical-stress-prediction). - Goldhahn, Dirk, Thomas Eckart & Uwe Quasthoff. 2012. Building Large Monolingual Dictionaries at the Leipzig Corpora Collection. LREC 2012. The samples ukr_news_2024, ukr_newscrawl_2018, ukr_wikipedia_2021 (CC BY); counts of 2026-11-06.
- Cabinet of Ministers of Ukraine. 2010. Resolution No. 55 of 27 January 2010 on the transliteration of the Ukrainian alphabet into Latin script. Official document; not held in the library, not read in the original for this chapter (see §9.1).
- ISO 9:1995, Transliteration of Cyrillic characters into Latin characters. Known by its card only.
- UD Ukrainian IU 2.18 (CC BY-NC-SA 4.0: counts only) and UD Ukrainian ParlaMint 2.18 (CC BY-SA 4.0), ud-treebanks-v2.18; counts of 2026-11-06.
- Mova:
kg/src/uk.rs(tokenize),kg/src/morph.rs(norm,invisible),en/src/main.rs(tok_eval,xpos_fill),en/src/tok.rs.
This page in Markdown → https://md.mova.elamur.ai/free/en/docs/languages/uk/05-writing-system/