Цитироватькожній літері сучасної української кирилиці має відповідати окрема літера латиниці, апостроф теж має зберігатись на своєму місці.
Цитироватьпаралельно має існувати й варіант, де додаткові літери замінено диграфамиМоя спроба втілити ці ідеали (в жодному разі не стандарт, хоча було б добре, якби за стандарт узяли щось подібне. Ще я відверто познущався з літер Щщ та Ьь, керуючись власним збоченим потягом до естетики).
#!py -3
translit='''
А A
Б B
В V
Г H
Ґ G
Д D
Е E
Є Ë
Ж Ž
З Z
И Y
І I
Ї Ï
Й J
К K
Л L
М M
Н N
О O
П P
Р R
С S
Т T
У U
Ф F
Х X
Ц C
Ч Č
Ш Š
Щ Q
щ ß
Ь ɪ
ь ı
Ю Ü
Я Ä
'''
digraphs='''
Ä Aw
Ü Uw
Ë Ew
Ï Iw
Ž Zw
Š Sw
Č Cw
ß q
ɪ Jw
ı jw
'''
if 0:'''
Ä Ja J'a
Ü Ju J'u
Ë Je J'e
Ï Ji J'i
Ž Zh Z'h
Š Sh S'h
Č Ch C'h
ß q q
ɪ Jh J'h
'''
translit=[*map(str.split, translit.strip().split('\n'))]
digraphs=[*map(str.split, digraphs.strip().split('\n'))]
d_cyr2lat=dict(translit)
for c in list(d_cyr2lat):
if c.lower() not in d_cyr2lat:
d_cyr2lat[c.lower()]=d_cyr2lat[c].lower()
d_lat2cyr={d_cyr2lat[c]:c for c in d_cyr2lat}
d_lat2asc=dict(digraphs)
for c in list(d_lat2asc):
if c.lower() not in d_lat2asc:
d_lat2asc[c.lower()]=d_lat2asc[c].lower()
d_asc2lat={d_lat2asc[c]:c for c in d_lat2asc}
for c in list(d_asc2lat):
if c[0]<='Z':
d_asc2lat[c.upper()]=d_asc2lat[c]
d_lat2cyr['ẞ']='Щ'
d_lat2asc['ẞ']='Q'
t_cyr2lat={ord(c):d_cyr2lat[c] for c in d_cyr2lat}
t_lat2cyr={ord(c):d_lat2cyr[c] for c in d_lat2cyr}
t_lat2asc={ord(c):d_lat2asc[c] for c in d_lat2asc}
def cyr2lat(s):
return s.translate(t_cyr2lat)
def lat2asc(s):
return s.translate(t_lat2asc)
def cyr2asc(s):
return lat2asc(cyr2lat(s))
all2asc=cyr2asc
def asc2lat(s):
for dg in d_asc2lat:
s=s.replace(dg, d_asc2lat[dg])
return s
def all2lat(s):
return asc2lat(cyr2lat(s))
def latx2cyr(s):
return s.translate(t_lat2cyr)
def all2cyr(s):
return latx2cyr(asc2lat(s))
asc2cyr=lat2cyr=all2cyr
import re
def switch(s):
def sswitch(s):
s=s.group()
return cyr2lat(s) if 'Є'<=s[0]<='ґ' else lat2cyr(s)
return re.sub('[Є-ґ]+|[^Є-ґ]+', sswitch, s)
cyrXlat=latXcyr=switch
cyrXasc=ascXcyr=lambda s:lat2asc(latXcyr(s))
def ascx2cyr(s):
return re.sub('[A-Za-z]+', lambda m: all2cyr(m.group()), s)
def cyrx2asc(s):
return re.sub('[Є-ґ]+', lambda m: all2asc(m.group()), s)
if __name__=='__main__':
import sys
command=sys.argv[1] if len(sys.argv)>1 else 'cyrXlat'
commands=''' cyr2lat cyr2asc lat2cyr lat2asc asc2lat asc2cyr
all2cyr all2lat all2asc
latx2cyr ascx2cyr cyrx2asc
latXcyr cyrXlat cyrXasc ascXcyr'''
if command in commands.split():
command=eval(command)
for s in sys.stdin:
print(command(s), end='')
elif command in '-h -? -help --help help'.split():
print('''
Convert text between Ukrainian Cyrillic alphabet (cyr), Latin-33 for Ukrainian (lat), and ASCII surrogates (asc)
Usage: ukrlat33 [command]
Command is one of the following:
%s help formats
help print this help
formats print alphabetical formats help
cyr2lat convert from Cyrillic to Latin-33
cyrx2asc convert from Cyrillic exactly to ASCII
cyrXlat convert in both directions
By default, command is cyrXlat
'''%commands)
elif command=='formats':
print('''
This program uses the following alphabets:
Cyrillic: Аа Бб Вв Гг Ґґ Дд Ее Єє Жж Зз Ии Іі Її Йй Кк Лл Мм Нн Оо Пп Рр Сс Тт Уу Фф Хх Цц Чч Шш Щщ Ьь Юю Яя
Latin-33: Aa Bb Vv Hh Gg Dd Ee Ëë Žž Zz Yy Ii Ïï Jj Kk Ll Mm Nn Oo Pp Rr Ss Tt Uu Ff Xx Cc Čč Šš Qß ɪı Üü Ää
ASCII (Latin-26) is similar to Latin-33 but it replaces non-ASCII letters with ASCII surrogates:
%s
(lower and capital variants of digraphs are also used: ja for ä/я, JA for Ä/Я etc.).
Note that ASCII surrogates and uppercase eszet (ẞ for Q/Щ) may be used in Latin-33 input, but won't appear in Latin-33 output.
To convert from Lating-33 to Cyrillic skipping digraphs conversion, use latx2cyr instead of lat2cyr.
Since asc2cyr and cyr2asc are aliases for all2cyr and all2asc, use ascx2cyr and cyrx2asc
to avoid affecting non-Cyrillic non-ASCII characters.
'''%', '.join((k+': '+v for (k, v) in digraphs)))
else:
print('Unknown command.')
Цитата: Python от апреля 24, 2022, 15:17Можно ввести правило, что "чтение ó как ві- в начале слова" не меняется при присоединении приставок к корню, либо дополнительных приставок.Цитата: Python от апреля 24, 2022, 13:27З іншого боку, ві<о може бути й не на початку слова, а після префіксу: безвідповідальність.Цитата: dagege от апреля 24, 2022, 13:02Хіба що в діалектах буває без вставного. Як правило, в початковій позиції перед і<о скрізь додадається в-.
Можно. При одном условии: если вы мне нагадаете хоть одно слово, которое начинается с i, но которое происходит из о, но при этом нет начального вставного в-.
В багатьох українських етимологічних правописах Ô позначало як і<о після приголосних, так і ві<о на початку слова (іншими словами, буква ô читалась як і після приголосних та як ві на початку слова: ôвця, рôгѣ). Хоча Максимович, наприклад, передавав ві<о як вô (вôвця, рôгъ).
Цитата: Python от апреля 24, 2022, 13:27З іншого боку, ві<о може бути й не на початку слова, а після префіксу: безвідповідальність.Цитата: dagege от апреля 24, 2022, 13:02Хіба що в діалектах буває без вставного. Як правило, в початковій позиції перед і<о скрізь додадається в-.
Можно. При одном условии: если вы мне нагадаете хоть одно слово, которое начинается с i, но которое происходит из о, но при этом нет начального вставного в-.
В багатьох українських етимологічних правописах Ô позначало як і<о після приголосних, так і ві<о на початку слова (іншими словами, буква ô читалась як і після приголосних та як ві на початку слова: ôвця, рôгѣ). Хоча Максимович, наприклад, передавав ві<о як вô (вôвця, рôгъ).
Цитата: dagege от апреля 24, 2022, 13:02Хіба що в діалектах буває без вставного. Як правило, в початковій позиції перед і<о скрізь додадається в-.
Можно. При одном условии: если вы мне нагадаете хоть одно слово, которое начинается с i, но которое происходит из о, но при этом нет начального вставного в-.
Цитата: Hellerick от апреля 24, 2022, 12:19Можно. При одном условии: если вы мне нагадаете хоть одно слово, которое начинается с i, но которое происходит из о, но при этом нет начального вставного в-.Цитата: dagege от апреля 24, 2022, 10:57
ó - i (историческое о) rók - rokóv
[...]
ві (из о) - ò (òd, òdpověď - від, відповідь)
Esce lo es pisible ce la leteras "ó" e "ò" juntada a un?
Нелзя ли "ó" и "ò" объединить в одну букву?
Цитата: dagege от апреля 24, 2022, 10:57
ó - i (историческое о) rók - rokóv
[...]
ві (из о) - ò (òd, òdpověď - від, відповідь)
Цитата: Hellerick от апреля 24, 2022, 11:17Правильно заметили. Ошибся, наскоро просмотрев старые заметки.
Le letera Y no es usada sin sinietas?
Буква Y без диакритики не употребляется?
Страница создана за 0.156 сек. Запросов: 22.