Add multilingual audit CI pipeline + extract mandelblog_content_guard
This commit is contained in:
28
mandelblog_content_guard/normalizers/en.py
Normal file
28
mandelblog_content_guard/normalizers/en.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
|
||||
|
||||
EN_LINE_REPLACEMENTS = {
|
||||
"Service packages (from) Transparent starting points.": "Service packages (from) Clear starting points.",
|
||||
"Frequently Asked Questions Transparent about planning, approach, and management.": "Frequently Asked Questions Clear guidance on planning, approach, and management.",
|
||||
"After your intake Clear scope and steps Clear planning Transparent investment Name * E-mail * Company * Project details Book business call Ready to start with Business Website?": "After your intake Clear scope and steps Clear planning Transparent pricing Name * E-mail * Company * Project details Book business call Ready to start with Business Website?",
|
||||
"After your intake Clear scope and steps Clear planning Transparent investment Name * E-mail * Company * Project details Book starter call Ready to start with Starter Website?": "After your intake Clear scope and steps Clear planning Transparent pricing Name * E-mail * Company * Project details Book starter call Ready to start with Starter Website?",
|
||||
"After your intake Clear scope and steps Clear planning Transparent investment Name * E-mail * Company * Project details Request support plan Ready to start with Support & Growth?": "After your intake Clear scope and steps Clear planning Transparent pricing Name * E-mail * Company * Project details Request support plan Ready to start with Support & Growth?",
|
||||
"After your intake Clear scope and steps Clear planning Transparent investment Name * E-mail * Company * Project details Start webshop project Ready to start with Webshop?": "After your intake Clear scope and steps Clear planning Transparent pricing Name * E-mail * Company * Project details Start webshop project Ready to start with Webshop?",
|
||||
}
|
||||
|
||||
EN_PHRASE_REPLACEMENTS = {
|
||||
"Transparent investment": "Transparent pricing",
|
||||
"Transparent about planning, approach, and management.": "Clear guidance on planning, approach, and management.",
|
||||
"Transparent starting points.": "Clear starting points.",
|
||||
}
|
||||
|
||||
|
||||
def normalize_en_text(text: str, field_path: str = "") -> str:
|
||||
if text in EN_LINE_REPLACEMENTS:
|
||||
return EN_LINE_REPLACEMENTS[text]
|
||||
cleaned = text
|
||||
for source, target in sorted(EN_PHRASE_REPLACEMENTS.items(), key=lambda item: len(item[0]), reverse=True):
|
||||
cleaned = cleaned.replace(source, target)
|
||||
return re.sub(r"\s+", " ", cleaned).strip()
|
||||
Reference in New Issue
Block a user