diff mbox series

SUBJECT: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872]

Message ID 9d38a084-3ada-827b-0d5d-aa38131ff64e@kobylkin.com
State New
Headers show
Series SUBJECT: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] | expand

Commit Message

Diego (Egor) Kobylkin July 17, 2018, 7:34 p.m. UTC
Dear locale maintainers,

fix the glibc bug 2872 "Transliteration Cyrillic -> ASCII fails"

https://sourceware.org/bugzilla/show_bug.cgi?id=2872 [1]

add Cyrillic transliteration table translit_cyrillic file

https://sourceware.org/bugzilla/attachment.cgi?id=8591 [7]

to localedata/locales/ and include it in all your locales going forward.

Patch included inline below.


From this patch I have excluded locales that already mention cyrillic or
have a transliteration table for it:
az_AZ
iso14651_t1_common
ky_KG
mn_MN
sr_RS
tg_TJ
tk_TM
tt_RU
uk_UA
uz_UZ
uz_UZ@cyrillic

Their maintainers are requested to make an explicit decision on how and
whether at all to include this patch.



Current bug effect:

The glibc wiki explicitly lists this use case as the test example

https://sourceware.org/glibc/wiki/Locales#Testing_Locales :

LC_ALL=$LOCALE.UTF-8 iconv -f UTF-8 -t ASCII//TRANSLIT <
translit-test-input.txt

currently it fails on Cyrillic texts in most locales including ru_RU [1]
[8] [9]:

LC_ALL=ru_RU.UTF-8 iconv -f UTF-8 -t ASCII//TRANSLIT <
translit-test-input.txt |grep CYRILLIC

CYRILLIC ????? ??? ???? ?????? ??????????? ?????, ?? ????? ?? ???.

 - It produces a string of question marks and spaces.

This is what it should produce and it does so after the patch applied:

CYRILLIC S``esh` eshhyo e`tix myagkix franczuzskix bulok, da vy'pej zhe
chayu.


Root problem and the fix:

The root problem is the missing transliteration table that I am
supplying here. Furthermore it has to be referenced/included into the
active locale at the compliation time to be used by iconv.



COMMIT MESSAGE:
This translit_cyrillic table enables conversion (e.g. with iconv) from a
UTF-8 encoded text based on Cyrillic alphabet to a ASCII//TRANSLIT text.

While a UTF-encoded Cyrillic text requires Cyrillic fonts the result of
a transliteration has only ASCII codes but still can be read by a native
speaker. Among other things it is useful for processing the Cyrillic
texts and filenames by programs or on systems that are not specifically
prepared to work with Cyrillic, don't have corresponding fonts installed
or can't handle UTF-8.

The transliteration table itself is attached as a file translit_cyrillic
[7]. Its content (mapping) is based on GOST 7.79-2000 official source
(Federal Agency on Technical Regulating and Metrology Of Russian
Federation [2]). Technically an independent but identical source [3] was
used and prepared in a spreadsheet [6].

The documentation suggests that the transliteration tables inclusion is
done by adding *include "translit_cyrillic";""* string into LC_CTYPE
translit_start section
http://man7.org/linux/man-pages/man5/locale.5.html [5]
Practically I have searched for all locales that have a
translit_start/end stance and generated a patch for them.

The Cyrillic transliteration of e.g. Russian text may have already
worked to some extent for mn_MN, sr_RS, tk_TM, uz_UZ, uk_UA locales that
have their transliteration tables included inline.
However it would not be the standard Cyrillic transliteration as
described above.
I am excluding these locales from this proposed patch. I have written
directly to locale maintainer emails listed in the files but have
received not reply so far except from Volodymyr Lisivka
<vlisivka@gmail.com> (uk_UA) who has confirmed the exclusion.

Links:

[1] This bug entry https://sourceware.org/bugzilla/show_bug.cgi?id=2872
[2] GOST 7.79-2000 official source
http://protect.gost.ru/document.aspx?control=7&id=130715 (is only
available in low quality gif format)
[3] http://transliteration.ru/gost-7-79-2000/ and
http://www.yfermer.ru/specifications/285821.html
[4] Wikipedia article on Cyrillic transliteration with Latin alphabet
https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D0%B0_%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%D0%B8%D1%86%D0%B5%D0%B9
[5] http://man7.org/linux/man-pages/man5/locale.5.html
[6] Spreadsheet for generating translit_cyrillic
https://sourceware.org/bugzilla/attachment.cgi?id=8590
[7] translit_cyrillic https://sourceware.org/bugzilla/attachment.cgi?id=8591
[8] https://sourceware.org/glibc/wiki/Locales#Testing_Locales
[9] translit-test-input.txt
https://sourceware.org/bugzilla/attachment.cgi?id=8618

Best regards,
Egor Kobylkin

---
2018-07-17  Egor Kobylkin  <egor@kobylkin.com>

	[BZ #2872]
	* locales/translit_cyrillic: add Russian GOST 7.79-2000 transliteration
table from Cyrillic to Latin.
	* locales/C: add include "translit_cyrillic";"" to LC_CTYPE translit
section.
	* locales/aa_DJ: likewise
	* locales/af_ZA: likewise
	* locales/ak_GH: likewise
	* locales/am_ET: likewise
	* locales/ar_EG: likewise
	* locales/be_BY: likewise
	* locales/bem_ZM: likewise
	* locales/ber_DZ: likewise
	* locales/ber_MA: likewise
	* locales/bg_BG: likewise
	* locales/bi_VU: likewise
	* locales/bn_BD: likewise
	* locales/bo_CN: likewise
	* locales/ca_ES: likewise
	* locales/ce_RU: likewise
	* locales/cs_CZ: likewise
	* locales/cv_RU: likewise
	* locales/cy_GB: likewise
	* locales/da_DK: likewise
	* locales/de_DE: likewise
	* locales/dv_MV: likewise
	* locales/dz_BT: likewise
	* locales/el_GR: likewise
	* locales/en_GB: likewise
	* locales/en_NG: likewise
	* locales/en_ZM: likewise
	* locales/es_CU: likewise
	* locales/es_ES: likewise
	* locales/et_EE: likewise
	* locales/fa_IR: likewise
	* locales/ff_SN: likewise
	* locales/fi_FI: likewise
	* locales/fr_FR: likewise
	* locales/ga_IE: likewise
	* locales/gd_GB: likewise
	* locales/gu_IN: likewise
	* locales/gv_GB: likewise
	* locales/he_IL: likewise
	* locales/hi_IN: likewise
	* locales/hif_FJ: likewise
	* locales/hr_HR: likewise
	* locales/ht_HT: likewise
	* locales/hu_HU: likewise
	* locales/hy_AM: likewise
	* locales/id_ID: likewise
	* locales/is_IS: likewise
	* locales/it_IT: likewise
	* locales/ja_JP: likewise
	* locales/kk_KZ: likewise
	* locales/km_KH: likewise
	* locales/kn_IN: likewise
	* locales/ko_KR: likewise
	* locales/ks_IN: likewise
	* locales/kw_GB: likewise
	* locales/lb_LU: likewise
	* locales/lg_UG: likewise
	* locales/lij_IT: likewise
	* locales/ln_CD: likewise
	* locales/lo_LA: likewise
	* locales/lt_LT: likewise
	* locales/lv_LV: likewise
	* locales/mg_MG: likewise
	* locales/mhr_RU: likewise
	* locales/mk_MK: likewise
	* locales/ml_IN: likewise
	* locales/ms_MY: likewise
	* locales/mt_MT: likewise
	* locales/nan_TW@latin: likewise
	* locales/nb_NO: likewise
	* locales/ne_NP: likewise
	* locales/nhn_MX: likewise
	* locales/niu_NU: likewise
	* locales/niu_NZ: likewise
	* locales/nl_NL: likewise
	* locales/nr_ZA: likewise
	* locales/oc_FR: likewise
	* locales/om_KE: likewise
	* locales/or_IN: likewise
	* locales/os_RU: likewise
	* locales/pa_IN: likewise
	* locales/pa_PK: likewise
	* locales/pl_PL: likewise
	* locales/pt_PT: likewise
	* locales/quz_PE: likewise
	* locales/ro_RO: likewise
	* locales/ru_RU: likewise
	* locales/rw_RW: likewise
	* locales/sa_IN: likewise
	* locales/sd_IN: likewise
	* locales/sd_IN@devanagari: likewise
	* locales/sd_PK: likewise
	* locales/se_NO: likewise
	* locales/sgs_LT: likewise
	* locales/si_LK: likewise
	* locales/sk_SK: likewise
	* locales/sl_SI: likewise
	* locales/sm_WS: likewise
	* locales/so_SO: likewise
	* locales/sq_AL: likewise
	* locales/ss_ZA: likewise
	* locales/st_ZA: likewise
	* locales/sv_SE: likewise
	* locales/sw_KE: likewise
	* locales/ta_IN: likewise
	* locales/te_IN: likewise
	* locales/th_TH: likewise
	* locales/ti_ET: likewise
	* locales/tn_ZA: likewise
	* locales/to_TO: likewise
	* locales/tpi_PG: likewise
	* locales/tr_TR: likewise
	* locales/ts_ZA: likewise
	* locales/unm_US: likewise
	* locales/ur_IN: likewise
	* locales/ur_PK: likewise
	* locales/ve_ZA: likewise
	* locales/vi_VN: likewise
	* locales/wa_BE: likewise
	* locales/wo_SN: likewise
	* locales/xh_ZA: likewise
	* locales/yi_US: likewise
	* locales/zh_CN: likewise
	* locales/zu_ZA: likewise

Comments

Carlos O'Donell July 17, 2018, 7:40 p.m. UTC | #1
On 07/17/2018 03:34 PM, Egor Kobylkin wrote:
> Dear locale maintainers,
> 
> fix the glibc bug 2872 "Transliteration Cyrillic -> ASCII fails"

We are currently preparing for the 2.28 release and it may take
a while to review this change and the structure of the changes,
and the data itself.

Is it OK if this material is reviewed for 2.29 inclusion (after
August 1st)?

Cheers,
Carlos.
Diego (Egor) Kobylkin July 17, 2018, 7:50 p.m. UTC | #2
On 17.07.2018 21:40, Carlos O'Donell wrote:
> On 07/17/2018 03:34 PM, Egor Kobylkin wrote:
>> Dear locale maintainers,
>>
>> fix the glibc bug 2872 "Transliteration Cyrillic -> ASCII fails"
> 
> We are currently preparing for the 2.28 release and it may take
> a while to review this change and the structure of the changes,
> and the data itself.
> 
> Is it OK if this material is reviewed for 2.29 inclusion (after
> August 1st)?

It's fine with me to postpone it for for 2.29 inclusion (after August 1st).
Should I send a reminder in August?

Bests,
Egor
Carlos O'Donell July 17, 2018, 7:59 p.m. UTC | #3
On 07/17/2018 03:50 PM, Egor Kobylkin wrote:
> On 17.07.2018 21:40, Carlos O'Donell wrote:
>> On 07/17/2018 03:34 PM, Egor Kobylkin wrote:
>>> Dear locale maintainers,
>>>
>>> fix the glibc bug 2872 "Transliteration Cyrillic -> ASCII fails"
>>
>> We are currently preparing for the 2.28 release and it may take
>> a while to review this change and the structure of the changes,
>> and the data itself.
>>
>> Is it OK if this material is reviewed for 2.29 inclusion (after
>> August 1st)?
> 
> It's fine with me to postpone it for for 2.29 inclusion (after August 1st).
> Should I send a reminder in August?

Yes please, ping the original patches again in August and we can
review. In the meantime others may feel free to review, but we won't
consider them for inclusion yet e.g. don't block the release.
diff mbox series

Patch

diff -uNr a/localedata/locales/C b/localedata/locales/C
--- a/localedata/locales/C	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/C	2018-07-17 17:55:47.000000000 +0000
@@ -2292,6 +2292,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/aa_DJ b/localedata/locales/aa_DJ
--- a/localedata/locales/aa_DJ	2018-07-17 17:49:12.000000000 +0000
+++ b/localedata/locales/aa_DJ	2018-07-17 17:55:47.000000000 +0000
@@ -70,6 +70,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/af_ZA b/localedata/locales/af_ZA
--- a/localedata/locales/af_ZA	2018-07-17 17:49:12.000000000 +0000
+++ b/localedata/locales/af_ZA	2018-07-17 17:55:47.000000000 +0000
@@ -72,6 +72,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ak_GH b/localedata/locales/ak_GH
--- a/localedata/locales/ak_GH	2018-07-17 17:49:12.000000000 +0000
+++ b/localedata/locales/ak_GH	2018-07-17 17:55:47.000000000 +0000
@@ -56,6 +56,7 @@ 
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/am_ET b/localedata/locales/am_ET
--- a/localedata/locales/am_ET	2018-07-17 17:49:12.000000000 +0000
+++ b/localedata/locales/am_ET	2018-07-17 17:55:47.000000000 +0000
@@ -1396,6 +1396,7 @@ 
 <U137A>    <U0060><U0039><U0030>
 <U137B>    <U0060><U0031><U0030><U0030>
 <U137C>    <U0060><U0031><U0030><U0030><U0030><U0030>
+include "translit_cyrillic";""
 translit_end
 %
 END LC_CTYPE
diff -uNr a/localedata/locales/ar_EG b/localedata/locales/ar_EG
--- a/localedata/locales/ar_EG	2018-07-17 17:49:12.000000000 +0000
+++ b/localedata/locales/ar_EG	2018-07-17 17:55:48.000000000 +0000
@@ -44,6 +44,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/be_BY b/localedata/locales/be_BY
--- a/localedata/locales/be_BY	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/be_BY	2018-07-17 17:55:48.000000000 +0000
@@ -69,6 +69,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/bem_ZM b/localedata/locales/bem_ZM
--- a/localedata/locales/bem_ZM	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/bem_ZM	2018-07-17 17:55:48.000000000 +0000
@@ -42,6 +42,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ber_DZ b/localedata/locales/ber_DZ
--- a/localedata/locales/ber_DZ	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/ber_DZ	2018-07-17 17:55:48.000000000 +0000
@@ -166,6 +166,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ber_MA b/localedata/locales/ber_MA
--- a/localedata/locales/ber_MA	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/ber_MA	2018-07-17 17:55:48.000000000 +0000
@@ -86,6 +86,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/bg_BG b/localedata/locales/bg_BG
--- a/localedata/locales/bg_BG	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/bg_BG	2018-07-17 17:55:48.000000000 +0000
@@ -49,6 +49,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/bi_VU b/localedata/locales/bi_VU
--- a/localedata/locales/bi_VU	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/bi_VU	2018-07-17 17:55:48.000000000 +0000
@@ -39,6 +39,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/bn_BD b/localedata/locales/bn_BD
--- a/localedata/locales/bn_BD	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/bn_BD	2018-07-17 17:55:48.000000000 +0000
@@ -63,6 +63,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/bo_CN b/localedata/locales/bo_CN
--- a/localedata/locales/bo_CN	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/bo_CN	2018-07-17 17:55:48.000000000 +0000
@@ -43,6 +43,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ca_ES b/localedata/locales/ca_ES
--- a/localedata/locales/ca_ES	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/ca_ES	2018-07-17 17:55:48.000000000 +0000
@@ -72,6 +72,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ce_RU b/localedata/locales/ce_RU
--- a/localedata/locales/ce_RU	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/ce_RU	2018-07-17 17:55:48.000000000 +0000
@@ -39,6 +39,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/cs_CZ b/localedata/locales/cs_CZ
--- a/localedata/locales/cs_CZ	2018-07-17 17:49:13.000000000 +0000
+++ b/localedata/locales/cs_CZ	2018-07-17 17:55:48.000000000 +0000
@@ -2311,6 +2311,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/cv_RU b/localedata/locales/cv_RU
--- a/localedata/locales/cv_RU	2018-07-17 17:49:14.000000000 +0000
+++ b/localedata/locales/cv_RU	2018-07-17 17:55:48.000000000 +0000
@@ -109,6 +109,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/cy_GB b/localedata/locales/cy_GB
--- a/localedata/locales/cy_GB	2018-07-17 17:49:14.000000000 +0000
+++ b/localedata/locales/cy_GB	2018-07-17 17:55:48.000000000 +0000
@@ -69,6 +69,7 @@ 
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/da_DK b/localedata/locales/da_DK
--- a/localedata/locales/da_DK	2018-07-17 17:49:14.000000000 +0000
+++ b/localedata/locales/da_DK	2018-07-17 17:55:48.000000000 +0000
@@ -167,6 +167,7 @@ 
 % LATIN SMALL LETTER O WITH STROKE -> "oe"
 <U00F8> "<U006F><U0338>";"<U006F><U0065>"

+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/de_DE b/localedata/locales/de_DE
--- a/localedata/locales/de_DE	2018-07-17 17:49:14.000000000 +0000
+++ b/localedata/locales/de_DE	2018-07-17 17:55:48.000000000 +0000
@@ -78,6 +78,7 @@ 
 % DOUBLE HIGH-REVERSED-9 QUOTATION MARK
 <U201F> <U00AB>;<U0022>

+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/dv_MV b/localedata/locales/dv_MV
--- a/localedata/locales/dv_MV	2018-07-17 17:49:14.000000000 +0000
+++ b/localedata/locales/dv_MV	2018-07-17 17:55:48.000000000 +0000
@@ -52,6 +52,7 @@ 
 include "translit_combining";""


+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/dz_BT b/localedata/locales/dz_BT
--- a/localedata/locales/dz_BT	2018-07-17 17:49:14.000000000 +0000
+++ b/localedata/locales/dz_BT	2018-07-17 17:55:48.000000000 +0000
@@ -60,6 +60,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/el_GR b/localedata/locales/el_GR
--- a/localedata/locales/el_GR	2018-07-17 17:49:14.000000000 +0000
+++ b/localedata/locales/el_GR	2018-07-17 17:55:48.000000000 +0000
@@ -59,6 +59,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/en_GB b/localedata/locales/en_GB
--- a/localedata/locales/en_GB	2018-07-17 17:49:14.000000000 +0000
+++ b/localedata/locales/en_GB	2018-07-17 17:55:48.000000000 +0000
@@ -55,6 +55,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/en_NG b/localedata/locales/en_NG
--- a/localedata/locales/en_NG	2018-07-17 17:49:14.000000000 +0000
+++ b/localedata/locales/en_NG	2018-07-17 17:55:48.000000000 +0000
@@ -50,6 +50,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/en_ZM b/localedata/locales/en_ZM
--- a/localedata/locales/en_ZM	2018-07-17 17:49:15.000000000 +0000
+++ b/localedata/locales/en_ZM	2018-07-17 17:55:48.000000000 +0000
@@ -42,6 +42,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/es_CU b/localedata/locales/es_CU
--- a/localedata/locales/es_CU	2018-07-17 17:49:15.000000000 +0000
+++ b/localedata/locales/es_CU	2018-07-17 17:55:48.000000000 +0000
@@ -59,6 +59,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/es_ES b/localedata/locales/es_ES
--- a/localedata/locales/es_ES	2018-07-17 17:49:15.000000000 +0000
+++ b/localedata/locales/es_ES	2018-07-17 17:55:49.000000000 +0000
@@ -73,6 +73,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/et_EE b/localedata/locales/et_EE
--- a/localedata/locales/et_EE	2018-07-17 17:49:15.000000000 +0000
+++ b/localedata/locales/et_EE	2018-07-17 17:55:49.000000000 +0000
@@ -109,6 +109,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/fa_IR b/localedata/locales/fa_IR
--- a/localedata/locales/fa_IR	2018-07-17 17:49:15.000000000 +0000
+++ b/localedata/locales/fa_IR	2018-07-17 17:55:49.000000000 +0000
@@ -79,6 +79,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ff_SN b/localedata/locales/ff_SN
--- a/localedata/locales/ff_SN	2018-07-17 17:49:15.000000000 +0000
+++ b/localedata/locales/ff_SN	2018-07-17 17:55:49.000000000 +0000
@@ -42,6 +42,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/fi_FI b/localedata/locales/fi_FI
--- a/localedata/locales/fi_FI	2018-07-17 17:49:15.000000000 +0000
+++ b/localedata/locales/fi_FI	2018-07-17 17:55:49.000000000 +0000
@@ -137,6 +137,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/fr_FR b/localedata/locales/fr_FR
--- a/localedata/locales/fr_FR	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/fr_FR	2018-07-17 17:55:49.000000000 +0000
@@ -59,6 +59,7 @@ 
 % In France, accents are simply omitted if they cannot be represented.
 include "translit_combining";""

+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/ga_IE b/localedata/locales/ga_IE
--- a/localedata/locales/ga_IE	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/ga_IE	2018-07-17 17:55:49.000000000 +0000
@@ -54,6 +54,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/gd_GB b/localedata/locales/gd_GB
--- a/localedata/locales/gd_GB	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/gd_GB	2018-07-17 17:55:49.000000000 +0000
@@ -47,6 +47,7 @@ 
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/gu_IN b/localedata/locales/gu_IN
--- a/localedata/locales/gu_IN	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/gu_IN	2018-07-17 17:55:49.000000000 +0000
@@ -62,6 +62,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/gv_GB b/localedata/locales/gv_GB
--- a/localedata/locales/gv_GB	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/gv_GB	2018-07-17 17:55:49.000000000 +0000
@@ -57,6 +57,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/he_IL b/localedata/locales/he_IL
--- a/localedata/locales/he_IL	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/he_IL	2018-07-17 17:55:49.000000000 +0000
@@ -59,6 +59,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/hi_IN b/localedata/locales/hi_IN
--- a/localedata/locales/hi_IN	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/hi_IN	2018-07-17 17:55:49.000000000 +0000
@@ -61,6 +61,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/hif_FJ b/localedata/locales/hif_FJ
--- a/localedata/locales/hif_FJ	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/hif_FJ	2018-07-17 17:55:49.000000000 +0000
@@ -37,6 +37,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/hr_HR b/localedata/locales/hr_HR
--- a/localedata/locales/hr_HR	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/hr_HR	2018-07-17 17:55:49.000000000 +0000
@@ -153,6 +153,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ht_HT b/localedata/locales/ht_HT
--- a/localedata/locales/ht_HT	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/ht_HT	2018-07-17 17:55:49.000000000 +0000
@@ -59,6 +59,7 @@ 
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/hu_HU b/localedata/locales/hu_HU
--- a/localedata/locales/hu_HU	2018-07-17 17:49:16.000000000 +0000
+++ b/localedata/locales/hu_HU	2018-07-17 17:55:49.000000000 +0000
@@ -478,6 +478,7 @@ 
 <U00FC> "<U0075><U0308>";"<U0075><U00A8>";"<U0075><U003A>"
 <U0171> "<U0075><U030B>";"<U0075><U02DD>";"<U0075><U0022>"

+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/hy_AM b/localedata/locales/hy_AM
--- a/localedata/locales/hy_AM	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/hy_AM	2018-07-17 17:55:49.000000000 +0000
@@ -77,6 +77,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/id_ID b/localedata/locales/id_ID
--- a/localedata/locales/id_ID	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/id_ID	2018-07-17 17:55:49.000000000 +0000
@@ -55,6 +55,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/is_IS b/localedata/locales/is_IS
--- a/localedata/locales/is_IS	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/is_IS	2018-07-17 17:55:49.000000000 +0000
@@ -2161,6 +2161,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/it_IT b/localedata/locales/it_IT
--- a/localedata/locales/it_IT	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/it_IT	2018-07-17 17:55:49.000000000 +0000
@@ -59,6 +59,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ja_JP b/localedata/locales/ja_JP
--- a/localedata/locales/ja_JP	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/ja_JP	2018-07-17 17:55:49.000000000 +0000
@@ -1682,6 +1682,7 @@ 
 include "translit_combining";""
 include "translit_cjk_variants";""

+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/kk_KZ b/localedata/locales/kk_KZ
--- a/localedata/locales/kk_KZ	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/kk_KZ	2018-07-17 17:55:50.000000000 +0000
@@ -158,6 +158,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/km_KH b/localedata/locales/km_KH
--- a/localedata/locales/km_KH	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/km_KH	2018-07-17 17:55:50.000000000 +0000
@@ -873,6 +873,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/kn_IN b/localedata/locales/kn_IN
--- a/localedata/locales/kn_IN	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/kn_IN	2018-07-17 17:55:50.000000000 +0000
@@ -63,6 +63,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ko_KR b/localedata/locales/ko_KR
--- a/localedata/locales/ko_KR	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/ko_KR	2018-07-17 17:55:50.000000000 +0000
@@ -6099,6 +6099,7 @@ 
 include "translit_combining";""
 include "translit_hangul";""

+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/ks_IN b/localedata/locales/ks_IN
--- a/localedata/locales/ks_IN	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/ks_IN	2018-07-17 17:55:50.000000000 +0000
@@ -46,6 +46,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/kw_GB b/localedata/locales/kw_GB
--- a/localedata/locales/kw_GB	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/kw_GB	2018-07-17 17:55:50.000000000 +0000
@@ -58,6 +58,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/lb_LU b/localedata/locales/lb_LU
--- a/localedata/locales/lb_LU	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/lb_LU	2018-07-17 17:55:50.000000000 +0000
@@ -78,6 +78,7 @@ 
 % LATIN SMALL LETTER E WITH CIRCUMFLEX
 <U00EA> "<U0065><U005E>"

+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/lg_UG b/localedata/locales/lg_UG
--- a/localedata/locales/lg_UG	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/lg_UG	2018-07-17 17:55:50.000000000 +0000
@@ -57,6 +57,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/lij_IT b/localedata/locales/lij_IT
--- a/localedata/locales/lij_IT	2018-07-17 17:49:17.000000000 +0000
+++ b/localedata/locales/lij_IT	2018-07-17 17:55:50.000000000 +0000
@@ -47,6 +47,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ln_CD b/localedata/locales/ln_CD
--- a/localedata/locales/ln_CD	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/ln_CD	2018-07-17 17:55:50.000000000 +0000
@@ -39,6 +39,7 @@ 
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/lo_LA b/localedata/locales/lo_LA
--- a/localedata/locales/lo_LA	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/lo_LA	2018-07-17 17:55:50.000000000 +0000
@@ -51,6 +51,7 @@ 
 copy "i18n"
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/lt_LT b/localedata/locales/lt_LT
--- a/localedata/locales/lt_LT	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/lt_LT	2018-07-17 17:55:50.000000000 +0000
@@ -77,6 +77,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/lv_LV b/localedata/locales/lv_LV
--- a/localedata/locales/lv_LV	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/lv_LV	2018-07-17 17:55:50.000000000 +0000
@@ -2122,6 +2122,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/mg_MG b/localedata/locales/mg_MG
--- a/localedata/locales/mg_MG	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/mg_MG	2018-07-17 17:55:50.000000000 +0000
@@ -55,6 +55,7 @@ 
 % Accents are simply omitted if they cannot be represented.
 include "translit_combining";""

+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/mhr_RU b/localedata/locales/mhr_RU
--- a/localedata/locales/mhr_RU	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/mhr_RU	2018-07-17 17:55:50.000000000 +0000
@@ -59,6 +59,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/mk_MK b/localedata/locales/mk_MK
--- a/localedata/locales/mk_MK	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/mk_MK	2018-07-17 17:55:50.000000000 +0000
@@ -49,6 +49,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ml_IN b/localedata/locales/ml_IN
--- a/localedata/locales/ml_IN	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/ml_IN	2018-07-17 17:55:50.000000000 +0000
@@ -60,6 +60,7 @@ 

 translit_start
 include     "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 %
diff -uNr a/localedata/locales/ms_MY b/localedata/locales/ms_MY
--- a/localedata/locales/ms_MY	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/ms_MY	2018-07-17 17:55:50.000000000 +0000
@@ -45,6 +45,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/mt_MT b/localedata/locales/mt_MT
--- a/localedata/locales/mt_MT	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/mt_MT	2018-07-17 17:55:50.000000000 +0000
@@ -47,6 +47,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/nan_TW@latin
b/localedata/locales/nan_TW@latin
--- a/localedata/locales/nan_TW@latin	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/nan_TW@latin	2018-07-17 17:55:50.000000000 +0000
@@ -53,6 +53,7 @@ 
 % accents are simply omitted if they cannot be represented.
 include "translit_combining";""

+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/nb_NO b/localedata/locales/nb_NO
--- a/localedata/locales/nb_NO	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/nb_NO	2018-07-17 17:55:50.000000000 +0000
@@ -154,6 +154,7 @@ 
 % LATIN SMALL LETTER O WITH STROKE -> "oe"
 <U00F8> "<U006F><U0338>";"<U006F><U0065>"

+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ne_NP b/localedata/locales/ne_NP
--- a/localedata/locales/ne_NP	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/ne_NP	2018-07-17 17:55:50.000000000 +0000
@@ -43,6 +43,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/nhn_MX b/localedata/locales/nhn_MX
--- a/localedata/locales/nhn_MX	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/nhn_MX	2018-07-17 17:55:51.000000000 +0000
@@ -60,6 +60,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/niu_NU b/localedata/locales/niu_NU
--- a/localedata/locales/niu_NU	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/niu_NU	2018-07-17 17:55:51.000000000 +0000
@@ -60,6 +60,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/niu_NZ b/localedata/locales/niu_NZ
--- a/localedata/locales/niu_NZ	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/niu_NZ	2018-07-17 17:55:51.000000000 +0000
@@ -60,6 +60,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/nl_NL b/localedata/locales/nl_NL
--- a/localedata/locales/nl_NL	2018-07-17 17:49:18.000000000 +0000
+++ b/localedata/locales/nl_NL	2018-07-17 17:55:51.000000000 +0000
@@ -57,6 +57,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/nr_ZA b/localedata/locales/nr_ZA
--- a/localedata/locales/nr_ZA	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/nr_ZA	2018-07-17 17:55:51.000000000 +0000
@@ -66,6 +66,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/oc_FR b/localedata/locales/oc_FR
--- a/localedata/locales/oc_FR	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/oc_FR	2018-07-17 17:55:51.000000000 +0000
@@ -62,6 +62,7 @@ 
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/om_KE b/localedata/locales/om_KE
--- a/localedata/locales/om_KE	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/om_KE	2018-07-17 17:55:51.000000000 +0000
@@ -140,6 +140,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/or_IN b/localedata/locales/or_IN
--- a/localedata/locales/or_IN	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/or_IN	2018-07-17 17:55:51.000000000 +0000
@@ -62,6 +62,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/os_RU b/localedata/locales/os_RU
--- a/localedata/locales/os_RU	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/os_RU	2018-07-17 17:55:51.000000000 +0000
@@ -70,6 +70,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/pa_IN b/localedata/locales/pa_IN
--- a/localedata/locales/pa_IN	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/pa_IN	2018-07-17 17:55:51.000000000 +0000
@@ -60,6 +60,7 @@ 

 translit_start
 include     "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/pa_PK b/localedata/locales/pa_PK
--- a/localedata/locales/pa_PK	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/pa_PK	2018-07-17 17:55:51.000000000 +0000
@@ -58,6 +58,7 @@ 
 % Farsi yeh -> yeh
 <U06CC> "<U064A>"

+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/pl_PL b/localedata/locales/pl_PL
--- a/localedata/locales/pl_PL	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/pl_PL	2018-07-17 17:55:51.000000000 +0000
@@ -142,6 +142,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/pt_PT b/localedata/locales/pt_PT
--- a/localedata/locales/pt_PT	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/pt_PT	2018-07-17 17:55:51.000000000 +0000
@@ -59,6 +59,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/quz_PE b/localedata/locales/quz_PE
--- a/localedata/locales/quz_PE	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/quz_PE	2018-07-17 17:55:51.000000000 +0000
@@ -57,6 +57,7 @@ 
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ro_RO b/localedata/locales/ro_RO
--- a/localedata/locales/ro_RO	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/ro_RO	2018-07-17 17:55:51.000000000 +0000
@@ -144,6 +144,7 @@ 
 <U0162> "<U021A>";"<U0054>"
 <U0163> "<U021B>";"<U0074>"

+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ru_RU b/localedata/locales/ru_RU
--- a/localedata/locales/ru_RU	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/ru_RU	2018-07-17 17:55:51.000000000 +0000
@@ -74,6 +74,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/rw_RW b/localedata/locales/rw_RW
--- a/localedata/locales/rw_RW	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/rw_RW	2018-07-17 17:55:51.000000000 +0000
@@ -45,6 +45,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sa_IN b/localedata/locales/sa_IN
--- a/localedata/locales/sa_IN	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/sa_IN	2018-07-17 17:55:51.000000000 +0000
@@ -44,6 +44,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sd_IN b/localedata/locales/sd_IN
--- a/localedata/locales/sd_IN	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/sd_IN	2018-07-17 17:55:51.000000000 +0000
@@ -46,6 +46,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sd_IN@devanagari
b/localedata/locales/sd_IN@devanagari
--- a/localedata/locales/sd_IN@devanagari	2018-07-17 17:49:19.000000000
+0000
+++ b/localedata/locales/sd_IN@devanagari	2018-07-17 17:55:51.000000000
+0000
@@ -44,6 +44,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sd_PK b/localedata/locales/sd_PK
--- a/localedata/locales/sd_PK	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/sd_PK	2018-07-17 17:55:51.000000000 +0000
@@ -39,6 +39,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/se_NO b/localedata/locales/se_NO
--- a/localedata/locales/se_NO	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/se_NO	2018-07-17 17:55:51.000000000 +0000
@@ -205,6 +205,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sgs_LT b/localedata/locales/sgs_LT
--- a/localedata/locales/sgs_LT	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/sgs_LT	2018-07-17 17:55:52.000000000 +0000
@@ -59,6 +59,7 @@ 
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/si_LK b/localedata/locales/si_LK
--- a/localedata/locales/si_LK	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/si_LK	2018-07-17 17:55:52.000000000 +0000
@@ -45,6 +45,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sk_SK b/localedata/locales/sk_SK
--- a/localedata/locales/sk_SK	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/sk_SK	2018-07-17 17:55:52.000000000 +0000
@@ -68,6 +68,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sl_SI b/localedata/locales/sl_SI
--- a/localedata/locales/sl_SI	2018-07-17 17:49:19.000000000 +0000
+++ b/localedata/locales/sl_SI	2018-07-17 17:55:52.000000000 +0000
@@ -91,6 +91,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sm_WS b/localedata/locales/sm_WS
--- a/localedata/locales/sm_WS	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/sm_WS	2018-07-17 17:55:52.000000000 +0000
@@ -37,6 +37,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/so_SO b/localedata/locales/so_SO
--- a/localedata/locales/so_SO	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/so_SO	2018-07-17 17:55:52.000000000 +0000
@@ -70,6 +70,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sq_AL b/localedata/locales/sq_AL
--- a/localedata/locales/sq_AL	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/sq_AL	2018-07-17 17:55:52.000000000 +0000
@@ -45,6 +45,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ss_ZA b/localedata/locales/ss_ZA
--- a/localedata/locales/ss_ZA	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/ss_ZA	2018-07-17 17:55:52.000000000 +0000
@@ -68,6 +68,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/st_ZA b/localedata/locales/st_ZA
--- a/localedata/locales/st_ZA	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/st_ZA	2018-07-17 17:55:52.000000000 +0000
@@ -64,6 +64,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sv_SE b/localedata/locales/sv_SE
--- a/localedata/locales/sv_SE	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/sv_SE	2018-07-17 17:55:52.000000000 +0000
@@ -139,6 +139,7 @@ 
 % LATIN SMALL LETTER O WITH STROKE -> "oe"
 <U00F8> "<U006F><U0338>";"<U006F><U0065>"

+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/sw_KE b/localedata/locales/sw_KE
--- a/localedata/locales/sw_KE	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/sw_KE	2018-07-17 17:55:52.000000000 +0000
@@ -44,6 +44,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ta_IN b/localedata/locales/ta_IN
--- a/localedata/locales/ta_IN	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/ta_IN	2018-07-17 17:55:52.000000000 +0000
@@ -63,6 +63,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/te_IN b/localedata/locales/te_IN
--- a/localedata/locales/te_IN	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/te_IN	2018-07-17 17:55:52.000000000 +0000
@@ -63,6 +63,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/th_TH b/localedata/locales/th_TH
--- a/localedata/locales/th_TH	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/th_TH	2018-07-17 17:55:52.000000000 +0000
@@ -58,6 +58,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ti_ET b/localedata/locales/ti_ET
--- a/localedata/locales/ti_ET	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/ti_ET	2018-07-17 17:55:52.000000000 +0000
@@ -866,6 +866,7 @@ 
 <U137C>    <U0060><U0031><U0030><U0030><U0030><U0030>

 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 %
 END LC_CTYPE
diff -uNr a/localedata/locales/tn_ZA b/localedata/locales/tn_ZA
--- a/localedata/locales/tn_ZA	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/tn_ZA	2018-07-17 17:55:52.000000000 +0000
@@ -69,6 +69,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/to_TO b/localedata/locales/to_TO
--- a/localedata/locales/to_TO	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/to_TO	2018-07-17 17:55:52.000000000 +0000
@@ -36,6 +36,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/tpi_PG b/localedata/locales/tpi_PG
--- a/localedata/locales/tpi_PG	2018-07-17 17:49:20.000000000 +0000
+++ b/localedata/locales/tpi_PG	2018-07-17 17:55:52.000000000 +0000
@@ -37,6 +37,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/tr_TR b/localedata/locales/tr_TR
--- a/localedata/locales/tr_TR	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/tr_TR	2018-07-17 17:55:52.000000000 +0000
@@ -2430,6 +2430,7 @@ 

 % TURKISH LIRA SIGN
 <U20BA> "<U0054><U004C>"
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/translit_cyrillic
b/localedata/locales/translit_cyrillic
--- a/localedata/locales/translit_cyrillic	1970-01-01 00:00:00.000000000
+0000
+++ b/localedata/locales/translit_cyrillic	2018-07-17 17:55:52.000000000
+0000
@@ -0,0 +1,151 @@ 
+escape_char /
+comment_char %
+
+% Transliterations that converts cyrillic letters to ascii symbols
inspired by GOST 7.79-2000
+% https://sourceware.org/bugzilla/show_bug.cgi?id=2872
+% Generated from UnicodeData.txt with
+% https://sourceware.org/bugzilla/attachment.cgi?id=8590
+% Up to three characters are required to do a reversible transliteration.
+
+LC_CTYPE
+
+translit_start
+
+
+% CYRILLIC CAPITAL LETTER IO
+<U0401> "<U0059><U004F>";<U0059>
+% CYRILLIC CAPITAL LETTER A
+<U0410> <U0041>
+% CYRILLIC CAPITAL LETTER BE
+<U0411> <U0042>
+% CYRILLIC CAPITAL LETTER VE
+<U0412> <U0056>
+% CYRILLIC CAPITAL LETTER GHE
+<U0413> <U0047>
+% CYRILLIC CAPITAL LETTER DE
+<U0414> <U0044>
+% CYRILLIC CAPITAL LETTER IE
+<U0415> <U0045>
+% CYRILLIC CAPITAL LETTER ZHE
+<U0416> "<U005A><U0048>";<U005A>
+% CYRILLIC CAPITAL LETTER ZE
+<U0417> <U005A>
+% CYRILLIC CAPITAL LETTER I
+<U0418> <U0049>
+% CYRILLIC CAPITAL LETTER SHORT I
+<U0419> <U004A>
+% CYRILLIC CAPITAL LETTER KA
+<U041A> <U004B>
+% CYRILLIC CAPITAL LETTER EL
+<U041B> <U004C>
+% CYRILLIC CAPITAL LETTER EM
+<U041C> <U004D>
+% CYRILLIC CAPITAL LETTER EN
+<U041D> <U004E>
+% CYRILLIC CAPITAL LETTER O
+<U041E> <U004F>
+% CYRILLIC CAPITAL LETTER PE
+<U041F> <U0050>
+% CYRILLIC CAPITAL LETTER ER
+<U0420> <U0052>
+% CYRILLIC CAPITAL LETTER ES
+<U0421> <U0053>
+% CYRILLIC CAPITAL LETTER TE
+<U0422> <U0054>
+% CYRILLIC CAPITAL LETTER U
+<U0423> <U0055>
+% CYRILLIC CAPITAL LETTER EF
+<U0424> <U0046>
+% CYRILLIC CAPITAL LETTER HA
+<U0425> <U0058>
+% CYRILLIC CAPITAL LETTER TSE
+<U0426> "<U0043><U005A>";<U0043>
+% CYRILLIC CAPITAL LETTER CHE
+<U0427> "<U0043><U0048>";<U0043>
+% CYRILLIC CAPITAL LETTER SHA
+<U0428> "<U0053><U0048>";<U0053>
+% CYRILLIC CAPITAL LETTER SHCHA
+<U0429> "<U0053><U0048><U0048>";<U0053>
+% CYRILLIC CAPITAL LETTER HARD SIGN
+<U042A> "<U0060><U0060>";<U0060>
+% CYRILLIC CAPITAL LETTER YERU
+<U042B> "<U0059><U0027>";<U0059>
+% CYRILLIC CAPITAL LETTER SOFT SIGN
+<U042C> <U0060>
+% CYRILLIC CAPITAL LETTER E
+<U042D> "<U0045><U0060>";<U0045>
+% CYRILLIC CAPITAL LETTER YU
+<U042E> "<U0059><U0055>";<U0059>
+% CYRILLIC CAPITAL LETTER YA
+<U042F> "<U0059><U0041>";<U0059>
+% CYRILLIC SMALL LETTER A
+<U0430> <U0061>
+% CYRILLIC SMALL LETTER BE
+<U0431> <U0062>
+% CYRILLIC SMALL LETTER VE
+<U0432> <U0076>
+% CYRILLIC SMALL LETTER GHE
+<U0433> <U0067>
+% CYRILLIC SMALL LETTER DE
+<U0434> <U0064>
+% CYRILLIC SMALL LETTER IE
+<U0435> <U0065>
+% CYRILLIC SMALL LETTER ZHE
+<U0436> "<U007A><U0068>";<U007A>
+% CYRILLIC SMALL LETTER ZE
+<U0437> <U007A>
+% CYRILLIC SMALL LETTER I
+<U0438> <U0069>
+% CYRILLIC SMALL LETTER SHORT I
+<U0439> <U006A>
+% CYRILLIC SMALL LETTER KA
+<U043A> <U006B>
+% CYRILLIC SMALL LETTER EL
+<U043B> <U006C>
+% CYRILLIC SMALL LETTER EM
+<U043C> <U006D>
+% CYRILLIC SMALL LETTER EN
+<U043D> <U006E>
+% CYRILLIC SMALL LETTER O
+<U043E> <U006F>
+% CYRILLIC SMALL LETTER PE
+<U043F> <U0070>
+% CYRILLIC SMALL LETTER ER
+<U0440> <U0072>
+% CYRILLIC SMALL LETTER ES
+<U0441> <U0073>
+% CYRILLIC SMALL LETTER TE
+<U0442> <U0074>
+% CYRILLIC SMALL LETTER U
+<U0443> <U0075>
+% CYRILLIC SMALL LETTER EF
+<U0444> <U0066>
+% CYRILLIC SMALL LETTER HA
+<U0445> <U0078>
+% CYRILLIC SMALL LETTER TSE
+<U0446> "<U0063><U007A>";<U0063>
+% CYRILLIC SMALL LETTER CHE
+<U0447> "<U0063><U0068>";<U0063>
+% CYRILLIC SMALL LETTER SHA
+<U0448> "<U0073><U0068>";<U0073>
+% CYRILLIC SMALL LETTER SHCHA
+<U0449> "<U0073><U0068><U0068>";<U0073>
+% CYRILLIC SMALL LETTER HARD SIGN
+<U044A> "<U0060><U0060>";<U0060>
+% CYRILLIC SMALL LETTER YERU
+<U044B> "<U0079><U0027>";<U0079>
+% CYRILLIC SMALL LETTER SOFT SIGN
+<U044C> <U0060>
+% CYRILLIC SMALL LETTER E
+<U044D> "<U0065><U0060>";<U0065>
+% CYRILLIC SMALL LETTER YU
+<U044E> "<U0079><U0075>";<U0079>
+% CYRILLIC SMALL LETTER YA
+<U044F> "<U0079><U0061>";<U0079>
+% CYRILLIC SMALL LETTER IO
+<U0451> "<U0079><U006F>";<U0079>
+
+
+translit_end
+
+END LC_CTYPE
diff -uNr a/localedata/locales/ts_ZA b/localedata/locales/ts_ZA
--- a/localedata/locales/ts_ZA	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/ts_ZA	2018-07-17 17:55:52.000000000 +0000
@@ -64,6 +64,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/unm_US b/localedata/locales/unm_US
--- a/localedata/locales/unm_US	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/unm_US	2018-07-17 17:55:52.000000000 +0000
@@ -48,6 +48,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ur_IN b/localedata/locales/ur_IN
--- a/localedata/locales/ur_IN	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/ur_IN	2018-07-17 17:55:53.000000000 +0000
@@ -46,6 +46,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ur_PK b/localedata/locales/ur_PK
--- a/localedata/locales/ur_PK	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/ur_PK	2018-07-17 17:55:53.000000000 +0000
@@ -58,6 +58,7 @@ 
 % Farsi yeh -> yeh
 <U06CC> "<U064A>"

+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/ve_ZA b/localedata/locales/ve_ZA
--- a/localedata/locales/ve_ZA	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/ve_ZA	2018-07-17 17:55:53.000000000 +0000
@@ -67,6 +67,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/vi_VN b/localedata/locales/vi_VN
--- a/localedata/locales/vi_VN	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/vi_VN	2018-07-17 17:55:53.000000000 +0000
@@ -58,6 +58,7 @@ 
 % dong sign -> d// -> dd
 <U20AB> "<U0111>";"<U0064><U0064>"

+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/wa_BE b/localedata/locales/wa_BE
--- a/localedata/locales/wa_BE	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/wa_BE	2018-07-17 17:55:53.000000000 +0000
@@ -69,6 +69,7 @@ 
 <U00C5> "<U0041><U030A>";"<U0041>";"<U0041><U0055>"
 <U00E5> "<U0061><U030A>";"<U0061>";"<U0061><U0075>"

+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/wo_SN b/localedata/locales/wo_SN
--- a/localedata/locales/wo_SN	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/wo_SN	2018-07-17 17:55:53.000000000 +0000
@@ -55,6 +55,7 @@ 
 % Accents are simply omitted if they cannot be represented.
 include "translit_combining";""

+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/xh_ZA b/localedata/locales/xh_ZA
--- a/localedata/locales/xh_ZA	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/xh_ZA	2018-07-17 17:55:53.000000000 +0000
@@ -66,6 +66,7 @@ 

 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE

diff -uNr a/localedata/locales/yi_US b/localedata/locales/yi_US
--- a/localedata/locales/yi_US	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/yi_US	2018-07-17 17:55:53.000000000 +0000
@@ -73,6 +73,7 @@ 
 <U05F0> "<U05D5><U05D5>";"<U0077><U0077>"
 <U05F1> "<U05D5><U05D9>";"<U0077><U006A>"
 <U05F2> "<U05D9><U05D9>";"<U006A><U006A>"
+include "translit_cyrillic";""
 translit_end

 END LC_CTYPE
diff -uNr a/localedata/locales/zh_CN b/localedata/locales/zh_CN
--- a/localedata/locales/zh_CN	2018-07-17 17:49:21.000000000 +0000
+++ b/localedata/locales/zh_CN	2018-07-17 17:55:53.000000000 +0000
@@ -58,6 +58,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end

 class	"hanzi"; /
diff -uNr a/localedata/locales/zu_ZA b/localedata/locales/zu_ZA
--- a/localedata/locales/zu_ZA	2018-07-17 17:49:22.000000000 +0000
+++ b/localedata/locales/zu_ZA	2018-07-17 17:55:53.000000000 +0000
@@ -70,6 +70,7 @@ 

 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE