Ебланский язык на ТГ

Язык TL (Type Language или Time Limit) служит для описания используемой системы типов, конструкторов и существующих функций. Фактически используется формат описания комбинаторов, приведенный в статье двоичная сериализация данных.

См. также:

Продвинутые темы:

  • Зависимые типы в TL
  • Формальное описание TL
  • Формальное описание комбинаторов TL
  • Сериализация типов
  • TL-схема для сериализации TL-схем

Обзор

Программа на TL обычно состоит из двух секций, разделенных ключевым словом « —functions— ». Первая секция состоит из описаний встроенных и составных типов (т.е. их конструкторов). Вторая секция состоит из объявлений функций — т.е. функциональных комбинаторов.

Фактически и первая, и вторая секция состоят из описаний комбинаторов, каждое из которых завершается точкой с запятой, однако в первой секции участвуют только конструкторы, а во второй — только функции. Каждый комбинатор описывается с помощью ‘’описания комбинатора‘’ в формате, объясненном выше. Однако есть возможность явно задавать номер комбинатора, а также названия полей.

Разговариваю на выдуманном языке

Если нужно после объявлений функций вернуться к объявлению типов, используется ключевое слово (разделитель секций) « —types— ». Кроме того, в разделе типов можно объявить и функциональный комбинатор, если тип его результата предварить восклицательным знаком (фактически раздел функций — это такой раздел, при интерпретации которого этот восклицательный знак добавляется автоматически).

Для явного задания 32-битных имен комбинаторов сразу после имени комбинатора дописывается диез (#), за которым следует 8 шестнадцатеричных цифр.

Пространства имен

В качестве идентификатора конструктора или типа можно также использовать составные конструкции вида . и . .

При этом идентификатор, стоящий слева от точки, называется пространством имен (namespace). Правило про первую заглавную букву в идентификаторах типов и строчную букву в идентификаторах конструкторов распространяется при этом на часть конструкции после точки. Например, auth.Message может быть типом, а auth.std_message может быть конструктором.

Пространства имен не нуждаются в специальном объявлении.

// built-in types int#a8509bda ? = Int; long ? = Long; double ? = Double; string ? = String; null = Null; vector # [ t ] = Vector t; coupleInt int alpha = CoupleInt; coupleStr string gamma = CoupleStr gamma; /* name of type variable is irrelevant: might replace ‘gamma’ with ‘alpha’; however, combinator number will depend on the specific choice */ intHash vector = IntHash; strHash (vector (coupleStr alpha)) = StrHash alpha; intSortedHash intHash = IntSortedHash; strSortedHash (strHash alpha) = StrSortedHash alpha; // instantiating polymorphic types (‘templates’) // outdated, ignored altogether Vector int; // with syntactic sugar as well: Vector; Vector Object; IntHash int; IntHash string; IntHash Object; StrHash int; StrHash string; StrHash Object; // custom types pair x:Object y:Object = Pair; triple x:Object y:Object z:Object = Triple; user#d23c81a3 id:int first_name:string last_name:string = User; no_user#c67599d1 id:int = User; group id:int title:string last_name:string = Group; no_group = Group; —functions— // maybe some built-in arithmetic functions; inverse quotes make ‘identifiers’ // from arbitrary non-alphanumeric strings `+` Int Int = Int; `-` Int Int = Int; `+` Double Double = Double; // . // API functions (aka RPC functions) getUser#b0f732d5 int = User; getUsers#2d84d5f5 (Vector int) = Vector User;

Еще по теме:  Как откатить обновление Telegram на ПК

В данном случае для конструктора user явно задан номер (0xD23C81A3); в действительности можно было бы этого не делать, так как это значение есть CRC32 от строки ‘user id:int first_name:string last_name:string = User’ , которое было бы использовано по умолчанию.

Специальные конструкторы для Vector int , Vector User , Vector Object и т.д. не нужны — везде можно использовать один универсальный конструктор:

vector#1cb5c415 # [ t ] = Vector t;

Обратите внимание, что при вычислении номера конструктора getUsers (Vector int) = Vector User; вычисляется CRC32 от строки getUsers Vector int = Vector User , из которой удалены все скобки.

Запись T0 является синтаксическим сахаром для (T0 T1 T2 . Tn) . Например, Vector и (Vector User) полностью равнозначны.

Пример RPC-запроса

Предположим, мы хотим запросить getUsers([2,3,4]) . Этот запрос будет сериализован следующим образом:

0x2d84d5f5 0x1cb5c415 0x3 0x2 0x3 0x4

Ответ на него может выглядеть примерно так (для наглядности добавлены переносы строк):

0x1cb5c415 0x3 0xd23c81a3 0x2 0x76615005 0x6c65 0x72754405 0x766f 0xc67599d1 0x3 0xd23c81a3 0x4 0x6b694e07 0x79616c6f 0x72754405 0x766f

Это примерно соответствует

Обратите внимание, что в обоих случаях используется один и тот же универсальный конструктор vector#1cb5c415 , в запросе для сериализации значения типа Vector int , в ответе — типа Vector User . Путаницы не происходит, так как в обоих случаях тип (де)сериализуемого значения известен до начала его десериализации. Например, сервер, получив запрос, видит, что первая его компонента — это 0x2D84D5F5 , что соответствует комбинатору getUsers#2d84d5f5 (Vector int) = Vector User , поэтому понятно, что дальше будет следовать значение именно типа Vector int . Клиент же, получив ответ на этот запрос, знает, что ему должны вернуть значение типа Vector User , и десериализует его соответственно.

Сайт про Telegram на русском (неофициальный).

Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.

Источник: tlgrm.ru

Как создать свой язык перевода в Telegram

В настройках мессенджера Telegram присутствует достаточное количество опций, в том числе и параметр, позволяющий выбрать язык интерфейса. Изначально, когда приложение только появилось, оно поддерживало лишь английскую локализацию. Но после значительного прироста аудитории разработчики добавили поддержку большого количества переводов. Однако как создать свой язык в Телеграмме на телефоне? Этот вопрос волнует многих пользователей, желающих максимально настроить мессенджер под свои нужды. Что ж, мы подготовили пошаговую инструкцию, благодаря которой получится осуществить задуманное!

Еще по теме:  Как добавить собеседника в Телеграмме в звонок

Как создать свой язык (перевод) для Telegram?

Относительно недавно создатели мессенджера выпустили глобальное обновление, позволив обычным пользователям самим создавать любые языки. Это может потребоваться в том случае, если стандартный перевод не устраивает или выполнен крайне плохо. Более того, благодаря гибким настройкам удастся на свое усмотрение подписать элементы управления и всплывающие окна в Telegram. К примеру, привычную кнопку «Ок» можно изменить на «Да».

Шаг 1: авторизация и первоначальная настройка

Как можно заметить, в самом мессенджере отсутствует вкладка, отвечающая за создание пользовательского перевода. Поэтому вам в любом случае придется использовать браузер – либо на смартфоне, либо на компьютере. Также потребуется наличие доступа к номеру телефона, привязанному к аккаунту Telegram. Итак, не будем долго останавливаться на теории, а сразу перейдем к практике:

  1. Открываем веб-обозреватель и переходим по ссылке (translations.telegram.org), ведущей на сайт с созданием перевода. После чего в тексте находим гиперссылку Start Translating и нажимаем по ней. Перед вами появится небольшое окошко со всеми доступными языками. Но так как мы собрались делать свою локализацию, то выбираем Add a new language.Нажимаем Add a new language
  2. В появившемся поле указываем номер телефона, привязанный к аккаунту Телеграм. Для подтверждения авторизации нажимаем Next и проверяем мессенджер. Вводим номер телефона для авторизации в Телеграм
  3. Там находим официальное сообщение и подтверждаем вход кнопкой Confirm. Вы также можете проверить, с какого устройства и через какой браузер выполняется авторизация. В конце возвращаемся в веб-обозреватель и повторно отмечаем Add a new language.Подтверждаем вход кнопкой Confirm
  4. Теперь непосредственно разберемся, как создать свой язык в Телеграмме на телефоне. Для этого заполним предложенную форму, указав достоверную информацию. Во-первых, вводим Short Name – название перевода. Во-вторых, Name и Native Name – обозначение языка на английском и в оригинале. И в-третьих, заполняем поле Base Language. Там указываем локализацию, которая будет использоваться по умолчанию. Например, если вы забыли перевести определенный элемент интерфейса.Заполняем предложенную форму
  5. Нажимаем Save language для сохранения изменений.

На этом первоначальные настройки выполнены, поэтому можно перейти к переводу Telegram.

Шаг 2: создание своего языка

Следующий этап нашей работы – непосредственное создание перевода для своего языка. Нужно отметить, что разработчики действительно постарались, добавив отдельные варианты для каждой платформы. Это дает возможность сделать разную локализацию для Android, iOS, MacOS и Windows. Но так как большинство использует Телеграм с телефона, то остановимся на первом предложении. Чтобы не допустить ошибок, советуем следовать пошаговой инструкции:

  1. Выбираем, для какого устройства будем делать перевод. Отмечаем нужную платформу, а затем жмем кнопку Start Translating.Выбираем Start Translating
  2. Указываем категорию, с которой планируем начать. Если вы решили полностью перевести весь интерфейс, то придется постараться. Дело в том, что общее количество действий – более 2000! Поэтому советуем начать с самого важного, расположенного в группах Log In, Chat List и Profile.
  3. На следующей странице видим список, состоящий из различных действий. Также присутствует картинка, показывающая, какое слово или предложение будет переводиться. И для того, чтобы создать свой язык в Телеграмме на телефоне, нажимаем по любому варианту.Выбираем, что будем переводить в Телеграм
  4. В графу Add Translating вписываем конечный перевод. Не забываем сохранить изменения, нажав на кнопку Submit and Apply.Указываем и сохраняем перевод
Еще по теме:  Как изменить фон в Телеграмме для чата с телефона

Как результат – выбранная позиция будет успешно переведена. Аналогичное действие повторите для тех действий, которые вы считаете максимально важными. А то, что не было локализовано, будет отображаться на стандартном языке. Именно поэтому в предыдущем шаге мы и выбрали Base Language.

Шаг 3: сохранение и применение языка

Вот мы и выяснили, как создать свой язык в Телеграмме на телефоне – значит пришло время оценить перевод. Участвовать в тестировании можете не только вы, но и любые другие пользователи мессенджера. Для этого людям необходимо предоставить ссылку на языковой пакет. Она располагается в предыдущем разделе (с выбором платформы перевода). Чтобы ее скопировать, воспользуйтесь кнопкой Copy Link.

Через Copy Link копируем ссылку на перевод

Что же произойдет после перехода по URL-адресу? А ничего страшного, всего-то откроется сайт Telegram с предложением применить перевод. Понятное дело, что для установки языка нужно выбрать Set.

Активируем выбранный язык в Телеграм

Если локализация не понравилась, то достаточно посетить настройки мессенджера и изменить язык. Для их открытия нажмите по трем полоскам в углу экрана, а затем отметьте одноименный пункт. Как видим, в этом нет совершенно ничего сложного.

Недавно мы написали как в Телеграмме искать каналы. Можно найти канал с любой информацией: образование, психология, развлечения.

Вывод

Таким образом, мы пошагово и с инструкциями рассмотрели, как создать свой язык в Телеграмме на телефоне. Чтобы сделать уникальный перевод, нужно использовать специальный сервис от разработчиков мессенджера. Он доступен абсолютно каждому, причем абсолютно бесплатно. Возникли вопросы по теме материала? Тогда переходите в комментарии и задавайте их!

Источник: itduo.ru

35 телеграм-каналов, которые помогут выучить семь иностранных языков

Повторить грамматику, пополнить словарный запас и закрепить знания тестами — телеграм может стать отличным помощником для тех, кто собрался учить иностранные языки. «Мел» собрал полезные каналы и ботов, которые помогут выучить английский, немецкий, испанский и даже японский.

Английский

Немецкий

Испанский

Французский

Итальянский

Японский

Китайский

Ещё больше интересного и полезного про образование и воспитание — в нашем телеграм-канале. Подписывайтесь, чтобы ничего не пропустить!

Источник: mel.fm

Рейтинг
( Пока оценок нет )
Загрузка ...