metadata {

authority_id: ua
id: 1996
language: iso-639-2:ukr
source_script: Cyrl
destination_script: Latn
name: Government of Ukraine Ukrainian System (1996)
url: http://transliteration.eki.ee/pdf/Ukrainian.pdf
creation_date: 1996
description: Romanization table for Ukrainian. The current national system of romanization.

notes:
  - gh is used in the romanization of зг zgh.
  - In initial position є -> ye, ї -> yi, й -> y, ю -> yu, я -> ya.

}

tests {

test "Алушта", "Alushta"
test "Борщагівка", "Borschahivka"
test "Вишгород", "Vyshhorod"
test "Гадяч", "Hadiach"
test "Згорани", "Zghorany"
test "Ґалаґан", "Galagan"
test "Дон", "Don"
test "Рівне", "Rivne"
test "Єнакієве", "Yenakiieve"
test "Наєнко", "Naienko"
test "Житомир", "Zhytomyr"
test "Запоріжжя", "Zaporizhzhia"
test "Закарпаття", "Zakarpattia"
test "Медвин", "Medvyn"
test "Іршава", "Irshava"
test "Їжакевич", "Yizhakevych"
test "Кадіївка", "Kadiivka"
test "Йосипівка", "Yosypivka"
test "Київ", "Kyiv"
test "Лебедин", "Lebedyn"
test "Миколаїв", "Mykolaiv"
test "Ніжин", "Nizhyn"
test "Одеса", "Odesa"
test "Полтава", "Poltava"
test "Ромни", "Romny"
test "Суми", "Sumy"
test "Тетерів", "Teteriv"
test "Ужгород", "Uzhhorod"
test "Фастів", "Fastiv"
test "Харків", "Kharkiv"
test "Біла Церква", "Bila Tserkva"
test "Чернівці", "Chernivtsi"
test "Шостка", "Shostka"
test "Гоща", "Hoscha"
test "Русь", "Rus’"
test "Юрій", "Yurii"
test "Крюківка", "Kriukivka"
test "Яготин", "Yahotyn"
test "Ічня", "Ichnia"
test "Знам’янка", "Znam”ianka"

}

stage {

# RULES
sub "\u0413", "Gh", before: any("Зз") # Г after З or з
sub "\u0433", "gh", before: any("Зз") # г after З or з
sub boundary + "\u0404", "Ye", not_before: boundary + "\u2019" # Є in initial position -> Ye
sub boundary + "\u0454", "ye", not_before: boundary + "\u2019" # є in initial position -> ye
sub boundary + "\u0407", "Yi", not_before: boundary + "\u2019" # Ї in initial position -> Yi
sub boundary + "\u0457", "yi", not_before: boundary + "\u2019" # ї in initial position -> yi
sub boundary + "\u0419", "Y", not_before: boundary + "\u2019" # Й in initial position -> Y
sub boundary + "\u0419", "y", not_before: boundary + "\u2019" # й in initial position -> y
sub boundary + "\u042e", "Yu", not_before: boundary + "\u2019" # Ю in initial position -> Yu
sub boundary + "\u044e", "yu", not_before: boundary + "\u2019" # ю in initial position -> yu
sub boundary + "\u042f", "Ya", not_before: boundary + "\u2019" # Я in initial position -> Ya
sub boundary + "\u044f", "ya", not_before: boundary + "\u2019" # я in initial position -> ya
sub boundary + "\u2019" + boundary, "”" # ’ in the middle of a word -> ”

# CHARACTERS
parallel {
  sub "А", "A" # А
  sub "Б", "B" # Б
  sub "В", "V" # В
  sub "Г", "H" # Г
  sub "Ґ", "G" # Ґ
  sub "Д", "D" # Д
  sub "Е", "E" # Е
  sub "Є", "Ie" # Є
  sub "Ж", "Zh" # Ж
  sub "З", "Z" # З
  sub "И", "Y" # И
  sub "І", "I" # І
  sub "Ї", "I" # Ї
  sub "Й", "I" # Й
  sub "К", "K" # К
  sub "Л", "L" # Л
  sub "М", "M" # М
  sub "Н", "N" # Н
  sub "О", "O" # О
  sub "П", "P" # П
  sub "Р", "R" # Р
  sub "С", "S" # С
  sub "Т", "T" # Т
  sub "У", "U" # У
  sub "Ф", "F" # Ф
  sub "Х", "Kh" # Х
  sub "Ц", "Ts" # Ц
  sub "Ч", "Ch" # Ч
  sub "Ш", "Sh" # Ш
  sub "Щ", "Sch" # Щ
  sub "Ю", "Iu" # Ю
  sub "Я", "Ia" # Я
  sub "Ь", "’" # Ь -> ’
  sub "а", "a" # а
  sub "б", "b" # б
  sub "в", "v" # в
  sub "г", "h" # г
  sub "ґ", "g" # ґ
  sub "д", "d" # д
  sub "е", "e" # е
  sub "є", "ie" # є
  sub "ж", "zh" # ж
  sub "з", "z" # з
  sub "и", "y" # и
  sub "і", "i" # і
  sub "ї", "i" # ї
  sub "й", "i" # й
  sub "к", "k" # к
  sub "л", "l" # л
  sub "м", "m" # м
  sub "н", "n" # н
  sub "о", "o" # о
  sub "п", "p" # п
  sub "р", "r" # р
  sub "с", "s" # с
  sub "т", "t" # т
  sub "у", "u" # у
  sub "ф", "f" # ф
  sub "х", "kh" # х
  sub "ц", "ts" # ц
  sub "ч", "ch" # ч
  sub "ш", "sh" # ш
  sub "щ", "sch" # щ
  sub "ю", "iu" # ю
  sub "я", "ia" # я
  sub "ь", "’" # ь -> ’
}

}