25 lines
2.5 KiB
Python
25 lines
2.5 KiB
Python
from __future__ import annotations
|
||
|
||
import re
|
||
|
||
|
||
RU_LINE_REPLACEMENTS = {
|
||
"План многоязычного запуска Anpassung & Integrationen Интеграции API, специфические рабочие процессы и индивидуальные блоки, адаптированные под вашу компанию.": "План многоязычного запуска Настройка и интеграции Интеграции API, специфические рабочие процессы и индивидуальные блоки, адаптированные под вашу компанию.",
|
||
"Запланировать звонок по бизнес-сайту Detailliertes Seitenlayout Разделы, ориентированные на конверсию Base prête pour le SEO Boutique en ligne Для проектов с товарами, оплатой и дальнейшим развитием e-commerce.": "Запланировать звонок по бизнес-сайту Детальная структура страниц Разделы, ориентированные на конверсию Основа, готовая для SEO Интернет-магазин Для проектов с товарами, оплатой и дальнейшим развитием e-commerce.",
|
||
"Связаться с нами Посмотреть проекты Unverbindliches Gespräch, klares Angebot Мы создаём быстрые сайты и интернет-магазины, которыми ваша команда может управлять самостоятельно.": "Связаться с нами · Посмотреть проекты · Без обязательств, понятное предложение. Мы создаём быстрые сайты и интернет-магазины, которыми ваша команда может управлять самостоятельно.",
|
||
}
|
||
|
||
RU_PHRASE_REPLACEMENTS = {
|
||
"Base prête pour le SEO": "Основа, готовая для SEO",
|
||
"Unverbindliches Gespräch, klares Angebot": "Без обязательств, понятное предложение",
|
||
}
|
||
|
||
|
||
def normalize_ru_text(text: str, field_path: str = "") -> str:
|
||
if text in RU_LINE_REPLACEMENTS:
|
||
return RU_LINE_REPLACEMENTS[text]
|
||
cleaned = text
|
||
for source, target in sorted(RU_PHRASE_REPLACEMENTS.items(), key=lambda item: len(item[0]), reverse=True):
|
||
cleaned = cleaned.replace(source, target)
|
||
return re.sub(r"\s+", " ", cleaned).strip()
|