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

Message ID 676c37bd-ba92-a7ed-019e-94974143233f@kobylkin.com
State New, archived
Headers

Commit Message

Egor Kobylkin Nov. 19, 2018, 11:10 a.m. UTC
  Changelog v10:
* Removed ISO 9.1995 GOST 7.79-2000 System A (transliteration to Latin
with diacritics) as conflicting with System B within glibc mechanics and
not solving BZ #2872
* Edited below email, commit message, comment in translit_cyrillic to
reflect System A removal
* Removed <U0423><U0301> and <U0443><U0301> (Cyrillic U with acute,
using composition) as composing is not covered by current glibc
conversion mechanics

Changelog v9:
* Fixed formatting (trailing spaces etc.)
* Put commit summary in the patch file, now it is generated completely
by git format-patch

Changelog v8:
* Re-added missing translit_cyrillic in patch v7 (due to missing "git
add" in the script).

Changelog v7:
* Generated against git://sourceware.org/git/glibc.git master with git
format-patch.
* The 'include "translit_cyrillic";""' now immediately follows last
'include "translit_XXX";""' string (was inserted just before
translit_end previously.)
* Only the locales already having 'include .*translit.*;""' are patched
(see the list for manual exclusions below, full list of included locales
at the end of the email in the commit section.)
* Excluded az_AZ completely to avoid circular reference from tr_TR via
“copy "tr_TR"”.

Changelog v6:
* Locales removed from the patch: C and sd_PK.
* Added locales: az_AZ and ky_KG.
* Consistently transliterate single uppercase Cyrillic letters
  to sequences of all uppercase Latin letters in all languages (whenever
  a Cyrillic letter is transliterated to more than one Latin letter),
  for example "Ї" is now transliterated as "YI" rather than "Yi".

Dear locale maintainers,

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

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

add the Cyrillic transliteration table translit_cyrillic file [7]
to localedata/locales/ and include it in all your locales going forward.

The patch is attached.

From this patch I have excluded locales that already mention cyrillic or
have a transliteration table for it:

mn_MN
sr_RS
tg_TJ
tk_TM
tt_RU
uk_UA
uz_UZ
uz_UZ@cyrillic
uk_UA

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.


The 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.

Example: iconv -f UTF-8 -t ASCII//TRANSLIT will produce ASCII
compatible transcription.

While a UTF-encoded Cyrillic text requires Cyrillic fonts the result of
a transliteration/transcription has only Latin/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 in the file translit_cyrillic [7].
Its content (mapping) is based on ISO 9.1995 standard [10] and its
derivative GOST 7.79-2000 System B official source (Federal Agency on
Technical Regulating and Metrology Of Russian Federation [2]).
Technically an independent but mostly identical source [3] was used and
prepared in a spreadsheet [6].

The transliteration of Cyrillic to ASCII according to GOST 7.79-2000
System B represents what is actually called transcription (preserving
phonemes), while System A is the transliteration (preserving graphemes).
There is no meaningful way to preserve graphemes converting Cyrillic to
ASCII and thus the System B is chosen. [11]

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 all locales that already have 'include .*translit.*;""'
string were identified and included into this patch.

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.

I am excluding these locales from this proposed patch. I have written
directly to locale maintainer emails listed in the files. Volodymyr
Lisivka <vlisivka@gmail.com>, Max Kutny <mkutny@gmail.com> (uk_UA),
Данило Шеган <danilo@gnome.org>  (sr_RS) 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?bugid=2872&action=viewall&hide_obsolete=1
[7] translit_cyrillic
https://sourceware.org/bugzilla/attachment.cgi?bugid=2872&action=viewall&hide_obsolete=1
[8] https://sourceware.org/glibc/wiki/Locales#Testing_Locales
[9] translit-test-input.txt
https://sourceware.org/bugzilla/attachment.cgi?id=11304
[10] https://en.wikipedia.org/wiki/ISO_9#ISO_9:1995,_or_GOST_7.79_System_A
[11]
https://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=gslmka8xq3

Best regards,
Egor Kobylkin
  

Comments

Rafal Luzynski Dec. 7, 2018, 11:35 p.m. UTC | #1
19.11.2018 12:10 Egor Kobylkin <egor@kobylkin.com> wrote:
> 
> Changelog v10:
> * Removed ISO 9.1995 GOST 7.79-2000 System A (transliteration to Latin
> with diacritics) as conflicting with System B within glibc mechanics and
> not solving BZ #2872

I'm in favor of implementing System A and dropping System B instead.
If I understand correctly, System A is actually ISO 9, therefore it is
international, universal, and neutral, while System B is a GOST standard
and therefore used only in Russia (also adopted in several other countries
as well).

It's true that we can't handle both System A and System B.  What we
would like to have is:


             System A
          /============> OUTPUT: Latin with diacritics
  INPUT <    System B
          \============> OUTPUT: Plain ASCII (fallback)

That means: use one system but if the output can't handle it then switch
to another system.

But what we can actually have is either:

          System A                                    Fallback
  INPUT ============> OUTPUT: Latin with diacritics ============> Plain
ASCII

or:

          System B
  INPUT ============> OUTPUT: Plain ASCII

That means, we can only provide a fallback for individual characters,
we can't provide a fallback algorithm (that is, we can't switch to
transliterating 'Х' as 'X' instead of 'H' just because we can't
transliterate
'Ш' as 'Š' and switch to 'SH' instead).

Wouldn't it be better to implement ISO 9 (System A) instead and provide
a fallback ASCII transliteration which could be similar but not identical
to System B?  Is it necessary to provide plain ASCII transliteration
conforming to System B even if that means that we would have not to
implement System A?  If yes, would it be correct to provide System B
for ru_RU (and maybe few more locales) but include System A in all other
locales (except few which we exclude already)?

> * Edited below email, commit message, comment in translit_cyrillic to
> reflect System A removal
> * Removed <U0423><U0301> and <U0443><U0301> (Cyrillic U with acute,
> using composition) as composing is not covered by current glibc
> conversion mechanics

OK, thank you, I like this change.

> [...]
> The transliteration of Cyrillic to ASCII according to GOST 7.79-2000
> System B represents what is actually called transcription (preserving
> phonemes), while System A is the transliteration (preserving graphemes).
> There is no meaningful way to preserve graphemes converting Cyrillic to
> ASCII and thus the System B is chosen. [11]

I'm not sure it should be actually called transcription.  IIUC,
transcription
reflects pronunciation, something we can't easily implement in glibc.
As long as we convert letters to letters (or group of letters to group
of letters) without taking pronunciation into account it should be
called transliteration.  OTOH, I agree that it is rather uncommon in
Russian language to find an example where pronunciation is not perfectly
reflected in spelling.

> +% Generated from UnicodeData.txt with a spreadsheet referenced
> +% in that bugs doclet

The previous versions of your patch had "in that bug's doclet" here
which I think is correct.

I like the version 9 of your patch more so I'm going to write a more
thorough review of it.

Regards,

Rafal
  
Egor Kobylkin Dec. 8, 2018, 9:51 p.m. UTC | #2
Rafal, Dmitry, Marko, Mike

On 08.12.18 00:35, Rafal Luzynski wrote:
> 19.11.2018 12:10 Egor Kobylkin <egor@kobylkin.com> wrote:
>> 
>> Changelog v10: * Removed ISO 9.1995 GOST 7.79-2000 System A
>> (transliteration to Latin with diacritics) as conflicting with
>> System B within glibc mechanics and not solving BZ #2872
> 
> I'm in favor of implementing System A and dropping System B instead.

The BZ #2872 bug name is explicitly "Transliteration Cyrillic -> ASCII
fails". The ISO 9 System A does not map to ASCII so it is not a solution
to BZ #2872 at all.

I was scratching my head as to how can we avoid the explosion of the
scope for this patch. And then it appeared to me that it was wrong to
target all the present locales for the ASCII translit. This seems to be
the root cause for this prolonged A vs. B discussions. The proper target
for my table is actually the C locale translit file
(locale/C-translit.h.in). I will submit a proper patch shortly.

If anyone wants to keep working on the implementation of the Latin
Diacritics transliteration of the Cyrillic letters (System A) you are
welcome to use the tables I have submitted before (v9). That would be a
new feature for glibc as per my understanding. Let's just make super
clear the distinction of the System A (Latin with Diacritics, non-ASCII)
to the ASCII translit as mentioned in BZ #2872 (System B).

My focus is super sharp on helping with Cyrillic -> ASCII translit
availability for a default installation with glibc.

Hope this helps,
Egor
  
Rafal Luzynski Dec. 19, 2018, 10:41 p.m. UTC | #3
8.12.2018 22:51 Egor Kobylkin <egor@kobylkin.com> wrote:
> 
> Rafal, Dmitry, Marko, Mike
> 
> On 08.12.18 00:35, Rafal Luzynski wrote:
> > 19.11.2018 12:10 Egor Kobylkin <egor@kobylkin.com> wrote:
> >> 
> >> Changelog v10: * Removed ISO 9.1995 GOST 7.79-2000 System A
> >> (transliteration to Latin with diacritics) as conflicting with
> >> System B within glibc mechanics and not solving BZ #2872
> > 
> > I'm in favor of implementing System A and dropping System B instead.
> 
> The BZ #2872 bug name is explicitly "Transliteration Cyrillic -> ASCII
> fails". The ISO 9 System A does not map to ASCII so it is not a solution
> to BZ #2872 at all.

I did not mean implementing System A and nothing more.  I meant implementing
System A and a fallback for ASCII which can be similar to System B but
we wouldn't be able to call it "System B" because it would differ in
few cases.

> I was scratching my head as to how can we avoid the explosion of the
> scope for this patch. And then it appeared to me that it was wrong to
> target all the present locales for the ASCII translit. This seems to be
> the root cause for this prolonged A vs. B discussions. The proper target
> for my table is actually the C locale translit file
> (locale/C-translit.h.in). I will submit a proper patch shortly.

I saw your patch v11 and now I must say I'm sorry for making noise because
it was me who said that I didn't mind adding Cyrillic -> ASCII
transliteration
to C locale.  I said so before taking a look at the current contents of
transliteration in C locale.  When I looked at this I realized that it does
not support any national characters, even from modified Latin alphabets
(like
used in most of western European languages).  It only contains mathematical,
physical, commercial, diacritical etc. characters.  So I'm no longer sure
it should support Cyrillic -> ASCII.  But maybe again I'm wrong, maybe
it should support but just nobody implemented it yet.

> If anyone wants to keep working on the implementation of the Latin
> Diacritics transliteration of the Cyrillic letters (System A) you are
> welcome to use the tables I have submitted before (v9). That would be a
> new feature for glibc as per my understanding. Let's just make super
> clear the distinction of the System A (Latin with Diacritics, non-ASCII)
> to the ASCII translit as mentioned in BZ #2872 (System B).

I liked your v9 patch more.  I really appreciate your work and I'm not
going to ask you to provide more patches because I think that so far you
have provided all possible versions.  I hope that your work will not be
lost.

> My focus is super sharp on helping with Cyrillic -> ASCII translit
> availability for a default installation with glibc.

I understand your aim and I agree to support ASCII.  Our disagreements are:

* whether to support conversion Cyrillic -> extended Latin as well,
* which standard to implement,
* what to do if the standard is ambiguous or if some details cannot be
  implemented for technical reasons.

Regards,

Rafal
  
Egor Kobylkin Dec. 19, 2018, 11:02 p.m. UTC | #4
On 19.12.18 23:41, Rafal Luzynski wrote:
> 8.12.2018 22:51 Egor Kobylkin <egor@kobylkin.com> wrote:
>>
>> Rafal, Dmitry, Marko, Mike
>>
>> On 08.12.18 00:35, Rafal Luzynski wrote:
>>> 19.11.2018 12:10 Egor Kobylkin <egor@kobylkin.com> wrote:
>>>>
>>>> Changelog v10: * Removed ISO 9.1995 GOST 7.79-2000 System A
>>>> (transliteration to Latin with diacritics) as conflicting with
>>>> System B within glibc mechanics and not solving BZ #2872
>>>
>>> I'm in favor of implementing System A and dropping System B instead.
>>
>> The BZ #2872 bug name is explicitly "Transliteration Cyrillic -> ASCII
>> fails". The ISO 9 System A does not map to ASCII so it is not a solution
>> to BZ #2872 at all.
> 
> I did not mean implementing System A and nothing more.  I meant implementing
> System A and a fallback for ASCII which can be similar to System B but
> we wouldn't be able to call it "System B" because it would differ in
> few cases.
Just for the record, I have no objection on my side to that (Using A as
a basis for ASCII as well).

But I'm not sure anymore that inserting a translit table into every
locale is the right solution for ASCII problem. Especially because
distributions may not include any locale but C.

> 
>> I was scratching my head as to how can we avoid the explosion of the
>> scope for this patch. And then it appeared to me that it was wrong to
>> target all the present locales for the ASCII translit. This seems to be
>> the root cause for this prolonged A vs. B discussions. The proper target
>> for my table is actually the C locale translit file
>> (locale/C-translit.h.in). I will submit a proper patch shortly.
> 
> I saw your patch v11 and now I must say I'm sorry for making noise because
> it was me who said that I didn't mind adding Cyrillic -> ASCII
> transliteration
> to C locale.  I said so before taking a look at the current contents of
> transliteration in C locale.  When I looked at this I realized that it does
> not support any national characters, even from modified Latin alphabets
> (like
> used in most of western European languages).  It only contains mathematical,
> physical, commercial, diacritical etc. characters.  So I'm no longer sure
> it should support Cyrillic -> ASCII.  But maybe again I'm wrong, maybe
> it should support but just nobody implemented it yet.

Actually there are quite a few letters already transliterated in
locale/C-translit.h.in. (Note the CAPCAP transliteration style for the
capitals, i.e. LATIN CAPITAL LETTER AE is mapped to AE, not to Ae.)

"\x00c6"	"AE"	/* <U00C6> LATIN CAPITAL LETTER AE */
"\x00d7"	"x"	/* <U00D7> MULTIPLICATION SIGN */
"\x00df"	"ss"	/* <U00DF> LATIN SMALL LETTER SHARP S */
"\x00e6"	"ae"	/* <U00E6> LATIN SMALL LETTER AE */
"\x0132"	"IJ"	/* <U0132> LATIN CAPITAL LIGATURE IJ */
"\x0133"	"ij"	/* <U0133> LATIN SMALL LIGATURE IJ */
"\x0149"	"'n"	/* <U0149> LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
"\x0152"	"OE"	/* <U0152> LATIN CAPITAL LIGATURE OE */
"\x0153"	"oe"	/* <U0153> LATIN SMALL LIGATURE OE */
"\x017f"	"s"	/* <U017F> LATIN SMALL LETTER LONG S */
"\x01c7"	"LJ"	/* <U01C7> LATIN CAPITAL LETTER LJ */
"\x01c8"	"Lj"	/* <U01C8> LATIN CAPITAL LETTER L WITH SMALL LETTER J */
"\x01c9"	"lj"	/* <U01C9> LATIN SMALL LETTER LJ */
"\x01ca"	"NJ"	/* <U01CA> LATIN CAPITAL LETTER NJ */
"\x01cb"	"Nj"	/* <U01CB> LATIN CAPITAL LETTER N WITH SMALL LETTER J */
"\x01cc"	"nj"	/* <U01CC> LATIN SMALL LETTER NJ */
"\x01f1"	"DZ"	/* <U01F1> LATIN CAPITAL LETTER DZ */
"\x01f2"	"Dz"	/* <U01F2> LATIN CAPITAL LETTER D WITH SMALL LETTER Z */
"\x01f3"	"dz"	/* <U01F3> LATIN SMALL LETTER DZ */


>> My focus is super sharp on helping with Cyrillic -> ASCII translit
>> availability for a default installation with glibc.
> 
> I understand your aim and I agree to support ASCII.  Our disagreements are:
> 
> * whether to support conversion Cyrillic -> extended Latin as well,
no contest on my side
> * which standard to implement,
no contest on my side
> * what to do if the standard is ambiguous or if some details cannot be
>   implemented for technical reasons.
no contest on my side either

I just think we may work around all those decisions with a smaller pure
ASCII patch first (more useful too if covers C locale).
  
Rafal Luzynski Dec. 20, 2018, 12:05 a.m. UTC | #5
20.12.2018 00:02 Egor Kobylkin <egor@kobylkin.com> wrote:
> [...]
> But I'm not sure anymore that inserting a translit table into every
> locale is the right solution for ASCII problem. Especially because
> distributions may not include any locale but C.

My question (and my doubt) is whether they want to support Cyrillic
transliteration in that case.  If yes then maybe they also want more
transliterations as well.  I'm not telling we will include them now,
just wonder what is the reason why they were not yet included in C.

> [...]
> Actually there are quite a few letters already transliterated in
> locale/C-translit.h.in.

Sure, my list was not complete and I did not mean there are no Latin
characters supported.  But there is nothing from the long list of
á, à, ä, ã, ǎ, å, ā, ą, ạ, ȧ, ć, ĉ, ç, é, è, ë, ...

> (Note the CAPCAP transliteration style for the
> capitals, i.e. LATIN CAPITAL LETTER AE is mapped to AE, not to Ae.)

Sure, because they are ligatures: "A" + "E", not "A" + "e".  Note that
where three variants of ligatures exist, like "LJ", "Lj", "lj" then
all three are supported.

> [ cut the list ]
> 
> > [...]
> > I understand your aim and I agree to support ASCII.  Our disagreements
> > are:
> > 
> > * whether to support conversion Cyrillic -> extended Latin as well,
> no contest on my side
> > * which standard to implement,
> no contest on my side
> > * what to do if the standard is ambiguous or if some details cannot be
> >   implemented for technical reasons.
> no contest on my side either

Good, three steps forward.

Regards,

Rafal
  

Patch

From ce25f26f21918147f6444dac0fa03096368e6494 Mon Sep 17 00:00:00 2001
From: Egor Kobylkin <egor@kobylkin.com>
Date: Mon, 19 Nov 2018 12:03:14 +0100
Subject: [PATCH] Locales: Cyrillic -> ASCII transliteration table [BZ #2872]

	[BZ #2872]
	* localedata/locales/translit_cyrillic: New file. Supports
	ISO 9.1995, GOST 7.79 System B transcription table from Cyrillic
	to ASCII.
	* localedata/locales/aa_DJ: Add 'include "translit_cyrillic";""'
	to LC_CTYPE translit section.
	* localedata/locales/af_ZA: Likewise.
	* localedata/locales/ak_GH: Likewise.
	* localedata/locales/am_ET: Likewise.
	* localedata/locales/ar_EG: Likewise.
	* localedata/locales/be_BY: Likewise.
	* localedata/locales/bem_ZM: Likewise.
	* localedata/locales/ber_DZ: Likewise.
	* localedata/locales/ber_MA: Likewise.
	* localedata/locales/bg_BG: Likewise.
	* localedata/locales/bi_VU: Likewise.
	* localedata/locales/bn_BD: Likewise.
	* localedata/locales/bo_CN: Likewise.
	* localedata/locales/ca_ES: Likewise.
	* localedata/locales/ce_RU: Likewise.
	* localedata/locales/cmn_TW: Likewise.
	* localedata/locales/cs_CZ: Likewise.
	* localedata/locales/cv_RU: Likewise.
	* localedata/locales/cy_GB: Likewise.
	* localedata/locales/da_DK: Likewise.
	* localedata/locales/de_DE: Likewise.
	* localedata/locales/dv_MV: Likewise.
	* localedata/locales/dz_BT: Likewise.
	* localedata/locales/el_GR: Likewise.
	* localedata/locales/en_GB: Likewise.
	* localedata/locales/en_NG: Likewise.
	* localedata/locales/en_ZM: Likewise.
	* localedata/locales/es_CU: Likewise.
	* localedata/locales/es_ES: Likewise.
	* localedata/locales/et_EE: Likewise.
	* localedata/locales/fa_IR: Likewise.
	* localedata/locales/ff_SN: Likewise.
	* localedata/locales/fi_FI: Likewise.
	* localedata/locales/fr_FR: Likewise.
	* localedata/locales/ga_IE: Likewise.
	* localedata/locales/gd_GB: Likewise.
	* localedata/locales/gu_IN: Likewise.
	* localedata/locales/gv_GB: Likewise.
	* localedata/locales/he_IL: Likewise.
	* localedata/locales/hi_IN: Likewise.
	* localedata/locales/hif_FJ: Likewise.
	* localedata/locales/hr_HR: Likewise.
	* localedata/locales/ht_HT: Likewise.
	* localedata/locales/hu_HU: Likewise.
	* localedata/locales/hy_AM: Likewise.
	* localedata/locales/id_ID: Likewise.
	* localedata/locales/is_IS: Likewise.
	* localedata/locales/it_IT: Likewise.
	* localedata/locales/ja_JP: Likewise.
	* localedata/locales/kab_DZ: Likewise.
	* localedata/locales/kk_KZ: Likewise.
	* localedata/locales/km_KH: Likewise.
	* localedata/locales/kn_IN: Likewise.
	* localedata/locales/ko_KR: Likewise.
	* localedata/locales/ks_IN: Likewise.
	* localedata/locales/kw_GB: Likewise.
	* localedata/locales/ky_KG: Likewise.
	* localedata/locales/lb_LU: Likewise.
	* localedata/locales/lg_UG: Likewise.
	* localedata/locales/lij_IT: Likewise.
	* localedata/locales/ln_CD: Likewise.
	* localedata/locales/lo_LA: Likewise.
	* localedata/locales/lt_LT: Likewise.
	* localedata/locales/lv_LV: Likewise.
	* localedata/locales/mg_MG: Likewise.
	* localedata/locales/mhr_RU: Likewise.
	* localedata/locales/mk_MK: Likewise.
	* localedata/locales/ml_IN: Likewise.
	* localedata/locales/ms_MY: Likewise.
	* localedata/locales/mt_MT: Likewise.
	* localedata/locales/nan_TW@latin: Likewise.
	* localedata/locales/nb_NO: Likewise.
	* localedata/locales/ne_NP: Likewise.
	* localedata/locales/nhn_MX: Likewise.
	* localedata/locales/niu_NU: Likewise.
	* localedata/locales/niu_NZ: Likewise.
	* localedata/locales/nl_NL: Likewise.
	* localedata/locales/nr_ZA: Likewise.
	* localedata/locales/oc_FR: Likewise.
	* localedata/locales/om_KE: Likewise.
	* localedata/locales/or_IN: Likewise.
	* localedata/locales/os_RU: Likewise.
	* localedata/locales/pa_IN: Likewise.
	* localedata/locales/pa_PK: Likewise.
	* localedata/locales/pl_PL: Likewise.
	* localedata/locales/pt_PT: Likewise.
	* localedata/locales/quz_PE: Likewise.
	* localedata/locales/ro_RO: Likewise.
	* localedata/locales/ru_RU: Likewise.
	* localedata/locales/rw_RW: Likewise.
	* localedata/locales/sa_IN: Likewise.
	* localedata/locales/sd_IN: Likewise.
	* localedata/locales/sd_IN@devanagari: Likewise.
	* localedata/locales/se_NO: Likewise.
	* localedata/locales/sgs_LT: Likewise.
	* localedata/locales/shn_MM: Likewise.
	* localedata/locales/si_LK: Likewise.
	* localedata/locales/sk_SK: Likewise.
	* localedata/locales/sl_SI: Likewise.
	* localedata/locales/sm_WS: Likewise.
	* localedata/locales/so_SO: Likewise.
	* localedata/locales/sq_AL: Likewise.
	* localedata/locales/ss_ZA: Likewise.
	* localedata/locales/st_ZA: Likewise.
	* localedata/locales/sv_SE: Likewise.
	* localedata/locales/sw_KE: Likewise.
	* localedata/locales/ta_IN: Likewise.
	* localedata/locales/te_IN: Likewise.
	* localedata/locales/th_TH: Likewise.
	* localedata/locales/ti_ET: Likewise.
	* localedata/locales/tn_ZA: Likewise.
	* localedata/locales/to_TO: Likewise.
	* localedata/locales/tpi_PG: Likewise.
	* localedata/locales/tr_TR: Likewise.
	* localedata/locales/ts_ZA: Likewise.
	* localedata/locales/unm_US: Likewise.
	* localedata/locales/ur_IN: Likewise.
	* localedata/locales/ur_PK: Likewise.
	* localedata/locales/ve_ZA: Likewise.
	* localedata/locales/vi_VN: Likewise.
	* localedata/locales/wa_BE: Likewise.
	* localedata/locales/wo_SN: Likewise.
	* localedata/locales/xh_ZA: Likewise.
	* localedata/locales/yi_US: Likewise.
	* localedata/locales/yuw_PG: Likewise.
	* localedata/locales/zh_CN: Likewise.
	* localedata/locales/zu_ZA: Likewise.
---
 localedata/locales/aa_DJ             |   1 +
 localedata/locales/af_ZA             |   1 +
 localedata/locales/ak_GH             |   1 +
 localedata/locales/am_ET             |   1 +
 localedata/locales/ar_EG             |   1 +
 localedata/locales/be_BY             |   1 +
 localedata/locales/bem_ZM            |   1 +
 localedata/locales/ber_DZ            |   1 +
 localedata/locales/ber_MA            |   1 +
 localedata/locales/bg_BG             |   1 +
 localedata/locales/bi_VU             |   1 +
 localedata/locales/bn_BD             |   1 +
 localedata/locales/bo_CN             |   1 +
 localedata/locales/ca_ES             |   1 +
 localedata/locales/ce_RU             |   1 +
 localedata/locales/cmn_TW            |   1 +
 localedata/locales/cs_CZ             |   1 +
 localedata/locales/cv_RU             |   1 +
 localedata/locales/cy_GB             |   1 +
 localedata/locales/da_DK             |   1 +
 localedata/locales/de_DE             |   1 +
 localedata/locales/dv_MV             |   1 +
 localedata/locales/dz_BT             |   1 +
 localedata/locales/el_GR             |   1 +
 localedata/locales/en_GB             |   1 +
 localedata/locales/en_NG             |   1 +
 localedata/locales/en_ZM             |   1 +
 localedata/locales/es_CU             |   1 +
 localedata/locales/es_ES             |   1 +
 localedata/locales/et_EE             |   1 +
 localedata/locales/fa_IR             |   1 +
 localedata/locales/ff_SN             |   1 +
 localedata/locales/fi_FI             |   1 +
 localedata/locales/fr_FR             |   1 +
 localedata/locales/ga_IE             |   1 +
 localedata/locales/gd_GB             |   1 +
 localedata/locales/gu_IN             |   1 +
 localedata/locales/gv_GB             |   1 +
 localedata/locales/he_IL             |   1 +
 localedata/locales/hi_IN             |   1 +
 localedata/locales/hif_FJ            |   1 +
 localedata/locales/hr_HR             |   1 +
 localedata/locales/ht_HT             |   1 +
 localedata/locales/hu_HU             |   1 +
 localedata/locales/hy_AM             |   1 +
 localedata/locales/id_ID             |   1 +
 localedata/locales/is_IS             |   1 +
 localedata/locales/it_IT             |   1 +
 localedata/locales/ja_JP             |   1 +
 localedata/locales/kab_DZ            |   1 +
 localedata/locales/kk_KZ             |   1 +
 localedata/locales/km_KH             |   1 +
 localedata/locales/kn_IN             |   1 +
 localedata/locales/ko_KR             |   1 +
 localedata/locales/ks_IN             |   1 +
 localedata/locales/kw_GB             |   1 +
 localedata/locales/ky_KG             |   1 +
 localedata/locales/lb_LU             |   1 +
 localedata/locales/lg_UG             |   1 +
 localedata/locales/lij_IT            |   1 +
 localedata/locales/ln_CD             |   1 +
 localedata/locales/lo_LA             |   1 +
 localedata/locales/lt_LT             |   1 +
 localedata/locales/lv_LV             |   1 +
 localedata/locales/mg_MG             |   1 +
 localedata/locales/mhr_RU            |   1 +
 localedata/locales/mk_MK             |   1 +
 localedata/locales/ml_IN             |   1 +
 localedata/locales/ms_MY             |   1 +
 localedata/locales/mt_MT             |   1 +
 localedata/locales/nan_TW@latin      |   1 +
 localedata/locales/nb_NO             |   1 +
 localedata/locales/ne_NP             |   1 +
 localedata/locales/nhn_MX            |   1 +
 localedata/locales/niu_NU            |   1 +
 localedata/locales/niu_NZ            |   1 +
 localedata/locales/nl_NL             |   1 +
 localedata/locales/nr_ZA             |   1 +
 localedata/locales/oc_FR             |   1 +
 localedata/locales/om_KE             |   1 +
 localedata/locales/or_IN             |   1 +
 localedata/locales/os_RU             |   1 +
 localedata/locales/pa_IN             |   1 +
 localedata/locales/pa_PK             |   1 +
 localedata/locales/pl_PL             |   1 +
 localedata/locales/pt_PT             |   1 +
 localedata/locales/quz_PE            |   1 +
 localedata/locales/ro_RO             |   1 +
 localedata/locales/ru_RU             |   1 +
 localedata/locales/rw_RW             |   1 +
 localedata/locales/sa_IN             |   1 +
 localedata/locales/sd_IN             |   1 +
 localedata/locales/sd_IN@devanagari  |   1 +
 localedata/locales/se_NO             |   1 +
 localedata/locales/sgs_LT            |   1 +
 localedata/locales/shn_MM            |   1 +
 localedata/locales/si_LK             |   1 +
 localedata/locales/sk_SK             |   1 +
 localedata/locales/sl_SI             |   1 +
 localedata/locales/sm_WS             |   1 +
 localedata/locales/so_SO             |   1 +
 localedata/locales/sq_AL             |   1 +
 localedata/locales/ss_ZA             |   1 +
 localedata/locales/st_ZA             |   1 +
 localedata/locales/sv_SE             |   1 +
 localedata/locales/sw_KE             |   1 +
 localedata/locales/ta_IN             |   1 +
 localedata/locales/te_IN             |   1 +
 localedata/locales/th_TH             |   1 +
 localedata/locales/ti_ET             |   1 +
 localedata/locales/tn_ZA             |   1 +
 localedata/locales/to_TO             |   1 +
 localedata/locales/tpi_PG            |   1 +
 localedata/locales/tr_TR             |   1 +
 localedata/locales/translit_cyrillic | 378 +++++++++++++++++++++++++++
 localedata/locales/ts_ZA             |   1 +
 localedata/locales/unm_US            |   1 +
 localedata/locales/ur_IN             |   1 +
 localedata/locales/ur_PK             |   1 +
 localedata/locales/ve_ZA             |   1 +
 localedata/locales/vi_VN             |   1 +
 localedata/locales/wa_BE             |   1 +
 localedata/locales/wo_SN             |   1 +
 localedata/locales/xh_ZA             |   1 +
 localedata/locales/yi_US             |   1 +
 localedata/locales/yuw_PG            |   1 +
 localedata/locales/zh_CN             |   1 +
 localedata/locales/zu_ZA             |   1 +
 128 files changed, 505 insertions(+)
 create mode 100644 localedata/locales/translit_cyrillic

diff --git a/localedata/locales/aa_DJ b/localedata/locales/aa_DJ
index fcb9af8abc..533e5b714e 100644
--- a/localedata/locales/aa_DJ
+++ b/localedata/locales/aa_DJ
@@ -68,6 +68,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/af_ZA b/localedata/locales/af_ZA
index 2f45ddad63..d16bbcf707 100644
--- a/localedata/locales/af_ZA
+++ b/localedata/locales/af_ZA
@@ -70,6 +70,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ak_GH b/localedata/locales/ak_GH
index 926e4df343..d743ba48c7 100644
--- a/localedata/locales/ak_GH
+++ b/localedata/locales/ak_GH
@@ -54,6 +54,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/am_ET b/localedata/locales/am_ET
index e5fe88a4cd..bee494be0a 100644
--- a/localedata/locales/am_ET
+++ b/localedata/locales/am_ET
@@ -96,6 +96,7 @@  copy "i18n"
 space <U1361>
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % hoy-sadis followed by a vowel
 <U1205><U12A0>    <U0068><U0027><U0065>
diff --git a/localedata/locales/ar_EG b/localedata/locales/ar_EG
index c8cb3180bf..f2584cd7ad 100644
--- a/localedata/locales/ar_EG
+++ b/localedata/locales/ar_EG
@@ -44,6 +44,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/be_BY b/localedata/locales/be_BY
index 324379b65a..4fb16d3540 100644
--- a/localedata/locales/be_BY
+++ b/localedata/locales/be_BY
@@ -91,6 +91,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/bem_ZM b/localedata/locales/bem_ZM
index fa43ad1610..7a8c3c3b77 100644
--- a/localedata/locales/bem_ZM
+++ b/localedata/locales/bem_ZM
@@ -41,6 +41,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ber_DZ b/localedata/locales/ber_DZ
index 79f3d289b1..137643873d 100644
--- a/localedata/locales/ber_DZ
+++ b/localedata/locales/ber_DZ
@@ -136,6 +136,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ber_MA b/localedata/locales/ber_MA
index b9bd64868c..fd79bf11d6 100644
--- a/localedata/locales/ber_MA
+++ b/localedata/locales/ber_MA
@@ -83,6 +83,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/bg_BG b/localedata/locales/bg_BG
index 7a9cfa0a5d..504199a4d9 100644
--- a/localedata/locales/bg_BG
+++ b/localedata/locales/bg_BG
@@ -49,6 +49,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/bi_VU b/localedata/locales/bi_VU
index 88bf70a61b..81d717b2f6 100755
--- a/localedata/locales/bi_VU
+++ b/localedata/locales/bi_VU
@@ -39,6 +39,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/bn_BD b/localedata/locales/bn_BD
index 73efd1cbc3..bc82d611e0 100644
--- a/localedata/locales/bn_BD
+++ b/localedata/locales/bn_BD
@@ -61,6 +61,7 @@  map to_inpunct; /
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/bo_CN b/localedata/locales/bo_CN
index 90cbc7807b..7779d3d99b 100644
--- a/localedata/locales/bo_CN
+++ b/localedata/locales/bo_CN
@@ -43,6 +43,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ca_ES b/localedata/locales/ca_ES
index 0ba74ccf33..af72a1ab86 100644
--- a/localedata/locales/ca_ES
+++ b/localedata/locales/ca_ES
@@ -57,6 +57,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ce_RU b/localedata/locales/ce_RU
index 03e60f838a..75ef80498d 100644
--- a/localedata/locales/ce_RU
+++ b/localedata/locales/ce_RU
@@ -38,6 +38,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/cmn_TW b/localedata/locales/cmn_TW
index cca7cc19af..3866f06004 100644
--- a/localedata/locales/cmn_TW
+++ b/localedata/locales/cmn_TW
@@ -49,6 +49,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 
 class	"hanzi"; /
diff --git a/localedata/locales/cs_CZ b/localedata/locales/cs_CZ
index 41fbd2be93..9450d22f2f 100644
--- a/localedata/locales/cs_CZ
+++ b/localedata/locales/cs_CZ
@@ -215,6 +215,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/cv_RU b/localedata/locales/cv_RU
index e9247b39f8..253cbd63af 100644
--- a/localedata/locales/cv_RU
+++ b/localedata/locales/cv_RU
@@ -103,6 +103,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/cy_GB b/localedata/locales/cy_GB
index 5f6fd7c87f..6d35d7c27e 100644
--- a/localedata/locales/cy_GB
+++ b/localedata/locales/cy_GB
@@ -65,6 +65,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/da_DK b/localedata/locales/da_DK
index 05a2681bef..1b38e8af17 100644
--- a/localedata/locales/da_DK
+++ b/localedata/locales/da_DK
@@ -147,6 +147,7 @@  copy "i18n"
 translit_start
 
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % LATIN CAPITAL LETTER A WITH DIAERESIS -> "AE"
 <U00C4> "<U0041><U0308>";"<U0041><U0045>"
diff --git a/localedata/locales/de_DE b/localedata/locales/de_DE
index eaa9f7ff8e..85793437a5 100644
--- a/localedata/locales/de_DE
+++ b/localedata/locales/de_DE
@@ -44,6 +44,7 @@  copy "i18n"
 translit_start
 
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % German umlauts.
 % LATIN CAPITAL LETTER A WITH DIAERESIS.
diff --git a/localedata/locales/dv_MV b/localedata/locales/dv_MV
index 0d7842f39f..f9c8de4a50 100644
--- a/localedata/locales/dv_MV
+++ b/localedata/locales/dv_MV
@@ -49,6 +49,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 
 
 translit_end
diff --git a/localedata/locales/dz_BT b/localedata/locales/dz_BT
index 272fa7e78f..31d488ad0c 100644
--- a/localedata/locales/dz_BT
+++ b/localedata/locales/dz_BT
@@ -59,6 +59,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/el_GR b/localedata/locales/el_GR
index 7362492fbd..994a4a913d 100644
--- a/localedata/locales/el_GR
+++ b/localedata/locales/el_GR
@@ -58,6 +58,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/en_GB b/localedata/locales/en_GB
index 5b895574ac..2f1cc5904b 100644
--- a/localedata/locales/en_GB
+++ b/localedata/locales/en_GB
@@ -54,6 +54,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/en_NG b/localedata/locales/en_NG
index 109201c2fe..fa70ffe943 100644
--- a/localedata/locales/en_NG
+++ b/localedata/locales/en_NG
@@ -49,6 +49,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/en_ZM b/localedata/locales/en_ZM
index 8957d8e8aa..1fc5dfed65 100644
--- a/localedata/locales/en_ZM
+++ b/localedata/locales/en_ZM
@@ -41,6 +41,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/es_CU b/localedata/locales/es_CU
index d37d452b0f..90c714ea18 100644
--- a/localedata/locales/es_CU
+++ b/localedata/locales/es_CU
@@ -58,6 +58,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/es_ES b/localedata/locales/es_ES
index aa919a2626..534152d0a8 100644
--- a/localedata/locales/es_ES
+++ b/localedata/locales/es_ES
@@ -107,6 +107,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/et_EE b/localedata/locales/et_EE
index f5c47149a6..51e6a4ab13 100644
--- a/localedata/locales/et_EE
+++ b/localedata/locales/et_EE
@@ -113,6 +113,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/fa_IR b/localedata/locales/fa_IR
index 3714a30932..fdeaf6312e 100644
--- a/localedata/locales/fa_IR
+++ b/localedata/locales/fa_IR
@@ -78,6 +78,7 @@  map to_outpunct; /
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ff_SN b/localedata/locales/ff_SN
index e4b18eba7b..32e2eb78d8 100644
--- a/localedata/locales/ff_SN
+++ b/localedata/locales/ff_SN
@@ -41,6 +41,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/fi_FI b/localedata/locales/fi_FI
index eeb278316b..57eda9bff1 100644
--- a/localedata/locales/fi_FI
+++ b/localedata/locales/fi_FI
@@ -177,6 +177,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/fr_FR b/localedata/locales/fr_FR
index a18c514f19..098be4906f 100644
--- a/localedata/locales/fr_FR
+++ b/localedata/locales/fr_FR
@@ -57,6 +57,7 @@  translit_start
 
 % In France, accents are simply omitted if they cannot be represented.
 include "translit_combining";""
+include "translit_cyrillic";""
 
 translit_end
 
diff --git a/localedata/locales/ga_IE b/localedata/locales/ga_IE
index 782adbaa5c..d430028b74 100644
--- a/localedata/locales/ga_IE
+++ b/localedata/locales/ga_IE
@@ -53,6 +53,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/gd_GB b/localedata/locales/gd_GB
index 8d54593113..aaa41a0bda 100644
--- a/localedata/locales/gd_GB
+++ b/localedata/locales/gd_GB
@@ -45,6 +45,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/gu_IN b/localedata/locales/gu_IN
index cd7e23a4be..00f00d4f8d 100644
--- a/localedata/locales/gu_IN
+++ b/localedata/locales/gu_IN
@@ -62,6 +62,7 @@  map to_inpunct; /
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/gv_GB b/localedata/locales/gv_GB
index 473c043cba..3c6ba93629 100644
--- a/localedata/locales/gv_GB
+++ b/localedata/locales/gv_GB
@@ -56,6 +56,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/he_IL b/localedata/locales/he_IL
index 52b5a6bff0..82a0760c10 100644
--- a/localedata/locales/he_IL
+++ b/localedata/locales/he_IL
@@ -58,6 +58,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/hi_IN b/localedata/locales/hi_IN
index a94365519f..12a44e6689 100644
--- a/localedata/locales/hi_IN
+++ b/localedata/locales/hi_IN
@@ -61,6 +61,7 @@  map to_inpunct; /
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/hif_FJ b/localedata/locales/hif_FJ
index 5433bb4a2a..005ac6d308 100644
--- a/localedata/locales/hif_FJ
+++ b/localedata/locales/hif_FJ
@@ -37,6 +37,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/hr_HR b/localedata/locales/hr_HR
index 029a3794e2..8222d73ff0 100644
--- a/localedata/locales/hr_HR
+++ b/localedata/locales/hr_HR
@@ -46,6 +46,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % Historicaly we used ISO-8869-2 and wrote digraphs
 % <U01C6> {dž}, <U01C9> {lj} and <U01CC> {nj}
diff --git a/localedata/locales/ht_HT b/localedata/locales/ht_HT
index 0e0a79d2f1..69688a401e 100644
--- a/localedata/locales/ht_HT
+++ b/localedata/locales/ht_HT
@@ -57,6 +57,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/hu_HU b/localedata/locales/hu_HU
index 9d6bb85022..5e19e5b689 100644
--- a/localedata/locales/hu_HU
+++ b/localedata/locales/hu_HU
@@ -455,6 +455,7 @@  copy "i18n"
 translit_start
 
 include "translit_combining";""
+include "translit_cyrillic";""
 
 <U00C1> "<U0041><U0301>";"<U0041><U00B4>";"<U0041><U0027>"
 <U00C9> "<U0045><U0301>";"<U0045><U00B4>";"<U0045><U0027>"
diff --git a/localedata/locales/hy_AM b/localedata/locales/hy_AM
index 74e1b77efb..5973c85f33 100644
--- a/localedata/locales/hy_AM
+++ b/localedata/locales/hy_AM
@@ -75,6 +75,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/id_ID b/localedata/locales/id_ID
index 3ddd8d07da..af36159ca6 100644
--- a/localedata/locales/id_ID
+++ b/localedata/locales/id_ID
@@ -54,6 +54,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/is_IS b/localedata/locales/is_IS
index 8d59b468d6..f614fea728 100644
--- a/localedata/locales/is_IS
+++ b/localedata/locales/is_IS
@@ -149,6 +149,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/it_IT b/localedata/locales/it_IT
index 8a10545de0..7d4cda7fc6 100644
--- a/localedata/locales/it_IT
+++ b/localedata/locales/it_IT
@@ -58,6 +58,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ja_JP b/localedata/locales/ja_JP
index 1fd2fee44b..34ed430947 100644
--- a/localedata/locales/ja_JP
+++ b/localedata/locales/ja_JP
@@ -1680,6 +1680,7 @@  translit_start
 
 include "translit_combining";""
 include "translit_cjk_variants";""
+include "translit_cyrillic";""
 
 translit_end
 
diff --git a/localedata/locales/kab_DZ b/localedata/locales/kab_DZ
index a165f53f01..4cf468c6a5 100644
--- a/localedata/locales/kab_DZ
+++ b/localedata/locales/kab_DZ
@@ -41,6 +41,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/kk_KZ b/localedata/locales/kk_KZ
index c29c84b46e..c4ceb28b27 100644
--- a/localedata/locales/kk_KZ
+++ b/localedata/locales/kk_KZ
@@ -99,6 +99,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/km_KH b/localedata/locales/km_KH
index 0d8c9ce78d..acd9291346 100644
--- a/localedata/locales/km_KH
+++ b/localedata/locales/km_KH
@@ -42,6 +42,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/kn_IN b/localedata/locales/kn_IN
index b6443d12c8..cffa4e4544 100644
--- a/localedata/locales/kn_IN
+++ b/localedata/locales/kn_IN
@@ -63,6 +63,7 @@  map to_inpunct; /
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ko_KR b/localedata/locales/ko_KR
index bd0d919218..31a8b105c5 100644
--- a/localedata/locales/ko_KR
+++ b/localedata/locales/ko_KR
@@ -6098,6 +6098,7 @@  translit_start
 
 include "translit_combining";""
 include "translit_hangul";""
+include "translit_cyrillic";""
 
 translit_end
 
diff --git a/localedata/locales/ks_IN b/localedata/locales/ks_IN
index 9ab8707922..0c1572b8fd 100644
--- a/localedata/locales/ks_IN
+++ b/localedata/locales/ks_IN
@@ -46,6 +46,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/kw_GB b/localedata/locales/kw_GB
index c0433b3f07..1eb4cfd1c1 100644
--- a/localedata/locales/kw_GB
+++ b/localedata/locales/kw_GB
@@ -57,6 +57,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ky_KG b/localedata/locales/ky_KG
index 871b8a818b..f46b6979e2 100644
--- a/localedata/locales/ky_KG
+++ b/localedata/locales/ky_KG
@@ -82,6 +82,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/lb_LU b/localedata/locales/lb_LU
index 92f1e22e1a..992d0f677d 100644
--- a/localedata/locales/lb_LU
+++ b/localedata/locales/lb_LU
@@ -44,6 +44,7 @@  copy "i18n"
 translit_start
 
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % German umlauts
 % LATIN CAPITAL LETTER A WITH DIAERESIS
diff --git a/localedata/locales/lg_UG b/localedata/locales/lg_UG
index 70dd1cad2e..57dd8c74e8 100644
--- a/localedata/locales/lg_UG
+++ b/localedata/locales/lg_UG
@@ -56,6 +56,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/lij_IT b/localedata/locales/lij_IT
index 2d6e5fcc5c..baec837196 100644
--- a/localedata/locales/lij_IT
+++ b/localedata/locales/lij_IT
@@ -47,6 +47,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ln_CD b/localedata/locales/ln_CD
index ed6404a1e5..a91441809c 100644
--- a/localedata/locales/ln_CD
+++ b/localedata/locales/ln_CD
@@ -39,6 +39,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/lo_LA b/localedata/locales/lo_LA
index d60d157167..2abd680a6a 100644
--- a/localedata/locales/lo_LA
+++ b/localedata/locales/lo_LA
@@ -50,6 +50,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/lt_LT b/localedata/locales/lt_LT
index e9834bd200..a58168dc45 100644
--- a/localedata/locales/lt_LT
+++ b/localedata/locales/lt_LT
@@ -163,6 +163,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/lv_LV b/localedata/locales/lv_LV
index a20cbdde46..e3fb992562 100644
--- a/localedata/locales/lv_LV
+++ b/localedata/locales/lv_LV
@@ -125,6 +125,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/mg_MG b/localedata/locales/mg_MG
index 266ff17e7d..ee1ed56fed 100644
--- a/localedata/locales/mg_MG
+++ b/localedata/locales/mg_MG
@@ -53,6 +53,7 @@  translit_start
 
 % Accents are simply omitted if they cannot be represented.
 include "translit_combining";""
+include "translit_cyrillic";""
 
 translit_end
 
diff --git a/localedata/locales/mhr_RU b/localedata/locales/mhr_RU
index 85ac21b35a..b936253ebc 100644
--- a/localedata/locales/mhr_RU
+++ b/localedata/locales/mhr_RU
@@ -58,6 +58,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/mk_MK b/localedata/locales/mk_MK
index 87bae1dc7c..210cfce05c 100644
--- a/localedata/locales/mk_MK
+++ b/localedata/locales/mk_MK
@@ -48,6 +48,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ml_IN b/localedata/locales/ml_IN
index d7a8f43f1e..794d59f923 100644
--- a/localedata/locales/ml_IN
+++ b/localedata/locales/ml_IN
@@ -60,6 +60,7 @@  map to_inpunct; /
 
 translit_start
 include     "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 %
diff --git a/localedata/locales/ms_MY b/localedata/locales/ms_MY
index 66b5dd98e9..4fa53adbc3 100644
--- a/localedata/locales/ms_MY
+++ b/localedata/locales/ms_MY
@@ -45,6 +45,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/mt_MT b/localedata/locales/mt_MT
index a6ab7b1dad..4b6a08f4e1 100644
--- a/localedata/locales/mt_MT
+++ b/localedata/locales/mt_MT
@@ -47,6 +47,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/nan_TW@latin b/localedata/locales/nan_TW@latin
index d4579a4cdf..99e2bd80ab 100644
--- a/localedata/locales/nan_TW@latin
+++ b/localedata/locales/nan_TW@latin
@@ -51,6 +51,7 @@  translit_start
 
 % accents are simply omitted if they cannot be represented.
 include "translit_combining";""
+include "translit_cyrillic";""
 
 translit_end
 
diff --git a/localedata/locales/nb_NO b/localedata/locales/nb_NO
index a8675b6104..4c90307366 100644
--- a/localedata/locales/nb_NO
+++ b/localedata/locales/nb_NO
@@ -144,6 +144,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 
 % LATIN CAPITAL LETTER A WITH DIAERESIS -> "AE"
 <U00C4> "<U0041><U0308>";"<U0041><U0045>"
diff --git a/localedata/locales/ne_NP b/localedata/locales/ne_NP
index eb80eabbd8..3aecda7fd7 100644
--- a/localedata/locales/ne_NP
+++ b/localedata/locales/ne_NP
@@ -43,6 +43,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/nhn_MX b/localedata/locales/nhn_MX
index 88a89765e8..a5e286bc4c 100644
--- a/localedata/locales/nhn_MX
+++ b/localedata/locales/nhn_MX
@@ -59,6 +59,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/niu_NU b/localedata/locales/niu_NU
index 553c5d9edc..e34f33e0c6 100644
--- a/localedata/locales/niu_NU
+++ b/localedata/locales/niu_NU
@@ -58,6 +58,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/niu_NZ b/localedata/locales/niu_NZ
index 560101b447..85acd3bc44 100644
--- a/localedata/locales/niu_NZ
+++ b/localedata/locales/niu_NZ
@@ -58,6 +58,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/nl_NL b/localedata/locales/nl_NL
index 1ab3277aa0..6284728fe7 100644
--- a/localedata/locales/nl_NL
+++ b/localedata/locales/nl_NL
@@ -56,6 +56,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/nr_ZA b/localedata/locales/nr_ZA
index 7de6420a6b..caf2aba2e4 100644
--- a/localedata/locales/nr_ZA
+++ b/localedata/locales/nr_ZA
@@ -64,6 +64,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/oc_FR b/localedata/locales/oc_FR
index 707927ee26..f347c8c4d8 100644
--- a/localedata/locales/oc_FR
+++ b/localedata/locales/oc_FR
@@ -54,6 +54,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/om_KE b/localedata/locales/om_KE
index 66cdcf5c45..a75a623053 100644
--- a/localedata/locales/om_KE
+++ b/localedata/locales/om_KE
@@ -156,6 +156,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/or_IN b/localedata/locales/or_IN
index ef28b58895..5c7b9cf8ef 100644
--- a/localedata/locales/or_IN
+++ b/localedata/locales/or_IN
@@ -62,6 +62,7 @@  map to_inpunct; /
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/os_RU b/localedata/locales/os_RU
index 9a4ce037cd..7ab0b7a9bc 100644
--- a/localedata/locales/os_RU
+++ b/localedata/locales/os_RU
@@ -71,6 +71,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 
 END LC_CTYPE
diff --git a/localedata/locales/pa_IN b/localedata/locales/pa_IN
index ca28f21162..93e17fa848 100644
--- a/localedata/locales/pa_IN
+++ b/localedata/locales/pa_IN
@@ -60,6 +60,7 @@  map to_inpunct; /
 
 translit_start
 include     "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/pa_PK b/localedata/locales/pa_PK
index 1f49bdc90d..7782adb5d8 100644
--- a/localedata/locales/pa_PK
+++ b/localedata/locales/pa_PK
@@ -49,6 +49,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % those two lettes are not in cp1256...
 
diff --git a/localedata/locales/pl_PL b/localedata/locales/pl_PL
index 4c1b2a869d..8caa5e8579 100644
--- a/localedata/locales/pl_PL
+++ b/localedata/locales/pl_PL
@@ -130,6 +130,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/pt_PT b/localedata/locales/pt_PT
index 6225036edf..d52ac3ac26 100644
--- a/localedata/locales/pt_PT
+++ b/localedata/locales/pt_PT
@@ -58,6 +58,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/quz_PE b/localedata/locales/quz_PE
index f6b1956b93..018cd9a7e5 100644
--- a/localedata/locales/quz_PE
+++ b/localedata/locales/quz_PE
@@ -55,6 +55,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ro_RO b/localedata/locales/ro_RO
index 39c4d09a07..6443d66d6a 100644
--- a/localedata/locales/ro_RO
+++ b/localedata/locales/ro_RO
@@ -129,6 +129,7 @@  copy "i18n"
 %
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % if t/scomma is not available, try first t/scedilla
 <U0218> "<U015E>";"<U0053>"
diff --git a/localedata/locales/ru_RU b/localedata/locales/ru_RU
index fdb2059fe7..1f6d2c6935 100644
--- a/localedata/locales/ru_RU
+++ b/localedata/locales/ru_RU
@@ -69,6 +69,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/rw_RW b/localedata/locales/rw_RW
index e0bc763c5a..e12a3d83a3 100644
--- a/localedata/locales/rw_RW
+++ b/localedata/locales/rw_RW
@@ -45,6 +45,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/sa_IN b/localedata/locales/sa_IN
index 4eaf6fe1fe..6ebb5e4f90 100644
--- a/localedata/locales/sa_IN
+++ b/localedata/locales/sa_IN
@@ -44,6 +44,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/sd_IN b/localedata/locales/sd_IN
index e5ab80b062..23b7424d3b 100644
--- a/localedata/locales/sd_IN
+++ b/localedata/locales/sd_IN
@@ -46,6 +46,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/sd_IN@devanagari b/localedata/locales/sd_IN@devanagari
index d57cea639b..0a122b95ac 100644
--- a/localedata/locales/sd_IN@devanagari
+++ b/localedata/locales/sd_IN@devanagari
@@ -44,6 +44,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/se_NO b/localedata/locales/se_NO
index b50001139a..b423d93531 100644
--- a/localedata/locales/se_NO
+++ b/localedata/locales/se_NO
@@ -221,6 +221,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/sgs_LT b/localedata/locales/sgs_LT
index 6b6ab1cac9..561c43b651 100644
--- a/localedata/locales/sgs_LT
+++ b/localedata/locales/sgs_LT
@@ -58,6 +58,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/shn_MM b/localedata/locales/shn_MM
index 4212c50ec5..079506dafc 100644
--- a/localedata/locales/shn_MM
+++ b/localedata/locales/shn_MM
@@ -58,6 +58,7 @@  map to_inpunct; /
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/si_LK b/localedata/locales/si_LK
index dc4a9eb04d..4d2fc8b3f0 100644
--- a/localedata/locales/si_LK
+++ b/localedata/locales/si_LK
@@ -44,6 +44,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/sk_SK b/localedata/locales/sk_SK
index 94e6e12bb2..086499bb7e 100644
--- a/localedata/locales/sk_SK
+++ b/localedata/locales/sk_SK
@@ -67,6 +67,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/sl_SI b/localedata/locales/sl_SI
index 6157b26d4f..dd9b516111 100644
--- a/localedata/locales/sl_SI
+++ b/localedata/locales/sl_SI
@@ -2120,6 +2120,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/sm_WS b/localedata/locales/sm_WS
index 6058fbdc38..b9954ae30e 100644
--- a/localedata/locales/sm_WS
+++ b/localedata/locales/sm_WS
@@ -37,6 +37,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/so_SO b/localedata/locales/so_SO
index 713bf79608..9ed4d68ce9 100644
--- a/localedata/locales/so_SO
+++ b/localedata/locales/so_SO
@@ -68,6 +68,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/sq_AL b/localedata/locales/sq_AL
index b16a459c56..d9154d7f9e 100644
--- a/localedata/locales/sq_AL
+++ b/localedata/locales/sq_AL
@@ -45,6 +45,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ss_ZA b/localedata/locales/ss_ZA
index 7532a1940b..31c45321ce 100644
--- a/localedata/locales/ss_ZA
+++ b/localedata/locales/ss_ZA
@@ -66,6 +66,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/st_ZA b/localedata/locales/st_ZA
index 706ef3e50a..b62f478f5f 100644
--- a/localedata/locales/st_ZA
+++ b/localedata/locales/st_ZA
@@ -62,6 +62,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/sv_SE b/localedata/locales/sv_SE
index aa28c23776..7443ee277c 100644
--- a/localedata/locales/sv_SE
+++ b/localedata/locales/sv_SE
@@ -151,6 +151,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 
 % LATIN CAPITAL LETTER A WITH DIAERESIS -> "AE"
 <U00C4> "<U0041><U0308>";"<U0041><U0045>"
diff --git a/localedata/locales/sw_KE b/localedata/locales/sw_KE
index 6c303da983..1e3f848e1d 100644
--- a/localedata/locales/sw_KE
+++ b/localedata/locales/sw_KE
@@ -43,6 +43,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ta_IN b/localedata/locales/ta_IN
index 5a083d2658..ec08739ebd 100644
--- a/localedata/locales/ta_IN
+++ b/localedata/locales/ta_IN
@@ -63,6 +63,7 @@  map to_inpunct; /
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/te_IN b/localedata/locales/te_IN
index b70f320051..99ffb43bf5 100644
--- a/localedata/locales/te_IN
+++ b/localedata/locales/te_IN
@@ -63,6 +63,7 @@  map to_inpunct; /
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/th_TH b/localedata/locales/th_TH
index 7a10376e80..148a1c632b 100644
--- a/localedata/locales/th_TH
+++ b/localedata/locales/th_TH
@@ -57,6 +57,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ti_ET b/localedata/locales/ti_ET
index 6c387604e9..2c2e32a702 100644
--- a/localedata/locales/ti_ET
+++ b/localedata/locales/ti_ET
@@ -864,6 +864,7 @@  translit_start
 <U137C>    <U0060><U0031><U0030><U0030><U0030><U0030>
 
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 %
 END LC_CTYPE
diff --git a/localedata/locales/tn_ZA b/localedata/locales/tn_ZA
index 8473426eab..274336c8d3 100644
--- a/localedata/locales/tn_ZA
+++ b/localedata/locales/tn_ZA
@@ -67,6 +67,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/to_TO b/localedata/locales/to_TO
index 7abe8685df..09e5e093d5 100644
--- a/localedata/locales/to_TO
+++ b/localedata/locales/to_TO
@@ -36,6 +36,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/tpi_PG b/localedata/locales/tpi_PG
index 3315c27633..e625543fcb 100644
--- a/localedata/locales/tpi_PG
+++ b/localedata/locales/tpi_PG
@@ -44,6 +44,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/tr_TR b/localedata/locales/tr_TR
index f7c13ddf4b..c751dc696a 100644
--- a/localedata/locales/tr_TR
+++ b/localedata/locales/tr_TR
@@ -2535,6 +2535,7 @@  class "combining_level3"; /
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % TURKISH LIRA SIGN
 <U20BA> "<U0054><U004C>"
diff --git a/localedata/locales/translit_cyrillic b/localedata/locales/translit_cyrillic
new file mode 100644
index 0000000000..253f5c9618
--- /dev/null
+++ b/localedata/locales/translit_cyrillic
@@ -0,0 +1,378 @@ 
+escape_char /
+comment_char %
+
+% This file is part of the GNU C Library and contains locale data.
+% The Free Software Foundation does not claim any copyright interest
+% in the locale data contained in this file.  The foregoing does not
+% affect the license of the GNU C Library as a whole. It does not
+% exempt you from the conditions of the license if your use would
+% otherwise be governed by that license.
+
+% Transcription of Cyrillic letters to ASCII symbols.
+% Inspired by ISO 9.1995 / GOST 7.79-2000 System B.
+% Covers Unicode Range https://www.unicode.org/charts/PDF/U0400.pdf
+% i.e. [U0401-U04F9, U2019] but only the letters covered by ISO 9.1995
+% Check https://en.wikipedia.org/wiki/ISO_9 for reference.
+% The System B is extended from GOST_7.79-Russian using open sources
+% of the transliteration mappings and the "h/`" diacritics logic.
+% Capital Cyrillic letters that are transcribed with two ASCII letters
+% combination get both ASCII letters capitalized to avoid collisions.
+
+
+% Usage examples:
+% iconv -f UTF-8 -t ASCII//TRANSLIT # System B.
+
+% Contributions welcome for the rest of Cyrillic script in Unicode
+% https://en.wikipedia.org/wiki/Cyrillic_script_in_Unicode.
+% Bugfix for https://sourceware.org/bugzilla/show_bug.cgi?id=2872.
+% Generated from UnicodeData.txt with a spreadsheet referenced
+% in that bugs doclet
+
+LC_CTYPE
+
+translit_start
+
+% CYRILLIC CAPITAL LETTER IO
+<U0401> "<U0059><U004F>"
+% CYRILLIC CAPITAL LETTER DJE
+<U0402> "<U0044><U004A>"
+% CYRILLIC CAPITAL LETTER GJE
+<U0403> "<U0047><U0060>"
+% CYRILLIC CAPITAL LETTER UKRAINIAN IE
+<U0404> "<U0059><U0045>"
+% CYRILLIC CAPITAL LETTER DZE
+<U0405> "<U005A><U0060>"
+% CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+<U0406> <U0049>
+% CYRILLIC CAPITAL LETTER YI
+<U0407> "<U0059><U0049>"
+% CYRILLIC CAPITAL LETTER JE
+<U0408> <U004A>
+% CYRILLIC CAPITAL LETTER LJE
+<U0409> "<U004C><U0060>"
+% CYRILLIC CAPITAL LETTER NJE
+<U040A> "<U004E><U0060>"
+% CYRILLIC CAPITAL LETTER TSHE
+<U040B> "<U0054><U0053><U0048>"
+% CYRILLIC CAPITAL LETTER KJE
+<U040C> "<U004B><U0060>"
+% CYRILLIC CAPITAL LETTER SHORT U
+<U040E> "<U0055><U0060>"
+% CYRILLIC CAPITAL LETTER DZHE
+<U040F> "<U0044><U0048>"
+% 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>"
+% 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>"
+% CYRILLIC CAPITAL LETTER CHE
+<U0427> "<U0043><U0048>"
+% CYRILLIC CAPITAL LETTER SHA
+<U0428> "<U0053><U0048>"
+% CYRILLIC CAPITAL LETTER SHCHA
+<U0429> "<U0053><U0048><U0048>"
+% CYRILLIC CAPITAL LETTER HARD SIGN
+<U042A> "<U0041><U0060>"
+% CYRILLIC CAPITAL LETTER YERU
+<U042B> "<U0059><U0060>"
+% CYRILLIC CAPITAL LETTER SOFT SIGN
+<U042C> <U0060>
+% CYRILLIC CAPITAL LETTER E
+<U042D> "<U0045><U0060>"
+% CYRILLIC CAPITAL LETTER YU
+<U042E> "<U0059><U0055>"
+% CYRILLIC CAPITAL LETTER YA
+<U042F> "<U0059><U0041>"
+% 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>"
+% 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>"
+% CYRILLIC SMALL LETTER CHE
+<U0447> "<U0063><U0068>"
+% CYRILLIC SMALL LETTER SHA
+<U0448> "<U0073><U0068>"
+% CYRILLIC SMALL LETTER SHCHA
+<U0449> "<U0073><U0068><U0068>"
+% CYRILLIC SMALL LETTER HARD SIGN
+<U044A> "<U0060><U0060>"
+% CYRILLIC SMALL LETTER YERU
+<U044B> "<U0079><U0060>"
+% CYRILLIC SMALL LETTER SOFT SIGN
+<U044C> <U0060>
+% CYRILLIC SMALL LETTER E
+<U044D> "<U0065><U0060>"
+% CYRILLIC SMALL LETTER YU
+<U044E> "<U0079><U0075>"
+% CYRILLIC SMALL LETTER YA
+<U044F> "<U0079><U0061>"
+% CYRILLIC SMALL LETTER IO
+<U0451> "<U0079><U006F>"
+% CYRILLIC SMALL LETTER DJE
+<U0452> "<U0064><U006A>"
+% CYRILLIC SMALL LETTER GJE
+<U0453> "<U0067><U0060>"
+% CYRILLIC SMALL LETTER UKRAINIAN IE
+<U0454> "<U0079><U0065>"
+% CYRILLIC SMALL LETTER DZE
+<U0455> "<U007A><U0060>"
+% CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+<U0456> <U0069>
+% CYRILLIC SMALL LETTER YI
+<U0457> "<U0079><U0069>"
+% CYRILLIC SMALL LETTER JE
+<U0458> <U006A>
+% CYRILLIC SMALL LETTER LJE
+<U0459> "<U006C><U0060>"
+% CYRILLIC SMALL LETTER NJE
+<U045A> "<U006E><U0060>"
+% CYRILLIC SMALL LETTER TSHE
+<U045B> "<U0074><U0073><U0068>"
+% CYRILLIC SMALL LETTER KJE
+<U045C> "<U006B><U0060>"
+% CYRILLIC SMALL LETTER SHORT U
+<U045E> "<U0075><U0060>"
+% CYRILLIC SMALL LETTER DZHE
+<U045F> "<U0064><U0068>"
+% CYRILLIC CAPITAL LETTER BIG YUS
+<U046A> "<U004F><U0060>"
+% CYRILLIC SMALL LETTER BIG YUS
+<U046B> "<U006F><U0060>"
+% CYRILLIC CAPITAL LETTER FITA
+<U0472> "<U0046><U0048>"
+% CYRILLIC SMALL LETTER FITA
+<U0473> "<U0066><U0068>"
+% CYRILLIC CAPITAL LETTER IZHITSA
+<U0474> "<U0059><U0048>"
+% CYRILLIC SMALL LETTER IZHITSA
+<U0475> "<U0079><U0068>"
+% CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+<U048C> "<U0045><U0060>"
+% CYRILLIC SMALL LETTER SEMISOFT SIGN
+<U048D> "<U0065><U0060>"
+% CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+<U0490> "<U0047><U0060>"
+% CYRILLIC SMALL LETTER GHE WITH UPTURN
+<U0491> "<U0067><U0060>"
+% CYRILLIC CAPITAL LETTER GHE WITH STROKE
+<U0492> "<U0047><U0048>"
+% CYRILLIC SMALL LETTER GHE WITH STROKE
+<U0493> "<U0067><U0068>"
+% CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+<U0494> "<U0047><U0048>"
+% CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+<U0495> "<U0067><U0068>"
+% CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+<U0496> "<U005A><U0048><U0060>"
+% CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+<U0497> "<U007A><U0068><U0060>"
+% CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+<U049A> "<U004B><U0060>"
+% CYRILLIC SMALL LETTER KA WITH DESCENDER
+<U049B> "<U006B><U0060>"
+% CYRILLIC CAPITAL LETTER KA WITH STROKE
+<U049E> "<U004B><U0060>"
+% CYRILLIC SMALL LETTER KA WITH STROKE
+<U049F> "<U006B><U0060>"
+% CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+<U04A2> "<U004E><U0060>"
+% CYRILLIC SMALL LETTER EN WITH DESCENDER
+<U04A3> "<U006E><U0060>"
+% CYRILLIC CAPITAL LIGATURE EN GHE
+<U04A4> "<U004E><U0047>"
+% CYRILLIC SMALL LIGATURE EN GHE
+<U04A5> "<U006E><U0067>"
+% CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+<U04A6> "<U0050><U0060>"
+% CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+<U04A7> "<U0070><U0060>"
+% CYRILLIC CAPITAL LETTER ABKHASIAN HA
+<U04A8> "<U004F><U0060>"
+% CYRILLIC SMALL LETTER ABKHASIAN HA
+<U04A9> "<U006F><U0060>"
+% CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+<U04AA> "<U0043><U0060>"
+% CYRILLIC SMALL LETTER ES WITH DESCENDER
+<U04AB> "<U0043><U0060>"
+% CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+<U04AC> "<U0054><U0060>"
+% CYRILLIC SMALL LETTER TE WITH DESCENDER
+<U04AD> "<U0074><U0060>"
+% CYRILLIC CAPITAL LETTER STRAIGHT U
+<U04AE> <U0055>
+% CYRILLIC SMALL LETTER STRAIGHT U
+<U04AF> <U0075>
+% CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+<U04B2> "<U0048><U0060>"
+% CYRILLIC SMALL LETTER HA WITH DESCENDER
+<U04B3> "<U0068><U0060>"
+% CYRILLIC CAPITAL LIGATURE TE TSE
+<U04B4> "<U0054><U0043><U005A>"
+% CYRILLIC SMALL LIGATURE TE TSE
+<U04B5> "<U0074><U0063><U007A>"
+% CYRILLIC CAPITAL LETTER SHHA
+<U04BA> "<U0053><U0048><U0060>"
+% CYRILLIC SMALL LETTER SHHA
+<U04BB> "<U0053><U0048><U0060>"
+% CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+<U04BC> "<U0043><U0048><U0060>"
+% CYRILLIC SMALL LETTER ABKHASIAN CHE
+<U04BD> "<U0063><U0068><U0060>"
+% CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+<U04BE> "<U0043><U0048><U0060>"
+% CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+<U04BF> "<U0063><U0068><U0060>"
+% CYRILLIC LETTER PALOCHKA
+<U04C0> <U0069>
+% CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+<U04C1> "<U005A><U0048><U0060>"
+% CYRILLIC SMALL LETTER ZHE WITH BREVE
+<U04C2> "<U007A><U0068><U0060>"
+% CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+<U04CB> "<U0043><U0048><U0060>"
+% CYRILLIC SMALL LETTER KHAKASSIAN CHE
+<U04CC> "<U0063><U0068><U0060>"
+% CYRILLIC CAPITAL LETTER A WITH BREVE
+<U04D0> "<U0041><U0060>"
+% CYRILLIC SMALL LETTER A WITH BREVE
+<U04D1> "<U0061><U0060>"
+% CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+<U04D2> "<U0041><U0060>"
+% CYRILLIC SMALL LETTER A WITH DIAERESIS
+<U04D3> "<U0061><U0060>"
+% CYRILLIC CAPITAL LETTER IE WITH BREVE
+<U04D6> "<U0045><U0060>"
+% CYRILLIC SMALL LETTER IE WITH BREVE
+<U04D7> "<U0065><U0060>"
+% CYRILLIC CAPITAL LETTER SCHWA
+<U04D8> "<U0041><U0060>"
+% CYRILLIC SMALL LETTER SCHWA
+<U04D9> "<U0061><U0060>"
+% CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+<U04DC> "<U005A><U0048><U0060>"
+% CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+<U04DD> "<U007A><U0068><U0060>"
+% CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+<U04DE> "<U005A><U0060>"
+% CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+<U04DF> "<U007A><U0060>"
+% CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+<U04E0> "<U005A><U0060>"
+% CYRILLIC SMALL LETTER ABKHASIAN DZE
+<U04E1> "<U007A><U0060>"
+% CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+<U04E4> "<U0049><U0060>"
+% CYRILLIC SMALL LETTER I WITH DIAERESIS
+<U04E5> "<U0069><U0060>"
+% CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+<U04E6> "<U004F><U0060>"
+% CYRILLIC SMALL LETTER O WITH DIAERESIS
+<U04E7> "<U006F><U0060>"
+% CYRILLIC CAPITAL LETTER BARRED O
+<U04E8> "<U004F><U0060>"
+% CYRILLIC SMALL LETTER BARRED O
+<U04E9> "<U006F><U0060>"
+% CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+<U04F0> "<U0055><U0060>"
+% CYRILLIC SMALL LETTER U WITH DIAERESIS
+<U04F1> "<U0075><U0060>"
+% CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+<U04F2> "<U0055><U0060>"
+% CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+<U04F3> "<U0075><U0060>"
+% CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+<U04F4> "<U0043><U0048><U0060>"
+% CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+<U04F5> "<U0063><U0068><U0060>"
+% CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+<U04F8> "<U0059><U0060>"
+% CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+<U04F9> "<U0079><U0060>"
+% RIGHT SINGLE QUOTATION MARK
+<U2019> <U0027>
+
+translit_end
+
+END LC_CTYPE
diff --git a/localedata/locales/ts_ZA b/localedata/locales/ts_ZA
index 0256e42979..8e16fc02ae 100644
--- a/localedata/locales/ts_ZA
+++ b/localedata/locales/ts_ZA
@@ -62,6 +62,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/unm_US b/localedata/locales/unm_US
index 1e62c60443..66cb4f7210 100644
--- a/localedata/locales/unm_US
+++ b/localedata/locales/unm_US
@@ -48,6 +48,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ur_IN b/localedata/locales/ur_IN
index 062cbf0937..38675b8c6b 100644
--- a/localedata/locales/ur_IN
+++ b/localedata/locales/ur_IN
@@ -46,6 +46,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/ur_PK b/localedata/locales/ur_PK
index aaf47fceb5..4ea9c56100 100644
--- a/localedata/locales/ur_PK
+++ b/localedata/locales/ur_PK
@@ -49,6 +49,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % those two lettes are not in cp1256...
 
diff --git a/localedata/locales/ve_ZA b/localedata/locales/ve_ZA
index 6b80455c98..1964162cc4 100644
--- a/localedata/locales/ve_ZA
+++ b/localedata/locales/ve_ZA
@@ -65,6 +65,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/vi_VN b/localedata/locales/vi_VN
index 7fac1fbbcc..8eac6f3ba9 100644
--- a/localedata/locales/vi_VN
+++ b/localedata/locales/vi_VN
@@ -53,6 +53,7 @@  copy "i18n"
 translit_start
 
 include  "translit_combining";""
+include "translit_cyrillic";""
 
 % dong sign -> d// -> dd
 <U20AB> "<U0111>";"<U0064><U0064>"
diff --git a/localedata/locales/wa_BE b/localedata/locales/wa_BE
index e97493089e..6349142ef7 100644
--- a/localedata/locales/wa_BE
+++ b/localedata/locales/wa_BE
@@ -54,6 +54,7 @@  LC_CTYPE
 copy "i18n"
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % A-bole -> A-circonflecse -> AU
 <U00C5> "A<U030A>";"A";"AU"
diff --git a/localedata/locales/wo_SN b/localedata/locales/wo_SN
index 47263d2eab..bd466d934a 100644
--- a/localedata/locales/wo_SN
+++ b/localedata/locales/wo_SN
@@ -53,6 +53,7 @@  translit_start
 
 % Accents are simply omitted if they cannot be represented.
 include "translit_combining";""
+include "translit_cyrillic";""
 
 translit_end
 
diff --git a/localedata/locales/xh_ZA b/localedata/locales/xh_ZA
index 4564137e85..5bd3d5bd3c 100644
--- a/localedata/locales/xh_ZA
+++ b/localedata/locales/xh_ZA
@@ -64,6 +64,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
diff --git a/localedata/locales/yi_US b/localedata/locales/yi_US
index 95963830fc..edd55f77e9 100644
--- a/localedata/locales/yi_US
+++ b/localedata/locales/yi_US
@@ -60,6 +60,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 
 % if digraphs are not available (this is the case with iso-8859-8)
 % then use the single letters
diff --git a/localedata/locales/yuw_PG b/localedata/locales/yuw_PG
index 0cb3cadf4a..b9e393d354 100644
--- a/localedata/locales/yuw_PG
+++ b/localedata/locales/yuw_PG
@@ -40,6 +40,7 @@  copy "i18n"
 
 translit_start
 include "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 
 END LC_CTYPE
diff --git a/localedata/locales/zh_CN b/localedata/locales/zh_CN
index 62a46415c1..00f2332dde 100644
--- a/localedata/locales/zh_CN
+++ b/localedata/locales/zh_CN
@@ -58,6 +58,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 
 class	"hanzi"; /
diff --git a/localedata/locales/zu_ZA b/localedata/locales/zu_ZA
index cf93a63009..ab37a145b2 100644
--- a/localedata/locales/zu_ZA
+++ b/localedata/locales/zu_ZA
@@ -68,6 +68,7 @@  copy "i18n"
 
 translit_start
 include  "translit_combining";""
+include "translit_cyrillic";""
 translit_end
 END LC_CTYPE
 
-- 
2.17.1