Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions site/docs/uk/guide/filter-queries.md
Original file line number Diff line number Diff line change
Expand Up @@ -347,15 +347,15 @@ bot.on(":text", handler);
Перевірка запитів фільтрування відбувається лише один раз, коли бот ініціалізується та викликається `bot.on()`.

Під час запуску grammY створює предикатну функцію із запиту фільтрування, розділяючи його на частини.
Кожна частина буде зіставлена з функцією, яка виконує одну перевірку істинності для властивості об'єкта або дві перевірки, якщо частина запиту пропущена і потрібно перевірити два значення.
Кожна частина буде зіставлена з функцією, яка виконує одну перевірку істинності для властивості обʼєкта або дві перевірки, якщо частина запиту пропущена і потрібно перевірити два значення.
Потім ці функції обʼєднуються у предикат, який перевіряє лише ті значення, що мають відношення до запиту, без перебору ключів обʼєкта `Update`.

Ця система використовує менше операцій, ніж деякі конкуруючі бібліотеки, яким потрібно виконувати перевірку вмісту у масивах для маршрутизації оновлень.
Система запитів фільтрування grammY працює швидше, попри те, що набагато потужніша.

### Безпека типів

Як згадувалося вище, запити фільтрування автоматично звужують певні властивості об'єкта контексту.
Як згадувалося вище, запити фільтрування автоматично звужують певні властивості обʼєкта контексту.
Предикат, отриманий з одного або декількох запитів фільтрування, є предикатом типу TypeScript, який виконує це звуження.
Загалом, ви можете довіряти тому, що виведення типів працює коректно.
Якщо властивість виводиться як присутня, ви можете безпечно покладатися на неї.
Expand Down
8 changes: 4 additions & 4 deletions site/docs/uk/guide/reactions.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ allowed_updates: API_CONSTANTS.ALL_UPDATE_TYPES;
```

для того, щоб отримувати всі оновлення.
Обов'язково перегляньте [довідку API](/ref/core/apiconstants#all-update-types).
Обовʼязково перегляньте [довідку API](/ref/core/apiconstants#all-update-types).
:::

[Плагін для конкурентності (runner)](../plugins/runner#просунуті-параметри) і `setWebhook` мають схожі способи вказати `allowed_updates`.
Expand Down Expand Up @@ -134,7 +134,7 @@ bot.on("message_reaction:old_reaction:custom_emoji", (ctx) => {/* ... */});
bot.on("message_reaction:new_reaction:paid", (ctx) => {/* ... */});
```

Хоча ці два масиви [об'єктів `ReactionType`](https://core.telegram.org/bots/api#reactiontype) технічно надають вам усю інформацію, необхідну для обробки оновлень реакцій, вони все одно можуть бути дещо громіздкими для роботи.
Хоча ці два масиви [обʼєктів `ReactionType`](https://core.telegram.org/bots/api#reactiontype) технічно надають вам усю інформацію, необхідну для обробки оновлень реакцій, вони все одно можуть бути дещо громіздкими для роботи.
Ось чому grammY може обчислювати більше корисних речей з оновлення.

### Перевіряємо, як змінилися реакції
Expand Down Expand Up @@ -196,7 +196,7 @@ const {
У приватних чатах, групах і супергрупах відомо, хто реагує на те чи інше повідомлення.
Однак для дописів на каналі ми маємо лише список анонімних реакцій.
Отримати список користувачів, які відреагували на певний допис, неможливо.
Те ж саме стосується дописів у каналах, які автоматично пересилаються в чати пов'язаних дискусійних груп.
Те ж саме стосується дописів у каналах, які автоматично пересилаються в чати повʼязаних дискусійних груп.

В обох випадках ваш бот отримає оновлення `message_reaction_count`.

Expand All @@ -212,4 +212,4 @@ bot.on("message_reaction_count", async (ctx) => {
});
```

Обов'язково перевірте [специфікацію](https://core.telegram.org/bots/api#messagereactioncountupdated) щодо оновлення кількості реакцій на повідомлення.
Обовʼязково перевірте [специфікацію](https://core.telegram.org/bots/api#messagereactioncountupdated) щодо оновлення кількості реакцій на повідомлення.
4 changes: 2 additions & 2 deletions site/docs/uk/hosting/vps.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ ssh root@<ip-адреса>

::: tip Налаштування SSH
Запамʼятовування IP-адреси та імені користувача для підключення до сервера може бути складним і виснажливим.
Щоб позбутися цих рутинних дій і покращити досвід роботи з сервером, ви можете налаштувати SSH, створивши на своєму комп'ютері файл `~/.ssh/config` (<https://linuxhandbook.com/ssh-config-file/>), який зберігає всі дані, необхідні для підключення до сервера, під певними довільними ідентифікаторами.
Щоб позбутися цих рутинних дій і покращити досвід роботи з сервером, ви можете налаштувати SSH, створивши на своєму компʼютері файл `~/.ssh/config` (<https://linuxhandbook.com/ssh-config-file/>), який зберігає всі дані, необхідні для підключення до сервера, під певними довільними ідентифікаторами.
Це виходить за межі цієї статті, тому вам доведеться налаштувати його самостійно.
:::

Expand Down Expand Up @@ -382,7 +382,7 @@ Deno.serve(async (req) => {
Ми знову будемо пояснювати це на прикладі Hostinger, але є багато інших сервісів, і всі вони працюють аналогічно.

Перейдіть на [сторінку пошуку доменного імені](https://www.hostinger.com/ua/kupyty-domen).
У полі для введення тексту введіть доменне ім'я у вигляді `<ім'я>.<зона>`.
У полі для введення тексту введіть доменне імʼя у вигляді `<імʼя>.<зона>`.
Наприклад, `example.com`.

Якщо потрібний домен вільний, натисніть кнопку "Додати" поруч з ним.
Expand Down
2 changes: 1 addition & 1 deletion site/docs/uk/hosting/zeabur-deno.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Zeabur підтримує різні мови програмування та ф

### Спосіб 1: створення нового проєкту з нуля

> Переконайтеся, що на вашому комп'ютері встановлено Deno.
> Переконайтеся, що на вашому компʼютері встановлено Deno.

Ініціалізуйте ваш проєкт та встановіть деякі необхідні залежності:

Expand Down
2 changes: 1 addition & 1 deletion site/docs/uk/plugins/i18n.md
Original file line number Diff line number Diff line change
Expand Up @@ -561,7 +561,7 @@ bot.command("start", async (ctx) => {
});
```

Тепер можемо виконати команду `/start', щоб запустити бота.
Тепер можемо виконати команду `/start`, щоб запустити бота.
Він повинен надіслати наступне повідомлення:

```:no-line-numbers
Expand Down
2 changes: 1 addition & 1 deletion site/docs/uk/plugins/inline-query.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ bot.on("inline_query", async (ctx) => {
1. Унікальний рядковий ідентифікатор.
2. _Обʼєкт результату_, який описує, як відобразити результат inline-запиту.
Він може містити такі речі, як заголовок, посилання або зображення.
3. _Об'єкт вмісту повідомлення_, який описує вміст повідомлення, яке буде надіслано користувачеві, якщо він вибере цей результат.
3. _Обʼєкт вмісту повідомлення_, який описує вміст повідомлення, яке буде надіслано користувачеві, якщо він вибере цей результат.
У деяких випадках вміст повідомлення може бути виведений неявно з обʼєкта результату.
Наприклад, якщо ви хочете, щоб ваш результат відображався у вигляді GIF-файлу, то Telegram зрозуміє, що вміст повідомлення буде тим самим GIF-файлом, якщо ви не вкажете обʼєкт вмісту повідомлення.

Expand Down
2 changes: 1 addition & 1 deletion site/docs/uk/plugins/keyboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ const keyboard = new Keyboard()

Якщо у вас вже є масив рядків, який ви хочете перетворити на клавіатуру, ви можете використати другий, альтернативний стиль для створення екземплярів власної клавіатури.
Клас `Keyboard` має статичні методи, як-от `Keyboard.text`, які дозволяють створювати обʼєкти кнопок.
У свою чергу, ви можете створити екземпляр класної клавіатури з масиву об'єктів кнопок за допомогою методу `Keyboard.from`.
У свою чергу, ви можете створити екземпляр класної клавіатури з масиву обʼєктів кнопок за допомогою методу `Keyboard.from`.

Отже, ви можете побудувати вищезгадану власну клавіатуру у функціональний спосіб.

Expand Down
4 changes: 2 additions & 2 deletions site/docs/uk/resources/comparison.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ grammY походить своїм корінням від Telegraf, тож ни

- У вас вже є великий бот, написаний на Telegraf, і ви більше не працюєте над ним.
У такому випадку міграція на grammY може зайняти більше часу, ніж ви заощадите в довгостроковій перспективі, незалежно від того, наскільки плавною буде міграція.
- Ви знаєте Telegraf, як свої п'ять пальців, і вам не потрібно змінювати свої навички.
- Ви знаєте Telegraf, як свої пʼять пальців, і вам не потрібно змінювати свої навички.
grammY представляє ряд нових концепцій, які можуть бути незнайомими, якщо ви використовували тільки Telegraf, а використання grammY означає, що ви будете відкривати для себе нові речі.
- Є кілька деталей, де Telegraf і grammY використовують різний синтаксис для досягнення однієї і тієї ж мети, і ви просто віддаєте перевагу одному стилю над іншим.
Наприклад, Telegraf використовує `bot.on(message("text"))`, а grammY використовує `bot.on("message:text")` для прослуховування текстових повідомлень.
Expand Down Expand Up @@ -133,7 +133,7 @@ grammY походить своїм корінням від Telegraf, тож ни
Як завжди, мови програмування чудово справляються з певними завданнями, а для інших їх слід уникати.
Це не виняток.

Наприклад, за нинішнього стану екосистем, все, що пов'язано з машинним навчанням, не варто робити на JavaScript.
Наприклад, за нинішнього стану екосистем, все, що повʼязано з машинним навчанням, не варто робити на JavaScript.
Однак, коли мова йде про вебсервери, TypeScript, як правило, є набагато кращим вибором.

### Фреймворки, написані на Go
Expand Down
Loading