Ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.
Вложения и другие параметры
Вложения:
Перетащите файлы сюда или используйте кнопку для добавления файлов
Доступные типы файлов: patch, txt, png, pdf, gif, py, gif, djvu, warning
Ограничения: максимум вложений в сообщении — 3 (3 осталось), максимальный размер всех файлов — 300 КБ, максимальный размер одного файла — 100 КБ
Обратите внимание: вложения не будут видны, пока модератор не одобрит их.
Проверка:
Оставьте это поле пустым:
√49:
ALT+S — отправить
ALT+P — предварительный просмотр

Сообщения в этой теме

Автор maratique
 - июня 23, 2022, 17:08
function ruslat(s)
{
   function latin(c)
   {
      cir="АаБбВвГгДдЕеЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуЎўФфХхЧчШшЪъЫыЬьЭэ"
      lat="AaBbVvGgDdEeQqZzIiJjKkLlMmNnOoPpRrSsTtUuWwFfHhCcXxJjYyJjEe"
      
      if((k=cir.indexOf(c))>=0)return lat[k]
      
      switch(c)
      {
      case"Я":return"Ja"
      case"я":return"ja"
      case"Ю":return"Ju"
      case"ю":return"ju"
      case"Ё":return"Jo"
      case"ё":return"jo"
      case"Ц":return"Ts"
      case"ц":return"ts"
      case"Щ":return"Sc"
      case"щ":return"sc";
      }
      return c
   }
   a=[]
   for(let c of s)a.push(latin(c))
   return a.join('')
}

В Питоне, говорят, index ошибку выдает, а не -1
Автор Python
 - июня 23, 2022, 16:35
Цитироватькожній літері сучасної української кирилиці має відповідати окрема літера латиниці, апостроф теж має зберігатись на своєму місці.
Цитироватьпаралельно має існувати й варіант, де додаткові літери замінено диграфами
Моя спроба втілити ці ідеали (в жодному разі не стандарт, хоча було б добре, якби за стандарт узяли щось подібне. Ще я відверто познущався з літер Щщ та Ьь, керуючись власним збоченим потягом до естетики).

Moä sproba vtilyty ci idealy (v žodnomu razi ne standart, xoča bulo b dobre, äkby za standart uzäly ßosı podibne. Qe ä vidverto poznußavsä z liter Qß ta ɪı, keruüčysı vlasnym zbočenym potähom do estetyky).

Moaw sproba vtilyty ci idealy (v zwodnomu razi ne standart, xocwa bulo b dobre, awkby za standart uzawly qosjw podibne. Qe aw vidverto poznuqavsaw z liter Qq ta Jwjw, keruuwcwysjw vlasnym zbocwenym potawhom do estetyky).

#!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.')
Автор dagege
 - апреля 25, 2022, 07:38
Цитата: Python от апреля 24, 2022, 15:17
Цитата: Python от апреля 24, 2022, 13:27
Цитата: dagege от апреля 24, 2022, 13:02
Можно. При одном условии: если вы мне нагадаете хоть одно слово, которое начинается с i, но которое происходит из о, но при этом нет начального вставного в-.
Хіба що в діалектах буває без вставного. Як правило, в початковій позиції перед і<о скрізь додадається в-.

В багатьох українських етимологічних правописах Ô позначало як і<о після приголосних, так і ві<о на початку слова (іншими словами, буква ô читалась як і після приголосних та як ві на початку слова: ôвця, рôгѣ). Хоча Максимович, наприклад, передавав ві<о як вô (вôвця, рôгъ).
З іншого боку, ві<о може бути й не на початку слова, а після префіксу: безвідповідальність.
Можно ввести правило, что "чтение ó как ві- в начале слова" не меняется при присоединении приставок к корню, либо дополнительных приставок.

Тоже самое касается и примера ниже.

sudja читается как суддя
НО
ódjěchati читается від'їхати, а не віддіхати
Автор Python
 - апреля 24, 2022, 15:17
Цитата: Python от апреля 24, 2022, 13:27
Цитата: dagege от апреля 24, 2022, 13:02
Можно. При одном условии: если вы мне нагадаете хоть одно слово, которое начинается с i, но которое происходит из о, но при этом нет начального вставного в-.
Хіба що в діалектах буває без вставного. Як правило, в початковій позиції перед і<о скрізь додадається в-.

В багатьох українських етимологічних правописах Ô позначало як і<о після приголосних, так і ві<о на початку слова (іншими словами, буква ô читалась як і після приголосних та як ві на початку слова: ôвця, рôгѣ). Хоча Максимович, наприклад, передавав ві<о як вô (вôвця, рôгъ).
З іншого боку, ві<о може бути й не на початку слова, а після префіксу: безвідповідальність.
Автор dagege
 - апреля 24, 2022, 14:16
Я бы ї передавал через ї.
Україна це Ukraїna
українська мова - ukraїnśka mova
НО!
Київ - Kijěv.
Автор dagege
 - апреля 24, 2022, 13:58
Хм. Ну хай буде ó для i и начально вi. Как раз минус одна диактрика, чей узус и так получается  узким.
ód, ódpověď, ón, óvća, óvśanka, róh, rók (rokóv) - ôd, ôdpověď, ôn, ôvća, ôvśanka, rôh, rôk (rokôv).
Решайте сами, какой вариант вам кажется более эстетичным
Автор Python
 - апреля 24, 2022, 13:27
Цитата: dagege от апреля 24, 2022, 13:02
Можно. При одном условии: если вы мне нагадаете хоть одно слово, которое начинается с i, но которое происходит из о, но при этом нет начального вставного в-.
Хіба що в діалектах буває без вставного. Як правило, в початковій позиції перед і<о скрізь додадається в-.

В багатьох українських етимологічних правописах Ô позначало як і<о після приголосних, так і ві<о на початку слова (іншими словами, буква ô читалась як і після приголосних та як ві на початку слова: ôвця, рôгъ). Хоча Максимович, наприклад, передавав ві<о як вô (вôвця, рôгъ).
Автор dagege
 - апреля 24, 2022, 13:02
Цитата: Hellerick от апреля 24, 2022, 12:19
Цитата: dagege от апреля 24, 2022, 10:57
ó - i (историческое о) rók - rokóv
[...]
ві (из о) - ò (òd, òdpověď - від, відповідь)

Esce lo es pisible ce la leteras "ó" e "ò" juntada a un?

Нелзя ли "ó" и "ò" объединить в одну букву?
Можно. При одном условии: если вы мне нагадаете хоть одно слово, которое начинается с i, но которое происходит из о, но при этом нет начального вставного в-.
ò - употребляется только в начале слова: òd, òdpověď, òn вiд, вiдповiдь, вiн.
Автор Hellerick
 - апреля 24, 2022, 12:19
Цитата: 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, 11:37
Цитата: Hellerick от апреля 24, 2022, 11:17
Le letera Y no es usada sin sinietas?

Буква Y без диакритики не употребляется?
Правильно заметили. Ошибся, наскоро просмотрев старые заметки.

На старте буква i передаёт кириллическую и. Если нужно i, то нужно диактрикой смягчать предыдущую согласную, либо писать ó, ě.

y - ий, ій - ý
peršy, siný - перший, сiнiй