├── README.md ├── .gitignore ├── LICENSE └── transliterate.py /README.md: -------------------------------------------------------------------------------- 1 | #uzbek-transliterator 2 | 3 | Transliterate Cyrillic Uzbek text to Latin and vice versa. 4 | https://uz.wikipedia.org/wiki/Vikipediya:O%CA%BBzbek_lotin_alifbosi_qoidalari -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # C extensions 6 | *.so 7 | 8 | # Distribution / packaging 9 | .Python 10 | env/ 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | lib/ 17 | lib64/ 18 | parts/ 19 | sdist/ 20 | var/ 21 | *.egg-info/ 22 | .installed.cfg 23 | *.egg 24 | 25 | # PyInstaller 26 | # Usually these files are written by a python script from a template 27 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 28 | *.manifest 29 | *.spec 30 | 31 | # Installer logs 32 | pip-log.txt 33 | pip-delete-this-directory.txt 34 | 35 | # Unit test / coverage reports 36 | htmlcov/ 37 | .tox/ 38 | .coverage 39 | .cache 40 | nosetests.xml 41 | coverage.xml 42 | 43 | # Translations 44 | *.mo 45 | *.pot 46 | 47 | # Django stuff: 48 | *.log 49 | 50 | # Sphinx documentation 51 | docs/_build/ 52 | 53 | # PyBuilder 54 | target/ 55 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | {description} 294 | Copyright (C) {year} {fullname} 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | {signature of Ty Coon}, 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | 341 | -------------------------------------------------------------------------------- /transliterate.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import re 3 | import sys 4 | 5 | LATIN_TO_CYRILLIC = { 6 | 'a': 'а', 'A': 'А', 7 | 'b': 'б', 'B': 'Б', 8 | 'd': 'д', 'D': 'Д', 9 | 'e': 'е', 'E': 'Е', 10 | 'f': 'ф', 'F': 'Ф', 11 | 'g': 'г', 'G': 'Г', 12 | 'h': 'ҳ', 'H': 'Ҳ', 13 | 'i': 'и', 'I': 'И', 14 | 'j': 'ж', 'J': 'Ж', 15 | 'k': 'к', 'K': 'К', 16 | 'l': 'л', 'L': 'Л', 17 | 'm': 'м', 'M': 'М', 18 | 'n': 'н', 'N': 'Н', 19 | 'o': 'о', 'O': 'О', 20 | 'p': 'п', 'P': 'П', 21 | 'q': 'қ', 'Q': 'Қ', 22 | 'r': 'р', 'R': 'Р', 23 | 's': 'с', 'S': 'С', 24 | 't': 'т', 'T': 'Т', 25 | 'u': 'у', 'U': 'У', 26 | 'v': 'в', 'V': 'В', 27 | 'x': 'х', 'X': 'Х', 28 | 'y': 'й', 'Y': 'Й', 29 | 'z': 'з', 'Z': 'З', 30 | 'ʼ': 'ъ', # TODO: case? 31 | } 32 | LATIN_VOWELS = ( 33 | 'a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U', 'o‘', 'O‘' 34 | ) 35 | 36 | # These words cannot be reliably converted to cyrillic because of the lossy 37 | # nature of the to_latin converter. 38 | TS_WORDS = { 39 | 'aberra(ts)ion': 'аберрацион', 40 | 'aberra(ts)iya': 'аберрация', 41 | 'abza(ts)': 'абзац', 42 | 'aboli(ts)iya': 'аболиция', 43 | 'absorb(s)iya': 'абсорбция', 44 | 'abstrak(s)ionizm': 'абстракционизм', 45 | 'abstrak(s)ionist': 'абстракционист', 46 | 'abstrak(s)iya': 'абстракция', 47 | 'abs(s)ess': 'абсцесс', 48 | 'avianose(ts)': 'авианосец', 49 | 'avia(ts)iya': 'авиация', 50 | 'avtoinspek(s)iya': 'автоинспекция', 51 | 'avtopr(s)ep': 'автопрцеп', 52 | 'avtostan(s)iya': 'автостанция', 53 | 'agglyutina(ts)iya': 'агглютинация', 54 | 'agita(ts)ion': 'агитацион', 55 | 'agita(ts)iya': 'агитация', 56 | 'aglomera(ts)iya': 'агломерация', 57 | 'agnosti(ts)izm': 'агностицизм', 58 | 'agromeliora(ts)iya': 'агромелиорация', 59 | 'adapta(ts)iya': 'адаптация', 60 | 'administra(ts)iya': 'администрация', 61 | 'adsorb(s)iya': 'адсорбция', 62 | 'aka(ts)iya': 'акация', 63 | 'akklimatiza(ts)iya': 'акклиматизация', 64 | 'akkomoda(ts)iya': 'аккомодация', 65 | 'akkredita(ts)iya': 'аккредитация', 66 | 'ak(s)ent': 'акцент', 67 | 'ak(s)iz': 'акциз', 68 | 'ak(s)ioner': 'акционер', 69 | 'ak(s)ionerlik': 'акционерлик', 70 | 'ak(s)iya': 'акция', 71 | 'ak(s)iyadorlik': 'акциядорлик', 72 | 'allitera(ts)iya': 'аллитерация', 73 | 'amortiza(ts)iya': 'амортизация', 74 | 'amputa(ts)iya': 'ампутация', 75 | 'annota(ts)iya': 'аннотация', 76 | 'annulya(ts)iya': 'аннуляция', 77 | 'anti(ts)iklon': 'антициклон', 78 | 'antra(ts)it': 'антрацит', 79 | 'apellya(ts)iya': 'апелляция', 80 | 'appendi(ts)it': 'аппендицит', 81 | 'applika(ts)iya': 'аппликация', 82 | 'aproba(ts)iya': 'апробация', 83 | 'argumenta(ts)iya': 'аргументация', 84 | 'assimilya(ts)iya': 'ассимиляция', 85 | 'asso(ts)ia(ts)iya': 'ассоциация', 86 | 'attesta(ts)ion': 'аттестацион', 87 | 'attesta(ts)iya': 'аттестация', 88 | 'attrak(s)ion': 'аттракцион', 89 | 'auk(s)ion': 'аукцион', 90 | 'a(ts)etilen': 'ацетилен', 91 | 'a(ts)eton': 'ацетон', 92 | 'aeronaviga(ts)iya': 'аэронавигация', 93 | 'bakteri(ts)id': 'бактерицид', 94 | 'ba(ts)illar': 'бациллар', 95 | 'bioloka(ts)iya': 'биолокация', 96 | 'biolyumines(s)en(s)iya': 'биолюминесценция', 97 | 'bo(ts)man': 'боцман', 98 | 'bronenose(ts)': 'броненосец', 99 | 'bru(ts)ellyoz': 'бруцеллёз', 100 | 'vak(s)ina': 'вакцина', 101 | 'valva(ts)iya': 'вальвация', 102 | 'vegeta(ts)ion': 'вегетацион', 103 | 'vegeta(ts)iya': 'вегетация', 104 | 'venepunk(s)iya': 'венепункция', 105 | 'ventilya(ts)ion': 'вентиляцион', 106 | 'ventilya(ts)iya': 'вентиляция', 107 | 'vibra(ts)iya': 'вибрация', 108 | 'vibroizolya(ts)iya': 'виброизоляция', 109 | 'vi(ts)e-': 'вице-', 110 | 'vi(ts)e-admiral': 'вице-адмирал', 111 | 'vi(ts)e-prezident': 'вице-президент', 112 | 'vulkaniza(ts)iya': 'вулканизация', 113 | 'galli(ts)izm': 'галлицизм', 114 | 'gallyu(ts)ina(ts)iya': 'галлюцинация', 115 | 'galvaniza(ts)iya': 'гальванизация', 116 | 'gastrol-kon(s)ert': 'гастроль-концерт', 117 | 'gaubi(ts)a': 'гаубица', 118 | 'gelio(ts)entrik': 'гелиоцентрик', 119 | 'geno(ts)id': 'геноцид', 120 | 'geo(ts)entrik': 'геоцентрик', 121 | 'gerbi(ts)idlar': 'гербицидлар', 122 | 'ger(s)': 'герц', 123 | 'ger(s)og': 'герцог', 124 | 'gia(ts)int': 'гиацинт', 125 | 'gidromeliora(ts)iya': 'гидромелиорация', 126 | 'gidromexaniza(ts)iya': 'гидромеханизация', 127 | 'gidrostan(s)iya': 'гидростанция', 128 | 'gidroelektrostan(s)iya': 'гидроэлектростанция', 129 | 'giperinflya(ts)iya': 'гиперинфляция', 130 | 'gipo(ts)entr': 'гипоцентр', 131 | 'gli(ts)erin': 'глицерин', 132 | 'glya(ts)iolog': 'гляциолог', 133 | 'glya(ts)iologiya': 'гляциология', 134 | 'gorchi(ts)a': 'горчица', 135 | 'gravita(ts)iya': 'гравитация', 136 | 'grada(ts)iya': 'градация', 137 | 'guseni(ts)a': 'гусеница', 138 | 'devalva(ts)iya': 'девальвация', 139 | 'degaza(ts)iya': 'дегазация', 140 | 'degenera(ts)iya': 'дегенерация', 141 | 'degustat(s)iya': 'дегустатция', 142 | 'deduk(s)iya': 'дедукция', 143 | 'dezaktiva(ts)iya': 'дезактивация', 144 | 'dezinsek(s)iya': 'дезинсекция', 145 | 'dezinfek(s)iya': 'дезинфекция', 146 | 'dezinfek(s)iyalamoq': 'дезинфекцияламоқ', 147 | 'deklama(ts)iya': 'декламация', 148 | 'deklama(ts)iyachi': 'декламациячи', 149 | 'deklara(ts)iya': 'декларация', 150 | 'dekora(ts)iya': 'декорация', 151 | 'delega(ts)iya': 'делегация', 152 | 'delimita(ts)iya': 'делимитация', 153 | 'demarka(ts)iya': 'демаркация', 154 | 'demilitariza(ts)iya': 'демилитаризация', 155 | 'demobiliza(ts)iya': 'демобилизация', 156 | 'denaturaliza(ts)iya': 'денатурализация', 157 | 'denomina(ts)iya': 'деноминация', 158 | 'denonsa(ts)iya': 'денонсация', 159 | 'depilya(ts)iya': 'депиляция', 160 | 'deporta(ts)iya': 'депортация', 161 | 'deratiza(ts)iya': 'дератизация', 162 | 'deriva(ts)ion': 'деривацион', 163 | 'deriva(ts)iya': 'деривация', 164 | 'desika(ts)iya': 'десикация', 165 | 'detona(ts)iya': 'детонация', 166 | 'defini(ts)iya': 'дефиниция', 167 | 'defi(ts)it': 'дефицит', 168 | 'deflya(ts)iya': 'дефляция', 169 | 'defolia(ts)iya': 'дефолиация', 170 | 'deforma(ts)iya': 'деформация', 171 | 'de(ts)igramm': 'дециграмм', 172 | 'de(ts)ilitr': 'децилитр', 173 | 'de(ts)imetr': 'дециметр', 174 | 'dik(s)iya': 'дикция', 175 | 'direk(s)iya': 'дирекция', 176 | 'diskvalifika(ts)iya': 'дисквалификация', 177 | 'diskrimina(ts)iya': 'дискриминация', 178 | 'disloka(ts)iya': 'дислокация', 179 | 'dispropor(s)iya': 'диспропорция', 180 | 'disserta(ts)iya': 'диссертация', 181 | 'dissimilya(ts)iya': 'диссимиляция', 182 | 'disso(ts)ia(ts)iya': 'диссоциация', 183 | 'distan(s)ion': 'дистанцион', 184 | 'distan(s)iya': 'дистанция', 185 | 'distillya(ts)iya': 'дистилляция', 186 | 'differen(s)ial': 'дифференциал', 187 | 'differen(s)ia(ts)iya': 'дифференциация', 188 | 'differen(s)iyalamoq': 'дифференцияламоқ', 189 | 'dota(ts)iya': 'дотация', 190 | 'do(ts)ent': 'доцент', 191 | 'jinoiy-pro(ts)essual': 'жиноий-процессуал', 192 | 'identifika(ts)iya': 'идентификация', 193 | 'izolya(ts)ion': 'изоляцион', 194 | 'izolya(ts)iya': 'изоляция', 195 | 'izolya(ts)iyalamoq': 'изоляцияламоқ', 196 | 'illyumina(ts)iya': 'иллюминация', 197 | 'illyustra(ts)iya': 'иллюстрация', 198 | 'immigra(ts)iya': 'иммиграция', 199 | 'immobiliza(ts)iya': 'иммобилизация', 200 | 'impoten(s)iya': 'импотенция', 201 | 'improviza(ts)iya': 'импровизация', 202 | 'inaugura(ts)iya': 'инаугурация', 203 | 'inventariza(ts)iya': 'инвентаризация', 204 | 'investi(ts)iya': 'инвестиция', 205 | 'ingalya(ts)iya': 'ингаляция', 206 | 'indeksa(ts)iya': 'индексация', 207 | 'induk(s)ion': 'индукцион', 208 | 'induk(s)iya': 'индукция', 209 | 'iner(s)iya': 'инерция', 210 | 'iner(s)iyali': 'инерцияли', 211 | 'inkvizi(ts)iya': 'инквизиция', 212 | 'inkorpora(ts)iya': 'инкорпорация', 213 | 'inkuba(ts)iya': 'инкубация', 214 | 'innova(ts)iya': 'инновация', 215 | 'inspek(s)iya': 'инспекция', 216 | 'instar(s)iya': 'инстарция', 217 | 'instruk(s)iya': 'инструкция', 218 | 'ins(s)enirovka': 'инсценировка', 219 | 'integra(ts)iya': 'интеграция', 220 | 'intelligen(s)iya': 'интеллигенция', 221 | 'interven(s)iya': 'интервенция', 222 | 'interven(s)iyachi': 'интервенциячи', 223 | 'interna(ts)ional': 'интернационал', 224 | 'interna(ts)ionalizm': 'интернационализм', 225 | 'interna(ts)ionalist': 'интернационалист', 226 | 'intoksika(ts)iya': 'интоксикация', 227 | 'intona(ts)ion': 'интонацион', 228 | 'intona(ts)iya': 'интонация', 229 | 'intui(ts)iya': 'интуиция', 230 | 'infek(s)ion': 'инфекцион', 231 | 'infek(s)iya': 'инфекция', 232 | 'inflya(ts)iya': 'инфляция', 233 | 'informa(ts)ion': 'информацион', 234 | 'informa(ts)iya': 'информация', 235 | 'inʼek(s)iya': 'инъекция', 236 | 'irra(ts)ional': 'иррационал', 237 | 'irriga(ts)ion': 'ирригацион', 238 | 'irriga(ts)iya': 'ирригация', 239 | 'kalkulya(ts)iya': 'калькуляция', 240 | 'kal(s)iy': 'кальций', 241 | 'kanaliza(ts)iya': 'канализация', 242 | 'kan(s)eliyariya': 'канцелиярия', 243 | 'kan(s)erogen': 'канцероген', 244 | 'kan(s)ler': 'канцлер', 245 | 'kapitaliza(ts)iya': 'капитализация', 246 | 'kapitulya(ts)iya': 'капитуляция', 247 | 'kassa(ts)iya': 'кассация', 248 | 'katol(s)izm': 'католцизм', 249 | 'kvalifika(ts)iya': 'квалификация', 250 | 'kvar(s)': 'кварц', 251 | 'kvar(s)it': 'кварцит', 252 | 'kvitan(s)iya': 'квитанция', 253 | 'kinokon(s)ert': 'киноконцерт', 254 | 'kinos(s)enariy': 'киносценарий', 255 | 'klassifika(ts)iya': 'классификация', 256 | 'klassi(ts)izm': 'классицизм', 257 | 'koali(ts)ion': 'коалицион', 258 | 'koali(ts)iya': 'коалиция', 259 | 'kodifika(ts)iya': 'кодификация', 260 | 'kollek(s)ioner': 'коллекционер', 261 | 'kollek(s)iya': 'коллекция', 262 | 'kollek(s)iyachchi': 'коллекцияччи', 263 | 'kolon(s)ifra': 'колонцифра', 264 | 'kombina(ts)iya': 'комбинация', 265 | 'kommer(s)iya': 'коммерция', 266 | 'kommunika(ts)iya': 'коммуникация', 267 | 'kommuta(ts)iya': 'коммутация', 268 | 'kompensa(ts)iya': 'компенсация', 269 | 'kompeten(s)iya': 'компетенция', 270 | 'kompilya(ts)iya': 'компиляция', 271 | 'kompozi(ts)ion': 'композицион', 272 | 'kompozi(ts)iya': 'композиция', 273 | 'konvek(s)iya': 'конвекция', 274 | 'konven(s)iya': 'конвенция', 275 | 'konverta(ts)iya': 'конвертация', 276 | 'kondensa(ts)iya': 'конденсация', 277 | 'kondi(ts)iya': 'кондиция', 278 | 'kondi(ts)ioner': 'кондиционер', 279 | 'konkuren(s)iya': 'конкуренция', 280 | 'konserva(ts)iya': 'консервация', 281 | 'konsigna(ts)iya': 'консигнация', 282 | 'konsolida(ts)iya': 'консолидация', 283 | 'konsor(s)ium': 'консорциум', 284 | 'konspira(ts)iya': 'конспирация', 285 | 'konstitu(ts)ion': 'конституцион', 286 | 'konstitu(ts)iya': 'конституция', 287 | 'konstitu(ts)iyaviy': 'конституциявий', 288 | 'konstruk(s)iya': 'конструкция', 289 | 'konsulta(ts)iya': 'консультация', 290 | 'kontrakta(ts)iya': 'контрактация', 291 | 'kontribu(ts)iya': 'контрибуция', 292 | 'kontrrevolyu(ts)ion': 'контрреволюцион', 293 | 'kontrrevolyu(ts)ioner': 'контрреволюционер', 294 | 'kontrrevolyu(ts)iya': 'контрреволюция', 295 | 'konfedera(ts)iya': 'конфедерация', 296 | 'konferen(s)-zal': 'конференц-зал', 297 | 'konferen(s)iya': 'конференция', 298 | 'konfiska(ts)iya': 'конфискация', 299 | 'konfronta(ts)iya': 'конфронтация', 300 | 'konfu(ts)iylik': 'конфуцийлик', 301 | 'konfu(ts)iychilik': 'конфуцийчилик', 302 | 'kon(s)entrat': 'концентрат', 303 | 'kon(s)entratli': 'концентратли', 304 | 'kon(s)entra(ts)ion': 'концентрацион', 305 | 'kon(s)entra(ts)iya': 'концентрация', 306 | 'kon(s)entra(ts)iyalashmoq': 'концентрациялашмоқ', 307 | 'kon(s)entrik': 'концентрик', 308 | 'kon(s)ep(s)iya': 'концепция', 309 | 'kon(s)ern': 'концерн', 310 | 'kon(s)ert': 'концерт', 311 | 'kon(s)ertmeyster': 'концертмейстер', 312 | 'kon(s)essiya': 'концессия', 313 | 'kon(s)lager': 'концлагерь', 314 | 'koopera(ts)iya': 'кооперация', 315 | 'koopta(ts)iya': 'кооптация', 316 | 'koordina(ts)ion': 'координацион', 317 | 'koordina(ts)iya': 'координация', 318 | 'korpora(ts)iya': 'корпорация', 319 | 'korrelya(ts)iya': 'корреляция', 320 | 'korresponden(s)iya': 'корреспонденция', 321 | 'korrup(s)iya': 'коррупция', 322 | 'koeffi(ts)iyent': 'коэффициент', 323 | 'krema(ts)iya': 'кремация', 324 | 'kristalliza(ts)iya': 'кристаллизация', 325 | 'kulmina(ts)ion': 'кульминацион', 326 | 'kulmina(ts)iya': 'кульминация', 327 | 'kultiva(ts)iya': 'культивация', 328 | 'lakta(ts)iya': 'лактация', 329 | 'lamina(ts)iya': 'ламинация', 330 | 'lan(s)et': 'ланцет', 331 | 'levomi(ts)etin': 'левомицетин', 332 | 'legitima(ts)iya': 'легитимация', 333 | 'leyko(ts)itlar': 'лейкоцитлар', 334 | 'leyko(ts)itoz': 'лейкоцитоз', 335 | 'lek(s)iya': 'лекция', 336 | 'liberaliza(ts)iya': 'либерализация', 337 | 'li(ts)ey': 'лицей', 338 | 'li(ts)enziya': 'лицензия', 339 | 'lokaliza(ts)iya': 'локализация', 340 | 'loka(ts)iya': 'локация', 341 | 'lo(ts)man': 'лоцман', 342 | 'lyumenis(s)en(s)iya': 'люменисценция', 343 | 'lyute(ts)iy': 'лютеций', 344 | 'manipulya(ts)iya': 'манипуляция', 345 | 'margane(ts)': 'марганец', 346 | 'matri(ts)a': 'матрица', 347 | 'medi(ts)ina': 'медицина', 348 | 'meliora(ts)iya': 'мелиорация', 349 | 'menstrua(ts)iya': 'менструация', 350 | 'metalliza(ts)iya': 'металлизация', 351 | 'metiza(ts)iya': 'метизация', 352 | 'mexaniza(ts)iya': 'механизация', 353 | 'mexaniza(ts)iyalash': 'механизациялаш', 354 | 'mexaniza(ts)iyalashmoq': 'механизациялашмоқ', 355 | 'mexani(ts)izm': 'механицизм', 356 | 'migra(ts)iya': 'миграция', 357 | 'mizans(s)ena': 'мизансцена', 358 | 'militariza(ts)iya': 'милитаризация', 359 | 'mili(ts)ioner': 'милиционер', 360 | 'mili(ts)iya': 'милиция', 361 | 'mili(ts)iyaxona': 'милицияхона', 362 | 'mineraliza(ts)iya': 'минерализация', 363 | 'minonose(ts)': 'миноносец', 364 | 'misti(ts)izm': 'мистицизм', 365 | 'mobiliza(ts)iya': 'мобилизация', 366 | 'moderniza(ts)iya': 'модернизация', 367 | 'moderniza(ts)iyalamoq': 'модернизацияламоқ', 368 | 'modifika(ts)iya': 'модификация', 369 | 'moto(ts)ikl': 'мотоцикл', 370 | 'moto(ts)iklet': 'мотоциклет', 371 | 'moto(ts)ikletchi': 'мотоциклетчи', 372 | 'moto(ts)iklli': 'мотоциклли', 373 | 'moto(ts)iklchi': 'мотоциклчи', 374 | 'multiplika(ts)ion': 'мультипликацион', 375 | 'multiplika(ts)iya': 'мультипликация', 376 | 'muni(ts)ipaliza(ts)iya': 'муниципализация', 377 | 'muni(ts)ipalitet': 'муниципалитет', 378 | 'naviga(ts)iya': 'навигация', 379 | 'naturaliza(ts)iya': 'натурализация', 380 | 'na(ts)ionaliza(ts)iya': 'национализация', 381 | 'nene(ts)': 'ненец', 382 | 'nene(ts)lar': 'ненецлар', 383 | 'nitrogli(ts)erin': 'нитроглицерин', 384 | 'nomina(ts)iya': 'номинация', 385 | 'nostrifika(ts)iya': 'нострификация', 386 | 'nullifika(ts)iya': 'нуллификация', 387 | 'obliga(ts)iya': 'облигация', 388 | 'obroga(ts)iya': 'оброгация', 389 | 'observa(ts)iya': 'обсервация', 390 | 'okkupa(ts)ion': 'оккупацион', 391 | 'okkupa(ts)iya': 'оккупация', 392 | 'okkupa(ts)iyachi': 'оккупациячи', 393 | 'opera(ts)iya': 'операция', 394 | 'opera(ts)iyaviy': 'операциявий', 395 | 'oppozo(ts)ion': 'оппозоцион', 396 | 'oppozi(ts)iya': 'оппозиция', 397 | 'oppozi(ts)iyachi': 'оппозициячи', 398 | 'op(s)ion': 'опцион', 399 | 'ordinare(ts)': 'ординарец', 400 | 'oriyenta(ts)iya': 'ориентация', 401 | 'osteomalya(ts)iya': 'остеомаляция', 402 | 'ofi(ts)er': 'офицер', 403 | 'ofi(ts)iant': 'официант', 404 | 'ofi(ts)iantka': 'официантка', 405 | 'palpa(ts)iya': 'пальпация', 406 | 'pa(ts)iyent': 'пациент', 407 | 'pa(ts)ifizm': 'пацифизм', 408 | 'pa(ts)ifist': 'пацифист', 409 | 'peni(ts)(s)ilin': 'пениццилин', 410 | 'pesti(ts)idlar': 'пестицидлар', 411 | 'peti(ts)iya': 'петиция', 412 | 'petli(ts)a': 'петлица', 413 | 'pigmenta(ts)iya': 'пигментация', 414 | 'pin(s)et': 'пинцет', 415 | 'pi(ts)(s)a': 'пицца', 416 | 'planta(ts)iya': 'плантация', 417 | 'pla(ts)darm': 'плацдарм', 418 | 'pla(ts)kart': 'плацкарт', 419 | 'pla(ts)karta': 'плацкарта', 420 | 'pla(ts)kartali': 'плацкартали', 421 | 'plebis(s)it': 'плебисцит', 422 | 'podstan(s)iya': 'подстанция', 423 | 'pozi(ts)ion': 'позицион', 424 | 'pozi(ts)iya': 'позиция', 425 | 'poli(ts)iya': 'полиция', 426 | 'poli(ts)iyachi': 'полициячи', 427 | 'poli(ts)meyster': 'полицмейстер', 428 | 'pollyu(ts)iya': 'поллюция', 429 | 'populya(ts)iya': 'популяция', 430 | 'por(s)iya': 'порция', 431 | 'poten(s)ial': 'потенциал', 432 | 'prezenta(ts)iya': 'презентация', 433 | 'press-konferen(s)iya': 'пресс-конференция', 434 | 'preferen(s)iya': 'преференция', 435 | 'privatiza(ts)iya': 'приватизация', 436 | 'prin(s)ip': 'принцип', 437 | 'prin(s)ipial': 'принципиал', 438 | 'prin(s)ipiallik': 'принципиаллик', 439 | 'prin(s)ipli': 'принципли', 440 | 'prin(s)ipsiz': 'принципсиз', 441 | 'pri(ts)ep': 'прицеп', 442 | 'provin(s)ializm': 'провинциализм', 443 | 'provin(s)iya': 'провинция', 444 | 'provoka(ts)iya': 'провокация', 445 | 'proyek(s)iya': 'проекция', 446 | 'proyek(s)iyalamoq': 'проекцияламоқ', 447 | 'proklama(ts)iya': 'прокламация', 448 | 'prolonga(ts)iya': 'пролонгация', 449 | 'propor(s)ional': 'пропорционал', 450 | 'propor(s)ionallik': 'пропорционаллик', 451 | 'propor(s)iya': 'пропорция', 452 | 'protek(s)ionizm': 'протекционизм', 453 | 'pro(ts)ent': 'процент', 454 | 'pro(ts)entli': 'процентли', 455 | 'pro(ts)entchi': 'процентчи', 456 | 'pro(ts)ess': 'процесс', 457 | 'pro(ts)essor': 'процессор', 458 | 'pro(ts)essual': 'процессуал', 459 | 'publi(ts)ist': 'публицист', 460 | 'publi(ts)istik': 'публицистик', 461 | 'publi(ts)istika': 'публицистика', 462 | 'punktua(ts)ion': 'пунктуацион', 463 | 'punktua(ts)iya': 'пунктуация', 464 | 'punk(s)iya': 'пункция', 465 | 'radia(ts)ion': 'радиацион', 466 | 'radia(ts)iya': 'радиация', 467 | 'radioloka(ts)iya': 'радиолокация', 468 | 'radionaviga(ts)iya': 'радионавигация', 469 | 'radiostan(s)iya': 'радиостанция', 470 | 'rane(ts)': 'ранец', 471 | 'ratifika(ts)iya': 'ратификация', 472 | 'rafina(ts)iya': 'рафинация', 473 | 'rafina(ts)iyalash': 'рафинациялаш', 474 | 'ra(ts)ion': 'рацион', 475 | 'ra(ts)ional': 'рационал', 476 | 'ra(ts)ionalizator': 'рационализатор', 477 | 'ra(ts)ionalizatorlik': 'рационализаторлик', 478 | 'ra(ts)ionaliza(ts)iya': 'рационализация', 479 | 'ra(ts)ionalizm': 'рационализм', 480 | 'ra(ts)ionalist': 'рационалист', 481 | 'ra(ts)ionlallashmoq': 'рационлаллашмоқ', 482 | 'ra(ts)iya': 'рация', 483 | 'reabilita(ts)iya': 'реабилитация', 484 | 'reak(s)ion': 'реакцион', 485 | 'reak(s)ioner': 'реакционер', 486 | 'reak(s)iya': 'реакция', 487 | 'reak(s)iyachi': 'реакциячи', 488 | 'realiza(ts)iya': 'реализация', 489 | 'reanima(ts)iya': 'реанимация', 490 | 'revalva(ts)iya': 'ревальвация', 491 | 'revolyu(ts)ion': 'революцион', 492 | 'revolyu(ts)ioner': 'революционер', 493 | 'revolyu(ts)iya': 'революция', 494 | 'regenera(ts)iya': 'регенерация', 495 | 'registra(ts)iya': 'регистрация', 496 | 'redak(s)ion': 'редакцион', 497 | 'redak(s)iya': 'редакция', 498 | 'reduk(s)iya': 'редукция', 499 | 'reduplika(ts)iya': 'редупликация', 500 | 'rezek(s)iya': 'резекция', 501 | 'reziden(s)iya': 'резиденция', 502 | 'rezolyu(ts)iya': 'резолюция', 503 | 'reinvesti(ts)iya': 'реинвестиция', 504 | 'rekvizi(ts)iya': 'реквизиция', 505 | 'reklama(ts)iya': 'рекламация', 506 | 'rekognos(s)irovka': 'рекогносцировка', 507 | 'rekomenda(ts)iya': 'рекомендация', 508 | 'rekonstruk(s)iya': 'реконструкция', 509 | 'rekonstruk(s)iyalamoq': 'реконструкцияламоқ', 510 | 'remilitariza(ts)iya': 'ремилитаризация', 511 | 'repara(ts)iya': 'репарация', 512 | 'repatri(ts)iya': 'репатриция', 513 | 'repeti(ts)iya': 'репетиция', 514 | 'reprivatiza(ts)iya': 'реприватизация', 515 | 'reproduk(s)iya': 'репродукция', 516 | 'restavra(ts)iya': 'реставрация', 517 | 'retranslya(ts)iya': 'ретрансляция', 518 | 'reforma(ts)iya': 'реформация', 519 | 'refrak(s)iya': 'рефракция', 520 | 're(ts)enzent': 'рецензент', 521 | 're(ts)enziya': 'рецензия', 522 | 're(ts)ept': 'рецепт', 523 | 're(ts)eptorlar': 'рецепторлар', 524 | 're(ts)idiv': 'рецидив', 525 | 're(ts)idivist': 'рецидивист', 526 | 're(ts)ipiyent': 'реципиент', 527 | 'reevakua(ts)iya': 'реэвакуация', 528 | 'reemigra(ts)iya': 'реэмиграция', 529 | 'ri(ts)arlik': 'рицарлик', 530 | 'ri(ts)ar': 'рицарь', 531 | 'rota(ts)ion': 'ротацион', 532 | 'sana(ts)iya': 'санация', 533 | 'sana(ts)iyalash': 'санациялаш', 534 | 'sank(s)iya': 'санкция', 535 | 'sekre(ts)iya': 'секреция', 536 | 'sek(s)iya': 'секция', 537 | 'selek(s)ion': 'селекцион', 538 | 'selek(s)iya': 'селекция', 539 | 'selek(s)iyachi': 'селекциячи', 540 | 'selek(s)iyachilik': 'селекциячилик', 541 | 'sensa(ts)ion': 'сенсацион', 542 | 'sensa(ts)iya': 'сенсация', 543 | 'signaliza(ts)iya': 'сигнализация', 544 | 'sili(ts)iy': 'силиций', 545 | 'situa(ts)iya': 'ситуация', 546 | 'skepti(ts)izm': 'скептицизм', 547 | 'slane(ts)': 'сланец', 548 | 'so(ts)ial': 'социал', 549 | 'so(ts)ial-demokrat': 'социал-демократ', 550 | 'so(ts)ial-demokratik': 'социал-демократик', 551 | 'so(ts)ial-demokratiya': 'социал-демократия', 552 | 'so(ts)ializa(ts)iya': 'социализация', 553 | 'so(ts)ializm': 'социализм', 554 | 'so(ts)ialist': 'социалист', 555 | 'so(ts)ialistik': 'социалистик', 556 | 'so(ts)iolingvistika': 'социолингвистика', 557 | 'so(ts)iolog': 'социолог', 558 | 'so(ts)iologik': 'социологик', 559 | 'so(ts)iologiya': 'социология', 560 | 'spekulya(ts)iya': 'спекуляция', 561 | 'spe(ts)ifik': 'специфик', 562 | 'spe(ts)ifika': 'специфика', 563 | 'spe(ts)ifika(ts)iya': 'спецификация', 564 | 'stabiliza(ts)iya': 'стабилизация', 565 | 'stan(s)iya': 'станция', 566 | 'sta(ts)ionar': 'стационар', 567 | 'steriliza(ts)iya': 'стерилизация', 568 | 'stoi(ts)izm': 'стоицизм', 569 | 'stron(s)iy': 'стронций', 570 | 'substan(s)iya': 'субстанция', 571 | 's(s)enariy': 'сценарий', 572 | 's(s)enariychi': 'сценарийчи', 573 | 's(s)enarist': 'сценарист', 574 | 'tabli(ts)a': 'таблица', 575 | 'tan(s)a': 'танца', 576 | 'teleins(s)enirovka': 'телеинсценировка', 577 | 'telekommunika(ts)iya': 'телекоммуникация', 578 | 'telemexaniza(ts)iya': 'телемеханизация', 579 | 'tenden(s)ioz': 'тенденциоз', 580 | 'tenden(s)iozlik': 'тенденциозлик', 581 | 'tenden(s)iya': 'тенденция', 582 | 'tepli(ts)a': 'теплица', 583 | 'teploizolya(ts)iya': 'теплоизоляция', 584 | 'termoizolya(ts)iya': 'термоизоляция', 585 | 'ter(s)et': 'терцет', 586 | 'ter(s)iya': 'терция', 587 | 'texne(ts)iy': 'технеций', 588 | 'tradi(ts)ion': 'традицион', 589 | 'tradi(ts)iya': 'традиция', 590 | 'transkrip(s)ion': 'транскрипцион', 591 | 'transkrip(s)iya': 'транскрипция', 592 | 'transkrip(s)iyalamoq': 'транскрипцияламоқ', 593 | 'translitera(ts)iya': 'транслитерация', 594 | 'translya(ts)ion': 'трансляцион', 595 | 'translya(ts)iya': 'трансляция', 596 | 'transplanta(ts)iya': 'трансплантация', 597 | 'transforma(ts)iya': 'трансформация', 598 | 'transforma(ts)iyalamoq': 'трансформацияламоқ', 599 | 'trape(ts)iya': 'трапеция', 600 | 'trepana(ts)iya': 'трепанация', 601 | 'uborshi(ts)a': 'уборшица', 602 | 'uzurpa(ts)iya': 'узурпация', 603 | 'unifika(ts)iya': 'унификация', 604 | 'unifika(ts)iyalashtirmoq': 'унификациялаштирмоқ', 605 | 'unter-ofi(ts)er': 'унтер-офицер', 606 | 'urbaniza(ts)iya': 'урбанизация', 607 | 'fago(ts)it': 'фагоцит', 608 | 'falsifika(ts)iya': 'фальсификация', 609 | 'farma(ts)evt': 'фармацевт', 610 | 'farma(ts)evtika': 'фармацевтика', 611 | 'farma(ts)iya': 'фармация', 612 | 'federa(ts)iya': 'федерация', 613 | 'fermenta(ts)iya': 'ферментация', 614 | 'film-kon(s)ert': 'фильм-концерт', 615 | 'filtra(ts)iya': 'фильтрация', 616 | 'fiton(s)id': 'фитонцид', 617 | 'forma(ts)iya': 'формация', 618 | 'frak(s)ion': 'фракцион', 619 | 'frak(s)iooner': 'фракциоонер', 620 | 'frak(s)iya': 'фракция', 621 | 'fran(s)iya': 'франция', 622 | 'fran(s)uz': 'француз', 623 | 'fran(s)uzlar': 'французлар', 624 | 'fran(s)uzcha': 'французча', 625 | 'fri(ts)': 'фриц', 626 | 'funk(s)ional': 'функционал', 627 | 'funk(s)iya': 'функция', 628 | 'xemosorb(s)iya': 'хемосорбция', 629 | 'xole(ts)istit': 'холецистит', 630 | '(s)anga': 'цанга', 631 | '(s)apfa': 'цапфа', 632 | '(s)edra': 'цедра', 633 | '(s)eziy': 'цезий', 634 | '(s)eytnot': 'цейтнот', 635 | '(s)ellofan': 'целлофан', 636 | '(s)elluloid': 'целлулоид', 637 | '(s)ellyuloza': 'целлюлоза', 638 | '(s)elsiy': 'цельсий', 639 | '(s)ement': 'цемент', 640 | '(s)ementlamoq': 'цементламоқ', 641 | '(s)enz': 'ценз', 642 | '(s)enzor': 'цензор', 643 | '(s)enzura': 'цензура', 644 | '(s)ent': 'цент', 645 | '(s)entner': 'центнер', 646 | '(s)entnerli': 'центнерли', 647 | '(s)entnerchi': 'центнерчи', 648 | '(s)entralizm': 'централизм', 649 | '(s)entrizm': 'центризм', 650 | '(s)entrist': 'центрист', 651 | '(s)entrifuga': 'центрифуга', 652 | '(s)eriy': 'церий', 653 | '(s)esarka': 'цесарка', 654 | '(s)ex': 'цех', 655 | '(s)ian': 'циан', 656 | '(s)ianli': 'цианли', 657 | '(s)iviliza(ts)iya': 'цивилизация', 658 | '(s)igara': 'цигара', 659 | '(s)ikl': 'цикл', 660 | '(s)iklik': 'циклик', 661 | '(s)ikllashtirmoq': 'цикллаштирмоқ', 662 | '(s)iklli': 'циклли', 663 | '(s)iklon': 'циклон', 664 | '(s)iklotron': 'циклотрон', 665 | '(s)ilindr': 'цилиндр', 666 | '(s)ilindrik': 'цилиндрик', 667 | '(s)ilindrli': 'цилиндрли', 668 | '(s)inga': 'цинга', 669 | '(s)ink': 'цинк', 670 | '(s)inkograf': 'цинкограф', 671 | '(s)inkografiya': 'цинкография', 672 | '(s)irk': 'цирк', 673 | '(s)irkoniy': 'цирконий', 674 | '(s)irkul': 'циркуль', 675 | '(s)irkulyar': 'циркуляр', 676 | '(s)irkchi': 'циркчи', 677 | '(s)irroz': 'цирроз', 678 | '(s)isterna': 'цистерна', 679 | '(s)isternali': 'цистернали', 680 | '(s)istit': 'цистит', 681 | '(s)itata': 'цитата', 682 | '(s)itatabozlik': 'цитатабозлик', 683 | '(s)ito-': 'цито-', 684 | '(s)itodiagnostika': 'цитодиагностика', 685 | '(s)itokimyo': 'цитокимё', 686 | '(s)itoliz': 'цитолиз', 687 | '(s)itologiya': 'цитология', 688 | '(s)itrus': 'цитрус', 689 | '(s)iferblat': 'циферблат', 690 | '(s)iferblatli': 'циферблатли', 691 | '(s)okol': 'цоколь', 692 | '(s)unami': 'цунами', 693 | 'cherepi(ts)a': 'черепица', 694 | 'shvey(s)ar': 'швейцар', 695 | 'shmu(ts)titul': 'шмуцтитул', 696 | 'shni(ts)el': 'шницель', 697 | 'shpri(ts)': 'шприц', 698 | 'shtangen(s)irkul': 'штангенциркуль', 699 | 'evakua(ts)iya': 'эвакуация', 700 | 'evolyu(ts)ion': 'эволюцион', 701 | 'evolyu(ts)iya': 'эволюция', 702 | 'ego(ts)entrizm': 'эгоцентризм', 703 | 'eksguma(ts)iya': 'эксгумация', 704 | 'ekspedi(ts)ion': 'экспедицион', 705 | 'ekspedi(ts)iya': 'экспедиция', 706 | 'ekspedi(ts)iyachi': 'экспедициячи', 707 | 'ekspluata(ts)iya': 'эксплуатация', 708 | 'ekspluata(ts)iyachi': 'эксплуатациячи', 709 | 'ekspozi(ts)iya': 'экспозиция', 710 | 'ekspropria(ts)iya': 'экспроприация', 711 | 'ekstradi(ts)iya': 'экстрадиция', 712 | 'ekstrak(s)iya': 'экстракция', 713 | 'elektrifika(ts)iya': 'электрификация', 714 | 'elektrostan(s)iya': 'электростанция', 715 | 'emansipa(ts)iya': 'эмансипация', 716 | 'emigra(ts)iya': 'эмиграция', 717 | 'emo(ts)ional': 'эмоционал', 718 | 'emo(ts)ionallik': 'эмоционаллик', 719 | 'emo(ts)iya': 'эмоция', 720 | 'empiriokriti(ts)izm': 'эмпириокритицизм', 721 | 'en(s)efalit': 'энцефалит', 722 | 'en(s)efalogramma': 'энцефалограмма', 723 | 'en(s)iklopedik': 'энциклопедик', 724 | 'en(s)iklopedist': 'энциклопедист', 725 | 'en(s)iklopediya': 'энциклопедия', 726 | 'en(s)iklopediyachi': 'энциклопедиячи', 727 | 'epi(ts)entr': 'эпицентр', 728 | 'eritro(ts)itlar': 'эритроцитлар', 729 | 'erudi(ts)iya': 'эрудиция', 730 | 'eskala(ts)iya': 'эскалация', 731 | 'esmine(ts)': 'эсминец', 732 | 'essen(s)iya': 'эссенция', 733 | 'yurisdik(s)iya': 'юрисдикция', 734 | 'yurispruden(s)iya': 'юриспруденция', 735 | 'yusti(ts)iya': 'юстиция', 736 | } 737 | # These words cannot be reliably transliterated into cyrillic 738 | E_WORDS = { 739 | 'bel(e)taj': 'бельэтаж', 740 | 'bugun-(e)rta': 'бугун-эрта', 741 | 'diqqat-(e)ʼtibor': 'диққат-эътибор', 742 | 'ich-(e)t': 'ич-эт', 743 | 'karat(e)': 'каратэ', 744 | 'm(e)r': 'мэр', 745 | 'obroʻ-(e)ʼtiborli': 'обрў-эътиборли', 746 | 'omon-(e)son': 'омон-эсон', 747 | 'r(e)ket': 'рэкет', 748 | 'sut(e)mizuvchilar': 'сутэмизувчилар', 749 | 'upa-(e)lik': 'упа-элик', 750 | 'xayr-(e)hson': 'хайр-эҳсон', 751 | 'qayn(e)gachi': 'қайнэгачи', 752 | } 753 | # Not to confuse with ш 754 | SH_WORDS = { 755 | 'a(sh)ob': 'асҳоб', 756 | 'mu(sh)af': 'мусҳаф' 757 | } 758 | # Not to confuse with ё 759 | YO_WORDS = { 760 | 'general-ma(yo)r': 'генерал-майор', 761 | '(yo)g': 'йог', 762 | '(yo)ga': 'йога', 763 | '(yo)gurt': 'йогурт', 764 | '(yo)d': 'йод', 765 | '(yo)dlamoq': 'йодламоқ', 766 | '(yo)dli': 'йодли', 767 | 'ma(yo)nez': 'майонез', 768 | 'mikrorayon': 'микрорайон', 769 | 'ma(yo)r': 'майор', 770 | 'ra(yo)n': 'район', 771 | } 772 | YU_WORDS = { 773 | 'mo(yu)pa': 'мойупа', 774 | 'po(yu)stun': 'пойустун' 775 | } 776 | YA_WORDS = { 777 | 'po(ya)bzal': 'пойабзал', 778 | 'po(ya)ndoz': 'пойандоз', 779 | 'po(ya)fzal': 'пойафзал' 780 | } 781 | YE_WORDS = { 782 | 'i(ye)': 'ийе', 783 | 'konve(ye)r': 'конвейер', 784 | 'ple(ye)r': 'плейер', 785 | 'sta(ye)r': 'стайер', 786 | 'fo(ye)': 'фойе' 787 | } 788 | SOFT_SIGN_WORDS = { 789 | 'aviamodel': 'авиамодель', 790 | 'avtomagistralavtomat': 'автомагистральавтомат', 791 | 'avtomobil': 'автомобиль', 792 | 'akvarel': 'акварель', 793 | 'alkogol': 'алкоголь', 794 | 'albatros': 'альбатрос', 795 | 'albom': 'альбом', 796 | 'alpinizm': 'альпинизм', 797 | 'alpinist': 'альпинист', 798 | 'alt': 'альт', 799 | 'alternativ': 'альтернатив', 800 | 'alternativa': 'альтернатива', 801 | 'altimetr': 'альтиметр', 802 | 'altchi': 'альтчи', 803 | 'alfa': 'альфа', 804 | 'alfa-zarralar': 'альфа-зарралар', 805 | 'alma-terapiya': 'альма-терапия', 806 | 'alyans': 'альянс', 807 | 'amalgama': 'амальгама', 808 | 'ansambl': 'ансамбль', 809 | 'apelsin': 'апельсин', 810 | 'aprel': 'апрель', 811 | 'artel': 'артель', 812 | 'artikl': 'артикль', 813 | 'arergard': 'арьергард', 814 | 'asfalt': 'асфальт', 815 | 'asfaltlamoq': 'асфальтламоқ', 816 | 'asfaltli': 'асфальтли', 817 | 'atele': 'ателье', 818 | 'bazalt': 'базальт', 819 | 'balzam': 'бальзам', 820 | 'balzamlash': 'бальзамлаш', 821 | 'balneolog': 'бальнеолог', 822 | 'balneologik': 'бальнеологик', 823 | 'balneologiya': 'бальнеология', 824 | 'balneoterapiya': 'бальнеотерапия', 825 | 'balneotexnika': 'бальнеотехника', 826 | 'banderol': 'бандероль', 827 | 'barelef': 'барельеф', 828 | 'barrel': 'баррель', 829 | 'barer': 'барьер', 830 | 'batalon': 'батальон', 831 | 'belveder': 'бельведер', 832 | 'belgiyalik': 'бельгиялик', 833 | 'belting': 'бельтинг', 834 | 'beletaj': 'бельэтаж', 835 | 'bilyard': 'бильярд', 836 | 'binokl': 'бинокль', 837 | 'biofiltr': 'биофильтр', 838 | 'bolonya': 'болонья', 839 | 'bolshevizm': 'большевизм', 840 | 'bolshevik': 'большевик', 841 | 'brakonerlik': 'браконьерлик', 842 | 'broneavtomobil': 'бронеавтомобиль', 843 | 'bron': 'бронь', 844 | 'budilnik': 'будильник', 845 | 'bulvar': 'бульвар', 846 | 'buldenej': 'бульденеж', 847 | 'buldog': 'бульдог', 848 | 'buldozer': 'бульдозер', 849 | 'buldozerchi': 'бульдозерчи', 850 | 'bulon': 'бульон', 851 | 'byulleten': 'бюллетень', 852 | 'valeryanka': 'валерьянка', 853 | 'valvatsiya': 'вальвация', 854 | 'vals': 'вальс', 855 | 'vanil': 'ваниль', 856 | 'varete': 'варьете', 857 | 'vedomost': 'ведомость', 858 | 'veksel': 'вексель', 859 | 'ventil': 'вентиль', 860 | 'vermishel': 'вермишель', 861 | 'verner': 'верньер', 862 | 'verf': 'верфь', 863 | 'vestibyul': 'вестибюль', 864 | 'videofilm': 'видеофильм', 865 | 'viklyuchatel': 'виключатель', 866 | 'vinetka': 'виньетка', 867 | 'violonchel': 'виолончель', 868 | 'vklyuchatel': 'включатель', 869 | 'vodevil': 'водевиль', 870 | 'volost': 'волость', 871 | 'volt': 'вольт', 872 | 'volta': 'вольта', 873 | 'voltli': 'вольтли', 874 | 'voltmetr': 'вольтметр', 875 | 'volfram': 'вольфрам', 876 | 'vulgar': 'вульгар', 877 | 'vulgarizm': 'вульгаризм', 878 | 'vulgarlashtirmoq': 'вульгарлаштирмоқ', 879 | 'gavan': 'гавань', 880 | 'galvanizatsiya': 'гальванизация', 881 | 'galvanik': 'гальваник', 882 | 'galvanometr': 'гальванометр', 883 | 'gantel': 'гантель', 884 | 'garmon': 'гармонь', 885 | 'gastrol': 'гастроль', 886 | 'gastrol-konsert': 'гастроль-концерт', 887 | 'gelmint': 'гельминт', 888 | 'gelmintoz': 'гельминтоз', 889 | 'gelmintologiya': 'гельминтология', 890 | 'geraldika': 'геральдика', 891 | 'gilza': 'гильза', 892 | 'giposulfit': 'гипосульфит', 893 | 'golf': 'гольф', 894 | 'gorelef': 'горельеф', 895 | 'gorizontal': 'горизонталь', 896 | 'gospital': 'госпиталь', 897 | 'grifel': 'грифель', 898 | 'guash': 'гуашь', 899 | 'daltonizm': 'дальтонизм', 900 | 'dvigatel': 'двигатель', 901 | 'devalvatsiya': 'девальвация', 902 | 'dekabr': 'декабрь', 903 | 'delta': 'дельта', 904 | 'delfin': 'дельфин', 905 | 'delfinariy': 'дельфинарий', 906 | 'delfinsimonlar': 'дельфинсимонлар', 907 | 'detal': 'деталь', 908 | 'diagonal': 'диагональ', 909 | 'diafilm': 'диафильм', 910 | 'dizel': 'дизель', 911 | 'dizel-motor': 'дизель-мотор', 912 | 'dirijabl': 'дирижабль', 913 | 'drel': 'дрель', 914 | 'duel': 'дуэль', 915 | 'jenshen': 'женьшень', 916 | 'impuls': 'импульс', 917 | 'inventar': 'инвентарь', 918 | 'insult': 'инсульт', 919 | 'intervyu': 'интервью', 920 | 'interer': 'интерьер', 921 | 'italyan': 'итальян', 922 | 'italyanlar': 'итальянлар', 923 | 'italyancha': 'итальянча', 924 | 'iyul': 'июль', 925 | 'iyun': 'июнь', 926 | 'kabel': 'кабель', 927 | 'kalendar': 'календарь', 928 | 'kalka': 'калька', 929 | 'kalkalamoq': 'калькаламоқ', 930 | 'kalkulyator': 'калькулятор', 931 | 'kalkulyatsiya': 'калькуляция', 932 | 'kalsiy': 'кальций', 933 | 'kanifol': 'канифоль', 934 | 'kapelmeyster': 'капельмейстер', 935 | 'kapsyul': 'капсюль', 936 | 'karamel': 'карамель', 937 | 'kartel': 'картель', 938 | 'kartech': 'картечь', 939 | 'karusel': 'карусель', 940 | 'karer': 'карьер', 941 | 'kastryul': 'кастрюль', 942 | 'kastryulka': 'кастрюлька', 943 | 'katapulta': 'катапульта', 944 | 'kafel': 'кафель', 945 | 'kinofestival': 'кинофестиваль', 946 | 'kinofilm': 'кинофильм', 947 | 'kisel': 'кисель', 948 | 'kitel': 'китель', 949 | 'knyaz': 'князь', 950 | 'kobalt': 'кобальт', 951 | 'kokil': 'кокиль', 952 | 'kokteyl': 'коктейль', 953 | 'kompyuter': 'компьютер', 954 | 'kompyuterlashtirmoq': 'компьютерлаштирмоқ', 955 | 'konsultant': 'консультант', 956 | 'konsultativ': 'консультатив', 957 | 'konsultatsiya': 'консультация', 958 | 'kontrol': 'контроль', 959 | 'konferanse': 'конферансье', 960 | 'konslager': 'концлагерь', 961 | 'kon': 'конь', 962 | 'konki': 'коньки', 963 | 'konkichi': 'конькичи', 964 | 'konyunktiva': 'коньюнктива', 965 | 'konyunktivit': 'коньюнктивит', 966 | 'konyunktura': 'коньюнктура', 967 | 'konyak': 'коньяк', 968 | 'korol': 'король', 969 | 'kreml': 'кремль', 970 | 'krovat': 'кровать', 971 | 'kulminatsion': 'кульминацион', 972 | 'kulminatsiya': 'кульминация', 973 | 'kultivator': 'культиватор', 974 | 'kultivatsiya': 'культивация', 975 | 'kulturizm': 'культуризм', 976 | 'kurer': 'курьер', 977 | 'kyat': 'кьят', 978 | 'lager': 'лагерь', 979 | 'latun': 'латунь', 980 | 'losos': 'лосось', 981 | 'loson': 'лосьон', 982 | 'magistral': 'магистраль', 983 | 'marseleza': 'марсельеза', 984 | 'mebel': 'мебель', 985 | 'medal': 'медаль', 986 | 'medalon': 'медальон', 987 | 'melxior': 'мельхиор', 988 | 'menshevizm': 'меньшевизм', 989 | 'menshevik': 'меньшевик', 990 | 'migren': 'мигрень', 991 | 'mikroinsult': 'микроинсульт', 992 | 'mikrofilm': 'микрофильм', 993 | 'model': 'модель', 994 | 'modeler': 'модельер', 995 | 'molbert': 'мольберт', 996 | 'monastir': 'монастирь', 997 | 'monokultoura': 'монокультоура', 998 | 'motel': 'мотель', 999 | 'multi-': 'мульти-', 1000 | 'multimediya': 'мультимедия', 1001 | 'multimillioner': 'мультимиллионер', 1002 | 'multiplikatsion': 'мультипликацион', 1003 | 'multiplikator': 'мультипликатор', 1004 | 'multiplikatsiya': 'мультипликация', 1005 | 'neft': 'нефть', 1006 | 'nikel': 'никель', 1007 | 'nimpalto': 'нимпальто', 1008 | 'nippel': 'ниппель', 1009 | 'nol': 'ноль', 1010 | 'normal': 'нормаль', 1011 | 'noyabr': 'ноябрь', 1012 | 'oblast': 'область', 1013 | 'okkultizm': 'оккультизм', 1014 | 'oktabr': 'октябрь', 1015 | 'otel': 'отель', 1016 | 'oftalmologiya': 'офтальмология', 1017 | 'ochered': 'очередь', 1018 | 'pavilon': 'павильон', 1019 | 'palma': 'пальма', 1020 | 'palmazor': 'пальмазор', 1021 | 'palpatsiya': 'пальпация', 1022 | 'palto': 'пальто', 1023 | 'paltobop': 'пальтобоп', 1024 | 'paltolik': 'пальтолик', 1025 | 'panel': 'панель', 1026 | 'parallel': 'параллель', 1027 | 'parol': 'пароль', 1028 | 'patrul': 'патруль', 1029 | 'pedal': 'педаль', 1030 | 'penalti': 'пенальти', 1031 | 'pechat': 'печать', 1032 | 'pechene': 'печенье', 1033 | 'pech': 'печь', 1034 | 'plastir': 'пластирь', 1035 | 'povest': 'повесть', 1036 | 'polka': 'полька', 1037 | 'portfel': 'портфель', 1038 | 'porshen': 'поршень', 1039 | 'pochtalon': 'почтальон', 1040 | 'predoxranitel': 'предохранитель', 1041 | 'premera': 'премьера', 1042 | 'premer-ministr': 'премьер-министр', 1043 | 'press-pape': 'пресс-папье', 1044 | 'press-sekretar': 'пресс-секретарь', 1045 | 'pristan': 'пристань', 1046 | 'profil': 'профиль', 1047 | 'pulverizator': 'пульверизатор', 1048 | 'pulmonologiya': 'пульмонология', 1049 | 'pulpa': 'пульпа', 1050 | 'pulpit': 'пульпит', 1051 | 'puls': 'пульс', 1052 | 'pult': 'пульт', 1053 | 'pesa': 'пьеса', 1054 | 'radiospektakl': 'радиоспектакль', 1055 | 'rante': 'рантье', 1056 | 'revalvatsiya': 'ревальвация', 1057 | 'revolver': 'револьвер', 1058 | 'rezba': 'резьба', 1059 | 'rezbali': 'резьбали', 1060 | 'relef': 'рельеф', 1061 | 'rels': 'рельс', 1062 | 'relsli': 'рельсли', 1063 | 'relssiz': 'рельссиз', 1064 | 'retush': 'ретушь', 1065 | 'riyel': 'риель', 1066 | 'ritsar': 'рицарь', 1067 | 'rol': 'роль', 1068 | 'royal': 'рояль', 1069 | 'rubilnik': 'рубильник', 1070 | 'rubl': 'рубль', 1071 | 'rul': 'руль', 1072 | 'saldo': 'сальдо', 1073 | 'salto': 'сальто', 1074 | 'sekretar': 'секретарь', 1075 | 'selderey': 'сельдерей', 1076 | 'seld': 'сельдь', 1077 | 'sentabr': 'сентябрь', 1078 | 'senor': 'сеньор', 1079 | 'senora': 'сеньора', 1080 | 'sinka': 'синька', 1081 | 'sinkalamoq': 'синькаламоқ', 1082 | 'siren': 'сирень', 1083 | 'skalpel': 'скальпель', 1084 | 'slesar': 'слесарь', 1085 | 'sobol': 'соболь', 1086 | 'sol': 'соль', 1087 | 'spektakl': 'спектакль', 1088 | 'spiral': 'спираль', 1089 | 'statya': 'статья', 1090 | 'stelka': 'стелька', 1091 | 'sterjen': 'стержень', 1092 | 'stil': 'стиль', 1093 | 'sudya': 'судья', 1094 | 'sudyalik': 'судьялик', 1095 | 'sulfat': 'сульфат', 1096 | 'sulfatlar': 'сульфатлар', 1097 | 'tabel': 'табель', 1098 | 'talk': 'тальк', 1099 | 'tekstil': 'текстиль', 1100 | 'telefilm': 'телефильм', 1101 | 'tigel': 'тигель', 1102 | 'tokar': 'токарь', 1103 | 'tol': 'толь', 1104 | 'tonnel': 'тоннель', 1105 | 'tunnel': 'туннель', 1106 | 'tush': 'тушь', 1107 | 'tyulen': 'тюлень', 1108 | 'tyul': 'тюль', 1109 | 'ultimatum': 'ультиматум', 1110 | 'ultra-': 'ультра-', 1111 | 'ultrabinafsha': 'ультрабинафша', 1112 | 'ultramikroskop': 'ультрамикроскоп', 1113 | 'ultratovush': 'ультратовуш', 1114 | 'ultraqisqa': 'ультрақисқа', 1115 | 'umivalnik': 'умивальник', 1116 | 'util': 'утиль', 1117 | 'fakultativ': 'факультатив', 1118 | 'fakultet': 'факультет', 1119 | 'fakultetlalaro': 'факультетлаларо', 1120 | 'falsifikator': 'фальсификатор', 1121 | 'falsifikatsiya': 'фальсификация', 1122 | 'fevral': 'февраль', 1123 | 'feldmarshal': 'фельдмаршал', 1124 | 'feldsher': 'фельдшер', 1125 | 'feldʼeger': 'фельдъегерь', 1126 | 'feleton': 'фельетон', 1127 | 'feletonchi': 'фельетончи', 1128 | 'festival': 'фестиваль', 1129 | 'fizkultura': 'физкультура', 1130 | 'fizkulturachi': 'физкультурачи', 1131 | 'film': 'фильм', 1132 | 'film-konsert': 'фильм-концерт', 1133 | 'filmoskop': 'фильмоскоп', 1134 | 'filmoteka': 'фильмотека', 1135 | 'filtr': 'фильтр', 1136 | 'filtratsiya': 'фильтрация', 1137 | 'filtrlamoq': 'фильтрламоқ', 1138 | 'filtrli': 'фильтрли', 1139 | 'folga': 'фольга', 1140 | 'folklor': 'фольклор', 1141 | 'folklorist': 'фольклорист', 1142 | 'folkloristika': 'фольклористика', 1143 | 'folklorchi': 'фольклорчи', 1144 | 'folklorshunos': 'фольклоршунос', 1145 | 'folklorshunoslik': 'фольклоршунослик', 1146 | 'fonar': 'фонарь', 1147 | 'fortepyano': 'фортепьяно', 1148 | 'xolodilnik': 'холодильник', 1149 | 'xrustal': 'хрусталь', 1150 | 'selsiy': 'цельсий', 1151 | 'sirkul': 'циркуль', 1152 | 'sokol': 'цоколь', 1153 | 'chizel': 'чизель', 1154 | 'shagren': 'шагрень', 1155 | 'shampun': 'шампунь', 1156 | 'sherst': 'шерсть', 1157 | 'shinel': 'шинель', 1158 | 'shifoner': 'шифоньер', 1159 | 'shnitsel': 'шницель', 1160 | 'shpatel': 'шпатель', 1161 | 'shpilka': 'шпилька', 1162 | 'shpindel': 'шпиндель', 1163 | 'shtangensirkul': 'штангенциркуль', 1164 | 'shtapel': 'штапель', 1165 | 'shtempel': 'штемпель', 1166 | 'emal': 'эмаль', 1167 | 'emulsiya': 'эмульсия', 1168 | 'endshpil': 'эндшпиль', 1169 | 'eskadrilya': 'эскадрилья', 1170 | 'yuan': 'юань', 1171 | 'yuriskonsult': 'юрисконсульт', 1172 | 'yakor': 'якорь', 1173 | 'yanvar': 'январь', 1174 | } 1175 | 1176 | CYRILLIC_TO_LATIN = { 1177 | 'а': 'a', 'А': 'A', 1178 | 'б': 'b', 'Б': 'B', 1179 | 'в': 'v', 'В': 'V', 1180 | 'г': 'g', 'Г': 'G', 1181 | 'д': 'd', 'Д': 'D', 1182 | 'е': 'e', 'Е': 'E', 1183 | 'ё': 'yo', 'Ё': 'Yo', 1184 | 'ж': 'j', 'Ж': 'J', 1185 | 'з': 'z', 'З': 'Z', 1186 | 'и': 'i', 'И': 'I', 1187 | 'й': 'y', 'Й': 'Y', 1188 | 'к': 'k', 'К': 'K', 1189 | 'л': 'l', 'Л': 'L', 1190 | 'м': 'm', 'М': 'M', 1191 | 'н': 'n', 'Н': 'N', 1192 | 'о': 'o', 'О': 'O', 1193 | 'п': 'p', 'П': 'P', 1194 | 'р': 'r', 'Р': 'R', 1195 | 'с': 's', 'С': 'S', 1196 | 'т': 't', 'Т': 'T', 1197 | 'у': 'u', 'У': 'U', 1198 | 'ф': 'f', 'Ф': 'F', 1199 | 'х': 'x', 'Х': 'X', 1200 | 'ц': 's', 'Ц': 'S', 1201 | 'ч': 'ch', 'Ч': 'Ch', 1202 | 'ш': 'sh', 'Ш': 'Sh', 1203 | 'ъ': 'ʼ', 'Ъ': 'ʼ', 1204 | 'ь': '', 'Ь': '', 1205 | 'э': 'e', 'Э': 'E', 1206 | 'ю': 'yu', 'Ю': 'Yu', 1207 | 'я': 'ya', 'Я': 'Ya', 1208 | 'ў': 'oʻ', 'Ў': 'Oʻ', 1209 | 'қ': 'q', 'Қ': 'Q', 1210 | 'ғ': 'gʻ', 'Ғ': 'Gʻ', 1211 | 'ҳ': 'h', 'Ҳ': 'H', 1212 | } 1213 | CYRILLIC_VOWELS = ( 1214 | 'а', 'А', 'е', 'Е', 'ё', 'Ё', 'и', 'И', 'о', 'О', 'у', 'У', 'э', 'Э', 1215 | 'ю', 'Ю', 'я', 'Я', 'ў', 'Ў' 1216 | ) 1217 | 1218 | 1219 | def to_cyrillic(text): 1220 | """Transliterate latin text to cyrillic using the following rules: 1221 | 1. ye = е in the beginning of a word or after a vowel 1222 | 2. e = э in the beginning of a word or after a vowel 1223 | 3. ц exception words 1224 | 4. э exception words 1225 | """ 1226 | # These compounds must be converted before other letters 1227 | compounds_first = { 1228 | 'ch': 'ч', 'Ch': 'Ч', 'CH': 'Ч', 1229 | # this line must come before 's' because it has an 'h' 1230 | 'sh': 'ш', 'Sh': 'Ш', 'SH': 'Ш', 1231 | # This line must come before 'yo' because of it's apostrophe 1232 | 'yo‘': 'йў', 'Yo‘': 'Йў', 'YO‘': 'ЙЎ', 1233 | } 1234 | compounds_second = { 1235 | 'yo': 'ё', 'Yo': 'Ё', 'YO': 'Ё', 1236 | # 'ts': 'ц', 'Ts': 'Ц', 'TS': 'Ц', # No need for this, see TS_WORDS 1237 | 'yu': 'ю', 'Yu': 'Ю', 'YU': 'Ю', 1238 | 'ya': 'я', 'Ya': 'Я', 'YA': 'Я', 1239 | 'ye': 'е', 'Ye': 'Е', 'YE': 'Е', 1240 | # different kinds of apostrophes 1241 | 'o‘': 'ў', 'O‘': 'Ў', 'oʻ': 'ў', 'Oʻ': 'Ў', 1242 | 'g‘': 'ғ', 'G‘': 'Ғ', 'gʻ': 'ғ', 'Gʻ': 'Ғ', 1243 | } 1244 | beginning_rules = { 1245 | 'ye': 'е', 'Ye': 'Е', 'YE': 'Е', 1246 | 'e': 'э', 'E': 'Э', 1247 | } 1248 | after_vowel_rules = { 1249 | 'ye': 'е', 'Ye': 'Е', 'YE': 'Е', 1250 | 'e': 'э', 'E': 'Э', 1251 | } 1252 | exception_words_rules = { 1253 | 's': 'ц', 'S': 'Ц', 1254 | 'ts': 'ц', 'Ts': 'Ц', 'TS': 'Ц', # but not tS 1255 | 'e': 'э', 'E': 'э', 1256 | 'sh': 'сҳ', 'Sh': 'Сҳ', 'SH': 'СҲ', 1257 | 'yo': 'йо', 'Yo': 'Йо', 'YO': 'ЙО', 1258 | 'yu': 'йу', 'Yu': 'Йу', 'YU': 'ЙУ', 1259 | 'ya': 'йа', 'Ya': 'Йа', 'YA': 'ЙА', 1260 | } 1261 | 1262 | # standardize some characters 1263 | # the first one is the windows string, the second one is the mac string 1264 | text = text.replace('ʻ', '‘') 1265 | 1266 | def replace_soft_sign_words(m): 1267 | word = m.group(1) 1268 | if word.isupper(): 1269 | result = SOFT_SIGN_WORDS[word.lower()].upper() 1270 | elif word[0].isupper(): 1271 | result = SOFT_SIGN_WORDS[word.lower()] 1272 | result = result[0].upper() + result[1:] 1273 | else: 1274 | result = SOFT_SIGN_WORDS[word.lower()] 1275 | return result 1276 | 1277 | for word in SOFT_SIGN_WORDS: 1278 | text = re.sub( 1279 | r'\b(%s)' % word, 1280 | replace_soft_sign_words, 1281 | text, 1282 | flags=re.U 1283 | ) 1284 | 1285 | def replace_exception_words(m): 1286 | """Replace ц (or э) only leaving other characters unchanged""" 1287 | return '%s%s%s' % ( 1288 | m.group(1)[:m.start(2)], 1289 | exception_words_rules[m.group(2)], 1290 | m.group(1)[m.end(2):] 1291 | ) 1292 | # loop because of python's limit of 100 named groups 1293 | for word in list(TS_WORDS.keys()) + list(E_WORDS.keys()): 1294 | text = re.sub( 1295 | r'\b(%s)' % word, 1296 | replace_exception_words, 1297 | text, 1298 | flags=re.U 1299 | ) 1300 | 1301 | # compounds 1302 | text = re.sub( 1303 | r'(%s)' % '|'.join(compounds_first.keys()), 1304 | lambda x: compounds_first[x.group(1)], 1305 | text, 1306 | flags=re.U 1307 | ) 1308 | 1309 | text = re.sub( 1310 | r'(%s)' % '|'.join(compounds_second.keys()), 1311 | lambda x: compounds_second[x.group(1)], 1312 | text, 1313 | flags=re.U 1314 | ) 1315 | 1316 | text = re.sub( 1317 | r'\b(%s)' % '|'.join(beginning_rules.keys()), 1318 | lambda x: beginning_rules[x.group(1)], 1319 | text, 1320 | flags=re.U 1321 | ) 1322 | 1323 | text = re.sub( 1324 | r'(%s)(%s)' % ('|'.join(LATIN_VOWELS), 1325 | '|'.join(after_vowel_rules.keys())), 1326 | lambda x: '%s%s' % (x.group(1), after_vowel_rules[x.group(2)]), 1327 | text, 1328 | flags=re.U 1329 | ) 1330 | 1331 | text = re.sub( 1332 | r'(%s)' % '|'.join(LATIN_TO_CYRILLIC.keys()), 1333 | lambda x: LATIN_TO_CYRILLIC[x.group(1)], 1334 | text, 1335 | flags=re.U 1336 | ) 1337 | 1338 | return text 1339 | 1340 | 1341 | def to_latin(text): 1342 | """Transliterate cyrillic text to latin using the following rules: 1343 | 1. ц = s at the beginning of a word. 1344 | ц = ts in the middle of a word after a vowel. 1345 | ц = s in the middle of a word after consonant (DEFAULT in CYRILLIC_TO_LATIN) 1346 | цирк = sirk 1347 | цех = sex 1348 | федерация = federatsiya 1349 | функция = funksiya 1350 | 2. е = ye at the beginning of a word or after a vowel. 1351 | е = e in the middle of a word after a consonant (DEFAULT). 1352 | 3. Сентябр = Sentabr, Октябр = Oktabr 1353 | """ 1354 | beginning_rules = { 1355 | 'ц': 's', 'Ц': 'S', 1356 | 'е': 'ye', 'Е': 'Ye' 1357 | } 1358 | after_vowel_rules = { 1359 | 'ц': 'ts', 'Ц': 'Ts', 1360 | 'е': 'ye', 'Е': 'Ye' 1361 | } 1362 | 1363 | text = re.sub( 1364 | r'(сент|окт)([яЯ])(бр)', 1365 | lambda x: '%s%s%s' % (x.group(1), 1366 | 'a' if x.group(2) == 'я' else 'A', x.group(3)), 1367 | text, 1368 | flags=re.IGNORECASE | re.U 1369 | ) 1370 | 1371 | text = re.sub( 1372 | r'\b(%s)' % '|'.join(beginning_rules.keys()), 1373 | lambda x: beginning_rules[x.group(1)], 1374 | text, 1375 | flags=re.U 1376 | ) 1377 | 1378 | text = re.sub( 1379 | r'(%s)(%s)' % ('|'.join(CYRILLIC_VOWELS), 1380 | '|'.join(after_vowel_rules.keys())), 1381 | lambda x: '%s%s' % (x.group(1), after_vowel_rules[x.group(2)]), 1382 | text, 1383 | flags=re.U 1384 | ) 1385 | 1386 | text = re.sub( 1387 | r'(%s)' % '|'.join(CYRILLIC_TO_LATIN.keys()), 1388 | lambda x: CYRILLIC_TO_LATIN[x.group(1)], 1389 | text, 1390 | flags=re.U 1391 | ) 1392 | 1393 | return text 1394 | 1395 | 1396 | def transliterate(text, to_variant): 1397 | if to_variant == 'cyrillic': 1398 | text = to_cyrillic(text) 1399 | elif to_variant == 'latin': 1400 | text = to_latin(text) 1401 | 1402 | return text 1403 | 1404 | if __name__ == "__main__": 1405 | """cat input_in_lat.txt | python transliterate.py > output_in_cyr.txt""" 1406 | for line in sys.stdin: 1407 | sys.stdout.write(transliterate(line, 'cyrillic')) 1408 | --------------------------------------------------------------------------------