[PHP-WEBMASTER] [web-php] master: Add Ukrainian language of PHP 8.5 announcement page (#1632)

Author: Alex (MammutAlex)
Committer: GitHub (web-flow)
Pusher: saundefined
Date: 2025-11-20T14:02:40+03:00

Commit: Add Ukrainian language of PHP 8.5 announcement page (#1632) · php/web-php@156487c · GitHub
Raw diff: https://github.com/php/web-php/commit/156487cb70aab9f822399816ec8924d929aeee55.diff

Add Ukrainian language of PHP 8.5 announcement page (#1632)

Changed paths:
  A releases/8.5/languages/uk.php
  A releases/8.5/uk.php
  M releases/8.5/common.php

Diff:

diff --git a/releases/8.5/common.php b/releases/8.5/common.php
index 737b665e0e..11cd0e0726 100644
--- a/releases/8.5/common.php
+++ b/releases/8.5/common.php
@@ -9,6 +9,7 @@
const LANGUAGES = [
     'en' => 'English',
     'ru' => 'Русский',
+ 'uk' => 'Українська',
     'zh' => '简体中文',
];

diff --git a/releases/8.5/languages/uk.php b/releases/8.5/languages/uk.php
new file mode 100644
index 0000000000..ad88716816
--- /dev/null
+++ b/releases/8.5/languages/uk.php
@@ -0,0 +1,79 @@
+<?php
+
+return [
+ 'common_header' => 'PHP 8.5 — це велике оновлення мови PHP з новими можливостями, включно з URI-розширенням, оператором Pipe та підтримкою зміни властивостей під час клонування.',
+ 'main_title' => 'Розумніший, Швидший, Створений для Майбутнього.',
+ 'main_subtitle' => '<p><strong>PHP 8.5 — це велике оновлення мови PHP</strong> із новими можливостями, включно з <strong>URI-розширенням</strong>, <strong>оператором Pipe</strong> та підтримкою <strong>зміни властивостей під час клонування</strong>.</p>',
+
+ 'whats_new' => 'Що нового в 8.5',
+ 'upgrade_now' => 'Оновитись до PHP 8.5',
+ 'old_version' => 'PHP 8.4 та старіші',
+ 'badge_new' => 'НОВЕ',
+ 'documentation' => 'Документація',
+ 'released' => 'Випущено 20 листопада 2025',
+ 'key_features' => 'Ключові можливості PHP 8.5',
+ 'key_features_description' => '<p><strong>Швидший</strong>, <strong>чистіший</strong> і <strong>створений для розробників</strong>.</p>',
+
+ 'features_pipe_operator_title' => 'Оператор Pipe',
+ 'features_pipe_operator_description' => '<p>Оператор <code>|></code> дозволяє зʼєднувати виклики callable-функцій зліва направо, передаючи значення послідовно без проміжних змінних.</p>',
+ 'features_persistent_curl_share_handles_title' => 'Постійні cURL Share-хендли',
+ 'features_persistent_curl_share_handles_description' => '<p>Тепер хендли можуть зберігатись між запитами PHP, що дозволяє уникнути повторної ініціалізації з’єднань із тими самими хостами.</p>',
+ 'features_clone_with_title' => 'Clone With',
+ 'features_clone_with_description' => '<p>Клонуйте об’єкти та оновлюйте властивості новим синтаксисом <code>clone()</code>, що робить патерн "with-er" простим навіть для <code>readonly</code> класів.</p>',
+ 'features_uri_extension_title' => 'URI-розширення',
+ 'features_uri_extension_description' => '<p>PHP 8.5 додає вбудоване URI-розширення для парсингу, нормалізації та роботи з URL згідно зі стандартами <em>RFC 3986</em> та <em>WHATWG URL</em>.</p>',
+ 'features_no_discard_title' => 'Атрибут #[\NoDiscard]',
+ 'features_no_discard_description' => '<p>Атрибут <code>#[\NoDiscard]</code> попереджає, якщо повернуте значення не використано, допомагаючи уникати помилок і підвищуючи безпеку API.</p>',
+ 'features_fcc_in_const_expr_title' => 'Замикання та First-Class Callables у константних виразах',
+ 'features_fcc_in_const_expr_description' => '<p>Статичні замикання та first-class callables тепер можна використовувати в константних виразах, наприклад у параметрах атрибутів.</p>',
+
+ 'pipe_operator_title' => 'Оператор Pipe',
+ 'pipe_operator_description' => '<p>Pipe-оператор дає змогу ланцюжити виклики функцій без необхідності створювати проміжні змінні. Це дозволяє замінити вкладені виклики на ланцюжок, який читається зліва направо.</p><p>Більше про історію появи цієї можливості читайте у <a href="https://thephp.foundation/blog/2025/07/11/php-85-adds-pipe-operator/&quot; target="_blank" rel="noopener noreferrer">блозі The PHP Foundation</a>.</p>',
+
+ 'array_first_last_title' => 'Функції array_first() та array_last()',
+ 'array_first_last_description' => '<p>Функції <code>array_first()</code> і <code>array_last()</code> повертають відповідно перший або останній елемент масиву. Якщо масив порожній — повертають <code>null</code>, що зручно для використання разом із оператором <code>??</code>.</p>',
+
+ 'clone_with_title' => 'Clone With',
+ 'clone_with_description' => '<p>Тепер можна оновлювати властивості під час клонування об’єкта, передаючи асоціативний масив у функцію <code>clone()</code>. Це природним чином реалізує патерн "with-er" для <code>readonly</code> класів.</p>',
+
+ 'uri_extension_title' => 'URI-розширення',
+ 'uri_extension_description' => '<p>Нове, завжди доступне URI-розширення забезпечує API для безпечного розбору та модифікації URI та URL згідно зі стандартами RFC 3986 і WHATWG URL.</p><p>Побудовано на основі <a href="https://uriparser.github.io/&quot;&gt;uriparser&lt;/a&gt; (RFC 3986) та <a href="https://lexbor.com/&quot;&gt;Lexbor&lt;/a&gt; (WHATWG URL).</p><p>Дізнайтеся більше в <a href="https://thephp.foundation/blog/2025/10/10/php-85-uri-extension/&quot; target="_blank" rel="noopener noreferrer">блозі The PHP Foundation</a>.</p>',
+
+ 'no_discard_title' => 'Атрибут #[\NoDiscard]',
+ 'no_discard_description' => '<p>Додавши атрибут <code>#[\NoDiscard]</code> до функції, PHP перевірятиме, чи використано повернуте значення, і видасть попередження, якщо ні. Це покращує безпеку API, де повернене значення є важливим, але його легко проігнорувати.</p><p>Для явного позначення невикористаного значення можна застосувати приведення <code>(void)</code>.</p>',
+
+ 'persistent_curl_share_handles_title' => 'Постійні cURL Share-хендли',
+ 'persistent_curl_share_handles_description' => '<p>На відміну від <code>curl_share_init()</code>, хендли, створені через <code>curl_share_init_persistent()</code>, не знищуються наприкінці запиту. Якщо знайдено persistent-хендл з такими ж параметрами — він буде повторно використаний, що усуває необхідність ініціалізації cURL кожного разу.</p>',
+
+ 'fcc_in_const_expr_title' => 'Замикання та First-Class Callables у константних виразах',
+ 'fcc_in_const_expr_description' => '<p>Статичні замикання та first-class callables тепер можна використовувати в константних виразах: у параметрах атрибутів, значеннях властивостей і параметрів за замовчуванням та у константах.</p>',
+
+ 'new_classes_title' => 'Додаткові можливості та покращення',
+ 'fatal_error_backtrace' => 'Фатальні помилки (наприклад, перевищення максимального часу виконання) тепер містять backtrace.',
+ 'const_attribute_target' => 'Атрибути тепер можуть бути націлені на константи.',
+ 'override_attr_properties' => 'Атрибут {0} тепер можна застосовувати до властивостей.',
+ 'deprecated_traits_constants' => 'Атрибут {0} тепер можна використовувати в трейтах і константах.',
+ 'asymmetric_static_properties' => 'Статичні властивості тепер підтримують асиметричну видимість.',
+ 'final_promoted_properties' => 'Властивості можуть бути позначені як <code>final</code> за допомогою promotion у конструкторі.',
+ 'closure_getCurrent' => 'Додано метод <code>Closure::getCurrent()</code> для спрощення рекурсії в анонімних функціях.',
+ 'partitioned_cookies' => '{0} і {1} тепер підтримують ключ "partitioned".',
+ 'get_set_error_handler' => 'Доступні нові функції {0} і {1}.',
+ 'new_dom_element_methods' => 'Доступні нові методи {0} і {1}.',
+ 'grapheme_levenshtein' => 'Додано функцію {0}.',
+ 'delayed_target_validation' => 'Новий атрибут {0} дозволяє приглушити помилки компіляції від core-та extension-атрибутів, використаних на некоректних цільових елементах.',
+
+ 'bc_title' => 'Застаріння та несумісності',
+ 'bc_backtick_operator' => 'Оператор бектіків як псевдонім для {0} оголошено застарілим.',
+ 'bc_non_canonical_cast_names' => 'Неканонічні назви приведення <code>(boolean)</code>, <code>(integer)</code>, <code>(double)</code> та <code>(binary)</code> оголошено застарілими. Використовуйте відповідно <code>(bool)</code>, <code>(int)</code>, <code>(float)</code> та <code>(string)</code>.',
+ 'bc_disable_classes' => 'INI-параметр {0} видалено, оскільки він порушував роботу рушія.',
+ 'bc_semicolon_after_case' => 'Завершення операторів <code>case</code> крапкою з комою замість двокрапки оголошено застарілим.',
+ 'bc_null_array_offset' => 'Використання <code>null</code> як індекса масиву або у викликах {0} оголошено застарілим. Використовуйте порожній рядок.',
+ 'bc_class_alias_names' => 'Більше не можна використовувати "array" та "callable" як назви класів-аліасів у {0}.',
+ 'bc_sleep_wakeup' => 'Магічні методи {0} і {1} оголошено мʼяко застарілими. Натомість слід використовувати {2} і {3}.',
+ 'bc_casting_nan' => 'Тепер PHP видає попередження під час приведення {0} до інших типів.',
+ 'bc_non_array_destructuring' => 'Деструктуризація не-масивних значень (окрім <code>null</code>) через {0} або {1} тепер викликає попередження.',
+ 'bc_casting_non_int_floats' => 'Тепер видається попередження при приведенні float-значень (або рядків, що схожі на float) до <code>int</code>, якщо вони не можуть бути коректно представлені.',
+
+ 'footer_title' => 'Кращий синтаксис, вища продуктивність і краща типобезпечність.',
+ 'footer_description' => '<p class="first-paragraph">Повний список змін опубліковано у <a href="/ChangeLog-8.php#PHP_8_5" target="_blank">ChangeLog</a>.</p><p>Будь ласка, ознайомтеся з <a href="/manual/en/migration85.php" target="_blank">посібником з міграції</a> для детального переліку нових можливостей і несумісностей.</p>',
+];
diff --git a/releases/8.5/uk.php b/releases/8.5/uk.php
new file mode 100644
index 0000000000..e27f9b677c
--- /dev/null
+++ b/releases/8.5/uk.php
@@ -0,0 +1,5 @@
+<?php
+
+$lang = 'uk';
+
+include_once __DIR__ . '/release.inc';