[PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

classic Classic list List threaded Threaded
34 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Diego (Egor) Kobylkin
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.

This is a re-submission for the consideration for 2.29 on a request from
Carlos O'Donell https://sourceware.org/ml/libc-alpha/2018-07/msg00506.html

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 compilation 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 Russian 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. Volodymyr
Lisivka <[hidden email]>, Max Kutny <[hidden email]> (uk_UA),
Данило Шеган <[hidden email]>  (sr_YU, sr_CS) have 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  <[hidden email]>

        [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


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




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.

--
Cheers,
Carlos.
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Diego (Egor) Kobylkin
Ping.

Absent of feedback I am wondering if anything could be missing in this
patch from the maintainers standpoint. More than two months have passed
since the original submission.

If I can be of assistance, please do not hesitate to contact me,
Egor Kobylkin

On 06.08.2018 21:00, Egor Kobylkin wrote:

> 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.
>
> This is a re-submission for the consideration for 2.29 on a request from
> Carlos O'Donell https://sourceware.org/ml/libc-alpha/2018-07/msg00506.html
>
> 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 compilation 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 Russian 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. Volodymyr
> Lisivka <[hidden email]>, Max Kutny <[hidden email]> (uk_UA),
> Данило Шеган <[hidden email]>  (sr_YU, sr_CS) have 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  <[hidden email]>
>
> [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
>
>
> 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
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Keld Simonsen-2
Hi

Please note that translitteration of Cyrillic to latin is not universal.
There are different schemes for for example German, English and Danish, and
there is also an ISO standard for it.

But do go forward with fixing this bug.

Best regards
Keld

On Wed, Oct 03, 2018 at 10:26:40AM +0200, Egor Kobylkin wrote:

> Ping.
>
> Absent of feedback I am wondering if anything could be missing in this
> patch from the maintainers standpoint. More than two months have passed
> since the original submission.
>
> If I can be of assistance, please do not hesitate to contact me,
> Egor Kobylkin
>
> On 06.08.2018 21:00, Egor Kobylkin wrote:
> > 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.
> >
> > This is a re-submission for the consideration for 2.29 on a request from
> > Carlos O'Donell https://sourceware.org/ml/libc-alpha/2018-07/msg00506.html
> >
> > 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 compilation 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 Russian 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. Volodymyr
> > Lisivka <[hidden email]>, Max Kutny <[hidden email]> (uk_UA),
> > ???????????? ?????????? <[hidden email]>  (sr_YU, sr_CS) have 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  <[hidden email]>
> >
> > [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
> >
> >
> > 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
> >
> >
> >
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Diego (Egor) Kobylkin
On 03.10.2018 11:19, Keld Simonsen wrote:
> Hi
>
> Please note that translitteration of Cyrillic to latin is not universal.
> There are different schemes for for example German, English and Danish, and
> there is also an ISO standard for it.

Thanks for your feedback, Keld!

Could the locale maintainers that wouldn't like to include this patch
explicitly state so here?

That is:
- In the case that there is a different preferred cyrillic
transliteration table for any specific locale their maintainers may want
to point me to it so I can supply a separate table/patch.
- Or they could state explicitly that for some reason they would like to
exclude their locale from the patch for a default cyrillic
transliteration altogether.

--Egor

>
> But do go forward with fixing this bug.
>
> Best regards
> Keld
>
> On Wed, Oct 03, 2018 at 10:26:40AM +0200, Egor Kobylkin wrote:
>> Ping.
>>
>> Absent of feedback I am wondering if anything could be missing in this
>> patch from the maintainers standpoint. More than two months have passed
>> since the original submission.
>>
>> If I can be of assistance, please do not hesitate to contact me,
>> Egor Kobylkin
>>
>> On 06.08.2018 21:00, Egor Kobylkin wrote:
>>> 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.
>>>
>>> This is a re-submission for the consideration for 2.29 on a request from
>>> Carlos O'Donell https://sourceware.org/ml/libc-alpha/2018-07/msg00506.html
>>>
>>> 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 compilation 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 Russian 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. Volodymyr
>>> Lisivka <[hidden email]>, Max Kutny <[hidden email]> (uk_UA),
>>> ???????????? ?????????? <[hidden email]>  (sr_YU, sr_CS) have 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  <[hidden email]>
>>>
>>> [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
>>>
>>>
>>> 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
>>>
>>>
>>>

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Marko Myllynen
Hi Egor,

Thanks for your patience with this one.

On 2018-10-03 12:32, Egor Kobylkin wrote:

> On 03.10.2018 11:19, Keld Simonsen wrote:
>>
>> Please note that translitteration of Cyrillic to latin is not universal.
>> There are different schemes for for example German, English and Danish, and
>> there is also an ISO standard for it.
>
> Thanks for your feedback, Keld!
>
> Could the locale maintainers that wouldn't like to include this patch
> explicitly state so here?
>
> That is:
> - In the case that there is a different preferred cyrillic
> transliteration table for any specific locale their maintainers may want
> to point me to it so I can supply a separate table/patch.
> - Or they could state explicitly that for some reason they would like to
> exclude their locale from the patch for a default cyrillic
> transliteration altogether.

The Wikipedia article https://en.wikipedia.org/wiki/ISO_9 helps to
understand that ISO 9:1995 and GOST 7.79-2000 System A are identical so
perhaps you could mention both ISO 9 and the Wikipedia article in the
commit log. translit_cyrillic includes every transliteration defined in
ISO 9:1995 and GOST 7.79-2000, correct?

I think those locales which already have Cyrillic transliteration
defined it would be best to leave them as-is (as you've done) unless
there are some issues with them, there's probably a good reason why they
have been added in the first place.

For other locales, using ISO 9 instead of not doing transliteration at
all may not be entirely correct but I'd suppose it's better to provide
at least some sort of transliteration (even if not entirely correct)
than sequences of question marks. But as you say, locale maintainers may
know better the case for individual locales.

Wrt language-specific differences Keld mentioned, Finnish Wikipedia
article on transliteration gives an example, see the table on right at
https://fi.wikipedia.org/wiki/Siirtokirjoitus for Russian /
international / Finnish / Swedish / English / French / German / Polish /
phonetic transliteration of a Russian name. (The table also shows that
for correct transliteration ASCII letters are not enough for some
languages.)

Some of the differences and language-specific aspects are probably
impossible to take fully into account within the locale system we have
today. For example, in Finnish (the tables at
http://jkorpela.fi/iso9.html8 and
https://fi.wikipedia.org/wiki/Ven%C3%A4j%C3%A4n_translitterointi might
also be helpful):

1) transliteration of Russian is mostly as per ISO 9 but with national
differences defined in SFS 4900
2) transliteration of Russian and Ukrainian names have some slight
differences according to http://jkorpela.fi/iso9.html8
3) transliteration of a letter depends on its position within a word or
pronunciation of adjacent letters, for example U+0435 becomes U+0065 (e)
except when at the beginning of a word it becomes U+006A U+0065 (je)

Hopefully we'll hear comments from others as well. Once your patch is
merged, I'll try to come up with the needed locale-specific changes for
fi_FI, some differences referred to in 1) above are straightforward to
implement but for 2) and 3) some compromises probably need to be made,
unfortunately.

Thanks,

>> On Wed, Oct 03, 2018 at 10:26:40AM +0200, Egor Kobylkin wrote:
>>> Ping.
>>>
>>> Absent of feedback I am wondering if anything could be missing in this
>>> patch from the maintainers standpoint. More than two months have passed
>>> since the original submission.
>>>
>>> If I can be of assistance, please do not hesitate to contact me,
>>> Egor Kobylkin
>>>
>>> On 06.08.2018 21:00, Egor Kobylkin wrote:
>>>> 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.
>>>>
>>>> This is a re-submission for the consideration for 2.29 on a request from
>>>> Carlos O'Donell https://sourceware.org/ml/libc-alpha/2018-07/msg00506.html
>>>>
>>>> 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 compilation 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 Russian 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. Volodymyr
>>>> Lisivka <[hidden email]>, Max Kutny <[hidden email]> (uk_UA),
>>>> ???????????? ?????????? <[hidden email]>  (sr_YU, sr_CS) have 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  <[hidden email]>
>>>>
>>>> [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
>>>>
>>>>
>>>> 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
>>>>
>>>>
>>>>
>


--
Marko Myllynen
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Rafal Luzynski
In reply to this post by Diego (Egor) Kobylkin
3.10.2018 11:32 Egor Kobylkin <[hidden email]> wrote:

>
> On 03.10.2018 11:19, Keld Simonsen wrote:
> > Hi
> >
> > Please note that translitteration of Cyrillic to latin is not universal.
> > There are different schemes for for example German, English and Danish, and
> > there is also an ISO standard for it.
>
> Thanks for your feedback, Keld!
>
> Could the locale maintainers that wouldn't like to include this patch
> explicitly state so here?

I think it is about me so I must reply.  I am sorry about that and the sole
reason is my lack of time.  I'm just a volunteer here, that means it's not
my regular job to work on locale data nor anything in glibc nor in any other
open source project.  I do these things only in my free time which I don't
have much.  Of course you will see my contributions here and there but they
are either trivial or take me months to complete.  Your patches are on my
radar but I can't tell any ETA for them.  Of course, there are other people
around here and they are all welcome to come and join.

> That is:
> - In the case that there is a different preferred cyrillic
> transliteration table for any specific locale their maintainers may want
> to point me to it so I can supply a separate table/patch.
> - Or they could state explicitly that for some reason they would like to
> exclude their locale from the patch for a default cyrillic
> transliteration altogether.

As Keld wrote, there are probably separate rules for every language so
I don't think you should treat your rules as universal and include them
in every locale.  At first sight, it seems to me they work only for English
(as a destination locale).  Also, although it is called "transliteration
from Cyrillic" it seems that it covers only Russian alphabet.  What about
other languages which use Cyrillic alphabet but add their own diacritic
characters?  Think about Belarusian, Ukrainian, Serbian, Chechen, Chuvash,
Mari, Ossetian, Yakut, Tatar, and more.  What about languages which use
Cyrillic alphabet but transliterate their respective letters in a different
way than Russian?  For example, Russian "Ъ" is (I think) usually skipped
in transliteration, I think you propose "``", but when transliterating from
Bulgarian they usually transliterate this as "ă".

Few remarks:

* I think you transliterate "щ" as "shh", wouldn't "shch" be better?
* You transliterate "ц" as "cz", wouldn't "ts" be better?  By the way,
  in Polish language "cz" is a correct transliteration of "ч".
* You transliterate "й" as "j", this is fine in many languages but wouldn't
  "y" be better in English?
* In case of "е": how will you know if it is correct to transliterate it
  to "e" or "ie" or "je" or "ye"?

These remarks are obviously incomplete, your patch deserves much more
attention to review.

Best regards,

Rafal
Reply | Threaded
Open this post in threaded view
|

[PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Diego (Egor) Kobylkin
removed a png image attachment

Keld,Marko,Rafal, other locale maintainers,

this all is written with having in mind a minimal viable fix for this
bug asap. I want to avoid wasting maintainers time getting into
fundamental discussions here (although for perfectly good reasons).

I see three options:
1. those locale maintainers that are fine with using ISO
9:1995/GOST_7.79_System_B cyrillic transliteration table (Ru) include it
in their locales. https://sourceware.org/bugzilla/attachment.cgi?id=11289
2. those that that want to have a differing table can create their own
variety based on the spreadsheet I have prepared
https://sourceware.org/bugzilla/attachment.cgi?id=8590 and include it in
this patch.
3. those that want to omit a cyrillic transliteration altogether for now
state so and just carry over the bug #2872 from the year 2006.

Does this make sense to you?

Just to be super clear on this: the patch is a stopgap _ASCII_
transliteration table. ASCII being AMERICAN Standard Code for
Information Interchange, that is obviously orthogonal to any
transliteration rule of other countries. As such it is not explicitly
targeting transliteration standards of any country.

The fact that the patch is reflecting Russian variety of ISO
9:1995/GOST_7.79_System_B is because a) ISO 9:1995/GOST_7.79_System_B is
available and can be helpful to a majority of cyrillic users b) I have
access to it including via being proficient in Russian.

It is offered to all the respective locale maintainers as a stopgap
solution. Stopgap in the sense that it is better to have some
transliteration than not to have any at all and carry over the bug from
2006. That it may be a somewhat officially correct transliteration for
ru_RU is a bonus. In that sense I would dub the discussion on the
correctness for other languages "offtopic". Let me know if this is not OK.

You are all are correctly mentioning the deficiencies of this approach.
However, I couldn't find a better straightforward approach as of yet.
Happy to hear from you as on how this could be handled.

There is a danger of being caught in the web of language/country
differences. I propose just pruning the locales that are not comfortable
including this current table. We can address possible solutions in the
second wave of patching.

I am vary of getting into discussions on specific country variants just
because of the sheer complexity of this topic. It is probably better
addressed by respective maintainers of their locales. I do not see a
"one fits all" solution in this first wave possible.

I would like to have this "three options plan of action" vetted first
and then we could go to the specific detail. (Like, for instance, what
characters should be included in to the table, and in which
transliteration form.)

I am looking forward to your reply,
Egor Kobylkin

P.S. specifically as to how address languages other than Ru included in
GOST_7.79_System_B: we can take the first option left to right from that
table (Ru,By,Uk,Bg,Mk). Then it will technically work for all those
locales/languages but with errors where Ru supersedes their own variants.


On 05.10.2018 11:20, Rafal Luzynski wrote:

> 3.10.2018 11:32 Egor Kobylkin <[hidden email]> wrote:
>>
>> On 03.10.2018 11:19, Keld Simonsen wrote:
>>> Hi
>>>
>>> Please note that translitteration of Cyrillic to latin is not universal.
>>> There are different schemes for for example German, English and Danish, and
>>> there is also an ISO standard for it.
>>
>> Thanks for your feedback, Keld!
>>
>> Could the locale maintainers that wouldn't like to include this patch
>> explicitly state so here?
>
> I think it is about me so I must reply.  I am sorry about that and the sole
> reason is my lack of time.  I'm just a volunteer here, that means it's not
> my regular job to work on locale data nor anything in glibc nor in any other
> open source project.  I do these things only in my free time which I don't
> have much.  Of course you will see my contributions here and there but they
> are either trivial or take me months to complete.  Your patches are on my
> radar but I can't tell any ETA for them.  Of course, there are other people
> around here and they are all welcome to come and join.
>
>> That is:
>> - In the case that there is a different preferred cyrillic
>> transliteration table for any specific locale their maintainers may want
>> to point me to it so I can supply a separate table/patch.
>> - Or they could state explicitly that for some reason they would like to
>> exclude their locale from the patch for a default cyrillic
>> transliteration altogether.
>
> As Keld wrote, there are probably separate rules for every language so
> I don't think you should treat your rules as universal and include them
> in every locale.  At first sight, it seems to me they work only for English
> (as a destination locale).  Also, although it is called "transliteration
> from Cyrillic" it seems that it covers only Russian alphabet.  What about
> other languages which use Cyrillic alphabet but add their own diacritic
> characters?  Think about Belarusian, Ukrainian, Serbian, Chechen, Chuvash,
> Mari, Ossetian, Yakut, Tatar, and more.  What about languages which use
> Cyrillic alphabet but transliterate their respective letters in a different
> way than Russian?  For example, Russian "Ъ" is (I think) usually skipped
> in transliteration, I think you propose "``", but when transliterating from
> Bulgarian they usually transliterate this as "ă".
>
> Few remarks:
>
> * I think you transliterate "щ" as "shh", wouldn't "shch" be better?
> * You transliterate "ц" as "cz", wouldn't "ts" be better?  By the way,
>   in Polish language "cz" is a correct transliteration of "ч".
> * You transliterate "й" as "j", this is fine in many languages but wouldn't
>   "y" be better in English?
> * In case of "е": how will you know if it is correct to transliterate it
>   to "e" or "ie" or "je" or "ye"?
>
> These remarks are obviously incomplete, your patch deserves much more
> attention to review.
>
> Best regards,
>
> Rafal
>


Hi Egor,

Thanks for your patience with this one.

On 2018-10-03 12:32, Egor Kobylkin wrote:

> On 03.10.2018 11:19, Keld Simonsen wrote:
>>
>> Please note that translitteration of Cyrillic to latin is not universal.
>> There are different schemes for for example German, English and Danish, and
>> there is also an ISO standard for it.
>
> Thanks for your feedback, Keld!
>
> Could the locale maintainers that wouldn't like to include this patch
> explicitly state so here?
>
> That is:
> - In the case that there is a different preferred cyrillic
> transliteration table for any specific locale their maintainers may want
> to point me to it so I can supply a separate table/patch.
> - Or they could state explicitly that for some reason they would like to
> exclude their locale from the patch for a default cyrillic
> transliteration altogether.
The Wikipedia article https://en.wikipedia.org/wiki/ISO_9 helps to
understand that ISO 9:1995 and GOST 7.79-2000 System A are identical so
perhaps you could mention both ISO 9 and the Wikipedia article in the
commit log. translit_cyrillic includes every transliteration defined in
ISO 9:1995 and GOST 7.79-2000, correct?

I think those locales which already have Cyrillic transliteration
defined it would be best to leave them as-is (as you've done) unless
there are some issues with them, there's probably a good reason why they
have been added in the first place.

For other locales, using ISO 9 instead of not doing transliteration at
all may not be entirely correct but I'd suppose it's better to provide
at least some sort of transliteration (even if not entirely correct)
than sequences of question marks. But as you say, locale maintainers may
know better the case for individual locales.

Wrt language-specific differences Keld mentioned, Finnish Wikipedia
article on transliteration gives an example, see the table on right at
https://fi.wikipedia.org/wiki/Siirtokirjoitus for Russian /
international / Finnish / Swedish / English / French / German / Polish /
phonetic transliteration of a Russian name. (The table also shows that
for correct transliteration ASCII letters are not enough for some
languages.)

Some of the differences and language-specific aspects are probably
impossible to take fully into account within the locale system we have
today. For example, in Finnish (the tables at
http://jkorpela.fi/iso9.html8 and
https://fi.wikipedia.org/wiki/Ven%C3%A4j%C3%A4n_translitterointi might
also be helpful):

1) transliteration of Russian is mostly as per ISO 9 but with national
differences defined in SFS 4900
2) transliteration of Russian and Ukrainian names have some slight
differences according to http://jkorpela.fi/iso9.html8
3) transliteration of a letter depends on its position within a word or
pronunciation of adjacent letters, for example U+0435 becomes U+0065 (e)
except when at the beginning of a word it becomes U+006A U+0065 (je)

Hopefully we'll hear comments from others as well. Once your patch is
merged, I'll try to come up with the needed locale-specific changes for
fi_FI, some differences referred to in 1) above are straightforward to
implement but for 2) and 3) some compromises probably need to be made,
unfortunately.

Thanks,

>> On Wed, Oct 03, 2018 at 10:26:40AM +0200, Egor Kobylkin wrote:
>>> Ping.
>>>
>>> Absent of feedback I am wondering if anything could be missing in this
>>> patch from the maintainers standpoint. More than two months have passed
>>> since the original submission.
>>>
>>> If I can be of assistance, please do not hesitate to contact me,
>>> Egor Kobylkin
>>>
>>> On 06.08.2018 21:00, Egor Kobylkin wrote:
>>>> 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.
>>>>
>>>> This is a re-submission for the consideration for 2.29 on a request from
>>>> Carlos O'Donell https://sourceware.org/ml/libc-alpha/2018-07/msg00506.html
>>>>
>>>> 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 compilation 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 Russian 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. Volodymyr
>>>> Lisivka <[hidden email]>, Max Kutny <[hidden email]> (uk_UA),
>>>> ???????????? ?????????? <[hidden email]>  (sr_YU, sr_CS) have 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  <[hidden email]>
>>>>
>>>> [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
>>>>
>>>>
>>>> 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
>>>>
>>>>
>>>>
>

--
Marko Myllynen

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Marko Myllynen
In reply to this post by Rafal Luzynski
Hi,

Would it make sense to first use ISO 9:1995/GOST 7.79 System A if
possible and if not, then fall back to GOST 7.79 System B?

Implementation-wise current translit_* files have few examples where a
non-ASCII transliteration is tried first before an ASCII fallback. These
examples are from translit_neutral:

% NARROW NO-BREAK SPACE
<U202F> <U00A0>;<U0020>
% REVERSED TRIPLE PRIME
<U2037> "<U2035><U2035><U2035>";"<U0060><U0060><U0060>"

Thanks,

On 2018-10-05 13:29, Egor Kobylkin wrote:

> Keld,Marko,Rafal, other locale maintainers,
>
> this all is written with having in mind a minimal viable fix for this
> bug asap. I want to avoid wasting maintainers time getting into
> fundamental discussions here (although for perfectly good reasons).
>
> I see three options:
> 1. those locale maintainers that are fine with using ISO
> 9:1995/GOST_7.79_System_B cyrillic transliteration table (Ru) include it
> in their locales (see attached screenshot of the table).
> 2. those that that want to have a differing table can create their own
> variety based on the spreadsheet I have prepared
> https://sourceware.org/bugzilla/attachment.cgi?id=8590 and include it in
> this patch.
> 3. those that want to omit a cyrillic transliteration altogether for now
> state so and just carry over the bug #2872 from the year 2006.
>
> Does this make sense to you?
>
> Just to be super clear on this: the patch is a stopgap _ASCII_
> transliteration table. ASCII being AMERICAN Standard Code for
> Information Interchange, that is obviously orthogonal to any
> transliteration rule of other countries. As such it is not explicitly
> targeting transliteration standards of any country.
>
> The fact that the patch is reflecting Russian variety of ISO
> 9:1995/GOST_7.79_System_B is because a) ISO 9:1995/GOST_7.79_System_B is
> available and can be helpful to a majority of cyrillic users b) I have
> access to it including via being proficient in Russian.
>
> It is offered to all the respective locale maintainers as a stopgap
> solution. Stopgap in the sense that it is better to have some
> transliteration than not to have any at all and carry over the bug from
> 2006. That it may be a somewhat officially correct transliteration for
> ru_RU is a bonus. In that sense I would dub the discussion on the
> correctness for other languages "offtopic". Let me know if this is not OK.
>
> You are all are correctly mentioning the deficiencies of this approach.
> However, I couldn't find a better straightforward approach as of yet.
> Happy to hear from you as on how this could be handled.
>
> There is a danger of being caught in the web of language/country
> differences. I propose just pruning the locales that are not comfortable
> including this current table. We can address possible solutions in the
> second wave of patching.
>
> I am vary of getting into discussions on specific country variants just
> because of the sheer complexity of this topic. It is probably better
> addressed by respective maintainers of their locales. I do not see a
> "one fits all" solution in this first wave possible.
>
> I would like to have this "three options plan of action" vetted first
> and then we could go to the specific detail. (Like, for instance, what
> characters should be included in to the table, and in which
> transliteration form.)
>
> I am looking forward to your reply,
> Egor Kobylkin
>
> P.S. specifically as to how address languages other than Ru included in
> GOST_7.79_System_B: we can take the first option left to right from that
> table (Ru,By,Uk,Bg,Mk). Then it will technically work for all those
> locales/languages but with errors where Ru supersedes their own variants.
>
>
> On 05.10.2018 11:20, Rafal Luzynski wrote:
>> 3.10.2018 11:32 Egor Kobylkin <[hidden email]> wrote:
>>>
>>> On 03.10.2018 11:19, Keld Simonsen wrote:
>>>> Hi
>>>>
>>>> Please note that translitteration of Cyrillic to latin is not universal.
>>>> There are different schemes for for example German, English and Danish, and
>>>> there is also an ISO standard for it.
>>>
>>> Thanks for your feedback, Keld!
>>>
>>> Could the locale maintainers that wouldn't like to include this patch
>>> explicitly state so here?
>>
>> I think it is about me so I must reply.  I am sorry about that and the sole
>> reason is my lack of time.  I'm just a volunteer here, that means it's not
>> my regular job to work on locale data nor anything in glibc nor in any other
>> open source project.  I do these things only in my free time which I don't
>> have much.  Of course you will see my contributions here and there but they
>> are either trivial or take me months to complete.  Your patches are on my
>> radar but I can't tell any ETA for them.  Of course, there are other people
>> around here and they are all welcome to come and join.
>>
>>> That is:
>>> - In the case that there is a different preferred cyrillic
>>> transliteration table for any specific locale their maintainers may want
>>> to point me to it so I can supply a separate table/patch.
>>> - Or they could state explicitly that for some reason they would like to
>>> exclude their locale from the patch for a default cyrillic
>>> transliteration altogether.
>>
>> As Keld wrote, there are probably separate rules for every language so
>> I don't think you should treat your rules as universal and include them
>> in every locale.  At first sight, it seems to me they work only for English
>> (as a destination locale).  Also, although it is called "transliteration
>> from Cyrillic" it seems that it covers only Russian alphabet.  What about
>> other languages which use Cyrillic alphabet but add their own diacritic
>> characters?  Think about Belarusian, Ukrainian, Serbian, Chechen, Chuvash,
>> Mari, Ossetian, Yakut, Tatar, and more.  What about languages which use
>> Cyrillic alphabet but transliterate their respective letters in a different
>> way than Russian?  For example, Russian "Ъ" is (I think) usually skipped
>> in transliteration, I think you propose "``", but when transliterating from
>> Bulgarian they usually transliterate this as "ă".
>>
>> Few remarks:
>>
>> * I think you transliterate "щ" as "shh", wouldn't "shch" be better?
>> * You transliterate "ц" as "cz", wouldn't "ts" be better?  By the way,
>>   in Polish language "cz" is a correct transliteration of "ч".
>> * You transliterate "й" as "j", this is fine in many languages but wouldn't
>>   "y" be better in English?
>> * In case of "е": how will you know if it is correct to transliterate it
>>   to "e" or "ie" or "je" or "ye"?
>>
>> These remarks are obviously incomplete, your patch deserves much more
>> attention to review.
>>
>> Best regards,
>>
>> Rafal
>>
>


--
Marko Myllynen
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Diego (Egor) Kobylkin
Hi Marko,

I have chosen the System B because it is ASCII compartible. System A is
not ASCII compartible (diacritics in target).

https://en.wikipedia.org/wiki/ISO_9#ISO_9:1995,_or_GOST_7.79_System_A
"GOST 7.79 contains two transliteration tables.

System A
    one Cyrillic character to one Latin character, some with diacritics
– identical to ISO 9:1995

System B
    one Cyrillic character to one or many Latin characters without
diacritics
"
Hope this helps,
Egor

On 05.10.2018 13:54, Marko Myllynen wrote:

> Hi,
>
> Would it make sense to first use ISO 9:1995/GOST 7.79 System A if
> possible and if not, then fall back to GOST 7.79 System B?
>
> Implementation-wise current translit_* files have few examples where a
> non-ASCII transliteration is tried first before an ASCII fallback. These
> examples are from translit_neutral:
>
> % NARROW NO-BREAK SPACE
> <U202F> <U00A0>;<U0020>
> % REVERSED TRIPLE PRIME
> <U2037> "<U2035><U2035><U2035>";"<U0060><U0060><U0060>"
>
> Thanks,
>
> On 2018-10-05 13:29, Egor Kobylkin wrote:
>> Keld,Marko,Rafal, other locale maintainers,
>>
>> this all is written with having in mind a minimal viable fix for this
>> bug asap. I want to avoid wasting maintainers time getting into
>> fundamental discussions here (although for perfectly good reasons).
>>
>> I see three options:
>> 1. those locale maintainers that are fine with using ISO
>> 9:1995/GOST_7.79_System_B cyrillic transliteration table (Ru) include it
>> in their locales (see attached screenshot of the table).
>> 2. those that that want to have a differing table can create their own
>> variety based on the spreadsheet I have prepared
>> https://sourceware.org/bugzilla/attachment.cgi?id=8590 and include it in
>> this patch.
>> 3. those that want to omit a cyrillic transliteration altogether for now
>> state so and just carry over the bug #2872 from the year 2006.
>>
>> Does this make sense to you?
>>
>> Just to be super clear on this: the patch is a stopgap _ASCII_
>> transliteration table. ASCII being AMERICAN Standard Code for
>> Information Interchange, that is obviously orthogonal to any
>> transliteration rule of other countries. As such it is not explicitly
>> targeting transliteration standards of any country.
>>
>> The fact that the patch is reflecting Russian variety of ISO
>> 9:1995/GOST_7.79_System_B is because a) ISO 9:1995/GOST_7.79_System_B is
>> available and can be helpful to a majority of cyrillic users b) I have
>> access to it including via being proficient in Russian.
>>
>> It is offered to all the respective locale maintainers as a stopgap
>> solution. Stopgap in the sense that it is better to have some
>> transliteration than not to have any at all and carry over the bug from
>> 2006. That it may be a somewhat officially correct transliteration for
>> ru_RU is a bonus. In that sense I would dub the discussion on the
>> correctness for other languages "offtopic". Let me know if this is not OK.
>>
>> You are all are correctly mentioning the deficiencies of this approach.
>> However, I couldn't find a better straightforward approach as of yet.
>> Happy to hear from you as on how this could be handled.
>>
>> There is a danger of being caught in the web of language/country
>> differences. I propose just pruning the locales that are not comfortable
>> including this current table. We can address possible solutions in the
>> second wave of patching.
>>
>> I am vary of getting into discussions on specific country variants just
>> because of the sheer complexity of this topic. It is probably better
>> addressed by respective maintainers of their locales. I do not see a
>> "one fits all" solution in this first wave possible.
>>
>> I would like to have this "three options plan of action" vetted first
>> and then we could go to the specific detail. (Like, for instance, what
>> characters should be included in to the table, and in which
>> transliteration form.)
>>
>> I am looking forward to your reply,
>> Egor Kobylkin
>>
>> P.S. specifically as to how address languages other than Ru included in
>> GOST_7.79_System_B: we can take the first option left to right from that
>> table (Ru,By,Uk,Bg,Mk). Then it will technically work for all those
>> locales/languages but with errors where Ru supersedes their own variants.
>>
>>
>> On 05.10.2018 11:20, Rafal Luzynski wrote:
>>> 3.10.2018 11:32 Egor Kobylkin <[hidden email]> wrote:
>>>>
>>>> On 03.10.2018 11:19, Keld Simonsen wrote:
>>>>> Hi
>>>>>
>>>>> Please note that translitteration of Cyrillic to latin is not universal.
>>>>> There are different schemes for for example German, English and Danish, and
>>>>> there is also an ISO standard for it.
>>>>
>>>> Thanks for your feedback, Keld!
>>>>
>>>> Could the locale maintainers that wouldn't like to include this patch
>>>> explicitly state so here?
>>>
>>> I think it is about me so I must reply.  I am sorry about that and the sole
>>> reason is my lack of time.  I'm just a volunteer here, that means it's not
>>> my regular job to work on locale data nor anything in glibc nor in any other
>>> open source project.  I do these things only in my free time which I don't
>>> have much.  Of course you will see my contributions here and there but they
>>> are either trivial or take me months to complete.  Your patches are on my
>>> radar but I can't tell any ETA for them.  Of course, there are other people
>>> around here and they are all welcome to come and join.
>>>
>>>> That is:
>>>> - In the case that there is a different preferred cyrillic
>>>> transliteration table for any specific locale their maintainers may want
>>>> to point me to it so I can supply a separate table/patch.
>>>> - Or they could state explicitly that for some reason they would like to
>>>> exclude their locale from the patch for a default cyrillic
>>>> transliteration altogether.
>>>
>>> As Keld wrote, there are probably separate rules for every language so
>>> I don't think you should treat your rules as universal and include them
>>> in every locale.  At first sight, it seems to me they work only for English
>>> (as a destination locale).  Also, although it is called "transliteration
>>> from Cyrillic" it seems that it covers only Russian alphabet.  What about
>>> other languages which use Cyrillic alphabet but add their own diacritic
>>> characters?  Think about Belarusian, Ukrainian, Serbian, Chechen, Chuvash,
>>> Mari, Ossetian, Yakut, Tatar, and more.  What about languages which use
>>> Cyrillic alphabet but transliterate their respective letters in a different
>>> way than Russian?  For example, Russian "Ъ" is (I think) usually skipped
>>> in transliteration, I think you propose "``", but when transliterating from
>>> Bulgarian they usually transliterate this as "ă".
>>>
>>> Few remarks:
>>>
>>> * I think you transliterate "щ" as "shh", wouldn't "shch" be better?
>>> * You transliterate "ц" as "cz", wouldn't "ts" be better?  By the way,
>>>   in Polish language "cz" is a correct transliteration of "ч".
>>> * You transliterate "й" as "j", this is fine in many languages but wouldn't
>>>   "y" be better in English?
>>> * In case of "е": how will you know if it is correct to transliterate it
>>>   to "e" or "ie" or "je" or "ye"?
>>>
>>> These remarks are obviously incomplete, your patch deserves much more
>>> attention to review.
>>>
>>> Best regards,
>>>
>>> Rafal
>>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Marko Myllynen
Hi,

The scheme I proposed would also be ASCII compatible; consider this example:

% CYRILLIC CAPITAL LETTER SHA
<U0428> "<U0160>";"<U0053><U0068>"

"printf \\u0428\\n | iconv -f UTF-8 -t ISO-8859-15//TRANSLIT | iconv -f
ISO-8859-15 -t UTF-8" would produce Š as per System A and "printf
\\u0428\\n | iconv -f UTF-8 -t ASCII//TRANSLIT" would produce Sh as per
System B.

Thanks,

On 2018-10-05 15:00, Egor Kobylkin wrote:

> Hi Marko,
>
> I have chosen the System B because it is ASCII compartible. System A is
> not ASCII compartible (diacritics in target).
>
> https://en.wikipedia.org/wiki/ISO_9#ISO_9:1995,_or_GOST_7.79_System_A
> "GOST 7.79 contains two transliteration tables.
>
> System A
>     one Cyrillic character to one Latin character, some with diacritics
> – identical to ISO 9:1995
>
> System B
>     one Cyrillic character to one or many Latin characters without
> diacritics
> "
> Hope this helps,
> Egor
>
> On 05.10.2018 13:54, Marko Myllynen wrote:
>> Hi,
>>
>> Would it make sense to first use ISO 9:1995/GOST 7.79 System A if
>> possible and if not, then fall back to GOST 7.79 System B?
>>
>> Implementation-wise current translit_* files have few examples where a
>> non-ASCII transliteration is tried first before an ASCII fallback. These
>> examples are from translit_neutral:
>>
>> % NARROW NO-BREAK SPACE
>> <U202F> <U00A0>;<U0020>
>> % REVERSED TRIPLE PRIME
>> <U2037> "<U2035><U2035><U2035>";"<U0060><U0060><U0060>"
>>
>> Thanks,
>>
>> On 2018-10-05 13:29, Egor Kobylkin wrote:
>>> Keld,Marko,Rafal, other locale maintainers,
>>>
>>> this all is written with having in mind a minimal viable fix for this
>>> bug asap. I want to avoid wasting maintainers time getting into
>>> fundamental discussions here (although for perfectly good reasons).
>>>
>>> I see three options:
>>> 1. those locale maintainers that are fine with using ISO
>>> 9:1995/GOST_7.79_System_B cyrillic transliteration table (Ru) include it
>>> in their locales (see attached screenshot of the table).
>>> 2. those that that want to have a differing table can create their own
>>> variety based on the spreadsheet I have prepared
>>> https://sourceware.org/bugzilla/attachment.cgi?id=8590 and include it in
>>> this patch.
>>> 3. those that want to omit a cyrillic transliteration altogether for now
>>> state so and just carry over the bug #2872 from the year 2006.
>>>
>>> Does this make sense to you?
>>>
>>> Just to be super clear on this: the patch is a stopgap _ASCII_
>>> transliteration table. ASCII being AMERICAN Standard Code for
>>> Information Interchange, that is obviously orthogonal to any
>>> transliteration rule of other countries. As such it is not explicitly
>>> targeting transliteration standards of any country.
>>>
>>> The fact that the patch is reflecting Russian variety of ISO
>>> 9:1995/GOST_7.79_System_B is because a) ISO 9:1995/GOST_7.79_System_B is
>>> available and can be helpful to a majority of cyrillic users b) I have
>>> access to it including via being proficient in Russian.
>>>
>>> It is offered to all the respective locale maintainers as a stopgap
>>> solution. Stopgap in the sense that it is better to have some
>>> transliteration than not to have any at all and carry over the bug from
>>> 2006. That it may be a somewhat officially correct transliteration for
>>> ru_RU is a bonus. In that sense I would dub the discussion on the
>>> correctness for other languages "offtopic". Let me know if this is not OK.
>>>
>>> You are all are correctly mentioning the deficiencies of this approach.
>>> However, I couldn't find a better straightforward approach as of yet.
>>> Happy to hear from you as on how this could be handled.
>>>
>>> There is a danger of being caught in the web of language/country
>>> differences. I propose just pruning the locales that are not comfortable
>>> including this current table. We can address possible solutions in the
>>> second wave of patching.
>>>
>>> I am vary of getting into discussions on specific country variants just
>>> because of the sheer complexity of this topic. It is probably better
>>> addressed by respective maintainers of their locales. I do not see a
>>> "one fits all" solution in this first wave possible.
>>>
>>> I would like to have this "three options plan of action" vetted first
>>> and then we could go to the specific detail. (Like, for instance, what
>>> characters should be included in to the table, and in which
>>> transliteration form.)
>>>
>>> I am looking forward to your reply,
>>> Egor Kobylkin
>>>
>>> P.S. specifically as to how address languages other than Ru included in
>>> GOST_7.79_System_B: we can take the first option left to right from that
>>> table (Ru,By,Uk,Bg,Mk). Then it will technically work for all those
>>> locales/languages but with errors where Ru supersedes their own variants.
>>>
>>>
>>> On 05.10.2018 11:20, Rafal Luzynski wrote:
>>>> 3.10.2018 11:32 Egor Kobylkin <[hidden email]> wrote:
>>>>>
>>>>> On 03.10.2018 11:19, Keld Simonsen wrote:
>>>>>> Hi
>>>>>>
>>>>>> Please note that translitteration of Cyrillic to latin is not universal.
>>>>>> There are different schemes for for example German, English and Danish, and
>>>>>> there is also an ISO standard for it.
>>>>>
>>>>> Thanks for your feedback, Keld!
>>>>>
>>>>> Could the locale maintainers that wouldn't like to include this patch
>>>>> explicitly state so here?
>>>>
>>>> I think it is about me so I must reply.  I am sorry about that and the sole
>>>> reason is my lack of time.  I'm just a volunteer here, that means it's not
>>>> my regular job to work on locale data nor anything in glibc nor in any other
>>>> open source project.  I do these things only in my free time which I don't
>>>> have much.  Of course you will see my contributions here and there but they
>>>> are either trivial or take me months to complete.  Your patches are on my
>>>> radar but I can't tell any ETA for them.  Of course, there are other people
>>>> around here and they are all welcome to come and join.
>>>>
>>>>> That is:
>>>>> - In the case that there is a different preferred cyrillic
>>>>> transliteration table for any specific locale their maintainers may want
>>>>> to point me to it so I can supply a separate table/patch.
>>>>> - Or they could state explicitly that for some reason they would like to
>>>>> exclude their locale from the patch for a default cyrillic
>>>>> transliteration altogether.
>>>>
>>>> As Keld wrote, there are probably separate rules for every language so
>>>> I don't think you should treat your rules as universal and include them
>>>> in every locale.  At first sight, it seems to me they work only for English
>>>> (as a destination locale).  Also, although it is called "transliteration
>>>> from Cyrillic" it seems that it covers only Russian alphabet.  What about
>>>> other languages which use Cyrillic alphabet but add their own diacritic
>>>> characters?  Think about Belarusian, Ukrainian, Serbian, Chechen, Chuvash,
>>>> Mari, Ossetian, Yakut, Tatar, and more.  What about languages which use
>>>> Cyrillic alphabet but transliterate their respective letters in a different
>>>> way than Russian?  For example, Russian "Ъ" is (I think) usually skipped
>>>> in transliteration, I think you propose "``", but when transliterating from
>>>> Bulgarian they usually transliterate this as "ă".
>>>>
>>>> Few remarks:
>>>>
>>>> * I think you transliterate "щ" as "shh", wouldn't "shch" be better?
>>>> * You transliterate "ц" as "cz", wouldn't "ts" be better?  By the way,
>>>>   in Polish language "cz" is a correct transliteration of "ч".
>>>> * You transliterate "й" as "j", this is fine in many languages but wouldn't
>>>>   "y" be better in English?
>>>> * In case of "е": how will you know if it is correct to transliterate it
>>>>   to "e" or "ie" or "je" or "ye"?
>>>>
>>>> These remarks are obviously incomplete, your patch deserves much more
>>>> attention to review.
>>>>
>>>> Best regards,
>>>>
>>>> Rafal
>>>>
>>>
>>
>>
>


--
Marko Myllynen
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Diego (Egor) Kobylkin
After some kind help from Marko in the offline discussion
I realized the multi/single character approach I originally took was
against the  of the iconv(1) logic anyway. So there is no harm in
dropping it and adopting Marko's suggestion instead. I will do so and
will resubmit the patch with ISO 9:1995/GOST 7.79 System A + fallback to
GOST 7.79 System B (for ASCII).

However this doesn't resolve the issue for ASCII part being different
for various locales. Again, I am offering the locale maintainers to let
me know if they want to 1) adopt the one I am supplying, 2) write their
own or 3) ignore the patch altogether. Your feedback is appreciated!

This is the relevant part that helped:

> The first part (ISO-8859-15 or ASCII) defines the target encoding for
> iconv(1). //TRANSLIT is described in the iconv(1) man page as:
>
> If the string //TRANSLIT is appended to to-encoding,  characters
> being  converted  are  transliterated  when needed and possible. This
> means that when a character cannot be  represented  in  the target
> character set, it can be approximated through one or sev‐ eral
> similar looking characters.  Characters that are outside of the
> target  character  set  and  cannot  be  transliterated are replaced
> with a question mark (?) in the output.
>
> So in the above examples, iconv(1) encounters the character U+0428
> which is not part of either of the target encoding and since
> //TRANSLIT is specified, iconv(1) tries transliteration according to
> the rules defined above, in case of ASCII U+0160 is not part of the
> target encoding so the next alternative is used.

Bests,
Egor Kobylkin

On 05.10.2018 14:21, Marko Myllynen wrote:

> Hi,
>
> The scheme I proposed would also be ASCII compatible; consider this
> example:
>
> % CYRILLIC CAPITAL LETTER SHA <U0428> "<U0160>";"<U0053><U0068>"
>
> "printf \\u0428\\n | iconv -f UTF-8 -t ISO-8859-15//TRANSLIT | iconv
> -f ISO-8859-15 -t UTF-8" would produce Š as per System A and "printf
>  \\u0428\\n | iconv -f UTF-8 -t ASCII//TRANSLIT" would produce Sh as
> per System B.
>
> Thanks,
>
> On 2018-10-05 15:00, Egor Kobylkin wrote:
>> Hi Marko,
>>
>> I have chosen the System B because it is ASCII compartible. System
>> A is not ASCII compartible (diacritics in target).
>>
>> https://en.wikipedia.org/wiki/ISO_9#ISO_9:1995,_or_GOST_7.79_System_A
>>
>>
>>
"GOST 7.79 contains two transliteration tables.

>>
>> System A one Cyrillic character to one Latin character, some with
>> diacritics – identical to ISO 9:1995
>>
>> System B one Cyrillic character to one or many Latin characters
>> without diacritics " Hope this helps, Egor
>>
>> On 05.10.2018 13:54, Marko Myllynen wrote:
>>> Hi,
>>>
>>> Would it make sense to first use ISO 9:1995/GOST 7.79 System A if
>>> possible and if not, then fall back to GOST 7.79 System B?
>>>
>>> Implementation-wise current translit_* files have few examples
>>> where a non-ASCII transliteration is tried first before an ASCII
>>> fallback. These examples are from translit_neutral:
>>>
>>> % NARROW NO-BREAK SPACE <U202F> <U00A0>;<U0020> % REVERSED
>>> TRIPLE PRIME <U2037>
>>> "<U2035><U2035><U2035>";"<U0060><U0060><U0060>"
>>>
>>> Thanks,
>>>
>>> On 2018-10-05 13:29, Egor Kobylkin wrote:
>>>> Keld,Marko,Rafal, other locale maintainers,
>>>>
>>>> this all is written with having in mind a minimal viable fix
>>>> for this bug asap. I want to avoid wasting maintainers time
>>>> getting into fundamental discussions here (although for
>>>> perfectly good reasons).
>>>>
>>>> I see three options: 1. those locale maintainers that are fine
>>>> with using ISO 9:1995/GOST_7.79_System_B cyrillic
>>>> transliteration table (Ru) include it in their locales (see
>>>> attached screenshot of the table). 2. those that that want to
>>>> have a differing table can create their own variety based on
>>>> the spreadsheet I have prepared
>>>> https://sourceware.org/bugzilla/attachment.cgi?id=8590 and
>>>> include it in this patch. 3. those that want to omit a
>>>> cyrillic transliteration altogether for now state so and just
>>>> carry over the bug #2872 from the year 2006.
>>>>
>>>> Does this make sense to you?
>>>>
>>>> Just to be super clear on this: the patch is a stopgap _ASCII_
>>>>  transliteration table. ASCII being AMERICAN Standard Code for
>>>>  Information Interchange, that is obviously orthogonal to any
>>>> transliteration rule of other countries. As such it is not
>>>> explicitly targeting transliteration standards of any country.
>>>>
>>>> The fact that the patch is reflecting Russian variety of ISO
>>>> 9:1995/GOST_7.79_System_B is because a) ISO
>>>> 9:1995/GOST_7.79_System_B is available and can be helpful to a
>>>> majority of cyrillic users b) I have access to it including
>>>> via being proficient in Russian.
>>>>
>>>> It is offered to all the respective locale maintainers as a
>>>> stopgap solution. Stopgap in the sense that it is better to
>>>> have some transliteration than not to have any at all and
>>>> carry over the bug from 2006. That it may be a somewhat
>>>> officially correct transliteration for ru_RU is a bonus. In
>>>> that sense I would dub the discussion on the correctness for
>>>> other languages "offtopic". Let me know if this is not OK.
>>>>
>>>> You are all are correctly mentioning the deficiencies of this
>>>> approach. However, I couldn't find a better straightforward
>>>> approach as of yet. Happy to hear from you as on how this
>>>> could be handled.
>>>>
>>>> There is a danger of being caught in the web of
>>>> language/country differences. I propose just pruning the
>>>> locales that are not comfortable including this current table.
>>>> We can address possible solutions in the second wave of
>>>> patching.
>>>>
>>>> I am vary of getting into discussions on specific country
>>>> variants just because of the sheer complexity of this topic.
>>>> It is probably better addressed by respective maintainers of
>>>> their locales. I do not see a "one fits all" solution in this
>>>> first wave possible.
>>>>
>>>> I would like to have this "three options plan of action"
>>>> vetted first and then we could go to the specific detail.
>>>> (Like, for instance, what characters should be included in to
>>>> the table, and in which transliteration form.)
>>>>
>>>> I am looking forward to your reply, Egor Kobylkin
>>>>
>>>> P.S. specifically as to how address languages other than Ru
>>>> included in GOST_7.79_System_B: we can take the first option
>>>> left to right from that table (Ru,By,Uk,Bg,Mk). Then it will
>>>> technically work for all those locales/languages but with
>>>> errors where Ru supersedes their own variants.
>>>>
>>>>
>>>> On 05.10.2018 11:20, Rafal Luzynski wrote:
>>>>> 3.10.2018 11:32 Egor Kobylkin <[hidden email]> wrote:
>>>>>>
>>>>>> On 03.10.2018 11:19, Keld Simonsen wrote:
>>>>>>> Hi
>>>>>>>
>>>>>>> Please note that translitteration of Cyrillic to latin
>>>>>>> is not universal. There are different schemes for for
>>>>>>> example German, English and Danish, and there is also an
>>>>>>> ISO standard for it.
>>>>>>
>>>>>> Thanks for your feedback, Keld!
>>>>>>
>>>>>> Could the locale maintainers that wouldn't like to include
>>>>>> this patch explicitly state so here?
>>>>>
>>>>> I think it is about me so I must reply.  I am sorry about
>>>>> that and the sole reason is my lack of time.  I'm just a
>>>>> volunteer here, that means it's not my regular job to work
>>>>> on locale data nor anything in glibc nor in any other open
>>>>> source project.  I do these things only in my free time
>>>>> which I don't have much.  Of course you will see my
>>>>> contributions here and there but they are either trivial or
>>>>> take me months to complete.  Your patches are on my radar but
>>>>> I can't tell any ETA for them.  Of course, there are other
>>>>> people around here and they are all welcome to come and
>>>>> join.
>>>>>
>>>>>> That is: - In the case that there is a different preferred
>>>>>> cyrillic transliteration table for any specific locale
>>>>>> their maintainers may want to point me to it so I can
>>>>>> supply a separate table/patch. - Or they could state
>>>>>> explicitly that for some reason they would like to exclude
>>>>>> their locale from the patch for a default cyrillic
>>>>>> transliteration altogether.
>>>>>
>>>>> As Keld wrote, there are probably separate rules for every
>>>>> language so I don't think you should treat your rules as
>>>>> universal and include them in every locale.  At first sight,
>>>>> it seems to me they work only for English (as a destination
>>>>> locale).  Also, although it is called "transliteration from
>>>>> Cyrillic" it seems that it covers only Russian alphabet. What
>>>>> about other languages which use Cyrillic alphabet but add
>>>>> their own diacritic characters?  Think about Belarusian,
>>>>> Ukrainian, Serbian, Chechen, Chuvash, Mari, Ossetian, Yakut,
>>>>> Tatar, and more.  What about languages which use Cyrillic
>>>>> alphabet but transliterate their respective letters in a
>>>>> different way than Russian?  For example, Russian "Ъ" is (I
>>>>> think) usually skipped in transliteration, I think you
>>>>> propose "``", but when transliterating from Bulgarian they
>>>>> usually transliterate this as "ă".
>>>>>
>>>>> Few remarks:
>>>>>
>>>>> * I think you transliterate "щ" as "shh", wouldn't "shch" be
>>>>> better? * You transliterate "ц" as "cz", wouldn't "ts" be
>>>>> better?  By the way, in Polish language "cz" is a correct
>>>>> transliteration of "ч". * You transliterate "й" as "j", this
>>>>> is fine in many languages but wouldn't "y" be better in
>>>>> English? * In case of "е": how will you know if it is
>>>>> correct to transliterate it to "e" or "ie" or "je" or "ye"?
>>>>>
>>>>> These remarks are obviously incomplete, your patch deserves
>>>>> much more attention to review.
>>>>>
>>>>> Best regards,
>>>>>
>>>>> Rafal
>>>>>
>>>>
>>>
>>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Marko Myllynen
Hi,

Thanks for the update. I have few mostly cosmetic comments below,
hopefully we'll hear from others whether they agree with this direction.

- Please add the standard glibc locale header (see the existing
translit_* files for reference)
- Consider wrapping the header lines at or around column 70-72
- Consider describing which characters, character ranges, or blocks are
supported (perhaps also describe why some of those are not included, see
e.g. https://en.wikipedia.org/wiki/Cyrillic_script_in_Unicode)
- Please remove trailing whitespaces and spaces after ;
- No duplicates:

% CYRILLIC SMALL LETTER IE
<U0435> <U0065>; <U0065>

should become:

% CYRILLIC SMALL LETTER IE
<U0435> <U0065>

- There are few issues with the definitions:

% CYRILLIC CAPITAL LETTER U
<U0423> <U0055>; <U0055>
% CYRILLIC UNDEFINED
<U0423><U0423> <U00DA>; "<U0055><U0060>"

% CYRILLIC SMALL LETTER U
<U0443> <U0075>; <U0075>
% CYRILLIC UNDEFINED
<U0443><U0443> <U00FA>; "<U0075><U0060>"

I wonder would it be possible to automate generation of this file so
that issues like the above could avoided? But perhaps that could be the
next step once this initial patch lands.

Thanks,

On 2018-10-05 23:47, Egor Kobylkin wrote:

> After some kind help from Marko in the offline discussion
> I realized the multi/single character approach I originally took was
> against the  of the iconv(1) logic anyway. So there is no harm in
> dropping it and adopting Marko's suggestion instead. I will do so and
> will resubmit the patch with ISO 9:1995/GOST 7.79 System A + fallback to
> GOST 7.79 System B (for ASCII).
>
> However this doesn't resolve the issue for ASCII part being different
> for various locales. Again, I am offering the locale maintainers to let
> me know if they want to 1) adopt the one I am supplying, 2) write their
> own or 3) ignore the patch altogether. Your feedback is appreciated!
>
> This is the relevant part that helped:
>> The first part (ISO-8859-15 or ASCII) defines the target encoding for
>> iconv(1). //TRANSLIT is described in the iconv(1) man page as:
>>
>> If the string //TRANSLIT is appended to to-encoding,  characters
>> being  converted  are  transliterated  when needed and possible. This
>> means that when a character cannot be  represented  in  the target
>> character set, it can be approximated through one or sev‐ eral
>> similar looking characters.  Characters that are outside of the
>> target  character  set  and  cannot  be  transliterated are replaced
>> with a question mark (?) in the output.
>>
>> So in the above examples, iconv(1) encounters the character U+0428
>> which is not part of either of the target encoding and since
>> //TRANSLIT is specified, iconv(1) tries transliteration according to
>> the rules defined above, in case of ASCII U+0160 is not part of the
>> target encoding so the next alternative is used.
>
> Bests,
> Egor Kobylkin
>
> On 05.10.2018 14:21, Marko Myllynen wrote:
>> Hi,
>>
>> The scheme I proposed would also be ASCII compatible; consider this
>> example:
>>
>> % CYRILLIC CAPITAL LETTER SHA <U0428> "<U0160>";"<U0053><U0068>"
>>
>> "printf \\u0428\\n | iconv -f UTF-8 -t ISO-8859-15//TRANSLIT | iconv
>> -f ISO-8859-15 -t UTF-8" would produce Š as per System A and "printf
>>  \\u0428\\n | iconv -f UTF-8 -t ASCII//TRANSLIT" would produce Sh as
>> per System B.
>>
>> Thanks,
>>
>> On 2018-10-05 15:00, Egor Kobylkin wrote:
>>> Hi Marko,
>>>
>>> I have chosen the System B because it is ASCII compartible. System
>>> A is not ASCII compartible (diacritics in target).
>>>
>>> https://en.wikipedia.org/wiki/ISO_9#ISO_9:1995,_or_GOST_7.79_System_A
>>>
>>>
>>>
> "GOST 7.79 contains two transliteration tables.
>>>
>>> System A one Cyrillic character to one Latin character, some with
>>> diacritics – identical to ISO 9:1995
>>>
>>> System B one Cyrillic character to one or many Latin characters
>>> without diacritics " Hope this helps, Egor
>>>
>>> On 05.10.2018 13:54, Marko Myllynen wrote:
>>>> Hi,
>>>>
>>>> Would it make sense to first use ISO 9:1995/GOST 7.79 System A if
>>>> possible and if not, then fall back to GOST 7.79 System B?
>>>>
>>>> Implementation-wise current translit_* files have few examples
>>>> where a non-ASCII transliteration is tried first before an ASCII
>>>> fallback. These examples are from translit_neutral:
>>>>
>>>> % NARROW NO-BREAK SPACE <U202F> <U00A0>;<U0020> % REVERSED
>>>> TRIPLE PRIME <U2037>
>>>> "<U2035><U2035><U2035>";"<U0060><U0060><U0060>"
>>>>
>>>> Thanks,
>>>>
>>>> On 2018-10-05 13:29, Egor Kobylkin wrote:
>>>>> Keld,Marko,Rafal, other locale maintainers,
>>>>>
>>>>> this all is written with having in mind a minimal viable fix
>>>>> for this bug asap. I want to avoid wasting maintainers time
>>>>> getting into fundamental discussions here (although for
>>>>> perfectly good reasons).
>>>>>
>>>>> I see three options: 1. those locale maintainers that are fine
>>>>> with using ISO 9:1995/GOST_7.79_System_B cyrillic
>>>>> transliteration table (Ru) include it in their locales (see
>>>>> attached screenshot of the table). 2. those that that want to
>>>>> have a differing table can create their own variety based on
>>>>> the spreadsheet I have prepared
>>>>> https://sourceware.org/bugzilla/attachment.cgi?id=8590 and
>>>>> include it in this patch. 3. those that want to omit a
>>>>> cyrillic transliteration altogether for now state so and just
>>>>> carry over the bug #2872 from the year 2006.
>>>>>
>>>>> Does this make sense to you?
>>>>>
>>>>> Just to be super clear on this: the patch is a stopgap _ASCII_
>>>>>  transliteration table. ASCII being AMERICAN Standard Code for
>>>>>  Information Interchange, that is obviously orthogonal to any
>>>>> transliteration rule of other countries. As such it is not
>>>>> explicitly targeting transliteration standards of any country.
>>>>>
>>>>> The fact that the patch is reflecting Russian variety of ISO
>>>>> 9:1995/GOST_7.79_System_B is because a) ISO
>>>>> 9:1995/GOST_7.79_System_B is available and can be helpful to a
>>>>> majority of cyrillic users b) I have access to it including
>>>>> via being proficient in Russian.
>>>>>
>>>>> It is offered to all the respective locale maintainers as a
>>>>> stopgap solution. Stopgap in the sense that it is better to
>>>>> have some transliteration than not to have any at all and
>>>>> carry over the bug from 2006. That it may be a somewhat
>>>>> officially correct transliteration for ru_RU is a bonus. In
>>>>> that sense I would dub the discussion on the correctness for
>>>>> other languages "offtopic". Let me know if this is not OK.
>>>>>
>>>>> You are all are correctly mentioning the deficiencies of this
>>>>> approach. However, I couldn't find a better straightforward
>>>>> approach as of yet. Happy to hear from you as on how this
>>>>> could be handled.
>>>>>
>>>>> There is a danger of being caught in the web of
>>>>> language/country differences. I propose just pruning the
>>>>> locales that are not comfortable including this current table.
>>>>> We can address possible solutions in the second wave of
>>>>> patching.
>>>>>
>>>>> I am vary of getting into discussions on specific country
>>>>> variants just because of the sheer complexity of this topic.
>>>>> It is probably better addressed by respective maintainers of
>>>>> their locales. I do not see a "one fits all" solution in this
>>>>> first wave possible.
>>>>>
>>>>> I would like to have this "three options plan of action"
>>>>> vetted first and then we could go to the specific detail.
>>>>> (Like, for instance, what characters should be included in to
>>>>> the table, and in which transliteration form.)
>>>>>
>>>>> I am looking forward to your reply, Egor Kobylkin
>>>>>
>>>>> P.S. specifically as to how address languages other than Ru
>>>>> included in GOST_7.79_System_B: we can take the first option
>>>>> left to right from that table (Ru,By,Uk,Bg,Mk). Then it will
>>>>> technically work for all those locales/languages but with
>>>>> errors where Ru supersedes their own variants.
>>>>>
>>>>>
>>>>> On 05.10.2018 11:20, Rafal Luzynski wrote:
>>>>>> 3.10.2018 11:32 Egor Kobylkin <[hidden email]> wrote:
>>>>>>>
>>>>>>> On 03.10.2018 11:19, Keld Simonsen wrote:
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> Please note that translitteration of Cyrillic to latin
>>>>>>>> is not universal. There are different schemes for for
>>>>>>>> example German, English and Danish, and there is also an
>>>>>>>> ISO standard for it.
>>>>>>>
>>>>>>> Thanks for your feedback, Keld!
>>>>>>>
>>>>>>> Could the locale maintainers that wouldn't like to include
>>>>>>> this patch explicitly state so here?
>>>>>>
>>>>>> I think it is about me so I must reply.  I am sorry about
>>>>>> that and the sole reason is my lack of time.  I'm just a
>>>>>> volunteer here, that means it's not my regular job to work
>>>>>> on locale data nor anything in glibc nor in any other open
>>>>>> source project.  I do these things only in my free time
>>>>>> which I don't have much.  Of course you will see my
>>>>>> contributions here and there but they are either trivial or
>>>>>> take me months to complete.  Your patches are on my radar but
>>>>>> I can't tell any ETA for them.  Of course, there are other
>>>>>> people around here and they are all welcome to come and
>>>>>> join.
>>>>>>
>>>>>>> That is: - In the case that there is a different preferred
>>>>>>> cyrillic transliteration table for any specific locale
>>>>>>> their maintainers may want to point me to it so I can
>>>>>>> supply a separate table/patch. - Or they could state
>>>>>>> explicitly that for some reason they would like to exclude
>>>>>>> their locale from the patch for a default cyrillic
>>>>>>> transliteration altogether.
>>>>>>
>>>>>> As Keld wrote, there are probably separate rules for every
>>>>>> language so I don't think you should treat your rules as
>>>>>> universal and include them in every locale.  At first sight,
>>>>>> it seems to me they work only for English (as a destination
>>>>>> locale).  Also, although it is called "transliteration from
>>>>>> Cyrillic" it seems that it covers only Russian alphabet. What
>>>>>> about other languages which use Cyrillic alphabet but add
>>>>>> their own diacritic characters?  Think about Belarusian,
>>>>>> Ukrainian, Serbian, Chechen, Chuvash, Mari, Ossetian, Yakut,
>>>>>> Tatar, and more.  What about languages which use Cyrillic
>>>>>> alphabet but transliterate their respective letters in a
>>>>>> different way than Russian?  For example, Russian "Ъ" is (I
>>>>>> think) usually skipped in transliteration, I think you
>>>>>> propose "``", but when transliterating from Bulgarian they
>>>>>> usually transliterate this as "ă".
>>>>>>
>>>>>> Few remarks:
>>>>>>
>>>>>> * I think you transliterate "щ" as "shh", wouldn't "shch" be
>>>>>> better? * You transliterate "ц" as "cz", wouldn't "ts" be
>>>>>> better?  By the way, in Polish language "cz" is a correct
>>>>>> transliteration of "ч". * You transliterate "й" as "j", this
>>>>>> is fine in many languages but wouldn't "y" be better in
>>>>>> English? * In case of "е": how will you know if it is
>>>>>> correct to transliterate it to "e" or "ie" or "je" or "ye"?
>>>>>>
>>>>>> These remarks are obviously incomplete, your patch deserves
>>>>>> much more attention to review.
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>> Rafal
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>


--
Marko Myllynen
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Rafal Luzynski
In reply to this post by Diego (Egor) Kobylkin
5.10.2018 12:36 Egor Kobylkin <[hidden email]> wrote:

> [...]
> I see three options:
> 1. those locale maintainers that are fine with using ISO
> 9:1995/GOST_7.79_System_B cyrillic transliteration table (Ru) include it
> in their locales. https://sourceware.org/bugzilla/attachment.cgi?id=11289
> 2. those that that want to have a differing table can create their own
> variety based on the spreadsheet I have prepared
> https://sourceware.org/bugzilla/attachment.cgi?id=8590 and include it in
> this patch.
> 3. those that want to omit a cyrillic transliteration altogether for now
> state so and just carry over the bug #2872 from the year 2006.
>
> Does this make sense to you?

The problem is that we don't have a separate maintainer for each locale,
we have only 2 maintainers for about 200 locales and we must represent
them all.  Sometimes a locale may happen to be our own native locale or
of someone in this list, or it may be a locale which we accidentally can
speak as a foreign language, or we may have friends who can speak it.
Or it may be totally unknown and we still must somehow handle it.

I think that these transliteration rules should be included in multiple
locales on "opt-in" basis rather than "opt-out".  I mean, we should not
include them in all locales unless someone explicitly provides a different
rules.  Instead, I think we should add them (maybe with modification)
only to those locales where we have a good reason to think they will work.

Particularly, I think that those rules will not be helpful at all for
the languages which use neither Latin nor Cyrillic alphabet.

> [...]
> The fact that the patch is reflecting Russian variety of ISO
> 9:1995/GOST_7.79_System_B is because a) ISO 9:1995/GOST_7.79_System_B is
> available and can be helpful to a majority of cyrillic users b) I have
> access to it including via being proficient in Russian.

I took a look at these standards and as first I doubted they may be
correct for English language now I understand they are created for
Russian users.  Therefore I think it is pretty correct to include them
to Russian locale data.  Will it be OK if we say that it is only for
Russian language?  Will it be satisfying for you and/or your users?

> It is offered to all the respective locale maintainers as a stopgap
> solution. Stopgap in the sense that it is better to have some
> transliteration than not to have any at all and carry over the bug from
> 2006. That it may be a somewhat officially correct transliteration for
> ru_RU is a bonus. In that sense I would dub the discussion on the
> correctness for other languages "offtopic". Let me know if this is not OK.

If you refer to other languages than Russian which also use the Cyrillic
alphabet but need a different transliteration rules than Russian for
the same characters then it is OK for me now.  I am afraid that the iconv
algorithm does not handle such case.  Of course, we should add this missing
feature eventually but I do not volunteer to do it now.

> [...]
> P.S. specifically as to how address languages other than Ru included in
> GOST_7.79_System_B: we can take the first option left to right from that
> table (Ru,By,Uk,Bg,Mk). Then it will technically work for all those
> locales/languages but with errors where Ru supersedes their own variants.

Makes sense, as long as we cannot select the source language now.

But, while at this, is there anything that stops are from adding transliteration
rules for additional Cyrillic characters not used in Russian but used in
other languages?

Regards,

Rafal
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Rafal Luzynski
In reply to this post by Marko Myllynen
8.10.2018 14:40 Marko Myllynen <[hidden email]> wrote:

> Hi,
>
> Thanks for the update. I have few mostly cosmetic comments below,
> hopefully we'll hear from others whether they agree with this direction.
>
> - Please add the standard glibc locale header (see the existing
> translit_* files for reference)
> - Consider wrapping the header lines at or around column 70-72
> - Consider describing which characters, character ranges, or blocks are
> supported (perhaps also describe why some of those are not included, see
> e.g. https://en.wikipedia.org/wiki/Cyrillic_script_in_Unicode)
> - Please remove trailing whitespaces and spaces after ;

Thanks for this, Marko.  While at this, in the ChangeLog and in the commit
message these paths:

        * locales/aa_DJ: likewise

1. Should be a relative path starting in the root directory of glibc source,
   that is: "* localedata/locales/aa_DJ".
2. Should be "Likewise." (starting with an uppercase and ending with a dot).

> - No duplicates:
>
> % CYRILLIC SMALL LETTER IE
> <U0435> <U0065>; <U0065>
>
> should become:
>
> % CYRILLIC SMALL LETTER IE
> <U0435> <U0065>
>
> - There are few issues with the definitions:
>
> % CYRILLIC CAPITAL LETTER U
> <U0423> <U0055>; <U0055>
> % CYRILLIC UNDEFINED
> <U0423><U0423> <U00DA>; "<U0055><U0060>"
>
> % CYRILLIC SMALL LETTER U
> <U0443> <U0075>; <U0075>
> % CYRILLIC UNDEFINED
> <U0443><U0443> <U00FA>; "<U0075><U0060>"

Are the duplicates here because some Cyrillic letters may have multiple
Latin transliterations depending on the context, for example Cyrillic IE
must be transliterated sometimes as "e", sometimes as "ie", sometimes
as "ye" or "je"?  Can we provide rules for groups of characters instead?

> I wonder would it be possible to automate generation of this file so
> that issues like the above could avoided? But perhaps that could be the
> next step once this initial patch lands.

I agree with this.

Regards,

Rafal
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Diego (Egor) Kobylkin
In reply to this post by Rafal Luzynski
Hi Rafal,

> But, while at this, is there anything that stops are from adding
> transliteration rules for additional Cyrillic characters not used in
> Russian but used in other languages?

Just to make sure we are not talking at cross purposes. Since your last
email on this topic on the suggestion from Marko I have already
implemented ISO 9 transliteration for all characters there are. This
should cover most if not all Slavic Cyrillic. You seem to have just
noticed and replied to this email of Marko as I write mine.

Pls also check the Spreadsheet version I have just uploaded
https://sourceware.org/bugzilla/attachment.cgi?id=11298

I am currently absorbing Marko's further suggestions and correction to
that one and will get back for more discussion once done there. I am
reading your suggestions and taking them to my heart, be sure of that.

Two  professional translators independently indicated the difference
between transliteration and transcription to me. Transliteration is
normative (letter for letter) and transcription is phonetic - letter for
whatever combination of Latin letters in the target language that sounds
like it for a native speaker. While transliteration should be easy to
cover for all those languages via ISO 9, transcription is inherently
language specific. The problem is we are (mis)using the transcription as
transliteration to ASCII because ASCII set of characters does not allow
for proper transcription. Another problem is that to be really useful
the ASCII transliteration should work outside of source locale (i.e. not
only ru_RU but en_US, de_DE, en_DE, es_ES etc. or even just C locale).

In fact for myself I would be committed to do all work needed to cover
at least C, en_US, ru_RU, de_DE in that order. ru_RU as a "courtesy", I
am not really using it but hope more contributors for locales may come
because of that and fix my bugs :-).


> The problem is that we don't have a separate maintainer for each
> locale, we have only 2 maintainers for about 200 locales and we must
> represent them all.

It was not clear to me that glibc team can not fall back on the
individual locale maintainers to make the decision. But then it may make
the decision making even easier. If you guys have a list of requirements
(may be implicit until now) could you please shoot them my way? We can
also certainly just keep this thread up and have all issues ironed out.

Anyway hopefully with ISO 9 as a first column in the translit_cyrillic
we cover the issue of the completeness of transliteration now. What we
need to figure out is transcription/transliteration to ASCII - second
column.

Are we sharing the same view on this?

Speaking on decision making - maybe I can get an officially certified
court translator to answer our questions. Do you care to put a list
together of questions you would like answered to make a decision on the
table/inclusion into various locales?

Hope this helps,
Egor


On 09.10.2018 00:04, Rafal Luzynski wrote:

> 5.10.2018 12:36 Egor Kobylkin <[hidden email]> wrote:
>> [...] I see three options: 1. those locale maintainers that are
>> fine with using ISO 9:1995/GOST_7.79_System_B cyrillic
>> transliteration table (Ru) include it in their locales.
>> https://sourceware.org/bugzilla/attachment.cgi?id=11289 2. those
>> that that want to have a differing table can create their own
>> variety based on the spreadsheet I have prepared
>> https://sourceware.org/bugzilla/attachment.cgi?id=8590 and include
>> it in this patch. 3. those that want to omit a cyrillic
>> transliteration altogether for now state so and just carry over the
>> bug #2872 from the year 2006.
>>
>> Does this make sense to you?
>
> The problem is that we don't have a separate maintainer for each
> locale, we have only 2 maintainers for about 200 locales and we must
> represent them all.  Sometimes a locale may happen to be our own
> native locale or of someone in this list, or it may be a locale which
> we accidentally can speak as a foreign language, or we may have
> friends who can speak it. Or it may be totally unknown and we still
> must somehow handle it.
>
> I think that these transliteration rules should be included in
> multiple locales on "opt-in" basis rather than "opt-out".  I mean, we
> should not include them in all locales unless someone explicitly
> provides a different rules.  Instead, I think we should add them
> (maybe with modification) only to those locales where we have a good
> reason to think they will work.
>
> Particularly, I think that those rules will not be helpful at all
> for the languages which use neither Latin nor Cyrillic alphabet.
>
>> [...] The fact that the patch is reflecting Russian variety of ISO
>> 9:1995/GOST_7.79_System_B is because a) ISO
>> 9:1995/GOST_7.79_System_B is available and can be helpful to a
>> majority of cyrillic users b) I have access to it including via
>> being proficient in Russian.
>
> I took a look at these standards and as first I doubted they may be
> correct for English language now I understand they are created for
> Russian users.  Therefore I think it is pretty correct to include
> them to Russian locale data.  Will it be OK if we say that it is only
> for Russian language?  Will it be satisfying for you and/or your
> users?
>
>> It is offered to all the respective locale maintainers as a
>> stopgap solution. Stopgap in the sense that it is better to have
>> some transliteration than not to have any at all and carry over the
>> bug from 2006. That it may be a somewhat officially correct
>> transliteration for ru_RU is a bonus. In that sense I would dub the
>> discussion on the correctness for other languages "offtopic". Let
>> me know if this is not OK.
>
> If you refer to other languages than Russian which also use the
> Cyrillic alphabet but need a different transliteration rules than
> Russian for the same characters then it is OK for me now.  I am
> afraid that the iconv algorithm does not handle such case.  Of
> course, we should add this missing feature eventually but I do not
> volunteer to do it now.
>
>> [...] P.S. specifically as to how address languages other than Ru
>> included in GOST_7.79_System_B: we can take the first option left
>> to right from that table (Ru,By,Uk,Bg,Mk). Then it will technically
>> work for all those locales/languages but with errors where Ru
>> supersedes their own variants.
>
> Makes sense, as long as we cannot select the source language now.
>
> But, while at this, is there anything that stops are from adding
> transliteration rules for additional Cyrillic characters not used in
> Russian but used in other languages?
>
> Regards,
>
> Rafal
>

Hi,

Thanks for the update. I have few mostly cosmetic comments below,
hopefully we'll hear from others whether they agree with this direction.

- Please add the standard glibc locale header (see the existing
translit_* files for reference)
- Consider wrapping the header lines at or around column 70-72
- Consider describing which characters, character ranges, or blocks are
supported (perhaps also describe why some of those are not included, see
e.g. https://en.wikipedia.org/wiki/Cyrillic_script_in_Unicode)
- Please remove trailing whitespaces and spaces after ;
- No duplicates:

% CYRILLIC SMALL LETTER IE
<U0435> <U0065>; <U0065>

should become:

% CYRILLIC SMALL LETTER IE
<U0435> <U0065>

- There are few issues with the definitions:

% CYRILLIC CAPITAL LETTER U
<U0423> <U0055>; <U0055>
% CYRILLIC UNDEFINED
<U0423><U0423> <U00DA>; "<U0055><U0060>"

% CYRILLIC SMALL LETTER U
<U0443> <U0075>; <U0075>
% CYRILLIC UNDEFINED
<U0443><U0443> <U00FA>; "<U0075><U0060>"

I wonder would it be possible to automate generation of this file so
that issues like the above could avoided? But perhaps that could be the
next step once this initial patch lands.

Thanks,

On 2018-10-05 23:47, Egor Kobylkin wrote:

> After some kind help from Marko in the offline discussion
> I realized the multi/single character approach I originally took was
> against the  of the iconv(1) logic anyway. So there is no harm in
> dropping it and adopting Marko's suggestion instead. I will do so and
> will resubmit the patch with ISO 9:1995/GOST 7.79 System A + fallback to
> GOST 7.79 System B (for ASCII).
>
> However this doesn't resolve the issue for ASCII part being different
> for various locales. Again, I am offering the locale maintainers to let
> me know if they want to 1) adopt the one I am supplying, 2) write their
> own or 3) ignore the patch altogether. Your feedback is appreciated!
>
> This is the relevant part that helped:
>> The first part (ISO-8859-15 or ASCII) defines the target encoding for
>> iconv(1). //TRANSLIT is described in the iconv(1) man page as:
>>
>> If the string //TRANSLIT is appended to to-encoding,  characters
>> being  converted  are  transliterated  when needed and possible. This
>> means that when a character cannot be  represented  in  the target
>> character set, it can be approximated through one or sev‐ eral
>> similar looking characters.  Characters that are outside of the
>> target  character  set  and  cannot  be  transliterated are replaced
>> with a question mark (?) in the output.
>>
>> So in the above examples, iconv(1) encounters the character U+0428
>> which is not part of either of the target encoding and since
>> //TRANSLIT is specified, iconv(1) tries transliteration according to
>> the rules defined above, in case of ASCII U+0160 is not part of the
>> target encoding so the next alternative is used.
>
> Bests,
> Egor Kobylkin
>
> On 05.10.2018 14:21, Marko Myllynen wrote:
>> Hi,
>>
>> The scheme I proposed would also be ASCII compatible; consider this
>> example:
>>
>> % CYRILLIC CAPITAL LETTER SHA <U0428> "<U0160>";"<U0053><U0068>"
>>
>> "printf \\u0428\\n | iconv -f UTF-8 -t ISO-8859-15//TRANSLIT | iconv
>> -f ISO-8859-15 -t UTF-8" would produce Š as per System A and "printf
>>  \\u0428\\n | iconv -f UTF-8 -t ASCII//TRANSLIT" would produce Sh as
>> per System B.
>>
>> Thanks,
>>
>> On 2018-10-05 15:00, Egor Kobylkin wrote:
>>> Hi Marko,
>>>
>>> I have chosen the System B because it is ASCII compartible. System
>>> A is not ASCII compartible (diacritics in target).
>>>
>>> https://en.wikipedia.org/wiki/ISO_9#ISO_9:1995,_or_GOST_7.79_System_A
>>>
>>>
>>>
> "GOST 7.79 contains two transliteration tables.
>>>
>>> System A one Cyrillic character to one Latin character, some with
>>> diacritics – identical to ISO 9:1995
>>>
>>> System B one Cyrillic character to one or many Latin characters
>>> without diacritics " Hope this helps, Egor
>>>
>>> On 05.10.2018 13:54, Marko Myllynen wrote:
>>>> Hi,
>>>>
>>>> Would it make sense to first use ISO 9:1995/GOST 7.79 System A if
>>>> possible and if not, then fall back to GOST 7.79 System B?
>>>>
>>>> Implementation-wise current translit_* files have few examples
>>>> where a non-ASCII transliteration is tried first before an ASCII
>>>> fallback. These examples are from translit_neutral:
>>>>
>>>> % NARROW NO-BREAK SPACE <U202F> <U00A0>;<U0020> % REVERSED
>>>> TRIPLE PRIME <U2037>
>>>> "<U2035><U2035><U2035>";"<U0060><U0060><U0060>"
>>>>
>>>> Thanks,
>>>>
>>>> On 2018-10-05 13:29, Egor Kobylkin wrote:
>>>>> Keld,Marko,Rafal, other locale maintainers,
>>>>>
>>>>> this all is written with having in mind a minimal viable fix
>>>>> for this bug asap. I want to avoid wasting maintainers time
>>>>> getting into fundamental discussions here (although for
>>>>> perfectly good reasons).
>>>>>
>>>>> I see three options: 1. those locale maintainers that are fine
>>>>> with using ISO 9:1995/GOST_7.79_System_B cyrillic
>>>>> transliteration table (Ru) include it in their locales (see
>>>>> attached screenshot of the table). 2. those that that want to
>>>>> have a differing table can create their own variety based on
>>>>> the spreadsheet I have prepared
>>>>> https://sourceware.org/bugzilla/attachment.cgi?id=8590 and
>>>>> include it in this patch. 3. those that want to omit a
>>>>> cyrillic transliteration altogether for now state so and just
>>>>> carry over the bug #2872 from the year 2006.
>>>>>
>>>>> Does this make sense to you?
>>>>>
>>>>> Just to be super clear on this: the patch is a stopgap _ASCII_
>>>>>  transliteration table. ASCII being AMERICAN Standard Code for
>>>>>  Information Interchange, that is obviously orthogonal to any
>>>>> transliteration rule of other countries. As such it is not
>>>>> explicitly targeting transliteration standards of any country.
>>>>>
>>>>> The fact that the patch is reflecting Russian variety of ISO
>>>>> 9:1995/GOST_7.79_System_B is because a) ISO
>>>>> 9:1995/GOST_7.79_System_B is available and can be helpful to a
>>>>> majority of cyrillic users b) I have access to it including
>>>>> via being proficient in Russian.
>>>>>
>>>>> It is offered to all the respective locale maintainers as a
>>>>> stopgap solution. Stopgap in the sense that it is better to
>>>>> have some transliteration than not to have any at all and
>>>>> carry over the bug from 2006. That it may be a somewhat
>>>>> officially correct transliteration for ru_RU is a bonus. In
>>>>> that sense I would dub the discussion on the correctness for
>>>>> other languages "offtopic". Let me know if this is not OK.
>>>>>
>>>>> You are all are correctly mentioning the deficiencies of this
>>>>> approach. However, I couldn't find a better straightforward
>>>>> approach as of yet. Happy to hear from you as on how this
>>>>> could be handled.
>>>>>
>>>>> There is a danger of being caught in the web of
>>>>> language/country differences. I propose just pruning the
>>>>> locales that are not comfortable including this current table.
>>>>> We can address possible solutions in the second wave of
>>>>> patching.
>>>>>
>>>>> I am vary of getting into discussions on specific country
>>>>> variants just because of the sheer complexity of this topic.
>>>>> It is probably better addressed by respective maintainers of
>>>>> their locales. I do not see a "one fits all" solution in this
>>>>> first wave possible.
>>>>>
>>>>> I would like to have this "three options plan of action"
>>>>> vetted first and then we could go to the specific detail.
>>>>> (Like, for instance, what characters should be included in to
>>>>> the table, and in which transliteration form.)
>>>>>
>>>>> I am looking forward to your reply, Egor Kobylkin
>>>>>
>>>>> P.S. specifically as to how address languages other than Ru
>>>>> included in GOST_7.79_System_B: we can take the first option
>>>>> left to right from that table (Ru,By,Uk,Bg,Mk). Then it will
>>>>> technically work for all those locales/languages but with
>>>>> errors where Ru supersedes their own variants.
>>>>>
>>>>>
>>>>> On 05.10.2018 11:20, Rafal Luzynski wrote:
>>>>>> 3.10.2018 11:32 Egor Kobylkin <[hidden email]> wrote:
>>>>>>>
>>>>>>> On 03.10.2018 11:19, Keld Simonsen wrote:
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> Please note that translitteration of Cyrillic to latin
>>>>>>>> is not universal. There are different schemes for for
>>>>>>>> example German, English and Danish, and there is also an
>>>>>>>> ISO standard for it.
>>>>>>>
>>>>>>> Thanks for your feedback, Keld!
>>>>>>>
>>>>>>> Could the locale maintainers that wouldn't like to include
>>>>>>> this patch explicitly state so here?
>>>>>>
>>>>>> I think it is about me so I must reply.  I am sorry about
>>>>>> that and the sole reason is my lack of time.  I'm just a
>>>>>> volunteer here, that means it's not my regular job to work
>>>>>> on locale data nor anything in glibc nor in any other open
>>>>>> source project.  I do these things only in my free time
>>>>>> which I don't have much.  Of course you will see my
>>>>>> contributions here and there but they are either trivial or
>>>>>> take me months to complete.  Your patches are on my radar but
>>>>>> I can't tell any ETA for them.  Of course, there are other
>>>>>> people around here and they are all welcome to come and
>>>>>> join.
>>>>>>
>>>>>>> That is: - In the case that there is a different preferred
>>>>>>> cyrillic transliteration table for any specific locale
>>>>>>> their maintainers may want to point me to it so I can
>>>>>>> supply a separate table/patch. - Or they could state
>>>>>>> explicitly that for some reason they would like to exclude
>>>>>>> their locale from the patch for a default cyrillic
>>>>>>> transliteration altogether.
>>>>>>
>>>>>> As Keld wrote, there are probably separate rules for every
>>>>>> language so I don't think you should treat your rules as
>>>>>> universal and include them in every locale.  At first sight,
>>>>>> it seems to me they work only for English (as a destination
>>>>>> locale).  Also, although it is called "transliteration from
>>>>>> Cyrillic" it seems that it covers only Russian alphabet. What
>>>>>> about other languages which use Cyrillic alphabet but add
>>>>>> their own diacritic characters?  Think about Belarusian,
>>>>>> Ukrainian, Serbian, Chechen, Chuvash, Mari, Ossetian, Yakut,
>>>>>> Tatar, and more.  What about languages which use Cyrillic
>>>>>> alphabet but transliterate their respective letters in a
>>>>>> different way than Russian?  For example, Russian "Ъ" is (I
>>>>>> think) usually skipped in transliteration, I think you
>>>>>> propose "``", but when transliterating from Bulgarian they
>>>>>> usually transliterate this as "ă".
>>>>>>
>>>>>> Few remarks:
>>>>>>
>>>>>> * I think you transliterate "щ" as "shh", wouldn't "shch" be
>>>>>> better? * You transliterate "ц" as "cz", wouldn't "ts" be
>>>>>> better?  By the way, in Polish language "cz" is a correct
>>>>>> transliteration of "ч". * You transliterate "й" as "j", this
>>>>>> is fine in many languages but wouldn't "y" be better in
>>>>>> English? * In case of "е": how will you know if it is
>>>>>> correct to transliterate it to "e" or "ie" or "je" or "ye"?
>>>>>>
>>>>>> These remarks are obviously incomplete, your patch deserves
>>>>>> much more attention to review.
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>> Rafal
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>

--
Marko Myllynen
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Zack Weinberg-2
In reply to this post by Rafal Luzynski
On Mon, Oct 8, 2018 at 6:05 PM Rafal Luzynski
<[hidden email]> wrote:
> The problem is that we don't have a separate maintainer for each locale,
> we have only 2 maintainers for about 200 locales and we must represent
> them all.  Sometimes a locale may happen to be our own native locale or
> of someone in this list, or it may be a locale which we accidentally can
> speak as a foreign language, or we may have friends who can speak it.
> Or it may be totally unknown and we still must somehow handle it.

I just want to mention that this is also why most of the non-locale
maintainers tend to stay out of threads about locales.  We know we're
even less expert on these issues than you are, and I think as a
general rule you should be assuming that the community is OK with what
you're doing unless someone speaks up to object.

zw
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Diego (Egor) Kobylkin
In reply to this post by Rafal Luzynski
On 09.10.2018 00:23, Rafal Luzynski wrote:
> 8.10.2018 14:40 Marko Myllynen <[hidden email]> wrote:
>> Hi,
>>
>> Thanks for the update. I have few mostly cosmetic comments below,
>> hopefully we'll hear from others whether they agree with this direction.
>>

Yeah, the earlier we have feedback the more productive we are. I'd be
happy to get much feedback on this as early as possible. So please
everybody concerned please chime in.

>
>> - No duplicates:
>>
>> % CYRILLIC SMALL LETTER IE
>> <U0435> <U0065>; <U0065>
>>
>> should become:
>>
>> % CYRILLIC SMALL LETTER IE
>> <U0435> <U0065>
>>
>> - There are few issues with the definitions:
>>
>> % CYRILLIC CAPITAL LETTER U
>> <U0423> <U0055>; <U0055>
>> % CYRILLIC UNDEFINED
>> <U0423><U0423> <U00DA>; "<U0055><U0060>"
>>
>> % CYRILLIC SMALL LETTER U
>> <U0443> <U0075>; <U0075>
>> % CYRILLIC UNDEFINED
>> <U0443><U0443> <U00FA>; "<U0075><U0060>"
>
> Are the duplicates here because some Cyrillic letters may have multiple
> Latin transliterations depending on the context, for example Cyrillic IE
> must be transliterated sometimes as "e", sometimes as "ie", sometimes
> as "ye" or "je"?  Can we provide rules for groups of characters instead?
No, the duplicates are just by design of my line generating logic. I
have fixed (removed) them. The varying transcription between
languages/locales can not be handled in one file at all as far as I
understood.

>
>> I wonder would it be possible to automate generation of this file so
>> that issues like the above could avoided? But perhaps that could be the
>> next step once this initial patch lands.

I am generating the content part of the translit_cyrillc from the
LibreOffice Spreadsheet. Not sure if you had time to view it by now?
https://sourceware.org/bugzilla/attachment.cgi?id=11299

Anyway I have just fixed the issues identified by Marko above in that
spreadsheet. I will do the changes for the below request and then upload
the new translit_cyrillic file to the bugzilla.


>> - Please add the standard glibc locale header (see the existing
>> translit_* files for reference)
>> - Consider wrapping the header lines at or around column 70-72
>> - Consider describing which characters, character ranges, or blocks are
>> supported (perhaps also describe why some of those are not included, see
>> e.g. https://en.wikipedia.org/wiki/Cyrillic_script_in_Unicode)
>> - Please remove trailing whitespaces and spaces after ;
>
> Thanks for this, Marko.  While at this, in the ChangeLog and in the commit
> message these paths:
>
> * locales/aa_DJ: likewise
>
> 1. Should be a relative path starting in the root directory of glibc
source,
>    that is: "* localedata/locales/aa_DJ".
> 2. Should be "Likewise." (starting with an uppercase and ending with a
dot).

will do.

Bests,
Egor
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Diego (Egor) Kobylkin
Hi,

I have now implemented all the changes requested for translit_cyrillic
file but started hitting what seems like a bug:

- If the line <U0425> <U0048>;<U0058> is present in translt_cyrillic the
locale compilation fails i.e. grep CYRILLIC < $testfile |
LOCPATH=$workdir/compiled_locales/"$locale"/ LC_ALL="$locale".UTF-8
iconv -f UTF-8 -t ASCII//TRANSLIT is hanging frozen.

- If the line <U0425> <U0048>;<U0058> is absent from translit_cyrillic
everything works, just the transliteration of <U0425> fails as expected
(? is displayed)

- If translit_cyrillic contains <U0425> <U0048>;<U0058> as the _only_
line the transliteration of <U0425> works again (others as ?).

Would you have any idea into what direction should I look? The new
translit_cyrillic is attached.

(<U0425> is % CYRILLIC CAPITAL LETTER HA)

Best regards,
Egor

On 09.10.2018 01:35, Egor Kobylkin wrote:

> On 09.10.2018 00:23, Rafal Luzynski wrote:
>> 8.10.2018 14:40 Marko Myllynen <[hidden email]> wrote:
>>> Hi,
>>>
>>> Thanks for the update. I have few mostly cosmetic comments below,
>>> hopefully we'll hear from others whether they agree with this direction.
>>>
>
> Yeah, the earlier we have feedback the more productive we are. I'd be
> happy to get much feedback on this as early as possible. So please
> everybody concerned please chime in.
>
>>
>>> - No duplicates:
>>>
>>> % CYRILLIC SMALL LETTER IE
>>> <U0435> <U0065>; <U0065>
>>>
>>> should become:
>>>
>>> % CYRILLIC SMALL LETTER IE
>>> <U0435> <U0065>
>>>
>>> - There are few issues with the definitions:
>>>
>>> % CYRILLIC CAPITAL LETTER U
>>> <U0423> <U0055>; <U0055>
>>> % CYRILLIC UNDEFINED
>>> <U0423><U0423> <U00DA>; "<U0055><U0060>"
>>>
>>> % CYRILLIC SMALL LETTER U
>>> <U0443> <U0075>; <U0075>
>>> % CYRILLIC UNDEFINED
>>> <U0443><U0443> <U00FA>; "<U0075><U0060>"
>>
>> Are the duplicates here because some Cyrillic letters may have multiple
>> Latin transliterations depending on the context, for example Cyrillic IE
>> must be transliterated sometimes as "e", sometimes as "ie", sometimes
>> as "ye" or "je"?  Can we provide rules for groups of characters instead?
> No, the duplicates are just by design of my line generating logic. I
> have fixed (removed) them. The varying transcription between
> languages/locales can not be handled in one file at all as far as I
> understood.
>
>>
>>> I wonder would it be possible to automate generation of this file so
>>> that issues like the above could avoided? But perhaps that could be the
>>> next step once this initial patch lands.
>
> I am generating the content part of the translit_cyrillc from the
> LibreOffice Spreadsheet. Not sure if you had time to view it by now?
> https://sourceware.org/bugzilla/attachment.cgi?id=11299
>
> Anyway I have just fixed the issues identified by Marko above in that
> spreadsheet. I will do the changes for the below request and then upload
> the new translit_cyrillic file to the bugzilla.
>
>
>>> - Please add the standard glibc locale header (see the existing
>>> translit_* files for reference)
>>> - Consider wrapping the header lines at or around column 70-72
>>> - Consider describing which characters, character ranges, or blocks are
>>> supported (perhaps also describe why some of those are not included, see
>>> e.g. https://en.wikipedia.org/wiki/Cyrillic_script_in_Unicode)
>>> - Please remove trailing whitespaces and spaces after ;
>>
>> Thanks for this, Marko.  While at this, in the ChangeLog and in the commit
>> message these paths:
>>
>> * locales/aa_DJ: likewise
>>
>> 1. Should be a relative path starting in the root directory of glibc
> source,
>>    that is: "* localedata/locales/aa_DJ".
>> 2. Should be "Likewise." (starting with an uppercase and ending with a
> dot).
>
> will do.
>
> Bests,
> Egor
>


translit_cyrillic (16K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Carlos O'Donell-6
In reply to this post by Zack Weinberg-2
On 10/8/18 7:20 PM, Zack Weinberg wrote:

> On Mon, Oct 8, 2018 at 6:05 PM Rafal Luzynski
> <[hidden email]> wrote:
>> The problem is that we don't have a separate maintainer for each locale,
>> we have only 2 maintainers for about 200 locales and we must represent
>> them all.  Sometimes a locale may happen to be our own native locale or
>> of someone in this list, or it may be a locale which we accidentally can
>> speak as a foreign language, or we may have friends who can speak it.
>> Or it may be totally unknown and we still must somehow handle it.
>
> I just want to mention that this is also why most of the non-locale
> maintainers tend to stay out of threads about locales.  We know we're
> even less expert on these issues than you are, and I think as a
> general rule you should be assuming that the community is OK with what
> you're doing unless someone speaks up to object.

I agree with Zach here.

Rafal and Mike are localedata subsystem maintainers, and your best efforts
are the best we have right now in the community.

I also agree that a conservative position of is always a good place to start,
but it sounds like Egor has added enough coverage to perhaps make all of
these transliterations opt-in by default.

I don't have a good sense of this though, and so I defer to you as a the
subsystem maintainer to review and formulate a position. If you have any
specific questions, I can certainly help review.

--
Cheers,
Carlos.
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872] re-submission for 2.29

Marko Myllynen
In reply to this post by Rafal Luzynski
Hi,

On 2018-10-09 01:04, Rafal Luzynski wrote:
>
> Particularly, I think that those rules will not be helpful at all for
> the languages which use neither Latin nor Cyrillic alphabet.

This is certainly a very good point.

> If you refer to other languages than Russian which also use the Cyrillic
> alphabet but need a different transliteration rules than Russian for
> the same characters then it is OK for me now.  I am afraid that the iconv
> algorithm does not handle such case.  Of course, we should add this missing
> feature eventually but I do not volunteer to do it now.

Yes, this would be needed for correct transliteration of different
languages, and this might be quite a bit of work. There's also the case
of transliteration and character sets, consider the transliteration
examples from https://fi.wikipedia.org/wiki/Siirtokirjoitus:

Russian:        Борис Николаевич Ельцин
Int'l:          Boris Nikolaevič Elʹcin
Finnish:        Boris Nikolajevitš Jeltsin
French:         Boris Nikolaïevitch Ieltsine
Phonetic (IPA): [bɐˈrʲis nʲɪkɐˈlaɪvʲɪtɕ ˈjelʲtsɨn]

For French you'll get the correct transliteration with iconv by using -t
ISO-8859-1//TRANSLIT, for Finnish with -t ISO-8859-15//TRANSLIT but it's
not so obvious how to get the above kind transliteration for ISO 9
international or especially for the phonetic case.

One thing that might be helpful here could be something like:

$ echo ж | LC_ALL=fi_FI.UTF-8 iconv -f UTF-8 -t UTF-8//TRANSLIT_FORCE
ž

That is, force transliteration of each character (if defined) even if
it's part of the target character set. AFAICS this is not currently
possible.

> But, while at this, is there anything that stops are from adding transliteration
> rules for additional Cyrillic characters not used in Russian but used in
> other languages?

This would probably make sense.

FWIW, for Finnish the diff for Russian to be applied in the locale on
top of translit_cyrillic (ISO 9) rules would be something like below, I
still need to check whether there are rules needed for other languages
than Russian that could be added (I hope to submit a proper patch
against fi_FI shortly after translit_cyrillic has landed):

<U0446> "<U0074><U0073>"
<U0447> "<U0074><U0161>";"<U0074><U0073><U0068>"
<U0448> "<U0161>";"<U0073><U0068>"
<U0449> "<U0161><U0074><U0161>";"<U0073><U0068><U0074><U0073><U0068>"
<U044A> ""
<U044C> ""
<U044D> "<U0065>"
<U044E> "<U006A><U0075>"
<U044F> "<U006A><U0061>"
<U0451> "<U006A><U006F>"

Thanks,

--
Marko Myllynen
12