File size: 1,354 Bytes
eaae64d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# ddgp/translit.py
# -*- coding: utf-8 -*-
"""
Transliteração ASCII -> Grego (básica)
"""
import re

def latin_to_basic_grc(s: str) -> str:
    """Transliteração ASCII básica -> grego sem acentos (hipatia-style)."""
    if not s:
        return s
    
    # Remove dígitos (conforme regra original)
    s = "".join(ch for ch in s if not ch.isdigit())
    
    table = {
        "a":"α","b":"β","g":"γ","d":"δ",
        "e":"ε","z":"ζ","h":"η","q":"θ",
        "i":"ι","k":"κ","l":"λ","m":"μ",
        "n":"ν","c":"ξ","o":"ο","p":"π",
        "r":"ρ","s":"σ","t":"τ","u":"υ",
        "f":"φ","x":"χ","y":"ψ","w":"ω",
        "v":"β", # Adicionado 'v' para flexibilidade, se necessário
    }
    
    out = []
    prev = ""
    for ch in s.lower(): # Garante que a entrada é tratada como minúscula
        # Trata espaços para produzir sigma final ς quando apropriado
        if ch == " " and prev == "σ":
            out[-1] = "ς"
            out.append(" ")
            prev = " "
            continue
        
        gr = table.get(ch, ch)
        out.append(gr)
        prev = gr
        
    # Trata sigma final (no fim da palavra)
    if out and out[-1] == "σ":
        out[-1] = "ς"
        
    return "".join(out)

# Função de importação que o app.py espera
transliterate_to_greek = latin_to_basic_grc