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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//! Per-language rule aggregators for languages that do not cleanly fit one
//! of the broader family modules.
//!
//! Covers: Turkish, Hungarian, Finnish, Basque, Greek, Georgian, Armenian.
use crateRewriteRuleChar;
/// Get Turkish rule set.
///
/// Returns the complete phonetic normalization rules for Turkish:
/// - Special consonants (ş→S, ç→C, ğ→G)
/// - Dotted/undotted I distinction (ı→I, İ→i)
/// - Front vowels (ö→O, ü→U)
/// - Consonant transforms (c→dj, j→Z)
/// - Simplification rules for doubled markers
pub
/// Get Hungarian rule set.
///
/// Returns the complete phonetic normalization rules for Hungarian (Magyar):
/// - 9 digraphs treated as single letters:
/// - cs→CH, dz→DZ, dzs→DZS, gy→GY, ly→Y, ny→NY, sz→S, ty→TY, zs→ZS
/// - S alone → SH (unique Hungarian feature!)
/// - Long vowels with acute accent (á, é, í, ó, ú)
/// - Front rounded vowels (ö→OE, ü→UE)
/// - Double-acute vowels (ő→OE, ű→UE)
/// - Geminate digraphs (ccs→CH, ssz→S, etc.)
pub
/// Get Finnish rule set.
///
/// Returns the complete phonetic normalization rules for Finnish (Suomi):
/// - Front vowels: ä→AE, ö→OE, y→Y (front rounded)
/// - Vowel harmony: Front (ä, ö, y) vs back (a, o, u)
/// - Digraphs: ng→NG (velar nasal), nk→NK
/// - Nearly phonemic orthography
/// - Loanword consonant adaptations: b→p, d→t, g→k (in native words)
pub
/// Get Basque rule set.
///
/// Returns the complete phonetic normalization rules for Basque (Euskara):
/// - Digraphs: tx→CH, ts→TS, tz→TZ, tt→TT, dd→DD, rr→RR
/// - X → SH (like English "sh")
/// - Z → S (like English "s", NOT "z"!)
/// - Ñ → NY (palatal nasal)
/// - Language isolate with unique phonology
pub
/// Get Greek rule set.
///
/// Returns the complete phonetic normalization rules for Greek (Ελληνικά):
/// - Greek alphabet (24 letters)
/// - Vowel digraphs: αι(e), ει(i), οι(i), υι(i), αυ(av/af), ευ(ev/ef), ου(u)
/// - Consonant combinations: μπ(b), ντ(d), γκ(g), γγ(ng)
/// - Accent marks stripped for matching
pub
/// Get Georgian rule set.
///
/// Returns the complete phonetic normalization rules for Georgian (ქართული):
/// - Unique Mkhedruli script
/// - 33 letters, no uppercase/lowercase distinction
/// - Ejective consonants: k'(ყ), p'(პ), t'(ტ), ts'(წ), ch'(ჭ), q'(ყ)
/// - Nearly phonemic orthography
pub
/// Get Armenian rule set.
///
/// Returns the complete phonetic normalization rules for Armenian (Hayeren):
/// - Unique Armenian script with uppercase/lowercase
/// - 39 letters (originally 36)
/// - Aspirated consonants: T, P, K
/// - Two dialects: Eastern vs Western Armenian
pub