﻿# © 2016 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
# Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
#
# File: az_Cyrl_az_BGN.txt
# Generated from CLDR
#

#
########################################################################
# BGN/PCGN 1993 Agreement
#
# Azerbaijani is the official language of Azerbaijan. In 1991, the
# Azerbaijani government adopted a Roman alphabet to replace the
# existing Cyrillic alphabet. The Azerbaijani Cyrillic alphabet
# contains nine letters not present in the Russian alphabet:
# Ғғ, Әә, Јј, Ҝҝ, Өө, Үү, Һһ, Ҹҹ, and ’. Four obsolete letters
# Йй, Ээ, Юю and Яя are also given.
#
# The Azerbaijani Alphabet as defined by the BGN (Page 13):
#
#   АБВГҒДЕӘЖЗИЫЈКҜЛМНОӨПРСТУҮФХҺЧҸШЙЭЮЯ
#   абвгғдеәжзиыјкҝлмноөпрстуүфхһчҹш’йэюя
#
# Originally prepared by Michael Everson <everson@evertype.com>
########################################################################
#
# MINIMAL FILTER: AzerbaijaniCyrl-Latin
#
:: [АБВГҒДЕӘЖЗИЫЈКҜЛМНОӨПРСТУҮФХҺЧҸШЙЭЮЯабвгғдеәжзиыјкҝлмноөпрстуүфхһчҹш’йэюя] ;
:: NFD (NFC) ;
#
#
########################################################################
#
########################################################################
#
# Define All Transformation Variables
#
########################################################################
#
$prime  = ’ ;
$wordBoundary =  [^[:L:][:M:][:N:]] ;
$upperConsonants = [БВГҒДЖЗЈКҜЛМНПРСТФХҺЧҸШЙ] ;
$lowerConsonants = [бвгғджзјкҝлмнпрстфхһчҹш’й] ;
$consonants = [$upperConsonants $lowerConsonants] ;
$upperVowels = [АЕӘИЫОӨУҮЭЮЯ] ;
$lowerVowels = [аеәиыоөуүэюя] ;
$vowels = [$upperVowels $lowerVowels] ;
$lower = [$lowerConsonants $lowerVowels] ;
#
#
# Use this $wordBoundary until bug 2034 is fixed in ICU:
# http://bugs.icu-project.org/cgi-bin/icu-bugs/transliterate?id=2034;expression=boundary;user=guest
#
#
#
########################################################################
#
########################################################################
#
# Start of Alphabetic Transformations
#
########################################################################
А → A ; # CYRILLIC CAPITAL LETTER A
а → a ; # CYRILLIC SMALL LETTER A
Б → B ; # CYRILLIC CAPITAL LETTER BE
б → b ; # CYRILLIC SMALL LETTER BE
В → V ; # CYRILLIC CAPITAL LETTER VE
в → v ; # CYRILLIC SMALL LETTER VE
Г → Q ; # CYRILLIC CAPITAL LETTER GHE
г → q ; # CYRILLIC SMALL LETTER GHE
Ғ → Ğ ; # CYRILLIC CAPITAL LETTER GHE WITH STROKE
ғ → ğ ; # CYRILLIC SMALL LETTER GHE WITH STROKE
Д → D ; # CYRILLIC CAPITAL LETTER DE
д → d ; # CYRILLIC SMALL LETTER DE
Е → E ; # CYRILLIC CAPITAL LETTER DE
е → e ; # CYRILLIC SMALL LETTER DE
#
########################################################################
#
# BGN Page 14 Note 1
#
# The special letter Ə ə, known as schwa, should be reproduced in that
# form whenever encountered. In those instances when it cannot be
# reproduced, however, the letter Ä ä may be substituted for it.
#
########################################################################
#
Ә → Ə; # CYRILLIC CAPITAL LETTER SCHWA
ә → ə; # CYRILLIC SMALL LETTER SCHWA
#
#
# Alternative rule when schwa is not available. To apply uncomment the
# following by removing the '#' mark at the start of the line and insert
# before the two rule lines above.
#
# Ә → Ä; # CYRILLIC CAPITAL LETTER SCHWA
# ә → ä; # CYRILLIC SMALL LETTER SCHWA
#
########################################################################
#
# End BGN Page 14 Note 1
#
########################################################################
Ж → J ; # CYRILLIC CAPITAL LETTER ZHE
ж → j ; # CYRILLIC SMALL LETTER ZHE
З → Z ; # CYRILLIC CAPITAL LETTER ZE
з → z ; # CYRILLIC SMALL LETTER ZE
И → İ ; # CYRILLIC CAPITAL LETTER I
и → i ; # CYRILLIC SMALL LETTER I
Ы → I ; # CYRILLIC CAPITAL LETTER YERU
ы → ı ; # CYRILLIC SMALL LETTER YERU
Ј → Y ; # CYRILLIC CAPITAL LETTER JE
ј → y ; # CYRILLIC SMALL LETTER JE
К → K ; # CYRILLIC CAPITAL LETTER KA
к → k ; # CYRILLIC SMALL LETTER KA
Ҝ → G ; # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
ҝ → g ; # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
Л → L ; # CYRILLIC CAPITAL LETTER EL
л → l ; # CYRILLIC SMALL LETTER EL
М → M ; # CYRILLIC CAPITAL LETTER EM
м → m ; # CYRILLIC SMALL LETTER EM
Н → N ; # CYRILLIC CAPITAL LETTER EN
н → n ; # CYRILLIC SMALL LETTER EN
О → O ; # CYRILLIC CAPITAL LETTER O
о → o ; # CYRILLIC SMALL LETTER O
Ө → Ö ; # CYRILLIC CAPITAL LETTER BARRED O
ө → ö ; # CYRILLIC SMALL LETTER BARRED O
П → P ; # CYRILLIC CAPITAL LETTER PE
п → p ; # CYRILLIC SMALL LETTER PE
Р → R ; # CYRILLIC CAPITAL LETTER ER
р → r ; # CYRILLIC SMALL LETTER ER
С → S ; # CYRILLIC CAPITAL LETTER ES
с → s ; # CYRILLIC SMALL LETTER ES
Т → T ; # CYRILLIC CAPITAL LETTER TE
т → t ; # CYRILLIC SMALL LETTER TE
У → U ; # CYRILLIC CAPITAL LETTER U
у → u ; # CYRILLIC SMALL LETTER U
Ү → Ü ; # CYRILLIC CAPITAL LETTER STRAIGHT U
ү → ü ; # CYRILLIC SMALL LETTER STRAIGHT U
Ф → F ; # CYRILLIC CAPITAL LETTER EF
ф → f ; # CYRILLIC SMALL LETTER EF
Х → X ; # CYRILLIC CAPITAL LETTER HA
х → x ; # CYRILLIC SMALL LETTER HA
Һ → H ; # CYRILLIC CAPITAL LETTER SHHA
һ → h ; # CYRILLIC SMALL LETTER SHHA
Ч → Ç ; # CYRILLIC CAPITAL LETTER CHE
ч → ç ; # CYRILLIC SMALL LETTER CHE
Ҹ → C ; # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
ҹ → c ; # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
Ш → Ş ; # CYRILLIC CAPITAL LETTER SHA
ш → ş ; # CYRILLIC SMALL LETTER SHA
#
########################################################################
#
# BGN Page 13 Rule 33, maps the symbol onto itself and
# is ignored here for computational efficiency.
#
# $prime → $prime ; # RIGHT SINGLE QUOTATION MARK
#
########################################################################
#
########################################################################
#
# BGN Page 14 Note 2:
#
# The obsolete characters й, э, ю, and я should be romanized ẏ, ė,
# yu\u0307, and yȧ.
#
########################################################################
#
Й → Ẏ ; # CYRILLIC CAPITAL LETTER HARD SIGN
й → ẏ ; # CYRILLIC SMALL LETTER HARD SIGN
Э → Ė ; # CYRILLIC CAPITAL LETTER SOFT SIGN
э → ė ; # CYRILLIC SMALL LETTER SOFT SIGN
Ю} $lower → Yu\u0307 ; # CYRILLIC CAPITAL LETTER YU
Ю → YU\u0307 ; # CYRILLIC CAPITAL LETTER YU
ю → yu\u0307 ;  # CYRILLIC SMALL LETTER YU
Я} $lower → Yȧ ; # CYRILLIC CAPITAL LETTER YA
Я → YȦ ; # CYRILLIC CAPITAL LETTER YA
я → yȧ ; # CYRILLIC SMALL LETTER YA
#
#
########################################################################
#
# End BGN Page 14 Note 2.
#
########################################################################

