From 0b0847843b062c7fbce57990d83765126fd12c41 Mon Sep 17 00:00:00 2001 From: erjemin Date: Wed, 30 Jul 2025 19:28:34 +0300 Subject: [PATCH] =?UTF-8?q?mod:=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=20=D1=81=D1=83=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D1=81=D0=BE=D0=B2=20=D0=B2=20=D0=B0=D0=BD=D0=B3?= =?UTF-8?q?=D0=BB=D0=B8=D0=B9=D1=81=D0=BA=D0=B8=D1=85=20=D1=81=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- etpgrf/hyphenation.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/etpgrf/hyphenation.py b/etpgrf/hyphenation.py index b75b218..ca0a4e3 100755 --- a/etpgrf/hyphenation.py +++ b/etpgrf/hyphenation.py @@ -165,6 +165,7 @@ class Hyphenator: # РАЗРЕШЕНИЕ 2: Перенос после "слога" с Ь/Ъ, если дальше идет СОГЛАСНАЯ. # Пример: "строитель-ство", но НЕ "компь-ютер". # По-хорошему нужно проверять, что перед Ь/Ъ нет йотированной гласной + # (и переработать ЗАПРЕТ 2), но это еще больше усложнит логику. if self._is_sign(word_segment[i - 1]) and self._is_cons(word_segment[i]): return 9 # РАЗРЕШЕНИЕ 3: Перенос после "слога" если предыдущий Й (очень качественный перенос). @@ -179,8 +180,6 @@ class Hyphenator: # РАЗРЕШЕНИЕ 6 (Основное правило): Перенос после гласной. if self._is_vow(word_segment[i - 1]): return 5 - - # Если ни одно правило не подошло, точка не подходит для переноса. return 0 @@ -295,8 +294,10 @@ class Hyphenator: logger.debug(f"Found V-C-V (split after C) split point at index {i} in '{word_segment}'") return i - # 6. Правила для распространенных суффиксов (перенос ПЕРЕД суффиксом) + # 6. Правила для распространенных суффиксов (перенос ПЕРЕД суффиксом). Проверяем, что word_segment + # заканчивается на суффикс, и точка переноса (i) находится как раз перед ним if word_segment[i:].upper() in _EN_SUFFIXES_WITHOUT_HYPHENATION_UPPER: + # Мы нашли потенциальный суффикс. logger.debug(f"Found suffix '-{word_segment[i:]}' split point at index {i} in '{word_segment}'") return i